竜太のテクニカルメモ

物理やへっぽこなゲーム作りについて易しく解説するよ

ユニティちゃんライセンス

このブログはユニティちゃんライセンス条項の元に提供されています

Laplace方程式の解

f(\boldsymbol{x})が与えられているとき,微分方程式 \begin{align} \Delta\phi (\boldsymbol{x}) = -f(\boldsymbol{x}) \end{align} をPoisson方程式と呼びます. 一般に微分方程式は特殊解とその微分方程式の斉次方程式(右辺=0と置いた微分方程式)の 一般解の和で一般解が表されます. そこでここではPoisson方程式の一般解を求めるためにまず最初にPoisson方程式の斉次方程式である Laplace方程式 \begin{align} \Delta\phi (\boldsymbol{x}) = 0 \end{align} の一般解を求めます. まず,Laplace方程式の解法は何次元でも大体一緒なので一般のd次元の場合について証明します. いま,変数分離解の一般解が与えられれば,変数が分離されていない一般解はその線形結合で表されるので, 変数分離解を \begin{align} \phi (\boldsymbol{x}) &= \prod _{j=1}^dX_i(x_j) \end{align} と書くことにすると, \begin{align} \Delta\phi (x) &= \Delta\prod _{j=1}^dX_i(x_j) \\ &= \sum _{i=1}^d\frac{\partial ^2}{\partial x_i^2}\prod _{j=1}^dX_j(x_j) \\ &= \sum _{i=1}^d\frac{\prod _{j=1}^dX_j(x_j)}{X_i(x_i)}\frac{d^2X_i(x_i)}{dx_i^2} \end{align} が成り立つので,Poisson方程式は \begin{align} \sum _{i=1}^d\frac{\prod _{j=1}^dX_j(x_j)}{X_i(x_i)}\frac{d^2X_i(x_i)}{dx_i^2} &= 0 \end{align} と表すことができます. よってこの両辺を\phi (\boldsymbol{x}) = \prod _{j=1}^dX_j(x_j)で割ってやると, \begin{align} \sum _{i=1}^d\frac{1}{X_i(x_i)}\frac{d^2X_i(x_i)}{dx_i^2} &= 0 \end{align} が得られます. ここでこの式の右辺がゼロで,左辺が各変数独立に動かせることから, 左辺の各項はそれぞれ定数で和がゼロでなければならないことが分かります. そこで各項を定数\alpha _iとすると,次が成り立ちます: \begin{align} \frac{1}{X_i(x_i)}\frac{d^2X_i(x_i)}{dx_i^2} &= \alpha _i, \\ \alpha _1 + \alpha _2 + \cdots + \alpha _d &= 0 \end{align} この微分方程式は解けます. 実際, \begin{align} (D^2 - \alpha _i)X_i(x_i) &= 0 \end{align} より, \begin{align} X_i(x_i) &= A_i e^{\sqrt{\alpha _i}x_i} + B_i e^{-\sqrt{\alpha _i}x_i} + C_i x_i + D_i \end{align} と表せます. ただし,\alpha _i = 0の解も含めておきました. ここで\alpha _iが正であるか負であるかは境界条件次第なので, \sqrt{\alpha _i}が実数である保証はありません. よって複素数k_iによってk_i := \sqrt{\alpha _i}と書けば,Laplace方程式の解\phi (\boldsymbol{x})は \begin{align} X_i(x_i) &= A_i e^{k_ix_i} + B_i e^{-k_ix_i} + C_i x_i + D_i, \\ \sum _{i=1}^d{k_i}^2 &= 0, \\ \phi (\boldsymbol{x}) &= \prod _{j=1}^dX_i(x_j), \end{align} と書けることが分かります. ただし,k_i虚数のときはX_i(x_i)三角関数で表しておいた方が自然かもしれません.


ゲーム制作ランキング

にほんブログ村 ゲームブログ ゲーム制作へ
にほんブログ村