Re: exponential rule application
- To: mathgroup@smc.vnet.net
- Subject: [mg11144] Re: exponential rule application
- From: Allan Hayes <hay@haystack.demon.co.uk>
- Date: Mon, 23 Feb 1998 21:41:03 -0500
- References: <6cn9pn$bg6@smc.vnet.net>
John Albert Horst wrote:
>
> I'm trying to compute the following exponential of a matrix with
> elements that are constants:
>
> A={{0,1},{-1,0}};
> MatrixExp[A*t]
>
> The answer can be shown to be {{Cos[t], Sin[t]},{-Sin[t],Cos[t]}} by
> using the definition of the matrix exponential and expanding a few
> terms in the series. However, MatrixExp[A*t]//Simplify returns the
> following expression:
>
> {{(1/2*(1 + E^(2*I*t)))/E^(-(-I*t)),
> (-(1/2)*I*(-1 + E^(2*I*t)))/E^(-(-I*t))},
> {(1/2*I*(-1 + E^(2*I*t)))/E^(-(-I*t)),
> (1/2*(1 + E^(2*I*t)))/E^(-(-I*t))}}
>
> Clearly, we need to apply the simple rule that
>
> complexExpRule=Exp[a_*I*theta_]->Cos[a*theta]+I*Sin[a*theta]
>
> However, I can't seem to make this rule simplify the output of
> MatrixExp[A*t]. For example, the following simple expression,
> Exp[2*I*t]/.complexExpRule, returns, Exp[2*I*t], instead of,
> Cos[2*t]+I*Sin[2*t]. Curiously, Exp[r*I*t]/.complexExpRule, returns,
> Cos[r*t]+I*Sin[r*t], as we would hope.
John:
In[1]:=
FullForm[2*I*t ]
Out[1]//FullForm=
Times[Complex[0,2],t]
So maybe
In[2]:=
complexExpRule=Exp[Complex[0,a_]*theta_]->Cos[a*theta]+I*Sin[a*theta];
In[3]:=
Exp[2*I*t]/.complexExpRule
Out[3]=
Cos[2 t]+I Sin[2 t]
OK
Now for the matrix
In[4]:=
M={{(1/2*(1 + E^(2*I*t)))/E^(-(-I*t)),
(-(1/2)*I*(-1 + E^(2*I*t)))/E^(-(-I*t))},
{(1/2*I*(-1 + E^(2*I*t)))/E^(-(-I*t)),
(1/2*(1 + E^(2*I*t)))/E^(-(-I*t))}};
In[5]:=
Simplify[M/.complexExpRule]
Out[5]=
{{Cos[t],Sin[t]},{-Sin[t],Cos[t]}}
In[6]:=
Simplify[ExpToTrig[M]]
Out[6]=
{{Cos[t],Sin[t]},{-Sin[t],Cos[t]}}
In[7]:=
Simplify[ComplexExpand[M]]
Out[7]=
{{Cos[t],Sin[t]},{-Sin[t],Cos[t]}}
--
Allan Hayes
Mathematica Training and Consulting
Leicester, UK
hay@haystack.demon.co.uk
http://www.haystack.demon.co.uk
voice: +44 (0)116 271 4198
fax: +44 (0)116 271 8642