# Implicit differentiation at a point

Posted 3 months ago
790 Views
|
4 Replies
|
5 Total Likes
|
 I have the following implicit equation, and I'd like to compute the derivative of p with respect to T at a specific point. In other words, if I were to create the Contourplot of this equation, with p as the y-axis, and T as the x-axis, what would be its slope a certain point. I'm using Dt[] for the derivative, but it seems to give another implicit function, whereas I'm looking a numeric value. Code is attached. derivativ = Dt[p == \[Phi]/R + ((1 - \[Phi]) \[Phi] (1 - \[Lambda]) \[Beta])/(((W - T p) R + \[Phi] T) R + \[Phi]*(1 - \[Phi]) T)/(R (\[Lambda]/((W - T p) R + \[Phi] T ) + ((1 - \[Lambda]) \[Beta] R)/(((W - T p) R + \[Phi] T) R + \[Phi] (1 - \[Phi]) T))), T] derivativ /. {p -> 0.3192789688874802, T -> 313.206} I get the following warning: General::ivar: 313.206 is not a valid variable. The output is: Dt[0.319279, 313.206] == -142495. (-7.33049*10^-13 (0.16 + 1.05263 (0.2 + 1.05263 (-0.319279 - 313.206 Dt[0.319279, 313.206]))) - 9.02573*10^-14 (0.2 + 1.05263 (-0.319279 - 313.206 Dt[0.319279, 313.206]))) - 1.16674*10^-7 (0.16 + 1.05263 (0.2 + 1.05263 (-0.319279 - 313.206 Dt[0.319279, 313.206]))) Is it possible to get a number for the derivative evaluated at {p -> 0.3192789688874802, T -> 313.206}? And what does that warning actually mean?Thank you, Attachments: Answer
4 Replies
Sort By:
Posted 3 months ago
 You need to control what symbols are constant and what symbols vary with T. I really think you need to use D[] and not Dt[]. Dt[] assumes that every symbol varies with T. This is an unusual case. For example, if all your variables are constant in T, except for p, you would do: derivativ = D[p[T] == \[Phi]/ R + ((1 - \[Phi]) \[Phi] (1 - \[Lambda]) \[Beta])/(((W - T p[ T]) R + \[Phi] T) R + \[Phi]*(1 - \[Phi]) T)/(R (\ \[Lambda]/((W - T p[ T]) R + \[Phi] T) + ((1 - \[Lambda]) \[Beta] R)/(((W \ - T p[T]) R + \[Phi] T) R + \[Phi] (1 - \[Phi]) T))), T] Now solve for the term p'[T] (solve returns a list of solution lists so take the first and only answer) ans = Simplify[Solve[derivativ, p'[T]]][[1, 1]] use the solution rule to evaluate p'[T] and substitute your numbers: p'[T] /. ans /. {p[T] -> 0.3192789688874802, T -> 313.206} If, say, R depended on T you would change all occurrences of R to R[T] and Mathematica would know to do the differentiation with T and you would get terms with R'[T] in the result. I hope this helps.RegardsNeil Answer
Posted 3 months ago
 Hello Neil,Thank you so much! Your suggestion works perfectly. I have a follow up question: I'm trying to plot the derivative p'[T] as a function T, so p'[T] on the y-axis, and T on the x-axis. The following code returns an empty plot. I assume I need to compute p[T] for all T in my desired range, ie: {0,1000}, and then compute p'[T] for each pair of p[T] and T, and then plot. Would you know any way of achieving that? Thank you again! Plot[Evaluate[ans], {T, 0, 10000}] ` Answer
Posted 3 months ago
 The problem is ans is not numerical. You need to define all the variables if you want to plot it. For example Phi, Lambda, etc. You will also need p[T] for each T or some function for p (or interpolation).To verify that you have everything in place, try evaluating the plot argument and make sure its numerical.Regards. Answer
Posted 3 months ago
 Crossposted here. Answer