私はMATLABを使い始めました。私はこの2次多項式面の最小値と最大値を見つけたいと思っています。MATLABでサーフェスの最小値と最大値を求める
f(x,y) = 4490 + 8902*x + 1.385e+05*y + 9.497*x^2 + -9928*x*y + 1.481e+05*y^2;
私はdegree 1関数の最小値と最大値を計算する方法を知っていますが、より高い度合いの関数についてはリードできませんでした。任意の提案をいただければ幸いです。
私はMATLABを使い始めました。私はこの2次多項式面の最小値と最大値を見つけたいと思っています。MATLABでサーフェスの最小値と最大値を求める
f(x,y) = 4490 + 8902*x + 1.385e+05*y + 9.497*x^2 + -9928*x*y + 1.481e+05*y^2;
私はdegree 1関数の最小値と最大値を計算する方法を知っていますが、より高い度合いの関数についてはリードできませんでした。任意の提案をいただければ幸いです。
はx
と、すべてのy
のための機能を評価し、その行列のmin
/max
を見つける:
x1D = 1:100;
y1D = 1:100;
[x,y] = meshgrid(x1D,y1D);
f = 4490 + 8902*x + 1.385e+05*y + 9.497*x.^2 + -9928.*x.*y + 1.481e+05*y.^2;
[minV, minL] = min(f(:));
[maxV, maxL] = max(f(:));
[minX, minY] = ind2sub(size(f),minL);
[maxX, maxY] = ind2sub(size(f),maxL);
は、最初のxの範囲を定義します、あなたはminima.Thenを見つけたいyはメッシュグリッドを作ります基本的にxとyを座標として含む行列です。そして、それらのすべての点での関数を、行列でもあるzとして評価する。 zの各メンバーは、入力としてxとyに似た位置にあります。次に、z行列の最小値の位置を求めます。最後の2つのコマンドは、最小値が発生した位置座標を与えるはずです。
x=1:100;
y=1:100;
[X,Y]=meshgrid(x,y); %
z = 4490 + X.*8902 + Y.*1.385e+05 +X.^2*9.497 X.*Y.*9928+Y.^2*1.48e+05;
[X,Y]=meshgrid(x,y);
surf(x,y,z) % plotting the curve
[Row,Col]=find(z==min(min(z)))
x(Row) % x coordinate
y(Col) % y coordinate
ありがとうございました – Nick
ありがとうございました – Nick