Computer Program For Problem#2
REAL U,V,MUG,SUMG,DIF,SUMD,SDG,BETA
INTEGER I,N ,YN
DIMENSION FB(5000),M(5000),B(5000),D(5000),G(5000)
CALL SEED(-1)
PRINT*,'======================================================='
PRINT*,'| Monte Carlo Simulation |'
PRINT*,'| By Pracha Vorarittinapa |'
PRINT*,'======================================================='
1 PRINT*,'Enter no. of samples to be generated = ?'
READ*,N
SUMG=0
DO 5, I=1,N
CALL RANDOM(V)
U=V
CALL STAND(U,Z)
FB(I)=EXP(7.329+0.31223*Z)
CALL RANDOM(V)
U=V
CALL STAND(U,Z)
B(I)=5.6+0.224*Z
CALL RANDOM(V)
U=V
CALL STAND(U,Z)
D(I)=11.4+0.342*Z
CALL RANDOM(V)
U=V
M(I)=94599-(LOG(0-LOG(U)))/0.00011
G(I)=FB(I)-6*M(I)/(B(I)*D(I)*D(I))
SUMG=SUMG+G(I)
5 CONTINUE
MUG=SUMG/N
SUMD=0
DO 10, I=1,N
DIF=(G(I)-MUG)*(G(I)-MUG)
SUMD=SUMD+DIF
10 CONTINUE
SDG=SQRT(SUMD/(N-1))
BETA=MUG/SDG
PRINT*,'--------------------------------------'
PRINT*,' Statistics of Safety Margin(G)'
PRINT*,'--------------------------------------'
PRINT*,'Mean =',MUG
PRINT*,'Standard Deviation =',SDG
PRINT*,'Reliability Index =',BETA
PRINT*,'--------------------------------------'
PRINT*,'New run?(0=yes,1=no)'
READ*,YN
IF (YN.EQ.0)THEN
GOTO 1
ELSE
PRINT*,'Quit'
END IF
END
SUBROUTINE STAND(U,Z)
PARAMETER(C0=2.515517,C1=0.802853,C2=0.010328)
PARAMETER(D1=1.432788,D2=0.189269,D3=0.001308)
IF(U.GT.0.5)THEN
T=SQRT(0-LOG((1-U)*(1-U)))
Z=T-(C0+C1*T+C2*T*T)/(1+D1*T+D2*T*T+D3*T*T*T)
ELSE
T=SQRT(0-LOG(U*U))
Z=(C0+C1*T+C2*T*T)/(1+D1*T+D2*T*T+D3*T*T*T)-T
END IF
END
By Pracha Vorarittinapa
Last Modified: 11/13/1997