我正在使用 SymPy 来求解方程,代码如下。
我做了一个更简单的例子,但这个问题可能与原始方程有关,所以我会选择在这里发布原始代码而不是简化的代码。
from sympy import *
dP, rho, nu, D, miu, L, Q, Re, eps, f = symbols('dP, rho, nu, D, miu, L, Q, Re, eps, f')
solve([Eq(Re, rho * nu * D / mu),
Eq(L / D, 0.05 * Re),
Eq(L / D, 1.359 * Re ** (1/4)),
Eq(dP, 32 * miu * L * nu / D ** 2),
Eq(dP, 128 * miu * L * Q / pi / D ** 2),
Eq(dP, f * (L/D) * (rho * nu ** 2 / 2)),
Eq(f, 64 / Re),
Eq(1 / sqrt(f), -1.8 * log ((eps / D / 3.7) ** 1.11 + 6.9 / Re))],
[Re, D, f])
带有错误消息:
UnboundLocalError Traceback (most recent call last)
<ipython-input-13-884b0835e135> in <module>
7 Eq(f, 64 / Re),
8 Eq(1 / sqrt(f), -1.8 * log ((eps / D / 3.7) ** 1.11 + 6.9 / Re))],
----> 9 [Re, D, f])
G:\Program-Files\anaconda3\lib\site-packages\sympy\solvers\solvers.py in solve(f, *symbols, **flags)
1094 solution = _solve(f[0], *symbols, **flags)
1095 else:
-> 1096 solution = _solve_system(f, symbols, **flags)
1097
1098 #
G:\Program-Files\anaconda3\lib\site-packages\sympy\solvers\solvers.py in _solve_system(exprs, symbols, **flags)
1834 return rv
1835
-> 1836 solved_syms = set(solved_syms) # set of symbols we have solved for
1837 legal = set(symbols) # what we are interested in
1838 # sort so equation with the fewest potential symbols is first
UnboundLocalError: local variable 'solved_syms' referenced before assignment
慕的地6264312
相关分类