Балтийский государственный технический университет «Военмех»
им. Д.Ф. Устинова
Лабораторная работа №2
Интерполяция
Выполнил: Фрушенков А. Н
Проверила: Овчинникова О.С
Санкт-Петербург
2010
% интерполяция
% написал студент группы М-191 Фрушенков А.Н
xl=0; xr=5; n=100;
x=xl:(xr-xl)/(n-1):xr;
y=lab2(x);
figure(1)
plot(x, y)
xp=input('введите x')
while xp<xl | xp>xr
xp=input('введите x')
end
ind=1;
while xp>x(ind)
ind=ind+1;
end
% Лагранж 1
yl1=y(ind-1)*(xp-x(ind))/(x(ind-1)-x(ind))+y(ind)*(xp-x(ind-1))/(x(ind)-x(ind-1));
yp=lab2(xp); epsl1=abs((yp-yl1)/yp)*100
% Лагранж 2
yl2=y(ind-1)*(xp-x(ind))*(xp-x(ind+1))/((x(ind-1)-x(ind))*(x(ind-1)-x(ind+1)))...
+y(ind)*(xp-x(ind-1))*(xp-x(ind+1))/((x(ind)-x(ind-1))*(x(ind)-x(ind+1)...
))+y(ind+1)*(xp-x(ind-1))*(xp-x(ind))/((x(ind+1)-x(ind-1)))*(x(ind+1)-x(ind));
epsl2=abs((yp-yl2)/yp)*100;
% Лагранж 3
yl3=y(ind-1)*(xp-x(ind))*(xp-x(ind+1))*(xp-x(ind+2))/((x(ind-1)-x(ind))*(x(ind-1)...
-x(ind+1))*(x(ind-1)-x(ind+2)))+y(ind)*(xp-x(ind-1))*(xp-x(ind+1))*(xp-x(ind+2))...
/((x(ind)-x(ind-1))*(x(ind)-x(ind+1))*(x(ind)-x(ind+2)))+y(ind+1)...
*(xp-x(ind-1))*(xp-x(ind))*(xp-x(ind+2))...
/((x(ind+1)-x(ind-1))*(x(ind+1)-x(ind))*(x(ind+1)-x(ind+2)))+y(ind+2)...
*(xp-x(ind-1))*(xp-x(ind))*(xp-x(ind+1))...
/((x(ind+2)-x(ind-1))*(x(ind+2)-x(ind))*(x(ind+2)-x(ind+1)));
epsl3=abs((yp-yl3)/yp)*100
M(n)=0
for k=(n-1):-1:1
M(k)=K(k)*M(k+1)+L(k);
end
h=x(ind)-x(ind-1);
yS=(M(ind-1)*(x(ind)-xp)^3)/(h*6)+(M(ind)*(x(ind-1)-xp)^3)/(h*6)+((y(ind-1)-M(ind-1)*h^2/6)...
*(x(ind)-xp))/h+(y(ind)-M(ind)*h^2/6)*((xp-x(ind-1))/h);
epsS=abs((yp-yS)/yp)*100;
disp(['для х=' num2str(xp) 'функцция У=' num2str(yp)])
disp(['Лагранж 1: У=' num2str(yl1) 'погрешность=' num2str(epsl1)])
disp(['сплайн: У=' num2str(yS) 'погрешность=' num2str(epsS)])
disp(['Лагранж 2: У=' num2str(yl2) 'погрешность=' num2str(epsl2)])
disp(['Лагранж 3: У=' num2str(yl3) 'погрешность=' num2str(epsl3)])
function res=lab2(x)
res=x.*sin(10*x);
return
для х=0.2функцция У=0.18186
Лагранж 1: У=0.18073 погрешность=0.61915
сплайн: У=0.17933 погрешность=0.3892
Лагранж 2: У=0.18481погрешность=0.6219
Лагранж 3: У=0.18195 погрешность=0.049333
Метод Лагранжа 3-его порядка дает самый точный результат, но очень сложен в реализации. Метод сплайна, не точен, но очень прост в реализации.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.