Generalized eigenvalue problem

Hi!
I'm trying to convert a generalized eigenvalue problem into a normal eigenvalue calculation.
I have this code:
[V,D,flag] = eigs(A, T);
Now I convert it into:
A1 = inv(T)*A;
[V1,D1,flag1] = eigs(A1);
Shouldn't I get the same result? From what I understand in the Matlab documentation, the first equation solves:
A*V = B*V*D
and the second one solves:
A*V = V*D
am I missing something?
Thanks!!

2 个评论

Including a small example showing the difference might help.
First, thanks for your help.
This is not the example I have been working with, but it still doesn't give me the same result.
A = [1 2 3; 4 5 6; 7 8 9];
T = [2 0 0; 0 5 0; 0 0 3];
[V,D,flag] = eigs(A, T);
TT = inv(T);
A1 = inv(T)*A;
[V1,D1,flag1] = eigs(A1);
Thanks again!!

请先登录,再进行评论。

回答(1 个)

Walter Roberson
Walter Roberson 2011-7-19

0 个投票

Is there a particular reason you are using eigs() instead of eig() ? eigs() is intended for large sparse matrices, and by default only returns the first 6 eigenvalues.

类别

帮助中心File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

提问:

2011-7-19

Community Treasure Hunt

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

Start Hunting!

Translated by