蒙特卡洛法求多重积分-Cpp

0~1随机分布的点列

C++类的写法:

class RND
{
private:int R;
public:RND(int r = 1){R = r;}double rnd1(){int m;double s, u, v, p;s = 65536.0;u = 2053.0;v = 13849.0;m = (int)(R / s);m = R / s;R = R - m * s;R = u * R + v;m = (int)(R / s);R = (int)(R - m * s);p = R / s;return(p);}
};

这样,调用rnd1就可以产生0~1随机分布的随机数。

蒙特卡洛算法的核心函数,

C++写法:

double mtml(int n, double a[], double b[], double (*f) (int, double[]))
{int m, i;double s, d, *x;RND r(1.0);x = new double[n];d = 65536.0;s = 0.0;for (m = 0; m <= 65535; m++){for (i = 0; i <=n - 1; i++)x[i] = a[i] + (b[i] - a[i])*r.rnd1();s = s + (*f) (n, x) / d;}for (i = 0; i <= n - 1; i++) s=s*(b[i] - a[i]);delete []x;return (s);}

接下来在主函数中写被积函数的写法的形式为:

double f(int n,double x[])
{double z;z=f(x0,x1,x2,...,xn-1)表达式;return z;
}

积分结果为:

mtml(n,a,b,f)

本文参考了清华大学出版社的《常用函数算法集(C++描述)》

完整代码请参考我的GitHubhttps://github.com/TYduoduo

建模:蒙特卡洛法求多重积分相关推荐

  1. 蒙特卡洛法求圆周率 c语言,c++蒙特卡洛法求圆周率

    在linux下用 g++ pi.cpp -o pi -lm 编译. //蒙特卡洛法求圆周率 #include #include #include #include using namespace st ...

  2. 用Matlab实现蒙特卡洛法求心形线面积

    用Matlab实现蒙特卡洛法求心形线面积 思路: 1.生成一定数量的随机数,其大小在[0,1)之间: 2.用随机数确定一个长宽已知的矩形,并保证心形线在矩形中: 3.计算随机点落在心形线中的概率,然后 ...

  3. 蒙特卡洛法求非线性方程组

    蒙特卡罗法的概念及应用 蒙特卡洛法 (又称统计试验法)是描述装备运用过程中各种随机现象的基本方法,而且它特别适用于一些解析法难以求解甚至不可能求解的问题,因而在装备效能评估中具有重要地位. 用蒙特卡洛 ...

  4. 蒙特卡洛求圆周率c语言代码,蒙特卡洛法求圆周率

    利用蒙特卡洛算法求圆周率是一个概率的方法,关于这方面的内容很多,而且也很容易理解,更多具体分析过程可以参考如下文章: http://blog.csdn.net/zzhflyqh/article/det ...

  5. 蒙特卡洛法求概率密度函数matlab,matlab的蒙特卡洛算法-----用概率算法求pi值

    问题补充: 能提供一个例子看看吗?我就不懂MATLAB,想知道具体代码.因为现在写论文急,也没时间仔细看书了 蒙特卡罗模拟 就是随机数相关的东西,你只要知道随机数是怎么得到.其它的事就要好办了. ra ...

  6. 利用蒙特卡洛法求π的近似值:

    蒙特卡洛法是一种非常重要的数值计算方法. 对于边长为2的正方形.半径为1的圆,在正方形内随机投掷大小可忽略不计的点,设落在圆内的概率为P,则有P=π/4. 对于投掷点的个数n,当n趋近于无穷时,可 以 ...

  7. 用蒙特卡洛法求圆周率pi

    思路 正方形的面积为: 圆的面积为: 圆的面积比上正方形的面积为:π / 4 使用蒙特卡洛法在正方形内随机撒点,落在圆内的点 / 落在正方形内的点(全部的点),就约等于圆的面积 / 正方形的面积 = ...

  8. 蒙特卡洛法求圆周率100亿数据

    代码 import time import random hits=0 pi=0 DARTS=100000*100000 start=time.perf_counter() for i in rang ...

  9. 用随机投点法计算pi值matlab,用蒙特卡洛法求圆周率PI的近似值,其算法如下:使用随机函数Rnd,随机生成两个[0,1)之间的随机数,由此构成一个投点坐标(x,y),然后根据x...

    (2) 实现上述功能的VB程序如下,请在划线处填入合适代码. Private Sub Command1_Click() Dim m1 As String, m2 As String, sum As S ...

最新文章

  1. fiddler无法抓取chrome浏览器请求的解决方案之关闭代理软件
  2. if vue 跳出_vue使用v-if v-show 页面闪烁
  3. springboot起步配置和自动配置原理
  4. 微软自带输入法如何关闭桌面右下角「拼」图标
  5. 求杨辉三角的前n行数据_LeetCode算法第118题:杨辉三角
  6. java中System.exit(1)、System.exit(0)、以及return的区别
  7. redis指定配置文件启动_redis基础知识整理-安装
  8. 一家独大的亚马逊,让人恐慌?
  9. 周鸿祎在人民日报撰文,呼吁推行网络安全大战略
  10. 关于P,V操作理解的分析
  11. 【sklearn第八讲】广义线性模型
  12. FastGitHub for Mac(GitHub下载扩展工具)
  13. 2022年煤矿安全监测监控特种作业证考试题库模拟考试平台操作
  14. Unity 粒子特效看不见
  15. fseek() 函数用法
  16. css圣杯布局与双飞翼布局_CSS布局研讨会已于2018年更新
  17. A Survey of Deep Learning-based Object Detection论文翻译 + 阅读笔记
  18. PowerShell 未对文件\XXX.ps1进行数字签名。无法在当前系统上运行该脚本。
  19. vue源码深入解读MVVM(视图模板引擎),你真的了解双向绑定(v-model),数据劫持(observe),发布订阅模式吗?带你手鲁mvvm引擎。源码奉上(详细注释)!
  20. 【Django | 开发】权限划分(行为数据集)集成钉钉消息(案例:面试招聘信息网站)

热门文章

  1. 深度学习GPU选购指南:哪款显卡配得上我的炼丹炉?
  2. scrapy爬取京东图书的数据
  3. A Full Hardware Guide to Deep Learning深度学习电脑配置
  4. [词一首]【相思难断】
  5. 揭晓eval(function(p,a,c,k,e,r)js代码解密加密程序
  6. 江苏大学京江学院计算机怎么样,江苏大学京江学院是几本 学生评价怎么样好不好(10条)...
  7. pe下找不到ssd硬盘_进入pe后找不到固态硬盘怎么解决
  8. 知乎带货月入过万的赚钱路子,前期操作后期可躺赚
  9. 暗黑2符文之语大全_暗黑破坏神2符文之语一览,附符文镶嵌顺序和底材
  10. UVALive 4043 Ants(最大权匹配)