nshukwrd 发表于 2018-9-13 15:33:46

拉格朗日插值法

function yy=lagrange(x,y,xx)
% Lagrange 插值
% yy=lagrange(x,y,xx)求数据(x,y)所表达的函数在插值点xx处的插值
%    要求x,y为同维数向量
%例如 数据
%   x | 0.10.20.15 0.0-0.2 0.3
%   --|------------------------------
%   y | 0.95 0.84 0.86 1.06 1.50 0.72
% 求解
%    clear;close;
%    x=;
%    y=;
%    xi=-0.2:0.01:0.3;
%    yi=lagrange(x,y,xi);
%    plot(x,y,'o',xi,yi,'k');
%    title('lagrange');

% L.J. Hu 8-20-1998

m=length(x);n=length(y);
if m~=n, error('向量x与y的长度必须一致');end
s=0;
for i=1:n
   t=ones(1,length(xx));
   for j=1:n
      if j~=i,
         t=t.*(xx-x(j))/(x(i)-x(j));
      end
   end
   s=s+t*y(i);
end
yy=s;

   

页: [1]
查看完整版本: 拉格朗日插值法