SVD constraints

Hi ROOTers
I am trying to do a linear least-squares analysis using SVD via Root’s TDecompSVD class.
Two questions:

  1. Is it possible to setup constraints so for the solution to be larger than zero (constrain the solving procedure to zero or positive values)?
  2. Is there a way to handle/retrieve the error information for the solve system?

The example

provides a way to handle weighting factors to the SVD computation. I am not familiar with the weighting computations on this example (more of inexperience) but I wonder if there are other ways I can fit my own weights/errors into the computation and to compute the error vector (maybe an error matrix?) for the solved system.

Thank you,

Hi,

Answering your questions"

  1. Inequality constraints are not possible using TDecompSVD class . In this case use
    TMinuit which allows you to specify the parameter range or have a look at the
    Quadratic Programming, see http://root.cern.ch/root/html/MATH_QUADP_Index.html .
  2. Yes, although in some methods of solveLinear.C more direct than others.
    The error in each parameter is nothing else than the sqrt of the appropriate diagonal element
    in the matrix (A^T A)^-1. If one goes through TMinuit, there is a function call that the
    delivers the error.

There is for linear fitting with TMinuit a specific implementation:
http://root.cern.ch/root/html/TLinearMinimizer.html

Concerning the weighting in solveLinear.C: The data points are just scaled by the data errors,.

  • Eddy