圆周率是圆的周长与直径的比值,一般用希腊字母π表示,是一个在数学及物理学中普遍存在的数学常数。π也等于圆形之面积与半径平方之比。是精确计算圆周长、圆面积、球体积等几何形状的关键值。

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版)》,欢迎参考(点击下方图片了解更多)。

matlab或_如何利用MATLAB计算圆周率相关推荐

  1. 利用Matlab进行灰色预测,利用matlab进行灰色预测.pdf

    利用matlab进行灰色预测,灰色预测matlab程序,灰色预测模型matlab,matlab灰色预测,matlab灰色预测代码,matlab灰色预测工具箱,灰色预测的matlab程序,matlab灰 ...

  2. matlab ploty,matlab绘制函数 如何利用matlab的ploty

    最近有网友提出"matlab绘制函数 如何利用matlab的ploty"等问题,小小知识站提取了各大知名网站有关"matlab绘制函数 如何利用matlab的ploty& ...

  3. 利用泰勒级数计算圆周率

    作者:周竞文(jwzhou@nudt.edu.cn) 来源:- 领域:数学 难度:★★★ 任务描述 背景 任务 相关知识 编程要求 测试说明 任务描述 背景 上关利用泰勒级数计算圆周率,测试结果如下( ...

  4. matlab std函数_如何利用Matlab进行小波分析

    小波分析(wavelet analysis), 或小波转换(wavelet transform)是指用有限长或快速衰减的.称为母小波(mother wavelet)的振荡波形来表示信号.该波形被缩放和 ...

  5. matlab sheet名字,MATLAB得到excel多个非默认sheet名_怎样利用matlab去读取一个excel表中多个sheet的数据并导入一个sheet中?...

    如何用matlab读取一个excel表格中的若干个工作表 如果数字: xlsread('e:/shiyanshuju/shiyanbiaoge','sheet1','B1:D1440') 最好个表格放 ...

  6. matlab里滑动变阻器,利用MATLAB作图分析滑动变阻器大小的选择

    科学教 育研 究 2011年 第 10期 读 写算 利用MATI,=AB作图分析滑动变阻器大小 的选择 左 洁 (泗阳中学高中部 江苏 泗阳 223700) [摘 要 1用MATLAB~图功能即通过表 ...

  7. matlab最小错误率决策,利用MATLAB实现最小错误率贝叶斯判别

    利用MATLAB实现最小错误率贝叶斯判别 摘要:matlab软件平台为用户提供了强大的科学计算与可视化功能,具有简单.易用的用户环境,尤其适合矩阵数据的计算处理.根据matlab的特点,将其与模式识别 ...

  8. matlab 进行非线性回归,5.利用Matlab编程进行非线性回归分析.doc

    5.利用Matlab编程进行非线性回归分析.doc §5. 利用Matlab编程计算非线性回归模型 --以Logistic曲线为例 1.原始数据 下表给出了某地区1971-2000年的人口数据(表1) ...

  9. matlab文件批量命名,利用MATLAB批量对文件重命名

    利用MATLAB批量对文件重命名 tags: MATLAB 科研软件 序 窃·格瓦拉 没paper,实验肯定要做啊,不做就毕不了业 . 编程这方面,编程是不可能编程的,这辈子不可能编程的 . pape ...

最新文章

  1. python交互模式设置及VIM的tab补齐
  2. 深入源码分析Java线程池的实现原理
  3. 坐地起价、山寨横行、人身骚扰:割韭菜的刀,还是“搬家公司”快
  4. 国家邮政局公布一项数据 春节期间快递数量依旧很猛!
  5. java使用场景什么意思_Java开发中类隐藏及应用场景分析是什么?
  6. delphi7下实现http的post_ASP.NET Core Web API 实现过程
  7. 大数据-实时推荐系统最主流推荐系统itemCF和userCF视频教程下载
  8. 编写IOCP时的几个注意事项(Mirosoft)
  9. 开启“互联网+”模式打造智能移动APP巡检系统
  10. hadoop学习笔记01
  11. python学习笔记 - 函数: 传参列表副本(不改变列表本身)
  12. 鸿蒙系统怎么连wifi,鸿蒙入门:Hi3861 WiFi操作,热点连接
  13. 28款超级绿色版杀软,奉献给各位!【迅雷下载】
  14. RFID EPC Class1 Gen2电子标签笔记
  15. 淘宝无线端一键直达微博自助生成工具
  16. 【QT】通过QT_QPA_EGLFS_KMS_CONFIG宏来解决arm32环境下QT界面设置为透明却黑屏的问题
  17. 比特率,比特,字节的计算
  18. 三层交换机也不贵:自己动手做三层交换机
  19. Java简单循环依赖的解决 —— spring_imitate(Spring的模仿)
  20. unity游戏开发之打包apk谷歌上架报错总结

热门文章

  1. 人脸识别python face_recognize_【python+face_recognition】人脸识别初始
  2. c语言字符串子串查找_字符串操作的全面总结
  3. mysql脚本简书,mysql一键安装脚本
  4. redis 命令 释放连接_redis scan命令导致redis连接耗尽,线程上锁的解决
  5. amd核芯显卡控制面板自定义分辨率_玩家 | 独立显卡和核芯显卡哪个更香?
  6. 【Python教程】七种创建对象的方式,你知道几种?
  7. Python基础教程:type()函数-动态创建类
  8. Python标准库 数学与随机数 (math包,random包)
  9. Python处理正则表达式超时的办法
  10. 综合实例_管线综合支吊架施工实例赏析,工艺流程全面