物理とか

Index

無限区間の熱伝導方程式・拡散方程式


1.熱伝導・拡散方程式の基本解

今回は \[\frac{\partial f}{\partial t}=D\frac{\partial^2 f}{\partial x^2}\tag{1}\] という熱伝導方程式を無限区間で解いていく。ディリクレ問題のところでも書いたが、(1)は簡単な変数変換によって \[\frac{\partial f}{\partial t}=\frac{\partial^2 f}{\partial x^2}\tag{2}\] となるから、(2)を解いても同じことだ。初期条件としては、\(f(x,t=0)=u(x)\)を与えておこう。

まずは変数分離しよう。 \[f(x,t)=X(x)T(t)\tag{3}\] として(7)に代入すると、 \begin{align} X(x)T'(t)&=X''(x)T(t) \\ \frac{X''(x)}{X(x)}&=\frac{T'(t)}{T(t)}\tag{4} \end{align} 左辺はxのみの関数、右辺はtのみの関数となった。xのみの関数とtのみの関数が常に等しいと言うのは、それぞれが定数であるとしか考えられない。そこで、 \[\frac{X''(x)}{X(x)}=\frac{T'(t)}{T(t)}=\lambda\tag{5}\] とすれば、ふたつの方程式に分解できて、 \[\left\{\begin{align} X''(x)&=\lambda X(x) \\ T' (t)&=\lambda T(t) \end{align}\right.\tag{6}\] を得る。この時点では\(\lambda\)は完全に任意な実数だ。でもT(t)の解は(11)から \[T(t)=T(0)e^{\lambda t}\tag{7}\] となる。もし\(\lambda>0\)なんてことがあれば、これは\(t\to\infty\)で無限大に発散してしまう。したがって、\(\lambda<0\)であることが必要だ。便宜上実数\(k>0\)を\(-k^2=\lambda\)となる数として使うと、Xの満たす方程式は、 \[X''(x)=-k^2X(x)\tag{8}\] となって、これは普通の単振動の方程式だ。よってこれの解は、 \[X(x)=A\sin(kx)+B\cos(kx)\tag{9}\] である。 よって、この方程式の解は \[f(x,t)=(A\sin kx+B\cos kx)e^{-k^2t}\tag{10}\] という形をしていると考えられる。ここで、後のために少し細工をしておく。(10)をオイラーの公式を使って書き換えるのだ。 \[2i\sin kx = e^{ikx} - e^{-ikx}, 2\cos kx=e^{ikx} + e^{-ikx}\] を代入してやれば、 \[f(x,t)=C_+e^{ikx}+C_-e^{-ikx}\tag{10'}\] という形にもってこれる。 しかし、(10)'式だけでは、任意の初期条件\(f(x,t=0)=u(x)\)を満足する解は得られそうにないだろう。そこで、定数\(k\)が完全に任意に決められることを考えれば、任意の実数\(k\)について(10)'の解を重ねあわせたものもまた解になっているだろう。そういう意味で、(10)式は

基本解

と呼ばれる。ともかく、 \[f(x,t)=\int_{-\infty}^{\infty}(C_+(k)e^{ikx}+C_-(k)e^{-ikx})e^{-k^2t}dk\tag{11}\] も解である。(11)式はもう少し簡単にすることができる。積分を2つにわけて後ろの項を少し変形する。すると、 \[\int_{-\infty}^{\infty}C_-(k)e^{-ikx}e^{-k^2t}dk=\int_{\infty}^{-\infty}C_-(-k)e^{ikx}e^{-k^2t}(-dk)=\int_{-\infty}^{\infty}C_-(-k)e^{ikx}e^{-k^2t}dk\tag{12}\] とできるから、これを使えば、 \[f(x,t)=\int_{-\infty}^{\infty}(C_+(k)+C_-(-k))e^{ikx}e^{-k^2t}dk\equiv\int_{-\infty}^{\infty}C(k)e^{ikx}e^{-k^2t}dk\tag{13}\] となる。

2.初期条件に合わせる

ここからが本番だ。(13)の解を初期条件に合うようにうまいこと\(C(k)\)を決めないといけない。しかしここからはフーリエ変換・逆変換の知識が必要になる。

一応フーリエ変換についておさらいしておく。フーリエ変換とは \[F(k)=\int_{-\infty}^\infty f(x)e^{-ikx}dx\tag{14}\] という\(f\to F\)の変換で、その逆変換は \[f(x)=\frac{1}{2\pi}\int_{-\infty}^\infty F(k)e^{ikx}dk\tag{15}\] で与えられるのだった。定義は人によってそれぞれだが、僕はこれを使おうと思う。

まずは(13)式にt=0を代入して初期条件を表す式を作る。すると、 \[f(x,t=0)=u(x)=\int_{-\infty}^{\infty}C(k)e^{ikx}dk\tag{16}\] もう明らかにフーリエ逆変換である。(まあそうなるように式変形してきたんだけども。)(14),(15)と見比べながらC(k)を求めてやると、 \[C(k)=\frac{1}{2\pi}\int_{-\infty}^\infty u(x)e^{-ikx}dx\tag{17}\] これでもう求まってしまった。(13)に代入してやれば、 \[f(x,t)=\int_{-\infty}^{\infty}\left\{\frac{1}{2\pi}\int_{-\infty}^\infty u(s)e^{-iks}ds\right\}e^{ikx}e^{-k^2t}dk\tag{18}\] これが解である。なんともあっさり終わってしまった。

3.Heat Kernel

ところで、実は(18)からもう少し計算を進めることができる。早速やってみよう。 \begin{align} f(x,t)&=\int_{-\infty}^{\infty}\left\{\frac{1}{2\pi}\int_{-\infty}^\infty u(x)e^{-iks}ds\right\}e^{ikx}e^{-k^2t}dk \tag{19}\\ &=\frac{1}{2\pi}\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}u(s)e^{-k^2t-ik(s-x)}dsdk \\ &=\frac{1}{2\pi}\int_{-\infty}^{\infty}u(s)\left\{\int_{-\infty}^{\infty}e^{-k^2t-ik(s-x)}dk\right\}ds\tag{20} \end{align} ここで出てきた積分 \[\int_{-\infty}^{\infty}e^{-k^2t-ik(s-x)}dk\] は実行する事ができる。普通に計算しようとすれば複素積分を使うことになってめんどくさいから、ちょっと技巧的ではあるが、変わった方法を使ってやってみよう。まずはeの肩の虚数部分を、オイラーの公式を使ってsin, cosで書く。すると \[\int_{-\infty}^{\infty}e^{-k^2t-ik(s-x)}dk=\int_{-\infty}^{\infty}e^{-k^2t}\cos(k(s-x))dk-i\int_{-\infty}^{\infty}e^{-k^2t}\sin(k(s-x))dk\tag{21}\] となる。ここでsinの方の積分は、全体として奇関数になっているから0になる。だから、 \[\int_{-\infty}^{\infty}e^{-k^2t-ik(s-x)}dk=\int_{-\infty}^{\infty}e^{-k^2t}\cos(k(s-x))dk\equiv I\tag{22}\] である。この右辺をsで微分してみよう。 \[\frac{dI}{ds}=\int_{-\infty}^{\infty}(-ke^{-k^2t})\sin(k(s-x))dk=\int_{-\infty}^{\infty}\left(\frac{e^{-k^2t}}{2t}\right)'\sin(k(s-x))\] この式は部分積分することができる。やってやると、 \[\frac{dI}{ds}=\left[\frac{e^{-k^2t}}{2t}\sin(k(s-x))\right]_{-\infty}^{\infty}-\frac{s-x}{2t}I\] 右辺の一項目はゼロだ。したがって、 \[\frac{dI}{ds}=-\frac{s-x}{2t}I\] というIに関する微分方程式を得る。変数分離して積分すれば、 \begin{align} \frac{dI}{I}&=-\frac{s-x}{2t}ds \\ I&=Cexp\left[-\frac{(s-x)^2}{4t}\right]\tag{23} \end{align} Cというのは積分定数だ。この積分定数はs=xの値を考えることによって決められる。(22)のIの定義をみながら計算すると、 \[I(s=x)=C=\int_{-\infty}^{\infty}e^{-k^2t}dk=\sqrt{\frac{\pi}{t}}\tag{24}\] よって、 \[I=\sqrt{\frac{\pi}{t}}\exp\left[-\frac{(s-x)^2}{4t}\right]\tag{25}\] である。ちょっと長いこと脇道にそれてしまったが、もともとは(17)式の中に出てきた積分を計算していたのだった。(25)を(20)に代入すれば、無限区間での熱伝導方程式・拡散方程式の解は \begin{align} f(x,t)&=\frac{1}{2\pi}\int_{-\infty}^{\infty}u(s)\sqrt{\frac{\pi}{t}}\exp\left[-\frac{(s-x)^2}{4t}\right]ds \\ &=\int_{-\infty}^{\infty}u(s)\frac{\exp\left[-\frac{(s-x)^2}{4t}\right]}{\sqrt{4\pi t}}ds\tag{26} \end{align} と表されることがわかる。この解の中の \[\frac{\exp\left[-\frac{(s-x)^2}{4t}\right]}{\sqrt{4\pi t}}\tag{27}\] という関数は、熱伝導方程式の解を決める主役であるという意味で、

熱核(Heat Kernel)

と呼ばれる。


4.解の物理的な説明

任意の与えられた初期条件\(f(x,0)=u(x)\)に対して(26)式で解が与えられることが分かったが、(26)というのはどうもごちゃごちゃしていて直感的にどういう解が得られたのかよくわからない。そこで少し説明しておこう。

熱核(24)は分散2tをもつ正規分布である。つまり時間が進めば進むほど、ピークは鋭くなくなっていく。そういうものと初期条件u(x)の畳み込み積分を考えるわけだから、u(x)を、時間とともにだんだんとひろげて行くような解になっていると考えられる。

よくわからなければ、適当に具体的な関数u(x)を与えて自分で計算してみればいいだろう。