最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

数学实验报告2-圆周率的计算-mathematica

IT圈 admin 28浏览 0评论

2024年4月3日发(作者:忻晨希)

数学实验报告

实验序号: 2 日期:

2016年 月 日

班级

实验

名称

姓名

圆周率π的计算

学号

问题背景描述:

圆周率是指一个圆的周长与其直径的比值。古今中外,许多人致力于圆周率的研究。回

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

一定程度上反映着这个地区或时代的数学水平。德国数学家康托说:“历史上一个国家所算得

的圆周率的准确程度,可以作为衡量这个国家当时数学发展水平的指标。”

实验环境:

学校机房、Mathematica4.0软件、PrintScreen软件

实验目的:

首先在Mathematica环境中用多种方法计算圆周率

的值,通过实验来体会各种方法的区

别,比较各种方法的优劣,接着尝试自己提出新的方法来计算圆周率

的值。

实验理论基础和方法:

1.用Mathematica绘图函数Plot绘制圆周率

2.运用数值积分法计算圆周率:

利用半径为1的单位圆的面积等于

来求解圆周率;

3.利用泰勒级数法计算

2k1

x

3

x

5

k1

x

(1)

利用反正切函数的泰勒级数

arctanxx

352k1

4. 蒙特卡罗法计算

实验结果报告及实验总结:

一、数值积分法计算

因为单位圆的半径为1,它的面积等于

,所以只要计算出单位圆的面积,就算出了

在坐标轴上画出以圆点为圆心,以1为半径的单位圆,则这个单位圆在第一象限的部分是一

个扇形,而且面积是单位圆的1/4,于是,我们只要算出此扇形的面积,便可以计算出

。而

且单位的精度可能会影响计算的结果,下面将给出不同的n计算所得结果并讨论差异。

1. 当n=1000时

命令:

n=1000;y[x_]:=4/(1+x*x);

s1=(Sum[y[k/n],{k,1,n-1}]+(y[0]+y[1])/2)/n;

s2=(y[0]+y[1]+2*Sum[y[k/n],{k,1,n-1}]+4*Sum[y[(k-1/2)/n],{k,1,n}])/(

6*n);

Print[{N[s1,20],N[s2,30],N[Pi,30]}];

结果如下:

2. 当n=5000时

命令:

n=5000;y[x_]:=4/(1+x*x);

s1=(Sum[y[k/n],{k,1,n-1}]+(y[0]+y[1])/2)/n;

s2=(y[0]+y[1]+2*Sum[y[k/n],{k,1,n-1}]+4*Sum[y[(k-1/2)/n],{k,1,n}])

/(6*n);

Print[{N[s1,20],N[s2,30],N[Pi,30]}];

运行结果:

2024年4月3日发(作者:忻晨希)

数学实验报告

实验序号: 2 日期:

2016年 月 日

班级

实验

名称

姓名

圆周率π的计算

学号

问题背景描述:

圆周率是指一个圆的周长与其直径的比值。古今中外,许多人致力于圆周率的研究。回

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

一定程度上反映着这个地区或时代的数学水平。德国数学家康托说:“历史上一个国家所算得

的圆周率的准确程度,可以作为衡量这个国家当时数学发展水平的指标。”

实验环境:

学校机房、Mathematica4.0软件、PrintScreen软件

实验目的:

首先在Mathematica环境中用多种方法计算圆周率

的值,通过实验来体会各种方法的区

别,比较各种方法的优劣,接着尝试自己提出新的方法来计算圆周率

的值。

实验理论基础和方法:

1.用Mathematica绘图函数Plot绘制圆周率

2.运用数值积分法计算圆周率:

利用半径为1的单位圆的面积等于

来求解圆周率;

3.利用泰勒级数法计算

2k1

x

3

x

5

k1

x

(1)

利用反正切函数的泰勒级数

arctanxx

352k1

4. 蒙特卡罗法计算

实验结果报告及实验总结:

一、数值积分法计算

因为单位圆的半径为1,它的面积等于

,所以只要计算出单位圆的面积,就算出了

在坐标轴上画出以圆点为圆心,以1为半径的单位圆,则这个单位圆在第一象限的部分是一

个扇形,而且面积是单位圆的1/4,于是,我们只要算出此扇形的面积,便可以计算出

。而

且单位的精度可能会影响计算的结果,下面将给出不同的n计算所得结果并讨论差异。

1. 当n=1000时

命令:

n=1000;y[x_]:=4/(1+x*x);

s1=(Sum[y[k/n],{k,1,n-1}]+(y[0]+y[1])/2)/n;

s2=(y[0]+y[1]+2*Sum[y[k/n],{k,1,n-1}]+4*Sum[y[(k-1/2)/n],{k,1,n}])/(

6*n);

Print[{N[s1,20],N[s2,30],N[Pi,30]}];

结果如下:

2. 当n=5000时

命令:

n=5000;y[x_]:=4/(1+x*x);

s1=(Sum[y[k/n],{k,1,n-1}]+(y[0]+y[1])/2)/n;

s2=(y[0]+y[1]+2*Sum[y[k/n],{k,1,n-1}]+4*Sum[y[(k-1/2)/n],{k,1,n}])

/(6*n);

Print[{N[s1,20],N[s2,30],N[Pi,30]}];

运行结果:

发布评论

评论列表 (0)

  1. 暂无评论