回答:
行列のヌル空間を決定する標準的な方法は、QR分解またはSVDを使用することです。精度が重要な場合は、SVDが優先されます。QR分解は高速です。
QR分解を使用して、、のランクが場合、最後の列は、QR分解がランクを明らかにすると仮定してのヌルスペースを構成します。を決定するには、の主対角線上の大きさが許容値を超えるエントリの数を計算します(SVDアプローチで使用されるものと同様)。A r n − r Q A r R
LU分解を使用しないでください。正確な算術では実行可能なアプローチですが、浮動小数点演算では数値誤差が累積するため不正確になります。
ウィキペディアでは、これらのトピックについて説明しています。
質問が示すように場合、最初に(たとえば)ランダム行のインデックスセットを選択し、直交因数分解を使用するにより、作業を節約できます。(QR-因数は1であり sqareであり、ランクの長方形であり、残りの列ゼロで安定性を増強する置換QR因数分解を使用し;順列は、次に、より詳細に考慮されなければなりませんレシピ。)I P ≈ 5 N A T I : = Q R Q R R N - RのR
通常、これにより、列、最後の列にまたがるはるかに低い次元の部分空間が得られます。この部分空間には、のヌル空間が含まれます。次に、別のばらばらのランダムインデックスセットを選択し、のQR分解を計算します。乗算することにより、左側の結果のヌル空間のの改善を得るためにおそらくさらに低い次元のを。の次元が減少しなくなるまで繰り返します。次に、おそらく正しいヌルスペースがあり、を計算することで確認できます。これがまだ無視できない場合は、最上位の行でさらに繰り返します。
編集:取得したら、ピボットをした直交因数分解により、線形独立列の最大セットを見つけることができます。実際、ピボットとして選択されていないインデックスのセットには、このプロパティがあります。