A'AおよびAA '配合の条件数


9

これは、(ユセフサアド、示されていますスパース線形システムのための反復法、P。260)がcond(AA)cond(A)2

これはにも当てはまりますか?AA

ケースにはであると、私はその観察AN×MNMcond(AA)cond(AA)

この場合、での定式化が望ましいということですか?AA


2
サイズが大きく異なる2つの行列の条件数を比較しています。理由の説明がないと、その比較はおそらく意味がないようです。確かに、はるかに小さな行列を使用して必要なことを達成できる場合は、(条件が似ていても)すべきです。
David Ketcheson、2012年

1
以下のステファノMの新しい答えは正しいです。読んで投票してください。
David Ketcheson、

回答:


6

場合N < M、その後、 rはn個のKA T A = R A N KA A T= R A N KA N < Mの ようにA T AをR M × Mフルランクにすることはできませんつまり、特異です。ARN×MN<M

rank(ATA)=rank(AAT)=rank(A)N<M
ATARM×M

従って、条件数は。有限精度の計算のため、MATLABで計算すると、ではなく、大きな数が得られます。κ2(ATA)=cond(A'A)Inf


@OscarB:の特異値は単なるNであり、M番目の特異値のようなものはありません!あなたの導出は、場合に正確であるが、の注意σ Iiは= 1 ... Nを SVのであるAは、S S T = dは、I Gσ 2 1... σ 2 Nが、S T S = D I Gσ 2ANMσii=1NASST=diag(σ12,,σn2)M-N末尾のゼロ。STS=diag(σ12,,σn2,0,,0)MN
Stefano M

8

さて、なぜAの条件数の2乗に近いのかを見てみましょう。SVD分解を使用してA = U S V Tと、U R N × NS R N × MV R M × Mを、我々は表現できA T AとしてのATAAA=USVTURN×NSRN×MVRM×MATA

ATA=(USVT)TUSVT=VSTUTUSVT=VSTSVT

U T U = Iのように、が正規直交であることに注意して到達しました。ことをさらに我々ノートSは最終分解するような対角行列であり、A T Aのように表すことができるV S 2 V Tと、S 2を意味S T Sをから最初のN個の特異値を持つ対角行列を得、S乗斜めに。これは、条件数が最初と最後の特異値の比であるため、c o n d UUTU=ISATAVS2VTS2STSSのためのARN×Mcond(A)=s1sNARN×M

cond(ATA)=s12sM2=(s1sM)2=cond(A)2

これで、を使用して同じ演習を実行できます。AAT

AAT=USVT(USVT)T=USVTVSTUT=US2UT

つまり、結果、ここでのS2SSTを意味するため、上記の表記との微妙な違い。cond(AAT)=s12sN2S2SST

ただし、微妙な違いに注意してください。以下のためにが、条件数は、分母におけるM番目の特異値を有するA A Tは N番目の特異値を有します。これが、条件数に大きな違いが見られる理由を説明しています— A A Tは確かにA T Aよりも「より良い条件」になります。ATAAATAATATA

それでも、David Ketchesonは正しかった— 2つの非常に異なる行列間の条件数を比較しています。特に、達成できることは、A A Tで達成できることと同じではありません。ATAAAT


AAAA

それが理にかなってうれしい。一般に、問題の条件付けを考慮する必要があります。ただし、それが問題でない場合は、問題のサイズに応じて、(Aの)通常の方程式/ QR分解/ LSQRのいずれかを使用できます。問題が大きくないか、条件が悪い場合を除いて、おそらくQR分解を適用しますが、解決しようとしている問題についての知識がなければ、判別するのは困難です。もっと経験のある人ならもっときめ細かくアドバイスできると思います。
OscarB

107cond(A)<cond(AAT)<cond(ATA)N<M)その場合は、製品をまったく作成する必要がないため、LSQRを使用することが常に望ましいようです。問題は、正規方程式とLSQRで得られた解が同じかどうかです。
アレクサンダー

まあ、私が理解しているように、LSQRは、「無限に多くの」反復を正確な精度で実行した後、通常の方程式に対して同じ解決策を提供します。ただし、不適切な問題の場合、通常の方程式の解は必要なものではありません。代わりに、LSQRを使用して、半収束が達成されるまで反復する必要があります。ただし、不適切な問題で反復アルゴリズムを制御することは、まったく別の球技です。また、行列とベクトルの積のコストと必要な反復回数(つまりmatvecs)によっては、2重対角化を使用した直接tikhonovソリューションの方が適している場合があります。
OscarB

素晴らしい説明。+1あなたのために!
meawoppl

2

condA2condATA

A=(ϵ10ϵ),ϵ1

condATA=O(ϵ4)condA2=O(ϵ2)


A2ATA[cond(A)]2

@StefanoMおかげで、ディスカッションから、私だけが間違っていたわけではありませんが、誤解しているようです。
ジェドブラウン

1

正確な算術cond(A ^ 2)= cond(A'A)= cond(AA ')で、例えばを参照してください。Golub and van Loan、第3版、p70。Aがランク不足に近い場合、これは浮動小数点演算では当てはまりません。最良のアドバイスは、最小二乗問題を解決するときに上記の本のレシピに従うことです。最も安全なのはSVDアプローチです(p257)。SVDを計算するときは、代わりに\ varepsilon-rankを使用してください。ここで、\ varepsilonは行列データの解像度です。


すみません、ゴラブとヴァン・ローンの第3版を見てみました。70、そしてステートメントcond(A ^ 2)= cond(A ^ TA)= cond(AA ^ T)をバックアップするものを見つけることができませんでした。あなたの参照でより具体的にできますか?
OscarB 2012年

そこにはステートメントはありませんが、定理2.5.2と疑似逆行列、セクション5.5.4からcond(AA ')= cond(A'A)から導出できます。私が疑似逆行列をとる理由は、これが手元の最小二乗問題にとって重要なことだからです。cond(A ^ 2)の後の等式は、タイプミスのため申し訳ありませんが、おおよそです。
Artan

いいえ、この答えは完全に間違っています。私の反例を見てください。
ジェドブラウン

Saadは、ある特定のコンテキストに対してそのようなポイントを作成したに違いありません。当面の問題に関連するのは、進行中の議論です。
Artan 2012
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.