6.19.4 Derivées et derivées partielles d’une expression et derivées d’une fonction : diff derive deriver ’
Généralités
diff ou derive ou deriver sont des fonctions
préfixées alors que ’ est la version postfixée de diff ou
derive ou deriver.
Ces fonctions ont un, deux ou plus de 2 arguments :
-
avec un argument qui peut être soit une fonction, soit une expression
de la variable x.
-
Si cet argument est une fonction, diff ou derive ou deriver ou ’ renvoie la fonction dérivée de cette fonction.
Ces fonctions sont alors equivalentes à function_diff.
- Si cet argument est une expression de la variable x, diff ou
derive ou deriver ou ’ renvoie la dérivée de l’expression
par rapport à x
- Remarque Dans ce cas on peut aussi utiliser convert (ou sa
version infixée =>) avec l’option diff.
- avec 2 arguments qui peuvent être soit une expression et le nom d’une
variable, soit une expression et une liste de noms de variables.
Cela va permettre de calculer des
dérivées et des derivées partielles du premier ordre et plusieurs
arguments pour calculer des derivées partielles de tous les ordres d’une
expression.
- avec plus que 2 arguments qui peuvent être:
une expression et le nom des variables par rapport
auxquelles il faut dériver cette expression (le nom des variables est
éventuellement suivi de $n pour indiquer le nombre n de fois que l’on
veut dériver) ,
Derivée et fonction derivée
diff ou derive ou deriver ou ’ ont comme argument soit
une fonction, soit une expression de la variable x.
-
Si cet argument est une fonction, diff ou derive ou
deriver ou ’ renvoie une fonction qui est la fonction dérivée
de la fonction argument.
diff (ou derive ou deriver ou ’) est alors equivalente à function_diff.
On tape :
f(x):=x^
2+x*cos(x)+
Pour définir g comme f′, on tape :
g:=f’
Ou :
g:=(f=>diff)
Ou :
g:=diff(f)
Ou :
g:=function_diff(f)
Ou :
g:=unapply(diff(f(x),x),x)
Ou :
g(x):=f’(x)
Ou :
g(x):=(f(x)=>diff)
Ou :
g(x):=diff(f)(x))
Puis, on tape :
g(x)
On obtient :
cos(x)+x*(-(sin(x)))+2*x
Pour définir h comme f″, on tape :
h:=f’’
Ou :
h:=diff(diff(f))
Ou :
h:=function_diff(function_diff(f))
Ou :
h:=diff(unapply(diff(f(x),x),x))
Ou :
h(x):=diff(diff(f))(x))
Ou :
h(x):=f’’(x)
Puis, on tape :
h(x)
On obtient :
-sin(x)+x*(-cos(x))-sin(x)+2
- Si cet argument est une expression de la variable x, diff ou
derive ou deriver ou ’ renvoie une expression qui est
l’expression de la dérivée de l’argument par rapport à x.
On tape :
f(x):=x^
+x*cos(x)+
Pour calculer la dérivée de f(x), on tape :
A:=f(x)’
Ou :
A:=diff(f(x))
On obtient :
cos(x)+x*(-(sin(x)))+2*x
Ou encore :
A:=diff(f(a),a)
On obtient :
cos(a)+a*(-(sin(a)))+2*a
MAIS ATTENTION
cela ne définit pas une fonction car le résultat est une expression.
g(x):=diff(f(x)) ou g(x):=diff(f(x),x) n’est pas correct, car lors
d’une affectation ce qui est à droite de := n’est pas évalué lors
de la définition....il faut utiliser unapply
(g(x):=unapply(diff(f(x),x),x)) ou écrire g(x):=diff(f)(x).
Derivées et derivées partielles d’ordre 1 : diff derive deriver ’
Pour avoir des derivées partielles d’ordre 1 :
diff (ou derive ou deriver ou ’) a deux arguments :
une expression et une variable (resp une liste contenant le nom des variables)
(voir fonctions de plusieurs variables paragraphe 6.54).
diff renvoie la dérivée de l’expression par rapport à la variable
donnée comme deuxième paramètre, trés utile pour calculer des
dérivées partielles!) (resp renvoie une liste contenant les dérivées
par rapport aux variables de la liste du 2nd argument).
Exemples :
-
Soit à calculer :
On tape :
(x*y ^
2*z^
3+x*y*z,z)’
ou on tape :
diff(x*y ^
2*z^
3+x*y*z,z)
On obtient :
x*y^
2*3*z^
2+x*y
Si on a cocher Pas à pas dans la configuration générale on a en plus, en vert,
le détail du calcul :
Derivative of a sum: (u+v+...)'=u'+v'+...
with u,v,...=x*y^2*z^3,x*y*z
Derivative of a power: (z^3)'=3*z'*(z)^(3-1)
- Soit à calculer les 3 derivées partielles premières de x*y2*z3+x*y*z.
On tape :
(x*y^
2*z^
3+x*y,[x,y,z])’
Ou on tape :
diff(x*y^
2*z^
3+x*y,[x,y,z])
On obtient :
[y^
2*z^
3+y*z, x*2*y*z^
3+x*z, x*y^
2*3*z^
2+x*y]
Si on a cocher Pas à pas dans la configuration générale on a en plus, en vert,
le détail du calcul :
Derivative of a sum: (u+v+...)'=u'+v'+...
with u,v,...=x*y^2*z^3,x*y
Derivative of a sum: (u+v+...)'=u'+v'+...
with u,v,...=x*y^2*z^3,x*y
Derivative of a power: (y^2)'=2*y'*(y)^(2-1)
Derivative of a power: (z^3)'=3*z'*(z)^(3-1)
- Soit à calculer :
∂3 (x.y2.z3+x.y.z) |
|
∂ y∂2 z |
|
On tape :
(x*y ^
2*z^
3+x*y*z,y,z$2)’
Ou on tape :
diff(x*y ^
2*z^
3+x*y*z,y,z$2)
On obtient :
12*x*y*z
Si on a cocher Pas à pas dans la configuration générale on a en
plus, en vert, le détail du calcul :
Derivative of a sum: (u+v+...)'=u'+v'+...
with u,v,...=x*y^2*z^3,x*y*z
Derivative of a power: (y^2)'=2*y'*(y)^(2-1)
Derivative of a sum: (u+v+...)'=u'+v'+...
with u,v,...=2*x*y*z^3,x*z
Derivative of a power: (z^3)'=3*z'*(z)^(3-1)
Derivative of a power: (z^2)'=2*z'*(z)^(2-1)
Derivée et derivée partielle d’ordre n : diff derive deriver
Lorsque derive (ou diff) a plus de deux arguments,
ce sont : une expression et le nom des variables par rapport
auxquelles il faut dériver cette expression (le nom des variables est
éventuellement suivi de $n pour indiquer le nombre n de fois que l’on
veut dériver).
diff renvoie la dérivée de l’expression par rapport aux variables
données après le premier paramètre (utile pour calculer des
dérivées partielles de tous les ordres).
Donc pour dériver n fois :
diff (ou derive) a n+1 arguments : une expression et le nom de
la variable qui sera répété n fois. Pour avoir une écriture plus
facile on écrira plutôt le nom de la variable suivi de $n pour indiquer
que l’on veut dériver n fois (en effet x$3=(x,x,x)).
Par exemple pour dériver exp(x*y) 1 fois par
rapport à x et 2 fois par rapport à y, on met comme arguments
l’expression, puis, les noms des variables éventuellement suivi de $ pour
indiquer le nombre de fois que l’on veut dériver et on tape
diff(exp(x*y),x,y$2) qui est équivalent à diff(exp(x*y),x,y,y)
(en effet y$2=(y,y)).
Exemples
-
Soit à calculer :
∂2 (x.y2.z3+x.y.z) |
|
∂ x∂ z |
|
On tape :
(x*y ^
2*z^
3+x*y*z,x,z)’
Ou on tape :
diff(x*y ^
2*z^
3+x*y*z,x,z)
On obtient :
y^
2*3*z^
2+y
- Soit à calculer :
∂3 (x.y2.z3+x.y.z) |
|
∂ x∂2 z |
|
On tape :
(x*y ^
2*z^
3+x*y*z,x,z,z)’
Ou on tape :
(x*y ^
2*z^
3+x*y*z,x,z$2)’
Ou on tape :
diff(x*y ^
2*z^
3+x*y*z,x,z,z)
Ou on tape :
diff(x*y ^
2*z^
3+x*y*z,x,z$2)
On obtient :
6*y^
2*z
- Soit à calculer la dérivée troisième de :
On tape :
(1/(x^
2+2),x,x,x)’
Ou on tape :
(1/(x^
2+2),x$3)’
Ou on tape :
diff((1)/(x^
2+2),x,x,x)
Ou on tape :
diff((1)/(x^
2+2),x$3)
On obtient :
(-24*x^
3+48*x)/(x^
8+8*x^
6+24*x^
4+32*x^
2+16)
Remarque
Bien voir la différence entre diff(Xpr,x,y) et diff(Xpr,[x,y])
où Xpr est une expression :
diff(Xpr,x,y) renvoie ∂2(Xpr)/∂ x∂ y et
diff(Xpr,[x,y]) renvoie [∂(Xpr)/∂ x,∂ (Xpr)/∂ y]