Как проверить, бесконечна ли переменная в SympyPython

Программы на Python
Ответить
Anonymous
 Как проверить, бесконечна ли переменная в Sympy

Сообщение Anonymous »

Sympy имеет (по крайней мере?) три типа бесконечности (бесконечность, отрицательная бесконечность и комплексная бесконечность). Я столкнулся с проблемой проверки того, является ли выражение Sympy бесконечным, и моя программа не удалась, потому что я не подумал о сложной форме. В настоящее время я могу придумать три способа тестирования всех типов бесконечности: либо с помощью isinstance(), либо с помощью одиночных элементов Sympy, либо с помощью переменных Sympy.

Код: Выделить всё

import sympy
inf = sympy.oo
inf_neg = -sympy.oo
inf_zoo = sympy.zoo
inf_neg_zoo = -sympy.zoo
for v in [inf, inf_neg, inf_zoo, inf_neg_zoo, sympy.Symbol("a")+sympy.Symbol("b")+inf]:
if isinstance(v, sympy.core.numbers.Infinity | sympy.core.numbers.NegativeInfinity | sympy.core.numbers.ComplexInfinity):
print(v,"is some type of Infinity")
else:
print(v, "is not infinite")
if v in [sympy.S.Infinity, sympy.S.NegativeInfinity, sympy.S.ComplexInfinity]:
print(v,"is some type of Infinity")
else:
print(v, "is not infinite")
if v == sympy.oo or -v == sympy.oo or v == sympy.zoo:
print(v,"is some type of Infinity")
else:
print(v, "is not infinite")
Вывод:

Код: Выделить всё

 oo is is some type of Infinite (isinstance)
oo is is some type of Infinite (sympy.S.xxx)
oo is is some type of Infinite (sympy.xxx)
-oo is is some type of Infinite (isinstance)
-oo is is some type of Infinite (sympy.S.xxx)
-oo is is some type of Infinite (sympy.xxx)
zoo is is some type of Infinite (isinstance)
zoo is is some type of Infinite (sympy.S.xxx)
zoo is is some type of Infinite (sympy.xxx)
zoo is is some type of Infinite (isinstance)
zoo is is some type of Infinite (sympy.S.xxx)
zoo is is some type of Infinite (sympy.xxx)
a + b + oo is not infinite
a + b + oo is not infinite
a + b + oo is not infinite
Я не думаю, что существует какая-либо существенная разница в производительности.
Однако мой вопрос заключается в том, есть ли более элегантный способ проверки бесконечности в Sympy, потому что во многих ситуациях, таких как моя, мне просто нужно знать, является ли выражение бесконечным, а не какой тип бесконечности.
PS: Я искал в документации Sympy и исходном коде, но не нашел других типов бесконечности.>

Подробнее здесь: https://stackoverflow.com/questions/798 ... e-in-sympy
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»