Matlab使用蒙特卡洛方法求概率

Posted Harris-H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab使用蒙特卡洛方法求概率相关的知识,希望对你有一定的参考价值。

Matlab使用蒙特卡洛方法求概率

1.问题

将长为 1 1 1的绳子截取三段,求组成三角形的概率。

2.方法

采用蒙特卡洛方法 进行随机实验 求概率。

  • 循环
  • ( 0 , 1 ) (0,1) (0,1) 生成两个随机数
  • 这两个随机数将其分成三段。
  • 判断较短的两边之和是否大于第三边,如果满足,记数器加1。

3.代码

matlab代码如下:

clearvars;
clc
N = 100000;
sum = 0;
for i = 1:N
    r = rand(1,2);
    x = min(r);
    y = max(r);
    a = x;b = y-x;c = 1-y;
    num = sort([a,b,c]);
    if num(1) + num(2) > num(3)
        sum=sum+1;
    end
end
p = sum/N;
disp(p);

可以发现理论概率在p=0.25 之间。

以上是关于Matlab使用蒙特卡洛方法求概率的主要内容,如果未能解决你的问题,请参考以下文章

蒙特卡洛方法

蒙特卡洛方法

MATLAB程序:蒙特卡洛法求椭圆面积

蒙特卡洛方法原理

MCMC笔记:蒙特卡罗方法

用matlab怎么求正态分布概率?