Calculs, calculs...

Algorithmes et histoire des mathématiques
jeudi 11 novembre 2010
par  Nathalie CARRIÉ

Un travail d’algorithmique et d’histoire des mathématiques a été donné en début d’année (3 septembre 2010). Le point de départ était un TP de l’IREM de Strasbourg, Première S, collection ISTRA :
PNG

Le sujet du travail à faire
20100910 AlgorithmesTravailDeGroupe1 600px
20100910 AlgorithmesTravailDeGroupe2 600px
20100910 AlgorithmesTravailDeGroupe3 600px

Calculs, calculs

A/ Calcul de E

L’expression à calculer : 9*10864^4-18817^4+2*18817^2

- Calcul avec bc
CalculAvecBc {PNG}

- Calcul avec un javascript dans CarMetal
CalculAvecCarMetal1 600px {PNG}

- Calcul avec gp
CalculAvecGp {PNG}

- Calcul avec MagicNumber
CalculAvecMagicNumber {PNG}

- Calcul avec Maxima
CalculAvecMaxima {PNG}

- Calcul avec Open Office Calc
CalculAvecOpenOffice {PNG}
CalculAvecOpenOffice2 600px {PNG}

- Calcul avec Processing
CalculAvecProcessing {PNG}

- Calcul avec Google
Calcul sur Google {PNG}

- Calcul avec Python (contribution Alain Busser)
Calcul avec Python

B/ Vocabulaire mathématique

Voir la séance d’exemples en classe.

C/ Calcul exact de E

On pourra voir les calculs faits par les élèves dans les deux exemples fournis dans la conclusion.

D/ Autour des entiers naturels tels que $y^2-3*x^2=1$ $R$

Remarquons avec les élèves que si $(x,y)$ est un couple de réels vérifiant (R) avec $y$ positif, alors $(x,y)$ se trouve sur cette courbe, et les couples d’entiers $(x,y)$ s’éloignent de plus en plus. Cela peut se voir dans CarMetal avec un simple roulement de molette pour zoomer.

3x2Plus1
3x2Plus1b Rendu QtiPlot

E/ Point d’histoire
 [1]

- Equation Diophantienne
- Qui est Diophante ?
- Equation de Pell-Fermat
- Théorème de Fermat, son histoire
- Qui est Fermat ?
- Qu’est-ce qu’un triplet pythagoricien ?
Ce sont les triplets d’entiers naturels de la forme $(x,y,z)$ avec $z^2=y^2+x^2$.
- Il n’existe qu’un unique triplet pythagoricien d’entiers naturels consécutifs :
Posons $y=x+1$ et $z=x+2$
On a alors $(x+2)^2=(x+1)^2+x^2$, équation qui conduit à une équation du second degré dont l’unique solution positive est $x=3$.
Le seul triplet pythagoricien d’entiers naturels consécutifs est donc : $(3,4,5)$.

F/ Algorithmique

- Script du calcul de l’expression avec CarMetal
ScriptCalculExpression

- Calcul des couples (x’, y’) de nombres de plus en plus grands vérifiant (R)
xyx y 1

x et y de plus en plus grands avec CarMetal

for (x=1; x<10000; x=x+1){
                y=Math.sqrt(1+3*x*x);
                if (y-Math.round(y)==0){
                        x1=2*x*y; y1=3*x*x+y*y;
                        Println("x= "+x+" y= "+y+" x'= "+x1+" y'= "+y1);
                }

}

Cela donne avec la coloration syntaxique d’un bon éditeur de textes :

xEtyDePlusEnPlusGrandsAvecCarMetal1

Avec Processing

int x=0; float y=0; int yy;
int x1=0, y1=0;

for(x=1; x < 10000; x++) {

 y=1+3*x*x;
 y=sqrt(y);
 
 if (y - round(y) == 0) {
   yy=int(y);
   x1=2*x*yy;  y1=3*x*x+yy*yy;
   println("x = "+x+" y= "+ yy +"     "+ " x' = 2xy = "+ x1 + " y'= 3x^2+y^2 = "+y1);
 }

}

Cela donne avec la coloration syntaxique d’un bon éditeur de textes :

Avec la calculatrice TI82

:For(X,1,100)
1+3*X^2→X
√(Y)→Y
If (Y-int(Y)=0)
Then
2*X*Y→Z
3*X^2+Y^2→T
Disp "X = ",X," Y= ",Y," Z =",Z," T =",T
End
End

xEtyDePlusEnPlusGrandsAvecLaTI82


- Les triplets pythagoriciens (rendu QtiPlot (logiciel d’analyse et de visualisation de données)).

TripletsPythagoriciens800px {PNG}

Avec CarMetal

Triplets Pythagoriciens avec boucle for simple :

for (x=1; x<100; x=x+1){
        for (y=x; y100; y=y+1){
                z=Math.sqrt(x*x+y*y);
                if (z-Math.round(z)==0){
                        Println("x= "+x+" y= "+y+" z= "+Math.round(z));
                } else {

                }       
        }
}

Triplets Pythagoriciens avec départ de boucle aléatoire en y :

for (x=1; x<100; x=x+1){
        x=Math.round(Math.random()*100)+1;
        for (y=x; y<x+100; y=y+1){
                z=Math.sqrt(x*x+y*y);
                if (z-Math.round(z)==0){
                        Println("x= "+x+" y= "+y+" z= "+Math.round(z));
                } else {

                }       
        }
}

Cela donne avec la coloration syntaxique d’un bon éditeur de textes :

TripletsPythagoriciens
TripletsPythagoriciensAvecBoucleForSimple

On obtient par exemple :

x= 95 y= 168 z= 193
x= 65 y= 72 z= 97
x= 65 y= 156 z= 169
x= 5 y= 12 z= 13
x= 48 y= 55 z= 73
x= 48 y= 64 z= 80
x= 48 y= 90 z= 102
x= 48 y= 140 z= 148
x= 36 y= 48 z= 60
x= 36 y= 77 z= 85
x= 36 y= 105 z= 111
x= 40 y= 42 z= 58
x= 40 y= 75 z= 85
x= 40 y= 96 z= 104
x= 40 y= 42 z= 58
x= 40 y= 75 z= 85
x= 40 y= 96 z= 104
x= 96 y= 110 z= 146
x= 96 y= 128 z= 160
x= 96 y= 180 z= 204
x= 50 y= 120 z= 130
x= 42 y= 56 z= 70
x= 87 y= 116 z= 145
x= 96 y= 110 z= 146
x= 96 y= 128 z= 160
x= 96 y= 180 z= 204
x= 78 y= 104 z= 130
x= 78 y= 160 z= 178
x= 13 y= 84 z= 85
x= 8 y= 15 z= 17
x= 25 y= 60 z= 65
x= 69 y= 92 z= 115
x= 39 y= 52 z= 65
x= 39 y= 80 z= 89
x= 40 y= 42 z= 58
x= 40 y= 75 z= 85
x= 40 y= 96 z= 104
x= 5 y= 12 z= 13
x= 66 y= 88 z= 110
x= 66 y= 112 z= 130
x= 40 y= 42 z= 58
x= 40 y= 75 z= 85
x= 40 y= 96 z= 104
x= 16 y= 30 z= 34
x= 16 y= 63 z= 65
x= 28 y= 45 z= 53
x= 28 y= 96 z= 100
x= 93 y= 124 z= 155
x= 69 y= 92 z= 115
x= 16 y= 30 z= 34
x= 16 y= 63 z= 65
x= 69 y= 92 z= 115
x= 7 y= 24 z= 25
x= 8 y= 15 z= 17
x= 22 y= 120 z= 122
x= 99 y= 132 z= 165
x= 99 y= 168 z= 195

Avec Processing

float z=0;

for(int x=1; x < 100; x++) {
 for(int y=x; y < 100; y++) {
 z=x*x+y*y;
 z=sqrt(z);
 if (z - round(z) == 0) {
   println("x = "+x+" y= "+ y + " z = "+int(z));
 }
}
}
 

Triplets Pythagoriciens avec départ de boucle aléatoire en y :

int x=0, y=0;
float z=0;


for(int i=0; i < 100; i++) {
 x=int(random(1,1000));
 for(y=x; y < x+100; y++) {
 z=x*x+y*y;
 z=sqrt(z);
 
 if (z - round(z) == 0) {
   println("x = "+x+" y= "+ y + " z = "+int(z));
 }
}
}
Triplets PythagoriciensAvecBoucleFor
Triplets PythagoriciensAvecChoixAleatoireDex

Avec Scratch

TripletsPythagoriciens
TripletsPythagoriciens2

On peut voir le programme tourner sur le site de Scratch.

Avec la calculatrice TI82

:For(X,1,100)
For(Y,X,100)
X*X+Y*Y→Z
√(Z)→Z
If (Z-int(Z)=0)
Then
Disp "X = ",X," Y= ",Y," Z =",Z
End
End
TripletsPythagoriciensCodeTI82
TripletsPythagoriciensxAleatoireCodeTI82


Conclusion

Le TP était riche et a permis d’aborder beaucoup de sujets passionnants.
Les élèves ont largement répondu aux attentes de ce travail de groupe, pour lequel ils ont eu presque deux mois de délai (ils l’ont rendu le 25 octobre, le sujet ayant été distribué le 3 septembre).
Un groupe d’élèves (Rachelle, Amandine et Sarah) a fourni un travail remarquable que l’on peut télécharger ici.
Un autre groupe (Khaira, Julie, Alexandre et Soumayyah) a réalisé un travail tout aussi riche et appronfondi, à lire ici.

Le barême était sur 24. Ces deux groupes ont eu 20.

Les élèves dans l’ensemble m’ont surprise par la diversité des calculs effectués.


[1Pour répondre à ces questions, il suffit de se rendre sur Wikipédia


Documents joints

Erreurs d'arrondi
Christian Vassar IUFM de Rouen
Triplets pythagoriciens
avec z comme étiquette sur le graphe
Triplets pythagoriciens
sans étiquette sur le graphe
Fichier Triplets de Pythagore pour QtiPlot
Fichiers binaires TI82
Triplets pythagoriciens code Scratch
Triplets pythagoriciens avec affichage code (...)
Triplets pythagoriciens : les sources (...)

Commentaires

Logo de debimax
samedi 5 février 2011 à 11h55 - par  debimax

Regarde l’aide mémoire que je me suis fait http://megamaths.free.fr/pdf/aideme... (pour le tex http://megamaths.free.fr/pdf/aideme...)

J’aime bien R-cran voici une de mes activités pour le cours en tes ou ts sur les test à l’équation à une loi équirépartie http://megamaths.free.fr/pdf/adequa...
Tu pourras voir la difféerence entre R-cran et xcas(je débutais avec xcas)

Sinon, pour revenir à cette page je trouve cela intéressant.

Logo de Alain BUSSER
vendredi 19 novembre 2010 à 07h16 - par  Alain BUSSER

« il me semble qu’il pourrait rendre d’intéressants services pour la mise en œuvre des algorithmes » :

Question : Est-ce R-Cran possède des boucles à condition d’arrêt ? Parce que si oui, c’est effectivement un outil très intéressant pour l’algorithmique...

Logo de Hubert Raymondaud
mercredi 17 novembre 2010 à 12h53 - par  Hubert Raymondaud

Très intéressant... Un bon éventail d’outils informatiques sont présentés. J’utilise aussi et de plus en plus R (voir l’IREM de Lyon), pour les statistiques, mais il me semble qu’il pourrait rendre d’intéressants services pour la mise en œuvre des algorithmes...

Plus pratiquement le document « http://www.reunion.iufm.fr/recherch...;» a certaines images qui sont décentrées et dont il manque une partie .... Est-il possible d’y remédier ?

Je n’ai rien trouvé dans les archives « TripletsPythagoriciens.sb.zip » et « TripletsPythagoriciensAvecAffichage.sb.zip » ???

Bien cordialement
Hubert Raymondaud (de la CII proba-stat)