Bibliothèque de fonctions complexes (opérateurs, logarithmes, trigonométrie...)

Soyez le premier à donner votre avis sur cette source.

Vue 5 973 fois - Téléchargée 574 fois

Description

Les fonctions mathématiques dans le domaine des complexes ? ... Une unité à réutiliser. Les fonctions gérées sont listées ci-dessous. Tous mes tests révèlent l'entière fonctionnalité de cette unité. Mais lisez bien les commentaires (histoire de ne pas être trompé).

Remarquons que la fonction ArgCosHypCpx est délicieuse :-))

AddCpx, SubsCpx, MultCpx, DivCpx

ScalCpx, DetCpx, PositiveCpx, NegativeCpx, SymCpx

Cpx, CpxToStr, StrToCpx, ExpToRealCpx

ReCpx, ImCpx, AbsCpx, ArgumentCpx, ConjCpx, SqrCpx, SqrtCpx, IntPuissCpx, PowerCpx

ExpCpx, LnCpx, LogCpx

CosCpx, SinCpx, TanCpx, SecCpx, CscCpx, CoTanCpx

ArcCosCpx, ArcSinCpx, ArcTanCpx

CosHCpx, SinHCpx, TanHCpx

ArgCosHCpx, ArgSinHCpx, ArgTanHCpx

Conclusion :


Vous pouvez toujours aller voir http://altert.family.free.fr/

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_grandvizir
Messages postés
1237
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
10
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
1237
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
10
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
1237
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
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
1237
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
10
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
644
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
9 janvier 2017

Bonjour haut GrandVisir

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

Salutations

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.