Численные методы решения типовых математических задач - Математика курсовая работа

Численные методы решения типовых математических задач - Математика курсовая работа




































Главная

Математика
Численные методы решения типовых математических задач

Решение систем линейных алгебраических уравнений методом простой итерации. Полиномиальная интерполяция функции методом Ньютона с разделенными разностями. Среднеквадратическое приближение функции. Численное интегрирование функций методом Гаусса.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
Выполнил студент группы _____________
В методе Гаусса матрица СЛАУ с помощью равносильных преобразований преобразуется в верхнюю треугольную матрицу, получающуюся в результате прямого хода. В обратном ходе определяются неизвестные.
Запишем расширенную матрицу системы:
На первом шаге алгоритма Гаусса выберем диагональный элемент (если он равен 0, то первую строку переставляем с какой-либо нижележащей строкой) и объявляем его a 11 ?0 ведущим, а соответствующую строку и столбец, на пересечении которых он стоит - ведущими. Обнулим элементы ведущего столбца. Для этого сформируем числа (-a 22 /a 11 ), (-a 31 /a 11 ), .. , (a n1 /a 11 ).
Компьютерная реализация метода Гаусса часто осуществляется с использованием LU-разложения матриц.
LU - разложение матрицы A представляет собой разложение матрицы A в произведение нижней и верхней треугольных матриц, т.е.
где L - нижняя треугольная матрица (матрица, у которой все элементы, находящиеся выше главной диагонали равны нулю, lij=0 при i>j), U- верхняя треугольная матрица (матрица, у которой все элементы, находящиеся ниже главной диагонали равны нулю, uij=0 при i>j).
LU - разложение может быть построено с использованием описанного выше метода Гаусса. Рассмотрим k - ый шаг метода Гаусса, на котором осуществляется обнуление поддиагональных элементов k - го столбца матрицы. Как было описано выше, с этой целью используется следующая операция
В терминах матричных операций такая операция эквивалентна умножению A(k)=MkA(k-1), где элементы матрицы определяются следующим образом
В терминах матричных операций такая операция эквивалентна умножению A(k)=MkA(k-1), где элементы матрицы определяются следующим образом
В результате прямого хода метода Гаусса получим , A(n-1)=U
где A(n-1)=U - верхняя треугольная матрица, а - нижняя треугольная матрица, имеющая вид .
Таким образом, искомое разложение A=LU получено.
Метод прогонки является одним из эффективных методов решения СЛАУ с трех - диагональными матрицами, возникающих при конечно-разностной аппроксимации задач для обыкновенных дифференциальных уравнений (ОДУ) и уравнений в частных производных второго порядка и является частным случаем метода Гаусса. Рассмотрим следующую СЛАУ:
решение которой будем искать в виде
где Qi,Pi,i=1,n - прогоночные коэффициенты, подлежащие определению. Для их определения выразим из первого уравнения СЛАУ (1.1) x1 через x2, получим:
Из второго уравнения СЛАУ (1.1) с помощью (1.3) выразим x2 через x3, получим:
Продолжая этот процесс, получим из i-го уравнения СЛАУ (1.1):
При большом числе уравнений прямые методы решения СЛАУ (за исключением метода прогонки) становятся труднореализуемыми на ЭВМ прежде всего из-за сложности хранения и обработки матриц большой размерности. В то же время характерной особенностью ряда часто встречающихся в прикладных задачах СЛАУ является разреженность матриц. Число ненулевых элементов таких матриц мало по сравнению с их размерностью. Для решения СЛАУ с разреженными матрицами предпочтительнее использовать итерационные методы.
Методы последовательных приближений, в которых при вычислении последующего приближения решения используются предыдущие, уже известные приближенные решения, называются итерационными.
Метод простых итераций довольно медленно сходится. Для его ускорения существует метод Зейделя, заключающийся в том, что при вычислении компонента xik+1 вектора неизвестных на (k+1)-й итерации используются x1k+1, x2k+1, .., xik+1 уже вычисленные на (k+1)-й итерации. Значения остальных компонент берутся из предыдущей итерации. Так же как и в методе простых итераций строится эквивалентная СЛАУ и за начальное приближение принимается вектор правых частей . Тогда метод Зейделя для известного вектора на k-ой итерации имеет вид:
предыдущей итерации. Так же как и в методе простых итераций строится эквивалентная СЛАУ и за начальное приближение принимается вектор правых частей . Тогда метод Зейделя для известного вектора на k-ой итерации имеет вид:
Из этой системы видно, что , где В - нижняя треугольная матрица с диагональными элементами , равными нулю, а С - верхняя треугольная матрица с диагональными элементами, отличными от нуля, б=B+C. Следовательно
При таком способе приведения исходной СЛАУ к эквивалентному виду метод простых итераций носит название метода Якоби.
Таким образом, метод Зейделя является методом простых итераций с матрицей правых частей б=(E-B)-1C и вектором правых частей (E-B)-1в.
Разрешим систему относительно неизвестных при ненулевых диагональных элементах , aii?0, i= 1,n (если какой-либо коэффициент на главной диагонали равен нулю, достаточно соответствующее уравнение поменять местами с любым другим уравнением). Получим следующие выражения для компонентов вектора в и матрицы б эквивалентной системы
В качестве нулевого приближения x (0) вектора неизвестных примем вектор правых частей x (0) =в. Тогда метод простых итераций примет вид:
Из (1.19) видно преимущество итерационных методов по сравнению, например, с рассмотренным выше методом Гаусса. В вычислительном процессе участвуют только произведения матрицы на вектор, что позволяет работать только с ненулевыми элементами матрицы, значительно упрощая процесс хранения и обработки матриц.
Имеет место следующее достаточное условие сходимости метода простых итераций.
Метод простых итераций (1.19) сходится к единственному решению СЛАУ при любом начальном приближении x (0) , если какая-либо норма матрицы б эквивалентной системы меньше единицы
Если используется метод Якоби (выражения (1.18) для эквивалентной СЛАУ), то
достаточным условием сходимости является диагональное преобладание матрицы A, т.е.
(для каждой строки матрицы A модули элементов, стоящих на главной диагонали, больше суммы модулей недиагональных элементов). Очевидно, что в этом случае ||б|| c меньше единицы и, следовательно, итерационный процесс (1.19) сходится.
Приведем также необходимое и достаточное условие сходимости метода простых итераций. Для сходимости итерационного процесса (1.19) необходимо и достаточно, чтобы спектр матрицы б эквивалентной системы лежал внутри круга с радиусом, равным единице.
При выполнении достаточного условия сходимости оценка погрешности решения на k- ой итерации дается выражением:
Следует подчеркнуть, что это неравенство дает завышенное число итераций k, поэтому редко используется на практике
Разрешим систему относительно неизвестных при ненулевых диагональных элементах , aii?0, i= 1,n (если какой-либо коэффициент на главной диагонали равен нулю, достаточно соответствующее уравнение поменять местами с любым другим уравнением). Получим следующие выражения для компонентов вектора в и матрицы б эквивалентной системы:
При таком способе приведения исходной СЛАУ к эквивалентному виду метод простых итераций носит название метода Якоби.
В качестве нулевого приближения x (0) вектора неизвестных примем вектор правых частей x (0) =в. Тогда метод простых итераций примет вид:
Из (1.19) видно преимущество итерационных методов по сравнению, например, с рассмотренным выше методом Гаусса. В вычислительном процессе участвуют только произведения матрицы на вектор, что позволяет работать только с ненулевыми элементами матрицы, значительно упрощая процесс хранения и обработки матриц.
Имеет место следующее достаточное условие сходимости метода простых итераций.
Метод простых итераций (1.19) сходится к единственному решению СЛАУ при любом начальном приближении x (0) , если какая-либо норма матрицы б эквивалентной системы меньше единицы
Если используется метод Якоби (выражения (1.18) для эквивалентной СЛАУ), то
достаточным условием сходимости является диагональное преобладание матрицы A, т.е.
(для каждой строки матрицы A модули элементов, стоящих на главной диагонали, больше суммы модулей недиагональных элементов). Очевидно, что в этом случае ||б|| c меньше единицы и, следовательно, итерационный процесс (1.19) сходится.
Приведем также необходимое и достаточное условие сходимости метода простых итераций. Для сходимости итерационного процесса (1.19) необходимо и достаточно, чтобы спектр матрицы б эквивалентной системы лежал внутри круга с радиусом, равным единице.
При выполнении достаточного условия сходимости оценка погрешности решения на k- ой итерации дается выражением:
Процесс итераций останавливается при выполнении условия , где ее?)(kе - задаваемая вычислителем точность.
Принимая во внимание, что из (1.20) следует неравенство , можно получить априорную оценку необходимого для достижения заданной точности числа итераций. При использовании в качестве начального приближения вектора в такая оценка определится неравенством:
откуда получаем априорную оценку числа итераций k при ||б||<1
Следует подчеркнуть, что это неравенство дает завышенное число итераций k, поэтому редко используется на практике.
Это достигнуто за счет того, что в числителе каждой дроби при соответствующем значении у j , j=0,1,2,…,n отсутствует сомножитель (x-x i ), в котором i=j, а знаменатель каждой дроби получен заменой переменной х на соответствующее значение х j .
Таким образом, интерполяционный многочлен Лагранжа приближает заданную табличную функцию, т.е. L n (x i ) = y i и мы можем использовать его в качестве вспомогательной функции для решения задач интерполирования, т.е. .
Чем больше узлов интерполирования на отрезке [x 0 ,x n ] , тем точнее интерполяционный многочлен приближает заданную табличную функцию, т.е. тем точнее равенство:
Однако с увеличением числа узлов интерполирования возрастает степень интерполяционного многочлена n и в результате значительно возрастает объем вычислительной работы. Поэтому при большом числе узлов необходимо применять ЭВМ. В этом случае удобно находить значения функции в промежуточных точках, не получая многочлен в явном виде.
При решении задачи экстраполирования функции с помощью интерполяционного многочлена вычисление значения функции за пределами отрезка [x 0 ,x n ] обычно производят не далее, чем на один шаг h, равный наименьшей величине
так как за пределами отрезка [x 0 ,x n ] погрешности, как правило, увеличиваются.
Интерполяционный многочлен по формуле Ньютона имеет вид:
- разделенные разности 0-го, 1-го, 2-го,…., n-го порядка, соответственно.
Сплайны стали широко использоваться в вычислительной математике сравнительно недавно. В машиностроительном черчении они применяются уже давно, так как сплайны - это лекала или гибкие линейки, деформация которых позволяет провести кривую через заданные точки (x i , у i ).
Используя теорию изгиба бруса при малых деформациях, можно показать, что сплайн - это группа кубических многочленов, в местах сопряжения которых первая и вторая производные непрерывны. Такие функции называются кубическими сплайнами. Для их построения необходимо задать коэффициенты, которые единственным образом определяют многочлен в промежутке между данными точками.
Например, для некоторых функций (рис.) необходимо задать все кубические функции q 1 (x), q 2 (x), …q n (x).
В наиболее общем случае эти многочлены имеют вид:
где k ij - коэффициенты, определяемые описанными ранее условиями, количество которых равно 4n. Для определения коэффициентов kij необходимо построить и решить систему порядка 4n.
Первые 2n условий требуют, чтобы сплайны соприкасались в заданных точках:
Следующие (2n-2) условий требуют, чтобы в местах соприкосновения сплайнов были равны первые и вторые производные:
Система алгебраических уравнений имеет решение, если число уравнений соответствует числу неизвестных. Для этого необходимо ввести еще два уравнения. Обычно используются следующие условия:
При построении алгоритма метода первые и вторые производные удобно аппроксимировать разделенными разностями соответствующих порядков.
Полученный таким образом сплайн называется естественным кубическим сплайном. Найдя коэффициенты сплайна, используют эту кусочно-гладкую полиноминальную функцию для представления данных при интерполяции.
Значения f(x 0 ), f(x 1 ), … , f(x n ) , т.е. значения табличной функции в узлах, называются разделенными разностями нулевого порядка (k=0).
Отношение называется разделенной разностью первого порядка (k=1) на участке [x 0 , x 1 ] и равно разности разделенных разностей нулевого порядка на концах участка [x 0 , x 1 ], разделенной на длину этого участка.
Для произвольного участка [x i , x i+1 ] разделенная разность первого порядка (k=1) равна
Отношение называется разделенной разностью второго порядка (k=2) на участке [x 0 , x 2 ] и равно разности разделенных разностей первого порядка, разделенной на длину участка [x 0 , x 2 ].
Для произвольного участка [x i , x i+2 ] разделенная разность второго порядка (k=2) равна
Таким образом, разделенная разность k-го порядка на участке [x i , x i+k ] может быть определена через разделенные разности (k-1)-го порядка по рекуррентной формуле:
Максимальное значение k равно n. Тогда i =0 и разделенная разность n-го порядка на участке [x 0 ,x n ] равна
т.е. равна разности разделенных разностей (n-1)-го порядка, разделенной на длину участка [x 0 ,x n ].
являются вполне определенными числами, поэтому выражение (2.2) действительно является алгебраическим многочленом n-й степени. При этом в многочлене (2.2) все разделенные алгебраическим многочленом n-й степени. При этом в многочлене (2.2) все разделенные разности определены для участков [x 0 , x 0+k ], .
Лемма: алгебраический многочлен (2.2), построенный по формулам Ньютона, действительно является интерполяционным многочленом, т.е. значение многочлена в узловых точках равно значению табличной функции
Докажем это. Пусть х=х 0 , тогда многочлен (2.2) равен
Пусть х=х 1 , тогда многочлен (2.2) равен
Пусть х=х 2 , тогда многочлен (2.2) равен
Заметим, что решение задачи интерполяции по Ньютону имеет некоторые преимущества по сравнению с решением задачи интерполяции по Лагранжу. Каждое слагаемое интерполяционного многочлена Лагранжа зависит от всех значений табличной функции y i , i=0,1,…n. Поэтому при изменении количества узловых точек N и степени многочлена n (n=N-1) интерполяционный многочлен Лагранжа требуется строить заново. В многочлене Ньютона при изменении количества узловых точек N и степени многочлена n требуется только добавить или отбросить соответствующее число стандартных слагаемых в формуле Ньютона (2.2). Это удобно на практике и ускоряет процесс вычислений.
На рисунке 2.1 представлена схема алгоритма решения задачи №2.
На рисунке 2.2 представлена схема алгоритма ввода исходных данных (подпрограмма-процедура Vvod).
На рисунке 2.3 представлена схема алгоритма интерполяции функции по методу Ньютона с разделенными разностями (newt)
На рисунке 2.4 представлена схема алгоритма записи данных и результата в файл (подпрограмма-процедура zapisb_v_fail).
На рисунке 2.5 представлена схема алгоритма вывода содержимого записанного файла на экран (подпрограмма-процедура outputtoscreen).
type matr=array[0..c,0..c] of real;
procedure Vvod(var kolvo:integer; var uzel,fun:mas);
{Процедура осуществляет ввод данных:пользователь вводит с клавиатуры
узлы интерполяции и значения функции в них. Также определяется количество узлов.}
writeln('введите количество узлов');
writeln('введите ',i,'-й узел интерполирования');
writeln('введите значение функции, соответствующее данному узлу');
procedure newt(var kolvo:integer; D:real; var koef,uzel,fun:mas)
fun[j]:=(fun[j-1]-fun[j])/(uzel[j+i]-uzel[i])
procedure newt(var kolvo:integer; D:real; var koef,uzel,fun:mas) {процедура интерполяции функции методом Ньютона}
fun[j]:=(fun[j-1]-fun[j])/(uzel[j+i]-uzel[i])
procedure zapisb(koef:mas; uzel,fun:mas; kolvo:integer; var f:text);
{В данной процедуре осуществляется запись в файл данных и результата}
for i:=0 to kolvo do writeln(f,'x= ',uzel[i]:8:4,' f(x)=',fun[i]:8:4);
writeln(f,'Интерполяционный полином');
for i:=1 to kolvo do if i>1 then write (f,'+(',koef[i]:8:4,')*x^',i)
else write (f,'+(',koef[i]:8:4,')*x');
{Вывод содержимого записанного файла на экран}
procedure grafik(kolvo:integer; uzlbl,funktsiya:mas; c:mas);
{Построение графика полученной функции}
var driver,mode,Err,a1,b1,z,i,j:integer; s:string; xt,yt:real;
InitGraph(driver,mode,'d:\tp7\bp\bgi');
if err<>grok then writeln('Ошибка при инициализации графического режима')
settextstyle(smallfont,horizdir,3);
putpixel(round(320+xt*32),round(240-yt*24),5);
moveto(round(320+uzlbl[0]*32),round(240-funktsiya[0]*24));
for j:=0 to kolvo do yt:=yt+c[j]*vozvedenie_v_stepenb(uzlbl[i],j);
lineto(round(320+xt*32),round(240-yt*24));
moveto(round(320+xt*32),round(240-yt*24));
Writeln('Программа осуществляет интерполирование функции, заданной в узлах');
writeln(`введите значение промежуточной точки');
writeln('Нажмите Enter для просмотра графика функции, затем еще раз для выхода из программы');
writeln('Нажмите Enter для просмотра графика функции, затем еще раз для выхода из программы');
Вычислить разделенные разности 1-го, 2-го, 3-го порядков (n=3) и занести их в диагональную таблицу.
Разделенные разности первого порядка:
Разделенные разности второго порядка:
Разделенная разность третьего порядка:
Интерполяционный многочлен Ньютона для заданной табличной функции имеет вид:
График интерполяционного многочлена будет таким:
procedure zapisb(koef:mas; uzel,fun:mas; kolvo:integer; var f:text);
{В данной процедуре осуществляется запись в файл данных и результата}
for i:=0 to kolvo do writeln(f,'x= ',uzel[i]:8:4,' f(x)=',fun[i]:8:4);
writeln(f,'Интерполяционный полином');
for i:=1 to kolvo do if i>1 then write (f,'+(',koef[i]:8:4,')*x^',i)
else write (f,'+(',koef[i]:8:4,')*x');
{Вывод содержимого записанного файла на экран}
procedure grafik(kolvo:integer; uzlbl,funktsiya:mas; c:mas);
{Построение графика полученной функции}
var driver,mode,Err,a1,b1,z,i,j:integer; s:string; xt,yt:real;
InitGraph(driver,mode,'d:\tp7\bp\bgi');
if err<>grok then writeln('Ошибка при инициализации графического режима')
settextstyle(smallfont,horizdir,3);
3. Среднеквадратическое приближение функции
Однако, уже при n > 5 матрица такой системы оказывается настолько плохо обусловленной, что полученные из (3.4) значения a j оказываются мало пригодными для вычисления P n (x). Поэтому, при необходимости построения полиномов наилучшего среднеквадратичного приближения более высоких степеней применяют другие алгоритмы, например, метод сингулярного разложения.
1 - подобрать функцию так, чтобы выполнялось неравенство
2 - найти наилучшее приближение, т.е. такую функцию , чтобы было справедливым соотношение
Далее займемся отысканием наилучшего приближения.
Разложим функцию по системе линейно независимых функций :
В дальнейшем для сокращения записи будем пользоваться определением скалярного произведения в пространстве функций :
Подставляя (3.7) в условие (3.6), получим
Дифференцируя это выражение по и приравнивая производные нулю, получим
Определитель этой системы есть определитель Грама функций . В силу их линейной независимости этот определитель не равен нулю. Следовательно, из системы (3.8) можно найти коэффициенты , определяющие функцию согласно (3.6) и минимизирующие интеграл от погрешности . Таким образом, наилучшее среднеквадратичное приближение существует и оно единственно.
При использовании ортонормированной системы функций система (3.8) упрощается:
т.е. являются коэффициентами Фурье, а наилучшее приближение есть ряд Фурье, обрываемый на каком-то члене.
Доказано, что в любом линейно нормированном пространстве при линейной аппроксимации вида (3.4) наилучшее приближение существует, хотя оно может быть не единственным.
В тех случаях, когда функции не ортогональны, при определитель Грама уменьшается, приближаясь к нулю. Тогда система становится плохо обусловленной и ее решение дает большую погрешность. В этой ситуации обычно берут не более пяти-шести членов в сумме (3.7).
В качестве чаще всего используют полиномы Лежандра, Чебышева, Лагерра, Эрмита, ортогональные с заданным весом.
Рассмотрим частный случай, когда необходимо найти наилучшее приближение функции, заданной таблично. Для вещественных функций, заданных на конечном множестве точек, скалярное произведение определяется формулой
Условие наилучшего среднеквадратичного приближения записывается следующим образом:
Полагая , где , и подставляя этот многочлен в (3.10), придем к системе (3.8), в которой скалярные произведения вычисляют согласно (3.9). Описанная процедура аппроксимации носит название метода наименьших квадратов.
Наиболее употребительный вариант метода наименьших квадратов соответствует случаю степенного вида функций , т.е. , причем .
Система уравнений (3.8) при этом принимает вид
Рис 3.3 Процедура среднеквадратичного приближения
x[1]:=0;y[1]:=0.290234387293458; x[2]:=0.25;y[2]:=0.201247759722173;
x[3]:=0.5;y[3]:=0.0712686786428094;x[4]:=0.75; y[4]:=0.044294935464859;
x[5]:=1;y[5]:=-0.0745576142333448; x[6]:=1.25;y[6]:=-0.0807833694852889;
x[7]:=1.5;y[7]:=-0.233371530473232;x[8]:=1.75;y[8]:=-0.283957027737051;
x[9]:=2;y[9]:=-0.308697660081089;x[10]:=2.25;y[10]:=-0.42091366359964;
x[11]:=2.5;y[11]:=-0.516991161741316;x[12]:=2.75;y[12]:=-0.427710095947851;
x[13]:=3;y[13]:=-0.374748698528856;x[14]:=3.25;y[14]:=-0.229905794281513;
x[15]:=3.5;y[15]:=-0.205365492492496639;x[16]:=3.75;y[16]:=-0.129155068378896;
x[17]:=4;y[17]:=-0.0438349825330079;x[18]:=4.25;y[18]:=0.0294586319476366;
x[19]:=4.5;y[19]:=0.132592592108995;x[20]:=4.75;y[20]:=0.206369574274868;
procedure srpribl (xx:mas1;a:mas2);
for k1:=s+1 to m+1 do a[z,k1]:=a[z,k1]+a[z,s]*a[s,k1]
xx[m]:=a[m,m+1]/a[m,m]; writeln(' xx[',m,']=',xx[m]:2:3);
for j:=i+1 to m do l:=l-xx[j]*a[i,j];
xx[i]:=l/a[i,i]; writeln(' xx[',i,']=',xx[i]:2:3)
procedure Grafik (var x,y:mas;xx:mas1)
writeln ('Oshibka v inicializacii grafika');
circle (round (x[i]*150),round (y[i]*100),1);
circle (round (x[i]*150),round (xx[i]*100),1);
line (round (x[i-1]*150),round(xx[i-1]*100),round (x[i]*150),
writeln(y[i]:2:3,' ',xx[1]+xx[2]*x[i]:2:3);
Найти тригонометрический многочлен наилучшего среднеквадратичного приближения наименьшей степени со среднеквадратичным отклонением меньшим для функции
Вычислим частичные суммы ряда Фурье
Вычислим среднеквадратичное отклонение
Найдем минимальное , при котором будет меньше
Следовательно многочлен степени является наименьшим многочленом, удовлетворяющим нашим условиям. Построим график этого многочлениа и исходной функции
Построим график среднеквадратичного отклонения
Найдем минимальное , при котором будет меньше
Следовательно, многочлен степени является наименьшим многочленом, удовлетворяющим нашим условиям. Построим график этого многочлениа и исходной функции
Построим график среднеквадратичного отклонения
4. Численное интегрирование функций методом Гаусса
где -- число точек, в которых вычисляется значение подынтегральной функции. Точки называются узлами метода, числа -- весами узлов. При замене подынтегральной функции на полином нулевой, первой и второй степени получаются соответственно методы прямоугольников, трапеций и парабол (Симпсона). Часто формулы для оценки значения интеграла называют квадратурными формулами.
Метод прямоугольников получается при замене подынтегральной функции на константу. В качестве константы можно взять значение функции в любой точке отрезка . Наиболее часто используются значения функции в середине отрезка и на его концах. Соответствующие модификации носят названия методов средних прямоугольников, левых прямоугольников и правых прямоугольников. Формула для приближенного вычисления значения определённого интеграла методом прямоугольников имеет вид
Если функцию на каждом из частичных отрезков аппроксимировать прямой, проходящей через конечные значения, то получим метод трапеций.
Площадь трапеции на каждом отрезке:
Погрешность аппроксимации на каждом отрезке:
Полная формула трапеций в случае деления всего промежутка интегрирования на отрезки одинаковой длины h:
Использовав три точки отрезка интегрирования можно заменить подынтегральную функцию параболой. Обычно в качестве таких точек используют концы отрезка и его среднюю точку. В этом случае формула имеет очень простой вид
Если разбить интервал интегрирования на 2N равных частей, то имеем
Если разбить интервал интегрирования на 2N равных частей, то имеем
Приближение функции одним полиномом на всем отрезке интегрирования, как правило, приводит к большой ошибке в оценке значения интеграла.
Для уменьшения погрешности отрезок интегрирования разбивают на части и применяют численный метод для оценки интеграла на каждой из них.
При стремлении количества разбиений к бесконечности, оценка интеграла стремится к его истинному значению для любого численного метода.
Приведённые выше методы допускают простую процедуру уменьшения шага в два раза, при этом на каждом шаге требуется вычислять значения функции только во вновь добавленных узлах. Для оценки погрешности вычислений используется правило Рунге.
Описанные выше методы используют фиксированные точки отрезка (концы и середину) и имеют низкий порядок точности (0 --- методы правых и левых прямоугольников, 1 --- методы средних прямоугольников и трапеций, 3 --- метод парабол (Симпсона)). Если мы можем выбирать точки, в которых мы вычисляем значения функции , то можно при том же количестве вычислений подынтегральной функции получить методы более высокого порядка точности. Так для двух (как в методе трапеций) вычислений значений подынтегральной функции, можно получить метод уже не 1-го, а 3-го порядка точности:
В общем случае, используя точек, можно получить метод с порядком точности . Значения узлов метода Гаусса по точкам являются корнями полинома Лежандра степени .
Значения узлов метода Гаусса и их весов приводятся в справочниках специальных функций. Наиболее известен метод Гаусса по пяти точкам.
В общем случае, используя точек, можно получить метод с порядком точности . Значения узлов метода Гаусса по точкам являются корнями полинома Лежандра степени .
Значения узлов метода Гаусса и их весов приводятся в справочниках специальных функций. Наиболее известен метод Гаусса по пяти точкам.
Недостаток метода Гаусса состоит в том, что он не имеет лёгкого (с вычислительной точки зрения) пути оценки погрешности полученного значения интеграла. Использование правила Рунге требует вычисления подынтегральной функции примерно в таком же числе точек, не давая при этом практически никакого выигрыша точности, в отличие от простых методов, где точность увеличивается в разы при каждом новом разбиении. Кронродом был предложен следующий метод оценки значения интеграла
где -- узлы метода Гаусса по точкам, а параметров , , подобраны таким образом, чтобы порядок точности метода был равен .
Тогда для оценки погрешности можно использовать эмпирическую формулу:
где -- приближённое значение интеграла, полученное методом Гаусса по точкам.
function F(x:real):real;{интегрируемая функция}
function gauss_calc(a,b:real):real; {метод Гаусса}
s1:=g10c1*(f(m+n*g10x1)+f(m-n*g10x1));
s2:=g10c2*(f(m+n*g10x2)+f(m-n*g10x2));
s3:=g10c3*(f(m+n*g10x3)+f(m-n*g10x3));
s4:=g10c4*(f(m+n*g10x4)+f(m-n*g10x4));
s5:=g10c5*(f(m+n*g10x5)+f(m-n*g10x5));
{рекурсивная ф-ция подсчета с заданной точностью}
{ gc - ранее посчитаный интеграл на интервале (a,b)}
function gauss(a,b,eps,gc:real):real;
t:=(a+b)/2; {разбиваем интервал на две половинки}
ga:=gauss_calc(a,t); {в каждой половинке считаем интеграл}
if abs(ga+gb-gc)>eps then {проверяем точность вычислений}
ga:=gauss(a,t,eps/2,ga); {рекурсия для первой половинки}
gb:=gauss(t,b,eps/2,gb); {рекурсия для второй половинки}
end; {при этом точность повышаем, чтобы }
{при сложении ошибка не накапливалась}
gauss:=ga+gb; {интеграл = сумме интегралов половинок}
procedure inputnum(prm:string;var num:real;lb,ub:real);
write('Введите ',prm,' ');readln(num);
if q then writeln('Число должно быть от ', lb:0:0,' до ',ub:0:0);
Writeln('==========================================================');
Writeln('1 - решать тестовый пример a=0 b=1.2 k=10 eps = 0.0001');
Writeln('2 - решать пример с произвольными a, b, k, eps');
Writeln('----------------------------------------------------------');
Writeln('==========================================================');
procedure outputgraph(a,b,a1,b1:real;n:integer);
var i,j,j1,k:integer;t,y1,y2,x1,x2,x,y:double;s:string;
if i=0 then moveto(i,j) else lineto(i,j);
if i=0 then moveto(i,j) else lineto(i,j);
if (x>=a) and (x<=b) then line(i,j,i,j1);
Integral:=gauss(a,b,eps,gauss_calc(a,b));
writeln('Интеграл = ',integral:0:6);
inputnum('точность',eps,0.000000001,1);
Решение задач вычислительными методами. Решение нелинейных уравнений, систем линейных алгебраических уравнений (метод исключения Гаусса, простой итерации Якоби, метод Зейделя). Приближение функций. Численное интегрирование функций одной переменной. учебное пособие [581,1 K], добавлен 08.02.2010
Решение нелинейных уравнений методом касательных (Ньютона), особенности и этапы данного процесса. Механизм интерполирования функции и численное интегрирование. Приближенное решение обыкновенных дифференциальных уравнений первого порядка методом Эйлера. курсовая работа [508,1 K], добавлен 16.12.2015
Численные методы решения систем линейных уравнений: Гаусса, простой итерации, Зейделя. Методы аппроксимации и интерполяции функций: неопределенных коэффициентов, наименьших квадратов. Решения нелинейных уравнений и вычисление определенных интегралов. курсовая работа [322,7 K], добавлен 27.04.2011
Математическая формулировка задачи, существующие численные методы и схемы алгоритмов. Интерполирование функции, заданной в узлах, методом Вандермонда. Среднеквадратичное приближение функции. Вычисление интеграла функций по составной формуле трапеций. курсовая работа [3,4 M], добавлен 14.04.2009
Характеристика способов решения систем линейных алгебраических уравнений (СЛАУ). Описание проведения вычислений на компьютере методом Гаусса, методом квадратного корня, LU–методом. Реализация метода вращений средствами системы программирования
Численные методы решения типовых математических задач курсовая работа. Математика.
Практическая Работа Расчет Цепи Постоянного Тока
Логистика На Предприятии Дипломная
Реферат по теме Методические материалы для работы по профилактике борьбы с курением и с вредными привычками
Формирование Профессиональной Компетенции Диссертация
Реферат Виды Организации
Реферат: Ластоногие
Курсовая работа: Психологическое консультирование одаренных детей
Презентация На Тему Стекло. Керамика
Курсовая работа по теме Производство картофеля в странах Европы в 2022 году
Курсовая работа по теме Наближені методи розв’язку нелінійних рівнянь
Реферат по теме Дон Кихот и князь Мышкин - 'Образ печальный'
Реферат по теме Инновационное совершенствование регионов России
Раздел Наследства По Гражданскому Законодательству Рф Диссертация
Реферат: Интонация
Курсовая работа по теме Измерение прогиба балки в MathCAD
Исторический Опыт Аргументы Для Сочинения
Контрольная работа по теме Нотариальное удостоверение правовых сделок
Реферат: Планирование сестринского ухода при холецистите
Реферат: Психофизиология внимания 2
Роль В Обществе Реферат
Товарознавча характеристика кисломолочного сиру - Кулинария и продукты питания курсовая работа
Гражданско-правовая ответственность, ее виды и основания - Государство и право курсовая работа
Основные принципы учения Дарвина об эволюции - Биология и естествознание реферат


Report Page