蒙特卡洛方法填充一个圆

# 填充圆方法一
n=5000
s1=0
s=0
for i in range(0,n):
    a=np.random.uniform(-2,4,1)
    b=np.random.uniform(-2,4,1)
    if(((a-1)**2+b**2)>=1):#((a+1)**2+b**2)<=1  a<=0,,((a-2)**2+b**2)>=4
        plt.scatter(a,b,c = 'r',marker = '+')
    else:
        plt.scatter(a,b,c = 'b',marker = '+')
        
plt.xlim(-2,4)
plt.ylim(-2,4)
plt.gca().set_aspect('equal', adjustable='box')#

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用蒙特卡洛方法模拟一个矩阵,具体步骤如下: 1. 定义矩阵的大小和元素的取值范围。 2. 随机生成大量的数据点,每个数据点表示矩阵中的一个元素。 3. 对于每个数据点,判断它是否在矩阵的范围内。 4. 如果在范围内,则将该数据点的值赋给对应的矩阵元素。 5. 重复步骤2-4,直到生成足够数量的数据点。 6. 计算矩阵的各种统计量,如均值、方差、相关系数等。 下面是一个简单的 MATLAB 代码实现: ```matlab % 定义矩阵大小和元素的取值范围 m = 5; % 矩阵的行数 n = 5; % 矩阵的列数 min_val = 0; % 矩阵元素的最小值 max_val = 1; % 矩阵元素的最大值 % 生成数据点并判断是否在矩阵范围内 data = rand(2, m * n); % 生成2*m*n个0到1之间的随机数 data(1, :) = data(1, :) * (max_val - min_val) + min_val; % 将随机数映射到[min_val, max_val]范围内 data(2, :) = round(data(2, :) * (m * n - 1)) + 1; % 将随机数映射到[1, m*n]范围内 [row, col] = ind2sub([m, n], data(2, :)); % 将随机数转换为矩阵中的行列坐标 idx = sub2ind([m, n], row, col); % 将行列坐标转换为线性索引 data = data(:, idx); % 只保留在矩阵范围内的数据点 % 将数据点赋值给矩阵元素 M = zeros(m, n); M(idx) = data(1, :); % 计算矩阵的统计量 mean_val = mean(M(:)); var_val = var(M(:)); corr_val = corr(M(:)); ``` 这个代码会生成一个 $5\times 5$ 的矩阵,并且矩阵中的元素都是在 $[0,1]$ 范围内随机生成的。你可以根据需要修改矩阵的大小和取值范围。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值