当前位置: 首页 > news >正文

(一)连续随机量的生成-基于分布函数

连续随机量的生成-基于分布函数

  • 1. 概率积分变换方法(分布函数)
  • 2. Python编程实现指数分布的采样

1. 概率积分变换方法(分布函数)

Consider drawing a random quantity X X X from a continuous probability distribution with the distribution function F F F. We know F F F is a continues nondecreasing function if F F F has an inverse F − 1 F^{-1} F1, then Z = F − 1 ( U ) Z=F^{-1}(U) Z=F1(U), where U U U is a random quantity drawn from U ( [ 0 , 1 ] ) U([0,1]) U([0,1]), is a random quantity as desired. Indeed,
P ( X ⩽ z ) = P ( F − 1 ( U ) ⩽ z ) = P ( U ⩽ F ( z ) ) = F ( z ) , ∀ z ∈ R P(X \leqslant z)=P\left(F^{-1}(U) \leqslant z\right)=P(U \leqslant F(z))=F(z), \forall z \in \mathbb{R} P(Xz)=P(F1(U)z)=P(UF(z))=F(z),zR

Example: Exponential distribution Exp ⁡ ( 1 ) \operatorname{Exp} (1) Exp(1).
Exp (1) has a probability density function: f ( z ) = { e − z , z ⩾ 0 , 0 , z < 0. f(z)= \begin{cases}e^{-z}, & z \geqslant 0, \\ 0, & z<0 .\end{cases} f(z)={ez,0,z0,z<0.
Its distribution function is F ( z ) = { 1 − e − z , z ⩾ 0 , 0 , z < 0. F(z)= \begin{cases}1-e^{-z}, & z \geqslant 0, \\ 0, & z<0 .\end{cases} F(z)={1ez,0,z0,z<0.
We only need to concentrate on F ( z ) F(z) F(z) on [ 0 , ∞ ) [0, \infty) [0,), and have
F − 1 ( z ) = − log ⁡ ( 1 − z ) . F^{-1}(z)=-\log (1-z). F1(z)=log(1z).
So F − 1 ( U ) = − log ⁡ ( 1 − U ) F^{-1}(U)=-\log (1-U) F1(U)=log(1U) has a probability distribution Exp ( 1 ) (1) (1). Because 1 − U ∼ U ( [ 0 , 1 ] ) 1-U \sim U([0,1]) 1UU([0,1]), we have − log ⁡ U ∼ Exp ⁡ ( 1 ) -\log U \sim \operatorname{Exp}(1) logUExp(1).

For a distribution function which does not have an inverse, we define a generalized inverse as the following:
F − ( z ) = inf ⁡ { x ∈ R : F ( x ) ⩾ z } . F^{-}(z)=\inf \{x \in \mathbb{R}: F(x) \geqslant z\} . F(z)=inf{xR:F(x)z}.

2. Python编程实现指数分布的采样

Assignment: Sample a random quantity Z ∼ Exp ⁡ ( λ ) Z \sim \operatorname{Exp}(\lambda) ZExp(λ) for some λ > 0 \lambda>0 λ>0.

import numpy as np
import matplotlib.pyplot as plt# Parameter for the exponential distribution
lambda_value = 0.5# Generate random quantity using CDF method
u = np.random.rand(1000)  # Uniform random numbers between 0 and 1
Z = -np.log(1 - u) / lambda_value# Plot histogram
plt.hist(Z, bins=30, density=True, alpha=0.6, color='b', label='Sampled Data')
plt.xlabel('Value')
plt.ylabel('Density')
plt.title('Histogram of Exponential Distribution (Generated using CDF)')
plt.legend()
plt.grid(True)
plt.show()
http://www.lryc.cn/news/141855.html

相关文章:

  • 【springboot】Spring Cache缓存:
  • 数学建模-建模算法(4)
  • python之函数返回数据框
  • 电子商务安全体系架构技术方面
  • 新安装IDEA 常用插件、设置
  • ChromeOS 的 Linux 操作系统和 Chrome 浏览器分离
  • 哔哩哔哩 B站 bilibili 视频倍速设置 视频倍速可自定义
  • Lazada商品详情接口 获取Lazada商品详情数据 Lazada商品价格接
  • 路由攻击(ospf attack)及C/C++代码实现
  • nginx配置站点强制开启https
  • Jacoco XML 解析
  • 【面试题】JDK(工具包)、JRE(运行环境和基础库)、JVM(java虚拟机)之间的关系?
  • 软件设计师学习笔记7-输入输出技术+总线+可靠性+性能指标
  • Windows下MATLAB调用Python函数操作说明
  • 【android12-linux-5.1】【ST芯片】驱动与HAL移植后数据方向异常
  • JavaScript Es6_3笔记
  • Qt产生随机数
  • postgresql常用函数-数学函数
  • 【排序】快速排序(前后指针法)—— 考的最少的一种算法
  • 软考:中级软件设计师:关系代数:中级软件设计师:关系代数,规范化理论函数依赖,它的价值和用途,键,范式,模式分解
  • openCV实战-系列教程2:阈值与平滑处理(图像阈值/图像平滑处理/高斯/中值滤波)、源码解读
  • C语言第五章-循环结构练习
  • Echarts面积图2.0(范围绘制)
  • flink checkpoint时exact-one模式和atleastone模式的区别
  • QEMU 仿真RISC-V freeRTOS 程序
  • 用大白话来讲讲多线程的知识架构
  • 【uniapp】微信小程序 , 海报轮播图弹窗,点击海报保存到本地,长按海报图片分享,收藏或保存
  • SpringBoot与前端交互遇到的一些问题
  • Maven介绍与配置+IDEA集成Maven+使用Maven命令
  • 毕业设计题目源码-毕业论文参考