문제를 해결하는 동안 : 나는 부등식을 만족하는 기호 rw
의 값을하는 변수 coeff_rw
을 얻기 위해 불평등을 해결하기 위해 노력하고 있습니다. 이 값은 다음 코드에서 정의 된 다른 기호 (변수)로 표시되어야합니다. 먼저 방정식을 풀고 불평등 (this tutorial의 부등식 해결사 사용)을 풀고 있는데 tutorial에 주어진대로 coeff_rw
을 얻으려고 솔버를 사용할 때마다 PolynomialError
이 나옵니다.파이썬 SymPy : 오류 불평등을
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)]
질문 : 내가 위의 코드에 정의 된 불평등 qw >= qwT
에 대한 rw
의 값을 얻을 싶습니다.
수량 'qw'와'qwT'는 다항식이 아니며'log (rw)'를 포함합니다. – Stelios
나는 이해했다 ... rational_inequality 해결사도 시도했지만'PolynomialError'도 제공한다 – Pupil