Implicit Differentiation Sympy
Asked Answered
R

2

6

I've been doing derivatives in sympy, and I didn't know how that would syntactically be written. I tried looking it up, but none of the solutions made sense. For example, if I'm trying to differentiate x**5 + y**2 + z**4 = 8xyz by computation, how would I do that? Would z be a symbol, or a function like in regular derivatives? Thank you.

Rudich answered 17/2, 2016 at 5:59 Comment(2)
Are you doing derivatives or do you try to integrate? You question is not clear about that. Then you should also specify which derivative you want, with respect to which varibale or how you want to integrate the expression, what your integration interval is.Finella
Oh, sorry for that typo there. I'm trying to differentiate with respect to z.Rudich
D
9

For two variables you can use idiff.

In your case, the simplest way is to set x and y to be functions of z, like

x = Function('x')(z)
y = Function('y')(z)

Then normal diff(expr, z) will take the derivative correctly.

Duce answered 18/2, 2016 at 16:39 Comment(2)
So after reading some documentation I got it to work using idiff, but not quite sure what you're saying about using regular diff and setting x and y as functions. I keep getting weird results. Shouldn't z be a function of x or y, depending on which one you're taking with respect to?Rudich
Sure. You said in the question that you are taking the derivative with respect to z.Duce
S
1

You commented you used idiff, here is the corresponding code for those who want to know:

from sympy import symbols, idiff, simplify

x, y, z = symbols('x y z')
ex = x**5 + y**2 + z**4 - 8*x*y*z
ex_d = simplify(idiff(ex,(x,y),z))
display(ex_d)

enter image description here

In idiff(ex,(x,y),z), (x,y) are the dependent variables, and z the variable the derivative is being taken with respect to.

Stela answered 30/10, 2022 at 21:11 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.