matlab解决蒙特卡洛求圆周率(含测试用例代码)
发布日期:2021-06-29 17:21:03 浏览次数:2 分类:技术文章

本文共 562 字,大约阅读时间需要 1 分钟。

本博文源于MATLAB蒙特卡洛算法,蒙特卡洛算法是一种随机模拟,故本文围绕此算法对圆周率进行估值。

求圆周率思想

就是在一个以a为边长的正方形内画出一个以a为半径的圆,然后随机在正方形内投掷点,若落在四分之一圆内,则+1,最后统计占总比。核心难点:如何判定随机模拟在圆内.

判定公式: x 2 + y 2 ≤ a 2 x^2+y^2\le{a^2} x2+y2a2

核心代码

代码书写逻辑步骤:

  1. 输入模拟次数
  2. 随机点进行判断
  3. 最后计算圆周率
n = input('请输入n的模拟次数:');counter = 0;for i=1:n    x = rand;    y = rand; %随机生成x,y坐标    if x^2 + y^2 <= a^2 %进行逻辑判断        counter = counter + 1;    end endpai = 4*counter/n %输出结果

代码保存为pai_test.m

测试用例

pai_test.m保存在matlab工作目录里,然后调用脚本函数

>> pai_test请输入n的模拟次数:500000pai =    3.1403>>

总结

本博文以matlab蒙特卡洛算法进行近似圆周率,逻辑清晰,代码易懂,方便收藏,并且测试用例特别友好,值得新手mark!

转载地址:https://blog.csdn.net/m0_37149062/article/details/118275422 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java中 static 修饰符的使用
下一篇:算设计Day05分治策略思想

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月03日 02时21分41秒