[SciPy-User] Separable NLLS - Variable Projection in Python?

Till mail.till at gmx.de
Thu Jan 13 17:11:32 EST 2011


> 
> Can't say much about the Fortran code, but I have done some variable 
> projections stuff years ago with Matlab. My interest was to recovery some 
> missing data values.
> 
> I'm assuming that you have checked that scipy provides proper functionality 
> for the outer (nonlinear) optimization?
> 
> If so, then I might be able to contribute some code.
> 
> Could you be specific and elaborate more of your particular requirements and 
> needs?
> 
> Regards,
> eat
> 


Yep, i did have a look at scipys functionality. My problem is to fit 2d (time 
and wavelength) spectroscopic data. That means 400 channels at 350 time-points 
each. The model used is a sum of (folded) exponentials - the non linear base 
functions - with different coefficients - the separable part - for each channel. 
Solving with just normal least squares is not really possible and takes its time 
(around 7*400 parameters).

After a day of reading relevant literature, i was able to solve it in python, 
using the normal leastsq routine. Instead just minimizing the residuals, which 
has numerical problems (and was my first try),  minimizing the variable 
projection functional worked great. If anyone is interested in the source or 
relevant literature, just ask.

greetings
Till
 




More information about the SciPy-User mailing list