Есть ли реализация _рациональной_ интервальной арифметики в Python? - PullRequest
8 голосов
/ 02 января 2011

Есть ли в Python реализация рациональной интервальной арифметики? использует числа с плавающей запятой, а не рациональные числа.

Если нет, то есть ли реализация Python, включающая в себя ± ∞?

Ответы [ 2 ]

5 голосов
/ 02 января 2011

Sympy имеет интервалы , рациональные числа и бесконечность. Класс Interval является подклассом класса Set .

# oo is the symbol for infinity
from sympy import Interval, oo, Rational

i1 = Interval(10, 15)
i2 = Interval(0, oo)
i3 = Interval(-5, -1)
# adding intervals
i4 = i1 + i3
i5 = i1 + i2
# interval with open end
i6 = Interval(Rational(1, 2), Rational(45, 3), left_open=True)

print 11 in i1 # True
print -1 in i1 # False
print 0 in i4 # False
print Rational(3, 2) in i6 # True
print oo in i2 # False
print i2.sup # oo (infinity)
print Rational(1, 2) in i6 # False
print i6.inf # 1/2
0 голосов
/ 19 марта 2018

PyInterval теперь имеет рациональную интервальную арифметику в функции Python.

Из документов PyInterval :

Пакет интервалов можно загрузить в интерпретатор Python с помощьюоператор, который вставляет в текущее пространство имен класс интервала, константу, представляющую математическую бесконечность, и модуль, обеспечивающий трансцендентные функции интервала.

from interval import interval, inf, imath

interval[0, 2] * interval[4, inf]
interval([-inf, inf])
...