1

我将很快解释发生了什么。我正在学习(scipy.optimize 教程)示例(Nelder-Mead Simplex algorithm)来理解最小化功能,但出现如下所示的错误。我该如何解决?我没有添加任何新值,我只是复制了示例值和示例。

from scipy import optimize

def rosen(x):
     return sum(100.0*(x[1:]-x[:-1]**2.0) + (1 - x[:-1])**2.0)

x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2])
res = optimize.minimize(rosen, x0, method='nelder-mead',
            options={'xtol': 1e-8, 'disp': True})


Command line: C:\Python27\python.exe C:\Users\Desktop\FSFDSD~1.PY
Working directory: C:\Users\Desktop
Timeout: 0 ms

Traceback (most recent call last):
  File "C:\Users\Desktop\FSFDSD~1.PY", line 49, in <module>
    main()
  File "C:\Users\Desktop\FSFDSD~1.PY", line 40, in main
    options={'xtol': 1e-8, 'disp': True})
  File "C:\Python27\lib\site-packages\scipy\optimize\_minimize.py", line 338, in minimize
    return _minimize_neldermead(fun, x0, args, callback, **options)
  File "C:\Python27\lib\site-packages\scipy\optimize\optimize.py", line 424, in 
 _minimize_neldermead
    fsim[0] = func(x0)
  File "C:\Python27\lib\site-packages\scipy\optimize\optimize.py", line 268, in function_wrapper
    return function(x, args)
TypeError: rosen() takes exactly 1 argument (2 given)

Process "Python Interpreter" terminated, ExitCode: 00000001
4

0 回答 0