Nombres Complexes

Salut à  tous les chocolatiers.



Dans mon programme d'électronique, je vais être amené à  manipuler des nombres complexes (petit rappel : l'impédance d'une bobine est jLw et d'un condensateur : -1/jCw). Je vais devoir créer deux classes (Inductance.h et Capacitance.h) qui seront héritées d'une classe de nombre complexe, ce qui me permettra, avec les modules et arguments, de calculer l'attenuation et la phase en fonction de la fréquence (et de tracer les courbes en question, d'ou mon autre sujet) . La question que je me pose est, existe-t-il déjà  une classe toute faite ? Sinon, je vais la faire (calcul de modue et argument en fonction de la partie réelle et de la partie imaginaire) mais ce serait dommage si une telle classe existe déja. Je n'aurai qu'à  écrire les classes héritées.

Réponses

  • CéroceCéroce Membre, Modérateur
    novembre 2012 modifié #2
    On trouve ce genre de genre de choses, mais habituellement écrites en langage C.

    Les classes présentent un problème de performances, inacceptable quand on traite de nombreux nombre complexes.

    Alors qu'en langage C, il suffit de définir une structure:


    <br />
    typedef struct {<br />
    double r;<br />
    double i;<br />
    } Complex;<br />
    




    Sachant que tu n'as que quelques fonctions à  écrire (additionner, soustraire, multiplier, module, conjugué), je te conseille de l'écrire toi-même plutôt que de passer une heure à  chercher sur le net. Au moins, tu ne seras pas perdu dans le code, et ça répondra à  tes besoins et rien que tes besoins.
  • AliGatorAliGator Membre, Modérateur
    Je plussoie ce que dit Céroce, une structure est ce qu'il y a de plus adapté.



    Sache cependant qu'il existe tout un framework pour travailler avec le traitement du signal, et entre autres les nombres complexes, sous OSX. Il s'appelle vDSP.

    Tu as un Programming Guide complet qui lui est consacré ici.



    Alors je te dis ça, d'un autre côté c'est peut-être un peu "too much" et une grosse montagne à  aborder vu que tu débutes en Objective-C... En même temps en tant qu'électronicien, les termes manipulés par vDSP (FFT, etc) te seront certainement déjà  familiers donc à  toi de voir si le framework est trop complexe pour toi (sans jeu de mot) ou si au contraire il peut te faciliter la tâche en te débroussaillant le chemin, ça vaut le coup d'y jeter un oeil.

    Certes c'est + pour du traitement du signal, des transformées de Fourrier et des calculs parallélisés (calculs vectoriels) mais ça définit des types comme le type COMPLEX justement, quelques opérations sur ce type COMPLEX (somme de complexes, produit, conjugé, norme, conversion en coordonnées polaires, ...), donc à  voir si ça peut t'être utile ou si c'est un bulldozer pour tuer une mouche selon ton cas image/wink.png' class='bbc_emoticon' alt=';)' />
  • Je vais regarder ça. Cela dit, et même si je ne m'en sers pas sur ce projet précisément, ça pourra me servir pour d'autres projets. J'ai en effet plein d'idées pour des programmes plus spécialisés : fonction de transfert d'un Push-Pull à  lampes, spectre de la distorsion harmonique, essayer de refaire Power Supply Unit Designer qui est incontournable pour calculer un circuit d'alimentation HT et qui n'existe que sous Windows, de même avec Tone Stack Calculator pour les correcteurs de tonalité d'amplis de guitare (win exclusivement ...)



    Le fait est que j'ai trouvé un moyen de conjuguer mes deux passions !
Connectez-vous ou Inscrivez-vous pour répondre.