IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

Fonction arc tangente


Sujet :

Calcul scientifique Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 3
    Par défaut Fonction arc tangente
    Bonjour à tous,

    Je dois effectuer un programme pour la consigne suivante:

    Nom : info.png
Affichages : 2050
Taille : 315,0 Ko

    Je n'ai pas encore fait de programme de ce genre donc j'aimerais savoir si vous pourriez m'aider ou me donner des indications qui pourraient m'orienter.

    Merci

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Sans vouloir répondre à la totalité du problème posé, voilà un coup de pouce.

    En calculant les 1ers termes de la somme, on trouve:

    sn(x) = x -x**3/3 +x**5/5 -x**7/7 etc...

    Si on appelle u le numérateur d'un des termes, on voit bien qu'on peut calculer le numérateur du terme suivant en le multipliant par -(x*x). Et une fois le nouveau numérateur calculé, il suffit de le diviser par (2*k+1) pour avoir le nouveau terme à ajouter à la somme précédente.

    Voilà un petit code qui fait ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def arctang(x, n):
        k = 0
        u = x # 1ère valeur de u pour k=0
        t = u # 1er terme de s pour k=0
        s = t # somme pour k=0
        while k<n:
            k += 1
            u *= -(x*x)
            t = u/(2*k+1)
            s += t
        return s
    Si on veut calculer l'arc tangente, on ne sait pas d'avance à quel rythme ça convergera, et donc quel "n" il faudra prendre. Alors, il faudra arrêter la boucle de calcul au moment où le terme t à ajouter à s deviendra tout petit. Disons inférieur à 10**(-15):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    def arctang(x):
        eps = 10**(-15)
        k = 0
        u = x # 1ere valeur de u pour k=0
        t = u # 1er terme de s pour k=0
        s = t # somme pour k=0
        while abs(t)>eps:
            k += 1
            u *= -(x*x)
            t = u/(2*k+1)
            s += t
        return s
    Voyons maintenant si ça marche.

    On importe pi et tan (fonction tangente) du module math. On se donne un angle quelconque en radian (ici pi/8), on calcule la tangente de cet angle avec la fonction "tan", et on vérifie qu'on retrouve bien l'angle initial pi/8 avec notre fonction arctang:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    from math import pi, tan
     
    a = pi/8
     
    x = tan(a)
     
    atg = arctang(x)
     
    print(a, atg, abs(atg-a)<10**(-15))
    Ce qui affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    0.39269908169872414  0.39269908169872414  True
    Avec ça, tu devrais pouvoir faire la suite!

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par student1997 Voir le message
    Je n'ai pas encore fait de programme de ce genre donc j'aimerais savoir si vous pourriez m'aider ou me donner des indications qui pourraient m'orienter.
    Cela n'est pas si différent de la question que vous avez posé tantôt: convergence d'une série.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 3
    Par défaut arc tan
    Merci beaucoup pour vos réponses, je vais pourvoir avancer.

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/11/2012, 14h54
  2. Fonction ARC COSINUS
    Par xime78 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 21/11/2008, 21h47
  3. Utilisation de la fonction tangente
    Par jbggg dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/05/2008, 20h51
  4. La fonction arc cos
    Par taty86 dans le forum Pascal
    Réponses: 8
    Dernier message: 03/05/2007, 19h00
  5. Arc-tangentes, Taylor et les lang. de prog.
    Par Flo. dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 16/06/2006, 21h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo