DS 3
Informatique pour tous, première année
Julien Reichert
Exercice 1 : Expliquer en quelques lignes l’inconvénient d’utiliser des flottants pour des problèmes d’ingéniérie numérique.
Exercice 2 : Remplacer les lignes adéquates du programme ci-dessous mettant en œuvre l’algorithme du pivot de Gauss pour obtenir une version exacte sur des rationnels, en justifiant la représentation des nombres choisie. On complètera par d’autres fonctions en cas de besoin.
Remarque: Pas besoin de recopier tout le code, on peut repérer les lignes à modifier et donner la version modifiée.
(1) def pivot(M):
(2) n,m = len(M), len(M[0]) (3) for i in range(n):
(4) if M[i][i] == 0.:
(5) j = i+1
(6) while (j < n and M[j][i] == 0.):
(7) j += 1
(8) if j <= n:
(9) raise ValueError("Le système n’est pas de Cramer") (10) M[i], M[j] = M[j], M[i]
(11) rapport = M[i][i]
(12) for k in range(m):
(13) M[i][k] = M[i][k] / rapport (14) for j in range(n):
(15) if j != i:
(16) rapport = M[j][i]
(17) for k in range(m):
(18) M[j][k] = M[j][k] - rapport*M[i][k]
Exercice 3 : Une erreur a été volontairement ajoutée au code ci-dessus. Corriger la ligne où elle se trouve.
Exercice 4 : Écrire un programme mettant en œuvre une méthode d’approximation d’une solution d’une équation f(x) = 0 dans le cas oùf0 n’est pas fournie.
1