Lektion 2-3

定数係数 一階 線形 連立 常微分方程式 の解き方


さて、次に出てくるのは、次のような連立微分方程式です。
y1' = ay1 + by2 + r1(x)
y2' = cy1 + dy2 + r2(x)
ここでは、a, b, c, d が定数の場合を扱います。

2.3.1 本論に入る前に

変数の数が 2 つよりもっと増えても対応できるように、 ベクトルと行列を使って

y = ( y1 ) A = ( a b ) r (x) = ( r1(x) )
y2 c d r2(x)
とおきましょう。そうすると、連立微分方程式は
y' = Ay + r (x)
というシンプルな形になります。

実は、§2.2 で扱った y'' + ay' + by = r (x) という式は、行列を使って

d
---
dx
( y ) = ( 0 1 ) ( y ) + ( 0 )
y' -b -a y' r (x)
と書けますから、これから述べる方法でも解くことができます。 とくに、階数が高くなると因数分解が難しくなったり、 ややこしい重解があらわれたりするようになりますので、 高階の方程式をコンピュータで解く場合には、 行列を使うことが多いようです。

さて、このように行列・ベクトルを駆使した書き方になると、 必然的に、線形代数(数学 II)の知識を駆使することになります。 必要な事項は随時説明しますが、詳しい話や、私の説明で不審な点は、名著

薩摩順吉・四ッ谷晶二『キーポイント 線形代数』岩波書店
の第 8 章〜第 10 章を参照してください。ちなみに私は、 この本を追試の翌日に読みました(^_^;)。

2.3.2 斉次形の場合の解き方(1)指数関数を仮定する方法

まずは、r (x) = 0 の場合(斉次形) から考えていきましょう。

この形の方程式の解き方は、2 種類あります。最初に紹介するのは、 解が次のような形になっていると仮定して代入する方法です。

y = keλx
ここで k は定数ベクトル、λ は定数です。

このような解が 2 つ(3 元の方程式なら 3 つ、4 元の方程式なら 4 つ) あれば、一般解はそれらの線形結合になります。

上の形の式を実際に y' = Ay に代入してみると、次のようになります:

λkeλx = Akeλx

ここで eλx はスカラーですから、 行列と関係なく割り算することができます。そうすると、

λk = Ak
となります。つまり、λk は行列 A の固有値・固有ベクトルということになります。

さて、例題で具体的に見てみましょう。

【例題】y' = ( 0 1 ) y を解け。
1 0

まずは固有値・固有ベクトルを求めましょう。

上の行列を A と書くことにします。λk = Ak ですから、(A - λE )k = 0 となります(E は単位行列)。ここで k0 とすると、det (A - λE ) = 0 でなければなりません。 具体的に成分で書いて計算してみると、

det (A - λE ) = ( -λ 1 ) = λ2 - 1
1 -λ
となりますから、固有値は λ = ±1 となります。

次に固有ベクトル k です。k の第 1・第 2 成分を k(1)k(2) と書くことにすると、

以上から、一般解は、

y = k1ex + k2e-x = ( c1ex + c2e-x )
c1ex - c2e-x
となります。
つぎに、固有値 λ が重解になる場合を考えてみましょう。

固有値 λ がひとつだけでも、それに対応する固有ベクトルが 2 種類(もちろん、一次独立なものが 2 つ)あれば問題ありません。たとえば、 A = E(単位行列)の場合、固有値は λ = 1 だけですが、それに対応する固有ベクトルとしては

1x = ( 1 ) 1y = ( 0 )
0 1
のふたつがありますから、一般解は
y = (c11x + c21y ) ex
と書けますね。あるいは、1x1y のかわりに
145゜ = ( cos 45゜ ) 1-45゜ = ( cos (-45゜) )
sin 45゜ sin (-45゜)
を使って y = (c1145゜ + c21-45゜) ex とも書けますね。

問題は、λ がひとつしか見つからず、しかも固有ベクトルが 1 種類しかない場合です。

【例題】y' = ( 0 1 ) y を解け。
-1 2
この行列を A と書くことにします。A の固有値を計算してみると、λ = 1(重解)だけです。そして、 それに対応する固有ベクトルは、
k = c ( 1 )
1
だけです。ここには未定係数がひとつしかないので、 これが一般解というわけにはいきません。

そこでここでは、定数変化法を使います。

今までの議論では k は定数ベクトルでしたが、これが x の関数であるとしてみます。y = k(x)ex を元の方程式に代入すると、

[k' (x) + k(x)] ex = Ak(x)ex
となります。両辺を ex で割って、左辺の k(x) を移項すると、
k' (x) = (A-E ) k(x)
となります。

さて、この式は、行列を使った表示のままでは、 これ以上は変形できません。というのは、A - E という行列は正則ではないので、 単純に逆行列をかけるというわけにはいかないからです。

仕方がないので、成分表示で計算してしまいましょう。 k(x) の第 1・第 2 成分を k(1)k(2) とおき、元の方程式に代入します。 ついでに A - E も成分表示にしてしまうと、

( k(1)' ) = ( -1 1 ) ( k(1) ) = ( k(2) - k(1) )
k(2)' -1 1 k(2) k(2) - k(1)
となります。

さて、よく見ると k(1)' = k(2)' となりました。そこで、この右辺を微分してしまえば、全部が k(1)' の定数倍(k(2)' の定数倍としても同じことです)になって、うまくいきそうです。

実際に微分計算してみましょう。1 行目だけを計算することにします。

k(1)'' = k(2)' - k(1)' = 0
従って、k(1)' = k(2)' = a (定数)となり、 k(1) = ax + b1k(2) = ax + b2b1b2 は定数) ということがわかります。未定係数は 2 つしかないはずですから、 これを元の方程式に代入してみると、b2 = a + b1 とわかります。

従って、一般解は、

y = ( ax + b ) ex
ax + (a+b)
となります。

2.3.2 斉次形の場合の解き方(2)行列を対角化する

【この部分は講義では扱っていません】

もうひとつ、別の解き方もあります。「行列の対角化」「Jordan の標準形」を利用する方法です。

固有値・固有ベクトルがすべて一次独立ならば上の方法でもよいのですが、 そうではなく、しかも 2 次元ではなく 3 次元、4 次元、… となると、 こちらのほうが機械的に解けるという意味で楽です。

【例題 1】y' = AyA = ( 0 1 ) を解け。
1 0
この行列の固有値・固有ベクトルは、
λ1 = 1、 k1 = c1 ( 1 ) ;  λ2 = -1, k2 = c2 ( 1 )
1 -1
でしたね。ここでは、c1 = c2 = 1 のものを選ぶことにします。(注)
(注)ここでは A は対称行列なので、c1 = c2 = 1/√2 とすれば、下の行列 P が直交行列になります(→『キーポイント 線形代数』)。 しかし今回は、計算を楽にするために c1 = c2 = 1 とすることにします。

さて、このように固有値・固有ベクトルが見つかったとき、

P = (k1 k2)
とおけば、
P -1AP = ( λ1 0 ) = ( 1 0 )
0 λ2 0 -1
となるのでした。この行列を B とおくことにします。

つぎに、y' = Ay という式を、B を使った形に書き直すことを考えます。A = PBP -1 を元の方程式に代入して、

y' = PBP -1y

ここで、右辺を B × (何かのベクトル) という形に書き直したいので、まず手始めに P -1y = z とおき、右辺を(まだ P という係数が残っていますが)Bz という形にします。 y'z で表すために上の式を微分して、 z' = P -1y' すなわち y' = Pz' ですから、

Pz' = PBz  すなわち   z' = Bz
という単純な形になりました。

以下は成分表示で計算します。

z = ( z(1) )
z(2)
とおくと、
( z(1)' ) = ( 1 0 ) ( z(1) ) = ( z(1) )
z(2)' 0 -1 z(2) -z(2)
となりますから、すぐに
z(1) = c1exz(2) = c2e-x
とわかります。y = Pz でしたから、
y = Pz = ( 1 1 ) ( c1ex ) = ( c1ex + c2e-x )
1 -1 c2e-x c1ex - c2e-x
となり、さきに求めた結果と一致しました。

【例題 2】y' = AyA = ( 0 1 ) を解け。
-1 2

この行列の固有値・固有ベクトルは、

λ1 = 1、 k1 = c1 ( 1 )
1
だけでしたね。(ここでも前問と同じく c1 = 1 としておきます。)こういう場合は対角化はできないので、 Jordan の標準形に持ち込むことになります。

行列 A を Jordan の標準形に変換するには、まず、 (A - λ1E )k2 = k1 となるようなベクトル k2 を求めてから、P = (k1 k2) とおけば、

B = P-1AP
が Jordan の標準形になるのでしたね。(→『キーポイント 線形代数』)

具体的に計算してみましょう。

k2 = ( k2(1) )
k2(2)
とおき、さらに A - λ1Ek1 も成分表示にしてしまうと、
( -1 1 ) ( k2(1) ) = ( 1 )
-1 1 k2(2) 1
となり、これより k2(2) - k2(1) = 1 すなわち
k2 = ( k2(1) ) = ( c2 )
k2(2) c2 + 1
となります。ここでは c2 = 0 としておきましょう。

では、B を計算してみましょう。P = (k1 k2) ですから、

P = ( 1 0 )
1 1
とおくと、
B = P -1AP = ( 1 0 ) ( 0 1 ) ( 1 0 ) = ( 1 1 )
-1 1 -1 2 1 1 0 1
はたしかに Jordan の標準形になっています。

以下は前問と同じです。z = Py とおくと、 元の方程式は z' = Bz となります。

つづいて成分表示で計算します。

z = ( z(1) )
z(2)
とおくと、
z(1)' = z(1) + z(2) ……(*)
z(2)' = z(2) ……(**)
となります。

(**) より z(2) = c2ex となります(→§1.1)から、 (*)は

z(1)' = z(1) + c2ex
となり、その一般解は
z(1) = c1ex + c2x ex
となります(→§1.3)。

最後に y を計算します。y = Pz でしたから、

y = ( 1 0 ) ( c1ex + c2xex ) = ( c2x + c1 ) ex
1 1 c2ex c2x + (c1+c2)
となり、やはりこれも前に求めた解と一致しました。

2.3.3 (おまけ)初期値問題の解と resolvent 行列

さて、つづいて、初期値問題について考えてみましょう。
【例題】微分方程式
y' = AyA = ( 0 1 )
1 0
について、x = 0 における y の値を y0 とするとき、任意の x における y の値を、 y0 を用いて表せ。
この微分方程式の一般解は、前に例題でやったとおり、
y = ( c1ex + c2e-x )
c1ex - c2e-x
でしたね。後の都合があるので、これを
y = ( ex e-x ) ( c1 ) ……(*)
ex -e-x c2
と書いておきます。

これに x = 0、y = y0 を代入します。

y0 = ( 1 1 ) ( c1 )
1 -1 c2
これより c1c2 を求めると、
( c1 ) = ( 1/2 1/2 ) y0
c2 1/2 -1/2
となりますから、任意の x での y の値は、これを (*) に代入して、
y = ( ex e-x ) ( 1/2 1/2 ) y0
ex -e-x 1/2 -1/2
= ( (ex + e-x)/2 (ex - e-x)/2 ) y0
(ex - e-x)/2 (ex + e-x)/2
となります。ちなみに、(ex + e-x)/2、(ex - e-x)/2 にはそれぞれ cosh x (hyperbolic cosine)、sinh x (hyperbolic sine) という名前がついていますから、次のように書けます。
y = ( cosh x sinh x ) y0
sinh x cosh x
この右辺の行列を、以下 M と書くことにします。

さて、この方程式の解が y = My0 という形に書かれてしまうと、 これが微分方程式の解だということはもう忘れて、行列 M の性質だけに着目して y の振る舞いを議論することができます。そこで、この M という 「y0 にかかっている行列」には、resolvent という名前がついています。

たとえば、

y = ( y(1) ) y0 = ( y0(1) )
y(2) y0(2)
と書くことにすると、上の式から x を消去して (各自で計算してください;私も計算せずに黒板を丸写ししています(^_^;)) yy(1)y(2) 平面 (この平面を相平面 phase plane とか解平面とかいいます; 3 元の方程式の場合には、同様に y(1)y(2)y(3) 空間を相空間とか解空間とかいいます) の上で
(y(1))2 - (y(2))2 = (y0(1))2 - (y0(2))2 = 一定
という双曲線(ただし、y0(1) = ±y0(2) の場合は、上の「一定」 がゼロになるので、直線 y(1) = ±y(2))を描くことがわかります。

x が時間を表しているとすると、これは y が時間とともにどのような軌跡を描くかを表していることになります。 (→『物理のキーポイント 力学編』の「惑星はなぜ楕円軌道を描くか」)

余談ですが、cosh x, sinh x には、cos x, sin x に似た次のような性質があります。


2.3.4 非斉次形の場合の解き方

さて、非斉次形の場合(r (x) ≠ 0 の場合) の解き方ですが、もう私の気力が尽きた(笑)ので、 演習問題とさせてください。

【演習問題】

  1. 微分方程式
    y' = Ay + r (x)、 A = ( 1 4 ) r (x) = ( 1 ) ex
    1 1 1
    について、y = aexa は定数ベクトル)なる特解があるものと仮定して a を決定し、u = y - aex とおいて一般解を求めよ。

  2. 上の方程式について、この行列の固有値を λ1λ2、それに対応する固有ベクトルを k1k2 とするとき、斉次方程式の一般解は y = c1k1 eλ1x + c2k2 eλ2x となるが、ここで c1c2x の関数であると仮定して元の非斉次方程式に代入し、 一般解を求めよ。

  3. 微分方程式
    y' = Ay + r (x)、 A = ( 0 1 ) r (x) = ( 0 )
    -1 2 sin x
    について、A を Jordan 標準形に変換する行列を P とする。B = P -1AP (この行列が Jordan の標準形)、z = P -1y とおくとき、元の方程式は
    z' = Bz + P -1r (x)
    と表されることを示し、これを z の各成分について解き、これを用いて y を求めよ。

【この章のまとめ】

  1. y' = Ay という方程式は、次のように解く。
    1. 固有ベクトルがすべて線形独立ならば、固有ベクトルを c1k1, c2k2, ... (c1, c2, ... は未定係数)、それに対応する固有値を λ1, λ2, ...として、一般解は y = c1k1eλ1x + c2k2eλ2x + ... となる。
    2. そうでなければ、定数変化法を使うか、Jordan の標準形に持ち込む。
  2. y' = Ay + r (x) という方程式は、次のように解く。
    1. 特解がわかれば、u = y - (特解) とおく。
    2. 斉次方程式 y' = Ay を解いてから、 定数変化法。
    3. Jordan の標準形を使う場合は、成分表示に持ち込んでから、 各成分について §2.2 の方法で解く。
  3. 初期値問題では、解が y = M (x)y0 という形になる。 この M (x) を resolvent 行列と言い、 この行列だけに注目して y の振る舞いを議論できる。

Copyright © IIJIMA Hiromitsu aka Delmonta, 2016/03/10 15:09 JST
これは「古文書」です。 古くなった情報も原則未修正で保存していますのでご注意ください。

古文書本館トップ | 電脳外道学会