Exercices sur les Nombres Complexes - Forme Algébrique, Trigonométrique et Exponentielle

Entraînez-vous sur les différentes formes des nombres complexes et leurs applications, notamment en informatique pour les BTS CIEL.

Partie 1 : Forme Algébrique, Trigonométrique et Exponentielle

Exercice 1 : Addition de nombres complexes

Soient $z_1 = 3 + 2i$ et $z_2 = 1 - 4i$. Calculer $z_1 + z_2$ sous forme algébrique.


// Instructions Xcas pour l'exercice 1
z1 := 3 + 2*i;
z2 := 1 - 4*i;
z1 + z2;
                
Exercice 2 : Soustraction de nombres complexes

Soient $z_1 = 5 - i$ et $z_2 = 2 + 3i$. Calculer $z_1 - z_2$ sous forme algébrique.


// Instructions Xcas pour l'exercice 2
z1 := 5 - i;
z2 := 2 + 3*i;
z1 - z2;
                
Exercice 3 : Multiplication de nombres complexes

Soient $z_1 = 2 + i$ et $z_2 = 3 - 2i$. Calculer $z_1 \times z_2$ sous forme algébrique.


// Instructions Xcas pour l'exercice 3
z1 := 2 + i;
z2 := 3 - 2*i;
z1 * z2;
                
Exercice 4 : Division de nombres complexes

Soient $z_1 = 4 + 3i$ et $z_2 = 1 + i$. Calculer $\frac{z_1}{z_2}$ sous forme algébrique.


// Instructions Xcas pour l'exercice 4
z1 := 4 + 3*i;
z2 := 1 + i;
z1 / z2;
                
Exercice 5 : Conjugué d'un nombre complexe

Soit $z = -2 + 5i$. Déterminer le conjugué $\overline{z}$ de $z$.


// Instructions Xcas pour l'exercice 5
z := -2 + 5*i;
conjugate(z);
                
Exercice 6 : Module d'un nombre complexe

Soit $z = 3 - 4i$. Calculer le module $|z|$ de $z$.


// Instructions Xcas pour l'exercice 6
z := 3 - 4*i;
abs(z);
                
Exercice 7 : Argument d'un nombre complexe

Soit $z = 1 + i$. Déterminer un argument $\text{arg}(z)$ de $z$.


// Instructions Xcas pour l'exercice 7
z := 1 + i;
arg(z);
                
Exercice 8 : Forme trigonométrique

Écrire le nombre complexe $z = -1 + i\sqrt{3}$ sous forme trigonométrique.


// Instructions Xcas pour l'exercice 8
z := -1 + i*sqrt(3);
polar_form(z);
                
Exercice 9 : Forme exponentielle

Écrire le nombre complexe $z = \sqrt{2} - i\sqrt{2}$ sous forme exponentielle.


// Instructions Xcas pour l'exercice 9
z := sqrt(2) - i*sqrt(2);
polar_form(z);
                
Exercice 10 : Conversion forme exponentielle à algébrique

Écrire le nombre complexe $z = 3e^{i\frac{\pi}{2}}$ sous forme algébrique.


// Instructions Xcas pour l'exercice 10
z := 3*exp(i*pi/2);
evalc(z);
                
Exercice 11 : Équation simple avec nombres complexes

Résoudre l'équation $z + (2 - i) = 3 + 2i$ pour $z \in \mathbb{C}$ et donner la solution sous forme algébrique.


                    // Instructions Xcas pour l'exercice 11
                    solve(z + (2 - i) = 3 + 2*i, z);
                                    
Exercice 12 : Puissance d'un nombre complexe (De Moivre)

Calculer $(1 + i)^4$ en utilisant la formule de De Moivre.


                    // Instructions Xcas pour l'exercice 12
                    z := 1 + i;
                    z^4;
                                    
Exercice 13 : Racine carrée d'un nombre complexe

Déterminer les racines carrées du nombre complexe $z = -4$.


                    // Instructions Xcas pour l'exercice 13
                    sqrt(-4);
                                    
Exercice 14 : Ensemble de points - Cercle

Déterminer l'ensemble des points $M$ d'affixe $z$ tels que $|z - (1 + i)| = 2$. Décrire géométriquement cet ensemble.

Exercice 15 : Ensemble de points - Médiatrice

Déterminer l'ensemble des points $M$ d'affixe $z$ tels que $|z - i| = |z + 1|$. Décrire géométriquement cet ensemble.

Partie 2 : Nombres Complexes et Informatique (BTS CIEL)

Exercice 16 : Représentation d'un signal sinusoïdal

En traitement du signal, un signal sinusoïdal peut être représenté par un nombre complexe. Si un signal est donné par $s(t) = A\cos(\omega t + \phi)$, on peut l'associer au nombre complexe $z = Ae^{i\phi}$. Pour un signal $s(t) = 5\cos(2\pi \times 100 t + \frac{\pi}{3})$, déterminer le nombre complexe $z$ associé sous forme exponentielle et algébrique.


                    // Instructions Xcas pour l'exercice 16
                    z := 5*exp(i*pi/3);
                    evalc(z);
                                    
Exercice 17 : Filtrage simple en fréquence

En traitement du signal, on peut atténuer certaines fréquences en multipliant le nombre complexe associé par un facteur. Supposons un signal représenté par $z = 4e^{i\frac{\pi}{6}}$. On souhaite atténuer ce signal de moitié. Quel est le nouveau nombre complexe $z'$ après atténuation, sous forme exponentielle et algébrique?


                    // Instructions Xcas pour l'exercice 17
                    z := 4*exp(i*pi/6);
                    z_prime := z / 2;
                    polar_form(z_prime);
                    evalc(z_prime);
                                    
Exercice 18 : Rotation en infographie 2D

En infographie, on peut utiliser les nombres complexes pour effectuer des rotations. Pour faire tourner un point d'affixe $z$ d'un angle $\theta$ autour de l'origine, on multiplie $z$ par $e^{i\theta}$. Soit un point $M$ d'affixe $z = 2 + i$. Quel est l'affixe $z'$ du point $M'$ obtenu en faisant tourner $M$ d'un angle de $\frac{\pi}{2}$ autour de l'origine ? Donner la réponse sous forme algébrique.


                    // Instructions Xcas pour l'exercice 18
                    z := 2 + i;
                    rotation := exp(i*pi/2);
                    z_prime := z * rotation;
                    evalc(z_prime);
                                    
Exercice 19 : Homothétie en infographie 2D

En infographie, une homothétie (scaling) de facteur $k$ autour de l'origine, appliquée à un point d'affixe $z$, donne un point d'affixe $z' = kz$. Soit un point $M$ d'affixe $z = 1 - 2i$. Quel est l'affixe $z'$ du point $M'$ obtenu en appliquant une homothétie de facteur 0.5 autour de l'origine ? Donner la réponse sous forme algébrique.


                    // Instructions Xcas pour l'exercice 19
                    z := 1 - 2*i;
                    z_prime := z * 0.5;
                    evalc(z_prime);
                                    
Exercice 20 : Combinaison rotation et homothétie

Appliquer successivement à un point $M$ d'affixe $z = 3$ : d'abord une rotation d'angle $\frac{\pi}{3}$ autour de l'origine, puis une homothétie de facteur 2 autour de l'origine. Quel est l'affixe $z''$ du point final $M''$? Donner la réponse sous forme algébrique.


                    // Instructions Xcas pour l'exercice 20
                    z := 3;
                    rotation := exp(i*pi/3);
                    z_prime := z * rotation;
                    z_double_prime := z_prime * 2;
                    evalc(z_double_prime);
                                    
Exercice 21 : Cryptographie - Chiffrement par rotation

Un chiffrement simple peut être basé sur la rotation dans le plan complexe. On représente chaque lettre par un nombre complexe (par exemple A=1, B=2, ..., Z=26, que l'on peut prendre comme partie réelle, la partie imaginaire étant 0). Pour chiffrer, on effectue une rotation d'angle $\frac{\pi}{6}$. Chiffrer la lettre 'C' (représentée par le nombre complexe $z = 3$) en appliquant une rotation d'angle $\frac{\pi}{6}$. Donner la forme algébrique du nombre complexe chiffré.


                    // Instructions Xcas pour l'exercice 21
                    z := 3;
                    angle_chiffrement := exp(i*pi/6);
                    z_chiffre := z * angle_chiffrement;
                    evalc(z_chiffre);
                                    
Exercice 22 : Déphasage en électronique

En électronique, notamment en courant alternatif, les nombres complexes sont utilisés pour représenter les phases. Un déphasage peut être représenté par une multiplication par $e^{i\phi}$. Si un signal a une phase initiale représentée par le nombre complexe $z = 2e^{i\frac{\pi}{4}}$, et qu'on lui applique un déphasage de $-\frac{\pi}{3}$, quel est le nouveau nombre complexe $z'$ représentant la phase après déphasage, sous forme exponentielle et algébrique ?


                                        // Instructions Xcas pour l'exercice 22
                                        z := 2*exp(i*pi/4);
                                        dephasage := exp(-i*pi/3);
                                        z_prime := z * dephasage;
                                        polar_form(z_prime);
                                        evalc(z_prime);
                                                        
Exercice 23 : Addition de signaux sinusoïdaux

L'addition de signaux sinusoïdaux de même fréquence peut être simplifiée en utilisant les nombres complexes. Si on a deux signaux représentés par $z_1 = 3e^{i\frac{\pi}{3}}$ et $z_2 = 2e^{-i\frac{\pi}{6}}$, quel est le nombre complexe $z$ représentant la somme de ces deux signaux ? Donner la forme algébrique de $z$.


                                        // Instructions Xcas pour l'exercice 23
                                        z1 := 3*exp(i*pi/3);
                                        z2 := 2*exp(-i*pi/6);
                                        z := z1 + z2;
                                        evalc(z);
                                                        
Exercice 24 : Impédance en courant alternatif (circuit RC série)

Dans un circuit RC série en courant alternatif, l'impédance complexe $Z$ est donnée par $Z = R + \frac{1}{jC\omega} = R - \frac{j}{C\omega}$, où $R$ est la résistance, $C$ la capacité et $\omega$ la pulsation. Avec $R = 100\Omega$, $C = 10^{-6}F$ et $\omega = 10^4 rad/s$, calculer l'impédance complexe $Z$ sous forme algébrique.


                                        // Instructions Xcas pour l'exercice 24
                                        R := 100;
                                        C := 1e-6;
                                        omega := 1e4;
                                        Z := R - i / (C * omega);
                                        evalc(Z);
                                                        
Exercice 25 : Calcul de courant dans un circuit AC (loi d'Ohm complexe)

Dans un circuit AC, la loi d'Ohm s'étend aux nombres complexes : $V = ZI$, où $V$ est la tension complexe, $Z$ l'impédance complexe et $I$ le courant complexe. Si la tension complexe est $V = 10e^{i0} = 10$ V et l'impédance est $Z = 5e^{i\frac{\pi}{4}} \Omega$, calculer le courant complexe $I$ sous forme exponentielle et algébrique.


                                        // Instructions Xcas pour l'exercice 25
                                        V := 10;
                                        Z := 5*exp(i*pi/4);
                                        I := V / Z;
                                        polar_form(I);
                                        evalc(I);
                                                        
Exercice 26 : Transformée de Fourier Discrète (DFT) - Base

La Transformée de Fourier Discrète (DFT) utilise les racines $n$-ièmes de l'unité, qui sont des nombres complexes de la forme $e^{i\frac{2k\pi}{n}}$. Pour $n=4$, calculer les 4 racines 4èmes de l'unité sous forme exponentielle et algébrique.


                                        // Instructions Xcas pour l'exercice 26
                                        n := 4;
                                        racines := [exp(i*2*k*pi/n) for k in 0..n-1];
                                        evalc(racines);
                                                        
Exercice 27 : Itération complexe - Début de fractales

Considérons la suite complexe définie par récurrence $z_{n+1} = z_n^2 + c$, où $c$ est une constante complexe. Pour $c = -1$ et $z_0 = 0$, calculer les 3 premiers termes $z_1, z_2, z_3$ sous forme algébrique.


                                        // Instructions Xcas pour l'exercice 27
                                        c := -1;
                                        z := 0;
                                        z := z^2 + c; // z1
                                        z := z^2 + c; // z2
                                        z := z^2 + c; // z3 (affiche z3)
                                        evalc(z);
                                                        
Exercice 28 : Test d'appartenance à l'ensemble de Mandelbrot (introduction)

L'ensemble de Mandelbrot est défini à partir de la suite $z_{n+1} = z_n^2 + c$ avec $z_0 = 0$. Un point $c$ appartient à l'ensemble de Mandelbrot si la suite $(|z_n|)$ reste bornée. Pour $c = i$, calculer les 4 premiers modules $|z_0|, |z_1|, |z_2|, |z_3|$. Peut-on conjecturer si $c=i$ appartient à l'ensemble de Mandelbrot ?


                                        // Instructions Xcas pour l'exercice 28
                                        c := i;
                                        z := 0;
                                        abs(z); // |z0|
                                        z := z^2 + c; abs(z); // |z1|
                                        z := z^2 + c; abs(z); // |z2|
                                        z := z^2 + c; abs(z); // |z3|
                                                        
Exercice 29 : Utilisation des nombres complexes en Python

En Python, les nombres complexes sont un type de données natif. Définir les nombres complexes $z_1 = 2 + 3j$ et $z_2 = 1 - j$ en Python (en utilisant 'j' pour l'unité imaginaire). Calculer en Python $z_1 + z_2$, $z_1 \times z_2$ et $\frac{z_1}{z_2}$. Afficher les résultats en exécutant le code Python dans le Trinket intégré ci-dessous.


                                        # Instructions Python pour l'exercice 29
                                        z1 = 2 + 3j
                                        z2 = 1 - 1j
                                        
                                        print("z1 + z2 =", z1 + z2)
                                        print("z1 * z2 =", z1 * z2)
                                        print("z1 / z2 =", z1 / z2)
                                                        
Exercice 30 : Module et argument en Python

En Python, on peut calculer le module et l'argument d'un nombre complexe avec les fonctions `abs()` et `cmath.phase()`. Pour $z = -1 - i$, calculer en Python le module et l'argument de $z$. Afficher les résultats (l'argument en radians) en exécutant le code Python dans le Trinket intégré ci-dessous.


                                        # Instructions Python pour l'exercice 30
                                        import cmath
                                        
                                        z = -1 - 1j
                                        
                                        module_z = abs(z)
                                        argument_z = cmath.phase(z)
                                        
                                        print("Module de z =", module_z)
                                        print("Argument de z (radians) =", argument_z)
                                                        
Exercice 31 : Module et argument en Python

En Python, on peut calculer le module et l'argument d'un nombre complexe avec les fonctions `abs()` et `cmath.phase()`. Pour $z = -1 - i$, calculer en Python le module et l'argument de $z$. Afficher les résultats (l'argument en radians) en exécutant le code Python dans le Trinket intégré ci-dessous.


                                        # Instructions Python pour l'exercice 31
                                        import cmath
                                        
                                        z = -1 - 1j
                                        
                                        module_z = abs(z)
                                        argument_z = cmath.phase(z)
                                        
                                        print("Module de z =", module_z)
                                        print("Argument de z (radians) =", argument_z)
                                                        
Exercice 32 : Filtrage de fréquences avec la DFT

Un signal réseau bruité est représenté par la suite $s = [5, 1, 5, -1]$. On souhaite atténuer les hautes fréquences en modifiant les coefficients de sa DFT.

Partie A : Analyse Théorique du Filtrage

a. Calculer les coefficients $X_0, X_1, X_2, X_3$ de la DFT du signal $s = [5, 1, 5, -1]$. Utiliser Xcas pour vérifier vos calculs.


    // Instructions Xcas pour la question A.1
    signal := [5, 1, 5, -1];
    n := size(signal);
    dft_coefficients := [sum(signal[j+1] * exp(-i*2*pi*k*j/n), j=0..n-1) for k in 0..n-1];
    evalc(dft_coefficients);
                

b. Pour atténuer les hautes fréquences, on décide de diviser les coefficients $X_1$ et $X_3$ par 2. Calculer les nouveaux coefficients modifiés $X'_0, X'_1, X'_2, X'_3$, en laissant $X'_0 = X_0$ et $X'_2 = X_2$. Donner les formes algébriques.

c. La Transformée de Fourier Discrète Inverse (IDFT) permet de reconstruire un signal à partir de ses coefficients DFT. La formule simplifiée pour l'IDFT est : $$s'_j = \frac{1}{n} \sum_{k=0}^{n-1} X'_k \cdot e^{i\frac{2\pi}{n}jk} = \frac{1}{4} \sum_{k=0}^{3} X'_k \cdot e^{i\frac{\pi}{2}jk}$$ Calculer manuellement les 4 points du signal filtré $s' = [s'_0, s'_1, s'_2, s'_3]$ en utilisant les coefficients modifiés $X'_k$.

Partie B : Implémentation du Filtrage en Python

d. Écrire un code Python dans le Trinket intégré ci-dessous pour :

i. Calculer la DFT du signal $s = [5, 1, 5, -1]$.

ii. Modifier les coefficients $X_1$ et $X_3$ en les divisant par 2.

iii. Calculer l'IDFT avec les coefficients modifiés pour obtenir le signal filtré $s'$.

iv. Afficher le signal filtré $s'$ sous forme de liste de nombres complexes (ou réels si la partie imaginaire est négligeable).

e. Comparer le signal original $s$ et le signal filtré $s'$. Le filtre a-t-il permis d'atténuer les oscillations rapides (hautes fréquences) dans le signal ? Justifier votre réponse en observant les valeurs des signaux et en considérant l'effet de la réduction des coefficients $X_1$ et $X_3$.

f. Extension (facultatif) : Modifier le facteur d'atténuation des hautes fréquences (par exemple, diviser $X_1$ et $X_3$ par 4 au lieu de 2) et observer l'effet sur le signal filtré $s'$. Comment le facteur d'atténuation influence-t-il le résultat du filtrage ?

Exercice 33 : Détection de motifs périodiques dans un signal réseau

L'analyse spectrale via la DFT peut aider à détecter des motifs périodiques dans le trafic réseau, indiquant par exemple des comportements cycliques d'applications ou d'utilisateurs.

Partie A : Analyse Théorique de la Périodicité

a. Si un signal réseau contient un motif périodique, comment cela se manifeste-t-il dans le spectre de fréquences obtenu par la DFT ? En particulier, que peut-on attendre des modules des coefficients DFT correspondant à la fréquence du motif périodique et à ses harmoniques ?

b. Considérons un signal réseau simplifié de 8 points, contenant un motif périodique : $s = [1, 2, 1, 2, 1, 2, 1, 2]$. Sans calcul formel, que pouvez-vous prévoir concernant les coefficients de la DFT de ce signal ? Quelles fréquences devraient avoir une amplitude importante ?

Partie B : Détection de Périodicité avec Python et DFT

c. Écrire un code Python dans le Trinket intégré ci-dessous pour calculer la DFT du signal $s = [1, 2, 1, 2, 1, 2, 1, 2]$ (taille $n=8$). Afficher les modules $|X_k|$ des coefficients DFT pour $k = 0, 1, ..., 7$.

d. Analyser les modules $|X_k|$ obtenus à la question précédente. Y a-t-il des fréquences (indices $k$) pour lesquelles le module est significativement plus élevé que pour les autres ? Si oui, à quelle périodicité cela correspond-il dans le signal temporel ?

e. Interprétation réseau : Dans un contexte d'analyse de trafic réseau, si vous détectez un pic important dans le spectre de fréquences à une fréquence $f$, qu'est-ce que cela pourrait indiquer sur le comportement du réseau ou des applications qui l'utilisent ? Donnez des exemples de scénarios où la détection de motifs périodiques pourrait être utile pour la gestion ou la sécurité du réseau.

f. Extension (facultatif) : Créer d'autres signaux réseau simulés avec différentes périodicités (par exemple, un motif qui se répète tous les 4 échantillons au lieu de 2). Calculer et visualiser les modules de la DFT de ces signaux modifiés. Comment la périodicité du signal temporel se reflète-t-elle dans le spectre de fréquences ?

Exercice 34 : Analyse comparative de signaux réseau : Signal "propre" vs. Signal "bruité"

Pour comprendre l'impact du bruit sur le spectre d'un signal réseau, comparons l'analyse spectrale d'un signal "propre" et d'une version "bruité" de ce signal.

Partie A : Caractérisation du Bruit Spectralement

a. Quelles sont les caractéristiques typiques du spectre de fréquences d'un signal de "bruit blanc" ? Comment se répartit l'énergie du bruit blanc sur les différentes fréquences ?

b. Considérons un signal "propre" simplifié : $s_{propre} = [0, 1, 0, -1, 0, 1, 0, -1]$. Et un signal "bruité" obtenu en ajoutant un bruit aléatoire au signal propre : $s_{bruité} = s_{propre} + \text{bruit}$, où le bruit est une suite de nombres aléatoires (par exemple, tirés d'une distribution uniforme entre -0.5 et 0.5). Sans calcul, comment pensez-vous que les spectres DFT de $s_{propre}$ et $s_{bruité}$ vont différer ? En particulier, comment le bruit va-t-il affecter les modules des coefficients DFT ?

Partie B : Comparaison Spectrale avec Python

c. Écrire un code Python dans le Trinket intégré ci-dessous pour :

i. Définir le signal "propre" $s_{propre} = [0, 1, 0, -1, 0, 1, 0, -1]$ (taille $n=8$).

ii. Générer un signal de bruit aléatoire de même taille, par exemple avec des valeurs uniformément réparties entre -0.5 et 0.5 (utiliser `numpy.random.uniform`).

iii. Créer le signal "bruité" en ajoutant le bruit au signal propre.

iv. Calculer et afficher les modules des coefficients DFT pour le signal "propre" et le signal "bruité".

d. Comparer visuellement les listes de modules DFT obtenues pour le signal "propre" et le signal "bruité". Confirmez-vous vos prévisions de la Partie A ? Comment le bruit affecte-t-il la répartition de l'énergie fréquentielle dans le spectre ?

e. Interprétation réseau : Dans l'analyse de trafic réseau, le "bruit" peut représenter divers phénomènes indésirables : interférences électromagnétiques, erreurs de transmission, trafic de fond non pertinent, etc. Comment l'analyse spectrale peut-elle aider à distinguer le "signal utile" (trafic légitime) du "bruit" dans un signal réseau réel ?

f. Extension (facultatif) : Modifier l'amplitude du bruit (par exemple, en multipliant le bruit aléatoire par un facteur plus important). Observer comment cela affecte le spectre du signal "bruité". À partir de quel niveau de bruit devient-il difficile de distinguer les caractéristiques spectrales du signal propre ?