函数 > 实验设计 > 蒙特卡洛模拟 > 示例:蒙特卡洛模拟
  
示例:蒙特卡洛模拟
使用 montecarlo 函数生成可模拟函数的随机样本。
1. 定义要模拟的函数。
单击复制此表达式
2. 定义每个参数的分布。
单击复制此表达式
矢量 dist 中的两个条目是指函数 NormalUniform
3. 定义每个分布的均值及标准差。将结果记录于矩阵 Rvals
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
4. 设置参数 Y 的上限。
单击复制此表达式
单击复制此表达式
5. 定义所要生成的样本的数量。
单击复制此表达式
6. 调用 montecarlo 生成样本。
单击复制此表达式
montecarlo 函数返回的输出是三列矩阵:
单击复制此表达式
前两列是为每个参数所生成的样本。最后一列是函数 f 在这些参数下的输出。
7. 将生成的值记录到单独的矢量中。
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
您可检查最后一个矢量 R1 是否确实为函数 f 的结果:
单击复制此表达式
单击复制此表达式
8. 绘制两者参数对比的图像并绘出其均值。
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
样本在 y 轴方向上均匀分布,而在 x 轴方向上正态分布。不会考虑 y 值大于 8.5 的样本。
9. 调用 histogram 来将 y 值分为 10 个柱。绘制 y 值的柱状图。
单击复制此表达式
单击复制此表达式
y 值具有均匀的分布。在均值的两侧 6 个标准差范围之内生成样本:
单击复制此表达式
单击复制此表达式
单击复制此表达式
如果生成的样本大于上限,将不会被考虑:
单击复制此表达式
10. 调用 histogram 来将 x 值分为 10 个柱。绘制 y 值的柱状图,并添加正态分布图。
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
x 值符合正态分布。
11. 绘制每个参数结果的图像。
单击复制此表达式
单击复制此表达式
12. 调用特殊结构 if 以定义约束并在结果不满足约束时将其替换为 NaN
单击复制此表达式
单击复制此表达式
单击复制此表达式
13. 一一绘制每个参数的图像。
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
14. 绘制每个参数结果的图像。
单击复制此表达式
单击复制此表达式