チョコミントアイス

元本が 1、利率 0.1、利息の期間が 60 回なら
1*(1+0.1)^60
で、304.48...となります。

同じことを微分方程式を使ってやると
dx/dt=ax (x は利率適用後の金額、t は期間、a は利率とします)を解いて
x=A*exp(at) を得ます (A は t=0 のときの元本)。

なので、1*exp(0.1*60) を計算すると、403.42...となります。

というわけで、素直にべき乗で計算した場合と
微分方程式から得られた関数を使用した場合で
計算結果が異なってしまいます。

このような違いが出てしまうのは何故でしょうか。
微分方程式の理解が間違ってたりするでしょうか?

ご教示いただければ幸いです。

A 回答 (4件)

No.2 です。

#1 さんへの「お礼」を見ました。

>では、いったい x=A*exp(at) は何を表しているか?

その場合の「a」は、通常いうところの「年利率」とは違うのです。
「年利率」を P とすれば、P は「a」に対して「1年間 a を集積した値」つまり「a の年間積分値の年間平均値」みたいな関係です。
これが No.2 で導いた
 a = ln(1 + P)
という関係です。

これを使えば
 x = x0 * exp[ ln(1 + P) * t ] = x0 * exp[ ln(1 + P)^t ] = x0 * (1 + P)^t
となって、「P が年利率」という関係になります。
    • good
    • 1
この回答へのお礼

そうかー!

dx/dt=ax という微分法的式の解として得られる関数

ln(x)=at (とりあえず積分定数 C は 0 として) は、
むしろ t=1 のとき a=ln(x) と見るべきだったんだ。

そして、1 ステップ目の値が 1+P (P は利率)だから
a=ln(1+P)

そこまで来れば、あとは示していただいた通り
exp[ ln(1 + P) * t ]=exp[ ln(1 + P)^t ] = (1 + P)^t
になりますね。

ということは、やっぱり複利計算的なことがやりたければ、
素直にべき乗の計算をすれば良いことになりますね。

結局、微分方程式の使いどころは、力学的ところになるでしょうか?

お礼日時:2018/06/24 14:57

補足説明です。


微分方程式は滑らかに変化する(滑らかでないと微分できないから)現象の解析に使います。
細菌増加の件ですが、細菌の数が極端に少なくなければ、その数の変化は滑らかでしょうからその数xは、次の微分方程式の解として求められます。

dx/dt=αx  x=X0*exp(αt)  ただし、x(0)=X0 

となります。ここで、αを求めます。1分間で1.1倍になることより、

      exp(α)=1.1 より α=ln1.1=0.0953 x=X0*exp(0.0953*t)

上式より、任意の時刻t(分)におけるxが求められます。質問者が主張されているように、

「60分後には、1.1^60=304 (=exp(0.0953*60)) 倍になる。」

が正しいと思いますよ。
    • good
    • 0
この回答へのお礼

ありがとうございます!
No.3 のお礼に書かせていただいた通り、
みなさまの力を借りて、なんとか上記の発想にいたることができました。

やはり微分方程式は、「重力加速度を受け続ける」ような現象の解析に使うべきで、
ステップごとに再帰的な計算をする場合は不適切ってことですよね。

おそらく、入門書は初心者がイメージしやすいように、
複利計算やねずみ算的な「イメージ」を提示したんだと思いますが、
厳密に言えば間違いということがわかりました。

それならそうと断り書きを入れて欲しいところですが…

初心者向けに説明を端折ったおかげで、
どうして dx/dt = ax から再帰的な処理が出てくるのかと
ずいぶん悩みました…。(※そのままでは、出てこないが正解)

お礼日時:2018/06/24 15:22

元利計算の式は「1年ごとの利率」を使って元金合計は「1年に一度、ステップ状に増加する」こととなり、微分方程式のような「常時その比率で増大する」ものとは違うからです。


階段状の関数か、連続関数かの違いです。
つまり、元利計算の式と微分方程式とは、そもそも「等しくない」「等価ではない」ということです。

元利計算の式は、
 x(t) = x0 * (1 + a)^t   ①
であり、これを微分しても
 dx/dt = x0 * (1 + a)^t * ln(1 + a) = x * ln(1 + a)
となって、ax とは異なります。

従って、元利計算の式と等価な微分方程式は
 dx/dt = x * ln(1 + a)
ということになります。
    • good
    • 1
この回答へのお礼

なるほどー。
今、微分方程式の入門書をいくつか読んでいて、
ねずみ算的に (再帰的に?) 増加する場合の変化を
dx/dt = ax とモデリングして、そこから得られる関数

x= exp(at + C) または x= A*exp(at) ※Aは初期値

で計算するという説明がされているのですが、
実は、そもそも dx/dt = ax や、ソレを積分したものがどうして
再帰的な処理(ステップごとの計算結果を次のステップに組み込む)
を意味するのかが疑問でした。

「やっぱり、dx/dt = ax をどういじっても
複利的な(再帰的な)処理にはならなかったんだ!」

と思うと、多少スッキリしますが、それでは微分方程式の解は何を表しているか?
微分方程式は、いったい何に使うのか?
というあたりで、まだモヤモヤしています。

お礼日時:2018/06/24 13:13

元利合計する回数が60回と無限回の違いです。


無限回にすると、利率も無限に小さくなりますが。

600回にすると、(1+0・01)^600=391.6
6000回にすると、(1+0・001)^6000=402.2

微分方程式による解は、

lim[x→∞](1+0.1/x)^60x=lim[t→∞](1+1/t)^6t

=[lim[t→∞](1+1/t)^t]^6=exp(6)

を行っていることに他なりません。
    • good
    • 1
この回答へのお礼

早速ご回答いただきありがとうございます。

理屈としてはクリアに理解できました。
…が、それでは、微分方程式の解はいったい何に使うのか?
という疑問が残ってまだモヤモヤしています。

私が読んだ本では、1分間に 0.1 の割合で増える細菌は
60分後には exp(0.1*60) で約 403 倍にもなる、
と説明されていたのですが、単純に x=1.1^60 で 約 304 倍と
したほうが実態に即しているような気がします。

では、いったい x=A*exp(at) は何を表しているか?

やはり、私は微分方程式の表面的な解法を知っているだけで、
その意味を理解していなかったようです。

私が何を誤解しているのか指摘していただけると助かります。

お礼日時:2018/06/24 12:29

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


おすすめ情報