MATLAB Function Reference    
logm

行列対数

表示

詳細

Y = logm(X) は、行列の対数を出力し、expm(X) の逆関数です。X が負の固有値をもつ場合、結果は複素数になります。計算される expm(Y) X に近い値でない場合は、ワーニングメッセージが表示されます。

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

注意

X が、実対称または複素エルミートの場合も、logm(X) を計算します。

X = [0 1; 0 0] のような行列は、対数、実数、複素数はもたず、logm は結果を予想できません。

制限

ほとんどの行列に対して、つぎの式が成り立ちます。

この関係式を満足しない行列 X もあります。たとえば、X の計算される固有値が厳密なゼロを含む場合、logm(X) は無限大になります。また、X の要素が非常に大きい場合、expm(X) はオーバフローするかもしれません。

例題

A を 3 行 3 列の行列とします。

X = expm(A) は、つぎのようになります。

このとき、A = logm(X) は、オリジナルの行列 A を作ります。

しかし、log(X) は 0 の対数を計算するので、以下のようになります。

アルゴリズム

行列関数は、参考文献 [1] に記述されている Parlett によるアルゴリズムを使って計算されます。行列が重複した固有値をもつとき、行列の Schur 分解を使います。この場合、十分な精度で結果が得られなかったり、完全に計算が途中終了してしまうことがあります。結果が不正確な場合は、ワーニングメッセージが表示されます。

参考

expm, funm, sqrtm

参考文献

[1] Golub, G. H. and C. F. Van Loan, Matrix Computation, Johns Hopkins University Press, 1983, p. 384.

[2] Moler, C. B. and C. F. Van Loan, "Nineteen Dubious Ways to Compute the Exponential of a Matrix," SIAM Review 20, 1979,pp. 801-836.


 loglog logspace