223

第 19 章 偏微分方程式の数値解法
実際，流体力学，弾性論，熱伝導論，電磁気学，など，いろいろな分野での基本的な物理法則は，偏微分方程式で記述されるものがきわめて多い。
・・・（略）
・・・世界最初の電子計算機 ENIAC の発明の目的は弾道の計算という技術計算にあったが，その後の高速化・大容量化の主要な動機の一つが，偏微分方程式の数値解法への適用であったことは確かである。
森口繁一「数値計算工学」(岩波書店)

19.1 偏微分方程式の分類
n 変数の一次元関数 u(x1 , x2 , ..., xn ) に対して

i1 +i2 +···+in
i1 +i2 +···+in ∂u
∂
u
∂
u

, ..., i i, ..., i +i +···+i  = 0ϕ  x1 , ..., xn , u,in
1 2n12∂x1∂x1 ∂x2 · · · ∂xn∂xn(19.1)となる関係式が成立する時，この式 (19.1) を i1 + i2 + · · · + in 階の偏微分方程式 (Partial DiﬀerentialEquation, PDE) と呼び，関数 u(x1 , x2 , ..., xn ) をこの偏微分方程式の解と呼ぶ。
偏微分方程式の数値解法には，(有限) 差分法 (Finit Diﬀerence Method, FDM), 有限要素法 (FinitElement Method, FEM), 境界要素法 (Boundary Element Method, BEM) がある。このうち前者の 2 解法が，数値計算らしく，解析解が不明な場合でも有効である。熱力学や流体力学等でのシミュレーションによく登場するため，その分野独特の手法が存在するようである。著者はその点かなり門外漢であるので，本章ではこのうち差分法の例のみ示す。
偏微分方程式の例としては 2 階線型偏微分方程式がよく取り上げられる。その一般式は()
∂2 u
∂2 u
∂2 u∂u ∂uA(x, y)) 2 + B(x, y)+ C(x, y) 2 = F x, y, u, ,(19.2)∂x∂y∂x ∂y∂x∂yと書ける。これを更に分類する方法として 2 次曲線の分類のアナロジーを用いる。即ち，ある領域(x, y) ∈ D ⊂ R2 において次の関係が成立する時，それぞれを次のように命名する。
(B(x, y))2 − 4A(x, y)C(x, y) > 0 ⇐⇒ 双曲型 (Hyperbolic)(B(x, y))2 − 4A(x, y)C(x, y) = 0 ⇐⇒ 放物型 (Parabolic)(B(x, y))2 − 4A(x, y)C(x, y) < 0 ⇐⇒ 楕円型 (Elliptic)
これらの具体例を以下に挙げる。

第 19 章 偏微分方程式の数値解法

224
双曲型の例
波動方程式

∂2 u ∂2 u= 2(19.3)∂t2∂xは，B(t, x) = 0, A(t, x) = 1, C(t, x) = −1 という定数関数になるので双曲型に分類される。これが平面 (x, y) ∈ R2 ，および立体 (x, y, z) ∈ R3 においてはそれぞれ
∂2 u
∂t2
∂2 u
∂t2

∂2 u ∂2 u+∂x2 ∂y2∂2 u ∂2 u ∂2 u++∂x2 ∂y2 ∂z2==(19.4)(19.5)となる。
放物型の例
熱 (伝導) 方程式∂u ∂2 u= 2∂t∂x(19.6)

は，B(t, x) = 0, A(t, x) = 0, C(t, x) = 0 より，放物型に分類される。これが平面 (x, y) ∈ R2 ，および立体 (x, y, z) ∈ R3 においてはそれぞれ

∂u
∂t
∂u
∂t=
=

∂2 u ∂2 u+∂x2 ∂y2∂2 u ∂2 u ∂2 u++∂x2 ∂y2 ∂z2(19.7)(19.8)となる。
楕円型の例

Poisson 方程式∂2 u ∂2 u+= g(x, y)∂x2 ∂y2(19.9)

は， B(x, y) = 0, A(x, y) = 1, C(x, y) = 1 より，楕円型に分類される。これが g(x, y) = 0 である
ときは Laplace 方程式と呼ぶ。

19.2 差分法による Poisson 方程式の解法
この節の内容は Stoer & Bulirsch(pp.588〜pp.594) による。

Poisson 方程式 (19.9) に次の Dirichlet 境界条件u(x, y) = 0 (x, y) ∈ ∂D, D ⊂ R2(19.10)が添えられる時，これを差分法で解いてみる。簡単のため，2 次元閉領域 D は D = [0, 1] × [0, 1] の矩形とする。

19.2. 差分法による Poisson 方程式の解法

225

この矩形を x 方向，y 方向にそれぞれ n 等分割し，区間幅を h = 1/n とする。各端点を xi = x0 + ih,
y j = y0 + jh とする。但し x0 = 0, y0 = 0 である。この時，Poisson 方程式 (19.9) の左辺を， x 方向，y 方向の (15.3) に基づく差分商で置き換えると，点 (xi , y j ) においては，差分商の誤差を除いて)
1 (u(xi , y j−1 ) + u(xi−1 , y j ) − 4u(xi , y j ) + u(xi+1 , y j ) + u(xi , y j+1 ) = g(xi , y j )(19.11)2h(i = 1, 2, ..., n − 1, j = 1, 2, ..., n − 1)という等式を満足すれば良いことになる。以下，ui j = u(xi , y j ), gi j = g(xi , y j ) と書き換え，x 方向にこの近似式を並べていくと，次のような (n − 1)2 次元の連立一次方程式となる。
 −4 1

1


.. ..
..

.
.
.
 1

.
.
.

.. .. 1..

1−41

..
.
−4 1
 1.
.
.
.


..
.. ..
..
1



..
.. ..
..


.
.
.
.
1



..


.
1
1 −41 



..
..
h2 

.
.
1




..
..
..
.
.
.



..
..
..


.
.
.



..
..


.
.
1





1−4 1

.
.
.


..
.. ..
1



.
.
.

..
. . . . 1 




1
1 −4

 

 u11   g11  ..
..
 .
.

 
 un−1,1   gn−1,1 
 
 u12   g12  

..
..
 .
.
 
× =  un−1,2   gn−1,2  
..
..
 
.
.
 
 
 u1,n−1   g1,n−1  
..
..
 
 
.
.
 

un−1,n−1gn−1,n−1(19.12)

第 19 章 偏微分方程式の数値解法

226
問題 19.2.1

1. Poisson 方程式の差分解法から得られる連立一次方程式が式 (19.12) のようになることを確認せよ。特に Dirichlet 境界条件に留意して考えよ。
2. 他の偏微分方程式について，差分解法をそのまま適用するとどのような連立一次方程式に帰着されるかを考えよ。

演習問題
1. 3 次元の Poisson 方程式∂2 u ∂2 u ∂2 u++= g(x, y, z)∂x2 ∂y2 ∂z2(19.13)u(x, y, z) = 0 (x, y) ∈ ∂D, D ⊂ R3

(19.14)に次の Dirichlet 境界条件が添えられたとする。ここで 3 次元閉領域 D は D = [0, 1] × [0, 1] × [0, 1] の矩形とする。

(19.13) を 2 次元の Poisson 方程式 (19.9) と同様にして差分法で解くための数値スキームを考えよ。その際，解くべき連立一次方程式の次元数はどうなるか？

参考図書
現在，多くの科学技術シミュレーションが行われているが，偏微分方程式の数値解法はそこで中心的な役割を担っていることが多い。その分野への「応用」に特化するために様々な数学的，工学的，数値計算的な工夫がなされているようである。従って，ある分野におけるシミュレーションのために偏微分方程式を解こうというのであれば，まずその分野用のシミュレーションについて説いたものを読むべきだろう。
それとは別に，入門用として偏微分方程式の数値解法に触れてみたいという向きには次の三冊を挙げておく。

1. 戸川隼人, 「数値解析とシミュレーション」, 共立全書 (共立出版), 1976.
2. 菊池文雄・山本昌宏, 「微分方程式と計算機演習」, 山海堂, 1991.
3. 河村哲也, 「応用偏微分方程式」, 共立出版, 1998.
戸川の本はこの分野の入門書としては古典である。初版は古いが解説の大部分は今でも有用である。
菊池・山本の本は必要となる数学的概念と，問題を解くためのプログラム例，そしてそれを実行して得られた数値例が余すところなく述べられている良書である。ここに述べられている全ての演習問題を解くことでこの分野に必要な感覚が養える。
河村の本は，菊池・山本のように，プログラム例はあまり掲載されていないが，数値計算に必要な計算式の導出はしっかりとなされており，基本的な数値計算とプログラムの知識があればそれを19.2. 差分法による Poisson 方程式の解法

227実行するのは容易い。流体力学では頻出する Navier-Stokes 方程式に差分法を適用した例も載っており，その分野に足を踏み入れようとする者は一読しておくことをお勧めしておく。
この三冊は全てプログラム例は Fortran(FORTRAN77) で記述されている。それを見て古くさいと切り捨てるのは容易いが，もう少し踏み込んで考えると，別段最新の言語で記述されている必要がないことにも気が付かれることと思う。21 世紀に入っても Fortran のプログラムはまだまだ沢山残っている。わざわざ Fortran で全てのプログラムを書けるようになるほど習熟する必要はないが，ソースコードが読みとれる程度のスキルは必要である。