Aller au contenu

Un mot pour Fahmio

Tu écris. Tu continues.

Un problème, une idée — assez pour qu’on comprenne, puis tu retournes à ta copie.

On lit. Tu n’as rien d’autre à faire.

Où veux-tu aller ?

↑ ↓ pour parcourir · Entrée pour ouvrir · Échap pour fermer

Fahmio
Fahmio
Bac Tunisie
AP-EAlgorithmes d’approximation

Approximation par une série dont le terme appelle des modules fournis (Fact, Puiss, Premier) : m premiers termes, puis arrêt à ε

Idée directrice

L’épreuve donne une série (ou un produit) dont on veut une valeur approchée, et des modules déjà écrits — Fact, Puiss, Expo_rapide, Premier — qu’il faut appeler sans les réécrire. Trois décisions font la note : écrire le terme de rang k avec ces modules (exposant, factoriel et signe se lisent sur la formule), savoir ce que couvrent « les m premiers termes » (à partir du premier rang de la formule, souvent k = 0), et choisir l’arrêt — un nombre de termes fixé (boucle Pour) ou deux valeurs approchées successives qui diffèrent de moins de ε (Répéter … Jusqu’à, l’ancienne somme mémorisée juste avant l’ajout). La section Sciences de l’informatique, où la trajectoire revient dans sept sessions entre 2015 et 2022, restreint souvent la somme aux indices qu’un module valide (Premier) ; l’épreuve commune des sections Mathématiques, Sciences expérimentales et Sciences techniques l’a posée en 2026.

Ce qui aide à reconnaître la démarche

« Ecrire un algorithme d’une fonction … qui calcule … à l’aide du développement en série de … pour les m premiers termes de cette série » ; « La fonction doit faire appel aux fonctions Fact et Puiss sans les développer » ; « permettant de calculer, à epsilon près, une valeur approchée de » ; « En faisant appel à la fonction … écrire une fonction … qui permet de calculer une valeur approchée de » ; « Le calcul s’arrête quand la différence entre deux sommes successives devient inférieure ou égale à une erreur Epsilon » ; « Avec P un entier tel que … = Vrai »

Besoin d’un point de départ ? Voir la méthode
  • Terme de rang k : l’écrire d’abord avec les modules fournis — Puiss(x, 2 * k) / Fact(2 * k + 1) pour sin(x) / x, Puiss(x, 2 * k + 1) / Fact(2 * k + 1) pour sin x, Expo_rapide(x, n) / Fact(n) pour eˣ. Un module fourni s’appelle, il ne se réécrit pas, et il figure dans le tableau des objets avec la nature Fonction.
  • « Les m premiers termes » : lire le premier rang sur la formule (k = 0 pour sin x et eˣ, k = 1 pour ln(1 + x)) et faire exactement m tours de la boucle Pour.
  • Arrêt à ε : Répéter … Jusqu’à Abs(s − ancien) < ε, avec ancien ← s juste avant l’ajout. Deux sommes successives diffèrent du terme ajouté — pas de la différence entre deux termes.
  • Somme restreinte (couples de nombres premiers, indices validés par un module) : chercher l’indice suivant qui convient, puis mémoriser et ajouter ; ne jamais mémoriser la somme à un tour où rien n’est ajouté.
  • Types et initialisations : somme et terme sont des Réel même quand les modules retournent des Entier ; une somme part de 0, un produit de 1 ; si l’énoncé demande une valeur transformée (6R\sqrt{6R}, 90R\sqrt{\sqrt{90R}}), le test compare ces valeurs approchées.
Les pièges à vérifier dans ta démarche

Parcourir les rangs 1 à m au lieu de 0 à m − 1 ; donner au terme de sin(x) / x l’exposant 2k + 1 de la série de sin x ; réécrire Fact et Puiss dans la fonction alors que l’énoncé demande de les appeler ; déclarer la somme Entier parce que Fact et Expo_rapide retournent des entiers ; comparer deux termes successifs au lieu de deux sommes (pour eˣ avec x = 3, les termes de rangs 2 et 3 valent tous deux 4,5 et la boucle s’arrête sur 13 au lieu de ≈ 20,08) ; mémoriser ancien ← s à chaque tour d’une somme filtrée par Premier, ce qui arrête la boucle au premier tour sans couple ; initialiser un produit à 0 ; présenter la valeur retournée comme exacte à ε près, alors que le test ne mesure que le dernier terme ajouté.

Sujet principal

Exercice 2 (4 points) et prolongement — dans l’esprit de la principale 2026 (épreuve commune) et des contrôles 2017 et 2022 de la section Sciences de l’informatique

8 questionsCorrigé masqué

Partie A — épreuve commune : questions 1 et 2 sur le modèle de l’exercice de 4 points, questions 3 à 5 en prolongement

Soient Fact(n) et Puiss(x, n) deux fonctions déjà écrites, qui retournent respectivement le factoriel de n, noté n! (avec 0! = 1), et xnx^n (avec x0=1x^0 = 1), où n est un entier positif ou nul et x un réel. Leurs entêtes sont :

Fonction Fact (n : Entier) : Entier
Fonction Puiss (x : Réel, n : Entier) : Réel

On considère la fonction f définie sur R\R par f(x)=sin⁡xxf(x) = \dfrac{\sin x}{x} si x≠0x \neq 0 et f(0)=1f(0) = 1. On admet que, pour tout réel x (en radians) :

f(x)=1−x23!+x45!−x67!+⋯f(x) = 1 - \dfrac{x^2}{3!} + \dfrac{x^4}{5!} - \dfrac{x^6}{7!} + \cdots
f(x)=∑k=0+∞(−1)k x2k(2k+1)!f(x) = \sum_{k=0}^{+\infty} (-1)^k \, \dfrac{x^{2k}}{(2k+1)!}

Dans tout l’exercice, les fonctions Fact et Puiss seront utilisées sans être développées, et chaque algorithme sera accompagné de son tableau de déclaration des objets (Objet, Type/Nature, Rôle).

  1. Valider chacune des propositions suivantes en mettant la lettre V si elle est correcte ou la lettre F sinon. Justifier chaque réponse F.
    1. Le terme de rang k de la série s’obtient par Puiss(x, 2 * k) / Fact(2 * k + 1), multiplié par 1 si k est pair et par −1 si k est impair.
    2. Les m premiers termes de la série sont ceux des rangs k = 1, 2, …, m.
    3. Pour x = 0, additionner les termes calculés avec Puiss et Fact provoque une division par zéro, comme le calcul de Sin(x) / x.
    4. Le terme de rang 2 est égal à x4120\dfrac{x^4}{120}.
  2. Écrire l’algorithme d’une fonction CalculF(x : Réel, m : Entier) : Réel qui retourne une approximation de f(x) égale à la somme des m premiers termes de cette série (m ≥ 1).
  3. Donner les valeurs successives de k, du terme ajouté et de la somme pour CalculF(1, 4) (valeurs arrondies à 10⁻⁶ près), puis la valeur retournée. La comparer à f(1)=sin1≈0,841471f(1) = sin 1 ≈ 0,841471.
  4. On ne fixe plus le nombre de termes. Écrire l’algorithme d’une fonction CalculF2(x : Réel, epsilon : Réel) : Réel qui ajoute les termes successifs de la série et s’arrête dès que deux sommes successives diffèrent de moins de epsilon (epsilon > 0).
  5. Pour x = 2 et epsilon = 10⁻³, dresser le tableau des sommes successives calculées par CalculF2, puis donner le nombre de termes additionnés et la valeur retournée.

Partie B — prolongement, section Sciences de l’informatique

Deux nombres premiers sont dits cousins lorsqu’ils diffèrent de 4, comme 3 et 7 ou 13 et 17. On admet que la série des inverses des couples (p, p + 4) de nombres premiers cousins converge ; on note C sa somme :

C = (1/3 + 1/7) + (1/7 + 1/11) + (1/13 + 1/17) + (1/19 + 1/23) + (1/37 + 1/41) + …

On dispose de la fonction Premier(n), déjà écrite, qui retourne Vrai si l’entier n est premier et Faux sinon (1 n’est pas premier) ; elle sera utilisée sans être développée :

Fonction Premier (n : Entier) : Booléen
  1. Donner les deux couples de nombres premiers cousins qui suivent (37, 41).
  2. Écrire l’algorithme d’une fonction Cousins(epsilon : Réel) : Réel qui retourne une valeur approchée de C : on ajoute les couples les uns après les autres, du plus petit p au plus grand, et l’on s’arrête dès que l’ajout d’un couple fait varier la somme de moins de epsilon.
  3. Pour epsilon = 0,05, donner les couples ajoutés, la somme après chaque ajout et la valeur retournée.

Un camarade propose la version suivante de la fonction Cousins :

Fonction Cousins (epsilon : Réel) : Réel
DEBUT
    s ← 0
    p ← 1
    Répéter
        p ← p + 2
        ancien ← s
        Si Premier(p) Et Premier(p + 4) Alors
            s ← s + 1 / p + 1 / (p + 4)
        FinSi
    Jusqu'à Abs(s - ancien) < epsilon
    Retourner s
FIN

4. Que retourne cette version pour epsilon = 0,05 ? Justifier, puis corriger l’algorithme du camarade sans lui ajouter de second Répéter.

Voir la correction commentéeAprès avoir posé votre démarche

A.1 Idée : lire sur la formule l’exposant, le factoriel et le signe du terme de rang k, puis tester les cas limites k = 0 et x = 0.

Propositionabcd
RéponseVFFV

a) V — le terme de rang k est (−1)kx2k(2k+1)!(-1)^k \dfrac{x^{2k}}{(2k+1)!} : Puiss(x, 2 * k) donne x2kx^{2k}, Fact(2 * k + 1) donne (2k+1)!(2k+1)! et (−1)k(-1)^k vaut 1 pour k pair, −1 pour k impair. L’exposant (2k) et l’entier du factoriel (2k + 1) ne sont pas les mêmes : c’est ce qui distingue cette série de celle de sin x.

b) F — le premier terme, 1, est celui du rang k = 0 : les m premiers termes sont ceux des rangs 0 à m − 1. Avec les rangs 1 à m, on oublierait le 1 et l’on ajouterait un terme de trop.

c) F — le seul diviseur est Fact(2k + 1), qui vaut au moins 1. Pour x = 0, Puiss(0, 0) = 1 et Puiss(0, 2k) = 0 pour k ≥ 1 : la somme vaut 1 = f(0). C’est Sin(x) / x qui divise par zéro ; la série ne le fait jamais.

d) V — pour k = 2 : (−1)2x45!=x4120(-1)^2 \dfrac{x^4}{5!} = \dfrac{x^4}{120}.

A.2 Idée : m termes connus d’avance, donc une boucle Pour sur les rangs 0 à m − 1 ; le signe alterne grâce à une variable multipliée par −1 à chaque tour.

Fonction CalculF (x : Réel, m : Entier) : Réel
DEBUT
    s ← 0
    signe ← 1
    Pour k de 0 à m - 1 Faire
        t ← Puiss(x, 2 * k) / Fact(2 * k + 1)
        s ← s + signe * t
        signe ← -signe
    Fin Pour
    Retourner s
FIN
ObjetType/NatureRôle
sRéelSomme des termes déjà ajoutés
tRéelValeur absolue du terme de rang k
signeEntier1 ou −1 selon la parité du rang
kEntierRang du terme
FactFonctionCalcule (2k + 1)!
PuissFonctionCalcule x2kx^{2k}

t et s sont des Réel même si Fact retourne un Entier : la division / donne un réel. x et m sont déclarés dans l’entête ; Fact et Puiss figurent dans le tableau avec la nature Fonction, sans être réécrites.

A.3 Appel CalculF(1, 4) : la boucle parcourt les rangs 0 à 3.

kterme ajoutés
01,0000001,000000
1−0,1666670,833333
20,0083330,841667
3−0,0001980,841468

On retourne ≈0,841468\boxed{\approx 0{,}841468}. L’écart avec sin 1 ≈ 0,841471 vaut environ 2,7 × 10⁻⁶, moins que le premier terme négligé, 1/9! ≈ 2,8 × 10⁻⁶.

A.4 Idée : le nombre de tours n’est plus connu, donc Répéter … Jusqu’à. On mémorise la somme juste avant d’ajouter le terme ; le test compare les deux dernières sommes.

Fonction CalculF2 (x, epsilon : Réel) : Réel
DEBUT
    s ← 0
    signe ← 1
    k ← 0
    Répéter
        ancien ← s
        t ← Puiss(x, 2 * k) / Fact(2 * k + 1)
        s ← s + signe * t
        signe ← -signe
        k ← k + 1
    Jusqu'à Abs(s - ancien) < epsilon
    Retourner s
FIN
ObjetType/NatureRôle
sRéelSomme courante
ancienRéelSomme avant le dernier ajout
tRéelValeur absolue du terme de rang k
signeEntier1 ou −1 selon la parité du rang
kEntierRang du terme
FactFonctionCalcule (2k + 1)!
PuissFonctionCalcule x2kx^{2k}

Deux sommes successives diffèrent exactement du terme ajouté : la condition revient à s’arrêter dès que le terme ajouté est, en valeur absolue, inférieur à epsilon. Avec Répéter, le premier terme est toujours ajouté avant le premier test ; une boucle Tant que Abs(s − ancien) ≥ epsilon, partie de s = ancien = 0, ne ferait aucun tour.

A.5 Pour x = 2 et epsilon = 10⁻³ :

kterme ajoutésAbs(s − ancien)
01,0000001,0000001,000000
1−0,6666670,3333330,666667
20,1333330,4666670,133333
3−0,0126980,4539680,012698
40,0007050,4546740,000705

Au rang 4, l’écart 0,000705 est inférieur à 10⁻³ : arrêt. La fonction additionne 5 termes (rangs 0 à 4) et retourne ≈0,454674\boxed{\approx 0{,}454674}, pour f(2) = sin(2) / 2 ≈ 0,454649.

B.1 Idée : tester les impairs p qui suivent 37 — p et p + 4 doivent être premiers tous les deux. 39 n’est pas premier et 41 + 4 = 45 non plus ; 43 et 47 le sont : (43, 47). Ensuite, les premiers 47, 53, 59 et 61 donnent 51 = 3 × 17, 57 = 3 × 19, 63 et 65, qui ne sont pas premiers ; 67 et 71 le sont : (67, 71).

B.2 Idée : deux boucles emboîtées — la boucle intérieure cherche le couple suivant, la boucle extérieure mémorise la somme, ajoute le couple, puis teste : chaque tour extérieur ajoute exactement un couple.

Fonction Cousins (epsilon : Réel) : Réel
DEBUT
    s ← 0
    p ← 1
    Répéter
        Répéter
            p ← p + 2
        Jusqu'à Premier(p) Et Premier(p + 4)
        ancien ← s
        s ← s + 1 / p + 1 / (p + 4)
    Jusqu'à Abs(s - ancien) < epsilon
    Retourner s
FIN
ObjetType/NatureRôle
sRéelSomme des couples déjà ajoutés
ancienRéelSomme avant le dernier ajout
pEntierPlus petit nombre du couple testé
PremierFonctionTeste si un entier est premier

p part de 1 et avance de 2 : seuls les impairs sont testés, ce qui suffit puisque 2 et 6 ne forment pas un couple. Le premier couple trouvé est (3, 7).

B.3 Pour epsilon = 0,05 :

Couple1/p + 1/(p + 4)s
(3, 7)0,4761900,476190
(7, 11)0,2337660,709957
(13, 17)0,1357470,845703
(19, 23)0,0961100,941813
(37, 41)0,0514170,993230
(43, 47)0,0445321,037763

L’ajout de (43, 47) fait varier la somme de 0,044532 < 0,05 : arrêt. On retourne ≈1,037763\boxed{\approx 1{,}037763}, après six couples. Ce n’est pas C à 0,05 près : le test ne mesure que le dernier couple ajouté, et la somme continue de croître lentement — on obtient ≈ 1,196 pour epsilon = 10⁻² et ≈ 1,408 pour epsilon = 10⁻⁴.

B.4 Idée : suivre la version du camarade tour par tour, en regardant ce que vaut s − ancien quand rien n’est ajouté. Tour 1 : p = 3, ancien = 0, (3, 7) est un couple et s = 10/21 ≈ 0,476190 ; l’écart dépasse 0,05, on continue. Tour 2 : p = 5, ancien = s, 9 n’est pas premier, rien n’est ajouté : s − ancien = 0 < 0,05 et la boucle s’arrête. Cette version retourne ≈0,476190\boxed{\approx 0{,}476190}, la valeur du seul premier couple.

Correction : ne mémoriser la somme que lorsqu’un couple est ajouté, en plaçant ancien ← s à l’intérieur du Si, juste avant l’addition. Aux tours sans couple, s − ancien reste égal au dernier couple ajouté et le test ne se déclenche pas à tort. Pour que ce test soit défini dès le premier tour, même si le premier p testé ne donnait pas de couple, on initialise ancien avant la boucle :

    s ← 0
    p ← 1
    ancien ← -1
    Répéter
        p ← p + 2
        Si Premier(p) Et Premier(p + 4) Alors
            ancien ← s
            s ← s + 1 / p + 1 / (p + 4)
        FinSi
    Jusqu'à Abs(s - ancien) < epsilon

Cette version retourne les mêmes valeurs que celle de la question B.2.

Changer d’énoncé, garder le raisonnement

Choisis un seul transfert après le sujet principal. Qu’est-ce qui change ? Quel résultat ou quelle méthode peux-tu réutiliser ? Les autres exercices restent disponibles pour une prochaine séance.

Variantes rencontrées : sin(x) par la série de Maclaurin sur m termes, Fact et Puiss fournies après une question d’identification parmi quatre fonctions (principale 2026, épreuve commune des sections Mathématiques, Sciences expérimentales et Sciences techniques) ; constante de Brun à epsilon près, somme limitée aux couples de premiers jumeaux testés par Premier (contrôle 2017, section Sciences de l’informatique, reprise dans un devoir de synthèse après une fonction Premier récursive) ; eˣ à 10⁻⁵ près avec Expo_rapide et Fact, puis réemploi dans une procédure qui remplit un fichier texte (contrôle 2022) ; π par un produit portant sur les nombres premiers testés par une fonction récursive donnée (principale 2018) ; point fixe cos p = p à epsilon près, puis une aire à epsilon près (contrôle 2018) ; π par une matrice et l’écart entre deux rapports successifs (contrôle 2015) ; racine carrée par la suite de Héron avec un écart relatif (principale 2022) ; constante des quadruplets de premiers jumeaux calculée sur les 200 premiers quadruplets, nombre de termes fixé (principale 2021).

Exercices d'entraînement — une nuance à la fois

1 Drill AP-E.1 — eˣ avec Expo_rapide et Fact fournies : un terme Réel issu de modules entiers, et deux sommes (non deux termes) comparées à ε
Entraînement 01 / 04

Drill AP-E.1 — eˣ avec Expo_rapide et Fact fournies : un terme Réel issu de modules entiers, et deux sommes (non deux termes) comparées à ε

4 questionsCorrigé masqué

On dispose des deux fonctions suivantes, déjà écrites, que l’on utilisera sans les développer :

Fonction Expo_rapide (a, n : Entier) : Entier
Fonction Fact (n : Entier) : Entier

Expo_rapide(a, n) retourne ana^n en un petit nombre de multiplications (a et n entiers positifs ou nuls, a0=1a^0 = 1) ; Fact(n) retourne n!, avec 0! = 1. On admet que, pour tout entier x positif ou nul :

ex=1+x+x22!+x33!+⋯+xnn!+⋯e^x = 1 + x + \dfrac{x^2}{2!} + \dfrac{x^3}{3!} + \cdots + \dfrac{x^n}{n!} + \cdots
  1. Écrire l’algorithme d’une fonction Exponentielle(x : Entier, epsilon : Réel) : Réel qui retourne une approximation de exe^x : on ajoute les termes xnn!\dfrac{x^n}{n!} pour n = 0, 1, 2, … et l’on s’arrête dès que deux valeurs approchées successives diffèrent d’au plus epsilon. Dresser le tableau de déclaration des objets.
  2. Un camarade déclare la somme et le terme de type Entier, « puisque Expo_rapide et Fact retournent des entiers ». Calculer le terme de rang 2 pour x = 3, puis conclure.
  3. Pour x = 2 et epsilon = 10⁻², donner les valeurs successives du terme et de la somme, le nombre de termes additionnés et la valeur retournée.
  4. Un autre camarade ajoute bien chaque terme à la somme, mais s’arrête dès que le terme qui vient d’être ajouté et le terme précédent diffèrent d’au plus epsilon. Que retourne sa fonction pour x = 3 et epsilon = 10⁻² ? Comparer avec la valeur retournée par la fonction de la question 1, environ 20,0841 après 12 termes.
Voir la correction commentéeAprès avoir posé votre démarche

1. Idée : le terme de rang n s’écrit Expo_rapide(x, n) / Fact(n) ; la somme part du terme de rang 0, puis chaque tour mémorise l’ancienne somme avant d’ajouter le terme suivant.

Fonction Exponentielle (x : Entier, epsilon : Réel) : Réel
DEBUT
    vcour ← Expo_rapide(x, 0) / Fact(0)
    n ← 0
    Répéter
        n ← n + 1
        vpred ← vcour
        vcour ← vpred + Expo_rapide(x, n) / Fact(n)
    Jusqu'à Abs(vcour - vpred) ≤ epsilon
    Retourner vcour
FIN
ObjetType/NatureRôle
vcourRéelSomme des termes de rang 0 à n
vpredRéelSomme précédente
nEntierRang du dernier terme ajouté
Expo_rapideFonctionCalcule xnx^n
FactFonctionCalcule n!

2. Pour x = 3, le terme de rang 2 vaut 322!=92=4,5\dfrac{3^2}{2!} = \dfrac{9}{2} = 4{,}5 : ce n’est pas un entier. La division / de deux entiers donne un réel, qu’un objet Entier ne peut pas recevoir : vcour, vpred (et un éventuel objet terme) sont de type Reˊel\boxed{\text{Réel}} ; seuls n et les résultats de Expo_rapide et de Fact sont entiers.

3. Idée : pour x = 2, les termes commencent par croître (2, puis encore 2) avant de décroître ; seule la différence entre deux sommes, c’est-à-dire le terme ajouté, décide de l’arrêt.

ntermevcour
01,0000001,000000
12,0000003,000000
22,0000005,000000
31,3333336,333333
40,6666677,000000
50,2666677,266667
60,0888897,355556
70,0253977,380952
80,0063497,387302

Au rang 8, vcour − vpred = 0,006349 ≤ 0,01 : arrêt. La fonction additionne 9 termes (rangs 0 à 8) et retourne ≈7,387302\boxed{\approx 7{,}387302}, pour e² ≈ 7,389056.

4. Pour x = 3, les termes valent 1, 3, 4,5 puis 4,5 : au rang 3, le terme ajouté et le précédent sont égaux, leur différence vaut 0 ≤ 0,01 et la boucle s’arrête. Cette fonction retourne 1 + 3 + 4,5 + 4,5 = 13\boxed{13}, loin de ≈ 20,0841 (e³ ≈ 20,0855). Deux termes voisins peuvent être égaux alors que la somme est encore loin de sa limite : l’arrêt doit porter sur deux valeurs approchées successives, c’est-à-dire sur deux sommes.

2 Drill AP-E.2 — Produit sur les nombres premiers : partir de 1 et comparer deux valeurs approchées de π, pas deux produits
Entraînement 02 / 04

Drill AP-E.2 — Produit sur les nombres premiers : partir de 1 et comparer deux valeurs approchées de π, pas deux produits

4 questionsCorrigé masqué

On admet la formule suivante, où le produit porte sur tous les nombres premiers p = 2, 3, 5, 7, 11, … :

π490=2424−1×3434−1×5454−1×⋯\dfrac{\pi^4}{90} = \dfrac{2^4}{2^4-1} \times \dfrac{3^4}{3^4-1} \times \dfrac{5^4}{5^4-1} \times \cdots

Si R désigne le produit des fractions p4p4−1\dfrac{p^4}{p^4-1} déjà multipliées, la valeur approchée de π associée est 90R\sqrt{\sqrt{90R}}. On dispose des fonctions Premier(n), qui retourne Vrai si l’entier n est premier et Faux sinon, et Puiss(x, n), qui retourne xnx^n ; elles sont déjà écrites et seront utilisées sans être développées.

  1. Calculer, sous forme de fractions irréductibles, la valeur de R pour p = 2, puis pour p = 2 et 3, puis pour p = 2, 3 et 5, et donner chaque fois la valeur approchée de π associée, arrondie à 10⁻⁶ près.
  2. Écrire l’algorithme d’une fonction CalculPi(epsilon : Réel) : Réel qui retourne une approximation de π : R est multiplié par la fraction de chaque nombre premier successif, et l’on s’arrête dès que deux valeurs approchées successives de π diffèrent de moins de epsilon. Dresser le tableau de déclaration des objets.
  3. Pour epsilon = 10⁻³, combien de nombres premiers interviennent et quelle valeur est retournée ?
  4. Un camarade initialise R à 0, « comme pour une somme ». Que retourne sa fonction ? Justifier.
Voir la correction commentéeAprès avoir posé votre démarche

1. Idée : multiplier les fractions une à une en simplifiant.

R=2424−1=1615R = \dfrac{2^4}{2^4-1} = \dfrac{16}{15}
R=1615×8180=2725R = \dfrac{16}{15} \times \dfrac{81}{80} = \dfrac{27}{25}
R=2725×625624=225208R = \dfrac{27}{25} \times \dfrac{625}{624} = \dfrac{225}{208}

Valeurs approchées de π associées : 90×16/15=96≈3,130169\sqrt{\sqrt{90 \times 16/15}} = \sqrt{\sqrt{96}} \approx 3{,}130169, puis ≈ 3,139905, puis ≈ 3,141163 (π ≈ 3,141593).

2. Idée : un produit part de 1, élément neutre de la multiplication ; la boucle intérieure cherche le nombre premier suivant, la boucle extérieure mémorise la valeur approchée, multiplie, recalcule, puis teste.

Fonction CalculPi (epsilon : Réel) : Réel
DEBUT
    R ← 1
    A ← RacineCarrée(RacineCarrée(90 * R))
    p ← 1
    Répéter
        Répéter
            p ← p + 1
        Jusqu'à Premier(p)
        Ar ← A
        R ← R * Puiss(p, 4) / (Puiss(p, 4) - 1)
        A ← RacineCarrée(RacineCarrée(90 * R))
    Jusqu'à Abs(A - Ar) < epsilon
    Retourner A
FIN
ObjetType/NatureRôle
RRéelProduit des fractions déjà multipliées
ARéelValeur approchée courante de π
ArRéelValeur approchée précédente de π
pEntierEntier testé
PremierFonctionTeste si p est premier
PuissFonctionCalcule p4p^4

Avant le premier tour, R = 1 donne A = 90≈3,080070\sqrt{\sqrt{90}} \approx 3{,}080070, la valeur du produit vide, que le premier tour compare à 3,130169. Le test porte sur A et Ar, les valeurs approchées de π demandées, et non sur R.

3. Pour epsilon = 10⁻³ :

pAAbs(A − Ar)
23,1301690,050099
33,1399050,009736
53,1411630,001257
73,1414900,000327

Pour p = 7, l’écart 0,000327 est inférieur à 10⁻³ : arrêt. Quatre nombres premiers interviennent (2, 3, 5 et 7) et la fonction retourne ≈3,141490\boxed{\approx 3{,}141490} ; l’écart avec π ≈ 3,141593 est d’environ 10⁻⁴.

4. Avec R ← 0, A vaut 0 avant la boucle ; au premier tour (p = 2), R reste égal à 0 × 16/15 = 0 et A = 0 = Ar : l’écart est nul, la boucle s’arrête et la fonction retourne 0\boxed{0}. Un produit s’initialise à 1, une somme à 0.

3 Drill AP-E.3 — Point fixe cos(p) = 2p : choisir la bonne écriture x = g(x), puis arrêter sur deux termes successifs
Entraînement 03 / 04

Drill AP-E.3 — Point fixe cos(p) = 2p : choisir la bonne écriture x = g(x), puis arrêter sur deux termes successifs

6 questionsCorrigé masqué

On cherche une valeur approchée du réel p de [0 ; 1] tel que cos(p) = 2p (angles en radians ; la fonction prédéfinie Cos est disponible). On propose deux suites, qui partent toutes deux de 0 :

  • (a) u0=0u_0 = 0 et un+1=cos⁡(un)2u_{n+1} = \dfrac{\cos(u_n)}{2} ;
  • (b) v0=0v_0 = 0 et vn+1=cos⁡(vn)−vnv_{n+1} = \cos(v_n) - v_n.
  1. Vérifier que si l’une de ces suites converge vers un réel ℓ, alors cos(ℓ) = 2ℓ.
  2. Calculer u1u_1 à u4u_4 et v1v_1 à v4v_4 (valeurs arrondies à 10⁻⁴ près). Laquelle des deux suites faut-il retenir pour approcher p ?
  3. Écrire l’algorithme d’une fonction Calcul(epsilon : Réel) : Réel qui retourne une approximation de p à l’aide de la suite retenue, en s’arrêtant dès que deux termes successifs diffèrent d’au plus epsilon. Dresser le tableau de déclaration des objets.
  4. Pour epsilon = 10⁻³, donner le nombre d’itérations et la valeur retournée.
Voir la correction commentéeAprès avoir posé votre démarche

1. Si un→ℓu_n \to \ell, alors, le cosinus étant continu, ℓ=cos⁡ℓ2\ell = \dfrac{\cos \ell}{2}, soit cos(ℓ) = 2ℓ. De même, vn→ℓv_n \to \ell donne ℓ = cos(ℓ) − ℓ, soit encore cos(ℓ) = 2ℓ : les deux écritures ont le même point fixe p.

2. Idée : calculer quelques termes avant d’écrire l’algorithme — une écriture x = g(x) juste peut donner une suite qui ne converge pas.

n1234
unu_n0,50000,43880,45260,4496
vnv_n1,0000−0,45971,3559−1,1426

La suite (u) se resserre autour de p ≈ 0,450184 ; la suite (v) s’en écarte et finit par osciller entre des valeurs proches de −1,5708 et 1,5708. On retient (a). En effet, la dérivée de cos⁡x2\dfrac{\cos x}{2} est −sin⁡x2-\dfrac{\sin x}{2}, de valeur absolue au plus 12\dfrac12 : l’écart à p est au moins divisé par 2 à chaque pas. Pour (b), la dérivée de cos x − x vaut −sin x − 1, soit ≈ −1,44 en p : près de p, l’écart est multiplié par environ 1,44.

3. Idée : pas de somme ici — on compare deux termes successifs de la suite ; Répéter garantit un calcul avant le premier test.

Fonction Calcul (epsilon : Réel) : Réel
DEBUT
    x ← 0
    Répéter
        xprec ← x
        x ← Cos(xprec) / 2
    Jusqu'à Abs(x - xprec) ≤ epsilon
    Retourner x
FIN
ObjetType/NatureRôle
xRéelTerme courant de la suite (u)
xprecRéelTerme précédent

4. Pour epsilon = 10⁻³ :

ItérationxAbs(x − xprec)
10,5000000,500000
20,4387910,061209
30,4526330,013842
40,4496490,002984
50,4503000,000650

À la 5ᵉ itération, l’écart 0,000650 est inférieur à 10⁻³ : arrêt. La fonction retourne ≈0,450300\boxed{\approx 0{,}450300}, à environ 1,2 × 10⁻⁴ de p ≈ 0,450184.

4 Drill AP-E.4 — Premier terme et initialisations : quatre versions d’une approximation de ln(1 + x), une seule est juste
Entraînement 04 / 04

Drill AP-E.4 — Premier terme et initialisations : quatre versions d’une approximation de ln(1 + x), une seule est juste

3 questionsCorrigé masqué

Pour 0 < x ≤ 1, on admet que :

ln⁡(1+x)=x−x22+x33−x44+⋯\ln(1+x) = x - \dfrac{x^2}{2} + \dfrac{x^3}{3} - \dfrac{x^4}{4} + \cdots

La fonction Puiss(x, n), déjà écrite, retourne xnx^n. Quatre élèves proposent une fonction Ln1(x, epsilon) qui doit retourner une approximation de ln(1 + x) en ajoutant les termes successifs et en s’arrêtant dès que deux sommes successives diffèrent de moins de epsilon.

Version A

Fonction Ln1 (x, epsilon : Réel) : Réel
DEBUT
    s ← 0
    signe ← 1
    k ← 0
    Répéter
        ancien ← s
        s ← s + signe * Puiss(x, k) / k
        signe ← -signe
        k ← k + 1
    Jusqu'à Abs(s - ancien) < epsilon
    Retourner s
FIN

Version B — identique à A, sauf l’instruction k ← 0, remplacée par k ← 1.

Version C — identique à B, sauf l’instruction s ← 0, remplacée par s ← x.

Version D

Fonction Ln1 (x, epsilon : Réel) : Réel
DEBUT
    s ← 0
    ancien ← 0
    signe ← 1
    k ← 1
    Tant que Abs(s - ancien) ≥ epsilon Faire
        ancien ← s
        s ← s + signe * Puiss(x, k) / k
        signe ← -signe
        k ← k + 1
    Fin Tant que
    Retourner s
FIN
  1. Pour x = 0,5 et epsilon = 0,01, déterminer ce que retourne chacune des quatre versions, ou l’erreur qu’elle provoque.
  2. En déduire la version correcte, puis corriger chacune des trois autres en modifiant le moins d’instructions possible.
  3. Écrire l’algorithme d’une fonction Ln1M(x : Réel, m : Entier) : Réel qui retourne la somme des m premiers termes de la série, puis donner Ln1M(0,5 ; 4).
Voir la correction commentéeAprès avoir posé votre démarche

1. Idée : dérouler le premier tour de chaque version — c’est là que se jouent les initialisations.

Version A — au premier tour, k = 0 : le terme vaut Puiss(0,5 ; 0) / 0 = 1 / 0. Division par zéro : erreur d’exécution dès le premier terme.

Version B — k part de 1 et s de 0 :

Tourkterme ajoutés
110,5000000,500000
22−0,1250000,375000
330,0416670,416667
44−0,0156250,401042
550,0062500,407292

Au 5ᵉ tour, l’écart 0,006250 est inférieur à 0,01 : arrêt. On retourne ≈ 0,407292 (ln 1,5 ≈ 0,405465).

Version C — s part de x = 0,5, puis la boucle ajoute encore le terme de rang 1, qui vaut x : le premier terme est compté deux fois. Les tours sont ceux de B, décalés de 0,5 : on retourne ≈ 0,907292.

Version D — avant le premier tour, s = ancien = 0 : Abs(s − ancien) = 0, la condition du Tant que est fausse, la boucle ne s’exécute jamais et la fonction retourne 0.

2. La version correcte est B\boxed{\text{B}}. Corrections : A — remplacer k ← 0 par k ← 1, le premier rang de cette série étant 1 et non 0 ; C — remplacer s ← x par s ← 0 ; D — remplacer ancien ← 0 par ancien ← epsilon, pour que le premier test soit vrai, ou mieux réécrire la boucle en Répéter … Jusqu’à Abs(s − ancien) < epsilon, qui ajoute toujours un terme avant de tester.

3. Idée : m termes connus, donc une boucle Pour ; ici le premier rang est 1, donc k va de 1 à m (et non de 0 à m − 1 comme pour la série de sin x).

Fonction Ln1M (x : Réel, m : Entier) : Réel
DEBUT
    s ← 0
    signe ← 1
    Pour k de 1 à m Faire
        s ← s + signe * Puiss(x, k) / k
        signe ← -signe
    Fin Pour
    Retourner s
FIN
ObjetType/NatureRôle
sRéelSomme partielle
signeEntier1 ou −1 selon la parité du rang
kEntierRang du terme
PuissFonctionCalcule xkx^k

Ln1M(0,5 ; 4) = 0,5 − 0,125 + 0,041667 − 0,015625 ≈ 0,401042 : c’est la somme obtenue au 4ᵉ tour de la version B.

Relier ce raisonnement au bac

Choisis une filière pour voir les sujets qui étayent ce scénario.