{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "008c0a6f-2a94-4152-b561-3efa86045634",
   "metadata": {},
   "source": [
    "# TP n°1 : Formation des images"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "730e7bae-f535-4db7-9e03-fb70ab2ede5d",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np #importation de la bibliothèque qui permet de faire des calculs numériques\n",
    "import matplotlib.pyplot as plt #importation de la bibliothèque qui permet de tracer des graphiques"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a3ed7708-fb9e-454a-b353-9936e4a5d07b",
   "metadata": {},
   "source": [
    "### Préambule avec quelques formules pour les incertitudes expérimentales"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "524a0378-60f9-4efa-8b0d-92829ffe7ecd",
   "metadata": {},
   "source": [
    "Une mesure expérimentale d'une grandeur s'accompagne toujours d'une incertitude expérimentale dont l'origine est multiple :\n",
    "\n",
    "- le choix de la méthode de mesure : par exemple mesurer le temps que met un coureur pour faire une distance à l'aide d'un chronomètre individuel ou d'une détection automatique n'implique pas la même précision ;\n",
    "\n",
    "- les variations de l'environnement : les grandeurs mesurées peuvent dépendre de paramètres extérieurs (température, pression,...) ;\n",
    "\n",
    "- les instruments de mesures : deux instruments de mesures identiques n'ont pas toujours exactement les mêmes caractéristiques physiques, ce qui peut engendrer des différences ;\n",
    "\n",
    "- le processus physique lui-même : certaines lois physiques relèvent de procédé statistique intrinsèquement, ce qui engendre des écarts entre deux mesures ;\n",
    "\n",
    "- SURTOUT, la personne réalisant l'expérience : par ses gestes, sa technique et ses choix, une personne introduit une variabilité importante."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9bb511e4-7b82-4015-aab1-77598fa45e79",
   "metadata": {},
   "source": [
    "La variabilité associée à une grandeur physique $x$ s'appelle $\\textbf{incertitude-type}$ et notée $u(x)$. Par définition, il s'agit de $\\textbf{l'écart-type}$ de la distribution des données expérimentales issues d'une répétition de la mesure. \n",
    "\n",
    "Le résultat d'une grandeur physique s'accompagne toujours de son incertitude-type."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5a36f2b1-4ebd-434a-820a-c8c68626c5f1",
   "metadata": {},
   "source": [
    "$\\rightarrow$ Incertitude de type $A$ (dite statistique)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "444ab3b9-9780-4196-ac3c-026aa00f6a9d",
   "metadata": {},
   "source": [
    "On peut réaliser $N$ fois (où $N\\gg1$) la mesure de la grandeur physique. À la fin, la valeur mesurée $\\overline{x}$ correspond à la valeur moyenne sur les $N$ mesures, et l'incertitude-type est $u(\\overline{x})=u(x)/\\sqrt{N}$ : \n",
    "\n",
    "$$ x = \\overline{x} \\pm u(\\overline{x}) \\, \\text{unité} $$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a90a165f-f1ff-43c1-b027-426e0ac9ab3b",
   "metadata": {},
   "source": [
    "$\\rightarrow$ Incertitude de type $B$ (mesure unique)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2cdfd396-c5db-4031-a728-e0f6fe97d81c",
   "metadata": {},
   "source": [
    "Pour différentes raisons, on ne peut parfois réaliser qu'une seule mesure d'une grandeur physique, et l'on ne peut utiliser la notion d'incertitude de type $A$. Dans ce cas, on estime l'incertitude de différentes manières, que l'on verra au cours de l'année.\n",
    "\n",
    "Aujourd'hui, toutes les mesures seront faites à l'aide de graduation. Dans ce cas, on note $\\Delta$ la demi-taille de l'intervalle dans lequel on est certain de trouver la valeur recherchée, et l'on a : \n",
    "\n",
    "$$ x=x_\\text{graduation} \\pm \\Delta/\\sqrt{3} \\, \\text{unité}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e3cf6508-af22-49a5-b00e-ae7313305828",
   "metadata": {},
   "source": [
    "En réalité, cette estimation de l'incertitude-type pour une mesure unique provient de considérations théoriques où l'on arrive à estimer la forme de la distribution de la grandeur mesurée (quelle est la probabilité de trouver la valeur $x$ dans un intervalle donné). Selon la forme de la distribution (uniforme, triangulaire, gaussienne, lorentzienne,...), l'incertitude-type n'est pas toujours $\\Delta/\\sqrt{3}$.\n",
    "\n",
    "En pratique, en CPGE, le traitement des incertitudes ne nécessite pas une précision aussi grande car les mesures sont toujours entachées de différentes incertitudes et l'on préfère alors sur-estimer légérement l'incertitude-type mesurée.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "be82487d-8ebb-4c85-a1d7-692a3e79d747",
   "metadata": {},
   "source": [
    "Nous aurons besoin de 4 formules supplémentaires dans le cas d'une mesure unique.\n",
    "\n",
    "- Si l'on a différentes sources d'incertitudes ($u_1$ et $u_2$) par exemple sur une même grandeur physique mesurée, alors $ u(x)= \\sqrt{u_1^2 +u_2^2}$.\n",
    "\n",
    "- Si l'on mesure $Y$ et $Z$, ainsi que leurs incertitudes, et que l'on veut en déduire $X(Y,Z)$ qui est une fonction de $Y$ et $Z$, on a une formule générale de $\\textbf{propagation des incertitudes}$ :\n",
    "\n",
    "  $$ u(X)=\\sqrt{(u(Y) \\frac{\\partial X}{\\partial Y})^2 + (u(Z) \\frac{\\partial X}{\\partial Z})^2}.$$\n",
    "\n",
    "Cette formule se généralise aisément lorsque $f$ dépend de plus de deux variables.\n",
    "\n",
    "- Deux cas particuliers de la formule précédente nous aide grandement :\n",
    "    - si $X=aY+bZ$ alors $$ u(X) = \\sqrt{(a\\cdot u(Y))^2 + (b\\cdot u(Z))^2}\\,;$$\n",
    "\n",
    "    - si $X=k Y^a\\times Z^b$ alors $$\\frac{u(X)}{X} = \\sqrt{(a\\frac{u(Y)}{Y})^2+(b\\frac{u(Z)}{Z})^2} $$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "14acf570-ac45-4b9b-9bcd-8b34cafcdee4",
   "metadata": {},
   "source": [
    "Enfin, pour comparer deux grandeurs expérimentales entre elles pour savoir si les mesures sont compatibles, on utilisera $\\textbf{l'écart normalisé}$ : \n",
    "\n",
    "$$E_N= \\frac{|X_1-X_2|}{\\sqrt{u^2(X_1)+u^2(X_2)}} $$\n",
    "\n",
    "Par convention, on dit que les grandeurs sont compatibles lorsque $E_n\\leq2$."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6a8bf5d2-31e7-4b74-b4d1-581259d8c888",
   "metadata": {},
   "source": [
    "## $I)$ Formation d'images avec une lentille convergente"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "be7b208e-8b63-45d3-8c7c-81927898d4a3",
   "metadata": {},
   "outputs": [
    {
     "ename": "SyntaxError",
     "evalue": "invalid syntax (1653256956.py, line 1)",
     "output_type": "error",
     "traceback": [
      "  \u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[2]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[31m    \u001b[39m\u001b[31mx_lentille= # position de la lentille sur le banc optique\u001b[39m\n                ^\n\u001b[31mSyntaxError\u001b[39m\u001b[31m:\u001b[39m invalid syntax\n"
     ]
    }
   ],
   "source": [
    "x_lentille= # position de la lentille sur le banc optique\n",
    "u_x_lentille = #incertitude liée à la position de la lentille sur le banc optique\n",
    "\n",
    "x_ecran= #position de l'écran sur le banc optique\n",
    "u_x_ecran = #incertitude liée à la position de l'écran sur le banc optique\n",
    "\n",
    "x_objet = #position de l'objet sur le banc optique\n",
    "u_x_objet = #incertitude liée à la position de l'objet sur le banc optique\n",
    "\n",
    "OA= #distance algébrique OA\n",
    "u_OA = #incertitude sur la distance algébrique OA\n",
    "\n",
    "OA_p= #distance algébrique OA'\n",
    "u_OA_p = #incertitude sur la distance algébrique OA'\n",
    "\n",
    "grandissement = # formule du grandissement transversal\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "70e015a3-e1d5-4030-9952-e7895b68572b",
   "metadata": {},
   "outputs": [
    {
     "ename": "SyntaxError",
     "evalue": "invalid syntax (2362116095.py, line 1)",
     "output_type": "error",
     "traceback": [
      "  \u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[3]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[31m    \u001b[39m\u001b[31mx_lentille2 = #position de la lentille sur le banc optique\u001b[39m\n                  ^\n\u001b[31mSyntaxError\u001b[39m\u001b[31m:\u001b[39m invalid syntax\n"
     ]
    }
   ],
   "source": [
    "x_lentille2 = #position de la lentille sur le banc optique\n",
    "u_x_lentille2 = #incertitude sur la position de la lentille sur le banc optique\n",
    "\n",
    "x_ecran2 = #position de l'écran sur le banc optique\n",
    "u_x_ecran2 = #incertitude liée à la position de l'écran sur le banc optique\n",
    "\n",
    "x_objet2 = #position de l'objet sur le banc optique\n",
    "u_x_objet2 = #incertitude liée à la position de l'objet sur le banc optique\n",
    "\n",
    "OA2 = #distance algébrique OA\n",
    "u_OA2 = #incertitude sur la distance algébrique OA\n",
    "\n",
    "OA_p2 = #distance algébrique OA'\n",
    "u_OA_p2 = #incertitude sur la distance algébrique OA'\n",
    "\n",
    "grandissement2 = # formule du grandissement transversal\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a83ea60b-bfdb-465f-ba9a-322d0671c883",
   "metadata": {},
   "source": [
    "Commentaire à faire"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "289adcdd-dce1-49bf-b71f-e598f1e104e2",
   "metadata": {},
   "source": [
    "## $II)$ Amélioration de la netteté"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "10567674-9092-4097-b0db-2ee6e4ef0e80",
   "metadata": {},
   "source": [
    "Commentaire à faire après avoir fait l'expérience."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6b6d0049-3430-4200-9b3d-14f068d3972e",
   "metadata": {},
   "source": [
    "## $III)$ Grandissement"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cceaaee5-3cef-4d1f-9452-87821f06a66f",
   "metadata": {},
   "source": [
    "Protocole à remplir et à faire valider par l'enseignant."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "3786e88c-667f-480b-b6a7-f8de7e8a1201",
   "metadata": {},
   "outputs": [
    {
     "ename": "SyntaxError",
     "evalue": "invalid syntax (1790463383.py, line 1)",
     "output_type": "error",
     "traceback": [
      "  \u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[4]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[31m    \u001b[39m\u001b[31mx_ecran= #position de l'écran sur le banc optique\u001b[39m\n             ^\n\u001b[31mSyntaxError\u001b[39m\u001b[31m:\u001b[39m invalid syntax\n"
     ]
    }
   ],
   "source": [
    "x_ecran= #position de l'écran sur le banc optique\n",
    "u_x_ecran = #incertitude liée à la position de l'écran sur le banc optique\n",
    "\n",
    "x_lentille= # position de la lentille sur le banc optique\n",
    "u_x_lentille = #incertitude liée à la position de la lentille sur le banc optique\n",
    "\n",
    "x_objet = #position de l'objet sur le banc optique\n",
    "u_x_objet = #incertitude liée à la position de l'objet sur le banc optique\n",
    "\n",
    "OA= #distance algébrique OA\n",
    "u_OA = #incertitude sur la distance algébrique OA\n",
    "\n",
    "OA_p= #distance algébrique OA'\n",
    "u_OA_p = #incertitude sur la distance algébrique OA'\n",
    "\n",
    "taille_objet= # taille de l'objet\n",
    "u_taille_objet=  # incertitude sur la taille de l'objet\n",
    "\n",
    "taille_image= # taille de l'image\n",
    "u_taille_image=  # incertitude sur la taille de l'image\n",
    "\n",
    "grandissement1= # définition du grandissement transversal\n",
    "u_grandissement1= # incertitude sur le grandissement transversal\n",
    "\n",
    "grandissement2= # grandissement transversale selon Descartes\n",
    "u_grandissement2= # incertitude sur sur le grandissement tranvsersal\n",
    "\n",
    "print(grandissement1,u_grandissement1)\n",
    "\n",
    "print(grandissement2,u_grandissement2)\n",
    "\n",
    "ecart_norm=np.abs(grandissement2-grandissement1)/np.sqrt(u_grandissement1**2+u_grandissement2**2)\n",
    "# l'écart normalisé permet de comparer deux mesures expérimentales entre elles et de valider leur accord ou non.\n",
    "\n",
    "print(ecart_norm)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "acc5e26f-b780-4d33-b52f-8979dfc2f7a1",
   "metadata": {},
   "source": [
    "En mesurant les distances lentille-objet et lentille-ecran, on obtient $\\gamma_1= ? \\pm ? \\,\\text{USI}$\n",
    "\n",
    "En mesurant la taille de l'objet initial et son image final, on obtient $\\gamma_2= ? \\pm ? \\, \\text{USI}$\n",
    "\n",
    "Dans les deux mesures, nous devons obtenir un grandissement équivalent. On peut quantifier cela plus précisement à l'aide de l'écart normalisé $Z=\\frac{|\\gamma_1-\\gamma_2|}{\\sqrt{u(\\gamma_1)^2+u(\\gamma_2)^2}}= ?$ ce qui permet de valider la méthode \n",
    "\n",
    "Les incertitudes sont plus importantes dans le cas où l'on mesure ????????, donc on préférera la méthode où l'on mesure ?????????."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "92c1ea63-51f5-42c8-ae67-eee69381de62",
   "metadata": {},
   "source": [
    "## $IV)$ Formule de conjugaison de Descartes"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "55474ae5-eead-475b-8b02-b8ca0f112f1f",
   "metadata": {},
   "source": [
    " ### $1.$ Mesure de la distance focale"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "613e24b5-76de-4bf9-9e9c-d21ae4387afe",
   "metadata": {},
   "outputs": [],
   "source": [
    "x_lentille= # position fixe de la lentille\n",
    "OA_liste=np.array([])-x_lentille #distance algébrique OA, mesures regroupées dans un array\n",
    "OA_p_liste=np.array([106,89.6,85.9,87,96,85])-x_lentille  #distance algébrique OA', mesures regroupées dans un array\n",
    "\n",
    "f_p_liste= # formule de la distance focale en fonction de OA et OA'\n",
    "\n",
    "print(np.mean(f_liste),np.std(f_liste)) #afficher la valeur moyenne et l'écart-type sur les distances focales obtenues"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cda0d45d-0aec-4a08-b34f-558c341cfae9",
   "metadata": {},
   "source": [
    "On obtient $f'=?\\pm ? \\,\\text{unité}$. C'est en accord/désaccord avec la lentille choisie initialement.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "72cc186e-6fb1-4186-b3bd-afc019e74d23",
   "metadata": {},
   "source": [
    "### $2.$ Tracé de la formule de conjugaison"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "137262c1-7a96-4d02-a747-d81ee1069105",
   "metadata": {},
   "outputs": [],
   "source": [
    "f_p_choisie= # distance focale choisie en cm\n",
    "#plt.scatter permet directement de tracer un nuage de point plutôt que de passer par plt.plot(x,y,'o')\n",
    "plt.scatter(A REMPLIR,A REMPLIR,label=r'$\\rm{points} \\ \\rm{ expérimentaux}$')\n",
    "plt.plot(np.linspace(-0.05,-0.02,100),np.linspace(-0.05,-0.02,100)+1/f_p_choisie,color='red',linestyle='--',label=r'$\\rm{théorique}$')\n",
    "plt.xlabel(r'$\\overline{OA}$')\n",
    "plt.ylabel(r'$\\overline{OA}$')\n",
    "plt.legend()\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2aef3917-3c78-4e61-a5bc-c25febd53ee9",
   "metadata": {},
   "source": [
    "Commentaire à faire, à faire valider par l'enseignant"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dbe00fc4-fabc-483b-852f-68fa474fb3a9",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:base] *",
   "language": "python",
   "name": "conda-base-py"
  },
  "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.13.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
