MATLAB Answers

Regarding the elimination of zero complex terms from State Transition Matrix

1 view (last 30 days)
Rajani Metri
Rajani Metri on 13 Dec 2018
Commented: yitao yitao on 22 Dec 2018
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.

Answers (2)

Mark Sherstan
Mark Sherstan on 13 Dec 2018
Edited: Mark Sherstan on 13 Dec 2018
real(eig(A1))

madhan ravi
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
>>
  3 Comments
Rajani Metri
Rajani Metri on 13 Dec 2018
I calculated the e^At (state transition matrix) on paper and it comes out as follows:
[(e^(-0.5t)) - 0.3536*t*(e^(-0.5t)), 0.25*t*(e^(-0.5t));
-0.5*t*(e^(-0.5t)), (e^(-0.5t)) + 0.3536*t*(e^(-0.5t))]
it is a 2x2 matrix.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!