タグ付けされた質問 「eigensystem」

演算子の固有ベクトルは、演算子の作用が固有値と呼ばれる定数による乗算と同じになるようなベクトルです。演算子の固有システムは、そのようなすべての固有ベクトルとそれに関連する固有値のセットです。

2
行列の対角化-小さな行列要素の省略
対角化の前に行列から小さな行列要素を省略することによって導入されるエラーに上限を設定できる定理があるかどうか疑問に思っていました。 我々はその行列の要素から及ぶ大行列、持っていると仮定しましょう111に10−1510−1510^{-15}。行列を対角化する前に、より小さいすべての行列要素10−1010−1010^{-10}を000に設定すると、固有値と固有ベクトルの誤差はどのくらいになりますか? この実装は依存していますか?

2
与えられたベクトルの固有ベクトル成分を計算する
エルミートスパース演算子Mの固有空間に分解できるベクトルVVVあります。MMM V=∑ivim^iV=∑ivim^iV = \sum_i v_i \hat{m}_i 最大の(大きさ)に対応する(固有ベクトル自体)を見つける方法はありますか?m^im^i\hat{m}_iviviv_i 基本的に、事前にわからないの固有ベクトルを含む、合計の最大の数項が必要です。MMM 具体的には、最大の対応するの固有ベクトルを同時に見つけたい 、最大のを見つける。最初にスペクトル全体を見つけることはできません。MMM|vi||vi||v_i|viviv_iMMM 私が考えていたいくつかの可能性: 「Wieldant's Deflation」の反対を使用して、マトリックスを「膨張」させることができます。 M1=M+σ[Σivim^i]VH=M+σVVHM1=M+σ[Σivim^i]VH=M+σVVHM_1 = M + \sigma \left[ \Sigma_i v_i \hat{m}_i \right] V^H = M + \sigma V V^H 異なるの固有値は、シフトされます。固有ベクトルは変化しないため、と抽出できると思います。問題は、外積が密であることです。m^im^i\hat{m}_iλi+σ|vi|2λi+σ|vi|2\lambda_i + \sigma |v_i|^2σσ\sigmaviviv_iVVV 別の可能性: べき乗法(収束までにベクトル掛け続ける)は、最大の固有値を持つの成分を見つけます。この方法の欠点は、の大きさを制御できないため、すべてのコンポーネントを見つけ、最大のものを見つけることです。MMMVVVVVVviviv_i 最大のコンポーネントのみに収束するようにこれを制御する方法はありますか?


2
パラメトリック行列の固有ベクトルの連続性
私は次元の行列H(→ K)ベクターパラメータに応じ→ Kを。んnnH^(k⃗ )H^(k→)\mathrm{\hat{H}}(\vec{k})k⃗ k→\vec{k} ここで、固有値ルーチンは固有値を特定の順序で返しません(通常は並べ替えられます)が、固有値を→ kの滑らかな関数としてトレースしたいと思います。固有値は特定の順序で返されていないので、ちょうどトレースE Iを、いくつかの特定のインデックスのためのI ∈ { 1 、。。、n }は、以下の図に示すように、滑らかではない線のセットを返しますEiEiE_ik⃗ k→\vec{k}EiEiE_ii∈{1,..,n}i∈{1,..,n}i\in\{1,..,n\} k⃗ k→\vec{k}k⃗ +dk⃗ k→+dk→\vec{k}+d\vec{k}vi(k⃗ )⋅vj(k⃗ +dk⃗ )∼δpipjvi(k→)⋅vj(k→+dk→)∼δpipjv_i(\vec{k})\cdot v_j(\vec{k}+d\vec{k})\sim \delta_{p_i p_j}pi,pj∈π({1,...,n})pi,pj∈π({1,...,n})p_i, p_j\in \pi(\{1,...,n\})ππ\pi つまり、固有ベクトルの連続性を追跡します。 ただし、数値ルーチンではいくつかの問題が発生します。私が使用する点の特定の小さなサブセットでは、近くの点にあるいくつかの固有ベクトルがほとんど正規直交ではありません。私の最初の疑いは、それらの固有ベクトルが縮退した固有値に対応していることでしたが、常にそうであるとは限りません。 dk⃗ dk→d\vec{k} そのようなことが起こるのを許されていますか?または、数値ルーチンが連続固有ベクトルを返すことを保証することは可能ですか?私が使用するルーチンはnumpy.linalg.eighで、これはLAPACKのzheevdのインターフェースです。 (あなたの中の物理学者は私がバンド構造について話していることを認識するでしょう)

1
SLEPcを使用した線形安定性解析から大規模な非エルミート一般化固有値問題を解く
一般化された行列問題があります。線形安定性解析問題のスペクトル法からのです。私の行列Bは対角で正の半定値です。Aは非エルミートで複雑です。Ax=λBxAx=λBxA x = \lambda B x 私の問題は、SLEPcの一般化された固有値ソルバーを使用すると、「LU分解のピボットがゼロ」というエラーが発生することです。以下の残りの部分は、問題の詳細とこれまでに試したものです。助けてくれてありがとう! 問題の詳細 行列は最大で約48000 x 48000になり、固有値を見つけたいと思います。私が興味を持っている固有値は、0 + 0iの近くに実数部が最も大きいものです。理想的には、それらが内部にある場合(つまり、スペクトル内の正の実部がより大きい他の固有値がある場合)でもそれらを見つけられるようにしたいです。ただし、すべての固有値が対象の固有値以外の実部<0である問題に対して機能させることができれば幸いです。 現時点では、scipy linalg.eigおよびsparse.eigs関数を使用しています。私の知る限り、これらはそれぞれLAPACKとARPACKを使用して重い作業を行います。私は、SLEPcライブラリを使用することで、より良いパフォーマンスを達成できるかどうかを確認することにしました。これが悪い決定であるならば、私に知らせてください! SLEPc固有値ソルバーでPETScを使用したいと思います。私は、チュートリアルの一部として提供されている例を使用してSLEPcを試しました。演習7(http://www.grycap.upv.es/slepc/handson/handson3.html)は、ファイルから行列AおよびBを読み取り、解を出力します。提供されたマトリックスを使用してこれを正常に動作させました。ただし、問題の小さいサイズのテストバージョン(6000x6000)に置き換えると、指定したコマンドライン引数に応じてさまざまなエラーが発生します。 私が抱えている主な問題は、「LU分解のピボットがゼロ」というエラーです。デフォルト設定を使用する場合。 これは、Bにゼロの行が含まれているという事実に関連していると思いますが、線形代数の私の理解はやや基本的です。これは本当ですか? petscのWebサイトで提案されているオプション、-pc_factor_shift_type NONZEROなどを設定しようとしましたが、これらのオプションが使用されなかったという追加の警告が表示されます これは前提条件の問題であると想定したので、-eps_targetを0.1に設定し、-st_type sinvertとshiftを指定した場合と指定しない場合の両方を試しました。それでも同じエラーが発生します。 次に、-st_pc_type jacobiとst_pc_type bjacobiを試しました。jacobiは実行されますが、固有値は生成されません。ブロックjacobiはLU分解を実行し、同じエラーを再度表示します。 デフォルトの方法はkrylov-schurなので、-eps_type gdおよび-eps_type jdオプションを使用して実験しました。残念ながら、これらはナンセンス固有値を生成するようですが、scipyでLAPACKを使用して解決すると、スペクトルにまったく表示されません。 私の行列の問題は特異ではないことを知っています。なぜなら、私はscipyを使用してそれを解くことができるからです。 これらすべての異なるソルバーの動作を理解するために、PETSCとSLEPCのマニュアル以外に読む必要がある本/ガイドを知っていますか? コマンドラインオプションがない場合の出力を以下に示します。 私の最初の投稿を読んでいただきありがとうございます。 よろしく、トビー SLEPcからのターミナル出力 tobymac:SLEPC toby $ mpiexec ./ex7 -f1 LHS-N7-M40-Re0.0-b0.1-Wi5.0-amp0.02.petsc -f2 RHS-N7-M40-Re0.0-b0.1- Wi5.0-amp0.02.petsc -eps_view ファイルに保存されている一般化された固有問題。 [0] PETSC ERROR:---------------------エラーメッセージ--------------------- --------------- …

1
パラメータに応じて継続的に固有空間基底
エルミート行列があり、xとyの 2つのパラメーターに依存しています。私は2つの近い点でそれを対角化するとき(X 1、Y 1)及び(X 2、Y 2)私は(二近い固有値取得ε 1及びε 2)と2つの対応する固有空間(S 1およびS 2と同じ寸法の)を。HH\mathbf{H}バツxxyyy(x1、y1)(x1,y1)(x_1,y_1)(x2、y2)(x2,y2)(x_2,y_2)ε1ε1\varepsilon_1ε2ε2\varepsilon_2S1S1S_1S2S2S_2 それらは同じ行列の固有値ではないことに注意してください。とH 2 = H(x 2、y 2)の 2つの異なる行列があります。H1=H(x1,y1)H1=H(x1,y1)\mathbf{H}_1=\mathbf{H}(x_1,y_1)H2=H(x2,y2)H2=H(x2,y2)\mathbf{H}_2=\mathbf{H}(x_2,y_2) ポイントのメッシュあり、補間を使用して任意のポイントで固有値と固有空間を見つけたいと考えています。問題は、行列が数値的に対角化されているため、S 1とS 2の基底が完全に独立していることです。たとえ(X 1、Y 1)及び(X 2、Y 2)に非常に近い基底ベクトルは非常に異なる成分を有することができるされています。(xi,yi)(xi,yi)(x_i,y_i)S1S1S_1S2S2S_2(x1,y1)(x1,y1)(x_1,y_1)(x2,y2)(x2,y2)(x_2,y_2) 補間には、とyに継続的に依存する基底が必要です。つまり、固有空間S 1とS 2に近いほど、基底ベクトルに近いはずです。xxxyyyS1S1S_1S2S2S_2 場合及びS 2は、次いで、3次元ユークリッド空間S2における基準を選択するための良い方法で平野である平野の交点である線を中心S1の基礎を回転させることです。複雑な多次元空間でこれに類似したものはありますか?S1S1S_1S2S2S_2

3
行列の最小固有ベクトルを計算する
matlab eigsは私に行列の最小固有ベクトルの悪い近似を与えているようです。 私はより正確ないくつかの遅い方法を使用できると思います... 私はラパルシアン行列(「fiedler」ベクトルとして知られている)の2番目に小さい固有ベクトルを見つけようとしています。もちろん、ラプラシアン行列の最小の固有ベクトルが定数ベクトルであることは知っています。 より正確な方法のための提案はありますか? PS上記のすべてにおいて、「最小の固有ベクトル」と言うとき、私は最小の大きさの固有値に関連付けられた固有ベクトルを意味します。


3
有限差分法による半円形領域のラプラシアン固有モード
半円形膜の固有モードの計算は、次の固有値問題に還元されます ∇2u = k2あなた、∇2u=k2u,\nabla^2u=k^2u\;, ここで、関心領域はおよびによって定義される半円です。φ ∈ [ 0 、π ]R ∈ [ 0 、1 ]r∈[0,1]r\in[0,1]φ ∈ [ 0 、π]φ∈[0,π]\varphi\in[0,\pi] ラプラシアンが次のように書かれている円筒座標で作業するのが適切です。 ∇2あなた = ∂2あなた∂r2+1r∂あなた∂r+ 1r2∂2あなた∂φ2。∇2u=∂2u∂r2+1r∂u∂r+1r2∂2u∂φ2.\nabla^2u=\frac{\partial^2u}{\partial r^2}+\frac{1}{r}\frac{\partial u}{\partial r}+\frac{1}{r^2}\frac{\partial^2 u}{\partial\varphi^2}. 境界条件は、半円の境界での値を固定します。ここで、です。u = 0あなたuuu = 0u=0u=0 まず、我々は、離散すると、と及び、。これは中央のメッシュです。、U 、I 、J = U (rはI、φ J)R I = (iは+ 1あなたuuあなた私はj= u (r私、φj)uij=u(ri,φj)u_{ij}=u(r_i,\varphi_j)φJ=(J+1r私= (i +12)hrri=(i+12)hrr_i=(i+\frac{1}{2})h_rI、J=0...N-1H、R=1/NHR=π/Nφj= (j +12)hφφj=(j+12)hφ\varphi_j=(j+\frac{1}{2})h_\varphi …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.