### 6.21.5 Intégration par parties : integrer_par_parties_dv ibpdv et integrer_par_parties_u ibpu

#### ibpdv

ibpdv permet de chercher une primitive (ou de calculer une intégrale définie) d’une expression de la forme u(x).v′(x).
ibpdv a deux paramètres pour les primitives et cinq paramètres pour les intégrales définies :

- soit une expression de la forme u(x).v′(x) et v(x) (ou une liste de deux expressions [F(x), u(x)*v′(x)] et v(x)),
- soit une expression de la forme g(x) et 0 (ou une liste de deux expressions [F(x), g(x)] et 0).
- pour les intégrales définies, il faut rajouter trois autres paramètres : le nom de la variable et les bornes.

Lorsque ibpdv a 2 arguments ibpdv renvoie :

- si v(x) ≠ 0, une liste formée de u(x).v(x) et de −v(x).u′(x) (ou une liste formée de F(x)+u(x).v(x) et de −v(x).u′(x)),
- si le deuxième argument est nul, une primitive de g(x) (le premier argument) (ou F(x)+une primitive de g(x)) :
  donc, ibpdv(g(x),0) renvoie une primitive G(x) de g(x) ou
  ibpdv([F(x),g(x)],0) renvoie F(x)+G(x) où diff(G(x))=g(x).

C’est à dire ibpdv renvoie les termes que l’on doit calculer quand on fait une intégration par parties, en faisant éventuellement plusieurs ibpdv à la suite.
Ainsi, lorsque l’on vient d’utiliser la commande ibpdv(u(x)*v’(x),v(x)), il reste alors à calculer l’intégrale du deuxième terme puis à faire la somme avec le premier terme pour obtenir une primitive de u(x).v′(x): pour cela on peut utiliser à nouveau la commande ibpdv avec comme premier paramètre la liste obtenue et comme deuxième paramètre un nouveau v(x) (ou 0 pour terminer l’intégration).
On tape :

ibpdv(ln(x),x)

On obtient :

[x.ln(x),-1]

puis

ibpdv([x.ln(x),-1],0)

On obtient :

-x+x.ln(x)

Lorsque ibpdv a 5 arguments ibpdv(u(x)*v’(x),v(x),x,a,b) ou ibpdv([F(x),u(x)*v’(x),v(x),x,a,b) renvoie :

- si v(x) ≠ 0, une liste formée de u(b).v(b)−u(a).v(a) et de −v(x).u′(x) (ou une liste formée de F(b)+u(b).v(b)−F(a)−u(a).v(a) et de −v(x).u′(x)),
- si le deuxième argument est nul, ibpdv(g(x),0,x,a,b) renvoie G(b)−G(a) où G(x) est une primitive du premier argument g(x) et
  ibpdv([F(x),g(x)],0,x,a,b) renvoie F(x)+G(b)−G(a) où G(x) est une primitive de g(x)) de façon à pouvoir faire plusieurs ibpdv à la suite.

On tape :

ibpdv(ln(x),x,x,2,3)

On obtient :

[3*ln(3)-2*ln(2),-1]

puis

ibpdv([3*ln(3)-2*ln(2),-1],0,x,2,3)

On obtient :

-1+3*ln(3)-2*ln(2)

Remarque
Lorsque le premier paramètre de ibpdv est une liste de deux éléments, ibpdv n’agit que sur le dernier élément de cette liste et ajoute le terme intégré au premier élément de la liste (de façon à pouvoir faire plusieurs ibpdv à la suite).
On a par exemple :
ibpdv((log(x))`^`2,x) = [x*(log(x))`^`2,-(2*log(x))]
il reste à intégrer -(2*log(x)), on utilise ibpdv(ans(),x) ou on tape :
ibpdv([x*(log(x))`^`2,-(2*log(x))],x)
On obtient :
[x*(log(x))`^`2+x*(-(2*log(x))),2]
et il reste à intégrer 2, on utilise ibpdv(ans(),0) :
ibpdv([x*(log(x))`^`2+x*(-(2*log(x))),2],0).
On obtient : x*(log(x))`^`2+x*(-(2*log(x)))+2*x

#### ibpu

ibpu permet de chercher une primitive (ou de calculer une intégrale définie) d’une expression de la forme u(x).v′(x).
ibpu a deux paramètres pour les primitives et cinq paramètres pour les intégrales définies :

- soit une expression de la forme u(x).v′(x) et u(x) (ou une liste de deux expressions [F(x), u(x)*v′(x)] et u(x)),
- soit une expression de la forme g(x) et 0 (ou une liste de deux expressions [F(x), g(x)] et 0).
- pour les intégrales définies, il faut rajouter trois autres paramètres : le nom de la variable et les bornes.

Lorsque ibpu a 2 arguments ibpu renvoie : ibpu renvoie :

- si u(x) ≠ 0, une liste formée de u(x).v(x) et de −v(x).u′(x) (ou une liste formée de F(x)+u(x).v(x) et de −v(x).u′(x)),
- si le deuxième argument est nul, une primitive de g(x) (le premier argument) (ou F(x)+une primitive de g(x)):
  ibpu(g(x),0) renvoie G(x) où diff(G(x))=g(x) ou
  ibpu([F(x),g(x)],0) renvoie F(x)+G(x) où diff(G(x))=g(x).

c’est à dire ibpu renvoie les termes que l’on doit calculer quand on fait une intégration par parties, en faisant éventuellement plusieurs ibpu à la suite.
Ainsi, lorsque l’on vient d’utiliser la commande ibpu(u(x)*v’(x),u(x)), il reste à calculer l’intégrale du deuxième terme puis à faire la somme avec le premier terme pour obtenir une primitive de u(x).v′(x). Pour cela, on peut utiliser à nouveau la commande ibpu avec comme premier paramètre la liste obtenue et comme deuxième paramètre un nouveau u(x) (ou 0 pour terminer l’intégration).
On tape :

ibpu(ln(x),ln(x))

On obtient :

[x.ln(x),-1]

puis

ibpu([x.ln(x),-1],0)

On obtient :

-x+x.ln(x)

Lorsque ibpu a 5 arguments ibpu(u(x)*v’(x),u(x),x,a,b) ou ibpu([F(x),u(x)*v’(x)],u(x),x,a,b) renvoie :

- si u(x) ≠ 0, une liste formée de u(b).v(b)−u(a).v(a) et de −v(x).u′(x) (ou une liste formée de F(b)+u(b).v(b)−F(a)−u(a).v(a) et de −v(x).u′(x)),
- si le deuxième argument est nul, ibpu(g(x),0,x,a,b) renvoie G(b)−G(a) où G(x) une primitive de g(x) (le premier argument) (ou ibpu([F(x),g(x)],0,x,a,b)) renvoie F(x)+G(b)−G(a) où G(x) est une primitive de g(x)) de façon à pouvoir faire plusieurs ibpu à la suite.

On tape :

ibpu(ln(x),ln(x),x,2,3)

On obtient :

[3*ln(3)-2*ln(2),-1]

puis

ibpu([3*ln(3)-2*ln(2),-1],0,x,2,3)

On obtient :

-1+3*ln(3)-2*ln(2)

Remarque
Lorsque le premier paramètre de ibpu est une liste de deux éléments, ibpu n’agit que sur le dernier élément de cette liste et ajoute le terme intégré au premier élément de la liste (de façon à pouvoir faire plusieurs ibpu à la suite).
On a par exemple :
ibpu((log(x))`^`2,log(x)) = [x*(log(x))`^`2,-(2*log(x))]
il reste à intégrer -(2*log(x)), on utilise ibpu(ans(),log(x)) ou on tape:
ibpu([x*(log(x))`^`2,-(2*log(x))],log(x))
On obtient :
[x*(log(x))`^`2+x*(-(2*log(x))),2]
et il reste à intégrer 2, on utilise ibpu(ans(),0) :
ibpu([x*(log(x))`^`2+x*(-(2*log(x))),2],0).
On obtient : x*(log(x))`^`2+x*(-(2*log(x)))+2*x