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+y2≤a2
核心代码
代码书写逻辑步骤:
- 输入模拟次数
- 随机点进行判断
- 最后计算圆周率
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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月03日 02时21分41秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
ReentrantLock实现原理深入探究
2019-04-30
ReentrantLock与公平锁、非公平锁实现
2019-04-30
Java并发编程--ReentrantReadWriteLock
2019-04-30
ReentrantReadWriteLock读写锁详解
2019-04-30
并发锁之二:ReentrantReadWriteLock读写锁
2019-04-30
深入解析Java AtomicInteger 原子类型
2019-04-30
原子操作类AtomicInteger详解
2019-04-30
AtomicInteger源码分析——基于CAS的乐观锁实现
2019-04-30
Executors创建的4种线程池的使用
2019-04-30
java并发编程--Executor框架
2019-04-30
由浅入深理解Java线程池及线程池的如何使用
2019-04-30
深入理解线程和线程池(图文详解)
2019-04-30
线程池,这一篇或许就够了
2019-04-30
Java并发:线程池详解(ThreadPoolExecutor)
2019-04-30
线程池的使用(线程池重点解析)
2019-04-30
Java中的多线程你只要看这一篇就够了
2019-04-30
MySql 里的IFNULL、NULLIF和ISNULL用法
2019-04-30
getParameter的用法总结
2019-04-30
深入解读微服务架构下分布式事务解决方案
2019-04-30
阿里GTS解密--GTS的原理、架构与特点
2019-04-30