linear_algebra/eigenvalues.rb
tests/_examples/linear_algebra/eigenvalues.rb in the metorex repository.
# A matrix answers its eigenvalues as Floats, with a conjugate pair where
# the roots are not real.
require "matrix"
real = Matrix[[14, 16], [-6, -6]]
p(real.eigensystem.eigenvalues)
p(real.eigensystem.eigenvalue_matrix)
turning = Matrix[[1, 1], [-1, 1]]
p(turning.eigensystem.eigenvalues)
p(turning.eigensystem.eigenvalue_matrix)
p(Matrix[[1, 2, 3], [4, 5, 6], [7, 8, 9]].eigensystem.eigenvalues.map { |value| value.round(6) })
Output:
[6.0, 2.0]
Matrix[[6.0, 0], [0, 2.0]]
[(1.0+1.0i), (1.0-1.0i)]
Matrix[[(1.0+1.0i), 0], [0, (1.0-1.0i)]]
[16.116844, -1.116844, 0.0]