MATLAB拉格朗日插值

  • Post author:
  • Post category:其他


%程序:lagrange.m

%功能:拉格朗日插值算法(MATLAB R2009a)

%说明:x自变量取值向量

%     y对应x的函数取值

%     xh可以是一个向量,计算xh处插值结果

%     yh对应xh的结果

%实例:给定x=0:2*pi,y=sin(x),xh=0:0.1:2*pi

%   >>x=0:2*pi

%   >>lagrange(x,sin(x),0:0.1:2*pi);

function yh=lagrange(x,y,xh)

n=length(x);

m=length(xh);

yh=zeros(1,m);

c1=ones(n-1,1);

c2=ones(1,m);

for i=1:n

xp=x([1:i-1 i+1:n]);

yh=yh+y(i)*prod((c1*xh-xp’*c2)./(x(i)-xp’*c2));

end

plot(xh,yh,’b’);

hold on;

plot(x,y,’r’);

title(‘Lagrange插值’);



版权声明:本文为hemmingway原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。