あらきけいすけのメモ帳

あらきけいすけの雑記帳2

非同次1階線形常微分方程式の初期値問題の解法

授業のための覚書。y, p(x), q(x)xの関数とするときの\displaystyle\frac{dy}{dx}+p(x)\,y=q(x)の解を求める。

 

大学教養程度の薄い教科書では不定積分を使うものしか見かけないのでメモ。

 

まず同次方程式\displaystyle\frac{dy}{dx}+p(x)\,y=0を変数分離法でx=0からx=tまで積分すると、\displaystyle\int_0^t\frac{1}{y}\frac{dy}{dx}dx=-\int_0^tp(x)dxである。ここで部分積分法より左辺の積分変数をyに変数変換すると\displaystyle\int_{y(0)}^{y(t)}\frac{1}{y}dy=-\int_0^tp(x)dxとなる。よって積分の結果は\displaystyle\ln|y(t)|-\ln|y(0)|=-P(t)となる(ここで\displaystyle P(t):=\int_0^tp(x)dxとする)。これより\displaystyle\left|\frac{y(t)}{y(0)}\right|=e^{-P(t)} \Longrightarrow \displaystyle\frac{y(t)}{y(0)}=\pm e^{-P(t)} だが、t=0の条件より負号は棄却され、\displaystyle{y(t)}={y(0)}e^{-P(t)} となる。*1

次に非同次の解だが、まずy(x)e^{P(x)}微分すると\displaystyle\left(y(x)e^{P(x)}\right)' \displaystyle=y'(x)e^{P(x)}+y(x)P'(x)e^{P(x)} \displaystyle=y'(x)e^{P(x)}+y(x)p(x)e^{P(x)} \displaystyle=q(x)e^{P(x)}であるから、この最左辺と最右辺をx=0からx=tまで積分すると、\displaystyle y(t)e^{P(t)}-y(0)e^{P(0)}=Q(t)となる(ここで\displaystyle Q(t):=\int_0^tq(x)e^{P(x)}dxとする)。P(0)=0に留意して整理すると、求める解は次のようになる:\displaystyle y(t)=y(0)e^{-P(t)}+e^{-P(t)}Q(t).

 

初期値問題の解のx=tでの値:\displaystyle y(t)=y(0)e^{-P(t)}+e^{-P(t)}\int_0^tq(x)e^{P(x)}dx, ただし \displaystyle P(t):=\int_0^tp(x)dx

*1:2019.4.19改稿; 旧版:y(t)y(0)から連続につながっているので、y(0)と同符号になるから、左辺は\displaystyle\ln|y(t)|-\ln|y(0)|=\ln\frac{|y(t)|}{|y(0)|}=\ln\frac{y(t)}{y(0)}となる。以上より両辺の\lnをはらって、y(t)=y(0)e^{-P(t)}となる。

e関連の極限の式を避けて対数関数と指数関数を微分する

 授業のための覚書。高校の数学IIIの合成関数の微分の知識を用いる。数学IIIの知識が一通りあれば、論理で押し切れそう。

 対数関数は対数法則 f(xy)=f(x)+f(y) を満たす可微分な関数なので、合成関数の導関数の公式を使い、この両辺を y微分して xf'(xy)=f'(y) となる。これに y=1 を代入して xf'(x)=f'(1) となる。ゆえに \displaystyle f'(x)=\frac{f'(1)}{x} である。ここで f'(1)=1 となる特別な対数関数を「自然対数」と呼び、 \ln x と表記することにすると、自然対数の導関数\displaystyle (\ln x)'=\frac{1}{x} となる(ところで対数の底の値は?)。

 自然対数の逆関数となる指数関数*1y=f^{-1}(x))の導関数\ln y=x の両辺を x について微分することで y'=y と分かる。この指数関数を便宜的に f^{-1}(x)=e^x と表記することにすると、(e^x)'=e^x となる。

 対数法則に x=y=1 を代入して f(1)=0 となること、x\gt0 のとき x^{-1}\gt0 を使って、対数関数の x での値は定積分 \displaystyle \ln x=\int_1^x\frac{dt}{t} で定義される数である。この定義が破綻しないためには \ln x の定義域を x\gt0 にしないといけない。

 対数の底の具体的な値は \displaystyle\int_1^e\frac{dx}{x}=1 を満たす1より大きい数 e数値計算で求めればよい(よい精度で求められるアルゴリズムがあればよいのだが、ボクは知らない)。

 自然対数以外の底の対数関数は\displaystyle f(x)=f'(1)\int_1^x\frac{dt}{t}=f'(1)\ln xで与えらえる。ここでこの対数関数の底をaとするとf(a)=f'(1)\ln a=1となるので、\displaystyle f'(1)=\frac{1}{\ln a}となる。これよりこの対数関数を\log_aと書くと、\displaystyle\log_ax=\frac{\ln x}{\ln a}となる。これは底の変換の式になっている。これより\displaystyle(\log_ax)'=\frac{1}{x\ln a}となる。

*1:f(x)=X, f(y)=Y と置くと、対数法則の式を指数法則の式 f^{-1}(X)f^{-1}(Y)=f^{-1}(X+Y) に書き換えることができる。