都道府県穴埋めゲーム

数学に詳しい方、どなたか教えて下さい。

下記のような非線形連立方程式を解こうと、エクセルのソルバーを使って試みましたが、
解が得られませんでした。
ちなみに初期値は(x,y)=(1,1)で実行しました。

 12171060/e^((0.03+x)/y)+4847040/e^((0.06+x)/y)+762696/e^((0.09+x)/y)-1=0 …(1)
 13523400/e^((0.02+x)/y)+5385600/e^((0.04+x)/y)+847440/e^((0.06+x)/y)-1=0 …(2)

非線形連立方程式の解法、解がある条件などについてまったくの無知な為、
本当に解がないのか、単に初期値の設定が悪いために収束しないのか判断できません。

この方程式に解があるのかどうか、解が存在するのならどうやれば数値的に求められるのか、
どなたか教えて頂けますでしょうか。

A 回答 (3件)

Mapleという数式処理ソフトで解いたところ、以下の解が得られました。


x=-2.293319988,y=-0.1348692361

解がこの1つだけなのかを以下のようにして確かめてみました。
12171060/exp((0.03+x)/y)+4847040/exp((0.06+x)/y)+762696/exp((0.09+x)/y)-1=0 --- (1)
13523400/exp((0.02+x)/y)+5385600/exp((0.04+x)/y)+847440/exp((0.06+x)/y)-1=0 --- (2)

式(1)を x について解くと
x=-0.09+ln(12171060*exp(0.03/y)^2+4847040*exp(0.03/y)+762696)*y
となるので、これを式(2)に代入すると、y に関する以下の方程式が得られます。
13523400*exp(-0.01*(-7+100*ln(12171060*exp(0.06/y)+4847040*exp(0.03/y)+762696)*y)/y)+5385600*exp(-0.05*(-1+20*ln(12171060*exp(0.06/y)+4847040*exp(0.03/y)+762696)*y)/y)+847440*exp(-0.01*(-3+100*ln(12171060*exp(0.06/y)+4847040*exp(0.03/y)+762696)*y)/y)-1 = 0

複雑な式ですが、この左辺を f(y) とおけば、この解 y は
z = f(y)
というグラフとz = 0 との交点になります。

z = f(y)のグラフを描くと、添付図のように、y = -0.1348692361 以外に z = 0 と交点を持たないようなので、ご質問の連立方程式の解は1組だけだと思います。
「非線形連立方程式の解」の回答画像2
    • good
    • 0
この回答へのお礼

御礼が遅れてしまいすみません。
x=の式に変形して無事近似解を求めることができました。
ありがとうございます。

お礼日時:2013/03/07 23:34

数式処理ソフトウェアは嫌いなので、手計算でやってみる。



12171060/e^((0.03+x)/y)+4847040/e^((0.06+x)/y)+762696/e^((0.09+x)/y)-1=0 …(1)
13523400/e^((0.02+x)/y)+5385600/e^((0.04+x)/y)+847440/e^((0.06+x)/y)-1=0 …(2)

z = e^(0.01/y), w = e^(x/y) で置換すると、
12171060 z^3 + 4847040 z^6 + 762696 z^9 = w …(1')
13523400 z^2 + 5385600 z^4 + 847440 z^6 = w …(2')

w を消去して、396 z^2 f(z) = 0 …(3)
ただし f(z) = 1926 z^7 + 10100 z^5 - 13600 z^2 + 30735 z - 34150.
(3) を満たす z (ただし z>0) を求めればいい。

z>0 での f(z) の挙動を調べる。
f'(z) = 13482 z^6 + 50500 z^4 - 27200 z + 30735
から、
0<z≦1 のとき、
f'(z) ≧ 13482 z^6 + 50500 z^4 - 27200 + 30735
   = 13482 z^6 + 50500 z^4 + 3535
   > 0.
1<z のとき、
f'(z) > 13482 z^6 + 50500 z^4 - 27200 z^4 + 30735
   = 13482 z^6 + 23300 z^4 + 30735
   > 0.
で、結局、z>0 のとき f'(z) > 0.

f(0) = -34150 < 0, lim[z→+∞]f(z) = +∞ と併せると、
z>0 の範囲での f(z) = 0 の解は 1 個であることが解る。
よって、同じ範囲での (3) の解 z も 1 個。

この z に対して、z = e^(0.01/y) より y = 0.01/(log z) が決まり、
また (2') より w>0 だから、
w = e^(x/y) より x = y log w も決まる。

近似解を求めるには、f(z) = 0 に対してニュートン法を使うとよい。
初期値 z = 1 から (次のz) = z - f(z)/f'(z) で漸化すると、
3~4回の漸化で z ≒ 1.065… であることが解る。
この部分は、エクセルでもやってくれると思う。

z の真値が比較的 1 に近いことが災いして、解法によっては
数値解が求まりにくいのかもしれない。z ≒ 1 と丸めてしまうと、
上記の解法で y = 0.01/(log z) の計算に問題が生ずるから。
    • good
    • 0

z=exp(-0.01/y), w=exp(x/y) で置換すると、


(1) は w=(zの9次多項式)、
(2) は w=(zの6次多項式) と変形できる。
w を消去すれば z の 9 次方程式となる。
9 次関数の増減表を書いて、z>0 の範囲に解が
あるかどうかを確認するのは、難しくないはず。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!