gpt4 book ai didi

python - "PolynomialError: only univariate polynomials are allowed"求解不等式系统时

转载 作者:太空宇宙 更新时间:2023-11-03 14:01:20 26 4
gpt4 key购买 nike

我想求以下两个常量cons1cons2的区间我写了下面的代码

 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)), '<=')]])

但是因为腹肌,我得到了:

PolynomialError: only univariate polynomials are allowed

最佳答案

这是设计使然。 2*((x+2)**2) - Abs(x) - 1 不是 x 的多项式。 exp(2*x+1) - 2.5 也不是。 solve_rational_inequalities 的方法不适用于此类函数。

如果你试图通过将这些表达式封装在 Poly 中来欺骗数学,那么 SymPy 就会将它们设为关于 x Abs( x) (或 exp(2*x+1) 等)。这是一种多项式,但不是关于 x 的多项式,而这正是 solve_rational_inequalities 所需要的。因此出现了错误。

底线:SymPy 目前没有用于求解一般不等式系统的算法。 inequality solvers 上列出了有理不等式的算法和其他一些内容。页面,包括 solve_univariate_inequality (允许通用函数,但仅适用于一个变量)。

关于python - "PolynomialError: only univariate polynomials are allowed"求解不等式系统时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49224657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com