NDEigensystem
NDEigensystem[ℒ[u[x,y,…]],u,{x,y,…}∈Ω,n]
線形微分演算子 ℒ について,領域 Ω 上の n 個の最小固有値と固有関数を与える.
NDEigensystem[{ℒ1[u[x,y,…],v[x,y,…],…],ℒ2[u[x,y,…],v[x,y,…],…],…},{u,v,…},{x,y,…}∈Ω,n]
連結微分演算子{op1,op2,…}について,領域 Ω 上の固有値と固有関数を与える.
NDEigensystem[eqns,{u,…},t,{x,y,…}∈Ω,n]
時間依存連結微分方程式 eqns の解 u,…についての空間変数{x,y,…}中の固有値と固有関数を与える.
詳細とオプション
- NDEigensystemは,固有モードソルバとしても知られるものであるが,領域上で微分方程式の固有値と固有ベクトルを求める数値固有ソルバである.
- NDEigensystemは,固有値 λiと固有関数 uiのリスト{{λ1,…,λn},{u1,…,un}}を,結合系の場合は{{λ1,…,λn},{{u1,v1,…},…,{un,vn,…}}を与える.
- 方程式 eqns は,NDSolveにおけるように指定される.
- 微分演算子 ℒ についての固有値と固有関数のペア{λi,ui}は ℒ[u[x,y,…]]==λi ui[x,y,…]を満足する.
- 連結微分演算子についての固有値と固有関数のペア{λi,{ui,vi,…}}は以下を満足する.
-
ℒ1[ui[x,y,…],vi[x,y,…],…]λi ui[x,y,…] ℒ2[ui[x,y,…],vi[x,y,…],…]==λi vi[x,y,…] ⋮ - 固有値は絶対値の昇順に並べられる.
- デフォルトの正規化では,NDEigensystem[ℒ[u[x,y,…]],u,{x,y,…}∈Ω,n]で計算された固有関数 ui は,をほぼ満足する. »
- デフォルトの正規化では,連結微分演算子についての固有関数{ui,vi,…}は,をほぼ満足する.
- 同次DirichletCondition,NeumannValueあるいは一般化されたロビン(Robin)の各境界条件が含まれることがある. »
- PeriodicBoundaryConditionが含まれるかもしれない.
- 境界∂Ωの側で境界条件が指定されていない場合は,ノイマンの0条件を指定することに等しい.
- 時間依存一次方程式の系については,時間導関数D[u[t,x,y,…],t], D[v[t,x,y,…],t],…は事実上 λ u[x,y,…], λ v[x,y,…],…で置換される.
- 一次より高い次数の時間依存方程式の系は,中間媒介変数 ut=u*,=…, vt=v*,=…, … の連結一次系に約される.関数 u, v, …のみが返される. »
- NDEigensystemは,解のさまざまなステージを制御することができるMethodオプションを取る.Method->{s1->m1,s2->m2,…}のとき,ステージ siはメソッド miで制御される.ステージが明示的に与えられていない場合,NDEigensystemはどのステージを与えらえたメソッドに適用するかを自動的に決定しようとする.
- 可能な解のステージ
-
"PDEDiscretization" 空間演算子の離散化 "Eigensystem" 離散化された系からの固有系の計算 "Interpolation" 補間関数の作成 "VectorNormalization" 固有関数の構築に使われる固有ベクトルの正規化
例題
すべて開くすべて閉じる例 (3)
スコープ (13)
1D (7)
周期境界条件があるラプラシアンの 5つの固有値と固有ベクトルを求める:
PeriodicBoundaryConditionを使った同等の式:
2D (6)
オプション (9)
Method (9)
"Eigensystem" (4)
離散化された偏微分方程式はEigensystemまたはEigenvaluesで解くことができる.以下で,NDEigensystemで使えるEigensystemの全オプションについて説明する.
アーノルディ法は小規模の問題にしか使用できない直接法より数値的には効率的だが安定度では劣っている.
FEAST法はある帯域内で固有値と固有ベクトルを求めるのに適している.EigensystemについてのFEAST法で,帯域内でSturm–Liouville演算子の2つの固有値と固有関数を求める:
Sturm–Liouville理論によると固有値は他と異なっていなくてはならないが,この例では縮退に近い:
区間の端点はFEASTが固有値を求めた区間には含まれていない.より詳しい情報は,Eigensystemの関数ページをご覧いただきたい.
"Shift"オプションの使い方は, 以下の例で説明されている.
"Interpolation" (1)
"PDEDiscretization" (1)
"VectorNormalization" (3)
NDEigensystemは,一般化された固有系として解かれる減衰(質量)と剛性系の行列を作る.固有ベクトルの正規化は,正規化された固有ベクトルを減衰(質量)行列に適用することで恒等行列が形成されるように形成される:
正規化された固有ベクトルを剛性行列に適用すると,対角上に固有値が作成される:
デフォルトの正規化では,固有関数のL2ノルムがほぼ1になる:
ディレクレ条件に関連付けられた自由度は固有系の計算の前に取り除かれ,0が解の後に再挿入される.この結果として制約問題について,正規化されたベクトルと固有ベクトルの次元が異なることになる:
アプリケーション (10)
音響 (1)
構造力学 (2)
固有関数の展開 (4)
固有関数の展開を使って固定された紐を弾いた場合の解を構築する:
における時間導関数が0であると仮定して,係数と固有値を振動数として使って時間依存の解を構築する:
NDSolveで求まる時間依存解と比較する:
最初のものの1サイクル上で,各固有関数についての時間進化を示す:
上のラプラシアンについての最初の20個の固有値と固有関数を計算する:
積分の計算については,離散化領域 Ωdを使った方が,より速くより一貫性がある:
特性と関係 (3)
波動方程式について,近似した固有系と解析的に計算された固有系を比較する.
0から までの間の波動方程式 について,小さい方から6つの固有値と固有関数を求める:
時間について一次に変換された偏微分方程式系の固有値は,行列 の固有値に相当する.は の固有値である(境界では である):
高次元時間依存偏微分方程式と一次偏微分方程式系の関係を示す.
0から までの波動方程式 の小さい方から6つの固有値と固有関数を求める:
一次偏微分方程式系として与えられた波動方程式の小さい方から6つの固有値と固有関数を求める:
与えられた固有値について二次の系について返された固有関数は,系によって返された一次固有関数と等しい:
考えられる問題 (15)
厳密固有値は0,1,4,9,…なので,固有値誤差は以下の通りである:
細かい離散化と粗い離散化の間の固有値と固有関数間の差は,モードの数とともに大きくなる傾向がある:
一般化された非同次ノイマン値のある固有系は解くことができない:
固有値および固有関数は,その大きさによって並べられる.ポテンシャル関数を定義する:
NDEigensystemは,与えられた微分演算子について,最も小さい 個の固有値と対応する固有関数を求める.特に,例えば,多くの量子力学的問題におけるように,最も負の固有値を見付けることに興味がある場合は,最も負の 個の固有値がNDEigensystemがデフォルトで返す 個の固有値と一致しない可能性がある.これを理解するために以下の例について考える.
例として,水素原子についての無次元動径シュレディンガー(Schrödinger)方程式を取り上げる.ここでは,エネルギー単位はリュードベリ(Rydberg)で,長さはボーア(Bohr)半径で計測される.
固有値問題を について解く.近似の品質を向上させるために細分化メッシュを使用する:
これらはに最も近い固有値に対応する.しかし,望ましい順序ではない.例として,この問題の解析的固有値を見ることにする.
この固有値の下限が,例えば であると事前に分かっていれば,固有値問題 を として再定義できる.言い換えるなら,次のように新たな固有値問題とすることができる.I,ただし かつ .は についての負の下限なので,このシフトによって が正の値のみを取ることが保証される.したがって,最も小さい 個の の値は最も負である の 個の値に対応する.このように, について計算して を得ることができる.これを行う最も簡単な方法は"Shift"オプションを使うことである.
これらは最も負である固有値に対応する.しかし,順序は逆順であり,固有状態をソートし直す必要がある.
SortByを使って固有状態をソートする:
NDEigensystemは偏微分方程式を時間依存の偏微分方程式に変換する.この変換は一意的ではなく,結合偏微分方程式については思いがけなく見える結果になることがある:
まず,与えられた方程式が時間依存偏微分方程式の系に書き換えられる.これは,時間依存導関数項と時間変数 を演算子に加えそれらを0に設定することで実行される.前の例では,与えられた従属変数{v[x],u[x]}から時間系{D[v[t,x],t]==- u[t,x]-Laplacian[u[t,x],{x}],D[u[t,x],t]==-v[t,x]-Laplacian[v[t,x],{x}]}が生成される.
従属変数{v[x],u[x]}の順序のために,最初の方程式は v[t,x]についての時間微分項を,2番目の方程式は u[t,x]についての時間微分項を持つ.これは,おそらく意図した方程式ではない.
方程式系を一意的に指定するためには,時間的記述を使うのが最もよい:
あるいは,従属変数を{u[x],v[x]}の順序で与えることもできる:
このトピックに関する詳細情報については有限要素法の使用上のヒントを参照されたい.
方程式を変換する際は注意が必要である.同時ディリクレ条件があるSturm–Liouvill問題 について考えてみよう.固有値の解析解は以下で与えられる:
における数値的安定性の問題を避けるためには,時間的記述を使うことが最もよい:
NDEigensystemは,場合によっては,一対の偏微分方式に対しては予期されないと思われる結果を返すことがある:
この問題を回避する方法の一つに,"InterpolationOrder"オプションを使って従属変数の順序を指定することが考えられる:
このテーマについては有限要素法の使用上のヒントも参照されたい.
解析固有関数と数値固有関数を比較すると,乗法:の違いがある:
固有関数については全体的な符号の保証はない.固有関数に() を掛けたものもやはり固有関数である.事実,固有関数に任意の定数を掛けたものも固有関数である.NDEigensystemは,特性と関係のセクションの説明のように,単位ノルムを持つ固有関数を選ぶ.
現在のところ,NDEigensystemは指標付きの変数を扱うことができない:
NIntegrateで固有関数上で積分するときは,記号領域を使うとうまくいかないかもしれない:
テキスト
Wolfram Research (2015), NDEigensystem, Wolfram言語関数, https://reference.wolfram.com/language/ref/NDEigensystem.html (2023年に更新).
CMS
Wolfram Language. 2015. "NDEigensystem." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2023. https://reference.wolfram.com/language/ref/NDEigensystem.html.
APA
Wolfram Language. (2015). NDEigensystem. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/NDEigensystem.html