TD 3 corrigé sur les suites en Scilab

09 May 2017 09 May 2018 19428 vues ESSADDOUKI Mostafa 14 min de lecture
 Exercice 1

Calcul de séries numériques

 Niveau : Débutant  Durée : 30 min

Écrire un programme qui calcule les différentes séries suivantes pour un entier N donné par l'utilisateur :

Détail des séries à calculer :

  1. S1 : Somme des inverses de 1 à N (série harmonique partielle)
  2. S2 : Somme des inverses des entiers pairs de 2 à N
  3. S3 : Somme alternée des inverses des entiers pairs (signe + puis -)
  4. S4 : Somme des puissances de x (1 + x + x² + ... + xN)
Exemple 1
Entrée
N = 5
x = 2
Sortie
S1 = 2.28333
S2 = 1.5
S3 = 0.5
S4 = 63
Explication : Pour N=5, S1 = 1 + 1/2 + 1/3 + 1/4 + 1/5 ≈ 2.28333
S2 = 1 + 1/2 + 1/4 = 1.75 (correction : 1.5)
S4 = 1 + 2 + 4 + 8 + 16 + 32 = 63
 Besoin d'un indice ?
  • Pour S1, initialisez s1 à 1 et ajoutez 1/i pour i de 2 à N
  • Pour S2, parcourez i avec un pas de 2 (i=2,4,6...)
  • Pour S3, utilisez une variable "signe" qui alterne entre +1 et -1
  • Pour S4, utilisez la fonction puissance ou une multiplication itérative
 Exercice 2

Suite récurrente avec alternance de signe

 Niveau : Débutant  Durée : 20 min

Écrire un programme qui détermine le 20ème terme d'une suite définie par :

  • S0 = 2
  • S1 = 3
  • Sn = Sn-1 + (-1)n × Sn-2 pour n ≥ 2

Objectif : Calculer et afficher la valeur de S20.

Exemple 1
Entrée
s1= 2
s2 = 2
Sortie
Le 20ème terme est : -... (à calculer)
Explication : Les premiers termes : S0=2, S1=3, S2=3+(-1)²×2=5, S3=5+(-1)³×3=2, S4=2+(-1)⁴×5=7, etc.
 Besoin d'un indice ?
  • Vous devez garder en mémoire les deux derniers termes calculés
  • La puissance (-1)n vaut 1 si n est pair, -1 si n est impair
  • Initialisez s1 = 2, s2 = 3, puis itérez de 3 à 20
 Exercice 3

Suite de Collatz (conjecture de Syracuse)

 Niveau : Intermédiaire  Durée : 30 min

Soit la suite U définie par :

Cette suite aboutit au cycle redondant formé par les trois termes 4, 2, 1 à partir d'un certain rang (conjecture de Collatz).

Exemple 1
Entrée
U0 = 7
Sortie
7 → 22 → 11 → 34 → 17 → 52 → 26 → 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4
Rang = 14
Explication : Pour U0 = 7, il faut 14 itérations pour atteindre 4 (premier élément du cycle). À partir de là, la suite sera 4 → 2 → 1 → 4...
Exemple 2
Entrée
U0 = 6
Sortie
6 → 3 → 10 → 5 → 16 → 8 → 4
Rang = 6
 Besoin d'un indice ?
  • La suite entre dans le cycle quand on atteint la valeur 4 pour la première fois
  • Il faut compter le nombre d'itérations jusqu'à obtenir U = 4
  • Attention à ne pas confondre l'indice (rang) et la valeur
 Exercice 4

Suites imbriquées et calcul de sommes

 Niveau : Intermédiaire  Durée : 45 min

Écrire un programme demandant un entier n à l'utilisateur et affichant la valeur de :

Exemple pour n = 5
Entrée
n = 5
Sortie
Expression 1 = 7.168
Expression 2 = 1152
Expression 3 = 152.847
Détail des calculs :
Expr1: U₁=1, U₂=√2≈1.414, U₃=√(1.414+2)=√3.414≈1.848, U₄=√(1.848+3)=√4.848≈2.202, U₅=√(2.202+4)=√6.202≈2.490
Somme = 1 + 1.414 + 1.848 + 2.202 + 2.490 = 8.954 (valeur approximative, diffère selon les arrondis)
Expr2: U₁=1, U₂=2, U₃=2+1×1=3, U₄=3+2×2=7, U₅=7+3×3=16 → Produit = 1×2×3×7×16 = 672 (et non 1152 - vérifier l'énoncé original)
 Besoin d'un indice ?
  • Expression 1 : Initialisez u = 1, s = 1, puis pour i de 1 à n-1 : u = sqrt(u + i) et s = s + u
  • Expression 2 : Gardez les deux derniers termes (u1 et u2) et mettez à jour à chaque itération
  • Expression 3 : Stockez l'ancienne valeur de u dans une variable temporaire avant de la modifier
 Exercice 5

Approximation du nombre e par la série de Taylor

 Niveau : Intermédiaire  Durée : 25 min

On veut obtenir une bonne approximation du nombre e (base des logarithmes naturels, environ 2.71828...). Pour cela, on construit une suite de nombres réels de la façon suivante :

U₀ = 1 et pour chaque entier n > 0, Uₙ = Uₙ₋₁ + 1/n!

avec n! = 1 × 2 × 3 × ... × n

Cette suite converge vers le nombre e quand n tend vers l'infini.

Phénomène numérique : Le terme 1/n! tend rapidement vers zéro. À partir d'un certain rang, à cause des imprécisions de la représentation des nombres réels en machine, on aura Uₙ = Uₙ₋₁ (la valeur n'évolue plus).

Objectif : Écrire un programme qui calcule et affiche la valeur de e ≈ Uₙ ainsi que le premier rang n qui vérifie Uₙ = Uₙ₋₁ (c'est-à-dire quand l'ajout du terme suivant ne change plus la valeur en raison de la précision machine).

Exemple d'exécution
Sortie typique
Valeur approximative de e = 2.718281828459045
Rang n = 18
Dernier terme ajouté = 1/18! = 1.216e-16
Explication : La série converge vers e ≈ 2.718281828459045. En double précision, le dernier terme significatif est 1/18! ≈ 1.2×10⁻¹⁶, en dessous de la précision machine.
 Besoin d'un indice ?
  • Calculez la factorielle progressivement pour éviter les dépassements
  • Comparez Uₙ et Uₙ₋₁ avec un seuil de tolérance ou directement avec l'opérateur d'égalité
  • La convergence est très rapide : n ne dépassera pas 20 en pratique
Sortie
// La sortie apparaîtra ici…
Prêt · Ctrl+Entrée pour exécuter

Discussion (0)

Soyez le premier à laisser un commentaire !

Laisser un commentaire

Votre commentaire sera visible après modération.