我有 sympy 的问题,我需要求解两个方程组:
B1=2.51/(Re(f^(0.5)))
f=(1/(-2*log10((epsilon/D/3.7)+B1)))^2
Run Code Online (Sandbox Code Playgroud)
math.log10我尝试使用 sympy、numpy 和 fsolve,但是使用返回浮点数的 时出现问题:
B1=2.51/(Re(f^(0.5)))
f=(1/(-2*log10((epsilon/D/3.7)+B1)))^2
Run Code Online (Sandbox Code Playgroud)
返回:
TypeError: can't convert expression to float
Run Code Online (Sandbox Code Playgroud)
您不能将模块中的函数math与sympy表达式混合。Expect中的函数math作为输入而不是表达式作为输入。
相反,使用sympy.log.
import sympy
x = sympy.Symbol('x', real=True)
print('log(x): ', sympy.log(x))
print('log(exp(x)): ', sympy.simplify(sympy.log(sympy.exp(x))))
print('log10(x): ', sympy.log(x, 10))
print('log10(10**x): ', sympy.simplify(sympy.log(10**x, 10)))
Run Code Online (Sandbox Code Playgroud)
输出:
log(x): log(x)
log(exp(x)): x
log10(x): log(x)/log(10)
log10(10**x): x
Run Code Online (Sandbox Code Playgroud)