title: Python: Scipy.optimize Levenberg-marquardt method
body: <p>I have a question about how to use the Levenberg-Marquardt optimize method in Python. In the library SCIPY there are many <a href="http://docs.scipy.org/doc/scipy/reference/tutorial/optimize.html" rel="nofollow noreferrer">optimization methods</a>.</p>
  
  <p>I tried two methods (Nelder-Mead and Basin-hopping) and both work well with the follow command:</p>
  
  <pre><code># Nelder-Mead
  res0_10 = optimize.minimize(f0_10, x0, method='Nelder-Mead', options={'disp': True, 'maxiter': 2000})
  
  # Basin-hopping
  res0_10 = optimize.basinhopping(f0_10, x0, niter=100, disp=True)
  </code></pre>
  
  <p>The problem emerge when I use the Levenberg-Marquardt (I copy only the part of error, because the program is long)</p>
  
  <pre><code>def f0_10(x):
      m, u, z, s = x 
      for i in range(alt_max):
           if i==alt_min: suma=0
           if i &gt; alt_min:
           suma = suma + (B(x, i)-b0_10(x, i))**2
      return np.sqrt(suma/alt_max)
  
  x0 = np.array([40., 0., 500., 50.])
  
  res0_10 = root(f0_10, x0, jac=True, method='lm')
  </code></pre>
  
  <p>I only change the last sentence (<code>res0_10 = root...</code>). The program compile well, but when I execute the program:</p>
  
  <pre><code>Exception in Tkinter callback
  
  Traceback (most recent call last):
  
  File "C:\Users\Quini SB\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.7.4.3348.win-x86_64\lib\lib-tk\Tkinter.py", line 1536, in __call__
  return self.func(*args)
  
  File "C:\Users\Quini SB\Desktop\tfg\Steyn - levmar.py", line 384, in askopenfilename
  res0_10 = root(f0_10, x0, jac=True, method='lm')
  
  File "C:\Users\Quini SB\AppData\Local\Enthought\Canopy\User\lib\site-packages\scipy\optimize\_root.py", line 188, in root
  sol = _root_leastsq(fun, x0, args=args, jac=jac, **options)
  
  File "C:\Users\Quini SB\AppData\Local\Enthought\Canopy\User\lib\site-packages\scipy\optimize\_root.py", line 251, in _root_leastsq
  factor=factor, diag=diag)
  
  File "C:\Users\Quini SB\AppData\Local\Enthought\Canopy\User\lib\site-packages\scipy\optimize\minpack.py", line 377, in leastsq
  shape, dtype = _check_func('leastsq', 'func', func, x0, args, n)
  
  File "C:\Users\Quini SB\AppData\Local\Enthought\Canopy\User\lib\site-packages\scipy\optimize\minpack.py", line 26, in _check_func
  res = atleast_1d(thefunc(*((x0[:numinputs],) + args)))
  
  File "C:\Users\Quini SB\AppData\Local\Enthought\Canopy\User\lib\site-packages\scipy\optimize\optimize.py", line 64, in __call__
  self.jac = fg[1]
  
  IndexError: invalid index to scalar variable.
  </code></pre>
  
  <p>Why does this error happen?</p>