固有関数の可視化
3Dラプラス(Laplace)演算子を定義する.
In[1]:=
![Click for copyable input](assets.ja/visualize-eigenfunctions/In_35.png)
\[ScriptCapitalL] = -Laplacian[u[x, y, z], {x, y, z}];
同次ディリクレ(Dirichlet)境界条件を指定する.
In[2]:=
![Click for copyable input](assets.ja/visualize-eigenfunctions/In_36.png)
\[ScriptCapitalB] = DirichletCondition[u[x, y, z] == 0, True];
球体内の最小固有値と固有関数を求める.
In[3]:=
![Click for copyable input](assets.ja/visualize-eigenfunctions/In_37.png)
\[CapitalOmega] = Ball[{0, 0, 0}, 2];
{vals, funs} =
DEigensystem[{\[ScriptCapitalL], \[ScriptCapitalB]},
u[x, y, z], {x, y, z} \[Element] \[CapitalOmega], 2];
In[4]:=
![Click for copyable input](assets.ja/visualize-eigenfunctions/In_38.png)
funs
Out[4]=
![](assets.ja/visualize-eigenfunctions/O_16.png)
3D密度プロットを使って各固有関数をプロットする.
In[5]:=
![Click for copyable input](assets.ja/visualize-eigenfunctions/In_39.png)
Table[DensityPlot3D[
Evaluate[N[f]], {x, y, z} \[Element] \[CapitalOmega],
PlotTheme -> "NoAxes", PlotLegends -> Placed[Automatic, Below]], {f,
funs}]
Out[5]=
![](assets.ja/visualize-eigenfunctions/O_17.png)
座標平面を使って密度をプロットする:
In[6]:=
![Click for copyable input](assets.ja/visualize-eigenfunctions/In_40.png)
Table[SliceDensityPlot3D[
Evaluate[N[f]], {x, y, z} \[Element] \[CapitalOmega],
PlotLegends -> Placed[Automatic, Below]], {f, funs}]
Out[6]=
![](assets.ja/visualize-eigenfunctions/O_18.png)