Open soerenwolfers opened 5 years ago
Currently there is no easy way to calculate the general multivariate partial derivative like this
with numdifftools. However, for n=1 and n=2 you can easily calculate partial derivatives using the numdifftools wrappers Jacobian, Hessdiag and Hessian.
An easy fix to get high order partial derivatives from numdifftools is to modify the Jacobian by removing the restriction that n must be one. Then you can get reasonable reliable partial derivaties up to n equal about 10 depending on the function you are differentiating.
This would be a very useful enhancement.
Looking at some bits of sklearn, there is the idea of a power used to specify terms in a multivariate polynomial
For example. (2,1,0) means x[0]^2 x[1]^1 x[2]^0 = x[0]^2 * x[1].
See PolynomialFeatures from sklearn.preprocessing
Passing in powers in this way could be used to specify that you want d^3X/dx^2dy for example
Assume
f
is a function that consumes numpy arrays of shapeN x d
and returns arrays of the formN
(i.e., it is a map from R^d to R and allows for vectorized calls).What is the most elegant way to compute $\partial^{n0}{0}\dots\partial^{nd}{d}f$ using
numdifftools
, if possible in a vectorized fashion as well?