• ベストアンサー

解が二つあるかどうか調べる方法

二つの円、 x^2/a^2 + y^2/b^2 =1 と (x-x0)/c^2 + (y-y0)^2/d^2 =1 があり、任意のx0においてy0がいくつの時に 円が接するか、すなわち解が二つではなく一つになるか 数値的に計算するプログラムを作りたいのですが どのような計算を行えば効率的に求めることができますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ramayana
  • ベストアンサー率75% (215/285)
回答No.4

式を見る限り、2つの楕円ですね。 (1) 両方が円の場合( a = b かつ c = d の場合)は、 円が 1 点で接する ⇔ (中心間距離 = 半径の和) 又は (中心間距離 = 半径の差 かつ 半径が異なる) 円が 2 点で交わる ⇔ 半径の差 < 中心間距離 < 半径の和 ですから、簡単です。 (2) a/b = c/d のときは、適当に変数変換すれば、両方が円の場合に帰着できます。 (3) 一般の場合は、連立方程式 x^2/a^2 + y^2/b^2 =1 (x-x0)/c^2 + (y-y0)^2/d^2 =1 の実数解を求め、その個数を数えます。2つの式の終結式をとって y を消去すれば、 x の 4 次方程式が得られます。したがって、この問題は、 4 次方程式の実数根を求める問題に帰着できます。

その他の回答 (3)

回答No.3

円の方程式を x^2 + y^2 = a^2 (a>0) (x-x0)^2+(y-y0)^2=b^2 (b>0) とすると、幾何学的に x0^2 + y0^2 = (a + b)^2 で解は一つのはず。

  • naniwacchi
  • ベストアンサー率47% (942/1970)
回答No.2

円といっても楕円の式になっているので、最大で 4つの解がでてくるのでは?

回答No.1

机上の計算で答えを求めておき、プログラムでは単に数値入力すれば算出されるようにすればいいでしょう。

dasugedegg
質問者

お礼

解析的に融けない場合にはどうしたら良いですか?  

関連するQ&A

専門家に質問してみよう