{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Estimating Value of Pi using Monte Carlo" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " First, we import necessary libraries" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "import math\n", "import random\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "Now we initialize square size and no of points inside the circle and no of points inside the square and we also\n", "initialize sample size which denotes the no of random points to be generated. We define arc\n", "which is basically the circle quadrant. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "square_size = 1\n", "points_inside_circle = 0\n", "points_inside_square = 0\n", "sample_size = 1000\n", "arc = np.linspace(0, np.pi/2, 100)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then we define a function called generate_points which generates random points\n", "inside the square." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def generate_points(size):\n", " x = random.random()*size\n", " y = random.random()*size\n", " return (x, y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Followed by we define a function called is_in_circle which will check if the point we\n", "generated falls within the circle. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def is_in_circle(point, size):\n", " return math.sqrt(point[0]**2 + point[1]**2) <= size" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then we define a function for calculating pi value as," ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def compute_pi(points_inside_circle, points_inside_square):\n", " return 4 * (points_inside_circle / points_inside_square) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "According to the sample size, we generate some random points inside the square and\n", "increment our points_inside_square variable and then we will check if the points we\n", "generated lies inside the circle, if yes then we\n", "increment points_inside_circle variable." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Approximate value of pi is 3.196\n" ] }, { "data": { "image/png": "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\nQghkBEII4B2S1LcYb2FuIAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.axes().set_aspect('equal')\n", "plt.plot(1*np.cos(arc), 1*np.sin(arc))\n", "\n", "\n", "for i in range(sample_size):\n", " point = generate_points(square_size)\n", " plt.plot(point[0], point[1], 'c.')\n", " points_inside_square += 1\n", " \n", " if is_in_circle(point, square_size):\n", " points_inside_circle += 1\n", "\n", "print(\"Approximate value of pi is {}\"\n", ".format(compute_pi(points_inside_circle, points_inside_square)))" ] } ], "metadata": { "kernelspec": { "display_name": "Python [conda env:universe]", "language": "python", "name": "conda-env-universe-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.5.4" } }, "nbformat": 4, "nbformat_minor": 2 }