Image
Image
Métodos Computacionais no Ensino da Física
Planilha I
Planilha II
Modellus I
Modellus II
HotPotatoes
CMapTools
1 Planilha eletrônica I

1.10 Recursão

Será abordada agora a "parte mais quente" do trabalho com a planilha, qual seja, o cálculo das quantidades termodinâmicas como funções do tempo. Como explicado no início, os valores dessas quantidades, num dado instante, serão calculados a partir dos valores num instante ligeiramente anterior, que por sua vez terão sido calculados a partir dos valores num instante ligeiramente mais anterior ainda, etc. Ou seja, usa-se um procedimento de recursão.

Na programação, a implementação de uma recursão em geral requer a construção de um laço, um conjunto de comandos cuja execução deve ser repetida várias vezes. Uma das principais vantagens da planilha é que ela permite implementar uma recursão sem que seja preciso programar um laço. Pode-se dizer que o laço é construído simplesmente arrastando uma célula, ou um conjunto de células, com o mouse.

Para que a planilha possa gerar a sequência temporal de valores, deve-se dizer para ela como calcular os valores num instante a partir dos valores no instante anterior. Para tal, insere-se as relações que ela deve usar para calcular as quantidades no instante dt a partir dos valores no instante 0, que já estão disponíveis (na linha 10 da planilha-exemplo). Os valores em dt serão calculados na linha 11.

Começa-se pela energia interna, cuja variação pode ser calculada pela aplicação da Primeira Lei da Termodinâmica. Como já discutido, isso leva à relação E1=E0+(q+w)dt. Todos os elementos do lado direito desta equação já estão disponíveis na planilha: E0 está na célula D10, q na célula E4, w na célula E5 e dt na célula K4. Deve-se, porém, lembrar que q é dado na célula E4 em cal/s e precisa ser transformado em J/s, o que pode ser feito utilizando o fator de conversão, ao qual foi atribuído o nome cal. Contudo, deve-se então digitar na célula D11 a expressão =$D$10+($E$4*cal+$E$5)*$K$4. Ou quase isso. Há um lugar nesta expressão onde não se deve colocar cifrão. É antes do índice de linha da célula D10; isto porque este índice deve mudar a cada passo na evolução, já que esta célula deve conter a energia no instante imediatamente anterior. Isto será visto mais claramente em breve. Por enquanto, insere-se a expressão =$D10+($E$4*cal+$E$5)*$K$4 na célula D11; veja a captura de tela abaixo (Figura 1.10.1)

Image
Figura 1.10.1: Digitação na célula D11 da equação para o cálculo da energia interna.

De posse da energia interna, é fácil calcular a temperatura no mesmo instante de tempo, usando a relação T=2E/(3nR). A temperatura no instante dt deve ser calculada na célula C11. A energia está na célula D11 e o número de mols na célula H8. À constante universal dos gases foi atribuído o nome R. Portanto, digita-se na célula C11 a expressão =2*$D11/(3*$H$8*R). De novo, o índice de linha da célula que contém a energia não deve estar precedido de um cifrão, pois ele irá mudar a cada passo temporal. A captura de tela abaixo (Figura 1.10.2) mostra essa operação.

Image
Figura 1.10.2: Digitação na célula C11 da equação para o cálculo da temperatura.

Para calcular o volume no instante dt, utiliza-se a relação dW=-pdV entre a variação do volume dV e o trabalho dW=wdt realizado sobre o gás durante o intervalo dt. Essa relação envolve a pressão, que varia com o tempo. Se o intervalo temporal for suficientemente curto, não se cometerá um grande erro ao utilizar a pressão no começo do intervalo. Escreve-se, portanto, para o volume no instante dt, a expressão V=V0 + dV=V0 - wdt/p0. Deve-se inserir esta expressão na célula B11. Os ingredientes estão disponíveis: V0 está na célula B10, p0 na célula A10, w na célula E5, e dt na célula K4. Insere-se, portanto, na célula B11 a expressão =$B10-$E$5*$K$4/$A10. De novo, os índices de linha das células associadas a quantidades que vão evoluir com o tempo não recebem cifrão. Veja a captura de tela da Figura 1.10.3.

Image
Figura 1.10.3: Digitação na célula B11 da equação para o cálculo do volume.

Finalmente, pode-se calcular na célula A11 a pressão no instante dt, utilizando a lei dos gases ideais na forma p=nRT/V. Os ingredientes estão todos disponíveis: n está na célula H8, T na célula C11, V na célula B11 e R recebeu o nome R. Insere-se portanto na célula A11 a expressão =$H$8*R*$C11/$B11. Mais uma vez, os índices de linha das células associadas a quantidades que vão variar na evolução temporal não devem ser precedidos por um cifrão. A Figura 1.10.4 apresenta uma captura de tela dessa operação.

Image
Figura 1.10.4: Digitação na célula A11 da equação para o cálculo da pressão.

Tudo pronto para realizar a manipulação que, a partir das expressões digitadas nas células da linha 11, vai gerar automaticamente os valores das quantidades termodinâmicas em instantes sucessivos (separados pelo intervalo dt). Basta proceder como segue:

Vê-se que a planilha calcula e mostra automaticamente as sequências de valores. Clicando sobre uma célula, você pode verificar qual a operação nela realizada. Por exemplo, clicando sobre a célula D16 você verifica que ela realiza a operação =$D15+($E$4*cal+$E$5)*$K$4, que difere da operação realizada pela célula a partir da qual ela foi gerada (D11) pela substituição de D10 por D15. Os demais elementos não foram modificados. Ou seja, apenas o endereço sem cifrão (no caso, o índice de linha da coluna D) foi modificado. Veja a Figura 1.10.7.
Image
Figura 1.10.7: Nesta captura de tela, vê-se a equação utilizada pela planilha para calcular o resultado da célula D16. Esta equação foi gerada pelo arraste do mouse a partir da equação digitada na célula D11.
Esse era o comportamento desejado, já que o cálculo geral deve utilizar a energia do instante imediatamente anterior. Você pode verificar que, se na célula D11 tivesse sido digitado =$D$10+($E$4*cal+$E$5)*$K$4 (tudo com cifrões) e não =$D10+($E$4*cal+$E$5)*$K$4, teríamos =$D$10+($E$4*cal+$E$5)*$K$4 em D16 também. Evidentemente, não é isso que se quer. A mesma coisa aconteceu nas outras colunas. Por exemplo, como mostra a Figura 1.10.8, a célula C16 contém =2*$D16/(3*$H$8*R), ou seja, o índice de linha sem cifrão evoluiu com o arraste do mouse da maneira desejada.
Image
Figura 1.10.8: A equação utilizada pela planilha para calcular o resultado da célula C16 foi gerada pelo arraste do mouse a partir da equação digitada na célula C11.

O presente exemplo mostra um caso no qual se arrasta uma linha de células para baixo para gerar uma recursão. É possível também gerar uma recursão arrastando uma coluna de células para a direita, gerando uma sequência de colunas. Neste caso, em vez de omitir o cifrão antes do número associada à linha, tem-se que omitir o cifrão antes da letra associada à coluna.

Antes de continuar, é desejável ajeitar os formatos dos números. Faça isso, lembrando que eles devem ser mostrados com precisão suficiente, mas não excessiva. Algarismos que não são significativos, dada a precisão dos dados, não devem ser mostrados. Vale esclarecer que a escolha de um formato afeta apenas o que é mostrado na tela. A planilha calcula sempre com grande precisão numérica.

Outra melhoria interessante é inserir notas lembrando as equações utilizadas nos cálculos da evolução do sistema. A captura de tela abaixo (Figura 1.10.9) apresenta formatos numéricos julgados adequados e lembretes da teoria. Foi usada a notação -> para indicar a incrementação de uma quantidade a partir de um valor anterior.

Image
Figura 1.10.9: Captura de tela da planilha com formatos numéricos adequados e notas lembrando as equações usadas nos cálculos.