Matlab--蒙特卡洛方法求pi值

蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。与它对应的是确定性算法。蒙特·卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。蒙特卡洛

蒙特卡洛方法是通过采集大量样本,然后逐渐逼近最优解的方法,其只要方法就是通过随机数的产生。它在金融学、数学等等方面都有很多的应用和贡献,期权定价模型的原理就是这个。

实现思想与方法:笔者就利用蒙特卡洛的思想对经典数字pi,进行数值的求解近似。我们通过计算分别落在四分之一圆及其余部分的点的个数,对落在圆内点的占比进行一个统计,最终得出pi的值。其中圆的半径是1,正方形的半径也为1.

下面看Matlab代码:

% 蒙特卡洛求pi的值
gen = 1000;
count = 0;
r=1;
theta=0:pi/100:2*pi;
x=r*cos(theta);
y=r*sin(theta);
plot(x,y)
xlim([0,1])
ylim([0,1])
title('蒙特卡洛方法求pi值')
hold on
for i = 1:gena = rand;b = rand;plot(a,b,'.')pause(0.00001)if a^2 + b^2 < 1count = count + 1;end
end
p = count/gen*4;
disp(['pi的估计值为',num2str(p)])

结果显示

因为这里打点的次数只有1000次,读者可以调试参数,不断增加gen的值,最后一定会无限接近于pi的值3.1415926…。

Matlab--蒙特卡洛方法求pi值相关推荐

  1. 看得见的算法蒙特卡洛问题——使用蒙特卡洛算法求PI值

    看得见的算法蒙特卡洛问题--使用蒙特卡洛算法求PI值 1.什么是蒙特卡洛问题 蒙特卡洛方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算 ...

  2. python学习之 利用蒙特卡洛方法计算PI值

    使用环境为python IDLE3.5. #利用蒙特卡洛方法计算PI值 from random import random from math import sqrt from time import ...

  3. 从蒙特卡洛方法计算pi值谈random模块

    计算机模拟常常需要用到随机选择的数.本文从随机数的一个简单应用开始简要地介绍Python的random模块. 使用蒙特卡洛方法计算pi值 Links:该问题来自于pudure university(普 ...

  4. matlab中用公式求pi值,matlab用π 4公式求π的近似值,直到某一项的绝对值小于10-6为止...

    求问matlab计算的几个公式以及方法. 峰值max峭度应该就是梯度了gradient曲线画图:plot(二维)plot3(三维),其他画图都用这个就够了查matlab文档 求matlab高手,这个公 ...

  5. matlab数值积分方法求pi的近似值及其比较

    求pi的近似值可以说是比较经典的问题了.在各种软件环境下,用过包括蒙特卡洛等各种方法求过pi的近似值.今天给大家带来通过数值积分的方法来求pi的近似值,并进行一个简单的误差分析 clear; clc; ...

  6. matlab蒙特卡洛方法求积分,matlab-蒙特卡洛法估计积分值

    <matlab-蒙特卡洛法估计积分值>由会员分享,可在线阅读,更多相关<matlab-蒙特卡洛法估计积分值(6页珍藏版)>请在人人文库网上搜索. 1.西安交通大学实验报告课程: ...

  7. 【MPI高性能计算】蒙特卡洛方法计算pi值

    蒙特卡洛方法 就是通过概率模拟来近似计算. 其实算法进度不是很高. 代码 在下面代码中的input文件中的内容是 10000000 运行效果:下面用四个核来做计算 PS D:\C++\VS\repo\ ...

  8. 蒙特卡洛方法求圆周率

    基于Julia语言的蒙特卡洛方法求圆周率 π \pi π 原理: ( x , y ) (x,y) (x,y)是平面上的一点,其中 x , y x, y x,y 服从均匀分布 U ( − 1 , 1 ) ...

  9. 程序实现蒙特卡洛算法计算PI值和积分

    蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法.是 ...

最新文章

  1. fastJson的使用
  2. MySQLRPM安装
  3. poj 1085 Triangle War 博弈论+记忆化搜索
  4. MYSQL主从复制—master-salve
  5. 台式电脑如何设置开机密码_网络安全小黑板|如何设置开机密码
  6. 把骆驼命名法的变量,变为大写字母变小写且之前加下划线
  7. 下图为双总线结构机器的数据通路_PDPS机器人虚拟调试 弧焊仿真 第一课 弧焊项目创建...
  8. 如何找到ABAP里被动态调用的update function module
  9. 正则表达式(括号)、[中括号]、{大括号}的区别
  10. EntityFramework中常用的数据删除方式
  11. 科研_研究生学术论文写作方法
  12. Oracle数据库下载安装教程
  13. 达信:深度解读COSO新版企业风险管理框架(ERM)
  14. 突然发现浏览器广告拦截插件原理
  15. Taro 周报 #7: 收获「e代驾」案例,发布 v2.2.16 和 v3.2.0-canary.2
  16. VHDL:设计一个四位并行加法器和16位ALU(代码思路清晰易懂)
  17. Mybatis面向接口编程
  18. 设置大小合适的Win7休眠文件Hiberfil.SYS
  19. 融合通讯四大关键词和三个应用场景
  20. VmatrixOJ--解码游戏

热门文章

  1. SVN使用教程(详细)
  2. R730 LCD屏提示:PDR1016 drive 7 removed from disk drive bay 1.Check drive.R730 LCD屏提示:PDR1016 drive 7 r
  3. c语言指数爆炸月球,指数爆炸带来的震撼
  4. OSChina 周五乱弹 ——如何请假回家追妹子
  5. python脱离环境运行_脱离Python环境运行的问题所使用的工具介绍
  6. 开源的ERP:WebERP
  7. oracle,MyIbats sql [17004] 无效的列类型
  8. Java-String的用法
  9. Win 系统 CUDA 环境配置及卸载
  10. C++控制台程序(文字小游戏)