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 には属性 _diff_wrt がありません」)。