python - 如何在 Python 中使用具有给定自定义 PDF 的逆变换采样生成样本?
问题描述
$$ P(\varepsilon) = \frac{1}{4k} \mathrm{sech}^2 \frac{\varepsilon}{2k}$$
$$ CDF(\varepsilon) = \frac{\tanh(\frac{\varepsilon}{2k})}{2} $$
$$ CDF^{-1}(c) = \frac{c}{2\tanh^{-1}(2k_BT)} $$
现在我应该怎么做才能生成 N 个样本,用我的 PDF P(\varepsilon) 给定 k?
这是我到目前为止所拥有的:
import numpy as np
def sampleConduction(N, kT):
for i in range(N):
c = np.random.random()
list = [c]
print('list=',list)
g = np.column_stack(list)
print('g=',g)
d = np.arctanh(2*list)+2*kT
return d
sampleConduction(3,0.1)
这段代码的结果是:
list= [0.7687170402304889]
list= [0.24759083266582882]
list= [0.18334770166799108]
g= [[0.1833477]]
array([0.38544466, 0.38544466]) # d
我想将 3 个列表合并为一个,但使用 np.column_stack() 失败了。接下来我应该尝试什么?
非常感谢!
解决方案
推荐阅读
- cassandra - Cassandra not working after upgrade Ubuntu to 20.04
- vue.js - 如何部署 Vue.JS MPA(多页面应用程序)
- regex - 将 awk 用于 if 语句和拆分
- string - 如何在rust中返回字符串向量
- reactjs - #REACT 我可以更改 cloudinary image uploadar 社交媒体图标吗
- javascript - Express.js:回复来自不同路由请求的响应
- c# - C#访问另一个进程的配置(跨域访问)
- android-studio - 访问手机存储以在使用 webview 开发的 android 应用程序中上传文件和照片
- c# - Dispatcher.Invoke() 在退出的处理程序中重新启动进程挂起
- web - 网站移动友好性批量检查 - GA 集成?