【发布时间】:2014-02-05 15:42:20
【问题描述】:
如何在 sympy 中计算多元函数的(符号)梯度?
显然我可以分别计算每个变量的导数,但是有没有一个矢量化的操作可以做到这一点?
例如
m=sympy.Matrix(sympy.symbols('a b c d'))
现在 i=0..3 我可以这样做:
sympy.diff(np.sum(m*m.T),m[i])
这会起作用,但我宁愿做这样的事情:
sympy.diff(np.sum(m*m.T),m)
哪个不起作用(“AttributeError: ImmutableMatrix has no attribute _diff_wrt”)。
【问题讨论】:
-
这行不通,因为它希望将关于
m的导数作为一个变量,它不知道该怎么做。只需对m使用列表推导即可。
标签: python sympy symbolic-math derivative