[SciPy-User] problem with the fmin function

Oleksandr Huziy guziy.sasha at gmail.com
Mon Apr 30 07:15:38 EDT 2012


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 at 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 at 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/5e8353a9/attachment.html>


More information about the SciPy-User mailing list