[SciPy-User] Alternatives to scipy.optimize
Kevin Gullikson
kevin.gullikson@gmail....
Sat Feb 25 13:31:55 CST 2012
Erik,
You can do the least-squares fit to func2 within the function that you pass
to scipy.optimize.leastsq (or similar).
For fixed parameters, I use a second array called const_pars, and pass it
to leastsq as one of the arguments (e.g. leastsq(ErrFunc, pars,
args=(const_pars)) ) For example:
def func1(p1):
//some non-linear function of p1
def func2(p2):
//some linear function of p2
def ErrFunc(p1,p2):
//Do linear fit to func2 and optimize parameters p1
return func1(p1) + func2(p2)
//Run leastsq:
pars, success = scipy.optimize.leastsq(ErrFunc, p1, args=(p2))
Hope that helps!
Kevin Gullikson
On Sat, Feb 25, 2012 at 1:17 PM, Erik Petigura <eptune@gmail.com> wrote:
> Dear Scipy,
>
> Up until now, I've found the optimize module very useful. Now, I'm
> finding that I need finer control. I am fitting a model to data that is of
> the following from:
>
> model = func1(p1) + func2(p2)
>
> func1 is nonlinear in its parameters and func2 is linear in its
> parameters.
>
> There are two things I am struggling with:
>
> 1. I'd like to find the best fit parameters for func1 using an iterative
> approach (e.g. simplex algorithm that changes p1.). At each iteration, I
> want to compute the optimum p2 by linear least squares in the interest of
> speed and robustness.
>
> 2. I'd also like the ability to hold certain parameters fixed in the
> optimization with out redefining my objective function each time.
>
>
> Is there another module you would recommend? I've found openopt, but I
> wanted to get some guidance before I dive in to that.
>
> Erik
>
>
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/scipy-user/attachments/20120225/1f1c4022/attachment.html
More information about the SciPy-User
mailing list