4 abril 2006integração numérica - Áreas e equações1 integração numérica – Áreas e...
TRANSCRIPT
4 Abril 2006 Integração Numérica - Áreas e Equações 1
Integração Numérica – Áreas e Equações
Pedro BarahonaDI/FCT/UNL
Programação Para as Ciências Experimentais2º Semestre 2005/2006
4 Abril 2006 Integração Numérica - Áreas e Equações 2
Á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.
• Com efeito, denotando por A(x) a área da função de x= x0 até x temos A(x+h) – A(x) f(x) h
x0x x + h
A dA
f(x)
4 Abril 2006 Integração Numérica - Áreas e Equações 3
Á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
dx
dA
h
hAhxAxf
h
)()(lim)(
0
x0x x + h
A dA
f(x)
4 Abril 2006 Integração Numérica - Áreas e Equações 4
Á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
bx
ax
bx
ax
ba xFdxxfA
)()(A
a b
4 Abril 2006 Integração Numérica - Áreas e Equações 5
Áreas e Integração
• Exemplo:
• Para determinarmos a área abaixo da curva
y = f(x) = 3x
entre x = 1 e x = 5, 1. obtemos primeiro
1. e portanto
362
1
2
53
23)(
2225
1
51
bx
ax
x
x
xdxxfA
23)(
2xxF
15
3
1 3 5
A = 4*(3+15)/2 = 36
4 Abril 2006 Integração Numérica - Áreas e Equações 6
Á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 b
4 Abril 2006 Integração Numérica - Áreas e Equações 7
Á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
1
0
limni
ii
naA
4 Abril 2006 Integração Numérica - Áreas e Equações 8
Áreas e Integração
• Mas ai f(xi) (xi+1-xi) = f(xi) dx e portanto a soma pode reescrever-se como
que no limite corresponde ao integral referido atrás
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.
dxxfaAni
ii
ni
ii
1
01
1
0
)(
dxxfdxxfAni
ii
dx
bx
ax
1
00
)(lim)(
4 Abril 2006 Integração Numérica - Áreas e Equações 9
Exemplo: Cálculo de • O valor de pode ser obtido através da área de um
círculo de raio 1 (cujo valor é exactamente ).
• Na prática é preferível obter o valor de pi/4, área do quarto de circulo, limitado pela função
no intervalo entre
x = 0
e
x = 1 .
21)( xxfy
4
4 Abril 2006 Integração Numérica - Áreas e Equações 10
Exemplo: Cálculo de
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
4
dxxfaAni
ii
ni
ii
1
0
1
0
)(
4 Abril 2006 Integração Numérica - Áreas e Equações 11
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
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.
xdx
xdA3
)(
4 Abril 2006 Integração Numérica - Áreas e Equações 12
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
– a aceleração é a variação da velocidade em ordem ao tempo
• 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.
dt
tvdta
)()(
dt
txdtv
)()(
4 Abril 2006 Integração Numérica - Áreas e Equações 13
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 = m g
• Sendo a força e a aceleração (g) constantes, pode-se determinar facilmente a velocidade de um corpo através de
dttadtdt
tvdtv
dt
tvdta )(
)()(
)()(
4 Abril 2006 Integração Numérica - Áreas e Equações 14
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
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
sendo x0 a posição inicial (no instante t = 0).
0)( vtgdtgtv
002
0 2
1)()( xtvgtdtvtgdttvtx
4 Abril 2006 Integração Numérica - Áreas e Equações 15
Integração de Equações Diferenciais• Esta integração pode naturalmente ser feita através dos métodos
numéricos discutidos anteriormente.
0
)()( vtgdtgdt
dt
tvdtv
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
4 Abril 2006 Integração Numérica - Áreas e Equações 16
Integração de Equações Diferenciais• A posição do grave é obtida identicamente.
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
dttvdtdt
txdtx )(
)()(
4 Abril 2006 Integração Numérica - Áreas e Equações 17
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 % ai = g endfor
• 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ó.
4 Abril 2006 Integração Numérica - Áreas e Equações 18
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; % velocidade(t,v0,n)* dt
% t = t + dt; t não é usado !
endfor
endfunction
4 Abril 2006 Integração Numérica - Áreas e Equações 19
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
4 Abril 2006 Integração Numérica - Áreas e Equações 20
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
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!
dt
dxkg
dt
xd
2
2
4 Abril 2006 Integração Numérica - Áreas e Equações 21
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