Feuille d’exercices 5#

Objectifs

  • Introduction à Sagemath

  • Calcul exact : entiers, rationnels, complexes

  • Notions sur le calcul symbolique

  • Notion de méthode et de classe

Exercice 1. Manipulation élémentaire d’entiers, de rationnels et de complexes#

Question 1. Donner la valeur exacte des quantités suivantes :

  • \(12!\)

  • le rationnel \(\frac{8778}{4557}\)

  • le plus petit nombre premier supérieur à \(2^{20}\)

  • \(\cos(2\pi/5)\)

  • la partie réelle de \(3 e^{7 i \pi/12}\)

  • l’argument de \(1+i\)

# Votre réponse ici

Question 2. Écrire une fonction plus_petit_module(liste) qui prend en entrée une liste liste de nombres complexes, et qui retourne le nombre complexe de plus petit module de cette liste. Si la liste est vide, la fonction devra afficher un texte d’erreur, puis retourner le mot-clef None.

# Votre réponse ici

Exercice 2. Somme de binomiaux#

Question 1. Écrire une fonction somme_newton(n) qui prend en entrée un entier n et qui retourne la valeur de la somme

\[\sum_{k=0}^n \binom{n}{k}.\]
# Votre réponse ici

Question 2. Vérifier que pour tout \(n\) compris entre \(0\) et \(100\), l’égalité \(\sum_{k=0}^n \binom{n}{k} = 2^n\) est bien vérifiée.

# Votre réponse ici

Question 3. Écrire une fonction somme_binomiaux(n) qui prend en entrée un entier n et qui retourne la valeur de la somme

\[ \sum_{k=0}^n \frac{(-1)^k}{k+1} \binom{n}{k}. \]

Puis, calculer plusieurs valeurs de cette somme, émettre une conjecture, puis la « vérifier » sur les valeurs de \(n\) comprises en \(0\) et \(100\).

# Votre réponse ici

Exercice 3. Double boucle#

Dans cet exercice, on considère une liste \(L = (L_0, \dots, L_{n-1})\) de rationnels distincts, de longueur \(n \ge 2\).

Question 1. Écrire une fonction produit_differences(L), qui prend en entrée la liste L de rationnels, et qui retourne la valeur du produit

\[ \prod_{0 \le i < j \le n-1} \frac{1}{L_j-L_i}\,. \]
# Votre réponse ici

Question 2. Écrire une fonction plus_proches(L), qui prend en entrée la liste L de rationnels, et qui retourne la paire \((a, b)\) de rationnels les plus proches parmi toutes les paires d’éléments de la liste L.

# Votre réponse ici

Exercice 4. Triplets pythagoriciens#

Un triplet pythagoricien est un triplet \((p, q, r) \in \mathbb{N}^3\) tel que \(p^2 + q^2 = r^2\). Observons que, si \((p, q, r)\) est un triplet pythagoricien, alors \(p \le r\) et \(q \le r\).

Question 1. Écrire une fonction trouve_triplets(r), qui prend entrée un entier naturel r, et qui retourne la liste de toutes les paires \((p, q)\) telles que \((p, q, r)\) forme un triplet pythagorien.

# Votre réponse ici

Tout triplet pythagoricien peut être associé à un point du cercle unité dont les coordonnées sont des rationnels. En effet,

\[p^2 + q^2 = r^ 2 \iff (p/r)^2 + (q/r)^2 = 1 \iff (p/r, q/r) \, \text{ est un point rationnel du cercle unité } \]

Par ailleurs, si \((\alpha, \beta) \in \mathbb{Q}^2\) est sur le cercle unité, alors en écrivant \(\alpha = a/n\) et \(\beta = b/n\) sur le même dénominateur \(n\), on obtient un triplet pythagoricien \((a, b, n)\).

Question 2. Écrire une fonction triplet_vers_point(t, r) qui transforme un triplet pythagoricien formé de t=(p,q) et r, en un point du cercle unité (donné comme un couple de rationnels).

Pour s’assurer que les valeurs obtenues sont bien des rationnels, on effectuera une conversion de type des éléments de t vers la classe des entiers.

# Votre réponse ici

Question 3. Déduire de la question précédente une fonction trouve_points_rationnels(r_max), qui prend entrée un entier naturel r_max, et qui retourne la liste de tous les points rationnels \((x, y)\) du cercle unité, dont un dénominateur commun est \(r \le r_{max}\).

# Votre réponse ici

Question 4 (optionnelle). Éliminer les éventuels doublons (éléments répétés plusieurs fois) de la liste précédente pour obtenir une liste d’éléments distincts.

# Votre réponse ici

Exercice 5. Transformations complexes#

Question 1 : Créer la liste L des nombres complexes \((1, i, -1, -i)\). Puis, exécutez l’instruction polygon(L).show(). Qu’observez-vous ?

# Votre réponse ici

Question 2 : En adaptant l’instruction de la question précédente, tracer un triangle équilatéral, un pentagone régulier, puis un polygone régulier à \(27\) côtés.

# Votre réponse ici

Question 3 : Effectuer les instructions suivantes :

  1. Construire T, la liste de points correspondant à un triangle équilatéral de côté \(1\), dont la base est horizontale, et dont le point « en bas à gauche » a pour coordonnées complexes \(z = 1\).

  2. Construire M, la liste des points de T sur lesquels on a appliqué la transformation complexe \(z \mapsto -2z\).

  3. Exécuter les \(2\) instructions suivantes :

figure1 = polygon(T, color="blue") + polygon(M, color="red")
figure1.show()

Quelle transformation géométrique a-t-on opérée sur le triangle bleu ?

# Votre réponse ici

Question 4 (avancée) : Appliquer successivement (11 fois) la transformation complexe \(z \mapsto e^{-i\pi/6} z\) à tous les points de la liste T de la question 2, puis tracer la figure qui contient ces 11 transformations. Quelle transformation géométrique a-t-on opéré ?

# Votre réponse ici