Matrices
Matrix Multiplication
The obvious matrix multiplication algorithm for an n1×n2 matrix by an n2×n3 matrix has O(n1 n2 n3)-time complexity, i.e., n3 if n1 = n2 = n3 = n. Strassen (1969) showed how to reduce this from n3 to O(nlog2(7)) by recursively performing seven multiplications of n/2×n/2 matrices, e.g., [code]. Note that log2(7) ≈ 2.8 < 3. The improvement is not dramatic, but it sparked a cottage industry looking for further improvements -- search for 'fast matrix multiplication' in the [bib].
Matrix Inversion
- The inverse of a square k×k matrix, m, is a k×k matrix, m-1, s.t.
- m m-1 = m-1 m = id,
- where id is the k×k identity matrix.
- (Note, a singular matrix does not have an inverse.)
- The matrix inversion problem can be solved by Gauss-Jordon elimination.
- The "naive" Gauss-Jordon elimination algorithm is numerically unstable. Gauss-Jordon elimination with pivoting is more stable.
- There seems to be some debate in the literature over whether (i) partial pivoting (row pivoting) is adequate or (ii) full pivoting (row and column pivoting) is needed in general.
- (Note, a singular matrix does not have an inverse.)
Random example generated by JavaScript ...
(try "reload" for a new example)
Eigen Values and Eigen Vectors
See maths/Eigen-values and algorithm.
--
L.A.,
Tues. 21/6/2011