当前位置: 首页 > news >正文

数学建模--蒙特卡洛模型的Python实现

目录

  1.算法思想简介

  2.算法应用1:问题一阐述

  3.算法应用1:问题一解决

  4.算法应用2:问题二阐述

  5.算法应用2:问题二解决


  1.算法思想简介

#蒙特卡洛算法思想
"""
蒙特卡洛方法的理论其实很类似于概率论中一个比较重要的定理---大数定律。
其基本原理简单描述是先大量模拟,然后计算一个事件发生的次数,再通过这个发生次数除以总模拟次数,得到想要的结果。
这个时候我们在样本足够大的情况下我们认为这个事件发生的概率等于实验所得到的结果
"""

  2.算法应用1:问题一阐述

"""
Question1:
计算圆周率pi(Π)值
实验原理:
在正方形内部有一个相切的圆,圆面积/正方形面积之比是(PixRxR)/(2Rx2R)= Pi/4。
在这个正方形内随机产生n个点,假设点落在圆内的概率为P,那么P=圆面积/正方形面积,P= Pi/4。
如何计算点落在圆内的概率P?
可以计算点与中心点的距离,判断是否落在圆的内部,若这些点均匀分布,用M表示落到圆内投点数,N表示总的投点数,则圆周率Pi=4P=4xM/N。
"""

  3.算法应用1:问题一解决

#第一题求解代码
#我们假设r=1,a=0,b=0
import numpy as np
def Qustion1(n):r=1.0a=0b=0x_min=a-rx_max=a+ry_min=b-ry_max=b+rm=0#m是计算落在圆内的点的个数for i in range(n+1):x=np.random.uniform(x_min,x_max)y=np.random.uniform(y_min,y_max)if x*x+y*y<=1:m=m+1print("第一题的答案是:",4*(m/float(n)))
ans=Qustion1(1000000)
#cout:第一问题的答案是: 3.141468

  4.算法应用2:问题二阐述

""""
Question2:
计算函数定积分值:
实验原理:
若要求函数f(x)从a到b的定积分,我们可以用一个比较容易算得面积的矩型包围在函数的积分区间上(假设其面积为Area),
定积分值其实就是求曲线下方的面积。随机地向这个矩形框里面投点,统计落在函数f(x)下方的点数量占所有点数量的比例为P,
那么就可以据此估算出函数f(x)从a到b的定积分为Area*P。
此处我们将a和b设为0和1,函数f(x)=x^2。
"""

  5.算法应用2:问题二解决

#第二题求解代码
#此处我们将a和b设为0和1,函数f(x)=x^2。
def Question2(n):x_min=0y_min=0x_max=1y_max=1m=0for i in range(n+1):x=np.random.uniform(x_min,x_max)y=np.random.uniform(y_min,y_max)if y-x*x<0:m=m+1print("第二题的答案是:",m/float(n))
ans2=Question2(1000000)
#第二题的答案是: 0.334016

http://www.lryc.cn/news/153915.html

相关文章:

  • MySQL访问和配置
  • note_前端框架Vue的安装和简单入门(Windows 11)
  • SILERGY(矽力杰)功率电子开关 SY6280AAC
  • mysql char 和varchar的区别?
  • HttpClient默认重试机制
  • 论文于祥读及复现——《Multi-level Map Construction for Dynamic Scenes》
  • IDEA 报 Cannot resolve symbol ‘HttpServletResponse‘ 解决
  • linux-samba-window登不上
  • Java Web3J :使用web3j监听、查询、订阅智能合约的事件
  • C语言入门 Day_13 二维数组
  • 通过HFS低成本搭建NAS,并内网穿透实现公网访问
  • 【SpringMVC】工作流程及入门案例
  • 【JVM】垃圾收集算法
  • K8s的Pod出现Init:ImagePullBackOff问题的解决(以calico为例)
  • 数据结构 -作用及基本概念
  • 数学建模--时间序列预测模型的七种经典算法的Python实现
  • nginx-反向代理缓存
  • 大模型重塑区域人才培养,飞桨(重庆)人工智能教育创新中心正式启动
  • PAT 1164 Good in C 测试点3,4
  • LabVIEW对EAST长脉冲等离子体运行的陀螺稳态运行控制
  • Fragment
  • 哈希表-救赎金
  • vue3+vite+ts项目适配各种分辨率解决方案
  • Python Opencv实践 - 矩形轮廓绘制(直边矩形,最小外接矩形)
  • 大数据HBASE的详细使用
  • Sentinel 流量控制框架
  • leetcode原题: 跳水板
  • 深度学习入门(Python)学习笔记1
  • 苏州想要获得融资融券低利率账户的方法?怎么开融资融券账户?
  • 【LeetCode周赛】LeetCode第359场周赛