Feuille d’exercices 6#

Objectifs

  • Nombres réels

  • Notion de précision

  • Affichage graphique

Exercice 1. Manipulation de nombre flottant avec une précision donnée#

Question 1 : Effectuer successivement les instructions suivantes.

  1. Stocker dans une variable x le rationnel \(1/7\).

  2. Stocker dans une variable R1 le corps des réels à une précision de \(1\) bit.

  3. Quelle puissance de \(2\) (éventuellement d’exposant négatif) est la plus proche de \(1/7\) ? Effectuer une coercion de x dans R1, puis vérifier votre réponse.

  4. Stocker dans une variable R3 le corps des réels à une précision de \(3\) bits.

  5. Effectuer une coercion de x dans R3, puis retrouver la mantisse et l’exposant correspondant. On pourra également s’aider de la méthode .sign_mantissa_exponent().

  6. En effectuant une coercion de x dans une structure appropriée, donner les \(100\) premières décimales de \(1/7\).

# Votre réponse ici

Exercice 2. Affichage graphique simple#

Question 1 : Tracer sur un même graphique les fonctions cosinus (en bleu) et sinus (en rouge), entre \(0\) et \(4\pi\).

# Votre réponse ici

Question 2 :

  • Tracer la fonction tangente entre \(-\pi\) et \(\pi\).

  • Puis, essayer de rendre le tracé plus « représentatif » en imposant une valeur maximale et minimale à l’ordonnée.

  • Pourquoi pensez-vous qu’il y a des droites verticales ? Les retirer en ajoutant l’argument optionnel detect_poles=True dans la fonction plot().

# Votre réponse ici

Exercice 3. Série harmonique#

On considère la suite \((H_n)_{n \ge 1}\) définie comme : \(H_n = \sum_{i=1}^n \frac{1}{n}\). Cette suite est appelée « série harmonique ».

Question 1 : Écrire une fonction calcule_H(n) qui prend en entrée un entier naturel n et qui retourne le terme \(H_n\).

# Votre réponse ici

Question 2 : Tracer sur un même graphique :

  • les \(100\) premiers termes de la suite \(H_n\),

  • la fonction \(\ln(x)\) pour \(x \in [1, 100]\).

Pour tracer les termes de la série harmonique, on rappelle qu’on peut utiliser la fonction points(L) qui prend en entrée une liste de points de la forme \([ (x_1, y_1), \dots, (x_k, y_k) ]\) , et qui retourne un objet graphique (comme le ferait plot) représentant tous les points de coordoonées \((x_i, y_i)\) de la liste.

# Votre réponse ici

Question 3 : La différence \(H_n - \ln(n)\) semble converger vers une constante. La calculer approximativement. Pour cela, on pourra calculer des termes de \(u_n := H_n - \ln(n)\) jusqu’à ce que deux termes consécutifs de la suite \((u_n)\) soit distants de moins de \(10^{-8}\).

Indication supplémentaire : comme la convergence est lente, on pourra essayer de :

  • reformuler la valeur de \(u_{n+1}-u_n\) pour éviter de calculer des sommes

  • calculer les \(u_{n+1}-u_n\) avec des ordre \(n\) allant de \(100\) en \(100\) plutôt que de \(1\) et \(1\)

Puis, comparer la valeur obtenue à l’objet euler_gamma de Sagemath.

# Votre réponse ici

Exercice 4. Produit de Wallis et une mauvaise approximation rationnelle de \(\pi\)#

En 1656, Wallis a démontré que

\[ \frac{\pi}{2} = \prod_{n=1}^\infty \frac{4n^2}{4n^2-1}. \]

Nous allons utiliser cette formule pour obtenir une approximation rationnelle (mais peu efficace) de \(\pi\).

Question 1 : Écrire une fonction produit_wallis(k) qui prend en entrée un entier strictement positif k, et qui retourne le produit

\[ P_k := \prod_{n=1}^k \frac{4n^2}{4n^2-1}. \]

Vérifier ensuite que \(P_1 = \frac{4}{3}\) et que \(P_6 = \frac{1048576}{693693}\).

# Votre réponse ici

Question 2 : Afficher le nombre flottant associé à \(2 P_{100}\), puis vérifier qu’il a au moins une décimale en commun avec \(\pi\).

# Votre réponse ici

Question 3 : Quelle est la plus petite valeur de \(k\) pour laquelle les nombres \(2 P_k\) et \(\pi\) ont au moins \(3\) décimales en commun ? Quel est alors le nombre de chiffres du dénominateur \(d\) de la fraction \(2 P_k\) (calculer la partie entière supérieure de \(\log_{10}(d)\) pour obtenir cela) ?

# Votre réponse ici

Remarque : Cette manière de calculer les décimales de \(\pi\) est donc très peu efficace.