{ "cells": [ { "cell_type": "markdown", "id": "be6e23a2", "metadata": {}, "source": [ "# Loi de poisson et générateur de nombre aléatoire\n", "\n", "_Cet exercice s'appuie sur un sujet de l'IPT, avec un méthode légèrement différente. Regarder :_ [Emergent Scientist 1, 7 (2017)](https://doi.org/10.1051/emsci/2017009)\n", "\n", "Une source lumineuse illumine un photomultiplicateur. Ce dispositif envoie un pulse digital d'environ 20 ns à chaque photon qu'il détecte. La sortie du photomultiplicateur est connectée à un dispositif informatique qui permet de compter le nombre de pulses reçu pendant une durée determinée.\n", "\n", "Le nombre de photons qui arrive pendant une durée donnée suit une loi de Poisson, c’est à dire que la probabilité de détecter $k$ photons est donnée par :\n", "\\begin{equation*}\n", "\\begin{split}p(k) = \\frac{\\lambda^k}{k!}e^{-\\lambda}\\end{split}\n", "\\end{equation*}\n", "où $\\lambda$ est le nombre moyen de photons. Le paramètre $\\lambda$ sera proportionnel à la durée $t_0$ pendant laquelle on mesure le nombre de photons : $\\lambda = \\Gamma t_0$.\n", "\n", "On rappelle que l’écart type de la loi de Poisson vaut $\\sqrt{\\lambda}$. \n", "\n", "Les données sont disponibles ici : {download}`data/100secondes_200us_count.txt`\n", "\n", "1. Le fichier de données est enregistré sous forme d’un fichier texte. Chaque point correspond à une mesure de durée $t_0=200\\mathrm{\\mu s}$. Lire le fichier sous forme d'un tableau d'entier: \n", "\n", " Quel est le nombre moyen de photons reçu par seconde ?\n", "\n", "2. Calculer l’écart type et vérifiez qu’il vaut $\\sqrt{\\lambda}$.\n", "\n", "3. En utilisant la fonction `numpy.unique`, avec l’option `return_counts=True`, tracez la distribution de probabilité (créer un histogramme).\n", "\n", "4. Tracez les points représentants $p(k)/p(k+1)$.\n", "\n", "5. On peut créer un générateur de bits aléatoires à partir de cette séquence : si $x_{2j}>x_{2j+1}$ alors on prend 1, si $x_{2j}" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Question 3\n", "from matplotlib.pyplot import figure\n", "\n", "values, count = np.unique(data, return_counts=True)\n", "\n", "fig = figure()\n", "ax = fig.subplots(1, 1)\n", "\n", "ax.plot(values, count/np.sum(count), '-o')\n", "ax.set_xlabel('Nombre de photon k')\n", "ax.set_ylabel('Probabilité p(k)')" ] }, { "cell_type": "code", "execution_count": 5, "id": "ad913b90", "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Question 4\n", "fig = figure()\n", "ax = fig.subplots(1, 1)\n", "\n", "ax.plot(count[:-1]/count[1:], 'o')\n", "ax.grid()\n", "ax.set_ylim(0, None)\n", "ax.set_xlabel('Nombre de photon k')\n", "ax.set_ylabel('$p(k)/p(k+1)$'); # Utilisation de Latex" ] }, { "cell_type": "code", "execution_count": 6, "id": "ba4a2585", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([False, True, True, ..., False, False, True])" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Question 5\n", "def bits_aleatoires(data):\n", " # Il faut un nombre paire de point\n", " data = data[(len(data)%2):]\n", " A = data[::2]\n", " B = data[1::2]\n", " mask = (A!=B)\n", " return (A>B)[mask]\n", "\n", "bits_aleatoires(data)" ] }, { "cell_type": "code", "execution_count": 7, "id": "bad3bedf", "metadata": {}, "outputs": [], "source": [ "# Question 7\n", "\n", "data_bits = bits_aleatoires(data)\n", "N = 11\n", "\n", "data_bits = data_bits[len(data_bits)%N:]\n", "data_bits = data_bits.reshape((len(data_bits)//N, N))\n", "data_bits\n", "coef = 1/(2**(1+np.arange(N)))\n", "nb_aleatoires = (data_bits*coef[np.newaxis, :]).sum(axis=1) \n", "# np.newaxis permet de transformer le tableau de dimension 1 en un tableau de dimension 2" ] }, { "cell_type": "code", "execution_count": 8, "id": "8519fcce", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3.169305724725944" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Question 8\n", "\n", "nb_aleatoires = nb_aleatoires[len(nb_aleatoires)%2:] # on garde un nombre pair de points\n", "X = nb_aleatoires[::2] # indices pairs\n", "Y = nb_aleatoires[1::2] # indices impairs\n", "# The probability is the number of times a sample fullfills the condition \n", "# divided by the total number of samples\n", "np.sum(X**2 + Y**2 < 1)/len(X) * 4" ] }, { "cell_type": "code", "execution_count": null, "id": "6c207212", "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.8.8" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 5 }