Sha256: f5b2958e931fd391b8a3717e8676a1c2a23ce91a968a2e6e866e6a267e5e8f29

Contents?: true

Size: 555 Bytes

Versions: 22

Compression:

Stored size: 555 Bytes

Contents

#!/usr/bin/env ruby
require("gsl")

m = GSL::Matrix[[1.0, 1/2.0, 1/3.0, 1/4.0], [1/2.0, 1/3.0, 1/4.0, 1/5.0],
           [1/3.0, 1/4.0, 1/5.0, 1/6.0], [1/4.0, 1/5.0, 1/6.0, 1/7.0]]

eigval = m.eigen_symm
p eigval

eigval, eigvec = m.eigen_symmv

p eigval == GSL::Eigen.symm(m)
val, vec = GSL::Eigen.symmv(m)
p vec

i = 0
vec.each_col do |v|
  a = (m*v)/v
  if a != val[i]
    puts("error")
  end
  i += 1
end

# Diagonalization
b = eigvec.inv*m*eigvec
b.clean!(1e-10)
p b
d = b.diagonal
p d == eigval

prod = eigval.prod
p GSL.equal?(prod, m.det, 1e-10)

Version data entries

22 entries across 22 versions & 4 rubygems

Version Path
gsl-2.1.0.3 examples/eigen/eigen.rb
gsl-2.1.0.2 examples/eigen/eigen.rb
gsl-2.1.0.1 examples/eigen/eigen.rb
gsl-2.1.0 examples/eigen/eigen.rb
gsl-1.16.0.6 examples/eigen/eigen.rb
rb-gsl-1.16.0.5 examples/eigen/eigen.rb
rb-gsl-1.16.0.4 examples/eigen/eigen.rb
rb-gsl-1.16.0.3 examples/eigen/eigen.rb
rb-gsl-1.16.0.3.rc1 examples/eigen/eigen.rb
gsl-nmatrix-1.15.3.2 examples/eigen/eigen.rb
gsl-nmatrix-1.15.3.1 examples/eigen/eigen.rb
rb-gsl-1.16.0.2 examples/eigen/eigen.rb
rb-gsl-1.16.0.1 examples/eigen/eigen.rb
rb-gsl-1.16.0 examples/eigen/eigen.rb
rb-gsl-1.15.3.2 examples/eigen/eigen.rb
rb-gsl-1.15.3.1 examples/eigen/eigen.rb
blackwinter-gsl-1.15.3.2 examples/eigen/eigen.rb
gsl-nmatrix-1.15.3.0 examples/eigen/eigen.rb
gsl-1.15.3 examples/eigen/eigen.rb
gsl-1.14.7 examples/eigen/eigen.rb