1 view (last 30 days)

Show older comments

I have a Matrix A defined as

A1 = [-(1/2)*(1+(1/sqrt(2))) 1/4;-(1/2) -(1/2)*(1-(1/sqrt(2)))];

which is equivalent to

A2 = [-0.8536 0.2500; -0.5000 -0.1464];

But when I take eigenvalues in both cases I get different eigenvalues

>> eig(A1)

ans =

-0.5000 + 0.0000i

-0.5000 - 0.0000i

eigenvaules are repeated, but MATLAB considering these as distinct roots(Complex conjugate)

>> eig(A2)

ans =

-0.5057

-0.4943

because of truncation, roots seems to be Different.

I have no problem with A2 matrix. But I want the system to consider only real part of eigenvalues of A1 matrix. Because of +0.0000i and -0.0000i the equations which depend on eigenvalues of A is changing.

I have already used real(egg(A1)) but I wanted to Calculate the state transition matrix i.e. e^(At)

syms t

phi = vpa(expm(A*t),4)

in this expression it should take those repeated roots of -0.5 and -0.5. But it is not taking.

So, please help me out.

Thank You.

madhan ravi
on 13 Dec 2018

Edited: madhan ravi
on 13 Dec 2018

The imaginary part is not zero:

"Ideally, the eigenvalue decomposition satisfies the relationship. Since eig performs the decomposition using floating-point computations, then A*V can, at best, approach V*D. In other words, A*V - V*D is close to, but not exactly, 0." mentioned here

>> A1 = [-(1/2)*(1+(1/sqrt(2))) 1/4;-(1/2) -(1/2)*(1-(1/sqrt(2)))];

vpa(eig(A1))

ans =

- 0.5 + 0.0000000064523920698794617994748209544899i

- 0.5 - 0.0000000064523920698794617994748209544899i

>>

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!