Possion方程式と静電ポテンシャル① 準備編【Pythonと物理#10】

Python

今回のターゲット:Poisson方程式

 前回は1次元熱拡散方程式を計算してみました。

 今回は電磁気学を扱ってみようかと思います。

電磁気学の中でも2次元のPoisson方程式を解いて、静電ポテンシャル$\phi\left(x, y\right)$を計算してみます。

 勉強の際に参考にさせていただいた書籍もご紹介させていただきます。具体的なPythonのコードも載っており、大変勉強になる1冊です。なお、あくまでも参考にさせていただいている形であり、本記事の内容において数学的・物理学的な誤りがある場合は全て当記事の筆者に責任があります。

Poisson方程式

 Poisson方程式とは、電磁気学の静電ポテンシャルやニュートンの重力ポテンシャルなど、ベクトル場を記述する2階の偏微分方程式です。本記事では具体例として、静電ポテンシャルを扱ってみます。

$$
\left(\cfrac{\partial{^2}}{\partial{x^2}} + \cfrac{\partial{^2}}{\partial{y^2}} \right)\phi\left(x, y\right) = – \cfrac{1}{\epsilon_{0}}\rho\left(x, y\right)\tag{1}
$$

ここで、$\phi$($x$, $y$)は静電ポテンシャル [V]、$\epsilon_{0}$は真空中の誘電率 [F/m]、$\rho$($x$, $y$)は電荷密度 [C/m$^3$]です。

今回は簡単のために$\epsilon_{0}$は1として数値計算※してみます。

※本来であれば無次元化して数値計算をしてあげる方が丁寧です。

2階微分の中心差分公式

 Poisson方程式を数値計算するにあたり、2階微分の中心差分公式を復習しておきます。下の記事も併せてご覧いただければと思います。

2階微分の中心差分公式は、以下のようになります。

$$
\left(\cfrac{\partial{^{2}f}}{\partial{x^2}}\right)_{i} = \cfrac{f\left(x_{i+1}\right) -2f\left(x_{i+1}\right) + f\left(x_{i – 1}\right)}{h^2} + O\left(h^{2}\right) \tag{2}
$$

この式に対応するように行列形式で表すと、以下のような形になります。

$$
\boldsymbol{Df} = \cfrac{1}{h^2}
\begin{pmatrix}
-2 & 1 & 0 & \dots & 0 & 1\\
1 & -2 & 1 & \dots & \dots & 0\\
0 & 1 & -2 & \dots & \dots & \vdots\\
\vdots & \vdots & \ddots & \ddots & \ddots & 0\\
0 & \vdots & \ddots & \ddots & \ddots & 1 \\
1 & 0 & \dots & 0 & 1 & -2 \\
\end{pmatrix}
\boldsymbol{f}\tag{3}
$$

ここで、$\boldsymbol{f}$ を以下の式で表します。

$$
\boldsymbol{f} =
\begin{pmatrix}
f\left(x_{0}\right)\\
f\left(x_{1}\right)\\
\vdots\\
\vdots\\
f\left(x_{N-2}\right)\\
f\left(x_{N-1}\right)\\
\end{pmatrix}\tag{4}
$$

今回は上式の2階微分の中心差分公式 $\boldsymbol{D}$ を使って、Poisson方程式を数値計算してみます。

Possion方程式の数値計算方法

それではPoisson方程式の数値計算方法を勉強します。もう一度、Poisson方程式をみてみましょう。ここでは$\epsilon_{0}$は 1 としています。

$$
\left(\cfrac{\partial{^2}}{\partial{x^2}} + \cfrac{\partial{^2}}{\partial{y^2}} \right)\phi\left(x, y\right) = – \rho\left(x, y\right)\tag{5}
$$

この式を離散化して、2階微分の中心差分公式 $\boldsymbol{D}$ を使って表せば以下の式のようになります。

$$
\boldsymbol{D}\boldsymbol{\phi}= – \boldsymbol{\rho}\tag{6}
$$

ここで、 $boldsymbol{\phi}$ は離散化して下記のような式になっています。

$$
\boldsymbol{\phi} =
\begin{pmatrix}
\phi\left(x_{0}\right)\\
\phi\left(x_{1}\right)\\
\vdots\\
\vdots\\
\phi\left(x_{N-2}\right)\\
\phi\left(x_{N-1}\right)\\
\end{pmatrix}\tag{7}
$$

また、 $boldsymbol{\rho}$ も離散化して下記のような式になっています。

$$
\boldsymbol{\rho} =
\begin{pmatrix}
\rho\left(x_{0}\right)\\
\rho\left(x_{1}\right)\\
\vdots\\
\vdots\\
\rho\left(x_{N-2}\right)\\
\rho\left(x_{N-1}\right)\\
\end{pmatrix}\tag{8}
$$

よくよく式(6)を見ると、N個の成分をもつ連立方程式になっています。したがって、ポワソン方程式を解いて静電ポテンシャル$\phi$を見るためには、連立方程式(6)を解けば良いということになるのですね。

最後に

 今回は、Poisson方程式の具体例として、静電ポテンシャルを求めるための前知識のようなものを勉強してみました。正直、半分程度理解できたかなといった感じですね。

次回はいよいよPythonで実装して数値計算をやってみたいと思います。

今回はこの辺で終わりたいと思います。

他の記事もぜひご覧ください!

コメント

タイトルとURLをコピーしました