• ベストアンサー

指数方程式の解法について。

どなたかご教授願います。 (A・t+B)t・exp^(C・t) = D をtについて解くような問題なのですが、 どなたか教えていただけませんでしょうか。 A、B、C、Dは全て定数です。 宜しくお願いいたします。

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

  • ベストアンサー
  • inara
  • ベストアンサー率72% (293/404)
回答No.2

質問の方程式の解は2つあって    t = 2*f[ 1/2*√{ ( C^2*D )/( A*B ) } ]/C   [ 0≦ ( C^2*D )/( A*B ) の場合 ]    t = 2*f[ 1/2*√{ -( C^2*D )/( A*B ) } ]/C  [ ( C^2*D )/( A*B ) ≦0 の場合 ] となります。 f( ) は LambertのW関数で、y*exp(y) = x を満たすような関数 y = f(x) のことです(初等関数では表わせません)。y*exp(y) の形が入っている方程式で y を求めるような場合、このLambertのW関数が出てきます。 f (x) の定義域は -1/e < x で( e はネピア数)、f(0) = 0 の単調増加関数です[1]。過去の質問で、解にLambertのW関数を含むものがいくつかあります[2] [3] が、その中にLambertのW関数をExcel VBAで計算するマクロが出ています[2]。これを使えば、Excelのセル中に、=LambertW( ) と書き込むことで、普通の関数のように計算できます。 【ExcelVBAを使ってLambertW関数を計算する方法】 Excelの「ツール→マクロ→Visual Basic Editor→挿入→標準モジュール」で出た空白のコード画面に下のプログラムを貼り付け、Excelシートに戻って、あるセルに =LambertW( ここに引数を書く) と書けば計算できます。 ↓ここから Function LambertW(x As Double) As Variant If x < -Exp(-1) Then LambertW = "" Exit Function Else If x = 0 Then LambertW = 0 Exit Function End If End If Dim W As Double, W1 As Double, eps As Double, ew As Double eps = 10 ^ (-15) W = 1 While Abs((W - W1) / W) > eps W1 = W ew = Exp(W) W = W - (W * ew - x) / (ew * (W + 1) - (W + 2) * (W * ew - x) / (W + 1) / 2) Wend LambertW = W1 End Function ↑ここまで [1] LambertのW関数 http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%83%99%E3%83%AB%E3%83%88%E3%81%AEW%E9%96%A2%E6%95%B0 [2] lnの方程式 A=xloge(x)+xB の解は http://oshiete1.goo.ne.jp/qa2726817.html [3] x=log{100(1+x)} の解 http://oshiete1.goo.ne.jp/qa2993718.html

Ben1981
質問者

お礼

わかりやすい解説、ありがとうございます。 やはり、手計算では、無理ですね。 LambertのW関数・・・学生の時にあったなあ・・・という感じです。 もう少し、勉強してみます。

その他の回答 (3)

noname#101087
noname#101087
回答No.4

#1 です。 確かに、解が一意的でない場合もあります。 定数{A、B、C、D}次第なようで、面倒そうです。   A,B,C,D = 1 の場合は、たまたま一個らしい。

  • inara
  • ベストアンサー率72% (293/404)
回答No.3

ANo.2 です。 ANo.2の解は間違っていました。ANo.2 は (A・t・B)t・exp^(C・t) = D の解でした。 (A・t+B)t・exp^(C・t) = D は、数式処理ソフト(Maple)では解けませんでしたが、 途中の t がない場合   (A・t+B)・exp^(C・t) = D や、A B の一方がゼロの場合   (A・t)t・exp^(C・t) = D   (B・t)exp^(C・t) = D なら解けます。

noname#101087
noname#101087
回答No.1

>(A・t+B)t・exp^(C・t) = D をtについて解くような問題 .... 逐次解法ではいかが ? たとえば   f(t) = A*t^2 +B*t - D*exp(-C*t)   f'(t) = 2A*t + B + D*C*exp(-C*t) として、f(t) の零点に Newton-逐次接近させます。   A,B,C,D = 1 の場合を試してみると、   t0 = 1 からスタートして 5回目でほぼ収束。

Ben1981
質問者

お礼

早々のご返答、ありがとうございました。

関連するQ&A