2つの変数の陰方程式をプロットするために使用される通常の方法またはアルゴリズムは何ですか?
私は次のような方程式について話している
sin(x * y)* y = 20
x * x-y * y = 1
等。
MapleまたはMatlabがこれを行う方法を知っている人はいますか?私の目標言語はC#です。
どうもありがとう!
これを行う1つの方法は、通常の2Dグリッドで関数をサンプリングすることです。次に、結果の2Dグリッド上で正方形をマーチングするようなアルゴリズムを実行して、等高線を描画できます。
関連する質問では、誰かがgnuplotのソースコードにもリンクしています。かなり複雑ですが、実行する価値があるかもしれません。あなたはここでそれを見つけることができます:http ://www.gnuplot.info/
x
プロットする範囲全体での値を繰り返します。xの固定値ごとに、区間二分法やニュートンラプソン法(陰関数の微分を使用して導関数を計算するか、数値的に微分することができます)などの方法を使用して方程式を数値的に解きます。これにより、特定のの対応する値が得y
られx
ます。ほとんどの場合、非常に正確な結果を得るのにあまり多くの反復を必要とせず、とにかく非常に効率的です。
f(x) = 0
これは常に些細なことですが、方程式を形式に変換する必要があることに注意してください。この方法の良いところは、逆の場合も同様に機能することです(つまり、値の範囲を固定y
して計算x
する)。
複数の方法があります。私が見つけた最も簡単なアルゴリズムは 、 https : //homepages.warwick.ac.uk/staff/David.Tall/pdfs/dot1986b-implicit-fns.pdfで説明されており、Noldorinがあなたに説明した内容を説明しています。
最も複雑なものであり、実際に多くの特殊なケースを解決できるもののようです 。https ://academic.oup.com/comjnl/article/33/5/402/480353で説明されています。
おもう、
matlabでは、xの入力として配列を指定します。
次に、すべてのxについて、yを計算します。
次に、x0、y0からx1、y1に線を引きます
次に、x1、y1からx2、y2に線を引きます
..。
..。