在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
圆周率的各种计算方法,这里介绍以下三种,都是在MATLAB 上通过相关算法实现的。 (1)利用无穷级数展开式求π 的近似值。
可用以下赋值语句来实现。 其中累加项f的符号可用以下赋值语句来实现(每循环一次反号一次)。 累加项f就可用以下赋值语句来实现。 最上面‘n=?’只是单纯表示n的值可以取无限大,值是在这个无穷级数取值无穷大的情况下实现的 其中语句 n=input('n=?');完全可以自己输入一个无穷大的值,当然若取值(n=1000),得到的π值可能不是很精确(3.1406) 若(n=100000)得到的π值可能相对精确一点儿(3.1416),对应牺牲的是在MATLAB中运行的时间可能相对长一点,毕竟for循环执行了100000次,耗时较久,占用一定内存。 累加项符号初值为1,输入n的值,每一次计算先求累加项符号,再将累加项累加到y中
用向量求和的方式实现程序 x值为分母,1,3,5,7,.......2*n-1,奇数项作为分母 输出y值中添加符号变换一选项,利用点乘.^和./点除方式表示他是正负相间的进行相关运算 ,确保运算不会出现相关错误,y值求得是π/4的值,故而将所求的y值乘以4 得到相关π值。
第二种方法:利用定积分的近似值球π的近似值。 左图是利用定积分求解π值的图像形象表示,起始点a=0,(默认设置),终点b=1 将其等效为n个小的梯形求其面积累加得到π/4的值 中间绿色图形程序解释如下 h为高,等效为b-a的长度除以n(因为分成n等份) f是关于1-x*x的开方,是的某种形象表示,1/4单位圆的面积 s=[]空矩阵,用来 存放每次计算小梯形的面积s1,成为一个行矩阵 for循环n次 s1是计算每个小梯形面积的公式,将每个s1 面积放到矩阵s中, 最右侧是根据此思想写的一个程序,但是我们可以看到 同样是循环1000,次,但是他的精度与此前无穷级数的精度不一样,这是因为选择的方法不一样。 前者是公式累计,后者是定积分近似
第三种方法:利用蒙特卡洛法求π 的近似值。 这个主要利用了概率学,p=圆的面积/矩形的面积=π*r^2/2*2=π/4 只考虑在第一象限内的图像,随机点占的比例, 主要是点随机分布在1/4圆内和随机点在1/4正方形的比值。
注意是两个end,一个对应if 另外一个对应for语句 有上图可以看到,n的次数选取对最后估计值的精度有很大影响,虽然中间n=1000000,但是他的运行时间较n=100000长得多,类比有n值越大,他的及精确度越高。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论