0
votes

I have a question when I want to calculate the eigenvalues and eigenvectors of a complex 4*4 matrix M. Let's take an example:

M=

[7.71 0.88 -0.47i 0.11i;

0.88 19.09 0.11i -0.02i;

-0.47i 0.11i -7.71 -0.88;

0.11i -0.02i -0.88 -3.44.]

It's something like, M*V=D*V, here V = [a1, a2, i *b1, i *b2], D is the eigenvalues. a1,a2,b1,b2 are real values and i is the imaginary index.

If we use command eig(M) directly from MATLAB, it will give eigenvalues with norm(V)=sqrt(a1^2+a2^2+b1^2+b2^2)=1

But now I need the eigenvalues with condition a1^2+a2^2+(i *b1)^2+(i *b2)^2=1 instead of norm(V)=1

Please comment if anyone gets a hint. Thanks a lot.

Best regards, mike

1
In your example it seems that a1, a2, i *b1, i *b2 are elements of one of eigenvectors. For computation of norm it is required to take abs so norm(V)=sqrt(abs(a1)^2+abs(a2)^2+abs(b1)^2+abs(b2)^2)=1; is correct. Please add M matrix to the question. and elaborate and explain exactly what you want to do.rahnema1
hi rahnema1, if I use eig to calculate, it will automatically normalize the eigenvectors as norm(V)=1. But now I want to calculate with new normalization of the eigenvectors.Mike22LFC
answer updated!rahnema1

1 Answers

0
votes

For the first part of the solution the symbolic toolbox needed. since I do not have the symbolic toolbox at hand so I provide solution by Maxima:

you have 4 complex numbers forming an eigen vector say:

A: a1 + %i * a2;
B: b1 + %i * b2;
C: c1 + %i * c2;
D: d1 + %i * d2;

The %i symbol represents the imaginary unit. The norm 2 of the vector is:

sqrt(cabs(A) ^ 2 + cabs(B) ^ 2 + cabs(C) ^ 2 + cabs(D) ^ 2).

Here cabs means complex abs. So we seek a number v such that if we divide elements of the vector by it the resulting vector has this property:

(cabs(A / v) ^ 2 + cabs(B / v) ^ 2 + (%i * cabs(C / v)) ^ 2 + (%i * cabs(D / v)) ^ 2) = 1;

We can solve the equation for v :

A: a1 + %i * a2;
B: b1 + %i * b2;
C: c1 + %i * c2;
D: d1 + %i * d2;
eq: (cabs(A / v) ^ 2 + cabs(B / v) ^ 2 + (%i * cabs(C / v)) ^ 2 + (%i * cabs(D / v)) ^ 2) - 1;
solve(eq , v);

result:

v = sqrt([a1 ^ 2 + a2 ^ 2 + b1 ^ 2 + b2 ^ 2 - c1 ^ 2 - c2 ^ 2 - d1 ^ 2 - d2 ^ 2 ] )
  =sqrt (cabs(A) ^ 2 + cabs(B) ^ 2 - cabs(C) ^ 2 - cabs(D) ^ 2)

Matlab code for normalizing eigenvectors:

M=[...

7.71 0.88 -0.47i 0.11i;

0.88 19.09 0.11i -0.02i;

-0.47i 0.11i -7.71 -0.88;

0.11i -0.02i -0.88 -3.44];

% with nobalance eigenvector do not necessarily normalized
[VEC, D] = eig(M, 'nobalance');
ABS2 = abs(VEC).^2;
ABS2(3:4,:) = -ABS2(3:4,:);
v = sqrt(sum(ABS2,1));
VEC = bsxfun(@rdivide,VEC, v)