[Date Index]
[Thread Index]
[Author Index]
Diagonalizing a non-Hermitian Matrix
*To*: mathgroup at smc.vnet.net
*Subject*: [mg58741] Diagonalizing a non-Hermitian Matrix
*From*: "Ituran" <isturan at gmail.com>
*Date*: Sun, 17 Jul 2005 03:03:56 -0400 (EDT)
*Sender*: owner-wri-mathgroup at wolfram.com
Hi,
I have the following problem. There is a given non-Hermitian matrix M.
Let's take an example in 2x2 dimension M={{1,2+4*I},{2-5*I,1}}.
To diagonalize it we need 2x2 unitary matrices U and V such that
U.M.Vdag = Md =Diag(3.8304,6.0273).
Here Vdag = Transpose[Conjugate[V]]. To find U and V,
we can work with the absolute square of the above eq, i.e,
V.(Mdag.M).Vdag = U.(M.Mdag).Udag = M_D^2 = Diag(14.672,36.328).
Again Mdag = Transpose[Conjugate[M]] and similarly for Udag.
To find V, I can write the equation
for the ith row of V;
V_ij(Mdag.M)_jk = (M_D^2)_ii V_ik (no sum over i), k=1,2 in this case.
(Mdag.M)_11 V_i1 + (Mdag.M)_21 V_i2 = (M_D^2)_ii V_i1, k=1
(Mdag.M)_12 V_i1 + (Mdag.M)_22 V_i2 = (M_D^2)_ii V_i2, k=2
Thus, to find the elements of V in the ith row(for both i=1 and 2)
{valV,vecV} = Eigensystem[Transpose[Mdag.M]]
where V = vecV (No transpose!).
similarly for U
{valU,vecU}=Eigensystem[Transpose[M.Mdag]]
Of course, both vecV[[]] and vecU[[]] need to be normalized. I found
V = {{-0.21954 + 0.49397*I,0.84130},{0.34169 - 0.76879I, 0.54056}}
U ={{-0.34169 + 0.76879I*I,0.54056},{0.21954 - 0.49397*I,0.84130}}
and they perfectly satisfy
V.(Mdag.M).Vdag = U.(M.Mdag).Udag = Diag(14.672,36.328).
However, when I check U.M.Vdag, I am getting
U.M.Vdag = Diag(-3.8250 + 0.2031*I,6.0240 - 0.2031*I)
where the absolute value of the entries are equal to
the corresponding eigenvalues. The minus sign in
front of 3.8250 is not a problem since U and and V
are not unique(they contains some arbitrary phases
which be used to get Md with nonnegative entries).
So, the problem here is the existence of imaginary parts and
I have no idea why I am getting such an answer. For example, for a
Hermitian M (take 2-4*I instead of 2-5*I in (2,1) element of M),
there is no such problem. What am I missing? Any idea?
I am using Mathematica 4.0 in Windows 2K.
Thanks a lot in advance,
I.Turan
Prev by Date:
**Re: Modeling and Array Problem**
Next by Date:
**Re: What we get from (0.0*x), (0.0^x) and similar stuff**
Previous by thread:
**Re: Trace[ Through [ (Max - Min) [ {1, 2, 3, 4, 5} ] ] ]**
Next by thread:
**Re: Diagonalizing a non-Hermitian Matrix**
| |