テキスト

求積法
2
常微分方程式を実際に解いてみる。
例. バクテリアの増殖を表す方程式
du
= au
dt
を解く。ただし、a は正の実数であるとする。記号を合わせるため、これからは独立変数は x、未知関数は y と
いう記号を使うので、初期条件をつけると、問題を
dy
= ay
dx
y(x0 ) = y0
(1)
(2)
と書くことになる。
方程式より、y は単調増加関数または単調減少関数のどちらかであることが分かる。ゆえに、初期値 y0 がゼロ
でなければ、y はゼロになることはない。y0 6= 0 と仮定して、両辺を y(x) で割り、変形していく。
y 0 (x)
y(x)
(
)0
log(|y(x)|)
log(|y(x)|)
= a
= a
=
˜
ax + C,
˜
C˜ . . . 積分定数
˜
|y(x)| = eax+C = eC eax
˜
y(x) =
±eC eax
y(x)
Ceax
=
˜
˜ は任意の積分定数であるので、C のとり得る値は 0 以外の全ての実
最後の行では、C = ±eC とおき直した。C
数である。しかし、C = 0 とおいてみると、y(x) = 0 という関数も解になることが確かめられるので、結局、一
般の解を
C∈R
y(x) = Ceax ,
と書くことができる。
C を初期条件より決める。
⇒
y(x0 ) = y0 = Ceax0
C = y0 e−ax0
従って、
y(x) = y0 ea(x−x0 )
(3)
が問題 (1) の解である。
(1) の任意の解(解全体)は y(x) = Ceax (C ∈ R) と書ける。C を積分定数と呼び、この C を含んだ解を (1)
の一般解という。C は初期条件 (2) を与えると定まる。C を定めた(一つの)解を特殊解という。
注:
m 階の常微分方程式なら、m 回積分して解くので、m 個の積分定数が出てきて、それを定めるのに m 個
の条件が必要になる。
また、一般解に含まれる積分定数をどのように選んでも表現できない解が存在することがあり、このような解
のことを特異解という。
1
以下は、次のタイプの常微分方程式の解き方(求積法)を紹介する:
• 変数分離形
• 同次形
• 1 階線形
• 2 階線形(定数係数)
2.1
変数分離形
dy
= f (x)g(y)
dx
の形の方程式を変数分離形といい、次のように解く。
g(y) 6= 0 のとき、(4) は
と同値である。関数 1/g の原始関数を G(y) =
∫
(4)
1 dy
= f (x)
g(y) dx
1/g(y) dy とおくと、
dG(y(x))
= f (x)
dx
という形に書きかえることができる。これを積分すれば、
∫
G(y(x)) = f (x) dx + C
という y に対する関係式が得られる。
最後に、g(y) 6= 0 と仮定したことによりのぞかれた解がないかを調べる(下記の例を参照)。
実際の計算では、形式的に次のように書くことが多い。
1
dy
g(y)
∫
1
dy
g(y)
= f (x) dx
∫
=
f (x) dx + C
∫
G(y) =
f (x) dx + C
例. バクテリアの増殖を表す方程式をこの方法を用いて上で解いた。
例. バクテリアの増殖をより正確に表すロジスティック方程式を解く。
dy
= (a − by)y
dx
2
(5)
y 6= a/b と y 6= 0 のとき、以下の式は同値である。
1
dy
=
(a − by)y dx
(
)
1 1
b
dy
−
=
a y by − a dx
∫
∫
)
1( 1
b
dy −
dy
=
a
y
by − a
)
1(
log |y| − log |by − a| =
a
y =
log by − a y
=
by − a
y(1 − bC 00 eax ) =
y(x) =
1
1
∫
dx
x+C
ax + C 0
0
0
±eax+C = ±eC eax = C 00 eax
−aC 00 eax
aC 00
,
00
bC − e−ax
(C 00 ∈ R, C 00 6= 0)
C 00 6= 0
上では、y 6= 0 と仮定したが、y(x) ≡ 0 という定数関数が方程式をみたすことがすぐにわかる。この y ≡ 0 とい
う解は、上式において C 00 = 0 とおけば実現される。
同じように、y 6= a/b という仮定に対し、y(x) ≡ a/b という定数関数が方程式をみたす。この y ≡ a/b という
解は C 00 → ∞ とすれば実現される。
時刻 x = 0 でバクテリアの量は y(0) = y0 だったとする。この初期条件を用いて、一般解の中の積分定数 C 00 を
定め、特殊解を求めることができる。つまり、
y(0) =
C 00
=
一般解に代入すれば、
y(x) =
aC 00
= y0
bC 00 − 1
y0
by0 − a
a
b + ( ya0 − b)e−ax
という解を得る。
シンプルなモデル (1) の解と比べると、それぞれのモデルの特徴が分かる。(1) の解 y(x) = y0 eax は指数的に増
加していくのに対し、ロジスティック方程式の解は時間が経てばある一定値(すなわち、a/b)に近づく。a = 0.5,
b = 0.1, y0 = 1 とすると、それぞれのグラフは以下のようになる。
12
12
0.5/(0.1+0.4*exp(-0.5*x))
exp(0.5*x)
10
10
8
8
6
6
4
4
2
2
0
0
0
2
4
6
8
10
0
12
3
2
4
6
8
10
12
例. 連立微分方程式が単独方程式に帰着されて解ける場合:Lotka-Volterra 方程式(共存モデル)。
dx
= (a − by)x
dt
dy
= (−c + dx)y
dt
ここで a, b, c, d > 0 と考えるので、捕食者 (predator) と被食者 (prey) のモデルになる。
dx/dt 6= 0 と仮定すれば、(7) を (6) で割ると、
(6)
(7)
dy
(−c + dx)y
dy/dt
=
=
dx/dt
dx
(a − by)x
を得る(形式的な計算)。これは変数分離形であるので、次のように解ける。
∫
∫
a − by
−c + dx
dy =
dx + C
y
x
a log |y| − by = −c log |x| + dx + C
x, y は生物の量を表しているので、x, y > 0 とするのが自然である。よって、
a log y − by + c log x − dx = C
この左辺を F (x, y) とおくと、連立方程式の解 x(t), y(t) に対して、F (x, y) の値が一定になる。この解は既知の
関数で表すことはできそうにないが、関係式 F (x, y) = C は解の様子を教えてくれる。関係式を満たす (x, y) は
(x, y)-平面上の曲線になる。この曲線が閉曲線であることが証明できる。
F (x, y) のように与えられた連立微分方程式の解に沿って、値が不変に保たれるような関数を第一積分 (first
integral) という。その値そのものは、初期値のとり方により変化する。
例えば、a = 1, b = 0.5, c = 0.3, d = 0.8 として、第一積分の値 C を −1.5, −1.4, −1.3, −1.2, −1.1, −1 とする
と、xy-平面に図示したそれぞれの閉曲線は以下のようになり、被食者が減ると捕食者も減少するなどの相互関係
が読み取れる。
-1
-1.1
-1.2
-1.3
-1.4
-1.5
5
4
3
2
1
-4.5
-3.5
-2.5
-1.5
-0.5
-4
-3
-2
-1
0
0
0.2
0.4
0.6
0.8
1
4
1.2
1.4
1.6
1.8
2.2
同次形
(x)
dy
=f
dx
y
(8)
の形の方程式を同次形 (homogeneous) という。
これは、
y(x)
x
とおくと(つまり、y(x) の代わりに新しい未知関数 z(x) を導入すると)、
z(x) =
y(x) =
z(x) · x
y 0 (x) =
z0
z 0 (x) · x + z(x) = f (z(x))
f (z) − z
=
x
この方程式は未知関数 z(x) に対して変数分離形になっているので解ける。具体的には、
∫
∫
dz
1
=
dx = log |x| + C
(f (z) − z 6= 0 のとき)
f (z) − z
x
∫
e
dz
f (z)−z
= elog |x|+C = eC |x| = C 0 x
ここで、C 0 = eC は 0 と異なる定数である。上式の右辺を G(z) とおくと、G(z) = C 0 x となり、つまり、一般解
G
(y)
= C 0x
x
を得る。
(注: ζ が f (z) − z = 0 の根ならば、y(x) = ζx も解であることに注意する。)
例.
y0 =
( y )2
x
+
2y
x
y = xz とおけば、方程式は
xz 0 = z 2 + z
となる。これを積分して、
log |z| − log |z + 1| = log |x| + C
すなわち、
z
= C 0x
z+1
(C 0 = ±eC , C 0 ∈ R, C 0 6= 0)
ここで、z をもとの y/x で置き換え、さらに書き直せば、一般解
y(x) =
C 0 x2
1 − C 0x
が得られる。
f (z) − z = z 2 − z = 0 を満たすのは z = 0 と z = −1 であり、これはそれぞれ y(x) = 0 と y(x) = −x という解
に対応しているが、一般解で C 0 = 0, C 0 = ∞ とおいて得られる特殊解である。
5
C'=1 のときのグラフ
8
6
4
y
2
0
-2
-4
-6
-8
-2
-1
0
1
2
3
4
x
例.
y0 = f
( ax + by + p )
cx + dy + q
(9)
という方程式は同次形に直すことができる。
• そのため、変数変換
x
= ξ+α
y
= η+β
を施してみる。ここで、ξ は x にかわる新しい変数、η は y にかわる新しい未知関数、α, β は任意の定数で
ある。この α, β の定数を、変換後の方程式が同次形になるように決める。変換後の微分方程式は
( aξ + bη + aα + bβ + p )
dη
=f
dξ
cξ + dη + cα + dβ + q
となる。α, β を
の連立方程式をみたすように決めると
aα + bβ + p
= 0
cα + dβ + q
= 0
(10)
( aξ + bη )
dη
=f
dξ
cξ + dη
という方程式を得る。これを変形すれば、
(a + b )
dη
ξ
=f
dξ
c + d ηξ
η
となり、同次形である。
• (10) の行列式は = ad − bc = 0 のとき、連立方程式 (10) の解が存在しないかもしれない。このとき、
(c, d) 6= (0, 0) ならば、
adx + bdy b
bcx + bdy b
b
ax + by
=
=
= = k = 定数
cx + dy
cbx + bdy d
cbx + bdy d
d
6
となるので、
z(x) = cx + dy(x) + q
とおくと
ax + by + p =
ax + by
(cx + dy) + p = k(cx + dy) + p = k(z − q) + p = kz + p − kq
cx + dy
を得る。さらに、z 0 (x) = c + dy 0 (x) なので、(9) より z に対する方程式は
z 0 = c + df
( kz + p − kq )
z
となる。これは変数分離形であるので解ける。
• 最後に、(c, d) = (0, 0) の場合を考える。このとき、方程式は
y0 = f
(a
b
p)
x+ y+
q
q
q
となり、
z=
a
b
p
x+ y+
q
q
q
とおくことによって
z0 =
a b 0
a b
+ y = + f (z)
q
q
q
q
という変数分離形の方程式に変換される。
例題
微分方程式
xy 0 − y log
y
=0
x
に対し、初期条件
y(1) = 1
を満たす特殊解を求め、解のグラフを描け。
――――――――――――――――――――――――――――――
方程式を y 0 =
y
x
log
y
x
と書き直すことができる。方程式は同次形であるので、新しい未知関数 z を次のように
導入することによって解くことができる。
z(x) =
y(x)
x
すなわち
y(x) = xz(x)
z に対する方程式を導くために、y 0 と z 0 の関係を調べる:
y 0 (x) = z(x) + xz 0 (x)
これを方程式代入すると、
y 0 = z + xz 0 =
y
y
log = z ln z
x
x
7
という z についての変数分離形の方程式を得る。
∫
∫
xz 0
= z(log z − 1)
∫
1
=
dx + C
x
1
dz
z(log z − 1)
− 1)
dz = log |x| + C
log z − 1
log | log z − 1| = log |x| + C
d
dz (log z
| log z − 1| = eC |x|
log z − 1 =
±eC x = C1 x,
C1 6= 0
= e1+C1 x
z
ここで、z に y/x を戻すと、
y(x)
C1 6= 0
xe1+C1 x ,
=
上で、z(log z − 1) 6= 0 と仮定したが、この方程式の根は z = 0 と z = e ですから、y(x) = 0 と y(x) = ex が
方程式の解の候補となる。前者は方程式に代入できない(極限の意味で解になるとは言えるが)から、無視する。
後者は C1 = 0 の場合に対応しているので、方程式の一般解は
y(x)
C∈R
xe1+Cx ,
=
となる。
初期条件 y(1) = 1 より積分定数 C を決める。x = 1, y = 1 を上式に代入すると、1 = e1+C 、つまり C = −1
が従う。よって、
y(x) = xe1−x
を得る。
答え
与えられた初期条件を満たす方程式の特殊解は
y(x) = xe1−x
であり、そのグラフが下図に示される。
1
0
-1
-2
-3
-4
-5
-1
0
1
2
3
8
4
5
6
例題
次の条件を満たす関数 y(x) を求めよ。
dy
= 0
dx
y(1) = 0
2x + y − x
――――――――――――――――――――――――――――――
方程式を x で割り整理すると、
y
x
の同次形になるので、z(x) = y(x)/x という新しい未知関数を導入することで解ける。y 0 = z + xz 0 なので、
y0 = 2 +
z + xz 0
z
= 2+z
2
=
x
= 2 log |x| + C
y
=
z0
2x log |x| + Cx
と積分できる。計算の途中で x で割るところがあるが、x = 0 という場合を別扱いする必要がない。x は変数で
あるから、その値の範囲は関数 y(x) の定義域のみに影響し、解自体に影響しないので、解が求まってからその定
義域を確認すればよい。
初期条件 y(1) = 0 を用いると、C = 0 がわかる。よって、 y(x) = 2x log |x| という特殊解が得られる。
しかし、log が x = 0 で定義されないので解の定義域を考える必要がある。一つのアプローチは、初期値が与
えられる x = 1 という点を含み、log の定義域に収まるような最大の区間を解の定義域にすることである。この
場合、x ∈ (0, ∞) となる。
もう一つのアプローチは、
lim x log |x| = 0
x→0
という事実に注意して、解を連続な関数に拡張する方法である:
{
2x log |x|
x 6= 0
y(x) =
0
x=0
この関数の定義域は R 全体であるが、その微分が x = 0 で発散する:
y 0 (x) = 2(log |x| + 1)
しかし、微分方程式では微分が x との積という形でしか出てこないので、微分方程式が上の極限の意味で満たさ
れるというふうに考えることもできる。
3
2
1
0
-1
-2
-3
-2
-1.5
-1
-0.5
0
9
0.5
1
1.5
2