{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Chapitre 9 : Description du mouvement \n", "## Exercice 56 p 189 : Saut à ski\n", "\n", "**Niveau INTERMEDIAIRE** \n", "Le programme suivant permet d'afficher le plan incliné, les positions successives du skieur et les vecteurs vitesse toutes les 2 positions successives." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Chaque cellule doit être exécutée après avoir été éventuellement complétée selon les consignes à l'aide de la fiche méthode accessible en fin de manuel.* \n", "***Les cellules doivent être éxécutées dans l'ordre les unes après les autres.***" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#!/usr/bin/python\n", "# -*- coding: utf-8 -*-\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from math import tan, pi" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "Les deux lignes d'instruction suivantes définissent le plan incliné. \n", "**EXECUTER LA CELLULE SANS LA MODIFIER.**" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "x = np.linspace(0,120,20) \n", "y = tan(-35*pi/180)*x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "**Question 1** \n", "**En utilisant les DONNÉES, compléter le code source fourni afin de proposer un programme permettant de représenter les positions successives du skieur lors d’un saut.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Demander d'entrer le nombre de positions à représenter et l'affecter à la variable ```N```." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "N = ...............('Nombre de positions à représenter N = '))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Demander d'entrer l'intervalle de temps ∆*t* (en seconde) entre deux positions successives et l'affecter à la variable ```Delta_t```." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "Delta_t = ...............('∆t (en s) entre deux positions successives, ∆t = '))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Créer le tableau ```t``` des dates associées aux positions du skieur à l'aide de l'instruction ```np.linspace()```. \n", "Puis créer les tableaux ```xs``` et ```ys``` des coordonnées des positions du skieur à partir du tableau ```t``` des dates." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "t = np.linspace(0,(N-1)*Delta_t,N) # Domaine des dates (en s)\n", "\n", "xs = ............ # Domaine des abscisses (en m)\n", "ys = ............ # Domaine des ordonnées (en m)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Afficher les positions successives du skieur dans la fenêtre graphique à partir des tableaux ```xs``` et ```ys```." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%matplotlib widget\n", "\n", "...............('Saut à ski') # Nommer la fenêtre de visualisation\n", "...............('Positions successives du skieur') # Donner un titre au graphe\n", "............... # Nommer l'axe des abscisses\n", "............... # Nommer l'axe des ordonnées\n", "............... # Tracer les posisions du skieur: '+' en rouge et reliées\n", "plt.plot(x,y,'b-',lw=0.5) # Tracer le plan incliné en bleu\n", "............... # Imposer un repère orthonormé\n", "............... # Afficher la figure" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "**Question 2** \n", "**Exécuter le programme puis, à l’aide des fonctionnalités du logiciel, déterminer le plus précisément possible les coordonnées du point d’impact du skieur sur le plan incliné.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "**Question 3** \n", "**En déduire le nombre de points marqués par le skieur pour la distance *d* parcourue lors de ce saut.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "**Question 4** \n", "**Compléter à nouveau le code source pour représenter les vecteurs vitesse du skieur toutes les deux positions successives du skieur.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```e``` est un facteur d'échelle pour la représentation du vecteur vitesse. \n", "Demander d'entrer la valeur e, comprise entre 0,1 et 0,5, du facteur d'échelle des vecteurs vitesse et l'affecter à la variable ```e```." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "e=float(input('Valeur e du facteur d\\'échelle des vecteurs vitesse (0.1 à 0.5), e = '))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Afficher le vecteur vitesse toutes les deux positions. \n", "*A l'éxécution de la cellule, les vecteurs vitesse s'affichent dans la fenêtre de visualisation ci-dessus.*" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "for i in range(0,N-1,2):\n", " plt.arrow(............, ............,\n", " e*(...............)/(...............),\n", " e*(...............)/(...............),\n", " width=0.5, color='c', length_includes_head=\"true\")" ] } ], "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.7.1" } }, "nbformat": 4, "nbformat_minor": 2 }