Departamento de Fı́sica da Universidade de Coimbra Alguns métodos numéricos para resolver a equação de Newton Pedro Vieira Alberto Fevereiro de 2004 Consideremos a equação de Newton a uma dimensão para um corpo de massa m, F = ma. Em geral, F será uma função da posição, velocidade e tempo, de modo que a equação diferencial para a velocidade se escreve: dv = F (x, v, t)/m = a(x, v, t) . dt Para obter a posição, recorremos à relação entre posição e velocidade, dx =v. dt Se conhecermos a posição e a velocidade do corpo num certo instante, estas equações permitem-nos determinar v(t) e x(t) em qualquer instante t. No entanto, como sabemos, não podemos resolver estas equações analiticamente no caso geral. Isso significa que temos de recorrer ao computador, usando um método numérico. Esse método deverá ser capaz de determinar a velocidade e posição num certo instante, dadas, por exemplo, a posição e velocidade iniciais x0 e v0 . 1 Método de Euler O método numérico mais simples para resolver equações diferenciais é o de substituir as derivadas por razões entre variações da função e da respectiva variável. No caso presente, teremos dv ∆v −→ ⇒ ∆v ∼ a ∆t (1) dt ∆t dx ∆x −→ ⇒ ∆x ∼ v ∆t . (2) dt ∆t Assim, se quisermos saber as posições e velocidades de um corpo entre um instante inicial ti e final tf , poderemos dividir o intervalo [ti , tf ] em N partes iguais ∆t e calcular as velocidades nos instantes tn usando as acelerações no instante anterior v1 = v0 + a0 ∆t v2 = v1 + a1 ∆t .. . vn+1 = vn + an ∆t .. . vN = vN −1 + aN −1 ∆t , (3) 1 sendo an ≡ a(xn , vn , tn ) vn ≡ v(tn ), xn ≡ x(tn ), com tn = n ∆t + ti n = 0, . . . , N . Do mesmo modo podemos calcular as posições em cada instante tn usando o valor da velocidade no instante anterior, fazendo xn+1 = xn + vn ∆t n = 0, 1, . . . , N . (4) As equações (3) e (4) constituem o método de Euler para o cálculo das posições e velocidades de um corpo sujeito a uma força. O método de Euler é chamado um método de 1a ordem. A razão para isso encontra-se no facto de poderemos escrever, usando o desenvolvimento em série de Taylor, (∆t)2 + ... 2 (∆t)2 xn+1 = xn + vn ∆t + an + ... , 2 o que significa que, ao aplicar o método de Euler, estamos a desprezar termos com potências de ∆t iguais ou superiores a 2 - diz-se “termos de 2a ordem ou superior”. Podemos então dizer que o erro cometido em cada iteração (cada cálculo de vn ou xn ) é proporcional a (∆t)2 , desde que ∆t seja suficientemente pequeno. No entanto, como temos de calcular N valores de v e x, o erro total cometido pode ser estimado como sendo proporcional a vn+1 = vn + an ∆t + a0n E ∝ N (∆t)2 ∝ ∆t , uma vez que N = (tf − ti )/∆t. Assim, o erro total é proporcional a ∆t, e daı́ a designação de método de 1a ordem. 2 Método de Euler-Cromer Uma pequena variação do método de Euler é o método de Euler-Cromer. Usando a notação da secção anterior, a velocidade e a posição calculadas no instante tn+1 são dadas por vn+1 = vn + an ∆t xn+1 = xn + vn+1 ∆t . (5) (6) Substituindo a equação (5) em (6), ficamos com xn+1 = xn + vn ∆t + an (∆t)2 . Isto significa que o método de Euler-Cromer é mais preciso no cálculo da posição, mas que o cálculo da velocidade, que tem de ser feito primeiro (porquê?), é idêntico ao do método de Euler. Este método apresenta vantagens sobre o método de Euler sobretudo para problemas com sistemas oscilatórios. 2 3 Método de Runge-Kutta de 2a ordem O método de Euler usa a derivada da velocidade e da posição calculada no instante anterior para calcular a nova velocidade e posição, supondo que essas derivadas (a aceleração e a velocidade, respectivamente) se mantêm constantes durante o intervalo ∆t. O erro cometido pelo método vem exactamente desse facto. Uma maneira de melhorar o método sem o complicar demasiado é, continuando embora a supôr que a derivada se mantém constante no intervalo, fazer uma melhor estimativa da derivada nesse intervalo. Isso é feito pelo método de Runge-Kutta de 2a ordem que usa o valor da derivada no meio do intervalo, usando o método de Euler para estimar esse valor. Assim, temos, vn+1 = vn + am ∆t xn+1 = xn + vm ∆t , (7) (8) em que ∆t 2 ∆t ∆t am = a(xn + vn , vm , tn + ). 2 2 Fica como exercı́cio a demonstração de que este método é de 2a ordem ... vm = vn + a n 4 Método de Verlet Outro método de 2a ordem é o método de Verlet, sobretudo adequado para problemas com sistemas periódicos. Na versão chamada método de Verlet da velocidade, as expressões da posição e velocidade escrevem-se na seguinte forma 1 xn+1 = xn + vn ∆t + an (∆t)2 , (9) 2 1 vn+1 = vn + (an + an+1 ) ∆t . (10) 2 Podemos ver que este método é de 2a ordem para a velocidade pelo facto de podermos escrever ³ ´ an+1 = an + a0n ∆t + O (∆t)2 , ³ ´ onde O (∆t)2 representa todos os restantes termos da série com potências (∆t)2 ou superiores e a0n a derivada da aceleração em ordem ao tempo no instante tn . Esta última equação implica que ´´ ´ ³ ³ 1 1³ an + an + a0n ∆t + O (∆t)2 ∆t = vn + an + a0n (∆t)2 + O (∆t)3 . vn+1 = vn + 2 2 a Da equação (9) vê-se que o método é também de 2 ordem para a posição. Na verdade, pode demonstrar-se que, neste caso, a determinação da posição inclui parte do termo de 3a ordem em ∆t . Uma desvantagem deste método é que não pode ser aplicado a forças que dependam da velocidade (porquê?). 3