{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "![En tête general](img/En_tete_general.png)\n", "\n", "\n", "*(C) Copyright Franck CHEVRIER 2019-2020 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": [ "# Longueur d'une courbe" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__On considère la fonction $h$ définie par $h(x)=x^2$ pour $x∈\\mathbb{R}$.__\n", "\n", "\n", "*Le but de l’exercice est de déterminer des valeurs approchées de la longueur de la portion de la courbe de la fonction $h$ pour $x∈[0;1]$.*\n", "\n", "*Pour cela, on décide dans un premier temps d’approcher la courbe à l’aide de $4$ segments, en utilisant des abscisses régulièrement espacées, comme indiqué sur la figure ci-dessous.*\n", "\n", "*(Pour faire apparaître et activer la figure dynamique, sélectionner la cellule et valider avec SHIFT+Entrée).*\n" ] }, { "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/Longueur_courbe.html'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__1. Ecrire une fonction Python h qui prend une valeur x en argument et renvoie l’image de $x$ par $h$.__" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#Ecrire ici la fonction\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__2. Ecrire une fonction Python long_segment qui prend en argument les coordonnées de deux points $A(x_A;y_A)$, $B(x_B;y_B)$ et qui renvoie la longueur du segment $AB$.__\n", "\n", "Rappel : On peut calculer la racine carrée à l’aide de la fonction Python sqrt, accessible avec l’appel « from math import* ».\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from math import*\n", "# Ecrire la fonction\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__3. Tester la fonction approx_long_courbe ci-dessous, qui permet de représenter les $4$ segments approchant la courbe de $h$.__\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "\n", "def approx_long_courbe():\n", " \n", " for k in range(4):\n", " \n", " # calcul des abscisses de deux points consécutifs\n", " x1=k/4\n", " x2=(k+1)/4\n", " \n", " # affichage du segment reliant ces points\n", " plt.plot([x1,x2],[h(x1),h(x2)],color='blue')\n", " \n", " # ouverture de la fenetre graphique et affichage\n", " plt.show() \n", " \n", " # (fonctionnalités désactivées dans le Notebook Jupyter)\n", " # attente d'une action de clic sur la fenetre puis fermeture\n", " # plt.waitforbuttonpress() \n", " # plt.close() \n", " \n", " return None\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Tester la fonction\n", "approx_long_courbe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Compléter cette fonction pour qu’elle renvoie la longueur totale de la ligne polygonale.__\n", "\n", "Aide : Calculer la longueur de chaque segment dans la boucle.\n", "\n", "__Donner une approximation de la longueur de la courbe de la fonction $h$ sur $[0;1]$.__\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Modifier la fonction et effectuer les saisies nécessaires\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*On souhaite maintenant augmenter le nombre de segments pour obtenir des approximations de plus en plus précises de la longueur de la courbe.*\n", "\n", "\n", "*Vous pouvez modifier la valeur du curseur n sur la figure fournie précédemment.*\n", "\n", "\n", "__4. Modifier la fonction pour qu’elle permette l’affichage et le calcul de la longueur d’une ligne polygonale composée de $n$ segments, où $n$ est un entier non nul donné en argument.__\n", "__Donner des approximations de la longueur de la courbe de la fonction $h$ sur $[0;1]$ obtenues avec $10$ segments, puis $1000$ segments.__\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Modifier la fonction précédente et tester ici\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__5. Pour aller plus loin : Adapter la méthode précédente pour donner une approximation de la longueur de la courbe des cubes sur l’intervalle $[-10;10]$.__\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Effectuer les saisies nécessaires\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*(C) Copyright Franck CHEVRIER 2019-2020 http://www.python-lycee.com/*\n" ] } ], "metadata": { "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.6.4" } }, "nbformat": 4, "nbformat_minor": 2 }