我檢查了關於拉格朗日插值的答案,但是我找不到適合我的問題的答案。我試圖用matlab對曲面使用拉格朗日插值。假設我有一個x和y向量,f = f(x,y)。我想插入這個f函數。我認爲,我所做的是正確的數學:拉格朗日插值
function q = laginterp(x,y,f,ff)
n = length(x);
m = length(y);
v = zeros(size(ff));
for k = 1:n
for l = 1:m
w1 = ones(size(ff));
w2 = ones(size(ff))
for j = [1:k-1 k+1:n]
for j = [1:l-1 l+1:n]
w1 = (x-x(j))./(x(k)-x(j)).*w1;
w2 = (y-y(i))./(y(l)-y(i)).*w2;
end
end
ff = ff + w1.*w2.*f(k,l);
end
end
這是我的功能,然後我在等待任何給定的x的答案,Y,F像
x= 0:4;
y = [-6 -3 -1 6];
f=[2 9 4 25 50];
v = laginterp(x,y,f,ff);
plot3(x,y,'o',f,q,'-')
我總是感謝任何幫助!
我不是很清楚問題在這裏。該功能不起作用嗎?另外,你應該研究[矢量化你的代碼](http://www.mathworks.com/support/tech-notes/1100/1109.html)...四個for循環幾乎從來都不是Matlab的做法的東西。 – eykanal