数学は(いや大抵の学問は)積み重ねである。たとえば、「ぼく掛算忘れちゃった」と言う小学生に割り算を教えるのは至難の技である。微分方程式の解き方も、少しずつ簡単なところか難しいところへと進んでいくが、簡単なところをその都度忘れていては積み重ねていくことができない。一つ一つつ着実に理解していって欲しい。
次に「定数係数」という条件を外して定数でない係数を考えることにする。まずは、簡単な一階微分の場合を考えよう。
一階線型微分方程式を書き直す
一般的な一階線型非斉次微分方程式は、p(x)とq(x)を既知のxの関数定数ならばこれまでやってきた方法で解ける。として、
ddxf(x)+p(x)f(x)=q(x)と書くことができる。f(x)が今から求めようとしている「未知の関数」である。より一般的には
r(x)ddxf(x)+p(x)f(x)=q(x)という形も考えられるが、この式の両辺をr(x)で割って
ddxf(x)+p(x)r(x)f(x)=q(x)r(x)としたのが上の式だと思えばよい(もちろんこの計算はr(x)≠0の領域でのみ可)。
この方程式は
(ddx+p(x))f(x)=q(x)とも書ける。
以下ではパターン2として、「上の微分方程式のうちp(x)の項を消す」という手を使ってみよう。
ここで
(ddx−A)(eAxF(x))=eAxddxF(x)という式を思い出す。
実際にこの式に代入してやれば、
ここではddxの後には数ではなく関数がついているわけだが、その場合でも真似をして、f(x)=?F(x)と置き直すことで
(ddx+p(x))(?F(x))=?ddxF(x)とできないだろうか(微分演算子と?を交換することでp(x)を「消去」できないだろうか)と考える。この式を整理すれば、
ddx(?F(x))+p(x)?F(x)=?ddxF(x)(ddx?)F(x)+?ddxF(x)+p(x)?F(x)=?ddxF(x)(ddx?+p(x)?)F(x)=0であるから、微分すると−p(x)?になるような?を見つければよい。
p(x)の不定積分が∫dxp(x)=P(x)+Cのように求まったとする(つまり、p(x)の原始関数の一つがP(x)であるということ)。すると?=e−P(x)とすればddx?=−p(x)?となる。これを使うと、y=e−P(x)F(x)とすることで、
(ddx+p(x))e−P(x)F(x)⏟f(x)=q(x)e−P(x)ddxF(x)=q(x) となる。FAQ:p(x)の不定積分はP(x)+Cなので、f(x)=e−P(x)−CF(x)とするべきでは?
と思う人もいるかもしれないが、まだF(x)は決まってない量だから、e−Cも含めてF(x)に入れてあると思えばよい。つまり、P(x)としてはddxP(x)=p(x)になる関数を一つ代表を出しておけば十分である。
こうして、p(x)の原始関数を使うことで
(ddx+p(x))f(x)=q(x) → ddxF(x)=q(x)eP(x)と式を書き直せたので、後はこれを解く。右辺をxで積分することができれば
F(x)=∫dx(q(x)eP(x))となり、
f(x)=e−P(x)∫dx(q(x)eP(x))が一般解である。この不定積分∫dx(q(x)eP(x))の結果をG(x)+D(Dは積分定数)とすれば、
f(x)=e−P(x)G(x)⏟f′(x)+p(x)f(x)=q(x)の特解+De−P(x)⏟f′(x)+p(x)f(x)=0の一般解となる。第2項が同次方程式の一般解になっていることに注意しよう。
ここでやった計算は、
とまとめることができる。
このパターンで解ける微分方程式の一例として、
dydx+2xy=xを解いてみる。p(x)=2xであるから、P(x)=x2とすればよい。よってy=e−x2F(x)と置くことで、
(ddx+2x)e−x2F(x)=xe−x2ddxF(x)=xddxF(x)=xex2となるが、この式は
F(x)=12ex2+Cと積分できて、
f(x)=12+Ce−x2が一般解である。結果を見ると、12の部分は非斉次方程式ddxf(x)+2xf(x)=xの特解であり(代入してみよう)、Ce−x2の部分は斉次方程式ddxf(x)+2xf(x)=0の一般解である(これも実際に解いてみればわかる)。つまりこの場合は「斉次方程式の一般解と非斉次方程式の特解を足す」という解き方でも解ける。
今日の小テスト
以下の微分方程式を解け。
(ddx+1x)f(x)=x2ヒントとして、ddxlogx=1xだということをまず与えた。さらにおまけのヒントとして、
e−logx=1elogxと
elogA=Aという式も黒板に書いておいた。それなのに意外とできなかったのは残念。
答えを書いておく。
この場合、p(x)=1xだから、P(x)=logxとすればよい。解くべき微分方程式は
(ddx+1x)(e−logxF(x))=x2となり、これは整理すると
e−logxddxF(x)=x2となり、ヒントをつかってe−logx=1xとして、
ddxF(x)=x3を解けばよい。結果は
F(x)=14x4+Cであり、最終結果は
f(x)=14x3+Cxとなる。
定数変化法
ここで、前節での微分方程式の解き方を見直してみる。
出てきた答えをy(x)=(G(x)+C)e−P(x)とくくって考えてみると、この答えはdydx+p(x)y=0の一般解であるCe−P(x)のパラメータである定数Cが、C→G(x)+Cのように置き換えられた形になっている。従ってこの方程式は、以下に示すような「定数変化法」を使っても解ける。
定数変化法
dydx+p(x)y=q(x) を解くにはまず dydx+p(x)y=0 を解いてy=Ce−P(x)という解を作ったのち、この定数CをC(x)のように変数だったとして元の方程式に代入する。すると、 (ddx+p(x))(C(x)e−P(x))=q(x)e−P(x)ddxC(x)=q(x) という式が出るから、後はこれを解いてC(x)を求める。定数なのに変化させるとはおかしな名前であるが、ここで説明したように「非斉次方程式→斉次方程式」のように方程式が置き換えられるとそれに応じて答えも「定数→変化する数」と置き換えよ、という意味だと解釈しよう。定数変化法のリクツを無視して「とにかくこうやりゃ解ける」と覚えてしまう人もいるのだが、やっているのは上に書いたような泥臭い計算を少々小綺麗にまとめているだけで、特にすごい事をしてるわけではない。また、この方法は当然ながら線型な微分方程式でしか通用しない。定数変化法は決して魔法のように微分方程式が解ける万能の手段ではないことは注意すべきだが、手順がパターン化されている点は便利なのでよく使われている。