我想用 sp.optimize.minimize 在 x 上優化函數 f(x,y,z)。Jacobian 只依賴于 x 和 y,它是函數 J(x,y)。(這只是一個玩具示例)如果我嘗試:import numpy as npimport scipy as spdef f(x,y,z): return(x**2+x*y**3+z)def J(x,y): return(2*x+y**3)x0,y,z=0,1,4sp.optimize.minimize(f,x0,args=(y,z),jac=J)我收到一個錯誤“J() 接受 2 個位置參數,但給出了 3 個”,因為優化將 y 和 z 傳遞給 J。有什么方法可以定義我想傳遞給 f 的參數,以及我想傳遞給 J 的參數嗎?(一種選擇是定義 f 和 J ,使它們具有相同的參數,而忽略函數不需要的參數,但我希望有更優雅的方法)
使用 sp.optimize.minimize Python 的目標函數和雅可比的不同參數
慕桂英3389331
2022-06-28 15:45:01