{
 "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": "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": 7,
   "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  10.087997340642112\n",
      "l'incertitude sur f' est  0.12782397641439272\n"
     ]
    }
   ],
   "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\n",
    "\n",
    "N=10000     # nombre de tirage aléatoire utilisé\n",
    "\n",
    "Xo,lXo=32.0,0.5\n",
    "Xe,lXe=98.4,0.3\n",
    "X1,lX1=44.1,0.2\n",
    "X2,lX2=85.7,0.2\n",
    "\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",
    "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",
    "moyenne_f=np.average(f_MC)\n",
    "print(\"le meilleur estimateur pour f' est la moyenne \",moyenne_f)\n",
    "\n",
    "u_f=np.std(f_MC,ddof=1)\n",
    "print(\"l'incertitude sur f' est \",u_f)"
   ]
  },
  {
   "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": 8,
   "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  10.084092035267439\n",
      "l'incertitude sur f' est  0.0761627897883103\n"
     ]
    }
   ],
   "source": [
    "\n",
    "Xo,lXo=32.0,0.2\n",
    "Xe,lXe=98.4,0.2\n",
    "X1,lX1=44.1,0.2\n",
    "X2,lX2=85.7,0.2\n",
    "\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",
    "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",
    "moyenne_f=np.average(f_MC)\n",
    "print(\"le meilleur estimateur pour f' est la moyenne \",moyenne_f)\n",
    "\n",
    "u_f=np.std(f_MC,ddof=1)\n",
    "print(\"l'incertitude sur f' est \",u_f)"
   ]
  },
  {
   "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é à  0.006756602526351897\n",
      "les deux évaluations sont cohérentes\n"
     ]
    }
   ],
   "source": [
    "#groupe 1\n",
    "f1,u1=10.084,0.076\n",
    "#groupe 2\n",
    "f2,u2=10.083,0.127\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",
   "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": 5
}
