Calculer les fonctions inverses
Résolu
DavianThule
Messages postés
30
Statut
Membre
-
DavianThule Messages postés 30 Statut Membre -
DavianThule Messages postés 30 Statut Membre -
Bonjour, en ce moment, je suis sur un programme qui calcule chaque fonctions trigonométriques de x, mais je bloque sur arctan.
Cela fait deux jours que je cherche une formule pour calculer arctan(x) avec x entre -infini et +infini.
Quelqu'un aurait-il la solution ?
Merci d'avance.
Cela fait deux jours que je cherche une formule pour calculer arctan(x) avec x entre -infini et +infini.
Quelqu'un aurait-il la solution ?
Merci d'avance.
5 réponses
-
salut
numpy ? -
Salut, non, j'essaie de calculer les fonctions sans utiliser de librairie. :)
-
Oui.
Par contre, je ne sais pas comment indenter et mettre en couleur les messages.
Je n'ai pas trouvé sur le site. -
Pour la coloration, c'est le 4ieme bouton de l'éditeur de message de ce forum : <>
Tu choisis Python dans la liste.
Pour l'indentation, si tu n'es pas capable d'indenter du code Python alors tu dois revenir à la base. Reprends ton cours sur Python du début. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
x = input('La variable =') def atan(x): # Je définis la fonction arc tangente de x y = 1 while x < tan(y): # tant que x est plus petit que tan(y) y = y - 1/1000 while x > tan(y): # tant que x est plus grand que tan(y) y = y + 1/1000 if x == tan(y): # Si x est égal à tan(y) return y print atan(x)
Quand je lance le programme, il ne donne jamais de résultat.
J'ai vérifié, la boucle ne se termine jamais.-
La comparaison "x == tan(y)" me pose problème. Je n'ai pas testé mais je ne pense pas que cela puisse fonctionner.
Tu ne peux pas faire un test d'égalité entre 2 valeurs décimales (avec des virgules) car l'ordinateur n'a pas une précision absolue. Par exemple : "if 0.0001 == 0.00011".
Donc tu dois trouver un moyen de faire une comparaison avec une gestion d'erreur. -
-
-
Oui tu as compris le principe mais la méthode reste de toute façon limitée, tu peux améliorer la comparaison avec ce code :
if math.fabs(x - math.tan(y)) < 0.001
Tu trouveras d'autres méthodes sur ce site :
http://villemin.gerard.free.fr/Calcul/Arctg.htm -
J'ai trouvé une formule !
def atan(x): y = abs(x) if y > 1: y = 1.0/y a = 1.0/((1+y**2)**(0.5)) b = 1 for n in range(1, 20): a = (a+b)/2 b = (a*b)**(0.5) atg = y/(((1+y**2)**(0.5))*a) if abs(x) > 1: atg = pi/2- atg if x < 0: atg = - atg return atg
Et ça marche pour x compris entre -infini et +infini.
-