sqrtm
行列の平方根
説明
例
行列の平方根の計算
次の行列の平方根を計算します。これらの数値はシンボリック オブジェクトではないため、結果は浮動小数点数となります。
A = [2 -2 0; -1 3 0; -1/3 5/3 2]; X = sqrtm(A)
X = 1.3333 -0.6667 0.0000 -0.3333 1.6667 -0.0000 -0.0572 0.5286 1.4142
次に、この行列をシンボリック オブジェクトに変換し、その平方根を再び計算します。
A = sym([2 -2 0; -1 3 0; -1/3 5/3 2]); X = sqrtm(A)
X = [ 4/3, -2/3, 0] [ -1/3, 5/3, 0] [ (2*2^(1/2))/3 - 1, 1 - 2^(1/2)/3, 2^(1/2)]
結果が正しいかチェックします。
isAlways(X^2 == A)
ans = 3×3 logical array 1 1 1 1 1 1 1 1 1
行列の平方根の残差を返す
2 つの出力引数をもつ構文を使用して、行列の平方根および残差を求めます。
A = vpa(sym([0 0; 0 5/3]), 100); [X,resnorm] = sqrtm(A)
X = [ 0, 0] [ 0, 1.2909944487358056283930884665941] resnorm = 2.9387358770557187699218413430556e-40
入力引数
出力引数
ヒント
シンボリック オブジェクトではない行列について
sqrtm
を呼び出すと、MATLAB® 関数sqrtm
が呼び出されます。
バージョン履歴
R2013a で導入