Programando equações
Você usa equações? Então, como programá-las?
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 é 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 $)!