繁体   English   中英

将函数派生为Python可调用函数

[英]Generating function derivative as Python callable function

我正在阅读此问题,并且尝试执行相同的操作,但是我希望该函数具有单个参数x 该参数是由优化求解器填充的“值”数组。 例如:

def f(x):
   return x[0]**2 + 3*x[1]

该函数将引用: f(x)=x^2 + 3y ,这意味着x是变量数组。 这些变量是否会出现在当前函数中,因为它们是整个优化问题中的所有变量,这意味着它们可以出现在约束中。 因此,我想发现该函数是所有变量的偏导数。 因此,在这种情况下,我将需要2个可调用函数,以便可以使用它来形成一个新数组,该数组就是该函数的雅可比行列。 有没有办法做到这一点? 怎么样?

免责声明:我是pyneqsys的作者。

如果您愿意使用库,则pyneqsys会这样做 如果没有,您可以查看pyneqsys / symbolic.py的来源(大概)执行此操作来计算jacobian:

f = sympy.Matrix(self.nf, 1, self.exprs)
x = sympy.Matrix(self.nx, 1, self.x)
J = f.jacobian(x)

然后,您需要使用sympy.lambdify以特定求解器的预期语法获取可调用对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM