Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
интерполяция.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
859.14 Кб
Скачать

6.Программа выполнения задания 2

uses crt;{$F+}

const n=3;

type vect=array[0..n] of real;

const xn:vect=(-0.2,0,0.1,0.2);

f1:vect=(0.982,1.343,0.871,0.467);

var i,j,k:integer;a,b:vect;

x,lgr,ntn,l1,n1,d:real;

procedure lagr(n:integer;xx:vect;x:real;f:vect; var a:vect;var lgr:real);

var i,j:integer;

s,p:real;

begin

for i:=0 to n do

begin

p:=1;

for j:=0 to n do if j<>i then p:=p*(xx[i]-xx[j]);

a[i]:=f[i]/p

end;

s:=0;

for i:=0 to n do

begin

p:=1;

for j:=0 to n do if j<>i then p:=p*(x-xx[j]);

s:=s+a[i]*p

end;

lgr:=s

end;

procedure nton(n:integer;xx:vect;x:real;f:vect; var b:vect;var ntn:real);

var i,j:integer;

s,p:real;

begin

b[0]:=f[0];

for i:=1 to n do

begin

s:=0;

for j:=0 to i do

begin

p:=1;

for k:=0 to i do

if k<>j then p:=p*(xx[j]-xx[k]);

s:=s+f[j]/p

end;

b[i]:=s

end;

s:=b[0];

for i:=1 to n do

begin p:=1;

for j:=0 to i-1 do p:=p*(x-xx[j]);

s:=s+b[i]*p

end;

ntn:=s;

end;

begin clrscr; writeln; x:=0;

lagr(n,xn,x,f1,a,lgr); writeln('koefic Lagranga');

for i:=0 to n do writeln('a',i,'=',a[i]:11:2);readkey;writeln;

writeln;

nton(n,xn,x,f1,b,ntn); writeln('koefic Ntona');

for i:=0 to n do writeln('b',i,'=',b[i]:11:2);readkey;writeln;

l1:=a[0]*(x-xn[2])*(x-xn[3])+a[1]*((x-xn[0])*(x-xn[2])+

(x-xn[0])*(x-xn[3])+(x-xn[2])*(x-xn[3]))+

a[2]*(x-xn[0])*(x-xn[3])+a[3]*(x-xn[0])*(x-xn[2]);

n1:=b[1]+b[2]*(x-xn[0])+b[3]*(x-xn[0])*(x-xn[2]);

d:=abs(l1-n1);

writeln('x=',x:3:1,' dL/dx=',l1:9:4,' dN/dx=',n1:9:4,

' raznost= ',d:8);

readkey

end.

По этой программе получены следующие значения

a=-40.92,335.75,-290.33,58,37

b=0.98,1.81,-21.75,62.88

, ,

C помощью полученных значений по программам выполнения заданий 1 и 2

заполняем требуемые в этих заданиях таблицы

7.Интерполяционные многочлены Лагранжа и Ньютона задания 1

0.3923

Погрешности

-4.58(x-0.8)(x-1.0)(x-1.2)

(x-1.4)(x-1.5)+47.62(x-0.5)(x-1.0) (x-1.2)(x-1.4)(x-1.5)+100.52(x-0.5) (x-0.8)(x-1.2)(x-1.4)(x-1.5)-38.77(x-0.5)(x-0.8)(x-1.0)(x-1.4)

(x-1.5)+6.72(x-0.5)(x-0.8)(x-1.2)

(x-1.4)

0.0706

=0.3219

0.43+0.16(x-0.5)-

5.11(x-0.5)(x-0.8)+21.91(x-0.5)

(x-0.8)(x-1.0)-55,03(x-0.5)

(x-0.8)(x-1.0)(x-1.2)+111.50(x-0.5)

(x-0.8)(x-1.0)(x-1.2)(x-1.4)

0.0706

=0.3219

7.Интерполяция табличной функции задания 2

-4092x(x-0.1)(x-0.2) + 335.75(x+0.2)(x-0.1)(x-0.2)-

290.33(x+0.2)x(x-0.2)+

58.37(x+0.2)x(x-0.1)

=-3.8025

=0.0

0.98+1.81(x+0.2)-

21.75(x+0.2)x+62.88(x+0.2)x(x-0.1)

=-3.8025

8. Краткие выводы

1. Погрешность интерполяции в задании 1 оказалась большой. Это объясняется тем, что узлы расположены далеко друг от друга и функция f(x) не обладает достаточной гладкостью.

2. То, что значения самых многочленов Лагранжа и Ньютона и их производных совпали, говорит о единственности интерполяционного многочлена.