Re: Re: Diagonalizing a non-Hermitian Matrix

*To*: mathgroup at smc.vnet.net*Subject*: [mg58813] Re: [mg58773] Re: [mg58741] Diagonalizing a non-Hermitian Matrix*From*: Pratik Desai <pdesai1 at umbc.edu>*Date*: Tue, 19 Jul 2005 04:10:29 -0400 (EDT)*References*: <200507170703.DAA02601@smc.vnet.net> <200507171703.NAA13370@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Pratik Desai wrote: >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 > > > > I am sorry, I did not read the part where you mentioned you are using version 4.0. The SVD functionality is for version 5.0 and up I think JordanDecomposition is more what you are looking for M = {{1, 2 + 4*I}, {2 - 5*I, 1}} {matu, matd} = JordanDecomposition[N[M]] matu.matd.Inverse[matu] // Chop // MatrixForm Inverse[matu].N[M].matu // Chop // MatrixForm I notice in your diagonal matrix the eigenvalues are real, I think that is wrong your eigenvalues must be complex As to the actual implimentation of your code in mathematica, that would be really interesting if it is possible. Best Regards Pratik -- Pratik Desai Graduate Student UMBC Department of Mechanical Engineering Phone: 410 455 8134

**References**:**Diagonalizing a non-Hermitian Matrix***From:*"Ituran" <isturan@gmail.com>

**Re: Diagonalizing a non-Hermitian Matrix***From:*Pratik Desai <pdesai1@umbc.edu>