Siegfried Gonzi
2016-08-03 12:53:09 UTC
Message: 3
Date: Tue, 2 Aug 2016 22:50:42 +0100
Subject: Re: [Numpy-discussion] scipy curve_fit variable list of
optimisation parameters
Content-Type: text/plain; charset=UTF-8
You can use `leastsq` or `least_squares` directly: they both accept an
array of parameters.
BTW, since all of these functions are actually in scipy, you might
want to redirect this discussion to the scipy-user mailing list.
Hi allDate: Tue, 2 Aug 2016 22:50:42 +0100
Subject: Re: [Numpy-discussion] scipy curve_fit variable list of
optimisation parameters
Content-Type: text/plain; charset=UTF-8
You can use `leastsq` or `least_squares` directly: they both accept an
array of parameters.
BTW, since all of these functions are actually in scipy, you might
want to redirect this discussion to the scipy-user mailing list.
I found the solution in the following thread:
http://stackoverflow.com/questions/28969611/multiple-arguments-in-python
One has to call curve_fit with 'p0' (giving curve_fit a clue about the unknown number of variables)
I changed func2 to (note the *):
def func2( x, *a ):
# Bessel function
tmp = scipy.special.j0( x[:,:] )
return np.dot( tmp[:,:] , a[:] )
and call it:
N = number of optimisation parameters
popt = scipy.optimize.curve_fit( func2, x, yi , p0=[1.0]*N)
Regards,
Siegfried Gonzi
Met Office, Exeter, UK
--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.