matlab 圆周率的近似计算 实验报告

合集下载

实验名称 圆周率的计算

实验名称  圆周率的计算

400000 315925 VC++ 3.159250
500000 395497 VC++ 3.163976
第四部分 级数方法
所用级数 计算项数 精确位数 所用工具 圆周率值 10000 3 MATLAB 3.14149265
第五部分 蒙特卡洛方法的应用
(填写所计算 的积分) (填写该积分 积分结果 的准确结果) (填写总的循 循环次数 环次数) (填写满足条 满足的次数 件次数) (填使用的软 所用工具 件) (用蒙特卡洛 积分的估计 方法估计的 值 值) 计算积分 (
第二部分 数值积分
所用函数
1/ 1 x2 1/ 1 x2 1/ 1 x2 1/ 1 x2 1/ 1 x2
积分方法 矩形公式 分割程度 100 所用工具 VC++ 圆周率值 3.131576
矩形方式 1000 VC++
3.140592
矩形方式 矩形方式 10000 100000 VC++ VC++
3.141494 3.141523
矩形方式 100000 VC++
3.141348
第三部分 蒙特卡洛方法
实验报告 ----计算科学实验室
所用函数 循环次数 满足的次数 所用工具 圆周率值
100000 79037 VC++ 3.141680
200000 158411 VC++ 3.168220
300000 237748 VC++ 3.169973
实验报告 ----计算科学实验室
实验名称: 圆周率的计算
姓名 实验类型 所用知识 魏萱 综合 设计 11112228 实验地点 学号 实验要求 选修 学时量 数学建模 数学软 运筹学 T5-207 6

数学实验(计算圆周率)

数学实验(计算圆周率)

数学实验报告一、 实验问题人们很早就发现圆的周长和直径的比是个常数,也就是我们都熟悉的圆周率π,那么这个常数的值究竟是多少哪?我国的伟大数学家祖冲之将π精确到3.1415926-3.1415927之间,西方的数学研究者也从来没有停止过对π的计算,那么在今天计算机技术如此发达的情况下,我们如何将π的近似值精确到更多位数哪?二、问题的分析π的精确度问题困扰大家已久,所以我们不妨在MATLAB 中采用循环来实现对π的更高位数的精确。

不妨以精确到小数点后9位为例。

我们知道 31arctan 21arctan 1arctan 4+==π 因此可以利用)(π)(321-1-2n 1-2n 1n 1-n 111-2n 431arctan 21arctan 4+=⎪⎭⎫ ⎝⎛+=∑∞=三、实验内容在MATLAB 中键入以下程序clear;n=0;r=1;p=0;k=-1;a=1;b=1;while r>=1.0e-9n=n+1;k=k*(-1);a=4*a;b=9*b;pl=p+k/(2*n-1)*(2/a+3/b);r=abs(4*(pl-p));fprintf('n=%.0f,p=%.10f\n',n,4*pl);p=pl;end四、问题求解结果和结论n=1,p=3.3333333333n=2,p=3.1172839506n=3,p=3.1455761317n=4,p=3.1408505618n=5,p=3.1417411974n=6,p=3.1415615879n=7,p=3.1415993410n=8,p=3.1415911844n=9,p=3.1415929813n=10,p=3.1415925796n=11,p=3.1415926705n=12,p=3.1415926497n=13,p=3.1415926545n=14,p=3.1415926534n=15,p=3.1415926536对泰勒级数,当|x |越小时级数收敛速度越快,这启示我们另外构造相关级数来逼近π。

拉格朗日插值多项式积分求圆周率近似Matlab实现

拉格朗日插值多项式积分求圆周率近似Matlab实现

Lagrange 插值多项式积分求圆周率近似摘要:公式1:y1=4/(1+x^2) 公式2:y2=4*sqrt(1-x^2) 分别对公式1、公式2求其拉格朗日插值多项式,再对其求0-1上的定积分来求圆周率π的近似值,并在Matlab 中通过画图来比较两个所求得的值与真实值π的偏差。

Lagrange 插值多项式:)()(l )(L 0i n i ni x f x x ∑==其中 )())(())(()())(())(()(l 11101110i n i i i i i i i n i i x x x x x x x x x x x x x x x x x x x x x -⋯⋯--⋯⋯---⋯⋯--⋯⋯--=+-+-)(i x f 为函数在i x 处的函数值,)(x L n 为Lagrange 插值多项式。

Matlab 实现:clc;clear;a=0;b=1;n=input('Enter a number n:'); %将0-1分割成n 节点,即n-1段 X=zeros(1,n); %用来放置节点x 的值P=zeros(1,n); %用来放置节点x 对应的函数值y1 Q=zeros(1,n); %用来放置节点x 对应的函数值y2 x=0;h=(b-a)/(n-1); %h 为步长for i=1:ny1=4/(1+x^2);y2=4*sqrt(1-x^2);X(i)=x;P(i)=y1;Q(i)=y2;x=x+h;endX;P;Q; %通过循环对X、P、Q进行赋值syms s;l=1;z1=0;z2=0;for j=1:1for k=2:nl=l*(s-X(k))/(X(j)-X(k));endz1=z1+l*P(j);z2=z2+l*Q(j);endfor j=2:nl=1;for k=1:j-1l=l*(s-X(k))/(X(j)-X(k));endfor k=j+1:nl=l*(s-X(k))/(X(j)-X(k));endz1=z1+l*P(j); %通过循环求的函数y1的Lagrange插值多项式z1 z2=z2+l*Q(j); %通过循环求的函数y2的Lagrange插值多项式z2 endI1=int(z1,s,0,1); % z1对s在0-1上求定积分I1=eval(I1) %用小数形式表示I1I2=int(z2,s,0,1); % z2对s在0-1上求定积分I2=eval(I2) %用小数形式表示I2x=3.10:0.0001:3.20;y0=pi;y1=I1;y2=I2;plot(x,y0,'r') %红线为圆周率π的真实值hold onplot(x,y1,'g') %绿线为公式1所求值hold onplot(x,y2,'b') %蓝线为公式2所求值运行结果:从图中可以看出,当n=6时绿线很接近红线即圆周率π的真实值,而蓝线则偏离较远,当n=11时,绿线基本与红线重叠,而蓝线相对之前来说也减小偏差。

圆周率的近似计算

圆周率的近似计算

西安交通大学数学实验报告实验题目:圆周率的近似计算填写报告日期:2013年6月3日一、实验目的1.学会用MATLAB 软件对圆周率进行数值积分计算,求出近似值;2.学会用蒙特卡罗法求解几何体体积;二、实验任务1.对P89页示例4,利用矩形、和抛物线形方法求近似值,并与书上的方法进行比较,看哪种方法收敛速度快?2.完成P92页练习5第2题.三、问题分析与求解分析:(1)梯形公式:依次取每个极小区间中点为i ξ,利用积分式∑⎰=→=+ni i f dx x xi 10max102)(11lim ξ i x ∆计算圆周率π的近似值 (2)矩形公式:依次取每个区间某一端点i x ,利用计算圆周率π的近似值。

(3)抛物线公式:利用计算圆周率π的近似值。

1()d ()Δ,nbi i ai f x x f x x =≈∑⎰2221()d ()d i i nbx ax i f x x f x x-==∑⎰⎰2. 蒙特卡罗法求解冰淇淋体积:在区域{(x,y,z)|x 2 + y 2 ≤ 1,0 ≤x,0≤y, 0≤ z ≤2}内随机取点,对落在冰淇淋体第一卦限内的点进行计数,则落在冰淇淋内的点数m 与落在长方体区域内的点数n 的比值等于体积的比值.故V (冰淇淋)= nm8。

(1)圆周率的数值积分计算矩形方法程序: n=5000 i=0:1/n:1; s=0;for k=1:length(i)s=s+(1/(1+i(k)^2))*1/n; end 4*s 运行结果:抛物线方法程序:n=5000;i=0:1/n:1;s=0;for k=2:length(i)/2s=s+((1/(1+i(2*k-2)^2))+(4/(1+i(2*k-1)^2))+(1/(1+i(2*k)^2))); end8/(6*n)*s运行结果:与书中方法对比,易得抛物线形公式收敛速度最快。

(2)蒙特卡罗法求冰淇淋体积程序:cs=0n=500000for i=1:na=rand(1,3);if a(1)^2+a(2)^2<=4*a(3)-(2*a(3))^2&a(1)^2+a(2)^2<=(2*a(3))^2;cs=cs+1;endendV=8*cs/n运行结果:评论:使用蒙特卡罗法计算冰淇淋的体积,存在较大的随机性,实验结果与理论值相差较大。

MATLAB数学实验

MATLAB数学实验

实验三 圆周率的计算学号: 姓名:XX一、 实验目的1. 本实验涉及概率论、定积分、三角函数等有关知识,要求掌握计算π的三种方法及其原理。

2. 学习和掌握数学软件MATLAB 的使用方法。

二、 实验内容圆周率是一个极其驰名的数。

从有文字记载的历史开始,这个数就引起了外行人和学者们的兴趣。

作为一个非常重要的常数,圆周率最早是出于解决有关圆的计算问题。

仅凭这一点,求出它的尽量准确的近似值,就是一个极其迫切的问题了。

事实也是如此,几千年来作为数学家们的奋斗目标,古今中外一代又一代数学家为此献出了自己的智慧和劳动。

回顾历史,人们对π的认识过程,反映了数学和计算技术发展情形的一个侧面。

π的研究,在一定程度上反映这个地区或时代的数学水平。

德国数学家康托说:“历史上一个国家所算的圆周率的准确程度,可以作为衡量这个国家当时数学发展水平的指标。

”直到19世纪初,求圆周率的值还是数学中的头号难题。

1. 圆周率的计算方法古人计算圆周率,一般是用割圆法。

即用圆的内接或外切多边形来逼近圆的周长。

Archomedes 用正96边形得到35位精度;刘徽用正3072边形得到5位精度;Ludolph V an Ceulen 用正2^62边形得到了35位精度。

这种基于几何的算法计算量大,速度慢,吃力不讨好。

随着数学的发展,数学家们在进行数学研究时有意无意得发现了许多计算圆周率的公式。

下面挑选一些经典的常用公式加以介绍。

除了这些经典公式外,还有很多其他公式和由这些经典公式衍生出来的公式,就不一一列举了。

1) Machin 公式2391a r c t a n451a r c t a n 16-=π ()121...753arctan 121753--++-+-=--n x x x x x x n n 这个公式由英国天文学教授John Machin 于1706年发现。

他利用这个公式计算到100位的圆周率。

Machin 公式每计算一项可以得到1.4位的十进制精度。

圆周率的近似计算

圆周率的近似计算

实验二π 的近似计算一.实验目的1.了解π 的计算历程2.理解和掌握近似计算π的数值积分法、蒙特卡罗(Monte Carlo )法、韦达公式、级数法、拉马努金公式、迭代法等方法的原理和过程。

3.学习、掌握Mathematica 和MATLAB 的应用环境及其基本功能,通过一些练习掌握其基本的操作及相关命令。

二.实验内容1.运用数值积分法来近似计算π的值。

2.利用蒙特卡罗(Monte Carlo )法来近似计算π的值。

3.利用韦达(VieTa )公式近似计算π4.利用级数来近似计算π:(1) 莱布尼茨级数 ∑∞=+-=1212)1(4n nn π (2) 欧拉级数∑∞==12216n n π 和∑∞=+=022)12(18n n π 5.利用拉玛努金(Ranmaunujan )公式来近似逼近计算π值n n n n n 396263901103)!()!4(980122104+=∑∞=π 三.实验准备及过程π 是人们经常使用的数字常数,对π的研究已经持续了2500多年,同时今天人们还在不断的探索研究进行中。

一般有以下几种近似计算方法。

1.数值积分法 半径为1的圆称为单位圆,它的面积等于π,只要计算出它的面积,计算出了π。

以单位圆的圆心为原点建立直角坐标系,则单位圆在第一象限内的部分是一个扇形,由曲线y= (x ∈[0,1])及两条坐标轴围成,它的面积S=π/4。

算出了S 的近似值,它的4倍就是π的近似值。

(1)梯形公式设分点x 1,…,x n-1将积分区间[a,b]分成n 等份,即x i =a+i(b-a)/n,0≤i ≤n 所有的曲边梯形的宽度都是h=(b-a)/n 。

记y i =f(x i )。

则第i 个曲边梯形的面积S i 近似地等于梯形面积(y i-1+y i )h/2,将所有这些梯形的面积加起来就得到S ≈(b-a)[y 1+y 2+…+y n-1+(y 0+y n )/2]/n这就是梯形公式。

matlab实验九 π的近似计算

matlab实验九  π的近似计算

实验九π的近似计算【实验目的】1.了解圆周率π的计算历程。

2.了解计算π的割圆术、韦达公式、级数法、拉马努金公式、迭代法。

3.学习、掌握MATLAB软件有关的命令。

【实验内容】利用韦达(VieTa)公式2=π计算π的近似值。

【实验准备】1.割圆术2.韦达(VieTa)公式3.利用级数计算π4.拉马努金(Ranmaunujan)公式5.迭代方法6.π的两百位近似值【实验重点】1. 圆周率的计算历程【实验难点】1. 圆周率的各种计算公式【实验方法与步骤】练习1 用刘徽的迭代公式1162062626224,32,1n n n n x x s x x ++=--== 计算π的近似值。

相应的MATLAB 代码为>>clear;>>x=1;>>for i=1:30>>x=vpa (sqrt(2-sqrt(4-x^2)),15)%计算精度为15位有效数字 >>S=vpa(3*2^i*x,10)>>end计算可得x = .517638********* S = 3.105828541x = .261052384440103 S = 3.132628613x = .130806258460286 S = 3.139350203x = .654381656435522e-1 S = 3.141031951x = .327234632529735e-1 S = 3.141452472x = .163622792078742e-1 S = 3.141557608x = .818120805246955e-2 S = 3.141583892x = .409061258232818e-2 S = 3.141590463x = .204530736067660e-2 S = 3.141592106x = .102265381402739e-2 S = 3.141592517x = .511326923724832e-3 S = 3.141592619x = .255663463951308e-3 S = 3.141592645x = .127831732236766e-3 S = 3.141592651 x = .639158661510219e-4 S = 3.141592653 x = .319579330795908e-4 S = 3.141592653 x = .159789665403054e-4 S = 3.141592654 x = .798948327021645e-5 S = 3.141592654 x = .399474163511619e-5 S = 3.141592654 x = .199737081755909e-5 S = 3.141592654 x = .998685408779670e-6 S = 3.141592654 x = .499342704389851e-6 S = 3.141592654 x = .249671352194927e-6 S = 3.141592654 x = .124835676097464e-6 S = 3.141592654 x = .624178380487320e-7 S = 3.141592654 x = .312089190243660e-7 S = 3.141592654 x = .156044595121830e-7 S = 3.141592654 x = .780222975609150e-8 S = 3.141592654 x = .390111487804575e-8 S = 3.141592654 x = .195055743902288e-8 S = 3.141592654 x = .975278719511453e-9 S = 3.141592654练习2 用韦达公式2=π计算π的近似值。

用MATLAB编程求π值

用MATLAB编程求π值

上海电力学院高级程序设计(C)课程设计报告题目:用MATLAB编程求π院系:计算机科学与技术学院专业年级:信息安全2012级学生姓名:涂桂花学号:20123333指导教师:魏为民2015年3月14日目录一、实验目的 (1)二、实验内容和步骤 (1)1. 操作环境 (1)2. 系统配置 (1)3. 操作步骤 (1)4. 程序源代码 (3)三、实验结果 (3)四.实验小结 (4)上 海 电 力 学 院实 验 报 告课程名称 实验项目 姓名 学号 班级 专业 同组人姓名 指导教师 魏为民 实验日期注意:报告文件名格式:学号_姓名_实验项目.doc ,电子版发邮件到afoe@ ,打印版按要求黑白打印。

一、实验目的1.了解MATLAB 编译器的功能并学会使用;2.学会使用MATLAB 语言编写简单的程序;3.用下列公式 求π值,并了解π的其他公式。

二、实验内容和步骤1.操作环境电脑型号 华硕 X550EP 笔记本电脑操作系统 Windows 7 旗舰版 64位 SP1 ( DirectX 11 ) 2.系统配置处理器 AMD E1-2100 APU with Radeon HD Graphics 双核 主板 华硕 X550EP ( AMD 未知(1536h) ) 内存4 GB ( DDR3 1600MHz )主硬盘 日立 HGST HTS545050A7E680 ( 500 GB / 5400 转/分 )显卡ATI Radeon HD 8210 ( 512 MB / 华硕 )显示器 奇美 CMO15A7 ( 15.7 英寸 ) 光驱 松下 DVD-RAM UJ8C2 S DVD 刻录机 声卡 瑞昱 High Definition Audio @网卡 瑞昱 RTL8168/8111/8112 Gigabit Ethernet Controller / 华硕3.操作步骤3.1打开MATLAB 编辑器,如图1-1所示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

开放性数学实验报告
(2016 / 2017学年第 2学期)
题目:基于MATLAB的圆周率近似计算
专业通信工程
学生姓名杨坤冯著豪周李鑫
班级学号 B******** B******** B********
指导教师赵礼峰
指导单位南京邮电大学理学院
日期 2017/5/20
MATLAB圆周率的近似计算
B16011115 杨坤 B16011110 冯著豪 B16011124周李鑫
摘要:圆周率(Pi)是圆的周长与直径的比值,一般用希腊字母π表示,是一个在数学及物理学中普遍存在的数学常数。

π也等于圆形之面积与半径平方之比。

是精确计算圆周长、圆面积、球体积等几何形状的关键值。

在分析学里,π可以严格地定义为满足sin x = 0的最小正实数x。

计算圆周率一直是很多人的追求。

在电子计算机还没有发明的时候就有很多先贤用各种方法计算了圆周率的近似值最著名的应该是祖冲之,他计算出了圆周率的位数达到了小数点后七位。

该记录在世界范围内保持了八百年。

之后圆周率的计算进入了分析法时期,这一时期人们开始利用无穷级数或无穷连乘积求π,摆脱可割圆术的繁复计算。

无穷乘积式、无穷连分数、无穷级数等各种π值表达式纷纷出现,使得π值计算精度迅速增加。

在分析法的基础上,电子计算机的出现使得圆周率的计算精度大幅提高。

计算圆周率已经成为评判超级计算机的性能指标的项目之一。

如今个人计算机的性能也达到了一个极高的程度。

学习使用计算机计算圆周率可以帮助我们更好地学习matlab同时对数学也会有更深的理解。

关键词:圆周率计算;投点法;定积分计分法;幂级数;韦达公式
一、问题分析
计算圆周率有很多方法,不同方法之间自然也有好坏之分。

在强大的计算机性能的支持下,我们能使用不同的方法计算圆周率并且感受不同方法孰优孰劣。

首先我们需要了解不同的计算方法是怎么计算圆周率的,然后使用matlab编写代码帮助我们实现算法,计算出圆周率。

二、实验方法
1.投点法:
投点法,顾名思义就是通过投点计算圆周率。

在一个边长为1的正方形里以1为半径画一个四分之一圆,再向正方形里投点,在概率的学习中我们知道,大量地向这个正方形中投点时,在投的点足够多的前提下,落在四分之一扇形里的点与投的所有点的个数之比应该为扇形与整个正方形的面积之比。

扇形的面积为四分之一圆,即1/4*pi,正方形的面积为1.设投n个点,落在扇形里的点的个数为count即可推出pi=4*(count/n)。

代码如下:
count=0;
ezplot('x^2+y^2=1',[0,1,0,1]),hold on ,grid on
n=10000;
for i=1:1:n
x=rand(1,1);
y=rand(1,1);
plot(x,y,'*'),hold on
pause(0.001)
if x^2+y^2<=1
count=count+1;
end
end
p=4*(count/n)
投200个点时多次运行分别获得以下结果:
3.3600 3.0600 3.1800 3.1400 3.1800
可见这时所得的结果并不稳定,且结果并不精确于是继续实验投一千个点。

多次实验后得出以下结果
3.1040 3.1120 3.2200 3.1520 3.0560 3.1280
此时的精确度仍然不尽人意,于是我们直接投了一万个点
此时得到了以下结果
3.1376 3.1355 3.1413 3.1415 3.1490 3.1457 此时基本达到了两位小数的精确度 于是我们更改投点个数得到以下结果
投100000个点时:3.1415 3.1414 3.1414 3.1413
当我们准备投更多点时发现投点法消耗太多计算机资源,已经无法投太多的点了。

投点法计算圆周率利用了计算机的高性能,但是性能的使用效率并不太高。

2. 定积分积分法
∫11+x
2
1
dx =π4
π
=4∫11+x 2
dx 10
将区间[0,1]分成n 等份,在每个小区间上,选中点为ξi ,使用积分的方法计算π的近
似值。

代码如下:
n=50;%等分积分区间数。

i=0:1/n:1; s=0;
for k=1:length(i)-1
s=s+(1/(1+((i(k)+i(k+1))/2)^2))*1/n; end
vpa (4*s ,20)
相比于投点法,该方法以较高的效率使用了计算机资源达到了更高的精度,当n=100,000,000时,精度达到了小数点后十二位。

3.幂级数
幂级数的方法有很多,我们学习了使用arctan(x)的Maclaurin展开式计算π的近
似值,π=4arctan1=4(1−1
3+1
5
−⋯+(−1)n+1
2n−1
+⋯
代码如下
n=10; %展开次数
s=0;
digits(50) %计算精度
for k=1:n
s=s+4*(-1)^(k+1)/(2*k-1);
end
vpa(s,20)
该计算方法能比较准确地得出较高精度的圆周率的近似值4.韦达公式
根据韦达在1593年给出的公式2
π=√2
2
*
√2+√2
2

代码如下:a=sqrt(2);
s=1;
n=100
for i=1:n
s=(s*a)/2;
a1=sqrt(2+a); a=a1;
end
vpa(2/s,20)
高,效率之快。

一下列出n=100时所得结果精确到100位的输出值:
3.1415926535 8979323846 2643383279 5028841971 6939937510 5820974944 5923078164 0628620899 8628034825 342117068
三、实验感想
圆周率的近似计算一直是一种挑战,经过这次研究,我们更加深刻地体会到了数学的魅力,同时也对matlab更加熟悉。

在不断的学习中,我们成长了很多。

参考文献:
【1】杨振华,郦志新《数学实验》北京:科学技术出版社,2010.2
【2】赵洪牛《高等数学》北京:高等教育出版社
【3】百度百科:圆周率。

相关文档
最新文档