0

私が書いているプログラムは、2 つの楕円の交点を見つける必要があります。どちらも垂直で、同じ中心を共有しています。4 つのソリューションのうち、最初のソリューションのみが必要です。

これを解決するために使用できる値は、各楕円の垂直成分と水平成分の半径、または楕円の標準方程式を使用している場合は 'a' と 'b' の値です。以前に円錐非線形システムを解いたことがありますが、代数的なアイデアをアルゴリズムに変換する方法がわかりません。

これは比較的単純に思えますが、私は完全に立ち往生しています。くだらない質問で申し訳ありませんが、回答いただければ幸いです。

4

2 に答える 2

2

楕円の中心が原点になるように座標系をシフトしたとします。次に、両方の楕円を正準方程式を使用して記述できます。

楕円 1

楕円 2

ここで、 a 1b 1a 2b 2は楕円のそれぞれのパラメータです。

あとは、この連立方程式を解くだけです。たとえば、Wolfram|Alphaがそれを実行してくれます (ここでは a 2をcb 2dに置き換えました)。

楕円が重要であると仮定すると、可能なソリューションのペアは次のとおりです。

ここに画像の説明を入力

ここに画像の説明を入力

ルートの前に異なる +/- 符号を持つ他のペアがあります。

于 2012-04-15T18:10:41.693 に答える
0

(x/a)^2 + (y/b)^2 = 1両方のペア(a、b)の楕円方程式を作成し、y ^ 2を右に因数分解し、左側を等しくします。

(x*b1/a1)^2 - b1^2 = y^2   (1)
(x*b2/a2)^2 - b2^2 = y^2

これにより、次のように簡略化されます。

(x*b1/a1)^2 - b1^2 = (x*b2/a2)^2 - b2^2 

xの2次方程式。これにより、最大2つの実数解(x1、x2)が得られます。x1を差し込んだ楕円方程式(1)は、yの2つの値を示します(y1、y2という名前を付けます)。あなたの解決策は次のとおりです。

(x1, y1)
(x1, y2)
(x2, y1)
(x2, y2)

もちろん、交点は少なくなる可能性がありますが、一部の2次方程式は複雑な解を持つため、簡単に決定できます。

于 2012-04-15T18:07:21.797 に答える