拉格朗日插值多项式及Matlab代码

拉格朗日多项式为

Ln?x???yklk?x?

k?0n式中

x?x0???x?xk?1??x?xk?1???x?xn?? lk?x???xk?x0???xk?xk?1??xk?xk?1???xk?xn?给定函数表如下

x y?e x ? ? 0.1 1.1052 0.2 1.2214 0.3 1.3499 0.4 1.4918 0.5 1.6487 ? ? 0.285x?0.2,x?0.3e011)取计算的近似值

2)取

x0?0.2,x1?0.3,x2?0.4计算e0.285的近似值

function LagrangeSpline x0=[0.1,0.2,0.3,0.4,0.5];

y0=[1.1052,1.2214,1.3499,1.4918,1.6487]; xq=0.285; x=x0(2:4); y=y0(2:4);

yq=LagrangePoly(x,y,xq) return;

function yq=LagrangePoly(x,y,xq) xnum=length(x);ynum=length(y);

if xnum==ynum for k=1:xnum H1(k,:)=xq-x; H1(k,k)=1; H2(k,:)=x(k)-x; H2(k,k)=1; end;

L=prod(H1,2)./prod(H2,2); end;

yq=sum(L'.*y); return;

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4