Table des matières
Chapitre 1 Vue d’ensemble de
Xcas
pour le programmeur
1.1 Installation de
Xcas
1.2 Les différents modes
1.3 Éditer, sauver, exécuter un programme avec la syntaxe
Xcas
1.4 Débugger un programme avec la syntaxe
Xcas
1.5 Présentation générale des instructions avec la syntaxe
Xcas
1.5.1 Les commentaires
1.5.2 Le bloc
1.5.3 Les variables globales et les variables locales
1.5.4 Les programmes et les fonctions
1.5.5 Les tests
1.5.6 Les boucles
Chapitre 2 Les différentes instructions selon le mode choisi
2.1 Les commentaires
2.1.1 Traduction Algorithmique
2.1.2 Traduction Xcas
2.1.3 Traduction MapleV
2.1.4 Traduction MuPAD
2.1.5 Traduction TI89 92
2.2 Les variables
2.2.1 Leurs noms
2.2.2 Notion de variables locales
2.3 Les paramètres
2.3.1 Traduction Xcas
2.3.2 Traduction MapleV
2.3.3 Traduction MuPAD
2.3.4 Traduction TI89/92
2.4 Les Entrées
2.4.1 Traduction Algorithmique
2.4.2 Traduction Xcas
2.4.3 Traduction MapleV
2.4.4 Traduction MuPAD
2.4.5 Traduction TI89/92
2.5 Les Sorties
2.5.1 Traduction Algorithmique
2.5.2 Traduction Xcas
2.5.3 Traduction MapleV
2.5.4 Traduction MuPAD
2.5.5 Traduction TI89/92
2.6 La séquence d’instructions ou action ou bloc
2.6.1 Traduction Xcas
2.6.2 Traduction MapleV
2.6.3 Traduction MuPAD
2.6.4 Traduction TI89/92
2.7 L’instruction d’affectation
2.7.1 Traduction Algorithmique
2.7.2 Traduction Xcas
2.7.3 Traduction Maple
2.7.4 Traduction MuPAD
2.7.5 Traduction TI89/92
2.8 L’instruction d’affectation par référence
2.9 L’instruction pour faire des hypothèses sur une variable formelle
2.9.1 Traduction Algorithmique
2.9.2 Traduction Xcas
2.9.3 Traduction Maple
2.9.4 Traduction MuPAD
2.9.5 Traduction TI89/92
2.10 L’instruction pour connaitre les contraintes d’une variable
2.10.1 Traduction Algorithmique
2.10.2 Traduction Xcas
2.10.3 Traduction Maple
2.10.4 Traduction MuPAD
2.10.5 Traduction TI89/92
2.11 Les instructions conditionnelles
2.11.1 Traduction Algorithmique
2.11.2 Traduction Xcas
2.11.3 Traduction MapleV
2.11.4 Traduction MuPAD
2.11.5 Traduction TI89/92
2.12 Les instructions "Pour"
2.12.1 Traduction Algorithmique
2.12.2 Traduction Xcas
2.12.3 Traduction MapleV
2.12.4 Traduction MuPAD
2.12.5 Traduction TI89 92
2.13 L’instruction "Tant que"
2.13.1 Traduction Algorithmique
2.13.2 Traduction Xcas
2.13.3 Traduction MapleV
2.13.4 Traduction MuPAD
2.13.5 Traduction TI89/92
2.14 L’instruction "repeter"
2.14.1 Traduction Algorithmique
2.14.2 Traduction Xcas
2.14.3 Traduction MapleV
2.14.4 Traduction MuPAD
2.14.5 Traduction TI89/92
2.15 Les conditions ou expressions booléennes
2.15.1 Les opérateurs relationnels
2.15.2 Les opérateurs logiques
2.16 Les fonctions
2.16.1 Traduction Algorithmique
2.16.2 Traduction Xcas
2.16.3 Traduction MapleV
2.16.4 Traduction MuPAD
2.16.5 Traduction TI89 92
2.17 Les listes
2.17.1 Traduction Algorithmique
2.17.2 Traduction Xcas
2.17.3 Traduction MapleV
2.17.4 Traduction MuPAD
2.17.5 Traduction TI89/92
2.18 Un exemple : le crible d’Eratosthène
2.18.1 Description
2.18.2 Écriture de l’algorithme
2.18.3 Traduction Xcas
2.18.4 Traduction TI89/92
2.19 Un exemple de fonction vraiement récursive
2.19.1 La définition
2.19.2 Le programme
Chapitre 3 Exercices simples
3.1 Savoir si une liste est croissante
Chapitre 4 Les exercices d’algorithmiques au baccalauréat série S
4.1 Trois exercices classiques
4.1.1 La série harmonique
4.1.2 Le compte bancaire
4.1.3 La suite de Syracuse
4.2 En 2009 Centre étranger
4.3 En 2010 Amérique du sud
4.4 En 2011 La Réunion
4.5 En 2012 France
4.6 D’autres algorithmes sur ce modèle
4.6.1 Calcul de 1+2+..+
n
2
4.6.2 Calcul de 1+1/4+..+1/
n
2
4.6.3 Calcul des termes de la suite de Fibonacci
Chapitre 5 Des programmes tres simples sur les chaînes de caractères
5.1 Compter un nombre d’occurences
5.1.1 Nombre d’occurences d’une lettre
5.1.2 Nombre d’occurences d’une sous-chaîne
5.2 Supprimer une lettre et sous-chaîne
5.2.1 Supprimer une lettre
5.2.2 Supprimer une sous-chaîne
5.3 Remplacer une lettre ou une sous-chaîne par une autre chaîne
5.3.1 Remplacer une lettre par une autre lettre
5.3.2 Remplacer une sous-chaîne par une autre
Chapitre 6 Des programmes tres simples pour les Mathématiques
6.1 Définir le minimum
6.1.1 Minimum de 2 nombres
6.1.2 Minimum de 3 nombres
6.1.3 Minimum d’une liste de nombres
6.2 Trier
6.2.1 Ordonner 2 nombres par ordre croissant
6.2.2 Ordonner 3 nombres par ordre croissant
6.2.3 Ordonner une séquence de nombres par ordre croissant
6.3 Définir une fonction par morceaux
6.4 Convertir
6.4.1 Des secondes en jours, heures, minutes et secondes
6.4.2 Des degrés en radians
6.4.3 Des radians en degrés
6.5 Les fractions
6.5.1 Simplifier une fraction
6.5.2 Additionner 2 fractions
6.5.3 Multiplier 2 fractions
Chapitre 7 Des programmes tres simples pour les Statistiques
7.1 Simulation du lancer d’une pièce
7.2 Simulation d’un dé
7.3 Simulation d’une variable aléatoire
7.4 Simulation d’une variable aléatoire
7.5 Comment simplifier √
a
+√
b
lorsque (
a
,
b
)∈ ℕ
2
Chapitre 8 Les programmes d’arithmétique
8.1 Quotient et reste de la division euclidienne
8.1.1 Les fonctions iquo, irem et smod de
Xcas
8.1.2 Activité
8.2 Calcul du PGCD par l’algorithme d’Euclide
8.2.1 Traduction algorithmique
8.2.2 Traduction Xcas
8.2.3 Traduction MapleV
8.2.4 Traduction MuPAD
8.2.5 Traduction TI89 92
8.2.6 Le pgcd dans ℤ[
i
]
8.2.7 Le pgcd dans ℤ[
i
√
2
]
8.3 Identité de Bézout par l’algorithme d’Euclide
8.3.1 Version itérative sans les listes
8.3.2 Version itérative avec les listes
8.3.3 Version récursive sans les listes
8.3.4 Version récursive avec les listes
8.3.5 Traduction Xcas
8.4 Décomposition en facteurs premiers d’un entier
8.4.1 Les algorithmes et leurs traductions algorithmiques
8.4.2 Traduction Xcas
8.5 Décomposition en facteurs premiers en utilisant le crible
8.5.1 Traduction Algorithmique
8.5.2 Traduction Xcas
8.6 La liste des diviseurs
8.6.1 Les programmes avec les élèves
8.6.2 Le nombre de diviseurs d’un entier
n
8.6.3 L’algorithme sur un exemple
8.6.4 Les algorithmes donnant la liste des diviseurs de n
8.7 La liste des diviseurs avec la décomposition en facteurs premiers
8.7.1
FPDIV
8.7.2
CRIBLEDIV
8.7.3 Traduction Algorithmique
8.8 Calcul de
A
P
mod
N
8.8.1 Traduction Algorithmique
8.8.2 Traduction Xcas
8.8.3 Un exercice
8.9 La fonction "estpremier"
8.9.1 Traduction Algorithmique
8.9.2 Traduction Xcas
8.10 La fonction estpremc en utilisant le crible
8.10.1 Traduction algorithmique
8.10.2 Traduction Xcas
8.11 Méthode probabiliste de Mr Rabin
8.11.1 Traduction Algorithmique
8.11.2 Traduction Xcas
8.12 Méthode probabiliste de Mr Miller-Rabin
8.12.1 Un exemple
8.12.2 L’algorithme
8.12.3 Traduction Algorithmique
8.12.4 Traduction Xcas
8.13 Numération avec Xcas
8.13.1 Passage de l’écriture en base dix à une écriture en base b
8.13.2 Passage de l’écriture en base b de n à l’entier n
8.13.3 Un exercice et sa solution
8.14 Écriture d’un entier dans une base rationnelle
8.15 Traduction Xcas de l’algorithme de Hörner
8.15.1 Un autre exercice et sa solution
8.16 Savoir si le polynôme
A
est divisible par
B
8.16.1 Programmation de la fonction booléenne
estdivpoly
8.16.2 Autre version du programme précedent :
quoexpoly
8.17 Affichage d’un nombre en une chaîne comprenant des espaces
8.17.1 Affichage d’un nombre entier par tranches de
p
chiffres
8.17.2 Transformation d’un affichage par tranches en un nombre entier
8.17.3 Affichage d’un nombre décimal de [0,1[ par tranches de
p
chiffres
8.17.4 Affichage d’un nombre décimal par tranches de
p
chiffres
8.18 Écriture décimale d’un nombre rationnel
8.18.1 Algorithme de la potence
8.18.2 Avec un programme
8.18.3 Construction d’un rationnel
8.19 Développement en fraction continue
8.19.1 Développement en fraction continue d’un rationnel
8.19.2 Développement en fraction continue d’un réel quelconque
8.19.3 Les programmes
8.19.4 Exemples
8.19.5 Suite des réduites successives d’un réel
8.19.6 Suite des réduites "plus 1" successives d’un réel
8.19.7 Propriété des réduites
8.20 Suite de Hamming
8.20.1 La définition
8.20.2 L’algorithme à l’aide d’un crible
8.20.3 L’algorithme sans faire un crible
8.20.4 La traduction de l’algorithme avec Xcas
8.21 Développement diadique de
a
/
b
∈ [0;1[
8.21.1 L’énoncé
8.21.2 La solution
8.22 Écriture d’un entier comme ∑
j
≥ 1
a
j
j
! avec 0≤
a
j
<
j
8.22.1 L’énoncé
8.22.2 La solution
8.23 Les nombres de Mersenne
8.23.1 Définitions et téorèmes
8.23.2 Test de Lucas-Lehmer
8.24 Les nombres parfaits et les nombres amiables
8.24.1 Les nombres parfaits
8.24.2 Les nombres amiables
8.25 Les parallélépipèdes rectangles presque parfaits
8.25.1 L’énoncé
8.25.2 La solution
8.26 Les nombres heureux
8.26.1 L’énoncé
8.26.2 La solution
8.27 L’équation de Pell
8.27.1 Les proriétés
8.27.2 Le programme
Chapitre 9 Exercices de combinatoire
9.1 Fonction partage ou nombre de partitions de
n
∈ ℕ
9.1.1 L’énoncé
9.1.2 La solution
9.1.3 Une méthode plus rapide
9.1.4 Estimation asymptotique
9.2 Un exercice de combinatoire et son programme
9.2.1 L’énoncé
9.2.2 Les programmes
9.3 Visualistion des combinaisons modulo 2
9.3.1 L’énoncé
9.3.2 Le programme
9.4 Un exercice
9.5 Valeur de
e
et le hasard
9.5.1 L’énoncé
9.5.2 La solution avec
Xcas
9.6 Distance moyenne entre de 2 points
9.6.1 L’énoncé
9.6.2 La solution avec
Xcas
Chapitre 10 Les graphes et l’algorithme de Dijkstra
10.1 L’algorithme sur un exemple
10.2 Déscription de l’algorithme de Dijkstra
10.3 Le programme
10.4 Le chemin le plus court d’un sommet à un autre
Chapitre 11 Exercices sur trigonométrie et complexes
11.1 Les polynômes de Tchebychev
11.1.1 L’énoncé
11.1.2 La solution avec
Xcas
Chapitre 12 Codage
12.1 Codage de Jules Cesar
12.1.1 Introduction
12.1.2 Codage par symétrie point ou par rotation d’angle π
12.1.3 Avec les élèves
12.1.4 Travail dans Z/26Z
12.1.5 Codage par rotation d’angle α=
k
*π/13
12.2 Écriture des programmes correspondants
12.2.1 Passage d’une lettre à un entier entre 0 et 25
12.2.2 Passage d’un entier entre 0 et 25 à une lettre
12.2.3 Passage d’un entier k entre 0 et 25 à l’entier n+k mod 26
12.2.4 Codage d’un message selon Jules César
12.3 Codage en utilisant une symétrie par rapport à un axe
12.3.1 Passage d’un entier k entre 0 et 25 à l’entier n-k mod 26
12.3.2 Codage d’un message selon une symétrie droite D
12.4 Codage en utilisant une application affine
12.5 Codage en utilisant un groupement de deux lettres
12.6 Le codage Jules César et le codage linéaire
12.6.1 Les caractères et leurs codes
12.6.2 Les différentes étapes du codage
12.6.3 Le programme Xcas
12.6.4 Le programme C++
12.6.5 Exercices de décodage
12.6.6 Solutions des exercices de décodage Jules César et linéaire
12.7 Chiffrement affine : premier algorithme
12.7.1 L’algorithme
12.7.2 Traduction Algorithmique
12.7.3 Traduction Xcas
12.8 Chiffrement affine : deuxième algorithme
12.8.1 L’algorithme
12.8.2 Traduction Algorithmique
12.8.3 Traduction Xcas
12.9 Devoir à la maison
12.9.1 Le code Ascii
12.10 Codage de Vigenère
12.10.1 Le principe du codage
12.10.2 Le carré de Vigenère
12.10.3 Le programme du codage lettre par lettre
12.10.4 Le programme du décodage lettre par lettre
12.10.5 Le codage de Vigenère avec une clé
12.10.6 Le programme du tableau de Vigenère avec une clé
12.10.7 Le programme du codage
12.10.8 Le programme du décodage
12.10.9 Peut-on décrypter sans connaitre la clé ?
12.10.10 Exercice : codage et décodage globalement
12.11 Codage RSA
12.11.1 Le principe du codage avec clé publique et clé secrète
12.11.2 Codage avec signature, clé publique et clé secrète
12.11.3 Le cryptage des nombres avec la méthode RSA
12.11.4 La fonction de codage
12.12 Les programmes correspondants au codage et décodage RSA
12.12.1 Un exemple
12.12.2 Exercices de décodage RSA avec différents paramètres
12.12.3 Solutions des exercices de décodage
12.13 Codage RSA avec signature
12.13.1 Quelques précautions
Chapitre 13 Algorithmes sur les suites et les séries
13.1 Les suites
13.1.1 Les suites
u
n
=
f
(
n
)
13.1.2 La représentation des suites
u
n
=
f
(
n
)
13.1.3 La représentation des suites récurrentes
u
0
=
a
,
u
n
=
f
(
u
n
−1
)
13.1.4 La représentation des suites récurrentes [
u
0
,
u
1
,...
u
s
−1
]=
la
,
u
n
=
f
(
u
n
−
s
...,
u
n
−1
) si
n
>=
s
13.1.5 L’escargot des suites récurrentes
u
(0)=
a
,
u
(
n
)=
f
(
u
(
n
−1) si
n
>0
13.1.6 Les suites récurrentes définies par une fonction de plusieurs variables
13.2 Les séries
13.2.1 Les sommes partielles
13.2.2 Un exemple simple : une approximation de
e
13.2.3 Exemple d’accélération de convergence des séries à termes positifs
13.3 Méthodes d’accélération de convergence des séries alternées
13.3.1 Un exemple d’accélération de convergence des séries alternées
13.3.2 La transformation d’Euler pour les series alternées
13.3.3 Autre approximation d’une série alternée
13.3.4 Transformation d’une série en série alternée
13.4 Polynômes de Bernstein
13.4.1 Définition et théorème
13.4.2 Le programme
13.5 Développements asymptotiques et séries divergentes
13.5.1 Un exemple:la fonction exponentielle intégrale
13.5.2 Le calcul approché de la constante d’Euler γ
13.6 Solution de
f
(
x
)=0 par la méthode de Newton
13.6.1 La méthode de Newton
13.6.2 Exercices sur la méthode de Newton
13.6.3 La méthode de Newton avec préfacteur
13.7 Trouver un encadrement de
x
0 lorsque
f
(
x
0) est minimum
13.7.1 Déscription du principe de la méthode
13.7.2 Déscription de 2 méthodes
13.7.3 Traduction
Xcas
de l’algorithme avec Fibonacci
Chapitre 14 Algorithmes d’algébre
14.1 Méthode pour résoudre des systèmes linéaires
14.1.1 Le pivot de Gauss quand
A
est de rang maximum
14.1.2 Le pivot de Gauss pour
A
quelconque
14.1.3 La méthode de Gauss-Jordan
14.1.4 La méthode de Gauss et de Gauss-Jordan avec recherche du pivot
14.1.5 Application : recherche du noyau grâce à Gauss-Jordan
14.2 Résolution d’un système linéaire
14.2.1 Résolution d’un système d’équations linéaires
14.2.2 Résolution de
MX
=
b
donné sous forme matricielle
14.3 La décomposition LU d’une matrice
14.4 Décomposition de Cholesky d’une matrice symétrique définie positive
14.4.1 Les méthodes
14.4.2 Le programme de factorisation de Cholesky avec LU
14.4.3 Le programme de factorisation de Cholesky par identification
14.4.4 Le programme optimisé de factorisation de Cholesky par identification
14.5 Réduction de Hessenberg
14.5.1 La méthode
14.5.2 Le programme de réduction de Hessenberg
14.6 Tridiagonalisation des matrices symétriques avec des rotations
14.6.1 Matrice de rotation associée à
e
p
,
e
q
14.6.2 Réduction de Givens
14.6.3 Le programme de tridiagonalisation par la méthode de Givens
14.7 Tridiagonalisation des matrices symétriques avec Householder
14.7.1 Matrice de Householder associée à
v
14.7.2 Matrice de Householder annulant les dernières composantes de
a
14.7.3 Réduction de Householder
Chapitre 15 Le calcul intégral et les équations différentielles
15.1 La méthode des trapèzes et du point milieu pour calculer une aire
15.1.1 La méthode des trapèzes
15.1.2 La méthode du point milieu
15.2 Accélération de convergence : méthode de Richardson et Romberg
15.2.1 La méthode de Richardson
15.2.2 Application au calcul de S=∑
k
=1
∞
1/
k
2
15.2.3 Application au calcul de la constante d’Euler
15.2.4 La constante d’Euler à epsilon près et ma méthode de Richardson
15.2.5 La méthode de Romberg
15.2.6 Deux approximations de l’intégrale
15.3 Les méthodes numériques pour résoudre
y
′=
f
(
x
,
y
)
15.3.1 La méthode d’Euler
15.3.2 La méthode du point milieu
15.3.3 La méthode de Heun
Chapitre 16 Exercice : Les courses poursuites
16.1 Le chien qui va en direction de son maitre
16.2 Avec les sommets d’isopolygônes
16.3 Avec les sommets de polygônes quelconques
16.4 Avec des points aléatoires
Chapitre 17 Les quadriques
17.1 Équation d’une quadrique
17.2 Équation reduite d’une quadrique
Chapitre 18 Quelques compléments
18.1 Pour réutiliser le graphe d’une fonction utilisateur
18.2 Les programmes de quadrillage
Chapitre 19 Les programmes récursifs
19.1 Avec des chaines de caractères
19.1.1 Une liste de mots
19.1.2 Les mots
19.2 Les palindromes
19.2.1 Les phrases palindromes
19.2.2 Nombre et valeur palindromique d’un entier
19.3 Les dessins récursifs
19.3.1 Les segments
19.3.2 Les carrés
19.3.3 Les triangles
19.3.4 Exercice
19.3.5 Des triangles équilatéraux emboiés
19.3.6 Le problème des 3 insectes
19.3.7 Les cercles
19.4 Les tours de Hanoï
19.5 Les permutations
19.5.1 Les permutations circulaires
19.5.2 Programme donnant toutes les permutations d’une liste
l
Chapitre 20 Récupérer et installer un logiciel