bonsoir,
j'ai l'énoncé suivant:
On peut calculer approximativement le sinus de x (voir définition du sinus) en effectuant la sommation des n premiers termes de la série (c'est-à-dire la somme infinie) :
où x est exprimé en radians.
On vous demande d'écrire un code qui lit une valeur flottante (float) x en entrée et qui imprime une approximation de sin(x).
Votre code additionne les termes successifs dans la série jusqu'à ce que la valeur d'un terme devienne inférieure (en valeur absolue) à une constante ϵ (prenez ϵ=10−6). Affichez (imprimé) ensuite l'approximation ainsi obtenue.
Attention : Calculer explicitement la valeur des factorielles peut poser des soucis lorsque vous utilisez les valeurs pour des calculs avec des float. Si c'est le cas, pensez à une autre façon de faire !
la solution que j'ai proposé est la suivante mais ça ne donne pas des résultat correcte pour tout les entrées :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 import math def fact(y): n=1 for i in range(2,y+1): n*=i return n x = float(input()) eps=10e-6 def sin(x): sin=x-(x**3/fact(3))+(x**5/fact(5))-(x**7/fact(7)) if sin<abs(eps): return sin print(sin(x))
Partager