{ "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." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Le flocon de Von Koch " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Sommaire\n", "\n", "1. Construction géométrique et notations
\n", "2. Étude du périmètre du flocon de Von Koch
\n", "3. Étude de l'aire du flocon de Von Koch
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Construction géométrique et notations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", " Description de la construction :

\n", " La figure initiale est un triangle équilatéral $P_0$ de côté $1$.

\n", " À chaque étape, le polygone $P_n$ étant construit avec des côtés de longueur $a_n$, on obtient le polygone $P_{n+1}$ en remplaçant chaque côté par une ligne polygonale à quatre segments de longueur $a_{n+1}=\\displaystyle \\frac{a_n}{3}$ , vers l’extérieur.

\n", "
\n", " Activer la figure dynamique ci-dessous, qui permet de visualiser les polygones $P_n$ pour les premières valeurs de $n$.
\n", " (Pour faire apparaître et activer la figure dynamique, sélectionner la cellule et valider avec SHIFT+Entrée)." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#Sélectionner cette zone puis SHIFT+ENTREE\n", "from IPython.display import display, HTML ; display(HTML('fig_dyn_GeoGebra/Flocon_Von_Koch.html'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", " \n", "
\n", " Notations :

\n", "Pour tout $n \\in \\mathbb{N}$, on note :\n", " \n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Étude du périmètre du flocon de Von Koch" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2.1. $\\;$a. Donner les valeurs de $c_0$ ; $c_1$ et $c_2$.
\n", "$\\quad\\;\\;$ b. Quelle est la nature de la suite $(c_n)_{n\\geq0}$ ? Exprimer $c_n$ en fonction de $n$.
\n", "$\\quad\\;\\;$ c. Combien le polygone $P_5$ a-t-il de côtés ?
\n", "$\\quad\\;\\;$ d. Déterminer $\\displaystyle\\lim\\limits_{n \\to +\\infty}{c_n}$.
\n", "$\\quad\\;\\;$ e. Écrire une fonction Python c d'argument n permettant le calcul de $c(n)$.
\n", "$\\quad\\quad\\;$ Effectuer ensuite les saisies nécessaires pour vérifier le résultat de la question 2.1.c.\n", "
" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Écrire ici la fonction c permettant le calcul de c(n)\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Effectuer ici la saisie pour vérifier le résultat de la question 2.1.c.\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2.2. $\\;$a. Donner les valeurs exactes de $a_0$ ; $a_1$ et $a_2$.
\n", "$\\quad\\;\\;$ b. Quelle est la nature de la suite $(a_n)_{n\\geq0}$ ? Exprimer $a_n$ en fonction de $n$.
\n", "$\\quad\\;\\;$ c. Quelle est la longueur des côtés du polygone $P_5$ ?
\n", "$\\quad\\;\\;$ d. Déterminer $\\displaystyle\\lim\\limits_{n \\to +\\infty}{a_n}$.
\n", "$\\quad\\;\\;$ e. La fonction Python a d'argument n donnée ci-dessous permet le calcul de la valeur exacte de $a(n)$.
\n", "$\\quad\\quad\\;$ Effectuer la saisie nécessaire pour vérifier le résultats de la questions 2.2.c.\n", "
" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from sympy import Rational \n", "# Cet import permet d'utiliser la fonction Rational pour effectuer des calculs de fractions sous forme exacte\n", "\n", "def a(n):\n", " \"Fonction qui calcule la longueur des côtés du polygone P_n\"\n", " return Rational(1,3**n)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [ "# Effectuer ici la saisie pour vérifier le résultat de la question 2.2.c.\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2.3. $\\;$a. Exprimer $p_n$ en fonction de $c_n$ et $a_n$.
\n", "$\\quad\\;\\;$ b. Déterminer la valeur exacte du périmètre de $P_5$.
\n", "$\\quad\\;\\;$ c. Écrire une fonction Python p d'argument n permettant le calcul de la valeur exacte de $p_n$
\n", "$\\quad\\quad\\;$ (on effectuera des appels aux fonctions précédentes avec les syntaxes c(n) et a(n)). \n", "$\\quad\\quad\\;$ Effectuer la saisie nécessaire pour vérifier le résultat de la question 2.3.b.\n", "
" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Écrire ici la fonction p permettant le calcul de p(n) sous forme exacte\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Effectuer ici la saisie pour vérifier le résultat de la question 2.3.b.\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "$\\quad$ d. Exprimer $p_n$ en fonction de $n$. Justifier que la suite $(p_n)_{n\\geq0}$ est géométrique.
\n", "$\\quad$ e. Déterminer $\\displaystyle\\lim\\limits_{n \\to +\\infty}{p_n}$. Donner une interprétation géométrique de ce résultat.\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Étude de l'aire du flocon de Von Koch" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3.1. $\\;$Démontrer qu'un triangle équilatéral de côté $a>0$ a pour aire $\\displaystyle \\frac{\\sqrt{3}}{4}a^2$.
\n", "3.2. $\\;$Donner la valeur de $A_0$.
\n", "3.3. $\\;$a. Combien de triangles sont ajoutés lorsqu'on passe de la figure $P_0$ à $P_1$ ? Que vaut l'aire ajoutée ? En déduire la valeur de $A_1$.
\n", "$\\quad\\;\\;$ b. On fournit ci-dessous la fonction Python AireEqui d'argument a qui permet le calcul de la valeur exacte d'un triangle de côté $a$.
\n", "$\\quad\\quad\\;$ Effectuer la saisie nécessaire pour effectuer le calcul de $A_1$ de la question 3.3.a.
\n", "$\\quad\\quad\\;$ (on utilisera respectivement les syntaxes a(0) et a(1) pour les longueurs des côtés de $P_0$ et $P_1$)\n", "
" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from sympy import sqrt\n", "# Cet import permet d'utiliser la fonction sqrt pour effectuer des calculs avec racines carrées sous forme exacte\n", "\n", "def AireEqui(a):\n", " \"Fonction qui calcule l'aire d'un triangle équilatéral de côté a (sous forme exacte)\"\n", " return sqrt(3)*Rational(a**2,4)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Effectuer ici la saisie pour retrouver le résultat de la question 3.3.a.\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", " \n", "
\n", "3.4. On effectue maintenant un raisonnement similaire à celui de la question 3.2. dans le cas général.
\n", "$\\quad\\;\\;$ a. On considère un entier $n>0$.
\n", "$\\quad\\quad\\;\\;$ En raisonnant sur les aires ajoutées lorsqu'on passe de la figure $P_{n-1}$ à $P_n$, justifier que :
\n", "$\\quad\\quad\\;\\;$ $\\displaystyle A_n = A_{n-1}+c_{n-1}\\times \\frac{\\sqrt{3}}{4}{a_n}^2$
\n", "$\\quad\\;\\;$ b. On fournit ci-dessous la fonction Python A d'argument n permettant le calcul de $A_n$.
\n", "$\\quad\\quad\\;\\;$ Exécuter les saisies proposées pour obtenir la valeur exacte de $A_1$ et sa valeur décimale approchée.
\n", "$\\quad\\quad\\;\\;$ Vérifier la cohérence avec les résultats des questions 3.3.a. et 3.3.b.\n", "
" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def A(n):\n", " \"fonction qui calcule l'aire du polygone P_n (sous forme exacte)\"\n", " if n==0: return AireEqui(1)\n", " return A(n-1)+c(n-1)*sqrt(3)*Rational(a(n)**2,4)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "A(1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "A(1).evalf()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "$\\quad\\;\\;$ d. Effectuer des saisies pour évaluer $A_5$, $A_{10}$ et $A_{100}$.
\n", "$\\quad\\quad\\;\\;$ Que peut-on conjecturer pour la suite $(A_n)_{n\\geq0}$ ?
\n", "$\\quad\\quad\\;\\;$ Interpréter géométriquement ce résultat.
\n", "
" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Utiliser ces zones pour les saisies demandées\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![Von_Koch](img/Von_Koch.png)\n", "\n", "
Niels Fabian Helge von Koch (1870-1924)
" ] }, { "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.8.5" } }, "nbformat": 4, "nbformat_minor": 2 }