{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Resolvendo equações diferencias numericamente com o python\n", "\n", "*Esta é uma breve descrição do que é integração numérica e um tutorial prático de como fazer isso em Python*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Softwares necessários\n", "\n", "*Para executar este notebook em seu próprio computador, você precisa instalar o seguinte software:*\n", "\n", "* [python](http://python.org)\n", "* [numpy](http://numpy.org) e [scipy](http://scipy.org) - biblioteca científica do python\n", "* [matplotlib](http://matplotlib.org) - a biblioteca pra plotar gráficos\n", "* O [ipython notebook](http://ipython.org/notebook.html) (agora renomeada como *Jupyter*)\n", "\n", "No Windows e Mac, recomendamos instalar o [Anaconda distribution](https://store.continuum.io/cshop/anaconda/), que inclui todos os itens acima em um único pacote (entre várias outras bibliotecas), disponível em http://continuum.io/downloads.\n", "\n", "No Linux, você pode instalar tudo usando a maneira preferida de sua distribuição, por exemplo:\n", "\n", "* Debian/Ubuntu: `sudo apt-get install python-numpy python-scipy python-matplotlib python-ipython-notebook`\n", "* Fedora: `sudo yum install python-numpy python-scipy python-matplotlib python-ipython-notebook`\n", "* Arch: `sudo pacman -S python-numpy python-scipy python-matplotlib jupyter\n", "\n", "Os trechos de código mostrados aqui também podem ser copiados em um arquivo de texto puro com extensão .py e executados fora do notebook (por exemplo, em um shell python ou ipython).\n", "\n", "### Pela web\n", "Como alternativa, você pode usar um serviço que executa notebooks na nuvem, por exemplo, [Google colab](https://colab.research.google.com/), [Jupyter lab](https://jupyter.org/try-jupyter/lab/), [SageMathCloud](https://cloud.sagemath.com/) ou [wakari](https://www.wakari.io/). Também é possível visualizar notebooks disponíveis publicamente usando http://nbviewer.ipython.org, mas nenhum cálculo pode ser realizado (apenas mostra resultados pré-calculados salvos)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Como funciona a integração numérica\n", "\n", "Digamos que temos uma equação diferencial que não sabemos (ou não queremos) derivar sua solução (analítica). Ainda podemos descobrir quais são as soluções por meio da **integração numérica**. Então, como isso funciona?\n", "\n", "A ideia é aproximar a solução em pequenos intervalos de tempo sucessivos, extrapolando o valor da derivada em cada intervalo. Por exemplo, vamos tomar a equação diferencial\n", "\n", "$$ \\frac{dx}{dt} = f(x) = x (1 - x) $$\n", "\n", "com um valor inicial $x_0 = 0.1$ em um momento inicial $t=0$ (ou seja, $x(0) = 0.1$). Em $t=0$, a derivada $\\frac{dx}{dt}$ é igual a $f(0.1) = 0.1 \\times (1-0.1) = 0.09$. Escolhemos um pequeno passo de tempo, digamos, $\\Delta t = 0.5$, e assumimos que esse valor da derivada é uma boa aproximação ao longo de todo este pequeno intervalo de $t=0$ até $t=0.5$. Isso significa que neste tempo $x$ vai aumentar $\\frac{dx}{dt} \\times \\Delta t = 0.09 \\times 0.5 = 0.045$. Portanto, nossa solução aproximada para $x$ em $t=0.5$ é $x(0) + 0.045 = 0.145$. Podemos então usar este valor de $x(0.5)$ para calcular o próximo ponto no tempo, $t=1$. Em resumo, calculamos a derivada em cada passo, multiplicando o resultado da derivada pelo passo de tempo, e aí somamos o resultado ao valor anterior da solução, conforme tabela abaixo:\n", "\n", "\n", "| $t$ | $x$ | $\\frac{dx}{dt}$ |\n", "| ---:|---------:|----------:|\n", "| 0 | 0.1 | 0.09 |\n", "| 0.5 | 0.145 | 0.123975 |\n", "| 1.0 | 0.206987 | 0.164144 |\n", "| 1.5 | 0.289059 | 0.205504 |\n", "| 2.0 | 0.391811 | 0.238295 |\n", "\n", "Claro, isso é terrivelmente tedioso de fazer à mão, então podemos escrever um programa simples para fazer isso e fazer um gráfico da solução. Abaixo, comparamos com a solução que obtivemos na tabela acima com intervalos de tempo $0.1$ com a solução analítica conhecida desta equação diferencial (a *equação logística*). **Não se preocupe com o código ainda**: existem maneiras melhores e mais simples de fazer isso! Os pontos são os valores aproximados para alguns momentos, e a linha mostra a solução analítica." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "from numpy import *\n", "from matplotlib.pyplot import *\n", "\n", "# Intervalos de tempo\n", "tt = arange(0, 10, 0.5)\n", "# Condição Inicial \n", "xx = [0.1]\n", "\n", "def f(x):\n", " return x * (1.-x)\n", "\n", "# loop sobre o tempo\n", "for t in tt[1:]:\n", " xx.append(xx[-1] + 0.5 * f(xx[-1]))\n", "\n", "# plottando\n", "figure(figsize=(8, 6)) \n", "tick_params(labelsize= 15)\n", "plot(tt, xx, '.-',linewidth=2.5)\n", "ta = arange(0, 10, 0.01)\n", "plot(ta, 0.1 * exp(ta)/(1+0.1*(exp(ta)-1.)),linewidth=2.5)\n", "xlabel('t',fontsize=20)\n", "ylabel('x',fontsize=20)\n", "legend(['aproximação', 'solução analítica'], loc='best',fontsize=16)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Por que usar bibliotecas científicas?\n", "\n", "O método que acabamos de usar acima é chamado de *método de Euler* e é o mais simples disponível. O problema é que, embora funcione razoavelmente bem para a equação diferencial acima, em muitos casos não funciona muito bem. Há muitas maneiras de melhorá-lo: de fato, existem muitos livros inteiramente dedicados a isso. Embora muitos estudantes de matemática ou física aprendam a implementar métodos mais sofisticados, o tópico é realmente profundo. Felizmente, podemos contar com a experiência de muitas pessoas que já criaram bons algoritmos que funcionam bem na maioria das situações. Estes algoritmos estão já disponíveis na maioria das linguagens de programação. Aqui vamos usar uma ótima implementação disponível em Python." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Então, como... ?\n", "\n", "Vamos demonstrar como usar bibliotecas científicas para integrar equações diferenciais. Embora os comandos específicos dependam do software, o procedimento geral é geralmente o mesmo:\n", "\n", "1. Defina os valores dos parâmetros e a condição inicial \n", "2. Escolha um intervalo de tempo ou uma sequência de tempos em que deseja a solução calculada\n", "3. Definir a função derivada na linguagem computacional (o lado direito da equação diferencial)\n", "4. passar a função, seqüência de tempo, parâmetros e condições iniciais para uma rotina de computador que executa a integração.\n", "\n", "### Uma única equação\n", "\n", "Então, vamos começar com a mesma equação acima, a equação logística, agora expressa com os parâmetros para taxa de crescimento ($r$) e capacidade de carga ($K$):\n", "\n", "$$ \\frac{dx}{dt} = f(x) = r x \\left(1 - \\frac{x}{K} \\right) $$\n", "\n", "E vamos usar o caso em que $r=2$, $K=10$ e a condição inicial $x(0) = 0.1$. Mostramos como integrá-lo usando R abaixo:\n", "\n", "#### 1. Defina os valores dos parâmetros e condição inicial" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Tudo após do '#' é um comentário\n", "\n", "## começamos a importar as bibliotecas que vamos usar\n", "# importa todas as funções (*) da biblioteca numpy, por exemplo, array, arange etc.\n", "from numpy import *\n", "# importa todas as funções de plotagem interativas (*), por exemplo, plot, xlabel etc.\n", "from matplotlib.pyplot import *\n", "# importa o integrador numérico que usaremos, odeint()\n", "from scipy.integrate import odeint\n", "\n", "# parâmetros\n", "r = 2.\n", "K = 10.\n", "# Condição inicial\n", "x0 = 0.1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2. Escolha um intervalo de tempo ou uma sequência de tempos em que deseja a solução calculada\n", "Note que estes são momentos no tempo para os quais você quer a solução. **Não são os intervalos de integração**, que são definidos internamente pela função de integração." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# passos de tempo: um array de valores começando de 0 até (mas\n", "# excluindo) 10, em passos de 0,01\n", "t = arange(0, 10., 0.01)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3. Defina uma função em Python para a EDO ser integrada\n", "Vamos definir o lado direito da equação diferencial. Este deve ser uma função da variável dependente (x) e do tempo (t), mesmo que o tempo não apareça explicitamente. É assim que você define uma função:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def f(x, t, r, K):\n", " return r*x*(1-x/K)\n", "# em python, não há chaves '{}' para iniciar ou\n", "# finaliza uma função, nem nenhuma palavra-chave especial: o bloco está definido\n", "# por espaços à esquerda (geralmente 4)\n", "# aritmética é feita da mesma forma que em outras linguagens: + - * /" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 4. Integrar a função\n", "Agora, chamamos a função que faz a integração. A ordem dos argumentos é a seguinte: a função derivada, a condição inicial, os pontos onde queremos a solução, e uma lista de parâmetros:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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x9myZUux6T179sRay9y5c8/7PWzbto3w8PBipQuUWCjn+r5ycnJISHDv4jnf93Uhr30htm3bBsDIkSMr5TV88/6GFt66cC61a9emQ4cOHDx4kNWrV593+W3bttGuXbtihe9yuQrWdVVS6VdT6cfTWPr+IwS8cTHdj84GIMP6szT2Xhr9aRnNtf9e5ILMnTu3xE/dhw4dAqBWLfdVKPv06UObNm1ISEjgs88+K7LsZ599xg8//EDr1q3p27fvOV+vTp06xMfHs3jxYjZu3FgwPTc3lwkTJhTbPw3w4IMPAu4D60r6RFl4WlxcHEeOHGHdunVFlnnvvff45ptvij322muvJTw8nBkzZhQ7T/yf//wnO3bs4LLLLivVPuayvvaFyD997sw3Kd988w3vvvtuuZ+/fv36gPu4gdL63e9+B7g/qefvLsnncrmKjHUQFxfH1q1b2bdvX8E0ay1/+ctfivw+VBVt3q9m0o+nsX7WK7TZ9h69OA55Y3asDe5OxOhX6dW87bmfQETO6cYbbyQoKIi+ffsSFxeHtZYff/yRFStWcPHFFxec/26MYdq0aQwZMoQxY8YwYsQI4uPj2bx5M1988QV16tRh+vTpBZvvz+WRRx7hzjvvpE+fPowePZqgoCAWLlxIdnY2nTp1Yu3atUWWHzp0KE888QTPPPMMbdu2LThP/+DBgyQkJNCzZ0+mTp0KwO9//3u++eYb+vbtyw033EBoaCgrV64kISGBUaNGFXvDEhISwvvvv8/o0aMZMGAAo0ePpmnTpqxatYpvv/2WqKgo3nnnnVKty7K+9oW47777mDJlCqNHj2bkyJHExMSwfv165s6dyw033MDHH39crue/9NJL+fTTT7n++usZPnw4wcHBxMbGctttt531MXfddRcJCQlMnz6dVq1aMWLECCIjI9m3bx8LFizgjjvuKBgE6A9/+AP33nsvXbp0YeTIkfj7+xe8Abz66qv58ssvy5W/zEo6j68mfXnKefqH9u60S95+wB6bFGXtpLoFX1uf7mLXLvjUugqdCyxyoXSevrVvvfWWvfbaa22zZs1scHCwDQsLs507d7YvvPCCPX78eLHlExMT7a233mqjoqKsn5+fjYqKsrfccotNTEwstmxJ5+nne/fdd227du1sQECAbdiwob377rttamrqOc8T//rrr+2wYcNsaGioBWxYWJi9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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x = odeint(f, x0, t, (r, K))\n", "\n", "# plotando a solução\n", "figure(figsize=(8, 6)) \n", "tick_params(labelsize= 15)\n", "plot(t, x,linewidth=2.5)\n", "xlabel('t',fontsize=20) # definir rótulo do eixo x\n", "ylabel('x',fontsize=20) # e do eixo y\n", "\n", "# plotar solução analítica\n", "# note que `t` é um array: quando você faz qualquer operação aritmética\n", "# com um array, é o mesmo que fazer para cada elemento\n", "plot(t, K * x0 * exp(r*t)/(K+x0*(exp(r*t)-1.)),linewidth=2.5)\n", "legend(['aproximação', 'solução analítica'], loc='best',fontsize=20) # draw legend" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Temos uma aproximação muito melhor agora, as duas curvas se sobrepõem!\n", "\n", "Agora, e se quiséssemos integrar um sistema de equações diferenciais? Vamos pegar as equações de Lotka-Volterra:\n", "\n", "$$ \\begin{aligned}\n", "\\frac{dV}{dt} &= r V - c V P\\\\\n", "\\frac{dP}{dt} &= ec V P - dP\n", "\\end{aligned}$$\n", "\n", "\n", "Neste caso, a variável não é mais um número, mas um array `[V, P]`. Fazemos o mesmo de antes, mas agora `x` será um array:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "shape of x: (5000, 2)\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "\n", "# não precisamos fazer isso de novo: se a célula acima já foi executada,\n", "# as bibliotecas já foram importadas, mas repetimos aqui por conveniência.\n", "from numpy import *\n", "from matplotlib.pyplot import *\n", "from scipy.integrate import odeint\n", "\n", "t = arange(0, 50., 0.01)\n", "\n", "# parâmetros\n", "r = 2.\n", "c = 0.5\n", "e = 0.1\n", "d = 1.\n", "\n", "# condição inicial: este é um array agora!\n", "x0 = array([1., 3.])\n", "\n", "# a função ainda recebe apenas `x`, mas será um array, não um número\n", "# em python, arrays são numerados de 0, então o primeiro elemento\n", "# é x[0], o segundo é x[1]. Os colchetes `[ ]` definem um\n", "# lista, que é convertida em um array usando a função `array()`.\n", "# Observe que a primeira entrada corresponde a dV/dt e a segunda a dP/dt\n", "def LV(x, t, r, c, e, d):\n", " return array([ r*x[0] - c * x[0] * x[1],\n", " e * c * x[0] * x[1] - d * x[1] ])\n", "\n", "# Agora, chamamos a função que faz a integração\n", "# a ordem dos argumentos é a seguinte: a função derivada,\n", "# a condição inicial, os pontos onde queremos a solução, e\n", "# uma lista de parâmetros\n", "x = odeint(LV, x0, t, (r, c, e, d))\n", "\n", "# Agora `x` é um array de 2 dimensões de tamanho 5000 x 2 (5000 passos de tempo por 2\n", "#variáveis). Podemos verificar assim:\n", "print('shape of x:', x.shape)\n", "\n", "# plotando as soluções\n", "figure(figsize=(8, 6)) \n", "tick_params(labelsize= 15)\n", "plot(t, x,linewidth=2.5)\n", "xlabel('t',fontsize=20) # definindo rótulo do eixo x\n", "ylabel('populações',fontsize=20) # e do eixo y\n", "legend(['V', 'P'], loc='upper right',fontsize=16)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Uma coisa interessante a se fazer aqui é dar uma olhada no *espaço de fase*, ou seja, plotar apenas as variáveis ​​dependentes, sem respeito ao tempo:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Condições iniciais: [1. 3.]\n" ] }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "figure(figsize=(8, 6)) \n", "tick_params(labelsize= 15)\n", "# `x[0,0]` é o primeiro valor (1ª linha, 1ª coluna), `x[0,1]` é o valor de\n", "# a 1ª linha, 2ª coluna, que corresponde ao valor de P no tempo\n", "# inicial. Traçamos apenas este ponto primeiro para saber onde começamos:\n", "plot(x[0,0], x[0,1], 'o',markersize=10,zorder=3, color='blue')\n", "print('Condições iniciais:', x[0])\n", "\n", "# `x[0]` ou (equivalentemente) x[0,:] é a primeira linha e `x[:,0]` é a primeira\n", "# coluna. Observe que os dois pontos `:` representam todos os valores desse eixo. Nós iremos\n", "# plotar a segunda coluna (P) contra a primeira (V):\n", "plot(x[:,0], x[:,1],linewidth=2.4)\n", "xlabel('V',fontsize=20)\n", "ylabel('P',fontsize=20)\n", "\n", "# Vamos calcular e plotar outra solução com uma condição inicial diferente\n", "x2 = odeint(LV, [10., 4.], t, (r, c, e, d))\n", "plot(x2[:,0], x2[:,1],linewidth=2.5)\n", "plot(x2[0,0], x2[0,1], 'o',markersize=10,color='red')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Parabéns**: agora você está pronto para integrar qualquer sistema de equações diferenciais! (Esperamos que generalizar o acima para mais de 2 equações não seja muito desafiador)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Mais informações:\n", "\n", "* [Tutorial de Python](http://docs.python.org/3/tutorial/index.html) (capítulos 3 a 5 são especialmente úteis)\n", "* [Uma introdução ao Numpy](http://nbviewer.ipython.org/github/iguananaut/notebooks/blob/master/numpy.ipynb)\n", "* [Mais um](http://nbviewer.ipython.org/github/jrjohansson/scientific-python-lectures/blob/master/Lecture-2-Numpy.ipynb), indo um pouco mais a fundo.\n", "* [The matplotlib gallery](http://matplotlib.org/gallery.html): todos os tipos de gráficos, com código de exemplo para usar." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.5" } }, "nbformat": 4, "nbformat_minor": 4 }