나는 유형의 문제를 해결하기 위해 찾고 있어요 : x
스칼라 (고유)입니다 Aw = xBw
는, w
는 고유 벡터이며, A
및 B
가 동일한 차원의 대칭, 정사각형 NumPy와 매트릭스됩니다. A
및 B
이 d x d
인 경우 d
x/w 쌍을 찾을 수 있어야합니다. 어떻게 이것을 numpy로 해결할 수 있을까요? 나는 Scipy 문서를보고 있었고, 내가 원하는 것을 찾지 못했습니다.NumPy와 : 일반화 된 고유치 문제
답변
:
from scipy.linalg import eigh
eigvals, eigvecs = eigh(A, B, eigvals_only=False)
당신은 볼 것이다,은 복잡한 ndarray
, 그래서 아마 당신은 아마 당신의 경우에 더 빠르게 수행 할 eigvalsh()
이 같은 모듈에서 eigvecs.real
...
을 사용해야하지만, 고유 벡터를 반환하지 않습니다.
이 문제를 해결해 주셔서 감사합니다!이 기능에 대한 문서의 예는 처음 보면 꽤 분명하지 않았습니다. –
scipy.linalg.eig
을 보았습니까? documentation에서 :
는 선택적 매개 변수보통의 해결 또는 는 정방 행렬의 고유치 문제를 일반화. 이 방법
b
있습니다
scipy.linalg.eig(a, b=None, ...
당신이 일반화 된 고유치 문제를 해결하기 위해b : (M, M) array_like, optional Right-hand side matrix in a generalized eigenvalue problem. Default is None, identity matrix is assumed.
scipy.linalg.eigh()
필요 보인다
OP에서의 문제는'Aw = xBw'입니다. – emeth
그래서 문제가 무엇입니까? 'scipy.linalg.eig (a, b = None, ...': 매개 변수 b : 일반화 된 고유치 문제에서 오른쪽 행의 행렬입니다. 기본값은 None, 항등 행렬입니다 ._ – RomanHotsiy
안녕하세요, 그러나 B 부분을 놓쳤습니다. –
체크 아웃 http://stackoverflow.com/questions/12672408/generalized-eigenvectors-in-matlab – emeth
정확히 내가하고 싶은 것이지만, 파이썬. –