lagrange.m

来自「一本大众化的书」· M 代码 · 共 34 行

M
34
字号
function yy=lagrange(x,y,xx)
% Lagrange 插值
% yy=lagrange(x,y,xx)求数据(x,y)所表达的函数在插值点xx处的插值
%    要求x,y为同维数向量
%例如 数据
%   x | 0.1  0.2  0.15 0.0  -0.2 0.3
%   --|------------------------------
%   y | 0.95 0.84 0.86 1.06 1.50 0.72
% 求解
%    clear;close;
%    x=[0.1,0.2,0.15,0,-0.2,0.3];
%    y=[0.95,0.84,0.86,1.06,1.50,0.72];
%    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;

   

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?