### 6.18.5 Derivées et derivées partielles : `diff derive deriver`

`diff` ou `derive` a deux arguments pour 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.

#### Derivées et derivées partielles d’ordre 1 : `diff derive deriver`

Pour dériver une fois :
`diff` (ou `derive`) a deux arguments : une expression et une variable (resp une liste contenant le nom des variables) (voir fonctions de plusieurs variables paragraphe 6.51).
`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 l’argument ).
Exemples :

- Soit à calculer :

  ∂ (x.y2.z3+x.y.z)
  ∂ z

  On tape :
  `diff(x*y` ``^```2*z```^```3+x*y*z,z)`
  On obtient :
  `x*y```^```2*3*z```^```2+x*y`
- Soit à calculer les 3 derivées partielles premières de x*y2*z3+x*y*z.
  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]`
- Soit à calculer :

  ∂3 (x.y2.z3+x.y.z)
  ∂ y∂2 z

  On tape :
  `diff(x*y` ``^```2*z```^```3+x*y*z,y,z$2)`
  On obtient :
  `x*2*y*3*2*z`

#### 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 :
  `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 :
  `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 :
  `y```^```2*3*2*z`
- Soit à calculer la dérivée troisième de :

  1
  x2+2

  On tape :
  `normal(diff((1)/(x```^```2+2),x,x,x))`
  Ou on tape :
  `normal(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(expr,x,y)` et `diff(expr,[x,y])` :
`diff`(expr,x,y) renvoie ∂2(expr)/∂ x∂ y et
`diff`(expr,[x,y]) renvoie [∂(expr)/∂ x,∂ (expr)/∂ y]