La fonction diff
permet de calculer la dérivée d'une
expression par rapport à une ou plusieurs de ses variables. Pour
dériver une fonction ,
on peut appliquer diff
à l'expression , mais alors le
résultat est une expression. Si on souhaite définir la fonction
dérivée, il faut utiliser function_diff
.
E:=x^2-1 diff(E) f:=unapply(E,x) diff(f(x)) f1:=function_diff(f)
Il ne faut pas définir la fonction dérivée par
f1(x):=diff(f(x))
, car x
aurait dans cette définition
deux sens incompatibles : c'est d'une part la
variable formelle de dérivation et d'autre part l'argument
de la fonction f1
. D'autre part, cette définition
évaluerait diff
à chaque appel de la fonction, ce
qui serait inefficace
(dans la définition d'une fonction, le membre de droite n'est
pas évalué). Il faut donc soit utiliser
f1:=function_diff(f)
,
soit f1:=unapply(diff(f(x)),x)
.
La fonction diff
s'applique à n'importe quelle combinaison de
variables, et permet de calculer des dérivées partielles
successives.
E:=sin(x*y) diff(E,x) diff(E,y) diff(E,x,y)-diff(E,y,x) simplify(ans()) diff(E,x$2,y$3)
Si le deuxième argument de diff
est une liste, une
liste de dérivées est retournée. Par exemple pour calculer
le gradient de :
diff(sin(x*y),[x,y])
(on peut aussi utiliser grad
).
Des commandes particulières permettent de calculer les
combinaisons classiques de dérivées partielles.
Dérivées | |
diff(ex) |
dérivée d'une expression |
function_diff(f) |
dérivée d'une fonction |
diff(ex,x$n,y$m) |
dérivées partielles |
grad |
gradient |
divergence |
divergence |
curl |
rotationnel |
laplacian |
laplacien |
hessian |
matrice hessienne |