# clbustos/extendmatrix

Cosmin Bonchis's enhancements to the Ruby "Vector" and "Matrix" module and includes: LU and QR (Householder, Givens, Gram Schmidt, Hessenberg) decompositions, bidiagonalization, eigenvalue and eigenvector calculations. Work on Ruby 1.8.7, 1.9.1 and 1.9.2 (SVN version)
Ruby
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.

= extendmatrix

* http://github.com/clbustos/extendmatrix

== DESCRIPTION:

The project consists of some enhancements to the Ruby "Matrix" module and includes: LU and QR (Householder, Givens, Gram Schmidt, Hessenberg) decompositions, bidiagonalization, eigenvalue and eigenvector calculations.
Include some aditional code to obtains marginal for rows and columns.

Original code from http://rubyforge.org/projects/matrix/ , done by Cosmin Bonchis as a Google Summer of Code 2007 project for Ruby Central Inc.

Gem, github repository and current version manteined by Claudio Bustos.

== SYNOPSIS:

require 'extendmatrix'
v = Vector[1, 2, 3, 4]

v.magnitude # => 5.47722557505166

v.normalize # => Vector[0.182574185835055, 0.365148371670111, 0.547722557505166, 0.730296743340221]

# Backport from Ruby 1.9.2+
m = Matrix.build(4, 3){|i, j| i * 3 + j}
# => Matrix[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]]

# You could modify the matrix
m = Matrix.I(3)
m[0,1]=m[1,0]=0.5
m[0,2]=m[2,0]=0.7
m[1,2]=m[2,1]=0.9
m           # => Matrix[[1, 0.5, 0.7], [0.5, 1, 0.9], [0.7, 0.9, 1]]

# Eigenvalues and EigenVectors. PCA at sight :)

m.eigenvaluesJacobi => Vector[0.523942339006665, 0.0632833995384682, 2.41277426145487]
m.cJacobiV
# => Matrix[[0.818814082563014, 0.249617871497675, 0.516947208547894], [-0.550168858227442, 0.598307531004925, 0.58253096551128], [-0.163883268313767, -0.761392813580323, 0.62723461144538]]
== REQUIREMENTS:

* Only Ruby

== INSTALL:

* sudo gem install matrix-extensions