何が起こったのか簡単に説明します。最小化機能を理解するために( 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