SymPy – define dominio de variable

Estoy escribiendo un progtwig para calcular un diferencial exacto para mi laboratorio de física. Sé que puedo establecer un dominio real o positivo ( from sympy import * ):

x, y, z = symbol('xy z', positive = True)

Mi problema es especificar el dominio por ejemplo n>1 . ¿Es posible? En mi salida me sale una expresión como |n^2-1| y con la configuración de este dominio n>1 aceptaría una salida como n^2-1 (sin valor absoluto “||”)

Para las suposiciones sobre los símbolos, puede usar positivo o negativo :

 p = Symbol('p', positive=True) 

Pero esto solo puede definir p> 0 (o p <0 si usas negative = True ).

Para un refinamiento de expresiones más complejo, intente refinar (expresión, suposición) :

 In [1]: n = Symbol('n') In [2]: refine(Abs(n-1), Q.positive(n-1)) Out[2]: n - 1 In [3]: refine(Abs(n-1)) Out[3]: │n - 1│ 

Es decir, crea el supuesto Q.positive (n-1) , que es n> 1 , y lo pasa a refinar .

Actualmente hay trabajos en curso para trasladar este estilo de suposición a otros algoritmos, pero el soporte aún está incompleto ( simplificar parece no reconocer este tipo de suposición).

Se espera que el soporte de Q.statement (…) se amplíe en las versiones futuras de SymPy, ya que actualmente hay mucho trabajo en progreso al respecto.