# Chapitre 5 Exemples d’exercies utilisant le tableur

## 5.1 PGCD

### 5.1.1 L’algorithme d’Euclide

Voici la description de cet algorithme pour obtenir le pgcd de deux entiers a et b :
on effectue des divisions euclidiennes successives :

a = | b × q1+r1 | 0 ≤ r1 < b
b = | r1 × q2+r2 | 0 ≤ r2 < r1
r1 = | r2 × q3+r3 | 0 ≤ r3 < r2
.......

Après un nombre fini d’étapes (au plus b), il existe un entier n tel que : rn = 0.
on a alors :
PGCD(a,b )= PGCD(b,r1) =....PGCD(rn−1,rn) = PGCD(rn−1,0)
donc
PGCD(a,b ) = rn−1

### 5.1.2 Une mise en œuvre simple

On effectue une commande en appuyant sur `enter`, si on appuie à nouveau sur `enter` `Xcas` exécute à nouveau la même commande puisque cette commande reste inscrite dans la ligne des commandes.
Les différentes commandes et réponses sont numérotées à partir de `0`.
Les réponses sont alors `ans(0), ans(1)` etc ... La dernière réponse peut aussi être désignée par `ans()` ou par `ans(-1)`, et l’avant dernière réponse peut être désignée par `ans(-2)` etc...
Pour calculer PGCD(78,56), on tape :
`78 enter` puis `56 enter` puis,
`irem(ans(-2),ans()) enter`
On obtient `22` (car 22 est le reste de la division de 78 par 56)
puis `enter` `enter` `enter` etc...et cela nous permet d’obtenir la suite des restes.

### 5.1.3 La suite des restes avec le tableur

Voici une mise en œuvre de l’algorithme d’Euclide avec un tableur.
À l’aide d’un tableur que l’on obtient avec le raccourci clavier `Alt+t`, on écrit la suite des restes. Si l’on veut déterminer le PGCD(78,56), on définit la suite des restes dans la colonne `A` par :
On met `78` dans `A0`
On met `56` dans `A1`
On met `=irem(A0,A1)` dans `A2`
puis on utilisee le menu du tableur `Edit` puis `Remplir` et `Copier vers le bas`, lorsque `A2` est en surbrillance et l’on a ainsi la suite des restes des divisions successives dans la colonne `A`.
Le dernier reste non nul `2` est donc le pgcd de 78 et de 56.

## 5.2 Identité de Bézout

L’algorithme d’Euclide permet aussi de trouver un couple u, v vérifiant :
au + bv= PGCD(a,b)

### 5.2.1 Avec le tableur

On pose a=r0 et b=r1, et on définit, dans la colonne `A`, "la suites des restes" rn : pour n ≥ 2, rn−2=qnrn−1+rn avec rn<rn−1.
Puis on définit, dans les colonnes `B` et `C`, deux suites un et vn de façon qu’à chaque étape on ait : rn=una+vnb pour n ≥ 0.
Puisque r0=a on a : u0=1 et v0=0
Puisque r1=b on a : u1=0 et v1=1
Puisque rn=rn−2−qnrn−1 pour n ≥ 2, un et vn vérifient la même relation de récurrence pour n ≥ 2 à savoir :
un=un−2−qnun−1 et vn=vn−2−qnvn−1 avec
qn= quotient entier de rn−2 par rn−1 pour n ≥ 2.
On a au début :
`A0` vaut r0=a et `A1` vaut r1=b,
`B0` vaut u0=1 et `B1` vaut u1=0 puisque a=1*a+0*b,
`C0` vaut v0=0 et `C1` vaut v1=1 puisque b=0*a+1*b.
Dans la colonne `A` on veut avoir la suite des restes et dans les colonnes `B` et `C` les suites `u` et `v` qui seront les coefficients de `a` et `b` pour avoir sur chaque ligne `n` du tableur : `An=aBn+bCn`.
Pour cela on a besoin de la suite des quotients qn= (quotient entier de rn−2 par rn−1 pour n ≥ 2) que l’on met dans la colonne `D` (`D2=iquo(A0,A1)` puis on tape sur `remplir` et `vers le bas`, lorsque `D2` est en surbrillance).
Les lignes ln des colonnes `A, B, C` vérifient la même relation de récurrence :
ln=ln−2−qnln−1
On definit donc :
`A0` par `a`
`A1` par `b`
`A2` par `=irem(A0,A1)`
puis on tape sur `remplir` et `vers le bas`, lorsque `A2` est en surbrillance et on obtient la suite des restes des divisions successives.
`B0` par `1`
`B1` par `0`
`B2` par `=B0-D2*B1`
puis, on tape sur `remplir` et `vers le bas`, lorsque `B2` est en surbrillance et on obtiendra la suite des "u" lorsqu’on aura rempli la colonne `D`.
`C0` par `0`
`C1` par `1`
`C2` par `=C0-D2*C1`
puis, on tape sur `remplir` et `vers le bas`, lorsque `C2` est en surbrillance et on obtiendra la suite des "v" lorsqu’on aura rempli la colonne `D`.
`D0` par `0`
`D1` par `0`
`D2` par `=iquo(A0,A1)`
(en fait `D0` et `D1` ne servent pas)
puis, on tape sur `remplir` et `vers le bas`, lorsque `D2` est en surbrillance, pour avoir la suite des quotients des divisions successives.
Le tableur va alors afficher les valeurs de ces différentes suites et sur la ligne du dernier reste non nul on pourra lire les coefficients de l’identité de Bézout.
Pour l’exemple a=78 et b=56, on trouve :
- sur la ligne `6` : `A6=0` et,
- sur la ligne `5` : `A5=2`, `B5=-5`, `C5=7` (et `D5=1`),
ce qui signifie que :
`2=-5*78+7*56`

### 5.2.2 Les pas de Louis

Louis marche sur la bordure du trottoir, comptant les fois où une de ses semelles chevauche un joint entre deux blocs (si son talon est tangent il chevauche le joint, mais si la pointe est tangente il ne chevauche pas).
Le trottoir comporte 150 blocs d’un mètre (il n’y a pas de joint au debut ni à la fin du trottoir).
Son pas est de 61 cm et ses semelles mesurent 21 cm et les joints n’ont pas d’épaisseur.
Combien de fois Louis marche-t-il sur un joint?
Réponse
Il y a 149 joints.
Il faut tout d’abord voir qu’au p-ième pas les semelles de Louis sont entre (p*61) cm et (p*61+21) cm. Ses semelles couperont le n-ième joint si :
100*n=pn*61+rn avec 0 ≤ rn<21
On va donc dans un premier temps écrire la suite des restes rn à l’aide du tableur.
On definit donc :
`A0` par `0`
`A1` par `=A0+1`
puis, on tape sur `remplir` et `vers le bas`, lorsque `A1` est en surbrillance, pour avoir la suite des entiers 0,1, etc...
`B0` par `0`
`B` par `1=irem(100*A1,61)`
puis on tape sur `remplir` et `vers le bas`, lorsque `B1` est en surbrillance, pour avoir la suite des restes rn.
Bien sûr il n’est pas facile de compter les restes inférieurs à 21.
On va donc définir une colonne qui fera ce comptage.
On definit donc :
`C0` par `0`
`C1` par `=ifte(B1<21,C0+1,C0)`
La réponse au problème est donc la valeur de `C149` et on trouve `51`.
Louis marche donc 51 fois sur un joint.

On peut aussi utiliser la commande `count` (ou la commande `count_inf`) qui compte les éléments du tableur pour lesquels une fonction booléenne est vraie :
On tape, par exemple dans `D0` :
`count(x->x<21,B1:B149)`
ou on tape dans `D0` :
`count_inf(21,B1:B149)`
On prend en compte les cellules `B1:B149`, car il n’y a pas de joints au début, ni à la fin.
On obtient dans `D0` : `51`.

On peut aussi écrire un petit programme dont voici l’algorithme :

    louis nbloc
    0 -> k
    pour n de 1 a nbloc-1 faire
    si (n*100 mod 61 <21) alors k+1 -> k
    fsi
    fpour
    afficher k

qui se traduit en langage `Xcas` par :

    louis(nbloc):={
    k:=0;
    for (n:=1;n<nbloc:n++){
    if (irem(n*100,61)<21) k:= k+1;
    }
    return k;
    }

Puis, on tape `louis(150)`
et on obtient `51`.

## 5.3 Accélération de convergence vers π2/6

On considère la série de terme général 1/n2, et on souhaite déterminer une valeur approchée de sa somme pour n allant de 1 à l’infini.
On rappelle que la valeur exacte de cette somme est égale à π2/6 : pour cela on développe en séries de Fourier la fonction f qui est 2π-périodique et est égale à x2 sur [−π, π].
On a :
f(x)=x2=π2/3+4*∑n=1∞(−1)n/n2cosnx pour x ∈ [−π, π]
Pour x=π on obtient : ∑n=1∞1/n2=π2/6.

1. Déterminer à l’aide de `Xcas` une valeur approchée de π2/6 puis de:

   n
   ∑
   j=1
   1
   j2

   pour n=10, n=100 et n=1000.
   Définir et observer dans le tableur la suite récurrente :
   `u``1``=1`
   `u``2``=1+1/4`
   `u``n``=u``n-1``+1/n``2` pour n>1.
   Réponse :
   On cherche une valeur approchée de π2/6 et on tape :
   `evalf(pi```^```2/6)`
   On obtient :
   `1.64493406685`
   On tape :
   `evalf(sum(1/j```^```2,j,1,10))`
   On obtient :
   `1.54976773117`
   On tape :
   `evalf(sum(1/j```^```2,j,1,100))`
   On obtient :
   `1.63498390018`
   On tape :
   `evalf(sum(1/j```^```2,j,1,1000))`
   On obtient :
   `1.64393456668`
   Puis on ouvre un tableur (avec `Alt+t`) et on tape :
   dans `A0` : `0`
   dans `A1` : `=A0+1`
   puis, on tape sur `remplir` et `vers le bas`, lorsque `A1` est en surbrillance, pour avoir la suite des entiers 0,1, etc...
   On tape :
   dans `B0` : `0`
   dans `B1` : `=B0+1/A1```^```2`
   puis, on tape sur `remplir` et `vers le bas`, lorsque `B1` est en surbrillance, pour avoir la suite des valeurs exactes de un.
   On tape :
   dans `C0` : `=evalf(B0)`
   puis, on tape sur `remplir` et `vers le bas`, lorsque `C0` est en surbrillance, pour avoir la suite des valeurs approchées de un.
2. Comparer ces valeurs à la valeur approchée de π2/6 : donner le nombre de décimales exactes pour les 3 valeurs de n.
3. On souhaite accélérer la convergence des sommes partielles. On va donc déterminer un encadrement de ∑j=n+1∞1/j2 à l’aide de l’intégrale de la fonction 1/x2. Montrer que:

   ∫ |
   ∞
   n+1
   1
   x2
   | dx ≤ |
   ∞
   ∑
   j=n+1
   1
   j2
   | ≤ | ∫ |
   ∞
   n
   1
   x2
   | dx

4. En déduire que:

   0 ≤ | ⎛ ⎜ ⎜ ⎝ |
   n
   ∑
   j=1
   1
   j2
   | + |
   1
   n
   | ⎞ ⎟ ⎟ ⎠ | − |
   π2
   6
   | ≤ |
   1
   n(n+1)

5. Calculer 1/n+ ∑j=1n 1/j2 pour n=10, n=100 et n=1000 et déterminer le nombre de décimales exactes pour ces 3 valeurs de n, justifier ce nombre de décimales pour n=10, n=100 et n=1000.

   Avec le tableur, il suffira d’ajouter 1/n à la colonne où se trouve un.

6. Montrer que pour k≥ 2 on a :

   1
   k
   | − |
   1
   k+1
   | + |
   1
   2k(k+1)
   | − |
   1
   2(k+1)(k+2)
   | < |
   1
   k2
   | < |
   1
   k
   | − |
   1
   k+1
   | + |
   1
   2(k−1)k
   | − |
   1
   2k(k+1)

   En déduire que :
   wn=un+1/(n+1)+1/2/(n+1)/(n+2) converge vers π2/6 et que l’on a :
   0<π2/6−wn<1/n3

Réponse :
On tape :
`normal(1/k```^```2-1/k+1/(k+1)-1/2/k/(k+1)+1/2/(k+1)/(k+2))`
On obtient :
`2/(k```^```4+3*k```^```3+2*k```^```2)`
On tape :
`normal(1/(k```^```2)-1/k+1/(k+1)-1/2/k/(k-1)+1/2/(k+1)/k)`
On obtient :
`-1/(k```^```4-k```^```2)`

## 5.4 ln(2)

Il s’agit ici d’obtenir un encadrement de ln(2) en utilisant des méthodes numériques approchées de calcul de l’intégrale: I= ∫01 1/1+x dx

1. Tracer le graphe de la fonction f définie par f(x)=1/(1+x) entre 0 et 1, la corde qui relie les points d’abscisses 0 et 1 et la tangente au point d’abscisse 1/2.
   Réponse :
   On change l’initialisation de la fenêtre graphique avec le bouton rouge `geo`. On prend :
   `X-=WX-=-0.1` `X+=WX+=1.1`
   `Y-=WY-=0.4` `Y+=WY+=1.1`
   On tape :
   `f(x):=1/(1+x)`
   `G:=plotfunc(1/(1+x),x)`
   `segment(i*f(0),1+i*f(1))`
   `tangent(G,1/2)`
2. On subdivise l’intervalle [0,1] en n parties et on encadre l’intégrale par la méthode des rectangles inférieurs et supérieurs.
   Montrez que: un <I< vn avec pour n≥ 1 :
   un=1/(n+1)+1/(n+2)+...+1/(n+n) et
   vn= 1/n+1/(n+1)+...+1/(n+n−1).
   Calculer un et vn pour n=10, 100, 1000.
   Réponse :
   Avec le tableur on écrit la suite récurrente :
   u1=1/2
   u2=1/3+1/4
   un=un−1+1/((2n−1)*2n) pour n> 1 et
   v1=1
   v1=1/2+1/3
   vn=un+1/(2n) pour n≥ 1
   pour cela on tape :
   `0` dans `A0`
   `=A0+1` dans `A1`
   puis, on tape sur `remplir` et `vers le bas`, lorsque `A1` est en surbrillance, pour avoir la suite des entiers 0,1, etc...
   On tape :
   `0` dans `B0`
   `1/2` dans `B1`
   `=B1+1/((2*A2-1)*2*A2)` dans `B2`
   puis, on tape sur `remplir` et `vers le bas`, lorsque `B2` est en surbrillance, pour avoir la suite des valeurs exactes de un.
   On tape :
   `=evalf(B0)` dans `C0`
   puis, on tape sur `remplir` et `vers le bas`,lorsque `C0` est en surbrillance, pour avoir la suite des valeurs approchées de un.
   On tape :
   `0` dans `D0`
   `=B1+1/(2*A1)` dans `D1`
   puis, on tape sur `remplir` et `vers le bas`, lorsque `D1` est en surbrillance, pour avoir la suite des valeurs exactes de vn.
   On tape :
   `=evalf(D0)` dans `E0`
   puis, on tape sur `remplir` et `vers le bas`, lorsque `E0` est en surbrillance, pour avoir la suite des valeurs approchées de vn.
3. On subdivise l’intervalle [0,1] en n parties et on applique la méthode du point milieu et la méthode des trapèzes. On obtient ainsi deux suites wn et tn.
   Montrez que: wn= ∑j=0n−1 1/n+j+1/2 et que tn=(un+vn)/2.
   Calculer wn et tn pour n=10, 100, 1000.
   Réponse :
   Le rectangle de base [j/n;(j+1)/n] au point milieu d’abscisse (2j+1)/2n a pour surface :
   1/n*1/1+(2j+1)/2n=2/2n+2j+1=1/n+j+1/2
   Le trapèze de base [j/n;(j+1)/n] a pour surface :
   1/2n*(1/1+j/n+1/1+(j+1)/n)=1/2(1/n+j+1/n+j+1)
   Avec le tableur, on écrit les suites récurrentes :
   w0=2/3
   w1=2/5+2/7
   wn=wn−1+1/((2n−1/2)*(2n−3/2)(n−1/2)) et
   t0=3/4
   t1=1/3+3/8
   tn=(un+vn)/2 pour cela on tape :
   `0` dans `F0`
   `2/3` dans `F1`
   `=F1+1/(2*A2-1/2)+1/(2*A2-3/2)-1/(A2-1/2)` dans`F2`
   puis, on tape sur `remplir` et `vers le bas`, lorsque `F2` est en surbrillance, pour avoir la suite des valeurs exactes de wn.
   `G0=evalf(F0)`
   puis, on tape sur `remplir` et `vers le bas`, lorsque `G0` est en surbrillance, pour avoir la suite des valeurs approchées de wn.
   On tape :
   `0` dans `H0`
   `=(B1+D1)/2` dans `H1`
   puis, on tape sur `remplir` et `vers le bas`, lorsque `H1` est en surbrillance, pour avoir la suite des valeurs exactes de tn.
   `=evalf(H0)` dans `I0`
   puis, on tape sur `remplir` et `vers le bas`, lorsque `I0` est en surbrillance, pour avoir la suite des valeurs approchées de tn.
   On trouve pour n=10 :
   u10=155685007/232792560 ≃ 0.668771403175
   v10=33464927/46558512 ≃ 0.718771403175
   w10=358143560536/516924483075 ≃ 0.69283536041
   t10=161504821/232792560 ≃ 0.693771403175
4. Vérifiez que la fonction f est convexe en montrant que f′′>0.
   On admettra les propriétés suivantes des fonctions convexes :
   - le segment reliant (x1,f(x1)) à (x2,f(x2) (x1<x2) est au-dessus de la courbe représentative de f entre x1 et x2.
   - la tangente en un point de la courbe est en-dessous de la courbe représentative de f.
5. En comparant graphiquement des aires, montrez que :

   tn≥ | ∫ |
   1
   0
   | f(x) dx

   .
6. On considère une subdivision [j/n,j+1/n]. Tracer sur cet intervalle la courbe de f et la tangente de f au point milieu de l’intervalle. Par une comparaison graphique d’aires (aire sous la tangente=aire du rectangle) montrez que :

   wn ≤ | ∫ |
   1
   0
   | f(x) dx

7. Indiquez le nombre de décimales exactes obtenues lorsque l’on approche ln(2) à l’aide de un,vn,wn,tn pour n=10, n=100, n=1000.

   Montrez qu’en général un et vn donnent un encadrement d’ordre 1/n de ln(2), et que wn et tn donnent un encadrement d’ordre 1/n2 de ln(2).

## 5.5 L’algorithme de Héron avec Xcas

### 5.5.1 Les fonctions de `Xcas` utilisées

Voici les fonctions de `Xcas` qui vous seront utiles dans ce TP.
`ans()` renvoie la dernière réponse obtenue.
`numer` renvoie le numérateur de la fraction `n/d`, ainsi `numer(n/d)` vaut `n` et `denom` renvoie le dénominateur de la fraction `n/d`, ainsi `denom(n/d)` vaut `d`.
`evalf(a)` évalue `a` à l’aide d’un nombre flottant comportant 12 chiffres significatifs (sauf si on a changé ce nombre dans la configuration du `cas` obtenu avec le bouton rouge `cas`).
`iquo(a,b)` calcule le quotient entier `q` de `a` par `b` (`a=b*q+r` avec `0``≤``r <b`).
`f(x):=exprx` où `exprx` représente une expression de `x` permettant de définir la fonction `f`.
`plotseq(f(x),x=a,n)` permet de visualiser les `n` premiers termes de la suite définie par u0=a et un+1=f(un) pour n ≥ 0 (il faut penser à changer la fenêtre de visualisation bouton rouge `geo`).

### 5.5.2 Le problème : valeur approchée de √7

On considère la suite récurrente définie par :
u0=3 et un+1=1/2(un+7/un) pour n ≥ 0.
0/ Définir la fonction f pour que un+1=f(un) pour n ≥ 0.
1/ Calculer les 5 premiers termes de la suite u et donner une valeur approchée de u5. On pourra utiliser `f(ans())` qui applique `f` à la dernière réponse.
2/ Visualiser les cinq premiers termes de la suite u et trouver une bonne fenêtre de visualisation.
3/ Ouvrir un tableur avec le raccourci clavier `Alt+t` et mettre :
dans la colonne `A` les valeurs de n,
dans la colonne `B` les valeurs de un,
dans la colonne `C` les valeurs du numérateur cn de un,
dans la colonne `D` les valeurs du dénominateur dn de un,
dans la colonne `E` les valeurs du quotient exact de cn*1012 par dn,
dans la colonne `F` les valeurs approchées de un données par `evalf`.
Que représente la colonne `E` ?
Observez les différentes colonnes et notez vos observations.
4/ On veut montrer que la suite un est convergente.
- montrer que la suite u est définie et que un>√7 pour tout n ≥ 0,
- en déduire que le signe de un+1−un est indépendant de n,
- montrer que la suite u est décroissante et converge vers √7,
5/ On pose en=un−√7. Montrer que √7>5/2 et en déduire que e0<0.5.
Montrer que en=en−12/2*un−1 pour tout n ≥ 1.
En déduire que en < 5*(en−1/5)2 < 5*(e0/5)2n< 5*(0.1)2n pour tout n ≥ 1.
Quelle erreur fait-on lorsqu’on prend u5 comme valeur approchée de √7 ? (on montrera que e5=(u52−7)/(u5+√7)<(u52−7)/5).
Donner les 20 premières décimales de √7.

### 5.5.3 Correction

0/ On tape : `f(x):=1/2*(x+7/x)`
1/ Dans une ligne de commande on tape : `3` puis, `f(ans())` cela va afficher la valeur exacte de u1, on valide à nouveau `f(ans())` on obtient u2 etc...
On obtient :
u1=8/3),
u2=127/48),
u3=32257/12192,
u4=2081028097/786554688.
u5=8661355881006882817/3273684811110137472 Quand on a la valeur exacte de u5 pour avoir la valeur approchée on sélectionne la réponse avec la souris, puis utilise `evalf` du menu `Calc``▸``Numérique`.
On obtient :
`2.64575131106`
2/ On tape : `plotseq(f(x),x=3,5)` avec par exemple comme fenêtre :
[2.5;3]× [2.5;2.7]
3/ Dans `A0` on tape `0` et dans `A1` on tape `=A0+1`, puis dans le menu `Edit`, on choisit `Remplir` et `Copier vers le bas` quand `A1` est en surbrillance.
Dans `B0` on tape 3 et dans `B1` on tape `=f(B0)`, puis dans le menu `Edit`, on choisit `Remplir` et `Copier vers le bas`, quand `B1` est en surbrillance.
Dans `C0` on tape `=numer(B0)`, puis dans le menu `Edit`, on choisit `Remplir` et `Copier vers le bas`, quand `C0` est en surbrillance.
Dans `D0` on tape `=denom(B0)`, puis dans le menu `Edit`, on choisit `Remplir` et `Copier vers le bas`, quand `D0` est en surbrillance.
Dans `E0` on tape `=iquo(C0*10```^```12,D0)`, puis dans le menu `Edit`, on choisit `Remplir` et `Copier vers le bas`, quand `E0` est en surbrillance.
Dans `F0` on tape `=evalf(B0)`, puis dans le menu `Edit`, on choisit `Remplir` et `Copier vers le bas`, quand `F0` est en surbrillance.
La colonne `E` contient la partie entière de 1012 *un. On est donc capable de voir la partie entière de un et de ses 12 premières décimales. En remplacant 12 par 22 on verra donc les 22 premières décimales de un.
4/ u0>0 donc u1 est défini et u1>0 et par récurrence un est défini et un>0 pour tout n ≥ 0.
Si un converge vers l, l vérifie : 2*l=l+7/l donc l2=7.
Donc si la limite existe ce ne peut être que √7 puisque un>0 pour tout n ≥ 0.
On a f croissante sur [√7 +∞[ et f(√7)=√7 donc puisque :
u0=3>√7 par récurrence un>√7 pour tout n ≥ 0.
On a f croissante sur [√7 +∞[ et un>√7 pour tout n ≥ 0 donc puisque :
u0=3>u1=8/3 on obtient par récurrence un>un+1 pour tout n ≥ 0.
Ou bien on forme la différence :
un+1−un=1/2(un−un−1−7(un−un−1)/(un*un−1))=
(un−un−1)*1/2*(un*un−1−7)/(un*un−1)
(un*un−1−7)> 0 puisque un>√7 pour tout n ≥ 0 et un*un−1>0 donc
un+1−un a le même signe que un−un−1 pour tout n ≥ 1
u1−u0<0 donc la suite u est décroissante.
u est décroissante et minorée par √7 donc u est convergente.
On a vu que si u est convergente, sa limite est √7, donc u converge vers √7.
5/ 52=25 < 7*22=28 donc 5/2<√7<u0=3 et e0=u0−√7<1/2
en=un−√7=1/2*(un−12+7−2*√7*un−1)/un−1)=en−12/2*un−1.
On sait que 5/2<√7<un donc en<5*(en−1/5)2 et par récurrence :
en<5*(e0/5)2n<5*(1/10)2n pour tout n ≥ 1.
Donc e5<5*(1/10)32=5*10−32 est une majoration de l’erreur à priori.
Comme e5=(u52−7)/(u5+√7)<(u52−7)/5, on fait le calcul de (u52−7)/5 et on trouve e5<2*10−38 .
Puisque :
e4<`evalf(((2081028097/786554688)```^```2-7)/5)`<4*10−19,
pour avoir un encadrement de √7 à 10−20 près, il faut calculer u5 avec 21 décimales.
On obtient : u5−10−25<u5−e5=√7<u5 et
2.645751311064590590501<u5<2.645751311064590590502 donc
2.645751311064590590500<√7<2.645751311064590590502

## 5.6 Suites adjacentes et convergence de ∑k=0n (−1)k/2k+1

### 5.6.1 Les fonctions de `Xcas` utilisées

Voici les fonctions de `Xcas` qui vous seront utiles dans ce TP.
`normal(expr)` renvoie l’expression `expr` simplifiée.
`evalf(a)` évalue `a` à l’aide d’un nombre comportant 12 chiffres significatifs, sauf si on a changé `Chiffres` dans la configuration du `cas` (`cas` en rouge).
Si `exprx` est une expression de `x`,

`f(x):=exprx` définit la fonction `f` de variable `x` (x ⊢→f exprx),

`subst(exprx,x,2)` remplace `x` par 2 dans `exprx` et

`derive(exprx,x)` calcule la dérivée de `exprx` par rapport à `x`.

### 5.6.2 u et v sont deux suites ajacentes de limite π/4

I/ On considère les suites u et v définies par :
u0=1−1/3 et un=un−1+1/4n+1−1/4n+3 pour n ≥ 1.
vn=un+1/4n+3 pour n ≥ 0.
1/ Calculer les 6 premiers termes de la suite u et donner une valeur approchée de u6 (on pourra utiliser un tableur que l’on obtient avec le raccourci clavier `Alt+t`.
2/ Calculer les 6 premiers termes de la suite v et donner une valeur approchée de v6 (on pourra utiliser le tableur).
3/ Montrer que les suites u et v sont adjacentes.

II/ On considère la suite de fonctions fn de [0,π/2[ dand ℝ définie par :
f0(x)=x−tan(x) et fn(x)=fn−1(x)−(−1)n/2n+1tan(x)2n+1 pour n ≥ 1.
0/ Calculer fn(0) pour tout n ≥ 0.
1/ Ouvrir le tableur et faites afficher dans les colonnes :
les valeurs de n, les valeurs de fn(x) et les valeurs de f′n(x),
En observant ces colonnes, déterminer une expression simplifiée de la dérivée de fn. Prouver votre conjecture.
2/ En déduire que pour p ≥ 0 :
- la fonction f2p+1 est croissante sur [0,π/2[.
- la fonction f2p est décroissante sur [0,π/2[.
3/ Calculer pour p ≥ 0, f2p(π/4) et f2p+1(π/4) en fonction de up et de vp (on pourra utiliser le tableur pour déterminer la formule, puis on fera une démonstration).

III/ 1/ Montrer que la limite de u et de v est égale à π/4 ( on étudiera le signe de f2p(π/4) et de f2p+1(π/4)).
2/ Donner un encadrement de π/4.
Quelle erreur fait-on lorsqu’on prend 4*u6 comme valeur approchée de π ?
3/ Trouver une valeur de n pour que 4*un et 4*vn donnent un encadrement de π de diamètre inférieur à 10−3.

### 5.6.3 Correction

I/ Dans `A0` on tape 0 et dans `A1` on tape `=A0+1` puis dans le menu `Edit` du tableur, on choisit `Remplir` et `Copier vers le bas`, quand `A1` est en surbrillance.
Dans `B0` on tape :
`2/3` (ou `=evalf(2/3)` et,
dans `B1` on tape :
`=B0+1/(4*A1+1)-1/(4*A1+3)`
puis dans le menu `Edit`, on choisit `Remplir` et `Copier vers le bas`, quand `B1` est en surbrillance.
Dans `C0` on tape :
`=B0+1/(4*A0+3)`
puis dans le menu `Edit` du tableur, on choisit `Remplir` et `Copier vers le bas`, quand `C0` est en surbrillance.
La suite u est croissante car un−un−1=1/4n+1−1/4n+3>0 pour n ≥ 1.
La suite v est décroissante car vn−vn−1=1/4n+1−1/4n−1<0 pour n ≥ 1.
Donc vn−un=1/(4*n+3) tend vers 0 quand n tend vers l’infini.
Les suites u et v sont donc adjacentes.

II/
0/ fn(0)=0 pour tout n ≥ 0.
1/ Dans `A0` on tape `0` et dans `A1` on tape `=A0+1` puis, dans le menu `Edit` du tableur, on choisit `Remplir` et `Copier vers le bas`, quand `A1` est en surbrillance.
Dans `D0` on tape `=x-tan(x)` et
dans `D1` on tape `=D0-(-1)```^```(A1)*tan(x)```^```(2*A1+1)/(2*A1+1)` puis, dans le menu `Edit` du tableur, on choisit `Remplir` et `Copier vers le bas`, quand `B1` est en surbrillance.
Dans `E0` on tape `=normal(derive(D0,x))` puis, dans le menu `Edit`, on choisit `Remplir` et `Copier vers le bas`, quand `E0` est en surbrillance.
On remarque que l’on a fn′(x)=(−1)n+1*tan(x)2n+2.
On le montre en faisant le calcul :
fn(x)=x−tan(x)+1/3tan(x)3+...−(−1)n/2n+1tan(x)2n+1
fn′(x)=1−(1+tan(x)2)*(1−tan(x)2+...+(−1)ntan(x)2n)
On reconnait la somme d’une série géométrique de raison : −tan(x)2.
fn′(x)=1−(1+tan(x)2)*1−(−tan(x)2)n+1/1+tan(x)2=(−1)n+1tan(x)2n+2
2/ La fonction f2p a une dérivée negative pour tout p ≥ 0, donc f2p est décroissante. En particulier f2p(0)=0>f2p(π/4).
La fonction f2p+1 a une dérivée positive pour tout p ≥ 0, donc f2p+1 est croissante. En particulier f2p+1(0)=0<f2p+1(π/4).
3/ Dans `F0` on tape `=subst(D0,x,pi/4)` puis, dans le menu `Edit`, on choisit bouton `Remplir` et `Copier vers le bas`, quand `E0` est en surbrillance.
f2p(π/4)=π/4−vp et f2p+1(π/4)=π/4−up.

III/ 1/ On a donc pour tout p ≥ 0 :
f2p+1(π/4)=π/4−up>0 et f2p(π/4)=π/4−vp<0
les suites u et v sont donc adjacentes et convergentes vers π/4.
2/ Donc pour tout p ≥ 0 : up<π/4<vp.
On a donc 4*u6<π<4*v6=4*u6+4/27.
3/ Pour avoir :
4*un<π<4*vn=4*un+4/4*n+3 ≤ 4*un+10−3,
il faut prendre comme n un entier qui vérifie 4*n+3 ≥ 4000, soit n ≥ 1000.
Donc u1000 et v1000 donnent un encadrement de π de diamètre ≤ 10−3.

### 5.6.4 Accélération de convergence

On considère toujours les suites u et v définies par :
u0=1−1/3 et un=un−1+1/4n+1−1/4n+3 pour n ≥ 1.
vn=un+1/4n+3 pour n ≥ 0.
1/ Montrer que, pour p>0,

1
2
| ( |
1
4p+1
| − |
1
4p+5
| )< |
1
4p+1
| − |
1
4p+3
| < |
1
2
| ( |
1
4p−1
| − |
1
4p+3
| )

2/ En déduire que, pour n>p>0,

1
2
| ( |
1
4p+1
| − |
1
4n+5
| )<un−up−1< |
1
2
| ( |
1
4p−1
| − |
1
4n+3
| )

et en déduire un encadrement de un−up

3/ En faisant tendre n vers +∞, montrer que

1
2(4p+5)
| ≤ |
π
4
| −up≤ |
1
2(4p+3)

4/ On pose wn=un+1/2(4n+5) et tn=un+1/2(4n+3).
En utilisant le tableur, montrer que wn et tn sont deux suites adjacentes qui convergent vers π/4 plus rapidement que un et vn. Trouver une valeur de n pour que 4wn et 4tn donnent un encadrement de π de diamètre inférieur à 10−3.
Correction et prolongement
u10=∑k=010 1/4k+1−1/4k+3=∑k=010 2/(4k+1)(4k+3)
On encadre les termes de la série :
∑k=010 2/(4k+1)(4k+3)
1/2(1/4k+1−1/4k+5)<2/(4k+1)(4k+3)<1/2(1/4k−1−1/4k+3) donc
1/2(1/4p+1−1/4n+5)<un−up−1<1/2(1/4p−1−1/4n+3).
On a :
w10= u10+1/2(4k+5)=1/2+∑k=010 4/(4k+1)(4k+3)(4k+5)
On peut continuer le même processus en encadrant les termes de la série :
∑k=010 4/(4k+1)(4k+3)(4k+5).
On a :
4/(4k+1)(4k+5)(4k+9)<4/(4k+1)(4k+3)(4k+5)<4/(4k−3)(4k+1)(4k+5)
donc
1/2(1/(4k+1)(4k+5)−1/(4k+5)(4k+9))<4/(4k+1)(4k+3)(4k+5)<
1/2(1/(4k−3)(4k+1)−1/(4k+1)(4k+5))
On a donc comme précédemment :
1/2(1/(4p+1)(4p+5)−1/(4n+5)(4n+9))<wn−wp−1<
1/2(1/(4p−3)(4p+1)−1/(4n+1)(4n+5))
On pose donc :
s10= w10+1/2(4k+5)(4k+9)
s10=3/5+∑k=010 24/(4k+1)(4k+3)(4k+5)(4k+9)
On peut continuer le même processus en encadrant les termes de la série :
∑k=010 24/(4k+1)(4k+3)(4k+5)(4k+9)
et on pose :
r10= s10+2/(4k+5)(4k+9)*(4k+13)
r10=29/45+∑k=010 240/(4k+1)(4k+3)(4k+5)(4k+9)(4k+13)
On tape pour avoir la valeur approchée de π/4 :
`evalf(pi/4)`
On obtient :
`0.785398163397`
On tape pour avoir la valeur approchée de u10 :
`sum(2.0/((4*k+1)*(4*k+3)),k,0,10)`
On obtient :
`0.774040381616`
On tape pour avoir la valeur approchée de w10 :
`sum(2/((4*k+1)*(4*k+3)),k,0,10)+1.0/(2*45)`
On obtient :
`0.785151492727`
Ou on tape pour avoir la valeur approchée de w10 :
`sum(4/((4*k+1)*(4*k+3)*(4*k+5)),k,0,10)+0.5`
On obtient :
`0.785151492727`
On tape pour avoir la valeur approchée de s10 :
`sum(4/((4*k+1)*(4*k+3)*(4*k+5)),k,0,10)+ 1.0/2+1/(2*45*49)`
On obtient :
`0.785378250097`
Ou on tape pour avoir la valeur approchée de s10 :
`sum(24/((4*k+1)*(4*k+3)*(4*k+5)*(4*k+9)),k,0,10)+0.6`
On obtient :
`0.785378250097`
On tape pour avoir la valeur approchée de r10 :
`sum(24/((4*k+1)*(4*k+3)*(4*k+5)*(4*k+9)),k,0,10)+
0.6+2/(45*49*53)`
On obtient :
`0.78539536386`
Ou on tape pour avoir la valeur approchée de r10 :
`sum(240/((4*k+1)*(4*k+3)*(4*k+5)*(4*k+9)*(4*k+13)),k,0,10) +29.0/45`
On obtient :
`0.78539536386`
On a pour la dernière somme 5 décimales exactes de π/4 :
|l−z10|<2(1/(41*45*49)−1/(45*49*53))<5.1* 10−6

### 5.6.5 Comparaison avec une intégrale

Soit pour t ∈ [0;+∞[ la fonction h(t)=1/4t+1−1/4t+3.

1/ Calculer pour k∈ ℕ

∫ |
k+1
k
| h(t) dt

2/ Montrer que pour k∈ ℕ

∫ |
k+1
k
| h(t) dt<h(k)< | ∫ |
k
k−1
| h(t) dt

3/ En déduire que

1
4
| (ln( |
4n+5
4n+7
| )−ln( |
4p+5
4p+7
| ))< |
n
∑
k=p+1
| h(k)< |
1
4
| (ln( |
4n+1
4n+3
| )−ln( |
4p+1
4p+3
| ))

4/ En faisant tendre n vers +∞, montrer que

1
4
| ln( |
4p+7
4p+5
| )≤ |
π
4
| −up≤ |
1
4
| ln( |
4p+3
4p+1
| )

5/ On pose sn=un+1/4ln(4p+7/4p+5) et zn=un+1/4ln(4p+3/4p+1). En utilisant le tableur, montrer que sn et zn sont deux suites adjacentes qui convergent vers π/4 plus rapidement que un et vn. Trouver une valeur de n pour que 4sn et 4zn donnent un encadrement de π de diamètre inférieur à 10−3.

### 5.6.6 Prolongement avec la formule d’Euler-Mac Laurin

La formule d’Euler-Mac Laurin à l’ordre 4 On suppose la fonction g suffisamment dérivable et on pose I0=∫01 g(t) dt. On va intégrer cette intégrale par partie, pour cela on définit le polynôme P1(x) tel que : P1′(x)=1 et ∫01 P1(t) dt=0 donc P1(x)=x−1/2.
P1(x) est une fonction impaire en (x−1/2) et on a P1(1)=−P1(0)=1/2.
On a :

I0= | ∫ |
1
0
| g(t) P1′(t) dt=P1(1)g(1)−P1(0)g(0)− | ∫ |
1
0
| g′(t) P1(t) dt

On continue, en définissant P2(x) tel que :
P2′(x)=P1(x) et ∫01 P2(t) dt=0 donc P2(x)=1/2(x−1/2)2−1/24.
P2(x) est une fonction paire en (x−1/2) et on a P2(1)=P2(0)=1/12.
On a :

∫ |
1
0
| g′(t) P2′(t) dt=P2(1)g′(1)−P2(0)g′(0)− | ∫ |
1
0
| g″(t) P2(t) dt

I0= |
g(1)+g(0)
2
| − |
g′(1)−g′(0)
12
| + | ∫ |
1
0
| g″(t) P2(t) dt

On recommence en définissant :
P3′(x)=P2(x) et ∫01 P3(t) dt=0.
On a : P3(x)=1/6(x−1/2)3−1/24(x−1/2) en effet P3(x) est une primitive de P2(x) qui est impaire en (x−1/2).
On en déduit que :
P3(1)=−P3(0) et puisque ∫01P2(t)=0 on a :
P3(1)=P3(0) donc P3(1)=−P3(0)=0.
Ceci se généralise dans la suite pour k>0 on a :
P2*k+1(1)=P2*k+1(0)=0.
On a :

∫ |
1
0
| g″(t) P3′(t) dt=P3(1)g″(1)−P3(0)g″(0)− | ∫ |
1
0
| g‴(t) P3(t) dt

I0= |
g(1)+g(0)
2
| − |
g′(1)−g′(0)
12
| − | ∫ |
1
0
| g‴(t) P3(t) dt

En définissant P4(x) tel que :
P4′(x)=P3(x) et ∫01 P4(t) dt=0, P4(x) est donc une fonction paire en (x−1/2) et on a P4(x)=1/24(x−1/2)4−1/48(x−1/2)2+7/5760.
On a P4(1)=P4(0)=−1/720.
Donc la formule d’Euler-MacLaurin à l’ordre 4 est :

∫ |
1
0
| g(t) dt= |
g(1)+g(0)
2
| − |
g′(1)−g′(0)
12
| + |
g‴(1)−g‴(0)
720
| + | ∫ |
1
0
| g(4)(t) P4(t) dt

puisque P5(0)= P5(1)=0, on a ∫01 g(4)(t) P4(t) dt=−∫01 g(5)(t) P5(t) dt.
Donc on a aussi :

∫ |
1
0
| g(t) dt= |
g(1)+g(0)
2
| − |
g′(1)−g′(0)
12
| + |
g‴(1)−g‴(0)
720
| − | ∫ |
1
0
| g(5)(t) P5(t) dt

Remarque
On peut montrer que le polynôme Pk(x)=Bk(x)/k! où Bk(x) est le k-ième polynôme de Bernoulli, il est solution de :
Bk(x+1)−Bk(x)=kxk−1, et il vérifie :
text/et−1=∑n=0∞Bn(x)tn/n!.
Le k-ième nombre de Bernouilli (c’est la commande `bernoulli(k)` de `Xcas`) est la valeur du k-ième polynôme de Bernoulli en zéro.
La formule d’Euler-Mac Laurin plus générale à l’ordre r. On a :
∫pq f(t)dt=1/2(f(p)+f(q))+∑n=p+1q−1f(n)+ ∑k=2r(−1)k/k!bernouilli(k)(f(k−1)(p)−f(k−1)(q))+ ∫01 ∑n=p+1q(−1)rf(u+n−1)Br(u)/r!du

Comparaison de ∑k=p+1nf(k) avec ∫pn f(t) dt

On a ∑k=p+1nf(k)−∫pn f(t) dt=∑k=p+1n∫k−1k(f(k)− f(t)) dt.
On se ramène à l’intervalle [0;1] en posant u+k−1=t :
∫k−1k(f(k)− f(t)) dt=∫01(f(k)− f(u+k−1)) du
puis on applique la formule d’Euler-Mac Laurin à g(u)=f(k)− f(u+k−1) (g(1)=0, g(0)=f(k)−f(k−1), g′(u)=−f′(u+k−1)....) :
∫01(f(k)− f(u+k−1)) du=f(k)−f(k−1)/2+f′(k)−f′(k−1)/12
−f‴(k)−f‴(k−1)/720+∫01 f(4)(u+k−1) P4(u) du
donc
∑k=p+1n∫01(f(k)− f(u+k−1)) du=f(n)−f(p)/2+f′(n)−f′(p)/12−f‴(n)−f‴(p)/720+
∫01 ∑k=p+1nf(4)(u+k−1) P4(u) du
On trouve :
P0=1
P1=x−1/2
P2=x2/2−x/2+1/12
P3=x3/6−x2/4+x/12
P4=x4/24−x3/12+x2/24−1/720
P5=x5/120−x4/48+x3/72−x/720
P6=x6/720−x5/240+x4/288−x2/1440+1/30240
car `int(x```^```6/720-x```^```5/240+x```^```4/288-x```^```2/1440,x,0,1)=-1/30240`
Application à f(t)=1/4t+1−1/4t+3
La série de terme général un=f(n)=2/(4n+1)(4n+3) est convergente et,
∑k=0∞f(k)=π/4=l , on a :
f′tt)=−4/(4t+1)2+4/(4t+3)2
f″(t)=32/(4t+1)3−32/(4t+3)3
f‴(t)=−384/(4t+1)4+384/(4t+3)4
f(4)(t)=6144/(4t+1)5−6144/(4t+3)5
f(5)(t)=−6144*20/(4t+1)6+6144*20/(4t+3)6
On remarque au passage que f(5) est négative et croissante et que :
pour k≥ p+1 on a 0<|f(5)(k)|<C/p6.
On calcule :
∫pn f(t) dt=1/4(ln(4n+1)−ln(4n+3)−(ln(4p+1)−ln(4p+3)))
en faisant tendre n vers +∞ on a :
∑k=p+1∞f(k)=l−∑k=0p f(k) donc
l=∑k=0p f(k)+∫p∞f(t) dt−f(p)/2−f′(p)/12+f‴(p)/720−
∑k=p+1n∫01 f(5)(u+k−1) P5(u) du
l=∑k=0p 1/4k+1−1/4k+3+1/4(ln(1+2/4p+1)−5 1/(4p+1)(4p+3)+1/3(1/(4p+1)2−1/(4p+3)2)−8/15(1/(4p+1)4−1/(4p+3)4)−∑k=p+1∞∫01 f(5)(u+k−1) P5(u) du.
et on a :
|∑k=p+1∞∫01 f(4)(u+k−1) P4(u) du|≤ ∑k=p+1∞|f(5(k−1)|∫01 |P5(u)| du|<Cste/p5
En effet on a :
∑k=p+1∞|f(5(k−1)|<C∑k=p+1∞1/p6<Cste/p5
car on compare le reste de la série ∑k=p+1∞1/p6 avec l’intégrale ∫p∞1/t6dt=1/(5p5) On a donc le développement asymptotique zp à l’ordre 5 de l:
l=π/4 ≃ zp=up+1/4ln(1+2/4*p+1)−1/(4*p+1)(4*p+3)+1/3*(1/(4*p+1)2−1/(4*p+3)2)−8/15*(1/(4*p+1)4−1/(4*p+3)4)
On peut faire un développement limité à l’ordre 5 :
1/4ln(1+2/4*p+1) lorsque p tend vers +∞.
En posant x=1/(4p+1), on tape :

`series(1/4*log(1+2*x),x=0,5)`

On obtient :

`2/4*x+1/-2*x```^```2+8/3/4*x```^```3-x```^```4+32/5/4*x```^```5+ x```^```6*order_size(x)`

On tape :

`sum(2/((4*k+1)*(4.0*k+3)),k,0,10)+subst(2/4*x+1/-2*x```^```2+ 8/3/4*x```^```3-x```^```4+32/5/4*x```^```5,x,1.0/41)+ subst(-1/((4*p+1)*(4*p+3))+ 1/3*(1/(4*p+1)```^```2- 1/(4*p+3)```^```2)-8/15*(1/(4*p+1)```^```4-1/(4*p+3)```^```4),p,10.0)`

On obtient :

`0.785398163726`

On peut aussi faire un développement asymptotique (p tend vers +∞) à l’ordre 5 de :
1/4*ln(1+2/(4p+1))−1/((4p+1)(4p+3))+1/3*(1/(4p+1)2−1/(4p+3)2)−
8/15*(1/(4p+1)4−1/(4p+3)4)
En posant x=1/(4p+1), on tape :

`series(1/4*log(1+2x)-x/(1/x+2)+1/3*(x```^```2-1/(1/x+2)```^```2)-`
`8/15*(x```^```4-1/(1/x+2)```^```4),x=0,5)`

On obtient :

`2/4*x+-3/2*x```^```2+4*x```^```3-9*x```^```4+16*x```^```5+x```^```6*order_size(x)`

On tape :

`sum(2/((4*k+1)*(4*k+3)),k,0,10)+`
`subst(2/4*x+-3/2*x```^```2+4*x```^```3-9*x```^```4+16*x```^```5,x=1.0/41)`

On obtient :

`0.785398168153`

Sans faire un développement limité de 1/4ln(1+2/4*p+1) lorsque p tend vers +∞ on tape et on obtient :

    sum(2/((4*k+1)*(4*k+3)),k,0,10)+1.0/4*log(1+2/41)
    0.785947393863

    sum(2/((4*k+1)*(4*k+3)),k,0,10)+1/4*log(1+2/41)-1.0/(41*43)
    0.785380178889

    sum(2/((4*k+1)*(4*k+3)),k,0,10)+1/4*log(1+2/41)-1.0/(41*43)+
    8*21/3/(41^2*43^2)
    0.785398195927

    sum(2/((4*k+1)*(4*k+3)),k,0,10)+1/4*log(1+2/41)-1.0/(41*43)+
    8*21/3/(41^2*43^2)-8/15*(1/41^4-1/43^4)
    0.785398163187

On rappelle que `evalf(pi/4)=0.785398163397`
On a donc pour la dernière somme 9 décimales exactes de π/4 ...