Buscar

Introdução VPhyton

Prévia do material em texto

Física II – 4302112 IO – 2017 
Modelagem computacional – uma breve introdução1
A modelagem computacional, hoje em dia, joga um papel fundamental em praticamente todos os campos da
ciência e da engenharia. Na física é um instrumento essencial de pesquisa tanto em física teórica como
experimental. Criar modelos computacionais simples, baseados em princípios físicos fundamentais, permite que
vejamos mais claramente como esses princípios governam o comportamento dos sistemas reais. Esses modelos
permitem ainda que apliquemos esses princípios a sistemas muito mais complicados que aqueles poucos que
podemos resolver analiticamente. Ferramentas computacionais adequadas permitem ainda que visualizemos a
evolução temporal e o comportamento de sistemas em 3D, o que ajuda a entender o significado físico de
grandezas vetoriais como velocidade e momento. 
 
E se eu não sei nada de programação? 
Não se preocupe, nenhum conhecimento prévio em programação é necessário. Você não terá que produzir
programas completos e irá aprender tudo o que é necessário para construir programas simples mas muito
poderosos ao longo da disciplina. Esses programas serão usados para entender melhor os conceitos físicos e a
matemática subjacente aos conteúdos que estará aprendendo.
O que é o Vphyton?
Um programa de computador é escrito em uma “linguagem de programação”, que nada mais é do que um
conjunto de palavras e regras necessárias para comunicar instruções a um computador Essas linguagens obedecem
determinadas “sintaxes”, ou seja, além das palavras certas, as instruções devem obedecer certas regras (pontuação,
ordenamento, etc.) para que sejam entendidas. Ainda, para escrever um programa de computador necessitamos
programas de edição de texto específicos para essa função (em vez de programas como word ou LibreOffice). 
Escolhemos a linguagem Vphyton para construir os programas dessa discipina. Vphyton é uma extensão do
Phyton, uma linguagem bastante conhecida de programação. Ele vem preparado para a álgebra vetorial em 3D, e
permite de forma muito simples criar animações 3D como consequência dos cálculos realizados a partir dos
princípios físicos. É uma linguagem aberta, gratuita, e funciona nos sistemas operacionais Windows, Linux ou
MacOS. Vocês podem facilmente instalá-lo em notebooks ou desktops pessoais. No final desse texto damos
algumas dicas para essa instalação, que é simples. Como editor de texto usaremos o Geany, também gratuito e de
fácil instalação em qualquer desses sistemas operacionais. Há outros editores possíveis (como o Idle, que as vezes
vem junto com o VPhython). Nos computadores disponíveis na sala de aula 212 usaremos preferencialmente o
sistema operacional Linux. Também não é necessário ter familiaridade com o Linux para acompanhar as aulas.
A seguir, mostramos um exemplo de um pequeno programa em Vphyton. Uma visão da tela produzida por esse
programa está na figura ao lado.
 Código Resultado na tela
from visual import *
ball = sphere(pos = vector(-3,-3,0), color = color.orange, radius = 0.5)
velocity = vector(3,1.5,4)
arrow(pos = ball.pos,
axis = velocity,
color = color.green)
No código acima, uma esfera denominada “ball” é criada na posição ( – 3, – 3, 0 ). A
partir dessa informação, tente localizar na figura acima onde está a origem do
sistema de coordenadas empregado. 
A origem do sistema de coordenadas, ( 0, 0, 0 ), está no centro do quadrado; o eixo x é horizontal e aponta para a
direita, o eixo y é vertical e aponta para cima e o eixo z é perpendicular à tela e aponta na sua direção. A
localização da esfera laranja, nesse sistema de coordenadas, é consistente com a posição ( – 3, – 3, 0 ) designada
1 Adaptado de algumas seções do livro Matter and Interactions, vol. 1, R. Chabay e B. Sherwood, 4a ed., Wiley.
Física II – 4302112 IO – 2017 
por “ball” no programa.
O que poderíamos alterar no código para criar uma esfera maior?
A esfera chamada “ball” é criada com raio igual a 0,5. Para alterá-lo teríamos que informar um raio maior.
Como o programa poderia ser alterado de modo a produzir uma animação com a
bola se movendo?
No exemplo acima, a velocidade já foi especificada e está representada por uma seta verde. Para modificar a
posição da bola, temos que informar ao computador qual cálculo deve ser feito para definir a nova posição (ou
seja, que equações determinam o movimento dessa bola). Vimos no curso de física 1 que esse movimento é
determinado pelo princípio do momento, ou seja, das forças que atuam nessa esfera, e o cálculo diferencial e
integral. O computador irá fazer exatamente as mesmas contas que fazemos à mão, no papel, só que mais
rapidamente.
Como usamos o momento para atualizar a posição de um corpo a partir do princípio
do momento ( d p⃗dt =F⃗res) ?
Se consideramos um intervalo de tempo Δt suficientemente pequeno para que a força seja aproximadamente
constante nesse intervalo, podemos escrever:
∆ p⃗≈ F⃗res ∆ t
Como ∆ p⃗= p⃗ f− p⃗i , podemos escrever p⃗f ≈ p⃗i+ F⃗res ∆ t , o que nos permite calcular a posição “final”
(ou seja a posição depois do curto intervalo de tempo Δt ) já que a força resultante é praticamente constante nesse
intervalo. Conhecendo as velocidades final e inicial e sabendo que a força é aproximadamente constante no
intervalo (portanto a aceleração também o é), podemos calcular a velocidade média e obter a posição final a partir
da expressão r⃗ f=r⃗ i+ v⃗med ∆ t . Esse procedimento reforça a ideia importante de que a nova posição de um
objeto depende de duas coisas: (i) do seu momento no instante atual e (ii) da força resultante que atua nele
durante esse intervalo de tempo. Como o intervalo de tempo é suficientemente pequeno para que a força possa ser
considerada constante, F⃗ res é valor da força no instante inicial2. Aplicando iterativamente esse procedimento,
podemos prever a posição futura, no computador, mesmo de forças variáveis complicadas, que não conseguimos
integrar analiticamente, com o procedimento:
 calcule a força resultante atuando no sistema no instante inicial
 atualize o momento: 
 atualize a posição: 
 mude os nomes: o instante final será o novo instante inicial
O procedimento acima deve ser repetido até que tenha decorrido todo o intervalo de tempo desejado (durante o 
qual a força não pode ser considerada constante!).
Como traduzir tudo isso para um programa de computador? Suponha que a velocidade seja constante; essa 
tradução seria algo como:
Cálculo código em VPhyton
∆t = 0.1 delta_t = 0.1 
 r⃗ f=r⃗ i+ v⃗ ∆t ball.pos = ball.pos + velocity * delta_t
2 Você viu que o cálculo diferencial e integral transforma essa aproximação em uma igualdade, quando passamos ao
limite de ∆t →0 . No entanto só é possível calcular esse limite exatamente, de forma analítica, em um número
restrito de situações. Já com o auxílio do computador sempre podemos fazer Δt cada vez menor, de forma que a
força resultante seja sempre aproximadamente constante nesse intervalo de tempo, e portanto, por mais complicada
que seja a forma como varie, sempre podemos calcular a sua nova velocidade e a sua nova posição depois desse
intervalo Δt . Quanto menor o Δt, melhor a aproximação.
Repita 
várias 
vezes
Física II – 4302112 IO – 2017 
Note que uma expressão como x=x+1 não está errada em computação! Essa expressão não representa uma 
igualdade, mas é uma forma de instruir o computador a pegar o valor atual da variável x, adicionar 1 a ela, e 
substituir o seu antigo valor por esse novo valor recém calculado. Índices identificando “inicial” e “final” não são 
necessários, pois qualquer coisa que esteja à direita do sinal de igual se refere ao instante inicial e o que estiver do 
lado esquerdo do sinal de igual se refereao instante final. Assim, a expressão
ball.pos = ball.pos + velocity *delta_t
instrui o computador a considerar a posição atual do objeto chamado “ball” (definida por ball.pos), adicionar a ela
a quantidade velocity*delta_t e recolocar o objeto “ball” nessa nova posição. Para animar esse movimento por, por
exemplo, 4 s, podemos instruir o computador a repetir esses cálculos várias vezes, através de um comando que
cria um laço de repetição (loop) chamado “while”:
delta_t = 0.1 
t = 0 
while t < 4:
 rate(100)
 ball.pos = ball.pos + velocity * delta_t
 t = t + delta_t
Note que, após a linha que define o loop (while t < 4), os demais comandos estão “indentados”. É essa indentação
que informa ao computador os comandos que devem ser repetidos. Para voltar a dar instruções que não devem ser
repetidas, basta voltar a escrever os comandos na indentação original. Ainda, para conseguir uma animação
adequada, como um subproduto desses cálculos, adicionamos o comando rate(100) dentro do laço while. Esse
comando instrui o VPhyton a permitir só 100 repetições do cálculo em cada segundo real, permitindo ao
computador renderizar uma nova imagem da posição da bola muitas vezes por segundo, com o efeito de um filme.
Para ser mais claros, nos referimos ao passo de tempo Δt como “tempo virtual” e ao tempo efetivamente gasto
pelo computador nos cálculos como “tempo real”. Se estivesse fazendo os cálculos à mão, isso significaria que
talvez você demorasse 60 s reais para calcular a nova posição que o objeto teria depois de 0.1 segundos virtuais no
futuro. O computador, na verdade, leva um tempo muito menor – da ordem de 5 microssegundos – para fazer esse
cálculo. Se a tela fosse atualizada nesse tempo real, seria impossível ver o objeto se movendo, pois o filme
passaria “muito rápido” e nós veríamos o objeto já na sua posição final. Claro que a relação entre o tempo real e o
tempo virtual depende do computador utilizado e o número de repetições necessárias para que o filme passe em
uma velocidade conveniente à visualização (no exemplo 100) pode depender da velocidade do computador
utilizado. 
É muito mais fácil aprender a escrever programas de computador em VPhyton assistindo vídeos e vendo os
resultados na tela imediatamente, do que lendo textos. Se tiver interesse em se aprofundar, há uma série de
tutoriais no Youtube (VPhyton instructional videos 1: 3D objects, em vphyton.org/video01.html por ex.) que
foram desenvolvidos para ajudar estudantes de física a aprenderem VPhyton. Alguns problemas do livro texto
(problemas P68 – P77 na 4a ed.) pedem que assistam aos vídeos e depois executem os desafios propostos neles.
Haverá um tutorial extra classe, voltado principalmente aos alunos que não tiveram contato com o VPhyton na
disciplina de física 1 (mas aberto a todos os interessados) nas primeiras semanas da disciplina. O VPhyton pode
ser baixado e instalado a partir do site http://vphyton.org ; siga as instruções do site. Procure ajuda se necessário.

Continue navegando