不逼逼赖赖,直接上代码即可
函数代码
function yy=lagrange(x,y,xx) %号Lagrange插值,求数据(x,y)所表达的函数在插值点xx处的插值
m=length(x);
n=length(y);
if m~=n,error ('向量x与y的长度必须一致')
end
s=0;
for i=1:n
t=ones(1,length(xx));
for j=1:n
if j~=i,
t=t.*(xx-x(j))/(x(i)-x(j));
end
end
s=s+t*y(i);
end
yy=s;
调用代码
%%拉格朗日插值
clear all;
x=[0.1 0.2 0.15 0 -0.2 0.3];
y=[0.95 0.84 0.86 1.06 1.5 0.72]
xi=-0.2:0.01:0.3;
yi=Lagrange(x,y,xi)
figure;
plot(x,y,'o',xi,yi,'k')