您所在位置:网站首页 > 海量文档
 > 计算机 > matlab
用MATLAB近似计算pi的报告.doc6页
本文档一共被下载:次,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
2012—2013学年第1学期
合肥学院卓越工程师班
实验报告
实验名称: π的近似值计算
实验类别: 综合性
专业班级: 11级自动化卓越计划班
实验时间: 2012.10.12
组 别: 第八组
指导教师: 王贵霞
一. 小组成员(具体分工)姓名学号具体分工 陆士明 1105011021 主要程序的编写 关俊宏 1105011042 案例分析与解决方案 周健1 1105011034 对实验结果分析及汇总二. 实验目的通过计算π的近似值,熟悉matlab中关于级数的运算。三. 实验内容1:用级数来求π的近似值;
2:在c语言中求出π的近似值;四. 实验步骤(具体实施过程)方案一:用级数来求π的近似值
利用基于的级数来算的近似数:
=16—4=16
。
方案二:用级数求π的近似值
利用高斯公式:
=48+32—20计算的近似值。
方案三:在c语言中求出π的近似值
在visual c++中输入程序,利用拉马努金公式:
=计算的近似值。通过输入不同的n的值得到不同精确度的π的值。
五.实验程序(经调试正确的源程序的级数来算的近似数
>> clear;
>> digits(160);
>> syms x
>> x=sym(0);
>> for k=1:15
k
x=x+sym(-1)^sym((k)-sym(1))/(sym(2)*sym(k)-sym(1))*(sym(16)/sym(5)^(sym(2)*sym(k)-sym(1))-sym(4)/sym(239)^(sym(2)*sym(k)-sym(1)));
vpa(x,40)
vpa(vpa(pi,60)-x,5)
end
方案二:利用高斯公式
clear;
digits(160);
syms x
x=sym(0);
for k=1:20
k
x=x+sym(-1)^(sym(k)-sym(1))/(sym(2)*sym(k)-sym(1))*(sym(48)/sym(18)^(sym(2)*sym(k)-sym(1))+sym(32)/sym(57)^(sym(2)*sym(k)-sym(1))-sym(20)/sym(239)^(sym(2)*sym(k)-sym(1)));
vpa(x,40)
vpa(vpa(pi,60)-x,5)
End
方案三:在visual C++ 中利用拉马努金公式
#include
#include
double fun(int n)
{
double s1,s2=1.0,s3=1.0,s4,s;
s1=(2*sqrt(2))/9801;
int i;
for(i=1;i<=n;i++)
{
s2=s2*i;
}
int j;
for(j=1;j<=4*n;j++)
{
s3=s3*j;
}
s4=(1103+26390*n)/pow(396,4*n);
s=s1*s3/pow(s2,4)*s4;
return s;
}
double main()
{
int n;
double s;
printf("请输入所要计算前多少项的和:n\n");
scanf("n=%d",&n);
s=fun(n);
printf("%lf\n",1.0/s);
}六.实验结果(列举2-3个)从方案一中可以知道:
当输入不同的k值时可以得到不同精度的π值。
k =1
ans =3.183263598326359832635983263598326359833
ans =-0.041671
k =2
ans =3.14059702932606031430453110657922889815
ans =0k =3
ans =3.141621029325034425046832517116408069706
ans =-0.000028376
k =4
ans =3.141591772182177295018212291112329795027
ans =8.8141e-7
k =5
ans =3.14159268240439951724025983607357586049
ans =-2.8815e-8
k =6
ans =3.14159265
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名:
验证码:
匿名?
发表评论