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

線形システムを解くための前提条件子の設計と実装に関する質問。

2
反復線形ソルバーが収束しないのはなぜですか?
KSP(PETScの線形ソルバーパッケージ)から事前に条件付けされたKrylovメソッドを使用して、偏微分方程式の離散化と線形化によって得られるようなスパース線形システムを解くと、何が問題になる可能性がありますか? 私の問題で何が問題になっているのかを判断するには、どのような手順を踏めばよいですか? 線形システムを正常かつ効率的に解決するために、どのような変更を加えることができますか?

3
特定の問題に対する適切な事前調整方法を検索するとき、どのガイドラインを使用する必要がありますか?
大型線形システムの解の反復法を使用して、それが前処理導入することがしばしば重要である、例えば、代わりに解決、ここで左前処理システムのために使用され。通常、必要であり、元のシステムのソリューションと比較して(はるかに)効率的なソリューションまたは計算リソース(メモリストレージなど)の削減の基礎を提供する必要があります(すなわち、場合)。ただし、前提条件を選択するには、どのガイドラインを使用する必要がありますか?特定の問題に対して、実務家はどのようにこれを行いますか?Ax=bAx=bAx=bM−1(Ax=b)M−1(Ax=b)M^{-1}(Ax=b)MMMM−1≈A−1M−1≈A−1M^{-1}\approx A^{-1}M=AM=AM=A

2
「二重前提条件」を行う方法はありますか
質問: あなたは対称正定値行列のための2つの異なった(因数分解)予備調整があると: A ≈ B T B 及び A ≈ C T C 、 因子の逆数をAAAA ≈BTBA≈BTBA \approx B^TBA ≈ CTC、A≈CTC、A \approx C^TC,B 、BT、C、CTB、BT、C、CTB, B^T, C, C^T容易にしているが適用します。 と両方 からの情報を使用して、またはいずれか単独よりも優れた前提条件を構築することはいつ可能ですか?C B CBBBCCCBBBCCC

1
多項式前提条件の現在の状態は何ですか?
多項式前提条件に何が起こったのだろうか。それらは数学的な観点からは比較的エレガントに見えるので興味がありますが、クリロフ法の調査で読んだ限り、それらは一般に前提条件として非常に貧弱です。Saadとvan der Hostの言葉で、「これらの技術に対する現在の関心は、ほとんど消え去りました」(ここ)。それにもかかわらず、最近ではマルチコアおよびGPU計算の使用が行われています。 誰も私に言うことができますか、むしろこれらの方法がどのコンテキストで生きているのか、そして現在の最先端の良い調査をどこで見つけることができますか?

1
オープンソースの逆ベースのマルチレベルILU実装はありますか?
マルチレベル逆ベースのILUプレコンディショナーのシリアルパフォーマンス、特に異種Helmholtzのシリアルパフォーマンスには非常に感銘を受けましたが、オープンソースの実装が見つからないことに驚きました。特に、ILUPACKはバイナリを学者が自由に利用できるようにしますが、ソースコードをリリースしているようには見えません。 誰も実装をオープンソース化していないというのは本当ですか?


2
krylovメソッドを別のkrylovメソッドで事前調整する
gmresやbicgstabのようなメソッドでは、別のkrylovメソッドを前提条件として使用すると魅力的です。結局のところ、それらは、マトリックスを使用しない方法および並列環境で簡単に実装できます。たとえば、1つのcoulは、gmresまたはkrylovメソッドのその他の組み合わせの事前調整子として、事前調整されていないbigcstabのいくつかの(たとえば〜5回)反復を使用します。私は文学ではそのようなアプローチにあまり言及していないので、あまり効果的ではないからだと思う。なぜそれが効率的でないのかを理解したいと思います。それが良い選択である場合はありますか? 私の研究では、並列(mpi)環境での3D楕円問題の解決に興味があります。

2
不定対称システム用のPETScのどの前提条件(およびソルバー)を使用する必要がありますか?
私のシステムは、ラグランジュ乗数を伴う対称FE問題です(たとえば、非圧縮ストークスの流れ)。 (ABBTC)(ABTBC)\begin{pmatrix}A & B^T \\ B & C\end{pmatrix} ここで、は典型的なケースです(ラグランジュ乗数が最後に現れるように方程式に番号が付けられていることを確認しました)。システムは非常に大規模です(+ 100k行)。C= 0C=0C = 0 この質問に対する答えを読んで、混合FE問題に使用できる適切な前提条件が存在するという印象を受けました。 PETScを使用して、MINRES(-ksp_type minres -pc_type none -mat_type sbaij)でシステムを解決できましたが、精度はそれほど高くありません(線形問題に対していくつかのニュートン反復が発生します)。前提条件とksp-solverの他の組み合わせは機能しないようです。 MINRESを使用するよりも速くこのシステムを解決するPETScのフラグの組み合わせはありますか?

2
拡張ラグランジアンの効率的な前提条件
私は非線形等式制約で非線形問題を解決したいのですが、よく知られているように、線形化されたシステムの条件数を損なうペナルティ正則化項を持つ拡張ラグランジアンを使用しています(各ニュートン反復で意味します) 。ペナルティ項が大きいほど、条件数は悪くなります。その特定のケースでこの悪い条件を取り除くための効率的な方法を誰かが知っていますか? 具体的には、一般的に冗長になる可能性のある多くの制約があるため、古典的な拡張ラグランジアンを使用しています。したがって、制約変数を主変数に盲目的に組み込むことは非常に便利です。KKTシステムで直接変数の削除または効率的な前提条件に基づいた他のより洗練されたアプローチを試しましたが、制約の冗長性のために、いくつかの問題があります。 変数に関する問題は、ラグランジュに従って、 L(U、λ ):= W(U)+ ρ λ Tu=[u1,⋯,un]u=[u1,⋯,un]\mathbf u =[u_1,\cdots,u_n]L(u,λ):=W(u)+ρλTc(u)+ρ2c2(u)L(u,λ):=W(u)+ρλTc(u)+ρ2c2(u)\mathcal L(\mathbf u,\lambda):= \mathcal W(\mathbf u) + \rho \lambda^T \,c(\mathbf u) + \frac{\rho}{2} c^2(\mathbf u) したがって、一般的に、各ニュートン反復の目標は、 With(制約のヘッセ行列を削除) という形式の問題を解決することです および b(\ mathbf u、\ rho):=-\ big(\ nabla _ {\ mathbf u} \ mathcal W(\ mathbf u)+(\ rho + \ lambda ^ …

2
マトリックスを使用しないメソッドのブラックボックス前提条件は存在しますか?
ヤコビアンフリーニュートンクリロフ(JFNK)メソッド、および一般的なクリロフメソッドは、行列ベクトル積の結果のみを明示的に保存または行列の構築を必要としないため、非常に便利です。実際にスパースシステムを形成する場合、多くの前提条件があります。 真のマトリックスフリー法には何が利用できますか?グーグルは、「マトリックス推定」への参照と、それが可能であることを示す他のいくつかを示します。これらの方法は一般的にどのように機能しますか?従来の前提条件と比較してどうですか?物理学ベースのマトリックスフリーの前提条件は進むべき道ですか?たとえば、PETScや他のパッケージなど、公に利用可能な方法はありますか?


1
ネストされた前提条件子のガイドライン
事前調整されたクリロフ法を使用して線形システムを解きたいが、前提条件子自体を適用することは、別の事前調整されたクリロフ法で行われる補助システムを解くことを含む状況を考慮してください。 極端な例として、内側のソルバを実行して、外側のソルバの各ステップ内で収束させることができます。 もう一方の極端では、内部ソルバをまったく実行できませんでしたが、代わりにそれを内部プレコンディショナに置き換えます。 途中のどこかで、一定の反復回数の後、または特定の許容誤差が達成された後に、内側のクリロフループを切り捨てることができます。 経験的に、私は最初の極端が優れている状況と、2番目の極端が優れているさまざまな状況(合計コストに関して)に遭遇しました。ただし、特定の状況で1つの戦略が他の戦略よりも優先される理由は明確にはわかりません。 これらの異なる戦略が望ましい場合についてのガイダンスまたは理論はありますか?

2
共役勾配がこの非対称前提条件子で機能するのはなぜですか?
で、この前スレッド対称予備調整組み合わせる以下乗法方法及びP 2対称システムのためのA 、X = Bが示唆された: P - 1つのコンボ:= P - 1 1 + P - 1 2(I - A P - 1 1)= P − 1 1 + P − 1 2 − P −P1P1P_1P2P2P_2あx = bあバツ=bAx=bP− 1コンボ:==P− 11+ P− 12(私− A P− 11)P− 11+ P− 12− P− 12A P− …

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
エントリがわからないときに、ほぼ対角行列の対角を抽出する
既にほぼ対角になっている対称マトリックスから対角を抽出するための良い方法は何ですか?マトリックス要素がない場合(ベクトルに適用する機能のみ)? さらに、(1)対角線を明示的に構築するためにn行n列の行列をn回適用すると、法外にコストがかかり、(2)対角線の小さな要素が大きな要素に加えて重要になります。 これは、(小規模なテストケースで)対角線を抽出するマトリックスの種類の例の画像です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.