MATLAB Function Reference    
funm

行列の関数評価

表示

詳細

Y = funm(X,'function') は、Parlett の手法(参考文献[1])を使って、function を評価します。Xは正方行列で、function は任意の要素に対応する関数でなければなりません。

コマンド funm(X,'sqrt')funm(X,'log') は、コマンドsqrtm(X)logm(X) と等価です。コマンドfunm(X,'exp')expm(X) は、同じ関数を計算しますが、アルゴリズムが異なります。expm(X) を使うことをお勧めします。

[Y,esterr] = funm(X,'function') は、何もメッセージを出力しませんが、計算結果の中の相対誤差の概算評価を出力します。X が対称またはエルミートであれば、その Schur 型は対角行列で、funm は、正確な結果を生成することができます。

例題

ステートメント

は、丸め誤差内で以下と同じ結果を生成します。

どちらの場合も、結果は S*S+C*C = I を満足します。ここで 、I = eye(size(X))です。

アルゴリズム

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

参考

expm, logm, 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.


 functions fwrite