• 締切済み

ルートを含む連立方程式に関して

こんにちは. 数学の問題を質問させてください. 分母にルートを含む連立方程式の解き方を悩んでいます. 次の3つの連立方程式で変数はx,y,zの3つでA,B,C,Pは任意の定数です. 1/{P+sqrt(x^2+y^2+z^2)}+1/{P+sqrt((x-1)^2+y^2+z^2)}=A 1/{P+sqrt((x+2)^2+y^2+z^2)}+1/{P+sqrt((x+1)^2+y^2+z^2)}=B 1/{P+sqrt(x^2+(y-2)^2+z^2)}+1/{P+sqrt((x-1)^2+(y-2)^2+z^2)}=C MaximaやMathematicaなどのソフトを使って,このまま計算させると常に「実行中」となり,解が求まりません. 手計算である程度,式を簡単にしようと式変形を試したのですが,有理化することもできず,ルートが計算の邪魔をします. このような連立方程式はどのように解けばいいのでしょうか? どなたか解法の手順をご存知の方がおられましたら,教えてください.

みんなの回答

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

いくつかのアプローチが考えられます。「反復法」と「多項式に変換」の2つの方法を紹介します。 1 反復法 x、y、z の初期値を適当に定めて、そこから小刻みに変数を動かして解に近づける方法です。 (1) 最も単純には、刻みの幅を h として、(x, y, z+h)、(x, y, z-h)、(x, y+h, z)、(x, y-h, z)、(x+h, y, z)、(x-h, y,z) の6 点のうち、最も解に近いものを次の初期値にします。 解への近さの指標として、例えば、次のD(x,y,z) が考えられます。 D(x,y,z) = F(x,y,z)^2 + G(x,y,z)^2 + H(x,y,z)^2 F(x,y,z) = 1/{P+sqrt(x^2+y^2+z^2)}+1/{P+sqrt((x-1)^2+y^2+z^2)} - A G(x,y,z) = 1/{P+sqrt((x+2)^2+y^2+z^2)}+1/{P+sqrt((x+1)^2+y^2+z^2)} - B H(x,y,z) = 1/{P+sqrt(x^2+(y-2)^2+z^2)}+1/{P+sqrt((x-1)^2+(y-2)^2+z^2)} - C (2) また、6 点を比較する代わりに、D(x,y,z)の偏微分を計算して、D(x,y,z)の減少幅が最も大きい方向に(x,y,z)を動かすことも考えられます。 (3) (ニュートン法)上とは別に、初期値での偏微分係数を使って、初期値の近傍でF(x,y,z)、G(x,y,z)、H(x,y,z) をそれぞれ近似する線形関数を作ることができます。これらを FL(x,y,z)、GL(x,y,z)、HL(x,y,z) とすれば、線形連立方程式   FL(x,y,z) = 0   GL(x,y,z) = 0   HL(x,y,z) = 0 を簡単に解くことができます。そこで、その解を次の初期値とする方法もあります。これは、 1 変数のときの「ニュートン法」を多変数に拡張したものです。 (4) 調べれば、もっと効率の良い反復法があるかもしれません。反復法では、解に必ず収束する保証がありません。また、解を1つ見つけるには良いのですが、すべての解を求めたいときには、不向きです。ただ、計算が簡単なので、試してみる値打ちはあると思います。 2 多項式に変換 ご質問の連立方程式は、多項式の連立方程式に変換できます。   r = sqrt(x^2+y^2+z^2)   s = sqrt((x-1)^2+y^2+z^2)   t = sqrt((x+2)^2+y^2+z^2)   u = sqrt((x+1)^2+y^2+z^2)   v = sqrt(x^2+(y-2)^2+z^2)   w = sqrt((x-1)^2+(y-2)^2+z^2) とすれば、ご質問の方程式は、r,s,t,u,v,w,x,y,zを未知数とする次の連立方程式に帰着します。 [1] 1/{P+r}+1/{P+s} = A [2] 1/{P+t}+1/{P+u} = B [3] 1/{P+v}+1/{P+w} = C [4] r^2 = x^2+y^2+z^2 [5] s^2 = (x-1)^2+y^2+z^2 [6] t^2 = (x+2)^2+y^2+z^2 [7] u^2 = (x+1)^2+y^2+z^2 [8] v^2 = x^2+(y-2)^2+z^2 [9] w^2 = (x-1)^2+(y-2)^2+z^2 [1]、[2]、[3] は、分数式ですが、分母を払えば多項式になります。 一般に、多項式の連立方程式は、終結式を計算して未知数を1つずつ消去できます。最後は、1 変数多項式の根を求める問題に帰着します。(もし終結式(resultant)に馴染みがなければ、ネット等で調べてみてください。) ただ、未知数が多いときや、多項式の次数が大きいときは、大量の計算を要します。 3 計算量を減らす工夫 以下、2の方法を採用します。今回のケースでは、式の特殊性を活かして、計算量を減らせそうです。 [4]、[5]、[6]、[7] から次が得られます。 [10] r^2 - s^2 = 2x - 1  ([4] - [5]) [11] r^2 - t^2 = -4x - 4  ([4] - [6]) [12] r^2 - u^2 = -2x - 1  ([4] - [7]) さらに次が得られます。 [13] 3r^2 - 2s^2 - t^2 + 6 = 0  (2×[10] + [11]) [14] 2r^2 - s^2 - u^2 +2 = 0  ( [10] + [12]) [15] 2P + r + s - A(P+r)(P+s) = 0 ([1] から) [16] 2P + t + u - B(P+t)(P+u) = 0 ([2] から) そこで、[13]、[14]、[15]、[16] を連立させて解けば、未知数 r、s、t、u が求まります。未知数を4個にまで減らせたので、終結式等の計算も比較的楽になります。r、s、t、u が分かれば、残りの v、w、x、y、z は、簡単に計算できます。 4 終結式の実例 例として、P = 1、A = 1、B = 2 の場合を見てみます。[13]から[16]を書き直して次のようになります。 [17] 3r^2 - 2s^2 - t^2 + 6 = 0 [18] 2r^2 - s^2 - u^2 +2 = 0 [19] 2 + r + s - (1+r)(1+s) = 0  [20] 2 + t + u - 2(1+t)(1+u) = 0 まず、u を消去します。[18] と [20] を u の多項式とみて終結式を計算して、次を得ます。 [21] 2r^2+8r^2t^2+8r^2t+2-s^2-4s^2t^2+7t^2-4s^2t+8t = 0 [17]、[19]、[21] を連立させれば、r、s、t が求まります。 次に t を消去します。[17] と [21] を t の多項式とみて終結式を計算して、次を得ます。 [22]  576r^8+3216r^6-1344r^6s^2+6385r^4-5528r^4s^2+1168r^4s^4+5288r^2-7170r^2s^2+3144r^2s^4-448r^2s^6+1552-2920s^2+2001s^4-592s^6+64s^8 = 0 [19]、[22] を連立させれば、r、sが求まります。 最後に s を消去します。[19] と [22] を s の多項式とみて終結式を計算して、次を得ます。 [23]  576r^16+3,216r^14+5,041r^12-240r^10-4,450r^8+224r^6+1,553r^4-592r^2+64 = 0 [23] は r の 1 変数多項式なので、根を計算できます。実数根は、次の 4 個です。   0.65462787707241373   -0.65462787707241373   0.6169849849583644   -0.6169849849583644 ただ、r = sqrt(x^2+y^2+z^2) だったので、r は、非負値です。よって、 r として可能性があるのは、 r = 0.65462787707241373 と r = 0.6169849849583644 です。 これらの r を [19] と [22] に代入すれば、s が求まります。s として可能性があるのは、[19] と [22] の両方に共通する非負の根です。 これらの r、s を [17]、[19]、[21] に代入すれば、t が求まります。t として可能性があるのは、[17]、[19]、[21]のすべてに共通する非負の根です(ただし、[19] は当然満たされるので、[17] と [21] だけをチェックすればよい)。 以下、同様に続ければ、x、y、z まで求まります。