ドキュメンテーション

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

cond

逆行列計算の条件数

説明

C = cond(A) は、2 ノルムの転置の条件数を返します。これは、A の最小特異値に対する最大特異値の比に等しい値です。

C = cond(A,p)p ノルムの条件数を返します。ここで、p12Inf、または 'fro' にすることができます。

すべて折りたたむ

行列の条件数を計算し、逆行列計算に対する感度を調べます。

2 行 2 列の行列を作成します。

A = [4.1 2.8;
     9.7 6.6];

A の 2 ノルムの条件数を計算します。

C = cond(A)
C = 1.6230e+03

A の条件数は 1 よりはるかに大きいため、この行列は逆行列計算に対して敏感です。A の逆行列を計算した後に、A の 2 番目の行を少し変更して、再び逆行列を計算します。

invA = inv(A)
invA = 2×2

  -66.0000   28.0000
   97.0000  -41.0000

A2 = [4.1    2.8; 
      9.671  6.608]
A2 = 2×2

    4.1000    2.8000
    9.6710    6.6080

invA2 = inv(A2)
invA2 = 2×2

  472.0000 -200.0000
 -690.7857  292.8571

その結果は、A を少し変更すると、逆行列の計算結果が大幅に変化することを示します。

行列の 1 ノルムの条件数を計算します。

3 行 3 列の行列を作成します。

A = [1 0 -2;
     3 4  6;
    -1 5  7];

A の 1 ノルムの条件数を計算します。mn 列の行列の 1 ノルムの条件数の値は以下のとおりです。

κ1(A)=||A||1||A-1||1,

ここで、1 ノルムは、行列要素の絶対値の列に沿った和の最大値であり、以下で与えられます。

||A||1=max1jni=1m|aij|.

C = cond(A,1)
C = 18.0000

この行列の条件数は過度に大きくないため、行列は逆行列の計算に対して特に敏感ではありません。

入力引数

すべて折りたたむ

入力行列。A は、正方形または長方形のサイズにすることができます。

データ型: single | double
複素数のサポート: あり

ノルムのタイプ。次の表に挙げる値のいずれかとして指定します。cond は、p が 2 以外の値の場合に norm(A,p) * norm(inv(A),p) を使用して条件数を計算します。これらのノルムのタイプの詳細については、norm のページを参照してください。

p の値

ノルムのタイプ

1

1 ノルムの条件数

2

2 ノルムの条件数

Inf

無限大ノルムの条件数

'fro'

Frobenius ノルムの条件数

例: cond(A,1) は 1 ノルムの条件数を計算します。

出力引数

すべて折りたたむ

条件数。スカラーとして返されます。C の値が 1 に近い場合は条件の良い行列であることを示し、C の値が大きい場合は条件の悪い行列であることを示します。特異行列の条件数は Inf です。

詳細

すべて折りたたむ

逆行列計算の条件数

行列と計算タスクの "条件数" は、入力データの変更と解法プロセスでの丸め誤差に対する解の感度を表します。

行列の "逆行列計算の条件数" は、データの誤差に対する線形方程式系の解の感度を表します。これによって、逆行列化や線形方程式から得られる結果の精度がわかります。たとえば、行列の 2 ノルムの条件数は以下のとおりです。

κ(A)=AA1.

このコンテキストでは、大きな条件数は、係数行列 A のわずかな変化によって線形方程式 Ax = bxA = b の出力 b が大幅に変化する可能性があることを示します。極端な例は、A が特異 (条件数が無限大) という非常に悪い条件であり、この場合は逆行列がなく、線形方程式の一意な解はありません。

ヒント

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

アルゴリズム

cond のアルゴリズムには次の 3 つの部分があります。

  • p = 2 である場合、condsvd が提供する特異値分解を使用して、最小特異値に対する最大特異値の比を計算します。

  • p = 1Inf、または 'fro' である場合、cond は入力行列とその逆行列の適切なノルムを norm(A,p) * norm(inv(A),p) で使用して条件数を計算します。

  • 入力行列がスパースである場合、cond は、指定された p 値を無視して condest を呼び出します。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

R2006a より前に導入