function L = lagrange1(x,X,Y)
%UNTITLED2 此处显示有关此函数的摘要
% 此处显示详细说明
n=numel(X);%变量个数
if numel(X) ~=numel(Y)
disp('ERROR');
end
m=numel(x);%最终图上要画的点的个数
temp=ones(n,m);
for k=1:1:m
%求每一个x对应的函数值,共m个自变量取值x
for i=1:1:n
for j=1:1:n
if i~=j
temp(i,k)=temp(i,k).*(x(1,k)-X(1,j))./(X(1,i)-X(1,j));
end
end
end
end
L=zeros(1,m);
for k=1:1:m
for j=1:1:n
L(1,k)=L(1,k)+temp(j,k).*Y(1,j);
end
end
end
在脚本文件里输入已有点的横纵坐标字符串,然后直接可以画出函数图像了
X=[-1,1,3,4];
Y=[-2,0,-6,3];
plot(X,Y)
x=-1:0.1:5;
plot(x,lagrange1(x,X,Y))
grid minor
x数组是画图像取得横轴,L数组是其对应的纵轴坐标值
因为想输出函数表达式,后来又做了如下更改:(使用符号变量)
(对不起,太难了,不更改了,就这样叭....留个坑我考完再来研究)