Eigen values differs with mchines

1 view (last 30 days)
Gopalsamy Muthiah
Gopalsamy Muthiah on 29 Oct 2016
Answered: Daniel kiracofe on 2 Nov 2016
I am computing [V,D] = eig(A,B); cond(A) ans = 3.352631943951038e+09; Ill condition matrix using eig function, with different machines i am getting different answers(varies in first decimal points). But the same machines yields same answer when repeated. I have followed a discussion saying "inherent problem with ill conditioned matrix",could anyone share the text for this to understand. My main query is that could i have any control in terms of precision or something to close the gap in these results.
Aryanrook
  1 Comment
Marc
Marc on 29 Oct 2016
Can you give use A and B so we can reproduce the problem

Sign in to comment.

Answers (1)

Daniel kiracofe
Daniel kiracofe on 2 Nov 2016
high condition number is not the same thing as non-deterministic. If you repeat an ill-condition computation multiple times, you will get the same answer every time. Ill-conditioned means that if you solve the problem for matrix A, and for matrix A+epsilon, where epsilon is a very small number, that the results will be very different (much bigger than epsilon). This is important because all floating point calculations involve roundoff error. And this may differ between machines. So if you try to solve a problem with matrix A on two different machines, you may really get A+1e-16 on one machine but A+1e-16 on another (for example). If your problem is well-conditioned, the differences between the two machines will be small. But if your problem is ill-conditioned, the differences could be huge.
For more info, The wikipedia page for condition number is pretty good https://en.wikipedia.org/wiki/Condition_number
3e9 is not a good condition number, but I've certainly seen worse. You don't state what the condition number of matrix B is. That could be the one causing the problem.
In terms of what you can do about it... hard to say without seeing what your A and B matrices are or where they come from. You might be able to use the 'qz' algorithm instead of the default 'chol' algorithm (https://www.mathworks.com/help/matlab/ref/eig.html).
I'd suggest you post more detail and maybe someone can help.

Tags

Products

Community Treasure Hunt

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

Start Hunting!