# MATLAB Problems

1. Oct 21, 2007

### ColdFusion85

This is a MATLAB question. I am trying to find the eigenvalues of a matrix with both real and complex numbers. This is my session.

>> A=[1/sqrt(2),i/sqrt(2),0; -1/sqrt(2),i/sqrt(2),0; 0,0,1]

A =

0.7071, 0 + 0.7071i, 0
-0.7071, 0 + 0.7071i, 0
0, 0, 1.0000

>> eig(A)

ans =

0.9659 - 0.2588i
-0.2588 + 0.9659i
1.0000

However, matrix A is unitary, so $$|\lambda|$$ should equal 1. This is true for the third eigenvalue, but not for the other two. I even noticed that MATLAB fails to confirm A is unitary:

A =

0.7071, 0 + 0.7071i, 0
-0.7071, 0 + 0.7071i, 0
0, 0, 1.0000

>> B=[1/sqrt(2),-1/sqrt(2),0; i/sqrt(2),i/sqrt(2),0;0,0,1]

B =

0.7071, -0.7071, 0
0 + 0.7071i, 0 + 0.7071i, 0
0, 0, 1.0000

>> A*B

ans =

0, -1, 0
-1, 0, 0
0 , 0, 1

Why is MATLAB giving me incorrect answers? It was even doing this for me yesterday when I was dealing with real matricies. It was giving me eigenvalues with imaginary components when they were, in fact, all real. What's the deal?