Les types complexes
Nous avons déjà vu les nombres réels. Python fonctionne aussi avec les nombres complexes, dont la partie imaginaire est identifiée par
la lettre j au lieu de la lettre i utilisée dans la notation mathématiquesque. Par exemple, 1+2i est écrit 1+2j en Python.
>>>x = 5+3j
>>>type(x)
<class 'complex'>
>>>y = 5.2+1j
>>>type(y)
<class 'complex'>
Remarque : Fonction complex()
On peut aussi définir un nombre complexe en utilisant la fonction complex() :
>>>x = complex(5,3)
>>>x
x = (5+3j)
Remarque : Partie imaginaire vaut 1
Attention, le nombre complexe 5+i a pour partie imaginaire 1. En python, ce nombre complexe doit être écrit 5+1j au lieu de 5+j,
sinon, j sera considérée comme une variable non définie :
>>> x=2+j
Traceback (most recent call last):
File "", line 301, in runcode
File "", line 1, in
NameError: name 'j' is not defined
>>>
Exemple 3
>>>a=9+1j+7+2j
>>>a
(16+3j)
>>>type(a)
<class 'complex'>
>>>b=(2+5j)/4
>>>b
(0.5+1.25j)
>>>type(b)
<class 'complex'>
>>>c=9.2+(7+3j)
>>>c
(16.2+3j)
>>>type(c)
<class 'complex'>
La fonction complex() permet de convertir un nombre quelconque ou une chaîne de caractères en un nombre complexe.
Exemple 4
>>>x = complexe(12.7)
>>>x
(12.7+0j)
>>>type(x)
<class 'complex'>
>>>y = complexe("7+3j")
>>>y
(7+3j)
>>>type(y)
<class 'complex'>
Les opérations et les nombres complexes
On peut additionner et soustraire des nombres complexes de la même façon qu'avec les réels.
>>>x = 5+3j
>>>y = 5.25+1j
>>>x+y
(10.25+4j)
>>>x-y
(-0.25+2j)
De même la multiplication et la division entre deux nombres complexes s'appliquent de façon similaire.
>>>x*y
(23.25+20.75j)
>>>x/y
(1.024070021881838+0.37636761487964987j)
Les parties réelle et imaginaire
Le modulo % et la division arrondie à l'entier inférieur // ne fonctionnent pas sur les complexes.
Les parties réelles et imaginaire d'un nombre complexe peuvent être obtenues en utilisant ses attributs real et imag :
>>>z = 4+3j
>>>z.real
4.0
>>>z.imag
3.0
Le conjugué
ALe conjugué d'un nombre complexe est retourné par la méthode conjugate() :
>>>z = 4+3j
>>>z.conjugate()
(4-3j)
Le module
Pour calculer le module d'un nombre complexe, on peut utiliser la définition :
Si \(z = x+iy\) alors \( |z| = \sqrt{ x^2 + y^2 } \)
>>>z = 4+3j
>>>(z.real**2+z.imag**2)**0.5
5.0
Une manière simple d'obtenir le module d'un nombre complexe est d'utiliser la fonction abs(). Celle-ci renvoie la valeur absolue
lorsqu'elle est appliquée à un réel et le module lorsque son paramètre est un nombre complexe.
>>>z = 4+3j
>>>abs(z)
5.0
On peut aussi utiliser le module cmath (complex math) de la bibliothèque standard pour déterminer
un argument d'un nombre complexe ou les fonctions trigonométriques appliquées aux nombres complexes
Pour déterminer un argument principal en radians d'un nombre complexe, on utilise la fonction phase() du module cmath
>>>from cmath import *
>>>z = 1j
>>>phase(z)
1.5707963267948966