Численное дифференцирование

 

Формулы численного дифференцирования. Погрешности, возникающие при численном дифференцировании. Выбор оптимального шага численного дифференцирования

 

При численном решении многих практических задач часто возникает необходимость получить значения производных различных порядков функции y=f(x), заданной в виде таблицы или в виде сложного аналитического выражения, непосредственное дифференцирование которого затруднено. В таких случаях используются приближенные методы дифференцирования.

Рассматривается следующая задача:

На сетке  в узлах xi заданы значения yi=f(xi) функции f(x), непрерывно дифференцируемой n+1+m раз. Требуется вычислить производную  и оценить погрешность.

Один из возможных путей решения этой задачи заключается в применении теории интерполирования. Построим для функции f(x) по узлам xi, i=0,1,...,n интерполяционный полином Pn(x) с остаточным членом Rn(x) так, что

.                                    (1)

Продифференцируем правую и левую части соотношения (1) по x m раз и положим x=x*

.              (2)

Производная от многочлена Pn(m)(x) применяется для приближенного представления искомой производной f(m)(x):

.                                      (3)

Вычисление высших производных может быть сведено к последовательному вычислению низших, поэтому мы остановимся более подробно на получении расчетных формул для  . Приближенные формулы для вычисления производных в начале и в конце таблицы получаются путем дифференцирования интерполяционных многочленов Ньютона, а для вычисления производных в середине таблицы - путем дифференцирования интерполяционных многочленов Стирлинга и Бесселя.

Например, если выбрать узлы x0,x1,x2,x3,x4 и воспользоваться первым интерполяционным многочленом Ньютона, то мы получим формулу численного дифференцирования вида

       (4)

где .

На практике часто выгоднее выражать значения производных не через конечные разности, а непосредственно через значения функции в узлах. Для получения таких безразностных формул удобно воспользоваться многочленом Лагранжа с равномерным расположением узлов (xi-xi-1=h,  i=1,2,...,n).

Запишем многочлен Лагранжа второй степени (три узла интерполирования).

 (5)

Тогда

 (6)

В основном формулы численного дифференцирования применяют для вычисления производных в узлах xi. Подставим в равенство (6) последовательно значения x=x0;x1;x2. Получим:




;

(7)

;

(8)

.

(9)

Остаточные члены формул численного дифференцирования (7) - (9) получим дифференцированием остаточного члена

многочлена Лагранжа (5) и последовательной подстановкой в выражение для  значений x=x0;x1;x2.

;

(10)

;

(11)

.

(12)

Записывая интерполяционный многочлен Лагранжа третьей степени (четыре узла) и его остаточный член, получим следующие формулы для производных в узлах:

;

(13)

;

(14)

;

(15)

.                (16)

В случае многочлена четвертой степени (пять узлов) получим:

;

(17)

;

(18)

;

(19)

;

(20)

.

(21)

 

Выбор оптимального шага численного дифференцирования

 

Оценка абсолютной погрешности численного дифференцирования складывается из остаточной погрешности, оцениваемой величиной , и вычислительной погрешности, определяемой приближенным заданием величин yi, i=0,1,...,n, (погрешностью округления результата пренебрегаем). Рассмотрим для определенности формулу (19).

Приближенное значение производной

                   (22)

имеет остаточную погрешность

и вычислительную погрешность согласно равенству (9) темы I

где   - абсолютная погрешность каждого из чисел yi, i=0,1,...,n.

     Таким образом, полная погрешность формулы численного дифференцирования (22)-

Для малости   необходима малость h, но при уменьшении h растет . Из уравнения  получаем значение h*, при котором погрешность  формулы (22) имеет минимальное значение.

Задача.

Функция f(x) задана таблицей своих значений, верных в написанных знаках. Найти первую производную этой функции в точках x1*=0,7 и x2*=1,0. Оценить погрешности результатов. Найти оптимальный шаг h* для каждой из формул численного дифференцирования.

 


Xi

0,5

0,6

0,7

0,8

0,9

1,0

yi

0,4794

0,5646

0,6442

0,7174

0,7833

0,8415

 

Решение.

Точка x1*=0,7 - центральный узел таблицы. Для вычисления в данной задаче следует воспользоваться одной из формул (8), (14), (15), (18).

1) Воспользуемся формулой (8), обозначив x0=0,6; x1=0,7; x2=0,8. Тогда

Остаточная погрешность результата в соответствии с формулой (11) -

где

Чтобы оценить M3, построим для данной функции таблицу конечных разностей.

 

xi

yi

0,5

0,4794

 

 

 

 

0,0852

 

 

 

0,6

0,5646

-0,0056

 

 

0,0796

-0,0008

 

0,7

0,6442

-0,0064

-0,0001

0,0732

-0,0009

0,8

0,7174

-0,0073

0,0003

0,0659

-0,0006

0,9

0,7883

-0,0077

 

0,0582

 

 

1,0

0,8415

 

 

 

 

 

 

 

 

 

Вычислительная погрешность результата -

где  - абсолютная погрешность величин yi.

 

 

Определим оптимальный шаг для использованной формулы численного дифференцирования.

 

 

откуда

.

 

1)     Решим теперь данную задачу с помощью формулы (14), обозначив x0=0,6; x1=0,7; x2=0,8; x3=0,9.

 

 

        Определим для этой формулы оптимальный шаг численного дифференцирования.

Точка x2*=1,0 является последним узлом таблицы. Для вычисления  служат формулы (9), (16), (21). Воспользуемся формулой (16), обозначив x0=0,7; x1=0,8; x2=0,9; x3=1,0.

 

 .

 

Определим соответствующий данной формуле оптимальный шаг таблицы.

 

Задача B

 

Пользуясь таблицей задачи Б2, вычислить первую производную заданной функции в точке x* и оценить погрешность результата. Определить оптимальный шаг таблицы  для выбранной формулы численного дифференцирования.

 

1. x*=1,1           2. X*=1,2                3. X*=1,3                4. X*=2,0   

5. x*=2,2           6. X*=0,50             7. X*=0,52              8. X*=0,56

9. x*=0,60       10. X*=0,61            11. X*=1080           12. X*=1090                          

13. x*=1100    14. X*=1110           15. X*=1120           16. X*=2,70                        

17. x*=2,74     18. X*=2,76            19. X*=2,80            20. X*=2,84

21. x*=0,7       22. X*=0,9              23. X*=1,1              24. X*=1,3

25. x*=1,5.

 

К оглавлению

Назад к разделу "Интерполирование"

Вперед к разделу "Численное интегрирование"