Passer au contenu
Guide Varlig
Accueil Varlig

Nombres complexes

Un nombre complexe possède une partie réelle et une partie imaginaire, écrite avec i, la racine carrée de −1. Cette page présente leur écriture, les opérations, le module et l’argument, les racines carrées de nombres négatifs et les fonctions acceptant des valeurs complexes.

Ces outils sont utiles lorsqu’une équation du second degré n’a pas de racine réelle, pour étudier des circuits en courant alternatif ou des signaux, ou pour vérifier des exercices d’analyse complexe.

Écrire des nombres complexes

calc
2 + 3i donne 2 + 3i
complex(3, -4) donne 3 - 4i
i^2 donne -1

Placez i juste après un nombre pour écrire la partie imaginaire, comme 3i ou 1.5i, ou utilisez i seul. complex(real, imaginary) construit la même valeur à partir de deux composantes, ce qui convient aux valeurs nommées : complex(resistance, reactance). Les deux composantes doivent être des nombres sans unité.

i désigne l’unité imaginaire seulement si aucun autre élément de la note ne porte le nom i. Définir une valeur ou une unité personnalisée appelée i lui donne priorité :

calc
i = 5
2 + 3i donne 17
complex(2, 3) donne 2 + 3i

Ici, 3i devient 3 × 5 et la ligne donne 17. Les noms restent disponibles d’un bloc de calcul à l’autre dans une note : un i = … défini plus haut produit donc le même effet. Évitez le nom i dans une note utilisant des nombres complexes. complex(2, 3) ne dépend pas de ce nom et continue de fonctionner.

Arithmétique

calc
(2 + 3i) + (1 - 5i) donne 3 - 2i
(1 + 2i) * (3 - i) donne 5 + 5i
(2 + 3i) * (2 - 3i) donne 13
10 / (3 + 4i) donne 1.2 - 1.6i
(1 + i)^8 donne 16

L’addition, la soustraction, la multiplication, la division et les puissances entières sont exactes. Si la partie imaginaire du résultat est nulle, comme pour (2 + 3i) * (2 - 3i), le résultat apparaît comme un nombre ordinaire. Entourez chaque nombre complexe de parenthèses lors d’une multiplication ou division, afin que (2 + 3i) * (2 - 3i) ne soit pas interprété comme 2 + (3i * 2) - 3i.

Composantes d’un nombre complexe

calc
z = 3 + 4i
real(z) donne 3
imag(z) donne 4
conj(z) donne 3 - 4i
abs(z) donne 5
arg(1 + i) donne 0.7853981634
arg(1 + i) rad in degrees donne 45°
Fonction Donne
real(z) La partie réelle
imag(z) La partie imaginaire, sous forme de nombre simple
conj(z) Le conjugué complexe : même partie réelle, partie imaginaire avec son signe inversé
abs(z) Le module : la distance à zéro
arg(z) L’argument : l’angle par rapport à l’axe réel positif, en radians

arg renvoie un nombre sans unité explicite, exprimé en radians entre −π et π. Pour l’afficher en degrés, ajoutez l’unité radians puis convertissez, comme sur la dernière ligne. Pour reconstruire un nombre complexe à partir du module et de l’angle, utilisez exp : 2 * exp(i * pi / 3) donne 1 + 1.7320508076i.

Racines carrées de nombres négatifs

La racine carrée d’un nombre négatif ordinaire est traitée comme un calcul réel. Ainsi, sqrt(-16) affiche une erreur qui indique la forme à utiliser : Error: imaginary number. For a complex answer, write sqrt(-16 + 0i). Pour demander une racine complexe, saisissez le nombre sous forme complexe en ajoutant 0i, ou utilisez complex(…, 0) :

calc
sqrt(-16 + 0i) donne 4i
sqrt(complex(-16, 0)) donne 4i
sqrt(3 + 4i) donne 2 + i
sqrt(2i) donne 1 + i

sqrt renvoie la racine principale, de partie réelle positive, ou de partie imaginaire positive pour un nombre négatif. L’autre racine carrée est son opposée.

Une valeur écrite sous forme complexe reste complexe même si sa partie imaginaire est nulle. Vous pouvez d’abord la nommer ou poursuivre des calculs avec elle : après x = -16 + 0i, sqrt(x) donne 4i, même si x s’affiche comme -16.

La formule de résolution du second degré fonctionne ainsi même en l’absence de racines réelles :

calc
# Roots of x^2 + 2x + 5 = 0
a = 1
b = 2
c = 5
disc = b^2 - 4*a*c donne -16
(-b + sqrt(disc + 0i)) / (2*a) donne -1 + 2i
(-b - sqrt(disc + 0i)) / (2*a) donne -1 - 2i

Les racines cubiques suivent la même règle de racine principale, parfois surprenante pour les nombres négatifs :

calc
cbrt(-8) donne -2
cbrt(-8 + 0i) donne 1 + 1.7320508076i

Les deux résultats sont des racines cubiques de −8. La version réelle donne la racine réelle ; la version complexe donne la racine complexe principale.

Fonctions d’un nombre complexe

calc
exp(i * pi) donne -1
ln(-1 + 0i) donne 3.1415926536i
i^i donne 0.2078795764
cos(i) donne 1.5430806348
sinh(i) donne 0.8414709848i
2^i donne 0.7692389014 + 0.6389612763i

Ces fonctions acceptent des valeurs complexes :

  • sin, cos, tan et leurs fonctions réciproques asin, acos, atan ;
  • sinh, cosh, tanh et leurs fonctions réciproques asinh, acosh, atanh ;
  • exp, ln, log (ou log10), log2, sqrt et cbrt
  • Puissances avec des exposants fractionnaires ou complexes, tels que i^0.5 ou 2^i

Ces fonctions utilisent la virgule flottante binaire et donnent des approximations précises. Les résidus d’arrondi négligeables s’affichent comme 0 : exp(i * pi) apparaît donc comme −1, conformément à la formule théorique. La valeur stockée conserve toutefois toutes ses décimales. Pour comparer ces résultats, vérifiez que leur différence est très petite, comme avec abs(exp(i * pi) + 1) < 1e-9, plutôt que d’utiliser ==.

Chaque fonction renvoie un seul résultat, issu de sa branche principale. Un nombre complexe possède une infinité de logarithmes et plusieurs racines ; vous obtenez la valeur principale usuelle. Comme pour sqrt, une entrée réelle reste réelle : ln(-1) et log(-100) produisent une erreur de nombre imaginaire avec la forme complexe à essayer, tandis que ln(-1 + 0i) donne πi. Le logarithme de zéro produit une erreur.

Les fonctions qui n'ont de sens que pour les nombres réels, telles que floor et round, n'acceptent pas les valeurs complexes.

Comparer des nombres complexes

calc
2 + 3i == complex(2, 3) donne true
2 + 3i != 2 - 3i donne true
complex(3, 0) >= 3 donne true
abs(3 + 4i) > abs(1 + 2i) donne true

== et != acceptent toutes les valeurs complexes. <, <=, > et >= fonctionnent uniquement si les deux parties imaginaires sont nulles, car les nombres complexes n’ont pas d’ordre naturel : i < 2 produit une erreur. Pour comparer leur grandeur, comparez leurs modules avec abs, comme sur la dernière ligne. Les nombres complexes ne peuvent pas être triés.

Les règles complètes figurent dans la référence des mathématiques avancées.

Combiner les opérations

Voici un exemple de vérification d’un circuit en courant alternatif : une résistance de 30 Ω et une bobine de réactance 40 Ω sont montées en série sur une alimentation de 10 V :

calc
# Series circuit: 30 Ω resistor, 40 Ω reactance, 10 V supply
resistance = 30
reactance = 40
z = complex(resistance, reactance) donne 30 + 40i
abs(z) donne 50
current = 10 / z donne 0.12 - 0.16i
abs(current) donne 0.2
arg(z) rad in degrees to 1 dp donne 53.1°

L’impédance est 30 + 40i, de module 50 Ω. Le courant vaut donc 0,2 A et présente un retard de phase d’environ 53,1° sur la tension. Les ingénieurs notent souvent l’unité imaginaire j ; dans Varlig, elle s’écrit toujours i. Les ohms, volts et ampères sont indiqués en commentaire, car les composantes d’un nombre complexe ne peuvent pas porter d’unités.