Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

MATLAB Help Given the matlab code that uses Monte Carlo method to estimate pi an

ID: 3888842 • Letter: M

Question

MATLAB Help

Given the matlab code that uses Monte Carlo method to estimate pi and the difference from true value for the fixed number of random points:

a=10; % the experiment event number
r=1; %the circle radius
c=0; % sucessful event number
for i=1:a
s=-r+1*r*rand();
t=-r+1*r*rand();
pi_sim(i)=4*c/a
pi_dif(i)=pi-pi_sim(i)
if ((s.^2+t.^2)<=r^2)
    c = c+1
end
end

Question:    With the given MATLAB code, time the execution of the code for various numbers of points, and plot the precision vs the computational cost.

Explanation / Answer

a=0; % the experiment event number
c=0; % sucessful event number
r =1; % redius of the circle
min_tries = 100;

pi_prev = 1000;
precision = 0.001;

while (true)
    s = 2 * r * (rand() - 0.5); %get a point between -1 to +1
    t = 2 * r * (rand() - 0.5);
  
    a = a+1;
    pi_sim = 4 * c / a;
    pi_diff = abs(pi_prev - pi_sim);
    pi_prev = pi_sim;
  
    if (pi_diff <= precision && a>min_tries)
        break;
    end

    if ((s.^2+t.^2)<=r^2)
        c = c+1;
    end  
end

fprintf("estimated value of pi is %f", pi_prev);