Re: Diagonalizing a non-Hermitian Matrix
- To: mathgroup at smc.vnet.net
- Subject: [mg58773] Re: [mg58741] Diagonalizing a non-Hermitian Matrix
- From: Pratik Desai <pdesai1 at umbc.edu>
- Date: Sun, 17 Jul 2005 13:03:20 -0400 (EDT)
- References: <200507170703.DAA02601@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Ituran wrote: >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 > > > If you are only seeking SingularValueDecomposition of the matrix why not use the built in function SingularValueDecomposition Clear[matU, matD, matV, M] M = {{1, 2 + 4*I}, {2 - 5*I, 1}} {matU, matD, matV} = SingularValueDecomposition[N[M]] matD matU.matD.Conjugate[Transpose[matV]] // Chop // MatrixForm M // MatrixForm matU.Conjugate[Transpose[matU]] // Chop matV.Conjugate[Transpose[matV]] // Chop Hope this helps Pratik Desai -- Pratik Desai Graduate Student UMBC Department of Mechanical Engineering Phone: 410 455 8134
- Follow-Ups:
- Re: Re: Diagonalizing a non-Hermitian Matrix
- From: Pratik Desai <pdesai1@umbc.edu>
- Re: Re: Diagonalizing a non-Hermitian Matrix
- References:
- Diagonalizing a non-Hermitian Matrix
- From: "Ituran" <isturan@gmail.com>
- Diagonalizing a non-Hermitian Matrix