gpt4 book ai didi

python - 如何在 sympy 1.3 上进行区间运算?

转载 作者:行者123 更新时间:2023-11-30 22:06:18 27 4
gpt4 key购买 nike

如何在 Sympy 1.3 中进行区间运算? (具体来说,加法和乘法)

例如,给定:

q1 = Interval(0,255)
q2 = Interval(0,255)

这两个间隔相加应为 Interval(0, 510)。 (加号运算符被重载以表示“并集”,因此 q1+q2 产生 Interval(0,255)。)

如果我尝试Add(q1, q2),我会得到一个异常:

  Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/sympy/core/cache.py", line 93, in wrapper
retval = cfunc(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/sympy/core/compatibility.py", line 850, in wrapper
result = user_function(*args, **kwds)
File "/usr/local/lib/python2.7/dist-packages/sympy/core/operations.py", line 45, in __new__
c_part, nc_part, order_symbols = cls.flatten(args)
File "/usr/local/lib/python2.7/dist-packages/sympy/core/add.py", line 223, in flatten
newseq.append(Mul(c, s))
File "/usr/local/lib/python2.7/dist-packages/sympy/core/cache.py", line 93, in wrapper
retval = cfunc(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/sympy/core/compatibility.py", line 850, in wrapper
result = user_function(*args, **kwds)
File "/usr/local/lib/python2.7/dist-packages/sympy/core/operations.py", line 45, in __new__
c_part, nc_part, order_symbols = cls.flatten(args)
File "/usr/local/lib/python2.7/dist-packages/sympy/core/mul.py", line 186, in flatten
r, b = b.as_coeff_Mul()
AttributeError: 'Interval' object has no attribute 'as_coeff_Mul'

(我在 Mul 中遇到了类似的异常)。

但是,添加两个间隔的代码似乎就在这里:https://github.com/sympy/sympy/blob/sympy-1.3/sympy/sets/handlers/add.py#L22

但是调度程序机制似乎没有捕获 Interval + Interval 的情况。

如何在 sympy 中进行区间加法和乘法?

最佳答案

Sympy Intervals 不执行区间算术。您在存储库中找到的函数是 sympy.sets.setexpr.SetExpr 的处理程序之一,这是一种采用给定集合中的值的表达式类型:

from sympy import Interval
from sympy.sets.setexpr import SetExpr

q1 = SetExpr(Interval(0, 255))
q2 = SetExpr(Interval(0, 255))

result = q1 + q2

SetExpr 目前是隐藏的并且大部分没有文档记录。

关于python - 如何在 sympy 1.3 上进行区间运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52766609/

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