0
我正在求解大型方程組,但可以訪問jacobian矩陣。將附加參數傳遞給jacobian中的scipy.optimize.root
我決定使用scipy.optimize.root(打開其他建議),在那裏我可以將jacobian作爲附加的可調用對象。唯一的問題是,我的雅可比包含額外的常量,例如。
對於這個例子Y,Z需要解決和k是常數
import scipy.optimize
def fun(x, k):
[y, z]= x
return [k*y**2 + z**2 - 25, k*z*y ]
def jacobian(x, k):
[y, z] = x
j = [[2*k*y, 2*z],
[ k*z, k*y]]
return j
solution = scipy.optimize.root(fun, [x1, x2], jaco=(jacobian, value_for_k))
你可以使用'functools.partial'注入一個k。 https://docs.python.org/3/library/functools.html#functools.partial – cel