чЯч. Учебнометодическое пособие по курсу Методы вычислений для студентов ivv курсов всех форм обучения
![]()
|
Приложение. Для выполнения задания можно использовать следующие процедуры (на языке Паскаль): 1. Процедура simps, реализующая алгоритм правила Симпсона (парабол): Procedure simps(a,b:real; var n:longint; var y:real); {Входные параметры: a – левый конец отрезка интегрирования; b – правый конец отрезка интегрирования; n - число частичных отрезков разбиения. Выходные параметры: y – значение интеграла. Здесь f имя функции, вычисляющей значения подинтегральной функции.} var i :longint; h,x :real; begin h:=(b-a)/n; y:=0; x:=a; for i:=1 to n do begin y:=y+f(x)+4*f(x+0.5*h)+f(x+h); x:=x+h end; y:=y*h/6 end; 2. Процедура gauss, реализующая алгоритм составной формулы Гаусса с пятью узлами: Procedure gauss(a,b:real; var n:word; var y:real); {Входные параметры: a – левый конец отрезка интегрирования; b – правый конец отрезка интегрирования; n - число частичных отрезков разбиения. Выходные параметры: y – значение интеграла. Здесь f – имя функции, вычисляющей значения подинтегральной функции; vec – одномерный массив (type vec=array[1..5]of real).} var i,j :word; h,x,x1 :real; ag,xg :vec; z :real; begin ag[1]:=0.2369268850; xg[1]:=-0.9061798459; ag[2]:=0.4786286705; xg[2]:=-0.5384693101; ag[3]:=0.5688888889; xg[3]:=0.0; ag[4]:=ag[2]; xg[4]:=-xg[2]; ag[5]:=ag[1]; xg[5]:=-xg[1]; h:=(b-a)/n; z:=0; x1:=a+0.5*h; for j:=1 to n do begin for i:=1 to 5 do begin x:=x1+0.5*h*xg[I]; z:=z+ag[i]*f(x); end; x1:=x1+h end; y:=z*0.5*h end; II. Численное дифференцирование 2.1. Постановка задачи. Применение интерполяционного многочлена Лагранжа Пусть на отрезке ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Один из универсальных способов конструирования формул численного дифференцирования состоит в том, что по функции ![]() ![]() ![]() ![]() Разность ![]() называется погрешностью формулы численного дифференцирования (33). Для получения оценок погрешности формулы (33) для заданного ![]() ![]() ![]() ![]() Замечание 9. Для конструирования формул численного дифференцирования можно также использовать интерполяционные сплайны. В вычислительной практике для вычисления ![]() ![]() ![]() ![]() Приведем простейшие формулы численного дифференцирования. 1) ![]() ![]() Если ![]() ![]() 2) ![]() ![]() Если ![]() ![]() 3) ![]() ![]() Если ![]() ![]() Представления погрешности (34) формулы численного дифференцирования (33), выражаемые через производные функции ![]() Теорема 4. Пусть ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() где ![]() ![]() Замечание 10. Оценка (35) с постоянными ![]() ![]() ![]() ![]() ![]() ![]() 2.2. Сходящиеся формулы численного дифференцирования Пусть ![]() ![]() ![]() ![]() ![]() где ![]() ![]() Разность ![]() называется погрешностью формулы численного дифференцирования (36). Формула численного дифференцирования (36) называется сходящейся, если ![]() ![]() ![]() ![]() Будем говорить, что формула (36) аппроксимирует ![]() ![]() ![]() ![]() ![]() Функцию комплексного переменного ![]() ![]() назовем характеристической функцией (символом) формулы численного дифференцирования (36). Теорема 5. Формула численного дифференцирования (36) является сходящейся тогда и только тогда, когда ее характеристическая функция ![]() ![]() Замечание 11 . В представлении (38) характеристической функции сходящейся формулы численного дифференцирования множитель ![]() имеет ![]() Для построения формулы численного дифференцирования, имеющей ![]() Теорема 6. Для того чтобы формула численного дифференцирования (36) аппроксимировала ![]() ![]() ![]() ![]() Система (39) содержит ![]() ![]() ![]() Из теоремы 6 следует, что для построения искомой формулы численного дифференцирования (36) нужно найти решение системы (39). Выберем ![]() ![]() ![]() ![]() Таким образом, для любых ![]() ![]() ![]() ![]() 2.3. Задание. Для заданных ![]() ![]() ![]() ![]() Составитель Трофимов Валерий Павлович Редактор Тихомирова О.А. |