Методы вычислительной математики
..pdfm |
|
|
|
||
∑ak ϕk (xi )= f (xi ), i = |
|
|
(4.3) |
||
0,m |
|||||
k=0 |
|
|
|
||
относительно неизвестных коэффициентов разложения ak , |
k = |
|
. |
||
1,m |
Для существования единственного решения системы алгебраических уравнений (4.3) требуется, чтобы главный определитель этой системы
|
ϕ0 (x0 ) |
ϕ1 (x0 ) … ϕm (x0 ) |
|
|
|
||
= |
ϕ0 (x1 ) |
ϕ1 (x1 ) … ϕm (x1 ) |
|
|
… |
… … … |
|
|
ϕ0 (xm ) ϕ1 (xm ) … ϕm (xm ) |
|
|
был отличен от нуля, ≠ 0 . |
|
|
4.1. Интерполяция степенными функциями
Пусть в качестве системы функций ϕk (x) рассматриваются полиномы
ϕk (x)= xk , k = 0,m .
В этом случае принимает вид определителя Вандермонда1:
|
1 |
x0 |
x02 |
x03 |
x0m |
|
|
|
|
1 |
x |
x2 |
x3 |
xm |
= ∏(xi − xk ), |
||
= |
|
1 |
1 |
1 |
1 |
|||
|
… … … … … … |
i>k |
||||||
|
1 |
xm |
xm2 |
xm3 |
xmm |
|
|
|
причем ≠ 0 , если среди множества точек xk , |
k = |
|
, нет совпадающих. При |
|||||
0,m |
m
этом алгебраический интерполяционный многочлен Pn (x) = ∑ak xk всегда су-
k=0
ществует и определен единственным образом.
4.1.1. Интерполяционный полином Ньютона
Для произвольной функции f(x) определяются разделенные разности:
– первая разделенная разность
f (xi , x j )= [f (xi )− f (x j )](xi − x j ),
– вторая разделенная разность
1 Вандермонд Александр Теофиль [28.2.1735 – 1.1.1796] – французский математик, являлся членом Парижской академии наук с 1771 года.
91
f (xi , x j , xk )= [f (xi , x j )− f (x j , xk )](xi − xk ),
– третья разделенная разность
f (xi , x j , xk , xl )= [f (xi , x j , xk )− f (x j , xk , xl )](xi − xl ),
и так далее.
Первые разделенные разности f (xi , x j ) и f (x j , xk ) являются разностными
аналогами первых производных функции f(x) на соответствующих отрезках |
||
[xi , x j ] |
и |
[x j , xk ]. Вторая разделенная разность f (xi , x j , xk ) аппроксимирует |
вторую производную функции f(x) на отрезке [xi , xk ]. Соответственно, третья разделенная разность – аналог третьей производной на отрезке [xi , xl ], и так далее. Пусть Pm (x) – искомый интерполяционный многочлен. Разделенные разности для этого полинома имеют вид
Pm (x, x0 )= [Pm (x) − Pm (x0 )](x − x0 ),
Pm (x, x0 , x1 ) = [Pm (x, x0 ) − Pm (x0 , x1 )](x − x1 ),
Pm (x, x0 , x1, x2 ) = [Pm (x, x0 , x1 )− Pm (x0 , x1, x2 )](x − x2 ), …
Отсюда получается выражение для полинома в виде
Pm (x)= Pm (x0 )+ (x − x0 )Pm (x, x0 )=
=Pm (x0 )+ (x − x0 )[Pm (x0 , x1 ) + (x − x1 )Pm (x, x0 , x1 )]=
=Pm (x0 )+ (x − x0 )[Pm (x0 , x1 )+ (x − x1 ){Pm (x0 , x1, x2 )+ (x − x2 )Pm (x, x0 , x1, x2 )}]=…
Иначе это выражение можно записать в форме
Pm (x)= Pm (x0 ) + (x − x0 )Pm (x0 , x1 )+
+ (x − x0 )(x − x1 )Pm (x0 , x1, x2 )+ (x − x0 )(x − x1 )(x − x2 )Pm (x, x0 , x1, x2 ) +…
Эта цепочка конечна и содержит m + 1 слагаемое. В самом деле, Pm (x) – полином степени m; разность Pm (x)− Pm (x0 ) при x = x0 обращается в нуль, то есть x0 является корнем выражения Pm (x)− Pm (x0 ), и, следовательно, оно без остатка делится на разность x − x0 . Но в этом случае
Pm (x, x0 )= [Pm (x) − Pm (x0 )](x − x0 )
оказывается полиномом степени m – 1. Соответственно, Pm (x, x0 , x1 ) – полином степени m – 2, и так далее. В итоге Pm (x, x0 ,…, xm−1 ) – полином степени m – m = 0, то есть константа, и наконец, P(x, x0 ,…, xm )= 0 .
В силу условия (4.1) имеет место Pm (xi )= f (xi ), i = 0,m , откуда следует
92
Pm (x)= f (x0 )+ (x − x0 )f (x0 , x1 )+ (x − x0 )(x − x1 )f (x0 , x1, x2 )+…,
либо, в ином виде,
Pm (x)= f (x0 )+ (x − x0 )[f (x0 , x1 )+ (x − x1 ){f (x0 , x1, x2 )+…}].
Пример 4.1. Аппроксимировать функцию sin(x) на отрезке [0, π/2].
В табл. 4.1 приведены значения заданной функции и ее разделенные разности в узлах разностной сетки на указанном отрезке.
|
|
|
|
Таблица 4.1 |
|
Таблица интерполяции функции sin(x) по 4 точкам |
|||
xi |
f (xi ) |
f (xi , xi+1 ) |
f (xi , xi+1, xi+2 ) |
f (xi , xi+1, xi+2 , xi+3 ) |
0 |
0 |
|
|
|
|
|
0,9549297 |
|
|
π/6 |
0,5 |
|
–0,2443404 |
|
|
|
0,6990570 |
|
–0,1138719 |
π/3 |
0,8660254 |
|
–0,4232099 |
|
|
|
0,2558726 |
|
|
π/2 |
1,0 |
|
|
|
Полиномиальная аппроксимация заданной функции имеет вид
sin(x) ≈ 0 + (x − 0)[0,9549297 + (x − π6){− 0,2443404 + (x − π3)(− 0,1138719)}].
Для аргумента x = π4, отсутствующего в табл. 4.1, построенный полином принимает значение, равное 0,705889. Табличное значение этой функции равно sin (π4) = 0,707107. Относительная погрешность вычисления составля-
ет 0,172 %.
Пример 4.2. Определить корень уравнения f (x) = (1 + x)ex2 − 2,5 = 0 мето-
дом обратной интерполяции.
Идея метода обратной интерполяции заключается в построении полинома Ньютона для функции, обратной к заданной зависимости f (x), то есть x( f ). Особенность данного случая – необходимость построения полинома Ньютона для обратной функции x( f ) на сетке с переменным шагом по координате fi . В табл. 4.2 приведены значения заданной функции и ее разделенные разности в узлах разностной сетки на указанном отрезке.
93
|
|
|
|
Таблица 4.2 |
Таблица для построения обратной интерполяции функции x(y) |
||||
|
|
|
|
|
fi |
x( fi ) |
x( fi , fi+1 ) |
x( fi , fi+1, fi+2 ) |
x( fi , fi+1 , fi+2 , fi+3 ) |
–1,083564 |
0,25 |
|
|
|
|
|
0,4905784 |
|
|
–0,5739619 |
0,50 |
|
–0,07743017 |
|
|
|
0,4030978 |
|
0,013912025 |
0,04623498 |
0,75 |
|
–0,05126156 |
|
|
|
0,3327975 |
|
|
0,7974425 |
1,0 |
|
|
|
Интерполяционный полином Ньютона для этой задачи имеет вид x( f ) = 0,25 + ( f +1,08356)[0,49058 +
+ ( f + 0,57396){− 0,07743 + ( f − 0,04624)0,01391}].
Для f = 0 построенный полином принимает значение x(0) = 0,733018. Точное решение x = 0,732941. Относительная погрешность вычисления корня составляет 0,0105 %.
4.1.2. Интерполяционный полином Лагранжа
Интерполяционный полином Лагранжа строится в следующем виде:
m |
|
Lm (x) = ∑ f (xk )ϕk (x), |
(4.4) |
k=0
то есть в каждой точке x значение полинома Lm (x) определяется как линейная комбинация табличных значений f (xk ), k = 0,m . Условие (4.1) приводит к выражению
m
Lm (xi ) = ∑ f (xk )ϕk (xi )= f (xi ), i = 0,m ,
k=0
которое оказывается справедливым при выполнении условия
0, |
i ≠ k, |
ϕk (xi )= |
i = k. |
1, |
|
|
|
Это означает, что на отрезке интерполяции [a, b] каждая из функций ϕk (x), k = 0,m , должна иметь m корней. Естественно представить каждую из функций ϕk (x) в виде полинома
94