假设我有以下代码
import numpy as np
f = lambda x,y: (np.sum(x) + np.sum(y))**2
x = np.array([1,2,3])
y = np.array([4,5,6])
df_dx
df_dy
df2_dx2
df2_dxdy
...
有没有一种快速的方法来计算这样一个函数的所有导数(单一和混合)?该模块应该在数组级别执行经典的有限差分技术,即将元素添加h= tol
到数组变量(取决于导数),计算函数并除以h
。
(我的真实案例要复杂得多,因为它涉及来自我无法修改的 DLL 的数组值函数……变量的数量是任意的,请不要专注于这个特定的玩具示例)