{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "![En tête general](img/En_tete_general.png)\n", "\n", "\n", "*(C) Copyright Franck CHEVRIER 2019-2021 http://www.python-lycee.com/*\n", "\n", " Pour exécuter une saisie Python, sélectionner la cellule et valider avec SHIFT+Entrée.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Une Spirale infinie de longueur finie \n", "#### Étude d'une suite de nombres complexes\n", "\n", "__Note :__ Cette activité ne nécessite pas la connaissance de l'écriture exponentielle d'un nombre complexe. Elle est inspirée d'un exercice du Bac S 2014 Centres Étrangers." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__On considère la suite de nombres complexes $(z_n)_{n \\geq 0}$ définie par :__\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__1. a. Déterminer les formes algébriques de $z_1$ ; $z_2$ et $z_3$.__
\n", "\n", "\n", "\n", "$\\;\\;\\;$__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$.__" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "16" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "z0 = 16\n", "z0" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(8+8j)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "z1 = z0 * (1+1j) /2\n", "z1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\;\\;\\;$__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.__" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "8j" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Utiliser ces zones de saisie pour les calculs des termes\n", "z2 = z1 * (1+1j) /2\n", "z2" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(-4+4j)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "z3 = z2 * (1+1j) /2\n", "z3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__2. a. On souhaite maintenant automatiser le calcul des termes de la suite $(z_n)_{n \\geq 0}$.__
\n", "$\\quad\\;\\;\\;$__Définir une fonction Python z qui reçoit en argument n et renvoie le nombre complexe $z_n$.__" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# Écrire ici la fonction Python z\n", "def z(n):\n", " \"\"\"\n", " Fonction qui calcule le terme de rang n de la suite (zn)\n", " \"\"\"\n", " m = 16\n", " q = (1+1j)/2\n", " for k in range(n):\n", " m = m * q\n", " return m" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\quad\\;\\;\\;$__b. Effectuer des appels à la fonction z pour retrouver les valeurs de $z_1$ ; $z_2$ et $z_3$.__" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(8+8j)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Utiliser ces zones de saisie pour les calculs des termes\n", "z(1)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "8j" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "z(2)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(-4+4j)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "z(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__3. La fonction Python graphique donnée ci-dessous permet d'obtenir une représentation graphique du plan complexe où apparaissent :__\n", "\n", "\n", "__Exécuter les deux cellules pour obtenir cette représentation graphique pour $N=10$.__" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "\n", "def graphique(z,N):\n", " \"\"\"\n", " Fonction qui affiche les points d'affixes z(n) pour n de 0 jusqu'à N\n", " et des segments qui les joignent\n", " où z est une fonction Python correspondant à une suite de complexes\n", " \"\"\" \n", " # initialisation du graphique\n", " plt.figure()\n", " \n", " # création de la liste des abscisses et de la liste des ordonnées\n", " Lx = [z(n).real for n in range(N+1)]\n", " Ly = [z(n).imag for n in range(N+1)]\n", " \n", " # création des noms des points\n", " Lname = ['$M_{'+str(n)+'}$' for n in range(N+1) ]\n", " \n", " #paramétrage de la fenêtre d'affichage \n", " xmin = int(min(Lx+[-1])) ; xmax = int(max(Lx+[1]))+1\n", " ymin = int(min(Ly+[-1])) ; ymax = int(max(Ly+[1]))+1\n", " \n", " # réglage du repère orthonormé avec graduations\n", " plt.figure(num=0, figsize=(12,8), dpi=80) ; \n", " plt.axis([xmin-0.5,xmax+0.5,ymin-0.5,ymax+0.5])\n", " plt.xticks( [ k for k in range(xmin-1,xmax+1) ] )\n", " plt.yticks( [ k for k in range(ymin-1,ymax+1) ] ) \n", " ax = plt.gca()\n", " ax.spines['right'].set_color('none') \n", " ax.spines['top'].set_color('none')\n", " ax.xaxis.set_ticks_position('bottom') ; ax.spines['bottom'].set_position(('data',0))\n", " ax.yaxis.set_ticks_position('left') ; ax.spines['left'].set_position(('data',0))\n", " ax.set_aspect('equal') \n", " # représentation des points avec leurs noms et des segments qui les joignent\n", " plt.plot(Lx,Ly,color='orchid')\n", " plt.scatter(Lx,Ly,color='darkviolet') \n", " for n in range(N+1):\n", " plt.text(Lx[n]+0.3,Ly[n]+0.3,Lname[n],horizontalalignment='center',verticalalignment='center', fontsize=10, color='darkviolet')\n", "\n", " # affichage\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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Qp+ueMKvww9X65Kyy7XsP3vel04NHm58T1ADNVADNVCDO2uQYq+vdOvnd9yeB2AgrXtbVLumRpbXsjUEIHY4OZextbJFh1dXK+/6scpanO1IDQAAIKG5bx+AwYyaMVrjb5ko02V0+KfVTAcCAAAAPuLKACARAgAAAIC+RCQAfPe731VeXp5KS0tVWlqqm266KRKLHZZjx45p7Nixuu6662wPAatXr9acOXNUWlqq2bNna9WqVVFdX19WrVql2bNna86cOSopKek9go6dXn75ZZWVlSklJUV33323revet2+fPv3pT+vo0aO66KKL9P7779u6/rvuukt/feNfS5JjU5Da29t13XXXafr06Zo7d66WLVvmyNmTr7zySpWUlKi0tFSLFy/Wtm3bbK/htMcff1yWZen555+3fd1FRUWaMWNG7/i4du1a22vo6OjQnXfeqWnTpmnOnDm9Z9e2S0NDQ+/zLy0t1fTp0+X1enXixAlb63jllVc0f/783jH6iSeesHX9kvTqq69qwYIFKikp0cKFC7Vjx46or/Ouu+5SUVGRLMvS9u3be68/PV5Onz496uNlfzX0d71dNTgxXvb3nO0cMwd73e0YM/urwc4xs78a7Bwz+6rBljHTGDPSi/nnf/5n8/d///cmFlx33XXm5ptvNitWrOi9ruXDoNn3zT2m8tsfmrZDrVFb98mTJ3t/bmpqMhMnTjQVFRVRW19fNmzY0FtHdXW1ycnJMZWVlbbWsHfvXrN9+3bzj//4j7a/Lz772c+axx9/3EyYMME8/fTTZsGCBbau/4033jBVbx80f777A7PrNztsXfdpbW1t5uWXXzbhcNgYY8xPfvITc/nll9teR2NjY+/P69atMyUlJbbXYIwxBw8eNIsWLTILFy40zz33nO3rLywsNNu2bbN9vWe6++67zZ133tn7nqirq3O0nh/96Efm85//vK3rDIfD5oILLjA7dvT8XR48eNCkpKSY5uZm22o4ceKEyc7ONrt37zbGGPPmm2+aWbNmRX29b7zxhqmpqfnEe/H0eGmMifp42V8N/V1vVw1OjJf9PWc7x8yBXne7xsz+arBzzOyvBjvHzKH8DQxzzBywf3fVFKA1a9Zo8uTJWrx48VnX27UlIDMzs/fnlpYWdXZ2RmU9A1m6dGlvHRMnTtS4ceNUU1Njaw2nv0nxekd8kKnzcuzYMb333nu9Sf2GG25QTU2Nrd9+X3bZZcrLy7NtfX1JTU3VNddc03vkgoULF6qqqsr2OrKysnp/bmpqcuRICuFwWLfeeqt+8pOffOLs0YmipaVFa9as0Q9+8IPe38G4ceMcrWnNmjW65ZZbbF+vZVk6efKkJKm5uVk5OTm2vi/279+vnJwczZo1S5K0ePFiVVdXq6KiIqrrveyyy+T3+8+6zu7xsq8aBrrerhqcGC/7e852jpn91WDnmGnn7/58arB7zBzK6xCNMTNiAeDpp5/W3LlztWTJEm3atClSix2ygwcP6qc//al+8IMf9Hm7XSHgmWee0axZs1RUVKT77rtP8+bNi8p6hmLDhg1qbGzURRdd5FgNdqqpqVFBQUFv8LAsS5MmTVJ1dbXDlTnrxz/+sVasWOHIuleuXKmJEyfqn/7pn/Rf//Vftq+/vLxcl1xyicrKymxf95lWrlypOXPm6JZbblF9fb2t696/f7+ys7P14IMPasGCBVq8eLE2btxoaw1nevvtt9XY2KjPf/7ztq7XsiytXbtW119/vQoLC3XppZfqiSeekM/ns62GadOmqaGhQW+//bYk6cUXX9SpU6ccCeiMl31zcryUGDNPY8z8WLTGzCEFAMuy3rEs63hfl5qaGt1+++2qqqrSjh079P3vf1833nijDh06FNFCFy1apNzc3D4vNTU1uvnmm/Wf//mfSkvr/5CfIw0Bg9UgSV/84hf1/vvva+/evfrVr36lvXv3juh5D6cGSdq1a5f+9m//VmvXrtXo0ZE9ffVQa4DzHnzwQVVWVuqHP/yhI+t/8sknVVNTowceeEDf+ta3bF337t279eyzz+r++++3db3nevPNN7Vz505VVFQoNzdXX/3qV21df1dXlw4dOqRPfepTeu+997Rq1SrdeOONOnr0qK11nLZmzRqtXLnS9i2EXV1deuCBB7Ru3TodOnRIGzdu1N/8zd/o+PHjttWQmZmpZ555Rt/+9rdVVlam1157TZ/61Kdsfy3QN6fHS4kxU2LMPFfUxszB5ggN4fIJV155pXnmmWfOd67SsJ08edJkZ2ebwsJCU1hYaHJyckxaWppZsmRJn/e3a5+Ar3/96+ahhx6K2vL78/7775tJkyaZ1157zfZ1n8nufUOOHj1qxowZYzo7O82ECRNMOBw2Y8eONfv27bOtBmOMadkXdHQfgNN+9KMfmbKysrPmlTopNTXVHD9+3Lb1Pfzww2bcuHG940JKSorJy8szDz/8sG01nKu2ttakp6fbus76+nrj8XhMV1dX73ULFiwwr7/+uq11GGPMqVOnTHp6utmzZ4/t63733XfNtGnTzrpuwYIFjo6T7e3tJisry7Yx6sw5xmeOl8YY28bL/uY52znvu691OTFeDvac7Rgzz6zBqTFzoNfBrjHzzBqcGjP7eh1GOGZGfx+AM492sm/fPm3fvl1z5syJxKKHJDMzUw0NDaqqqlJVVZUeeughXXnllf1usonWdKAPPvig9+f6+nr9/ve/V0lJSUSWPVR79uzRNddco8cee0zLli2zdd1Oy8/P1/z583uPfPTss8/K7/eruLjY4crsV15erqeeekqvv/76WfNK7XLy5EnV1tb2/v/5559XTk6OsrPtOzHaHXfcobq6ut5xYeHChXrsscd0xx132FZDS0tL75xzSXrqqadsnxaYm5urpUuXav369ZJ6pksePHhQF154oa11SNLatWs1d+5czZw50/Z1T5w4UXV1ddqzZ48kqbKyUvv379eMGTNsraOurq735+9///tasmSJI2MU4+XHnB4vJcbM0xgzzxbVMXOwhDCEi1m5cqWZNWuWmTt3rpk/f755+umnh5NUIubxxx8/6yhA/Yn0loDbbrvNXHjhhWbu3LmmpKTErF69esTLPF9XXHGFycrKMnPnzu29vPrqq7bWsGHDBjNhwgQzZswYk56ebiZMmGBeeOEFW9b94YcfmoULFxqv12vKysrMzp07bVnvabfddpu5Zu5fmj/f/YG5/dKvm6lTp9q6fmOMqampMZLMlClTet8DF198sa01VFVVmYsuusjMnj3blJSUmKVLlzp+JJzLL7/c9qMA7d+/35SWlpo5c+aY2bNnm+XLl5uDBw/aWsPpOj7zmc/0/j7s3EJ7pkWLFplf/OIXjqzbGGN+85vf9L4Gs2fPNr/+9a9tr+HWW281M2bMMFOnTjVf+cpXbPnG+bbbbjMTJkwwSUlJJj8/v3dcOj1eTps2LerjZX819He9XTU4MV72VYfdY+ZQXvdoj5l91WD3mNnf62DnmDnQ72KEY+aA/btljBlxhhh5DHFO694W1a6pkeW1NOH2SUqd1P8+BIgffr/fsePwt1a26PDqauVdP1ZZi+379gYAAOAjAx5GylWHAR0O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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "graphique(z,10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "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$.
\n", "Ainsi, on a :\n", "$$L_N = \\sum\\limits_{n=0}^{N-1}{M_nM_{n+1}}=M_0M_1+M_1M_2+...+M_{N-1}M_N$$\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__4. Étude algorithmique.__

\n", "$\\;\\;\\;$__a. La fonction Python abs permet de calculer le module d'un nombre complexe.__
\n", "$\\quad\\;\\;$__Exécuter les deux cellules suivantes. Que permettent-elles de calculer ?__\n", "

La première cellule permet de calculer l'affixe du vecteur $\\overrightarrow{M_0M_1}$, et la deuxième cellule permet de calculer la longueur $M_0M_1$." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a = z(1)-z(0)\n", "a" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "abs(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\;\\;\\;$__b. Définir une fonction Python L qui reçoit en argument N et renvoie la longueur $L_N$.__" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Écrire ici la fonction Python L\n", "def L(N):\n", " \"\"\"\n", " Fonction qui calcule la longueur de la ligne polygonale jusqu'au point de rang N\n", " \"\"\"\n", " S = 0\n", " for n in range(N):\n", " S = S + abs(z(n+1)-z(n))\n", " return S\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\;\\;\\;$__c. À l'aide de la fonction Python L, effectuer des saisies pour calculer $L_{10}$, $L_{100}$ puis $L_{1000}$.__
\n", "$\\quad\\;\\;$__Que peut-on conjecturer concernant $L_N$ lorsque $N$ tend vers $+\\infty$ ?__\n", "

Il semble que la suite $(L_N)$ admette une limite finie." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Utiliser ces zones de saisie pour les calculs des termes\n", "L(10)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "L(100)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "L(1000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__5. Étude mathématique.__

\n", "$\\;\\;\\;$__Pour tout $n \\geq 0$, on pose $r_n = \\lvert z_n \\rvert$.__

\n", "$\\;\\;\\;$__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}$.__

\n", "$\\;\\;\\;$__b. Démontrer que pour tout $n \\geq 0$ ; $M_nM_{n+1}=r_{n+1}$.__

\n", "$\\;\\;\\;$__c. En déduire une expression de $L_N = \\displaystyle\\sum\\limits_{n=0}^{N-1}{M_nM_{n+1}}$ en fonction de $N$.__

\n", "$\\;\\;\\;$__d. Déterminer $\\lim\\limits_{N \\to +\\infty}{L_N}$ pour retrouver le résultat conjecturé à la question 4.c.__

\n", "$\\quad\\;\\;$__À l'aide d'une saisie Python, obtenir une valeur approchée de cette limite.__
\n", "$\\quad\\;\\;$Aide : La fonction Python sqrt, importée du module math, permet de calculer la racine carrée d'un nombre.
\n", "$\\quad\\;\\;$__Comparer avec la valeur de $L_{1000}$.__\n", "\n", "\n", " \n", "a. $r_{n+1}=\\lvert z_{n+1} \\rvert = \\displaystyle\\left\\lvert \\frac{1+i}{2} z_n \\right\\rvert = \\displaystyle\\left\\lvert \\frac{1+i}{2} \\right\\rvert \\times \\lvert z_n \\rvert = \\frac{\\lvert 1+i \\rvert}{2} r_n = \\frac{\\sqrt{2}}{2} r_n$.
$\\;\\;\\;(r_n)$ est donc la suite géométrique de premier terme $r_0=\\lvert z_0 \\rvert=16$ et de raison $\\displaystyle\\frac{\\sqrt{2}}{2}$.

\n", "b. $M_nM_{n+1}=\\lvert z_{n+1}-z_n \\rvert = \\displaystyle\\left\\lvert \\frac{1+i}{2}z_n-z_n \\right\\rvert = \\displaystyle\\left\\lvert \\left( \\frac{1+i}{2}-1 \\right) z_n \\right\\rvert = \\displaystyle\\left\\lvert \\frac{-1+i}{2} z_n \\right\\rvert = \\displaystyle\\left\\lvert \\frac{-1+i}{2} \\right\\rvert \\times \\lvert z_n \\rvert = \\frac{\\sqrt{2}}{2}r_n = r_{n+1} $\n", "

\n", "c. $L_N =\\displaystyle \\sum\\limits_{n=0}^{N-1}{M_nM_{n+1}} = \\sum\\limits_{n=0}^{N-1}{r_{n+1}} = \\sum\\limits_{n=0}^{N-1}{r_0 \\times \\left( \\frac{\\sqrt{2}}{2} \\right)^{n+1} } = r_0 \\frac{\\sqrt{2}}{2} \\sum\\limits_{n=0}^{N-1}{ \\left( \\frac{\\sqrt{2}}{2} \\right)^n } = 8 \\sqrt{2} \\times \\frac{1-\\left( \\frac{\\sqrt{2}}{2} \\right) ^N}{1-\\frac{\\sqrt{2}}{2}} = \\frac{16\\sqrt{2}}{2-\\sqrt{2}} \\times \\left( 1-\\left( \\frac{\\sqrt{2}}{2} \\right) ^N \\right)$\n", "

\n", "d. $\\displaystyle\\lim\\limits_{N \\to +\\infty}{\\left( \\frac{\\sqrt{2}}{2} \\right) ^N}=0$
\n", "$\\;\\;\\;$donc $\\displaystyle\\lim\\limits_{N \\to +\\infty}{L_N} = \\frac{16\\sqrt{2}}{2-\\sqrt{2}} = \\frac{16\\sqrt{2}\\left(2+\\sqrt{2}\\right)}{\\left(2-\\sqrt{2}\\right)\\left(2+\\sqrt{2}\\right)} = \\frac{16\\left(2\\sqrt{2}+2\\right)}{2} = 16 \\left(1+\\sqrt{2}\\right)$\n", "\n", "\n", "\n", "\n", "\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from math import sqrt # import de la fonction sqrt\n", "\n", "# Effectuer ici une saisie pour une valeur approchée de la limite\n", "16*(1+sqrt(2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![Jean_Robert_Argand](img/Jean_Robert_Argand.jpg)\n", "\n", "
Jean Robert Argand (1768-1822) a présenté en 1806 une méthode de représentation géométrique des nombres complexes dans le plan.
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*(C) Copyright Franck CHEVRIER 2019-2021 http://www.python-lycee.com/*\n" ] } ], "metadata": { "celltoolbar": "Raw Cell Format", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.10" } }, "nbformat": 4, "nbformat_minor": 2 }