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

4 visualizzazioni (ultimi 30 giorni)
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 Commento
Adam
Adam il 10 Lug 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.

Accedi per commentare.

Risposte (1)

Christine Tobler
Christine Tobler il 16 Lug 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 Commenti
Christine Tobler
Christine Tobler il 17 Lug 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 il 19 Lug 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.

Accedi per commentare.

Categorie

Scopri di più su Linear Algebra in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by