why eigenvalue of 3x3 matrix is showing complex value when its a22 element was changed from 180 to 179.99?

I am computing eigenvalues of a matrix
A=[-149 -50 -154; 537 180 546; -27 -9 -25 ]
by using eig(A) the result= [1.0000 2.0000 3.0000]' then i replaced a22 with 179.99 and compute the eigenvalues again but this time result has complex value D =[1.6642+1.0543i 1.6642-1.0543i 2.6616]'..why

4 comentarios

The characteristic polynomial is cubic.
Depending on the coefficients, it can have one real and two complex roots or three real roots.
So what surprises you about the result you report ?
Best wishes
Torsten.
i know that due to cubic polynomial it can complex root as well but my concern is that the only difference of 0.1 convert real root to complex roots.
Seems that the roots of your polynomial are highly sensitive to small changes in its coefficients ...
You may want to calulate det(A-Lambda*I) to check the eigenvalue computation.
Best wishes
Torsten.
noaman naseer:
The equation x^2-0.05 = 0 has two real roots.
The equation x^2+0.05 = 0 has two complex roots.
A change of 0.1 in one of the coefficients can sometimes have that large an impact.

Iniciar sesión para comentar.

Respuestas (3)

You might not believe it, but this can easily happen.
syms delta lambda
A=[-149 -50 -154; 537 180 546; -27 -9 -25 ];
A = sym(A);
A(2,2) = A(2,2) + delta
A =
[ -149, -50, -154]
[ 537, delta + 180, 546]
[ -27, -9, -25]
Here is your characteristic polynomial, as a function of delta and lambda.
poly = det(A - lambda*eye(3))
poly =
174*delta*lambda - 11*lambda - 433*delta + delta*lambda^2 + 6*lambda^2 - lambda^3 + 6
solve(subs(poly,delta,0))
ans =
1
2
3
Lets look at the polynomial, when delta==0.
ezplot(subs(poly,delta,0),[0,4])
grid on
Note however, the large coefficient in front of the terms with delta in them in poly above. Even a tiny value of delta can cause the roots to become complex.
solve(poly,lambda)
ans =
root(z^3 - z^2*(delta + 6) - z*(174*delta - 11) + 433*delta - 6, z, 1)
root(z^3 - z^2*(delta + 6) - z*(174*delta - 11) + 433*delta - 6, z, 2)
root(z^3 - z^2*(delta + 6) - z*(174*delta - 11) + 433*delta - 6, z, 3)
In fact, delta as large as -0.1 is huge here. It would be easy enough if you wish to play with the above expression to see how large delta must be to make the eigenvalues complex. I should leave that to the student to solve, but I have a few moments.
The trick is to employ Descartes rule of signs. For example, when delta is zero, we see three sign changes in the coefficients. The 4 coefficients alternate in sign. That indicates there will be three positive roots.
subs(poly,delta,0)
ans =
- lambda^3 + 6*lambda^2 - 11*lambda + 6
For non-zero delta however, look at the signs of those coefficients. Don't forget to consider the possibility that there may be negative real roots too.
Hi,
as Torsten commented, the eigenvalues are the roots of the characteristic polynomial. If you have e.g. a quadratic polynomial, a tiny offset in may move the parabola from crossing the x-axis (two real roots) to above x-axis (two complex roots):
>> p = [1 0 -0.0000001];
>> roots(p)
ans =
1.0e-03 *
0.3162
-0.3162
>> p(3) = p(3) + 0.0000002;
>> roots(p)
ans =
1.0e-03 *
0.0000 + 0.3162i
0.0000 - 0.3162i
Titus

Categorías

Más información sobre Polynomials en Centro de ayuda y File Exchange.

Preguntada:

el 28 de Oct. de 2015

Editada:

el 28 de Oct. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by