Wie berechnet man den (symbolischen) Gradienten einer multivariaten Funktion in sympy?Gibt es eine vektorisierte Methode, um den Gradienten in sympy zu berechnen?
Offensichtlich könnte ich separat die Ableitung für jede Variable berechnen, aber gibt es eine vektorisierte Operation, die das tut?
Zum Beispiel
m=sympy.Matrix(sympy.symbols('a b c d'))
Jetzt für i = 0..3 kann ich tun:
sympy.diff(np.sum(m*m.T),m[i])
, die funktionieren wird, aber ich eher so etwas wie:
sympy.diff(np.sum(m*m.T),m)
Was nicht funktioniert ("AttributeError: ImmutableMatrix hat kein Attribut _diff_wrt").
Dies funktioniert nicht, weil es erwarten würde, die Ableitung in Bezug auf "m" als eine Variable zu nehmen, die es nicht zu tun weiß. Verwenden Sie einfach ein Listenverständnis über 'm'. – asmeurer