ラグランジュ補間に関する回答を確認しましたが、私の質問に適切なものが見つかりませんでした。私は、MATLABで表面のラグランジュ補間を使用しようとしています。私はxとyベクトルとf = f(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,'-')
のように私はいつもだfが、それは私の関数であり、その後、私は、任意のxに対しての答えを待っている
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
、Y:私は私がやったことは数学的に正しいと思います、助けてくれてありがとう!
ここで問題が何であるかはっきりしていません。この機能は機能しませんか?また、[あなたのコードをベクトル化する](http://www.mathworks.com/support/tech-notes/1100/1109.html)を見てください.4つの 'for'ループは、ほとんどMATLABのやり方ではありませんもの。 – eykanal