プロが教えるわが家の防犯対策術!

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

宜しくお願いいたします。

A 回答 (4件)

#1 です。



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

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
なら解けます。
    • good
    • 0

質問の方程式の解は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% …
[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
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/10/01 22:55

>(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回目でほぼ収束。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/10/01 22:52

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