Implicit Differentiation made easy with Mathematica

PeterCullenBurbery
I work through various examples of implicit differentiation.

Details

These examples are from the documentation. I modified some of the functions and created my own examples.
In[]:=
q1=QuestionObject["What is the derivative of 2z with respect to x where z is constrained by
2
x
+
2
z
=1?",AssessmentFunction[ImplicitD[2z,
2
x
+
2
z
==1,z,x]]]
Out[]=
What is the derivative of 2z with respect to x where z is constrained by
2
x
+
2
z
=1?
​
​
QuestionFramework`Private`submitButtonFE`QuestionFramework`Private`result$$9123514081793185329782258874971834346086=IfTrueQQuestionFramework`Private`$qointerpretersupport,AssessmentFunction-
2x
z
Association[Score1]InterpreterFE`QuestionFramework`Private`interpreter$$9123514081793185329782258874971834346086FE`QuestionFramework`Private`input$$9123514081793185329782258874971834346086,SubmissionCountFE`QuestionFramework`Private`submissionCount$$9123514081793185329782258874971834346086,AssessmentFunction-
2x
z
Association[Score1]FE`QuestionFramework`Private`input$$9123514081793185329782258874971834346086,SubmissionCountFE`QuestionFramework`Private`submissionCount$$9123514081793185329782258874971834346086;FE`QuestionFramework`Private`submittedvalue$$9123514081793185329782258874971834346086=FE`QuestionFramework`Private`input$$9123514081793185329782258874971834346086;FE`QuestionFramework`Private`submissionCount$$9123514081793185329782258874971834346086=QuestionFramework`Private`getSubmissionCount[FE`QuestionFramework`Private`result$$9123514081793185329782258874971834346086];FE`QuestionFramework`Private`buttonenabled$$9123514081793185329782258874971834346086=If[QuestionFramework`Private`reachedMaxSubmissionsQ[FE`QuestionFramework`Private`result$$9123514081793185329782258874971834346086,FE`QuestionFramework`Private`submissionCount$$9123514081793185329782258874971834346086],False,True,True],True
In[]:=
ImplicitD[2z,
2
x
+
2
z
==1,z,x]
Out[]=
-
2x
z
In[]:=
q1
Out[]=
What is the derivative of 2z with respect to x where z is constrained by
2
x
+
2
z
=1?
-
2x
z
Correct
​
QuestionFramework`Private`submitButtonFE`QuestionFramework`Private`result$$2807442636339599572687895529201154714086=IfTrueQQuestionFramework`Private`$qointerpretersupport,AssessmentFunction-
2x
z
Association[Score1]InterpreterFE`QuestionFramework`Private`interpreter$$2807442636339599572687895529201154714086FE`QuestionFramework`Private`input$$2807442636339599572687895529201154714086,SubmissionCountFE`QuestionFramework`Private`submissionCount$$2807442636339599572687895529201154714086,AssessmentFunction-
2x
z
Association[Score1]FE`QuestionFramework`Private`input$$2807442636339599572687895529201154714086,SubmissionCountFE`QuestionFramework`Private`submissionCount$$2807442636339599572687895529201154714086;FE`QuestionFramework`Private`submittedvalue$$2807442636339599572687895529201154714086=FE`QuestionFramework`Private`input$$2807442636339599572687895529201154714086;FE`QuestionFramework`Private`submissionCount$$2807442636339599572687895529201154714086=QuestionFramework`Private`getSubmissionCount[FE`QuestionFramework`Private`result$$2807442636339599572687895529201154714086];FE`QuestionFramework`Private`buttonenabled$$2807442636339599572687895529201154714086=If[QuestionFramework`Private`reachedMaxSubmissionsQ[FE`QuestionFramework`Private`result$$2807442636339599572687895529201154714086,FE`QuestionFramework`Private`submissionCount$$2807442636339599572687895529201154714086],False,True,True],True
In[]:=
q2=QuestionObject["What is the second derivative of log(xz)​, assuming that
2
z
-xsin(z)0?",AssessmentFunction[ImplicitD[Log[xz],
2
z
-xSin[z]==1,z,{x,2}]]]
Out[]=
What is the second derivative of log(xz)​, assuming that
2
z
-xsin(z)0?
​
​
QuestionFramework`Private`submitButtonFE`QuestionFramework`Private`result$$5104697079347298689425655047413025403990=IfTrueQQuestionFramework`Private`$qointerpretersupport,AssessmentFunction
8
5
z
-12x
4
z
Cos[z]+6
2
x
3
z
2
Cos[z]
-
3
x
2
z
3
Cos[z]
-4
2
x
2
z
Cos[z]Sin[z]+2
3
x
z
2
Cos[z]
Sin[z]+4
2
x
z
2
Sin[z]
-
3
x
Cos[z]
2
Sin[z]
+
3
x
z
3
Sin[z]
2
x
2
z
3
(-2z+xCos[z])
Association[Score1]InterpreterFE`QuestionFramework`Private`interpreter$$5104697079347298689425655047413025403990FE`QuestionFramework`Private`input$$5104697079347298689425655047413025403990,SubmissionCountFE`QuestionFramework`Private`submissionCount$$5104697079347298689425655047413025403990,AssessmentFunction
8
5
z
-12x
4
z
Cos[z]+6
2
x
3
z
2
Cos[z]
-
3
x
2
z
3
Cos[z]
-4
2
x
2
z
Cos[z]Sin[z]+2
3
x
z
2
Cos[z]
Sin[z]+4
2
x
z
2
Sin[z]
-
3
x
Cos[z]
2
Sin[z]
+
3
x
z
3
Sin[z]
2
x
2
z
3
(-2z+xCos[z])
Association[Score1]FE`QuestionFramework`Private`input$$5104697079347298689425655047413025403990,SubmissionCountFE`QuestionFramework`Private`submissionCount$$5104697079347298689425655047413025403990;FE`QuestionFramework`Private`submittedvalue$$5104697079347298689425655047413025403990=FE`QuestionFramework`Private`input$$5104697079347298689425655047413025403990;FE`QuestionFramework`Private`submissionCount$$5104697079347298689425655047413025403990=QuestionFramework`Private`getSubmissionCount[FE`QuestionFramework`Private`result$$5104697079347298689425655047413025403990];FE`QuestionFramework`Private`buttonenabled$$5104697079347298689425655047413025403990=If[QuestionFramework`Private`reachedMaxSubmissionsQ[FE`QuestionFramework`Private`result$$5104697079347298689425655047413025403990,FE`QuestionFramework`Private`submissionCount$$5104697079347298689425655047413025403990],False,True,True],True
In[]:=
ImplicitD[Log[xz],
2
z
-xSin[z]==1,z,{x,2}]//TraditionalForm
Out[]//TraditionalForm=
1
2
x
2
z
3
(xcos(z)-2z)
(-
3
x
2
z
3
cos
(z)+
3
x
z
3
sin
(z)+2
3
x
zsin(z)
2
cos
(z)-
3
x
2
sin
(z)cos(z)+6
2
x
3
z
2
cos
(z)-4
2
x
2
z
sin(z)cos(z)+4
2
x
z
2
sin
(z)-12x
4
z
cos(z)+8
5
z
)
In[]:=
q2
Out[]=
What is the second derivative of log(xz)​, assuming that
2
z
-xsin(z)0?
8
5
z
-12x
4
z
Cos[z]+6
2
x
3
z
2
Cos[z]
-
3
x
2
z
3
Cos[z]
-4
2
x
2
z
Cos[z]Sin[z]+2
3
x
z
2
Cos[z]
Sin[z]+4
2
x
z
2
Sin[z]
-
3
x
Cos[z]
2
Sin[z]
+
3
x
z
3
Sin[z]
2
x
2
z
3
(-2z+xCos[z])
Correct
​
QuestionFramework`Private`submitButtonFE`QuestionFramework`Private`result$$3195445005469879998376674211736795277119=IfTrueQQuestionFramework`Private`$qointerpretersupport,AssessmentFunction
8
5
z
-12x
4
z
Cos[z]+6
2
x
3
z
2
Cos[z]
-
3
x
2
z
3
Cos[z]
-4
2
x
2
z
Cos[z]Sin[z]+2
3
x
z
2
Cos[z]
Sin[z]+4
2
x
z
2
Sin[z]
-
3
x
Cos[z]
2
Sin[z]
+
3
x
z
3
Sin[z]
2
x
2
z
3
(-2z+xCos[z])
Association[Score1]InterpreterFE`QuestionFramework`Private`interpreter$$3195445005469879998376674211736795277119FE`QuestionFramework`Private`input$$3195445005469879998376674211736795277119,SubmissionCountFE`QuestionFramework`Private`submissionCount$$3195445005469879998376674211736795277119,AssessmentFunction
8
5
z
-12x
4
z
Cos[z]+6
2
x
3
z
2
Cos[z]
-
3
x
2
z
3
Cos[z]
-4
2
x
2
z
Cos[z]Sin[z]+2
3
x
z
2
Cos[z]
Sin[z]+4
2
x
z
2
Sin[z]
-
3
x
Cos[z]
2
Sin[z]
+
3
x
z
3
Sin[z]
2
x
2
z
3
(-2z+xCos[z])
Association[Score1]FE`QuestionFramework`Private`input$$3195445005469879998376674211736795277119,SubmissionCountFE`QuestionFramework`Private`submissionCount$$3195445005469879998376674211736795277119;FE`QuestionFramework`Private`submittedvalue$$3195445005469879998376674211736795277119=FE`QuestionFramework`Private`input$$3195445005469879998376674211736795277119;FE`QuestionFramework`Private`submissionCount$$3195445005469879998376674211736795277119=QuestionFramework`Private`getSubmissionCount[FE`QuestionFramework`Private`result$$3195445005469879998376674211736795277119];FE`QuestionFramework`Private`buttonenabled$$3195445005469879998376674211736795277119=If[QuestionFramework`Private`reachedMaxSubmissionsQ[FE`QuestionFramework`Private`result$$3195445005469879998376674211736795277119,FE`QuestionFramework`Private`submissionCount$$3195445005469879998376674211736795277119],False,True,True],True
In[]:=
q3=QuestionObject["z is constrained by
2
w
+
3
x
+
4
z
=5 and z is constrained by log(w x)=z. What is the implicit derivative of
(w+x+z)

with respect to w?",AssessmentFunction[ImplicitD[
w+x+z

,{
2
w
+
3
x
+
5
z
==5,Log[wx]==z},{x,z},w]]]
Out[]=
z is constrained by
2
w
+
3
x
+
4
z
=5 and z is constrained by log(w x)=z. What is the implicit derivative of
(w+x+z)

with respect to w?
​
​
QuestionFramework`Private`submitButtonFE`QuestionFramework`Private`result$$8647766830310210456185936695686288405949=IfTrueQQuestionFramework`Private`$qointerpretersupport,AssessmentFunction-
w+x+z

(2
2
w
+2
2
w
x-3
3
x
-3w
3
x
-5w
4
z
+5x
4
z
)
w(3
3
x
+5
4
z
)
Association[Score1]InterpreterFE`QuestionFramework`Private`interpreter$$8647766830310210456185936695686288405949FE`QuestionFramework`Private`input$$8647766830310210456185936695686288405949,SubmissionCountFE`QuestionFramework`Private`submissionCount$$8647766830310210456185936695686288405949,AssessmentFunction-
w+x+z

(2
2
w
+2
2
w
x-3
3
x
-3w
3
x
-5w
4
z
+5x
4
z
)
w(3
3
x
+5
4
z
)
Association[Score1]FE`QuestionFramework`Private`input$$8647766830310210456185936695686288405949,SubmissionCountFE`QuestionFramework`Private`submissionCount$$8647766830310210456185936695686288405949;FE`QuestionFramework`Private`submittedvalue$$8647766830310210456185936695686288405949=FE`QuestionFramework`Private`input$$8647766830310210456185936695686288405949;FE`QuestionFramework`Private`submissionCount$$8647766830310210456185936695686288405949=QuestionFramework`Private`getSubmissionCount[FE`QuestionFramework`Private`result$$8647766830310210456185936695686288405949];FE`QuestionFramework`Private`buttonenabled$$8647766830310210456185936695686288405949=If[QuestionFramework`Private`reachedMaxSubmissionsQ[FE`QuestionFramework`Private`result$$8647766830310210456185936695686288405949,FE`QuestionFramework`Private`submissionCount$$8647766830310210456185936695686288405949],False,True,True],True
Last but not least I can find the arity of a function:
I define a function for the arity of a function:
I remember seeing implicit derivatives in my calculus class so I think its cool that there's now a function to solve this.
Solve this problem:
Use Simplify to find the simplest form:
Solve this problem:
I use the following variable assignments, but its basically the same problem:
Solve an implicit differentiation problem with four variables: