mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-20 07:29:07 +08:00
Backport of c9b5531d6c51fc8a4ee0b69beb42a5b8dba0b172
: Normalize eigenvectors (bug #249).
This commit is contained in:
parent
fc4684fe97
commit
a700d3c506
@ -343,6 +343,7 @@ typename EigenSolver<MatrixType>::EigenvectorsType EigenSolver<MatrixType>::eige
|
|||||||
{
|
{
|
||||||
// we have a real eigen value
|
// we have a real eigen value
|
||||||
matV.col(j) = m_eivec.col(j).template cast<ComplexScalar>();
|
matV.col(j) = m_eivec.col(j).template cast<ComplexScalar>();
|
||||||
|
matV.col(j).normalize();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -61,6 +61,7 @@ template<typename MatrixType> void eigensolver(const MatrixType& m)
|
|||||||
VERIFY_IS_APPROX(a * ei1.pseudoEigenvectors(), ei1.pseudoEigenvectors() * ei1.pseudoEigenvalueMatrix());
|
VERIFY_IS_APPROX(a * ei1.pseudoEigenvectors(), ei1.pseudoEigenvectors() * ei1.pseudoEigenvalueMatrix());
|
||||||
VERIFY_IS_APPROX(a.template cast<Complex>() * ei1.eigenvectors(),
|
VERIFY_IS_APPROX(a.template cast<Complex>() * ei1.eigenvectors(),
|
||||||
ei1.eigenvectors() * ei1.eigenvalues().asDiagonal());
|
ei1.eigenvectors() * ei1.eigenvalues().asDiagonal());
|
||||||
|
VERIFY_IS_APPROX(ei1.eigenvectors().colwise().norm(), RealVectorType::Ones(rows).transpose());
|
||||||
VERIFY_IS_APPROX(a.eigenvalues(), ei1.eigenvalues());
|
VERIFY_IS_APPROX(a.eigenvalues(), ei1.eigenvalues());
|
||||||
|
|
||||||
EigenSolver<MatrixType> eiNoEivecs(a, false);
|
EigenSolver<MatrixType> eiNoEivecs(a, false);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user