回答:
次の方法が非常に効果的だと思われるので、自分の質問に答えます。私はそれを答えにしているので、人々はそれが良いか悪いかと思う場合、質問とは無関係にそれを賛成票または反対票を投じることができます。
回答:マトリックスの対角線に適用されるランダム化されたマトリックスプローブを使用します。
レッツ我々はの対角線を見つけて、聞かせしたいオペレータもガウスランダムベクトルの数が少ないこと。次に、をランダムベクトルに適用してし、次の最小二乗最小化問題 ω 1、ω 2、。。、ω K A A ω 1、Aは、ω 2、。。。、A ω K 分対角線 D | | Dは、ω 1 - Aは、ω 1を| | 2 + | | Dは、ω 2 - Aは、ω 2 | | 2 + 。。。
最小値は正確な式
Matlabコード、例えば:
omegas = randn(16,3);
dprobe=sum(omegas.*(A*omegas),2)./sum(omegas.^2,2);
私の例の行列では、3つのプローブベクトルを使用して、正確な対角線とプローブされた対角線を次のように比較します。
[dprobe, diag(A)]
ans =
1.0e+04 *
2.3297 2.4985
0.4596 0.4921
0.1322 0.0897
0.2838 0.1764
0.0989 0.0999
0.0106 0.0071
0.0068 0.0068
0.0469 0.0571
0.0070 0.0070
0.0355 0.0372
0.0059 0.0060
0.0071 0.0064
0.0067 0.0067
0.0026 0.0021
0.0012 0.0012
0.0015 0.0013
更新:これらのアイデアを対称ブロックマトリックスに適用する実験を行っています。私が使用しているマトリックスは、ウェーブレットのような基本でほぼブロック対角であるためです。行列が「ブロック対角支配」(定義が少し難しい)限り、最小二乗再構築ブロックを対称化する限り、プリコンディショナーを構築するのに非常にうまく機能するようです。
リコールそのブロックに分割行列であるブロック対角優勢なら
上記のガウスランダム前提として、次の最小二乗ブロック対角再構成を見つけようとします。
テンソル積を操作した後、ローカル問題を解くことにより、番目のブロックの正確な式を見つけることができます。
ここで、とは、番目のブロックのインデックスに対応すると部分です。 ω (L ) I A ω I ω I L
これらのだけを使用すると、前処理はかなり悪いように見えますが、次のように対称化すると、
私の実験では、真の対角ブロックを使用した場合とほとんど同じようになりました(多くの場合、より優れています!)。これが写真のマトリックスの例です。