Main Content

rcond

説明

C = rcond(A) は 1 ノルムでの A の条件数の推定逆数を返します。A が良条件の場合、rcond(A) は 1.0 に近くなります。A が悪条件の場合、rcond(A) は 0 に近くなります。

すべて折りたたむ

悪条件の行列の感度を調べます。

対称で正定値であるが悪条件である行列として有名なものに、ヒルベルト行列があります。ヒルベルト行列の要素は H(i,j)=1/(i+j-1) で表されます。

10 行 10 列のヒルベルト行列を作成します。

A = hilb(10);

行列の条件数の逆数を求めます。

C = rcond(A)
C = 2.8286e-14

条件数の逆数が小さいため、A は悪条件です。

A の条件は同様の線形連立方程式の解に影響します。これを確認するために、Ax=b の解を摂動系 Ax=b+0.01 の解と比較します。

1 からなる列ベクトルを作成し、Ax=b を解きます。

b = ones(10,1);
x = A\b;

次に、b0.01 だけ変化させて、摂動系を解きます。

b1 = b + 0.01;
x1 = A\b1;

xx1 の解を比較します。

norm(x-x1)
ans = 1.1250e+05

A は悪条件であるため、b の小さな変化により x = A\b の解が非常に大きく (およそ 1e5) 変化します。この系は摂動に対して敏感です。

条件数の逆数が、行列式よりも精度が高い特異性の尺度である理由を調べます。

5 行 5 列の単位行列の倍数を作成します。

A = eye(5)*0.01;

この行列はフル ランクで 5 つの等しい特異値をもちます。これは svd(A) を計算することで確認できます。

A の行列式を計算します。

det(A)
ans = 1.0000e-10

行列の行列式はゼロに近いですが、A は実際は非常に良条件であり、特異値には "近くありません"。

A の条件数の逆数を計算します。

rcond(A)
ans = 1

行列には 1 の条件数の逆数があり、したがって非常に良条件です。行列の特異性を確認するには、det(A) ではなく rcond(A) または cond(A) を使用します。

入力引数

すべて折りたたむ

入力行列。正方数値行列として指定します。

データ型: single | double

出力引数

すべて折りたたむ

条件数の逆数。スカラーとして返されます。C のデータ型は A と同じです。

条件数の逆数は、特定の行列が特異行列セットにどの程度近いかを示すスケール不変性の尺度です。

  • C が 0 に近い場合、行列はほぼ特異値で悪条件です。

  • C が 1.0 に近い場合、行列は良条件です。

ヒント

  • 条件数 cond と比較して、rcond はより効率的ですが信頼性が低い行列の条件の推定方法です。

拡張機能

バージョン履歴

R2006a より前に導入

参考

| | | | |