ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

構文

  • C = rcond(A)

説明

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;

次に、b を 0.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) を使用します。

入力引数

すべて折りたたむ

A — 入力行列正方数値行列

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

データ型: single | double

出力引数

すべて折りたたむ

C — 条件数の逆数スカラー

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

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

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

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

詳細

すべて折りたたむ

ヒント

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

参考

| | | | |

この情報は役に立ちましたか?