首页 > 代码库 > MATLAB实现拉格朗日插值法

MATLAB实现拉格朗日插值法

    开始学习MATLAB(R和Python先放一放。。。),老师推荐一本书,看完基础就是各种算法。。。首先是各种插值。先说拉格朗日插值法,这原理楼主完全不懂的,查的维基百科,好久才看懂。那里讲的很详细,这里就不在赘述了。关于MATLAB的实现,查了很多资料,下面的版本最好理解。

%lagran1.m  %求拉格朗日插值多项式和基函数  %输入的量:n+1个节点(x_i,y_i)(i = 1,2, ... , n+1)横坐标向量X,纵坐标向量Y  %输出的量:n次拉格朗日插值多项式L,基函数lfunction [L,l] = lagran1(X,Y)  m = length(X); L = ones(m,m);  for k = 1 : m      V = 1;      for i = 1 : m          if k ~= i              V = conv(V,poly(X(i))) / (X(k) - X(i));          end      end      l(k, :) = poly2sym(V);  end  L = Y * l; 

  conv在此处用于多项式相乘。

  关于poly2sym,是将数组转化为多项式的函数,不指定符号,默认为x.

技术分享

 

MATLAB实现拉格朗日插值法