估计PI,循环用于特定容差。

99意见(过去30天)
埃里克
埃里克 2020年4月8日
评论: rik. 2020年4月15日
我编写的代码需要调整以正确地估计具有特定公差的PI,但我无法弄清楚如何将其工作。我尝试的问题涉及蒙特卡罗方法,如下:
“将四分之一的圆圈思考在单位广场内;然后,四分之一圈子有区域PI / 4.你使用MATLAB函数兰特在广场上挑选一个随机点。如果它在四分之一圈,你会得到”命中“如果没有,你会得到一个“小姐”。四分之一圈的大致面积将由您选择的点数除以点数。您的功能应重复计数命中和未命中的过程,直到至少10,000次尝试已经制作,连续估计在规定的宽容范围内。它应该返回PI的估计值以及尝试的数量。“
提前致谢!
功能[estpi n] = mypi (tol)
%%任务2:计算pi。
格式
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);
结尾
结尾
结尾
1条评论
rik.
rik. 2020年4月15日
为了回复你的国旗(“这对社区而言,因为它是一个家庭作业,因此我希望它删除。谢谢。”):
我们通常不会删除收到其他人的反馈,特别是答案的问题。还没有针对发布家庭作业相关问题的规则(除了您学校/大学的规则)。甚至有一个整个线程在这个主题上: 在这里
如果您有令人讨厌的理由要求您的问题删除,请在新标志中详细介绍它们,或联系MathWorks支持。万博1manbetx

登录评论。

答案(1)

大卫山
大卫山 2020年4月8日
功能[estpi n] = mypi (tol)
错误= 1;
命中= 0;
n = 0;
尽管错误>托尔
如果规范(兰特(2,1))<= 1
命中= hits + 1;
结尾
n = n + 1;
ERROR = ABS(PI-4 * HITS / N);
结尾
estpi = 4 * hits / n;
结尾

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!