Is there a way to get the reduced row echelon form of an instance of one or all of the TMatrix classes? If not, is there another way to get Root to solve a system of equations without using a matrix?
who would have thought that rref stands for reduced row echelon form
Yes, we have in the linear algebra package an extensive set of tools to
solve linear equations, going beyond Gaussain elimination (rref) .
They all derive from the TDecompBase class .
TDecompLU : general dens matrix
TDecompBK : symmetric dense matrix
TDecompSVD : using single value decomposition
TDcompChol : symmetric positive def matrix
TDecompQRH : QR decomposition
TDecompSparse : sparse matrices
They all try to get the matrix in some triangular form making
forward/backward substitution easy .
Methods in common are :
virtual Bool_t Solve ( TVectorD &b) = 0;
virtual TVectorD Solve (const TVectorD& b,Bool_t &ok) = 0;
virtual Bool_t Solve ( TMatrixDColumn& b) = 0;
virtual Bool_t TransSolve ( TVectorD &b) = 0;
virtual TVectorD TransSolve (const TVectorD &b,Bool_t &ok) = 0;
virtual Bool_t TransSolve ( TMatrixDColumn& b) = 0;
virtual Bool_t MultiSolve (TMatrixD &B);
For each method one simply does first TDecompX(A) for matrix A
and then apply any of the above methods .