\[ \newcommand{\bm}[1]{\symbfit{#1}} \]
一般に\(u = u(x, y)\)が独立変数\(x, y\)の関数であるとき,\(u\)と\(x, y\)および偏導関数(\(\partial u/\partial x, \partial u/\partial y, \partial^2 u/\partial x \partial y, ...\))の間に成り立つ関係式を偏微分方程式と呼ぶ.物理的に興味のある系の多くは比較的低次の偏微分方程式で表される.よく現れる偏微分方程式として,例えば \[ a \frac{\partial^2 u}{\partial x^2} + b \frac{\partial^2 u}{\partial x \partial y} + c \frac{\partial^2 u}{\partial y^2} = F \left( u, x, y, \frac{\partial u}{\partial x}, \frac{\partial u}{\partial y} \right) \] の形で表される系を考えよう.このとき \(D = b^2 - 4 a c\)の値によって偏微分方程式は
と分類される.
この分類は2次曲線 \[ a x^2 + b xy + c y^2 = F(x, y) \] が\(D\)の値によって楕円,放物線,双曲線に分類されることに由来するものであり,数学的にもこれらの分類によって解の性質は大きく異なる.
\(a = c = 1, b = 0, F = 0\)のとき, \[ \frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2} = 0 \]
\(a = 1, b = c = 0, F = \partial u/\partial y\)で\(y \rightarrow t\)と置き換えて \[ \frac{\partial u}{\partial t} = \frac{\partial^2 u}{\partial x^2} \]
\(a = 1, b = 0, c = -1, F = 0\)で\(y \rightarrow t\)と置き換えて \[ \frac{\partial^2 u}{\partial t^2} = \frac{\partial^2 u}{\partial x^2} \]
一様重力場中の質点の運動方程式 \[ \frac{d^2 x}{d t^2} = -g \quad \left( \frac{dx}{d t} = v, \quad \frac{d v}{d t} = -g \right) \] の一般解は \[ x(t) = x_0 + v_0 t - \frac{1}{2} g t^2 \] である.この解を決定するには\(t = 0\)における条件(初期条件)\(x(0) = x_0\)および\(v(0) = v_0\)が必要.
この問題を境界値問題として見れば,\(t = 0\)および\(t = T\)の2点において一つずつ条件を与えることでも解を決定できる.
Direchlet型境界条件 \(x(0) = x_0\) や \(x(T) = x_1\) を与える.
Neumann型境界条件 \(x'(0) = v_0\) や \(x'(T) = v_1\) を与える.
偏微分方程式においても基本的に事情は同じであり,微分の階数に等しい条件を指定しなければならない.(境界条件を適当に与えると場合によっては解が無いということもあり得る!)
波動方程式 \[ \frac{\partial^2 u}{\partial t^2} = \frac{\partial^2 u}{\partial x^2} \] は時間・空間ともに2階の偏微分方程式である. したがって,この方程式の解を決定するには初期条件として\(t=0\)における\(u\)および\(\partial u /\partial t\)の値,境界条件として両端での\(u\)の値を与える必要がある.
ここで,補助変数として\(\partial u/\partial t = \partial v/\partial x\)なる\(v\)を導入してみよう.このとき波動方程式は \[
\frac{\partial u}{\partial t} = \frac{\partial v}{\partial x},
\quad
\frac{\partial v}{\partial t} = \frac{\partial u}{\partial x}
\] のように,2変数\(u, v\)についての時間・空間ともに1階の偏微分方程式に書き換えられる. したがって,初期条件として\(t = 0\)における\(u, v\)の値が必要となる.一方で,境界条件としては,例えば両方の境界で\(u\)の値を与えてもよいし,一方の境界で\(u\)を,もう一方の境界で\(v\)を与えてもよい.
ただし,両端で\(u, v\)の両方の値を同時に指定することはできない(自由度が足りない)ことに注意しよう.物理的には右方向に伝播する波動については左側の境界が,左方向に伝播する波動については右側の境界がそれぞれ影響を与えるためと考えることができる.
計算機は連続的な関数を厳密に表現することができないため,基礎方程式を数値的に解く際には何らかの離散化が必要となる.典型的には離散的な格子点 \(x_{i} (i = 1, 2, \ldots, N)\) において定義される \(u_{i} = u(x_{i})\) を用いる.
この離散化によって格子点上の関数値は定義されたが,偏微分方程式に現れる微分値は未知である.(微分値も独立変数にとる手法も存在する.)安直には微分を差分に置き換えてやればよい. 例えば最も簡単な場合として等間隔格子 \(x_{i} = i \Delta x\) を使う場合を考えると,一階微分は直感的に \[ \left( \frac{\partial u}{\partial x} \right)_{i} \approx \frac{u_{i+1} - u_{i-1}}{2 \Delta x} \] のように近似することができるだろう.しかし,同様に \[ \left( \frac{\partial u}{\partial x} \right)_{i} \approx \frac{u_{i+1} - u_{i}}{\Delta x} \] や \[ \left( \frac{\partial u}{\partial x} \right)_{i} \approx \frac{u_{i} - u_{i-1}}{\Delta x} \] でも良さそうである. どのような差分近似を採用したら良いのだろうか?
微分の差分近似は一意には決まらないが,その誤差は理論的に評価することができる.そのために\(x = x_i\)近傍でのTaylor展開を考えよう. \[ u_{i\pm1} = u(x_{i} \pm \Delta x) = u_{i} \pm \left( \frac{\partial u}{\partial x} \right)_{i} \Delta x^1 + \frac{1}{2} \left( \frac{\partial^2 u}{\partial x^2} \right)_{i} \Delta x^2 \pm \frac{1}{6} \left( \frac{\partial^3 u}{\partial x^3} \right)_{i} \Delta x^3 + \mathcal{O} (\Delta x^4) \] これから直ちに \[ \left( \frac{\partial u}{\partial x} \right)_{i} \approx \frac{u_{i+1} - u_{i-1}}{2 \Delta x} + \mathcal{O} (\Delta x^2) \] を得る.すなわち,格子幅\(\Delta x\)を小さくするとこの差分近似の誤差は\(\Delta x^2\)に比例して小さくなることが分かる.このように展開を途中で打ち切ることから生じる誤差を打ち切り誤差と呼ぶ.
一般に差分近似の誤差が\(\Delta x\)の\(n\)乗に比例して小さくなるとき,その差分近似は\(n\)次精度と呼ばれる.
演習問題 1. 1 差分近似 \(\displaystyle \left( \frac{\partial u}{\partial x} \right)_{i} \approx \frac{u_{i+1} - u_{i}}{\Delta x}\) および \(\displaystyle \left( \frac{\partial u}{\partial x} \right)_{i} \approx \frac{u_{i} - u_{i-1}}{\Delta x}\) の精度(次数)を求めよ.
差分近似の次数が同じであっても,その表現は必ずしも一つに定まるわけではない.それは評価点\(x=x_i\)における差分近似を構成するために近傍のどの点を採用するかに自由度があるためである.
評価点\(x=x_i\)の
と呼ぶ.これらは単なる呼び名であって,与えられた方程式を解くにあたってどの差分近似を採用すべきかは全く明らかでない.多くの場合において,近似すべき項の物理的性質に適した差分近似を用いなければ実用的な数値計算はできないことがほとんどである. (そもそも時間微分の近似以外の場合においては前進・後退という名前自体が物理的に全くナンセンスである.)
基本的には1階微分の場合と同様にTaylor展開を用いて必要な微分係数以外の項を消去すればよい. 例えば2階微分であれば \[ \left( \frac{\partial^2 u}{\partial x^2} \right)_i \approx \frac{u_{i+1} - 2 u_{i} + u_{i-1}}{\Delta x^2} + \mathcal{O} (\Delta x^2) \]
より高階の微分や前進差分・後退差分なども構成することができる. よく使われる差分公式については例えば Wikipedia を参照せよ.
ある点の微分値を差分近似する際に必要となる周辺の範囲のことをステンシルと呼ぶ.一般に,高階微分の差分近似や,同じ次数でも高次精度の差分を構成する際にはより広いステンシルが必要となる.
演習問題 1. 2 上記の差分近似が2次精度であることを示せ.Taylor展開を3次まで行う必要があることに注意せよ.
演習問題 1. 3 高階微分の差分近似に広いステンシルが必要になるのは何故か.例えば,4階微分\(\partial^4 u/\partial x^4\)を表すには最低何点のステンシルが必要になるか考えよ.