廿TT

譬如水怙牛過窓櫺 頭角四蹄都過了 因甚麼尾巴過不得

一階線形常微分方程式の解のピークの位置

計算

一階線形常微分方程式とは以下の形で表される微分方程式のことである.

\displaystyle \frac{dA(t)}{dt} = q(t)-kA(t)

解は,

\displaystyle  A(t) = e^{-kt} \left\{ \int e^{kt} q(t) \,dt \right\}.

A(t) が最大値をとる点を求めるには,  dA(t)/dt=0 と置いて解けばよい.

\displaystyle q(t)-ke^{-kt} \left\{ \int e^{kt} q(t) \,dt \right\} =0
\displaystyle q(t)e^{kt}-\left\{ \int k e^{kt} \,q(t) dt \right\} = 0

部分積分の公式を逆に使って,

\displaystyle V(t) = \int q'(t)e^{kt} \,dt=0

この方程式を解けば, A(t) が最大値をとる点が求まる.

ここで,

\displaystyle  A(t) = e^{-kt} \left\{ \frac{1}{k} e^{kt} q(t) - \int \frac{1}{k} e^{kt} q'(t)\, dt \right\}

\displaystyle  ke^{kt}A(t) =  e^{kt} q(t) - V(t)

\displaystyle V(t)= e^{kt} q(t) - ke^{kt}A(t)

より,

\displaystyle V(0)= q(0) - kA(0).

つまり A(t) が最大値をとる点を求めるには, 初期条件 V(0)= q(0) - kA(0) のもとで, 積分 V(t) = \int q'(t)e^{kt} \,dt を計算し, 0 と置いて解けばよい.

例題

 q(t) = \beta - \alpha t ( \beta>0, \alpha >0) のとき, 初期条件 A(0)=0 とすると, 解は

\displaystyle A(t) = \left( \frac{\beta}{k} + \frac{\alpha}{k^2} \right) - \left( \frac{\beta}{k} + \frac{\alpha}{k^2} \right) e^{-kt} - \frac{\alpha}{k}t

 V(0) = q(0)=\beta より,

\displaystyle V(t) = -\frac{\alpha}{k}e^{kt} + \beta + \frac{\alpha}{k} =0

と置くと,

\displaystyle t = \log\left( \frac{\beta k}{\alpha} +1 \right) \big/ k

となり, この点で最大値を取る.

f:id:abrahamcow:20160917034345p:plain

Afunc <- function(t,par){
  beta <- pars["beta"]
  alpha <- pars["alpha"]
  k <- pars["k"]
  (beta/k+alpha/(k^2)) - (beta/k+alpha/(k^2))*exp(-k*t) - (alpha/k)*t
}

pars  <- c(beta=20,alpha=0.3,k=1/5)
curve(Afunc(x,par),0,60,xlab="t",ylab="A(t)",lwd=2)
abline(h=Afunc(log(pars["beta"]*pars["k"]/pars["alpha"]+1)/pars["k"],pars),lty=2)
abline(v=log(pars["beta"]*pars["k"]/pars["alpha"]+1)/pars["k"],lty=2)