網站首頁 健康小知識 母嬰教育 起名 運動知識 職場理財 情感生活 綠色生活 遊戲數碼 美容 特色美食 愛好
當前位置:酷知知識幫 > 遊戲數碼 > 電腦

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

欄目: 電腦 / 發佈於: / 人氣:2.74W

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

操作方法

(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及以前的版本界面差別較大。