4

私は二次曲面方程式を持っています ここに画像の説明を入力

私はA、B、Cを知っています...どうすれば私の方程式をmatlabでプロットできますか?

4

1 に答える 1

7

最善の策は、関数値 0 で 1 つの等高線を使用して、関数の 3D 等高線図を作成することです。妥当な精度でこれを行うには、いくつかの点 x、y、z で関数 F を次のように計算します。

gv = linspace(-30,30,50); % adjust for appropriate domain
[xx yy zz]=meshgrid(gv, gv, gv);
F = A*xx.*xx + B*yy.*yy + C*zz.*zz+ ... etc

figure
isosurface(xx, yy, zz, F, 0)

このようにする理由は、関数が通常多値であるためです。つまり、X と Y の特定の値に対して、Z に対して 2 つの可能な答えがある可能性があります。このようにすることで、その問題を効果的に回避できます。関数がゼロになる場所にサーフェスを配置します。

グリッドに任意のベクトルgvを指定したことに注意してください。つまり、関数が評価されるポイントです。正確で視覚的に満足のいく結果を得るには、解が可能な範囲内で各次元に約 50 個のポイントが必要になる可能性があります (これは 3 次元では異なる場合があります)。

たとえば、

F = xx.^2 + 2*yy.^2 + 0.5*zz.^2 + .4*xx.*yy + .5*xx.*zz + .6*yy.*zz + 7*xx + 8*yy + 9*zz - 100;

次の図が得られます。

ここに画像の説明を入力

于 2013-02-26T22:13:59.617 に答える