Monte Carlo simulation

advertisement
How do we generate the statistics of a function of a random
variable?
– Why is the method called “Monte Carlo?”
How do we use the uniform random number generator to
generate other distributions?
– Are other distributions directly available in matlab?
How do we accelerate the brute force approach?
– Probability distributions and moments
Web links:
http://www.riskglossary.com/link/monte_carlo_method.htm
http://physics.gac.edu/~huber/envision/instruct/montecar.htm
SOURCE: http://pics.hoobly.com/full/AA7G6VQPPN2A.jpg
Monte Carlo Simulation
• Given a random variable X and
a function h(X):
sample X: [x1,x2,…,xn];
Calculate [h(x1),h(x2),…,h(xn)]; use to approximate
statistics of h.
• Example: X is U[0,1]. Use MCS to find mean of X2
x=rand(10); y=x.^2; %generates 10x10 random matrix
mean=sum(y)/10
x =0.4017 0.5279 0.1367 0.3501 0.3072 0.3362 0.3855
0.3646 0.5033 0.2666
mean=0.3580
• What is the true mean
SOURCE: http://schools.sd68.bc.ca/ed611/akerley/question.jpg
SOURCE:
http://www.sz-wholesale.com/uploadFiles/041022104413s.jpg
Basic Monte Carlo
Obtaining distributions
• Histogram: y=randn(100,1); hist(y)
25
20
15
10
5
0
-3
-2
-1
0
1
2
3
Cumulative density function
• Cdfplot(y)
Empirical CDF
1
0.9
0.8
0.7
F(x)
0.6
0.5
0.4
0.3
0.2
0.1
0
-3
-2
-1
0
1
x
• [f,x]=ecdf(y);
2
3
4
Histogram of average
• x=rand(100); y=sum(x)/100; hist(y)
35
30
25
20
15
10
5
0
0.42
0.44
0.46
0.48
0.5
0.52
0.54
0.56
0.58
Histogram of average
• x=rand(1000); y=sum(x)/1000; hist(y)
140
120
100
80
60
40
20
0
0.46
0.47
0.48
0.49
0.5
0.51
What is the law of large numbers?
0.52
0.53
Distribution of
x=rand(10000,1);
x2=x.^2;
hist(x2,20)
2
x
2500
2000
1500
1000
500
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Other distributions
• Other distributions available in matlab
• For example, Weibull distribution
600
f ( x)  ba  b x b 1e
for x  0
 x / a 
b
500
400
r=wblrnd(1,1,1000);
hist(r,20)
300
200
100
0
0
2
4
6
8
10
12
14
Correlated Variables
Cov( X , Y )  E[ X   x  Y   y ]
 xy 
Cov( X , Y )
 x y
• For normal distribution can use Matlab’s mvnrnd
•
R = MVNRND(MU,SIGMA,N) returns a N-byD matrix R of random vectors chosen from the
multivariate normal distribution with 1-by-D
mean vector MU, and D-by-D covariance matrix
SIGMA.
Example
mu = [2 3];
sigma = [1 1.5; 1.5 3];
r = mvnrnd(mu,sigma,20);
5
4.5
plot(r(:,1),r(:,2),'+')
4
What is the correlation
coefficient?
3.5
3
2.5
2
1.5
1
0.5
0
0
0.5
1
1.5
2
2.5
3
3.5
Problems Monte Carlo
• Use Monte Carlo simulation to estimate
the mean and standard deviation of x2,
when X follows a Weibull distribution with
a=b=1.
• Calculate by Monte Carlo simulation and
check by integration the correlation
coefficient between x and x2, when x is
uniformly distributed in [0,1]
Latin hypercube sampling
X = lhsnorm(mu,SIGMA,n) generates a latin
hypercube sample X of size n from the
multivariate normal distribution with mean
vector mu and covariance matrix SIGMA.
X is similar to a random sample from the
multivariate normal distribution, but the
marginal distribution of each column is
adjusted so that its sample marginal
distribution is close to its theoretical
normal distribution.
Comparing MCS to LHS
mu = [2 2];
sigma = [1 0; 0 3];
r = lhsnorm(mu,sigma,20);
sum(r)/20
ans = 1.9732 2.0259
r = mvnrnd(mu,sigma,20);
sum(r)/20
ans =2.3327 2.2184
5
6
4
5
4
3
3
2
2
1
1
0
0
-1
-2
-1
0
0.5
1
1.5
2
2.5
3
3.5
4
-2
0.5
1
1.5
2
2.5
3
3.5
4
4.5
Evaluating probabilities of failure
• Failure is defined in terms of a limit state
function that must satisfy g(r)>0, where r is a
vector of random variables.
Pf  m / N
• Probability of failure is estimated as the ratio of
number of negative g’s, m, to total MC sample
size, N
• The accuracy of the estimate is poor unless N
Pf (1  Pf )
is much larger than 1/Pf
  Pf  
N
• For small Pf
  Pf 
Pf

1
m
problems probability of
failure
1. Derive formula for the standard
deviation of estimate of Pf
2. If x is uniformly distributed in
[0,1], use MCS to estimate the
probability that x2>0.95 and
estimate the accuracy of your
estimate from the formula.
3. Calculate the exact value of the
answer to Problem 2 (that is
without MCS).
Source: Smithsonian Institution
Number: 2004-57325
Separable Monte Carlo
• Usually limit state function is written in
terms of response vs. capacity
g=C(r)-R(r)>0
• Failure typically corresponds to structures
with extremely low capacity or extremely
high response but not both
• Can take advantage of that in separable
MC
Reading assignment
Ravishankar, Bharani, Smarslok B.P., Haftka R.T., Sankar
B.V. (2010)“Error Estimation and Error Reduction in
Separable Monte Carlo Method ” AIAA Journal ,Vol 48(11),
2225–2230 .
Source: www.library.veryhelpful.co.uk/ Page11.htm
Download