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

Pascal Discussion :

Calcul de l'argument d'un nombre complexe


Sujet :

Pascal

  1. #1
    Membre régulier
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mai 2012
    Messages : 8
    Par défaut Calcul de l'argument d'un nombre complexe
    Salut... Aidez-moi svp, j'ai un exercice que j'ai pas pu résoudre.
    Exercice :
    écrire un sous-programme chargé de calculer l'argument d'un nombre complexe ?
    Alors j'ai déclaré le type complexe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    type complexe=record
                         reel,imaginaire:real;
                  end;
    Rappelons que l'argument principal d'un nombre complexe z=a+ib non nul est un angle 'tita' tel que
    • cos(tita)= a/ module(z) et
    • sin(tita)= b/module(z)

    Le résultat du programme est la valeur de "tita" ???
    Aidez-moi svp

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 065
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Pour pouvoir t'aider, il faut que l'on sache où tu rencontres des problèmes : est-ce dans la mise en oeuvre des fonctions trigonométriques ou ailleurs ?

    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Membre régulier
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mai 2012
    Messages : 8
    Par défaut
    Citation Envoyé par Alcatîz Voir le message
    Bonjour,

    Pour pouvoir t'aider, il faut que l'on sache où tu rencontres des problèmes : est-ce dans la mise en oeuvre des fonctions trigonométriques ou ailleurs ?

    mon problème est comment trouver "tita" on connaissant son sinus et cosinus
    alors mon problème est mathématique en premier temps

  4. #4
    Membre éprouvé Avatar de Modulpro
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2010
    Messages : 76
    Par défaut
    Bonsoir

    L'angle que vous cherchez (qui au passage est désigné par la lettre grecque θ qui s'écrit "thêta") vérifie
    sin(θ) = Im(z) / |z|
    cos(θ) = Re(z) / |z|
    Ainsi, en faisant le quotient des deux égalité vous obtenez
    tan(θ) = Im(z) / Re(z)
    Il suffit donc de prendre l’arctangente du quotient de la partie imaginaire sur la partie réelle pour obtenir θ modulo π. Pour obtenir la valeur exacte, il faut étudier le signe des deux termes du quotient. Il peut être utile pour cela de raisonner avec un cercle trigonométrique (si Re(z) < 0, θ = arctan(Im(z) / Re(z)) ± π) : cette subtilité vient du fait que la fonction tangente n'est bijective que sur sa restriction à ]-π/2 ; π/2[, ce qui implique qu’arctangente ne revoie que des valeurs dans cet intervalle. Plus de détail ici.

  5. #5
    Membre très actif
    Avatar de EtherOS
    Homme Profil pro
    Etudiant Polytechnicien
    Inscrit en
    Juillet 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Etudiant Polytechnicien
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 58
    Par défaut Proposition
    {Attention: ce code n'est pas testé et peut contenir des erreurs.}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Program CalculAngle(input,output);
    Uses Math,Crt;
    Type TComplexe = record
                 RealPart : real;
                 ImgPart : real;
             End;
    Var z: Tcomplexe;
    
    Fonction Module (var InputZ: Tcomplexe) : real;
    Begin
           Module := sqrt(sqr(InputZ.ImgPart)+sqr(InputZ.RealPart));
    End;
    
    Procedure Angle (InputZ: Tcomplexe;var OutputAngle: real );
    Begin
           OutputAngle := asin(InputZ.ImgPart / Module(InputZ));
    End;
    
    Var theta : real;
    Begin
           Textbackground(1);
           clrscr;
           Textcolor(10);
           Writeln("Entrer un complexe :");
           Textcolor(14);
           Gotoxy(10,3);Readln(z.RealPart,z.ImgPart);
           Angle(z,theta);
           Textcolor(11);
           Gotoxy(10,5);Writeln(#205,"Votre Resultat :",#205);
           Textcolor(14);
           Gotoxy(10,7);Writeln("THETA = ", theta:0:3);
           Readln;
    End.

  6. #6
    Membre éprouvé Avatar de Modulpro
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2010
    Messages : 76
    Par défaut
    Bonsoir,

    Le code proposé ci-dessus utilise le fait que sin(θ) = Im(z) / |z|, relation que l'on peut retrouver facilement de manière graphique dans le plan complexe. Cependant, cette méthode présente l'inconvénient de devoir calculer le module pour trouver l'argument. Elle ne résout pas non plus le problème posée par la fonction arctangente, puisqu'elle ne permet d'obtenir que des valeurs dans [-π/2 ; π/2]. Il faut donc distinguer les cas en fonction du signe de la partie réelle pour avoir un résultat correcte :
    Pour a = arcsin( Im(z) / |z|) on a
    - si Re(z) >= 0, alors θ = a
    - si Re(z) < 0, alors θ = π - a
    De même avec la tangente :

    Pour b = arctan( Im(z) / Re(z)) on a
    - si Re(z) >= 0, alors θ = b
    - si Re(z) < 0, alors θ = b ± π
    Cette dernière méthode ne prend cependant pas en compte le cas ou Re(z) = 0.
    Ces deux méthodes peuvent se retrouver à l'aide du cercle trigonométrique et se démontrent en résolvant le système trigonométrique complet :
    sin(θ) = Im(z) / |z|
    cos(θ) = Re(z) / |z|
    qui n'admet qu'une unique solution à 2π près, contrairement aux équations faisant intervenir les fonctions réciproques.

Discussions similaires

  1. Problème pour calculer un nombre complexe en Fortran
    Par Flying Hermes dans le forum Fortran
    Réponses: 3
    Dernier message: 26/03/2017, 04h28
  2. calcul d'un module de nombre complexe
    Par crazyan dans le forum C
    Réponses: 4
    Dernier message: 17/12/2012, 10h18
  3. Calcul des racines nième d'un nombre complexe donné
    Par lucaordi dans le forum Débuter
    Réponses: 4
    Dernier message: 02/08/2008, 22h01
  4. calcule la somme de 2 nombre complexes avec structure
    Par autoin dans le forum Débuter
    Réponses: 3
    Dernier message: 05/04/2008, 21h51
  5. Calcul avec le nombre complexe
    Par Arry_C dans le forum C
    Réponses: 3
    Dernier message: 13/04/2007, 21h27

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