首頁 > 軟體

Matlab程式設計實現拉格朗日插值法計算插值

2019-12-25 18:36:47

在數值分析中,拉格朗日插值法是以法國十八世紀數學家約瑟夫·拉格朗日命名的一種多項式插值方法。許多實際問題中都用函數來表示某種內在聯絡或規律,而不少函數都只能通過實驗和觀測來瞭解。如對實踐中的某個物理量進行觀測,在若干個不同的地方得到相應的觀測值,拉格朗日插值法可以找到一個多項式,其恰好在各個觀測的點取到觀測到的值。

1

理解多項式插值的內涵,明確拉格朗日插值多項式的性質和計算方法。


2

開啟Matlab軟體。


3

新建M檔案。

1:在Matlab中點選左上角的New加號按鈕。

2:在彈出的下拉式選單中選擇Script。

(Ps:可直接使用快捷鍵【Ctrl+N)】

軟體就會彈出M函數編輯介面。)



4

編寫拉格朗日插值函數程式:

function yh=lagrange (x,y,xh)

n = length(x);

m = length(xh);

yh = zeros(1,m); 

c1 = ones(n-1,1);

c2 = ones(1,m);

for i=1:n

  xp = x([1:i-1 i+1:n]);

  yh = yh + y(i)*prod((c1*xh-xp'*c2)./(x(i)-xp'*c2));

end

註:該程式只可一次計算實現一個插值計算。可實現多個插值計算的程式如下:

function yh=lagrange(x,y,xh)

n = length(x);

m = length(xh);

x = x(:);

y = y(:);

xh = xh(:);

yh = zeros(m,1); 

c1 = ones(1,n-1);

c2 = ones(m,1);

for i=1:n,

  xp = x([1:i-1 i+1:n]);

  yh = yh + y(i) * prod((xh*c1-c2*xp')./(c2*(x(i)*c1-xp')),2);

end


5

儲存檔案,需要特別注意的是檔名應與函數名相同。


6

在Matlab中輸入給定資料x和y,以及需要計算插值點的值xh。如圖輸入後按【Enter】鍵,載入資料。


7

呼叫編寫的程式,並執行。在Matlab的命令視窗輸入【lagrange (x,y,xh)】按【Enter】鍵即可得到拉格朗日插值函數計算的插值。



IT145.com E-mail:sddin#qq.com