蒙特卡罗模拟计算定积分(R)
参考资料:概率论与数理统计教程第二版(茆诗松)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)相关推荐
- 蒙特卡罗模拟_Stata博文 | 使用蒙特卡罗模拟计算功率part 1:基础知识
功率和样本大小的计算是科学研究计划的重要组成部分.可以使用Stata的power命令来计算许多常用统计测试的功率和样本大小需求.但对于更复杂的模型是没有简单公式的,如多层/纵向模型和结构方程模型(SE ...
- 【R】随机模拟计算定积分
题目:分别用随机投点法与平均值法计算定积分: 1 随机投点法 ▲分析 ▲代码 library(ggplot2) x <- seq(0,1,0.001) #生成[0,1]序列,步长0.001 h= ...
- 第7节 蒙卡模拟计算路径依赖型期权价格
第7节 蒙卡模拟计算路径依赖型期权价格 7.1 简介 7.2 蒙卡模拟计算回望/亚式期权算法 7.3 算法 Python 代码实现 7.4 计算示例 7.5 相关说明 7.5.1 由均匀分布产生正态分 ...
- matlab历史模拟法计算var,历史模拟法、蒙特卡罗模拟法计算VaR和ES值
一.知识点介绍 1.1 历史模拟法 我们在之前有用到Delta-Normal的GARCH和RiskMetrics方法来计算VaR和ES,假设的是残差满足正态分布,对残差进行二次相关序列的建模并拟合残差 ...
- java使用蒙特卡罗方法计算半径为r圆的面积_不用微积分,如何计算圆面积
选自medium 作者:Andre Ye 机器之心编译 机器之心编辑部 杀鸡用牛刀,我们用机器学习方法来算圆的面积. 询问任何人圆的面积是多少,他们都会告诉你不就是r²吗.但如果你问他们为什么,他们很 ...
- Python蒙特卡罗(Monte Carlo)模拟计算投资组合的风险价值(VaR)
最近我们被客户要求撰写关于风险价值(VaR)的研究报告,包括一些图形和统计输出. 如何使用Python通过蒙特卡洛模拟自动计算风险值(VaR)来管理投资组合或股票的金融风险. 金融和投资组合风险管理中 ...
- 二维蒙特卡洛模拟居里温度_蒙特卡罗方法计算居里温度(上)
声明:旨在自学一些物理概念和计算方法后整理的笔记和心得,本文基于Kotze先生的Introduction to Monte Carlo methods for an Ising Model of a ...
- 如何用R进行蒙特卡罗模拟(Monte Carlo Simulation with R)
本文所讲的蒙特卡罗模拟是建立在正态分布的基础上.假设我们给定一只股票的初始价格P0, 并且从历史日度数据估计出该股票的每日期望回报率为 mean.logret, 标准差为sd.logret. ( 在估 ...
- python计算定积分_python编程通过蒙特卡洛法计算定积分详解
这篇文章主要介绍了python编程通过蒙特卡洛法计算定积分详解,具有一定借鉴价值,需要的朋友可以参考下. 想当初,考研的时候要是知道有这么个好东西,计算定积分...开玩笑,那时候计算定积分根本没有这么 ...
- **蒙特卡洛计算定积分VC++**
蒙特卡洛计算定积分VC++ 1.蒙特卡洛简介 蒙特卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统 ...
最新文章
- UVA 10515 - Powers Et Al.(数论)
- 重装windows后 用live cd修复ubuntu启动gurb
- 下载安装oracle旧版本oracle 12c的详细步骤
- Spring入门5.事务管理机制
- 【高清截图】UbuntuKylin 14.04 桌面版安装步骤
- 小汤学编程之JAVA基础day06——面向对象(一):类与对象
- Spring @Async配置4. 基于@Async无返回值调用 使用的方式非常简单,一个标注即可解决所有的问题: 1 @Async //标注使用 2 public void asyncMe
- taskkill 命令:
- 如何在Eclipse中从XSD生成XML
- ActiveMQ面试题
- c# winform 设置winform进入窗口后在文本框里的默认焦点
- Hibernate学习笔记:数据库连接的配置
- FISCO BCOS Solidity 智能合约 接收数组参数
- 跳级全奖进哈佛,连马云都忌惮三分,赚18个亿后隐退美国,如今的他在干什么?
- 八,分隔符,其他符号和数据的讲解
- python键盘上下左右控制_【322】python控制键盘鼠标:pynput
- 【前端面试】04 HTTP协议
- matlab生成高速轨道不平顺谱,国内外高速铁路轨道不平顺谱对比与思考.pdf
- 运维部门工作总结_运维部年终工作总结范文
- THE BUTTON OF HABIT IS ON