Вычислительная математика. Лекции
.pdfи
g(k)(x) = k! lim g(x; x + h; x + 2h; :::; x + kh):
h!0
Рассмотрим в качестве g(x) функцию g(x) = f(x0; x1; :::; xn; x) - разделенную разность порядка (n + 1) функции f(x).
|
k |
|
|
|
|
|
|
d |
[f(x0; x1; :::; xn; x)] = k! lim f(x0; x1; :::; xn; x; x + h; x + 2h; :::; x + kh): |
||||
|
k |
|||||
dx |
h!0 |
|
|
|||
|
|
1 |
|
(n+k+1) |
|
|
Но f(x0; x1; :::; xn; x; x + h; x + 2h; :::; x + kh) = |
|
f |
|
( h), где h [a; b]. Рассмотрим последова- |
||
(n+k+1)! |
|
тельность h ! 0 и последовательность h. Последовательность h можно и не иметь предела, но так как она ограничена, то из неё можно выбрать последовательность, сходящуюся к некоторой точке [a; b]. Для этой подпоследовательности существует предел
lim f(x0; x1; :::; xn; x; x + h; x + 2h; :::; x + kh) = |
1 |
f(n+k+1)( ): |
||||||||||||||||||
|
|
|
|
|||||||||||||||||
h!0 |
|
|
|
|
|
|
|
|
|
(n + k + 1)! |
|
|
||||||||
Значение зависит от точки x. Таким образом получаем |
|
|
|
|
|
|
|
|
|
|||||||||||
|
d(k) |
|
|
|
|
|
|
|
k! |
|
f(n+k+1)( ); |
|
||||||||
|
|
|
f(x0 |
; x1 |
; :::; xn; x) = |
|
|
|
|
|
|
|
||||||||
|
|
(k) |
|
|
|
|
|
|
|
|||||||||||
|
dx |
|
|
|
(n + k + 1)! |
|
|
|
|
|||||||||||
оценку |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
d(k) |
|
|
|
|
|
|
|
|
k! |
|
|
|
|
|
|
|
||
|
j |
|
f(x0; x1; :::; xn; x)j |
|
|
Mn+k+1 |
|
|
||||||||||||
|
dx(k) |
(n + k + 1)! |
|
|
||||||||||||||||
и оценку |
m |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
k! |
|
|
|
|
|
|
|
|
|
||||
jrn;m(f; x)j |
|
|
Ck |
M |
|
|
max |
!(m k) |
(x) |
j |
||||||||||
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
k=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Замечание: Для равностоящих узлов xi; x0 = a; xn = b можно получить оценку rn;m(f; x) для функций f Cn+m[a; b].
Пример: Узлы x0 и x1, n=1, m=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f1 f0 |
|
|
|
|||||||||||||
|
! |
(x) = (x |
|
x )(x |
|
x ) |
N (f; x) = f(x ) |
1 + f(x |
x |
)(x |
x |
) = f + |
(x |
x ); |
|||||||||||||||||||||||
2 |
|
|
0 |
1 |
|
1 |
|
|
|
0 |
|
|
|
|
0 |
|
|
|
1 |
|
0 |
|
|
x1 x0 |
0 |
||||||||||||
f 2 C2[x0; x1]: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
r |
(f; x) = |
1 |
f00 |
( )(x |
|
x |
)(x |
|
x1); |
r |
|
(f; x) |
j |
1 |
M |
|
(x1 x0)2 |
= |
1 |
M |
h2: |
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
1 |
|
2 |
|
|
0 |
|
|
j |
1 |
|
2 |
|
2 |
|
|
4 |
|
|
8 2 |
|
|
|
|
r1;1(f; x) = f(x0; x1; x)dxd !2(x) + f0(x0; x1; x)!2(x) = 2!1 f00( 1)(2x h) + 3!1 f000( 2)(x x0)(x x1)
jr1;1(f; x)j |
1 |
|
1 h3 |
||||
|
|
M2h + |
|
M3 |
|
: |
|
2! |
3! |
4 |
С другой стороны непосредственно получаем
r1;1(f; x) = f0(x) [f(x0) + f(x1) f(x0)(x x0)]0 = f0(x) f0( ) h
и
jr1;1(f; x)j M2h:
38
5.9Полная погрешность численного дифференцирования.
Как правило значение функции f или вследствие погрешности их вычисления или вследствие их измерений известны с некоторой точностью, т.е. известны значения f (x) = f(x) + (x), где (x) - погрешность задания функции f(x).
Тогда полная погрешность интерполирования равна
f(x) (Ln(f; x) + Ln( ; x)) = rn(f; x) Ln( ; x):
сумме методической погрешности и неустранимой погрешности.
В этом параграфе мы оценим полную погрешность численного дифференцирования. Предполагая что функция f 2 Cn+2[a; b], получим
|
|
|
r |
|
(f; x) = |
|
d |
[f(x |
|
; x ; : : : ; x ; x)! |
|
|
|
(x)] |
|
|
|
|
||||||||
|
|
|
n1 |
|
|
|
n+1 |
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
dx |
0 |
1 |
|
|
n |
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
и |
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
j |
|
|
|
|
|
|
|
|
|
|
|
j |
|
|
|
|
|
|
!0 |
|
|
|||
r |
(f; x) |
|
|
|
M |
|
|
max |
! |
|
|
(x) |
+ |
|
|
|
M |
|
max |
(x) |
: |
|||||
|
|
|
|
|
|
|
(n + 1)! |
|
||||||||||||||||||
j n;1 |
|
(n + 2)! |
n+2 |
|
j |
|
n+1 |
|
|
|
|
n+1 |
x j |
n+1 |
j |
|
Относительно функции (x) мы можем предполагать только её ограниченность j (x)j :
Так как Ln( ; x) = P (xi)li(x) |
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|||||
|
|
|
d |
L ( ; x) = |
(x )l0(x) |
|
|
d |
L ( ; x) |
|
|
Xi |
l0(x) |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
dx n |
X |
|
i i |
|
jdx n |
|
|
|
|
j |
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
j i |
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=0 |
|
|
|
|
|
|
и полная погрешность оценивается величиной: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
1 |
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
j |
|
|
|
|
max !0 |
|
|
|
Xi |
|
|
l0 |
|
j |
||||
|
|
M |
|
|
max ! |
(x) |
+ |
|
M |
|
|
|
(x) + |
max |
(x) |
|||||||||
|
(n + 2)! |
n+2 |
|
j n+1 |
|
(n + 1)! |
|
n+1 |
x |
j n+1 |
|
|
=0 |
x |
j |
i |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Остановимся на одном частном случае.
Рассмотрим два узла x0 и x1 = x0 +h и функцию f 2 C2[x0; x1]. Методическая погрешность численного дифференцирования оценивается jr1;1(f; x)j M2h, а так как
Ln( ; x) = (x0) + (x1) (x0)(x x0) h
то |
|
|
|
(x1) (x0) |
|
2 |
|
|
|
|
|
|
L0 ( ; x) |
j |
= |
j |
|
: |
|
|
|
|
|||
h |
|
|
||||||||||
j n |
|
j h |
|
|||||||||
Полная погрешность численного дифференцирования оценивается величиной M2h + |
2 |
. |
||||||||||
h |
||||||||||||
Если величину h можно выбирать, то её следует выбирать так, что значение M2h + |
2 |
|
было бы мини- |
|||||||||
h |
||||||||||||
|
|
|
|
|
|
|
|
|
мальным. Ясно, что минимум достигается при
r 2 p h = :
M2
p p
При таком выборе h полная погрешность численного дифференцирования не превосходят 2 2M2 . Уменьшая, например, погрешность задания функции f(x) в 100 раз мы получим уменьшение полной погрешности численного дифференцирования всего в 10 раз при одновременном уменьшении шага в 10 раз.
5.10Интерполирование с равноотстоящими узлами.
Рассматриваются узлы a = x0; xi = x0 + ih; xn = x0 + nh = b и значения fi = f(xi) непрерывной на [a; b] функции f(x). Определим конечные разности kfi k-того порядка:
1f0 = f1 f0
39
1 |
2f0 = 1f1 1f0 |
3 |
2 |
f1 |
2 |
|
|
|
|
|
|
||||
|
f1 = f2 f1 2 |
1 |
|
1 |
|
f0 = |
|
f0 |
4 |
|
3 |
3 |
|
||
1 |
|
f1 = |
f2 |
|
f1 |
3 |
2 |
f2 k |
2 |
|
f0 |
= |
f1 |
f0 |
|
|
f2 = f3 f2 |
|
|
|
|
f1 = |
f1 |
|
|
|
|
|
|||
Нас будут интересовать конечные разности f0: |
|
|
|
|
|
|
k+1f0 = kf1 kf0
и их связь с разделенными разностями f(x0; x1; :::; xk) порядка k.
Ясно, что f(x0; x1) = 1fo . Легко показать, что верна формула
h
f(x0; x1; : : : ; xk) = |
1 |
kf0 |
::::::::::::::::::::::::::::::::::::::::::::::: |
(4) |
|||||||||||||||
k!hk |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Действительно, пусть она верна при некотором значении k(k = 1). Тогда |
|
|
|||||||||||||||||
f(x0; x1; : : : ; xk; xk+1) = |
f(x0; x1; : : : ; xk; xk+1) f(x0; x1; : : : ; xk) |
= |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
xk+1 x0 |
|
|
|
|
|
||||
1 |
1 |
|
|
|
1 |
|
1 |
|
|
|
|
|
|
|
|||||
= |
|
[ |
|
kf1 |
|
|
kf0] = |
|
|
|
[ kf1 kf0 |
] = |
|||||||
(k + 1)h |
k!hk |
k!hk |
(k + 1)!hk+1 |
||||||||||||||||
|
|
|
|
|
|
= |
|
1 |
k+1f0: |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
(k + 1)!hk+1 |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Из (4) следует, что интерполяционный полином f~n(x) можно представить в виде: |
|||||||||||||||||||
|
|
|
|
|
|
n |
|
|
|
|
|
|
n |
1 |
|
|
|
||
|
|
|
|
|
X |
|
|
|
|
|
|
X |
|
|
|
||||
f~n(x) = Nn(f; x) = |
|
f(x0; : : : ; xk)!k(x) = |
|
|
kf0!k(x); |
||||||||||||||
|
k=0 |
k!hk |
|||||||||||||||||
|
|
|
|
|
k=0 |
|
|
|
|
|
|
|
|
|
|
|
|||
положив 0fk = f(xk). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
В заключении отметим, что rn(f; x) = f(x) f~n(x) = |
1 |
|
f(n+1)( )!n+1(x); и для функции f(x) = |
||||||||||||||||
(n+1)! |
Cn+1xn+1 + + C1x + C0
rn(f; x) = Cn+1(x x0)(x x1) : : : (x xn)
Таким образом для оценки rn(f; x) следует оценить j!n+1(x)j: Из последнего представления интерполяционного полинома
n
f~n(x) = X kf0 !k(x) k!hk
k=0
можно получить интересное свойство f~n(x). Пусть в процессе вычислений получены значения kf0; k = 0; 1; : : : ; n. Оценим вклад k-того слагаемого
|
|
|
|
|
|
|
|
|
|
|
|
|
k |
|
|
!k(x) |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
f0 |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
k!hk |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
~ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k |
f0 |
равен (x = x0 |
+ th; t 2 [0; 1]): |
|
||||
в значении fn(x) для x 2 [x0; x1]. Коэффициент при |
|
|||||||||||||||||||||||
|
|
|
|
1 |
hk(t(t 1)(t |
2)(t |
3) : : : (t (k 1))) |
и |
|
|||||||||||||||
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
k!hk |
|
|||||||||||||||||||
|
!k(x) |
= |
1 |
t(1 |
|
t)(2 |
|
t):::(k |
|
1 |
|
t) = t(1 |
|
t) |
(2 t)(3 t):::(k 1 t) |
: |
||||||||
|
|
|
||||||||||||||||||||||
|
k!hk |
k! |
|
|
|
|
|
|
|
|
|
|
|
|
k! |
|
При малых t величина t(1 t)k1 . Таким образом, вычислив значения 4kf0 можно судить о влиянии k-того слагаемого в интерполяционной формуле на значения интерполяционного полинома для x 2 [a; a + h]. Это влияние убывает с ростом k достаточно медленно. Немецкий математик Рунге около 1900 г. рассмотрел на отрезке [ 1; 1] бесконечно дифференцируемую функцию
f(x) =
1
1 + 25x2
40
и показал, что интерполяционный полином f~n(x), построенный по равноотстоящим узлам, не стремится с ростом n к этой функции:
x |
max |
~ |
max |
||||||
2 |
[ |
|
1;1] jf(x) fn(x)j = x |
2 |
[ |
|
1;1] jrn(f; x)j ! 1 |
||
|
|
|
|
|
|
при n ! 1: Завершая этот параграф, отметим, что можно строить интерполяционный полином, взяв в качестве начальной точки значение x = b и шаг h. Можно взять в качестве x0 середину отрезка [a; b] и одновременно брать узлы x0 + kh; x0 kh. Эти и другие возможности приведены в книге В.М.Вержбицкого "Основы численных методов".
5.11Интерполирование с кратными узлами (интерполяционный
полином Эрмита).
Далее мы рассмотрим другие постановки задач интерполирования. Пусть в узлах x0; x1:::xn помимо значений f(xi) известны (вычислены,измерены) значения производных функции f(x):
x0 f0 f0(x0)
x1 f1 f0(x1)
: : : |
fm0 (x0) |
(m0 + 1) значений |
: : : |
fm1 (x1) |
(m1 + 1) значений |
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
xi |
fi |
f0(xi) |
: : : |
fmi (xi) |
(mi + 1) значений |
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
xn |
fn |
f0(xn) |
: : : |
fmn (xn) |
(mn + 1) значений |
Обозначим N = maxfmfigg: Для каждого узла xi рассматриваются все производные до порядка mi включительно. Число всех величин в узлах равно
m0 + m1 + ::: + mn + n + 1 = m + 1; m = n + N:
Требуется построить полином, удовлетворяющий всем поставленным условиям. Такой полином должен иметь степень m и этот полином, если он существует, определяется единственным образом. Действительно, если разность двух таким полиномов Pm(x) Qm(x) = Rm(x) не равна тождественно нулю, то степень полинома Rm не превосходит m. Но узлы xi являются его нулями кратности mi:
Rm(x) = a(x x0)m0+1(x x1)m1+1:::(x xn)mn+1:
Стало быть степень полинома Rm(x) равна m + 1, что невозможно.
Для искомого полинома можно построить систему линейных алгебраических уравнений относительно его неизвестных коэффициентов. Она имеет единственное решение. Таким образом поставленная задача имеет решение и это решение единственно.
Полином, удовлетворяющий условиям задачи, называется интерполяционным полиномом Эрмита и обозначается Hm(f; x).
Укажем "наивный"способ построения полинома Hm(x). В непересекающихся h- окрестностях каждого узла xi выберем mi дополнительных точек xi;1; xi;2; :::; xi;mi . Вычислим значения в этих точках, используя формулу Тейлора для функции f(x) с известными значениями f(xi); f0(xi); :::; f(mi)(xi).
Вместе с узлами x0; x1; :::; xn мы получим ещё m0+m1+:::+mn узлов, в которых значения функции f(x) известны приближенно. Построим интерполяционный полином Lm(f; h; x) по этим узлам. Тогда, устремив h к нулю, получим
Hm(f; x) = lim Lm(f; h; x):
h!0
Ясно, что такой метод неконструктивен. Но он позволяет получить представление rm(f; x) = f(x)
Hm(f; x): |
|
|
1 |
|
|
|
rm(x; h) = |
f(m+1) |
( ; h)!m+1(x) |
||
|
|
||||
|
|
||||
|
|
|
(m + 1)! |
|
|
и при h ! 0: |
1 |
fm+1( )(x x0)m0+1:::(x xn)mn+1:::::::::::::::::::(5) |
|||
rm(f; x) = |
|
||||
(m + 1)! |
41
5.12Метод построения интерполяционного полинома Эрмита.
Укажем один из возможных методов построения полинома Hm(f; x).
1. |
По значениям функции f(x) в узлах x0; x1; :::; xn построим интерполяционный полином L(f; x). |
|
2. |
Представим разность f(x) L(f; x) в виде |
|
|
f(x) L(f; x) = !(1; x)F1(x); |
!(1; x) = (x x0)(x x1):::(x xn): |
Функция F1(x) неизвестна. Однако её значения и значения всех производных, участвующих в таблице, можно вычислить. Действительно
dxd [f(x) L(f; x)] = f0(x) L0(f; x) = F1(x)!0(1; x) + F10!(1; x);
ив узлах таблицы f0(xi) L0(f; xi) = F1(xi)!0(1; xi); F1(xi) = f0(xi)0 L0(f;xi) : Далее
!(1;xi)
d22 [f(x) L(f; x)] = f00(x) L00(f; x) = F1(x)!00(1; x) + 2F10!0(1; x) + F100!(1; x): dx
В тех узлах, где заданы значения вторых производных, получаем значения F10(xi):
F10(xi) = f00(xi) L00(f; xi) F1(xi)!00(1; xi)
2!00(1; xi)
Продолжая дифференцирование функции f(x) L(f; x), получаем значения функции F1(x) и всех её производных в узлах, входящих в таблицу.
Таким образом для функции F1(x) получаем задачу кратного интерполирования. Ясно что
f(x) = L(f; x) + !(1; x)F1(x)
3. Построим интерполяционный полином L(F1; x) по значениям F1(x) в узлах и представим разность
F1(x) L(F1; x) в виде
F1(x) L(F1; x) = !(2; x)F2(x)
Тогда
f(x) = L(f; x) + !(1; x)L(F1; x) + !(1; x)!(2; x)F2(x):
Аналогично пункту (2) получим задачу кратного интерполирования для функции F2(x):
4. Продолжая этот процесс, получим задачу кратного интерполирования для функции FN 1(x), построим интерполяционный полином L(FN 1; x) и разность FN 1(x) L(FN 1; x) представим в виде
FN 1(x) L(FN 1; x) = !(N; x)FN (x):
Для функции FN (x) получим только её значение в узлах исходной таблицы, в которых заданы значения производных f(x) наибольшего порядка N. По значениям FN (x) в этих узлах построим интерполяционный полином L(FN ; x) и FN (x) = L(FN ; x) + r(FN ; x) Окончательно получаем
f(x) = L(f; x) + !(1; x)L(F1; x) + :: + !(1; x)!(2; x)::!(N; x)[L(FN ; x) + r(FN ; x)]
Пренебрегая величиной r(FN ; x), получим интерполяционный полином Эрмита:
Hm(f; x) = L(f; x) + !(1; x)L(F1; x) + ::: + !(1; x)!(2; x):::!(N; x)L(FN ; x)
Представление f(x) Hm(f; x) можно получить, минуя представление r(FN ; x). Согласно (5):
f(x) Hm(f; x) = |
1 |
+1(x x1)m1+1:::(x xn)mn+1: |
(m + 1)!f(m+1)( )(x x0)m0 |
Замечание: Если значение функции f и всех её производных до порядка n включительно заданы только в одном узле, то
Hn(f; x) = f(x0) + f0(x0)(x x0) + 2!1 f00(x0)(x x0)2 + ::: + n1!fn(x0)(x x0)n
42
и |
|
1 |
|
||
|
|
f(x) Hn(f; x) = |
fn+1( )(x x0)n+1: |
||
|
|
|
|||
(n + 1)! |
|||||
Пример. |
|
|
|
||
|
|
xi |
f(xi) f0(xi) f00(xi) |
||
|
|
x0 = 1 |
0 |
5 |
20 m0 = 2 |
|
|
x1 = 0 |
1 |
0 |
m1 = 1 |
|
|
x2 = 1 |
2 |
|
m2 = 0 |
n = 2; m = 5; N = max mi = 2:
Построить интерполяционный полином Эрмита H5(f; x), удовлетворяющий этой таблице значений.
1.По значениям f(x) в узлах -1,0,1 построим интерполяционный полином L(f; x) : L(f; x) = 1 + x.
2.Разность f(x) L(f; x) представим в виде f(x) L(f; x) = !(1; x)F1(x), где (1; x) = !(x x0)(x x1)(x x2) = x3 x, F1(x)-неизвестная функция.
f(x) = 1 + x + (x3 |
|
x)F |
(x) |
. Производная |
f0 |
(x) = 1 + (3x2 |
|
1)F |
(x) + F 0 |
(x): |
В узлах, где заданы |
|||||||||||||
|
|
|
1 |
|
|
|
|
|
|
|
1 |
|
1 |
|
|
|||||||||
значения f0(x), получаем |
|
|
|
|
f0(x) = 5 = 1 + 2F1(x0); |
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
F1(x0) = 2 |
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
f0(x) = 0 = 1 F1(x1); |
F1(x1) = 1 |
|
|
|
|
|
|
|||||||||||
Вторая производная функции f(x): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
f00(x) = 6xF1(x) + 2(3x2 1)F10(x) + (x3 x)F100(x) |
|
|
|
|
|
||||||||||||||||
Значение f00(x) известно только в одном узле x0 = 1: |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
f00(x) = |
|
20 = 6F |
(x |
0 |
) + 4F 0(x |
) = |
|
12 + 4F 0(x |
); |
F 0(x ) = |
|
2: |
||||||||||||
|
|
|
|
|
|
1 |
|
|
1 |
0 |
|
|
|
0 |
|
1 |
0 |
|
|
|||||
Таким образом для функции F1(x0) получаем таблицу значений: |
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
F1(x) |
|
|
|
F10(x) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x0 = 1 |
|
2 |
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x1 = 0 |
1 |
|
|
|
|
|
|
|
|
|
|
3. Для функции F1(x) построим интерполяционный полином по её значениям в узлах x0; x1 : L(F1; x) = 1 x и представим разность F1(x) L(F1; x) в виде F1(x) L(F1; x) = !(2; x)F2(x) и
|
F1(x) = L(F1; x) + !(2; x)F2(x); |
где !(2; x) = (x + 1)x; |
F2(x)-неизвестная функция. |
Производная функции F1(x) равна
F10(x) = 1 + (2x + 1)F2(x) + !(2; x)F20(x)
и в узле x0 |
|
|
|
|
|
|
|
|
|
|
|
F 0 |
(x ) = |
|
2 = |
|
1 |
|
F |
(x |
) |
F |
(x ) = 1: |
1 |
0 |
|
|
2 |
0 |
|
2 |
0 |
4. Для функции F2(x) строим интерполяционный полином по её значению с точке x0 : L(F2; x) = 1 и
F2(x) = 1 + r(F2; x):
Если F2(x) дифференцируемая функция, то r(F2; x) = F20( )(x x0). Итак
f(x) = 1 + x + !(1; x)(1 x + (x + 1)x(1 + r(F2; x))) = 1 + x + (x3 x)(1 x + x2 + x + x(x + 1)r(F2; x)) = = 1 + x5 + (x 1)(x + 1)2x2r(F2; x):
Пренебрегая величиной r(F2; x), получаем
H5(f; x) = 1 + x5:
Согласно (5)
f(x) H5(f; x) = (x + 1)3x2(x 1)6!1 f(6)( );
если f 2 C6[x0; x2].
43
5.13Интерполяционный процесс.
Рассмотрим последовательность разбиений n отрезка [a,b] узлами x(1n); x(2n); :::; x(nn), требуя чтобы с ростом n диаметр разбиения стремился к нулю.
Для функции f(x) построим последовательность интерполяционных полиномов Ln( n; f; x). Разбиениеn задает интерполяционный процесс ( n; f) для функции f. Обозначим r( n; f; x) = f(x) Ln( n; f; x).
Говорят, что интерполяционный процесс ( n; f) сходится в точке x 2 [a; b], если lim r( n; f; x ) = 0 при n ! 1.
Говорят, что интерполяционный процесс сходится равномерно на [a; b], если max jr( n; f; x)j ! 0 при
x2[a;b]
n ! 1. В этом случае пишут r( n; f; x) 0 при n ! 1. Теорема Марцинкевича.
Для каждой непрерывной функции f(x) существует такой интерполяционный процесс, что r( n; f; x) 0. В этой теореме n = n(f).
Теорема Фабера.
Для любой последовательности разбиений n отрезка [a; b] существует непрерывная функция f(x),
такая что max jr( n; f; x)j не стремится к нулю при n ! 1.
x2[a;b]
В этой теореме f = f( n).
Для отрезка [ 1; 1] при разбиении разноотстоящими узлами пример такой функции привел Рунге:
1
f(x) = 1 + 25x2 :
Для функции f(x) = jxj для такого же разбиения отрезка [ 1; 1] Бернштейн показал, что lim r( n; f; x) =
h!1
0 только в точках x = 1; x = 0; x = 1.
Рассмотренные постановки задач интерполирования имеют существенные недостатки: -увеличение степени полиномов при увеличении числа узлов.
-величина rn(f; x) = f(x) f~n(x) оценивается через значения производной функции f порядка (n + 1) в предположении, что f 2 Cn+1[a; b].
-увеличение числа узлов не гарантирует в общем случае уменьшения max jrn(f; x)j.
x2[a;b]
В следующий параграфах мы рассмотрим другую постановку задач интерполирования алгебраическими полиномами.
5.14Сплайны класса Sn;k. (Кусочно-полиномиальное
интерполирование)
Пусть задана возрастающая последовательность узлов
x0 < x1 < x2 < ::: < xN 1 < xN
Функция S(x) 2 Ck[x0; xN ] называется сплайном класса Sn;k, если на каждом отрезке между узлами она
является полиномом степени не выше n.
Если k = n, то Sn;n-множество степени не выше n, заданных на [x0:::xN ]. Величина =. n k 1 называется дефектом сплайна.
Для фиксированной последовательности узлов xi множество функций класса Sn;k является линейным подпространством пространства Ck[x0; xN ]. Покажем, что это подпространство конечномерно, построив базис в классе Sn;k.
Обозначим
'0;j(x) = |
((x |
|
|
x0)j; |
если |
x |
x0 |
; |
j = 0; 1; : : : ; k; : : : ; n |
|||
|
|
0; |
|
|
|
если |
x |
x0 |
|
|
||
|
((x |
|
|
|
|
|
|
|
|
|||
'1;j(x) = |
|
|
x1)j; |
если |
x x1 |
; |
|
j = k + 1; k + 2; : : : ; n |
||||
|
|
0; |
|
|
|
если |
x |
x1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
44
'N 1;j(x) = |
((x |
|
xN 1)j; |
если |
x |
xN |
1 |
; j = k + 1; k + 2; : : : ; n |
|
0; |
|
|
если |
x |
xN |
1 |
|
|
|
|
|
|
|
|
|
|
Ясно, что эти базисные функции 'i;j(x) линейно независимы. Назовем их исходными базисными функциями класса Sn;k.
В каждом внутреннем узле xi значения 'i;j(x); '0i;j(x); :::; 'ki;j(x) равны нулю, поэтому линейные комбинации этих базисных функций являются сплайнами класса Sn;k. С другой стороны каждый сплайн этого класса можно представить в виде линейной комбинации исходных базисных функций.
Введем сквозную нумерацию исходных базисных функций:
'1(x); '2(x); :::; '@(x) |
@ = n + 1 + (n k)(N 1) |
Постановка задачи интерполяции. Для функции f 2 C[x0; xN ] построить сплайн S(x) класса Sn;k, такой
что S(xi) = f(xi); i = 0; 1; :::; N:
@
P
Представляя искомый сплайн в виде S(x) = Cj; 'j, приходим к задаче определения коэффициентов
j=1
Cj.
Таким образом задача интерполяции кусочно-полиномиальными функциями является частным случаем задачи интерполирования. В общем случае число условий N + 1 меньше @ и коэффициенты Cj определяются неоднозначно. Решение поставленной задачи можно упростить, если рассмотреть новый базис si(x); i = 0; 1; :::; N, где каждая функция si(x) является линейной комбинацией исходных базисных функций.
Например, для класса S1;0 такими линейными комбинациями являются сплайны класса S1;0, построенные по узлам xi 1; xi; xi+1, равные нулю при x xi 1 и при x xi+1, а в узле xi значение si(xi) = 1.
5.15Построение интерполяционного сплайна класса S3;2.
По сравнению со сплайнами классов S3;0 и S3;1 сплайны класса S3;2 имеют наибольшую гладкость. Необходимость построения интерполяционных сплайнов класса S3;2 возникает при решении многих
практических задач. Например, при изготовлении стальных шпангоутов (балок) судов заданы только координаты точек (xi; f(xi)), через которые должен проходить профиль шпангоута. Прочность судна зависит от потенциальной энергии напряжений, возникающий при изгибе балки. Потенциальная энергия P (S) профиля y = S(x) пропорциональна интегралу
ZxN d4S 2
dx4
dx
x0
Естественно возникает задача минимизации P (S) при условиях S(xi) = f(xi) и условиях непрерывности S(x); S0(x); S00(x). Эта задача-классическая задача вариационного исчисления. Оптимальная функция S(x) должна удовлетворять уравнению Эйлера
ZxN d4S 2
dx4
dx = 0
x0
и граничным условиям S00(x0) = 0; S00(xN ) = 0. Следовательно S(x) является полиномом степени 3 на каждом отрезке [xi 1; xi], а на всем отрезке [x0; xN ]-сплайн класса S3;2 с дополнительными граничными условиями. Обозначим Si(x) значения сплайна S(x) при x 2 [xi; xi+1], а через hi обозначим длину отрезка
[xi; xi+1]; hi = xi+1 xi. Так как Si(xi) = f(xi), то
Si(x) = fi + bi(x xi) + 12Ci(x xi)2 + 3!1 di(x xi)3;
где коэффициенты bi; Ci; di подлежат определению.
1. Условие непрерывности S(x) во внутренних точках xi:
45
Si(xi) = Si 1(xi): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fi = fi 1 + bi 1hi 1 + |
1 |
Ci 1hi2 1 + |
1 |
di 1hi3 1; i = 1; 2; :::; N 1 |
|||||||||||||||||||||||||||||||||||||||
|
|
|
|
||||||||||||||||||||||||||||||||||||||||
2 |
3! |
||||||||||||||||||||||||||||||||||||||||||
Условие SN 1(xN ) = fN приводит к уравнению: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
f |
|
|
= f |
|
+ b |
|
|
|
h |
|
|
|
+ |
1 |
|
C |
|
|
|
|
|
|
|
h2 |
|
+ |
|
1 |
d |
h3 |
|||||||||||
|
|
|
|
N 1 |
N 1 |
N 1 |
2 |
N 1 |
|
|
|||||||||||||||||||||||||||||||||
|
|
|
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N 1 |
|
|
3! N 1 |
N 1 |
|||||||||||||||||||||
Полученные уравнения можно записать в виде: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
b |
|
= |
fi fi 1 |
|
|
1 |
C |
|
|
|
|
h |
|
|
+ |
|
1 |
d |
|
|
|
|
|
h2 |
|
; i = 1; 2; :::; N::::::::::(A) |
|||||||||||||||||
i 1 |
|
i 1 |
i 1 |
|
i 1 |
|
|||||||||||||||||||||||||||||||||||||
|
|
|
|
hi 1 |
2 |
|
|
|
|
|
6 |
|
|
|
|
|
i 1 |
|
|
|
|
|
|
|
|
||||||||||||||||||
2. Условие непрерывности S0(x) во внутренних узлах xi: |
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
S0(x |
) = S |
0 |
|
(x |
); i = 1; 2; :::; N |
|
1: |
|
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
i |
|
i |
|
|
|
|
|
i 1 |
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
di 1(hi 1)2; |
|
||||||||||||
|
|
|
|
|
|
bi = bi 1 + Ci 1hi 1 + |
|
|
|||||||||||||||||||||||||||||||||||
или |
|
|
|
|
|
2 |
|
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
di 1hi2 1 |
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
bi bi 1 = Ci 1hi 1 + |
|
::::::::::(B) |
|
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
2 |
|
3. Условие непрерывности S00(x) во внутренних узлах xi:
Si00(xi) = Si00 1(xi); Ci = Ci 1 + di 1hi 1
или
di 1 = Ci Ci 1 ; i = 1; 2; :::; N 1::::::::::(C)
Таким образом для 3N неизвестных коэффициентов мы получили N + 2(N 1) = 3N 2 уравнений. В теории упругости для балки с фиксированными торцами условия равновесия имеют вид
S00(x0) S0(x0) = 0
S00(xN ) S0(xN ) = 0;
где характеризует упругие свойства внешней среды. Эти два соотношения дают необходимые условия для разрешимости системы линейных уравнений.
В случае, если к торцам балки не приложены силы, то коэффициент = 0 и для граничных точек получаем: S00(x0), т.е. C0 = 0 и S00(xN ) = 0, т.е. SN00 1(xN ) = 0; CN 1 + dN 1hN 1 = 0: Таким образом получаем два недостающих условия:
C0 = 0; dN 1 = CN 1 hN 1
Последнее условие можно включить в условия (С) при i = N, положив формально CN = 0 : dN 1 =
CN CN 1 .
hN 1
Метод решения полученной системы состоит в последовательном исключении неизвестных di, затем bi.
Врезультате мы получим систему линейных уравнений для определения коэффициентов Ci. Условия (С):
|
|
|
|
|
|
di 1 |
= |
Ci Ci 1 |
; i = 1; 2; :::; N |
|
|
|
|
|
|||||||||||||
Из (А) исключаем bi: |
|
|
|
|
|
|
|
|
|
|
|
hi 1 |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
fi+1 fi |
|
|
|
1 |
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
b |
|
= |
|
|
( |
C |
+ |
|
C |
|
|
h |
); i = 0; 1; :::; N |
|
1 |
|
|||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
i |
|
|
hi |
3 i |
|
6 |
|
|
i+1 |
i |
|
|
|
|
|
|
||||||||
и подставляя в условия (В), получаем уравнение для Ci: |
|
|
|
|
|
|
|
|
|
||||||||||||||||||
8 |
1 C h + 1 C [h + h ] + 1 C h = |
fi+1 fi |
|
fi fi 1 |
; |
||||||||||||||||||||||
C0 |
= 0; |
|
i = 1; : : : ; N |
i |
1 |
|
|
|
i+1 i |
|
1 |
|
hi |
||||||||||||||
< |
6 |
i 1 i 1 |
3 i i 1 |
|
6 |
hi |
|
|
|||||||||||||||||||
CN = 0; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46
Умножая эти уравнения на 6, получаем систему линейных алгебраических уравнений с матрицей размерности (N 1) (N 1):
i = 1 |
0 |
2(h |
+ h |
) |
h1 |
0 |
|
0 |
|
|
0 |
|
1 |
||
i = 2 |
|
0h1 |
1 |
|
2(h1 + h2) |
h2 |
|
0 |
|
|
0 |
|
|||
i |
|
|
|
0 |
|
|
hi 1 |
2(hi 1 + hi) |
|
hi |
|
|
0 |
|
)C |
i = N 1 B |
|
0 |
|
|
0 |
0 |
h |
N 2 |
2(h |
N 2 |
+ h |
N 1 |
|||
|
|
B |
|
|
|
|
|
|
|
|
|
C |
|||
|
@ |
|
|
|
|
|
|
|
|
|
|
|
|
A |
и с вектор-столбцом правой части:
|
i |
|
|
hi |
|
|
hi 1 |
|
F |
|
= 6 |
|
fi+1 |
fi |
|
fi fi 1 |
: |
|
|
|
|
|
Эта матрица трёхдиагональная с диагональным преобладанием. Решение системы уравнений можно получить методом прогонки, прогоночные коэффициенты по модулю меньше 1, метод устойчив. Для других граничных условий изменяются первое и последнее уравнения, и присоединяются еще два уравнения при i = 0 и при i = N.
5.16 Оценка методической и полной погрешности интерполяционного чертежного сплайна.
Для этих оценок рассмотрим равномерную сетку узлов: hi = h. Система уравнений для коэффициентов
Ci имеет вид: |
|
|
|
|
|
|
fi 1 2fi + fi+1 |
|
|||
C |
i 1 |
+ 4C + C |
|
= 6 |
: |
||||||
|
i |
|
|
i+1 |
|
|
|
|
h2 |
|
|
Будем предполагать, что f 2 C3[x0; xN ]. Обозначим r(x) = S(f; x) f(x). Ясно, что |
|||||||||||
fi 1 = fi hf0(xi) + |
1 |
f00(xi)h2 + |
1 |
f000 |
( 1)h3; |
1[xi 1; xi] |
|||||
|
|
||||||||||
2 |
3! |
||||||||||
fi+1 = fi + hf0(xi) + |
1 |
f00(xi)h2 + |
1 |
f000 |
( 2)h3; |
2[xi; xi+1] |
|||||
2 |
|
||||||||||
|
|
|
|
|
|
|
3! |
|
|
и |
|
fi 1 2fi + fi+1 |
|
|
|
|
|
|
|
|
|
h |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
= f00(xi) + |
[f000( 1) + f00( 2)]: |
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
h2 |
|
|
|
|
|
|
|
|
|
3! |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Оценим последовательно величины jr00(xi)j; jr00(x)j; jr0(x)j и jr(x)j. |
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
1. Оценка r00(xi). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r00(x) = s00(x) f00(x) и в узлах xi : r00(xi) = ci f00(xi); ci |
= f00(xi + r00(xi)) Так как числа Ci удовле- |
||||||||||||||||||||||||||||||||||
творяют системе уравнений, то |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
h2i |
|
i+1 |
||||
f00(xi 1) + 4f00(xi) + f0(xi+1) + r00(xi 1) + 4r00(xi) + r00(xi+1) = 6 fi 1 |
+ f |
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2f |
|
|
|
Обозначим |
|
|
fi 1 2fi + fi+1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
= 6 |
|
|
(f00(x |
i 1 |
) + 4f |
00(x ) + f0(x |
|
|
)) |
|
|
|
||||||||||||||||||||||
i |
|
|
|
|
h2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i |
|
|
i+1 |
|
|
|
|
|
||||||
Тогда |
|
|
|
r00(xi 1) + 4r00(xi) + r00(xi+1) = i; |
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
и |
|
|
|
4r00(xi) = i r00(xi 1) r00(xi+1); |
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
4jr00(xi)j j ij + jr00(xi 1)j + jr00(xi+1)j; |
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
4 max r00 |
(x ) |
j |
max |
j |
ij |
+ max |
r00 |
(x |
i 1 |
) |
j |
+ max |
r00(x |
) |
; |
|
|
|
|||||||||||||||||
|
i |
j |
i |
i |
|
|
i |
j |
|
|
|
|
|
|
|
i |
j |
|
i+1 |
j |
|
|
|
|
|||||||||||
|
|
|
|
|
|
max |
r00(x ) |
j |
|
1 |
max |
j |
|
ij |
: |
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
i |
j |
|
|
i |
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
47