Mercurial > matrix-functions
diff mftoolbox/expm_cond.m @ 0:8f23314345f4 draft
Create local repository for matrix toolboxes. Step #0 done.
author | Antonio Pino Robles <data.script93@gmail.com> |
---|---|
date | Wed, 06 May 2015 14:56:53 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mftoolbox/expm_cond.m Wed May 06 14:56:53 2015 +0200 @@ -0,0 +1,25 @@ +function [c,K] = expm_cond(A) +%EXPM_COND Relative condition number of matrix exponential. +% EXPM_COND(A) is the relative condition number in the Frobenius +% norm of the matrix exponential at the matrix A. +% [C,K] = EXPM_COND(A) returns the condition number C and the Kronecker +% matrix form K of the Frechet derivative. + +n = length(A); +N = n^2; +K = zeros(N); +E = zeros(n); + +if nargout < 2 && ~isequal(A,triu(A)) + % If returning K cannot use Schur form. + A = schur(A,'complex'); +end + +for j = 1:N + e = zeros(N,1); e(j) = 1; + E(:) = e; + X = expm_frechet_pade(A,E); + K(:,j) = X(:); +end + +c = norm(K) * norm(A,'fro') / norm(expm(A),'fro');