[SciPy-User] optimize.leastsq and improper input parameters

ms devicerandom at gmail.com
Thu Jul 8 19:13:49 EDT 2010


On 08/07/10 21:50, josef.pktd at gmail.com wrote:
> On Thu, Jul 8, 2010 at 1:46 PM, ms<devicerandom at gmail.com>  wrote:

>> massimo at boltzmann:~/work$ python test_norm_leastsq.py
>> Traceback (most recent call last):
>>    File "test_norm_leastsq.py", line 44, in<module>
>>      minimize(x,y,[1,2])
>>    File "test_norm_leastsq.py", line 41, in minimize
>>      i = opt.leastsq(f_to_minimize, p0, args)
>>    File "/usr/lib/python2.6/dist-packages/scipy/optimize/minpack.py",
>> line 300, in leastsq
>>      raise errors[info][1], errors[info][0]
>> TypeError: Improper input parameters.
>>
>> The funny thing is that it worked *before* I messed with the thing to
>> simplify the function-choosing mechanism (before I had N different
>> functions for each combination of fixed/nonfixed params, now I just have
>> two and I fix stuff *inside* the function), and I can't see however how
>> can this be different. Also, the example above leaves me perplexed -it
>> seems leastsq simply doesn't want two-variable functions to be minimized
>> in this case. Any hint?
>
>
> change in def f_to_minimize(pars,args):
>
>      #calculate squared residuals
> ##    resid = [(i-j)**2 for i,j in zip(y,y_estimate)]
> ##    return sum(resid)
>      return [(i-j) for i,j in zip(y,y_estimate)]
>
> leastsq does the squared sum itself, and needs as return of the
> function the vector of residuals
>
> docstring:
> func – A Python function or method which takes at least one
> (possibly length N vector) argument and returns M floating point numbers
>
> with only one parameter leastsq assumes you have one observation and
> one parameter N=1, M=1
>
> this is what I get running the changed script
> (array([-12.,   9.]), 2)
>
> I didn't check anything else in your script.
>
> Josef

Thanks! I didn't notice that leastsq was so clever :)
I tried quickly now and I still have some trouble, but seems unrelated 
to the issue, tomorrow I'll see if it's definitely fixed.

thanks again,

m.



More information about the SciPy-User mailing list