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.
Stocker dans une variable
xle rationnel \(1/7\).Stocker dans une variable
R1le corps des réels à une précision de \(1\) bit.Quelle puissance de \(2\) (éventuellement d’exposant négatif) est la plus proche de \(1/7\) ? Effectuer une coercion de
xdansR1, puis vérifier votre réponse.Stocker dans une variable
R3le corps des réels à une précision de \(3\) bits.Effectuer une coercion de
xdansR3, puis retrouver la mantisse et l’exposant correspondant. On pourra également s’aider de la méthode.sign_mantissa_exponent().En effectuant une coercion de
xdans 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=Truedans la fonctionplot().
# 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
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
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.