% Lagrange插值
clear
clc
%-----------------------------
n=10; %结点个数
lb=-1; %下界
ub=1; %上界
step=0.01; %作图点步长
%-----------------------------
% 原始函数图形
x0=lb:step:ub;
y0=1./(1+25*x0.^2);
plot(x0,y0,'r-'); hold on %-----------------------------
% 插值函数
for i=1:n+1
xi(i)=lb+(ub-lb)*(i-1)/n;
yi(i)=1/(1+25*xi(i)^2);
end
%------------------------------
count=1;
for x=lb:step:ub
fl=0;
%--------------------------
%求出pn(xk)
for k=1:n+1
up=1; dn=1;
%----------------------
%求出f(xk)
for i=1:n+1
if k~=i up=up*(x-xi(i));
dn=dn*(xi(k)-xi(i));
end
end
%----------------------
fl=fl+yi(k)*up/dn;
end
pn(count)=fl;
%--------------------------
fi(count)=1/(1+25*x^2);%求原函数的值
count=count+1;
end
%------------------------------
% L插值函数图
x=lb:step:ub;
plot(x,pn,'g--')
%------------------------------
num=(ub-lb)/step+1;
for i=1:num
p_f(i)=pn(i)-fi(i);
end
center=fix(num/2);
scale=fix(num/10);
a=center-scale;
b=center+scale;
disp ' pn(i)-fi(i) 的值为:'
p_f(a:b)