• Python均匀分布和三角形分布


    函数备注
    triangular(left, mode, right)三角形分布
    uniform([low, high])均匀分布

    均匀分布

    所谓均匀分布,就是在事件空间中,所有事件的概率都是相等的连续分布,其概率密度

    f ( x ) = 1 b − a , x ∈ ( a , b ) f(x)=\frac{1}{b-a}, x\in (a,b) f(x)=ba1,x(a,b)

    易得其均值为 a + b 2 \frac{a+b}{2} 2a+b,方差为 ( b − a ) 2 12 \frac{(b-a)^2}{12} 12(ba)2

    numpy.random中,uniform用于生成均匀分布的随机数,其输入参数分别为随机数下限和上限,示例如下面代码所示

    import matplotlib.pyplot as plt
    import numpy as np
    from numpy.random import uniform
    
    xs = uniform(1, 5, size=20000)
    plt.hist(xs, 100)
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    其分布为

    在这里插入图片描述

    毫无疑问,均匀分布是最简单的分布函数,在 ( a , b ) (a,b) (a,b)区间内,所有点差不多构成了一个矩形,所以均匀分布也叫矩形分布。

    和矩形分布相似,概率密度函数为三角形的分布,就是三角形分布。

    三角形分布

    对于下限为 a a a,上限为 b b b,众数为 c c c的三角分布,其概率密度函数为

    f ( x ) = { 2 ( x − a ) ( b − a ) ( c − a ) a ⩽ x ⩽ c 2 ( b − x ) ( b − a ) ( b − c ) c < x ⩽ b f(x)=\left\{2(xa)(ba)(ca)axc2(bx)(ba)(bc)c<xb\right. f(x)=(ba)(ca)2(xa)axc(ba)(bc)2(bx)c<xb

    numpy.random中,trangular用于生成三角形分布的随机数,其输入参数分别为随机数下限、众数和上限,示例如下面代码所示

    from numpy.random import triangular
    
    xs = triangular(1, 3, 5, size=20000)
    plt.hist(xs, 100)
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5

    效果如图所示

    在这里插入图片描述

    均匀分布和三角形分布之间的关系

    若两个随机变量 X 1 , X 2 X_1, X_2 X1,X2符合均匀分布,则 X 1 + X 2 X_1+X_2 X1+X2符合三角形分布。

    x1 = uniform(1,5,size=20000)
    x2 = uniform(3,6,size=20000)
    plt.hist(x1+x2, bins=100)
    plt.show()
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    其分布的形状果然变成了三角形。

    记X1的下限与上限为 a 1 , b 1 a_1,b_1 a1,b1,X2的下限与上限分别为 a 2 , b 2 a_2,b_2 a2,b2,从这个三角形分布的特点可以看出,三角形分布的下限和上限分别是 a 1 + a 2 , b 1 + b 2 a_1+a_2, b_1+b_2 a1+a2,b1+b2,其众数为 a 1 + b 1 + a 2 + b 2 2 \frac{a_1+b_1+a_2+b_2}{2} 2a1+b1+a2+b2

    而且两组均匀分布的随机变量相减,其结果也是三角形分布

    x1 = uniform(1,5,size=20000)
    x2 = uniform(3,6,size=20000)
    plt.hist(x1-x2, bins=100)
    plt.show()
    
    • 1
    • 2
    • 3
    • 4

    二者的区别无非是差个正负号而已。

  • 相关阅读:
    Java编程实战10:正则表达式匹配
    自适应滤波算法及例程
    阿里云服务器一直提示安全事件如何解决
    Java实现文件压缩
    2022杭电多校3(总结+补题)
    网络IP地址配置
    ES6--Promise
    pycharm中个人编程时常用到的快捷键
    golang 单个、多个分隔符和使用正则表达式 - 分割字符串
    kotlin中使用Room数据库(包含升降级崩溃处理)
  • 原文地址:https://blog.csdn.net/m0_37816922/article/details/128203048