-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMonte (1).f95
58 lines (55 loc) · 1.07 KB
/
Monte (1).f95
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
program monte
implicit none
integer i,j,n
real sum,k,a,b,mean,r,sum1,var,m,r1,x1,D,diff
sum=0
sum1=0
diff=0
mean=0
n=1000000
m=n
do i=1,n
call random_number(r)
sum1=sum1+(exp(r))**(2)
sum=sum+exp(r)
enddo
sum=sum/m
sum1=sum1/m
var=sum1-sum**(2)
diff=sum-exp(1.0)+1
print *,var,sqrt(var/n)*sqrt(var),diff
sum=0
sum1=0
diff=0
mean=0
n=1000000
m=n
do i=1,n
call random_number(r)
sum1=sum1+(exp(r)-1-r)**(2)
sum=sum+(exp(r)-1-r)
enddo
sum=sum/m
sum1=sum1/m
var=sum1-sum**(2)
print *,var,sqrt(var/n)
!!px=2/3(1+x)
sum=0
sum1=0
diff=0
mean=0
n=1000000
m=n
do i=1,n
call random_number(r)
D=4+12*r
x1=(-2+sqrt(D))/(2)
r1=(x1)
sum1=sum1+(((exp(r1)*3/(2*(1+r1)))**(2)))
sum=sum+(exp(r1)*3/(2*(1+r1)))
enddo
sum=sum/m
sum1=sum1/m
var=sum1-sum**(2)
print *,var,sqrt(var/n),sum
end program monte