# -*- coding: utf-8 -*-
"""
Created on Thu Sep  8 18:37:08 2022

@author: Chris
Lab7 Q3
"""

import numpy as np
import matplotlib.pyplot as plt
import math as maths

def f(x):
    return np.exp(-x)

def montyn(f,a,b,N):
    # does Monte-Carlo integration for a 1D
    # function f over the interval [a,b]

    p = (b-a)*np.random.uniform(size=N)

    I = (b-a)/N*sum(f(p))
    return I

pi = maths.pi

Nrange = np.linspace(1,1000000,10000)

I = 0.*Nrange
i = 0
for N in Nrange:
    
    I[i] = montyn(f,0,1,int(N))

    #print(N,I[i])
    i = i +1

plt.plot(Nrange,I)

 


