§ 3. Интерполяция по Эйткену. § 4. Интерполирование функии кубическими сплайнами § 3. Интерполяция по эйткену

Для построения интерполяционного полинома Ла­­г­ран­жа по функции y(x), заданной таблично {yi, xi}, весь­­ма эф­фек­тив­ной является итерационная схе­ма Эйт­ке­­на:

, i = 0, ..., m-1,

где m - количество итераций, символ равно означает опе­­­ра­тор при­сваивания. При этом для любого зна­­­че­­ния x = xp из ин­тер­ва­ла [x0, xn] ордината yp = ym.

Рассмотренный алгоритм реализован в про­це­ду­­ре ait­ken, которую можно использовать как для рав­ных, так и не­равных интервалов [xi, xi+1]. Про­цедура стро­ит по­лином Ла­­гранжа Ln(x) сте­пе­ни n таким образом, что Ln(xi) º y(xi). По­скольку в про­це­ду­ре мас­сив y ис­пользуется для хра­не­ния про­ме­жу­точ­ных зна­че­ний, его начальное зна­чение не со­храняется.

Формальные параметры про­цедуры. Входные: x[0:n], y[0:n] (тип real) - массивы абс­цисс и ординат таб­­лич­но за­данной функции y = [yi(xi)]; n (тип in­te­ger) - ко­ли­чест­­во значений таб­лич­­­ной функции (ко­ли­­чество узлов ин­тер­­­по­ля­ции); xp (тип real) - абс­цис­са, для которой вы­чис­­ля­­ется интерполированноe зна­че­ние функции. Вы­ход­­ные: l (тип re­al) - ин­­тер­по­ли­ро­ван­­­ное зна­че­ние функ­ции y (зна­че­ние полинома Ла­гран­­жа в точке xp).

procedure aitken(x:real;y:mas1;

n:integer;xp:real; var l : real);

Var I,j,n1: integer;

begin

n1:=n-1;

for j:=0 to n1 do

for i:=j+1 to n do

y[i]:=((xp-x[j])*y[i]-(xp-x[i])*y[j])/(x[i]-x[j]); l:=y[n];

end { ****** aitken ******}.

Процедура aitken получена в результате со­кра­ще­ния за­­писи, оптимизации по временным за­тра­там и пе­­ре­во­да с язы­ка ALGOL на язык PASCAL oд­но­и­мен­­ной про­це­дуры, ко­торая опубликована в работе Агеева (1976) и яв­ля­е­­т­ся, в свою очередь, результатом ис­прав­ле­­­ния, сокращения и ор­динарной пере­ра­бот­ки ал­го­рит­­­­ма С.Дж. Мифсуда (1966). Процедура проверена для ря­да элементарных функ­ций на машине IBM PC/AT-286, некоторые при­ме­ры ре­зуль­­татов тес­ти­­рования пред­ставлены в табл.2.3. По­­греш­ность ин­­тер­по­ли­ро­­­вания вычис­ля­лась как мо­дуль раз­­нос­­ти ин­­тер­по­ли­­рованного значения функции L(x) в точ­ке xn = xp и ее зна­че­ния, рассчитанного на ЭВМ с точ­нос­тью  = 10-12.

Таблицa 2.3

Функция

Шаг аргумента

Значение x

Ln (x )

y = exp(x)

x = const

0.74

2.09593558

0

y = exp(x)

x  const

0.74

2.09593558

0

y = exp(x)

x = const

0.333

1.39514732

0

y = exp(x)

x  const

0.333

1.39514625

1.073e-62

y = cos(x)

x = const

0.74

0.73846864

1.192e-72

y = cos(x)

x  const

0.74

0.73846852

0

y = cos(x)

x = const

0.333

0.94506603

5.960e-82

y = cos(x)

x  const

0.333

0.94506591

5.960e-82

Соседние файлы в папке glava2