function y=lagrange(x0,y0,x) % inputs: % x0:系数矩阵,维度为n*1 % y0:载荷矩阵,维度为n*1 % x:绘图点矩阵,维度为m*1 % outputs: % y:未知量矩阵,维度m*1 n=length(x0); m=length(x); for i1=1:m temp=x(i1); sum=0; for i2=1:n l=1; for i3=1:n if i2~=i3 l=l*(temp-x0(i3))/(x0(i2)-x0(i3)); end end sum=sum+l*y0(i2); end y(i1)=sum; end
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
% assignment1.m
clear; x=-1:0.001:1; y=1./(1+25.*x.*x); x1=-1:2/4:1; y1=1./(1+25.*x1.*x1); x2=-1:2/10:1; y2=1./(1+25.*x2.*x2); plot(x,y,'b'); hold on; y=lagrange(x1,y1,x); plot(x,y,'r'); hold on; y=lagrange(x2,y2,x); plot(x,y,'g');