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