Как вычислить (символический) градиент многомерной функции в sympy?Есть ли векторизованный способ вычисления градиента в sympy?
Очевидно, что я мог бы рассчитать отдельно производную для каждой переменной, но есть ли она векторизованная операция?
Например
m=sympy.Matrix(sympy.symbols('a b c d'))
Теперь при г = 0..3 я могу сделать:
sympy.diff(np.sum(m*m.T),m[i])
, который будет работать, но я предпочел бы сделать что-то вроде:
sympy.diff(np.sum(m*m.T),m)
Что не работает («AttributeError: ImmutableMatrix не имеет атрибута _diff_wrt»).
Это не сработает, потому что он рассчитывал взять производную по отношению к 'm' как переменную, которую он не знает, как это сделать. Просто используйте представление списка над 'm'. – asmeurer