0
주어진 행렬의 고유 벡터 행렬을 보았습니다. 역으로 변환하려고 시도했을 때 eigenvector_matrix_inv()
에 오류가 있습니다.Ruby Matrix :: Eigenvalue 분해 오류
require 'matrix'
m = Matrix[ [0.5703125, 1.8369140625, 0.0, 0.0],
[-0.6875, -0.4609375, 0.0, 0.0],
[0.0, 0.0, -2.1796875, 8.7119140625],
[0.0, 0.0, -0.6875, 2.2890625] ]
meigen = m.eigen.eigenvector_matrix
meiveni = m.eigen.eigenvector_matrix_inv
# .../matrix.rb:930:in `block in inverse_from': Not Regular Matrix (ExceptionForMatrix::ErrNotRegular)
Mathematica
확인할대로, 단수 안 :
mruby = {{0.5703125, 1.8369140625, 0.0, 0.0}, {-0.6875, -0.4609375,
0.0, 0.0}, {0.0, 0.0, -2.1796875, 8.7119140625}, {0.0,
0.0, -0.6875, 2.2890625}};
Inverse[Eigenvectors[mruby]]
내가 뭘 잘못
{{0.586146 - 0.302685 I, 0.586146 + 0.302685 I, 0. + 0. I,
0. + 0. I}, {0. - 1.07831 I, 0. + 1.07831 I, 0. + 0. I,
0. + 0. I}, {0. + 0. I, 0. + 0. I, 0.519354 + 1.16217 I,
0.519354 - 1.16217 I}, {0. + 0. I, 0. + 0. I, 0. - 4.53135 I,
0. + 4.53135 I}}
를주는?
루비에서 특별한 것을 특별히 신경 써야합니까?
나는 복잡한 공액 고유 값을 원한다. 문제는 아니다. 문제는 Ruby가 왜 불평합니까? –
Ruby가 커버 아래에 사용하는 알고리즘을 확인하십시오. 이런 종류의 매트릭스에는 적합하지 않을 수 있습니다. – duffymo