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

MATLAB Discussion :

problème dans le calcul d'exponentiation


Sujet :

MATLAB

  1. #1
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 142
    Points : 94
    Points
    94
    Par défaut problème dans le calcul d'exponentiation
    Bonjour à tous,

    Je bloque depuis un moment sur la question suivante :
    Comment retrouver exp(i*x*y) à partir de exp(i*x) et de b lorsque : abs(x) ou abs(x*y) est > pi ?
    voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    a = 20;
    b = 30;
    N = 11;
    n = [-(N-1)/2:(N-1)/2].';
    x = pi*n*sin(a*pi/180);
    y = cos(b*pi/180);
    Fa = exp(1j*x);
    Fab = exp(1j*x*y);
    b = [x y*ones(size(n))  x*y  Fa.^y Fab]
    voila le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      -5.3724             0.8660            -4.6527             0.7047 + 0.7095i  -0.0597 + 0.9982i
      -4.2980             0.8660            -3.7221            -0.1479 + 0.9890i  -0.8362 + 0.5485i
      -3.2235             0.8660            -2.7916            -0.8815 + 0.4722i  -0.9394 - 0.3429i
      -2.1490             0.8660            -1.8611            -0.2862 - 0.9582i  -0.2862 - 0.9582i
      -1.0745             0.8660            -0.9305             0.5974 - 0.8019i   0.5974 - 0.8019i
            0             0.8660                  0             1.0000             1.0000          
       1.0745             0.8660             0.9305             0.5974 + 0.8019i   0.5974 + 0.8019i
       2.1490             0.8660             1.8611            -0.2862 + 0.9582i  -0.2862 + 0.9582i
       3.2235             0.8660             2.7916            -0.8815 - 0.4722i  -0.9394 + 0.3429i
       4.2980             0.8660             3.7221            -0.1479 - 0.9890i  -0.8362 - 0.5485i
       5.3724             0.8660             4.6527             0.7047 - 0.7095i  -0.0597 - 0.9982i
    merci pour vos réponses

  2. #2
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut
    Salut!

    As -tu essaye de mettre une condition apres les initialisations de x et du y?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(abs(x*y)>pi)
     
    %puis la sequence des instructions
    end % final de l'instruction if
    Donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    a = 20;
    b = 30;
    N = 11;
    n = [-(N-1)/2: (N-1)/2].';
    x = pi*n*sin(a*pi/180);
    y = cos(b*pi/180);
    if(abs(x*y)>pi) 
     Fa = exp(1j*x);
     Fab = exp(1j*x*y);
     b = [x y*ones(size(n))  x*y  Fa.^y Fab]
    end

  3. #3
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 142
    Points : 94
    Points
    94
    Par défaut
    merci pour ta réponse mais le problème n'est pas résolu car l'objectif est que les deux colonnes "Fa.^y" et "Fab" soient égales

  4. #4
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 142
    Points : 94
    Points
    94
    Par défaut
    A mon avis, le problème ne vient pas uniquement de abs(x) et abs(x*y) mais aussi de la nature de y.
    En effet, on ne peut pas appliquer la formule de Moivre car ici y n'est pas entier !

  5. #5
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 142
    Points : 94
    Points
    94
    Par défaut
    Pour ne pas mélanger les indices i et j avec le nombre complexe i^2 = j^2 = -1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >> 1i
     
    ans =
     
            0 + 1.0000i
     
    >> 1j
     
    ans =
     
            0 + 1.0000i

  6. #6
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 142
    Points : 94
    Points
    94
    Par défaut
    Pour simplifier la question :
    nous avons "normalement" exp(i*A)^B = exp(i*A*B)
    Mais si on choisit (par exemple) : A = 1.57*pi et B = 0.9 on trouve ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >> (exp(1j*1.57*pi))^0.9
     
    ans =
     
       0.3476 - 0.9376i
     
    >> exp(1j*1.57*0.9*pi)
     
    ans =
     
      -0.2699 - 0.9629i

Discussions similaires

  1. Problème dans un calcul de trajectoire
    Par noobb dans le forum XNA/Monogame
    Réponses: 3
    Dernier message: 18/05/2013, 18h12
  2. [AS2] problème d'utilisation d'une variable number dans un calcul
    Par Mosler dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 12/06/2008, 22h44
  3. Problème Formule dans Colones Calculées
    Par vds2302 dans le forum SharePoint
    Réponses: 2
    Dernier message: 04/06/2007, 09h14
  4. Problème dans le calcul d'éléments d'un tableau
    Par vidocq dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/04/2006, 14h14
  5. Problème dans le calcul des normales moyennes,
    Par MaxPayne dans le forum OpenGL
    Réponses: 1
    Dernier message: 12/04/2005, 18h50

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