Vous êtes sur la page 1sur 25

1

Nombres complexes
cours, exercices corrigs, programmation

Nous allons partir des nombres rels pour dfinir les nombres complexes. Au cours de cette
construction, les nombres complexes vont tre munis des oprations daddition et de multiplication, et
un lment cl va tre introduit : le nombre i ayant pour carr 1. En ajoutant cet intrus i parmi les
nombres rels et en le combinant avec eux, nous obtiendrons les nombres complexes.

1. Premire dfinition
Un nombre complexe z est un couple de deux nombres rels : z = (a, b).
Dans un repre orthonorm direct Oxy qui dfinit ce que lon appelle le plan complexe, le nombre
complexe z a pour image le point de coordonnes (a, b) ou encore le vecteur de coordonnes (a, b).
Inversement, on dit que le vecteur (a, b) ou le point (a, b) a pour affixe z.

Dans le plan complexe, le nombre complexe z a aussi


bien comme image le point M que le vecteur OM ou le
vecteur AB, tous de mmes coordonnes (a, b)

Etant assimils des vecteurs, les nombres complexes vont avoir les proprits des vecteurs,
essentiellement laddition et la multiplication par un nombre rel.

2. Addition de deux nombres complexes


Sachant qu partir dun vecteur V (a, b) et dun vecteur V (a, b) on a V + V = (a + a, b + b),
la somme de deux nombres complexes z (a, b) et z(a, b) est dfinie par z + z = (a+ a, b + b).
Un vecteur V (a, b) ayant comme oppos le vecteur V (- a, - b), loppos dun nombre complexe
z = (a, b) est z = (- a, - b).
La formule de Chasles peut aussi sappliquer. A partir dun vecteur AB, on peut intercaler un
troisime point C quelconque dans le plan, et lon a AB = AC + CB. Cela scrit en complexes :
zAB = zAC + zCB. On peut aussi crire que AB = AO + OB = OB OA, ce qui donne :
zAB = zB zA. Ainsi, pour un nombre complexe z dont limage est le vecteur AB, on a z = zB zA.

Avec OM = AB, et z affixe du point M, on a aussi


z = zB - z A

3. Multiplication dun nombre complexe par un nombre rel


On sait quavec V (a, b) le vecteur V avec rel a pour coordonnes ( a, b). De mme :
avec z = (a, b) et rel, on dfinit z = ( a, b). Par exemple 2z = (2a, 2b) ou z/2 = (a/2, b/2).
Appliquons cela au milieu I de [AB]. On sait que OI = (OA + OB)/2, do zI = (zA + zB)/2.
Si lon en restait l, avec les nombres complexes assimils des vecteurs, il serait inutile davoir
dfini les nombres complexes, puisque lon a dj les vecteurs notre disposition. Mais maintenant va
jouer laspect nombre des nombres complexes. On sait dj les additionner. On va aller plus loin,
au-del de leur reprsentation vectorielle, en les multipliant, alors que lon sait que la multiplication de
deux vecteurs (qui donnerait un vecteur dans le mme plan) nexiste pas.1

4. Multiplication de deux nombres complexes


Prenons comme dfinition que le produit de deux nombres complexes z = (a, b) et z = (a, b) est
zz = (aa bb, ab + ba). Et nous allons voir le bien-fond de cette dfinition.
Commenons par dcider que les nombres complexes dont limage est sur laxe des x, de la forme
(a, 0) sont assimilables aux nombres rels, ce qui nous permet dcrire (a, 0) = a. Dans ces conditions,
laxe des x est appel laxe rel, tandis que laxe des y sera appel axe imaginaire. Pour un nombre
complexe z = (a, b), on dit que a est la partie relle de z et que b est sa partie imaginaire.
On avait vu prcdemment le produit z dun nombre rel avec un nombre complexe, ce qui
donnait (a, b). Maintenant faisons intervenir le fait que le nombre rel est aussi le nombre
complexe (, 0). Formons (, 0) (a, b) et appliquons la rgle de multiplication des nombres complexes.
On trouve encore (a, b). Aucune contradiction nest apparue, heureusement.
Aprs la partie relle, passons la partie imaginaire. Introduisons le vecteur unitaire (0, 1) sur laxe
des y, et appelons i le nombre complexe associ, soit i = (0, 1). Il est tel que : i2 = - 1, car par dfinition
de la multiplication i i = (0, 1) (0, 1) = (1, 0). La raison dtre des nombres complexes apparat ici.
Grce un nombre comme i, on peut avoir des carrs ngatifs, ce qui ntait pas permis avec les
nombres rels, dont tout carr est positif ou nul.
Prenons un point M daffixe z = (a, b). Il se projette en H et K sur les
axes, et lon a OM = OH + OK (Chasles), avec OH qui est limage
du nombre complexe (a, 0) = a, et OK qui est b fois le vecteur
associ i, ce qui correspond au nombre complexe b i.ou i b . Le
nombre z scrit : z = a + ib
Il sagit de ce que lon appelle lcriture cartsienne de z. Nous
sommes passs de z = (a, b) z = a + ib, grce lutilisation du
nombre imaginaire i.
Ainsi, tout nombre complexe z ayant pour image le point (a, b) ou le vecteur (a, b) est z = a + ib.
Reprenons maintenant la multiplication de deux nombres complexes, et effectuons-la comme on le
ferait avec des nombres rels, en utilisant la distributivit :
z z = (a + ib) (a + ib) = aa + iab + iba + i2 bb = aa bb + i(ab + ba). On retrouve ce que
lon avait pris comme dfinition de la multiplication. Autrement dit, il nest pas utile dapprendre par
1

A fortiori, la division de deux vecteurs na aucun sens.

3
cur la dfinition de la multiplication. Il suffit de la faire comme on en a lhabitude avec dautres
types de nombres. La boucle est boucle.
Nous avons russi construire les nombres complexes, dots dune addition et dune
multiplication. Et grce leur criture cartsienne z = a + ib, on peut faire avec eux des calculs
analogues ceux que lon fait avec les nombres rels. Les rsultats des calculs sont finalement
ordonns en sparant la partie relle et la partie imaginaire.
z = a + ib avec a = Re(z) et b = Im(z) o Re et Im dsignent la partie relle et la partie
imaginaire du nombre z, toutes deux tant des nombres rels.
z + z = a + ib + a + ib = (a + a) + i (b + b)
zz = (a + ib) (a + ib) = aa bb + i (ab + ba) aprs calcul.

5. Inverse dun nombre complexe non nul


Commenons par dfinir le conjugu z de z = a + ib, soit z = a ib.

Les vecteurs images de z et z sont symtriques par rapport


laxe des x. Il est important de ne pas confondre le conjugu
de z et son oppos z.

Calculons z z = (a + ib)(a ib) = a2 + b2. qui est un nombre rel, plus prcisment le carr de la
longueur du vecteur image de z.
Par dfinition, linverse z dun nombre z est tel que z z = 1. Supposons z non nul, ce qui signifie
que a2 + b2 0. Grce au calcul prcdent :
1
z
z z = 1 , ce qui signifie que 2
est linverse de z. Ainsi tout nombre complexe z non
2
2
a +b
a + b2
nul admet un inverse. Cet inverse scrit z-1 ou 1/z puisque grce linverse on sait maintenant
diviser. : diviser, cest multiplier par linverse. Voici comment calculer concrtement linverse :

1
1
a ib
a ib
a
b
=
=
= 2
= 2
i 2
, o lon a multipli en haut et en bas
2
2
z a + ib (a + ib)(a ib) a + b
a +b
a + b2
par la quantit conjugue du dnominateur.

6. Corps des nombres complexes


Appelons C lensemble des nombres complexes, avec R inclus dans C. Lensemble C muni de
laddition et de la multiplication, possde une structure de corps (field en anglais), ce qui signifie que :

C muni de laddition a une structure de groupe commutatif, ce qui veut dire que :
* la somme de deux nombres complexes est un nombre complexe.
* laddition est associative et commutative.
*elle possde un lment neutre 0, tel que 0 + z = z + 0 = z.
*tout nombre complexe z admet un oppos z.
C sans 0, muni de la multiplication a une structure de groupe commutatif :
* le produit de deux nombres complexes est un nombre complexe

4
la multiplication est associative et commutative
elle possde un lment neutre 1 tel que 1z = z1 = z.
-1
* tout nombre complexe z non nul admet un inverse z .
La multiplication est distributive par rapport laddition : z(z + z) = z z + z z.
*
*

A ce stade de ltude, un mystre demeure. Si lon sait faire une multiplication en utilisant
lcriture cartsienne z = a + ib, on ne sait pas comment cela se traduit gomtriquement. O se trouve
le point daffixe zz ? Pour rpondre cette question, une autre criture des nombres complexes est
indispensable. Il sagit de leur criture sous forme trigonomtrique.

7. Forme trigonomtrique dun nombre complexe


Prenons un nombre z dont limage est le point M(a, b) ou le vecteur OM (a, b). Ce vecteur est aussi
bien dfini par sa longueur r et par langle orient = (Ox, OM) quil fait avec laxe des x. Il existe
une relation bijective entre (a, b) et (r, ). On appelle r le module du nombre complexe z et son
argument.

Comment passer de (r, ) (a, b) ? On trouve aussitt : a = r cos et b = r sin par dfinition mme
du cosinus et du sinus dun angle.
Comment passer de (a, b) (r, ) ? On a r2 = a2 + b2, soit r = a 2 + b 2 puis est tel que cos = a/r
et sin = b/r. IL ne suffit pas de prendre cos = a/r, car dans ce cas langle nest connu quau signe
prs, et si lon ne prend que le sinus, langle aurait encore deux valeurs possibles. Remarquons que
lon a aussi tan = b/a, mais la connaissance de la tangente ne suffit pas non plus pour avoir langle (il
est dans ce cas connu k prs).
Grce aux relations prcdentes, on peut crire z = a + ib = r cos + i rsin = r (cos + i sin). On
vient dobtenir ce que lon appelle lcriture trigonomtrique dun nombre complexe, soit pour un
nombre z de module r et dargument :
z = r (cos + i sin), ou sous forme concentre [r, ] avec des crochets pour se distinguer de
lcriture cartsienne (a, b).
Reprenons la multiplication avec cette nouvelle criture :
z z = [r, ] [r,] = r (cos + i sin). r (cos + i sin)
= rr (cos cos sin sin +i (sin cos + cos sin))
= rr (cos( + ) + i sin( + ))
car lon est cens connatre les formules daddition :
cos( + ) = cos cos sin sin et sin( + ) = sin cos + cos sin.
Cela signifie que le produit zz a comme module r r et comme argument + : zz = [rr, +].
Do la rgle simple, permettant de construire facilement limage du produit zz :
Pour multiplier deux nombres complexes, on multiplie leurs modules et lon ajoute leurs
arguments.
Il en est de mme pour la division : on divise les modules et lon soustrait les arguments.

5
On en dduit cette consquence : a et z tant des nombres complexes, avec a = [r, ], comment
passe-t-on du vecteur V daffixe z au vecteur V daffixe az ? Il suffit de faire tourner le vecteur V de
langle et de multiplier sa longueur par r.

8. Proprits complmentaires des modules et des conjugus


Le module r de z = [r, ] est aussi not |z|. On a alors |zz| = |z| |z| et |z|2 = z z . Comme il sagit
dune longueur, le module obit aussi lingalit triangulaire, soit |z + z| |z| + |z|.
Quant au conjugu de z = a + ib, soit z = a ib , il scrit sous forme trigonomtrique, partir de z
= [r, ], z = [r, - ]. Remarquons que cela na rien voir avec loppos de z soit z= [r, + ]. On a
aussi, pour des raisons videntes :
z + z' = z + z'
z z' = z z'
z=z

9. Formule de Moivre
Prenons le nombre complexe cos + i sin, qui a pour module 1 et pour argument . On en dduit,
grce la rgle de multiplication, que
(cos + i sin)n = cos n + i sin n, avec n entier naturel (ou relatif) quelconque.
Cest cela la formule de Moivre, qui permet de remplacer une puissance de nombre complexe par
une forme linarise.
Enfin une variante de lcriture trigonomtrique est la forme exponentielle.

10. Forme exponentielle dun nombre complexe


On va crire z = [r, ] sous la forme z = r ei. A dfaut de pouvoir dmontrer la validit de cette
formule qui fait appel une exponentielle complexe, hors programme, on se contentera de vrifier
quelle est cohrente avec la multiplication, puisque :
zz = r ei r ei = rr ei( + ) grce la rgle des puissances. On retrouve bien le produit des
modules et la somme des arguments.

11. Formules dEuler


A partir des deux formules :
cos + i sin = ei
cos - i sin = e i
on en dduit par addition puis soustraction :
cos =

ei + e i
ei ei
et sin =
.
2
2i

Ce sont les formules dEuler.

12. Racines nmes de lunit


Les racines carres z de 1 (lunit) sont telles que z2 = 1, ce qui donne aussitt les deux solutions
= 1.

Passons aux racines cubiques de lunit, vrifiant z3 = 1. Sous forme trigonomtrique, avec z =
[r, ],, cela signifie que [r3, 3] = [1, 0], soit r3 = 1 et 3 = 0 + 2k, (surtout ne pas oublier que les
angles sont dfinis modulo 2), soit finalement r = 1 et = 2k/3. Pour k = 0, on trouve [1, 0], pour k =
1, cest le nombre appel j = [1, 2/3], pour k = 2, cest j2 = [1, 4/3], puis pour les autres valeurs de k
(entier relatif), on retrouve les mmes nombres. Finalement, il existe trois racines cubiques de 1, dont
les images forment un triangle quilatral inscrit dans le cercle unit de centre O.

Passons au cas gnral. Les racines nmes de lunit, de la forme z = [r, ], vrifient zn = 1, soit [rn,
n] = [1, 0], rn = 1 et n = 2k., r = 1, = 2k/n. Il suffit de prendre k entre 0 et n 1 pour avoir toutes
les solutions : z0 = 1, z1 = [1, 2/n] = ei 2/n, z2 = [1, 4/n] = ei 4/n, , zn-1 =[1, (n-1) 2/n] = ei (n-1) 2/n.
Pour passer dune solution la suivante, il suffit de tourner de 2/n autour de O. Finalement,
Les racines nmes de lunit sont au nombre de n, et leurs images sont les sommets dun
polygone rgulier inscrit dans le cercle unit dorigine O, un sommet tant le point (1, 0)
Exemple des racines cinquimes de lunit :

On constate que si n est impair, il existe une seule racine relle, savoir z = 1, tandis que pour n
impair, il en existe deux : z = 1. A cause de la symtrie du polygone rgulier par rapport laxe des
x, les racines nmes sont conjugues deux deux, soit :

z1 = zn 1 , z2 = zn 2 , etc., seules la ou les deux solutions relles tant leur propre conjugue.
Enfin, puisque lon passe dune racine la suivante en tournant de 2/n, les n racines nmes sont les
puissances successives de la racine z1, soit z10 = 1, z1, z12, z13, , z1n-1.

13. Racines nmes dun nombre complexe A


Posons A = [R, ]. Les racines nmes de A, soit Z = [r, ], sont telles que Zn = A, [rn, n] = [R, ].
do rn = R et n = [2] :
r = n R

= / n + 2k / n

Pour k, il suffit de prendre les n valeurs de 0 n 1, do n solutions.


Les racines nmes dun nombre complexe A = [R, ] sont au nombre de n, et leurs images
forment un polygone rgulier inscrit dans le cercle de centre O et de rayon n R , avec un sommet
qui fait langle /n avec laxe des x.
Notamment les racines carres dun nombre A = [R, ] sont au nombre de deux, et elles sont
opposes.

Dans le cas o lon connat une des n racines nmes de A, soit Z0, on peut crire :
Zn = A, Z tant une racine nme quelconque de A,
Z0n = A, do par division :
(Z/Z0)n = 1, et Z/Z0 est une racine nme de lunit.
Ainsi, toutes les racines nmes de A se dduisent de lune delles Z0 en la multipliant par les racines
n
de lunit.
mes

14. Equation du second degr solutions dans C


Rappelons la dcomposition canonique du trinme du second degr :
az2 + bz + c = a ((z + b/2a)2 /(4a2)) avec a 0

1) Cas o les coefficients a, b et c sont tous rels


Dans ce cas, = b2 4ac est un nombre rel.
Si est positif ou nul, on sait quon peut factoriser le trinme, puisque existe comme
nombre rel, et lquation az2 + bz + c = 0 admet deux solutions relles (confondues pour = 0). Ces
deux solutions sont aussi dans C et il ny en pas dautres.
Si est un rel ngatif, il admet deux racines carres dans C, soit i , ce qui permet de
factoriser le trinme : az2 + bz + c = a ((z + b/2a)2 /(4a2)), en choisissant lune des racines carres :
b
i 2
= a (( z + )2 (
) )
2a
2a
b + i
b i
= a( z
)( z
)
2a
2a
b i
Lquation admet deux solutions complexes conjugues
2a

2) Cas gnral avec a ( 0), b et c complexes


Le nombre complexe admet deux racines carres complexes . Le trinme peut scrire :

8
b 2

) ( )2 ) et lon peut le factoriser. Lquation du second degr admet


2a
2a
b
deux solutions complexes qui sont
, avec qui est lune des deux racines carres de .
2a

az2 + bz + c = a (( z +

15. Exercices
Exercice 1
1) Soit lquation de la forme P(z) = 0 o P est un polynme complexe coefficients
rels. Montrer que si z0 est une solution, alors z0 est aussi solution.
Lquation scrit : an zn + an-1 zn-1 + + a0 = 0.
Avec z0 solution, on a an z0n + an-1 z0n-1 + + a0 = 0. Utilisons les proprits de la
conjugaison.
an z0n + an1 z0n 1 + + a0 = 0.
an z0n + an1 z0n 1 + + a0 = 0
an z0n + an1 z0n1 + + a0 = 0
n

an z0 + an 1 z0

n 1

+ + a0 = 0

z0 est bien solution.

Remarque : on connaissait dj cette proprit pour lquation du second degr.


2) Soit lquation z4 6z3 + z2 + 10z 18 = 0. Vrifier que 1 + i est solution. Puis
trouver toutes les solutions.
Posons P(z) = z4 6z3 + z2 + 10z 18 = 0, et calculons P(1 + i).
Avec (1 + i)4 = 1 + 4i 6 4i + 1 = 4,
(1 + i)3 = 1 + 3i 3 i = 2 + 2i
(1 + i)2 = 1 + 2i 1 = 2i ,
P(1 + i) = 4 6( 2 + 2i) + 2i + 10(1 + i) 18 = 0. 1 + i est solution de lquation. Alors
1 i est aussi solution. On peut factoriser P(z) avec (z (1 + i))(z (1 i)) = z2 2z + 2.
P(z) = (z2 2z + 2)(z2 4z 9)
Le trinme z2 4z 9 a pour racines 2 13 , qui sont relles (et leur propre conjugue).
Finalement lquation initiale a quatre solutions : 1 i, 2 13 .

Exercice 2
Rsoudre dans C lquation z8 + z4 + 1 = 0, et prciser le lien entre les solutions
trouves et les racines douzimes de lunit.
Procdons au changement dinconnue Z = z4. Lquation devient Z2 + Z + 1 = 0, qui admet
2
deux solutions. Sachant que 1 + j + j2 = 0, et par passage au conjugu 1 + j + j = 0 , les deux

solutions sont j et j .

Revenons z, en traitant dabord z4 = j. Avec z = [r, ], cette quation devient [r4, 4] = [1,
2/3], do r = 1 et 4 = 2/3 + 2k, soit = /6 + 2k/4, do quatre solutions.
Traitons enfin z4 = j , ou encore z = 1 , do quatre solutions qui sont les conjugues des
prcdentes. Les 8 solutions sont reprsentes ainsi dans le plan complexe :
4

On constate quil sagit des douze racines douzimes de lunit


sauf les quatre qui sont prsentes sur les axes, savoir 1 et i.

Exercice 3
Soit un nombre rel de lintervalle ]0, 2[. On considre les deux nombres complexes z = ei
1+ z
et Z =
.
1 z
1) Montrer que Z existe quel que soit z.
Z nexiste pas si et seulement si z = 1. Mais z = 1 signifie que ei = 1, cest--dire = 2k. Avec
dans ]0, 2[, cela narrive jamais. Finalement Z existe toujours.
2) Vrifier que ei = 1, et en dduire Z lorsque = .
ei a pour module 1 et pour argument . Il sagit donc de 1. Dans ce cas, Z = 0.
3) Montrer que Z = i

1 + ei

cos( / 2)
sin( / 2)

ei /2 (ei /2 + ei /2 )

ei /2 + ei /2

2cos( / 2)
cos( / 2)
=i
,

2
i
sin(
/
2)
sin( / 2)
1 e
e (e
e ) e
e
cela grce aux formules dEuler, et au fait que 1/(i) = i.

Z=

i /2

i /2

i /2

i /2

i /2

Exercice 4
1) Rsoudre lquation Z
complexe.

= 1 dans C. Dessiner les images des solutions dans le plan

Les solutions de Z 5 = 1 sont les cinq racines cinquimes de lunit, soit ei2k/5 avec k de 0 4. Leurs
images sont les sommets dun pentagone rgulier inscrit dans le cercle de centre O et de rayon 1, un
sommet tant en (1, 0), correspondant la seule solution relle.

2) En saidant du 1, rsoudre lquation (z i)5 = (z + i)5. Exprimer les solutions en utilisant


des cotangentes dangles, avec par dfinition cotan = cos / sin . Comment pouvait-on
prvoir que les solutions sont toutes relles (utiliser pour cela les modules) ?

10
5

z +i
Comme z = i nest manifestement pas solution, lquation peut se re-crire
= 1 . En faisant
zi
z+i
, on retombe sur Z 5 = 1 dont on connat les 5 solutions. Revenons
le changement dinconnue Z =
z i
z:
z+i
Z = 1,
= 1, z + i = z i , 0z = 2i, aucun z ne convient.
z i
z+i
Z = a avec a = e i2k/5, avec k de 1 4,
= a, z(1 a) = i (1 + a), soit, en utilisant les
z i
formules dEuler :
1+ a
1 + ei 2k /5
eik /5 (eik /5 + eik /5 )
2cos(k / 5)
z = i
= i
=

i
= i
i
2
k

/5
ik

/5

ik

/5
ik

/5
1 a
2i sin(k / 5)
1 e
e
(e
e
)

cos(k / 5)
= cotan(k / 5)
sin(k / 5)
Lquation admet quatre solutions toutes relles : cotan(/5), cotan(2/5), cotan(3/5), cotan(4/5).
=

Prenons le point A daffixe i et le point B daffixe i. Appelons M limage dune des solutions.
z + i est laffixe du vecteur BM, et z i celui du vecteur AM. En passant en modules, lquation
donne (MB / MA)5 = 1, ce qui quivaut MB / MA = 1 puisque tout est positif, MA = MB, M est sur la
mdiatrice de [AB], qui nest autre que laxe des x. Les solutions sont toutes relles.

3) En dveloppant (z i)5 et (z + i)5 grce la formule du binme de Newton, rsoudre


nouveau lquation (z i)5 = (z + i)5. Constater que les solutions sont opposes deux deux.
(z + i)5 = z5 + 5 i z4 10 z3 10 i z3 + 5 z + i
(z i)5 = z5 5 i z4 10 z3 + 10 i z3 + 5 z i
Aprs simplifications, lquation se rduit 5z4 10 z2 + 1 = 0. Remarquons quil sagit dune
quation du quatrime degr, et non pas du cinquime.
Pour la rsoudre, faisons le changement dinconnues : Z = z2, lquation devient
5Z2 10Z + 1 = 0, avec deux solutions Z = (5 2 5 )/5, toutes deux relles positives. Revenons
z dont le carr z2 est gal un nombre positif :

z2 = (5 + 2 5 )/5, z = 5 + 2 5 / 5
z2 = (5 2 5 )/5, z = 5 2 5 / 5
On a trouv les quatre solutions de lquation.

4) Dduire des deux questions prcdentes la valeur de cotan /5. Puis montrer que tan /5 =

52 5 .
La plus grande des quatre solutions est 5 + 2 5 / 5 . Il sagit aussi de lune des solutions de la
forme cotan k/5. Mais laquelle ? Sur les quatre cotangentes, seules cotan /5 et cotan 2/5 sont
positives, puisque la cotangente est linverse de la tangente. On sait aussi que la fonction tangente est
croissante sur [0, /2[, la cotangente est donc dcroissante. Le plus grande est cotan /5. Ainsi :
cotan /5 =

5+2 5 / 5 ,

11

5 / 5+2 5 =

tan /5 =

5+ 2 5 / (5+ 2 5 ) =

5 5 + 2 5 (5 2 5)
en utilisant la
5

quantit conjugue du dnominateur.


=

5 (5 + 2 5)(45 20 5)
= (5 + 2 5)(9 4 5) = 5 2 5
5

(autre mthode : on part de cotan /5 =


soit

5 2 5 cotan /5 =

52 5

5 + 2 5 / 5 , et lon multiplie par la quantit conjugue,

5 + 2 5 / 5 = 1, do tan /5 =

52 5 )

Exercice 5
z
z+2
1) Montrer que la fonction f faisant passer de z z est une bijection de C {2] dans un
ensemble E que lon prcisera. Autrement dit, la fonction f qui chaque z de C {2} fait
correspondre une image z unique dans E est aussi telle que tout lment z de E admet un
antcdent unique z dans C {2}. Pour la dmonstration, il conviendra de chercher z partir de
z donn.

A tout nombre complexe z diffrent de 2 on associe le nombre complexe z tel que z ' =

Cherchons isoler z. On a z(z + 2) = z, zz + 2z = z, z(z 1) = 2z. Si z = 1, on devrait avoir z =


z + 2, ce qui est impossible. Donc z est diffrent de 1. On peut diviser : z = 2z/(z 1). Chaque z
diffrent de 1 admet un antcdent z unique. On a bien une bijection de C {2} dans C {1}.

2) Dterminer les points invariants par f, cest--dire tels que z = z.


z = z scrit z / (z + 2) = z, z = (z + 2)z, z2 + z = 0, z(z + 1) = 0, soit z = 0 ou z = 1. Il existe deux
points invariants, O(0, 0) et O(1, 0).
3) On pose z = x + iy et z = x + iy. Calculer x et y en fonction de x et y.

x '+ iy ' =
x' =

x + iy
( x + iy )( x + 2 iy ) x 2 + y 2 + 2 x + i 2 y
=
=
x + 2 + iy
( x + 2)2 + y 2
( x + 2) 2 + y 2

x2 + y 2 + 2x
( x + 2) + y
2

et y ' =

2y
( x + 2) 2 + y 2

4) Dterminer lensemble des points M daffixe z tels que z soit rel, cest--dire tels que son
image M soit sur laxe des x.
z rel signifie que y = 0, soit 2y = 0, y = 0, et z est rel. Tout point de laxe des x (sauf 1) admet un
antcdent unique qui est un point de laxe des x (sauf 2), et vice-versa. Laxe des x est globalement
transform en lui-mme, deux points prs.
5) Dterminer lensemble des points M daffixe z pour lesquels la partie relle x de z est
nulle (autrement dit M est sur laxe des y).
x = 0 scrit x2 + y2 + 2x = 0, (x + 1)2 + y2 = 1. Il sagit de lquation dun cercle de centre (1, 0)
et de rayon 1. Ainsi laxe des y a comme antcdent ce cercle (auquel on enlve le point (2, 0)).
6) Calculer z 1, et dterminer une relation entre les modules de z 1 et de z + 2.
Dterminer aussi une relation entre leurs arguments.

12
z 1 = z / (z + 2) 1 = 2 / (z + 2)
En modules, cela donne |z 1| = 2 / |z + 2| ou encore |z 1| |z + 2|= 2.
En arguments : Arg(z 1) = Arg(z + 2), ou Arg(z 1) + Arg(z + 2)= .
7) Dterminer limage (le transform) C dun cercle C de centre A (2, 0) et de rayon R
donn. Utiliser pour cela la dfinition gomtrique du cercle C.
Tout point M du cercle C est caractris par AM = R. Avec le vecteur AM daffixe z + 2, cela
scrit |z + 2| = R. Grce la relation du 6, |z 1| = 2/R. Les points M sont sur le cercle de centre (1,
0) et de rayon 2/R. Mais le dcrivent-ils en entier ? Quand M fait un tour complet sur C, Arg(z + 2)
dcrit [0 2[, et grce la relation du 6, Arg(z 1) dcrit aussi un intervalle de longueur 2, M fait
aussi un tour complet. C est le cercle de centre (1, 0) et de rayon 2/R.
8) Dterminer limage (la transforme) D de la droite D passant par A et de vecteur
directeur (cosa, sina), a tant un angle orient donn, cette droite tant prive du point A. Pour
la dmonstration, utiliser la relation entre arguments du 6.
M appartient D ssi le vecteur AM fait un angle a ou a + avec laxe des x. Cela scrit Arg(z + 2)
= a []. On en dduit que Arg(z 1) = a [] = a []. Cela signifie que le vecteur BM, avec B(1,
0), fait un angle a, ou a, constant avec laxe des x. Le point M se trouve sur la droite passant par
B et de vecteur directeur (cos a, - sin a). Grce la relation sur les modulos, on peut affirmer que
lorsque M dcrit la droite D (prive de A) M dcrit la droite D prive du point B.

Exercice 6
Dans un repre orthonorm (O, u, v), on place le point A daffixe 1 + i et le point B daffixe 1
3i. Soit M le point daffixe z, avec z diffrent de 2 + 3i. A z on associe le nombre complexe z
tel que :
z 1 + 3i
, dimage M.
z' =
z + 2 3i
1) Etablir une relation entre largument de z et langle orient de vecteurs (MA, MB).
Remarquons que chaque z de C {2 + 3i} admet une image (un transform) z dans C. La relation
faisant passer de z z est une application de C {2 + 3i} dans C.
z 1 + 3i = z (1 3i) est laffixe du vecteur BM, et z + 2 3i = z (2 + 3i) est laffixe de AM.
A cause du quotient de ces deux nombres, Arg z = (u, BM) (u, AM) = (AM, BM) = (MA, BM) +
= (MA, MB) + 2 = (MA, MB) puisque les angles sont modulo 2.

2) Dterminer lensemble E1 des points M du plan tels que z ait pour argument /2.
Arg z = /2 signifie (MA, MB) = /2 [2]. Cela signifie que M dcrit le demi-cercle de diamtre
[AB] situ droite de (AB) cause de langle + /2. Lensemble E1 est ce demi-cercle.
3) Dterminer et construire lensemble E2 des points M tels que |z| =2.
|z| =2 signifie, grce la rgle des modules pour un quotient, que MB / MA = 2. Lensemble E2 des
points M est le cercle 2de diamtre [K1 K2] avec K1 et K2 sur (AB) et vrifiant K1A / K1B = K2A / K2B =
2 : K1 est aux 2/3 de [AB] partir de B, et K2 est tel que A est le milieu de [K2B].

4) Dterminer laffixe du point commun K E1 et E2.

Il sagit dune proprit lie ltude des barycentres et du produit scalaire.

13
Comme K1 est sur [AB], le demi-cercle E1 et le cercle E2 se coupent effectivement en un point
unique K. Appelons z laffixe de K. On sait que z a pour image (transform) z tel que z = [2, /2]
sous forme trigonomtrique, soit z = 2i. Le nombre z vrifie :
z 1 + 2i
7 + i (7 + i)(1 + 2i ) 5 + 15i
= 2i , ce qui donne, tous calculs faits, z =
=
=
= 1 + 3i .
z + 2 3i
1 2i
1+ 4
5
Autre mthode : on cherche lquation des deux cercles concerns, et lon dtermine leurs deux
points dintersection. Puis on enlve celui qui ne convient pas. Mthode trs complique par rapport
la prcdente.
Autre mthode : On voit sur le dessin (il est indispensable de le faire) que le point K a lair dtre
(1, 3). Puis on dmontre que cest bien lui. Appelons K le point (1, 3). Profitons du fait que (KA) est
horizontal et (KB) vertical. On a (KA) orthogonal (KB) donc K est sur E1. On a aussi KA = 3 et
KB = 6, KB / KA = 2, K est aussi sur E2, donc K = K. Cette mthode est la meilleure, mme si elle
dplait ceux qui nont que mpris pour la gomtrie.

Exercice 7
1) Rsoudre dans C lquation de degr n 1 : z n 1 + z n 2 + ... + z 2 + z + 1 = 0 avec n 2. En
dduire une factorisation du polynme P(z) = z n 1 + z n 2 + ... + z 2 + z + 1 en n 1 facteurs du
premier degr.
Constatons que 1 nest pas solution de cette quation, et appliquons la formule sur la somme des
termes dune suite gomtrique de raison z 1, soit
1 zn
z n 1 + z n 2 + ... + z 2 + z + 1 =
, et lquation devient zn = 1. On trouve les n racines nmes de
1 z
lunit, sauf 1, ce qui donne les n 1 solutions de lquation : z = e i 2k / n pour k allant de 1 n 1. On
en dduit la factorisation de P(z) :
n 1

P( z ) = ( z ei 2 k / n )
k =1

2) Exprimer 1 ei2k / n en faisant ressortir sin (k/n).

1 ei 2 k / n = ei k / n (ei k / n ei k / n ) . Sachant que sin(k / n) =


on en dduit que 1 ei 2 k / n = 2 i sin(k / n) eik / n
n 1

ei k / n e i k / n
(formule dEuler),
2i

k
n
= n 1
n 2
k =1
En utilisant la dfinition de P(z) et en faisant z = 1, P(1) = n. Grce la factorisation de P(z) on a
aussi :
3) En calculant P(1) de deux faons, montrer que

sin

14
n 1

n 1

k =1

k =1

P (1) = (2 i sin(k / n) eik / n ) = (2)n 1 i n 1 ei / n ei 2 / n ei 3 / n ... ei ( n 1) / n sin(k / n)


=

i
(1+ 2+3+... + ( n 1)) n 1
(1)n 1 2n 1 i n 1 e n
sin(k

/ n)

k =1

= (1)

n 1 n 1 n 1

i ( n 1) n n 1
e 2n
sin(k

k =1

n 1

/ n) = (1)n 1 2n 1 i n 1 i n 1 sin(k / n)
k =1

n 1

n 1

k =1

k =1

= (1)n 1 2n 1 i 2 n 2 sin(k / n) = ( 1) n 1 2n 1 (1)n 1 sin(k / n)


n 1

= 2n 1 sin(k / n)
k =1

On en dduit la formule demande.

Exercice 8
Dans le plan complexe, on considre trois points A, B et C daffixes a, b et c. Montrer que le
triangle ABC est un triangle quilatral direct si et seulement si c + ja + j2 b = 0.
Le fait que ABC soit un triangle quilatral direct signifie que lon passe du vecteur AB au vecteur
AC en tournant de /3, avec AB daffixe b a et AC daffixe c a, ce qui veut dire que :

c a = j2 (b a)
puisque j2 a pour argument 2/3, et que son oppos a pour argument 2/3 + = /3.
Cette formule scrit aussi c a (1 + j2) + j2 b = 0, ou encore c + ja + j2 b = 0, puisque 1 + j + j2 = 0.

16. Programmation des nombres complexes


Il est facile de fabriquer sa propre bibliothque de nombres complexes, afin de pouvoir les utiliser
dans les programmes. Il suffit de dfinir une structure associe un nombre complexe : celle-ci
contient deux nombres rels, correspondant sa partie relle et sa partie imaginaire. Il suffit ensuite
de construire des fonctions associes aux formules du cours, notamment celles de laddition et de la
multiplication. La fonction la plus intressante est celle qui permet davoir une racine carre dun
nombre complexe. On en dduit cette petite bibliothque de fonctions, que lon applique dans le
programme principal pour calculer la somme et le produit de deux nombres complexes :
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
struct complexe { double A; double B; };
double RE(struct complexe z);
double IM(struct complexe z);
void afficher(struct complexe z);
struct complexe ADD(struct complexe z, struct complexe zz);
struct complexe MULT(struct complexe z, struct complexe zz);
struct complexe OPP(struct complexe z) ;
struct complexe RAC(struct complexe z);
int main()
{ struct complexe z,zz,somme,produit;
z.A=3.; z.B=2.;zz.A=1.; zz.B=-4.; /* z et zz sont donns,
afin de calculer leur somme et leur produit */
somme=ADD(z,zz);
produit=MULT(z,zz);

15
afficher(z);afficher(zz);printf("\n\n somme ");afficher(somme);
printf("\n\n produit ");afficher(produit);
getchar(); return 0;
}
/* partie relle dun nombre complexe */
double RE(struct complexe z) { return z.A;}
/* partie imaginaire dun nombre complexe */
double IM(struct complexe z) {return z.B;}
/* affichage dun nombre complexe sous la forme a + ib */
void afficher(struct complexe z) { printf(" %3.lf + i %2.lf ",z.A,z.B);}
/* addition deux nombres complexes */
struct complexe ADD(struct complexe z, struct complexe zz)
{ struct complexe zzz;
zzz.A=RE(z)+RE(zz); zzz.B=IM(z)+IM(zz);
return zzz;
}
/* multiplication de deux nombres complexes */
struct complexe MULT(struct complexe z, struct complexe zz)
{ struct complexe zzz;
zzz.A=RE(z)*RE(zz)-IM(z)*IM(zz);
zzz.B=RE(z)*IM(zz)+RE(zz)*IM(z);
return zzz;
}
/* oppos dun nombre complexe */
struct complexe OPP(struct complexe z)
{ struct complexe oppose;
oppose.A=-z.A; oppose.B=-z.B;
return oppose;
}
/* racine carre dun nombre complexe, celle de partie relle 0 */
struct complexe RAC(struct complexe z)
{ double signB;struct complexe rac;
if (z.A > 0.) { rac.A=sqrt( (z.A+ sqrt(z.A*z.A+z.B*z.B) )/2.);
rac.B=z.B/(2.*rac.A);
}
else if (z.A <0) { if (z.B>=0.) signB=+1.; else signB=-1.;
rac.B=signB*sqrt((-z.A+sqrt(z.A*z.A+z.B*z.B))/2.);
rac.A=z.B/(2.*rac.B);
}
else { rac.A=sqrt(fabs(z.B)/2.);
if (z.B>=0) rac.B=rac.A;
else rac.B=-rac.A;
}
return rac;
}

A propos de la fonction racine carre :


Un nombre z = a + ib tant donn, on sait quil admet deux racines carres opposes. Une racine
carre x + iy est telle que (x + iy)2 = a + ib, do le systme de deux quations : 3
3

Il existe une autre mthode utilisant la forme trigonomtrique des nombres complexes. Le nombre z tant
donn, avec z = x + iy, on commence par chercher son module r puis son argument , en utilisant judicieusement

16
x 2 y 2 = a

2 x y = b
On a aussi cette relation entre modules : x 2 + y 2 = a 2 + b 2 , et le systme rsoudre ne change
pas en ajoutant cette troisime quation :
x2 y 2 = a

2
2
2
2
x + y = a + b
2 xy = b

a + a 2 + b2
.
2
Mais cette formule manque de prcision dans le cas o a est ngatif et b proche de 0. Aussi prfre-ton distinguer plusieurs cas, en constatant quau lieu de calculer x comme prcdemment, on peut aussi
bien calculer y par soustraction des deux premires quations. On en dduit alors la racine carre ayant
sa partie relle x positive ou nulle, lautre tant son oppose, dans les trois cas suivants :
La somme des deux premires quations donne 2x 2 = a + a 2 + b 2 , soit x =

1) Pour a > 0,

2
2
x = a+ a +b

b
y = 2x

2) Pour a < 0

2
2
y = ( sign(b)) a + b a

x = 2y

o la fonction sign(b) vaut +1 ou 1 selon que b est positif ou ngatif. On fait cela pour obtenir la
mme racine carre que dans le 1, o y est du signe de b puisque x est positif.

3) Pour a = 0, laddition des deux premires quations se rduit x =

o lon a choisi x 0.
2
Puis on distingue deux cas, en utilisant 2xy = b et x2 = y2 : si b est 0, y est aussi 0, et y = x, et si b
est < 0, y = x.

la fonction arctangente. Une racine carre a pour module la racine carre de r et comme argument la moiti de ,
lautre racine carre tant son oppose.
r=sqrt(x*x+y*y);
if (x>0.) theta=atan(y/x);
else if (x<0.) theta=M_PI-atan(-y/x); /* ou bien atan(y/x)+M_PI; */
else if (x==0.) theta = M_PI/2.;
newr=sqrt(r); /* module de la racine carre */
newtheta1=(theta)/2 ; /* argument dune racine carre */
newx1=newr*cos(newtheta1);newy1=newr*sin(newtheta1); /* les deux racines carres */
newx2=-newx1;newy2=-newy1;
Mais cette mthode savre nettement moins performante en pratique que celle que nous dveloppons cidessus.

17
Exemples :

A gauche, le nombre complexe z = 5 + i 3, affixe du vecteur dessin en noir, admet comme racine
carre de partie relle positive le nombre dont limage est le vecteur rouge. Mme chose droite pour
le nombre z = 5 i 3.
En privilgiant la racine carre ayant une partie relle positive ou nulle, cela veut dire que
largument du nombre z est pris entre et + et que lon divise cet argument par 2 pour avoir cette
racine carre. En notant z cette racine carre, elle bnficie de la proprit suivante :

z = z .4
Nous allons maintenant utiliser cette bibliothque complexe pour traiter un problme classique.

17. Fractales de Fatou-Julia


1) Le cas du cercle
Commenons par un exemple simple, en faisant subir un point daffixe z0 la relation de
rcurrence zn+1 = zn2, avec comme fonction sous-jacente f(z) = z2. La succession des points obtenus
partir de z0 forme ce que lon appelle la trajectoire de z0. Le fait dlever au carr signifie que lon
lve au carr les modules et que lon double les angles. Que se passe-t-il ? Si le point daffixe z0 a un
module infrieur 1, avec des modules levs au carr chaque fois, la trajectoire du point converge
vers O. Par contre, si le point daffixe z0 a un module suprieur 1, la trajectoire du point sen va
linfini. Le disque de rayon 1 (sans sa frontire) constitue ce que lon appelle le bassin dattraction de
O, tandis que son extrieur strict est le bassin dattraction du point linfini . Il existe deux types de
points, ceux dont la trajectoire ne schappe pas linfini et qui restent prisonniers , et ceux qui
schappent linfini. La frontire entre ces deux types de points, ici le cercle de centre O et de rayon
1 constitue ce qui sappelle lensemble, ou la courbe, de Fatou-Julia associ la fonction f. Mais quen
est-il dans le cas particulier o le point daffixe z0 est sur le cercle ? Le module des points de sa
trajectoire reste gal 1, et en rgle gnrale, la trajectoire va parcourir le cercle (de faon dense si
largument de z0 est une fraction irrationnelle de 2). Par contre si lon prend le point daffixe 1 qui est
aussi sur le cercle, il reste fixe, et lon dit quil est repousseur puisque tout point de son voisinage va
sen loigner irrmdiablement.
On dispose dj dun premier algorithme, dit dchappe dans le temps, pour construire la courbe
de Fatou-Julia. Il suffit de prendre les points z0 du plan complexe et de colorier ceux qui schappent
linfini, cest--dire ceux dont la trajectoire dborde au-del dun grand cercle de rayon R (par
exemple R = 1000). La frontire de cette zone colorie est justement le cercle. Mieux encore, en
comptant le nombre dtapes quil faut la trajectoire dun point pour passer au-del de la frontire
circulaire R, ou encore pour entrer dans un petit voisinage du point O, on peut colorier les points en
fonction de ce nombre dtapes, ce qui donne des couronnes circulaires.

Si lon prenait largument de z entre 0 et 2, et que lon privilgiait la racine carre ayant largument moiti,
cette formule ne serait plus valable.

18

Echappe dans le temps, avec les points dominante bleue qui schappent linfini, et les points
dominante rouge qui restent prisonniers. Les points fixes 0 et 1 sont indiqus en rouge.
Prcisons un peu plus la nature du phnomne, en dterminant les points fixes de la fonction f. Il
sagit des points tels que f(z) = z, soit z2 = z. Il existe deux points fixes, savoir z = 0, et z = 1, et nous
avions dj trouv ces points exprimentalement. On dispose alors de la proprit suivante5 :
Selon que la drive de f(z) en un point fixe a un module infrieur ou suprieur 1, le point
fixe est attracteur ou repousseur.
Ici f(z) = 2z. Au point 0, la drive est nulle, le point est attracteur. Au point 1, |f(1)| = 2, le point
est repousseur, comme nous lavions dj constat.6
Maintenant, au lieu dappliquer la fonction f, appliquons sa rciproque. Un point z admet deux
antcdents z . En partant dun point quelconque z0, il admet deux antcdents qui leur tour
admettent deux antcdents, etc. Do que lon parte, la trajectoire ainsi obtenue va venir se coller sur
le cercle, puisque les modules sont transforms chaque fois en leur racine carre et quils tendent
vers 1 dans tous les cas.7 Les points 0 et qui taient attracteurs, deviennent repousseurs pour la
fonction rciproque.

Premiers antcdents dun point daffixe z. Ils se rapprochent du cercle. Les suivants vont finir par
se coller sur le cercle, et le parcourir.
Cette mthode par la fonction rciproque donne lieu deux algorithmes :

Il sagit dune gnralisation pour les nombres complexes de ce que lon connat pour les nombres rels
(voir chapitre du cours sur les suites).
6
On pourrait aussi dmontrer que le point linfini est attracteur.
7
Si lon prenait seulement une racine carre z et non pas les deux, la trajectoire dun point quelconque
convergerait vers le point 1 qui maintenant est attracteur.

19
Un algorithme rcursif o lon part dun point quelconque, en prenant chaque fois ses deux
antcdents par racines carres. Au bout dune dizaine dtapes par exemple, on obtient un millier de
points qui sont colls sur le cercle, sauf les premiers dentre eux. Cest ainsi que la courbe circulaire
apparat.
Un algorithme probabiliste et itratif, o lon prend chaque fois une des deux racines carres
au hasard, avec la mme probabilit. L encore, aprs les premiers points, les autres sont sur le cercle
et le dessinent.

2) Cas gnral
Ce que nous avons fait avec la fonction f(z) = z2, nous allons le gnraliser une fonction
lgrement diffrente, soit f(z) = z2 + c, o c est un nombre complexe donn, avec pour chaque valeur
de c une fonction f. Des phnomnes inattendus vont alors se produire.
Cherchons les points fixes de lapplication f. Ils vrifient z = z2 + c, ou z2 z + c = 0. On trouve
1 1 4c
deux solutions zf =
. Avec |f(zf)| = 2|zf|, il est possible de savoir si le point fixe est attracteur
2
ou repousseur.
Contentons-nous de traiter le cas o c est un nombre rel.
Si c > 1/4, le discriminant est ngatif, et lon a deux points fixes complexes non rels conjugus,
1 i 4c 1
soit
. Avec |f(zf)| = 2 |zf|= 1 + 4c 1 = 2 c > 2 1/2 suprieur 1 , ces deux points fixes
2
sont repousseurs.
1 1 4c
. Le
3/4 < c < 1/4, le discriminant est positif, et lon a deux points fixes rels zf =
2
1 + 1 4c
point fixe
est tel que la valeur absolue |2zf| > 1, il est repousseur. Par contre lautre point
2
1 1 4c
fixe
est tel que 2zf = 1 1 4c < 1. Si lon impose en plus que 2zf > 1, cela scrit
2
1 1 4c > 1, 1 4c < 2, 1 4c < 4, c > 3 / 4 et dans ce contexte, avec |2zf| < 1, ce point fixe est
attracteur.
c < 3/4, les deux points fixes sont repousseurs car dans les deux cas |2zf| > 1.
Vrifions cela sur quelques exemples, en utilisant lalgorithme dchappe dans le temps, avec son
programme :
Recherche ventuelle des points fixes, pour le cas o lun de ces points serait attracteur, auquel
cas on peut dessiner son bassin dattraction :
z1.A=1.; z1.B=0.;z4.A=4.; z4.B=0.; z05.A=0.5;z05.B=0.; /* z1 = 1, z4 = 4, z05 = 0,5 */
racdelta=RAC(ADD(z1,OPP(MULT(z4,c)))); /* utiliser la bibliothque complexe */
pf1=MULT(z05,ADD(z1,racdelta));
pf2=MULT(z05,ADD(z1,OPP(racdelta)));
filldisc(400+zoom*RE(pf1),300-zoom*IM(pf1),4,rouge); /* coloriage en rouge des deux points fixes */
filldisc(400+zoom*RE(pf2),300-zoom*IM(pf2),4,rouge);

Programme principal
for(xe=0;xe<800;xe++) for(ye=0;ye<600;ye++) /* parcours dcran pixel par pixel */
{ x=(float)(xe-xorig)/zoom;y=(float)(yorig-ye)/zoom; /* passage aux points (x,y) pour les calculs */
for(i=0;i<2000;i++) /* trajectoire des points */

20
{ newx=x*x-y*y+xc; newy=2*x*y+yc; /* conversion en rels de new z = z2 + c */
x=newx;y=newy;
if (x*x+y*y>2000*2000) {putpixel(xe,ye,col2[i]);break;} /* test dchappe avec R = 2000 */
/* si le point fixe zf2 est attracteur, on peut rajouter :
else if ( (x-RE(pf2))*(x-RE(pf2))+ (y-IM(pf2))*(y-IM(pf2))<0.00000000001)
{putpixel(xe,ye,col1[i]); break;}
*/
}

}
Dans ce programme, on utilise les couleurs c2[] dominante bleue pour les points dont la
trajectoire schappe linfini, et dans le cas o un point fixe est attracteur, on utilise les couleurs c1[]
dominante rouge pour les points dont la trajectoire converge vers ce point fixe.
Prenons par exemple c = 0,249. Comme le deuxime point fixe est attracteur, on dessine non
seulement le bassin dattraction de linfini dominante bleue, mais aussi celui du point attracteur,
dominante rouge, leur sparation constituant la courbe de Fatou-Julia.8 On constate que cette courbe
nest plus du tout lisse comme dans le cas du cercle vu prcdemment. A cause de ses multiples
ruptures de pente, on lappelle une fractale. Du fait quil sagit dune frontire, ses points sont entre
deux eaux, ntant ni attirs vers le point fixe ni vers linfini. Cette courbe est telle que tout point situ
sur elle a une trajectoire forme de points eux aussi situs sur elle. Elle reste globalement invariante
sous leffet rpt de la fonction f(z) = z2 + c.
Puis prenons c = 0,251, avec ses deux points fixes qui sont maintenant repousseurs. On constate
que le bassin dattraction de linfini couvre tout le plan. Le dessin na rien voir avec le dessin
prcdent, et pourtant il lui ressemble. Il ny a pas de courbe frontire entre deux bassins dattraction,
mais il existe une courbe qui reste globalement invariante sous leffet de la fonction f. Ses points
sont tels que leurs images successives restent sur cette courbe. Ils ne schappent pas linfini. Cette
courbe, invisible en ltat actuel, va ressembler la prcdente, comme lindiquent dj certaines
ressemblances entre les deux dessins, mais il semble quelle nait plus dintrieur, et il est
vraisemblable que la courbe (ensemble de points) prsente des trous, on dit alors quelle est non
connexe (ou dconnecte).

c = 0,249

c = 0,251

Pour mieux visualiser ces courbes fractales, on est amen utiliser lautre algorithme, celui qui
utilise la fonction rciproque, faisant passer de z ses deux racines carres. Rappelons quil existe soit

Si lon dessine seulement la zone dchappe dans le temps, sa frontire constitue la fractale de Fatou-Julia,
et celle-ci enserre une surface intrieure qui nest nulle part colorie.

21
sous forme probabiliste, en prenant une des deux racines carres au hasard, soit sous forme rcursive
en prenant chaque fois les deux racines carres.
a) Algorithme probabiliste
se donner c
x=0.; y=2.; /* point z initial */
z.A=x;z.B=y;
for(i=0;i<1000000;i++)
{ h=rand()%2;
z=RAC(ADD(z,OPP(c)));
if (h==1) z=OPP(z);
putpixel(400+zoom*RE(z),300- zoom*IM(z),rouge);
}

b) Algorithme rcursif
On se donne c et le point initial z ou (x, y). Puis le programme principal appelle la fonction rcursive :
point(z,100000);
void point(complexe z,int n)
{ complexe zz;
if (n!=0)
{
if (n<99990) putpixel(400+zoom*RE(z),300-zoom*IM(z),black);
z=RAC(ADD(z,OPP(c))); zz=OPP(z);
if (getpixel(400+zoom*RE(z),300-zoom*IM(z))==white)
point (z,n-1);
if (getpixel(400+zoom*RE(zz),300-zoom*IM(zz))==white)
point (zz,n-1);
}
}

A noter que pour viter lexplosion du nombre des points, ce nombre doublant chaque fois, on ne
rappelle la fonction point() qu partir des points qui nont pas dj t obtenus, plus prcisment ceux
qui ne sont pas dj coloris sur lcran.
Dans le cas des deux exemples prcdents, avec c = 0,249 et c = 0,251, on trouve maintenant deux
courbes apparemment identiques. La prcision des calculs nest pas suffisante pour faire apparatre
leur diffrence, savoir que lune est connexe et lautre pas. Cest en prenant de plus grandes valeurs
de c, par exemple c = 0,3 que lon voit nettement la non-connexit de la courbe.

c = 0,249

c = 0,251

c = 0,3

22
A ce stade, nous disposons alors dune dfinition de la courbe de Fatou-Julia : il sagit de
lensemble de points qui restent globalement invariants aussi bien sous leffet de f(z) = z2 + c que de sa
rciproque faisant passer de z z c .

Exercice 9
Utiliser les deux types dalgorithmes pour traiter le cas c = 0,7, sachant comme on la vu quil
existe un point fixe attracteur en plus de linfini. Et constater quon est loin du cas o lon obtenait un
cercle, pour c = 0.

c = 0,7
Jusqu prsent nous avons eu deux cas de figure : celui o lensemble des points qui ne
schappent pas linfini tait vide (c = 0,3 par exemple), et celui o il ne ltait pas, avec
convergence vers un point fixe attracteur (c = 0, 249 ou c = 0 ou c = 0,7). Mais la situation est plus
complexe. Il peut arriver que des points convergent non plus vers un seul point fixe, mais sur un cycle
fixe de plusieurs points. La trajectoire dun point finit par se coller sur un point du cycle puis passe au
suivant, dans un mouvement tournant infini. Nous allons traiter un de ces cas, celui dun cycle de deux
points.
Cas dun cycle fixe de deux points
Si la trajectoire dun point sous leffet de f(z) = z2 + c finit par osciller indfiniment sur un cycle de
deux points, cela signifie que chacun de ces deux points est un point fixe pour la fonction f 2 (z) :
z f(z) = z2 + c f 2(z) = f (f(z) = f(z2 + c) = (z2 + c)2 + c = z4 + 2 c z2 + c2 + c.
On obtient un polynme du quatrime degr. Mais les deux points fixes de f restent des points fixes
pour f 2. On peut donc mettre en facteur z2 z + c dont les deux racines sont ces points fixes. On
trouve :
f 2(z) = (z2 z + c) (z2 + z + c + 1). Les racines z1 et z2 de z2 + z + c + 1 constituent le cycle fixe de
1 3 4c
deux points pour f(z). On trouve comme racines
. Pour voir si ces points sont attracteurs
2
ou repousseurs pour f, ou aussi bien pour f 2, drivons : (f 2(z)) = 4z3 + 4 cz = 4 z (z2 + c). On constate
que (f 2(z1))= 4 z1 z2 et de mme pour (f 2(z2)). Ainsi |(f 2(z1))| = 4 |1 + c|. Selon que cette quantit est
infrieure 1 ou suprieure 1, le cycle des deux points est attracteur ou repousseur.

23
Revenons au cas o c est un nombre rel. Le cycle sera attractif si et seulement si |1 + c| < 1/4, soit
5/4 < c < 3/4.9
Par exemple, pour c = 1, on a le cycle fixe des deux points 1 et 0. Les algorithmes prcdents
permettent de tracer la fractale correspondante, notamment lalgorithme dchappe dans le temps,
avec lappoint du bassin dattraction du cycle des deux points.

c=1
En-dea de 3/4, le cycle des deux points devient son tour repousseur, mais il laisse la place un
cycle de quatre points son tour attracteur avant de devenir repousseur en faisant place des cycles
plus grands.

Exercice 10
Utiliser les trois programmes prcdents pour traiter le cas c = 0,69 + i 0,29

Echappe dans le temps

Algorithme probabiliste

Algorithme rcursif, ici trs suprieur lalgorithme probabiliste

Rappelons que pour c < 3/4 les points fixes de f sont tous deux repousseurs. Ils ont laiss la place un
cycle attracteur.

24

Exercice 11
Jusquici, lalgorithme dchappe dans le temps a permis de visualiser toute la fractale et son
environnement sur lcran. Mais on peut prendre une toute petite partie de limage et la zoomer plein
cran. Pour cela dfinissons un petit
petit carr pris dans limage, en se donnant son centre (xcentre,
(
ycentre) et la longueur d du ct. On a intrt choisir ce carr de faon quil traverse la courbe
fractale, l o les petits dtails sont les plus importants, comme par exemple sur le dessin
dess suivant.

Cela tant fait, on veut que cette petite zone carre soit agrandie pour devenir un carr de ct L
(par exemple L = 400) sur lcran avec comme centre celui de lcran (xorig,
(
yorig soit (400, 300).
yorig),
Le zoom effectuer est donc gal L/d.
a) Prendre un point du petit carr dans la zone de calcul. Dans un repre centr en (xcentre,
(
ycentre)) appelons ses coordonnes (X,
( Y), avec X et Y variant de d/2 +d/2. Chercher la formule de
passage entre ce point (X, Y) et ce mme point (xe,
( ye) aprs le zoom sur lcran.

Dans la zone calcul, le point (X,


( Y) a pour coordonnes (x, y)) dans le repre initial, avec les
relations :
x = xcentre + X, y = ycentre + Y, ou encore X = x xcentre, Y = y ycentre.
ycentre Puis on pratique le
zoom L/d et lon fait une translation pour centrer le carr cran en (xorig,
(
yorig),
), ce qui donne le point
(xe, ye), avec :
xe = (L/d) (x xcentre) + xorig
ye = yorig (L/d)(y ycentre).
).
2) Faire le programme, en prenant c = 1, avec dans ce cas non seulement le bassin dchappe
linfini, mais aussi le bassin dattraction vers le cycle fixe des deux points 0 et 1. Faire varier le ct
du petit carr de d = 0,2 d = 0,000005 et observer le grossissement progressif de cette zone dans le
carr cran de ct L.
Pour chaque valeur de d,, il suffit de parcourir pixel par pixel le carr cran de ct L. Pour chaque
point (xe, ye), on commence par convertir ses coordonnes dans la zone de calcul, en inversant les
formules prcdentes,
cdentes, ce qui donne :
xorig
x = (xe + (L/d) xcentre xorig)/(L/d)
y = (yorig + (L/d) ycentre ye)/(L/d)
ye

25

Puis on prend la trajectoire de ce point (x, y) qui va soit vers linfini soit vers le cycle 0, 1. Il
suffit enfin de colorier le point cran correspondant (xe, ye) soit avec la couleur dominante bleue,
soit avec celle dominante rouge.
xcentre=0.4; ycentre=0.289;
L=400.;
for(d=0.2;d>=0.000005;d-=0.001)
{ ZOOM=(float)L/d;
for(xe=xorig-L/2;xe<xorig+L/2;xe++) for(ye=yorig-L/2;ye<yorig+L/2;ye++)
{ x=(xe+ZOOM*xcentre-xorig)/ZOOM; y=(yorig+ZOOM*ycentre-ye)/ZOOM;
for(i=0;i<2000;i++)
{ newx=x*x-y*y+xc; newy=2*x*y+yc;
x=newx;y=newy;
if (x*x+y*y>2000*2000) {putpixel(xe,ye,col2[i]);break;}
else if (x*x+ y*y<0.0000000000001 ){putpixel(xe,ye,col1[i]); break;}
}
}
SDL_Flip(screen);
}

Zoom sur une petite partie de limage