参考资料:概率论与数理统计教程第二版(茆诗松)4.3

定积分线性变换(换元法)

对于一般区间[a,b]上的定积分:

可以作线性变换y=(x-a)/(b-a),转化为[0,1]区间上的积分:

,此时:

其中,

蒙特卡罗模拟

随机投点法(伯努利大数定律)

设二维随机变量(X,Y)服从上的均匀分布且独立。

记事件,其概率为:

用蒙特卡罗方法随机投点,将(X,Y)看成正方形内以均匀分布随机投的点,计算随机点落在区域A中的频率(即发生的次数占比),当n很大时,该频率作为的近似概率值(伯努利大数定律)。

例如,计算

a=2
b=3
g=function(x){t=x**2return(t)
}
c=g(a)
d=g(b)
f=function(y){t=1/(d-c)*(g(a+(b-a)*y)-c)return(t)
}
n=100000
m=function(n){m1=runif(n)m2=runif(n)s=0for(i in 1:n){if(m2[i]<=f(m1[i])){s=s+1}}p=s/ns0=(b-a)*(d-c)J=s0*p+c*(b-a)return(J)
}
m(n)

结果为:6.34315  6.3347  6.33895  6.3346等

平均值法(辛钦大数定理)

设随机变量X服从(0,1)上的均匀分布,则f(x)的数学期望为:

由辛钦大数定理,可以用f(x)观察值的平均值去估计数学期望。使用蒙特卡罗模拟,先生成n个(0,1)上的均匀分布随机数(n足够大),再由这些随机数确定f(x)观察值的平均值:

例如,计算

a=2
b=3
g=function(x){t=x**2return(t)
}
c=g(a)
d=g(b)
f=function(y){t=1/(d-c)*(g(a+(b-a)*y)-c)return(t)
}
n=100000
m=function(n){m1=runif(n)p=f(m1[1])for(i in 2:n){p=(p+f(m1[i]))/2}s0=(b-a)*(d-c)J=s0*p+c*(b-a)return(J)
}
m(n)

结果为:6.350545  5.169826  7.269659  6.478476等

注:平均值容易受极端值影响,误差可能较大。

蒙特卡罗模拟计算定积分(R)相关推荐

  1. 蒙特卡罗模拟_Stata博文 | 使用蒙特卡罗模拟计算功率part 1:基础知识

    功率和样本大小的计算是科学研究计划的重要组成部分.可以使用Stata的power命令来计算许多常用统计测试的功率和样本大小需求.但对于更复杂的模型是没有简单公式的,如多层/纵向模型和结构方程模型(SE ...

  2. 【R】随机模拟计算定积分

    题目:分别用随机投点法与平均值法计算定积分: 1 随机投点法 ▲分析 ▲代码 library(ggplot2) x <- seq(0,1,0.001) #生成[0,1]序列,步长0.001 h= ...

  3. 第7节 蒙卡模拟计算路径依赖型期权价格

    第7节 蒙卡模拟计算路径依赖型期权价格 7.1 简介 7.2 蒙卡模拟计算回望/亚式期权算法 7.3 算法 Python 代码实现 7.4 计算示例 7.5 相关说明 7.5.1 由均匀分布产生正态分 ...

  4. matlab历史模拟法计算var,历史模拟法、蒙特卡罗模拟法计算VaR和ES值

    一.知识点介绍 1.1 历史模拟法 我们在之前有用到Delta-Normal的GARCH和RiskMetrics方法来计算VaR和ES,假设的是残差满足正态分布,对残差进行二次相关序列的建模并拟合残差 ...

  5. java使用蒙特卡罗方法计算半径为r圆的面积_不用微积分,如何计算圆面积

    选自medium 作者:Andre Ye 机器之心编译 机器之心编辑部 杀鸡用牛刀,我们用机器学习方法来算圆的面积. 询问任何人圆的面积是多少,他们都会告诉你不就是r²吗.但如果你问他们为什么,他们很 ...

  6. Python蒙特卡罗(Monte Carlo)模拟计算投资组合的风险价值(VaR)

    最近我们被客户要求撰写关于风险价值(VaR)的研究报告,包括一些图形和统计输出. 如何使用Python通过蒙特卡洛模拟自动计算风险值(VaR)来管理投资组合或股票的金融风险. 金融和投资组合风险管理中 ...

  7. 二维蒙特卡洛模拟居里温度_蒙特卡罗方法计算居里温度(上)

    声明:旨在自学一些物理概念和计算方法后整理的笔记和心得,本文基于Kotze先生的Introduction to Monte Carlo methods for an Ising Model of a ...

  8. 如何用R进行蒙特卡罗模拟(Monte Carlo Simulation with R)

    本文所讲的蒙特卡罗模拟是建立在正态分布的基础上.假设我们给定一只股票的初始价格P0, 并且从历史日度数据估计出该股票的每日期望回报率为 mean.logret, 标准差为sd.logret. ( 在估 ...

  9. python计算定积分_python编程通过蒙特卡洛法计算定积分详解

    这篇文章主要介绍了python编程通过蒙特卡洛法计算定积分详解,具有一定借鉴价值,需要的朋友可以参考下. 想当初,考研的时候要是知道有这么个好东西,计算定积分...开玩笑,那时候计算定积分根本没有这么 ...

  10. **蒙特卡洛计算定积分VC++**

    蒙特卡洛计算定积分VC++ 1.蒙特卡洛简介 蒙特卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统 ...

最新文章

  1. UVA 10515 - Powers Et Al.(数论)
  2. 重装windows后 用live cd修复ubuntu启动gurb
  3. 下载安装oracle旧版本oracle 12c的详细步骤
  4. Spring入门5.事务管理机制
  5. 【高清截图】UbuntuKylin 14.04 桌面版安装步骤
  6. 小汤学编程之JAVA基础day06——面向对象(一):类与对象
  7. Spring @Async配置4. 基于@Async无返回值调用 使用的方式非常简单,一个标注即可解决所有的问题: 1 @Async //标注使用 2 public void asyncMe
  8. taskkill 命令:
  9. 如何在Eclipse中从XSD生成XML
  10. ActiveMQ面试题
  11. c# winform 设置winform进入窗口后在文本框里的默认焦点
  12. Hibernate学习笔记:数据库连接的配置
  13. FISCO BCOS Solidity 智能合约 接收数组参数
  14. 跳级全奖进哈佛,连马云都忌惮三分,赚18个亿后隐退美国,如今的他在干什么?
  15. 八,分隔符,其他符号和数据的讲解
  16. python键盘上下左右控制_【322】python控制键盘鼠标:pynput
  17. 【前端面试】04 HTTP协议
  18. matlab生成高速轨道不平顺谱,国内外高速铁路轨道不平顺谱对比与思考.pdf
  19. 运维部门工作总结_运维部年终工作总结范文
  20. THE BUTTON OF HABIT IS ON

热门文章

  1. 数据库系统的核心:数据模型
  2. 通俗地讲一下Web是什么意思。
  3. lae界面开发工具入门之介绍七--组件篇-文本篇
  4. Widows 和Linux 查看端口和杀掉进程的方法
  5. MATLAB车辆路径或物流分配或生产调度问题实例设计和代码
  6. dns欺骗及wincap开发问题总结
  7. matlab 火柴人_小波分析检测信号奇异点matlab代码
  8. Python的文献计量分析流程实现--含代码
  9. OAS的使用——概述
  10. 领导者激励团队的最佳方法