Baixe o app para aproveitar ainda mais
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.
Compartilhar