このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
decomposition
線形系を解くための行列の分解
説明
decomposition
は再利用可能な行列の分解 (LU、LDL、コレスキー、QR など) を作成して、線形系 (Ax = b または xA = b) をより効果的に解くことを可能にします。たとえば、dA = decomposition(A)
の計算後に dA\b
を呼び出すと、A\b
と同じベクトルを返しますが、通常は大幅に速くなります。decomposition
オブジェクトは繰り返して解を求める必要のある問題に適しています。これは、係数行列の分解を複数回実行する必要がないためです。
decomposition
オブジェクト dA
には、元の係数行列 A
に使用する同じ演算子の多くを使用できます。
複素共役転置
dA'
否定
-dA
c*dA
またはdA/c
を使用する、スカラーとの乗算またはスカラーによる除算。x = dA\b
を使用する、線形系 Ax = b の求解。x = b/dA
を使用する、線形系 xA = b の求解。
作成
構文
説明
は、dA
= decomposition(A
,type
,triangularFlag
)A
の上三角部分または下三角部分のみを分解に使用することを指定します。triangularFlag
には 'upper'
または 'lower'
を指定できます。この構文の場合、分解タイプは 'ldl'
、'chol'
または 'triangular'
でなければなりません。
は、前述の任意の構文と 1 つ以上の dA
= decomposition(___,Name,Value
)Name,Value
のペアの引数を使用して、追加オプションを指定します。たとえば、dA = decomposition(A,'CheckCondition',false)
は、dA\b
の解を求めているときに A
の条件に基づく警告をスローしないことを指定します。
入力引数
プロパティ
オブジェクト関数
decomposition
オブジェクトに対して使用できる基本関数と演算子は、線形方程式系の求解に関連しています。分解タイプが 'qr'
である場合、A'\B
または B/A
を解くことはできません。このような形式の問題には、代わりに 'cod'
を使用してください。
ctranspose | 複素共役転置 |
mldivide | x に対する線形方程式 Ax = B の求解 |
mrdivide | x に対する線形方程式 xA = B の求解 |
isIllConditioned | 行列が悪条件かどうかの判別 |
decomposition
オブジェクトの基となる行列の条件数またはランクもチェックできます。異なるアルゴリズムが使用されるため、decomposition
オブジェクトに対してこれらの関数を使用した結果は、係数行列に対して同じ関数を直接使用した場合と異なることがあります。
例
参照
[1] Davis, Timothy A. “Algorithm 930: FACTORIZE: An Object-Oriented Linear System Solver for MATLAB.” ACM Transactions on Mathematical Software 39, no. 4 (July 2013): 1–18. https://doi.org/10.1145/2491491.2491498.
拡張機能
バージョン履歴
R2017b で導入