[图形学]蒙特卡洛积分方法介绍及其方差计算

一、简介

本文介绍了蒙特卡洛积分算法的基本原理和其误差计算。

二、蒙特卡洛积分介绍

1. 介绍

蒙特卡洛积分算法是一种数值积分算法,用于对复杂函数进行积分。
例如,对于目标积分函数:
∫ a b f ( x ) d x (1) \int_{a}^{b}f(x)\rm{d}x \tag{1} abf(x)dx(1)
其中 f ( x ) f(x) f(x)很复杂,无法找到解析解。我们可以在 f ( x ) f(x) f(x)的定义域 [ a , b ] [a,b] [a,b]上按照任意的概率密度函数 p ( x ) p(x) p(x)进行采样。并统计采样的随机变量的样本期望:
F N = 1 N ∑ i = 1 N f ( x i ) p ( x i ) (2) F_N = \frac{1}{N}\sum_{i=1}^{N}\frac{f(x_{i})}{p(x_{i})} \tag{2} FN=N1i=1Np(xi)f(xi)(2)
可以保证:
E ( F N ) = ∫ a b f ( x ) d x (3) E(F_N)=\int_{a}^{b}f(x)\rm{d}x \tag{3} E(FN)=abf(x)dx(3)

2. 证明

下面证明公式(3)的正确性:
E ( F N ) = E ( 1 N ∑ i = 1 N f ( x i ) p ( x i ) ) = 1 N ∑ i = 1 i = N E ( f ( x i ) p ( x i ) ) E(F_N) = E(\frac{1}{N}\sum_{i=1}^{N}\frac{f(x_{i})}{p(x_{i})}) \\ =\frac{1}{N}\sum_{i=1}^{i=N}E(\frac{f(x_i)}{p(x_{i})}) E(FN)=E(N1i=1Np(xi)f(xi))=N1i=1i=NE(p(xi)f(xi))
我们令 g ( x ) = f ( x ) p ( x ) g(x)=\frac{f(x)}{p(x)} g(x)=p(x)f(x),那么
E ( F N ) = 1 N ∑ i = 1 i = N E ( g ( x ) ) = 1 N ∗ N ∗ ∫ g ( x ) ∗ p ( x ) d x = ∫ g ( x ) ∗ p ( x ) d x = ∫ f ( x ) d x (4) E(F_N)=\frac{1}{N}\sum_{i=1}^{i=N}E(g(x)) \\ =\frac{1}{N}*N* \int_{}^{}g(x)*p(x){\rm{d}x} \\ = \int{g(x)*p(x)}{\rm{d}}x \\ =\int{f(x)}{\rm{d}x} \tag{4} E(FN)=N1i=1i=NE(g(x))=N1Ng(x)p(x)dx=g(x)p(x)dx=f(x)dx(4)
求证得证。

三、蒙特卡洛积分方差

蒙特卡洛积分算法的收敛程度可以适用其方差(标准差)表示。若其方差收敛速度很快,说明该算法可以适用较少的采样值,得到较高的积分精度,反则反之。下面对蒙特卡积分算法的方差和标准差进行计算。
下面计算蒙特卡洛积分算法的方差:
δ 2 ( F N ) = δ 2 ( 1 N ∗ ∑ i = 1 1 = N ( f ( x ) p ( x ) ) ) (5) \delta^{2}(F_N) = \delta^{2}(\frac{1}{N}*\sum_{i=1}^{1=N}(\frac{f(x)}{p(x)})) \tag{5} δ2(FN)=δ2(N1i=11=N(p(x)f(x)))(5)
根据方差的性质:
δ 2 ( c ∗ X ) = c 2 ∗ δ 2 ( X ) δ 2 ( a ∗ X + b ∗ Y ) = a 2 δ 2 ( X ) + b 2 δ 2 ( Y ) + 2 a b ∗ C O V ( X , Y ) (6) \delta^{2}(c*X) = c^{2}*\delta^{2}(X) \\ \delta^{2}(a*X+b*Y)=a^2\delta^{2}(X)+b^2\delta^{2}(Y)+2ab*COV(X,Y) \tag{6} δ2(cX)=c2δ2(X)δ2(aX+bY)=a2δ2(X)+b2δ2(Y)+2abCOV(X,Y)(6)
又因为采样的随机变量 x i x_i xi相互独立,因此:
δ 2 ( F N ) = δ 2 ( 1 N ∗ ∑ i = 1 1 = N ( f ( x ) p ( x ) ) ) = 1 N 2 ∗ ∑ i = 1 i = N δ 2 ( f ( x ) p ( x ) ) = 1 N ∗ δ 2 ( f ( x ) p ( x ) ) (7) \delta^{2}(F_N) = \delta^{2}(\frac{1}{N}*\sum_{i=1}^{1=N}(\frac{f(x)}{p(x)})) \\ =\frac{1}{N^2}*\sum_{i=1}^{i=N}\delta^{2}(\frac{f(x)}{p(x)}) \\ =\frac{1}{N}*\delta^{2}(\frac{f(x)}{p(x)}) \tag{7} δ2(FN)=δ2(N1i=11=N(p(x)f(x)))=N21i=1i=Nδ2(p(x)f(x))=N1δ2(p(x)f(x))(7)
工具公式(7)可知,蒙特卡罗积分方法的方差与采样数 N N N成反比,与 δ 2 ( f ( x ) p ( x ) ) \delta^{2}(\frac{f(x)}{p(x)}) δ2(p(x)f(x))成正比。
为了得到更为准确的结果,一方面我们可以增加采样数,即增大 N N N
另一方面我们可以尽可能地令 δ 2 ( f ( x ) p ( x ) ) \delta^{2}(\frac{f(x)}{p(x)}) δ2(p(x)f(x))小一些,由于 f ( x ) f(x) f(x)是我们待求的积分函数,无法进行修改,因此我们可以寻找一个概率密度函数 p ( x ) p(x) p(x),使得 f ( x ) p ( x ) \frac{f(x)}{p(x)} p(x)f(x)的方差尽可能的小。

四、蒙特卡洛积分与差分积分

蒙特卡洛积分和差分积分都是数值积分方法。
与差分积分方法相比,蒙特卡洛方法的计算复杂度与维度无关。它通过随机采样的方式估计积分值,即使维度增加,样本点的生成和积分估计的计算量并不会指数级增长。这意味着蒙特卡洛方法在高维问题中仍然保持高效,具有稳定的性能。
而在差分积分方法中,每增加一个维度,划分的区域数量会大幅增加,使得差分积分方法的计算复杂度呈指数级增长。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/56683.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot034在线商城系统设计与开发-代码(论文+源码)_kaic

毕 业 设 计(论 文) 题目:ONLY在线商城系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本ONLY在线商城系统…

Wordpress—一个神奇的个人博客搭建框架

wordpress简介 在当今数字化的时代,拥有一个属于自己的个人博客,不仅可以记录生活点滴、分享专业知识,还能展示个人风采。而在众多的博客搭建框架中,Wordpress 以其强大的功能和灵活性脱颖而出。今天,就让我们一起深入…

大数据研究实训室建设方案

一、概述 本方案旨在提出一套全面的大数据研究实训室建设策略,旨在为学生打造一个集理论学习与实践操作于一体的高端教育环境。实训室将专注于培养学生在大数据处理、分析及应用领域的专业技能,通过先进的设施配置、科学的课程体系和实用的实训模式&…

红黑树的底层讲解

一、红黑树的介绍 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是红(red)或黑(black)。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红…

linux环境下的程序设计与git操作

目录 前言: 进度条小程序: 先介绍几个背景知识 代码实现 Git操作 总结 其他指令 前言: 本文将重点介绍1. linux下的程序设计,并使用linux下的几个函数接口。实现一个简单的小程序 2.本着开源精神,进行git操作。…

Vue详细入门(语法【三】)

今天滴的学习目标!!! Vue组件是什么?组件的特性和优势Vue3计算属性Vue3监听属性 在前面Vue详细入门(语法【一】——【二】)当中我们学习了Vue有哪些指令,它的核心语法有哪些?今天我们…

(AtCoder Beginner Contest 375) 题解(下)

一、题解 第 E 题 3 Team Division 一眼看像背包,观察数据范围,合法的总能力值 ≤ 500 \le 500 ≤500,那么我们可以设计一个背包DP: int dp[110][510][510]; //dp[i][j][k] 表示前 i 个人,分给第一组的能力值是 j&…

微服务架构 --- 使用Seata处理分布式事务

目录 一.Seata 是什么? 1.Seata的核心架构: 2. Seata的分布式事务处理流程: 二.Seata的基本使用: 1.环境准备: 2.引入依赖: 3.加入配置来使用Seata: (1)首先在nacos上添加一…

免费版视频压缩软件:让视频处理更便捷

现在不少人已经习惯通过视频来记录生活、传播信息和进行娱乐的重要方式。但是由于设备大家现在录制的文件都会比较大,这时候就比较需要一些缩小视频的工具了。今天我们一起来探讨视频压缩软件免费版来为我们带来的生动世界。 1.Foxit视频压缩大师 链接直达&#x…

ESP32移植Openharmony外设篇(1)MQ-2烟雾传感器

外设篇 实验箱介绍 旗舰版实验箱由2部分组成:鸿蒙外设模块(支持同时8个工作)、鸿蒙平板。 其中,鸿蒙平板默认采用RK3566方案。 OpenHarmony外设模块采用底板传感器拓展板方式,底板默认采用ESP32方案,也…

青少年编程能力等级测评CPA C++一级试卷(1)

青少年编程能力等级测评CPA C一级试卷(1) 一、单项选择题(共20题,每题3.5分,共70分) CP1_1_1.在C中,下列变量名正确的是( )。 A.$123 B&#…

Redis 的安装与部署(图文)

前言 Redis 暂不支持Windows 系统,官网上只能下载Linux 环境的安装包。但是启用WSL2 就可以在Windows 上运行Linux 二进制文件。[要使此方法工作,需要运行Windows 10 2004版及更高版本或Windows 11]。本文在CentOS Linux 系统上安装最新版Redis&#xf…

【C++】unordered_set、unordered_map超详细封装过程,处理底层细节

🚀个人主页:小羊 🚀所属专栏:C 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 前言1、数据泛型2、迭代器2.1 重载2.2 begin、end2.3 const迭代器2.4 unordered_map中[]重载 3、特殊类型 总结 前…

如何设计开发RTSP直播播放器?

技术背景 我们在对接RTSP直播播放器相关技术诉求的时候,好多开发者,除了选用成熟的RTSP播放器外,还想知其然知其所以然,对RTSP播放器的整体开发有个基础的了解,方便方案之作和技术延伸。本文抛砖引玉,做个…

Unity 实战案例全解析 实现时间停止效果+世界变灰

画面里运动的那个小玩意这么写 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Partol : MonoBehaviour {public Transform pos1;public Transform pos2;public float speed;private Transform target;void Start() {target p…

前端开发攻略---取消已经发出但是还未响应的网络请求

目录 注意&#xff1a; 1、Axios实现 2、Fetch实现 3、XHR实现 注意&#xff1a; 当请求被取消时&#xff0c;只会本地停止处理此次请求&#xff0c;服务器仍然可能已经接收到了并处理了该请求。开发时应当及时和后端进行友好沟通。 1、Axios实现 <!DOCTYPE html> &…

性能测试工具JMeter

本次使用的博客系统的url&#xff1a; http://8.137.19.140:9090/blog_edit.html 1. JMeter介绍 环境要求&#xff1a;要求java&#xff0c;jdk版本大于8&#xff1b; Apache JMeter 是 Apache 组织基于 Java 开发的压⼒测试⼯具&#xff0c;⽤于对软件做性能测试&#xff1b…

带新手用一套坦克大战搞定Java核心编程

有不少在校大学生朋友私信笔者&#xff0c;觉得现在的Java教程学的比较枯燥&#xff0c;有没有能学到基础知识同时还有做项目感觉的教程。因为笔者最早接触Java时学的是马士兵老师、韩顺平老师这样的大佬当时出的教程&#xff0c;尤其印象深刻的是二位大佬的坦克大战项目&#…

基于DSP+ARM+FPGA的电能质量分析仪的软件设计

软件设计是电能质量设备的核心内容&#xff0c;上述章节详细介绍了电能质量参数的 算法&#xff0c;并且通过仿真实验进行了验证&#xff0c;本章将结合现代电能质量监测设备需求实 现算法在实际电网中应用。根据设计的电能质量分析仪的需求分析&#xff0c;进行总体的 软件…

Java筑基之路:运算符深入(下)

&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d; &#x1f947;博主昵称&#xff1a;小菜元 &#x1f35f;博客主页…