多变量函数的导数 - Python

时间:2018-06-07 21:37:34

标签: python-3.x function derivative

我试图在Python中使用BFGS方法最小化以下函数。

在这里,我的函数f描述了三个已知点的欧几里德距离(我们知道这三个点的坐标)和一个变量点cp1其中{{1 }是变量点的坐标。 这是我想要最小化的功能。

cp1 = (x1,y1)

函数x1, y1 = sympy.symbols("x_1, y_1") f = sqrt(((pos[leaves[0]][0] - cp1[0])**2) + (pos[leaves[0]][1] - cp1[1])**2) + sqrt(((pos[leaves[1]][0] - cp1[0])**2) + (pos[leaves[1]][1] - cp1[1])**2)+ sqrt(((pos[leaves[2]][0] - cp1[0])**2) + (pos[leaves[2]][1] - cp1[1])**2) 如下;

f

然后,我试图得到f= sqrt((-x1 + 246)**2 + (-y1 + 4579)**2) + sqrt((-x1 + 286)**2 + (-y1 + 1354)**2) + sqrt((-x1 + 3466)**2 + (-y1 + 345)**2) 的一阶导数,因为BFGS方法需要它来进行计算。

f

但是,这并没有给我正确的结果。相反,它返回 # First partial derivative with respect to x1 and y1 fpx = [f.diff(x_) for x_ in (x1, y1)] print('xder', fpx) 作为导数的结果。有人可以帮我纠正我的代码中的错误吗?

0 个答案:

没有答案