Question
Python Compose a function mc_pi( n ) to estimate the value of ? using the Buffon's Needle method. n describes the number of points to
Python
Compose a function mc_pi( n ) to estimate the value of ? using the Buffon's Needle method. n describes the number of points to be used in the simulation. mc_pi should return its estimate of the value of ? as a float. Your process should look like the following:
1. Prepare an array of coordinate pairs xy. This should be of shape ( n,2 ) selected from an appropriate distribution (see notes 1 and 2 below).
2. Calculate the number of coordinate pairs inside the circle's radius. (How would you do this mathematically? Can you do this in NumPy without a loop?although a loop is okay.)
3. Calculate the ratio ncirclensquare=AcircleAsquarencirclensquare=AcircleAsquare, which implies (following the development above), ??4ncirclensquare??4ncirclensquare.
4. Return this estimate of ??.
5. You may find it edifying to try the following values of n, and compare each result to the value of math.pi: 10, 100, 1000, 1e4, 1e5, 1e6, 1e7, 1e8. How does the computational time vary? How about the accuracy of the estimate of ???
You will need to consider the following notes:
1. Which kind of distribution is most appropriate for randomly sampling the entire area? (Hint: if we could aim, it would be the normal distributionbut we shouldn't aim in this problem!)
2. Since numpy.random distributions accept sizes as arguments, you could use something likenpr.distribution( n,2 ) to generate coordinate pairs (in the range [0,1)[0,1) which you'll then need to transform)but use the right distribution! Given a distribution from [0,1)[0,1), how would you transform it to encompass the range [?1,1)[?1,1)? (You can do this to the entire array at once since addition and multiplication are vectorized operations.)
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started