Re: orthonormal eigenvectors
- To: mathgroup at smc.vnet.net
- Subject: [mg88498] Re: orthonormal eigenvectors
- From: Szabolcs Horvát <szhorvat at gmail.com>
- Date: Tue, 6 May 2008 06:45:32 -0400 (EDT)
- Organization: University of Bergen
- References: <fvmmko$86b$1@smc.vnet.net>
Bill Rowe wrote: > On 5/3/08 at 6:18 AM, nairbdm at hotmail.com (. .) wrote: > >> I have a 3X3 matrix M: {1,-i(2^(1/2)),0} {i(2^(1/2)),0,0} {0,0,2} > >> And I am trying to find a set of orthonormal eigenvectors for M. > > You can find a set of eigenvectors by doing: > > In[54]:= m = {{1, -I (2^(1/2)), 0}, > {I (2^(1/2)), 0, 0}, > {0, 0, 2}}; > > In[55]:= ev = Eigenvectors[m] > > Out[55]= {{0, 0, 1}, {-I Sqrt[2], 1, 0}, {I/Sqrt[2], 1, 0}} > > Then it is easy to normalize these by doing: > > In[56]:= len = (#.#) & /@ ev; > ev /Sqrt[len] > > Out[57]= {{0, 0, 1}, {-Sqrt[2], -I, 0}, {I, Sqrt[2], 0}} > > But while all of these have unit length, they do not form an > orthonormal set since > > In[58]:= Dot @@ Rest[%] > > Out[58]= -2 I Sqrt[2] > > which is clearly not zero. That is for your matrix, a set of > orthonormal eigenvectors doesn't exist. > The matrix is Hermitian, i.e. m == Conjugate@Transpose[m], so a set of orthonormal eigenvectors is guaranteed to exist with respect to the dot product complexDot = #1 . Conjugate[#2] &. Even though one eigenvalue of the matrix is degenerate, the set of vectors returned by Eigenvectors are orthogonal to each other, but not normalized: In[16]:= ev = Eigenvectors[m] Out[16]= {{0, 0, 1}, {-I Sqrt[2], 1, 0}, {I/Sqrt[2], 1, 0}} In[17]:= Outer[complexDot, ev, ev, 1] Out[17]= {{1, 0, 0}, {0, 3, 0}, {0, 0, 3/2}} Normalize[] handles complex vectors correctly, so we can simply do the following: In[19]:= ev = Normalize /@ ev Out[19]= {{0, 0, 1}, {-I Sqrt[2/3], 1/Sqrt[3], 0}, {I/Sqrt[3], Sqrt[2/3], 0}} In[20]:= Outer[complexDot, ev, ev, 1] Out[20]= {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}