如何查询sympy约束?

交配者

在代码的某个时刻,我在sympy符号上添加了一个上限约束。 sympy.refine(x, sympy.Q.positive(upper_bound - x))

我想从符号“ x”中以编程方式检索upper_bound(和其他约束)的值。任何想法如何实现这一目标?

干杯

RLC

精简函数无法以这种方式工作-只是在给定约束的情况下简化了表达式。例如:

In [54]: import sympy

In [55]: x = sympy.S('x')

In [56]: expr = sympy.S('sqrt(x**2)')

In [57]: sympy.refine(expr, sympy.Q.positive(x))
Out[57]: x

In [58]: sympy.refine(expr, sympy.Q.negative(x))
Out[58]: -x

In [59]: sympy.refine(expr, sympy.Q.real(x))
Out[59]: Abs(x)

不幸的是,目前使用不平等似乎没有做任何有用的事情:

In [62]: sympy.refine(expr, sympy.Q.is_true(x>0))
Out[62]: sqrt(x**2)

您可能可以对solveset做一些有用的事情:

In [68]: expr = sympy.S('A * x**2 + B * x + C')

In [69]: sympy.solveset(expr, x, sympy.Interval(1,10))
Out[69]: ConditionSet(x, Eq(A*x**2 + B*x + C, 0), [1, 10])

也许是一个更有用的示例:

In [19]: a = sympy.S('(x**2)*(sin(x)+x)')

In [20]: x = sympy.S('x')

In [25]: b = sympy.solveset(a,x,sympy.Interval(-2,2))

In [26]: b
Out[26]: ConditionSet(x, Eq(x + sin(x), 0), [-2, 2])

In [34]: b.base_set
Out[34]: [-2, 2]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何查询sympy约束?

来自分类Dev

如何确定约束逻辑编程的查询结果

来自分类Dev

如何进行受集合约束的查询

来自分类Dev

查询参数路由约束

来自分类Dev

SQL Oracle 查询约束

来自分类Dev

如何对约束类型的约束施加约束?

来自分类Dev

用约束字典查询熊猫

来自分类Dev

在检查约束中使用查询

来自分类Dev

PostgreSQL 问题、约束和查询

来自分类Dev

如何在SQL Server中查询具有多个键/值对约束的记录?

来自分类Dev

如何根据烧瓶sqlalchemy中的一些约束查询多对多?

来自分类Dev

sympy如何计算pi?

来自分类Dev

让SQL引擎执行约束检查或执行查询以预先检查约束

来自分类Dev

如何添加通用约束?

来自分类Dev

如何与约束水平对齐?

来自分类Dev

如何命名约束

来自分类Dev

如何删除检查约束?

来自分类Dev

如何准备重用约束?

来自分类Dev

如何删除Xcode约束?

来自分类Dev

如何添加通用约束?

来自分类Dev

如何正确设置约束?

来自分类Dev

如何覆盖约束

来自分类Dev

如何在SQL Server 2008中使用SQL查询生成具有约束条件的表创建脚本

来自分类Dev

PostgreSQL查询约束中允许值的列表?

来自分类Dev

Laravel查询关系约束-注入变量

来自分类Dev

有条件约束的查询范围

来自分类Dev

对属性总和有约束的MongoDB查询

来自分类Dev

MySQL删除查询忘记Id约束

来自分类Dev

SQL删除查询外键约束