前提・実現したいこと
目的関数が最小の時の変数の値を知りたいです。
f(x) = 2*sin(x+y)
g(x) = x + f(x)
このg(x)が最小値を取る時のxとyの値を知りたいです。
現在やりたいことは式の代入で、まずは初歩的な問題から解いています。
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーメッセージ Traceback (most recent call last): File "~~.py", line 13, in <module> kai = fmin(g, [0], args = arg) File "/usr/lib/python2.7/dist-packages/scipy/optimize/optimize.py", line 321, in fmin res = _minimize_neldermead(func, x0, args, callback=callback, **opts) File "/usr/lib/python2.7/dist-packages/scipy/optimize/optimize.py", line 456, in _minimize_neldermead fsim[k] = func(sim[k]) File "/usr/lib/python2.7/dist-packages/scipy/optimize/optimize.py", line 270, in function_wrapper return function(*(wrapper_args + args)) TypeError: <lambda>() takes exactly 1 argument (2 given)
該当のソースコード
python2 ソースコード from scipy.optimize import fmin import numpy as np f = lambda x,a : a*np.sin(x[0] + x[1]) g = lambda x : x[0] + f(x) a = 2 arg = (a,) kai = fmin(g, [0,0], args = arg) print(kai)
試したこと
gの式の引数の部分にselfを書いて揃うようにはしてみました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー