︠d385eb45-d79e-478b-973f-683d3ae92f5ci︠ %html

1. Resumo do Tutorial


Através de exemplos simples serão apresentadas algumas funções úteis no estudo de Álgebra e Análise.
Em particular, estudaremos as expressões simbólicas no Sage e procedimentos de simplificação dessas expressões.
Finalmente, veremos exemplos de resolução de equações algébricas e transcendentes.
︡d034528d-38a3-4cbd-93cc-d4bd1fe2ea6a︡︡{"done":true,"html":"

1. Resumo do Tutorial

\n
\nAtravés de exemplos\nsimples serão apresentadas algumas funções úteis no estudo de Álgebra e\nAnálise.
\nEm particular, estudaremos as expressões simbólicas
\nno Sage e procedimentos de simplificação\ndessas expressões.
\nFinalmente, veremos exemplos de resolução de\nequações algébricas e transcendentes.
\n"} ︠fcd8cf88-6226-4965-9d73-98391366d6c2i︠ %html

2. Expressões Simbólicas


O Sage permite efetuar todo tipo de cálculo a partir de expressões simbólicas que combinam números, variáveis simbólicas, operações aritméticas e funções básicas (sqrt, sin, exp, etc).
Em consequência, manipulando a expressão podemos transformá-la de modo que, no final do processo, a expressão se apresente da maneira que julgamos mais adequada.

O Exemplo dado a seguir, consiste em avaliar uma fórmula matemática que contém, além da variável, um parâmetro. Através do comando subs a fórmula (geral) pode ser avaliada para diferentes valores (não necessariamente numéricos) da variável e do parâmetro. Em seguida, é apresentado um procedimento alternativo ao comando subs (e mais direto).
︡39c581df-d1e3-4817-9487-fcdeb6182ecc︡︡{"done":true,"html":"

2. Expressões\nSimbólicas

\n
\nO Sage permite efetuar\ntodo tipo de cálculo a partir de expressões simbólicas que combinam\nnúmeros, variáveis simbólicas, operações aritméticas e funções básicas\n(sqrt, sin, exp, etc).
\nEm consequência, manipulando a expressão podemos transformá-la de modo\nque, no final do processo, a expressão se apresente da maneira que\njulgamos mais adequada.
\n
\nO Exemplo dado a seguir, consiste em avaliar uma fórmula matemática que\ncontém, além da variável, um parâmetro. Através do comando subs
a fórmula\n(geral) pode ser avaliada para diferentes valores (não necessariamente\nnuméricos) da variável e do parâmetro. Em seguida, é apresentado um\nprocedimento alternativo ao comando subs (e mais direto).
\n"} ︠c0f3358b-e366-421e-a437-3a591467c075︠ # Exemplo: Manipulando Expressões Simbólicas com subs a,x=var('a,x'); y=cos(x+a)*(x+1);y show(y) ︡51b8cc43-47e6-401f-8e76-928615828618︡︡{"stdout":"(x + 1)*cos(a + x)\n","done":false}︡{"html":"
$\\displaystyle {\\left(x + 1\\right)} \\cos\\left(a + x\\right)$
","done":false}︡{"done":true} ︠c461846c-2369-4375-9aa8-95cb8fde063b︠ # Três diferentes substituições para a e x # Mas observe que y, ou seja,a expressão y=cos(x+a)*(x+1) nunca se altera; apenas o resultado da substituição se modifica # E poderia ser atribuido a outra variável ( o y estará sempre disponível para uso futuro) y.subs(a=-x); # após o subs, o Sage simplifica o resultado como você faria no papel; verifique ! y.subs(x=pi/2, a=pi/3); # subs simbólico, o resultado não é avaliado numericamente y.subs(x=0.5, a=2.3) # subs com valores numéricos (ponto decimal!); neste caso o resultado é numérico gg = y.subs(x=pi/2, a=pi/3); # atribui resultado do subs à variável gg show(gg) # exibe conteúdo de gg como uma fórmula ︡cb1d1dbe-9bc8-4e81-bc3f-ea740a27d2ff︡︡{"stdout":"x + 1\n","done":false}︡{"stdout":"-1/4*sqrt(3)*(pi + 2)\n","done":false}︡{"stdout":"-1.41333351100299\n","done":false}︡{"html":"
$\\displaystyle -\\frac{1}{4} \\, \\sqrt{3} {\\left(\\pi + 2\\right)}$
","done":false}︡{"done":true} ︠d3b580f5-159c-4a39-a964-17a673d26ccf︠ # Mesmo Exemplo: Procedimento Alternativo y(a=-x); y(x=pi/2,a=pi/3); y(x=0.5,a=2.3); ︡43225b10-b37d-4daa-8875-92a049a9af12︡︡{"stdout":"x + 1\n","done":false}︡{"stdout":"-1/4*sqrt(3)*(pi + 2)\n","done":false}︡{"stdout":"-1.41333351100299\n","done":false}︡{"done":true} ︠5ad62710-6174-4a2d-8a0f-2edeeb1bfe3bi︠ %html Substituição de Sub-expressões

Além de substituir variáveis, podemos também substituir sub-expressões inteiras dentro de uma expressão simbólica.
Para tanto, é usado o comando substitute. Observe, no exemplo, que $x^3$ é substituído simbolicamente por $y^2$; observe, também, o uso de um duplo igual (==).

︡e4cb4b83-491e-4499-80ac-d49fae564413︡︡{"done":true,"html":"Substituição de\nSub-expressões
\n
\n
Além\nde substituir variáveis, podemos também substituir sub-expressões\ninteiras dentro de uma expressão simbólica.
\nPara tanto, é usado o comando substitute
.\nObserve, no exemplo, que $x^3$ é substituído simbolicamente por $y^2$;\nobserve, também, o uso de um duplo igual (==).
\n
\n"} ︠a65b48f5-9fad-41f5-9caa-d3dcb5ed55a4︠ y,z=var('y,z') # define variáveis f=x^3+y^2+z # definição inicial da função f f.substitute(x^3==y^2) # manipulação simbólica de f (para sub-expressões, usar ==; para variáveis, usar =) ︡bfaa3296-76a6-431c-a51b-d09e3e3b8d53︡︡{"stdout":"2*y^2 + z\n","done":false}︡{"done":true} ︠6f9eed14-471c-4d49-804d-bd32e81cdd68i︠ %html Transformações de Expressões

Mais especificamente, veremos comandos do Sage que permitem a manipulação de polinômios e funções racionais.

Polinômios

O comando expand permite desenvolver um polinômio enquanto o comando collect agrupa os termos do polinômio de acordo com a potência da variável fornecida.
︡cf68b1e7-5c71-447b-a151-e3138d7761aa︡︡{"done":true,"html":"Transformações de Expressões
\n
\nMais\nespecificamente, veremos comandos do Sage que permitem a manipulação de\npolinômios e funções racionais.
\n
\nPolinômios
\n
\nO comando expand
\npermite desenvolver um polinômio enquanto o comando collect\nagrupa os termos do polinômio de acordo com a potência da variável\nfornecida.
\n"} ︠1eef7404-17f0-4796-80dd-023286d846f7︠ # Exemplo: Aplicando expand a um Polinômio x, y = var('x,y') p = (x+y)*(x+1)^2 # define o polinômio p p2 = p.expand(); p2 # desenvolve o polinômio p, atribui a p2 e exibe # Agora, agrupa termos de acordo com as potências da variável x p3=p2.collect(x); p3 # Os polinômios são iguais? Confira a resposta bool(p3==p2) # Agrupa termos de acordo com as potencias de y p4=p2.collect(y); p4 ︡66539346-0198-4275-88aa-0cb956b865a0︡︡{"stdout":"x^3 + x^2*y + 2*x^2 + 2*x*y + x + y\n","done":false}︡{"stdout":"x^3 + x^2*(y + 2) + x*(2*y + 1) + y\n","done":false}︡{"stdout":"True\n","done":false}︡{"stdout":"x^3 + 2*x^2 + (x^2 + 2*x + 1)*y + x\n","done":false}︡{"done":true} ︠e9fb2efa-c672-4cb2-bc46-4f88b10be8e1︠ # Exemplo Mais Complexo: Agrupando termos de acordo com potências de sub-expressão (sin(x)) f=(x+y+sin(x))^2 g=f.expand() g.collect(sin(x)) # Comandos aninhados (mesmo resultado) f.expand().collect(sin(x)) ︡dac4de27-ef38-4d94-8495-0ae307fd822c︡︡{"stdout":"x^2 + 2*x*y + y^2 + 2*(x + y)*sin(x) + sin(x)^2\n","done":false}︡{"stdout":"x^2 + 2*x*y + y^2 + 2*(x + y)*sin(x) + sin(x)^2\n","done":false}︡{"done":true} ︠d6479f0a-9e50-488d-b985-8d5fc2bbede8i︠ %html Funções Racionais

Considere a função $r=\frac{x^3+x^2y+3x^2+3xy+2x+2y}{x^3+2x^2+xy+2y}$; acompanhe os exemplos fornecidoa seguir.

︡2bc2c444-553b-4d8f-94d3-8183ab980022︡︡{"done":true,"html":"Funções Racionais
\n
\nConsidere a função $r=\\frac{x^3+x^2y+3x^2+3xy+2x+2y}{x^3+2x^2+xy+2y}$;\nacompanhe os exemplos fornecidoa seguir.
\n
\n"} ︠15efacee-c3ac-40d7-80fa-d13e01da0493︠ ︡7ab9468d-3386-4969-bb94-3e489780f879︡ ︠684ec04a-eae0-41cd-8bc5-4589c6bb7ea7s︠ # Exemplo de vários comandos aplicados a Funções Racionais x, y = var('x,y') r=(x^3+x^2*y+3*(x^2)+3*x*y+2*x+2*y)/(x^3+2*(x^2)+x*y+2*y);show(r) # Usando show() para facilitar visualização show(r.simplify_rational()) show(r.factor()) show(r.factor().expand()) ︡fd1a35ba-a256-4a1e-9496-7f0a35a64715︡︡{"html":"
$\\displaystyle \\frac{x^{3} + x^{2} y + 3 \\, x^{2} + 3 \\, x y + 2 \\, x + 2 \\, y}{x^{3} + 2 \\, x^{2} + x y + 2 \\, y}$
"}︡{"html":"
$\\displaystyle \\frac{x^{2} + {\\left(x + 1\\right)} y + x}{x^{2} + y}$
"}︡{"html":"
$\\displaystyle \\frac{{\\left(x + y\\right)} {\\left(x + 1\\right)}}{x^{2} + y}$
"}︡{"html":"
$\\displaystyle \\frac{x^{2}}{x^{2} + y} + \\frac{x y}{x^{2} + y} + \\frac{x}{x^{2} + y} + \\frac{y}{x^{2} + y}$
"}︡{"done":true} ︠619539a7-7cbc-4201-badf-b8e6d24352bfi︠ %html Outro Exemplo de Funções Racionais

Considere, agora, a função $r=\frac{(x-1)x}{x^2-7}+\frac{y^2}{x^2-7}+\frac{b}{a}+\frac{c}{a}+\frac{1}{x+1}$; acompanhe os exemplos fornecidos a seguir.
Observe o comando combine que agrupa termos que têm o mesmo denominador;

︡097e25e4-78fc-4c60-93dc-a64479f8fd99︡︡{"done":true,"html":"Outro Exemplo de Funções Racionais
\n
\nConsidere, agora, a função $r=\\frac{(x-1)x}{x^2-7}+\\frac{y^2}{x^2-7}+\\frac{b}{a}+\\frac{c}{a}+\\frac{1}{x+1}$; acompanhe os exemplos\nfornecidos a seguir.
\nObserve o comando combine\nque agrupa termos que têm o mesmo denominador;
\n
\n"} ︠e69ddad2-de91-4c7e-baa6-a1b7a7c76c02︠ a, c, b, x,y=var('a','b','c','x','y') rr=((x-1)*x)/(x^2-7)+(y^2)/(x^2-7)+b/a+c/a+1/(x+1) show(rr.combine()) ︡e956b8d2-5f88-4877-bbd0-332772de4350︡︡{"html":"
$\\displaystyle \\frac{{\\left(x - 1\\right)} x + y^{2}}{x^{2} - 7} + \\frac{b + c}{a} + \\frac{1}{x + 1}$
","done":false}︡{"done":true} ︠6a2bc3f1-668b-4eb9-9e9e-34cf53d1a549i︠ %html Funções Matemáticas Elementares e suas Transformações

O Sage fornece, entre outras, as seguintes funções elementares:

exp, log, log(x,a) (logaritmo de x na base a), sin, cos, tan, arcsin, arccos, arctan, sinh, cosh, tanh, sqrt, hth_root (raiz n-ésima)

A seguir, são apresentados vários exemplos de transformações aplicáveis a essas funções matemáticas. Verifique, com lápis e papel, cada uma delas.


︡53846b18-5c2d-4f4b-9dc7-77966df7fcba︡︡{"done":true,"html":"Funções Matemáticas\nElementares e suas Transformações
\n
\nO Sage fornece, entre outras, as seguintes funções elementares:
\n
\nexp, log, log(x,a)\n(logaritmo de x na base a), sin, cos, tan, arcsin, arccos, arctan,\nsinh, cosh, tanh, sqrt, hth_root (raiz n-ésima)
\n
\nA seguir, são apresentados vários exemplos de transformações aplicáveis\na essas funções matemáticas. Verifique, com lápis e papel, cada uma\ndelas.
\n
\n
\n
"} ︠e4480f5e-c6bf-4535-b159-e9894ac635a6︠ # Exemplo: Simplificação da Função Exponencial (anteriormente era simplify_exp, abandonada em favor de canonicalize_radical) f = (e^x-1) / (1+e^(x/2)); show(f) show(f.canonicalize_radical()) ︡d43c8e57-51f5-4ee5-aee1-502232b039bd︡︡{"html":"
$\\displaystyle \\frac{e^{x} - 1}{e^{\\left(\\frac{1}{2} \\, x\\right)} + 1}$
","done":false}︡{"html":"
$\\displaystyle e^{\\left(\\frac{1}{2} \\, x\\right)} - 1$
","done":false}︡{"done":true} ︠ee8e24a9-4e88-402d-a9ed-aed5d6435c0f︠ # Exemplos: Transformação de Funções Trigonométricas f = cos(x)^6 + sin(x)^6 + 3 * sin(x)^2 * cos(x)^2 show(f) show(f.simplify_trig()) # Simplificação ︡dd66309a-bb2d-43b3-9503-44a36159fffc︡︡{"html":"
$\\displaystyle \\cos\\left(x\\right)^{6} + \\sin\\left(x\\right)^{6} + 3 \\, \\cos\\left(x\\right)^{2} \\sin\\left(x\\right)^{2}$
","done":false}︡{"html":"
$\\displaystyle 1$
","done":false}︡{"done":true} ︠37b628b5-39a1-4faf-94d9-5ab726df0655︠ # Exemplo: reduce_trig ("lineariza") f = cos(x)^6; show(f.reduce_trig()) ︡0cb8e878-735f-47d2-acd3-611d5dfa1334︡︡{"html":"
$\\displaystyle \\frac{1}{32} \\, \\cos\\left(6 \\, x\\right) + \\frac{3}{16} \\, \\cos\\left(4 \\, x\\right) + \\frac{15}{32} \\, \\cos\\left(2 \\, x\\right) + \\frac{5}{16}$
","done":false}︡{"done":true} ︠4a061c90-7787-41c0-a6c9-dcce9e953159︠ # Exemplo: expand_trig f = sin(5 * x); show(f.expand_trig()) ︡a1838e96-f4d8-4d37-843c-7c5a0d4b8dcd︡︡{"html":"
$\\displaystyle 5 \\, \\cos\\left(x\\right)^{4} \\sin\\left(x\\right) - 10 \\, \\cos\\left(x\\right)^{2} \\sin\\left(x\\right)^{3} + \\sin\\left(x\\right)^{5}$
","done":false}︡{"done":true} ︠b9fa93fc-3634-4cbc-a343-bd5cd636083b︠ #Exemplo: Simplificação de Fatoriais n = var('n'); f = factorial(n+1)/factorial(n) f.simplify_factorial() ︡7d0464d8-ef71-45a5-a3ea-3918c91f2477︡︡{"stdout":"n + 1\n","done":false}︡{"done":true} ︠ee4b46a1-f1c2-4bc7-865e-08bfb2f51fbf︠ # Exemplo: Simplificação de Funções Raiz Quadrada, Exponencial, Logaritmo (anteriormente, era simplify_radical) f1 = sqrt(abs(x)^2); f1.canonicalize_radical() # Raiz Quadrada f2 = log(x*y); f2.canonicalize_radical() # Logaritmo ︡08793b50-5d31-4d0d-b041-a303754ac762︡︡{"stdout":"x\n","done":false}︡{"stdout":"log(x) + log(y)\n","done":false}︡{"done":true} ︠0bd4e737-4725-4f90-99a1-fb0fee23f586i︠ %html Condições Sobre Variáveis Simbólicas

Em muitas situações, as variáveis não podem assumir qualquer valor, estando restritas a um domínio particular, por exemplo, os reais positivos.
O Sage fornece os comandos assume() e forget() para impor (ou retirar) restrições deste tipo.

Um caso típico é o da simplificação da raiz quadrada $\sqrt{x^2}$.
︡16579deb-8c8a-4da3-9c5f-2b4f57cb7958︡︡{"done":true,"html":"Condições Sobre Variáveis\nSimbólicas
\n
\nEm muitas situações, as variáveis não podem assumir qualquer valor,\nestando restritas a um domínio particular, por exemplo, os reais\npositivos.
\nO Sage fornece os comandos assume()\ne forget()\npara impor (ou retirar) restrições deste tipo.
\n
\nUm caso típico é o da simplificação da raiz quadrada $\\sqrt{x^2}$.
\n"} ︠71db4169-a321-44ce-8c34-eb70ef683736s︠ #Exemplo: Raiz quadrada de número negativo: o Sage avisa que está errado ("Assumption is inconsistent") y=var('y') forget(y>0) assume(y<0) sqrt(y) ︡e189605b-4dac-4136-b653-2cd315c59ebe︡{"stdout":"sqrt(y)\n"}︡{"done":true}︡ ︠eed63d39-14ca-481b-8328-fc41524433b1︠ #Exemplo: Raiz quadrada de número não negativo: Agora, OK y=var('y') # Usando forget(): OK forget(y<0) sqrt(y) ︡7b02480b-1129-4c8f-88fb-cf0f41cdb697︡︡{"stdout":"sqrt(y)\n","done":false}︡{"done":true} ︠5be5892a-13ba-4a06-9197-ad88890cbb8a︠ # Outro Exemplo: Assumindo que n é inteiro n = var('n'); assume(n, 'integer'); sin(n*pi).simplify() ︡106c6e6e-2a50-4fd8-ae1e-e100abae5a4c︡︡{"stdout":"0\n","done":false}︡{"done":true} ︠2c8ccd6a-d714-408e-8a0f-a7e1b4adec8fi︠ %html

3. Resolução de Equações


Solução Simbólica Explícita

O Sage permite resolver equações tanto simbolicamente como numericamente e também sistemas de equações e, até mesmo, inequações.
Primeiro, vamos exemplificar a resolução simbólica das seguintes equações, o que é feito através do comando solve():

a)$ z^2-\frac{2}{\cos{\phi}}z+\frac{5}{\cos^2{\phi}}-4=0$
b)$ y^6=y$
c)$ x+y=3,\quad 2x+2y=6$

︡313503d1-b297-4317-972c-73a757d09a6c︡︡{"done":true,"html":"

3.\nResolução de Equações

\n
\nSolução Simbólica Explícita
\n
\n
O\nSage permite resolver equações tanto simbolicamente como numericamente\ne também sistemas de equações e, até mesmo, inequações.
\nPrimeiro, vamos exemplificar a resolução simbólica das seguintes\nequações, o que é feito através do comando solve()
:
\n
\na)$ z^2-\\frac{2}{\\cos{\\phi}}z+\\frac{5}{\\cos^2{\\phi}}-4=0$
\nb)$ y^6=y$
\nc)$ x+y=3,\\quad 2x+2y=6$
\n
\n"} ︠05706d7d-977c-4df2-b2d8-e201027bc374︠ # Exemplo: Caso (a) z, phi = var('z, phi') eq = z**2 - 2/cos(phi)*z + 5/cos(phi)**2 - 4 == 0; eq solve(eq, z) show(solve(eq,z)) ︡f977a80d-2350-43bf-bbc8-16d9fee9ff51︡︡{"stdout":"z^2 - 2*z/cos(phi) + 5/cos(phi)^2 - 4 == 0\n","done":false}︡{"stdout":"[z == -(2*sqrt(cos(phi)^2 - 1) - 1)/cos(phi), z == (2*sqrt(cos(phi)^2 - 1) + 1)/cos(phi)]\n","done":false}︡{"html":"
[$\\displaystyle z = -\\frac{2 \\, \\sqrt{\\cos\\left(\\phi\\right)^{2} - 1} - 1}{\\cos\\left(\\phi\\right)}$, $\\displaystyle z = \\frac{2 \\, \\sqrt{\\cos\\left(\\phi\\right)^{2} - 1} + 1}{\\cos\\left(\\phi\\right)}$]
","done":false}︡{"done":true} ︠423aaf7a-a7b3-4103-9f52-94657106e642︠ # Exemplo: Caso (b) y = var('y'); solve(y^6==y, y) show(solve(y^6==y, y)) ︡0fdecfd3-949a-4f80-abdd-889ab2dbd7a3︡︡{"stdout":"[y == e^(2/5*I*pi), y == e^(4/5*I*pi), y == e^(-4/5*I*pi), y == e^(-2/5*I*pi), y == 1, y == 0]\n","done":false}︡{"html":"
[$\\displaystyle y = e^{\\left(\\frac{2}{5} i \\, \\pi\\right)}$, $\\displaystyle y = e^{\\left(\\frac{4}{5} i \\, \\pi\\right)}$, $\\displaystyle y = e^{\\left(-\\frac{4}{5} i \\, \\pi\\right)}$, $\\displaystyle y = e^{\\left(-\\frac{2}{5} i \\, \\pi\\right)}$, $\\displaystyle y = 1$, $\\displaystyle y = 0$]
","done":false}︡{"done":true} ︠c50cbadf-9e08-41b7-8021-5efcc31e28d2︠ # Exemplo: Caso (c) solve([x+y == 3, 2*x+2*y == 6], x, y) # OBSERVAÇÃO IMPORTANTE: Este é um sistema indeterminado; então a solução é parametrizada em função de uma incógnita secundária, neste caso, r6 ︡39e588b0-5720-4854-91e5-bd9d2e07ab18︡︡{"stdout":"[[x == -r6 + 3, y == r6]]\n","done":false}︡{"done":true} ︠98b3040e-7268-412e-9e5f-ce3dd4ce29f8i︠ %html Solução Numérica Explícita

No exemplo apresentado a seguir, o Sage não encontra a solução simbólica da equação. Neste caso específico, temos duas opções: resolver numericamente, através do comando find_root, fornecendo um intervalo para o Sage determinar a raiz ou fazer uma transformação prévia que permita a solução numérica completa, de forma explícita, usando o comando solve.
A equação é:

$ \sin{x}+\sin{2x}+\sin{3x}=0$


︡6c39f53e-73d9-4502-918a-b2f35732c839︡︡{"done":true,"html":"Solução Numérica Explícita
\n
\n
No\nexemplo apresentado a seguir, o Sage não encontra a solução simbólica\nda equação. Neste caso específico, temos duas opções: resolver numericamente,\natravés do comando find_root,\nfornecendo um intervalo para o Sage determinar a raiz ou fazer uma transformação\nprévia que permita a solução numérica completa, de forma explícita,\nusando o comando solve.
\nA equação é:
\n
\n$ \\sin{x}+\\sin{2x}+\\sin{3x}=0$
\n
\n
\n"} ︠c7dac2ab-96ae-4b7f-9705-c38cc81255af︠ # Exemplo: Solução não encontrada, observe que o Sage simplesmente repete a equação de outra maneira expr=sin(x)+sin(2*x)+sin(3*x) solve(expr,x) ︡64da573d-73f4-478a-8137-0fc0626afe8e︡︡{"stdout":"[sin(3*x) == -sin(2*x) - sin(x)]","done":false}︡{"stdout":"\n","done":false}︡{"done":true} ︠ac323164-00f4-49c4-9d53-9c4e5397d445︠ # Solução Numérica com find_root no intervalo [0.1,pi] find_root(expr,0.1,pi) ︡76639dce-9aad-4d81-ba54-cf3b265fe790︡︡{"stdout":"2.0943951023931957","done":false}︡{"stdout":"\n","done":false}︡{"done":true} ︠e2c6d781-1086-4bf5-ab65-7d99531214a0︠ # Solução com transformação da expressão f=expr.simplify_trig();show(f) solve(f,x) ︡ef46bdc8-cbaf-436e-8010-1e222a2544a6︡︡{"html":"
$\\displaystyle 2 \\, {\\left(2 \\, \\cos\\left(x\\right)^{2} + \\cos\\left(x\\right)\\right)} \\sin\\left(x\\right)$
","done":false}︡{"stdout":"[x == 0, x == 2/3*pi, x == 1/2*pi]\n","done":false}︡{"done":true} ︠fdd694ac-f1df-4d9f-868c-65572970150f︠ ︠df77a342-d885-4ba9-b76d-ac103bf840cc︠ ︠50a1b464-a094-4fab-ba01-265dfb9fdfbd︠ ︠08813418-4853-4d45-8640-48a57edaf35d︠ ︠fb5bcb02-b2a9-4ec0-b097-f601af6b08f7︠ ︠ef5f6b6c-a87f-4fa1-b994-d82a6fa77c95︠ ︠9dceb8ae-73dc-43f0-ada2-12f8a584a702︠ ︠08bc7356-1ff4-4a58-a97d-63fccb885b00︠ ︠d60833ca-fc58-49f3-b2cb-aeb5417214b8︠ ︠0bcb5e9b-8438-46b0-9b6e-315f32402945︠