{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "8ec2f341",
   "metadata": {},
   "source": [
    "# Methode de bessel pour les lentilles convergentes"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "992668fc",
   "metadata": {},
   "source": [
    "On exploite la méthode de Bessel pour détemriner la distance focale de la lentille. On réalise pour une seule distance D entre l'objet et l'écran, les deux situations de conjugaison entre l'objet et l'image nette sur l'écran. On note d la distance entre les deux positions de la lentille.\n",
    "\n",
    "La distance focal de la lentille est alors exprimée par la relation \n",
    "$$ f'=\\frac{D^2-d^2}{4*D}$$\n",
    "\n",
    "<img src=\"TP2Bessel.jpg\" alt=\"drawing\" width=\"400\"/>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "7b44fa49",
   "metadata": {},
   "outputs": [],
   "source": [
    "#on commence classiquement par importer la library numpy (sous l'alias np) pour le calcul numérique\n",
    "#son sous module numpy.random pour effectuer les tirages aléatoires selon des lois bien controlées\n",
    "#et la library matplotlib.pyplot (sous l'alias pl) pour la réalisation de graphique.\n",
    "import numpy as np\n",
    "import numpy.random as rd\n",
    "import matplotlib.pyplot as pl"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c24f1e89",
   "metadata": {},
   "source": [
    "## Méthode 1 , sans le viseur.\n",
    "\n",
    "Dans la première méthode, on mesure le long du banc les positions de :\n",
    "- l'objet en Xo avec une précision lXo mauvaise puisqu'on fait la projection hasardeuse de l'objet sur le banc\n",
    "- l'écran en Xe avec une précision lXe moyenne puisqu'on ne sait pas si l'écran est exactement au dessus du repère.\n",
    "- la lentille en position X1 et la lentille en position X2, et comme on utilise le même pied, seule la précision de lecture et la profondeur de champ limite la précision.\n",
    "\n",
    "La formule faisant le lien entre Xo, Xe, X1, X2 et $f'$ étant complexe, on doit passer par une simulation Monte Carlo."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "27038898",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "le meilleur estimateur pour f' est la moyenne  12.798833608415428  cm\n",
      "l'incertitude sur f' est  0.09508854764915604  cm\n"
     ]
    }
   ],
   "source": [
    "N=10000     # nombre de tirages aléatoires utilisés\n",
    "\n",
    "Xo,lXo=38.5,0.5 # position, demi largeur de l'intervalle pour l'objet en cm\n",
    "Xe,lXe=97.4,0.2 # position, demi largeur de l'intervalle pour l'image en cm\n",
    "X1,lX1=55.7,0.3 # position, demi largeur de l'intervalle pour la première position de la lentille en cm\n",
    "X2,lX2=77.0,0.2 # position, demi largeur de l'intervalle pour la seconde position de la lentille en cm\n",
    "\n",
    "#on construit les 4 listes de tirages\n",
    "Xo_MC=Xo+rd.uniform(-lXo,lXo,N)\n",
    "Xe_MC=Xe+rd.uniform(-lXe,lXe,N)\n",
    "X1_MC=X1+rd.uniform(-lX1,lX1,N)\n",
    "X2_MC=X2+rd.uniform(-lX2,lX2,N)\n",
    "\n",
    "#on construit la liste des valeurs obtenues pour la distance focale\n",
    "f_MC=((Xe_MC-Xo_MC)**2-(X2_MC-X1_MC)**2)/(4*(Xe_MC-Xo_MC))\n",
    "\n",
    "pl.hist(f_MC,bins='rice')\n",
    "#et en demander l'affichage.\n",
    "pl.show()\n",
    "\n",
    "#on estime la distance focale par la moyenne sur les tirages de Monte Carlo\n",
    "moyenne_f=np.average(f_MC)\n",
    "print(\"le meilleur estimateur pour f' est la moyenne \",moyenne_f,' cm')\n",
    "\n",
    "#on estime l'incertitude par l'écart type sur les tirages de Monte Carlo \n",
    "u_f=np.std(f_MC,ddof=1)\n",
    "print(\"l'incertitude sur f' est \",u_f,' cm')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "69113806",
   "metadata": {},
   "source": [
    "## Méthode 2 , avec le viseur.\n",
    "\n",
    "Dans la première méthode, on mesure le long du banc les positions de :\n",
    "- l'objet en Xo avec une précision lXo bien meilleure puisqu'on exploite le viseur qui pointe sur l'objet. Seules la lecture et la profondeur de champ influence la précision.\n",
    "- l'écran en Xe avec une précision lXe bien meilleure puisqu'on exploite le viseur qui pointe sur l'image. Seules la lecture et la profondeur de champ influence la précision.\n",
    "- la lentille en position X1 et la lentille en position X2, et comme on utilise le même pied, seule la précision de lecture et la profondeur de champ limite la précision.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "b8fa20a3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "le meilleur estimateur pour f' est la moyenne  12.826903071892797 cm\n",
      "l'incertitude sur f' est  0.04183489307160455 cm\n"
     ]
    }
   ],
   "source": [
    "\n",
    "Xo,lXo=65.3,0.1 # position, demi largeur de l'intervalle pour l'objet en cm\n",
    "Xe,lXe=122.7,0.2 # position, demi largeur de l'intervalle pour l'image en cm\n",
    "X1,lX1=84.5,0.1 # position, demi largeur de l'intervalle pour la première position de la lentille en cm\n",
    "X2,lX2=103.2,0.2 # position, demi largeur de l'intervalle pour la seconde position de la lentille en cm\n",
    "\n",
    "#on construit les 4 listes de tirages\n",
    "Xo_MC=Xo+rd.uniform(-lXo,lXo,N)\n",
    "Xe_MC=Xe+rd.uniform(-lXe,lXe,N)\n",
    "X1_MC=X1+rd.uniform(-lX1,lX1,N)\n",
    "X2_MC=X2+rd.uniform(-lX2,lX2,N)\n",
    "\n",
    "#on construit la liste des valeurs obtenues pour la distance focale\n",
    "f_MC=((Xe_MC-Xo_MC)**2-(X2_MC-X1_MC)**2)/(4*(Xe_MC-Xo_MC))\n",
    "\n",
    "pl.hist(f_MC,bins='rice')\n",
    "#et en demander l'affichage.\n",
    "pl.show()\n",
    "\n",
    "#on estime la distance focale par la moyenne sur les tirages de Monte Carlo\n",
    "moyenne_f=np.average(f_MC)\n",
    "print(\"le meilleur estimateur pour f' est la moyenne \",moyenne_f,\"cm\")\n",
    "\n",
    "#on estime l'incertitude par l'écart type sur les tirages de Monte Carlo \n",
    "u_f=np.std(f_MC,ddof=1)\n",
    "print(\"l'incertitude sur f' est \",u_f,'cm')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b8440642",
   "metadata": {},
   "source": [
    "## Comparer avec votre voisin.\n",
    "\n",
    "Les lentilles étudiées sortent tous d'un même lot, elles présentent toutes une distance focale annoncée à 10,0cm, mais l'incertitude sur cette valeur n'est pas connue.\n",
    "Pour vérifier que deux évaluations d'une grandeur sont cohérentes, on peut introduire le Z-score qui compare l'écart entre les évaluations obtenues et les incertitudes associées à ces évaluations :\n",
    "\n",
    "- le groupe 1 trouve une valeur de $f'_{1}$ avec une incertitude $u_{1}(f')$\n",
    "- le groupe 2 trouve une valeur de $f'_{2}$ avec une incertitude $u_{2}(f')$\n",
    "\n",
    "Le Z-score associé à ce couple d'évaluation s'écrit :\n",
    "$$Z_{1/2}=\\frac{|f'_{1}-f'_{2}|}{\\sqrt{u_{1}^2(f')+u_{2}^2(f')}}$$\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "7e0f865b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " le Z-score obtenu est évalué à  2.6999999999999957\n",
      "les deux évaluations sont incohérentes\n"
     ]
    }
   ],
   "source": [
    "#groupe 1\n",
    "f1,u1=10.08,0.08\n",
    "#groupe 2\n",
    "f2,u2=10.35,0.06\n",
    "\n",
    "#calcul du Z-score\n",
    "\n",
    "Z=np.abs(f1-f2)/np.sqrt(u1**2+u2**2)\n",
    "\n",
    "print(\" le Z-score obtenu est évalué à \",Z)\n",
    "\n",
    "if Z>2 :\n",
    "    print (\"les deux évaluations sont incohérentes\")\n",
    "    \n",
    "else :\n",
    "    print (\"les deux évaluations sont cohérentes\")\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f7b09cab",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.10.18"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
