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