Nombres Complexes
BertrandMartin
Membre
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.
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.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
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:
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.
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 /wink.png' class='bbc_emoticon' alt=';)' />
Le fait est que j'ai trouvé un moyen de conjuguer mes deux passions !