[SciPy-User] problem with the fmin function

servant mathieu servant.mathieu@gmail....
Mon Apr 30 08:54:48 CDT 2012


Hi Oleksandr,

Thank you very much, it works perfectly.
The simplex (Nelder-Mead) routine is rather slow. I'm looking for an
alternative, faster algorithm which could do the job (minimization of a
chi-square) as well. Any idea?
Cheers,
Mathieu




2012/4/30 Oleksandr Huziy <guziy.sasha@gmail.com>

> Hi, error message says it needs 5 input arguments and you are giving one
> (the list but still only one), you could change your chis function
>
> def chis (x):
>               a, ter , v , sda , rd = x
>               observed data
>               simulated_data = spotdiffusion ( a, ter , v , sda , rd)
>               do chi-square computations
>               returns the chi-square value (float)
>
> cheers
>
>
> --
> Oleksandr Huziy
>
> 2012/4/30 servant mathieu <servant.mathieu@gmail.com>
>
>> Dear scipy users,
>>
>> I'm trying to minimize a chi-square value by a simplex routine. My code
>> contains two functions: the first one, called spotdiffusion(a, ter , v ,
>> sda , rd) generates some simulated data for a given set of parameter
>> values. The second function, called chis ( a, ter , v , sda , rd), computes
>> a chi-square value from the comparison of observed and simulated data, for
>> a given set of parameter values. To do so, the chis function calls the
>> spotdiffusion one. Here is a simplified structure of my code:
>>
>> def spotdiffusion (a, ter , v , sda , rd):
>>              do simulation computations
>>              returns an array of simulated data
>>
>> def chis (a, ter , v , sda , rd):
>>               observed data
>>               simulated_data = spotdiffusion ( a, ter , v , sda , rd)
>>               do chi-square computations
>>               returns the chi-square value (float)
>>
>> Now I want now to find a, ter, v, sda and rda values which minimize the
>> chi-square. Here is my attempt:
>>
>> x0 = np.array ([0.11,0.25,0.35, 1.7, 0.017]) ####initial guess
>> xopt = fmin (chis, x0, maxiter=300)
>>
>> However, python returns an error:
>> Traceback (most recent call last):
>>   File "<ipython console>", line 1, in <module>
>>   File
>> "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\startup.py",
>> line 128, in runfile
>>     execfile(filename, glbs)
>>   File "C:\Users\mathieu\Desktop\modeling\spotlight diffusion
>> model\fitting_spotlight.py", line 246, in <module>
>>     xopt = fmin (chis, x0, maxiter=300)
>>   File "C:\Python27\lib\site-packages\scipy\optimize\optimize.py", line
>> 257, in fmin
>>     fsim[0] = func(x0)
>>   File "C:\Python27\lib\site-packages\scipy\optimize\optimize.py", line
>> 176, in function_wrapper
>>     return function(x, *args)
>> TypeError: chis() takes exactly 5 arguments (1 given)
>>
>> I don't understand where is my mistake. Any help would be appreciated!
>>
>> Cheers,
>> Mathieu
>>
>>
>> _______________________________________________
>> SciPy-User mailing list
>> SciPy-User@scipy.org
>> http://mail.scipy.org/mailman/listinfo/scipy-user
>>
>>
>
> _______________________________________________
> 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/20120430/51293e7a/attachment-0001.html 


More information about the SciPy-User mailing list