Simplicando Expressões

Simplicando Expressões#

from sympy import init_session
init_session(use_latex="mathjax")
IPython console for SymPy 1.14.0 (Python 3.11.12-64-bit) (ground types: python)

These commands were executed:
>>> from sympy import *
>>> x, y, z, t = symbols('x y z t')
>>> k, m, n = symbols('k m n', integer=True)
>>> f, g, h = symbols('f g h', cls=Function)
>>> init_printing()

Documentation can be found at https://docs.sympy.org/1.14.0/

Não há uma definição única de qual é a forma mais simples de uma expressão.

O método simplify() utiliza diversos métodos para tentar simplificar a expressão (veja a documentação para mais informações).

simplify(sin(x)**2 + cos(x)**2)
\[\displaystyle 1\]
simplify( (x**3 + x**2 - x - 1)/(x**2 + 2*x + 1) )
\[\displaystyle x - 1\]

No entanto, em alguns casos, ele pode não corresponder à sua noção de qual é a forma mais simples.

simplify(x**2 + 2*x + 1)
\[\displaystyle x^{2} + 2 x + 1\]

Talvez o que você precise seja o método factor (o que também ocorre no Mathematica).

factor(x**2 + 2*x + 1)
\[\displaystyle \left(x + 1\right)^{2}\]

Simplificação de Polinômios#

Para simplificar polinômios utilizamos a função expand

expand((x + 1)**2)
\[\displaystyle x^{2} + 2 x + 1\]
expand((x + 2)*(x - 3))
\[\displaystyle x^{2} - x - 6\]
expand( (x + 1)*(x - 2) - (x - 1)*x)
\[\displaystyle -2\]
expr = x**2*z + 4*x*y*z + 4*y**2*z
expr
\[\displaystyle x^{2} z + 4 x y z + 4 y^{2} z\]
factor(expr)
\[\displaystyle z \left(x + 2 y\right)^{2}\]

A função collect() no SymPy é usada para agrupar termos semelhantes de uma expressão algébrica. Ela permite combinar termos com potências iguais de uma variável, facilitando a simplificação de expressões.

expr = x*y + x - 3 + 2*x**2 - z*x**2 + x**3
expr
\[\displaystyle x^{3} - x^{2} z + 2 x^{2} + x y + x - 3\]
collected_expr = collect(expr, x)
collected_expr
\[\displaystyle x^{3} + x^{2} \left(2 - z\right) + x \left(y + 1\right) - 3\]

A função cancel() do SymPy é usada para simplificar expressões algébricas, cancelando fatores comuns entre o numerador e o denominador de uma fração racional. Isso é útil quando você tem frações algébricas e deseja simplificar a expressão removendo termos comuns.

a = (x**2 + 2*x + 1)/(x**2 + x)
a
\[\displaystyle \frac{x^{2} + 2 x + 1}{x^{2} + x}\]
cancel(a)
\[\displaystyle \frac{x + 1}{x}\]

A função trigsimp() do SymPy é usada para simplificar expressões trigonométricas. Ela aplica uma série de identidades trigonométricas para tentar simplificar a expressão, como a combinação de funções trigonométricas equivalentes ou a aplicação de identidades comuns, como a identidade de Pitágoras.

expr = sin(x)**4 - 2*cos(x)**2*sin(x)**2 + cos(x)**4
expr
\[\displaystyle \sin^{4}{\left(x \right)} - 2 \sin^{2}{\left(x \right)} \cos^{2}{\left(x \right)} + \cos^{4}{\left(x \right)}\]
trigsimp(expr)
\[\displaystyle \frac{\cos{\left(4 x \right)}}{2} + \frac{1}{2}\]
trigsimp(sin(x)*tan(x)/sec(x))
\[\displaystyle \sin^{2}{\left(x \right)}\]