Интерполирование функции для заданных полиномов, страница 2

c.  Построение полиномов Лагранжа по вычисленным значениям

d.  Построение графиков полиномов и погрешностей

Построение графиков осуществляется стандартными средствами среды MatLab 7.01. На экран выводятся графики интерполяционных полиномов с различным выбором узлов и степеней полиномов. График погрешности строится исходя из определения – как разность между точным значением функции и значением полинома в этой точке.

3. Текст программы:

RR.m

function x=RR(a,b,n) %[a,b]на n частей

h=(b-a)/n;

for i=1:n+1

    x(i)=a+h*(i-1); %узлы

end

CHR.m

function x=CHR(a,b,n) %[a,b] на n частей Чебышев

for i=1:n+1

    x(i)=1/2*((a-b)*cos((2*i-1)*pi/(2*n+2))+b+a); %узлы

end

OP.m

function y=OP(x) %строка значений исходной функции в узлах

for i=1:length(x)

    y(i) = 1/(25*x(i).^2+1);

end

Lagr.m

function ycon=Lagr(x,y,xcon)

for j=1:length(xcon) %перебор всех значений для построения полинома

    l=0;%значение полинома

    for i=1:length(x)

        w=1;

        for k=1:length(x)

            if i~=k w=w*(xcon(j)-x(k))/(x(i)-x(k));

            end

        end

        l=l+w*y(i); %L=y(0)*w0+y(1)*w1+...

    end

    ycon(j)=l;

end

Graph.m

%*****n=2*****

a=-1;%Predefined constants

b=1;

buildstep=0.01;

n=2;

%RR

x=RR(a,b,n);

y=OP(x);

xcon=[a:buildstep:b];

yorigin=OP(xcon);

ypol=Lagr(x,y,xcon);

figure('Name','n=2 | Lagrange');

subplot(2,1,1)

hold on

plot(xcon,yorigin,'--r',xcon,ypol,'-b')

plot(x,y,'bo')

%CHR

x=CHR(a,b,n);

y=OP(x);

ypol2=Lagr(x,y,xcon);

plot(xcon,ypol2,'-g')

plot(x,y,'g*')

hold off

%Погрешности

subplot(2,1,2)

plot(xcon,ypol-yorigin,'-.b',xcon,ypol2-yorigin,'-b')