{ "cells": [ { "cell_type": "markdown", "id": "8c3ed275", "metadata": {}, "source": [ "# Volume d'une sphère\n", "\n", "On considère un nuage de points $(x, y)$ dans un plan 2D. Les variables $x$ et $y$ sont indépendantes et uniformément reparties entre -1 et 1.\n", "\n", "1. En utilisant la fonction ``np.random.rand``, créer un nuage de $M$ points et tracer \n", "ce nuage. On pourra prendre $M=1000$\n", "\n", "2. Tracer dans une autre couleur les points dans un cercle de rayon 1. \n", "\n", "3. En prenant $M$ assez grand (par exemple $10^8$), calculer la probabilité d'être dans le cercle. En déduire une estimation de la surface d'un disque de rayon 1. \n", "\n", "4. Même question que la question 3, mais dans un espace de dimension $N$. Par exemple $N=5$. On écrira une fonction." ] }, { "cell_type": "markdown", "id": "501f2f54", "metadata": { "tags": [ "sol" ] }, "source": [ "--------------------------------------------------------------------------------------\n", "\n", "## Solution" ] }, { "cell_type": "code", "execution_count": 1, "id": "997bfd8d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "M = 1000\n", "X, Y = 2*np.random.rand(M)-1, 2*np.random.rand(M)-1\n", "\n", "fig = plt.figure()\n", "ax = fig.subplots(1, 1)\n", "ax.set_aspect(1)\n", "\n", "ax.plot(X, Y, 'o')\n", "\n", "mask = X**2 + Y**2<=1\n", "\n", "ax.plot(X[mask], Y[mask], 'o')" ] }, { "cell_type": "code", "execution_count": 2, "id": "89e11b1b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Le volume est estimé à 3.14139\n" ] } ], "source": [ "M = 100000000\n", "X, Y = 2*np.random.rand(M)-1, 2*np.random.rand(M)-1\n", "# Il est aussi possible d'utiliser la fonction np.random.uniform(-1, 1, size=M)\n", "\n", "\n", "mask = (X**2 + Y**2)<=1 # C'est un tableau de Booléens. \n", "vol = 2**2 * np.mean(mask) \n", "# Le volume est celui du carré (=2^2) \n", "# multiplié par la probabilité d'être dans le disque\n", "# Lors des opération de somme (ou moyenne) d'un tableau de Booléens, \n", "# numpy va considérer que `False` vaut 0 et `True` 1.\n", "print(f'Le volume est estimé à {vol:.5f}')" ] }, { "cell_type": "code", "execution_count": 3, "id": "aced6871", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Le volume d'une hyper-sphère de dimension 5 est estimé à 5.26305\n" ] } ], "source": [ "def volume(M, N=2):\n", " P = 2*np.random.rand(M, N)-1\n", " Psquare = np.sum(P**2, axis=1)\n", " vol = 2**N * np.mean(Psquare<1)\n", " return vol\n", "\n", "vol5 = volume(10000000, N=5)\n", "\n", "print(f\"Le volume d'une hyper-sphère de dimension 5 est estimé à {vol5:.5f}\")" ] }, { "cell_type": "code", "execution_count": null, "id": "931fa18f", "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 }