{ "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": [ "# Résolution matricielle de systèmes (corrigé)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Sommaire\n", "\n", "I. Football
\n", "II. Volleyball

\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## I. Football" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", " \n", "
\n", "Un joueur de foot, situé à $18 m$ du but, effectue un tir en cloche.
\n", "On modélise la situation dans un repère orthonormé (l'unité choisie est le mètre).

\n", "On suppose que :\n", "\n", "\n", "L'animation ci-dessous permet d'obtenir la représentation graphique (incomplète) de ce tir.
\n", "
\n", "Pour faire apparaître et activer l'animation, sélectionner la cellule ci-dessous et valider avec SHIFT+Entrée.\n", "\n", "Vous pouvez ensuite utiliser les menus cinématiques :\n", "\n", "![Menus_animation](img/menus_animation_GeoGebra.png)\n", "\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\t\n", "\t\t\n", "\t\t\n", "\t\t\n", "\t\t\n", "\t\n", "\t\n", "\t\t
\n", "\t\t\t\t\t\t\n", "\t\t\t
\n", "\t\t\t\t
\n", "\t\t\t\t\t\t\t\t\n", "\t\t\t\t\t\t\t\t\n", "\t\t\t\t
\n", "\t\t\t
\n", "\t\t
\n", "\t\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Sélectionner cette zone puis SHIFT+ENTREE\n", "from IPython.display import display, HTML ; display(HTML('fig_dyn_GeoGebra/figfootball.html'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "On note $f$ la fonction qui à l'abscisse $x$ de la balle associe son ordonnée $f(x)$.
\n", "Comme la trajectoire est supposée parabolique, $f$ est une fonction polynôme du second degré.
\n", "On note $f(x)=ax^2+bx+c$ où $a$, $b$ et $c$ sont trois réels à déterminer.
\n", "
\n", "1. a. Donner les valeurs de $f(-18)$ ; $f(-14)$ et $f'(-18)$.

\n", "$\\;\\;\\;$b. En déduire un système $(S)$ de 3 équations à 3 inconnues dont le triplet $(a\\;;b\\;;c)$ est solution.

\n", "$\\;\\;\\;$c. Écrire le système $(S)$ sous forme matricielle $AX=B$.
\n", "$\\quad\\;\\;$(où $A$ est une matrice carrée d'ordre 3 et où $B$ et $X$ sont des matrices colonnes de dimension 3)
\n", "$\\quad\\;\\;$Résoudre ce système $(S)$ et donner l'expression de $f(x)$ en fonction de $x$.\n", "
\n", "
\n", "
\n", "\n", "1. a. $f(-18)=0$ ; $f(-14)=3,2$ et $f'(-18)=1$
\n", "$\\;\\;\\;$b. $f'(x)=2ax+b$ donc:
\n", "$\\quad\\;\\;$ $\\begin{Bmatrix} f(-18) & = & 0 \\\\ f(-14) & = & 3,2 \\\\ f'(-18) & = & 1 \\end{Bmatrix}$
\n", "$\\quad\\;\\;$ $\\Longleftrightarrow \\begin{Bmatrix} (-18)^2a-18b+c & = & 0 \\\\ (-14)^2a-14b+c & = & 3,2 \\\\ 2\\times(-18)a+b & = & 1 \\end{Bmatrix}$
\n", "$\\quad\\;\\;$ $\\Longleftrightarrow \\begin{Bmatrix} 324a-18b+c & = & 0 \\\\ 196a-14b+c & = & 3,2 \\\\ -36a+b & = & 1 \\end{Bmatrix}$
\n", "$\\quad\\;\\;$ $\\Longleftrightarrow AX=B$
\n", "$\\quad\\;\\;$ avec $A=\\begin{pmatrix} 324 & -18 & 1 \\\\ 196 & -14 & 1 \\\\ -36 & 1 & 0 \\end{pmatrix}$ ; $X=\\begin{pmatrix} a \\\\ b \\\\ c \\end{pmatrix}$ et $B=\\begin{pmatrix} 0 \\\\ 3,2 \\\\ 1 \\end{pmatrix}$
\n", "$A$ est inversible et $A^{-1}=\\frac{1}{16} \\begin{pmatrix} -1 & 1 & -4 \\\\ -36 & 36 & -128 \\\\ -308 & 324 & -1008 \\end{pmatrix}$
\n", "En multipliant $AX=B$ à gauche par $A^{-1}$, on obtient $X=A^{-1}B=\\begin{pmatrix} -0,05 \\\\ -0,8 \\\\ 1,8 \\end{pmatrix}$
\n", "On en déduit que $\\begin{pmatrix} a \\\\ b \\\\ c \\end{pmatrix} =\\begin{pmatrix} -0,05 \\\\ -0,8 \\\\ 1,8 \\end{pmatrix}$ et donc que $f(x)=-0,05x²-0,8x+1,8$.\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "2. Compléter les définitions des matrices Python A et B de la cellule suivante.
\n", "$\\;\\;\\;$Exécuter ensuite les cellules Python pour vérifier les résultats de la question 1.c.\n", "
\n", "
\n", " Le module sympy permet :\n", " \n", "
\n", " " ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from sympy import Matrix # import des fonctionnalités pour le calcul matriciel\n", "\n", "# Compléter les saisies de A et B\n", "\n", "A = Matrix([[ 324 , -18 , 1 ],\n", " [ 196 , -14 , 1 ],\n", " [ -36 , 1 , 0 ]])\n", "\n", "B = Matrix([[ 0 ],\n", " [ 3.2],\n", " [ 1 ]]) \n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}- \\frac{1}{16} & \\frac{1}{16} & - \\frac{1}{4}\\\\- \\frac{9}{4} & \\frac{9}{4} & -8\\\\- \\frac{77}{4} & \\frac{81}{4} & -63\\end{matrix}\\right]$" ], "text/plain": [ "Matrix([\n", "[-1/16, 1/16, -1/4],\n", "[ -9/4, 9/4, -8],\n", "[-77/4, 81/4, -63]])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Calcul de la matrice U, inverse de A\n", "U = A**-1\n", "U" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}-0.05\\\\-0.8\\\\1.8\\end{matrix}\\right]$" ], "text/plain": [ "Matrix([\n", "[-0.05],\n", "[ -0.8],\n", "[ 1.8]])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Calcul du produit de U par B\n", "U*B" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "3. a. À quelle hauteur maximale le ballon va-t-il s'élever ?

\n", "$\\;\\;\\;$b. Sachant que le but a une hauteur de $2,44m$, le tir est-il cadré ?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "3. a. $\\displaystyle \\alpha = -\\frac{b}{2a} = -\\frac{-0,8}{2\\times(-0,05)} =-8$ et $\\displaystyle \\beta = f(\\alpha) = f(-8)= 5$
\n", "$\\quad\\;\\;$La hauteur maximale atteinte par le ballon est $5m$.
\n", "
\n", "$\\;\\;\\;$b. $f(0)=1,8<2,44$ donc le tir est cadré. \n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## II. Volleyball" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", " \n", "
\n", "\n", "On donne ci-contre les dimensions d’un terrain de Volley-Ball.
\n", "
\n", "Un joueur effectue un smash !
\n", "Passant au dessus du filet, la balle suit une trajectoire parabolique.
\n", "
\n", "Un appareil photo à déclenchement en rafales a permis de déterminer que la balle est passée par les points $A(-2\\;;2)$ ; $B(-1\\;;2,5)$ et $C(4\\;;3,2)$ dans le repère ci-contre défini à partir du filet.\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "On souhaite répondre aux questions suivantes:
\n", "
    \n", "
  • Placé à $6m$ du filet, un joueur saute et s’interpose jusqu’à la hauteur de $2,55m$.
    \n", " Justifier qu'il n'intercepte pas la balle.
  • \n", "
  • Où la balle retombera-t-elle ?
  • \n", "
  • Le point sera-t-il marqué ?
  • \n", "
\n", "On pourra résoudre le système d'équations à l'aide de saisies Python, en utilisant les cellules ci-dessous.\n", "
\n", "

\n", "\n", "
    \n", "
  • Si on modélise la trajectoire à l'aide de la fonction $g$ telle que $g(x)=ax^2+bx+c$, alors on obtient le système :
    \n", " $\\begin{Bmatrix} 4a-2b+c & = & 2 \\\\ a-b+c & = & 2,45 \\\\ 16a+4b+c & = & 3,2 \\end{Bmatrix} \\Longleftrightarrow AX=B$
    \n", " $\\quad\\;\\;$ avec $A=\\begin{pmatrix} 4 & -2 & 1 \\\\ 1 & -1 & 1 \\\\ 16 & 4 & 1 \\end{pmatrix}$ ; $X=\\begin{pmatrix} a \\\\ b \\\\ c \\end{pmatrix}$ et $B=\\begin{pmatrix} 2 \\\\ 2,45 \\\\ 3,2 \\end{pmatrix}$.
    \n", " La résolution Python permet d'obtenir $\\begin{pmatrix} a \\\\ b \\\\ c \\end{pmatrix} = \\begin{pmatrix} -0,06 \\\\ 0,32 \\\\ 2,88 \\end{pmatrix} $ et donc $g(x)=-0,06x^2+0,32x+2,88$.
    \n", "
  • \n", "
  • $g(6)=2,64>2,55$ donc la balle n'est pas interceptée par le joueur.\n", "
  • \n", "
  • \n", " On détermine les abscisses des intersections de la courbe avec l'axe des abscisses :
    \n", " $\\Delta = 0,32^2-4\\times(-0,06)\\times2,88 = 0,7936$
    \n", " $\\displaystyle x_1=\\frac{-0,32-\\sqrt{0,7936}}{2\\times(-0,06)} \\approx 10,09$
    \n", " $\\displaystyle x_2=\\frac{-0,32-\\sqrt{0,7936}}{2\\times(-0,06)} \\approx -4,75$
    \n", " Ainsi la balle retombe à $10,09m$ après le filet et le point n'est pas marqué, puisqu'elle retombe hors des limites du terrain.\n", "
  • \n", " " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "from sympy import Matrix # import des fonctionnalités pour le calcul matriciel\n", "\n", "# Définition des matrices A et B\n", "\n", "A = Matrix([[ 4 , -2 , 1 ],\n", " [ 1 , -1 , 1 ],\n", " [ 16 , 4 , 1 ]])\n", "\n", "B = Matrix([[ 2 ],\n", " [ 2.5 ],\n", " [ 3.2 ]]) \n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}\\frac{1}{6} & - \\frac{1}{5} & \\frac{1}{30}\\\\- \\frac{1}{2} & \\frac{2}{5} & \\frac{1}{10}\\\\- \\frac{2}{3} & \\frac{8}{5} & \\frac{1}{15}\\end{matrix}\\right]$" ], "text/plain": [ "Matrix([\n", "[ 1/6, -1/5, 1/30],\n", "[-1/2, 2/5, 1/10],\n", "[-2/3, 8/5, 1/15]])" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Calcul de la matrice U, inverse de A\n", "U=A**-1\n", "U" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}-0.06\\\\0.32\\\\2.88\\end{matrix}\\right]$" ], "text/plain": [ "Matrix([\n", "[-0.06],\n", "[ 0.32],\n", "[ 2.88]])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Calcul du produit de U par B\n", "U*B" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![VAT8389](https://raw.githubusercontent.com/PythonLycee/PyLyc/master/img/VAT8389.png)\n", "\n", "
    La tablette VAT8389 (env. 1900 av. JC) contient dix problèmes qui correspondent à des systèmes linéaires de deux équations à deux inconnues.
    " ] }, { "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.7.10" } }, "nbformat": 4, "nbformat_minor": 2 }