10

問題:不等式を解いて、不等式を満たすcoeff_rwシンボルの値である変数 を取得しようとしています。rwこの値は、次のコードで定義されている他のシンボル (変数) に基づいている必要があります。最初に方程式を解き、次に不等式を解きます (このチュートリアルの不等式ソルバーを使用)。ただし、チュートリアルで指定されているように、PolynomialError任意のソルバーを使用して取得するたびに を取得します。coeff_rw

import sympy as sym
#======= define variables as symbols
r, c1, c2, c3, c4, rh, rg, rw, cg, cw, a = sym.symbols('r, c1 c2 c3 c4 rh rg rw cg cw a') # cg = nablaP_g/(4*mu_g); cw = nablaP_w/(4*mu_w); a = mu_g/mu_w
#======= solve system of equations
coeffs = sym.solve((c1*(sym.log(rh)) + c2 + cg*(rh**2), \
c1*(sym.log(rg)) + c2 - c3*(sym.log(rg)) - c4 - (cw - cg)*(rg**2), \
(a*c1) - c3 - 2*(rg**2)*(cw - a*cg), \
c3*(sym.log(rw)) + c4 + cw*(rw**2)), c1, c2, c3, c4)
#======= solve qg and qw
qg = sym.integrate((cg*(r**2) + coeffs[c1]*(sym.log(r)) + coeffs[c2])*(2*sym.pi*r), (r, rh, rg))
qw = sym.integrate((cw*(r**2) + coeffs[c3]*(sym.log(r)) + coeffs[c4])*(2*sym.pi*r), (r, rg, rw))
#======= substitute rg=rh in qw
qwT = qw.subs(rg, rh)
#======= solve the inequality (qw >= qwT) to obtain rw
from sympy.solvers.inequalities import reduce_rational_inequalities
coeff_rw = reduce_rational_inequalities([[qw - qwT >= 0]], rw)]

質問:上記のコードで定義されてrwいる不等式の の値を取得したいと考えています。qw >= qwT

4

1 に答える 1

1

有理関数は 2 つの多項式の比であるため、対数はまだ許可されていません。試す

solve_univariate_inequality

ただし、一部の不等式は解決が難しいことに注意してください。

于 2016-10-21T18:35:28.167 に答える