Hi Oscar,
On Feb 17, 2014, at 7:03 PM, Oscar Benjamin <oscar.j.benja...@gmail.com> wrote: > On 17 February 2014 22:15, "André Walker-Loud <walksl...@gmail.com>" > <walksl...@gmail.com> wrote: >>> This particular case is easily solved: >>> >>> def f_lambda(x,pars): >>> return lambda x: poly(x,*pars) >>> >>> You let the closure take care of pars and return a function that takes >>> exactly one argument x. >> >> Hi Oscar, >> >> This is the opposite of what I am trying to do. In the example, x >> represents the data and pars represent the parameters I want to determine, >> so it is the pars which I need passed into the "func_code.co_varnames" part >> of f. > > BTW if you're trying to fit the coefficients of a polynomial then a > general purpose optimisation function is probably not what you want to > use. I would probably solve (in a least squares sense and after > suitable scaling) the Vandermonde matrix. > > (I can explain that more if desired.) That looks interesting (just reading the wikipedia entry on the Vandermonde matrix). Is there a good algorithm for picking the values the polynomial is evaluated at to construct the matrix? Is there a benefit to this method vs a standard linear least squares? Given the Vandermonde matrix, how do you determine the uncertainty in the resulting parameters? I guess yes, I am interested to learn more. The most common problem I am solving is fitting a sum of real exponentials to noisy data, with the model function C(t) = sum_n A_n e^{- E_n t} the quantities of most interest are E_n, followed by A_n so I solve this with non-linear regression. To stabilize the fit, I usually do a linear-least squares for the A_n first, solving as a function of the E_n, and then do a non-linear fit for the E_n. Often, we construct multiple data sets which share values of E_n but have different A_n, where A_n is promoted to a matrix, sometimes square, sometimes not. So I want a wrapper on my chisq which can take the input parameter values and deduce the fit function, and pass the variable names to my current minimizer - hence my original question, and why I don’t want to write a special case for each possible combination of n_max, and the shape of A_n. Cheers, Andre _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor