matlab拉格朗日插值法程序框图,MATLAB实现拉格朗日插值法

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

%lagran1.m

%求拉格朗日插值多项式和基函数

%输入的量:n+1个节点(x_i,y_i)(i = 1,2, ... , n+1)横坐标向量X,纵坐标向量Y

%输出的量:n次拉格朗日插值多项式L,基函数l

function [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拉格朗日插值法程序框图,MATLAB实现拉格朗日插值法_第1张图片

原文:http://www.cnblogs.com/buzhizhitong/p/5841293.html

你可能感兴趣的:(matlab拉格朗日插值法程序框图,MATLAB实现拉格朗日插值法)