線形連立方程式の解は、最初のいくつかの変数についてのみ近似できますか?


15

私はmが大きいサイズmxmの線形方程式系を持っています。ただし、私が興味を持っている変数は、最初のn個の変数です(nはmと比べて小さい)。システム全体を解くことなく、最初のm値の解を近似できる方法はありますか?もしそうなら、この近似は完全な線形システムを解くよりも速いでしょうか?


2
強制関数も最初のn個の変数に制限されている場合を除きます。もしそうなら、あなたはSchur補体を形成することができますが、それはおそらく密です。元の演算子がまばらである場合、それは価値がないかもしれません。
ジャックポールソン

1
マトリックスの右下隅からガウス消去を使用できると思います。最初の数個の要素のみを考慮し、途中で停止した場合、これは通常のガウス消去よりも約2倍高速になります。反復法と比較する方法がわかりません。
ダン

4
@OscarB:いいえ。Cramerのルールは、浮動小数点演算の残虐性です。本格的な計算に使用されることを聞いたことはありません。また、要因の複雑さ回避するにはかなりの量の考慮が必要です。
ジャックポールソン

1
@Paul:ほとんどのモデル次数削減は、大規模なODEまたはDAEシステムのコンテキストで使用されます。削減方法論は、PDEの離散化から生じるODEまたはDAEシステムによって動機付けられる場合があります。純粋な代数方程式で使用されるモデル削減を見たことはありません。(お持ちの場合は、モデル削減方法に関する論文を執筆しており、それを見ることに非常に興味があるので、参考文献を送ってください。)必要に応じて、モデル削減がどのように見えるかをスケッチできます微分代数方程式系の縮退したケースとしての代数方程式。
ジェフオックスベリー

1
@JackPoulson-コメントを回答として要約しても構いませんか?私はそれが最も正しい解決策だと思うし、コメントで失いたくはない。
アロンアーマディア

回答:


13

他の人が指摘したように、これは直接ソルバーで行うのは困難です。ただし、反復ソルバーを使用するのはそれほど難しくありません。この目的のために、ほとんどの反復ソルバーは何らかの方法でエラーを最小化することに注意してください。多くの場合、このノルムは行列自体によって誘導されますが、l2ベクトルノルムでもある場合があります。ただし、必ずしもそうである必要はありません。エラー(または残差)を最小化するノルムを選択できます。たとえば、1で重要なコンポーネントを計量するノルムを選択できます。他のすべては1e-12で、たとえば (1e-24)N i = 6 x 2 i および対応するスカラー積。次に、このノルムとスカラー積に関して反復ソルバーのすべてのステップを記述します。他のベクトル要素よりも重要なベクトル要素に注目する反復ソルバーが得られます。||x||2=i=15xi2+i=6Nxi2

もちろん、問題は、すべてのコンポーネントの重量を等しくするノルム/スカラー製品よりも少ない反復回数で済むかどうかです。しかし、実際にはそうである必要があります。最初の5つのベクトル要素のみを気にするとしましょう。次に、エラーを記述する5x5システムに必要なのは5回の反復であるため、1e12の係数でエラーを減らすために最大5回の反復が必要です。これは証明ではありませんが、ノルム(上記の1e-12)の重みが線形システムを反復的に解く許容値よりも小さい場合、実際にははるかに少ない反復回数で逃げるべきだと確信しています。 。


2
うーん、良い点。いくつかの自由度のみを解決しようとすることの効果について多少心配しているので、実際の例を見ることに興味があります。残差は小さいかもしれませんが、おそらくエラーの基準はまだかなり大きいでしょう(ほとんどの演算子を事実上無視するために)。
ジャックポールソン

直観的には、これは非常に小さなシステムのコンポーネントがL2(または測定するエラーを理解する基準)の意味で答えを本当に支配している場合にのみ機能するようです。...そうでなければ、私はジャックの懸念が有効であると思いますが、私は間違いなくも、この数値の証拠を見ることに興味がある
アロンAhmadia

残差ではなく、エラーを最小化する方法をとる必要があります。MinErrは良い出発点になると思います。
ウルフギャングバンガース

@WolfgangBangerth:私はMINERRに精通していません:これが主な参照ですか?
ジャックポールソン

1
不正確になるため、それでも十分ではありません。この重み付けを使用して、いくつかのコンポーネントを正確に取得することはできません。
マットネプリー

17

Schur補数の形成

行列を次の形式に並べ替えて分割したと仮定します。

A=(A11A12A21A22),

なるように関心の自由のあなたの程度が含まれており、よりもはるかに小さいA 11、そして一つはシューア補数を形成することができますA22A11

S22:=A22A21A111A12,

部分的に右向きのLU分解または明示的な式のいずれかを使用して、を次の意味で理解できます。S22

S22x=y(A11A12A21A22)(x)=(0y),

ここで、はソリューションの「関心のない」部分を表します。したがって、Schur補数S 22の自由度がゼロ以外の右辺であれば、それらの自由度に対応する解の部分を取得するためにS 22に対して解くだけで済みます。S22S22

非構造化高密度ケースの計算の複雑さ

設定の高さANの高さA 22は、計算するための標準的な方法S 22は、第一因子であるL 11 U 11= A 11(レッツは、今の旋回無視する)略で2 / 3 N n 3作業、次に形成NAnA22S22L11U11:=A112/3(Nn)3

S22:=A22(A21U111)(L111A12)=A22A21A111A12

作業が必要な2つの三角形の解を使用し、2 n 2N n )の作業でA 22への更新を実行します。n(Nn)2A222n2(Nn)

したがって、総仕事は、おおよそである。場合nは非常に小さく、N - N Nコストはおおよそであると見ることができるように、2 / 3 N 3完全分解のコストです。2/3(Nn)3+2n(Nn)2+2n2(Nn)nNnN2/3N3

利点は、同じ方程式系で解くべき右側の数が非常に多い場合、を何度も再利用できる可能性があることです。各解は2 n 2の作業しか必要としません。(2 N 2ではなく)S 22が因数分解される場合。S222n22N2S22

(一般的な)スパースケースの計算の複雑さ

ある種の有限差分または有限要素近似からスパースシステムが発生した場合、スパースダイレクトソルバーはほぼ確実に構造の一部を活用できます。2Dシステムを用いて解決することができる作業及びO N ログN 3Dシステムはで解決できるが、貯蔵O N 2作業及びO N 4 / 3ストレージ。因数分解されたシステムは、ストレージ要件と同じ作業量で解決できます。O(N3/2)O(NlogN)O(N2)O(N4/3)

計算の複雑さを育てるのポイントは、その、もしあるで2次元システムがある場合、Schur補数はおそらく密になるため、因数分解されたSchur補数を与えられた場合の解の複雑さはOn2=ONになり、対数因子が欠けているだけでなく、完全な解が得られますシステム!3Dには、必要ONの代わりに作業ON 4 / 3nNO(n2)=O(N)O(N)O(N4/3)

したがって、n = √の場合は、、複数の次元で作業していて、多くの右辺を解く必要がある場合にのみ、大幅な節約になります。n=N


1
これは、シュール補数法の優れた要約であり、それを使用することが計算上効率的である場合です!
ポール

6

モデル削減アプローチ

ポールが尋ねたので、この問題で投影ベースのモデル削減方法を使用するとどうなるかを説明します。RPで表されるPの範囲に線形システムA x = bの解が含まれ、次元kを持つプロジェクター考え出すことができます。ここで、kは未知の数です線形システムで解決したい。PPR(P)Ax=bkk

特異値分解により、次のパーティション化された行列が生成されます。P

P=[V][diag(1k)000][WT].

星によって隠された行列は、他の事柄(誤差の推定など)にとって重要ですが、今のところは、余分な詳細の処理は避けます。それに続く

P=VWT

フルランク分解です。P

基本的に、システムを解決します

PAx=Pb

なぜなら、WにはW T V = Iという特性もあるからです。両側乗算P A X = PとBとによってW TとせるYが = V Xの近似であるXの収率VWWTV=IPAx=PbWTy=Vx^x

WTAx^=WTb.

解くためのx、それはでプリマルチプライ、V、あなたは持っているのyを、あなたのための近似のxx^Vyx

Schur補数アプローチがおそらく優れている理由

まず第一に、どういうわけかを選ぶ必要があります。A x = bの解がRP)にある場合、y = xであり、yは近似ではありません。そうでない場合は、yxとなり、近似誤差が生じます。このアプローチは、あなたが言及したすべての構造を実際に活用したいわけではありません。Pを選択して、その範囲が計算するxの座標の標準単位ベースになる場合、yの対応する座標には誤差があります。どのように選びたいかは明確ではありませんPAx=bR(P)y=xyyxPxy。あなたのSVD使用することができ Aを、例えば、選択し Pを第一の生成物であることが K単数形のベクトル左 Aと第一の随伴 k個の右特異ベクトル Aを特異ベクトルは、の順に配置されていると仮定すると、特異値。このプロジェクタの選択は、 Aで適切な直交分解を実行することと同等であり、近似解のL 2エラーを最小化します。PAPkAkAA2

近似誤差を導入することに加えて、このアプローチは、より小さなシステムの線形解の上に3つの余分な行列乗算とおよびWを計算するために必要な作業も導入します同じ線形システムをたくさん解いて、右側を変更するだけで、Pがそれらすべてのシステムの「良い」射影行列である場合を除き、これらの追加コストはおそらく、システムを解くよりも削減されたシステムを解くのに費用がかかります元のシステム。VWP

欠点は、JackPoulsonのアプローチとよく似ていますが、言及した構造を十分に活用していない点が異なります。


4

長い答えは...一種です。

一番右の列が解きたい変数になるように、方程式系を再配置できます。k

ステップ1:ガウス消去法を実行して、マトリックスが上三角になるようにします。ステップ2:興味のある最初の(最後の)変数のみを逆代入して解くk

これにより、最後の変数を逆置換で解かなければならないという計算の複雑さが軽減されます。nがあなたが言うほど大きい場合、それは価値があるでしょう。ステップ1では、かなりの量の作業を行う必要があることに注意してください。nkn

また、逆置換を実行する順序を制限すると、マトリックスの形式が制限される可能あり(列を交換する能力が失われる)、条件の悪いシステムにつながる可能性があることに注意してくださいそれについて確認してください-心に留めておいてください。


ガウス消去には作業が必要ですが、後方置換にはO n 2のみが必要です。したがって、nが大きくなると、三角形の解析に費やされる時間の割合はゼロになります。O(n3)O(n2)n
ジャックポールソン

これが、答えが「yes」ではなく「sort of」である理由です=)
drjrm3

この方法で実行できることは理にかなっています...ただし、ガウス消去法の計算の大部分は前方消去フェーズにあり、切り捨てられた後方置換フェーズにもかかわらずO(n ^ 3)の複雑さをもたらします。私は...速い方法があった望んでいた
ポール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.