Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1992
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1992

[Date Index] [Thread Index] [Author Index]

Search the Archive

E^A , A is a matrix, summary

  • To: mathgroup at yoda.physics.unc.edu
  • Subject: E^A , A is a matrix, summary
  • From: bappadit at ecn.purdue.edu (Banerjee Bappaditya)
  • Date: Wed, 22 Apr 92 15:14:23 EST

Hi!
Thanks to the interest of the group I have the following replies to my
query: Does anybody have a routine to do e^A where A is atleast a 4 by 4
matrix ?

John C Wheeler writes

What about the "standard" procedure of writing A = MLM^-1 where L is the
diagaonal matrix of the eigenvalues of A and M is the matrix of
eigenvecors?
Then  exp(A) = M exp(L) M^-1, where exp(L) is, of course just the diagonal
matrix with elements that are the exponentials of the eigenvalues.  This
reduces the problem to the "standard" one of finding eigenvalues and 
eigenvectors.

Alwyn Peter Allan says Mathematica 2.0 has MatrixExp[] that does it.
There are good and bad algorithms if you choose to code it.
See Lukes, Dahlard L.
   Differential equations : classical to controlled / Dahlard L. Lukes. --
   New
   York : Academic Press, 1982.

Jerry B. Keiper came up with both the above solutions too.  And Michael
Prange has written a little function that applies the above 

matFun[mat_,fun_] :=
Module[{eval,evec},
	{eval,evec} = Eigensystem[mat];
		Transpose[Inverse[evec].DiagonalMatrix[fun[eval]].evec]
		]



Roger B. Kirchner (rkirchne at mathcs.carleton.edu) has written a package 
called MatrixReplace.m ( written using only features in  MMa 1.0) which just depends upon being able to find the eigenvalues.


A couple of examples.
Mathematica 2.0 for NeXT
Copyright 1988-91 Wolfram Research, Inc.
 -- NeXT graphics initialized --

In[1]:= << matrixreplace.m

In[2]:= A = {{2, 0}, {0, 3}}

Out[2]= {{2, 0}, {0, 3}}

In[3]:= MatrixReplace[E^(x t), x -> A]

	    2 t           3 t
Out[3]= {{E   , 0}, {0, E   }}

In[4]:= MatrixReplace[x^n, x -> A]

           n           n
out[4]= {{2 , 0}, {0, 3 }}

Of all these solutions, I found Roger's solution to be most suited for my
work.

Thanks to you all for your active interest.

regards,

bappa.

Bappaditya Banerjee
bappadit at mn.ecn.purdue.edu
Ray W. Herrick Laboratories
Purdue University
West lafayette, IN 47907
(317) 494 2132
(317) 494 2147





  • Prev by Date: Non-linear Curve Fitting
  • Next by Date: how to compute determinants
  • Previous by thread: Re: Non-linear Curve Fitting
  • Next by thread: how to compute determinants