Re: Diagonalizing a non-Hermitian Matrix
- To: mathgroup at smc.vnet.net
- Subject: [mg58831] Re: Diagonalizing a non-Hermitian Matrix
- From: "Carl K. Woll" <carlw at u.washington.edu>
- Date: Wed, 20 Jul 2005 00:29:28 -0400 (EDT)
- Organization: University of Washington
- References: <dbd0d3$2ni$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
"Ituran" <isturan at gmail.com> wrote in message news:dbd0d3$2ni$1 at smc.vnet.net... > 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). > As mentioned by Pratik Desai, it looks like you want the singular value decomposition. To find the singular value decomposition in version 4, use SingularValues mat={{1,2+4I},{2-5I,1}}; In[4]:= {u,d,v}=SingularValues[N[mat]] Out[4]= {{{0.540257 + 0.0182125 I, 0.31559 + 0.779868 I}, {0.84012 + 0.0446021 I, -0.193047 - 0.504918 I}}, {6.02729, 3.83038}, {{0.841303 + 0. I, 0.219544 + 0.493974 I}, {-0.540564 + 0. I, 0.341685 + 0.768792 I}}} The output satisfies In[5]:= Conjugate[Transpose[u]] . DiagonalMatrix[d] . v == mat Out[5]= True Note that the output of SingularValues (in version 4) is different from the output of SingularValueDecomposition (in version 5). In version 5, we have {u,d,v}=SingularValueDecomposition[N[mat]]; In[6]:= (u.d.ConjugateTranspose[v] // Chop) == mat Out[6]= True Carl Woll Wolfram Research [snip]