[ROOT] matrix inversion class; comments please

From: Eddy Offermann (eddy@rentec.com)
Date: Mon Dec 11 2000 - 16:31:50 MET


Dear Root-ers,

Maybe some interesting addition to ROOT. I have written a collection
of matrix inversion routines, ranging from pseudo-inverse,
inverse through LU decomposition to inversion of a pos-def matrix.

The pseudo-inverse is calculated through a  single-value decomposition.
These routines can also be used to minimize linearized problems with/without
constrains.

However, the implementation/interface is maybe not optimal.
Following considerations flowed in:

- The TMatrix class is extremely nice but very well "protected".
  It is hard to get data in and out. Unless you have a TMatrix object it is hard
  to perform an inversion. That is why I did not install these routines into
  Tmatrix

- I thought that the easiest way was to exchange data through array's and chose
  for TArrayD.

- Like in TMath, I use  TInverse as a kind of namespace.

- are these routines general enough to warrant installation into ROOT or maybe
  people should use other (public domain) libraries. On the other hand, these
  are nicely integrated into ROOT ...

- Single value decomposition will be a useful concept for optimizing less
  well defined problems (e.g. due to lack of data). Also boundary conditions can 
  be added quite elegantly.

I have added a small program solve.C to create a little stand-alone test program
comparing a linear fit with the traditional normal equations with single-
value decomposition.


The Makefile will need a bit of work it is just a straight copy from the way
things are done at Renaissance.

Anyhow, please have a look at it and sent me your comments.

Best Regards Eddy


Attached file is a compressed tar-file of:

Makefile
TInverse.C
TInverse.h
TInverse_LinkDef.h
solve.C






This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:38 MET