天天看點

圖像拉格朗日插值法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實作拉格朗日插值法

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