如何在 sympy 中使用 math.log10

Lea*_*ato 4 python math sympy

我有 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)

Ste*_*tef 8

您不能将模块中的函数mathsympy表达式混合。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)