{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Teorema Fundamental do Cálculo\n", "\n", "O **teorema fundamental do cálculo** é um teorema que conecta o conceito de **diferenciação** de uma função (cálculo do gradiente) com o conceito de **integração** de uma função (cálculo da área sob a curva). As duas operações são inversas uma da outra, exceto por um valor constante que depende de onde se começa a calcular a área.\n", "\n", "A primeira parte do teorema, às vezes chamada de primeiro teorema fundamental do cálculo, afirma que uma das **antiderivadas** (também conhecida como integral indefinida), digamos **F**, de alguma função **f** pode ser obtida como a integral de **f** com um limite variável de integração. Isso implica na existência de antiderivadas para funções contínuas.\n", "\n", "Por outro lado, a segunda parte do teorema, às vezes chamada de segundo teorema fundamental do cálculo, afirma que a integral de uma função **f** em algum intervalo pode ser calculada usando qualquer um, digamos **F**, de suas infinitas antiderivadas. Esta parte do teorema tem aplicações práticas chave, porque encontrar explicitamente a antiderivada de uma função por integração simbólica evita integração numérica para calcular integrais.\n", "\n", "O teorema fundamental do cálculo relaciona diferenciação e integração, mostrando que essas duas operações são essencialmente inversas uma da outra. Antes da descoberta desse teorema, não era reconhecido que essas duas operações estavam relacionadas. Os matemáticos da Grécia Antiga sabiam como calcular a área por meio de infinitesimais, uma operação que agora chamaríamos de integração.\n", "\n", "A animação a seguir apresenta a relação entre a derivada e integral:\n", "\n", "![img](https://raw.githubusercontent.com/the-akira/Python-Matematica/master/imagens/fundamental_theorem_of_calculus.gif)\n", "\n", "A primeira declaração publicada e prova de uma forma rudimentar do teorema fundamental, de caráter fortemente geométrico, foi por James Gregory (1638-1675). Isaac Barrow (1630-1677) provou uma versão mais generalizada do teorema, enquanto seu aluno Isaac Newton (1642-1727) completou o desenvolvimento da teoria matemática circundante. Gottfried Leibniz (1646–1716) sistematizou o conhecimento em um cálculo para quantidades infinitesimais e introduziu a notação usada hoje.\n", "\n", "Com esta introdução, vamos agora utilizar um **Sistema Algébrico Computacional** para melhorar a nossa intuição a respeito deste teorema.\n", "\n", "## Sistema Algébrico Computacional\n", "\n", "Um [Sistema Algébrico Computacional](https://pt.wikipedia.org/wiki/Sistema_alg%C3%A9brico_computacional) é um programa que permite a computação de expressões matemáticas. Em contraste à uma simples calculadora, o [SAC](https://pt.wikipedia.org/wiki/Sistema_alg%C3%A9brico_computacional) resolve os problemas não de forma numérica, mas usando expressões simbólicas, como variáveis, funções, polinômios e matrizes.\n", "\n", "Todo **SAC** tem essencialmente a mesma funcionalidade. Isso significa que se você entender como um deles funciona, você será capaz de usar todos os outros também. Sistemas comerciais conhecidos incluem Maple, MATLAB e Mathematica, existem também os gratuitos e livres, podemos citar, por exemplo: Octave, Magma e [SymPy](https://www.sympy.org/en/index.html) (ao qual abordaremos neste notebook).\n", "\n", "Em um **SAC Simbólico**, números e operações são expressados simbolicamente, sendo assim as respostas obtidas são exatas. Por exemplo o número $\\sqrt{2}$ é representado em SymPy como o objeto `Pow(2, 1/2)`. Em um Sistema Algébrico Numérico como Octave o número $\\sqrt{2}$ é representado como a aproximação **1.41421356237310** (ponto flutuante). Para muitos casos está certo, mas essas aproximações podem nos trazer problemas: `float(sqrt(2)) * float(sqrt(2)) = 2.00000000000000004 ≠ 2`. Pelo fato de SymPy usar a representação exata, tais problemas não aparecerão! `Pow(2,1/2) * Pow(2,1/2) = 2`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## SymPy \n", "\n", "Nós podemos utilizar SymPy diretamente do interpretador Python, além disso, ele integra muito bem com o Jupyter-Notebook.\n", "\n", "Para usá-lo, entretanto, precisamos primeiro importá-lo.\n", "\n", "Também é interessante inicializarmos o modo **pretty print**, onde SymPy pode imprimir nossa saída usando caracteres Unicode." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from sympy import *\n", "init_printing()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dessa forma importamos todos os métodos e variáveis de SymPy. Agora vamos começar aprendendo sobre os objetos e operações básicas de SymPy. Por exemplos, nós vamos aprender o que significa resolver uma equação, expandir uma expressão e fatorar polinômios.\n", "\n", "Mas antes, vejamos algumas particularidades, por exemplo, a respeito do número **1/7**:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 0.142857142857143$" ], "text/plain": [ "0.14285714285714285" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1/7" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A representação do ponto flutuante á apenas válida para no máximo 16 decimais, pois **1/7** é infinitamente longo.\n", "\n", "Para obter uma representação exata nós podemos simplificar a expressão usando a função **S()**:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACEAAAAUCAYAAAADU1RxAAAABHNCSVQICAgIfAhkiAAAAZ5JREFUSInN1b1rFEEcxvFPVCSCoJJCiwhiZUTQRojiC1iIIGJW1EqJVVILlhbnXyBoZTBgIZYGC7UQFBLQNlZpBJFoIWihKIiQl2J/i+twe7vcLegDw+9m95mZ79w8uzvU6XT8a21I+hdxFwv4jjU8bDDPTqzgTvSvxdhebaUYvCmZ7CYO4gc+Yl/DzZyXb2gu+ou4VeE9jlN4XgVxPRZ/h5N41RAiw1fMlyAWK7xvos5UQTRdtKxt8p09UvqLK3QA4/iEp8XFNBP96Cw243ED73TUWSXgNiAy/MSLGt8WXMEq7pdvDAoxjDPykP2q8V7G9vAutwlxGlv9eSp6aSrqvfTGoBAZfiuFrEL7cVT+5D1rE2IjzuElvtV4uwayDYgTGFF/FMO4Kg/kbDfDIBAXYuInNb5L2CE/huVuhvRlNRENdkU9ggfx+wtulLyv8bkGogjkTJUhhTiEyeTa3mjwISAOYxS3awDGcExFIAulx9HBUI+2J3xZ1Lo8LMW43Xq80vvNRIa3eN/n+L+UHkdTjbWxeKE2vh0D67+AWAfvi1C4NVbBUAAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\frac{1}{7}$" ], "text/plain": [ "1/7" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S(\"1/7\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Assim como na vida real, quando trabalhamos em matemática ou física, é melhor que possamos trabalhar simbolicamente até o fim, antes de computarmos uma resposta numérica, para assim evitarmos erros de arredondamento. \n", "\n", "Em SymPy é interessante usarmos os objetos SymPy assim que possível e então obter uma aproximação numérica do objeto SymPy final, como um ponto flutuante, para isso utilizamos o método **evalf()**.\n", "\n", "Por exemplo, vamos considerar $\\pi$ que já vem construído em SymPy como **pi**:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABHNCSVQICAgIfAhkiAAAAMlJREFUKJGl0j1qQkEUhuHHYGkTIZ2ksggY8CbbyALiFtyA9W2yBishbSSFfVoXkD/BIluwCNgEglo4wjCZG4354HCGc+blfPNTK8vSsTqJ1jdYHxgF1CP4E0P0McNj1LvALaZ4wmsKT3EW4Ani8wwCfI9RzradHTwn9etcvQp+ycDfeN8HL/ER1RpoY46vKvgU57aXsY7qV6illlP4N8sOhdNNlyG/HTO5GXIHrSq4i1VmwhgL3KEXN+JPUsjrIcQPpU/1J/0L3gDqXi4tB0cWswAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\pi$" ], "text/plain": [ "π" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pi" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Se quisermos avaliá-lo numericamente, podemos chamar o método **evalf()**:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 3.14159265358979$" ], "text/plain": [ "3.14159265358979" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pi.evalf()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Também podemos utilizar o método global do SymPy **n()** para obtermos valores numéricos. \n", "\n", "Ao fornecermos um valor inteiro como argumento, nós podemos facilmente alterar o número de dígitos de precisão que as aproximações devem retornar, por exemplo:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230665$" ], "text/plain": [ "3.1415926535897932384626433832795028841971693993751058209749445923078164062862\n", "0899862803482534211706798214808651328230665" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pi.n(120)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Para definirmos um símbolo em SymPy é necessário utilizarmos o método **Symbol()**, assim poderemos trabalhar com ele em expressões:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABHNCSVQICAgIfAhkiAAAAPhJREFUKJGl0i9LREEUh+FndaMfwGYxaNEvoNEVLIJFDGLQYBMEQWWFGxQWNAhGi2KTjRbFbLIYBIM2QcFkMRh2DTPgZXYuwnrKzDnze+f8makVRaFfG0j8G3SxkMRrOItnrSp4Cx3sY7AUP8IKTrFdBT/gAuNYjrFdbOIS62VxPdNKE4soMIQDXMfLOmVhmhlecYwRnOBOmMF3KszB8FHar+IrJ8rBS8KA3qO/UZGgB57DOR4xgSesYewveAptoedGLH1PGGqrF/2FJ3GFT8zgLcbbuMc8pnPwqPAUXcziJdHsxPUwhet4xnCurGi3wvesLLsv+xf8A0vhLIYSfI/nAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle x$" ], "text/plain": [ "x" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = Symbol(\"x\")\n", "x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Com o símbolo $x$ definido, agora podemos usá-lo para construir expressões:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAD4AAAASCAYAAAADr20JAAAABHNCSVQICAgIfAhkiAAAAh5JREFUWIXt10+IjVEYx/HPmFlaKAsWSnaUsLSgSIgFRZI0ZjKzIIVIjEzdRE1RRhYU5cpOyoJkKENkRY1CEjWhTEjZUP4vzsHrzJ07x2Vm1PjV7T2d8zzP+3zPec55z60rlUpGo8YU2uPRinN4jPd4i5toSWz/VWUzNBScVuEoXqAbTzEBK3ACS6LN1yFPv3ZlMxRX8RGWYRLWog3rMRXPsDIGGGo1C5M7rwbfbIYi+FWcx5ckWB+OxXaazOWYZDohdSjHsY4aAGpVNkPuvv0Yn5+S/h3xJftQX+g/iCYcx67Mdwy1fmHIAW/Auti+lIzdxWlMQ2Ps241tOIMNf5LpX1Q/hoaBbX+oA9NxEV0VxvdgNUoYi/3RrlH/khsp9WMYbMU3Yzse+rmiqZ6jE5NxBLeEPf8hI6Fe4Rwo/k7Gse4KY+WMmKkqMlRb8U04jAdYgDdVbF8V2i14l5lUJ8YlfbOwHKeEiSmqJzPudw3IMBD4VhzCvejwskrwNcJh1oeJ2IKNmYl1VuhrFsDLuJYZp5KqMlQq9Z3RoQfzU4dES4WVuY8ZQjm1Ct/NkdSgDCl4u3AQ3BFm6XWV4HNwVtjji4RybxeqaDi/3amyGIql3oS9+IwbwqGQqlcowZm4INyDFwpXRMJE3BZKdW6MM5zKZiiCT4nPemF/VNJ14cLfJZyyi/EksWnDFRzA7N/P/Y+Uy1Cu+/+3dJRp1IJ/A/cbm8eAScbPAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 2 x + 2$" ], "text/plain": [ "2⋅x + 2" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2*x + 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "O nome **x** é definido como um símbolo, sendo assim SymPy sabe que $2x + 2$ é uma expressão. \n", "\n", "Também podemos criar uma lista de símbolos com a seguinte notação:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "x0, x1, x2, x3 = symbols('x0:4')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nós podemos basicamente nomear nossas variáveis da maneira que desejarmos, mas é interessante evitarmos sobrescrever nomes construídos em Sympy, como por exemplo **Q**, **C**, **O**, **S**, **I** e **E**. \n", "\n", "Por exemplo, **I** é a unidade imaginária de um número, **E** é a base do logaritmo natural.\n", "\n", "O underscore `_` é uma variável especial que contém o resultado do último valor impresso. É análogo ao botão **ans** em muitas calculadoras, em outros Sistemas Algébricos Computacionais é normalmente utilizado o **%**:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAASCAYAAABrXO8xAAAABHNCSVQICAgIfAhkiAAAAR5JREFUOI2d07srBWAYx/HPcSuDLLLKYGMwuJbLQIqJWOzKbHXSKYP8KcKGEMtZyKAMBosMSi65RC6hDOc9Or1eKc/yq/d5vs+t583kcjn/sbJf3nuwigu8Bd3GcDGgIgFlMY8brAWoDq3ox0YKnAjQDsbwGPkrU62WYRHPmExA8J5qtRuNWMEdRtCMVxxgrzRDKdgW9BKHaImq5TGO67jV+qDTqMYAakLVLfRiOTVjedBMyLyLJxxjFOfoQ1cM3gU9xVHU5kuoCu0xeBL0XtqKiatjMI8PNKEqATYHPYvBGyyhFnMRNIghPGCTn5czgw7MKmzxAA0Ky/nEVHGUGLwKYDYEdypc0DoWsF8MTB35bag8k/B922/f6k/7N/gFuFY8fjPRGjUAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle 6$" ], "text/plain": [ "6" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "3+3" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABsAAAASCAYAAACq26WdAAAABHNCSVQICAgIfAhkiAAAAgNJREFUOI291U+ITlEYBvDfN4MaGmNKY0EZJmMzFhaMP+FjGGJFLC0oNVFkNhYjfZKtRFkqykKyUBKTSU2RLJSF/B1NEcmYIaZJ+bc453Lmzv3Kxrybp/ue5z3PeZ977ntLlUrFZEVNlfwaXMU7fIvYi60F3Hk4j7eRO4jTaMwTpxQUH8UJDOF6FJqNpSjjRsJtwT004RqeYjkOYQtW42M1sV1R6DZ24EtufWru+VwUOoizSf4UDuMkurJkKXlnNXiJOWjGh4Ku01iIAcG2FvxM1uoFR0rxMKOZQBarsECwaQTbcESwZGWB2IaIvTkhgiN3MR0rsmRq47KI7/EQS3Ib9GOnvx0vjvi84CDwAp1oRV++s6aIXajDRsGONtzCWlxJ+A0RP1cRy/KzskQqVhuxFDvow1c8xna8wTrFlhZFKeKvIrGRiK/wKFc4JnRHuNrpyRsUx8wcb5zYs4ifqhRnh6nL8Vur8BdF/PNOU7F+fI+kaQXFbREHI96J2GniJKoXPugx3C8SG8JlwZZjueJN2CxYcjPmBoRr34wDOf5xzMBF8Rtj4gTpRjt6hNv3APOFC/ID+4y3eb8wrs6gA09i/XrBvp5089pyuZw+j+KSYGN77GiucDP3xk7SGBHcaBTmZocw0i5gN4ZTctEgHo4ddhesFcVr7PkXYrVfzH+JSRX7DcS8avwp5p9pAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 60$" ], "text/plain": [ "60" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "_*10" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Podemos definir uma expressão com a combinação de símbolos e operações matemáticas básicas e outras funções:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJwAAAAVCAYAAACzB4ddAAAABHNCSVQICAgIfAhkiAAABSRJREFUaIHt2mmoVVUUB/DfUz9kBRnaAE0vkMwINCuJqLAcGghtICLKNI0sI5MGzMh4SYNQliZRZOHTBiyUskKyydTXrGSQDVJkk9mcUTlkvT6s8/B43733nXvv8T2x94fDPnfvfddee53/XmvtfU5dQ0ODTnSivdCloxXoINSjGY05ypyHH7BXDTKOFXqNzUWjXRBpwvXE5XgGn2ETNqJJGOD/Ss4sOA6XYBr+rEHOKjyL27F3DnrlgZFiETQLfhSiIt50S91fgAfxHZbiKxyA8/AIzkz6NOc2lY7Dt+grDJMH7sTvwn614i68gwmJ3I7EIZiFP5ReABXxJs2+tRiOg3ExJmMMjsTXOD8Rsjvgb3wijFQrjsAQPC1Wd614V+g2Dl2rlDFaPOBBNehRhzn4GQ+V6VcRb9KEew3P498CgRtSAw4qaHtJTKyQiHUiP2oWYaY9MRyvCjJtwXosw/hUn3rFc7h0fT3m4ydsxkqcXWS8MWK+T5XQpxobzcehgsgdhQk4DZcpnyZUxJusednfSbmtoP7GZKDb7bga78EozMZNGcfIA1dgEY4SRpiOxeguDJcVhwlPU4/HBJmOTmSfWtB3CP7B2yVkVWOjN5JyaAU654m+YhHMxPIa5LTiTbcSHdPohkuT+xcL2j4QD2SUSC4bcTOuEyHmyup1rQrjsBX9xI4xjV4VyBmEBtyWqntSzP9GkasQO9L++FhpL1CNjd5LylMq0DkvdBP6fiX0rEVOK95kIdw0sboXY0mR9ltwoXhAe+OOpN9Ird1se2Cb7SsrjZ8qkPGl8EhpLBEPYWCq7iDhtdrKBSu10UYRxg+tQOe8cCuOwUlqy0mL8qatkDoB14skdmSJPt9ghghDs/CmyFe2ZlBqne1b7izX423IewJ7Yg3uwznYL4MehVgtwmQhvsa+qd89k/LXNuRVY6NfZPPK67S205ykbWmRtsYysgYKrzYdb2UYuxRK8qach7taxPCPMFgYoBR+TN2PxV8ZFftcrOSsWN9G+73Ck40Xk54ojLxMhMKVGcf5rUT9Njsu0hYPsEcGmZXaqLtsHmYGehTU9ccIzBWETGN1CTktoXQtpmQYtxTK8qYU4SYKD/Fh8qfCfCiNi0QCvAEH4lpclVG5wRn7VYJ5ydUDJ+JcsZNcIpLhcnOpFC2yepbtVbmNugj9v8igw4widaMF4RrxegYZRKg/Irkv5QRmJ9dMwZFCtMmbYoSbJOLvarFLKpf7nCVW0RqxhV4uTp1nCnfakfhN5A+LxQMcg5OxMMcxvhOeq0+ZPtXYqI84NinljXYGtuDREm0DRF7XhE8VD7eZeFOYw01J/rRKMLQc2U7CApGfDBOGnyJI3N5nby04Q/FFtH9SZg31WdEsCNQLvYu0V2ujE5JyaZk+eWOTWAjFrueSPnOT34Vnjpl5k344ozBVJMsrRA5UiHXCTffDC2I3NdT2XdoCkSeNEN5kRfk55o75Ihw0CV3rEj2OF8Z4ZSeMuVCcpp8u3iW2oBYbDRPPYdFO0DdvVMKbHQh3eFJ2VTw+E8l3k8iHmoWRPy/oMxkv427bV2p74aZEpwEilG0WRxyTxPu+YscltWIhvhdnTg8kdb1Vb6N9xO76BbEr3tWRlTeNUNf5PVwumCxetA/A+zXKugb3i0Pf9o4QOx2dnxzlg/vEofDUGuV0F+RdaDckG52EywubxQHnSrV9gFmPh3FDDjrtksjyaqsT2bBcbS+6iXeyDbWrsuui08N1ol3xH3tjfu6kc02tAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 2 x - \\sin{\\left(x \\right)} + 42$" ], "text/plain": [ "2⋅x - sin(x) + 42" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expressão = 2*x + 3*x - sin(x) - 3*x + 42\n", "expressão" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A função **sympify** (não deve ser confundida com **simplify**) pode ser usada para converter strings em expressões SymPy:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJwAAAAVCAYAAACzB4ddAAAABHNCSVQICAgIfAhkiAAABSRJREFUaIHt2mmoVVUUB/DfUz9kBRnaAE0vkMwINCuJqLAcGghtICLKNI0sI5MGzMh4SYNQliZRZOHTBiyUskKyydTXrGSQDVJkk9mcUTlkvT6s8/B43733nXvv8T2x94fDPnfvfddee53/XmvtfU5dQ0ODTnSivdCloxXoINSjGY05ypyHH7BXDTKOFXqNzUWjXRBpwvXE5XgGn2ETNqJJGOD/Ss4sOA6XYBr+rEHOKjyL27F3DnrlgZFiETQLfhSiIt50S91fgAfxHZbiKxyA8/AIzkz6NOc2lY7Dt+grDJMH7sTvwn614i68gwmJ3I7EIZiFP5ReABXxJs2+tRiOg3ExJmMMjsTXOD8Rsjvgb3wijFQrjsAQPC1Wd614V+g2Dl2rlDFaPOBBNehRhzn4GQ+V6VcRb9KEew3P498CgRtSAw4qaHtJTKyQiHUiP2oWYaY9MRyvCjJtwXosw/hUn3rFc7h0fT3m4ydsxkqcXWS8MWK+T5XQpxobzcehgsgdhQk4DZcpnyZUxJusednfSbmtoP7GZKDb7bga78EozMZNGcfIA1dgEY4SRpiOxeguDJcVhwlPU4/HBJmOTmSfWtB3CP7B2yVkVWOjN5JyaAU654m+YhHMxPIa5LTiTbcSHdPohkuT+xcL2j4QD2SUSC4bcTOuEyHmyup1rQrjsBX9xI4xjV4VyBmEBtyWqntSzP9GkasQO9L++FhpL1CNjd5LylMq0DkvdBP6fiX0rEVOK95kIdw0sboXY0mR9ltwoXhAe+OOpN9Ird1se2Cb7SsrjZ8qkPGl8EhpLBEPYWCq7iDhtdrKBSu10UYRxg+tQOe8cCuOwUlqy0mL8qatkDoB14skdmSJPt9ghghDs/CmyFe2ZlBqne1b7izX423IewJ7Yg3uwznYL4MehVgtwmQhvsa+qd89k/LXNuRVY6NfZPPK67S205ykbWmRtsYysgYKrzYdb2UYuxRK8qach7taxPCPMFgYoBR+TN2PxV8ZFftcrOSsWN9G+73Ck40Xk54ojLxMhMKVGcf5rUT9Njsu0hYPsEcGmZXaqLtsHmYGehTU9ccIzBWETGN1CTktoXQtpmQYtxTK8qYU4SYKD/Fh8qfCfCiNi0QCvAEH4lpclVG5wRn7VYJ5ydUDJ+JcsZNcIpLhcnOpFC2yepbtVbmNugj9v8igw4widaMF4RrxegYZRKg/Irkv5QRmJ9dMwZFCtMmbYoSbJOLvarFLKpf7nCVW0RqxhV4uTp1nCnfakfhN5A+LxQMcg5OxMMcxvhOeq0+ZPtXYqI84NinljXYGtuDREm0DRF7XhE8VD7eZeFOYw01J/rRKMLQc2U7CApGfDBOGnyJI3N5nby04Q/FFtH9SZg31WdEsCNQLvYu0V2ujE5JyaZk+eWOTWAjFrueSPnOT34Vnjpl5k344ozBVJMsrRA5UiHXCTffDC2I3NdT2XdoCkSeNEN5kRfk55o75Ihw0CV3rEj2OF8Z4ZSeMuVCcpp8u3iW2oBYbDRPPYdFO0DdvVMKbHQh3eFJ2VTw+E8l3k8iHmoWRPy/oMxkv427bV2p74aZEpwEilG0WRxyTxPu+YscltWIhvhdnTg8kdb1Vb6N9xO76BbEr3tWRlTeNUNf5PVwumCxetA/A+zXKugb3i0Pf9o4QOx2dnxzlg/vEofDUGuV0F+RdaDckG52EywubxQHnSrV9gFmPh3FDDjrtksjyaqsT2bBcbS+6iXeyDbWrsuui08N1ol3xH3tjfu6kc02tAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 2 x - \\sin{\\left(x \\right)} + 42$" ], "text/plain": [ "2⋅x - sin(x) + 42" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympify('2*x + 3*x - sin(x) - 3*x + 42')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Outra operação matemática muito comum em expressões é mostrada a seguir.\n", "\n", "O método **factor()** computa a fatoração de uma expressão especificada:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIIAAAAVCAYAAACKYDYGAAAABHNCSVQICAgIfAhkiAAABDxJREFUaIHt2muIVVUUB/Df6ECJQoF+CHoRVBYEmUX1wWJofEAfKoqIKNM0qIhMiigjYxCroQdqEQUWavWhQulJZEKW2vtl0FOKJCPNnkZlpWUf1hnmzLn7nntGZ8brOH847Hv3Xnuftf577bXX3ve2dHR0GMIQhtWpfxRbMXIAdelvnIxdmFlBdjDaTwkHKUc4BZeiE3/0r159jqnC0F24otD2Pp7BfIwqGWNfsX+0sPFpfInt2IZ1YqJTc1uXg5TwHfgND/aZygODw3E/fi+RuROHYFaJzL5i/4VYjNPwNhZiBU7Aw3gKLYl+SQ6KjnAsJmaDbO9LrfsZLViCn/BQidw7+BxXYniifW/YP11EsLZe9tuAc3AYLsEczMBx2IQLcH6iX5KDoiPMEKQ+mRjg5Uzh4uAtWJq1dfbGkj7ELJyFyzUO50/gCDHhRZTZT3Nx8Aqex3+F+i26F0Nbnb41HBQdYSL+xVuJzjdmL52v52q6B9NEmLq5kfb9gOMF+YuwpoL861k5KdFWZj/Ny0ERO7JyZ532Gg7yjjAS4/CZ9Kr6CI8J4qdmdbfgehFKr9otlfcMrZlO32S6VMG7WXlmob6R/TQnB0W04rLs80t1ZGo4aM01Hiq8fHPJS27FRegQWeftWClIKYaogcBtOAkTVN/Tt+EvERrzqGI/zcdBEZ0iYXxR6JVCDQf5iDA6K38pecm3Ijs9UmTob4j98p8KCm7UfbSr8jzeYLxTxWq8F29WeH8eP2NMoa6K/fQ9B0uyttWJtqUVxsxjFm4QyeDUBrI9OMhHhK4VdWCDAX7IfZ6JP6vp6CvhhVXxXUlb15awAXN7MWYXRqiNIFXtZ/c5WIiDC3XjcC6WCUfJY33FceEakSd9inYx0WXowUHeEbZm5Wj1cbFIjLaIs+h1uLqiou0V5apglDjqUd+5FmfPIszO1Q8Tk/F1Qb6K/ewZBwsTddOFIyzFqxXHKWI2FuBjwfPWcvFaDvKOsFl4+tg6nc8WXvuJOKqtETdbi0QoGkj8jUfqtI0XecM6fKF22xgrjnvF1dbIfpqLgy7cJPKC9eIU8GOFPjUc5HOEXcKwMTi60HEClov9cbIgbK5wpL1xd7BdTEDqeS6TWZZ9L94JnJ6Vqwv1ZfbTfBzI3t8pro7bVXMCEhy0FgRWiBupKeL+Gk7ECyLTnKQ7q16O90RYOwNre2PBXsRkcVfwbKItZT/NycE0zBO2rJW+Nt8onXDWcJByhO/FOfQBsTJWitUyRSR8eczBKtyt28uaGQfhPDGpmxLtRftpXg6OysrheuZAebym1hGSHLQk/o8wR/zwMh4f7pGqzYdrcZ+4SKm3egez/dThIPXr4wJxUzdvYPQaMIwQk7xCeQgfrPZTwsHwtra2ovBOfIADxP63oyiwj+IYcdq4C7+WyA1W+ynhILU1DGE/RL2/qg1hP8P/jeVFCxsmk68AAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\left(x - 4\\right) \\left(x + 2\\right)$" ], "text/plain": [ "(x - 4)⋅(x + 2)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "factor(x**2-2*x-8)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "O método **expand()** é a operação \"inversa\" do **factor()** e executa a expansão de uma expressão:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAG4AAAAWCAYAAAAhKqlXAAAABHNCSVQICAgIfAhkiAAAA5RJREFUaIHt2XuIVVUUx/HP5EDQ448eolAgUX8URBFBZKVMTSWWVE4ECZWB0QPBIstHIE0R9NDoBRYVUWT9UYZBJTmKEkX0xqBMygaJocY0oQKTSaf+WOfW8XRm7tx7zr3dC/cLh3Nn73322T/W2Wutvaarv79fh/bjsILPL8en+A278RZOL7qoDtUpargerMZ5uAgHsAnHFpy3QxW6Cz4/K/P39fgV54vd16FBFN1xWY5O5txb8rzVOA43YR124A/xAX2ABcrX2UguxwCGhI5BvI7p6UFFd1yWx7EVH5U8bzWuwdP4CVvwA6agD89jdjLmryavq1YexhL8gjexB6fgSlyNG7CGcg23EjMxAwdLnHcifIsr8A5GU+334BMhug9vNHldtTAVd2EXzsDPqb4LsRn3SwyXdSED4qvsy7R34cWk76Gclz4qvoZe4aqazWYRU0cz7cN4Jvndk+mrV2ujmCbs8bFDjUZ4kd8xudKQNdzdQvwDmJRqX4X5eA7LMs88ievEV7Gt2Nobwp/J/UCmvR6tjeQ7jOAcHJ/pmynyh02VhqzhvsTLOE1kiIS7uROv4dbM+NW4EfNEQjI1uY4qpqE0uoUngHczfbVqbTR7sVTE5m14Fg8maxnARtxSGdyVUzk5UVh/l/j6nsIGEUNGMmPHCvb34T8T/w+swmKsF9lallq0Nour8AKOSbXtwL14tdKQlyYPiexwmhDyoYgDeUK6xrj6qyxupzD6RK81VebLY5Ew2nb/7qgstWhthoYlWCti7Mk4EmeLI8EreKQycKyscnfq9wLsm8BLa+F77K9h/I81zr8QTwiX02v8c2W9WsvW0COOA+uEu67wBeaKzHmxSLYG8ww3T7iNYRGvbsdtNSxwIvSWPF+aO/AYvkrek83Q0hTRWraGOcl9S07fPnGsmYuzMJh1lZfhJXwtzhLbRUXi1JIX2SiWCqNtFVnueEZrNa2HJ/fJY/RX2kc4NMZdIPzrEC4VLmSFcKfNPM/Uywqxzs/FbtgzzthW1Pp+cr8ZJ2T6Zov6734Rh/+JcWfibVHfu0SUjghxn4mSy4zU5K3GfFFVOCjWuChnzE4R9FtV61pxTrsY34hYNyyOK3NE0rdMlMN0i1rYBpH5zBJBN81ycYZYiXMbvvz6OCm5TxIxLo/3RNG5VbWOCve9ENeKeHaESKzWi0LHQGVw3jmuQxvQTv/u6JCiY7g2pWO4NuVv3Qb/WQGsLC0AAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle x^{2} - 2 x - 8$" ], "text/plain": [ " 2 \n", "x - 2⋅x - 8" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expand((x-4)*(x+2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Com o método **collect()** nós podemos coletar os termos para diferentes potências de uma dada variável (neste exemplo utilizamos $x$) para uma expressão:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAK4AAAAYCAYAAABjn8aGAAAABHNCSVQICAgIfAhkiAAABSpJREFUeJzt23nIVUUYx/HPm9mm0mKRrZaFBmaFBkWZmGlR/1RGkJH2WkELbUSbUfASrVgUrVBUVgQVGUb+UdJGYVRq2WJJC9lCmpJSWUmLb3885+TpvPfqPfdez31fuV84zOvMnDm/OfPcmWeeOXZ0dXVp06avsVWrBfQCZmABfsEqvIiDW6qozSZpGy7j8QCOwgT8jVewSws1tdkEzTDci9CNc5rQVis4AY/hE3yMqdgNR7dSVEGewEoMaLWQGihiL2OSuufmC5phuKOTdFET2uoNDBLvZXWrhdTI4TgLt+G3FmuphSL2sghzcBMGZguaYbhjsA5LmtBWb+BuLMY7rRZSI7cI//zBVgupkaL2ciuG4NJsZqOGuy1G4iPhGzaDTrE8jG9Se0WYiXE4Hf/UcX+ncrUPx0Q8iz9Keman+vtYj728h6U4H/3SzEqGeyaewuf4FWvErnt6hbqj0F9M6YdhNn4SS9Y8rdmdzxMvdnIuvwOzkrLbKtx3J6bhOHy5GfVtjKLaz0nKnqnSXpGxLIN67eVp7Ct+pOhpuIPwOIbhLdyH57E/HsU1ufpjknQo5osX+wjexyS8hp0Kdq5RrsJ64Rf1y+TfgbPxMK7N3XOP8BOPxaclaKxGUe0TxcpQya0pOpZlUK+9zE/SSWnG1rkK3dgHK3L514tf7XTcXkHIERiLDzJlT4gd+kXCDyuLD/GkGOipYqa6DleIJfWCXP0HhNGeIjZkQ5L8tclVJkW0DxCz1mcqb8qKjmUZ1GsvC5J0XJqRn3HX6tlRWI4f9IxtpjvEq3Mi4P4kHVWhvc3N9WID0IWLcTNeFi9mfa7uhWJ2elX0M72uLElrnlq17yVm5eVV2ik6lmVQr738LN7JvmlG3nB3xg1i6VkjlqHu5BqO7zN1+ycP+Ub8WvKkL2276v2wLNN+ej2WlL1eoWzWRtrK8r2IDgzFvXhb+I1/VqjbUeXq2sQzWq19cJKuqdJOkbGsxjLN62Oj9rIau6b/yLoKhwgHeXexk3s6qfyX8IumiaUsZRS2EUeklXaIQ5P0m6pdiQHK+zSH4WThny3LlS3eSFt5VmX+Phe/F7i3FlqtPY0iVBroomNZjWb2sVF72V4mcpI13CcTkcfijdxNNybpwkxeOu0vq/KgU5N0XpVy4sXk6RQvZlYFHbUyRWxoVgif9TLhEjSTVmtfmaSDK5QVHctqNLOPjdjLVqI/X2czCCf+kERIXsxONoRPsqcdqaNdyVfaQ8TdvqgiZHNykpgNlog+LcV5OKhkHfVQRPtyMTOPyOXXM5Zl0Ii9jBDu238zemq465J0mPBFUgaLGOHeYnrPLgWpkCn+f0Y+UPgw24rTjmYdTNTCWDwn/LfjxcDeIFaWSrHb3kRR7d14U/h9B2by6xnLMmjEXo5M0tfTjNRVWCViaBPwrvg6ag+cmFReL+Kb6zL3jRI7wx3ES5iTPHwy9sTleKmuLtbHoZgrdqCTbNhtPyeWxZNxjIhp9jbq1T4bp4kPhdJDk6JjWQaN2svxYnP5QpqRjSqcIXyjfYRPdYCIH96S1Mv6RCPFpmChOGn6WEz1nWKZmyCC+mVxoAgZdYtB/CpXPiNJZ5aoqVYa0T4bP4rNVpYiY1kGjdjLjiLGPhffpZkd7f8B0eeZIQxytJ6x0S2BS4RRj5NZcdofkvd97sK3NkQLtiS2Fz/M2XJuUttw+z7rxKnaQn3jQ/Ii7IeHVDjFzH+r0KZv8mZybWl8psoJZnvGbdMnaRtumz7Jv3rMpMBUnQevAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle a b + x^{2} + x \\left(a + b\\right)$" ], "text/plain": [ " 2 \n", "a⋅b + x + x⋅(a + b)" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a, b = symbols(\"a b\")\n", "collect(x**2 + x*b + a*x + a*b, x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Para substituirmos um determinado valor em uma expressão, nós chamamos o método **subs()**, passando a ele um dicionário (`{chave:valor}`).\n", "\n", "Vamos então definir uma nova expressão contendo as funções **seno** e **cosseno**:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\sin{\\left(x \\right)} + \\cos{\\left(y \\right)}$" ], "text/plain": [ "sin(x) + cos(y)" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y = Symbol(\"y\")\n", "expr = sin(x) + cos(y)\n", "expr" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Usamos então o método **subs** para substituir $x$ por $1$ e $y$ por $2$:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJAAAAAVCAYAAACpO2fTAAAABHNCSVQICAgIfAhkiAAABX9JREFUaIHt2nnMHVMYx/FPtUIRRUsqhBJ7mpDaJeQVuwi1/mOvpaktFYomldSSEmutldhqDaKhsVZQ1RJL0VhKLLHUrqElVKnlj+fcdN65c+/c+77z8pZ+k5szOXPmmfP85jnnPGfm9hk/frzlLKerrPBvd6AJd+JbrNpNO9viL5zQ7R71LENEPydXbLcKHRtq2FsDaDschUvxc6Z+IE7EQ/gQi7AQs4RzRf68hodxMVbruS73ShrpeBiuw0z8KILj7iZ2GmrYWwNognBsUq7+cNyMHfEyJmIKhuIWPIA+BfYuwWCc0UP9rYIvsCXGVmizkY7jcBq2SfdthUINe2MAbYY9RTAsyp17HwdifRwpxB6BLTAPh+KQApuv4D2MRN8u9Ok4MUo7unBtq/wu+vhVRfaa6XhmOr86RrVor1DDogDaAfeLyFwsHHoKR+TaHYHnxRKyCG+JB7pSgw4ciGeSvcX4EjNwSq7dCDGL3F9g41k8gj9z9V/jpnTc0eD+92EDIeo/TSu+D1GcA2Xrhwg/5uNXzMYBDe7ZTMfp+CDZbYc6DfMBdBJexPBUXonHsI7Ozk5IHdsS9+L61NkJmIYVc3ZPxlRsJQLgSjyO/jg+13ZP/IGX2nTu91QuaXD+hVTu1abd7tKO783YUMwCQ3CX0H9osr17Qfuu6tiMOg37ZU5uhRvFmrkr3sldvH4qdxYzzTwxW32d6seK5PYAjBHBVGMkfsPWYkeQZVDmeFWxLr+rc9JXRj8ck46fbNDm1VTu1obdKmjV9zI6MB4XZOruFf6OEbNKja7qWEadhtkZaJR4EBepDx74PJUjUnmxpcFDjPyzxPJyYsH1SyydJbLMzxyvJ9bXdvOAS8VofFzMgEUsFNP+Bm3aroJWfC/jU6F5lmn4TAzkLF3VsYw6DbMBtFMqnygxMiyVzxace18E2kZYI1N/D1YRgXm1WCLXLrh+YCp/KOlDljNE4L6Ho0vafq981H8icoPs7/Z0bnrBuckl9lr1vYw5YknKMw9r5uq6omOrdNIwu4TVHnjZtm5AKhtF91ciQgdgQaq7Soy2U8QDHy3EnyGm39mpXW23sHJJH2qcimswF3sI55rRX/2OJM9EnYOfWA4Owh0iwLLMKbHXqu9lLGhQv0R9Ltuuju3QScNsANU6uJ4YzY1YmMrB+Kjg/Lq5djXuTL81sAsOFsvhNJGMf2tpjjBQOaPFiH5bBE8+v8izQrr3xyXtJhbUHScCaDKea6FveVrxvUra0bEd6jTMRm4tW9+vxMgbqewoOLeJSLY/1njELBC5yknigawlknZi9voOm5f04VwRPHPEDqSVB7C52CmWzRg9STPfq6RVHdulTsNsAE0S0+H5YkeWp7YLuy2V43Rey/viimTz1ty1++o829VYJ5W/pPIv8W5pkAjGIs4XSfNrYuZpNRGt5XjTm7aqnlZ9r5JWdOwKdRpmHZsr1umbxCwzVbxsGii+qfwkRvuLuAzniOXjQbFV3E/shGbh8tyN7xPZ+yyRQ/QRI297EQhPZ9pOEW+U9xHfu7IciwtFMjlT8aeJTxQntnun66YWnOtJ2vG9SprpODz9iFSEeD0zOR3Px9kFNus0zI+Mm0VQnC2WqOHJ2JviW1ONc0WQnSbev6wo8qFx4kXZbzm75yVHhmF/Ieinyc4knbe4U/BNsntDzs5GqewrcqAiZqgPoAHJl0fFruWfpB3fq6SZjtuIwZhl4/ST+pcPoEIN+/TS/wONFS8ih1mac3WH03GteAE2swJ7ywpV6lioYW/8mEokyJ+J5aq79BdCTvH/Ch6q07Ghhn07Ojq6abtHWILXxYfZ2bo3zW8qPmBepvHO8L9KVTo21LC3LmHLWUborUvYcpYR/gYYI4Ta+PgtrgAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\cos{\\left(2 \\right)} + \\sin{\\left(1 \\right)}$" ], "text/plain": [ "cos(2) + sin(1)" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr.subs({x:1, y:2})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finalmente, podemos usar **n()** para obter um resultado numérico:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 0.425324148260754$" ], "text/plain": [ "0.425324148260754" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expr.subs({x:1, y:2}).n()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A função **solve** talvez seja a ferramenta mais poderosa do SymPy, ela pode resolver praticamente qualquer equação.\n", "A função recebe dois argumentos: **solve**(expr, var). \n", "\n", "Por exemplo, vamos resolver a equação quadrática:\n", "\n", "$x^2 + 2x - 8 = 0$" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEsAAAAVCAYAAAAOyhNtAAAABHNCSVQICAgIfAhkiAAAAlFJREFUWIXt2E2ITlEYB/DfjFlYzEJRNiQbUSgWVuTNRNlYkJXG5GOnpikLUcM7VrNBE0Uho7G3mIgNhikrZSEhalBIPhJmyMdYnPs2d95533HvjHvfd8q/Tvd0z3me/3P/95znfDQUi0X/kQyNsXoBo7HyqBYB1QHmGa/DaKmhsULnAXThVA6BtcYC2psRx9zI92U8xQg+YRB7TNRgWPj+LjyPNzRVcH4LxX8ZbRUsxEl8QXOGPNtxGq9xEy8wH1txDpujPqURNGzs+wtYVHJUaWTlgQZcwHucyZjrCbZgAXbgIHZjKV5imyDcX1ErsdqxAbvwNWOuG+jH77L3b4z9qEISR7UQaxm60YPbNeCP40f0/Jmkc95iNaFPyBuHcuauFMvOqH4tqUGeOIxVWCusSrVEN5bjKq4nMUgzsoZM3H9MVi6V2a8RRtMx3E3BmwXasV/YS7YmNUozsp7hW4r+r8p4+oSVqTOFjyywT8iXD9GCD0kN04jVkjKoOJqxJKpXE/xsVHrQMQ2uydCBE3ggfM/bNMZ55azvOF+lbbWQxwbxWHZT9ICQp+5jI96ldZCXWCOqH2eKglgXhR11OXrRJuzJeqfI34mjuIdNUky9OPJeDaeC0iKUaC9UAW2CUL9wR0ju5RiS4EfMBLFW4DOuTNF+cfScpXouHJBArFodd+IoCmfFSlNwDlYKx5KP0/Q/WSkkcVRJrCPq5z5rnXAkOZ4jZ/w+a328IT4Nh4Q7nBJSrxYZoB+zc+Ys3WdNQLlYxRyCqXfE77PGoR5y1ozBH/qpgjyyRn5gAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left[ -4, \\ 2\\right]$" ], "text/plain": [ "[-4, 2]" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve(x**2+2*x-8,x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "O resultado é uma lista de soluções para $x$ que satisfaz a equação acima.\n", "A melhor parte do **solve()** é que ele também funciona com expressões simbólicas.\n", "\n", "Por exemplo, vamos buscar a solução de:\n", "\n", "$ax^2 + bx + c = 0$" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[ \\frac{- b + \\sqrt{- 4 a c + b^{2}}}{2 a}, \\ - \\frac{b + \\sqrt{- 4 a c + b^{2}}}{2 a}\\right]$" ], "text/plain": [ "⎡ _____________ ⎛ _____________⎞ ⎤\n", "⎢ ╱ 2 ⎜ ╱ 2 ⎟ ⎥\n", "⎢-b + ╲╱ -4⋅a⋅c + b -⎝b + ╲╱ -4⋅a⋅c + b ⎠ ⎥\n", "⎢─────────────────────, ────────────────────────⎥\n", "⎣ 2⋅a 2⋅a ⎦" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a, b, c = symbols('a b c')\n", "solve(a*x**2+b*x+c, x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Utilizamos os símbolos **a**, **b** e **c** para resolver a equação. Você deve reconhecer a solução da fórmula quadrática:\n", "\n", "$$ x = \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a} \\quad \\text{quando} \\quad ax^2 + bx + c = 0 $$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Para resolvermos um sistema de equações, nós podemos alimentar a função **solve** com uma lista de equações e uma lista de termos desconhecidos, que assim ele deve resolver a equação. \n", "\n", "Vamos tentar resolver para $x$ e $y$ o sistema de equações a seguir:\n", "\n", "$$x + y = 3$$\n", "$$3x -2y = 0$$" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left\\{ x : \\frac{6}{5}, \\ y : \\frac{9}{5}\\right\\}$" ], "text/plain": [ "{x: 6/5, y: 9/5}" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve([x+y-3, 3*x-2*y],[x,y])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Por padrão, SymPy não combinará ou separará expressões racionais. \n", "\n", "É necessário utilizarmos o método **together** para calcular simbolicamente a adição de frações:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFkAAAAVCAYAAAAtkUK4AAAABHNCSVQICAgIfAhkiAAABClJREFUWIXt2VuIVVUcBvDfVOpQRpak3SbJSAibsKQiizArKyJyfIgUSo0gCiqLUIOSsWKiN4l6rLQI6sGyTOxGWlF0MbU71EMOatnFMiq0TO3hv3aus2fPOYOcoxJ+cFj7/Nc6a6/vW//1rbX3aevu7nYQrcUhLez7VuzGjS28x4GIkwXv54tAs0QeiZ14JIudncqPm3SP/YUqbvVQ8F5TBJol8jWprxey2HhsxxdNusf+QhW3euiTXM0SuQtb8Hb6PgRj8Sn+adI9YKZYihOb2GcjlLk1wvhU1s3k6XgGX+N3/IqPMKufTo/CJCwTywo6MUjM5jgsSQP9E6/hjAEOuFWYiOewEX/he7yKKaV2VdzgMNwhkmgbejEHbSKTN+GHvHGOI7EYq/EOfsQIsWSeSNcPl35zFQbLjN6e2RyFd7ECj+N8XIY3MQZb+1OhhVgoBPoZy4XAozAZE7A0a1vFbTBeFjzW4VEMxwKchuPEpPyHssi70YHNpfi9IrNn6Styl8jQ17NYIfJ5uBBrs7qncL04ffTYt+gRAi/BDDHuAkOFWDmquD0mBJ6PB4VmsAhvpes1Wfs+dvGHvgITs/0djinF23GFyNTtWbww/zlqBS4GSVjKvsRZmCtW6XS1AhPce7PvVdzOxU3Cnx+wR2Ap9lW6rjlRlUU+GvfhfeHFO1NHu8Xy3lhqP1lkQL7zDhIC9oqsLaOYxPaKuhzrs3sXnydT3cqKukUN+rtL8J2Hvxu0pZrbbamc389vtqSyJpNzuzhTbEoj8SGexS/YgVNwAz4pddqVBrw8i3UK31qm+mQxKpW9FXU5FmJYKTZO7A+LxSTkWNegv8tF4qxs0K5AFbfJ6p80RosNb1MezEV+WpC6GKtKP74/lauz2KG4Wmxiv2XxwirW1xk8MaH1sLAiNlOIvKhijPXQjmPFROwaQPsqbu1i41+r1iYKTMAJwl5qUNhFh8jkVfoOfpg9x7fcay4SG0X5kF5semX/huNxM77RWORmoi2VIwbYvorbzvTpr48FqVxTrihELox9tPDUAsPFefIksfTzJTlVZMWLpT4LkafhiCw+VHj0ENyuuQ8pjbANn4tMu7aifozI3gJV3HaI5DhRZHmOubg0Xfd5jVDYxU9iaUzCB3hDZN2VwsN24Uu1J4gpeE926E79dYoldbiYlKVC2KmJ5Gy8UkG01ZiHl8ReM0M87g8TPt8h+Bao4gYPif1gSepns3iw6cSG1E+/mQzXCV/uwC04VezIPald7sfniOwuW8VY4V2rcQk+E/YwM5GaZOAvWpqN5UKQFeKh6E6RkVtxd9auP27ESpwtTlnTxGRtwAXCp7eo2NDb9vJ9cg/uEfby7d50cACj6dz29gVRlzjO/d8EpgXcyo/VA8XpzRrAAYimc2vlPyMHkXBQ5H2AfwFjH/8oKRJKDwAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\frac{a}{b} + \\frac{c}{d}$" ], "text/plain": [ "a c\n", "─ + ─\n", "b d" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a, b, c, d = symbols(\"a b c d\")\n", "a/b + c/d" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHwAAAAVCAYAAACE5YosAAAABHNCSVQICAgIfAhkiAAABU5JREFUaIHt2nmI1VUUB/CPOdWUhrZpZrZYGGGGaXshZmpFRFkQFZm2QBTYRqRBhS1M9U9JFEFQmRFUMO37ZgtFi+2LUUFWmqaY2YKV6fTHuT/8ze/93hvn+WYGbL7wuO/de3/nnvs9955z7v29PrNnz9aL/w+2qFI/D8vRr4vH3x1teLSLxyniojTuuQ2UOTbJPG8TZDRarwp+ywx+EM7CzfizQQNXw5hUftjF41Qb94MGyvwAj+NG9O+g72Csw+1drFcFv2UGb8FvuKtBg26MQo0kfmMwFn/hiwbLvQm74OIO+p0kuH+si/Wq4Ldo8BGYiEewpkGD1sLYVHZmh08Xbmp8nWNujZH4FP/WKaMa3sNXuAB9a/SbgpV4o4v1quC3aPBz0QcPVxFwJh7E1/gdq/A+zqkxaBMuERNZg+9xZRpnDJbg505MYlMxCluKVT8arYL8P/Ei9q/x7HjBzWL8jaV4ASfn+jwkYufEKjIGYAKeEm59U/XqFL9Fg09MSrxTIng73I/heBN3iGRgL9yLmSXPbIVnMSfJvQOv4DrcLdxfd8fvbNXvgbeEt7gn6TEJr2JgyXNzMF8Y62Xcmn6PxRG5fm+lclKV8U8QvBQT1Xr06jS/Tbnv/cTKWqg8WWvDMCwr1F8tdvw5uKXQdmdS9lqRzLSl+rl4PX3vKYMfiqPwUa5tHqaKbLklV98idlErpmnPT3/smPv9firHVRl/Snr+pQbo1Wl+8zt8qIg7S6so+odKY0v9f8IOhfpDcL6IUzfklJHqFqbv3Z2wZYnMldqTShBIuNcMBwrvtUCEtOJm+EO40QyrReK1e8nYzTgOz6U+m6JXXfzmDZ6t0lUlisL2uEa4+1XChbSlzwgR1/KYkcprq8hbmcpaO3xRbozsc19qm1/SNreGLCJGjhIGmlfSni3o5lzd5YKnWfinA/kZfsFOJfWThUcoZuf16FUXv3mXnmXleaEZDhCJw2CRiT4kJrVWxPCz8UnhmckqM9E8hotkYkmVdiI2FePWaHGsuV8siDw+riGLIHUrkTCVZcJ7pDK/Y48VC3x+B7Lz2Eb5KWeKWDTPNECvuvjNG3x5KvPxKMMDgvij8Vqh7fpULsjVNWOQcE1tKnEEdhWurRbmlNRNFwafW6JLR8jc5qIq7VNS+WIqm7GzWEjrN3KMLQRX3xXq++JEkXytboBedfGbd+lLsQL7FvoMEzv8NZUED7ThSJaPFevSZ1CVCVyXyp5K2Ir5BgwR5+dvbCC2TyqrzaMM+6bnit5mnNhMRXdej15185s3eJtwDzthn1x9llwMF7Emw47iTLqbcEP5Ca5NCg4VqzqPmTacUXvihg3O0P49QX8RO7cWt2SZW12Dz8VuOa1E3giVFyyHpbIYAk4RXuKJBuhVN79Nhd+tOFXErW9T3QrhhibgXXEGHYLj06TW40uVWedNIs62ipi/TFxcjMKPwnN05w5vSmN/hG3FAn1ckHmKMOqleL7w3Cw8KeYwTVx7DhS5xDDBRR6Txe4rGvZkvK3ykqleverit3jx0poUOrtQf7qI48NwIfYW2WtLkrFAJeYlRReLlTstKXKk8CYrtU9CuhojRexbgGPwmXCV04URJ6h8mUEkWONFPDwcl4ld9SuuKPQdIAz7tJhrhoOFJyxz5/XqVRe/fUreh18lDDlG5XmwF7UxQxhnnLiNzNAieB2uMpnrVpS9LbsNP9iQffdi47CNMGqr9sYmsuxP9LCxqYzhRCyeKo5g/XT9O/HNBXuK++u5JW37dasmNVBmcCJbr3ag70U5FmJ2TyvREar9xakXmyn+A6Rygsv8OIl+AAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\frac{a d + b c}{b d}$" ], "text/plain": [ "a⋅d + b⋅c\n", "─────────\n", " b⋅d " ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "together(a/b+c/d)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Se você tiver uma expressão racional e desejar dividir o numerador pelo denominador, use o método **apart**:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAG8AAAAfCAYAAADp55OhAAAABHNCSVQICAgIfAhkiAAAA8BJREFUaIHt2l2IVVUUwPHfTD5WVBDUkzGEVg+Nj0VZatT08dAUaUVZA/WQFUVh0UwjDKFkWDQqSdBDV4oeQnrKSDMUyhA0nEwjqMhAMzIG+qAvSHtY59aZO3dm7r3ncOZe5vxhw5x19ll7n1l3r73W2qdrZGRESWfSPdsTmENciK04iT/wOa7NonBeDpMqmZlzsBcf4xZhwB78mEVpabxieBoncF9K9m1WpaXbLIZ+7MNbYrWN4VF0ZVHa7sa7A5vxEX7Babw5qzNqjR48gu/Qh41Yj4ezKG13tzmMXvyGY7hkdqfTMt34FIPJ9UEsEAZ9JYvSduYJ8ZJnY1WOegfEKl6So87pOIEjNbIvMD+L0lrj7RQvdXuNvAuV5N76LAM2yW58lYzbyezFwhrZAuFGW6bWeE/hFNbijJT8RdyP1/BMlgHnKC/jCjyLi7Ecj8ngMplsvM/wBi7FykQ2hCfxNh7KMtgcZr+IOFfgMNZhDbZkUVovYBnGnRjBmclAO4QxT2UZbI6zPWm5US9gOYZRsZluxidiD/y7AX1Hxf7UaCsi7K83p9eTe7vr3KsUMKdcmCpVOJn6+wH83qC+b/BnE+N/30TfVhkV5ak0i3CrqDUerbk3VsCccqGe8e4WAcoPuACPazxMvy6neeXJaB3ZgDBeBXua0NVWUW+t27xZ/BqP4HJ8iQd1bnKcN13t1NLGuxrbxJ53g3Cda8TqLDK3K2mQqtvsxbv4GdeLigBhzAPCxSwWNcYi6U8a4cLhSv8HFT9hdcFzKoJBESQuxF+iqD0o0oz/mCeSxh3Cn/eJoKNW0QfYIBLNIlkkigNpepJGVCg6yXgVESCNzNBvicgB9wsX+Rx24TKMVzt142vxqz4Xh+oo2pUoKNpwxEtO5/cvalFvJXl+TwvPLherIV2X3CjKeOe3OJ9a+kQ6c1icuK9MdF+V7tTuhel2ZJv4hw4n16txF240McXKk7OErcbTwnY/EmpHTouS4XaxxQxhmcnbTZ6MivxzX1pYrrzW2Cn2o7WiXnlgin5D4iyy2u6pI1s8w1gbcI1w1/+kb5QrrzWWiQi92/QfEb0qCvpVXsBxbErJjk/z/Eu4F0tFbDKB0njN04t3xCcMt4nC/U1T9B03cZ/6NbmeZIg6bBIHBEvFwe0kSuM1x3y8J1zZVvE5w5j8c+AtYsX1C2NXc9yqq0W55zXDeXhfFDPWJbJDIvp8PuexVokI80NRMKm2CTltufIaZ1wcUteyogkdAw32a+iTwHLldTCl8TqY0ngdzL8IJtH8ZdDp1AAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle x - 1 + \\frac{6}{x + 2}$" ], "text/plain": [ " 6 \n", "x - 1 + ─────\n", " x + 2" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "apart((x**2+x+4)/(x+2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Vamos agora definir um polinômio $P$ com raízes em $x = 1$, $x = 2$ e $x = 3$:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMMAAAAVCAYAAAD7GFqYAAAABHNCSVQICAgIfAhkiAAABPJJREFUeJzt23mIVVUcB/DPqKSmYGSkWFlIpoGUVJBR6ZRLEVhR0UZmpEUL7UYlSUNZ2AJtf1TUH7bSoi2UokVKadJm2r5KWpZmZhmYlZb98bvTPO+7784bnRnfPN8XhjNzzu/ce37fe37LWaauoaFBDTXUQKcS9Y9hDXq041jaGodiCyaUIVuN+lPjgBwOsozhMJyDadjQtuPabtyO1/E9NmIdluAm9E7JLsaLmIqeOc/sKPr3xkS8gG+E/uuxUHzorG9bbRzAabgfC/C7mOhP5MiX5KBzfX19Wng69sCZ2Nwao21DzMYveAfz8AX64WzxMZ8TBDXiW1wlPvCCEs+crmPoPx4PoZcwgLn4DiNwOoYI/dOoJg7gKZyI3fGDGPfHeD6nTyYHdak1wwFiQj2CC1tzxG2Ebvgzo/5WTMYDuCTV9jl2xQD8k2rrSPofK1KYWfi3oL4v3sU+wmvOzOhbLRzAMVgpouMIzMeTwhnmoYiDdCg9H3V4JqPzqyIEnZKqrxOeZIsIq+2JLEOAZ5NyYEbb0+iPURltefpTWRzMw8u2NgRYjQeT3+tL9K0WDojJ/3Xy3pagiIO0MYwSVvJ2RudrBfFT0bmg/i4Rsh/G9S0cUFthbFJ+lNH2VlKOzmjL05+Ow8GmpCyV4uwMHDSHIg4KjaEHhorwkbVo+hCP40CMS+om42rhiS9q5cG2BJPQgLtFDniLMIQsD/VeUg5P1TenP5XNQSO64Nzk9zklZKqdg3JQxEGXgsa9hKWvynnAjThDTLyeIjefK0hJh+v2xCT0Kfh7Ds7Dzxmy60V61T9VX47+VC4HjZgmFs+zxbiyUO0clIMiDgojQ+NW5K85D1iJe7Cv2M5aJHLHv8t4+XKR15X7k7c9lkZfkbP2TcYzQGyxHlJCfp3YdShEOfpTuRzA5bhGLIDHNSO7IzhYrm31bym24qAwMmxMym7NPKDQ207AH2W+eJnSC94s/NgC2Ub8JPbdP8BX4uBoSIZcd036NqJc/alMDi7FvfgMI8WHzsOO4KA95kBLsBUHhcawJinTh1WFOEsslFYLL3wFLi7zxSPLH+N2Y4WYFEOF5a8taOuE3cRecyHK0Z/K5OBKsV76JHnHmnzxHcZBe86B5lDEQWGatEpY+6ASnU/Ao/gUB4lQPBGD22KkrYB+SZneRx8kUqqlqfrm9KcyObhOGMJSsefenCFQfRxsC4o4KDSGLXhTeNL9Ux2PwgyRK44RhE0RkaW9zxYaMVh4pTQ6iQXdniKXTee/w5Jyfqo+T38qk4MpybsXC6+7Nl/8f1QTB9uKIg66pARm4lQcJ0704GC8IlbfozXtNMzA+zgJRyt9tN9WOB53io+3TFzL6CNOIQeIEH5BRr8xIlq8lNGWpT+VycF43Cx0WSAWz2ksFwdhaVQLB3By8kOTczxCk95rxW5jGkUcpK9j7CLut6zA4cI7LERXMcnSh1ij8Jq4GzRM+2KIyFOPxN4i/9sgFs6zcJ/iRWQvYSRzNRFYiLT+VC4HDeJCYh7eUHwKXU0c0DwPK7Bfqi6Tg7QxwA24TWxLLtmuYVYeLhNGMlxpD1bN+lPjgBIcZBlDN3wprH9surEDo7tIpxaJC2ylUK36U+OAHA6yrnBvFvv0XUUuuCkt0EExEH/hDvyWI1et+lPjgBwOsiJDDTXslCj1b5811LDT4T/vCN+w9IY4YQAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left(x - 3\\right) \\left(x - 2\\right) \\left(x - 1\\right)$" ], "text/plain": [ "(x - 3)⋅(x - 2)⋅(x - 1)" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P = (x-1)*(x-2)*(x-3)\n", "P" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Para obtermos a versão expandida do polinômio, chamaremos o método **expand**:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAALcAAAAWCAYAAACCLg3UAAAABHNCSVQICAgIfAhkiAAABExJREFUaIHt212IVVUUwPHf2JdCkUSEb1EU9GA50ZdajZVWZA+OVg9KlmCBUmBJUdYUAxUZFUSBLz1oHy+VQVH2YdqEgkVFTB9GQxkTSVZKZkkfVtrDOqOXM1fnnnvPvXO8nD9sDnfvs/dZa+919l57nX07ent7lZS0I2MarH8LPsNvSXofVzcqVEFZho+EntvxGiaOqkQlh6RR496Ku3EOzsW7eAVnNdhuEbkEKzAVl+FfrMMJoyhTySE4ssH6r6Z+34vFmCJm9HbiytTv+diFC8UsXlIwGp25KzkCc3EsNuXYblYuxsvYhr+T61rMzPk5x4n++yXndmvhWjyFjcJN2ofnm1CnqNQ0xo3O3HCm8LXH4nd04/Mc2q2HHjyAHXhdKH0izhZuxRs5PusJ9OODHNuslR5Mwm7hGp7RpDpFpOYxzsO4B9CJ8bgGzyYP+SKHtrNwnVB6HeaIF62So3J81qPoEjPIf3W2sQArcSney1j3dmGg32Aa+ppUp2hkGuO0W7JWLFdzUvkdWJWULU+V7REd9rGIKPTjtrpEr58xeAR/YJ7hSsM/qd/16AqP4wZMF3qPBn34WsjYzDr19lEzyDzGaeO+E3vxoPChh3gMN+JpER0ZSYixNYucD1NxiliSdopw5F1YIja31ahH1ydxvZhtv8xJ9iKThz3kReYxTrsln+I5Ifh88Xbeg6V4EYtS9y/HGnwvNljzhEvS6lj3ecn1J3wi9gGVbBAbqu0VeVl1XSEMu1tsIick+buT1I5k7aNmknmMq0VLevAXenErHsLbQrm9qXsniB33ANYnAlyFN+vXoS5OSq6LMA4zxMs2UcjehZeq1Mui6+KkzfViEzOU7shPjUKSpY+aSeYxrmbcW0Uk4GQROtokfK49Ve5dkNx3TPLwGcmDRmJQ+Gu1ppFCVkNLZod4e9eL2XQzZic6TTN8+cqia8dBUu9Iyqqu78qkrK9K2aoa2mwVWfqokkGjPMYHi5ZULt8LhROfJ1vEbFArP4xQvjO5fiuW0kr+FC/cQpwvwpaVNFtXwjjGp/I6MQvPCEOopL8JMjRCPX006mNczbjnig3Dj8LtWCKW5DyZnnN7A8n114OUD3XMuFR+K3QljDvNAmHcq2QPBbaSevto1Mc47ZbMFDPJZnE+5CvcpPgB/w3irMfpOLpK+dABp8GKvMNV11ZSpD7KPMaVxn0RVgvf5QqxFN0nZvdWxTLrZQdewPG4P1V2uTgXsgtvJXmHs66tomh9lHWM97slk8SnzF3JjduS/NXi48ws8TVuY5MEz4OluEAc3urCh2ITNFt8RbxZLGntoGt3kjgQkpziwEZ0h+FRnCx1itpHtY4xwrhPE874PmH9W1INLsM74pPz5ObK3hA/C8V7hLKTxVesNXhYnAFpF107Rey5klOTBN8Zbty11ilyH9UyxvvpKP+JU9Ku5HnktaSkUJTGXdK2lMZd0rb8D+jAi7nBbjFEAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle x^{3} - 6 x^{2} + 11 x - 6$" ], "text/plain": [ " 3 2 \n", "x - 6⋅x + 11⋅x - 6" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P.expand()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Se nós começarmos com a forma expandida $P(x) = x³ - 6x² + 11x - 6$ nós podemos obter as raízes utilizando os métodos **factor** ou **simplify**:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMMAAAAVCAYAAAD7GFqYAAAABHNCSVQICAgIfAhkiAAABPJJREFUeJzt23mIVVUcB/DPqKSmYGSkWFlIpoGUVJBR6ZRLEVhR0UZmpEUL7UYlSUNZ2AJtf1TUH7bSoi2UokVKadJm2r5KWpZmZhmYlZb98bvTPO+7784bnRnfPN8XhjNzzu/ce37fe37LWaauoaFBDTXUQKcS9Y9hDXq041jaGodiCyaUIVuN+lPjgBwOsozhMJyDadjQtuPabtyO1/E9NmIdluAm9E7JLsaLmIqeOc/sKPr3xkS8gG+E/uuxUHzorG9bbRzAabgfC/C7mOhP5MiX5KBzfX19Wng69sCZ2Nwao21DzMYveAfz8AX64WzxMZ8TBDXiW1wlPvCCEs+crmPoPx4PoZcwgLn4DiNwOoYI/dOoJg7gKZyI3fGDGPfHeD6nTyYHdak1wwFiQj2CC1tzxG2Ebvgzo/5WTMYDuCTV9jl2xQD8k2rrSPofK1KYWfi3oL4v3sU+wmvOzOhbLRzAMVgpouMIzMeTwhnmoYiDdCg9H3V4JqPzqyIEnZKqrxOeZIsIq+2JLEOAZ5NyYEbb0+iPURltefpTWRzMw8u2NgRYjQeT3+tL9K0WDojJ/3Xy3pagiIO0MYwSVvJ2RudrBfFT0bmg/i4Rsh/G9S0cUFthbFJ+lNH2VlKOzmjL05+Ow8GmpCyV4uwMHDSHIg4KjaEHhorwkbVo+hCP40CMS+om42rhiS9q5cG2BJPQgLtFDniLMIQsD/VeUg5P1TenP5XNQSO64Nzk9zklZKqdg3JQxEGXgsa9hKWvynnAjThDTLyeIjefK0hJh+v2xCT0Kfh7Ds7Dzxmy60V61T9VX47+VC4HjZgmFs+zxbiyUO0clIMiDgojQ+NW5K85D1iJe7Cv2M5aJHLHv8t4+XKR15X7k7c9lkZfkbP2TcYzQGyxHlJCfp3YdShEOfpTuRzA5bhGLIDHNSO7IzhYrm31bym24qAwMmxMym7NPKDQ207AH2W+eJnSC94s/NgC2Ub8JPbdP8BX4uBoSIZcd036NqJc/alMDi7FvfgMI8WHzsOO4KA95kBLsBUHhcawJinTh1WFOEsslFYLL3wFLi7zxSPLH+N2Y4WYFEOF5a8taOuE3cRecyHK0Z/K5OBKsV76JHnHmnzxHcZBe86B5lDEQWGatEpY+6ASnU/Ao/gUB4lQPBGD22KkrYB+SZneRx8kUqqlqfrm9KcyObhOGMJSsefenCFQfRxsC4o4KDSGLXhTeNL9Ux2PwgyRK44RhE0RkaW9zxYaMVh4pTQ6iQXdniKXTee/w5Jyfqo+T38qk4MpybsXC6+7Nl/8f1QTB9uKIg66pARm4lQcJ0704GC8IlbfozXtNMzA+zgJRyt9tN9WOB53io+3TFzL6CNOIQeIEH5BRr8xIlq8lNGWpT+VycF43Cx0WSAWz2ksFwdhaVQLB3By8kOTczxCk95rxW5jGkUcpK9j7CLut6zA4cI7LERXMcnSh1ij8Jq4GzRM+2KIyFOPxN4i/9sgFs6zcJ/iRWQvYSRzNRFYiLT+VC4HDeJCYh7eUHwKXU0c0DwPK7Bfqi6Tg7QxwA24TWxLLtmuYVYeLhNGMlxpD1bN+lPjgBIcZBlDN3wprH9surEDo7tIpxaJC2ylUK36U+OAHA6yrnBvFvv0XUUuuCkt0EExEH/hDvyWI1et+lPjgBwOsiJDDTXslCj1b5811LDT4T/vCN+w9IY4YQAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left(x - 3\\right) \\left(x - 2\\right) \\left(x - 1\\right)$" ], "text/plain": [ "(x - 3)⋅(x - 2)⋅(x - 1)" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P.factor()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A função **simplify** pode ser utilizada em qualquer expressão para simplificá-la:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMMAAAAVCAYAAAD7GFqYAAAABHNCSVQICAgIfAhkiAAABPJJREFUeJzt23mIVVUcB/DPqKSmYGSkWFlIpoGUVJBR6ZRLEVhR0UZmpEUL7UYlSUNZ2AJtf1TUH7bSoi2UokVKadJm2r5KWpZmZhmYlZb98bvTPO+7784bnRnfPN8XhjNzzu/ce37fe37LWaauoaFBDTXUQKcS9Y9hDXq041jaGodiCyaUIVuN+lPjgBwOsozhMJyDadjQtuPabtyO1/E9NmIdluAm9E7JLsaLmIqeOc/sKPr3xkS8gG+E/uuxUHzorG9bbRzAabgfC/C7mOhP5MiX5KBzfX19Wng69sCZ2Nwao21DzMYveAfz8AX64WzxMZ8TBDXiW1wlPvCCEs+crmPoPx4PoZcwgLn4DiNwOoYI/dOoJg7gKZyI3fGDGPfHeD6nTyYHdak1wwFiQj2CC1tzxG2Ebvgzo/5WTMYDuCTV9jl2xQD8k2rrSPofK1KYWfi3oL4v3sU+wmvOzOhbLRzAMVgpouMIzMeTwhnmoYiDdCg9H3V4JqPzqyIEnZKqrxOeZIsIq+2JLEOAZ5NyYEbb0+iPURltefpTWRzMw8u2NgRYjQeT3+tL9K0WDojJ/3Xy3pagiIO0MYwSVvJ2RudrBfFT0bmg/i4Rsh/G9S0cUFthbFJ+lNH2VlKOzmjL05+Ow8GmpCyV4uwMHDSHIg4KjaEHhorwkbVo+hCP40CMS+om42rhiS9q5cG2BJPQgLtFDniLMIQsD/VeUg5P1TenP5XNQSO64Nzk9zklZKqdg3JQxEGXgsa9hKWvynnAjThDTLyeIjefK0hJh+v2xCT0Kfh7Ds7Dzxmy60V61T9VX47+VC4HjZgmFs+zxbiyUO0clIMiDgojQ+NW5K85D1iJe7Cv2M5aJHLHv8t4+XKR15X7k7c9lkZfkbP2TcYzQGyxHlJCfp3YdShEOfpTuRzA5bhGLIDHNSO7IzhYrm31bym24qAwMmxMym7NPKDQ207AH2W+eJnSC94s/NgC2Ub8JPbdP8BX4uBoSIZcd036NqJc/alMDi7FvfgMI8WHzsOO4KA95kBLsBUHhcawJinTh1WFOEsslFYLL3wFLi7zxSPLH+N2Y4WYFEOF5a8taOuE3cRecyHK0Z/K5OBKsV76JHnHmnzxHcZBe86B5lDEQWGatEpY+6ASnU/Ao/gUB4lQPBGD22KkrYB+SZneRx8kUqqlqfrm9KcyObhOGMJSsefenCFQfRxsC4o4KDSGLXhTeNL9Ux2PwgyRK44RhE0RkaW9zxYaMVh4pTQ6iQXdniKXTee/w5Jyfqo+T38qk4MpybsXC6+7Nl/8f1QTB9uKIg66pARm4lQcJ0704GC8IlbfozXtNMzA+zgJRyt9tN9WOB53io+3TFzL6CNOIQeIEH5BRr8xIlq8lNGWpT+VycF43Cx0WSAWz2ksFwdhaVQLB3By8kOTczxCk95rxW5jGkUcpK9j7CLut6zA4cI7LERXMcnSh1ij8Jq4GzRM+2KIyFOPxN4i/9sgFs6zcJ/iRWQvYSRzNRFYiLT+VC4HDeJCYh7eUHwKXU0c0DwPK7Bfqi6Tg7QxwA24TWxLLtmuYVYeLhNGMlxpD1bN+lPjgBIcZBlDN3wprH9surEDo7tIpxaJC2ylUK36U+OAHA6yrnBvFvv0XUUuuCkt0EExEH/hDvyWI1et+lPjgBwOsiJDDTXslCj1b5811LDT4T/vCN+w9IY4YQAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left(x - 3\\right) \\left(x - 2\\right) \\left(x - 1\\right)$" ], "text/plain": [ "(x - 3)⋅(x - 2)⋅(x - 1)" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P.simplify()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lembre que as raízes do polinômio $P(x)$ são definidas como soluções para a equação $P(x) = 0$.\n", "\n", "Nós podemos usar a função **solve** para encontrarmos as raízes do polinômio:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFgAAAAVCAYAAADCUymGAAAABHNCSVQICAgIfAhkiAAAAs1JREFUWIXt2EuIFUcUBuDPiYtAJAoGFTchQkCIGhEXBpWZEJC4iIiPpQ8wulAQxQGJKF4FwRASUQORkIVEV4K4kARDfCtZCD4QEfEBvsCJmgRjfIDGcXF6sO9N6/SduT0zLfmhqaKq+vyn/q4+dar6VSoV/6M4NKXqLWhPPRd6w6GS4h3V2rV3dDRlDD6Cdfi2pn0WtuIY/k6M7CzA2TQG43PswWU8wj0cxwLZ/jcCX+IAbiScf+I01iY+1eKh0GwdrqU7+mcMPoxKRvtqfIh/cBMju+J5nZiN73ALh3AdQzEDP2BqMqb9ZQa6iOU4hV9xG29hgtBlUVK/kRr/0AvNWvBuR0eWwK8ivSlWUrOYcNG4iGn4Cc9S7atwAjOF2LsbzPs2Hme0b0i4v8DiPIbq+cUO4ZLGr5ZX4SD2qhYX2rAtqbcUwJslLuxKyvfzGioqhvUEniTl0x7k/Cwpz+Z9oZ4Q0ZfQH3OT+r4CeVoxAAMxHpOEuBvzGiirwBsxCj/jlwJ5WsWm2oF9mI87eQ2UMUQsxQqRp88pmGsY+iXlDIwQ6dq4vAbKJvASbMZ5fCzy057A7yIXnyLy4B/zvlgmgZeJw885IW5bL/hwTXzcD8TprVOUReCV2IQzQtzbvejL8KT8N8/gogXeLvLm+d2wsUZsaifxCe4WzDlSxNxaNImDxhD8hr/yGKsni5iePFIOfCQmREy8NcMpup6rzsN6sVqOiQ2uFldTPjSC81N8haO4gj9EJtEsNrk2LMxrrB6Bx4oJpzEieYj4VCvwaNwXR92u4L2kfEPE4CwcUS1wdzn343tMFHcvg/BAHNt3YIs6Ntd6BK7IvgR6GQZhDL6W83fqI5znRLbSEGTF4LUacx88WRxnv+mmnb7OSfV9cHO6I72Cr4r7zA50tpl0hr14s5s2ysDJi/vg/6BW4EoPOPM6In0fXIWy5MGlxXNS95yvO9daEwAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left[ 1, \\ 2, \\ 3\\right]$" ], "text/plain": [ "[1, 2, 3]" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "roots = solve(P,x)\n", "roots" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Podemos então checar se $P$ é igual $(x-1)(x-2)(x-3)$:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAASCAYAAABrXO8xAAAABHNCSVQICAgIfAhkiAAAAQ1JREFUOI2t0k8rxFEUxvHPyIoYNlYWIjNvQP5kZdRk6Q1Y2FIsbJSFsbCmKZaSd2BrY0XeAUZTStlZSJINFr879XPnTiLP5qnT+Z57bs8p1Go1f1FXojaMIzziHffYx2C+qTuCxnCJIZziBpNYxwJm8ZR68TBAa1jEJirYQxm7qVVHUQ2rHUQDt/GKJfTGYCX4GT4i8AUX6MF0DJaDN6R1F7wUg8Xgzx3AVn0gBn9SIfhnDLYmFqXVn+/Lg7fBSx3A8eCNGDwPXtX+hT5Z+G+4isGmLIoRrEbgjiy/E1mebSe3Iju5OuZxjSnMhRW3Wo3xSk1M4DgAG7L7rWNGuNPUi/CA5UT9m36T4/+AXwFDL+NOlWa/AAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simplify(P - (x-roots[0])*(x-roots[1])*(x-roots[2]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As funções trigonométricas como seno (**sin**) e cosseno (**cos**) recebem inputs em radianos. \n", "\n", "Para chamarmos elas usando argumentos em graus é necessário o fator de conversão \n", "$\\frac{{\\pi}}{{180}}$ ou utilizar **numpy.radians** ou **numpy.deg2rad** da biblioteca NumPy.\n", "\n", "SymPy está ciente de diversas identidades trigonométricas:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sin(x) == cos(x-pi/2)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAF0AAAAXCAYAAABpskPJAAAABHNCSVQICAgIfAhkiAAABD1JREFUaIHt2GuIVVUUB/DfqEGmkKVF9LCBJCsixSQjSpTUpCwr6EOSqVlZ9rKk0jCZoheUDzIIjciMwkIjSyKjMMss0soCsS/RO3uIWlCZWtOHdY4dz5w79zhzm7mQf7jsYe2911nzP2v/1zq7oampyQF0LLq0YU8jmrG4hnEswU/oUUOfnY3TBU+T8xNtIb3WGIwr8BB+6+RYaokP8RLuQ8/sRFtI/w4nY2b74wIP4Fc8XiN/9YQHcRRuzhrbQvpufIYtNQjqRIzAC/ijBv7KYKI49sM64FkfCK6moGtqzJN+Ed4UhP6J77EGUzNrGrXU9KytEUuxFTuxAWMqBHUVGvB8hfnXE7+X5uwNybOahSx1BKYnz5teYb6/4OztnH0p+orkwr6kX4sVOAWvYA5eRXdMKhnY8eLtNuIZQeapid/hBetH4C+8X8Hf7fhb6GLXjP0RTMATmFEytvZibTKeWWF+gYjxxpz93WQcmRq6ZSanYBcGiE4iiz4lAxuGJtyTsT2H1wSBqzP2HhiIzSoX0E/Ey5uA8SK778JtQpKuKxlXLfCRkMAhBXOXCVIfxae5ufXJODQ15OVlj9DsPLaWDOwrkZVZrMLXOCNnP0ZkRrXaMEvIVJPIovsTn+PFKego7BYEHoejM/YemCsSdXbBvl9E/H1TQ5b0Z3EINmEeLsYR+xnYRiEXeXyDw3K23sm4vYrPbzFfSNcCrBMav6tEPF8KHc7+nkrmVhfMLa7iL5WKrMTMxrG4UxBchG0yapGVl7kio6eKFmdaEsgaIQ0bqgQEOyrY92h5qtJu5eASfn/O/D0Zv5fYQ7ysXjnbQIzF0+KlZLGxir+U9CF4ESfhVryX+KuE7jLdWbfc5JLk1wtn4RLRYawSvXle69uD1FfvVldxuSicP4ie9xZcX/IZ8wtsEwXpi/FWST8p1olETDP9MSGRNyT2InQRfH6RNRRhh+hcrkmCOxzn7GeA1bBFZHD/VtacLzJoE04TPe/VIsM6A9tF4R+McTgXC/FxK3v6ixZ37ynKkj5ay8yHI5Ox7JEui2bR0/ZBv4L5s7FMaPoo8YLuTmLsqN68CGtF7Vso5HhWlfXpqdjbuWVJXyr+wWXiOM8RPfcYcY/wRk1C3hfLk/G8nH0AVorCNNK/Hc4yUVvGqv3JK4tU13uKq5BtVdaPEs3FitSQJX2GKAiDRDGdhINEVR6uuJVsL5bjR1yZsfUTNaRZvIzPc3vSO5+H/4N4yiDV5vV4ssraQ0UXuFJ0cKChDu7TZ4pLr0Fa18Z6wcu4QMjG+iprbxIfTEPxTmqsh6vdeeLj6d7ODqQExuFCcSNajfDuIqGWyxBOceHsaOwUX5fDxdddvd2p9xVknyBkcBPuKLGvEYsUfHDVA+lEF5O/nasXjBb34jtEMZymXCe3WVxdtEC9kF7PWJT8aoZ60PT/HQ6Q3gn4B3JD8FwHVDrUAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\sin{\\left(x + y \\right)}$" ], "text/plain": [ "sin(x + y)" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simplify(sin(x)*cos(y) + cos(x)*sin(y))" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA0AAAASCAYAAACAa1QyAAAABHNCSVQICAgIfAhkiAAAAPZJREFUKJGd0r8rxWEUx/HX5f4HBrPdH3FlshjIiIFNSRmUUt9MNinFYLj/gAwiFhKTUgZJMsjiJimTwc/h+6jTt2/3fvnU0zmd57xP5/P01LIs81d1hbwH09jBHd7wijNMxd56gMawgUcc4wG9GMEWhlLPd4RuMYw9fIX6Is4xmgZsx/WOsFsAoIXNlDeKntrpPcWPqlAdEyk/qAqtoB/7OKwCzWIeNxj/LbaDZrCGawzgpRM0h3VcJaAVL8ugBaziMgFPxYYitCQ3foFBPJetEX/EJJbxiVP5IxR1j2aE+lLslnsq0wmacb0MtQ6nUeapkv4F/QC4NjEPV14CWgAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle 2$" ], "text/plain": [ "2" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "e = 2*sin(x)**2 + 2*cos(x)**2\n", "trigsimp(e)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\frac{\\cos{\\left(4 x \\right)}}{2} + \\frac{1}{2}$" ], "text/plain": [ "cos(4⋅x) 1\n", "──────── + ─\n", " 2 2" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simplify(sin(x)**4 -2* cos(x)**2* sin (x)**2+ cos (x)**4)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIMAAAAVCAYAAABlol04AAAABHNCSVQICAgIfAhkiAAABVlJREFUaIHt2mmsXVMUB/DfawlFUrSEmErMEaRKSAzPPDU0JQ0JGtQ8j1Vpk4dqxDyrFCmiKdrQmOegRIw1iyFmr4aYaVHqw9o3b/f03ndP37v3pk36/7Jv1tl77bX2+e+11t7ntnV0dFiKpYA+LZpnEOZjcgN13oHvsGIvdGwj7Dq6IRY1H031OSfDAIzCffgYc/ALZqaBrSJOGQzBYbgEf/RCz2u4H+OxUgPsaiaa7nPf9vb2yu+RuBn9BQEewxfYBSOwBe7toQF/YAoewu891JFjMgbiEMzrpa5PcYaw8fle6momJmuyz21ZzbCbCD8P4b9s4Bp4GevgYEzvpSG9xcb4ALfg2AbpfB8rYAP82yCdjURLfM5D/9N4wIJEgNmYmH63F54dgKfQib/wDZ7FiYV+gyxcM+SyQZiKHzAXr2JoDSeOQhvurvH88aR3eEHeluaaL0JtjqlYF3tU0bddmutr4WNnmmNElb4j8JxIr3PwNsZguRq2ll2/lvhctg74J7V5eDoWM7C5INEVeBj9cGRJvbCeiDyDcKdweIuke9cq/fcQTH6phr5zBKHHo28mv1ykwkk4rzDmhdTuWZAfgxcxLLVXiMi5uoVf2IRk+2YiJV4vXsYEkXKXLfRflPVric/L1FCeYxkckX4/msmPw9/YSlS4OQaW0FtBOzpwQSabkuY6B89k8hWxtQhxtYqoNwWpRuJwsTPOx5m4B8dXGfNKanfOZJvjRvyKnfBuYcza2e8dRAT4UkSS2Uk+RhTkQ5MvE7IxZdevZT6XiQyXiJ36sGB4jnm6okaOH0roreBzwegcleJ1u4J8LcH8zjo6x4p004GTcXHSebiF0yAR1ueKsFnBCWIjXGRhIsBX2e+jUjteFxGI9TkrzTmqio4y69cyn+uR4VThzAdJaY67RAHyLq4SoXS1OvqqYZbqRduXWKUgG5Dan+ro/ApXixR0nQjxw8VOrIUfLbgjt0/tI3XmgsGpfbrKsw+TPetj5Uxedv1a5nN3ZDgJ1+A9kbt/LDy/UoSlLwRp7sO3IqwPqWN4jp9ryOdVsW9Oapcvoff77PfR+LNO/36Zfrpe3Ncl5uqf2lq7t7PQj/Lr1zKfa5HhdFEAvSOIMLtGvzvEDhqA/XGryEGPiSKr0ajk1gHd9uJQUTxV7D6tTv8+4uXnubtC0rVK2PVLateo8XzNQr8Kyqxfy3yuRobRImzNEkQoFjfV8LOoKY4RxcuqouhqNDoF+zfpps9+uF2E3y1FihuFTbsZs4mo/Gdlskrlvm8Ju95IbXuVZxuKYvNTtaNgd+vXMp+LZBgnCsbXsLvuC8F9VD+NVBhdL0T1BPPFOX6gWOQidsQ0kT/3Eos4TthZPGfnqNQH+cnlJpGqxomTRRH5aeK21I61YN7vK3ZrH7Hrc5Rdv5b5nBszEheKYu55kceK+EzXxdFUUY3OTPI2weZtBZme7MaQ3mA6DsLe4htKBVvhQRGK99SVp6eJS6wDk33Vrpz3En7PyGTvibuEiWLnz8BHIlwPwW+67kFexKU4V6TWaeIYuK84ic3EZYU5F2X9WuJzTob1U9tX1AzV8KwuMpyXjBsswtRccUwcLXZVtSNTIzBdFFpH4IYk21Dk2fnJpk8KY8bgCfFCti886y8q+QfFCSbHJPFyzxYpYJiIlm+Jq+EcowVpTk62LZvsGCsulIpV/aKsX0t8bltC/88wRlzgDNaVr3uKU3CtKNwW5w9VTfd5cfosvSi4ShzJLuylnn5ikadbvIlAC3zOP2EvSZiH18UHoFf1PCVtJD4QXap2pb+4oOk+L6lpYimagCU1TSxFE/A/dRC64ehCSX8AAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle 2 \\sin{\\left(x \\right)} \\cos{\\left(x \\right)}$" ], "text/plain": [ "2⋅sin(x)⋅cos(x)" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expand_trig(sin(2*x))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cálculo\n", "\n", "Cálculo, originalmente chamado de cálculo infinitesimal ou \"o cálculo dos infinitesimais\", é o estudo matemático da mudança contínua, da mesma forma que a geometria é o estudo da forma e a álgebra é o estudo das generalizações das operações aritméticas.\n", "\n", "Ele possui dois ramos principais, **cálculo diferencial** e **cálculo integral**; o primeiro diz respeito às taxas instantâneas de mudança e às inclinações das curvas, enquanto o cálculo integral diz respeito ao acúmulo de quantidades e áreas sob ou entre as curvas. Esses dois ramos estão relacionados entre si pelo teorema fundamental do cálculo e fazem uso das noções fundamentais de convergência de sequências infinitas e séries infinitas até um limite bem definido.\n", "\n", "Aqui nós iremos aprender os métodos de SymPy para calcularmos limites, derivadas, integrais e somatórios." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Infinito\n", "\n", "O símbolo para o infinito ($\\infty$) em SymPy é denotado como dois **o**'s em lowercase. SymPy sabe como tratar o infinito corretamente em expressões.\n", "\n", "Por exemplo:" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAABHNCSVQICAgIfAhkiAAAAPVJREFUKJGl0rErhVEYBvDfh0GWu7CabPgD1E0po5DJ4A+4I4M7fykLA5PNxmJgwiBfKQOSlBgMymYgo+1eg/er27mfDJ46w3nO+z7v85xzsjzP/Rc9FdwSXvGFPQwEP4VbfOIUw7+JjGMbq5jDBI4wiuMQmcczDpFBXyKygjUcxH4WdzgPkUbwF7gKd0XqZCwKSjxiF4NoJrWX4bArToZ2wr2gF0MJ3y7jpCJPqHfsa1jGOzbKpsBkOO26ky2cRdMb1v28VAPXEW0HC+hHUeXkPiZv4gQf0fCAmZh+g2ksltFTJ7AfK0WBkRjc6jyo+mx/oZUS3z4DMu2erq5tAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\infty$" ], "text/plain": [ "∞" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "oo" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAABHNCSVQICAgIfAhkiAAAAPVJREFUKJGl0rErhVEYBvDfh0GWu7CabPgD1E0po5DJ4A+4I4M7fykLA5PNxmJgwiBfKQOSlBgMymYgo+1eg/er27mfDJ46w3nO+z7v85xzsjzP/Rc9FdwSXvGFPQwEP4VbfOIUw7+JjGMbq5jDBI4wiuMQmcczDpFBXyKygjUcxH4WdzgPkUbwF7gKd0XqZCwKSjxiF4NoJrWX4bArToZ2wr2gF0MJ3y7jpCJPqHfsa1jGOzbKpsBkOO26ky2cRdMb1v28VAPXEW0HC+hHUeXkPiZv4gQf0fCAmZh+g2ksltFTJ7AfK0WBkRjc6jyo+mx/oZUS3z4DMu2erq5tAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\infty$" ], "text/plain": [ "∞" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "oo + 1" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{True}$" ], "text/plain": [ "True" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "5000 < oo" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAASCAYAAABrXO8xAAAABHNCSVQICAgIfAhkiAAAAQ1JREFUOI2t0k8rxFEUxvHPyIoYNlYWIjNvQP5kZdRk6Q1Y2FIsbJSFsbCmKZaSd2BrY0XeAUZTStlZSJINFr879XPnTiLP5qnT+Z57bs8p1Go1f1FXojaMIzziHffYx2C+qTuCxnCJIZziBpNYxwJm8ZR68TBAa1jEJirYQxm7qVVHUQ2rHUQDt/GKJfTGYCX4GT4i8AUX6MF0DJaDN6R1F7wUg8Xgzx3AVn0gBn9SIfhnDLYmFqXVn+/Lg7fBSx3A8eCNGDwPXtX+hT5Z+G+4isGmLIoRrEbgjiy/E1mebSe3Iju5OuZxjSnMhRW3Wo3xSk1M4DgAG7L7rWNGuNPUi/CA5UT9m36T4/+AXwFDL+NOlWa/AAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1/oo" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\text{True}$" ], "text/plain": [ "True" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "oo > 9999999999999999" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Com limites nós podemos descrever, com precisão matemática, infinitas grandes quantidades, infinitas pequenas quantidades e procedimentos com infinitos passos. \n", "\n", "Por exemplo, o número $e$ é definido como o limite:\n", "\n", "\\begin{equation} e \\equiv \\lim_{n\\to\\infty}\\left(1 + \\frac{{1}}{{n}}\\right)^n\\end{equation}\n", "\n", "SymPy nos permite facilmente calcular ele:" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAPCAYAAADUFP50AAAABHNCSVQICAgIfAhkiAAAAOhJREFUKJG10r8rxVEYx/HX917KH+BOymShuxmUFJM/gDuw2Cl1F4npuyjrXYzKpPwYDFIyGSw2q81isVioSzI48nT7HqR8lk+d53k/T59zTlGWpb+oljmfxxke0MUtNlHPgXXs4wgjOMQO3rCF3RzYwQK2MYpltNHEFZYw1gtOYAUn2MBrqL1gL/TpC8VVFHhCWZG7mbzoBWeTL1ZAUXcRHEADl5j+AcRXxiL54G+gCD7jxseNzWV6p4R3jBnXcIpjXKRBNQxhHP0YrgLPMYn1NH0Gj7hPgw7i+gjCNVrfZftU7q/+H/gOO4Ykuvdadj4AAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle e$" ], "text/plain": [ "ℯ" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = Symbol('n')\n", "limit((1+1/n)**n, n, oo)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "E com o método **evalf()** podemos obter um resultado numérico:" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 2.71828182845905$" ], "text/plain": [ "2.71828182845905" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E.evalf()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Limites também são úteis para descrever comportamento assintótico da função.\n", "\n", "Para isso, considere a seguinte função:\n", "\n", "\\begin{equation}f(x)=\\frac1x\\end{equation}" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAABHNCSVQICAgIfAhkiAAAAPVJREFUKJGl0rErhVEYBvDfh0GWu7CabPgD1E0po5DJ4A+4I4M7fykLA5PNxmJgwiBfKQOSlBgMymYgo+1eg/er27mfDJ46w3nO+z7v85xzsjzP/Rc9FdwSXvGFPQwEP4VbfOIUw7+JjGMbq5jDBI4wiuMQmcczDpFBXyKygjUcxH4WdzgPkUbwF7gKd0XqZCwKSjxiF4NoJrWX4bArToZ2wr2gF0MJ3y7jpCJPqHfsa1jGOzbKpsBkOO26ky2cRdMb1v28VAPXEW0HC+hHUeXkPiZv4gQf0fCAmZh+g2ksltFTJ7AfK0WBkRjc6jyo+mx/oZUS3z4DMu2erq5tAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\infty$" ], "text/plain": [ "∞" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "limit(1/x, x, 0, dir='+')" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACIAAAALCAYAAAAa5F88AAAABHNCSVQICAgIfAhkiAAAASJJREFUOI3N1L8vw0EYx/FXMYjFwmqy4Q+QiEQYBTEZ/AEdGWowNRILA5PNVouBCYNoIjEgIkIYJH4tYiBGJjXcNWm+bUmjTXySG57ne/d93vd57i6VzWb9BzU14J/TeMIHcmiL+SGc4R176GokSB9WkcE4+rGNHuxEkAncYgup4sKWOoPMYgGbMR7DOQ4iSDrmD3EsuJSn3JFHFGoYucT63likqGusowNziblHglMod+QOn1V2W0nPiTgVAUt1j2Z04qEkX/BDa4ZrgKikGwzgMsbtmMErloRWFEEHMV8N5K9awX4s/IJF4QalcSK0aQ2TaBXPB/W/NReCA8vYxVsseoVRwYVTjGBKSRvr7QhsxJFUHt3C5r+SHxvxoP2mMgj4BuyHRP3LBi5iAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle -\\infty$" ], "text/plain": [ "-∞" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "limit(1/x, x, 0, dir='-')" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAASCAYAAABrXO8xAAAABHNCSVQICAgIfAhkiAAAAQ1JREFUOI2t0k8rxFEUxvHPyIoYNlYWIjNvQP5kZdRk6Q1Y2FIsbJSFsbCmKZaSd2BrY0XeAUZTStlZSJINFr879XPnTiLP5qnT+Z57bs8p1Go1f1FXojaMIzziHffYx2C+qTuCxnCJIZziBpNYxwJm8ZR68TBAa1jEJirYQxm7qVVHUQ2rHUQDt/GKJfTGYCX4GT4i8AUX6MF0DJaDN6R1F7wUg8Xgzx3AVn0gBn9SIfhnDLYmFqXVn+/Lg7fBSx3A8eCNGDwPXtX+hT5Z+G+4isGmLIoRrEbgjiy/E1mebSe3Iju5OuZxjSnMhRW3Wo3xSk1M4DgAG7L7rWNGuNPUi/CA5UT9m36T4/+AXwFDL+NOlWa/AAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "limit(1/x, x, oo)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Derivada\n", "\n", "A **derivada** de uma função de uma variável real mede a sensibilidade à mudança do valor da função (valor de saída) em relação a uma mudança em seu argumento (valor de entrada). As derivadas são uma ferramenta fundamental de cálculo. Por exemplo, a derivada da posição de um objeto em movimento em relação ao tempo é a velocidade do objeto: mede a rapidez com que a posição do objeto muda quando o tempo avança.\n", "\n", "Uma função de uma variável real $y = f(x)$ é diferenciável em um ponto $a$ de seu domínio, se seu domínio contém um intervalo aberto $I$ contendo $a$, e o limite existe.\n", "\n", "$$L = \\lim_{h\\to 0}{\\frac {f(a+h) - f(a)}{h}}$$\n", "\n", "Isso significa que, para cada número real positivo $\\varepsilon$, existe um número real positivo $\\delta$ tal que, para cada $h$ tal que $|h| < \\delta$ e $h \\neq 0$, então $f(a + h)$ é definido:\n", "\n", "$$|L - {\\frac{f(a + h) - f(a)}{h}}| < \\varepsilon$$\n", "\n", "Onde as barras verticais denotam o valor absoluto. Se a função $f$ é diferenciável em $a$, isto é, se o limite $L$ existe, então este limite é chamado de derivada de $f$ em $a$.\n", "\n", "![img](https://raw.githubusercontent.com/the-akira/Python-Matematica/master/imagens/derivada.png)\n", "\n", "A função derivada é denotada normalmente por: \\begin{equation}f'(x) , \\frac{{d}}{{dx}}f(x) , \\frac{{df}}{{dx}} , \\frac{{dy}}{{dx}} \\end{equation}\n", "\n", "Lembre que a derivada descreve a taxa de variação de uma função $f(x)$.\n", "\n", "O método **diff** do SymPy computa a derivada de uma dada expressão:" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACMAAAAWCAYAAABKbiVHAAAABHNCSVQICAgIfAhkiAAAAjpJREFUSInt1l1ojmEYB/DfzJmvQiyRElmIklIML8tI+ciZMhRKHIgoVvIqKzLlo3YyBz5yopWDOfAxKUqKwkIKyUfZWiZaSGYO7nt5e/a8tjHjwFVv93P/7+u+7/9zXf/ret6CbDbrX7F+fXzfbtzGBzSjDlP+FpkMqjELC/AV9RgK/fuYzKLEvBzvMRt1ycgcxFW8wie04C72YtgfIDdIyE4LndO0DQNwBUdxVghlFg0Y08tkjuAebtE5TYPxOWVTJSoEAW7uJSKHMBdz0EbnyKQRgXNxnJDAL6MdKxN4AU7GtQMp5x3GGpTiaQfY3WpaGseGBL4T37AfhTl4FdaiBrsSe45hNebjUe5CvmragYEYghkoiUSSb3kfZ+LF5UI0KrBdiOamhH91JLJCEG1RxFvRWpCnAzdiZM78ItahKcV3NJ7EtSocxyUsw5eEb3vaZdiHbL40FQl5LxL0ME4o8ekpvq+FqhgbidyMe5JExDPTflm61kwTzqNM6DOn8/g15zyvx8cuzk217gr4hSC2yRieWFslpKcxzrf+CpGekIFRcWzLwZbgFB5iKh5jA4p/l0yxH+pO+lRihKCHdxEvQa2gmTIhVXuECk3rLV1abmkvFrridTzDW6Gi5gkCbsTG6DsNF4SP3EK8iXgt7mC50Flv9IRMYSaT6XhuFaIwETOF7jheePMaoZe8jNg1ocmVCqnJtedCd52EEz0hkxuZB9jSjT1Ppaezw+qFcu2x9fWfq5/afzL57DsI1HUrE/CvpAAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle 3 x^{2}$" ], "text/plain": [ " 2\n", "3⋅x " ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(x**3, x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "O método **diff** está ciente da **regra do produto**:\n", "\n", "\n", "\\begin{equation}[f(x)g(x)]' = f'(x)g(x) + f(x)g'(x)\\end{equation}" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle x^{2} \\cos{\\left(x \\right)} + 2 x \\sin{\\left(x \\right)}$" ], "text/plain": [ " 2 \n", "x ⋅cos(x) + 2⋅x⋅sin(x)" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(x**2*sin(x), x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "E também da **regra da cadeia**:\n", "\n", "\\begin{equation}f(g(x))' = f'(g(x))g'(x)\\end{equation}" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGEAAAAYCAYAAADqK5OqAAAABHNCSVQICAgIfAhkiAAABR9JREFUaIHt2XvMlmMcB/DPm2MOY8Iy5rCZQzNZToUScrbWMsaI6aCQmHOmeUeSkbMYOc9xDDOHHDKJIU2IDM1ZUUs5VbwOf/yue+/13j3P+z5PvWTVd7t33c/v+t2/+7qu3/l+GhobG63GikWHFb2AlQAjMRU/YS6exi71CFithOVHb4zHPjgQTXgJm9QqYFVXwn34Aesvh4xDcTdm4AMMwGbYt8S3O/7GoLKAXAmdMBhP4DMswkJMSQ+ubArbAydiLH5tR7kbirOaX6JPw5MYjQ3yifxgj8Ed2Btv4Xo8LuLbBDyKhnZc7IrGGBHHb21nuddjOt6sMHclOmNETsyV8An6YiucIBLOQOyEr3E0+rfzglcUdkAfYViL2lHu1eglDPrPCvNv42MMxRoFMVfCJJHZ/yo9OAe3pfvepbkXRJwrK6cB96S5saW5vfAIvsUSzE5yjq2w6GMxWYTFRSLmjsQ6FXj74uUkbwm+w6s4vQLvwLTGRyrMLeu+xuEkHCTCeTU8jK2FEaD2OP9HGptK9POF0kbLNItrcLIIbxdl9CF4A/3SOA7PYHNLH9YYcUg740HcLA5hDCZirYz3VDyFLsKQxuFZdMQpFfbTR1hqpZCxLPu6UeSXA/BRFZkFXk/jwQVhzTYeKHhOSvfPl+bew/1pYQOElVyMc4SrD8t4u4hS7if0xIclWVtl9z2ExX8tPGdOoo8UhcNR4qDGJPpQ/I6uotrJsWnp9/rYDTNVT8j17Gu8UEA/kYw7J/ov6Spjahp7FYRaPGGsSM7PCgss4xIsRiOG44rEN0DL0HaaUOjlllYAfJPdD0zjaM0KIDzx3CR3cOn5Js0em2Ne6feWwrpnV+DNUc++NtQcCovrvCpyFya5WxeEtpQwQmz64/TySvhGVATb4CYRZvoLy8zRPY3PtfFO6JbGSRXmPknv3A4bJ9oDWE8o9zphlZtVkd0pjT+2sYZa99VQ5WpsRfZ8mYe2poQzcIOIcQdYuu7NMTe7H4TfKvAUB/ZtK3IKbJTGatY6u8R3rQgdXwnDeQLf4xXRD+QoqqF1a1hHLftaFnTM1lFVCWeLRDhDKGBOFT44XiSsguesKnwL0rhlDYtcmMbOVea3KPER3W93YelH4k4RdyeKxF+gyBmdtI5a91UvOgiD/CEnlHGhcOnpQgHlRJfjCNwrwsCuImwNFr1FGUUlcngNC303jb0rzG0vkvjnmhWbY4HIX0NEQt1EFAIFZgsL37GV99ezr3qxowhX0wtCWQmjRCKeJurdclLLsR8eE7HzELGxUSL5lmtoojNtSjxdKszn1dFdabxEy9i+hrDODsLSCxymcqVXeEAeRv4WvcemQqFl1LuvelHkxlcKQkP2f8LJwnL+FIkod/UCXySerqIRWpQWPSvjmSricC+8Vnp+iGj8mkRd/6kIC3vgZ+F5Ba7CBcITHxPl5OGiUpsijKRIkgtExTElrbFBWP+ewqB6aFk5HS96j+G4JaMv677qwUOio95OlOAtlNCIS9sQ8Kpwyymia90f75d4+uBF8f2pu6XRQ5RvPUVsnJdkTBCHneM4cVBdRXM2SxzeOHHoBYaJr5ldRR5ZjC/Thm8VCs6xtkjiX4pvZYRXLM++asFGIsdMFBUcWiphVcNI0ex105yD/m2cKbrrFt60sn2ergfXCW+47D96X0eh+MeVwtmqrITFogF9x/L9qVMrtsXtKnTStXw7WpkxOV3/BWaq0kWvyp7wv8FqJfwP8A/C9U5m+Nr4bQAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle 2 x \\cos{\\left(x^{2} \\right)}$" ], "text/plain": [ " ⎛ 2⎞\n", "2⋅x⋅cos⎝x ⎠" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(sin(x**2), x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "e, por fim, a **regra do quociente**:\n", "\n", "\\begin{equation}\\left(\\frac{{f(x)}}{{g(x)}}\\right)' = \\frac{{f'(x)g(x) - f(x)g'(x)}}{{g(x)²}}\\end{equation}" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - \\frac{x^{2} \\cos{\\left(x \\right)}}{\\sin^{2}{\\left(x \\right)}} + \\frac{2 x}{\\sin{\\left(x \\right)}}$" ], "text/plain": [ " 2 \n", " x ⋅cos(x) 2⋅x \n", "- ───────── + ──────\n", " 2 sin(x)\n", " sin (x) " ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(x**2/sin(x), x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Uma equação diferencial é uma equação que relaciona alguma função desconhecida $f(x)$ com sua derivada. \n", "\n", "Como exemplo vamos considerar $f'(x) = f(x)$ ou a expressão equivalente $f(x) - f'(x) = 0$\n", "\n", "Para resolvermos esse problema aplicaremos o método **dsolve**:" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGsAAAAYCAYAAAD9CQNjAAAABHNCSVQICAgIfAhkiAAABRBJREFUaIHt2XvMlmMcB/DPW7FSDltMlsP7B8JMTqNZSMipjRWRkeYwh81hJmHZXoZymtOwYSrN2WtYDiXTMjnkHDExRlspYzlTvP74XY/u7vd+zm9avN/t2XU/13Xdv/v33L/T93c9LW1tbbqxYaBHmfnNcDu+xB/owMS09gCWo2+Dz9wnyTujwfv/izgBv2OHzNxtWIytShPljPUgzsdHuAFX4Rnsi1MwBT83qNjbeArXoF+DMroaO2Gy0G0FVqVxDs7DJuv4+U9gISal75fgJByZ9AC9Cm7cBSMxC8fk1mbjB9zdpHKT8QYuwHVNymoGLcIRJ2JjzBcvbqXw8hE4FGNx4DrUowNX4Fl8nq6Hp+t/UGSs4Wlsz83vjMNwH35tUrk38QnOxvX4s0l5jeJ+jMcinIz3c+t9cDF2/Bd0mY0FIuOMxFv5Ddk0OFpY+M70/Z70vUNE2+nCEx8t86AOjMrNt2BaWpuSW3sE2wsHWB+4WBjqYwzR2VCEU14rUmEjGI3n8a2o/YtF1PQs2Dscg4VNlhcJyxprqUgJK7A6XV+FtvSQw0QEvF4gZwL+El6RVeQmnIZ7cVnunlfTeHiRYusY2wgjrMYY/Fhlf72ZpCceFil1RzyOu8Q7ulZEdBaD8aRwimfSnk7IpsH5oo5cKrytLbPWF3um+SJi8T5mCMOcKqLpCuG9j+GcgnsWpPGgIsVyuAhb1LCvhPcEiakkrzem4sM65NaK2wRBmIIrhVMQTj0X40T6XyRq43O4EdPxrtD/QLySFZqvWbuJPP1Obn6g8JalFRSchBOFkfsJ75gljPdXwf6V+E2kwmq4yNq0thqmq2ys49I4ow6ZtWJ/ESFP4/Lc2iqh2wFp3zK8gJnWRNMHIiInY2j25ryx9k5j3lj90/h9BSWX4FaR7u4QkTpK5Opy+A5bV1gvobWGPbWinyBLHSKTdDXOF7X6F2tnpxJ2T2OL+P27FuwZUyS4nLHezc2XcnbvKoquyFyfIRSuhD6aZ5b1otRk/qC6flkcJNLYPqLmnSAiII8RaRxbRd5XdTwbxcbqEDkzixI76a88xgpCsQwDcCHOrbC/h6hDX9SgZ1fWrFLN7SNSe61tQ19Rm6fq3NaU0Fs4wzwcXKPcmpE1VotgJYt1ZkdLRdQMKiPnaJGLPxIUdB7OFIX2kzL3DErPzDtGEbqyZi0Xx2itGIaXKsjpYU29fT59KqEljVvWoGPdyFL3nbGpzimQiLZ5SYl8gzhUpIMlIgWsEAyol869VRZD0vhyDXq2ihdR62d8FXm3pvEu0UPm0YKjRC9YD34VBGE3nXvOEoYq7rOqIhtZ5chFCe2iyTsCn6W5wYLJrBT9UoktPiE68GMVUNCEESIFPd2I4k3iduwhGv2Foqn/VLC17cQL3RYPNSB7gjg2ahdnix+IoBgo6t1GamPAnVCvsb4RPcKdIsJmiag7Qu4cS9DWF0X/MCS3trmgzzPxdSOKN4nSqX87zsJ+wtl+Eg73mnjhMxuQPVtQ84nC6MOEMy8VxnusUaWzxpqQPuXwh6hB12EvkS4HVNg/x5ocnsc4UYxvrlnTdYPn0qersQDHd7XQcn+RlMMtgnJe3cQz+4ioa1ecHrtRBkWn7pXwmziROERQ2Ub+02oVh8TTGrh3faKftclVqziC+04DPVMjaOn+W79mDFPMXKerzj67BPVG1v8Zc5Wvwf8K6q1Z3ViP6DbWBoRuY21A+BtcFhmlE+APRgAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle f{\\left(x \\right)} = C_{1} e^{x}$" ], "text/plain": [ " x\n", "f(x) = C₁⋅ℯ " ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "z = symbols('z')\n", "f = symbols('f', cls=Function)\n", "dsolve(f(x) - diff(f(x),x), f(x))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Integral\n", "\n", "Uma integral atribui números a funções de uma forma que descreve deslocamento, área, volume e outros conceitos que surgem pela combinação de dados infinitesimais. O processo de encontrar integrais é chamado de integração. Junto com a diferenciação, a integração é uma operação fundamental e essencial do cálculo, e serve como uma ferramenta para resolver problemas em matemática e física envolvendo a área de uma forma arbitrária, o comprimento de uma curva e o volume de um sólido, entre outros.\n", "\n", "![img](https://raw.githubusercontent.com/the-akira/Python-Matematica/master/imagens/integral.png)\n", "\n", "A integral de uma função $f(x)$ corresponde à computação da área abaixo do gráfico de $f(x)$. \n", "\n", "A área abaixo de $f(x)$ entre os pontos $x = a$ e $x = b$ é denotada como:\n", "\n", "\\begin{equation}A(a,b) = \\int_{a}^{b} f(x)dx\\end{equation}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A função integral $F$ corresponde ao cálculo da área como função do limite superior da integração:\n", "\n", "\\begin{equation}F(c) = \\int_{0}^{c} f(x)dx\\end{equation}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A área debaixo $f(x)$ entre $x = a$ e $x = b$ é dada:\n", "\n", "\\begin{equation}A(a,b) = \\int_{a}^{b} f(x)dx = F(b) - F(a)\\end{equation}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Em SymPy nós usamos **integrate(f, x)** para obter a função integral $F(x)$ de qualquer dada função $f(x)$:" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACwAAAAYCAYAAACBbx+6AAAABHNCSVQICAgIfAhkiAAAAn1JREFUWIXt10uoTVEYB/AfVxjcMqAYMBMZyKOI8kp5RLqOiSRJKBlQSiGPM0AKdS8G8ghJCXmE5JGBxMSEKERKCt28yuMSrsFal23ffY5j2wbKv1Zn7+/71n//97e+tb59OpTLZf8SOhbItQqt2FEgZzsUJXgEFuJWQXwVUYTgbjiE+XhVAF9VFCF4F47hcg2xPfEF26rEzBFKqxUL0s5OOQQmsRB940NqQYOQpBMV/H2wHW9RnxXwJxnuj42YjU81zinhBa5k+DpgX/TvrESQFnxBWIoZGWT7o29TtI1ED9zG5zjGYnG87pLi6IbxOC2URRpLon8e3tUqeDm+Yj3qEvYtmIvdWBFtJzEQgxPjBg7H63TWp6IzjmfoGCAkokl29r8jXcM3cTCKmyNkdRWW4QgWJWJfx5HEO7wUsp5GKfovZmg4iMfxWVWRtelWYybKQuFvwPn4Al9/RVgBXTEZ59CS8q3FEIzChzyCn6BRWPrtuCbUdC0ba1wF+0Th5dOnw3Ahq1txvQb+iqdEc+J6Pt7XQlYFJeGFzyZsbaVwH2tqJcoSPEvYZM/i/dJ8Gr+jDtOExvImYa9HP2HDtfjRLFqxLsbsjveNbZPSJTEFB3BHOGKuCN2mCXdzCh6D7tqXw0fsrTBnqFDXV3FPolySgkcJLfaJUHPNwlIdFY6c6TkFzxA266mU/YOM1htRjoIPYE/S0VYSg3BGWLIJeBrtx4SztQGjcwqeLmzc5znn/4SOwrfAeaFWJuFhKmZl/N2cg38Yeqv87fDb6IQH6FUl5pLQmvOgFH9/V3A5jnYo8h9HFkpC93xUFOGffl7+CgOKJvzbGS4c/wX/bXwDCOOEEmu0M1kAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\frac{x^{4}}{4}$" ], "text/plain": [ " 4\n", "x \n", "──\n", "4 " ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(x**3, x)" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAE8AAAAVCAYAAAAHIbMXAAAABHNCSVQICAgIfAhkiAAABAVJREFUWIXt2HmIV1UUB/DPaGVmoKSJYViBZEk0YbYYrTTaQrQYSEESuaRJG200oTCUTVJZUZHRRtlmodTQxtiGZtJitGdUYpk6UlFOYmlZ9se5r3nz5vebGZzfkAx94cd5v/PuPe/cc8/9nvNeVV1dnf+xY+j1XzvQzZiPH9CvCzYOx3ZMLt7oycEbjQswB5u7YOcDPI/Z2DN/oycHrx6/Yl4FbN2CIbg8r+ypwTsQNXgWv1fA3nv4EtPQO1N2R/COxDNYh61owmJMKDF2ApaiWSzyU9SiT4mxZ+L1ZG8r1mMJZpQYOwlVyY9SWCx4bHxBX4VH0705hXsLMExsCiofvKlYjrOTnIuXMFjbRdaLxR2Mp3Bvcr4ejdg1N/ZiNGAkXkh2X0ZfXFTCjxr8hXfK+Hkt/hY81junvx0X4kFcX5jzdpJjM8UuZYzvCEbiPsEzx+Hzwv19c9djRIZ9LzJ1Q9LX4jmcIRZYn/TT8AeqRfXMY1Dhfz8chpXKF4qP8bgI1ESRbTfgKnHUp5eY836Sx2eKSmbeJWIzbtI2cLA2dz0pydlaAgfbcLXIiimF+dvwZwm7PxX+DxXZ1NSBvzOxBXW4FDeLjJ+Ynl9Ecxo/LFMUg/etOO+d/T2Rm3t0kq904DSMSvKNEve+EoE+AAOS7knsITblTkELe5exPTDJXzrwYS3uwn64R9DMeJHh5fCzXKYXj+0qEd3OYn3uOlvouk7M659kuexoEjvcHxtxh8iwGaJduFJs3hJxvFfk5mbVdfdO+PFj7noyfutgfN+c/TbBO7kTDyyHjUkOFWW9PTQnOURsWBH7FMYRbwvzxSYdg3PE8W8URSfjwkwO1D7OFwViQ/LjCkE95dArPXt1XlEpZJXttE6M/TDJE0vcGy6Ky2otG5LHRlFppwqi30sUqAxNIqNGtPP80/GYoIFDxWZPwUHtzBkhuoGPMkUlgzdPkPosUXmLyFfbR5KcqTV39RbZ0AsP5/SnKt0ZDE4yf9y2i95xkNiIIo7FQsF540SgZyX7xd4uj4zT38wUlWxVvhCcdL/IrAZ8LY7PaGzCSWnsctyK6/CZWMxmkbWHYBluy9leILh4mShqVSLbjhDvnq8VfFmEc3EKvsnpq/GioIOxWjh3oeDNs5Ldt0qsb5zoHRsyRVU3fJIag2uSEwME0X+Ch5KTeZwn2oRq0RSvEg3zXK0L13QRiGrBT1vwHZ4WGb+pYHc3rEljjkq64SL4fXBC8imPGryKd7VkWYb+ghsbRaVH9wRvZ0GtaLJHaeHYHcVluFs0yP9mZU/9MED0g2twYxft9BUbsUjhOPfk4G0RbwsrdO1j6P54QFBRK1SyYOyMWJp+XcFK8QrXBj0587od/wC9LO5mlZk4cQAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle - \\cos{\\left(x \\right)}$" ], "text/plain": [ "-cos(x)" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(sin(x), x)" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAG0AAAAXCAYAAAABQcHxAAAABHNCSVQICAgIfAhkiAAABDhJREFUaIHt2WmIlWUUB/DfjG1mZKTRVGIGpUW79cHANtIR+mL0IShSQYUSKqOFsgyGUAsLso2gKMyibJEKgjBbrURaqLAyjBYyl4yWiRaRbPpwnsu8vHPv3Pdu0wzMHy5n5rnnnPec55znnOe8t62rq8swhhbaG5CdgB6sbIol9WEVdmFUAzrOEH7Ma4pFA4BGgvZ/40xcjjvxZwN6PsKLWIKDmmBXyzGUg7YMv+OhJui6Ax24pgm6Wo6hGrSJmIZn8XcT9L2PL3EFRjRBX0uRD9qror5fnFtvE72rR5SjargE69EtNnUTFmH/CvxtWIgvsBvb8ABG47v0yWJuknmmgr56/FiN8SIZBho12ZsP2o34V9T3bMbdjTl4BDdXMWCZ2MwT8JTY/La0vhb7lpF5ECtEkB7G0+jEugr807AXGyvYUI8f7yU6vaJnrUNN9uaD9imeEBs+K63dgutEKbqyysPPEidqK07GgmTQaXgZ56b/szg78W3BiaKv3ICTxKk7Msc/KunbrPIFpB4/Pkj0nP5dbAlqsrdcT1ssNqsLV2GpOCGzRDb0h7mJLsHOzPo/uD7Jz8/JzEl0KX7LrO8RCZDHUSIbd1SxpVY/uhP/+Cp6W4XC9pYL2g+iVB2N+7FB1No9BR48OdE3yny3Jek+Bodk1k9P9N0yMhtFwLMYk+ivVWypx49fMLaKXqLH9tTwebKAzsL27lNBwU+Zv+fhrwIPJXoSlU/BDpHJo/WeqpLMj2X49+Ln3FrptnhAAXtq9WOkYrfRr8WpKIrtBfkK2VsuaJeKBrhTzC4LRc8pgu5EO4RjeRyR4yNmLTgc3+T4R4iTtS2ztivRMfpHrX60iwrwbRW9cEEBnlpR2N58ebwQj+NznCJml/k4vuCDP070vDLfHYtxYlOyvaskM7WMzBR9E2uHyMhJ/dhRjx+TxC33k354WoWa7M0GbSqeF7W1U2zMbWLTisxm8Fiii3FYZn2EyKJ2PJqTWZXorXpLJewnxoQ8esQMOFYkQh71+jEl0Tf74WkFara3FLRTxZW8W8wppZ70PD7ETHE1r4YNWC5eJn8m5q/lIntnisvGXTmZt8VsNlFk2r0iwJtEj9mu721vTaIzcuuN+NEpeuhL1ZxsIuqyt11k61qRwTP07UWla3d+syvhJlGfv8JsMXe1i9M3Xfnb2wIxk/whZpLL8FriP1hv3ythjbi4zM6sNeLHaFwkNnBrFf+ahbrtbRvkv6cdJ0aF1SIRslgkyudkvX2xXlyN+8Rg/U6DulqOwfLCuENfWw4Ucwu8UEbmHnyP2xt89kiRAGsMgYBReU4baFwrTtJboq53iGv1OLyC58rI7BZvC84Xr7bq/U1tguipK+uUH3AMlqCtE025E4eKtyBbRMlaIep+OaxPn0awWbw6GjIYLEF7PX2GUQCDpacNowYMB20I4j+wJS2qs2Io7QAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle x \\log{\\left(x \\right)} - x$" ], "text/plain": [ "x⋅log(x) - x" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(ln(x), x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Isso é conhecido como integral indefinida, uma vez que não foi especificado o limite da integração.\n", "\n", "Em contraste, uma integral definida computa a área debaixo de $f(x)$ entre $x = a$ e $x = b$:" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACIAAAAUCAYAAADoZO9yAAAABHNCSVQICAgIfAhkiAAAAbJJREFUSInN1TtoFUEUBuAvGsQiaGGhhUKwEG/lAxQEEbEIgoiu2IqNjY0gWImPLW3EVyMYMRKxVCzEQlBQ0dpSG1FsBC2USFRIrsXMwjJ3N9nc3SI/DLNz/jNn/zlnHiN5nlsOWJGMj+MWXuMX+njQIM56zOHmAj4nYrw+TqXkaDK+gG2YwVdsbSACjgiLelzDbxIWOIOxKoc0I2exBWtwuqEIyPADryq4EdyL/O26AGlGXi7h5wXW4gAeCuVJcSby+2NfiTQjw+AQVuFRBdfDFdxQna1OhWT4jeeJfRTT+ILziwVJS7NUrMZBPMOfhLuEHdiL2cUCtc3IhHAK0tOyW8jCVbxrEqitkAz/8LRkK0ryERebBmojZCUO4wV+luxjwhXQE8rVL7XL0edOHF8vJrXZI/uwzmBZ/uJuzZydwr55gw9KZWsj5Bjm8SSxz6q4wiPyKOQ+JstEKuRobLAh9nswFb+/41zJ9y2+NVW+EFIh23EysW2ODT5HIbuwEde6EMHgZs2Ft6GujUe/LPZ1j1wdiviTKTHsqcnwHp+GnD+AYTdrrysBBbp4azrBshHyH7wWSz/x+n1cAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\frac{1}{4}$" ], "text/plain": [ "1/4" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(x**3, (x, 0, 1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nós podemos obter a mesma área, primeiro calculando a integral indefinida:\n", "\n", "\\begin{equation}F(c) = \\int_{0}^{c} f(x)dx\\end{equation}\n", "\n", "E então usar:\n", "\n", "\\begin{equation}A(a,b) = \\int_{a}^{b} f(x)dx = F(b) - F(a)\\end{equation}" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACIAAAAUCAYAAADoZO9yAAAABHNCSVQICAgIfAhkiAAAAbJJREFUSInN1TtoFUEUBuAvGsQiaGGhhUKwEG/lAxQEEbEIgoiu2IqNjY0gWImPLW3EVyMYMRKxVCzEQlBQ0dpSG1FsBC2USFRIrsXMwjJ3N9nc3SI/DLNz/jNn/zlnHiN5nlsOWJGMj+MWXuMX+njQIM56zOHmAj4nYrw+TqXkaDK+gG2YwVdsbSACjgiLelzDbxIWOIOxKoc0I2exBWtwuqEIyPADryq4EdyL/O26AGlGXi7h5wXW4gAeCuVJcSby+2NfiTQjw+AQVuFRBdfDFdxQna1OhWT4jeeJfRTT+ILziwVJS7NUrMZBPMOfhLuEHdiL2cUCtc3IhHAK0tOyW8jCVbxrEqitkAz/8LRkK0ryERebBmojZCUO4wV+luxjwhXQE8rVL7XL0edOHF8vJrXZI/uwzmBZ/uJuzZydwr55gw9KZWsj5Bjm8SSxz6q4wiPyKOQ+JstEKuRobLAh9nswFb+/41zJ9y2+NVW+EFIh23EysW2ODT5HIbuwEde6EMHgZs2Ft6GujUe/LPZ1j1wdiviTKTHsqcnwHp+GnD+AYTdrrysBBbp4azrBshHyH7wWSz/x+n1cAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\frac{1}{4}$" ], "text/plain": [ "1/4" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F = integrate(x**3, x)\n", "F.subs({x: 1}) - F.subs({x: 0})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A integral é a operação inversa da derivada. Se você executar a operação integral seguidamente da operação derivada em uma função, você obterá a mesma função:\n", "\n", "\\begin{equation}\\left(\\frac{{d}}{{dx}} \\circ \\int_ .dx \\right)f(x) \\equiv \\frac{{d}}{{dx}} \\int_{c}^{x} f(u)du \\equiv f(x)\\end{equation}\n", "\n", "Por exemplo:" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACsAAAAYCAYAAABjswTDAAAABHNCSVQICAgIfAhkiAAAAtRJREFUWIXt1l2IVVUUB/DfTKID+QWKDiIEYVBEKmagYCpRoyaiMz6Egij4geWDJQZqiRMYGPYg+qYvfj2JpFKiffmgoC9SWioGSoRCmmhYZCKoPax97Hg89zrOuT4I/uGy71l77b3/e+3/Wns3dXZ2elLQXHH8EvyEv9LvGKZWJVULVclexAq8itE4hL0YXnHeUvSoOH5f4fsjvIuxIuINRdXI5vEMZqE3jtbwGYzb2JizfYbvcQH/4hp+xBoMyA+uGll4RWi1BX9jBn6u4TtdBGhPzvYBfsC3+APPYgw6sSj9v9Aosr9gJPpjJrZjIk6V+LbjKg7nbH1xs8T3U6zCSrzHgzL4BnfRUbA3YWvqW1fou4VzOJ4mPoH3SxbvhzfwpZBChjKisCu1L2SGItkPcQdrhQYzfI652CKyvx6ahSSKmIqe+OIh4zNMS+29RC3K4CR2JGJzRDRXYZnY6eKC/zrsF5rqg9lCAmW1th3/CG2WYblIzn6iDI5LRO+dZJlmP8Y7QuC9hXa+TuTvFHxbsTO119PkU5J/Hi2YjANqH/tyUS0yHMQ8XMkMZaXrIjbgOWwSZahDaLOIecmvFwbhzRKi0CY2vqekL0OryI3WtN7zooSNqkeW3G4wHzfqLNIVtIvN7u+C72WxqTZRZ7dnHWVkZ4mEupS+l1aiGYk6TVzF1x9h3G84g5cxkAfJvo1tOC3u97NYgBcrkB0vIlRPArUwJLW3uZ/sOOwWmm0TUlgtkrBYWx8FHSIxi+8IIgitJfZmkdiDRM78yf/VYAS+Esf0Fn5P9t2i2E/H6zjSDbIz0oKXS/omY7240c6L220wJogEu4SF+R0MExl8F5PSoDxWpnZ9N4i+hqFqS+A7bBYy6RCX0kzxmPlE6PVM5txDXJVlR5GfsKkbRIkqoA7ZU+IB3yU08olYhnZxK/7aiMka8eqqh5caOdnjjmxD8ZTs48J/cCeQxNYNl5UAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\frac{x^{3}}{3}$" ], "text/plain": [ " 3\n", "x \n", "──\n", "3 " ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f = x**2\n", "F = integrate(f,x)\n", "F" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABcAAAAWCAYAAAArdgcFAAAABHNCSVQICAgIfAhkiAAAAXZJREFUOI3d1LFLlVEYx/HPNUddmvwDHArEdjOpRAMXwU2oDHQoEIQouIrBHRIEFUTBxaVoi7brktgqgg42KA26CQoXhBoiotThvMnL8VW7vrr4wOF9z3Oe8z2H5/ecp1AqlVyV1eTcP4xV/EAFZTRdFvw+5tCCh/iDJdyE2pzwR9H8Cb7jLsp5bx5bvZCNffKnJbZprGOF/GlJ2wTacA9/OXnzRRyiJ/IX8C5ZG88AT+Ep2rH1zxnDX+MAb3Ej5Z9EH+ZRjPbM4DEeYDO9EMO/4gNuC8rDCF7iI55H8XN4hl5BxIZk1GXBYRS/UMIgxvA5Oewgin0hVMgX7KbGK7IF3RFUL2IWy4IGvzNiCxm+YzutFCup/378PAtSDbxXEHAvmQ9dBJwF78J7bKAZ3zCAW3nhrfgk5LxTSM0bQZes2v5v+B0sCE2nQ1BcctgauoWXVzW8USi1Q6HLbUcxw8l3olp4rfBcG86IWXJOyZ1ml90Vrwn8COjER555uTirAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle x^{2}$" ], "text/plain": [ " 2\n", "x " ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(F,x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Alternativamente, se computarmos a derivada de uma função seguida de sua integral nós iremos obter a função original $f(x)$ e mais uma constante:\n", "\n", "\\begin{equation}\\left( \\int_ .dx \\circ \\frac{{d}}{{dx}} \\right)f(x) \\equiv \\int_{c}^{x} f'(u)du = f(x) + C\\end{equation}\n", "\n", "Por exemplo:" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABsAAAASCAYAAACq26WdAAAABHNCSVQICAgIfAhkiAAAAa9JREFUOI291U1IFlEUxvGf6bJdi9pFOwPJbYsCI0pskWCEtDAXugiCiiIqURii4IUEC4MCXRTtomjRB5mhRNEiCgoqIgoiBKUiaKPQp4t7heE27/hR+MAwh3Oemf/MvWfO1GRZZrm0IhevQjdu4B1m8A2P0JV4l6S6XLwbFzCJcXzEarRhGC3R8+d/wN5iJ27jdy7fgyfYFcHXlwrLL80YbiYgmMLFGDcltXvCm7Yl+RpcirVKEaxMP+L5Z5I/Gh/uFGpz+X50YgjHFwOrw94Y301qL3AF69ERcz04jKvYl95oPlXQgDsYKaj3oh0ZVuJ09HVItmS+NzuAI3iTe/JUEziLtRjEY2EPv6fGMth+nMNrbMHXEu/nXNyF6SJTNdghnMfLCJoqAe0RGmLOc7CasQh2DAN4HkGfSkA7cBmvsEFY7m7ULwTWJzTEM2zFlxLQJlwT9my7sJR9QtNVii7Id2MnTuIXHgrNkeqD8LE24pYwO7cJI06EP0UrNsf7FMLWxXOtsGdFeiAM5hFhOjTjfeI5gVGcwcZqsCweC9Gaktp9YVz9pX/+bSxGywqbBR3kXQn4g2e4AAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 2 x$" ], "text/plain": [ "2⋅x" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f = x**2\n", "df = diff(f, x)\n", "df" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABcAAAAWCAYAAAArdgcFAAAABHNCSVQICAgIfAhkiAAAAXZJREFUOI3d1LFLlVEYx/HPNUddmvwDHArEdjOpRAMXwU2oDHQoEIQouIrBHRIEFUTBxaVoi7brktgqgg42KA26CQoXhBoiotThvMnL8VW7vrr4wOF9z3Oe8z2H5/ecp1AqlVyV1eTcP4xV/EAFZTRdFvw+5tCCh/iDJdyE2pzwR9H8Cb7jLsp5bx5bvZCNffKnJbZprGOF/GlJ2wTacA9/OXnzRRyiJ/IX8C5ZG88AT+Ep2rH1zxnDX+MAb3Ej5Z9EH+ZRjPbM4DEeYDO9EMO/4gNuC8rDCF7iI55H8XN4hl5BxIZk1GXBYRS/UMIgxvA5Oewgin0hVMgX7KbGK7IF3RFUL2IWy4IGvzNiCxm+YzutFCup/378PAtSDbxXEHAvmQ9dBJwF78J7bKAZ3zCAW3nhrfgk5LxTSM0bQZes2v5v+B0sCE2nQ1BcctgauoWXVzW8USi1Q6HLbUcxw8l3olp4rfBcG86IWXJOyZ1ml90Vrwn8COjER555uTirAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle x^{2}$" ], "text/plain": [ " 2\n", "x " ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(df, x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "O Teorema Fundamental do Cálculo é importante porque ele nos diz como resolver equações diferenciais. Se nós tivermos que resolver para $f(x)$ na equação diferencial:\n", "\n", "\\begin{equation}\\frac{{d}}{{dx}}f(x) = g(x)\\end{equation}\n", "\n", "Nós podemos obter a integral em ambos os lados da equação para obtermos a resposta:\n", "\n", "\\begin{equation}f(x) = \\int_ . g(x)dx + C\\end{equation}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Sequências\n", "\n", "Sequências são funções que recebem inteiros (números inteiros) como input ao invés de inputs contínuos (números reais). Uma sequência é denotada como $a_n$ para diferenciar da notação da função $a(n)$.\n", "\n", "Nós definimos uma sequência especificando uma expressão para seu $n$ termo:" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACEAAAAUCAYAAAADU1RxAAAABHNCSVQICAgIfAhkiAAAAbpJREFUSInN1b1rFGEQx/FP4kssEi0sTGEVTDAQ8DyREEQLQREkxA32YmkpWFpcZynoP6AgdiaoRMGAooE0GkVTWIiIYiNooUQQwZdin43Lk+f03D3QHyxzO7PP7Hdn5nmup9Vq+dfqje6P4yIW8Ak/cKWDPNvwDReqQKyP7s9iF1bwFjs7zDMl/6DZKhBxJU5jBJtx6i/yZPiAB92AuIcX8jZ0qi04iJvylhQ6FPKcwxiu4p28yosYbwdRRUexETORf3ewI3iIflzGfUzgBgZYOxNVlOEz5iN/M9j92IfHpdg1TKOBhbqV2IQjuI0vUayoxMkIAJ6X1tdux2F5meNd0Y8deINbiXVDwb7sBkSGr5iL/I2Q+470kDfxEa/qQqzDJO6GhPFLYCmxbgDDeFIA1oE4gK3SB1QxD4/axHrLgHUgpvEd1xOxprxNzxKxPcGuDmu8RY+FCwaDncCl8Ps9zpSeXZQfQGX1YRTLAaQdxGolYogGTkS+Ib+m+XWA2IvtOJ94yRg2SLeigFiRn8xJiFa4/qQs2NQ8LKHnN2tHY0fVmcjwVNhidVX12F7zNXXUjT+w2vovIH4Ct8lQWJ1iBoUAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\frac{1}{n}$" ], "text/plain": [ "1\n", "─\n", "n" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = Symbol('n')\n", "\n", "a_n = 1/n\n", "a_n" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACgAAAAUCAYAAAD/Rn+7AAAABHNCSVQICAgIfAhkiAAAAeNJREFUSInN1r9rFEEYxvFP4s8i0cLCFFZBQwIRzxORIFoIiiCiG+zF0lKwtLjOUtB/QEHsjGhQQUFRIY1GUAsLEVFsBC2iEUTQWOys7g1z3mWzgTwwvLfz3rz73Xfed3b7Wq2Wlaz+6PoELuEJvmIBV3uIsxm/cLEGpoUwwOrIeQ47MI+PGO0x6DH5w96oAbBNcQbPYAQbcHoRcTJ8weOauP4qBnyIN0op7kEbcQDT8m0udDDEOY9xXMMn+e7MYE8VwCo6grWYiuZ3BjuCpxjAFTzCBG5hsFvwuAarKMN33I/mm8Huw148L/muYxINeUMuG+B6HMZd/Ih8RQZPRXDwurQ+1n+7eLE6JN+6uHsHsBUfcCexbjjYtwnftzoBM/zE7Wi+Ia/ve9IN18Qc3iV8c3UBrsJRPAhBYwCYTawbxDb5kZSCb4u1FMD92CR9OBf196yDr18aHraXL5ZyzEziN24mfE351r9M+HYFGzdOoVGlN1icweNhwFCwE7gcfn/G2dJ/Z+SHb1nrMIZXAbITYKcMFh3elwJs4GQ0N+xf170PgLuxBRcSNxjHGuntLQDn5W+srooBW2F0UxZsqv5mhafvoLEusdvWVq3BDC+kj4laVbWLu2WhNtXxsbCsWvGAfwCrQVp6NiKP/QAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\frac{1}{n!}$" ], "text/plain": [ "1 \n", "──\n", "n!" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b_n = 1/factorial(n)\n", "b_n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Usando as **list comprehensions** em Python, nós podemos gerar a sequência para alguns gamas de índices:" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[ \\tilde{\\infty}, \\ 1, \\ \\frac{1}{2}, \\ \\frac{1}{3}, \\ \\frac{1}{4}, \\ \\frac{1}{5}, \\ \\frac{1}{6}, \\ \\frac{1}{7}\\right]$" ], "text/plain": [ "[zoo, 1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7]" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[a_n.subs({n:i}) for i in range(0,8)]" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[ 1, \\ 1, \\ \\frac{1}{2}, \\ \\frac{1}{6}, \\ \\frac{1}{24}, \\ \\frac{1}{120}, \\ \\frac{1}{720}, \\ \\frac{1}{5040}\\right]$" ], "text/plain": [ "[1, 1, 1/2, 1/6, 1/24, 1/120, 1/720, 1/5040]" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[b_n.subs({n:i}) for i in range(0,8)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ambos $a_n = \\frac{{1}}{{n}}$ e $b_n = \\frac{{1}}{{n!}}$ convergem para 0 como: $n \\rightarrow \\infty$.\n", "\n", "Podemos confirmar com o método **limit()**:" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAASCAYAAABrXO8xAAAABHNCSVQICAgIfAhkiAAAAQ1JREFUOI2t0k8rxFEUxvHPyIoYNlYWIjNvQP5kZdRk6Q1Y2FIsbJSFsbCmKZaSd2BrY0XeAUZTStlZSJINFr879XPnTiLP5qnT+Z57bs8p1Go1f1FXojaMIzziHffYx2C+qTuCxnCJIZziBpNYxwJm8ZR68TBAa1jEJirYQxm7qVVHUQ2rHUQDt/GKJfTGYCX4GT4i8AUX6MF0DJaDN6R1F7wUg8Xgzx3AVn0gBn9SIfhnDLYmFqXVn+/Lg7fBSx3A8eCNGDwPXtX+hT5Z+G+4isGmLIoRrEbgjiy/E1mebSe3Iju5OuZxjSnMhRW3Wo3xSk1M4DgAG7L7rWNGuNPUi/CA5UT9m36T4/+AXwFDL+NOlWa/AAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "limit(a_n, n, oo)" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAASCAYAAABrXO8xAAAABHNCSVQICAgIfAhkiAAAAQ1JREFUOI2t0k8rxFEUxvHPyIoYNlYWIjNvQP5kZdRk6Q1Y2FIsbJSFsbCmKZaSd2BrY0XeAUZTStlZSJINFr879XPnTiLP5qnT+Z57bs8p1Go1f1FXojaMIzziHffYx2C+qTuCxnCJIZziBpNYxwJm8ZR68TBAa1jEJirYQxm7qVVHUQ2rHUQDt/GKJfTGYCX4GT4i8AUX6MF0DJaDN6R1F7wUg8Xgzx3AVn0gBn9SIfhnDLYmFqXVn+/Lg7fBSx3A8eCNGDwPXtX+hT5Z+G+4isGmLIoRrEbgjiy/E1mebSe3Iju5OuZxjSnMhRW3Wo3xSk1M4DgAG7L7rWNGuNPUi/CA5UT9m36T4/+AXwFDL+NOlWa/AAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "limit(b_n, n, oo)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Vamos supor que nos é dado uma sequência $a_n$ e nós desejamos computar a soma de todos os valores na sequência:\n", "\n", "\\begin{equation}\\sum_{n}^{\\infty} = a_n\\end{equation}\n", "\n", "Séries são somas de sequências. Somando os valores da sequência $a_n : \\mathbb{N} \\rightarrow \\mathbb{R}$ é análogo a obter a integral de uma função $f : \\mathbb{R} \\rightarrow \\mathbb{R}$\n", "\n", "O método análogo para integrar para séries é chamado **summation:**:" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAABHNCSVQICAgIfAhkiAAAAPVJREFUKJGl0rErhVEYBvDfh0GWu7CabPgD1E0po5DJ4A+4I4M7fykLA5PNxmJgwiBfKQOSlBgMymYgo+1eg/er27mfDJ46w3nO+z7v85xzsjzP/Rc9FdwSXvGFPQwEP4VbfOIUw7+JjGMbq5jDBI4wiuMQmcczDpFBXyKygjUcxH4WdzgPkUbwF7gKd0XqZCwKSjxiF4NoJrWX4bArToZ2wr2gF0MJ3y7jpCJPqHfsa1jGOzbKpsBkOO26ky2cRdMb1v28VAPXEW0HC+hHUeXkPiZv4gQf0fCAmZh+g2ksltFTJ7AfK0WBkRjc6jyo+mx/oZUS3z4DMu2erq5tAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\infty$" ], "text/plain": [ "∞" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a_n = 1/n\n", "summation(a_n, [n, 1, oo])" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAPCAYAAADUFP50AAAABHNCSVQICAgIfAhkiAAAAOhJREFUKJG10r8rxVEYx/HX917KH+BOymShuxmUFJM/gDuw2Cl1F4npuyjrXYzKpPwYDFIyGSw2q81isVioSzI48nT7HqR8lk+d53k/T59zTlGWpb+oljmfxxke0MUtNlHPgXXs4wgjOMQO3rCF3RzYwQK2MYpltNHEFZYw1gtOYAUn2MBrqL1gL/TpC8VVFHhCWZG7mbzoBWeTL1ZAUXcRHEADl5j+AcRXxiL54G+gCD7jxseNzWV6p4R3jBnXcIpjXKRBNQxhHP0YrgLPMYn1NH0Gj7hPgw7i+gjCNVrfZftU7q/+H/gOO4Ykuvdadj4AAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle e$" ], "text/plain": [ "ℯ" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b_n = 1/factorial(n)\n", "summation(b_n, [n, 0, oo])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "O coeficiente na séries de potência de uma função depende no valor de derivadas de ordem maior da função. A equação para o termo $n$ na série de Taylor de $f(x)$ expandida em $x = c$ é: \n", "\n", "\\begin{equation}a_n(x) = \\frac{{f^n(c)}}{{n!}}(x - c)^n\\end{equation}\n", "\n", "Onde $f^n(x)$ é o valor da derivada $n$ de $f(x)$ avaliada em $x = c$. Uma expansão de série de Taylor em $x = 0$ é chamada de série de Maclaurin.\n", "\n", "Não apenas nós podemos usar séries para aproximarmos números, nós podemos utilizar elas para aproximar funções!\n", "\n", "Uma série de potência é uma série no qual os termos contém diferentes potências da variável $x$. Por exemplo, a série de potência da função:\n", "\n", "\\begin{equation}exp(x) = e^x\\end{equation}\n", "\n", "\\begin{equation}exp(x) \\equiv 1 + x + \\frac{{x^2}}{{2}} + \\frac{{x^3}}{{3!}} + \\frac{{x^4}}{{4!}} + \\frac{{x^5}}{{5!}} + ... = \\sum_{n=0}^{\\infty} \\frac{{x^n}}{{n!}} \\end{equation}" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADIAAAAWCAYAAACCAs+RAAAABHNCSVQICAgIfAhkiAAAAslJREFUWIXt1k2olUUYB/CfVy0XigvxYxEUUqFgXr0hEn0sgiwSP87daAuRqEU7KUgqEu6iKLBAbNHCTRG4CFNSU9SLoAtdqKWSGKgEIqRIi6smFX60eObF1zlzOp57ThHSHw5z5nmed2b+zzzznxkzNDTkfkBfl98/gttYjj34DefwfJfjdoxuifSn9k2sT/1T+LRF/HTcxMYu5yUSeLvq9ILIVazEMM7iG0xtEb8szbmty3mb0AsiO/FLzTZTECqhgV9xsMt5m5AT2Su2azCzj8EXyfdxzd6Pw1nsfPxQmGuyODs7RHlVeCGN+xHmYDMu4RoOYeFoiLyNW/gAY2v2T7Aam/BOsk0U2c8X3YrIYjyArYV4eBxH0rhf4gCewnZM6pTICXyF2ViVbO/hLXyNN2qxc0Umj9dsU/BQCyINoWr7MvtAap/F01iKtYL4VkzDvHZExhVs72MFhkR2PhTSukrsVoV+nBElUGE+/sDpbMwJeAm78Xvmq3bkVXyf+apxJhTW2Va1LmADHsZnok4H8WcW9zlmZbbhNOmNzL5IJCVXq4l4FOexq7CWmak9V/BdTT+UdwQu1/6/hust4u4VDZGI7zL7PJHMSmRyDGAEPxd8I9rsyCvicF9M/TUdLbkZY7EE+9Pk+ULhWOG7SXhMnLcSyRFcqTo5kZeFYpwSh/knvK65hDrBc0IESpdgdT6OtvD1KZOEJ9IPdxN5BlvEGVkkymudKL/63dEpBoVIfFvwDYiSO1nwPZnaXAAqzFJLcEWkuqFHxAVV3dRbRLaWCXkcDZYLwbiU2R8UMv+jZiHhDpFWO3JaTR37hGrsEXX4omaFeDe16+9x4XUsEPdKqazmYLxyWRFErgmJb4tx4l00429ihsUTZTRopLZE5FibcWe3Gfuub7t9NLZDQ7wWSvLZU7S6R3qFdlntGf7pHfnX8D+R/xr+AoqokQSSgDi+AAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\frac{x^{n}}{n!}$" ], "text/plain": [ " n\n", "x \n", "──\n", "n!" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "exp_xn = x**n/factorial(n)\n", "exp_xn" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAC0AAAASCAYAAADPNlfiAAAABHNCSVQICAgIfAhkiAAAAflJREFUSInd1k2ITlEYB/DfMKLeHQtWGBYUwtIGk5WUfO58JBZKiUaRqJeVhUIUSlFjKwv5WvA2ZlZKSZKYzJCiaZJhZOFjLM65dd3u+857m2vx+tfpnPPc5znnf55zn+c5bdVqVathUma+BefRiy8Yw/U6tjOwBzfRj+8YQR9256w9HgbjfnntY1qxPWN4DEsxivdY2GCTrbiID6jhHWZiE65gbdQZK0B8BGdz5KONSB+MZPuxKpKph1dYj9v4nZIfxWNsFg5wowDpz6iOp5S9whpea847D3HL34QJV3kpjlc3sU5hZD1dFn7E/mdBu6nYhtn4hmd4hF9ppX9Buh074vheQdtZ6M7IBrALPYmgaIQ3g1NYjDu4X8DuKtYIxCtYgsuYi7tCgkD5nt6PLrzE9oK2JzLz59grZI4uIUA3Uq6n9+EcXqATn0paNwnqlYmgLNIHcEHwTqdMMZgghmJfSQRlkD6MM3gqEB5qrF4YK2L/JhFMlPRxIfCeCEE03ITNfKHSTknJFmF6ju4c4QZJPSeygbghNkIUE056LY6HcSiOd+KkkEN7hSDMYjBlm+BBJNMRvxPK/RGhuA3gq3C4dZgmZKLT9Ugvi2TSmBcbvE2R7oj9ZOGfzkNPDuk81LAAywUnVYSS3ifk7W6pKt32PzxNWwItSfoP7yht1GrfU+4AAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle 12.5$" ], "text/plain": [ "12.5000000000000" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "summation = exp_xn.subs({x:5, n:2})\n", "summation.evalf()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Em SymPy as séries de função nos possibilitam uma forma fácil de obter séries de qualquer função. \n", "\n", "Chamando **series**(expr, var, ar, nmax) irá calcular a expansão da série da expressão próxima a `var=at` à potência de `nmax`.\n", "\n", "Por exemplo:" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWEAAAAYCAYAAAArpUxqAAAABHNCSVQICAgIfAhkiAAAC0lJREFUeJztnHu0FVUdxz8XbgoiQaFGanK5pYiP0AxTS5SHYGBLLkkrH8g1tCwTjTRCsC6ISivevpMCNFdWoiBy6WJCCFKZmpWAUNCNSEAIwwshhNz++O7NHebMnvOaOedwme9as+acmT0zv/Pde/9e+zenrKamhgQJEiRIUBy0KLYAEeMm4M/Au2b7LTCgqBIVBzVAo2/bXEyBmjnqSeW7EXigiDIlKBxaAncBfwfeM/vxQHkmF2fU6BDCRuC7wF+BMmAoMBc4BynnwwlrgIs9398vkhyHA7qjiWhxBvA88MviiJOgwBiJHMChwF+ATwKzgD1IOYeiuXnC84BapITXAqOBBuD8YgpVJOxD3q/dthZXnGaNrRzM9WXAOmBpMYVKkBaPAW8DbfK8zwXAs8B8FBXZz5/xtDkHRUfD/Bc3NyXsRUvgSuBoYEVIu48gL3G67/iFwBxgE7Jom4BFQP/IJY0HlcC/UGj0M6AiTfsgHq4A7gOWofROI/BTx/UdgOuBZ4C/AbuBHcByNPDCxtqJwE+AtxDX9cBU4ENpZC5FHAFcg35Po6NNENf1BKc00qWS8uVuiOc518f0jLhRCdwN/BHYTpOMs4Bujms+jfppArArz+evAHoBp5rvp5nvtZ42r6KofDzSSQfQ3NIRAGeiXHAr5AUPRCGCC5cjBfGM59gYFEZsA55DCvgY4GwU4tdS2vg9mlxr0YQfhTg5HQ3SILh46AbsRKmeUwOusxgMPIS4WgJsMM8eBMwAPm/a+BXTx9EgPg5FMm8C5wK3AJcCnwX+Hf5zSwoDgfZIAbgQxDXIaE0NaL/TcZ98ufsYMrI78SmGCJ8RJ8rQGB2NjN9SZPR3AWcB1wJXA19DRsSLe5Bj8VAEckwA2gKrkHEtR0bhQV+7e9HcHG6erx/RDKsjjgBOQhPhi8ANSHG+4Wi/EOX0rHcyGPgF8GukQBp87T8A/C8HuaqBmUBP4Dc5XJ8P2gDrgR8Akx1t/DyAZN2IPNuLkHJ9AnkQfvQyz1kA7Pcc7wi8jCb8FSi68KIO6IsG5n2e45OBbwGPADem+X2lhDpgL/CFkDZBXNebfUWWz8qVuzKUt+4MPA3chubKjAifEYZq8psPZUixVgOvIGW71temN/Ar07Y78pQBTkHGZAbw1Rye7ceXgInAd4CVyABMA24Hfuxruxo4Cnnv70NqiLgIeSqDfMfLkGVvRFq/UMhFnr1IabyCPMDXgVsd92+HlMd8REgLpKj+C1xFqgKG3BRwFMinb3YhK32y47yfB4slKL/uCqu9WGyu3+87vhl42Hy+2HeuEk3welIrCb5v5B5C/jm7bJEr152APqQqMi9cXGeLfLkbbuS4Dnc4Xqr9A1qAr0Zh/oWkKmCAF5Cn25KDdcBXUF/+3HHvbPt/ktmeRFH348hI3RFw7yeRk9jHHvAr4dvRJBrPwau9E9HK36PoxxcKUcjTAqUmgjAAec5Pm+8XIM+gFnjHnB+JQq9iL+7lw0UrlErY5Djv5yFqWMO1z3e8l9kvIlV5NwAvIa/hvJjkciFXrq9DCz0LQu4dxvWRKMq4A425nr7ne5EPd12REpkGvBgia6n2T2dgLCoHG2z2LtSZvXf+9kEG8HeOa7Lt/6NINaguA/uS2V9iD/iV8J+QFu+KLBxoQIxAIXqhw8Js5ZmArGIFyg3fi7yvJxz3r0LW/HnzvbvZbwFeQ/ngCShPtwLlnI7N/efkhWy4mIjSB53RCu1TyFuZ7bi3n4coUY5yc6DQ0IsuZh/kxYC8cFD4WEjkMg9aICU8m1Rj40UY1x3Nc+9GY24x4uCigLa5cldunrGBYE8timfEjdtQWvARtPAchn+afTuzb4PSBatxRwDZ9v98pJQHIN1TZdrODbj3H8y+hz0QtGI9BlmWGuCbaEDUGWH81rAQyEaejmj1fg0KRbqjBaGFAfdthRYWFtJkSY8z+xuB1shitkV1n3WIuGLWfmbKxYmoImIN8rj2IG/lHwH3DOIhSkxA/NXS5JVY2Imxw3GtPd4+BrnSIdt50AeFmf4FIC/CuJ6JcpgdkaI4EymZCtPev8qfK3ffQwvM1aiCJQyl2D9lSMmBu1LHiw5mv83sT0DerSsqtMim/29Gjs6DSLlPQt7y6ID77jD3PckeCFLCG5EV7oQS8StQbmRvGqEhvMwmaMuExGzkqTbtjkQKtQ+pE9+iL1oR9q5Q29CjDC0ivYBWjleijt+IvJJ0qYl6Un/rTHNuScC5WWnuZ5EpF18Gjkdh7wlogXKV455BPESF4cC30SLIkDRtg1Bm9uly0vUUd9yBQvYy3F4jhHM9Fnm+W9CaxBvIGZiMHIKaDGT2Ioi7c5FHNwlVy+SLfPon1/nwUbPtQ+s96WBTJa+ZvVXK76S5Lpv+b0A5506oryoRzy6nZjuqtgLcJWrewv5haFBkgnUhDw7CWxm2y1WeMFQhQr35O9sx61FI4sVupNCHocEcNoinkuodnIVKk2bTtBJukclgsoiaiyAeosBNKOe4Cnl4QaVx1pNqF3AO4IO+di4cKuMuF64fRoash+94ttzZNMRa4M4Mnx1V/0Q5H6zyaiA87QMyElebzzYHb71/1zqRF3HoHZCiPhCFBCnhK1FOcTMKjW4Bvp7hzXvnK13E8rjQEpUQLebgAbTG7P/juM4q6dZp7h9U61mNBt0sci9Ri5oLFw/54lZgCvLmeqPFqiBYvl05RVvNEeZdwqEx7nLl2nLnr0DIlrujPW1dButRs01DfRhV/0Q5H+zcbI8WxMIU41WoNn41qnGGJj47BF7RhDj0Dij70B5PLtufjuiPLNNK9P7zm+gtmrAi/TgRlzw9UCf4w8IXkXU9GYXyfpxh9vV5Pj8XxMGFi4d8MBIp4NfR6r5LAYNCUVCY7h+LbdGLALtxr2LHhVLi2qa+1vuOZ8vdHlSzGrTZ+tnl5ruN8kqxfzagN0HL8FQYBOAUlKPdh/rO5nE3IQ+3i+M6iFcPdkGyH/D2vcR+DiWXNyLSt6KwpZzC1gYXQp5BqFPm+Y5vQ7WD7dAChheXAP2QF+Nf5Y8bcXHh4iFX3InkeRV5p9vCm7MO5VIrUPrCi7HI+3uM/F8rzQbF4Pp04MMBxzsB95vP/jx2ttztRookaHvWtJltvtv62VLsH5CRB+XLjw84fxkqBWuDXkDx/m1BI3K2jgE+EXBt3HrQ5qitgTuQjuiGyrF2IGVjVw6fQi89XI5Kv5ZFIEQmiFuegahjtgScG4HKukYj7+VlNBmqUO3fDbjTFXEgTi7CeLDnB5rPHc3+fJoWTrahciFQ/eQ4xNEytCjnRz2piy7fMDJMR4p7NeK/J01/wlQoFIvrwajEaQkKUxvQ68IDUO6yFoXGfhSCu1LqH4spKKd8DfJS5yEP+VjknZ+G0ghVqHzMjzlosboferHLohB6sC+aIweMcTmyBnXIQvRD1s+LUaim8YcUpig7bnm6oxKuKY7zb6NBNgZ14nloUixAdceFDL3i5CIdD6CBPtR3rNJsoJI3q4Q7m73/7SQvlpKqhNehP1MZh8q3+qPBPx15W67/uogaxeR6CQpTz0ZGrg0y9MvRYtrjBFcgFIK7UukfL/ajapu5aMHsUpRn3Y7y2CNQWuVdx/VzkDG8lqY3AQuhB9shY/wcTfXLzfK/I9LhHkRoJekLvZszEh4Kh4Tr0sMo1C+foiknHjduRsarBx5vujn/laULVaj87HCfDAkPhUPCdelhCkphjCvQ81ojxT8HXzqjOf6VZTp0LbYAJYKEh8Ih4br08B5KafRE6Z+4FxcrgB8R8CLK4aiEEyRIkABUJRH2B0ZRYjWOtx4Px3REggQJEpQMEiWcIEGCBEXE/wEy+sU1aEH+GAAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle x - \\frac{x^{3}}{6} + \\frac{x^{5}}{120} - \\frac{x^{7}}{5040} + O\\left(x^{8}\\right)$" ], "text/plain": [ " 3 5 7 \n", " x x x ⎛ 8⎞\n", "x - ── + ─── - ──── + O⎝x ⎠\n", " 6 120 5040 " ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "series(sin(x), x, 0, 8)" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUgAAAAYCAYAAACY7WRwAAAABHNCSVQICAgIfAhkiAAACfBJREFUeJztnH+0FVUVxz8XXiWiPVrYD/sh8DIMsqBflqkIomhSySOp5Q/wFRml+TSyDBB7oBAtwwdUmBr5sB/LWiIgimYp+QMykaBCMJPFi8hngSQigQW8/viewx3Onbl35r6ZN/fy5rPWrHNn5szcM/ucu8/e++y5uaamJjIyMjIyCumWdgMSYBKwGngZ2AYsA05MtUXpMxloB76fdkOqiGOBhWgM7QH+DJyeaosyyqE7cD2wGdhryhuAmjAXh6pUZQwF5iMlmQOmA78BBgI70mtWanwUuBT4U9oNqSJ6ASuBx4GRSEnWAf9Ks1EZZXENcDlwCZrk3ge0AK8ixVmUw1FBnu3sjwV2Aqcga7IrUQv8DBgPXJdyW6qJbwBtwDjPsc0ptaWrcgdwDtAP2N2B+3wMuIf8b7/VfP6Ip84HgaeALwALvBe7Lvb5wPeAx5CL2g78tAONqwSORs8ZZD2+GdgPzDP7vZGgFgPPIfdqJ7ImxlNdYYlbgbuAh0PUTUoOY9E4ajf3qwZGAU8AP0dW4zrgK8gj8cOVXQP5Zw7a9jv3KFfebwd+DDyPrKJWYA7whlBPmjx1wAxgLfoN2ja2AIMCrvkQcDEwi44pR4BVwBnAu83+QLO/3FNnDbAEud5HeS92LchrUaNfAbZ6blrNzEED/ImA8+ehwbfY7I8BbkYWxApgC/oBjAZ+BHzc1GlPrsmxcClwPFJQYUhCDu9AE+4rOAOvwqlDblkz8kgGo+doB37gU9+V3TpgWsC9T0M/0Pud4+XI+51IAbwJWAo8A5wEXImsr1OAF0s/biLkkD6ZArwWeAQp+91InuOAi4AJSMF7mYkMtJtjaMcsZCRtQJNSDVLY85163wZ+DzSa7wcKFeRXkWJ8DgWkV8TQwDS5ERiCBqU7Y1vq0SB61Ow/C3wKuA844Kk3GXgS+DQatIsitqUBuB0YBvw24rVROQF18mnAf0NeE7cccuh5XwTuBq4O3/zU6Yasiklmfy3QHylNPwXpym6d2fz4nSlvdY6XI+/5SDk2IgVuuQn9lmcAXwpoRzEa6NhYzSGl14Bc14vQ83kZDjyA5LDWbCA5n4kmhT1lfLfL+eb7LwSeRsp5LgqZeN3pJ9EEMwH4DkZfuGb7CuCvVJZ19CBqz2jneA6Z6e1olnCZjWap4Ujh+1GLZvNl5BXow2b/gFP3BeCH5vPQsI2PkShyOBk4BlgP7DPb6cBl5vPrnHskIYdGc8/P0XE3qaNEHUNt6MfkZQPQx+fefrIL4kS0aPYPpAi9RJV3HTACuauu0v4WkvlYoGeJNiXBN5FyXIMmaVc5AjyELMTuwFWe459H/fKLgHtH7cvZZrsTLdL8BE0gk33ufSdwHFLQQHXE076OBs0NSJiW76KVqdtQh3iZh2IYw9DADmIkMv/vDtmW/5lyX8j6cRJFDkuA96LZ0m5PoQEwmEKrMm45DECDdC55qypNoo6hlcgK99If+JvPvaPIboIpF1BamXrxk/cZpnyQQqW6Cz3DkUghdyb9UHhhLwoJ7C1S91emPNlz7Ewkm6CQWNS+PJJCWQfJfqUpz7IHqkFB/hFp/QHk42mTgYnALyl0Ieaj2esCFBR+i9n8YmD1aKb9dYh21JBf1XwgdOvjI4ocXkLWo3fbjeSxnkIPIU451Jh2bsF/lk6DqGOoGSmWKSiOOwZZxEHudRjZ9UCT9gHkPoYlSN5WgftZZyBPEKTYO5OrgdcAt1B65f/vpqw1ZU80gW8k2OuI2pfLkMIcCfRF/TURGREuq005xB6oljSfa4HPAk1I0c1As89YCmfPL5vyIef4NHO95QgUyL6f4rOcZRZykZaTn/k6myhyCEvccrgOeD9wKvHEkOIiiuxWo5XsmcBUpOynUhjYjyK7z6D8yvvIK4YwBMnbKpWdAdfZ470ifFdHySEFBOGyX3qbcrsp34aswrYS10XpyytQvqON17YhK3O6z313on48zh6I24JspXR6g3cLm0K0Fa1G90HB6FUoBuG3AJEL2JqceiOQcBdTmkbgayiIG2ZVuJXCZ73dnFvhc64lxD0hmhxchqJUFZc45XASms1nk1+MiEor6Y8hkCIbhJRgfxS2cS3vKLL7oilvCdleiD7uvNiUpFLrCa3EN1aPNds+ghepvFj3/w+mtArz3yWui9KXu1CMsw+y4uvQGA2a0Hag+D0QvwW5qcgX+/F8hLrbPJ/HA/+JcK0f9UigbrDc5XIUS9uAFnzCvI0zh8KZezBKB1mIBqWXMIPJUqlysK71s8jaKpfDcQwNRAnLWzk0/64YpeRtLcRa/Hm9Uy+IOMeqVSy7KB2nz6HVZcjHb63HcUSJayH+vrT08LQjdgU5POb7WS5AQdgXUDzxSvKudDl0Bz6JVg6LDaCrUDxqPXq2sK+azfE51oAGXQvlp/lUshyOIh/vClJwt5ltLoeuXHo53MYQRF+cCSPvv5gyKMb4LlMGxSgtcY7Vl0zZCy2OFFNaFwLvQfHGpeaYfc7evlfkibsvLd1Q2zd7D1Q656KZ7Gn0HuUz6I2DjiSxD0GdUMw1ugYN0nVoNTzt93ArXQ6vIgXgt9kct8fNfrnud7mkJTuQNWRjYwtK1IXw8rY5yiMo/B0fjZLE9xC8GpwEW1AKUw7PSrAP/VFMcB/qBxs3bEOWoZtB4CWJvrScgNp+0EqudAV5KnpVbisaCNuQ+1aDf+5jWEajTlkacH6quf8aNINvD6jXWVSDHPaggeq33WPqLDT7QTluSZCW7Cxj0Gt/yym9OBNF3ptQik9f5I57mYZWhO+g83NQm015E/BWn/OfQOk0PdHbXqs859pRWtgxKHvAJam+tNiY6MEXZFwXe5TZQKYrKEepxXzeTue9ETEIuBe5L2eRX9m6C+X0nYeSUB8r496jUMf80+fcJWiFa7+5d6NPnVbCL6x0lEwO5ZOW7LzYxRn3zRmXcuR9mWnDPKRQN6I/YRiGXOspJb4zCZpRDPNiZN0tRZblG5FVOxC5xvX4/3nMIvTW0Nkc+oJHkn1pGYHkf3DScxXkYNRRXurMBkqU7QwFeTxatm9HgtrknJ+E8s5uJHoi7IfRC/7NAef7mdLN8PfyCJ2jGDI5lE+asrMMQFZPmMWZcuS9Cf2xw3SUbnQuUhzzkBWZxt/7HUAhhSVo8eQcFNfbgeKmE1Go4eWA6xehSWcc+bzTJPvSUosmvXvxWPq5LviP4jORQOvo2n9hlcmhfDLZJcskJOMPkI9fJ80VaGIZgscKrfQYZBLUo2z8rj6wMzmUTya7ZGlGbrlfMncS9EBKeRGOi14tb9LEyYC0G1AhZHIon0x2ybIXuenD0GJO0gtNfVGMuMU90RUVZEZGRuXzKJ33RycbKXzTDuiaLnZGRkZGKDIFmZGRkRHA/wGrt1JQi4CGdAAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle 1 - \\frac{x^{2}}{2} + \\frac{x^{4}}{24} - \\frac{x^{6}}{720} + O\\left(x^{8}\\right)$" ], "text/plain": [ " 2 4 6 \n", " x x x ⎛ 8⎞\n", "1 - ── + ── - ─── + O⎝x ⎠\n", " 2 24 720 " ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "series(cos(x), x, 0, 8)" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle x + \\frac{x^{3}}{6} + \\frac{x^{5}}{120} + \\frac{x^{7}}{5040} + O\\left(x^{8}\\right)$" ], "text/plain": [ " 3 5 7 \n", " x x x ⎛ 8⎞\n", "x + ── + ─── + ──── + O⎝x ⎠\n", " 6 120 5040 " ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "series(sinh(x), x, 0, 8)" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 1 + \\frac{x^{2}}{2} + \\frac{x^{4}}{24} + \\frac{x^{6}}{720} + O\\left(x^{8}\\right)$" ], "text/plain": [ " 2 4 6 \n", " x x x ⎛ 8⎞\n", "1 + ── + ── + ─── + O⎝x ⎠\n", " 2 24 720 " ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "series(cosh(x), x, 0, 8)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Se uma função não estiver definida em $x = 0$, nós podemos expandir ela em um valor diferente de $x$. \n", "\n", "Por exemplo, a série de potência de $ln(x)$ expandida em $x = 1$ é:" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle -1 - \\frac{\\left(x - 1\\right)^{2}}{2} + \\frac{\\left(x - 1\\right)^{3}}{3} - \\frac{\\left(x - 1\\right)^{4}}{4} + \\frac{\\left(x - 1\\right)^{5}}{5} + x + O\\left(\\left(x - 1\\right)^{6}; x\\rightarrow 1\\right)$" ], "text/plain": [ " 2 3 4 5 \n", " (x - 1) (x - 1) (x - 1) (x - 1) ⎛ 6 ⎞\n", "-1 - ──────── + ──────── - ──────── + ──────── + x + O⎝(x - 1) ; x → 1⎠\n", " 2 3 4 5 " ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "series(ln(x), x, 1, 6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Para eliminarmos os termos $(x - 1)$ e obtermos um resultado familiar para a série de Taylor nós podemos utilizar a seguinte técnica: \n", "\n", "Em vez de expandir $ln(x)$ em $x = 1$, nós obteremos uma expressão mais legível expandindo $ln(x + 1)$ em $x = 0$." ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle x - \\frac{x^{2}}{2} + \\frac{x^{3}}{3} - \\frac{x^{4}}{4} + \\frac{x^{5}}{5} + O\\left(x^{6}\\right)$" ], "text/plain": [ " 2 3 4 5 \n", " x x x x ⎛ 6⎞\n", "x - ── + ── - ── + ── + O⎝x ⎠\n", " 2 3 4 5 " ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "series(ln(x+1), x, 0, 6)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.10" } }, "nbformat": 4, "nbformat_minor": 4 }