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

LAPACK(線形代数パッケージ)は、方程式の線形セットの解、線形最小二乗、固有値問題、特異値分解など、数値線形代数タスク用のサブルーチンの一般的に使用されるライブラリです。LAPACKルーチンは、fortran、C、親戚、およびその他のさまざまな言語で使用できます。

3
希薄で非常に悪条件なシステムの解決
私はAx = bを解こうとしています。ここで、Aは複雑で、スパースで、非対称で、非常に悪条件(条件番号〜1E + 20)の正方形または長方形の行列です。LAPACKのZGELSSでシステムを正確に解くことができました。しかし、私のシステムの自由度が高くなると、スパース性が活用されないため、ZGELSSを使用してPCでシステムを解くのに長い時間がかかります。最近、同じシステムでSuperLU(Harwell-Boeingストレージを使用)を試しましたが、条件番号> 1E + 12で結果が不正確でした(これがピボットの数値的な問題かどうかはわかりません)。 すでに開発されたソルバーを使用する傾向があります。私が言及したシステムをすばやく(つまり、スパース性を活用して)確実に(条件数を考慮して)解決できる堅牢なソルバーはありますか?

1
LAPACKは3重対角システムをどのように解決しますか?その理由は?
私のプロジェクトでは、タイムステップごとに2つの3重対角行列を解く必要があるため、それらに対して優れたソルバーを使用することが重要です。私は独自の実装を行いましたが、ウィキペディアに記載されている古典的な方法で実装しました。その後、代わりにLapackを使用してみましたが、驚いたことに遅くなりました! さて、Lapackの内部では、LU分解による解法を実行しているように見えますが、なぜそうなるよりも複雑ではないのでしょうか。 さらに、nr.comの「Numerical Recipes」の本で、システムを再帰的に小さな三重対角問題に分割するアルゴリズムを見つけました。それは有望に見えた。他にグッズはありますか? 更新:問題のサイズは約1000x1000です。私はGotoBLASを使用しましたが、Lapack 3.1.1ライブラリも提供します。問題は対称的ではありません。私は一般的な三重対角行列にLapackルーチンを使用しました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.