【发布时间】:2014-02-28 18:41:14
【问题描述】:
我写了一个简单的 Python 代码来解决某个液压公式(Manning's equation):
import math
def mannings(units,A,P,S,n):
if units=='SI':
k=1.0
elif units=='US':
k=1.49
R=A/P
V=(k/n)*(math.pow(R,(2/3)))*(math.sqrt(S))
Q=A*V
return R,V,Q
在上面的代码中,速度V 是根据k、n、R 和S 计算得出的。然后使用速度乘以面积A 来计算流量Q。用户输入单位约定,A、P、S 和n。 k 由单位约定决定。
当我使用mannings('US',1.0618,2.7916,0.02,0.015) 运行函数时,我得到(0.38035535176959456, 14.047854719572745, 14.916012141242343)。 R 值与电子表格中计算的 R 匹配,但 V 和 Q 相距甚远。实际的V 应该是7.374638178
Q 应该是 7.830634155。
如果有人能告诉我这里出了什么问题,那就太好了。这是一个非常简单的公式,我猜它应该很容易工作。
【问题讨论】:
-
旁注:也许
k / n * R ** (2.0 / 3) * S ** .5比拼出math.pow和math.swrt更清晰。
标签: python python-2.x