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

Algorithmes et structures de données Discussion :

Multiplication de nombres complexes


Sujet :

Algorithmes et structures de données

  1. #1
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut Multiplication de nombres complexes
    Salut !
    J'ai ouvert un nouveau topic, car c'est indépendant de la fft
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    (a+bi)(c+di)
    =ac-bd+i[bc+ad]
    =a(c+d)-(a+b)d+i[a(c+d)+(b-a)c]
    =ac-bd+i[(a+b)(c+d)-ac-bd
    Dans le premier calcul, on a 4 multiplications et 2 additions, dans la seconde, on a 3 multiplications et 5 additions, de même que la dernière.
    Ce genre de code est intéressant pour des calculs sur des machines pour lesquelles la multiplication est plus lente que l'addition.
    Quels sont les risques ?
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  2. #2
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    La technique est bien connue. Le risque principal me semble etre la perte de precision par annulation si bc+ad est petit par rapport a ac+db.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  3. #3
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    A quel point bc+ad peut être petit par rapport à ac+db ?
    C'est lié à la taille des données, je suppose ?
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  4. #4
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Mais si mes nombres sont codés en virgule fixe, je n'ai plus ce problème, si ?
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  5. #5
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par progman
    Mais si mes nombres sont codés en virgule fixe, je n'ai plus ce problème, si ?
    Exact.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  6. #6
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Ah ben c'est une bonne nouvelle ça :o !
    Il existe d'autres techniques aussi simples applicables pour d'autres calculs récurrents ?
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 154
    Points : 160
    Points
    160
    Par défaut
    pour le calcul de multiplication de matrices on a la méthode de strassen qui utilise le meme genre d'astuces... enfin c'est pas exactement ça, mais bon ça y ressemble de loin '_'
    d'ailleurs pour des matrices 2x2 ça doit revenir au meme (ou pas).

    voila un lient par exemple sur cet algo (je sais c'est en italien, mais les maths sont universelles, et j'ai pas trouvé en français en cherchant rapidement)
    http://it.wikipedia.org/wiki/Algoritmo_di_Strassen

  8. #8
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    Pour des situations impliquant des multiplications et/ou divisions successives, (propagation, abaques smith, ... ) j'utilise plutôt la représentation polaire où la multiplication et la division de complexes demande une multiplication resp. division et une adition (resp. soustraction) de réels.
    Cela est intéressant si
    1- on a les coordonnées polaires au départ
    2- on passe cartésien ->polaire au début, on fait les calculs, finalement retour en cartésien

    si on doit convertir à chaque étapes cartésien <-> polaire, cela devient évidemment trop lourd

Discussions similaires

  1. [Lazarus] Multiplication de nombres complexes
    Par anoxer dans le forum Lazarus
    Réponses: 15
    Dernier message: 17/01/2013, 16h27
  2. [xml+xslt] débutant - multiplication de nombre
    Par Silvia12 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/11/2005, 11h04
  3. [Nombre Complexe]affichage formatte
    Par parsy dans le forum Langage
    Réponses: 2
    Dernier message: 20/08/2005, 00h36
  4. Les nombres complexe et delphi
    Par wikers dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2005, 11h47
  5. [LG]Nombres complexes et forme polaire
    Par chavernac dans le forum Langage
    Réponses: 3
    Dernier message: 28/03/2005, 18h36

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