数学建模——蒙特卡洛法

目录

  • 1.介绍
  • 2.可以做的题型
  • 3.实战
    • 3.1求pi的值
    • 3.2求定积分x^2 的值

参加了大大小小很多场比赛了,但是都是混子,但还是打算记录一下吧,系统认真过一遍。后续功力深厚,会拓展写的文章,目前是干货,一些背景啥的还都未介绍。

1.介绍

随机抽样,求取近似解。
当无法求得精确解时,进行随机抽样,根据统计试验求近似解,
我的理解就是从一个样本抽取一些数据,进而估计整体的解,由于是抽取的样本数据,因此是近似解。
样本越大,越接近真实值,也就是数学统计值,

!!!注意:蒙特卡洛法是个思路,不是算法,具体问题具体分析。

2.可以做的题型

概率模型:蒙特卡洛算法可以用于模拟复杂的概率模型。例如,在金融领域中,可以使用蒙特卡洛方法来模拟股票价格的随机演化,并进行风险估计和投资组合优化。
最优化问题:蒙特卡洛算法可以用于求解最优化问题。例如,在运筹学中,可以使用蒙特卡洛方法来求解旅行商问题、装箱问题等。
数值计算:蒙特卡洛算法在数值计算中很有用。例如,在微分方程的数值求解中,可以使用蒙特卡洛方法来模拟随机扰动,从而获得系统的稳定解。
随机模型:蒙特卡洛算法可以用于研究随机模型的性质和行为。例如,在生物学中,可以使用蒙特卡洛方法来模拟基因演化和遗传算法。
不确定性分析:蒙特卡洛算法可以用于分析模型的不确定性。例如,在环境科学中,可以使用蒙特卡洛方法来进行不确定性分析和灾害模拟。
等等。

3.实战

3.1求pi的值

在这里插入图片描述

import random #导入random生成随机数#d定义一个估计pi的函数,传入形参num_saamples
def estimate_pi(num_samples):# 定义变量inside_circle = 0  #园内点数total = 0  #总点数#定义for循环,下划线表示在循环中未使用这个变量的值#正常for应该是for 变量 in xxx(范围):for _ in range(num_samples):#定义xy坐标,正方形面积为2*2=4x = random.uniform(-1, 1) #random随机函数y = random.uniform(-1, 1)#求距离distance = x ** 2 + y ** 2#判断if distance <= 1: #园内点inside_circle += 1 #园内加一total += 1 #循环一次,总点数加一pi_estimate = 4 * inside_circle / total #pi的估计值return pi_estimate  #这个函数返回的是pi的估计值num_samples = 100000 #定义循环次数
pi = estimate_pi(num_samples) #求pi的估计值
print("Estimated value of pi:", pi) #打印pi的估计值

3.2求定积分x^2 的值

import random #导入randomdef monte_carlo_integration(func, a, b, num_samples): #定义求取定积分的函数,传入形参func,a,b,numsamplestotal = 0.0 #定义浮点型变量for _ in range(num_samples):# 定义一个循环,只需要循环,不需要值,用c的话相当于#for(int i=0;i<=inum_samples;i++;)x = random.uniform(a, b) #产生一个【0,1】的数total += func(x)  #算函数值累计求和average = total / num_samples #求平均integral = average * (b - a) #算面积(积分值)return integral #返回积分值def f(x): #定义一个函数,返回x^2的值return x**2a = 0
b = 1
num_samples = 100000integral = monte_carlo_integration(f, a, b, num_samples) #形参传入函数的名字,a,b,num_samples
print("The integral of f(x) = x^2 from", a, "to", b, "is approximately:", integral)

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

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

相关文章

C#多线程(5)——异步方法async与await

在上一章节中&#xff0c;为大家介绍了C#多线程&#xff08;4&#xff09;——任务并行库TPL&#xff0c;TPL是从.NetFramwork4.0后引入的基于异步操作的一组API&#xff0c;核心关注于任务【 T a s k 和 T a s k < T > \textcolor{red}{Task 和 Task<T>} Task和Ta…

轴向磁通电机(轴向电机)属于高效节能型电机 本土企业已具备高性能产品生产实力

轴向磁通电机&#xff08;轴向电机&#xff09;属于高效节能型电机 本土企业已具备高性能产品生产实力 按照磁通路径方向不同&#xff0c;电机可分为径向磁通电机以及轴向磁通电机两种类型。轴向磁通电机又称轴向电机&#xff0c;指电机旋转轴与磁通方向平行的磁通电机。与径向…

每日shell脚本之批量重命名文件

每日shell脚本之批量重命名文件 #!/bin/bash# 设置要修改的目录路径和前缀 directory"/path/to/directory" prefix"new_"# 遍历目录下的所有文件 for file in "$directory"/*; do# 获取文件名&#xff08;不包含路径&#xff09;filename$(base…

MyBatis-Plus知识点(二)

一、条件构造器和常用接口 1、wapper介绍 Wrapper &#xff1a; 条件构造抽象类&#xff0c;最顶端父类 AbstractWrapper &#xff1a; 用于查询条件封装&#xff0c;生成 sql 的 where 条件 QueryWrapper &#xff1a; 查询条件封装 UpdateWrapper &#xff1a; Update 条…

Ai-M61-32SU+字库+LCD

Ai-M61-32SU 有4M flash&#xff0c;可以下载一个200多K的GB2312_80字库 一、将gb2312_80.bin(字库文件)烧录到Ai-M61-32SU中 1、将gb2312_80.bin放到工程的根目录 2、修改flash_prog_cfg.ini文件&#xff0c;增加了partition和media部分 [cfg] # 0: no erase, 1:programmed …

什么是R语言?什么是R包?-R语言001

R语言是一种专为统计计算和图形而设计的编程语言和环境。它最初由罗斯伊哈卡和罗伯特亨特尔在1993年创建&#xff0c;灵感来源于S语言。R语言已经发展成为统计学、数据分析、科学研究以及许多其他领域中最受欢迎和广泛使用的工具之一。R语言的核心是一个开源的解释型语言&#…

(delphi11最新学习资料) Object Pascal 学习笔记---第7章第1节( 其他面向对象语言中的类 )

7.1.2 其他面向对象语言中的类 ​ 作为比较&#xff0c;这是用 C# 和 Java 编写的 TDate 类&#xff08;在这种简化的情况下&#xff0c;它们碰巧是相同的&#xff09;&#xff0c;使用了一套更合适的命名规则&#xff0c;方法的代码省略了&#xff1a; // C# and Java langu…

js视频上传的方法

一、视频上传于图片上传类似他们的上传方法一样。路径不同标签不同&#xff1b; 二、直接上效果 三、直接上代码 // // 上传图片 let urls "https://wwz.jingyi.icu/"; let a $("form img") // console.log(a);function fl() {let read document.getE…

mysql备份和还原全部的数据库

备份数据库 mysqldump -u root -p --all-databases > all_databases_backup.sql还原数据库 删除之前的全部数据库(谨慎操作) mysql -u root -p -e "DROP DATABASE IF EXISTS database_name;" --skip-column-names还原数据库&#xff0c;需要有权限&#xff0c;…

1. git 常用命令

1.使用 git pull 命令拉取文件 git pull git pull origin master [ 这条命令会从远程仓库&#xff08;通常是 origin&#xff09;拉取 master 分支的最新更改并合并到你的本地 master 分支 ]2.使用git add命令将所有文件添加到Git仓库。 git add .3.使用git commit命令提交你…

探索制氮机在农产品保鲜中的应用方式

在现代生活中&#xff0c;农产品保鲜成为老生常谈的话题&#xff0c;水果数次厂商总是在为如何使水果蔬菜能够保存时间长一点而发愁&#xff0c;而制氮机的出现则解决了这一难题&#xff0c;为农产品保鲜技术带来了革命性的变革。本期恒业通小编和您一起了解制氮机在水果,蔬菜保…

Pytorch基础(21)-- torch.repeat_interleave()方法

分享一下自己目前在维护的Github项目&#xff0c;由于本人博士阶段接触了一个全新的研究方向-----使用机器学习、强化学习、深度学习等方法解决组合优化问题&#xff0c;维护这个项目的目的&#xff1a; &#xff08;1&#xff09;记录自己阅读过的paper&#xff0c;同时分享一…

【数学建模】熵权法 Python代码

熵权法是一种客观的赋权方法&#xff0c;它可以靠数据本身得出权重。 依据的原理&#xff1a;指标的变异程度越小&#xff0c;所反映的信息量也越少&#xff0c;其对应的权值也应该越低。 import numpy as np#自定义对数函数mylog&#xff0c;用于处理输入数组中的0元素 def m…

ROS机器人操作系统底层原理及代码剖析

本文介绍ROS机器人操作系统&#xff08;Robot Operating System&#xff09;的实现原理&#xff0c;从最底层分析ROS代码是如何实现的。 1、序列化 把通信的内容&#xff08;也就是消息message&#xff09;序列化是通信的基础&#xff0c;所以我们先研究序列化。 尽管笔者从事…

jenkins部署go应用 基于docker

丢弃旧的的构建 github 拉取代码 拉取代码排除指定配置文件 报错 环境变量失效 服务器版本为1.21.6 但是一直没有生效

字符串|替换数字

卡码网题目链接 #include<iostream> using namespace std; int main() {string s;while (cin >> s) {int count 0; // 统计数字的个数int sOldSize s.size();for (int i 0; i < s.size(); i) {if (s[i] > 0 && s[i] < 9) {count;}}// 扩充字符…

6.同步异步、正则表达式

JS执行机制 js的特点&#xff1a;单线程&#xff0c;同一时间只能做一件事 可以通过多核CPU解决这个问题&#xff0c;允许js脚本创建多个线程&#xff0c;于是js出现了同步和异步 同步 程序执行的时候按照顺序依次执行 异步 程序执行的时候&#xff0c;会跳过某个步骤继续…

什么是deterministic training(确定性训练),pytorch如何实现

deterministic training&#xff08;确定性训练&#xff09;是一种训练机器学习模型的方式&#xff0c;其主要特点是确保在相同的初始条件下&#xff0c;每次训练都会得到相同的结果。换句话说&#xff0c;确定性训练旨在消除随机性&#xff0c;使得模型的训练过程是可重复和可…

命令行提示符在操作系统中的必要性探析

随着计算机技术的发展&#xff0c;用户界面逐渐多样化&#xff0c;从早期的命令行界面发展到如今丰富的图形用户界面。然而&#xff0c;尽管图形用户界面已经普及且易于上手&#xff0c;命令行提示符作为操作系统的一个基本组成部分&#xff0c;其存在仍然具有不可忽视的必要性…

基于Springboot的驾校预约学习系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的驾校预约学习系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…