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);
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.