ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ ФУНКЦИЙ 6.

advertisement
6. ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ ФУНКЦИЙ
К численному (приближенному) дифференцированию чаще всего прибегают, когда приходится вычислять производные от функций, заданных таблично,
или, когда непосредственное дифференцирование затруднительно.
Для вывода формул численного дифференцирования заменяют функцию
f ( x) , заданную на отрезке a; b  интерполирующей функцией P( x) (чаще всего
полиномом), а затем полагают
f ( x)  P( x) при x  a; b .
Аналогично поступают при нахождении производных высших порядков.
Если для интерполирующей функции P( x) известна погрешность
R( x)  f ( x)  P( x) ,
то погрешность производной P ( x) выражается формулой:
r ( x)  f ( x)  P ( x)  R( x) ,
т. е. погрешность производной интерполирующей функции равна производной
от погрешности этой функции.
То же справедливо и для производных высших порядков.
Вообще говоря, численное дифференцирование представляет собой операцию менее точную, чем интерполирование. Действительно, близость друг другу
ординат двух кривых y  f ( x) и y  P( x) на отрезке a; b  еще не гарантирует
близости на этом отрезке их производных f ( x) и P ( x) , т. е. малого расхождения
угловых коэффициентов касательных к рассматриваемым кривым при одинаковых значениях аргумента (рис. 8).
6.1. Численное дифференцирование на основе
первой интерполяционной формулы Ньютона
Пусть функция y  f ( x) , задана в равноотстоящих точках xi , i  0, n отрезка
a; b
с помощью значений y i  f ( xi ) , i  0, n .
Для нахождения производных
y   f ( x) , y   f ( x) и т. д. функцию приближенно заменим интерполяционным
полиномом Ньютона, построенным для узлов xi , i  0, k , k  n :
y ( x )  y 0  q y 0 
q(q 1) 2
q(q 1)(q  2) 3
q(q 1)(q  2)(q  3) 4
 y0 
 y0 
 y0 
2!
3!
4!
x  x0
q
, xi 1  xi  h , i  0,1,2, .
h
Преобразуем этот полином:
q 3  3q 2  2q 3
q 3  3q 2  2q q 4  6q 3  11q 2  6q
y ( x)  y 0  qy 0 
 y0 


6
6
24
Так как
dy dy dq 1 dy


 
,
dx dq dx h dq
то
1
2q  1 2
3q 2  6q  2 3
2q 3  9q 2  11q  3 4
y ( x)  (y 0 
 y0 
 y0 
 y0 
h
2
6
12
3
).
Аналогично:
тогда
y ( x) 
y ( x ) 
d ( y ) d ( y ) dq 1 d ( y )


 
,
dx
dq dx h dq
1 2
6q 2  18q  11 4
3
(

y

(
q

1)

y

 y0 
0
0
h2
12
).
Таким же способом можно вычислить и производные функции любого порядка.
З а м е ч а н и е 1 . При нахождении производных y ( x) , y ( x) , … в фиксированной точке x в качестве x0 следует выбирать ближайшее табличное
значение аргумента.
З а м е ч а н и е 2 . Формулы численного дифференцирования значительно
упрощаются, если исходным значением x оказывается один из узлов таблицы.
Так как в этом случае каждое табличное значение можно считать за начальное, то
положим x  x0 , q  0 .
Тогда:
 2 y 0 3 y 0  4 y 0
1
y ( x0 )  ( y 0 



h
2
3
4
y ( x ) 
1 2
11 4
3
(

y


y

 y0 
0
0
h2
12
),
).
З а м е ч а н и е 3 . При вычислениях на компьютере производные выражают не через конечные разности, а непосредственно через значения функции.
Оценка погрешностей.
Если Pn  x  — интерполяционный полином Ньютона, содержащий разности
y0 , 2 y0 , , n y0 и Rn ( x )  y ( x )  Pn ( x) — соответствующая погрешность, то поRn ( x )  y ( x )  Pn( x ) .
грешность в определении производной
q(q  1) (q  n) n 1
y () ,
Как это было получено выше, Rn ( x )  hn 1
(n  1)!
где  — некоторое промежуточное число между значениями x0 , x1, , xn , x .
Поэтому, предполагая, что y ( x )  C n  2 [a, b] , получим:

dRn ( x ) dq
hn  ( n 1)
d
d
Rn ( x ) 
 
() q(q 1) (q  n )  q(q 1) (q  n ) y ( n 1) () .
y
dq dx (n  1)! 
dq
dq

Для оценки погрешности в узле таблицы при x  x0 , q  0 , имея в виду, что
hn ( n 1)
(q  n)q 0
y
() .
n 1
Так как y ( n 1) () во многих случаях трудно оценить, то при достаточно малом
d
q(q  1)
dq
 (1) n ! , получим выражение: Rn ( x0 )  (1)n
n
n 1y 0
()  n 1 .
h приближенно полагают y
h
n 1
y0
n 

R
(
x
)

(

1)
Тогда
.
n
0
h(n  1)
( n 1)
Аналогично находится погрешность Rn ( x0 ) для второй производной y ( x0 ) .
4
6.2. Численное дифференцирование на основе
интерполяционной формулы Лагранжа
Пусть x0 , x1, , xn — равноотстоящие узлы, т. е. xi 1  xi  h , i  0, n  1
и для функции y  y ( x) известны значения y i  y ( xi ) , i  0, n.
Построим интерполяционный полином Лагранжа:
( 1)n  i y i q(q  1) (q  n)
Ln ( x )  

.
i
!(
n

i
)!
q i
i 0
n
Отсюда, учитывая, что
где q 
x  x0
,
h
dy dy dq 1 dy
, получаем:


 
dx dq dx h dq
1 n (1)n  i y i d  q(q  1) (q  n) 
y ( x )  Ln ( x )  

.
h i 0 i !(n  1)! dq 
q i

Аналогично могут быть найдены производные высших порядков.
rn ( x )  Rn ( x )  y ( x )  Ln ( x )
Для оценки погрешности
воспользуемся известной формулой погрешности полинома Лагранжа:
y ( n 1) ( x )
Rn ( x )  y ( x )  Ln ( x ) 
( x ) ,
(n  1)!
где  — промежуточное значение между точками x0 , x1, , xn , x .
Предполагая, что y ( x)  C 2 a, b  , выводим:
rn ( x )  Rn ( x ) 
1  ( n 1)
d

 y ( n 1) ()  .
()  ( x )  ( x ) 
y
(n  1)! 
dx

d
 y ( n 1) () — ограничена, и, учитывая формулу (1),
dx
получим погрешность производной в узлах (заметим, что здесь q  0 , вернее
( xi ) ):
Предполагая, что
( 1)n  i i !(n  i )! h n ( n 1)
rn ( xi )  Rn ( xi ) 
y
() ,
(n  1)!
где  — промежуточное значение между x0 , x1, , xn .
5
Download