python - 小粒子动能和恢复系数的单位或数学运算误差
问题描述
所以我有一个关于一定数量粒子的动能的图表。我有代码打开粒子文件,读取速度分量,然后做一些数学运算来平均它们。
avg = np.array(ys).mean(axis=0) #averaging
m = 1 * 10**-6 #in mg
v = avg / 1000 #in mm/s
KE = 0.5 * m * v * v #average kinetic energy
然后绘制该图,我也可以曲线拟合。
def func(x, a, b):
return a/(1+x/b)**2 # a/(1+x/b)^2
pars, cov = optimize.curve_fit(f=func, xdata=np.nan_to_num(x), ydata=np.nan_to_num(KE), bounds=(-np.inf, np.inf))
stdev = np.sqrt(np.diag(cov))
我的主要/主要方程式,我在绘图和计算变量方面的工作目的是:[1]:https ://i.stack.imgur.com/v2jES.png
我决定通过将 epsilon 分解为多个部分来编写 epsilon 代码(T0 和 tau 分别是曲线拟合的 a 和 b)。
m = 1.0 * 10**-6 # mass in mg
o = math.pi * (2 * 0.0005)**2 # pi(2R)^2 where Radius in mm || collision crosssection
T0 = float(pars[0]) # KE in Joules
tau = float(pars[1]) # seconds
n = 140 / (0.020*.020*.010) # numParticles / volume in mm^3 || number density
first = 1 / (o * n)
first2 = 1 - first
second = math.sqrt(m / 2)
third = 1 / tau
fourth = math.sqrt(T0)
epsilon = first2 * second * (third / fourth)
epsilon = math.sqrt(epsilon)
print epsilon
epsilon 是否按此顺序进行数学运算?我知道我不能这样做:
math.sqrt(1 - (1 / o * n) * math.sqrt(m / 2) * (1 / tau) / math.sqrt(T0))
但生成的 epsilon 与我单独计算的 epsilon 不匹配(使用 Desmos 和 Symbolab)。我的数字始终相差几个数量级。我预计 T0 在 10^-10 范围内,tau 在 0.5 - 5 (s) 之间,epsilon 在 0 - 1 之间。现在它们分别是 3.8 * 10^-13、7.8 和 12。如果不是方程运算,那么它是某处的单位,但我正在尝试研究所有可能性。任何帮助或见解表示赞赏。
解决方案
推荐阅读
- java - 我们如何使用 Wicket Web 框架将列从一个位置移动到另一个位置
- awk - NF,NR & i++ 在这个命令中的作用是什么?
- spring - 保存,预览/编辑(当用户注销并再次登录时)的最佳方法是什么,在 Spring 中提交表单数据
- python - 抓取按下按钮后显示的嵌套值
- angular - 即使在测试套件中调用了该函数,Jest 单元测试也未涵盖该函数
- intune - Microsoft Intune - 从 Graph API 获取软件列表
- qemu - QEMU 得到 libGL 错误:没有找到匹配的 fbConfigs 或视觉对象
- python - 如何在一维卷积中使用批量平衡器
- javascript - 不和谐.js | 命令冷却时间已设置但不起作用
- java - 如何在列表视图android中显示计算的数据