私はmが大きいサイズmxmの線形方程式系を持っています。ただし、私が興味を持っている変数は、最初のn個の変数です(nはmと比べて小さい)。システム全体を解くことなく、最初のm値の解を近似できる方法はありますか?もしそうなら、この近似は完全な線形システムを解くよりも速いでしょうか?
私はmが大きいサイズmxmの線形方程式系を持っています。ただし、私が興味を持っている変数は、最初のn個の変数です(nはmと比べて小さい)。システム全体を解くことなく、最初のm値の解を近似できる方法はありますか?もしそうなら、この近似は完全な線形システムを解くよりも速いでしょうか?
回答:
他の人が指摘したように、これは直接ソルバーで行うのは困難です。ただし、反復ソルバーを使用するのはそれほど難しくありません。この目的のために、ほとんどの反復ソルバーは何らかの方法でエラーを最小化することに注意してください。多くの場合、このノルムは行列自体によって誘導されますが、l2ベクトルノルムでもある場合があります。ただし、必ずしもそうである必要はありません。エラー(または残差)を最小化するノルムを選択できます。たとえば、1で重要なコンポーネントを計量するノルムを選択できます。他のすべては1e-12で、たとえば (1e-24) ∑ N i = 6 x 2 i および対応するスカラー積。次に、このノルムとスカラー積に関して反復ソルバーのすべてのステップを記述します。他のベクトル要素よりも重要なベクトル要素に注目する反復ソルバーが得られます。
もちろん、問題は、すべてのコンポーネントの重量を等しくするノルム/スカラー製品よりも少ない反復回数で済むかどうかです。しかし、実際にはそうである必要があります。最初の5つのベクトル要素のみを気にするとしましょう。次に、エラーを記述する5x5システムに必要なのは5回の反復であるため、1e12の係数でエラーを減らすために最大5回の反復が必要です。これは証明ではありませんが、ノルム(上記の1e-12)の重みが線形システムを反復的に解く許容値よりも小さい場合、実際にははるかに少ない反復回数で逃げるべきだと確信しています。 。
行列を次の形式に並べ替えて分割したと仮定します。
なるように関心の自由のあなたの程度が含まれており、よりもはるかに小さいA 11、そして一つはシューア補数を形成することができます
部分的に右向きのLU分解または明示的な式のいずれかを使用して、を次の意味で理解できます。
ここで、はソリューションの「関心のない」部分を表します。したがって、Schur補数S 22の自由度がゼロ以外の右辺であれば、それらの自由度に対応する解の部分を取得するためにS 22に対して解くだけで済みます。
設定の高さAとNの高さA 22は、計算するための標準的な方法S 22は、第一因子であるL 11 U 11:= A 11(レッツは、今の旋回無視する)略で2 / 3 (N − n )3作業、次に形成
作業が必要な2つの三角形の解を使用し、2 n 2(N − n )の作業でA 22への更新を実行します。
したがって、総仕事は、おおよそである。場合nは非常に小さく、N - N ≈ Nコストはおおよそであると見ることができるように、2 / 3 N 3完全分解のコストです。
利点は、同じ方程式系で解くべき右側の数が非常に多い場合、を何度も再利用できる可能性があることです。各解は2 n 2の作業しか必要としません。(2 N 2ではなく)S 22が因数分解される場合。
ある種の有限差分または有限要素近似からスパースシステムが発生した場合、スパースダイレクトソルバーはほぼ確実に構造の一部を活用できます。2Dシステムを用いて解決することができる作業及びO (N ログN ) 3Dシステムはで解決できるが、貯蔵O (N 2)作業及びO (N 4 / 3)ストレージ。因数分解されたシステムは、ストレージ要件と同じ作業量で解決できます。
計算の複雑さを育てるのポイントは、その、もしあるで2次元システムがある場合、Schur補数はおそらく密になるため、因数分解されたSchur補数を与えられた場合の解の複雑さはO(n2)=O(N)になり、対数因子が欠けているだけでなく、完全な解が得られますシステム!3Dには、必要O(N)の代わりに作業O(N 4 / 3)。
したがって、n = √の場合は、、複数の次元で作業していて、多くの右辺を解く必要がある場合にのみ、大幅な節約になります。
ポールが尋ねたので、この問題で投影ベースのモデル削減方法を使用するとどうなるかを説明します。R(P)で表されるPの範囲に線形システムA x = bの解が含まれ、次元kを持つプロジェクター考え出すことができます。ここで、kは未知の数です線形システムで解決したい。
特異値分解により、次のパーティション化された行列が生成されます。
星によって隠された行列は、他の事柄(誤差の推定など)にとって重要ですが、今のところは、余分な詳細の処理は避けます。それに続く
フルランク分解です。
基本的に、システムを解決します
なぜなら、とWにはW T V = Iという特性もあるからです。両側乗算P A X = PとBとによってW TとせるYが = V Xの近似であるXの収率
解くためのx、それはでプリマルチプライ、V、あなたは持っているのyを、あなたのための近似のx。
まず第一に、どういうわけかを選ぶ必要があります。A x = bの解がR(P)にある場合、y = xであり、yは近似ではありません。そうでない場合は、y ≠ xとなり、近似誤差が生じます。このアプローチは、あなたが言及したすべての構造を実際に活用したいわけではありません。Pを選択して、その範囲が計算するxの座標の標準単位ベースになる場合、yの対応する座標には誤差があります。どのように選びたいかは明確ではありません。あなたのSVD使用することができ Aを、例えば、選択し Pを第一の生成物であることが K単数形のベクトル左 Aと第一の随伴 k個の右特異ベクトル Aを特異ベクトルは、の順に配置されていると仮定すると、特異値。このプロジェクタの選択は、 Aで適切な直交分解を実行することと同等であり、近似解のL 2エラーを最小化します。
近似誤差を導入することに加えて、このアプローチは、より小さなシステムの線形解の上に3つの余分な行列乗算とおよびWを計算するために必要な作業も導入します。同じ線形システムをたくさん解いて、右側を変更するだけで、Pがそれらすべてのシステムの「良い」射影行列である場合を除き、これらの追加コストはおそらく、システムを解くよりも削減されたシステムを解くのに費用がかかります元のシステム。
欠点は、JackPoulsonのアプローチとよく似ていますが、言及した構造を十分に活用していない点が異なります。
長い答えは...一種です。
一番右の列が解きたい変数になるように、方程式系を再配置できます。
ステップ1:ガウス消去法を実行して、マトリックスが上三角になるようにします。ステップ2:興味のある最初の(最後の)変数のみを逆代入して解く
これにより、最後の変数を逆置換で解かなければならないという計算の複雑さが軽減されます。nがあなたが言うほど大きい場合、それは価値があるでしょう。ステップ1では、かなりの量の作業を行う必要があることに注意してください。
また、逆置換を実行する順序を制限すると、マトリックスの形式が制限される可能性があり(列を交換する能力が失われる)、条件の悪いシステムにつながる可能性があることに注意してくださいそれについて確認してください-心に留めておいてください。