I am making a library with symbolic computations which supports matrices. A matrix may have symbolic entries (eg be over the ring of polynomials of a variable $x$ ie $\mathbb{Q}[x]$).
I have implemented almost all useful linear algebra algorithms and decompositions using exact/symbolic computations (and in some cases fraction-free algorithms) (eg REF
, RREF
, SNF
, INVERSE
, PSEUDO-INVERSE
, LU
, QR
, RANK
factorisations/decompositions, ROWSPACE
, COLUMNSPACE
, NULLSPACE
etc). The only needed algorithm which I cannot do with exact/symbolic computations is SVD
/EVD
. I only find numerical algorithms which solve the problem numericaly / approximately and employing "irrational" computations (eg square roots) which are not exact (note: I dont mind if an exact/symbolic algorithm employs square roots, since I can handle these symbolicaly if needed without actually computing square roots).
Any exact/symbolic algorithm for
SVD
/EVD
or any way to computeSVD
using one of the decompositions I already have and which are exact?
Note: the library supports arbitrary precision arithmetic (although slow).
An online demo of the library (which is implemented in pure JavaScript
and works in browser
and node.js
) is over here