︠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
\nAlé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
\nO\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
\nNo\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︠