MATLAB Function Reference    
sqrtm

行列平方根

表示

詳細

Y = sqrtm(X) は、X の行列平方根を計算します。X が負の固有値をもつ場合、結果は複素数になります。Y*Yが、X に近くない場合、ワーニングメッセージが表示されます。

[Y,esterr] = sqrtm(X) は、ワーニングメッセージを表示しませんが、相対残差の推定 norm(Y*Y-X)/norm(X) を出力します。

注意

X が実数の対称正定行列、または、複素エルミート正定行列の場合、行列の平方根が計算されます。

X = [0 1; 0 0] のような行列は、実数や複素数の平方根をもたず、sqrtm の結果は予期できません。

例題

4 階差分演算子の行列表現は、つぎのようになります。

この行列は対称で正定です。一意的な正定平方根 Y = sqrtm(X) は、2 階の差分演算子を表わします。

また、行列

は、4 つの平方根をもっています。そのうちの 2 つは

です。他の 2 つは 、-Y1 -Y2 になります。4 つのすべての平方根は、X の固有値と固有ベクトルから得られます。

対角行列 D の 4 つの平方根は、つぎの符号の選択によって決まります。

4 つの Y は、つぎの型です。

Y2 の要素が整数であるため、Y2 が、より自然であっても、関数sqrtm は 2 つのプラス符号を選択し、Y1 を求めます。

最後に、行列

は、いかなる平方根ももちません。Y*Y = X に対する実数または複素数の行列 Y は存在しません。ステートメント

は、精度に関するワーニングメッセージと、つぎの結果を出力します。

アルゴリズム

sqrtm(X) は、funm(X,'sqrt') を省略したものです。funm で使われるアルゴリズムは、Schur 分解を基にしています。X が重複した固有値をもつ場合、計算できないことがあります。詳細は、funm を参照してください。

参考
expm, funm, logm


 sqrt squeeze