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

來源:酷知科普網 2.77W

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

操作方法

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

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

(02)開啟Matlab軟體

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

(03)新建M檔案。1:在Matlab中點選左上角的New加號按鈕。2:在彈出的下拉選單中選擇Script。(Ps:可直接使用快捷鍵【Ctrl+N)】軟體就會彈出M函式編輯介面。)

Matlab程式設計實現拉格朗日插值法計算插值 第3張
Matlab程式設計實現拉格朗日插值法計算插值 第4張

(04)編寫拉格朗日插值函式程式: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:nxp = 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

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

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

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

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

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

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

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

特別提示

本文筆者所用的Matkab版本為2014a,其他版本均適用,只是2012a及以前的版本介面差別較大。

熱門標籤