【发布时间】:2014-03-26 01:05:00
【问题描述】:
有没有人知道如何在 vb.net 中实现一个蒙特卡罗集成模拟器。
我浏览了互联网,没有运气。
任何代码或关于如何启动它的想法都会有所帮助。
【问题讨论】:
标签: vb.net integration
有没有人知道如何在 vb.net 中实现一个蒙特卡罗集成模拟器。
我浏览了互联网,没有运气。
任何代码或关于如何启动它的想法都会有所帮助。
【问题讨论】:
标签: vb.net integration
好吧,我想我们正在谈论一个二维问题。我假设您有一个要计算其面积的多边形。
1) 首先你需要一个函数来检查一个点是否在多边形内。
2) 现在您在多边形周围定义一个已知大小的区域。
3) 现在您需要在已知区域内的随机点,其中一些在您的多边形中,一些在外面,数一数!
4) 现在你有两个关系:首先是所有点与多边形内的点的关系。其次是你知道的多边形周围的区域,到你不知道的多边形区域。
5) 关系是一样的 --> 你可以计算多边形的面积! (多边形的面积应该是:多边形中的点/所有点*已知区域的大小)
示例:3个点命中多边形,20个点“击球”,多边形的面积为0.6m² 注意:这个区域只是一种方法!你拥有的分数越多,方法就越好。
当然,您可以实现一种奇特的方法来在您的 vb 程序中显示它。这是你需要的吗?我对多边形的假设是否正确?您在“多边形内点”算法方面需要帮助吗?
【讨论】:
VB.net 没有什么特定的问题,除了可能从库中选择随机数生成器。
对于高维度 n,使用数值求解函数 f(x_1,...,x_n) 的积分可能变得不可行(在可接受的时间内),因为给定采样距离所需的样本点数量会随着问题的维度呈指数增长。蒙特卡洛积分的基本思想是用随机抽样代替变量x_1,...,x_n 的均匀抽样,每个样本取n 随机数。使用这些样本,估计积分。样本越多,估计越好。 MC 集成的主要好处是,您可以使用标准的统计方法来估计结果的误差。
那么,如何开始:通过积分空间的均匀采样来实现积分,然后进行随机采样并添加误差估计。
【讨论】: