我编写的代码需要调整以正确地估计具有特定公差的PI,但我无法弄清楚如何将其工作。我尝试的问题涉及蒙特卡罗方法,如下:
“将四分之一的圆圈思考在单位广场内;然后,四分之一圈子有区域PI / 4.你使用MATLAB函数兰特在广场上挑选一个随机点。如果它在四分之一圈,你会得到”命中“如果没有,你会得到一个“小姐”。四分之一圈的大致面积将由您选择的点数除以点数。您的功能应重复计数命中和未命中的过程,直到至少10,000次尝试已经制作,连续估计在规定的宽容范围内。它应该返回PI的估计值以及尝试的数量。“
提前致谢!
功能[estpi n] = mypi (tol)
格式长
x = 0;
y = 0;
c = 0;
n = 10000;
命中= 0;
点击= [];
err = [];
estpi = [];
error = 1 + tol;
为了c = 1:n
x =兰特;
y =兰特;
击中(c)= x。^ 2 + y。^ 2 <1;
点击率=总和(打击);
尽管错误>托尔
estpi(c)= 4 * hits / c;
c = c + 1;
err(c)= abs(estpi(c)-error);
错误= err(c);
结尾
结尾
结尾