HOWTO · Python
Nombres imaginaires en Python
Ce tutoriel traite des nombres imaginaires en Python
Sur cette page
Python représente les valeurs composées d’une partie réelle et d’une partie imaginaire avec son type intégré complex. Pour écrire l’unité imaginaire, utilisez j (ou J), comme dans 8 + 5j, ou construisez une valeur avec complex(real, imaginary). Les exemples ci-dessous montrent comment créer des nombres complexes, examiner leurs composantes, effectuer des calculs et les utiliser en Python.
Représenter les nombres imaginaires avec les nombres complexes de Python
Un nombre complexe comporte une partie réelle et une partie imaginaire. Python utilise j en suffixe pour la partie imaginaire, selon la convention employée en ingénierie. Par exemple, 8 + 5j représente 8 plus 5 fois l’unité imaginaire. Le constructeur intégré complex() accepte séparément les parties réelle et imaginaire. Dans les deux cas, le résultat est une valeur de type complex.
Exécutez cet exemple :
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
a = 8 + 5j
b = complex(8, 5)
print(type(a))
print(a == b)
<class 'complex'>
True
Utilisez le constructeur lorsque les parties réelle et imaginaire sont déjà des valeurs séparées, par exemple lorsqu’elles proviennent d’une saisie ou d’un autre calcul. Son deuxième argument correspond au coefficient de l’unité imaginaire : complex(8, 5) représente donc 8 + 5j.
Lire les composantes et le conjugué d’un nombre complexe
.real et .imag sont des attributs : lisez-les sans parenthèses. Ils renvoient les deux composantes sous forme de nombres à virgule flottante. .conjugate() est une méthode ; appelez-la avec des parenthèses pour inverser le signe de la partie imaginaire tout en conservant la même partie réelle.
Pour 8 + 5j, la partie réelle vaut 8.0, la partie imaginaire vaut 5.0 et le conjugué est (8-5j). Le conjugué est utile dans les calculs avec des nombres complexes, notamment pour simplifier un quotient dont le dénominateur est complexe.
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
value = 8 + 5j
print(value.real)
print(value.imag)
print(value.conjugate())
Effectuer des opérations arithmétiques avec des nombres complexes
Les opérateurs arithmétiques de Python s’appliquent directement aux nombres complexes. L’addition combine séparément les parties réelles et imaginaires ; la multiplication suit les règles algébriques habituelles, avec j * j == -1. Pour a = 8 + 5j et b = 10 + 2j, a + b vaut 18 + 7j, tandis que a * b vaut 70 + 66j.
L’expression a.imag + b.imag donne seulement 7.0 : elle additionne les parties imaginaires et ne représente pas la somme des deux nombres complexes. Pour additionner les nombres complexes dans leur ensemble, utilisez a + b.
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
a = 8 + 5j
b = 10 + 2j
print(a + b)
print(a * b)
Utiliser cmath pour les calculs mathématiques sur les nombres complexes
Le module cmath de la bibliothèque standard fournit des fonctions mathématiques qui acceptent des nombres complexes en entrée et peuvent renvoyer des résultats complexes. Utilisez cmath.phase(value) pour obtenir l’angle en radians, cmath.exp(value) pour calculer l’exponentielle, et des fonctions comme cmath.sin(value) et cmath.sinh(value) pour les calculs trigonométriques et hyperboliques. Ce sont des fonctions du module cmath, et non des méthodes du nombre complexe.
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
import cmath
value = 1 + 1j
print(cmath.phase(value))
print(cmath.exp(value))
print(cmath.sin(value))
print(cmath.sinh(value))
0.7853981633974483
(1.4686939399158851+2.2873552871788423j)
(1.2984575814159773+0.6349639147847361j)
(0.6349639147847361+1.2984575814159773j)
La phase se mesure en radians. Les fonctions usuelles de math, qui travaillent sur des nombres réels, attendent généralement des entrées réelles ; utilisez cmath lorsque le calcul porte sur des nombres complexes. Les résultats peuvent afficher des approximations en virgule flottante. Pour les vérifier dans des calculs numériques, comparez-les avec une tolérance.
Stocker des nombres complexes dans des tableaux NumPy
NumPy est une bibliothèque tierce facultative qui permet de travailler avec des tableaux. Sa fonction numpy.array() peut stocker des nombres complexes dans un tableau à une dimension, par exemple avec numpy.array([8 + 5j, 10 + 2j, 4 + 3j]). NumPy déduit un type de données complexe pour ces valeurs, ce qui permet aux opérations sur le tableau de conserver leurs deux composantes. Installez et importez NumPy dans votre environnement avant d’utiliser cet exemple. Le type intégré complex de Python ne nécessite pas NumPy.
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
import numpy
values = numpy.array([8 + 5j, 10 + 2j, 4 + 3j])
print(values)
[ 8.+5.j 10.+2.j 4.+3.j]
Choisissez un tableau NumPy si vous devez appliquer des opérations numériques à un ensemble de nombres complexes. Pour une valeur isolée ou un calcul simple, le type intégré et ses opérateurs suffisent. NumPy gère l’affichage du tableau ; l’espacement et la précision exacts peuvent donc varier selon les valeurs et les paramètres d’affichage.