I have a python function with variable number of arguments:
F(x1, x2, ... , xN)
I want to automatically generate N functions representing the derivatives of F with respect to each argument.
F'_1 = dF/dx1
F'_2 = dF/dx2
...
F'_N = dF/dxN
For example, I be able to give both F(x1) = sin(x1) and F(x1, x2) = sin(x1) * cos(x2) and get all the derivatives automatically.
Edit2: If function F was 2 variable (fixed number of arguments), I could use
def f(x,y):
return sin(x)*cos(y)
from sympy import *
x, y = symbols('x y')
f_1 = lambdify((x,y), f(x,y).diff(x))
The trick is to use
inspect.getargspec
to get the names of all the arguments to the function. After that, it's a simple list comprehension:For example: