© Copyright Franck CHEVRIER 2019-2022 https://www.python-lycee.com.
Les activités partagées sur Capytale sont sous licence Creative Commons.
Pour exécuter une saisie Python, sélectionner la cellule et valider avec SHIFT+Entrée.
On considère la suite de nombres complexes $(z_n)_{n \geq 0}$ définie par :
1. a. Déterminer les formes algébriques de $z_1$ ; $z_2$ et $z_3$.
$\;\;\;$b. Le nombre complexe $i$ se code 1j en Python. Exécuter les deux cellules suivantes, qui permettent de définir $z_0$ et de calculer $z_1$.
z0 = 16
z0
z1 = z0 * (1+1j) /2
z1
$\;\;\;$c. Effectuer des saisies pour calculer $z_2$ et $z_3$, et vérifier la cohérence avec les résultats de la question 1.a.
# Utiliser ces zones de saisie pour les calculs des termes
2. a. On souhaite maintenant automatiser le calcul des termes de la suite $(z_n)_{n \geq 0}$.
$\quad\;\;\;$Définir une fonction Python z qui reçoit en argument n et renvoie le nombre complexe $z_n$.
# Écrire ici la fonction Python z
$\quad\;\;\;$b. Effectuer des appels à la fonction z pour retrouver les valeurs de $z_1$ ; $z_2$ et $z_3$.
# Utiliser ces zones de saisie pour les calculs des termes
3. La fonction Python graphique donnée ci-dessous permet d'obtenir une représentation graphique du plan complexe où apparaissent :
Exécuter les deux cellules pour obtenir cette représentation graphique pour $N=10$.
import matplotlib.pyplot as plt
def graphique(z,N):
"""
Fonction qui affiche les points d'affixes z(n) pour n de 0 jusqu'à N
et des segments qui les joignent
où z est une fonction Python correspondant à une suite de complexes
"""
# initialisation du graphique
plt.figure()
# création de la liste des abscisses et de la liste des ordonnées
Lx = [z(n).real for n in range(N+1)]
Ly = [z(n).imag for n in range(N+1)]
# création des noms des points
Lname = ['$M_{'+str(n)+'}$' for n in range(N+1) ]
#paramétrage de la fenêtre d'affichage
xmin = int(min(Lx+[-1])) ; xmax = int(max(Lx+[1]))+1
ymin = int(min(Ly+[-1])) ; ymax = int(max(Ly+[1]))+1
# réglage du repère orthonormé avec graduations
plt.figure(num=0, figsize=(12,8), dpi=80) ;
plt.axis([xmin-0.5,xmax+0.5,ymin-0.5,ymax+0.5])
plt.xticks( [ k for k in range(xmin-1,xmax+1) ] )
plt.yticks( [ k for k in range(ymin-1,ymax+1) ] )
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom') ; ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left') ; ax.spines['left'].set_position(('data',0))
ax.set_aspect('equal')
# représentation des points avec leurs noms et des segments qui les joignent
plt.plot(Lx,Ly,color='orchid')
plt.scatter(Lx,Ly,color='darkviolet')
for n in range(N+1):
plt.text(Lx[n]+0.3,Ly[n]+0.3,Lname[n],horizontalalignment='center',verticalalignment='center', fontsize=10, color='darkviolet')
# affichage
plt.show()
graphique(z,10)
On souhaite maintenant étudier, pour $N \geq 1$ la longueur de la ligne polygonale $\color{darkviolet}{M_0M_1...M_N}$, notée $L_N$.
Ainsi, on a : $$L_N = \sum\limits_{n=0}^{N-1}{M_nM_{n+1}}=M_0M_1+M_1M_2+...+M_{N-1}M_N$$
4. Étude algorithmique.
$\;\;\;$a. La fonction Python abs permet de calculer le module d'un nombre complexe.
$\quad\;\;$Exécuter les deux cellules suivantes. Que permettent-elles de calculer ?
a = z(1)-z(0)
a
abs(a)
$\;\;\;$b. Définir une fonction Python L qui reçoit en argument N et renvoie la longueur $L_N$.
# Écrire ici la fonction Python L
$\;\;\;$c. À l'aide de la fonction Python L, effectuer des saisies pour calculer $L_{10}$, $L_{100}$ puis $L_{1000}$.
$\quad\;\;$Que peut-on conjecturer concernant $L_N$ lorsque $N$ tend vers $+\infty$ ?
# Utiliser ces zones de saisie pour les calculs des termes
5. Étude mathématique.
$\;\;\;$Pour tout $n \geq 0$, on pose $r_n = \lvert z_n \rvert$.
$\;\;\;$a. Démontrer que pour tout $n \geq 0$ ; $\displaystyle r_{n+1}=\frac{\sqrt{2}}{2}r_n$. En déduire la nature de la suite $(r_n)_{n \geq 0}$.
$\;\;\;$b. Démontrer que pour tout $n \geq 0$ ; $M_nM_{n+1}=r_{n+1}$.
$\;\;\;$c. En déduire une expression de $L_N = \displaystyle\sum\limits_{n=0}^{N-1}{M_nM_{n+1}}$ en fonction de $N$.
$\;\;\;$d. Déterminer $\lim\limits_{N \to +\infty}{L_N}$ pour retrouver le résultat conjecturé à la question 4.c.
$\quad\;\;$À l'aide d'une saisie Python, obtenir une valeur approchée de cette limite.
$\quad\;\;$Aide : La fonction Python sqrt, importée du module math, permet de calculer la racine carrée d'un nombre.
$\quad\;\;$Comparer avec la valeur de $L_{1000}$.
from math import sqrt # import de la fonction sqrt
# Effectuer ici une saisie pour une valeur approchée de la limite
© Copyright Franck CHEVRIER 2019-2022 https://www.python-lycee.com.
Les activités partagées sur Capytale sont sous licence Creative Commons.
Dernière modification de l'activité : Juillet 2022