gpt4 book ai didi

python - math.exp() 对于 float 返回 0

转载 作者:行者123 更新时间:2023-12-01 00:06:31 25 4
gpt4 key购买 nike

我已经包含了我的问题的相关代码。当我运行代码时,我的英尺到米功能按预期工作。 math.exp() 运算中的 -M*g*z/(T*R) 给出了一个大小合适的负 float 。尽管如此,我的函数 Pressure() 仅返回 0.0,如下所示:z = 1000 ft, P = 0.0 atm。我究竟做错了什么?我已经确保一切都是 float ,这样我就不会被截断,但我仍然遇到问题。任何回应将不胜感激!谢谢!

def Pressure(z):
Po=1.0 #atm
M=29.0 #kg/kmol
g=9.81 #m/s^2
T=300.0 #K
R=0.082057 #Latm/molK
return math.exp(-M*g*z/(T*R))

def ft_to_m(x):
return float(3.28084*x)

for i in range(0,30001): #i in ft
if i % 1000 == 0:
print("z =",i,"ft, P =",Pressure(ft_to_m(i)), "atm")
continue

最佳答案

我不知道是你的公式 (-M*g*z/(T*R)) 错误还是你误解了 math.exp :math.exp(x) 是 ex

这里你的x(公式的结果)在第一步就已经是-37915,并且从那里开始只会走下坡路。 e-38000 是一种非常复杂的 0 编写方式,因为 Python 仅使用 64 位浮点整数。

编辑:看起来是你的公式:M = 29 g/kmol(或更糟糕的磅/磅-摩尔)而不是千克/千摩尔,你可能还想检查你的 R 和 K 值.

基本上检查您的所有值,然后进行量纲分析以确保单位适合在一起(如果您使用 atm 等非 SI 单位,则无济于事,因此气压公式的“标准”常量列表不适用) t 按原样应用)。

关于python - math.exp() 对于 float 返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59944269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com