Entraînez-vous sur les différentes formes des nombres complexes et leurs applications, notamment en informatique pour les BTS CIEL.
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;
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;
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;
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;
Soit $z = -2 + 5i$. Déterminer le conjugué $\overline{z}$ de $z$.
// Instructions Xcas pour l'exercice 5
z := -2 + 5*i;
conjugate(z);
Soit $z = 3 - 4i$. Calculer le module $|z|$ de $z$.
// Instructions Xcas pour l'exercice 6
z := 3 - 4*i;
abs(z);
Soit $z = 1 + i$. Déterminer un argument $\text{arg}(z)$ de $z$.
// Instructions Xcas pour l'exercice 7
z := 1 + i;
arg(z);
É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);
É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);
É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);
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);
Calculer $(1 + i)^4$ en utilisant la formule de De Moivre.
// Instructions Xcas pour l'exercice 12
z := 1 + i;
z^4;
Déterminer les racines carrées du nombre complexe $z = -4$.
// Instructions Xcas pour l'exercice 13
sqrt(-4);
Déterminer l'ensemble des points $M$ d'affixe $z$ tels que $|z - (1 + i)| = 2$. Décrire géométriquement cet ensemble.
Déterminer l'ensemble des points $M$ d'affixe $z$ tels que $|z - i| = |z + 1|$. Décrire géométriquement cet ensemble.
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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|
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)
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)
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)
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.
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$.
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 ?
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.
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 ?
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 ?
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.
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 ?
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 ?