拡散方程式って？
〜ラプラシアンの気持ちを理解する〜
三谷純

2024.5.4

1 はじめに物理学の分野で学ぶ拡散方程式は次のような形をしています*1 。

∂f= µ∆f∂t
とてもシンプルですが、この式は世の中の普遍的な拡散 (diﬀusion) という物理現象を端的に表した、とても美しい式の 1 つと言えます。工学系の学生の皆さんに、ぜひこの式の魅力を伝えたいと思ってこの解説文を書いています。
およそ世の中のあらゆる物質は時間と共に拡散し、濃度が小さくなり、最終的には空間全体に均一に存在する平衡状態になります。これはみなさんも経験的に知っていることでしょう*2 。ここで「物質」と書いたところを、「熱」に置き換えても同じように説明することができます。物体のある場所に熱を加えて放置すると、その場所の温度は下がっていきますが、熱は周りに伝わって周囲の温度が上がります。やがて、物体の温度はどこも同じ均一な状態になるでしょう。このような状態を式で表したものを熱伝導方程式と言いますが、これは拡散方程式と同じ形をしています。
こういった、どこでも観測される物理現象を、先ほどの式 1 つだけで表せているのです。すごい。そして、この式は物理だけではなくて、情報処理の分野を含む、他の分野でも広く使われています。
それでは、この式の構成を見ていきましょう。

2 拡散方程式の解釈
関数 f は時刻と場所を与えると、その時刻・その場所における「濃度」を返すものとしましょう（「濃度」を「温度」におきかえても構いません。直感的にわかりやすい方のイメージを頭の中に持っておくとよいです）。
拡散方程式の左辺は、この関数 f を時間で微分しています。つまり左辺は、ある場所における「微小時間での*1 教科書や分野によって、驚くほどにさまざまに異なる表記スタイルがあります。異なる式のように見えることもしばしばですが、本質的には同じことを言っている、ということに後から気づくことがあります。
*2 現実世界で普遍的な物理現象である「拡散」に抗っているものが、生物です。生物は死んでしまえば、やがて土に還ると言われるように、他の物質同様に拡散してしまいます。生物は生きている間、この拡散に抗っている、と言ってよいかもしれません。

1

濃度の変化量」（つまり濃度の変化率）を意味していて、それが右辺の式で示される、ということを言っているのです*3 。
では、右辺を見てみましょう。最初の記号 µ は拡散定数と言って拡散の速さを表す定数です（温度の場合は熱伝導率と言います）。なにか具体的な数値が当てはまると思ってください。その次の記号 ∆ はラプラス演算子といって、2 階微分の操作を表す演算子です（1 階微分を表す勾配の記号 ∇（ナブラ）を使って、∇2 で表すこともあります）。何を何で 2 階微分するかと言うと、関数 f を空間の座標で微分します。左辺は 1 階の時間微分、右辺は 2 階の空間微分であることに注意しましょう。
対象となる空間が 3 次元であるとき、∆f =∂2f∂2f∂2f++∂x2∂y 2∂z 2です。
つまり、拡散方程式は「ある場所における微小時間での状態の変化は、その状態を空間の座標で 2 階微分したものに比例する」と言っているのです。まだ、いまひとつピンとこないと思います。「その状態を空間の座標で 2 階微分したもの」とは何を意味するのでしょうか。ある場所を p で表したとき、これは「（p の周囲の値の平均）- (p での値)」であって、直感的な言葉で説明すると「周囲の値の平均との差」を意味する、と言うことができます（もう少し詳しい説明を次の節で説明します）。これを先ほどの文章に埋め込んであげると、ある場所における微小時間での状態の変化は、その「周囲の値の平均との差」に比例するとなります。

つまり「ある場所の濃度の変化率は、その周囲の濃度平均との差に比例する」、さらにかみ砕いて言えば「ある場所の濃度がその周囲の濃度と大きく異なるとき、その場所の濃度は大きく変化する」と言うことができます。今は変化率の「大きさ」に注目した書き方をしていますが、濃度が上がるのか、下がるのか、と言った変化の方向はどうでしょうか。もちろん、周囲の温度の方が低ければ下がり、その逆に周囲の温度の方が高ければ上がります。これは普段の感覚にも沿うものですね*4 。
物質の濃度であっても、温度であっても、空間が 1 次元でも 2 次元でも 3 次元でも、ある点を観測すると、その周囲の値の平均の方に近づいていくように変化する、ということを拡散方程式が言っているのです（ここでは詳細を説明しませんが、拡散方程式に基づいて状態の変化を計算すると、時間の経過とともに全体が平衡状態に近づいていくことを確認できます）。
こういった説明と、最初の拡散方程式を見比べてみるとラプラシアン ∆ は、近傍の平均との差を求める演算子である、と言うことができます。次節では、このことを差分法を用いて直感的に理解することを目指します。

3 差分法でラプラシアンを理解する
差分法は微分方程式などを離散化して*5 近似的に解を求める手法であって、コンピューターで微分係数を計算するときに広く用いられます。
さて、ここでは説明を簡単にするために、空間は 1 次元であって（細長いパイプの中での濃度変化を考えるイメージです）、空間の位置は x 座標の値で表されるものとしましょう。f (x) の 1 階微分は、少しだけ手前*3 初期状態がわかれば、変化率を時間積分することで、濃度がどのように変化していくかを知ることができます*4 空間の座標を人に喩えれば、「周りの人の平均に合わせるように自分を変化させる」と言うことができます私たち人間みたいですね。そうすると、結果的に集団全体が平均的なものに落ち着いてしまうというのも直感的に理解できます*5 連続関数で表される滑らかな曲線を、細かい折れ線で代替します2

の位置における値 f (x − ∆x) と少しだけ後の位置における値 f (x + ∆x) を用いて次のように計算されます（とっても紛らわしいのですが、ここでの ∆ はラプラシアンではなくて ∆x が微小な値であることを表すための記号です）。

f ′ (x) ≈f (x + ∆x) − f (x − ∆x)2∆x(1)

位置 x の前後の値の差を区間の大きさで割っていて、これは近似的に x での勾配（変化率）を表します*6 。

2 階微分は 1 階微分の変化率ですから、同じようにして計算します。
f ′ (x + ∆x) − f ′ (x − ∆x)2∆xf ′′ (x) ≈f ′ (x + ∆x) と f ′ (x − ∆x) を式 1 で置き換えて、(f (x+2∆x)−f (x)2∆xf ′′ (x) ≈これを整理すると、

f ′′ (x) ≈)−((2)f (x)−f (x−2∆x)2∆x)2∆xf (x + 2∆x) − 2f (x) + f (x − 2∆x)(2∆x)2となります。ここで 2∆x を改めて微小な値 h で書き換えると、次のような一般的な差分法で用いられる 2 階微分の式になります。

f ′′ (x) ≈f (x + h) − 2f (x) + f (x − h)h2

ここまでが一般的な差分法の説明です。これをさらに変形すると次のように書くことができます。

2f (x) ≈ 2h′′(f (x + h) + f (x − h)
− f (x))2)

f (x+h)+f (x−h)
は、位置 x の両側の値の平均にほかなりませんから、日本語を使うと次のような式にできま22す（少し説明不足ではありますが、係数の 2/h は「近傍」をどれだけ離れた点に取るかに応じてスケールを調整するための係数と見なしましょう）。

f ′′ (x) ≈2(近傍の値の平均 − f (x))
h2

さて、ここまでで 2 階の微分操作を表すラプラス演算子 ∆ には「近傍の平均との差を求める」という性質があることを説明してきました。ここまで読んだうえで、ぜひもう一度、この解説文を最初の節を読んでみてください。より理解しやすくなっていることと思います。

*6 中心差分と言います。位置 x と x + ∆ の差を見る、前進差分というものもあります。

3