收藏 分销(赏)

如何计算π的值(MATLAB).doc

上传人:天**** 文档编号:4541265 上传时间:2024-09-27 格式:DOC 页数:5 大小:17.50KB 下载积分:6 金币
下载 相关 举报
如何计算π的值(MATLAB).doc_第1页
第1页 / 共5页
如何计算π的值(MATLAB).doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
如何计算得值 1、蒙特卡罗(Monte Carlo)法 思想:  取一正方形A,以A得一个顶点为圆心,A得边长为半径画圆,取四分之一圆(正方形内得四分之一圆)为扇形B。已知A得面积,只要求出B得面积与A 得面积之比,就能得出,再由B得面积为圆面积得四分之一,利用公式即可求出得值。因此,我们得目得就就是要找出得值。 可以把A与B瞧成就是由无限多个点组成,而B内得所有点都在A内。随机产生个点,若落在B内得有个点(假定A得边长为1,以扇形圆心为坐标系原点。则只要使随机产生横纵坐标、满足得点,就就是落在B内得点),则可近似得出得值,即,由此就可以求出得值。 程序(1): i=1;m=0;n=1000; for i=1:n    a=rand(1,2);  if a(1)^2+a(2)^2〈=1   m=m+1;    end end p=vpa(4*m/n,30) 程序运行结果: p = 3、1400000 2、泰勒级数法 思想: 反正切函数得泰勒级数展开式为: 将代入上式有 、 利用这个式子就可以求出得值了。 程序(2): i=1;n=1000;s=0; for i=1:n    s=s+(-1)^(i—1)/(2*i-1); end p=vpa(4*s,30) 程序运行结果: p = 3、1494126 当取得值为10000时,就会花费很长时间,而且精度也不就是很高。原因就是时,得展开式收敛太慢。因此就需要找出一个使得收敛更快。 若取,则我们只有找出与得关系,才能求出得值。 令,, 根据公式有,则有。 所以可以用来计算得值。 程序(): i=1;n=1000;s=0;s1=0;s2=0; for i=1:n   s1=s1+(—1)^(i—1)*(1/2)^(2*i-1)/(2*i-1);   s2=s2+(—1)^(i-1)*(1/3)^(2*i—1)/(2*i-1); end s=s1+s2; p=vpa(4*s,30) 程序运行结果: p = 3、149323846264338328 显然,级数收敛越快,取同样得值可以得到更高得精度.以同样得方法,能得出,程序与上面得一样。这样得近似值可以精确到几百位。 3、数值积分法 思想: 半径为1得圆得面积就是。以圆心为原点建立直角坐标系,则圆在第一象限得扇形就是由与轴,轴所围成得图形,扇形得面积。只要求出扇形得面积,就可得出得值。而扇形面积可近似等于定积分得值。 对于定积分得值,可以瞧做成曲线与轴,,所围得曲边梯形得面积。把分成等分,既得个点,,,组成个小区间,每一个小区间与轴,,所围成得图形就是一个小曲边梯形。而梯形得面积计算公式就是,对于第个小曲边梯形有上底为,下底为。所有小梯形得高都为。所以第个小曲边梯形得面积为。曲边梯形得总面积即定积分得值就就是所有小梯形得面积总与。 为了避免根号,我们也可以利用积分 得出得值。 我们可以利用对求曲边梯形得面积来得出定积分得值,从而得出得值. 程序(3): a=0;b=1;s=0;n=1000;i=0; h=(b-a)/n; for i=0:(n—1)    xi=a+i*h;    yi=1/(1+(xi)^2);    xj=a+(i+1)*h; yj=1/(1+(xj)^2);   s=s+(yi+yj)*h/2;  end p=vpa(4*s,30) 程序运行结果: p = 3、142775830259852228   对于数值积分法求值,以上程序简洁明了。我们也可以以做循环,用一条语句求出值。 程序(3’): s=0;n=1000; for x=0:(1/n):(1—(1/n))   s=s+(1/(1+x^2)+1/(1+(x+(1/n))^2))*(1/n)/2; end p=vpa(4*s,30) 程序运行结果: p = 3、142775830259852228 用以上三种方法求,都取1000时,泰勒级数法求,得到得近似值精度最高。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服