BIBLIOTHÈQUE DE FONCTIONS COMPLEXES (OPÉRATEURS, LOGARITHMES, TRIGONOMÉTRIE...)

yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017 - 26 oct. 2004 à 08:55
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 - 21 mai 2005 à 09:54
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/27093-bibliotheque-de-fonctions-complexes-operateurs-logarithmes-trigonometrie

cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
21 mai 2005 à 09:54
Je m'auto-surprend avec 2 malheureuses erreurs:
1) cos(pi) = -1 et pas zéro
2) Si on résoud algébriquement pour trouver la racine carrée d'un nombre complexe, on tombe d'abord sur 4 réponses. Si on n'oublie pas la condition sur les signes, alors il ne reste plus que 2 solutions. Correction: sqrt(a+ib) donne 2 réponses et non 4. En réalité, c'est facile: tout nombre complexe admet N racines lorsqu'on lui applique la fonction "racine Nième". En l'occurence, racine carrée est telle que N=2, soit 2 racines par la fonction SqrtCpx.

C'était juste une précision...
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
16 déc. 2004 à 19:33
La mise à jour implémente donc 8 nouvelles fonctions: ExpToRealCpx, PowerCpx, ScalCpx, ArgumentCpx, PositiveCpx, NegativeCpx, SymCpx, DetCpx. J'en ai renommé une sur la puissance entière.

Mais surtout, je voulais préciser 3 choses:

1)
Avec le code ShowMessage(CpxToStr(ExpToRealCpx(1,Pi))); le résultat n'est pas vraiment -1+i, car l'application de cos(pi) ne fait pas exactement 0 avec les processeurs. Tout dépendant duquel bien sûr, mais le décalage n'est pas lié à mon unité. J'avoue que c'est ennuyeux pour quelqu'un qui recherche un formalisme absolu, qui n'est pas ici offert. Tout est géré numériquement avec les approximations qui en découlent. La racine carré de 2, ou Pi ne peuvent pas être stockés avec exactitude dans un EXTENDED, car ces nombres sont irrationnels. Ils sont donc approchés et c'est pour cela que le cos du Pi approché ne fait pas -1.

2)
La fonction (a+ib)^(c+id) [soit l'utilisation de la fonction PowerCpx] n'est valable que pour a, b, c et d positifs. Les nombres négatifs sont presque du n'importe quoi mathématique. La fonction se permet donc de modifier les paramètres (d'où le VAR). Essayez le code suivant pour voir les conséquences au niveau du C1.

procedure TForm1.Button1Click(Sender: TObject);
var C1, C2 : TCpx;
begin
C1:=Cpx(1,-3);
C2:=Cpx(2,2);
PowerCpx(C1,C2); //on ne stocke pas le résultat
ShowMessage(CpxToStr(C1));
ShowMessage(CpxToStr(C2));
end;

3)
Dernier point. De par la propriété fondamentale des complexes (càd i²=-1), le résultat des fonctions ne sont pas uniques comme cela l'est pourtant avec les fonctions à valeurs réelles. Par exemple, sqrt(2) renvoit une solution unique dans R, mais sqrt(2+i) renvoit formellement 4 réponses dans C. La fonction n'en renvoit qu'une seule, mais les 3 autres découlent de ce résultat. Il fallait bien choisir !

Eh oui! C'est des maths ... Ne soyez donc pas étonnés!
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
29 oct. 2004 à 19:10
Maintenant j'ai la réponse !! Ce qu'il y a de plus dans mon unité, c'est... c'est... la CLARETE.

Mes fonctions sont toutes bêtes et indépendantes les unes des autres. Enfin, pas avec la fonction ArcTan2 écrite en assembleur.
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
27 oct. 2004 à 20:02
C'est pas à moi qu'il faut poser la question. DMath... connais pas, et c'est véritablement ni dans Delphi 3, ni dans Delphi 5 que ça existe par défaut.

Ne cherchant pas à savoir, je crée (même à concurrence). De toute façon, si j'ai à choisir, j'utiliserai mon unité dans laquelle j'ai toute confiance.

J'ai vite fait regardé DMath. Je trouve un lien (rien ne dit que c'est le bon):
http://www.unilim.fr/pages_perso/jean.debord/tpmath/dmath.zip

Rien qu'à voir la tête des unités, c'est déjà pas la même chose.
yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017
26 oct. 2004 à 08:55
Bonjour haut GrandVisir

Qu'y-a-t-il de plus que dans "DMath pour Delphi"

Salutations
Rejoignez-nous