0
$\begingroup$

Assume that we have a real square matrix $A$ and we know its eigenvalues.

Let's assume that matrix $A$ is

   A = [0.018142,   0.968856,   0.151740,   0.757174,
        0.017829,   0.474323,   0.358832,   0.970854,
        0.184523,   0.063063,   0.680511,   0.191901,
        0.806877,   0.830208,   0.977169,   0.222291]; 

And the eigenvalues are

eigs = [1.87922 + 0.00000i
       -0.45009 + 0.11680i
       -0.45009 - 0.11680i
        0.41623 + 0.00000i]

First of all, I know the eigenvectors. But how can I find them with SVD or another method?

I know that eigenvectors can be found by finding the null space of

$$N(A - \lambda_i I) = W_i$$ Where $\lambda_i$ is the $i:th $ eigenvalue.

Do you have any suggestion? I tried to use SVD without any success.

   A = [0.018142,   0.968856,   0.151740,   0.757174,
        0.017829,   0.474323,   0.358832,   0.970854,
        0.184523,   0.063063,   0.680511,   0.191901,
        0.806877,   0.830208,   0.977169,   0.222291];

t = eig(A)

eigenvalue = real(t(2))
B = A - eigenvalue*eye(4);
[u, s, v] = svd(B);
v

[W, ~] = eig(A)

I did a test as Robert Israel said.

A = [0.018142,   0.968856,   0.151740,   0.757174,
        0.017829,   0.474323,   0.358832,   0.970854,
        0.184523,   0.063063,   0.680511,   0.191901,
        0.806877,   0.830208,   0.977169,   0.222291];

t = eig(A)

eigenvalue = t(2) % Complex
B = (A - eigenvalue*eye(4))*(A - eigenvalue*eye(4));
[u, s, v] = svd(B);
v % This is V^T
s
[W, ~] = eig(A)

Output:

t =

   1.87922 + 0.00000i
  -0.45009 + 0.11680i
  -0.45009 - 0.11680i
   0.41623 + 0.00000i

eigenvalue = -0.45009 + 0.11680i
v =

  -0.28716 - 0.00000i  -0.04672 - 0.00000i   0.89589 - 0.00000i   0.33575 + 0.00000i
  -0.56631 + 0.00284i   0.34482 + 0.33887i   0.03732 - 0.12258i  -0.53597 + 0.37665i
  -0.55413 + 0.01685i  -0.58743 - 0.55128i  -0.16543 - 0.03894i  -0.11425 + 0.04162i
  -0.53799 + 0.00597i   0.25403 + 0.22487i  -0.34698 + 0.17797i   0.50108 - 0.43850i

s =

Diagonal Matrix

   6.0213e+00            0            0            0
            0   9.8366e-01            0            0
            0            0   1.2468e-01            0
            0            0            0   8.0735e-17

W =

  -0.53992 + 0.00000i   0.25267 + 0.22111i   0.25267 - 0.22111i   0.66764 + 0.00000i
  -0.50351 + 0.00000i  -0.65138 - 0.06952i  -0.65138 + 0.06952i   0.20360 + 0.00000i
  -0.21211 + 0.00000i  -0.11338 - 0.04392i  -0.11338 + 0.04392i  -0.67929 + 0.00000i
  -0.64030 + 0.00000i   0.66585 + 0.00000i   0.66585 - 0.00000i   0.22663 + 0.00000i

No signs of eigenvalues in last column of $V^T$

$\endgroup$

1 Answer 1

1
$\begingroup$

The null space of $A - \lambda I$ is the null space of $B(\lambda) = (A - \lambda I)^*(A - \lambda I)$. If you take the svd of $B(\lambda)$: $B(\lambda) = U \Sigma V^T$, a basis for the null space of $A -\lambda$ consists of columns of $V^T$ for the singular value $0$.

$\endgroup$
6
  • $\begingroup$ Great! Do I need to combine the real and imaginary value to a complex value? I'm doing everyting in C code so I can't use "complex" values in C. Well, I can, but not my algorithms. $\endgroup$
    – euraad
    Commented Mar 31, 2020 at 16:11
  • $\begingroup$ I updated my question. $\endgroup$
    – euraad
    Commented Mar 31, 2020 at 16:22
  • $\begingroup$ This method only works for non-complex eigenvalues. $\endgroup$
    – euraad
    Commented Mar 31, 2020 at 16:35
  • $\begingroup$ It works for complex eigenvalues if you can take the SVD of a matrix with complex entries. $\endgroup$ Commented Mar 31, 2020 at 17:00
  • $\begingroup$ Is there another way to do this if I need to keep them seperate? $\endgroup$
    – euraad
    Commented Mar 31, 2020 at 17:05

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .