長方形の密行列のヌル空間


16

密行列を与え

ARm×n,m>>n;max(m)100000
いくつかの許容範囲内にその零空間の基礎を見つけるための最善の方法は何かϵ

その根拠に基づいて、私はその後、特定のCOLSは内直線的に依存していると言うことができϵ?言い換えれば、ヌル空間基底を計算して、非特異行列を得るためにのどの列をA削除する必要があるのでしょうか?

参考文献を歓迎します。

回答:


12

行列のヌル空間を決定する標準的な方法は、QR分解またはSVDを使用することです。精度が重要な場合は、SVDが優先されます。QR分解は高速です。

A=UΣVHVΣεmax(m,n)εε

QR分解を使用して、、のランクが場合、最後の列は、QR分解がランクを明らかにすると仮定してのヌルスペースを構成します。を決定するには、の主対角線上の大きさが許容値を超えるエントリの数を計算します(SVDアプローチで使用されるものと同様)。A r n r Q A r RAT=QRArnrQArR

LU分解を使用しないでください。正確な算術では実行可能なアプローチですが、浮動小数点演算では数値誤差が累積するため不正確になります。

ウィキペディアでは、これらのトピックについて説明しています


QRの観点から話しているジェフは、分解があると仮定して、元の行列のヌル空間基底と列をどのように関連付けるのでしょうか?言い換えると、ヌルスペースを取り除くために、からどの列を削除する必要がありますか?ここでのポイントは、分解ではなく自体を使用することです。AAA
アレクサンダー

QR分解を計算するルーチンには、通常、QR分解を得るために列を並べ替える方法を示す並べ替えベクトルを返すオプションが含まれています。その順列ベクトルの最後のエントリは、nullspaceにあるの行(の列)に対応します。そのベクトルの最初のエントリは、線形独立な列に対応します。「ヌルスペースを取り除く」とはどういう意味かわかりません。列を削除して非特異行列を取得するということですか?A A T r A T AnrAATrATA
ジェフオックスベリー

はい、そうです。順列を見ていきます、ありがとう。
アレクサンダー

それは別の質問です。その代わりに行うことは、 QR分解(またはSVD)を計算です。のQR分解を計算する場合、上記の答えのようにのランクを計算できます(行列を転置する必要はありません)。次に、置換ベクトルの最初のエントリ(はのランク)が対応しますの独立した列に。同じ種類のアルゴリズムがSVDに適用されます。分解とともに置換ベクトルを返すことができれば、それは必要な情報を提供するはずです。A A r r A AAAArrAA
ジェフオックスベリー

8

質問が示すように場合、最初に(たとえば)ランダム行のインデックスセットを選択し、直交因数分解を使用するにより、作業を節約できます。(QR-因数は1であり sqareであり、ランクの長方形であり、残りの列ゼロで安定性を増強する置換QR因数分解を使用し;順列は、次に、より詳細に考慮されなければなりませんレシピ。)I P 5 N A T I = Q R Q R R N - RのRmnIp5nAI:T=QRQRrnrR

通常、これにより、列、最後の列にまたがるはるかに低い次元の部分空間が得られます。この部分空間には、のヌル空間が含まれます。次に、別のばらばらのランダムインデックスセットを選択し、のQR分解を計算します。乗算することにより、左側の結果のヌル空間のの改善を得るためにおそらくさらに低い次元のを。の次元が減少しなくなるまで繰り返します。次に、おそらく正しいヌルスペースがあり、を計算することで確認できます。これがまだ無視できない場合は、最上位の行でさらに繰り返します。NnrQA(AI:N)TNNNAN

編集:取得したら、ピボットをした直交因数分解により、線形独立列の最大セットを見つけることができます。実際、ピボットとして選択されていないインデックスのセットには、このプロパティがあります。NJANT=QRJ


+1は、大きな行列のヌル空間を決定する効率的な方法です。後で必要なときにこの回答を参照することを忘れないでください。
ジェフオックスベリー

実際、それは理にかなっていますが、私のマトリックスは16 GBのRAMに収まるので、標準のmatlab qrのままにします。
アレクサンダー

Neumaier教授、私はそのアルゴリズムをテストすることにしましたが、何であり、「A I N TのQR分解を計算する」とはどういう意味か正確にはわかりません。もう少し説明してください。N(AI:N)T
アレクサンダー

回答を少し編集しました。はGeoff Oxberryのレシピによって計算されます。N
アーノルドノイマイアー

ありがとうございました。実装しました。しかし、私の知る限り見るように、このアルゴリズムは私の線形独立列の集合を定義することはできません(我々が分解するのでA T I ではなくA Iを)が、ちょうどゼロ空間の基礎自体を推定するのに役立ちますか?AAI:TAI:
アレクサンダー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.