# Homework Help: Monte Carlo error calculation PYTHON

Tags:
1. Feb 17, 2016

### Amy Elliott

• New member warned about posting without the template
I am using the monte carlo method to calculate the integral of cos^2(x). This is done using N random numbers. In my case I am doing it for 10^i random numbers when i ranges from 1-6. I want to calculate the error on the integral for each value of i used.

I know for each value of N I want to take say 100 samples of the integral then using numpy calculate the average and standard deviation for my final result. I will need to use arrays to store the values in. I'm just not sure how to do this. This is my code so far. I know it's wrong in the middle where the correct code needs to go. Thanks in advance!

CODE:

# this is the integral from 0 to 2 of cos(x)^2
# using monte carlo integration
# the errors are also calculated

import numpy.random as rnd;
import numpy as np;

def integrate(n):
return np.sum(pow(np.cos(rnd.uniform(0,1,size=n)),2))/n

for i in range(1,8):
# creating and adding to arrays
measurement=[];# create an empty array or list
measurement.append('intergrate(n)');# add to it
np.average(measurement)
np.std(measurement)
ERROR

print(pow(10,i),":", integrate(pow(10,i)),":", ERROR)

2. Feb 17, 2016

### Staff: Mentor

Please use [code] tags around your code. This makes your code easier to read, and with Python, especially, preserves the indentation that is crucial in Python.
[code=python]
Your python code
[/code]

Before getting fancy, with different values for i, try setting i to a specific value and see if you can get some reasonable output. I'm familiar with Python, but not familar with numpy, so can't comment on whether you are calling numpy functions correctly. I suspect that your calls to average and std won't work, as you aren't storing the return values anywhere.

Also, you have measurement as a list. Why are you storing a string 'intergrate(n)' (which BTW is misspelled) in your list?

Share this great discussion with others via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted