SPD三重対角線形システムが与えられた場合、3つのインデックスをO(1)時間でリンクできるように事前計算できますか?


11

検討対称正定値三重対角線形システム ここでと。与えられた3個のインデックス我々は間、厳密式のみの行を想定した場合、とホールド、我々は、フォームの方程式を得るために、中間変数を排除することができます 場所。この式は、の値を「外部」の影響とは無関係に関連付けます(たとえば、に影響する制約が導入された場合)。A ∈ R N × N B ∈ R nは 0 ≤ I < J < K < N I kはuがxはIを + VのXのjは + W 、X 、K = C V > 0 、X jのX I、X K X 0

Ax=b
A∈Rn×nb∈Rn0≤i<j<k<nik
uxi+vxj+wxk=c
v>0xjxi,xkx0

質問:時間で線形システムを前処理して、のリンク式を時間で決定できるようにすることは可能ですか?O (n )(i 、j 、k )O (1 )Ax=bO(n)(i,j,k)O(1)

の対角線が2の場合、非対角線は、で、望ましい結果は離散化ポアソン方程式の解析結果です。残念ながら、基本的に異なる変数は異なるレベルの「スクリーニング」(局所的に厳密な正定性)を持つことができるため、一般的なSPD三重対角システムを三重対角構造を壊さずに定数係数ポアソン方程式に変換することはできません。たとえば、単純な対角スケーリングでは、 DOFの半分を削除できますが、残りの半分は削除できません。− 1 b = 0 x 2 n − 1 AA−1b=0x2n−1A

直観的には、この問題の解決には、スクリーニングの量を線形サイズの配列に蓄積し、何らかの形で「キャンセル」して特定のトリプルのリンク式に到達できるように、問題を配置する必要があります。

更新(より直感的):PDEに関して、1Dの離散化線形楕円問題があり、事前計算に費やして検索可能な何らかの「分析」ソリューションを生成できるかどうかを知りたいで私は、境界条件がどこにあるか異なりさせて頂く時、。O (1 )O(n)O(1)

回答:


2

変数間の結合が常に非縮退である場合にのみ機能する、多少不安定なソリューションを次に示します。簡単にするために、と仮定し。まず、事前計算のためのリンク式をのための、と言います、N (0 、I 、N - 1 )0 ≤ I < Nb=0n(0,i,n−1)0≤i<n

xi=aix0+bixn−1

ここで、与えられると、番目と番目のリンク方程式を結合し、を削除してi j x n − 1i<jijxn−1

bjxi=aibjx0+bibjxn−1bixj=ajbix0+bibjxn−1bjxi−bixj=(aibj−ajbi)x0xi=aibj−ajbibjx0+bibjxj

このプロセスをもう一度繰り返して、 givenを削除できます。残念ながら、付近、または一般に三重対角システムが独立したブロックに分離する場合、安定性が失われます。場合、これは問題ありませんが、小さいながらも正の値のブレークダウンが心配です。(i 、j 、k )b j = 0 b j = 0x0(i,j,k)bj=0bj=0


これを実装すると、(1)正確な算術で動作し、(2)非常に不安定であることを確認できます。直感的に、このソリューションは指数関数の多数の外挿を行います。これにより、楕円問題の素晴らしい補間特性が破壊されます。
— ジェフリーアーヴィング

あなたのアプローチは、すべての内部インデックスに対してグリーン関数のようなものを事前計算することであるようです。その後、ときに悩みを持っていることは驚くことではありませんの境界値の情報からは、ほとんど関心のポイントに伝播することはできません。これを回避する一般的な方法はないと思います。ドメインのサブセクションのグリーン関数を取得して潜在的なトラブルスポットをバイパスできるようにするツリー構造(おそらくこれはn log nの事前計算作業です)を作成する方が良いようです。bj≈0nlog⁡n
— ビクター

ツリーバージョンは、トリプル(事前計算プラスO (log n )です。残念ながら、私は特に線形時間ソリューションを探しています。O(n)O(log⁡n)
— ジェフリーアーヴィング

2

Aの連続的な主部分行列を因数分解するときに変更されないままになるブロックの多くを再利用して、Aの巡回還元因数分解(私はまだO(n)サイズだと信じています)で何か有用なことができるのだろうかと思います。 O(1)が得られますが、O(log n)...


O(log⁡n)

償却のチャンスはありませんか?
— ロバートブリッドソン

他にも多くの償却が行われているので、かなり可能です。まだどのように私は知りません。
— ジェフリーアーヴィング

これは、コストを償却するために必要なものです:cstheory.stackexchange.com/questions/18655/…。
— ジェフリーアーヴィング

すごい!誰かがそのcstheoryの質問に対する素晴らしい解決策を投稿したので、この質問に対する答えはもう必要ないはずです。その質問における半群の乗算演算は、中間変数を排除しています。
— ジェフリーアーヴィング

1

別の試みがあります。これは、キャンセル方法よりも安定していますが、まだあまり良くありません。

AB=A−1

Bij=bi+1⋯bjdj+1⋯dnδi⋯δn

i≤jbidi,δiULLUAi<j<k

xj=(BjiBki)T(BiiBikBkiBkk)−1(xixk)

ikik2×2

[1]:Gerard Meurant(1992)、「対称対角行列およびブロック三重対角行列の逆行列に関するレビュー」。

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