Effacer les filtres
Effacer les filtres

Is there any way to reduce the error in the calculation of eigenvectors when using eig function?

6 vues (au cours des 30 derniers jours)
In the equation AV = BVD (cond(A) = 10^4, cond(B) = 10^8), my A and B matrices are highly ill-conditioned. The eigenvectors I am getting have an error around 100, whereas the actual value of eigenvector is in the order of 10^-2. I tried [V, D] = eig(A, B, 'qz'), but this didn't make much difference. So is there any way I can specify the error tolerance while using [V, D] = eig(A, B) or is there any other way of computing eigenvectors with the required tolerance in MATLAB?
Thanks.
  1 commentaire
Adam
Adam le 10 Juil 2018
Surely the fact that your matrices are highly ill-conditioned is the source of the problem? Pre-condition them and eig should be more accurate I would have thought.

Connectez-vous pour commenter.

Réponses (1)

Christine Tobler
Christine Tobler le 16 Juil 2018
I'm just catching up on MATLAB Answers: Can you tell us some more about your problem? How are you measuring the error in the eigenvectors?
The error that EIG (and most eigensolvers) is trying to minimize is that norm(A*V - B*V*D) should be small. Is this the error you are measuring?
  5 commentaires
Christine Tobler
Christine Tobler le 17 Juil 2018
It seems that the problem is not the condition of A and B so much as the norms of A and B, which are both 3.1378e+15.
For any generalized eigenvalue problem, we can multiply both A and B by 1e15, and this will not affect the eigenvalues and eigenvectors, but the residual will be a factor 1e15 larger.
A colleague suggested that a good way to go would be to scale the residual by the norms of A and B:
>> norm(A*V - B*V*D) / max(norm(A), norm(B))
ans =
8.0423e-10
That this is not 1e-15, I would now blame on the condition numbers of A and B.
Yaswanth  Sai
Yaswanth Sai le 19 Juil 2018
So is there any other way we can improve the condition of matrices and then get the eigenvectors? I tried using 'balance'([V,D]=eig(balance(A),balance(B)), but that doesn't seem to work.
Thanks.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Linear Algebra dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by