function [x0,y0] = Lagrange_2(x,y,x0)
%输入: x, y 插值节点(点点互异,否则修改为参数形式)
% x0待求点
%输出:x0,y0,插值结果
n = length(x); % 插值节点个数,x,y应该要一致
m = length(x0); % 待求点个数
y0 = zeros(1,m);% 为输出分配空间
for j = 1:m
for i=1:n
% Lagrange插值公式:li(x) = yi*prod(x-xj)/prod(xi-xj),i~=j;
xj = x;
xj(i) = [];
y0(j) = y0(j) + y(i)*prod( x0(j) -xj ) / prod( x(i) - xj );
end
end
%%%%%%%%%%%%%%
调用方法:
x = [-5:5];
y = 1./(1+x.^2);
x0 = [-5:0.01:5]; %根据自己电脑性能选取合适步长
[x0,y0] = Lagrange_2(x,y,x0);
hold on;
plot(x0,1./(1+x0.^2),'r');%原函数y=1/(1+x^2)图像
plot(x0,y0);%插值函数图像
dsfdsffs