Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação 2º Semestre 2005/2006 6 Abril 2006 Integração Numérica - Áreas e Equações 1 Áreas e Integração • Como é sabido a superfície delimitada pelo gráfico de uma função pode ser obtida através de uma integração. f(x) dA A x0 x x+h • Com efeito, denotando por A(x) a área da função f desde o ponto x= x0 até ao ponto x temos dA = A(x+h) – A(x) f(x) h 6 Abril 2006 Integração Numérica - Áreas e Equações 2 Áreas e Integração • Naturalmente, o erro só é eliminado na passagem ao limite, isto é, quando h 0. • Assim de A(x+h) – A(x) f(x) h obtemos f(x) dA A x0 x x+h A( x h) A(h) dA f ( x) lim h 0 h dx 6 Abril 2006 Integração Numérica - Áreas e Equações 3 Áreas e Integração • Ora se a função f é a derivada em ordem a x da função A (área), temos inversamente que a função A é a primitiva de f em ordem a x • Desta forma, para determinar a área debaixo da função f, basta-nos determinar a primitiva de f e subtrair os seus valores nos limites de x, o que se denota habitualmente por x b Aab xa x b f ( x) dx F ( x) x a A a 6 Abril 2006 Integração Numérica - Áreas e Equações b 4 Áreas e Integração Exemplo: • 15 Para determinarmos abaixo da curva a área y = f(x) = 3x 3 entre x = 1 e x = 5, 1. obtemos primeiro 1 x2 F ( x) 3 2 3 5 A = 4*(3+15)/2 = 36 1. e portanto x 5 2 x 5 x 5 A 1 f ( x) dx 3 2 x 1 6 Abril 2006 x 1 52 12 3 3 36 2 2 Integração Numérica - Áreas e Equações 5 Áreas e Integração • Infelizmente, todo este processo depende de se conseguir obter uma forma analítica para a função F(x), primitiva de f(x). • Num conjunto significativo de situações tal não é possível, pelo que a integração se tem de fazer , não por métodos analíticos, mas sim através de métodos numéricos aproximados. A a 6 Abril 2006 b Integração Numérica - Áreas e Equações 6 Áreas e Integração • A integração pode ser pois aproximada por uma soma (aliás o símbolo de integração corresponde ao S de soma estilizado). Denotando por ai a área dos rectângulos, com “canto inferior esquerdo” no ponto xi, temos x0 x1 xn-2 xn-1 xn A lim n 6 Abril 2006 i n 1 a i 0 i Integração Numérica - Áreas e Equações 7 Áreas e Integração • Mas ai f(xi) (xi+1-xi) = f(xi) dx e portanto a soma pode reescrever-se como A i n 1 i n 1 a f ( x ) dx i 0 i i 0 i que no limite corresponde ao integral referido atrás A x b x a f ( x) dx lim dx 0 i n 1 f ( x ) dx i 0 i O cálculo da área “debaixo de uma função”, e portanto a integração numérica dessa função podem ser aproximados por uma soma. 6 Abril 2006 Integração Numérica - Áreas e Equações 8 Exemplo: Cálculo de p • O valor de p pode ser obtido através da área de um círculo de raio 1 (cujo valor é exactamente p). • Na prática é preferível obter o valor de pi/4, área do quarto de circulo, limitado pela função y f ( x) 1 x 2 no intervalo entre x=0 p 4 e x=1. 6 Abril 2006 Integração Numérica - Áreas e Equações 9 Exemplo: Cálculo de p A i n 1 i n 1 a f ( x ) dx i 0 i i 0 function p = pi_area(n) a = 0; x = 0; dx = (1-0) / n; for i = 0 : n-1 x = x + dx; a = a + sqrt(1-x^2)*dx; endfor p = 4 * a; endfunction 6 Abril 2006 i p 4 Integração Numérica - Áreas e Equações 10 Integração de Equações Diferenciais • Apesar de ilustrado com o cálculo de áreas, o cálculo integral tem uma utilidade muito mais geral, sendo por exemplo aplicável a praticamente todos os domínios da Física. • Os exemplos atrás ilustrado correspondem de facto a um caso particular de equações diferenciais, Estas são equações em que são utilizadas não (apenas) as funções mas (também) as suas derivadas. • Por exemplo, a área do trapézio poderia ser obtida através da equação dA( x) 3x dx através de um processo de integração, ou seja, determinação da função A(x), e subtraindo os seus valores nos pontos x = 1 e x = 5. 6 Abril 2006 Integração Numérica - Áreas e Equações 11 Integração de Equações Diferenciais • Em Física é muito frequente defrinirem-se grandezas como função não de outras grandezas mas também da sua variação. • Por exemplo, – a velocidade é a variação da posição em ordem ao tempo d x (t ) v (t ) dt – a aceleração é a variação da velocidade em ordem ao tempo d v (t ) a (t ) dt • Tendo em conta que a força é proporcional à aceleração, o movimento de um corpo (isto é, a função de posição ao longo do tempo x(t) ) pode ser determinado a partir das forças que actuam sobre um corpo. 6 Abril 2006 Integração Numérica - Áreas e Equações 12 Integração de Equações Diferenciais • Por exemplo, no caso da queda de um grave (por acção da gravidade), a única força que actua é a força da gravidade, que se pode considerar constante para um determinado à superfície da Terra. F=mg • Sendo a força e a aceleração (g) constantes, pode-se determinar facilmente a velocidade de um corpo através de d v(t ) d v(t ) a(t ) v(t ) dt a(t ) dt dt dt 6 Abril 2006 Integração Numérica - Áreas e Equações 13 Integração de Equações Diferenciais • Neste caso, sendo a aceleração é constante a(t) = g, pelo que a sua primitiva pode ser determinada analiticamente v(t ) g dt g t v0 em que v0 é a velocidade inicial (no instante t = 0). • Da mesma forma se pode obter a posição do ponto, através da integração da função velocidade 1 2 x(t ) v(t ) dt g t v0 dt gt v0t x0 2 sendo x0 a posição inicial (no instante t = 0). 6 Abril 2006 Integração Numérica - Áreas e Equações 14 Integração de Equações Diferenciais • Esta integração pode naturalmente ser feita através dos métodos numéricos discutidos anteriormente. d v(t ) v(t ) dt g dt g t v0 dt function v = velocidade(t, v0, n) t = 0; v = v0; dt = t/n; for i = 1 : n v = v + g * dt % g = dv/dt endfor endfunction 6 Abril 2006 Integração Numérica - Áreas e Equações 15 Integração de Equações Diferenciais • A posição do grave é obtida identicamente. d x(t ) x(t ) dt v(t ) dt dt function x = posicao(tf, x0, v0, n) x = x0; dt = tf/n; for i = 1 : n x = x + velocidade(t,v0,i)* dt t = t + dt; endfor endfunction 6 Abril 2006 Integração Numérica - Áreas e Equações 16 Integração de Equações Diferenciais • A eficiência desta função é muito baixa. Com efeito, para se obter a posição xi é necessário determinar a velocidade vi que se determina com i somas (a0 dt+ a1dt + a2 dt + ... + ai dt). for i = 1 : i v = v + g * dt endfor % ai = g • Para calcular a posição xi+1 é necessário determinar a velocidade em xi+1. Mas em vez de reaproveitar a soma anterior, adicionando um termo ai+1 dt, o programa vai calcular novamente a soma desde o início, isto é, soma de i+1 termos. • Obviamente, a eficiência aumentará bastante se combinarmos os dois ciclos num só. 6 Abril 2006 Integração Numérica - Áreas e Equações 17 Integração de Equações Diferenciais • O programa abaixo faz essa combinação function x = posicao_2(tf, x0, v0, n) g = 9.8 v = v0; x = x0; dt = tf/n; for i = 1 : n v = v + g * dt; x = x + v * dt; % t = t + dt; % velocidade(t,v0,n)* dt t não é usado ! endfor endfunction 6 Abril 2006 Integração Numérica - Áreas e Equações 18 Integração de Equações Diferenciais • A integração numérica, tem naturalmente a desvantagem de não ser exacta, sendo necessário algum cuidado para garantir que a aproximação obtida é “conveniente”. • Por outro lado, ela é muito mais flexível que a integração analítica, já que não requer a obtenção de “primitivas” ou métodos analíticos de resolução de equações diferenciais. • Por exemplo, assumamos que com a resistência do ar, existe uma força contrária à queda, proporcional à velocidade, ou seja f = mg – rv 6 Abril 2006 Integração Numérica - Áreas e Equações 19 Integração de Equações Diferenciais • Como, pelas leis de Newton, f = m a teríamos ma = mg - rv e portanto a = g – kv % com k = r /m o que poderia ser escrito como d 2x dx g k 2 dt dt podendo x(t) ser obtido por integração desta equação diferencial. • Por métodos numéricos, basta substituir a fórmula da aceleração no programa anterior! 6 Abril 2006 Integração Numérica - Áreas e Equações 20 Integração de Equações Diferenciais • O programa abaixo faz essa alteração, acrescentando o coeficiente de atrito k, como parâmetro de entrada function x = posicao_3(tf, x0, v0, k, n) g = 9.8 v = v0; x = x0; dt = tf/n; for i = 1 : n v = v + (g - k*v) * dt % a = g – k*v x = x + v * dt endfor endfunction 6 Abril 2006 Integração Numérica - Áreas e Equações 21