TD n°1 - Algorithmes Complexes (et suites)
Exercice 1. Algorithmes sous python
1. Fonction produit.
Compléter l’algorithme suivant pour que la fonction renvoie un couple¡
ℜ(zz′) ; Im (zz)¢
pourz1=a+ibetz2= c+idavecz1etz2qui seront donnés sous forme de couples (a,b) et (c,d).
# CODE PYTHON
def produit(z1,z2):
'''In : z1,z2 avec z1=(a,b) pour z1=a+ib et z2=(c,d) pour z2=c+id
Out : couple ( Re(zz') , Im(zz') )''' return ...
2. Fonction somme. Idem pour la fonction somme :
# CODE PYTHON def somme(z1,z2):
'''In : z1,z2 avec z1=(a,b) pour z1=a+ib et z2=(c,d) pour z2=c+id
Out : couple ( Re(z+z') , Im(z+z') )''' return ...
3. Fonction inverse. Idem pour la fonction inverse :
# CODE PYTHON def inverse(z):
'''In : z avec z=(a,b) pour z=a+ib et z non nul Out : couple ( Re(1/z) , Im(1/z) )'''
assert ...
return ...
4. Fonction quotient. Idem pour la fonction quotient :
# CODE PYTHON
def quotient(z1,z2):
'''In : z1,z2 avec z1=(a,b) pour z1=a+ib
et z2=(c,d) pour z2=c+id avec z2 non nul Out : couple ( Re(z/z') , Im(z/z') )'''
assert ...
return ...
TD n°1 - Algorithmes - Complexes (et suites)
Exercice 2. Une suite de complexes
Soit la suite de nombres complexes (zn) définie pour tout entier naturelnpar :
z0 = 1+i zn+1 = zn+ |zn|
3 On pose pour tout entiern,zn=an+ibn.
Le plan est muni d’un repère orthonormé direct³ O,−→
u,→− v´
. 1. Calculera0,b0,a1,b1,a2,b2.
2. On souhaite déterminer les valeurs deanetbnavec un algorithme. Compléter cet algorithme :
# CODE PYTHON def f(n):
'''IN : n entier, rang des termes à calculer OUT : (an , bn) où zn=an+i bn '''
a=1 b=1
for k in range(n):
a=...
b=...
return (a,b)
3. Qu’affiche l’algorithme pourn=4?
Exercice 3. D’après Bac : on reprend le début d’un exercice du TD sur les suites imbriquées
On définit les pointsAnpar leurs coordonnées¡ xn;yn
¢avec pournentier :
x0= −3 y0=4
xn+1=0,8xn−0,6yn
yn+1=0,6xn+0,8yn
.
1. Calculerx1,y1,x2,y2.
2. Écrire un algorithme permettant de calculer les coordonnées deAnpournentier fixé.
# CODE PYTHON def g(n):
'''IN : n entier, rang des termes à calculer OUT : (xn , yn) '''
x=-3 y=4
for k in range(n):
...
return (x,y)
Attention ici, lors du calcul deyn+1, il faut utiliser la valeur dexn, et pas celle dexn+1
Aide
www.math93.com / M. Duffaud 2/4
TD n°1 - Algorithmes - Complexes (et suites)
3. On cherche à représenter les points dans un repère. Pour cela on va utiliser le module mathplotlib et il nous faut les abscisses et les ordonnées dans deux listes distinctes.
3. a. Modifier le programme précédent afin que la fonction renvoie deux listes, l’une avec les abscisses et l’autre avec les ordonnées pour 0≤k≤n.
# CODE PYTHON def liste_g(n):
'''IN : n entier,
OUT : [x0,...,xn],[y0,...,yn] ''' x=-3
y=4
Liste_x=[x]
Liste_y=[y]
for k in range(n):
....
....
return Liste_x , Liste_y
Vérifier par exemple que :
>>> liste_g(5)
([-3, -4.800000000000001, -4.680000000000001, -2.6880000000000006,
0.3791999999999991, 3.2947199999999994], [4, 1.4000000000000004, -1.76, -4.216, -4.985600000000001, -3.7609600000000016])
3. b. On peut maintenant afficher les points. Voici la syntaxe.
# CODE PYTHON n=20
vx=liste_g(n)[0] # pour obtenir la première liste, celles des abscisses vy=liste_g(n)[1] # pour obtenir la 2e liste, celles des ordonnées
plt.plot(vx,vy,'.',color='red')
# le 3e argument '.' permet de préciser qu'on veut un nuage de points
#plt.plot(vx,vy,'-',color='red') # ou '-' pour les relier
fig.savefig('graph.png') # nécessaire sur repl.it, sinon simplement plt.show() plt.show()
Quel semble être l’ensemble auquel appartiennent les pointsAn? 4. On nomme, pour tout entier natureln,zn=xn+iynl’affixe du pointAn.
4. a. Démontrer que, pour tout entier natureln, on a|zn| =5.
4. b. Que peut-on en déduire ?
www.math93.com / M. Duffaud 3/4
TD n°1 - Algorithmes - Complexes (et suites)
Exercice 4. Python et les complexes (Hors programme)
Dans Python, il suffit d’écrirecomplex(x,y)pour avoir un nombre complexe.
Cependant, Python va utiliser la lettrejau lieu duihabituel. Les parties réelles et imaginaires s’obtiennent ainsiz.realet z.imaget le conjuguéz.conjugate(). On peut alors effectuer des calculs divers.
>>> z=complex(4,3)
>>> z (4+3j)
>>> z**2 (7+24j)
>>> z2=1/z
>>> z2.real 0.16
>>> z2
(0.16-0.12j)
Vérifier ainsi les calculs effectués dans les exercices précédents.
[ Fin du devoir \
www.math93.com / M. Duffaud 4/4