### 6.13.17 Substituer une valeur à une variable : `subst substituer`

`subst` a deux ou trois arguments : une expression dependant d’un paramètre et une égalité (paramètre=valeur de substitution) ou une expression dependant d’un paramètre , le paramètre et la valeur de substitution.

- `subst` effectue la substitution demandée dans l’expression à condition que le paramètre ne soit pas affecté car `subst` évalue tout d’abord l’expression et remplace donc le paramètre (si il a été affecté) par sa valeur sans tenir compte de la valeur de substitution donné par le deuxième paramètre.
  On tape :
  `subst(a```^```2+1,a=2)`
  ou :
  `subst(a```^```2+1,a,2)`
  On obtient si la variable `a` n’est pas affectée :
  `5`
  Si la variable `a` est affectée, il faut taper auparavant `purge(a)` pour obtenir `5`.
  Lorsque l’on veut substituer plusieurs variables, pour eviter de faire plusieurs substitutions à la suite, on met comme deuxième argument la liste de ces variables et comme troisième argument la liste de les valeurs de substitution ( ou encore on met comme deuxième argument la liste formée de (nom de variables `=` valeur de substitution).
  On tape :
  `subst(a```^```2+b,[a,b],[2,1])`
  Ou on tape :
  `subst(a```^```2+b,[a=2,b=1])`
  On obtient si les variables `a` et `b` ne sont pas affectées :
  `2```^```2+1`
- `subst` permet aussi d’effectuer des changements de variables dans une intégrale mais `subst` ne gère les changements de variable dans une integrale que si le changement de variable est de la forme `x=f(u)`. Dans ce cas il faut quoter l’intégrale pour que celle-ci ne soit pas calculée si on utilise `integrate` ou bien il faut utiliser la commande `Int`. Dans les deux cas il faut spécifier le nom de la variable d’intégration même si celle-ci est `x`.
  On tape :
  `subst(’integrate(sin(x```^```2)*x,x,0,pi/2)’,x=sqrt(t))`
  Ou on tape :
  `subst(Int(sin(x```^```2)*x,x,0,pi/2),x=sqrt(t))`
  On obtient
  `integrate(sin(t)*sqrt(t)*1/2*1/t*sqrt(t),t,0,(pi/2)```^```2)`
  On tape :
  `subst(’integrate(sin(x```^```2)*x,x)’,x=sqrt(t))`
  Ou on tape :
  `subst(Int(sin(x```^```2)*x,x),x=sqrt(t))`
  On obtient
  `integrate(sin(t)*sqrt(t)*1/2*1/t*sqrt(t),t)`