python - 单能 Gamma 射线平均自由程

标签 python python-3.x python-2.7 random physics

我正在编写一个关于单能 Gamma 射线的代码,其主要相互作用是光电吸收,mu=2 cm-1,我需要生成50000个随机数并对相互作用深度进行采样(我不知道是否我做了或没有)。 我知道平均自由路径=mu-1,但我需要从模拟和mu中找到平均自由路径并进行比较,我在代码中做对了吗?

import random
import matplotlib.pyplot as plt
import numpy as np

mu=(2)
random.seed=()
data = np.random.randn(50000)*10
bins = np.arange(data.min(), data.max()+1e-8, 0.1)
meanfreepath = 1/mu
print(meanfreepath)
plt.hist(data, bins=bins)
plt.show()

最佳答案

那么,交互深度分布是Exponential一,不是高斯。

所以代码是

lmbda = 2 # cm^-1
beta  = 1.0/lmbda

data = np.random.exponential(scale=beta, size=50000)
mfp = np.mean(data)
print(mfp)

# build histogram

更多详情请访问https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.random.exponential.html

上面的代码生成

0.4977168417102998

对我来说看起来像 2-1

关于python - 单能 Gamma 射线平均自由程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50531940/

相关文章:

python - Python 中的 sqlite3

javascript - Python 将 JavascriptSerializer 转换为日期时间?

python - 如何在Python中将第二行连接到第一行末尾?

python - 如何检查复杂对象的哪些细节不能被 pickle

python - 将 Python 数组 ('B' ) 转换为数组 ('H' ) - 总是小端?

python - 动态添加group by子句到sql alchemy

python - 如何使用Inception-v3作为卷积网络

python - 正则表达式对于相同的输入字符串表现不同

python - Monkeypatch python的解析

python - 在 python 中创建一个螺旋数组?