二階定数係数線形非同次微分方程式#

二階定数係数線形非同次微分方程式 は次の形式で書かれる微分方程式である.

\[ \frac{d^2y}{dx^2} + a\frac{dy}{dx} + by = g(x) \]

ただし,\(g(x)\)\(x\)を含む項である.

解法#

特殊解が既知のとき

まず微分方程式に加えて,その特殊解が与えられているとき,一階線形微分方程式と同様に重ね合わせの性質から同次微分方程式の一般解と特殊解の和が非同次微分方程式の一般解を求めることができる.

上記の非同次形の微分方程式が与えられ,\(g(x)=0\)のときの同次微分方程式の一般解を \(u(x)\)\(g(x)\neq0\)のときの非同次微分方程式の特殊解を \(v(x)\) としたとき,非同次微分方程式の一般解 \(y(x)\)は以下である.

\[ y(x) = u(x) + v(x) \]

特殊解が未知のとき

特殊解 \(v(x)\) が未知であるとき,\(g(x)\)\(y_1(x),y_2(x)\)の関数の形に応じて解を仮定する未定係数法による解法,微分演算子による解法,定数変化法による解法がある.ここでは,定数変化法による解法を紹介する.

定数変化法による解法では,同次形の微分方程式

\[ \frac{d^2y}{dx^2} + a\frac{dy}{dx} + by = 0 \]

の基本解が\(y_1(x),y_2(x)\)として得られているときに用いることができる.そのときの同時微分方程式の一般解は,任意定数\(C_1,C_2\)を使って以下のように書けた.

\[ y=C_1 y_1(x) + C_2 y_2(x) \]

ここで非同次形での一般解 \(y\)\(x\)の関数項\(C_1(x),C_2(x)\)を持つ形式であると仮定する定数変化法を用いる.

\[ y=C_1(x)y_1(x) + C_2(x)y_2(x) \]

上記の関数 \(y\)\(x\) に関する一階導関数 \(y'=\frac{dy}{dx}\) と二階導関数 \(y''=\frac{d^2y}{dx^2}\) を考える.

\[\begin{split} \begin{aligned}y&=C_1(x)y_1(x)+C_2(x)y_2(x)\\ y'&=C_1(x)y_1'(x)+C_2(x)y_2'(x)+C_1'(x)y_1(x)+C_2'(x)y_2(x)\\y''&=C_1(x)y_1''(x)+C_2(x)y_2''(x)+2\bigl(C_1'(x)y_1'(x)+C_2'(x)y_2'(x)\bigr)\\& \quad \quad +C_1''(x)y_1(x)+C_2''(x)y_2(x)\end{aligned} \end{split}\]

続いて,計算した導関数を微分方程式に代入する.

\[\begin{split} \begin{aligned} &y''+ay'+by \\ & \quad = C_1(x)\left (y_1''(x)+ay_1'(x)+by_1(x)\right) \\ & \qquad + C_2(x)\left(y_2''(x)+ay_2'(x)+by_2(x)\right) \\ & \qquad + C_1'(x)y_1(x)+C_2'(x)y_2(x) \\ & \qquad + 2\left(C_1'(x)y_1'(x)+C_2'(x)y_2'(x)\right) \\ & \qquad + C_1''(x)y_1(x)+C_2''(x)y_2(x)\\ \end{aligned} \end{split}\]

このとき,\(y_1(x),y_2(x)\)は基本解なので,その定義から,

\[\begin{split} \begin{aligned} y_1''(x)+ay_1'(x)+by_1(x) &= 0 \\ y_2''(x)+ay_2'(x)+by_2(x) &= 0 \end{aligned} \end{split}\]

である.そのため,代入はさらに整理できる.

\[\begin{split} \begin{aligned} &y''+ay'+by \\ & \quad = C_1'(x)y_1(x)+C_2'(x)y_2(x) \\ & \qquad + 2\left(C_1'(x)y_1'(x)+C_2'(x)y_2'(x)\right) \\ & \qquad + C_1''(x)y_1(x)+C_2''(x)y_2(x) \end{aligned} \end{split}\]

ここで,一項目の\(C_1'(x)y_1(x)+C_2'(x)y_2(x)\)が恒等的に\(0\)となることを満たすような\(C_1(x),C_2(x)\)を設計することを考える.理由はこの項をさらに微分するとわかる.

\[ C_1'(x)y_1'(x)+C_2'(x)y_2'(x)+C_1''(x)y_1(x)+C_2''(x)y_2(x)\equiv 0\]

であり,これを代入すると右辺がきれいになりそうである.このとき,\(C_1'(x)y_1(x)+C_2'(x)y_2(x)\equiv 0\)の条件とともに\(y''+ay'+by\)の形と見比べると,

\[ \begin{aligned} y''+ay'+by = C_1'(x)y_1'(x)+C_2'(x)y_2'(x) = g(x) \end{aligned} \]

であることがわかる(代入してみると良い).つまり定数変換法で考えた \(y=C_1(x)y_1(x) + C_2(x)y_2(x)\) が一般解であるためには,以下の条件が満たされていればいいことがわかる.

\[\begin{split} \begin{aligned} &\left\{\begin{array}{l}C_1'(x)y_1(x)+C_2'(x)y_2(x)=0\\C_1'(x)y_1'(x)+C_2'(x)y_2'(x)=g(x)\end{array}\right.\\ \end{aligned} \end{split}\]

この連立方程式を行列の形で書くと以下となる.

\[\begin{split} \begin{pmatrix} y_1(x) & y_2(x) \\ y_1'(x) & y_2'(x)\end{pmatrix}\begin{pmatrix} C_1'(x) \\ C_2'(x)\end{pmatrix}=\begin{pmatrix} 0 \\ g(x)\end{pmatrix}\\ \end{split}\]

求めたいのは,\(C_1(x),C_2(x)\)なのでその導関数の解となるように逆行列を使って整理する.

\[\begin{split} \begin{pmatrix} C_1'(x) \\ C_2'(x)\end{pmatrix}=\frac{1}{y_1(x)y_2'(x)-y_2(x)y_1'(x)}\begin{pmatrix} y_2'(x) & -y_2(x) \\ -y_1'(x) & y_1(x)\end{pmatrix}\begin{pmatrix} 0 \\ g(x)\end{pmatrix} \end{split}\]

このとき,右辺第一項の分母に現れる関数 \(y_1(x),y_2(x)\)とその導関数からなる行列式 \(W(y_1,y_2)(x)\)はロンスキー行列式と呼ばれる(このセクションの最後にロンスキー行列式について説明を加えたので参照されたい).これを使って整理すると,

\[\begin{split} \begin{pmatrix} C_1'(x) \\ C_2'(x)\end{pmatrix}=\frac{1}{W(y_{1},y_{2})(x)}\begin{pmatrix} y_2'(x) & -y_2(x) \\ -y_1'(x) & y_1(x)\end{pmatrix}\begin{pmatrix} 0 \\ g(x)\end{pmatrix} \end{split}\]

となり,\(C_1(x),C_2(x)\)およびその導関数\(C_1'(x),C_2'(x)\)は以下となる.

\[\begin{split} \begin{aligned} &C_1'(x)=-\dfrac{y_2(x)g(x)}{W(y_{1},y_{2})(x)} \\ &C_2'(x)=\dfrac{y_1(x)g(x)}{W(y_{1},y_{2})(x)} \\ &C_1(x)=-\int^x \dfrac{y_2(t)g(t)}{W(y_{1},y_{2})(t)}dt \\ &C_2(x)=\int^x \dfrac{y_1(t)g(t)}{W(y_{1},y_{2})(t)}dt \end{aligned} \end{split}\]

以上より,定数変化法の\(x\)に関する任意定数を決定することができた.つまり,式からわかることとして,二階定数係数非同次微分方程式は,同次形の基本解 \(y_1(x),y_2(x)\)と右辺 \(g(x)\) から求めることができる.また上記の式展開からもわかるように,定数係数でなくても\(x\)を含む項\(p(x),q(x)\)であっても成立する.以上より,二階定数係数線形非同次微分方程式の特殊解は

\[ \begin{aligned} y=C_1(x)y_1(x) + C_2(x)y_2(x)=-\int^x \dfrac{y_1(x)y_2(t) - y_2(x)f_1(t)}{W(y_{1},y_{2})(t)}g(t)dt \end{aligned} \]

となる.

ロンスキー行列式

前述の二階線形微分方程式の解法からもわかるように,微分方程式においても線形独立の性質は重要である.ロンスキー行列式は関数集合が線形独立かどうかを判定する際に役立つ.

具体的に,ロンスキー行列式は,\(n\)個の関数\(y_1(x),...,y_n(x)\)のロンスキー行列式 \(W\) は次のように定義される.

\[\begin{split} W(y_1, y_2, ..., y_n) = \begin{vmatrix} y_1(x) & y_2(x) & \cdots & y_n(x) \\ y_1'(x) & y_2'(x) & \cdots & y_n'(x) \\ \vdots & \vdots & \ddots & \vdots \\ y_1^{(n-1)}(x) & y_2^{(n-1)}(x) & \cdots & y_n^{(n-1)}(x) \\ \end{vmatrix} \end{split}\]

ここで,\(y_i^{j}(x)\)は関数\(y_i(x)\)\(j\)階微分を示す.このロンスキー行列式 \(W\)\(0\)であるとき,線形従属,つまり,ある関数が他の関数の線形結合で表されることを示す.一方,\(0\)でないとき,関数は線形独立である.

例えば,本講義で扱った線形同次微分方程式の解 \(y_1(x),y_2(x)\)が一次独立である必要十分条件はロンスキー行列式 \(W(y_1(x),y_2(x)) \neq 0\) である.

逆行列

\(C_1(x),C_2(x)\)を求めるにあたって逆行列を利用した.内容は線形代数に含まれるが復習されたい.次の \(2\times 2\)の行列

\[\begin{split} A=\left(\begin{array}{ll}a & b \\ c & d\end{array}\right) \end{split}\]

の逆行列は以下である.

\[\begin{split} A^{-1}=\frac{1}{a d-b c}\left(\begin{array}{cc} d & -b \\ -c & a \end{array}\right) \end{split}\]

具体例#

次の微分方程式を解いてみよう.

\[ \frac{d^2y}{dx^2} - 2 \frac{dy}{dx} - 3 y = e^{-x} \]

解答はクリックで確認できる.

非同次形の一般解は重ね合わせの性質から同次形の一般解と特殊解の和であった.そこで与えられた微分方程式の同次形,

\[ \frac{d^2y}{dx^2} - 2 \frac{dy}{dx} - 3 y = 0 \]

の一般解を導出する.そのためには,一般解を \(y=e^{\lambda x}\) としたときの特性方程式を考えればよかった.特性方程式は,

\[ \lambda^2 - 2 \lambda - 3 = \left( \lambda + 1 \right)\left( \lambda - 3 \right) = 0 \]

より,

\[ \lambda = -1, 3 \]

となる.したがって,基本解は,

\[ y_1 = e^{-x}, \quad y_2 = e^{3x} \]

であり,同次形の一般解 \(y_{\alpha}\) は任意定数 \(C_1,C_2\) を用いて

\[ y_{\alpha} = C_1 e^{-x} + C_2 e^{3x} \]

となった.続いて,非同次形の特殊解を導出する.ここで非同次形での特殊解 \(y_{\beta}\)\(x\)の関数項\(C_1(x),C_2(x)\)を持つ形式であると仮定する定数変化法を用いる.

\[ y_{\beta}=C_1(x)y_1(x) + C_2(x)y_2(x) \]

前述の解法の導出より,定数変化法で仮定した関数項\(C_1(x),C_2(x)\)は以下の方程式を満たすことがわかっていた.

\[\begin{split} \begin{aligned} &\left\{\begin{array}{l}C_1'(x)y_1(x)+C_2'(x)y_2(x)=0\\C_1'(x)y_1'(x)+C_2'(x)y_2'(x)=g(x)\end{array}\right.\\ \end{aligned} \end{split}\]

このとき \(y_1 = e^{-x}, y_2 = e^{3x}, y_1' = -e^{-x}, y_2' = 3e^{3x}, g(x)=e^{-x}\) であることに注意して,上記の連立方程式を行列の形で書くと,

\[\begin{split} \begin{pmatrix} e^{-x} & e^{3x} \\ -e^{-x} & 3e^{3x}\end{pmatrix}\begin{pmatrix} C_1'(x) \\ C_2'(x)\end{pmatrix}=\begin{pmatrix} 0 \\ e^{-x}\end{pmatrix}\\ \end{split}\]

となる.これを \(C_1'(x),C_2'(x)\) について解くと,

\[\begin{split} \begin{align} \begin{pmatrix} C_1'(x) \\ C_2'(x)\end{pmatrix} &=\frac{1}{e^{-x} \cdot 3e^{3x} - e^{3x} \cdot (-e^{-x})}\begin{pmatrix} 3e^{3x} & -e^{3x} \\ e^{-x} & e^{-x}\end{pmatrix}\begin{pmatrix} 0 \\ e^{-x}\end{pmatrix} \\ &=\frac{1}{4e^{2x}}\begin{pmatrix} 3e^{3x} & -e^{3x} \\ e^{-x} & e^{-x}\end{pmatrix}\begin{pmatrix} 0 \\ e^{-x}\end{pmatrix} \\ &=\begin{pmatrix} -\frac{1}{4} \\ \frac{1}{4}e^{-4x}\end{pmatrix} \end{align} \end{split}\]

となり,関数項\(C_1(x),C_2(x)\)の導関数は以下となる.

\[\begin{split} \begin{align} C_1'(x) &= - \frac{1}{4}\\ C_2'(x) &= \frac{1}{4}e^{-4x} \end{align} \end{split}\]

我々が知りたいのは関数項\(C_1(x),C_2(x)\)なのでこれらを \(x\) について積分する.

\[\begin{split} \begin{align} C_1(x) &= \int - \frac{1}{4} dx = - \frac{1}{4}x + C_3\\ C_2(x) &= \int \frac{1}{4}e^{-4x} dx = -\frac{1}{16} e^{-4x} + C_4 \end{align} \end{split}\]

ただし,\(C_3,C_4\) は積分定数とする.以上より,非同次形での特殊解 \(y_{\beta}\)

\[\begin{split} \begin{align} y_{\beta} &= \left( - \frac{1}{4}x + C_3 \right) e^{-x} + \left( -\frac{1}{16} e^{-4x} + C_4 \right) e^{3x} \\ &=-\frac{1}{4}xe^{-x} + C_3 e^{-x} + -\frac{1}{16} e^{-x} + C_4 e^{3x} \end{align} \end{split}\]

となることがわかった.最終的に求めたい非同次形の一般解 \(y\) は同次形の一般解 \(y_{\alpha}\) と非同次形の特殊解 \(y_{\beta}\) の和であるので,

\[\begin{split} \begin{align} y &= y_{\alpha} + y_{\beta} \\ &= C_1 e^{-x} + C_2 e^{3x} -\frac{1}{4}xe^{-x} + C_3 e^{-x} + -\frac{1}{16} e^{-x} + C_4 e^{3x} \\ &= -\frac{1}{4}xe^{-x} + C_1 e^{-x} + C_2 e^{3x} \end{align} \end{split}\]

として一般解を導出できた.ただし,\(C_1,C_2\)はこれまで現れた任意定数\(C_1,C_2,C_3,C_4\)を後述のプログラムとの対応のために再定義した.

Pythonによる実装#

では,上記の微分方程式をsympyで解く.

from sympy import symbols, Eq, Derivative, Function, dsolve, exp

# 変数と未知関数の定義
x = symbols('x')
y = Function('y')(x)

# dy/dxの定義
dy = Derivative(y, x)
dy2 = Derivative(y, x, 2)

# 微分方程式の定義
eq = Eq(dy2 -2 * dy - 3*y, exp(-x))

# 微分方程式を解く
y_ = dsolve(eq, y)
y_
\[\displaystyle y{\left(x \right)} = C_{2} e^{3 x} + \left(C_{1} - \frac{x}{4}\right) e^{- x}\]

これをプロットしてみる.ただし,\(C_1 = C_2\) として値を代入している.

import numpy as np
from sympy import plotting
import matplotlib.pyplot as plt

N = 10

eqs = []
for c in np.linspace(-1, 1, N):
    eqs.append(y_.rhs.subs(symbols('C1'), c).subs(symbols('C2'), c))
p = plotting.plot(*eqs, (x, -5, 5), ylim=(-10, 10), show=False)

cm = plt.get_cmap('magma', N)
for i in range(N):
    p[i].line_color = cm(i)
p.show()
../../_images/ecf767a3246a58a091770deafd8d5a490dc9f7d31fe595ecac682fa4026104ca.png