6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e...

21
6 Abril 2006 Integração Numérica - Áreas e Equações 1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação 2º Semestre 2005/2006

Transcript of 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e...

Page 1: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 Abril 2006 Integração Numérica - Áreas e Equações 1

Integração Numérica – Áreas e Equações

Pedro BarahonaDI/FCT/UNL

Introdução aos Computadores e à Programação2º Semestre 2005/2006

Page 2: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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 f desde o ponto x= x0 até ao ponto x temos

dA = A(x+h) – A(x) f(x) h

x0x x + h

A dA

f(x)

Page 3: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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)

Page 4: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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

Page 5: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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

13

2

53

23)(

225

1

25

1

51

x

x

x

x

xdxxfA

23)(

2xxF

15

3

1 3 5

A = 4*(3+15)/2 = 36

Page 6: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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

Page 7: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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

Page 8: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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

0

1

0

)(

dxxfdxxfAni

ii

dx

bx

ax

1

00

)(lim)(

Page 9: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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

Page 10: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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

)(

Page 11: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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

)(

Page 12: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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

)()(

Page 13: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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 )(

)()(

)()(

Page 14: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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

Page 15: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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

Page 16: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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 )(

)()(

Page 17: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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ó.

Page 18: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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

Page 19: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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

Page 20: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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

Page 21: 6 Abril 2006Integração Numérica - Áreas e Equações1 Integração Numérica – Áreas e Equações Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação.

6 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