Pour s’amuser avec le tableur de Xcas

# Chapitre 6 Pour s’amuser avec le tableur de `Xcas`

## 6.1 Nombre de carrés dans un échiquier

On cherche le nombre de carrés NC(n) que l’on peut former sur un échiquier de dimension n*n.
On veut faire une fiche de travail pour que les élèves devine et démontre que :

NC(n)=12+22+32+...+n2= |
n(n+1)(2n+1)
6

### 6.1.1 L’énoncé

On rappelle que 1+2+...n=n(n+1)/2.

1. Combien peut-on former de carrés de côtés égal à 1 sur un échiquier de dimension p*p ?
2. Combien peut-on former de carrés de côtés égal à n sur un échiquier de dimension n*n ?
3. Expliquer pourquoi le nombre de carrés de côtés égal à n−1 sur un échiquier de dimension n*n est égal au nombre de carrés de côtés égal à 1 sur un échiquier de dimension 2*2.
4. Expliquer pourquoi le nombre de carrés de côtés égal à n−2 sur un échiquier de dimension n*n est égal au nombre de carrés de côtés égal à 1 sur un échiquier de dimension 3*3?
5. Sur le tableur de `Xcas` remplir :
   - la première colonne avec les nombres de 0 à n (par exemple n=39).
   - la deuxième colonne avec le nombre de carrés de côtés égal à 1, sur un échiquier de dimension p*p (p=1..n) qui est aussi le nombre de carrés de dimension n−p+1 sur un échiquier de dimension n*n.
   - la troisième colonne avec avec les sommes partielles de la deuxième colonne. Dire pourquoi cette colonne donne NC(k) lorsque A(k)=k.
   - la quatrième colonne avec les sommes partielles de la première colonne.
   - la cinquième colonne avec le quotient de la la troisième colonne par la quatrième colonne.
   - Deviner l’expression de la cinquième colonne et en déduire la valeur de l’expression de NC(n).

### 6.1.2 La correction avec `Xcas`

1. On a 0,1,2,3..n sur la colonne A
2. On a 0,1,4,9...n2 sur la colonne B
3. On a 0,1,5,14,30.... sur la colonne C
4. On a 0,1,3,6,10,15.... sur la colonne D c’est à dire k(k+1)/2 pour k=1..n. Donc D(k)=12+22+...k2=NC(k).
5. On a 0,1,5/3,7/3,3,11/3,13/2,5.... sur la colonne E.
   On devine que la colonne E vaut (2k+1)/3 pour k=1..n.
   Puisque la colonne D vaut k(k+1)/2 pour k=1..n, on en déduit que NC(k)=k(k+1)/2*(2k+1)/3=k(k+1)(2k+1)/6.
   On peut maintenant montrer par récurrence que :

   12+22+...k2= |
   k(k+1)(2k+1)
   6

   car
   12=(1*2*3)/6 et

   12+...k2+(k+1)2= |
   (k+1)(2k2+k+6k+6)
   6
   | = |
   (k+1)(k+2)(2k+3)
   6

## 6.2 Étude d’une suite

### 6.2.1 L’énoncé

On considère la suite récurrente :
u0=a
u1=b
pour n>1 un=|un−1|−un−2
Étudiez cette suite.
Faites des essais avec le tableur prendre par exemple :
a=3 avec b=4, b=5,b=7 etc...
a=−3 avec b=4, b=5,b=7 etc...
Que remarquez-vous ?

### 6.2.2 La démarche mathématique

On va montrer que cette suite est périodique (u9=u0 et u10=u1).
Pour cela on considère 9 cas :
6 cas lorsque b>=0 et 3 cas lorsque b<0:
cas 1 : b ≥ 2a ≥ 0
On obtient :
`a,b,b-a,-a,-b+2a,b-a,2b-3a,-2a+b,a-b,a,b....`
cas 2 : 2a > b ≥ a
On obtient :
`a,b,b-a,-a,-b+2a,3a-b,a,2a+b,a-b,a,b.....`
cas 3 : a/2 >b ≥ 0
On obtient :
`a,b,b-a,a-2b,-3b+2a,a-b,2b-a,-b,-b+a,a,b....`
cas 4 : a> b ≥ a/2
On obtient :
`a,b,b-a,a-2b,b,3b-a,2b-a,-b,a-b,a,b...`
cas 5 : b ≥ −a ≥ 0
On obtient :
`a,b,b-a,-a,-b,b+a,2b+a,b,b-a,a,b....`
cas 6 : −a ≥ b ≥ 0
On obtient :
`a,b,b-a,-a,-b,b+a,-a,-2a-b,-a-b,a,b....`
cas 7 : −b ≥ a >0
On obtient :
`a,b,-b-a,-2b-a,-b,b+a,-a,-b,-b+a,a,b....`
cas 8 : a >−b >0
On obtient :
`a,b,-b-a,a,2a+b,a+b,-a,-b,-b+a,a,b....`
cas 9 : −b >0 ≥ a
On obtient :
`a,b,-b-a,-2b-a,-b,a+b,-a,-2a-b,-b-a,a,b....`

### 6.2.3 La correction avec `Xcas`

Avec `Xcas` on tape (cf cas9):
`assume(a<0)` et la réponse est `a`
`assume(b<0)` et la réponse est `b`
`normal(abs(ans())-ans(-2))` et la réponse est `-b-a`
puis `enter`, `enter`...:
la réponse est `-2*b-a`
la réponse est `-b`
la réponse est `b+a`
la réponse est `-a`
la réponse est `-b-2*a`
la réponse est `-b-a`
la réponse est `a`
la réponse est `b`
Attention La commande `assume` ne doit utiliser que des noms de variables sans opérateur. Pour faire les différents cas avec `Xcas` il faut donc faire des changements de variables, par exemple pour traiter le cas1 (b ≥ 2a ≥ 0), on pose c=b−2*a donc b=c+2*a.
Avec `Xcas` on tape (cf cas9):
`assume(a>0)` et la réponse est `a`
`assume(c>0)+2*a` et la réponse est `c+2*a`
`normal(abs(ans())-ans(-2))` et la réponse est `c+a`
puis `enter`, `enter`...:
la réponse est `-a`
la réponse est `-c`
la réponse est `c+a`
la réponse est `2*c+a`
la réponse est `c`
la réponse est `-c-a`
la réponse est `a`
la réponse est `c+2*a`
On peut aussi utiliser le tableur :
on tape (cf cas9):
`assume(a>0)`; `assume(c>0)`
Puis on ouvre le tableur, et on remplit :
`A0` avec `a`, `A1` avec `c+2*a`, `A2` avec `=normal(abs(A1)-A0)`
puis on appuie sur le bouton `remplir` (ou `fill`) et on peut voir les différentes valeurs de la suite.
On peut aussi avec le tableur mettre les 9 cas dans les colonnes `A`...`I`.

Il faut taper `purge(a)` si on a fait aupparavant `assume(a>0)`
Puis on tape : `assume(c>0)`; `assume(d>0)`
et on pose :
cas1 (b ≥ 2a ≥ 0)
`A0=d, A1=c+2*d` (ie a=d, c=b−2a)
cas2 (2a ≥ b ≥ a)
`B0=d+c, B1=c+2*d` (ie d=b−a,c=−b+2a)
cas3 (a/2 >b ≥ 0)
`C0=d+2c, C1=c` (ie d=a−2b,c=b)
cas4 (a> b ≥ a/2)
`D0=2*d+2*c, D1=2*c+d` (ie d=a−b,2*c=2*b−a)
cas5 (b ≥ −a ≥ 0)
`E0=-d, E1=c+d` (ie d=−a,c=b+a)
cas6 (−a ≥ b ≥ 0)
`F0=-c-d, F1=d` (ie c=−a−b, b=d)
cas7 (−b ≥ a >0)
`G0=d, G1=-c-d` (ie c=−a−b,d=a)
cas8 (a >−b >0 )
`H0=c+d, H1=-d` (ie d=−b,c=a+b)
cas9 (−b >0 ≥ a )
`I0=-d, I1=-c` (ie d=−a,b=−c)
On met dans `A2` la formule `=normal(abs(A1)-A0)`
Puis on recopie cette formule vers le bas (bouton `remplir`) et sur le coté (menu `Edit` sous-menu `mtrw(Editeur de matrices)` et `copier->`).
On obtient :

| A | B | C | D | E | F | G | H | I
0 | d | d+c | d+2*c | 2*d+2*c | -d | -c-d | d | c+d | -d
1 | c+2*d | c+2*d | c | 2*c+d | c+d | d | -c-d | -d | -c
2 | c+d | d | -d-c | -d | c+2*d | c+2*d | c | -c | c+d
3 | -d | -c-d | d | -(2*c) | d | c+d | 2*c+d | c+d | 2*c+d
4 | -c | c | 2*d+c | 2*c+d | -c-d | -d | c+d | 2*c+d | c
5 | c+d | 2*c+d | d+c | 4*c+d | c | -c | -c | c | -c-d
6 | 2*c+d | c+d | -d | 2*c | 2*c+d | c+d | -d | -c-d | d
7 | c | -c | -c | -2*c-d | c+d | 2*c+d | d+c | d | c+2*d
8 | -c-d | -d | c+d | d | -c | c | 2*d+c | c+2*d | c+d
9 | d | d+c | 2*c+d | 2*c+2*d | -d | -c-d | d | c+d | -d
10 | c+2*d | 2*d+c | c | 2*c+d | d+c | d | -d-c | -d | -c
11 | c+d | d | -c-d | -d | 2*d+c | c+2*d | c | -c | c+d

On remarque que les colonnes se déduisent les unes des autres :
si on considère la colonne `I` on a
`I1, I2` est égal à `F0, F1` (puisque `c` er `d` jouent le même rôle) de même,
`I2, I3` est égal à `B0, B1`,
`I3, I4` est égal à `C0, C1`,
`I4, I5` est égal à `G0, G1`,
`I5, I6` est égal à `F0, F1`,
`I6, I7` est égal à `A0, A1`,
`I7, I8` est égal à `D0, D1`,
`I8, I9` est égal à `H0, H1`.
On peut donc considérer la fonction f de ℝ2 dans ℝ2 définie par :
f(x,y)=(y,|y|−x)
On peut montrer que f9=id en effet :
si A0={(x,y)∈ ℝ2, x<0, y ≤ 0}, on pose :
A1=f(A0), A2=f(A1)=f2(A0)... A8=f8(A0)
alors A0,A1,A2..,A8 forment une partition de ℝ2,
de plus si (a,b)∈ A0 alors f9(a,b)=(a,b).
Avec `Xcas` on tape :
`f(L):={ return([L[1],normal(abs(L[1])-L[0])]);
};`
`assume(a<0);assume(b<=0)`
`f(f(f(f(f(f(f(f(f(([a,b])))))))))`
On obtient : `[a,b]`
Cela prouve que la suite récurrente U définie par :
(U0,U1)=(x,y)
(Un,Un+1)=f(Un−1, Un)=(Un,|Un|−Un−1) pour n>0
est périodique de période 9 (Un=Un+9 pour tout n≥ 0)).
On peut visualiser en trois temps que `A0,A1...A8` forment une partition.
On tape :

    for (j:=0;j<300;j:=j+1) {
      c:=rand(0..2);
      d:=rand(0..3);
      point(-c+i*(c+d));
      point(c+d+i*(2*c+d));
      point(2*c+d+i*c);
      point(c-i*(c+d));
    }

et on voit les régions `A1,A2,A3,A4` sur l’écran de géométrie.
On tape :

    for (j:=0;j<300;j:=j+1) {
      c:=rand(0..2);
      d:=rand(0..3);
      point(-c-d+i*d);
      point(d+i*(2*d+c));
      point(2*d+c+i*(c+d));
      point(c+d-i*d);
    }

et on voit les régions `A5,A6,A7,A8` sur l’écran de géométrie.