gpt4 book ai didi

python-2.7 - 如何限制包含符号的 sympy FiniteSet

转载 作者:行者123 更新时间:2023-12-03 18:39:23 25 4
gpt4 key购买 nike

我对 sympy 还很陌生。我试图用 linsolve() 求解线性方程组。这会产生一个解决方案,可以使用以下两行进行复制。

d = symbols("d")
solution = sets.FiniteSet((d + 1, -d + 4, -d + 5, d))

我的解决方案遵守所有四个值都必须为正整数的限制。这发生在 d = 0、1、2、3、4 时。

我能够使用固定的 d(例如 d = 0)评估解决方案

solution.subs({d : 0})

我希望将解决方案集自动限制为有效解决方案。从数学上讲,这相当于与\mathbb{N^0}^4 的交集。在实践中,我想得到类似的输出

for d_fixed in range(5):
solution.subs({d : d_fixed})

我。 e.

{(1, 4, 5, 0)}
{(2, 3, 4, 1)}
{(3, 2, 3, 2)}
{(4, 1, 2, 3)}
{(5, 0, 1, 4)}

我该怎么做?

最佳答案

我认为按照这些思路可以做到这一点,只要您有一点额外的魔力。

>>> from sympy import *
>>> var('d')
d
>>> solution = sets.FiniteSet((d+1,-d+4,-d+5,d))
>>> list(list(solution)[0])
[d + 1, -d + 4, -d + 5, d]
>>> from sympy.solvers.inequalities import reduce_inequalities
>>> reduce_inequalities([0<=d + 1, 0<=-d + 4, 0<=-d + 5, 0<=d],[d])
And(0 <= d, d <= 4)

我很感激https://stackoverflow.com/users/1879010/dietrich在看到您的问题之前,我一直忘记阅读评论。

关于python-2.7 - 如何限制包含符号的 sympy FiniteSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40441532/

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