我试图通过这个公式,使用sympy 找到Moody图(f(的摩擦因子
from sympy import *
f = Symbol ('f')
Re = 3000
relative_roughness=0.1
solve(f**(-0.5)+2*log(relative_roughness/3.7+2.51/(Re*(f)**(0.5)), 10), domain=S.Reals)
但程序以错误NotImplementedError结束:多个生成器[log(1/37+836666666667/(1000000000000000000sqrt(f(((,sqrt(f(]没有实现算法来求解方程2log(1/37+836666666667/(1000000000000000000*sqrt(f((/log(10(+1/sqrt(f(
它在relative_roughness=0时有效,但我需要大于0的值。请帮帮我。如何修复?
使用sympy的nsolve
函数。这里是对0.1
:的初步猜测
In [29]: eq = f**(-0.5)+2*log(relative_roughness/3.7+2.51/(Re*(f)**(0.5)), 10)
In [30]: nsolve(eq, f, 0.1)
Out[30]: 0.106947153535321