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,}は,をほぼ満足する.
  • 同次DirichletConditionNeumannValueあるいは一般化されたロビン(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)

[0,π]についてのラプラス演算子の4つの最小固有値と固有関数を求める:

固有関数を可視化する:

辺が固定された円形膜についての最初の6つの固有関数を計算する:

固有関数を可視化する:

シュレディンガー(Schrödinger)演算子をパラメータ ,ポテンシャル で指定する:

最も小さい5つの固有値と固有関数を求める:

によってスケールされ,それぞれの固有値によってオフセットされた固有関数を可視化する:

スコープ  (13)

1D  (7)

ラプラス演算子を指定する:

同次ディリクレ境界条件を指定する:

4つの最小固有値と固有関数を求める:

固有関数を可視化する:

ラプラス演算子を指定する:

同次ノイマン境界条件を指定する:

小さい方から4つの固有値と固有関数を求める:

これは次に等しい:

同次ディリクレ境界条件を持つ過渡方程式を指定する:

小さい方から4つの固有値と固有関数を求める:

これは次に等しい:

周期境界条件があるラプラシアンの 5つの固有値と固有ベクトルを求める:

固有値を期待される解析的固有値と比較する:

固有関数を可視化する:

境界が周期的であることを調べる:

PeriodicBoundaryConditionを使った同等の式:

同次ディリクレ境界条件を持つ波動方程式を指定する:

4つの最小固有値と固有関数を求める:

一般化された波動方程式の固有系を計算する:

同等の常微分方程式の一次系の厳密解と比較する:

リウヴィル演算子を指定する:

4つの最小固有値と固有関数を計算する:

この固有値を解析的固有値と比較する:

固有関数を可視化する:

解析的固有関数を可視化する:

2D  (6)

ラプラス演算子を指定する:

4つの最小固有値と固有関数を求める:

固有関数を可視化する:

ラプラス演算子を指定する:

単位円板上で演算子の4つの最小固有値と固有関数を求める:

固有関数を可視化する:

同次ディリクレ境界条件を持つラプラス演算子を指定する:

矩形上で9つの最小固有値と固有関数を求める:

固有関数を可視化する:

同次ディリクレ境界条件を持つ波動方程式を指定する:

円板内で4つの最小固有値と固有関数を求める:

固有関数を可視化する:

波動方程式の固有値は角振動の平方根である:

常微分方程式の同等の一階の系の厳密解と比較する:

部分的に制約された固有系問題を解く:

固有関数を可視化する:

オプション  (9)

Method  (9)

"Eigensystem"  (4)

離散化された偏微分方程式はEigensystemまたはEigenvaluesで解くことができる.以下で,NDEigensystemで使えるEigensystemの全オプションについて説明する.

固有系を解くために使うメソッドを指定する:

この場合,デフォルトメソッドの方が速い:

デフォルトのメソッドとして,アーノルディ法が使われる:

アーノルディ法は小規模の問題にしか使用できない直接法より数値的には効率的だが安定度では劣っている.

アーノルディ法の最大反復回数を指定する:

FEAST法はある帯域内で固有値と固有ベクトルを求めるのに適している.EigensystemについてのFEAST法で,帯域内でSturmLiouville演算子の2つの固有値と固有関数を求める:

SturmLiouville理論によると固有値は他と異なっていなくてはならないが,この例では縮退に近い:

ほぼ縮退固有関数:

区間の端点はFEASTが固有値を求めた区間には含まれていない.より詳しい情報は,Eigensystemの関数ページをご覧いただきたい.

"Shift"オプションの使い方は, 以下の例で説明されている

"Interpolation"  (1)

デフォルトで,固有関数は領域の外側の点についてはIndeterminateを与える:

デフォルト動作を修正し,警告メッセージが出ないようにする:

領域の外側の2番目の固有関数を評価する:

解の一部を可視化する:

固有関数を変更し,領域の外側の外挿された値を返すようにする:

領域の外側の2番目の固有関数を評価する:

"PDEDiscretization"  (1)

もとになる計算についてのMaxCellMeasureを変更する:

厳密固有値は0,1,4,9,であるので,固有値誤差は以下の通りである:

メッシュをより細かくすると離散化誤差が低減される:

"VectorNormalization"  (3)

計算された固有値の正規化なしの計算:

デフォルトでは,系の行列についての正規化が行われる:

関数は固有値を補間することで構築される:

NDEigensystemは,一般化された固有系として解かれる減衰(質量)と剛性系の行列を作る.固有ベクトルの正規化は,正規化された固有ベクトルを減衰(質量)行列に適用することで恒等行列が形成されるように形成される:

正規化された固有ベクトルを剛性行列に適用すると,対角上に固有値が作成される:

デフォルトの正規化では,固有関数のL2ノルムがほぼ1になる:

ディレクレ条件に関連付けられた自由度は固有系の計算の前に取り除かれ,0が解の後に再挿入される.この結果として制約問題について,正規化されたベクトルと固有ベクトルの次元が異なることになる:

固有系に計算中に2つのディリクレ条件が取り除かれる:

固有系の計算後に,関数に0値が再度導入される:

アプリケーション  (10)

音響  (1)

ミニクーパー車内の横断面の近似のために,音響固有値と固有関数を計算する.横断面の画像をインポートする:

マスクツールを使って境界のグラフィックスを作る:

グラフィックスを離散化する:

横断面の6つの固有値と固有関数を計算する:

車の横断面の第2固有関数を可視化する:

この可視化は音響的に硬い壁を仮定した定常波を数量的に示す.大きい振幅は圧力の大きい変化,したがって,電気的に増幅していない大きい音に相当する.

構造力学  (2)

平面応力PDEを指定する:

制約固有値と固有関数を計算する:

固有関数のスケールされたノルムを可視化する:

この可視化は領域の主変形を示す.

鋼の平面応力モデルの変数とパラメータを指定する:

長さ10m,高さ0.7mの光線の第1固有値と固有関数を計算する:

固有値から共振振動数を計算する:

オイラー・ベルヌーイ光線理論を解析的に使って第1共振振動数を計算する:

差の半分が理論的アプローチによる,結果の差を比較する:

固有関数の展開  (4)

固有関数の展開を使って固定された紐を弾いた場合の解を構築する:

初期条件1-TemplateBox[{{{2, x}, -, 1}}, Abs]を固有関数の線形結合として近似する:

における時間導関数が0であると仮定して,係数と固有値を振動数として使って時間依存の解を構築する:

非零の係数を持った各関数を含む近似のアニメーションを作る:

NDSolveで求まる時間依存解と比較する:

差のプロットを作成する:

円形ドラム上のさまざまな調和振動数を比較する:

最初のものの1サイクル上で,各固有関数についての時間進化を示す:

グラフィックスのサイズを小さくする:

固有値が大きい固有関数の方が速く振動することに注意:

固有関数の線形結合の時間進化を示す:

これは,初期条件が一定している波動方程式の解である:

有限固有進化と完全解の差を示す:

固有関数進化を使って領域上の熱方程式の解を得る:

上のラプラシアンについての最初の20個の固有値と固有関数を計算する:

を初期条件とする:

積分の計算については,離散化領域 Ωdを使った方が,より速くより一貫性がある:

は同次境界条件を満足しないので,がこの条件を満足するように,離散領域 Ωd上の定常状態の解 を求める:

について,固有関数展開の係数を計算する:

熱方程式の解の近似は以下の通りである:

時間依存解を計算する:

差のプロットを作る:

L型領域における固有関数:

最初の6つの固有関数:

最初の固有関数:

固有値と固有関数の区間  (1)

区間内の固有値と固有関数を求める:

求まった固有関数を可視化する:

量子力学  (2)

シュレディンガー演算子をパラメータ ,ポテンシャル で指定する:

細分化されたメッシュ上で小さい方から10個の固有値と固有関数を求める:

でスケールされ,それぞれの固有値でオフセットされた固有関数を可視化する:

この例では,固有値の交差回避現象を示す.そのために,まず2つの円板の領域差を計算する.外側の円板は半径 で中心である.内側の円板の半径は である.内側の円板の中心は中心位置から始まってゆっくりと右側に移動する.ヘルパー関数を書く:

固有値とベクトルを計算する:

のさまざまな位置で幾何のラプラシアンの固有値を可視化する:

曲線の中には交差するものも,交差を回避するものもある点に注意のこと.

特殊解の固有値を可視化する:

特性と関係  (3)

デフォルトの正規化では,固有関数 uiをほぼ満足する:

固有値が複素数の場合は,共役を使う必要がある:

波動方程式について,近似した固有系と解析的に計算された固有系を比較する.

0から までの間の波動方程式 について,小さい方から6つの固有値と固有関数を求める:

時間について一次に変換された偏微分方程式系の固有値は,行列 の固有値に相当する. の固有値である(境界では である):

高次元時間依存偏微分方程式と一次偏微分方程式系の関係を示す.

0から までの波動方程式 の小さい方から6つの固有値と固有関数を求める:

固有関数のモジュール,実部,虚部をプロットする:

一次偏微分方程式系として与えられた波動方程式の小さい方から6つの固有値と固有関数を求める:

固有関数のモジュール,実部,虚部をプロットする:

二次系の固有値と一次方程式系の固有値は等しい:

与えられた固有値について二次の系について返された固有関数は,系によって返された一次固有関数と等しい:

与えられた固有値について,二次の系について返された固有関数の 倍は系について返された第2固有関数に等しい:

系についての固有関数は正規化されるので,である:

二次の時間依存の系についての固有関数は系と同じ方法で正規化され,int_Omega{u_i,v_i,...}.{u_i,v_i,...}=(1+lambda_i^2)int_OmegaTemplateBox[{{u, _, i}}, Abs]^2=1なので int_OmegaTemplateBox[{{u, _, i}}, Abs]^2=1/((1+lambda_i^2))である:

考えられる問題  (15)

計算された固有系は離散化の粒度に依存する:

厳密固有値は0,1,4,9,なので,固有値誤差は以下の通りである:

-TemplateBox[{{(, {u,  , x}, )}, {{, x, }}}, Laplacian]=lambda (u x)における離散化誤差を可視化する:

メッシュをより細かくすると離散化誤差が小さくなる:

における離散化誤差を可視化する:

領域の離散化粒度は,求まる固有値と固有関数の数に影響する:

細かい離散化と粗い離散化の間の固有値と固有関数間の差は,モードの数とともに大きくなる傾向がある:

非同次ディリクレ条件のある固有系は解くことができない:

同次ディリクレ条件のある固有系は解くことがきる:

非同次ノイマン値のある固有系は解くことができない:

同次ノイマン値のある固有系は解くことができる:

同じ結果:

一般化された非同次ノイマン値のある固有系は解くことができない:

一般化された同次ノイマン値のある固有系は解くことができる:

演算子と可能な境界条件は定常で線形でなければならない:

初期条件は0に設定され,無視される:

同じ結果:

固有値および固有関数は,その大きさによって並べられる.ポテンシャル関数を定義する:

負の固有値に注意:

固有値をその実部によって得る:

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]}の順序で与えることもできる:

このトピックに関する詳細情報については有限要素法の使用上のヒントを参照されたい.

方程式を変換する際は注意が必要である.同時ディリクレ条件があるSturmLiouvill問題 について考えてみよう.固有値の解析解は以下で与えられる:

における数値的安定性の問題を避けるためには,時間的記述を使うことが最もよい:

これを,以下の問題の立式と比較する:

NDEigensystemは,場合によっては,一対の偏微分方式に対しては予期されないと思われる結果を返すことがある:

この問題を回避する方法の一つに,"InterpolationOrder"オプションを使って従属変数の順序を指定することが考えられる:

"Direct"メソッドを使うこともできる:

このテーマについては有限要素法の使用上のヒントも参照されたい.

固有関数は解析解の負の倍数になることがある.

固有解を持つ固有値問題についてのパラメータを定義する:

固有系を解く:

解析固有関数と数値固有関数を比較すると,乗法:の違いがある:

固有関数については全体的な符号の保証はない.固有関数に() を掛けたものもやはり固有関数である.事実,固有関数に任意の定数を掛けたものも固有関数である.NDEigensystemは,特性と関係のセクションの説明のように,単位ノルムを持つ固有関数を選ぶ.

現在のところ,NDEigensystemは指標付きの変数を扱うことができない:

個の従属変数を持つリストを構築する:

NIntegrateで固有関数上で積分するときは,記号領域を使うとうまくいかないかもしれない:

結果は正しいが,数値固有系の計算に使われたメッシュを使った方が効率的かもしれない:

おもしろい例題  (1)

以下の量子力学の例で,井戸の数が増えた場合に,エネルギー帯に許された無限空間極限形式内で,固有関数 がいかにクラスタ化する傾向にあるかを調べる.境界条件の影響は構造が大きくなるにつれて低下する.エネルギー帯の中では固有関数 (互いに直交していなければならない)が非常に異なるのに対し,固有関数の平方は同じであることに注意のこと.これは,単一の井戸の近似固有関数からの重ね合せを形成するさまざまな可能性を示唆している:

Wolfram Research (2015), NDEigensystem, Wolfram言語関数, https://reference.wolfram.com/language/ref/NDEigensystem.html (2023年に更新).

テキスト

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

BibTeX

@misc{reference.wolfram_2024_ndeigensystem, author="Wolfram Research", title="{NDEigensystem}", year="2023", howpublished="\url{https://reference.wolfram.com/language/ref/NDEigensystem.html}", note=[Accessed: 14-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_ndeigensystem, organization={Wolfram Research}, title={NDEigensystem}, year={2023}, url={https://reference.wolfram.com/language/ref/NDEigensystem.html}, note=[Accessed: 14-November-2024 ]}