非線形微分方程式

線形微分方程式の基本的な話は「線形 1 階微分方程式」でしました。ここでは非線形方程式について見ていきますが、簡単な例を示すだけにします。
後半でグリーン関数を使うので、なんとなくな性質は知っているといいです。

物理で頻繁に現われるのは線形微分方程式と呼ばれる形の微分方程式です。これはその名前の通り、線形 (1 次)の形式で書かれている微分方程式です。「線形 1 階微分方程式」で示したのはその中でも 1 階の微分までしか含んでいないものです。一般的な線形 n 階微分方程式は、Pi (i = 1, 2, . . . , n), Q を任意関数としてdn y
dn−1 ydn−2 ydy+ Pn (x)y = Q(x)+ P1 (x) n−1 + P2 (x) n−2 + · · · + Pn−1 (x)ndxdxdxdx
このように書けます。見て分かるように、y と y の微分 di y/dxi (i = 1, 2, . . . , n) が全て 1 次なので、線形方程式です。
これに対して非線形微分方程式と呼ばれるときは、y もしくは di y/dxi が 2 次以上の項を含んでいる場合です。
例えばd2 y+ cy = ay 2dx2a, c は定数です。右辺にいる ay 2 を非線形項と呼びます。他にも

dydy− ay = −ay 2 , y=adxdxとかも非線形方程式です。
おそらく、入門的な物理の話を扱う限りはこのような非線形微分方程式を目にしないと思います。その理由は簡単で、厳密に解く方法が一般的にないからです。解ける場合もありますが、相当に複雑な手続きを使うか、初等関数ではない特殊関数の知識を必要とします。
例としては、力学での振り子の問題が分かりやすいです。振り子の運動に対する微分方程式はd2 θ= −c sin θdt2
このような形です (c は定数)。右辺は明らかに非線形項です。θ が十分小さいとすれば、sin θ は θ になるので線形方程式となり、大抵はそれを振り子の運動方程式として解きます。しかし、厳密な振り子の運動に対する微分方程式は非線形微分方程式です。この非線形微分方程式は解けますが、完全楕円積分の知識が必要となります。ちなみに、非線形項を含む振動を非線形振動と呼んだりします。
このように、物理で現われる現象を厳密に扱おうとすると非線形項がよく出てきます。非線形項を含む非線形微分方程式は線形方程式と違って、一般的に解く方法が今のところ存在していません。唯一まがりなりにも厳密に解ける方法は数値計算だけです。なので、大抵は近似を用いて計算されます。ここではその近似的な解法の一つであるグリーン関数による摂動的な方法を簡単に説明します (グリーン関数については力学の「弦に圧力をかけた場合」参照)。

また、非線形微分方程式の解は初期値に対して不安定な動きをすることがよくあり、線形方程式のように初期値を与えれば綺麗に解が決まるという性質を一般的に持っていません。このような初期値に対して不安定な振る舞いをする解をカオス (chaos) と呼んでいます。これを簡単に見れる例 (同時にカオスの話の出発点とされるものの一つ) として

Yn+1 = BYn (1 − Yn )という方程式があり (ロジスティック写像。ロジスティック方程式と呼ばれる微分方程式の変化版)。これは初期値

Y0 と B を最初に決めて Yn を順次求めていけばいい式です。excel のような表計算ソフトを使って n と Yn によるグラフを描いて、B の値をいろいろと変えてみると面白い結果を得ることができます。
ちなみに、微分方程式の形では

dY (t)= BY (t)(1 − Y (t))
dt
もう少し一般化すれば、定数 A を加えて

dY (t)= Y (t)(A − BY (t))
dt
これは非線形ですが、簡単に解けます。変数分離が出来るので

dY= dtY (A − BY )1 1B1+)dY = dt
AY
A A − BY∫
∫1 1B
1(+)dY =dt
AYA A − BY
(11log |Y | − log |A − BY | = t + C
AAlog |Y
| = At + C
A − BY
Y= C ′ eAt
A − BYY (1 + BC ′ eAt ) = AC ′ eAt
Y = AC ′eAt
1 + BC ′ eAtとなります。
非線形方程式の摂動的な解き方を見ていきます。形式的な微分方程式としてL0 ϕ0 (x) = f (x)というのを作ります。L0 ϕ0 (x) は線形微分方程式を作っているとし、L0 は線形性を持っているとします。このような L0 を線形演算子と呼ばれます。L0 ϕ0 (x) は例えば

L0 ϕ0 (x) =d2 ϕ0 (x)dx2のような、線形項を表します。ここで、非線形項として aL′ ϕ(x) を加えた方程式(L0 + aL′ )ϕ(x) = f (x)Lϕ(x) = f (x)(1)を考えます。a は任意の定数パラメータとし、当然ですが ϕ(x) ̸= ϕ0 (x) です。
この非線形微分方程式をどうにかして解くために、一つの仮定をします。非線形方程式の解 ϕ(x) が線形方程式の解 ϕ0 (x) を用いてϕ(x) = ϕ0 (x) + aϕ1 (x) + a2 ϕ2 (x) + · · ·と書けるとします。これは、ϕ(x) をパラメータ a のオーダによって展開したもので、a の 0 次のオーダが線形方程式の解です。これを非線形方程式 (1) にいれるとLϕ(x) = (L0 + aL′ )(ϕ0 (x) + aϕ1 (x) + a2 ϕ2 (x) + · · · )= L0 ϕ0 (x) + aL0 ϕ1 (x) + a2 L0 ϕ2 (x) + aL′ ϕ0 (x) + a2 L′ ϕ1 (x) + a3 L′ ϕ2 (x) + · · ·なので、例えば a2 までを考えることにすれば

L0 ϕ0 (x) + aL0 ϕ1 (x) + aL′ ϕ0 (x) + a2 L0 ϕ2 (x) + a2 L′ ϕ1 (x) = f (x)そうすると、a のオーダが合っているもの同士を取り出すことでL0 ϕ0 (x) = f (x)(2)

aL0 ϕ1 (x) = −aL′ ϕ0 (x)(3)

a2 L0 ϕ2 (x) = −a2 L′ ϕ1 (x)(4)

このように、a の 0 次のオーダでは ϕ0 に関する線形方程式、a のオーダでは ϕ1 に関する線形方程式、a2 のオーダでは ϕ2 に関する線形方程式になります。さらに、ϕ0 (x) が求まれば、ϕ1 , ϕ2 も逐次的に求まっていきます。これが摂動論 (perturbation theory) の基本的な設定です。つまり、厳密な解 ϕ(x) をパラメータによって展開して考えるという方法です。

このときの条件は ϕ(x) の展開がちゃんと収束しているというものです。収束するためには、a が十分小さければいいと単純に考えられます (0 < a < 1)。そのような微小なパラメータによる展開を摂動展開といい、摂動展開できることで摂動論は成立します。摂動論を使うと、全てのオーダを足し合わせなければ厳密な答えにはなりません。しかし、a が十分小さいなら、2、3 次のオーダまでの計算で十分だと大抵は考えてしまいます。
しかし、たとえ a が十分小さくても必ず収束するという保証はないです。一般的には、収束していなくても近似として成立していれば良いとしますが (漸近展開と考える)、数学側からすれば注意が必要な問題です。というわけで、線形微分方程式が解ければ、逐次的に計算していくことで非線形微分方程式の解を求めていけます。しかし、簡単に繰り返していけるならいいですが、そうでないなら大変です。これに対処するために、グリーン関数を使った形にします。グリーン関数を使うと形式的にかなり綺麗に表現できます。
グリーン関数を使っ場合を見ていきます。線形演算子 L0 に対応するグリーン関数 G0 の定義は

L0 G0 (x − y) = δ(x − y)∫ϕ0 (x) = G0 (x, y)f (y)dyδ(x − y) はディラックのデルタ関数です。G0 (x) は (2) に対するグリーン関数です。(3) に対しても同様にグリーン関数を使うことで∫
ϕ1 (x) = −dy1 G0 (x, y1 )L′ ϕ0 (y1 )そして、ϕ0 もグリーン関数を使って表わすことで∫
ϕ1 (x) = −∫= −dy1 G0 (x, y1 )L′∫
dy2 G0 (y1 , y2 )f (y2 )dy1 dy2 G0 (x, y1 )L′ G0 (y1 , y2 )f (y2 )∫(ϕ0 (y1 ) =)dy2 G0 (y1 , y2 )ϕ0 (y2 )さらに、(4) でも同様にすれば∫
ϕ2 (x) = −∫=∫=dyG0 (x, y)L′ ϕ1 (y)dy1 G0 (x, y1 )L′∫

dy2 G0 (y1 , y2 )L′∫
dy3 G0 (y2 , y3 )f (y3 )dy1 dy2 dy3 G0 (x, y1 )L′ G0 (y1 , y2 )L′ G0 (y2 , y3 )f (y3 )後は同じようにどこまでも続いていきます。ここで重要なことは、線形方程式に対するグリーン関数 G0 (x) さえ分かれば、ϕ(x) を展開した各項を全て表現できるという点です。
これらを ϕ(x) の展開式に入れれば

ϕ(x) = ϕ0 (x) + aϕ1 (x) + a2 ϕ2 (x) + · · ·∫∫=dy1 G0 (x, y1 )f (y1 ) − a dy1 dy2 G0 (x, y1 )L′ G0 (y1 , y2 )f (y2 )∫2+a∫=dy1 dy2 dy3 G0 (x, y1 )L′ G0 (y1 , y2 )L′ G0 (y2 , y3 )f (y3 ) + · · ·∫[dy1 G0 (x, y1 ) f (y1 ) − a dy2 L′ G0 (y1 , y2 )f (y2 )
∫2+a∫
=

∫+a∫]

∫[∫
dy1 G0 (x, y1 )dyf (y)δ(y − y1 ) − a dydy2 L′ G0 (y1 , y2 )f (y)δ(y − y2 )2=dy2 dy3 L′ G0 (y1 , y2 )L′ G0 (y2 , y3 )f (y3 ) + · · ·dydy2 dy3 L′ G0 (y1 , y2 )L′ G0 (y2 , y3 )f (y)δ(y − y3 ) + · · ·]∫[dydy1 G0 (x, y1 ) δ(y − y1 ) − a dy2 L′ G0 (y1 , y2 )δ(y − y2 )∫+ a2]
dy2 dy3 L′ G0 (y1 , y2 )L′ G0 (y2 , y3 )δ(y − y3 ) + · · · f (y)(5)

形式的な式ですが、だいぶ分かりやすい形になっています。また、最後の変形は f (y) を括弧の外に出すためにデルタ関数を使って無理やり変形したものなので、見やすいという以外に特に意味があるわけではないです。
このように、非線形方程式の解 ϕ(x) は線形方程式のグリーン関数 G0 (x) さえ分かれば求められます。特に、この式は全てのオーダを足し合わせたものとして書かれているのが重要なことです。

ϕ0 でなく ϕ に対するグリーン関数 G も定義できて∫
ϕ(x) =dyG(x, y)f (y)なので、問題なく G(x, y) が求まるなら、摂動展開をする必要はないです。しかし、G(x, y) が厳密に求まることはそうそうないです。なので、同じように摂動展開して G0 (x) で表現することを考えます。摂動論による G(x) は(5) から∫G(x) =∫
[dy1 G0 (x, y1 ) δ(y − y1 ) − a dy2 L′ G0 (y1 , y2 )δ(y − y2 )∫2+ady2 dy3 L′ G0 (y1 , y2 )L′ G0 (y2 , y3 )δ(y − y3 ) + · · ·]となっていることが分かります。このように ϕ(x) に対するグリーン関数も ϕ0 (x) に対するグリーン関数から求められます。このときも全てのオーダを含んだ式として書かれています。
具体的な場合を最後に少し見ておきます。非線形方程式として

d2 y+ cy = ay 2dx2(6)これを使います。右辺の a を微小なパラメータとします。非線形項のない場合は

d 2 y0+ cy0 = 0dx2
y を摂動展開すると

y = y0 + ay1 + a2 y2 + · · ·これを (6) に入れれば

d2(y0 + ay1 + a2 y2 ) + c(y0 + ay1 + a2 y2 ) = a(y0 + ay1 + a2 y2 )2dx2
なので、a のオーダごとに抜き出せば

a0 :d2 y0+ cy0 = 0
dx2

a1 :

d2 y1+ cy1 = y02
dx2

a2 :

d2 y2+ cy2 = 2y0 y1
dx2というわけで、形式的に行った場合と同じになっているので、逐次的に計算していくことで y を求められます。

y0 の解は簡単に

y0 = A cos√cxと求められます。これを y1 に入れれば√d2 y1+ cy1 = A2 cos2 ( cx)dx2√
解くのは省きますが、これの一般解は A cos( cx) に特解を足せばいいです。このようによく出てくる非同次の 1階微分方程式でしかないので、わざわざグリーン関数を使わなくても数オーダまでで十分なら直接解いていくのもそれほど大変ではないです。