2021-05-12 14:32:11
Matlab程式設計實現拉格朗日插值法計算插值
在數值分析中,拉格朗日插值法是以法國十八世紀數學家約瑟夫·拉格朗日命名的一種多項式插值方法。許多實際問題中都用函數來表示某種內在聯絡或規律,而不少函數都只能通過實驗和觀測來瞭解。如對實踐中的某個物理量進行觀測,在若干個不同的地方得到相應的觀測值,拉格朗日插值法可以找到一個多項式,其恰好在各個觀測的點取到觀測到的值。
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】鍵即可得到拉格朗日插值函數計算的插值。
相關文章