
- •Тема 4. Численное дифференцирование и интегрирование
- •4.1. Численное дифференцирование: постановка задачи, вывод формул
- •4.2. Оценка погрешности численного дифференцирования
- •4.3. Обусловленность численного дифференцирования.
- •4.4. Формулы для высших и частных производных
- •4.5. Задача численного интегрирования
- •4.6. Формула трапеций
- •4.7. Формула Симпсона
- •4.7.2. Оценка погрешности формулы Симпсона.
- •4.8. Составные формулы численного интегрирования
- •4.9. Метод дробления шага. Правило Рунге
- •4.10. Обусловленность квадратурных формул
- •Тема 5. Численное решение обыкновенных дифференциальных уравнений (оду)
- •5.1. Основные понятия
- •5.2. Классификация численных методов решения задачи Коши для уравнения 1-го порядка
- •Результаты расчетов примера 5.3
- •5.3. Точность и устойчивость
- •5.3.1. Свойства задачи Коши
- •5.3.2. Свойства численных методов решения задачи Коши
- •5.4.1. Подходы к выводу расчётных формул.
- •5.4.2. Формулы методов 4-го порядка.
- •Метод Адамса-Моултона. Это 3-х шаговый неявный метод.
- •5.5. Методы Рунге-Кутты
- •Методы 4-го порядка точности. Результаты расчетов примера 5.3
- •5.6. Правило Рунге-Ромберга
- •5.7. Системы дифференциальных уравнений
- •Приложение Программа решения системы дифференциальных уравнений
- •Текст программы
Тема 4. Численное дифференцирование и интегрирование
4.1. Численное дифференцирование: постановка задачи, вывод формул
Простейшие формулы. Численное дифференцирование применяется в тех случаях, когда функцию трудно или невозможно продифференцировать аналитически. Например, так бывает, когда функция задана таблично или для её вычисления нет явного аналитического выражения, а имеется некоторый, достаточно сложный алгоритм.
Предположим, что
в окрестности точки х
функция у
дифференцируема достаточное количество
раз. Исходя из определения производной
,
естественно попытаться использовать
эту формулу для приближённого вычисления
производной. Можно получить две простейшие
формулы:
и
,
заменяя в точной формуле производной бесконечно малое приращение аргумента х конечной величиной: h и – h, соответственно. Здесь h > 0 – некоторая малая величина (шаг численного дифференцирования).
Общий подход к выводу формул. Приведённые простейшие формулы численного дифференцирования выводятся достаточно легко. Однако они имеют весьма низкую точность и применяются очень редко. Для вывода более совершенных формул и их анализа необходимо привлечь более серьёзный математический аппарат. Основой для построения различных приближённых формул, в том числе и для формул численного дифференцирования, часто являются методы аппроксимации функций, изложенные в предыдущей теме.
Предположим, что в окрестности точки x функция y аппроксимируется некоторой функцией Y, причём производная Y(k)(x) легко вычисляется аналитически. Естественно в такой ситуации попытаться воспользоваться приближённой формулой y(k)(x) Y(k)(x). Наиболее просто этот подход осуществляется с помощью интерполяции.
Пусть Y(x) = Pn(x) – интерполяционный многочлен n-й степени с узлами интерполяции x0 < x1 < …< xn и x [x0 , xn]. В этом случае формула численного дифференцирования примет вид y(k)(x) P(k)(x), 0 k n.
Наиболее употребляемыми формулами численного дифференцирования являются трёхточечные формулы, полученные на основе интерполяции многочленом 2-й степени. Пусть имеем равноотстоящие узлы и h = xi+1 – xi. Тогда по формулам разделённых разностей будем иметь:
;
;
=
.
Обозначим
.
Тогда по формуле Ньютона P2(t)
= y0
+ 1
[x0,
x1]
t
+ 2t(t–1).
Отсюда
Следовательно
(4.1)
где .
Формула (4.1) позволяет получить значение производной в любой точке x [x0 , x2]. Часто значение х совпадает с каким-нибудь из узлов xi. Тогда формула (4.1) существенно упрощается. При x = x0 будет t = 0, при x = x1 будет t = 1, при x = x2 будет t = 2. Тогда
;
;
(4.2)
.
Пример 4.1.
Пусть y(x)
= ex;
xi
= 0; 0.1; 0.2; h
= 0.1. По формулам (4.2) получаем
0.9964;
1.1070;
1.2176
при точных значениях
1.0000;
1.1052;
1.2214.
Погрешности составляют 3.610–3
, – 1.810–3,
3.810–3,
соответственно. Таким образом, погрешность
в средней точке примерно в 2 раза меньше,
чем в крайних.
4.2. Оценка погрешности численного дифференцирования
Воспользуемся известной оценкой (3.9) погрешности интерполирования многочленом Pn(x):
Rn(z)
=
y(z)
– Pn(z)
=
.
Отсюда погрешность численного дифференцирования rn(x) равна:
rn(x)
=
=
+
.
Напомним, что Пn +1(х) = (х – x0)(х – x1) … (x– xn). Для вычисления его производной воспользуемся логарифмированием. Имеем
ln(Пn
+1(х)) =
.
Продифференцируем обе части данного равенства:
=
.
Отсюда
=
.
Вычислим значения остаточного члена в узлах xi. Поскольку Пn+1(xi) = 0, то второе слагаемое в формуле rn(x) равно 0. Тогда при x = x0 получим
=
=
+
+
.
В первой дроби сократится (х0 – x0), останется
(х0 – x1) (х0 – x2) … (x0– xn) = (– h)(– 2h)… (– nh) = (–1)n n!hn.
Остальные дроби обратятся в 0, т.к. в них есть несократимый множитель (х0 – x0). Т.е.
rn(x0)
= (–1)nhn
.
Аналогично при x = x1 получим
(х1 – x0) (х1 – x2) … (x1– xn) = h (– h)(– 2h)… (– (n–1)h) = (–1)n–1 (n–1)!hn.
rn(x1)
= (–1)n–1hn
.
И т.д. Для произвольного x = xi имеем формулу:
rn(xi)
= (–1)n–ihn
.
(4.3)
Воспользуемся формулой (4.3) для оценки погрешностей формул (4.2):
r2(x0)
=
;
r2(x1)
=
;
r2(x2)
=
.
(4.4)
Здесь i – некоторые точки на (x0 , xn).
Как видим, результаты примера 4.1 соответствуют полученным формулам: погрешность r2(x1) действительно в 2 раза меньше остальных и имеет иной знак.