蒙特卡洛方法(Monte Carlo,MC)
目录
1 序言
2 Monte Carlo法计算积分
3 最优化计算Monte Carlo法
1 序言
蒙特卡罗方法(Monte Carlo)是由冯诺依曼和乌拉姆等人发明的,“蒙特卡罗”这个名字是出自摩纳哥的蒙特卡罗赌场,这个方法是一类基于概率的方法的统称。是一种应用随机数来进行计算机模拟的方法,此方法随研究的系统进行随机观察抽样,通过对样本值的观察统计,求得所研究系统的某些参数。
2 Monte Carlo法计算积分
考虑二重积分
根据其几何意义,它是以f(x,y)为曲面顶,A为底的柱体C的体积。用下列简单思路求的近似值:假设C被包在几何体D的内部,D的体积已知,若在D内产生1个均分布的随机数,那么
P(随机数落在C内)C的体积/D的体积
现用Monte Carlo法计算:
% Monte Carlo Integration for f(x, y) = sqrt(1 - x^2) over x^2 + y^2 <= 1
clc; clear;% Number of random points
N = 1e6; % You can increase this for better accuracy% Initialize sum of function values
f_sum = 0;% Loop to generate random points and calculate contributions
for i = 1:N% Generate random (x, y) within the bounding box [-1, 1] x [-1, 1]x = -1 + 2*rand(); % Random x in [-1, 1]y = -1 + 2*rand(); % Random y in [-1, 1]% Check if the point is inside the circleif x^2 + y^2 <= 1f_sum = f_sum + sqrt(1 - x^2); % Accumulate the function valueend
end% Calculate area of the bounding box
A_box = 4; % The bounding box [-1, 1] x [-1, 1]% Calculate the integral estimate
integral_value = A_box * f_sum / N;% Display result
fprintf('Estimated value of the integral: %.6f\n', integral_value);
2.1 代码解释:
1)随机点生成:
- 在 [−1,1]×[−1,1] 内均匀生成随机点。
- 使用条件筛选落在单位圆内的点。
2)函数值累加:
- 对满足条件的点,计算 并累加到
f_sum
。
3)积分估计公式:
- 估计积分值为:
- 这里的区域面积 Abox=4 是整个采样的矩形面积。
4)效率:
- N越大,估计值越准确。
- 通过筛选 ,只在实际目标区域内计算函数值。
2.2 运算结果
N = 1e2 | 2.655043 |
N = 1e4 | 2.685272 |
N = 1e6 | 2.666568 |
N = 1e8 | 2.666756 |
3 最优化计算Monte Carlo法
求下列函数的最大值:
为了方便理解,先绘制这个函数:
% Define the function f(x)
f = @(x) (1 - x.^3) .* sin(3 * x);% Define the range for x
x = linspace(-2*pi, 2*pi, 1000); % Generate 1000 points in the range [-2*pi, 2*pi]% Compute the function values
y = f(x);% Plot the function
figure;
plot(x, y, 'b-', 'LineWidth', 1.5);
grid on;% Add labels and title
xlabel('x');
ylabel('f(x)');
title('Plot of f(x) = (1 - x^3)sin(3x)');
legend('f(x) = (1 - x^3)sin(3x)', 'Location', 'Best');
matlab运行结果如下:
在给出计算代码:
% Optimization using Monte Carlo for f(x) = (1 - x^3) * sin(3x)
clc; clear;% Number of random samples
N = 1e6; % Increase this for higher accuracy% Define the function
f = @(x) (1 - x.^3) .* sin(3 * x);% Generate random samples in the range [-2*pi, 2*pi]
x_samples = -2*pi + (2*pi - (-2*pi)) * rand(N, 1);% Evaluate the function for each sample
f_values = f(x_samples);% Find the maximum function value
f_max = max(f_values);% Find the corresponding x value(s) for the maximum
x_max = x_samples(f_values == f_max);% Display results
fprintf('Maximum value of f(x): %.6f\n', f_max);
fprintf('At x = %.6f (one of the possible values)\n', x_max(1));
3.1 代码解释
1)随机采样:
- 使用rand(N,1)生成N个均匀分布的随机数映射到区间[-2pi,2pi]中,作为函数的自变量x值。
2)函数评估:
- 定义函数,计算每个采样点上的函数值。
3)最大值搜索:
- 使用max函数找到函数值中的最大值
- 找到与最大值对应的x值。
4)输出结果:
- 输出最大值及对应的一个可能的必值(可能有多个全局最大值点)
2.2 运算结果
N = 1e2 | 191.360411 | 5.858119 |
N = 1e4 | 194.903941 | -5.814489 |
N = 1e6 | 194.906195 | -5.816071 |
N = 1e8 | 194.906195 | -5.816063 |
注:1)本篇内容均为对《MATLAB建模与仿真》(周品 赵新芬 编著,国防工业出版社)摘录与个人归纳总结,如需要更加详细了解,可阅读原书“第8章 随机模拟和统计分析”部分。
2)代码由chat gpt生成。
相关文章:
蒙特卡洛方法(Monte Carlo,MC)
目录 1 序言 2 Monte Carlo法计算积分 3 最优化计算Monte Carlo法 1 序言 蒙特卡罗方法(Monte Carlo)是由冯诺依曼和乌拉姆等人发明的,“蒙特卡罗”这个名字是出自摩纳哥的蒙特卡罗赌场,这个方法是一类基于概率的方法的统称。是一种应用随机数来进行…...
python学习笔记8-函数2
参数传递 传不可变对象 & 传可变对象 def func(b):print(id(a), a) #140737041872600 234print(id(b), b) #140737041872600 234a 234 func(a)def func(b):print(id(a), a) #1413554098560 [343]print(id(b), b) #1413554098560 [343]a [343] func(a)def func(b):b.appe…...
电商项目高级篇06-缓存
电商项目高级篇06-缓存 1、docker下启动redis2、项目整合redis3、redis改造三级分类业务 缓存 流程图: data cache.load(id);//从缓存加载数据 If(data null){ data db.load(id);//从数据库加载数据 cache.put(id,data);//保存到 cache 中 } return data;在我们…...
使用 `aircrack-ng`扫描、获取握手包
使用 aircrack-ng 工具集来扫描 5GHz WiFi 网络的过程与扫描 2.4GHz 网络类似,但需要注意一些特定的配置和命令。以下是一个详细的步骤指南,帮助你在 5GHz 频段上扫描 WiFi 网络并捕获握手包。 ### 前提条件 1. **操作系统**:通常在 Linux 系…...
基于大数据python 酒店数据分析可视化大屏系统(源码+LW+部署讲解+数据库+ppt)
!!!!!!!!! 很对人不知道选题怎么选 不清楚自己适合做哪块内容 都可以免费来问我 避免后期給自己答辩找麻烦 增加难度(部分学校只有一次答辩机会 没弄好就延迟…...
uniapp中父组件调用子组件方法
实现过程(setup语法糖形式下) 在子组件完成方法逻辑,并封装。在子组件中使用defineExpose暴露子组件的该方法。在父组件完成子组件ref的绑定。通过ref调用子组件暴露的方法。 子组件示例 <template> </template><script se…...
STL算法之set相关算法
STL一共提供了四种与set(集合)相关的算法,分别是并集(union)、交集(intersection)、差集(difference)、对称差集(symmetric difference)。 目录 set_union set_itersection set_difference set_symmetric_difference 所谓set,可细分为数学上定义的和…...
vscode中json文件的注释飘红
vscode的json文件 添加注释,提示json中不允许有注释,点编辑器最下面的json,如下图 然后选择如上图的json with comments就好了...
【微服务】SpringBoot 整合Redis Stack 构建本地向量数据库相似性查询
目录 一、前言 二、向量数据库介绍 2.1 什么是向量数据库 2.2 向量数据库特点 2.3 向量数据库使用场景 三、常用的向量数据库解决方案 3.1 Milvus 3.1.1 Milvus是什么 3.1.2 Milvus主要特点 3.2 Faiss 3.2.1 Faiss是什么 3.2.2 Faiss主要特点 3.3 Pinecone 3.3.1 …...
三:安装服务-controller node
一:工具、环境准备-controller node 二:OpenStack环境准备-controller node 三:安装服务-controller node 四:工具、环境准备-compute node 五:OpenStack环境准备-compute node 六:安装服务-compute node 七…...
自定义类型: 结构体、枚举 、联合
目录 结构体 结构体类型的声明 匿名结构体 结构的自引用 结构体变量的定义和初始化 结构体成员变量的访问 结构体内存对齐 结构体传参 位段 位段类型的声明 位段的内存分配 位段的跨平台问题 位段的应用 枚举 枚举类型的定义 枚举的优点 联合体(共用体) 联合…...
Bert+CRF的NER实战
CRF(条件随机场-Conditional Random Field) 原始本文:我在北京吃炸酱面 标注示例: 我O在O北B-PLA京I-PLA吃O炸B-FOOD酱I-FOOD面I-FOOD CRF: 目的:提出一些不可能出现的预测组合(例如I-PLA不能…...
永久停用PostgreSQL 归档功能
文章目录 引言永久停用归档功能归档的优势归档的劣势开启归档的情况关闭归档的情况see also引言 PostgreSQL 是一个开源的关系型数据库系统,支持数据归档(WAL),可以实现数据备份、恢复和灾难恢复等功能。在使用 PostgreSQL 的过程中,如果 PostgreSQL 数据库开启了归档(a…...
《数字图像处理基础》学习07-图像几何变换之最近邻插值法放大图像
目录 一,概念 二,题目及matlab实现 1,解题思路 2,matlab实现 1)matlab思路 2)完整代码 三,放大图像及matlab实现 一,概念 通过上一篇,我已经学习了使用最邻近插…...
pip安装库时报错(请求超时)
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...
XPath表达式详解及其在Web开发中的应用
XPath(XML Path Language)是一种强大的查询语言,用于在XML文档中选择节点。由于HTML可以被视为一种特殊的XML,因此XPath同样适用于HTML文档。XPath允许开发者通过元素的层级结构和属性来选择节点或节点集合,这使得它成…...
Qt中Socket网络编程
文章目录 Qt中Socket网络编程服务器端客户端 Qt中Socket网络编程 这里就拿b站上爱编程的小丙的demo来做总结吧,首先要感谢成功带我入门的人:爱编程的小丙和程序员长风,这两个人是讲Socket编程我听懂的课555,接下来就总结一下Qt中…...
【05】Selenium+Python 两种文件上传方式(AutoIt)
上传文件的两种方式 一、input标签上传文件 可以用send_keys方法直接上传文件 示例代码 input标签上传文件import time from selenium import webdriver from chromedriver_py import binary_path # this will get you the path variable from selenium.webdriver.common.by i…...
Python网络编程
网络编程 Socket(套接字) socket 位于 网络协议中的 数据传输层、 该层 主要 可以通过 UDP 或者 TCP协议 实现 数据的传输 TCP 协议 VS UDP协议 tcp : 是一个 可靠的 ,面向 连接的协议。 数据在网络传输中 是安全的,不易丢失的。 TCP连接 在建立的时候&…...
openssl生成ca证书
常见CA文件夹 1、生成CA钥匙 openssl genrsa -out ./private/cakey.pem 2、生成CA自签名 openssl req -new -x509 -key ./private/cakey.pem -out ./cacert.crt -days 3650 3、生成http服务器私钥 openssl genrsa -out ./data/frontt.project.com.key 2048 4、CA给http服务器…...
Oracle RAC 环境下数据文件误建在本地目录的处理过程
问题描述 在 Oracle RAC 环境中,有时会误将数据文件创建在本地目录,导致其他节点无法访问该数据文件,从而报出 ORA-01157 和 ORA-01110 错误。 问题分析 错误日志 Mon Nov 16 19:02:38 2021 Errors in file /u01/app/oracle/diag/rdbms/orc…...
新质驱动·科东软件受邀出席2024智能网联+低空经济暨第二届湾区汽车T9+N闭门会议
为推进广东省加快发展新质生产力,贯彻落实“百县千镇万村高质量发展工程”,推动韶关市新丰县智能网联新能源汽车、低空经济与数字技术的创新与发展,充分发挥湾区汽车产业链头部企业的带动作用。韶关市指导、珠三角湾区智能网联新能源汽车产业…...
windows11 使用体验记录
好的地方: UI上字体风格貌似更好看了,文件夹增加了多个标签,类似于浏览器既可以打开多个窗口,也可以在同一个窗口中打开多个标签页 不好的地方: 桌面右下角点击日期时间,显示日期,时间呢&…...
202页MES项目需求方案深入解读,学习MES系统设计规划
202页MES项目需求方案深入解读,学习MES系统设计规划 MES项目需求方案旨在实现制造执行、效率提升、精细化管理等多个方面的功能。整体结构分为七大部分,包括制造执行、效率、精细化、品质在线、设备、用户思想和数据互联。制造执行部分关注订单、品质数据…...
前端css实例
前端css实例 一、带条纹的表格 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>条纹样式的表格<…...
YOLO的框架及版本迭代
YOLO(You Only Look Once)是一种非常流行的实时目标检测算法,其特点是将目标检测任务转换为一个回归问题,通过一次前向传播就可以同时完成目标的分类和定位。以下是YOLO框架的整体架构和工作原理: 一、YOLO的基本框架…...
PotPlayer 最新版本支持使用 Whisper 自动识别语音生成字幕
PotPlayer 最新版本支持使用 Whisper 自动识别语音生成字幕 设置使用下载地址 设置 使用 下载地址 https://www.videohelp.com/software/PotPlayer...
JavaScript零基础入门速通(中)
目录 1. 函数 1.1 函数声明 1.2 返回值 1.3 匿名函数 1.4 箭头函数 2. 对象 2.1 创建对象 2.2 访问和修改对象的属性 2.3 对象方法 3. 数组 3.1 创建数组 3.2 数组方法 3.3 遍历数组 4. 作用域 4.1 全局作用域 4.2 局部作用域 4.3 块级作用域 5. 事件处理 5…...
【Yarn Bug】 yarn 安装依赖出现的网络连接问题
最近,在初始化 Ant Design Pro 前端脚手架过程中,使用 yarn 安装依赖时遇到了网络连接问题,具体错误信息提示为 info There appears to be trouble with your network connection. Retrying...。通过百度查询,得知出现这种问题的原…...
字节青训Marscode_5:寻找最大葫芦——最新题解
步骤1:问题定义与分析 输入条件: 整数n:牌的数量整数max:葫芦牌面值之和的上限数组array:n张牌的牌面值 输出条件: 两个整数组成的数组[a,b]: a表示三张相同牌的牌面值b表示两张相同牌的牌面值如…...
杭州亚运村建设指挥部网站/个人怎么开跨境电商店铺
刚开始学习C#的时候就写过了,直接给地址了: 委托、匿名函数、Lambda表达式和事件的学习 委托学习续:Action、Func和Predicate...
网站的设计与开发论文/网站宣传方法
红黑树插入和删除结点的全程演示 作者:July、saturnman。时间:二零一一年三月二十八日。出处:http://blog.csdn.net/v_JULY_v。声明:版权所有,侵权必究。----------------------------------- 引言:目前国内…...
安陆网站建设推广/百度网盘资源搜索
本章首要介绍一下搜索引擎蜘蛛都有哪些类型。了解类型之前要先知道什么是搜索引擎蜘蛛。百度百科上有相关解说,我们用一个形象的表述重新说一下。以百度为例,大家要为什么能在百度上搜到各类网站网页的内容,是由于百度派出去的小弟—百度蜘蛛…...
烟台网站建设工资/长尾关键词搜索网站
在打开的系统服务窗口,确认需要删除的服务的名称,如下图所示 4 用管理员的身份运行cmd,打开cmd窗口, 输入sc delete MySQL3命令,回车 5 提示删除服务成功 6 再次在界面中确认是否删除,发现已经删除...
优化志愿网站/网络精准推广
作为网页设计师或前端工程师,你可能还记得曾经的那个网页大小建议:一个网页(包括HTML、CSS、Javacript、Flash和图片)尽量不要超过30KB的大小,随着互联网的日益庞大,网络带宽也在飞速发展,很多设计师已经不再考虑这条3…...
wordpress 新浪/seo软文推广工具
本文测试通过条件: VMware-Workstation-Pro-14.0.0.6661328 Ubuntu 16.04 先来一种物理卷和逻辑卷的关系图: 本图拍自书籍:Linux命令行与Shell脚本编程大全(第三版155页) 方法步骤: 一 在虚拟机中添加一块4G的硬盘,…...