タグ付けされた質問 「linear-solver」

線形連立方程式を解く方法を参照します。

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
巨大な高密度線形システムを解く?
次の線形システムを反復法で効率的に解くことに希望はありますか? A∈Rn×n,x∈Rn,b∈Rn, with n>106A∈Rn×n,x∈Rn,b∈Rn, with n>106A \in \mathbb{R}^{n \times n}, x \in \mathbb{R}^n, b \in \mathbb{R}^n \text{, with } n > 10^6 Ax=bAx=bAx=b と Δ - 6 6 1A=(Δ−K)A=(Δ−K) A=(\Delta - K) 、ここでは、ラプラス演算子の離散化から生じる、いくつかの対角線を持つ非常に疎な行列です。メインの対角線にはがあり、他のつの対角線にはがあります。ΔΔ\Delta−6−6-6666111 R n × nKKKは、完全に1 で構成される完全な行列です。Rn×nRn×n\mathbb{R}^{n \times n} 解くと、ガウスザイデルのような反復法で問題なく動作します。これは、スパースの斜めに支配的な行列だからです。問題は、多数の効率的に解決することはほとんど不可能であると思われますが、の構造を利用して、おそらくそれを解決するためのトリックはありますか?A=ΔA=ΔA=\DeltaA=(Δ−K)A=(Δ−K)A=(\Delta - K)nnnKKK 編集:のような何かをするだろう Δxk+1=b+KxkΔxk+1=b+Kxk\Delta x^{k+1} = b + Kx^{k} …

1
ヌル空間突出
システム所与A ∈ R 、N × Nが場合ヤコビ反復がソルバとして使用する場合には、私は、それを読んで、この方法は、収束しないであろうbはのヌル空間内の非ゼロ成分有し、Aが。それでは、Aのヌル空間にまたがるゼロ以外の成分がbにある場合、Jacobiメソッドは非収束であると正式に述べることができますか?ヌル空間に直交する解の一部は収束するため、数学的にどのように形式化できるのでしょうか。A x = b 、Ax=b,Ax=b,A ∈ Rn × nA∈Rn×nA\in\mathbb{R}^{n\times n}bbbAAAbbbAAA したがって、各反復からヌル空間を射影することにより、収束(または?)します。AAA ......... Iは、特にの場合に興味Lが零空間対称ラプラシアン行列は、ベクトルによって張られる1 N = [ 1 ... 1 ] T ∈ R N、および有するゼロ成分中ののヌル空間、ここではセンタリング行列です。それは、各ヤコビ反復がヌル空間を投影することを意味しますか、つまり、各反復は中央に配置されますLx=b,Lx=b,Lx=b,LLL1n=[1…1]T∈Rn1n=[1…1]T∈Rn1_n=[1\dots 1]^T\in\mathbb{R}^nL J b = b 、J = I − 1bbbLLLJb=b,Jb=b,Jb=b, LJ=I−1n1n1TnJ=I−1n1n1nTJ=I-\frac{1}{n}1_n1_n^TLLL?私はこれを求めているので、Jacobiの反復からヌル空間を投影する必要はないでしょう(言い換えれば、反復を中央に配置するために)。LLL


1
MATLABで、linsolveとmldivideの違いは何ですか?
MATLABでは、linsolveとmldivideの両方が、決定、過決定、過小決定のすべてのケースで線形方程式系を解くために使用されます。 彼らの文書を読んで、私はそれらの間にどんな違いがあるのだろうと思っていましたか?3つのケースで、行列分解と三角化のアルゴリズムとほとんど同じですか? Aにoptsのプロパティがある場合、linsolveはmldivideより高速です。これは、linsolveがAが指定されたプロパティを持っていることを確認するテストを実行しないためです。 mldivideは、Aに特別なプロパティがあるかどうかを確認するために同じテストを実行しますか?またはmldivideは、特別なプロパティなしでそれらを一般的なケースとして扱うだけですか? ありがとう!

2
正の半定行列に対して収束する反復線形ソルバーはどれですか?
私はこの問題のために収束することが保証されている古典的な線形ソルバー(例えば、ガウス・ザイデル、ヤコビ、SOR)のどちらかを知りたいAが正である半明確な、そしてもちろんのB ∈ I M (A )A x=bAx=bAx=bああAB ∈ I M (A)b∈私メートル(あ)b \in im(A) (通知は半確定であり、確定ではありません)ああA

2
GPGPU計算用の線形ソルバーの選択(OpenCL)
私はすでに、共役勾配法を使用してGPUおよびOpenCLを使用して熱伝達の問題を解決するための有限要素法の実用的なソリューションを開発しました。この方法の主な欠点は、メモリの需要が高いことです。さらに、グラフィックカードの場合、メモリは非常に限られていることがよくあります。2つのオプションが表示されます。 サブドメインを作成し、メッシュの一部をホストメモリと交換する 多正面法を使用する 特定のアーキテクチャを考慮する必要があります。スワッピングは非常に高価になる可能性があります。CGメソッドはGPGPUコンピューティングのコンテキストで人気がありますが、CGとマルチフロンタルメソッド(GPGPUの場合)の比較は見つかりません。マルチフロンタル法はCGよりも高速ですか?これは一般的な質問ですが、実際にはまだ実装に依存しています。

5
大規模なスパース対称(正定ではない)システムのソルバーの最良の選択
私は現在、いくつかの特定のアルゴリズムによって生成された非常に大規模な対称(ただし、正定値ではない)システムの解決に取り組んでいます。これらの行列には、並列解法に使用できる素晴らしいブロックスパース性があります。しかし、直接アプローチ(Multi-frontalなど)と反復アプローチ(前処理されたGMRESまたはMINRES)のどちらを使用するべきかを判断できません。私のすべての研究は、反復ソルバー(7つの内部反復のかなり高速な収束でさえ)が、MATLABの直接の '\'演算子に勝てないことを示しています。しかし、理論的には、直接法の方がコストがかかると考えられています。これはどうですか?そのような場合の最新の文書や紙はありますか?GMRESのような柔軟な反復ソルバーと同じくらい効率的な直接法を使用して、並列システムでブロックスパース性を使用できますか?

4
小さな正方行列(10x10)の最速線形システム解決
小さな行列(10x10)(小さな行列と呼ばれることもある)の線形システム解法の地獄を最適化することに非常に興味があります。これのための準備ができた解決策はありますか?行列は非特異と見なすことができます。 このソルバーは、Intel CPUでマイクロ秒単位で1 000 000回を超えて実行されます。コンピューターゲームで使用される最適化のレベルについて話しています。アセンブリやアーキテクチャ固有でコーディングしたり、精度や信頼性のトレードオフの削減を検討したり、浮動小数点ハックを使用したりしても(-ffast-mathコンパイルフラグを使用します。問題ありません)。ソルブは約20%の時間失敗することさえあります! EigenのpartialPivLuは私の現在のベンチマークで最速で、-O3と優れたコンパイラーで最適化するとLAPACKよりも優れています。しかし今、私はカスタム線形ソルバーを手作りする段階にあります。何かアドバイスをいただければ幸いです。私は自分のソリューションをオープンソースにし、出版物などで重要な洞察を認めます。 関連:ブロック対角行列を使用して線形システムを解く速度 何百万もの行列を反転する最も速い方法は何ですか? https://stackoverflow.com/q/50909385/1489510

4
高速陽解、、低条件数
3x3線形実問題、高速な(最適と言えるでしょうか)陽解法を探しています。 A ∈ R 3 × 3、B ∈ R 3A x = bAx=b\mathbf{A}\mathbf{x} = \mathbf{b}A ∈ R3 × 3、B ∈ R3A∈R3×3,b∈R3\mathbf{A} \in \mathbf{R}^{3 \times 3}, \mathbf{b} \in \mathbf{R}^{3} 行列は一般的ですが、条件数が1に近い単位行列に近いです。は、実際には約5桁の精度のセンサー測定であるため、数値のために数桁を失ってもかまわない問題。bあA\mathbf{A}bb\mathbf{b} もちろん、任意の数の方法に基づいて明示的な解決策を見つけることは難しくありませんが、FLOPSカウントに関して最適であることが示されているものがあれば、それは理想的です(結局のところ、問題全体) FPレジスタに収まる可能性があります!)。 (はい、このルーチンは頻繁に呼び出されます。私はすでに低ぶら下がり果物を取り除いており、これは私のプロファイリングリストの次です...)

3
SORがGauss-Seidelよりも高速であるような問題ですか?
Gauss-Seidelの代わりにSORを実行する価値があるかどうかを言う簡単な経験則はありますか?(そして、再帰パラメータを推定するための可能な方法)ωω\omega 私は単にマトリックスを見ることを意味しますか、またはマトリックスが表す特定の問題の知識? 私はこの質問の答えを読んでいました: 逐次過剰緩和(SOR)法を最適化するためのヒューリスティックはありますか? しかし、それは少し洗練されすぎています。マトリックス(またはそれが表す問題)を見ているだけで、スペクトル半径を推定する簡単なヒューリスティックがわかりません。 もっと単純なものが欲しい-SORがより速く収束する行列(問題)のほんの数例。 私はこの王の行列に対してSORで実験した: 恒等行列であり、及び sはそのようunifrom分布から乱数であります。最適ながパラメーターある程度依存すると考えていました。I C I J = C ∀ I 、J R I J | R i j | &lt; R ω C 、RA = I+ C+ Rあ=私+C+RA = I + C + R 私私IC私はj= cC私j=cC_{ij}=c ∀ I 、J∀私、j \forall i,jR私はjR私jR_{ij}|R私j| &lt; r|R私j|&lt;r|R_{ij}|<rωω\omegac 、rc、rc,r …

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

1
Ax = bを解くための行列なしのメソッドの前提条件
Ax = bを解く必要がありますが、それがスパースであっても、問題の行列係数を格納するとメモリが大量に消費されることを理解しています。そこで、同じ係数が行列に多く現れるので、独自のプライベートストレージスキームを使用できるように(そして、キャッシュ効率を向上させることができる)、行列なしの方法の使用を検討しています。 そのような行列のない線形演算子のインターフェイスを提供するpetscを見ていますが、私が実際に理解していないのは、前処理がどのようにpetscによって計算されるかです。それとも、独自のプレコンディショナーを用意する必要がありますか もしそうなら、行列のない線形演算子から前提条件子を構築するために利用可能なツールまたはレシピはありますか? 私の演算子に関する詳細情報:非対称であり、斜めに支配的ではありませんが、いくつかの側波帯が支配的です(ただし、斜めにバンド化されていません)

3
軽量/インストールなしのCまたはC ++ベースの密線形代数ソルバーの推奨事項
私のプログラミングのほとんどは、私自身が使用するためのCの1回限りの研究コードです。協力者以外にコードを配布したことがありません。私は科学ジャーナルで公開しているアルゴリズムを開発しました。記事のオンラインサプリメントでソースコードとおそらく実行可能コードを提供したいと思います。同僚から、C ++(ack!)で記述する必要があり、小さな密な線形システムを解く必要があるアルゴリズムを一般化するように依頼されました。アルゴリズムのユーザーベースを取得することに成功した場合、その原因の1つは、それを使用するためのエントリバーが低い(床の上など)ためです。潜在的なユーザーは、コードを使用するためにライブラリなどをインストールしません。コードを完全に独立させ、ライセンスの影響を受けないようにしたい。Golubとvan Loanから何かを取り出して独自のソルバーを作成するだけかもしれませんが、誰かがすでに書いたバニラソルバーを使用したい場合は、そこに使用します。提案を歓迎します。ありがとう!

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