Интерполирование функции при помощи математической системы MatLab, страница 4

function pogr=GrPogr(n)

load Splin.dat; %Загрузка сплайна

figure;

x=[-1:0.02:1];

%Функция исходного сплайна

y1=Pspline(Splin,x);

%График погрешности полинома Ньютона с равномерным разбиением

t=Hx(-1,1,n);

f=Pspline(Splin,t);

for i=1:101

    y2(i)=y1(i)-Newton(n,f,t,x(i));

end

%График полинома Ньютона с разбиением по Чебышеву

t=Chx(n);

f=Pspline(Splin,t);

for i=1:101

    y3(i)=y1(i)-Newton(n,f,t,x(i));

end

plot(x,y2,'m',x,y3,'b');

GrPogrR.m

%Построение погрешностей для разных типов разбиения

function pogr=GrPogrR

load Splin.dat; %Загрузка сплайна

%Функция сплайна

x=[-1:0.02:1];

y=Pspline(Splin,x);

%равномерное разбиение

figure;

%n=2

t=Hx(-1,1,2);

f=Pspline(Splin,t);

for i=1:101

    y1(i)=y(i)-Newton(2,f,t,x(i));

end

%n=6

t=Hx(-1,1,6);

f=Pspline(Splin,t);

for i=1:101

    y2(i)=y(i)-Newton(6,f,t,x(i));

end

%n=14

t=Hx(-1,1,14);

f=Pspline(Splin,t);

for i=1:101

    y3(i)=y(i)-Newton(14,f,t,x(i));

end

plot(x,y1,'r',x,y2,'m',x,y3,'b');

%разбиение по Чебышеву

figure;

%n=2

t=Chx(2);;

f=Pspline(Splin,t);

for i=1:101

    y1(i)=y(i)-Newton(2,f,t,x(i));

end

%n=6

t=Chx(6);;

f=Pspline(Splin,t);

for i=1:101

    y2(i)=y(i)-Newton(6,f,t,x(i));

end

%n=14

t=Chx(14);;

f=Pspline(Splin,t);

for i=1:101

    y3(i)=y(i)-Newton(14,f,t,x(i));

end

plot(x,y1,'r',x,y2,'m',x,y3,'b');

main.m

GrSp; %График функции

GrPogr(2); %Графики погрешностей для порядка n=2

GrPogr(6); %Графики погрешностей для порядка n=6

GrPogr(14); %Графики погрешностей для порядка n=14

GrPogrR; %Графики погрешностей разных порядков для двух разбиений

Выводы и анализ результатов

Как видно из графиков, представленных в приложении, погрешность построения полинома относительно заданных методов выбора узлов достаточно велика. Даже для полинома 14го порядка не происходит полного наложения графиков функции и полинома.