{
"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": [
"# La suite de Fibonacci \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Sommaire\n",
"\n",
"1. Définition par récurrence de la suite de Fibonacci.
\n",
"2. Formule de Binet : calculs directs des termes de la suite.
\n",
"3. Complément sur la suite de Fibonacci : Quotients de termes successifs. (Tale Spé Math)
\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1. Définition par récurrence de la suite de Fibonacci."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n", "On considère l'évolution d'une population (fictive) de lapins, régie par les règles suivantes :\n", "\n", "Activer la cellule ci-dessous pour obtenir une illustration dynamique des premiers mois d'observation.\n", "
\n", "- Initialement, il y a un couple de jeunes lapins ;
\n", "- Un nouveau couple de lapins doit attendre 1 mois avant d'être adulte et de pouvoir se reproduire ;
\n", "- Chaque mois, chaque couple de lapins adulte donne naissance à un nouveau couple de jeunes lapins ;
\n", "- Les couples de lapins ne meurent jamais.
\n", "
\n", "On note $F_n$ le nombre de couples de lapins à l'étape $n$, où $n \\in \\mathbb{N}$ est le rang du mois de l'observation (en considérant que $n=0$ correspond à l'étape initiale).\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__1.1. Soit $n \\in \\mathbb{N}$. Exprimer $F_{n+2}$ en fonction de $F_{n+1}$ et $F_n$.__\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__1.2. Exécuter les cellules Python suivantes. Pour chacune, expliquer ce que permet d'obtenir la syntaxe proposée.__\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "Fibo = [1,1,2,3,5]\n", "Fibo " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "Fibo[-1]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "Fibo[-2]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a = Fibo[-1]+Fibo[-2]\n", "Fibo.append(a)\n", "\n", "Fibo" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__1.3. Écrire une fonction Python Fibonacci qui reçoit N non nul en argument et qui renvoie la liste des termes $F_n$ pour $0 \\leq n \\leq N$.__\n", "
\n", " Notations :\n", "\n", "\n", "\n", "\n", "
\n", " Remarque :- $\\displaystyle \\phi$ est une lettre grecque qui se lit \"phi\" ;
\n", "- $\\displaystyle \\psi$ est une lettre grecque qui se lit \"psi\".
\n", "
\n", " Le nombre $\\phi$ ainsi défini s'appelle le nombre d'or.\n", "
\n", "On pose $\\displaystyle \\phi=\\frac{1+\\sqrt{5}}{2}$ et $\\displaystyle \\psi=\\frac{1-\\sqrt{5}}{2}$, et on considère :\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__2.0 Valider la cellule suivante.__\n", "
\n", "- la suite $(u_n)_{n \\geq 0}$ géométrique de premier terme $u_0=\\phi$ et de raison $\\displaystyle \\phi$.
\n", "- la suite $(v_n)_{n \\geq 0}$ géométrique de premier terme $v_0=\\psi$ et de raison $\\displaystyle \\psi$.
\n", "
\n", "La formule de Binet affirme que pour tout $n \\in \\mathbb{N}$ ; $\\displaystyle F_{n} = \\frac{u_{n}-v_{n}}{\\sqrt{5}} $. \n", "\n", "\n", "2.3. Question différenciée suivant le niveau :\n", "
\n", "\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Zone pour les saisies Python (version 1ère Spé Math)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__2.4.a. À l'aide des fonctions Python u et v, écrire une fonction Python F d'argument n qui permet le calcul direct de $F_n$.__" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Écrire ici la fonction F\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\quad$__b. Effectuer une saisie Python pour calculer $F_{10}$, puis pour calculer $F_{50}$.__" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Effectuer ici les appels à la fonction F\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Complément sur la suite de Fibonacci : Quotients de termes successifs. (Tale Spé Math)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__3.1. Exécuter les cellules Python suivantes.__\n", " Version 1ère Spé Math\n", "
\n", " À l'aide de saisies Python, calculer $\\displaystyle \\frac{u_{n}-v_{n}}{\\sqrt{5}}$ pour tous les entiers $n$ de 0 jusqu'à 29.\n", "
(on appliquera la fonction simplify)\n", "
Comparer les résultats avec ceux de la question 1.4.\n", "
Pour la suite, on admettra que la formule de Binet est vraie pour tout $n \\in \\mathbb{N}$.\n", "\n", " Version Tale Spé Math\n", " \n", "
\n", " a. Démontrer que $\\phi$ et $\\psi$ sont les racines du polynôme $x²-x-1$.
\n", " $\\quad$ ($\\phi$ et $\\psi$ vérifient donc $1+\\phi=\\phi^2$ et $1+\\psi=\\psi^2$).
\n", " b. À l'aide d'un raisonnement par récurrence, démontrer que la formule de Binet est vraie pour tout $n \\in \\mathbb{N}$.\n", "