% Chebyshev插值多项式
clear
clc
%-----------------------------
n=20; %结点个数
lb=-1; %下界
ub=1; %上界
step=0.01; %作图点步长
%-----------------------------
% 原始函数图形
x0=lb:step:ub;
for i=1:length(x0)
y0(i)=exp(x0(i));
end
plot(x0,y0,'r-');
hold on
%-----------------------------
% 插值函数
for i=1:n+1
xi(i)=(lb+ub)/2+((ub-lb)/2)*cos((2*i-1)*pi/(2*(n+1)));
yi(i)=exp(xi(i));
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)=exp(x);%求原函数的值
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)