
- •Разделенные разности. Интерполяционный многочлен Ньютона.
- •Погрешность интерполяции
- •Замечания об интерполяционных формулах Лагранжа и Ньютона
- •Конечные разности.
- •Интерполяционные формулы Ньютона в случае равноотстоящих узлов
- •Задание 2
- •Вариант 2 Задание 1
- •Задание 2
- •Вариант 3 Задание 1
- •Задание 2
- •Вариант 4 Задание 1
- •Задание 2
- •Вариант 5 Задание 1
- •Задание 2
- •Вариант 6 Задание 1
- •Задание 2
- •Вариант 7 Задание 1
- •Задание 2
- •Вариант 8 Задание 1
- •Задание 2
- •Вариант 9 Задание 1
- •Задание 2
- •Вариант 10 Задание 1
- •Задание 2
- •Требования к оформлению лабораторной работы.
- •Лабораторная работа №1
- •1.3 Курс, 5 группа, Магомедов Магомед Магомедович
- •2. Тема: Интерполирование функции одной переменной
- •3. Задание 1
- •Задание 2
- •4.Краткое описание применяемого метода.
- •5.Схема алгоритма выполнения задания 1
- •5.Схема алгоритма выполнения задания 2
- •6.Программа выполнения задания 1
- •6.Программа выполнения задания 2
- •7.Интерполяционные многочлены Лагранжа и Ньютона задания 1
- •7.Интерполяция табличной функции задания 2
- •8. Краткие выводы
- •Литература
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
|
|
Погрешности |
(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.3219 |
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.3219 |
7.Интерполяция табличной функции задания 2
290.33(x+0.2)x(x-0.2)+ 58.37(x+0.2)x(x-0.1) |
=-3.8025 |
=0.0 |
21.75(x+0.2)x+62.88(x+0.2)x(x-0.1) |
=-3.8025 |
8. Краткие выводы
1. Погрешность интерполяции в задании 1 оказалась большой. Это объясняется тем, что узлы расположены далеко друг от друга и функция f(x) не обладает достаточной гладкостью.
2. То, что значения самых многочленов Лагранжа и Ньютона и их производных совпали, говорит о единственности интерполяционного многочлена.