{
"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
}