Лабораторная работа: Интерполяция функций 2

Полагая x=x0 , находим a0 =P(x0 )=y0 ;

Далее подставляя значения x1 , x2 , ...,xn получаем:

a1 =Δy0 /h

a22 y0 /2!h2

a33 y0 /3!h3

....................

ann y0 /n!hn

Такимобразом:
Pn(x)=y0 + Δy0 /h*(x-x0 )+ Δ2 y0 /2!h2 *(x-x0 )(x-x1 )+...+ Δn y0 /n!hn *(x-x0 )(x-x1 )...(x-xn -1 ) (1)

Практически формула (1) применяется в несколько ином виде:

Возьмем: t=(x-x0 )/h, тогда x=x0 +th и формула (1) переписывается как:

Pn (x)=y0 +t Δ y0 + t(t-1) / 2! Δ 2 y0 +...+ t(t-1)...(t-n+1) / n! Δ n y0 (2)

Формула (2) называется интерполяционнойформулой Ньютона.

Погрешность метода Ньютона оценивается следующим образом:

(3)


Интерполяция сплайнами.

При большом количестве узлов интерполяции сильно возрастает степень интерполяционных многочленов, что делает их неудобными для проведения вычислений.

Высокой степени многочленов можно избежать, разбив отрезок интерполирования на несколько частей, с построением в каждой части своего интерполяционного полинома. Такой метод называется интерполяцией сплайнами. Наиболее распространенным является построение на каждом отрезке [xi , xi +1 ], i=0..n-1 кубической функции. При этом сплайн – кусочная функция, на каждом отрезке заданная кубической функцией, является кусочно-непрерывной, вместе со своими первой и второй производной.

Будем искать кубический сплайн на каждом из частичных отрезков [xi , xi +1 ] в виде:

, где ai ,bi ,ci ,di – неизвестные.

Из того что Si (xi )=yi получим:

В силу непрерывности потребуем совпадения значений в узлах, т.е.:

,i=0..n-1; (1)

Также потребуем совпадения значений первой и второй производной:

,i=0..n-2; (2)

,i=0..n-2; (3)

Из (1) получим n линейных уравнений с 3n неизвестными

,i=0..n-1; (1*)

Из (2) и (3) получим 2(n-1) линейных уравнений с теми же неизвестными:

,i=0..n-1; (2*)

,i=1..n-1; (3*)

Недостающие два уравнения определим следующим образом. Предположим, что в точках х0 и хn производная равна нулю и получим еще два уравнения. Получим систему из 3*n линейных уравнений с 3*n неизвестными. Решим ее любым из методов и построим интерполяционную функцию, такую что на отрезке [xi , xi +1 ] она равна Si .


Метод Лагранжа

procedure TForm1.Button1Click(Sender: TObject);

type tip=array of real;

var x,y:tip;

i,j,n:byte;

p,s,xx:real;

К-во Просмотров: 1095
Бесплатно скачать Лабораторная работа: Интерполяция функций 2