Matlab程序代码:
%给出两组数据数据x,y求拉格朗函数
function[]=laggrange(x,y,z)
hold on
syms t
plot(x,y,'r:o')
m=length(x)
n=length(z)
La=0;
for i=1:m
L=1;
for j=1:m
if i~=j
L=L*(t-x(j))/(x(i)-x(j));%求拉格朗日基函数
end
La=La+L*y(i);%求拉格朗日函数
end
end
x
y
for k=1:n
t=z(k);
Y(k)=eval(La);
end
factor(La)
plot(z,Y,'b')
hold off
end
运行截图: