아이겐it is up to the user to check if this can be done:Eigen에서 행렬이 역변환 가능한지 알아내는 방법 (정규, 비정규, 전체 랭크 ...)?
이 가역 행렬이어야 에서 행렬의 역행렬을 계산 달리 결과는 정의되지 않는다.
그러나이 상태는 Eigen에서 어떻게 확인할 수 있습니까?
아이겐it is up to the user to check if this can be done:Eigen에서 행렬이 역변환 가능한지 알아내는 방법 (정규, 비정규, 전체 랭크 ...)?
이 가역 행렬이어야 에서 행렬의 역행렬을 계산 달리 결과는 정의되지 않는다.
그러나이 상태는 Eigen에서 어떻게 확인할 수 있습니까?
Eigen은 계급 밝혀 LU 분해를 제공하며 isInvertible
member function을 제공합니다.
당신이 좋아하는 경우에 당신은 당신의 질문에 그 코드를 편집 할 수 있습니다
가역 행렬에 대해서만 보유하는 행렬이 plenty of other properties 있습니다. 행렬이 역변환 가능한지 알아보기 위해 그 중 하나를 선택할 수 있습니다.
가능성은 determinant이 0
인지 확인하는 것입니다. 따라서 행렬은 역변환되지 않습니다.
그러나 행렬식을 검사하는 것은 부정확 한 부동 소수점 계산으로 인해 매우 강력하지는 않습니다. –
참조,하지만 난 (한 번 두 번 분해를 수행에서 예시 내 대답에 코드 샘플을 가지고 않을거야 반전이 가능한지 확인하려면 다시 반전합니다.) 'FullPivLV :: isInvertible()'이 정적 멤버 함수가 아닌 이유가 있습니다. 'boost :: optional'을 반환하거나 반전이 가능한지 여부를 나타내는 boolean을 반환하는 TryXXX 패턴을 사용하는 것이 더 적절할 것입니다. 반올림이 가능한지 여부를 나타내는 부울을 반환하고, 반올림이 가능한 경우 출력 매개 변수를 역으로 채 웁니다. –