题目 3:逆函数随机采样

2023-05-16

题目 3:随机采样

小透明

任务定义

已知 LaplaceX 随机变量X,它的均值为 0,方差为 1

通过一个均匀分布的随机抽样,实现对x~p(x)的抽样,并得到对应的 100 个独立等分布的样本

实验环境

windows系统、spyder软件

方法描述

  • 推导求解逆函数

在这里插入图片描述

  • 逆函数采样

    Y符合[0-1]均匀分布,通过随机取样、逆函数变换实现对X的采样

  • 编程实现

    逆函数构造

    def inserve(y):#分布的逆分布函数
        if y>0.5:
            x=-1/(np.sqrt(2))*np.log(2-2*y)
        else:
            x=1/(np.sqrt(2))*np.log(2*y)
    	return x
    

    随机采样

    X=np.zeros(num)
    for i in range(num):
        y=random.random()
        x=inserve(y)
        X[i]=x
    

实验结果及分析

实验结果

  • 100 个独立等分布的样本

    [-3.38703056e-01  1.25719737e+00 -5.95557220e-01  9.29009022e-03
      2.33077360e-01  4.19338186e-01 -2.88219292e+00  1.01633331e+00
     -3.57167334e-01  9.07019226e-01 -6.80304902e-02 -3.11649246e-02
     -1.03941839e-01 -3.25470976e-01 -3.91938043e-01 -7.05427932e-01
     -8.67716651e-01  5.24122765e-01  7.43172960e-01  2.67250765e-01
     -1.87787053e+00  1.09831838e+00  1.54990829e+00 -5.62240957e-01
      2.43603705e-01  6.86360286e-01 -1.14586607e-01 -1.46388942e+00
     -1.64536828e-01 -1.38174863e-01  8.06547809e-01  2.64402058e-01
     -6.91517587e-02 -1.75669500e-01  8.89946362e-01 -1.15527876e+00
     -3.78578829e-01  6.99080994e-02 -1.89452630e-03 -2.36555011e-01
      5.52770828e-01 -1.24656605e-01 -1.08180214e+00 -6.87375350e-01
     -6.30115765e-01 -2.57973625e-01 -6.97239371e-01 -3.19449897e-01
      3.34303406e-01 -5.14395853e-01  1.50611513e-01  1.00867531e+00
      1.27424379e-01  5.44879745e-01  4.17240284e-01  9.81261243e-01
      1.43866804e-02  6.41492600e-01 -2.96476452e-01  2.73054878e+00
     -9.64058039e-01  2.17378149e+00 -7.92221308e-02 -4.63823570e-01
     -3.13243717e-01 -1.11803396e-01  1.06766772e-01 -2.91342171e-01
      6.31716602e-01  5.49117285e-01 -3.90605470e-01  9.14193373e-02
      1.90674476e+00  1.12240620e-01 -9.48045416e-01  2.31648027e+00
      2.05490973e+00 -1.83925851e+00 -1.10969893e+00  8.82463653e-01
      9.26237922e-01 -7.55337073e-03 -2.74670974e-01  2.61457429e-01
      9.81956271e-01  3.70477140e-02  1.00804189e+00 -3.24020226e-02
      7.77463811e-03 -2.98610900e+00  3.43289462e+00 -3.15996113e-01
     -1.57024575e-02 -4.43106666e-01 -1.88075617e-01  5.77781594e-03
      4.37862073e-01  1.84532553e+00  4.15082412e-01  1.63258658e-01]
    

结果分析

  • 将采样数据可视化统计在一定区间上的频率

在这里插入图片描述

  • 绘制标准LaplaceX 随机变量X概率密度函数

由于采样点不足发现采样数据与标准概率密度函数有所偏差增大采样数

在这里插入图片描述

增大采样数发现采样结果更符合X分布,体现了大数定律。

最后环节——上源码

# -*- coding: utf-8 -*-
"""
Created on Thu May  6 15:09:50 2021

@author: Administrator
"""


import random
import numpy as np
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
import math


num=200

def pdf(x):#分布的概率密度函数
    if x>0:
        y=1/(np.sqrt(2))*np.exp(-1*x*np.sqrt(2))
    else:
        y=1/(np.sqrt(2))*np.exp(x*np.sqrt(2))
        
    return y

def inserve(y):#分布的逆分布函数
    if y>0.5:
        x=-1/(np.sqrt(2))*np.log(2-2*y)
    else:
        x=1/(np.sqrt(2))*np.log(2*y)

    return x


X=np.zeros(num)


for i in range(num):
    y=random.random()
    x=inserve(y)
    X[i]=x
    

bins = np.linspace(X.min(), X.max(), 20)  
b = np.linspace(X.min(), X.max(), 40)  
out=np.zeros(40)
for i in range(40):
    out[i]=pdf(b[i])
frequency_each, _1, _2 = plt.hist(X,
                                  bins,
                                  alpha=1,
                                  density=True)  


plt.xlim(X.min(), X.max()) 
gap=(X.max()-X.min())/20
for i in range(20):
    bins[i]+=gap/2
plt.plot(b,out,color='g')
plt.xlabel('sample')
plt.ylabel('frequency')
plt.legend('p')
plt.title('N:200')
plt.show()



print(X)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

题目 3:逆函数随机采样 的相关文章

  • centos7系统查看防火墙状态

    查看方法 xff1a 1 利用systemctl查看 xff0c 该命令用于管理系统 xff0c 语法为 systemctl status firewalld xff1b 2 用firewall查看 xff0c 可以查看防火墙的默认状态 x
  • Docker中网络的使用和配置用法详解

    一 单个物理机中docker网络 1 1 Docker默认网桥 安装Docker 服务默认会创建一个 docker0 网桥 xff08 其上有一个 docker0 内部接口 xff09 xff0c 它在内核层连通了其他的物理或虚拟网卡 xf
  • mongo数据库中字符串型正负数值比较大小

    数据库中数据展示 xff1a 使用python代码实现 xff1a Requires pymongo 3 6 0 43 from pymongo import MongoClient client 61 MongoClient 34 mon
  • IDEA插件系列(3):Easy Javadoc插件——快速生成javadoc文档注释

    1 插件介绍 Easy Javadoc插件 能帮助开发者快速生成类 方法 属性等中文javadoc 2 安装方式 第一种安装方式是在线下载安装插件 第二种安装方式是使用离线插件进行安装 插件下载地址 xff1a https plugins
  • flask项目中内部接口调用其他内部接口操作

    1 requests 在 Flask 框架项目中 xff0c 可以通过使用 requests 模块来进行内部接口调用 requests 模块是 Python 中常用的 HTTP 请求库 xff0c 可以用于发送 HTTP 请求和处理响应 示
  • ElasticSearch删除索引中的数据(delete_by_query)

    1 删除两个月以前的数据 在 Elasticsearch 中 xff0c 要删除两个月以前的数据 xff0c 可以通过以下步骤 xff1a 计算当前时间的两个月前的日期 xff0c 可以使用 Python 的 datetime 模块来实现
  • ubuntu进入initramfs,系统黑屏

    ubantu黑屏 解决方法 解决方法 1 如果在initramfs模式输入reboot重启 xff0c 或者长按开机键强制关机重启 xff0c 然后选择ubuntu xff08 高级选项 xff09 中的修复模式 xff08 recover
  • You must specify at least three points for the robot footprint,reverting to previous footprint

    找到 costmap common params yaml xff0c 修改成如下形式 xff1a robot radius 0 20 distance a circular robot should be clear of the obs
  • 基于Anaconda3.8环境安装Python3.6

    基于Anaconda3 8环境安装Python3 6 1 通过如下命令查看当前已经装好的python环境 conda info e 2 通过python V 查看当前所处的版本 3 装好anaconda3 8以后想再安装一个python3
  • PX4无人机环境搭建

    PX4无人机资料开发 1 1 Ubuntu系统的安装及相关工具使用ubuntu 系统安装以及基础使用系统安装ubuntu基础使用常用工具使用git常用命令 1 2PX4开发环境搭建编译工具链的安装code安装使用 1 1 Ubuntu系统的
  • 3 FlightPlot安装使用方法

    FlightPlot安装使用方法 下载flightPlot源码下载切换openjdk 版本重启安装flightPlot 下载flightPlot源码 git clone recursive https github com PX4 Flig
  • 在Windows下安装TensorFlow和Keras

    在Windows下安装TensorFlow和Keras 1 安装 Anaconda3 5 1 0 Windows x86 64 exe xff0c 之前用的版本 xff0c 也可以下载更新的版本 绝大多数都选用默认选项即可 xff0c 遇到
  • 初学STM32

    编译出错 xff1a Error L6002U could not open file o No such file or directory 原因 xff1a 汉化出问题
  • 百度可视化工具Sugar简单介绍以及使用说明

    百度可视化工具Sugar简单介绍以及使用说明 介绍使用指南免费试用快速入门 使用流程使用示例 这是我个人的第一篇博客 最近因为工作原因 xff0c 需要了解百度可视化工具Sugar xff0c 因此在这里做个总结 xff0c 同时也为自己梳
  • 四小时Jsp期末作业速成——MyBlog个人博客系统(javaweb:非框架)

    MyBlog个人博客系统 xff08 javaweb 非框架 xff09 目录第一章 系统简介 31 1 背景及意义 31 2 开发目的 31 3 开发环境 3 第二章 系统设计 42 1 系统分析 42 1 1 系统需求分析 42 1 2
  • 【已解决】Ubantu问题记录:在连接网线的情况下ubuntu系统ping网关不通以及无法上网

    问题背景 xff1a 我们的服务器配置了两张在同一网段下的网卡 xff0c 卡 eno4 连接以太网ip xff1a 192 168 2 10 网关192 168 2 1 卡 eno2 ip xff1a 192 168 2 12 网关192
  • ros知识点

    工作空间 一个典型的ROS工作空间目录结构如下 所有ROS程序都必须放置在某个ROS工作空间 workspace 下 xff0c 我们在主目录下创建一个名为catkin ws的ROS工作空间 ROS工作的空间名字可以随便取 xff0c 一般
  • 我有一个IT梦

    介绍 作为一名大二的学生 xff0c 接触计算机基础技术近乎俩年 xff0c 俩年来我愈加发觉计算机是一门发展力很强的学科 它多式多样 xff0c 更像是一种挑战 xff0c 对于好强的我来说 xff0c 越来越着迷计算机的世界 纵然未知的
  • Mac 自动代理切换

    Mac 自动代理切换 背景 xff1a 工作有时需要用goole搜索 xff0c 所以会配置一下公司提供的HTTP和HTTPS代理 xff0c 但是下班之后回到家 xff0c 只有公司内网才能访问代理 xff0c 所以还需要把代理关掉 每次

随机推荐

  • 仅拉取git远程仓库中特定的单个分支

    结论 拉取git远程仓库中特定的单个分支的关键在于 xff1a 调用git clone时候 xff0c 添加 branch选项与 single branch git clone git clone克隆远程仓库时 xff0c 默认会依次做以下
  • Windows10通过网线连接树莓派ubuntu server系统

    Windows10通过网线连接树莓派ubuntu server系统 材料 xff1a 烧录ubuntu server 18 04镜像的树莓派 xff0c 网线一根 xff0c Window10电脑 操作 Windows10通过网线连接树莓派
  • 树莓派安装ROS操作系统并配置VNC连接

    树莓派 4B xff08 2G xff09 的准备工作 一 烧录ubuntu server 18 04 LTS镜像二 ubuntu系统安装桌面三 树莓派开启VNC连接1 使用dconf editor2 开启桌面共享服务3 Windows端下
  • Vscode配置树莓派ROS的开发环境

    树莓派安装ROS系统和远程连接配置我的这篇博客 附上连接 xff1a https blog csdn net weixin 44815966 article details 112697896 开发ros机器人时 xff0c 为了方便开发和
  • ROS操作系统 opencv-python读取摄像头+rviz可视化

    ROS操作系统 opencv python读取摄像头 43 rviz可视化 一 安装opencv python二 opencv读取摄像头三 图片转换为ROS图片格式并且在rviz显示 测试环境 xff1a 树莓派ubuntu 18 04 5
  • Git 报错:Connection closed by remote host. fatal: Could not read from remote repository.

    Git deploy 部署报错 xff1a ssh exchange identification Connection closed by remote host fatal Could not read from remote repo
  • RabbitMQ详解(二):Docker安装RabbitMQ

    一 安装并运行二 其他操作 在Docker上安装部署RabbitMQ方便快捷 xff0c 不需要额外安装Erlang环境 xff0c 所以写该篇文章先来介绍如何在Docker上部署RabbitMQ 一 安装并运行 1 在docker hub
  • android 注解和反射 (入门以及使用)

    先来看一看今天的效果 代码效果 效果不重要 重要的是代码 注解 官方解释 从JDK5开始 Java增加对元数据的支持 xff0c 也就是注解 xff0c 注解与注释是有一定区别的 xff0c 可以把注解理解为代码里的特殊标记 xff0c 这
  • Linux ubuntu安装LLVM12+Clang

    安装之前确保安装cmake3 20以上版本 参考https blog csdn net weixin 42888638 article details 125617062 从官网下载安装包 llvm project 12 0 0 src t
  • 总线?什么是总线?

    近期 有些小朋友问我 xff1a Jing哥啊 xff0c 计算机好多基础我都不懂 xff0c 看编程视频讲到的时候 xff0c 什么数据总线 xff0c 地址总线我都不懂 其实阿Jing以前也有这个困扰 xff0c 一直困扰 xff0c
  • FreeRTOS学习 任务调度

    任务调度 任务调度实现在多个任务之间轮流使用CPU xff0c 他的主要工作分为三个阶段 xff1a 保存当前任务上下文到任务栈选择新任务恢复新任务的上下文 这三个步骤需要在中断服务函数中执行 xff0c 所以要求执行的速度要快 xff0c
  • FreeRTOS学习 信号量

    信号量 FreeRTOS 学习仓库 xff1a https gitee com killerp free rtos study 在深入理解了消息队列后 xff0c 信号量也就很容易学习了 因为信号量就是使用消息队列实现的 信号量是特殊的消息
  • Java-CSS基础选择器

    标签选择器 HTML标签作为标签选择器的名称 p为标签选择器 p 属性 font size 20px 声明 值 类选择器 lt 标签名 class 61 34 类名称 34 gt 标签内容 lt 标签名 gt class为类名称 xff1b
  • Java-CSS层次选择器

    层次选择器 后代选择器 选择器 xff1a E F xff08 两个选择器之间必须要以空格隔开 xff09 功能 xff1a 选择匹配的F元素 xff0c 且匹配的F元素被包含在匹配的E元素内 lt p gt 1 lt p gt lt p
  • arm-linux-gcc踩坑1

    嵌入式实验要用到交叉编译arm linux gcc xff0c 其中遇到一些问题 xff0c 记录如下 1 安装交叉编译器并更新环境 xff1a export PATH 61 PATH usr local arm 4 6 2 bin gcc
  • python实现基本算法之归并排序(Merge sort)

    基本算法之归并排序 Merge sort 基本算法 04 归并排序 Merge sort 算法 往期请看选择排序 xff0c 插入排序 xff0c 归并排序 xff0c 快速排序等等都发布的 xff01 欢迎大家批评指正 xff01 文章目
  • Linux学习笔记——第一章 Linux是什么如何学习

    前言 鸟叔的Linux私房菜第四版 学习笔记 1 Linux是什么 1 1 Linux是什么 Linux是一套操作系统 xff0c 就像Windows一样 操作系统会有效率的控制计算机硬件的资源分配 xff0c 并提供计算机运作所需要的功能
  • MaxWell的使用

    Maxwell的使用 1 Maxwell的概述 1 1 官网简介 This is Maxwell s daemon an application that reads MySQL binlogs and writes row updates
  • 对图像维度进行调整(升降维和调整顺序)

    图片路径 xff1a img path span class token operator 61 span span class token punctuation span span class token operator span d
  • 题目 3:逆函数随机采样

    题目 3 xff1a 随机采样 小透明 任务定义 已知 LaplaceX 随机变量X xff0c 它的均值为 0 xff0c 方差为 1 通过一个均匀分布的随机抽样 xff0c 实现对x p x 的抽样 xff0c 并得到对应的 100 个