圆周率是圆的周长与直径的比值,一般用希腊字母π表示,是一个在数学及物理学中普遍存在的数学常数。π也等于圆形之面积与半径平方之比。是精确计算圆周长、圆面积、球体积等几何形状的关键值。
MATLAB中的表达式pi返回值最接近基本常数π的浮点数。但是要注意,MATLAB中定义的pi与基本常数π之间的微小差异会导致计算结果出现微小的误差。例如,表达式sin(pi)(期望返回0)实际上在MATLAB中返回1.2246e-16。用户可以通过将sin(pi)的结果四舍五入来减小此误差带来的影响。
下面介绍如何利用MATLAB来计算圆周率的方法和示例:
1.作图法
利用MATLAB的作图函数plot画出sin(x)的曲线和y=0的直线,求出两条线的交点横坐标即得圆周率的近似值。程序代码如下:
上面的程序代码运行后,对所产生的二维线图中交点附近进行放大过程如下:
可以看出交点的横坐标在3.141592至3.141593之间。
2.数值求根法
利用fzero()对函数sin(x)在3附近的根进行数值求解,即可得到pi的近似值。
3.极值法
利用函数sin(x)在pi/2附近为极大值的特点,调用max()进行求解
4.数值积分法
利用四分之一圆的数值积分公式,调用数值积分函数quad()进行求解
MATLAB命令行窗口程序如下:
quad()和dblquad()分别是一维和二维的数值积分计算函数,新版的MATLAB建议用integral()和integral2()函数来替代。
5.蒙特卡洛法
蒙特卡洛法计算pi的原理如下面视频所示
MATLAB程序代码如下:
程序运行后可以得到
6.级数法
MATLAB程序代码如下:
在MATLAB命令行窗口调用函数chud_pi()可以得到如下结果
7.调用vpa()函数
直接调用vpa()函数可以显示pi的小数点后众多位数。
以上内容部分选自2019年最新出版的《高等光学仿真(MATLAB)——光波导,激光(第3版)》,欢迎参考(点击下方图片了解更多)。