我试图对科尔布鲁克方程的近似值进行编码,以获得摩擦系数。我已经在Matlab中实现了这一点,但当涉及到python时,我的代码不起作用
import math
Re = 2300
eD=0.0009
1/math.sqrt(friction)=-2*math.log10((((eD/3.7)+(2.51/Re))*(1.14-2*math.log10(((eD/2)+(21.25/Re**0.9))))))
print(friction)
我也试过这个
import math
def friction(Re, eD):
eD= 0.0009
Re= 2300
f = -2*math.log10((((eD/3.7)+(2.51/Re))*(1.14-2*math.log10(((eD/2)+(21.25/Re**0.9))))))
return 1/math.sqrt(f)
但这也不起作用
如果您只是想要这个值(而不是试图证明您自己可以解决它),那么python模块已经存在,请参阅:colebrook
我不知道科尔布鲁克方程,但假设这一行的公式:
是正确的,我们可以重新安排
给我们
科尔布鲁克方程有多种近似方法See here你指的是哪一个?这有助于更具体地了解您想要做什么
除此之外,这里还有一个简单的问题
在Python(以及我使用过的大多数语言)中,不能用这种方式编写方程。计算机不会帮你解代数。如果你求解得到
f=SomeEquation()
,只有这样计算机才能真正为你计算在第二个示例中,也存在一些问题
您已经定义了一个接受
Re
和eD
的函数,但随后立即在该函数中重新定义它们。如果您选择不传入这些变量,有一种方法可以为它们设置默认值,但我不认为这就是您在这里要做的。此外,(为了简洁起见,您可能已经省略了这一部分)您实际上从未调用过函数,这意味着您的脚本实际上从未做过任何事情你需要这样的东西(我不会在这里检查你的等式,因为我不知道你要的是哪一个):
希望这有帮助
相关问题 更多 >
编程相关推荐