Ask Your Question
0

general implicit differentiation

asked 2020-05-23 17:11:32 +0100

Cyrille gravatar image

updated 2020-05-23 17:13:24 +0100

Recently i have been helped to write an implicit function differentiator (nice neologism isn't it). Here is the code

def implicit_derivative(V): 
    var("dw1, dw2")
    V_w1 = diff(V, w1)
    V_w2 = diff(V, w2)
    # Differential
    dV = V_w1 * dw1 + V_w2 * dw2 
    # Dérivée du premier ordre
    sol=solve(dV==0, dw2)
    impder=(sol[0]/dw1)
    return impder

This work without difficulty for $V$ function of $w_1$ and $w_2$. But if my variables are $x$ and $y$ or say $\chi$ and $\zeta$. It will not work. I have not found the mechanism to define a general function not dependant of the name of its arguments. And here there is a second problem to find thway to associate the increase d... to its correlative argument that is if I use $\chi$ as the first variable $d\chi$ must substitute to $dw_1$.

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
0

answered 2020-05-23 18:31:29 +0100

tmonteil gravatar image

You can see which symbolic variables are used by the input V with V.variables(). Then, you can define the corresponding derivation symbols by looking to their string representation, add the letter 'd' in front of them, and make them symbols with SR.var function. So, the following should work:

def implicit_derivative(V):
    w1, w2 = V.variables()
    dw1 = SR.var('d{}'.format(w1))
    dw2 = SR.var('d{}'.format(w2))
    V_w1 = diff(V, w1)
    V_w2 = diff(V, w2)
    # Differential
    dV = V_w1 * dw1 + V_w2 * dw2 
    # Dérivée du premier ordre
    sol=solve(dV==0, dw2)
    impder=(sol[0]/dw1)
    return impder
edit flag offensive delete link more

Comments

Thanks. Very nice code. Therer is a little 'bmol' look at the result of this

   χ, ζ =var('chi zeta')
   V=function('V')(χ, ζ)
   implicit_derivative(V)
Cyrille gravatar imageCyrille ( 2020-05-24 05:00:55 +0100 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2020-05-23 17:11:32 +0100

Seen: 601 times

Last updated: May 23 '20