Ir para o conteúdo

Programando equações

Você usa equações? Então, como programá-las?

Programando Equações

Os primeiros exemplos envolvem programas para resolver equações matemáticas. Vamos aprender como escrever e rodar um programa em Python, como trabalhar com as variáveis, como computar funções matemáticas como $e^x$ e $sen(x)$, e como usar o Python para cálculos interativos.

Avaliando uma equação matemática

Altura de uma bola em movimento vertical:

sendo:

  • $ y $ a altura (posição) em função do tempo $ t $
  • $ v_0 $ é a velocidade inicial em $ t=0 $
  • $ g $ é a aceleração da gravidade

Tarefa: dado $ v_0 $, $ g $ e $ t $, calcular $ y $.

Usar uma calculadora? Um programa é muito mais poderoso...

Mas afinal, o que é um programa?

Uma sequência de instruções para o computador, escritas em uma linguagem de programação, parecida com uma gramática, mas mais simples e mais rigorosa.

Este curso trabalha com computação científica usando a linguagem de programação Python (www.python.org).

Nosso primeiro programa exemplo

Avaliar $ y(t) = v_0 t - \frac{1}{2}gt^2 $ para $ v_0=5 $, $g=9,81 $ e $ t=0,6 $:

O programa completo em python:

print 5*0.6 - 0.5*9.81*0.6**2

Problema!

Muito cuidado com o . e a , nas casas decimais. O python segue a convenção inglesa na qual as casas decimais são separadas com ponto . !!

Como escrever e rodar um programa?

  • Um programa é texto simples, escrito em um editor de texto;
  • Use Gedit, Notepad++, Emacs, Vim, Spyder, or IDLE (não MS Word!).

Passo 1. Escreva o programa em um editor de texto, essa linha:

print 5*0.6 - 0.5*9.81*0.6**2

Passo 2. Salve o programa para um arquivo, digamos, movimento.py
(.py significa arquivo do Python);
Passo 3. Abra um terminal (linux, mac) ou prompt do comando (windows CMD) e vá até a pasta onde você salvou o arquivo;
Passo 4. Execute o programa:

Terminal> python ball1.py

O programa imprime 1.2342 no terminal.

O programa não rodou?

Você precisa instalar o interpretador Python!

Sugestão: Anaconda! Anaconda Python

Anaconda é uma interessante plataforma para o desenvolvimento em Python.

Você pode baixar aqui: https://www.continuum.io/downloads

Use a versão para Python 2.7!

Provavelmente o seu computador é diferente do meu:

  • Quando você está usando um computador você está sempre rodando algum programa;
  • O computador não faz absolutamente nada sem ser comandado, e nós, humanos, escrevemos e usamos programas que dizem ao computador o que fazer;
  • A maioria das pessoas está acostumada a dar um duplo clique em um símbolo (ícone) para rodar um programa, mas neste curso nós vamos comandar o computador através dos terminais (ou prompt de comando) ou de IDEs (integrated development environment) porque é mais eficiente para trabalhar com programação!
  • Programas matemáticos complexos de repente se tornam diretos quando escrevemos programas.

Um programa pode calcular uma integral

Você pode calcular essa integral na mão?

Um pequeno programa pode calculá-la assim como outras integrais:

import numpy as np

def integracao(f, a, b, n=100):
    """
    Integra f de a a b,
    usando a regra dos trapézios com n intervalos.
    """
    x = np.linspace(a, b, n+1)    # Coordenadas dos intervalos
    h = x[1] - x[0]            # Espaçamento entre intervalos
    I = h*(sum(f(x)) - 0.5*(f(a) + f(b)))
    return I

# Definindo nosso integrando
def minha_funcao(x):
    return np.exp(-x**2)

menos_infinito = -20  # Aproximação de menos infinito
I = integracao(minha_funcao, menos_infinito, 1, n=1000)
print 'Valor da integral:', I

O programa calcula uma aproximação com erro $ 10^{-12} $ em 0.1 s ($ n=10^6 $)!