0

X 位置の 1 つ、Y 位置の別の 3 つのベクトルがあり、3 つ目は af(x, y) です。後で AMPL の最適化問題で結果を使用するため、(matlab を使用して) 代数式補間多項式を見つけたいと考えています。私の知る限り、補間多項式を返す関数はありません。

https://la.mathworks.com/help/matlab/ref/griddedinterpolant.htmlを試しましたが、この関数は特定のポイントで補間された値のみを提供します。

また、Matlab の関数形式の 2D 補間で提案されているhttps://la.mathworks.com/help/matlab/ref/triscatteredinterp.htmlも試しましたが、出力は多項式の係数ではありません。見えません。変な変数の中にロックされているようです。

これは、私がやっていることをテストするために行った小さなプログラムです:

close all
clear
clc

[X,Y] = ndgrid(1:10,1:10);
V = X.^2 + 3*(Y).^2;
F = griddedInterpolant(X,Y,V,'cubic');
[Xq,Yq] = ndgrid(1:0.5:10,1:0.5:10);
Vq = F(Xq,Yq);
mesh(Xq,Yq,Vq)
figure
mesh(X, Y, V)

グリッドポイントで値を返す代わりに、その値を計算するために使用したものを返す出力が必要です。https://reference.wolfram.com/language/ref/InterpolatingPolynomial.htmlを使用してmathematicaで実行できることを認識しているため、matlabで実行できないのは奇妙です。

4

1 に答える 1