首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python SymPy:求解不等式时的错误

Python SymPy:求解不等式时的错误
EN

Stack Overflow用户
提问于 2016-10-11 15:30:47
回答 1查看 767关注 0票数 10

问题:,我试图解决一个不等式,得到一个变量coeff_rw,它是满足不等式的符号rw的值。此值应以下列代码中定义的其他符号(变量)表示。我首先求解方程,然后是不等式(使用来自this tutorial的不等式求解器),但是,每次我使用任何一个求解器来获得tutorial中给出的coeff_rw时,我都会得到一个tutorial

代码语言:javascript
复制
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)]

问题:I希望获得上面代码中定义的不等式qw >= qwTrw值。

EN

回答 1

Stack Overflow用户

发布于 2016-10-21 18:35:28

有理函数是两个多项式的比值,因此仍不允许使用对数。试一试

代码语言:javascript
复制
solve_univariate_inequality

但是请注意一些不等式是很难解决的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39981058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档