21章 微分方程式(単独方程式)

1.微分方程式(単独方程式)
x軸上を一定の速度1で動く動点Pの時刻tにおける位置(x座標)をx(t)と表すと、x'(t)=1が成り立ちます。 x'(t)=1を満たす関数x(t)を求めてみましょう。

>dsolve(diff(x(t),t)=1,x(t))


特に、初期条件 x(0)=0を満たす関数を求めるときには、

>dsolve({diff(x(t),t)=1,x(0)=0},x(t))


とします。また、x軸上を一定の加速度-1で運動する動点Pの時刻tにおける位置(x座標)を x(t)と表すと、x''(t)=-1が成り立ちます。x(t)を求めるには次のようにします。

>dsolve(diff(x(t),t,t)=-1,x(t)) 
(微分方程式 x''(t)=-1を解く)

>dsolove({diff(x(t),t,t)=-1,x(0)=0,D(x)(0)=1},x(t)) 
(微分方程式x''(t)=-1を初期条件x(0)=0,x'(0)=1の下で解く)

注意 微分方程式を解くには、dsolve(微分方程式,x(t)) あるいはdsolve({微分方程式、初期条件},x(t))などと入力します。

実習21.1 次の微分方程式の初期値問題を解きなさい。
(1)v'(t)=-g,v(0)=v0   (2)x''(t)=-g,x(0)=x0,x'(0)=v0

[正解例]



2. 増殖と減衰
バクテリアが容器に入っていて、一定の増殖率kで増殖するとします。このとき、時刻tにおけるバクテリアの量をx(t)で表すと、
x'=kx (x'(t)=kx(t))


が成り立ちます。また増殖率がk-x,(k-x)(x-λ)であるときには、

x'=(k-x)x, x'=(k-x)(x-λ)x


がそれぞれ成り立ちます。パッケージDEtoolsのDEplotコマンドを用いると、これらの微分方程式の解曲線を図示することができます。

>with(DEtools):
>de1:=diff(x(t),t)=x(t)
(微分方程式x'=xをde1とおく)

>DEplot(de1,x(t),t=-5..5,x=0..2) 
(微分方程式de1の解曲線を-5≦t≦5,0≦x≦2の範囲に表示)

>init1:={[0,0],[0,0.5],[0,1]}
(初期条件x(0)=0とx(0)=0.5と1を指定)

>DEplot(de1,x(t),t=-5..5,x=0..2,init1)
(微分方程式de1の初期条件init1を満たす解曲線を表示)


実習21.2 次の微分方程式の初期値問題の解曲線を表示せよ。
 (1)[ロジスティック方程式]x'=(1-x)x,初期条件 x(0)=0, 0.3, 0.7, 1.0
 (2)x'(t)=(1+x)x 初期条件 x(0)=0, 0.7, 1.0
 (3)x'(t)=(1-x)(x-0.5)x 初期条件 x(0)=0, 0.2 ,0.4, 0.6, 0.8, 1.01

[正解例]


実習21.3[半減期]
x'=-kx,x(0)=aを満たす関数x(t)がx(t)=a/2となるのは、t=(log2)/kのときであることを示しなさい。 

[正解例]




3.振動
単振動を記述する微分方程式x''=-xの解を求め、そのグラフを表示してみましょう。

>dsolove(diff(x(t),t,t)=-x(t),x(t))

>dsolve({diff(x(t),t,t)=-x(t),x(0)=1,D(x)(0)=0},x(t)))

>plot(rhs(%),t=0..50)
(直前の結果(%)の右辺のグラフを表示)


実習21.4 [摩擦を伴う振動(減退振動)]
 (1)x''=-x-kx'の解をk=0.2, 2, 20の場合に求めなさい。
 (2)x''=-x-kx',x(0)=1,x'(0)=-2の解をk=0.2, 2, 20の場合に求め、それらのグラフを表示せよ。

[正解例]


実習21.5 [強制振動を伴う振動]
 x''=-x+sinωt,x(0)=0,x'(0)=0 の解をω=0, 0.2, 0.5, 0.9, 1, 1.5の場合に求め、それらのグラフを0≦t≦500の範囲で表示せよ。

[正解例]