Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys, math, random, ROOT
- input_x_a = 0.01
- input_x_b = 1
- input_y_a = 0
- input_y_b = 1
- def f(x,y):
- # return math.exp(x + y)/(1 + math.sqrt(x)*y/2)
- return 1 / ( math.pow(x,2) * ( y + math.sin(x)/2 ) )
- def single(f, x_limits, y_limits):
- x_a, x_b = x_limits
- y_a, y_b = y_limits
- x = ROOT.gRandom.Uniform(x_a, x_b)
- y = ROOT.gRandom.Uniform(y_a, y_b)
- return (x_b - x_a) * (y_b - y_a) * f(x, y)
- results = []
- for i in range(10):
- cresults = []
- for i in range(1000):
- r = (single(f, (input_x_a, input_x_b), (input_y_a, input_y_b)))
- results.append(r)
- cresults.append(r)
- average = sum(results) / len(results)
- variance = (sum(r**2 for r in results) - average**2) / len(results)
- caverage = sum(cresults) / len(cresults)
- cvariance = (sum(r**2 for r in cresults) - caverage**2) / len(cresults)
- print caverage, math.sqrt(cvariance / len(cresults)),
- print average, math.sqrt(variance / len(results))
- def f_for_drawing(x, p):
- return f(x[0], x[1])
- tf2 = ROOT.TF2("f", f_for_drawing, input_x_a, input_x_b, input_y_a, input_y_b, 1)
- tf2.Draw("surf1z")
- sys.stdin.readline()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement