### 1.18.4 Ολοκλήρωση κατά μέλη : ibpdv και ibpu

#### ibpdv

ibpdv χρησιμοποιείται για την εύρεση του αορίστου ολοκληρώματος μιας παράστασης γραμμένης ως u(x).v′(x).
ibpdv παίρνει δύο ορίσματα :

- μια παράσταση u(x).v′(x) και v(x) (ή μια λίστα δύο παραστάσεων [F(x), u(x)*v′(x)] και v(x)),
- ή μια παράσταση g(x) και 0 (ή μια λίστα δύο παραστάσεων [F(x), g(x)] και 0).

ibpdv επιστρέφει :

- εάν v(x) ≠ 0, την λίστα [u(x).v(x),−v(x).u′(x)] (ή [F(x)+u(x).v(x),−v(x).u′(x)]),
- εάν το δεύτερο όρισμα είναι 0, το αόριστο ολοκλήρωμα του πρώτου ορίσματος g(x) (ή F(x)+το αόριστο ολοκλήρωμα του g(x)) :
  επομένως, η εντολή ibpdv(g(x),0) επιστρέφει το αόριστο ολοκλήρωμα G(x) της g(x) και
  η εντολή ibpdv([F(x),g(x)],0) επιστρέφει F(x)+G(x) όπου diff(G(x))=g(x).

Επομένως, ibpdv επιστρέφει τους όρους που υπολογίζονται με ολοκλήρωση κατά μέλη, με την πιθανότητα να γίνουν πολλαπλά ibpdv διαδιοχικά.
Αφού υπολογίσουμε το αποτέλεσμα του ibpdv(u(x)*v′(x),v(x)), για να βρούμε το αόριστο ολοκλήρωμα του u(x).v′(x), απομένει να υπολογίσουμε το ολοκλήρωμα του δεύτερου όρου του ολοκληρώματος και μετά, να αθροίσουμε αυτό το ολοκλήρωμα με τον πρώτο όρο του αποτελέσματος : για να το κάνουμε αυτό, απλά χρησιμοποιούμε την εντολή ibpdv με το αποτέλεσμα ως πρώτο όρισμα και μια νέα v(x) (ή 0 για να τερματίσουμε την ολοκλήρωση) ως δεύτερο όρισμα.
Είσοδος :

ibpdv(ln(x),x)

Έξοδος :

[x.ln(x),-1]

μετά :

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

Έξοδος :

-x+x.ln(x)

Σχόλιο
Όταν το πρώτο όρισμα του ibpdv είναι μια λίστα δύο στοιχείων, η εντολή ibpdv δουλεύει μόνο με το τελευταίο στοιχείο της λίστας και προσθέτει τον όρο που έχει ολοκληρωθεί στο πρώτο στοιχείο αυτής της λίστας. (Συνεπώς είναι δυνατόν να γίνουν πολλαπλά ibpdv διαδοχικά).
Για παράδειγμα :
ibpdv((log(x))`^`2,x) = [x*(log(x))`^`2,-(2*log(x))]
απομένει να ολοκληρώσουμε το -(2*log(x)). Εισάγετε :
ibpdv(ans(),x) ή εισάγετε :
ibpdv([x*(log(x))`^`2,-(2*log(x))],x)
Έξοδος :
[x*(log(x))`^`2+x*(-(2*log(x))),2]
και απομένει να ολοκληρώσουμε το 2, γι’αυτό εισάγετε ibpdv(ans(),0) ή
ibpdv([x*(log(x))`^`2+x*(-(2*log(x))),2],0).
Έξοδος : x*(log(x))`^`2+x*(-(2*log(x)))+2*x

#### ibpu

ibpu χρησιμοποιείται για την εύρεση του αορίστου ολοκληρώματος μιας παράστασης γραμμένης ως u(x).v′(x)
ibpu παίρνει δύο ορίσματα :

- μια παράσταση u(x).v′(x) και u(x) (ή μια λίστα δύο παραστάσεων [F(x), u(x)*v′(x)] και u(x)),
- μια παράσταση g(x) και 0 (ή μια λίστα δύο παραστάσεων [F(x) g(x)] και 0).

ibpu επιστρέφει :

- εάν u(x) ≠ 0, τη λίστα [u(x).v(x),−v(x).u′(x)] (ή επιστρέφει τη λίστα [F(x)+u(x).v(x),−v(x).u′(x)]),
- εάν το δεύτερο όρισμα είναι 0, το αόριστο ολοκλήρωμα του πρώτου ορίσματος g(x) (ή F(x)+το αόριστο ολοκλήρωμα της g(x)):
  ibpu(g(x),0) επιστρέφει G(x) όπου diff(G(x))=g(x) ή
  ibpu([F(x),g(x)],0) επιστρέφει F(x)+G(x) όπου diff(G(x))=g(x).

Επομένως, η εντολή ibpu επιστρέφει τους όρους που υπολογίζονται με ολοκλήρωση κατά μέλη, με την πιθανότητα να γίνουν πολλαπλά ibpu διαδοχικά.
Αφού υπολογίσουμε το αποτέλεσμα του ibpu(u(x)*v′(x),u(x)), για να βρούμε το αόριστο ολοκλήρωμα του u(x).v′(x), απομένει να υπολογίσουμε το ολοκλήρωμα του δεύτερου όρου του ολοκληρώματος και μετά, να αθροίσουμε αυτό το ολοκλήρωμα με τον πρώτο όρο του αποτελέσματος : για να το κάνουμε αυτό, απλά χρησιμοποιούμε την εντολή ibpu με το αποτέλεσμα ως πρώτο όρισμα και μια νέα u(x) (ή 0 για να τερματίσουμε την ολοκλήρωση) ως δεύτερο όρισμα.
Είσοδος :

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

Έξοδος :

[x.ln(x),-1]

μετά

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

Έξοδος :

-x+x.ln(x)

Σχόλιο
Όταν το πρώτο όρισμα του ibpu είναι μια λίστα δύο στοιχείων, η εντολή ibpu δουλεύει μόνο με το τελευταίο στοιχείο της λίστας και προσθέτει τον όρο που έχει ολοκληρωθεί στο πρώτο στοιχείο της λίστας. (Συνεπώς είναι δυνατόν να γίνουν πολλαπλά ibpu διαδοχικά).
Για παράδειγμα :
ibpu((log(x))`^`2,log(x)) = [x*(log(x))`^`2,-(2*log(x))]
απομένει να ολοκληρώσουμε το -(2*log(x)), γι’ αυτό εισάγουμε :
ibpu(ans(),log(x)) ή εισάγουμε :
ibpu([x*(log(x))`^`2,-(2*log(x))],log(x))
Έξοδος :
[x*(log(x))`^`2+x*(-(2*log(x))),2]
απομένει να ολοκληρώσουμε το 2, γι’ αυτό εισάγουμε :
ibpu(ans(),0) ή εισάγουμε :
ibpu([x*(log(x))`^`2+x*(-(2*log(x))),2],0).
Έξοδος : x*(log(x))`^`2+x*(-(2*log(x)))+2*x