MATLAB Answers

Generalized eigenvectors not orthogonal

45 views (last 30 days)
Uri Cohen
Uri Cohen on 21 Nov 2014
Commented: Matt J on 21 Nov 2014
I use eig to solve a generalized eigenvalues problem from two symmetric real matrices and resulting eigenvalues are not orthogonal even though there is no degeneration in the eigenvalues. Minimal code to reproduce this:
A=randn(10); B=randn(10);
A=A+A'; B=B+B';
[V,D]=eig(A,B);
diag(D)
V(:,1:6)'*V(:,1:6)
What do I miss?

  1 Comment

Matt J
Matt J on 21 Nov 2014
I'm not aware of any result saying they should be orthogonal. The material here
mentions they will be B-orthogonal, but only if B is positive definite.

Sign in to comment.

Answers (1)

MA
MA on 21 Nov 2014
They are orthogonal, what is the problem?
clear all
close all
clc;
A=randn(10);
B=randn(10);
AA=A+A';
BB=B+B';
[V,D]=eig(AA);
[VV,DD]=eig(BB);
diag(D);
diag(DD);
V(:,1:10)'*V(:,1:10)
VV(:,1:10)'*VV(:,1:10)

  2 Comments

MA
MA on 21 Nov 2014
in your case must be x=y:
clear all
clc;
A=randn(10);
B=randn(10);
AA=A+A';
BB=B+B';
[V,D]=eig(AA,BB);
%x=y
x=AA*V
y=BB*V*D
Uri Cohen
Uri Cohen on 21 Nov 2014
The eigenvectors are orthogonal, while the generalized eigenvectors are not, also in your example...
A=randn(10); AA=A+A';
B=randn(10); BB=B+B';
[V,D]=eig(AA);
V*V' % eye(10)
[V,D]=eig(AA, BB);
V*V' % not eye(10)

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by