Substituer une valeur à une variable : subst substituer

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

`subst` a deux ou trois arguments : une expression dépendant 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 des noms 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)`