拉格朗日插值matlab程序

拉格朗日插值matlab程序
拉格朗日插值matlab程序

拉格朗日插值的调用函数

function y=lagrange(x0,y0,x)

n=length(x0);m=length(x);

for i=1:m

z=x(i);

L=0.0;

for j=1:n

T=1.0;

for k=1:n

if k~=j

T=T*(z-x0(k))/(x0(j)-x0(k));

end

end

L=T*y0(j)+L;

end

y(i)=L;

end

四个图在一起:

x=[-1:0.05:1];

y=1./(1+25*x.^2);

x0=[-1:0.4:1];

y0=1./(1+25*x0.^2);

y1=lagrange(x0,y0,x);

x0=[-1:0.2:1];

y0=1./(1+25*x0.^2);

y2=lagrange(x0,y0,x);

x0=[-1:0.1:1];

y0=1./(1+25*x0.^2);

y3= lagrange(x0,y0,x);

plot(x,y,'-r')

hold on

plot(x,y1,'-b',x,y2,'-r',x,y3,'-r')

l5和fx在一起:

x=[-1:0.05:1];

y=1./(1+25*x.^2);

x0=[-1:0.4:1];

y0=1./(1+25*x0.^2); y1=lagrange(x0,y0,x); plot(x,y,'-r')

hold on

plot(x,y1,'-b')

l10和fx在一起:

x=[-1:0.05:1];

y=1./(1+25*x.^2);

x0=[-1:0.2:1];

y0=1./(1+25*x0.^2); y2= lagrange(x0,y0,x); plot(x,y,'-r')

hold on

plot(x,y2,'-b')

l20和fx在一起:

x=[-1:0.05:1];

y=1./(1+25*x.^2);

x0=[-1:0.1:1];

y0=1./(1+25*x0.^2); y3= lagrange(x0,y0,x); plot(x,y,'-r')

hold on

plot(x,y3,'-b')

相关主题
相关文档
最新文档