首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解不等式组时"PolynomialError:只允许一元多项式“

解不等式组时"PolynomialError:只允许一元多项式“
EN

Stack Overflow用户
提问于 2018-03-11 20:19:37
回答 1查看 412关注 0票数 2

我想找到以下两个常量cons1cons2的间隔,我编写了如下代码

代码语言:javascript
复制
 from sympy import Poly
 from sympy import Abs
 from sympy.solvers.inequalities import solve_rational_inequalities
 from sympy.abc import x
 cons1=2*((x+2)**2)-Abs(x)-1
 cons2=exp(2*x+1)-2.5
 solve_rational_inequalities([[((Poly(cons1), Poly(1, x)), '<='), (Poly(cons2), Poly(1, x)), '<=')]])

但是因为我得到的抗体:

代码语言:javascript
复制
PolynomialError: only univariate polynomials are allowed
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-11 21:24:50

这是故意的。2*((x+2)**2) - Abs(x) - 1不是x中的多项式,exp(2*x+1) - 2.5也不是。solve_rational_inequalities的方法不适用于这类函数。

如果你试图用多边形包装这些表达式来欺骗数学,那么SymPy就会使它们与x Abs(x) (或exp(2*x+1)等)相关的多项式。这是一种多项式,而不是关于x的多项式,这是solve_rational_inequalities所需要的。因此出现了错误。

底线: SymPy目前还没有求解一般不等式系统的算法。有一个用于rational不等式不等式求解器页面上列出的其他内容的算法,包括solve_univariate_inequality (它允许通用函数,但只允许一个变量)。

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

https://stackoverflow.com/questions/49224657

复制
相关文章

相似问题

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