fjac在scipy.optimize.OptimizeResult中意味着什么?

时间:2017-08-31 03:24:00

标签: python scipy mathematical-optimization

请考虑以下代码。

from scipy import optimize

def fun(x):
     return [x[0]  + 0.5 * (x[0] - x[1])**3 - 1.0,
             0.5 * (x[1] - x[0])**3 + x[1]]

def jac(x):
    return np.array([[1 + 1.5 * (x[0] - x[1])**2,
                      -1.5 * (x[0] - x[1])**2],
                      [-1.5 * (x[1] - x[0])**2,
                      1 + 1.5 * (x[1] - x[0])**2]])

sol = optimize.root(fun, [0, 0],method='hybr')
print(sol)

特别是print(sol.fjac)会返回以下2 x 2矩阵。我们称之为矩阵A

[[-0.9   0.44]
 [-0.44 -0.9 ]]

根据documentation,这是在某个时刻评估的函数fun的雅可比矩阵。

问题即可。究竟在哪一点?更确切地说,x0等于矩阵jac(x0) A的价值是多少?

我已将上面的显式雅可比行列用于测试目的。

例如,我测试jac(sol.x)并且它与上面的2 x 2矩阵不同,因此它不能在解决方案中评估雅可比矩阵。我也做了jac([0,0]),它仍然不等于给定的矩阵。

有什么想法吗?

0 个答案:

没有答案