MATLAB Function Reference |
計算矩陣的函式(Evaluate general matrix function)
Syntax
F = funm(A,fun) [F,esterr] = funm(A,fun)
Description
F = funm(A,fun)
用平方矩陣(square matrix) A
來計算函式fun
的矩陣形式。若要用矩陣做指數、log數或平方根,可使用 expm(A)
, logm(A)
and sqrtm(A)
。
[F,esterr] = funm(A,fun)
不印出任何訊息,而回傳相關誤差(relative error)的粗略估計值。
若 A
是對稱或???(Hermitian),則???(Schur form)為對角線化(diagonal)而且 funm
可產生最正確的結果。
L = logm(A)
利用 funm
來運算。但可以藉由比較 expm(L)
和 A
來得到更可靠的誤差估計值。 S = sqrtm(A)
和 E = expm(A)
使用完全不同的演算法。
Examples
F = funm(magic(3),@sin)
S = funm(X,
@sin); C = funm(X,
@cos);
E = expm(i*X); C = real(E); S = imag(E);
在任何情形下,若 I
=
eye(size(X)),
則會滿足 S*S+C*C = I
Algorithm
funm
使用了可能會計算錯誤的演算法。若 A
接近一個有多個特徵值(eigenvalues)和很少的特徵向量(poorly conditioned eigenvectors), funm
可能會算出錯誤的答案。而指令會嘗試偵測這種情況並顯示警告訊息。然而有時偵測也會過於敏感而產生答案正確但是同時出現警告訊息的情形發生。
矩陣函式是以Parlett's algorithm來做演算,而此方法在[1]有詳細說明。
See Also
expm
, logm
, sqrtm
, function_handle
(@
)
References
[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 |