• Nenhum resultado encontrado

Mestrado em Engenharia Física Tecnológica

N/A
N/A
Protected

Academic year: 2021

Share "Mestrado em Engenharia Física Tecnológica"

Copied!
21
0
0

Texto

(1)

15

a

Aula - M´

etodos Num´

ericos e Optimiza¸

ao

Programa¸

ao

Mestrado em Engenharia F´ısica Tecnol´

ogica

Samuel M. Eleut´erio sme@tecnico.ulisboa.pt

Departamento de F´ısica Instituto Superior T´ecnico

(2)

etodos Num´

ericos - Introdu¸

ao

A quest˜ao central do estudo de qualquer sistema´e (ou tende a ser) a previs˜ao do seu comportamento em instantes

posteriores (ou anteriores) `aqueles para os quais dispomos de

informa¸c˜ao – condi¸c˜oes iniciais (oucondi¸c˜oes fronteiras). Essa descri¸c˜ao pode fazer-se por:

1 Equa¸c˜oes Diferenciais: equa¸c˜oes que relacionam asfun¸c˜oes

com as suas derivadas, tendo portanto umcar´acter local. S˜aoclassificadaspela derivada demaior grau que incluem.

2 Equa¸c˜oes Integrais: equa¸c˜oes que relacionam asfun¸c˜oescom

os seus integrais, tendo portanto um car´acter n˜ao local(ou

global).

Essas duas formula¸c˜oes s˜ao basicamente equivalentes e a op¸c˜ao por uma ou outra tem essencialmente a ver com o modo como se adaptam ao problema em causa.

Aqui vamos limitarmo-nos `as equa¸c˜oes diferenciais.

(3)

Introdu¸

ao

Porque experimentalmente se verifica que a for¸ca est´a directamente relacionada com a acelera¸c˜ao, isto ´e, com a segunda derivada do espa¸co em ordem ao tempo, uma quantidade muito significativa das equa¸c˜oes diferenciais em F´ısica s˜ao de 2a ordem.

Do ponto de vista pr´atico, para cada problema, temos de responder `as seguintes quest˜oes:

1 Que equa¸c˜ao(em geral, diferencial) deveremos usar para

descrever o problema em causa;

2 Que m´etodospodemos usar pararesolvertotal ou parcialmente

essa equa¸c˜aoe... aplic´a-los.

Uma parte muito substancial dos trabalhos em F´ısica destina-se a responder uma destas quest˜oes.

(4)

Introdu¸

ao

No nosso caso vamos estar mais interessados na segunda tarefa, isto ´e, uma vez conhecida uma certa equa¸c˜ao diferencial, como podemos obter a sua solu¸c˜ao num´erica a partir das condi¸c˜oes iniciais espec´ıficas doproblema.

E, qual o compromisso que devemos fazer entre a precis˜ao dos c´alculos, otempo de desenvolvimento, otempo de c´alculo

e, de um modo geral, com os recursos dispon´ıveis.

Na obten¸c˜ao desolu¸c˜oes existe ainda um outro problema: o estabelecimento das condi¸c˜oes fronteiras (condi¸c˜oes iniciais). ´

E, em muitos casos, uma quest˜ao bastante dif´ıcil de resolver e depende, essencialmente, dotipo de equa¸c˜ao em causa. N˜ao iremos estud´a-la aqui.

(5)

Equa¸

oes Diferenciais

Seja a equa¸c˜ao diferencial de 1a ordem:

dx

dt = f (x , t)

em que ’f(x,t)’ ´e uma fun¸c˜ao de ’x’ e de ’t’.

Um caso simples e conhecido de todos ´e (com ’c’ constante):

dx

dt = c ⇒ dx = c dt ⇒ x = R c dt + c1

em que c1 ´e umaconstante de integra¸c˜ao e com solu¸c˜ao:

x (t) = c t + c1

A solu¸c˜ao aqui obtida chama-se solu¸c˜ao geralda equa¸c˜ao diferencial e descreve os processos f´ısicos por ela regidos. Ao particularizar, adaptam-se asconstantes de integra¸c˜ao a um problema espec´ıfico, obtendo-se umasolu¸c˜ao particular. Designa-se por fixa¸c˜ao das condi¸c˜oes iniciais (oucondi¸c˜oes fronteiras), o processo de obten¸c˜ao dos valores dasconstantes de integra¸c˜ao, que satisfazem um determinado problema.

(6)

Decl´ınio Radioactivo

Um exemplo simples de uma equa¸c˜ao diferencial´e o problema do decl´ınio radioactivo:

Numa dada amostra, ´e constante a frac¸c˜ao de n´ucleos que se desintegram por unidade de tempo.

Ou seja, N(t+δt)−N(t) δt = − λ N(t) ⇒ dN dt = − λ N Resolvendo: dN N = − λ dt ⇒ ln(N) − ln(No) = ln( N No) = − λ (t − to)

Aplicando a fun¸c˜ao exponencial e fazendo to= 0, tem-se:

N = Noe−λ t

Define-se vida m´edia (τ) de uma substˆancia radioactiva como o intervalo de tempo necess´ario para que uma dada quantidade de n´ucleos dessa substˆancia se reduza a metade:

No

2 = Noe

−λ t1/2

τ = t1/2 = ln 2λ

(7)

Decl´ınio Radioactivo - Resolu¸

ao Num´

erica

(’Prog30 01.c’)

Para se fazer a resolu¸c˜ao num´erica dodecl´ınio radioactivo vamos recorrer `a express˜ao inicial que vimos anteriormente:

N(t+δt)−N(t)

δt = −λN(t)

e explicitemos o n´umero de n´ucleos no instante ’t + δt’ em fun¸c˜ao dos valores no instante ’t’:

N(t + δt) = N(t) − λ N(t) δt

Ou seja, o n´umero de n´ucleos no instante ’t + δt’ ´e igual ao n´umero de n´ucleos no instante ’t’ menos ’λ N(t) δt’.

Assim, a express˜ao da lei do decl´ınio fornece-nos a forma expl´ıcita para fazer a suaimplementa¸c˜ao num´erica.

(8)

Equa¸

ao Diferencial de 1

a

Ordem -

etodo de Euler

Generalizando os resultados anteriormente exemplificados para o

decl´ınio radioactivo:

Seja uma equa¸c˜ao diferencial de 1a ordem:

dx

dt = f (x , t)

podemos discretiz´a-la:

x (t+δt)−x (t)

δt = f (x (t), t)

Explicitando o valor de ’x’ no instante ’t + δt’: x (t + δt) = x (t) + f (x (t), t) δt

A express˜ao anterior fornece um m´etodo para resolver iterativamente a equa¸c˜ao diferencial.

A este algoritmo chama-se m´etodo de Euler.

Como j´a vimos, para outros c´alculos, a escala do acr´escimo

’δt’ ´eessencial para se terem bons resultados. H´a que obter um equil´ıbrio entre a precis˜ao dos c´alculos e a sua eficiˆencia.

(9)

Precis˜

ao

(’Prog32 01.c’)

Para al´em dos errosinerentes aos m´etodos temos tamb´em os erros inerentes `as m´aquinas que usamos.

Como se sabe os computadores tˆem uma precis˜ao limitada e a sua correcta utiliza¸c˜ao exige que conhe¸camos as

caracter´ısticas espec´ıficas dos sistemas que usamos.

A precis˜ao m´axima, que podemos ter num c´alculo, pode ser obtida usando um programa que adiciona uma quantidade cada vez menor a uma vari´avel. Quando a vari´avel n˜ao ´e alterada atingimos o limite.

No tocante `a velocidade de c´alculo, ´e bom ter em conta que muitos compiladoresfazem internamente o c´alculo em ’double’. Nestas situa¸c˜oes, fazer os c´alculos em ’float’ poder´a conduzir a c´alculos mais lentos devido aos ’castings’ da´ı resultantes.

(10)

Eficiˆ

encia de C´

alculo

Em programascom um elevado n´umero de opera¸c˜oes´e essencial garantir uma elevada eficiˆencia das tarefas a executar.

Em mais do que uma ocasi˜ao, j´a verific´amos que a op¸c˜ao, por uma ou por outra solu¸c˜ao (algoritmo), nos conduz a tempos de c´alculos significativamente diferentes.

Tamb´em j´a se encontraram situa¸c˜oes, em que a mem´oria requerida pelo programa ´e superior`a que lhe pode ser atribu´ıda.

Os compiladores, em geral, disp˜oem de op¸c˜oes de optimiza¸c˜ao que permitem:

1 Diminuir o espa¸co de mem´oriautilizado; 2 Diminuir o tempo de c´alculo.

No entanto, devemos estar bem cientes de que a melhor optimiza¸c˜ao ´e a que fazemos ao desenvolver um programa.

(11)

Eficiˆ

encia de C´

alculo

Algumas regras b´asicas s˜ao essenciais na escrita do c´odigo de um programa:

Antes de come¸car a escrever um programadevemos

planific´a-lo cuidadosamente para garantir o menor n´umero de opera¸c˜oes;

Eliminar opera¸c˜oes entre constantes nos ciclos;

Usar macrospara implementar pequenas fun¸c˜oes de uso muito frequente. Isto aumenta o tamanho do c´odigo mas reduz o tempo de acesso `as fun¸c˜oes;

Reduzir ao m´ınimo o acesso de leitura e de escrita no ecran ou no disco;

Utilizar o qualificativo ’register’ em vari´aveis de utiliza¸c˜aomuito frequente (nem sempre funciona);

(12)

Eficiˆ

encia de C´

alculo

(’Prog32 02.c’ a ’Prog32 06.c’)

Os programasque se seguem (Prog32 02a6’) ilustram as consequˆencias dediferentes implementa¸c˜oes do c´odigo do mesmo programa b´asico. S˜ao apresentados ostempos de

CPU e os tempos de Rel´ogio em segundos:

Programa Op¸c˜ao de C´odigo CPU Rel´ogio

Prog32 02 C´odigo base sem escrita 0.24 0

Prog32 03 Escrita no ecran 31.61 68

Prog32 04 Escrita num ficheiro 5.55 6

Prog32 05 8./3. → 2.6666 0.13 0

Prog32 06 8./3. → 2.6666 e ’register’ 0.13 0

(13)

Eficiˆ

encia de C´

alculo

(’Prog32 07.c’ a ’Prog32 10.c’)

Os programas Prog32 07a10 mostrou as diferen¸cas de tempos de c´alculo que se obtˆem ao usar ’strlen’ na condi¸c˜ao de um ciclo:

1 (Prog32 07): usa ’strlen’ na condi¸c˜ao de um ciclo;

2 (Prog32 08): usa como condi¸c˜ao do ciclo ’str[k] != 0’;

3 (Prog32 09): usa com condi¸c˜ao do ciclo ’k < len’, em que

’len’ ´e o comprimento da string.

4 (Prog32 10): use uma macro e uma fun¸c˜ao para calcular o

quadrado

Programa Op¸c˜ao de C´odigo CPU Rel´ogio

Prog32 07 ’while (k < strlen(str))’ 5.99 6 Prog32 08 ’while (str[k] != 0)’ 1.92 2 Prog32 09 ’while (k < len)’ 1.92 2

(14)

Queda dos Corpos `

a Superf´ıcie da Terra

Como se disse, um n´umero muito significativo das equa¸c˜oes diferenciais, em F´ısica, s˜ao de 2a ordem.

O movimento, a uma dimens˜ao (1-dim), sem atrito,de um corpo, `a superf´ıcie da Terra, ´e descrito pelalei de Newton:

F = −m g ⇔ mddt2x2 = −m g ⇔ d2x

dt2 = −g

Usando as defini¸c˜oes develocidade e acelera¸c˜ao, obtemos

dv dt = −g

dx

dt = v (t)

ou seja, transform´amos uma equa¸c˜ao diferencial de 2a ordem

num sistema deduas equa¸c˜oes diferenciais de1a ordem, que se podem resolver, como vimos anteriormente.

Assim, a partir da primeira (com to = 0):

dv = −g dt ⇔ Rv

vodv = −g

Rt

to=0dt ⇔ v (t) = −g t + vo

Substituindo este resultado nasegunda e integrando: dx = v dt ⇔ Rx xodx = Rt 0 v dt ⇔ x(t) = − 1 2g t 2+ v ot + xo a

(15)

Queda dos Corpos `

a Superf´ıcie da Terra com Atrito

Infelizmente, a maioria das equa¸c˜oes n˜ao s˜ao assim t˜ao

simples de resolver como o caso anterior.

Se considerarmos agora uma for¸ca de atritoproporcional ao

quadrado da velocidade a 3-dim e a 1-dim: ~

Fa = −k v (t)2 ~|~vv | ; Fa = −k v (t)2sgn(v )

em que sgn(v )´e a fun¸c˜ao sinal.

Equa¸c˜ao do movimento da queda dos corpos com atrito: mddt2x2 = −m g − k v (t)2sgn(v )

Fazendo a sua decomposi¸c˜ao numsistema de duas equa¸c˜oes de 1a ordemediscretizandocom vista `a resolu¸ao num´erica:

δv δt = −g − k mv 2sgn(v ) v = δx δt

ou seja, usando o m´etodo de Euler:

v (t + δt) = v (t) − g δt − mk v (t)2sgn(v (t)) δt

(16)

etodo de Euler e M´

etodo de Euler-Cromer

(’Prog31 01.c’)

Como se viu, a discretiza¸c˜ao do problema anterior conduziu a: v (t + δt) = v (t) − g δt − mk v (t)2sgn(v (t)) δt

x (t + δt) = x (t) +vδt

Uma vez obtido o valor de v(t + δt), a partir da primeira equa¸c˜ao, temos dois valores poss´ıveis da velocidade para substituir na segunda equa¸c˜ao:

M´etodo de Euler: ovalor da velocidadecalculado no instante

’t’: ’v(t)’.

M´etodo de Euler-Cromer: o valor da velocidadecalculado

no instante ’t + δt’: ’v(t + δt)’.

Assim, o sistema anterior, usando o M´etodo de Euler-Cromer, toma a forma:

v (t + δt) = v (t) − g δt − mk v (t)2sgn(v (t)) δt x (t + δt) = x (t) +v(t + δt)δt

(17)

etodo de Euler e M´

etodo de Euler-Cromer

Podemos sistematizar os dois m´etodos aqui descritos e analisar as suas diferen¸cas. Seja pois a equa¸c˜ao diferencial:

d2x

dt2 = f (x (t), t)

O m´etodo de Euler conduz ao sistema: v (t + δt) = v (t) + f (x (t), t) δt x (t + δt) = x (t) + v (t) δt

Enquanto o m´etodo de Euler-Cromer conduz a: v (t + δt) = v (t) + f (x (t), t) δt

x (t + δt) = x (t) + v (t + δt) δt

Se substituirmos v(t + δt) na equa¸c˜ao de x(x + δt), obtemos: x (t + δt) = x (t) + v (t) δt + f (x (t), t) δt2

Como se pode ver, esta express˜ao ´e igual `a dom´etodo de Euler

mais o termo δt2, ou seja, o etodo de Euler-Cromer

(18)

etodo Euler, Erros e Problemas

(’Prog33 01.c’)

Os m´etodos deEuler ou de Euler-Cromer baseam-se na hip´otese da derivada seraproximadamente constante no intervalo δt.

No entanto, em muitas situa¸c˜oes, tal aproxima¸c˜ao n˜ao ´e razoavelmente satisfeita e h´a desvios em rela¸c˜ao `a solu¸c˜ao. E os erros v˜ao-seacumulando...

Para evidenciar as diferen¸cas que surgem entre assolu¸c˜oes exactas e aproximadas, podemos analisar a equa¸c˜ao:

dx

dt = x ⇒ x (t) = C e t

Pode ver-se no programa (’Prog33 01.c’) a diferen¸ca entre a solu¸c˜ao exacta e a solu¸c˜ao aproximada. Odesvio torna-se bastante evidente `a medida que se aumenta o passo ’dt’.

(19)

etodo de Runge-Kutta de 2

a

Ordem

J´a vimos que paramelhorar a convergˆencia das solu¸c˜oes num´ericas ´e conveniente procurar solu¸c˜oes n˜ao lineares. Seja a equa¸c˜ao diferenciale o termo n do m´etodo de Euler:

dx

dt = f (x , t) xn+1= xn+ f (xn, tn) δt

Procuremos ent˜ao obter informa¸c˜ao sobre a derivada no

interior do intervalo para melhorar a estimativa do valor da fun¸c˜ao. Seja ’h’ o acr´escimo da vari´avel.

Designemos por k1 otermo de Euler:

k1 = h f (xn, tn)

Vamos agora fazer uma estimativa no meio do intervalo: k2 = h f (xn+ 12k1, tn+12 h)

Podemos ent˜ao calcular ovalor da fun¸c˜ao no final do intervalo: xn+1 = xn+ k2

Estas trˆesultimas express˜´ oes (k1, k2 exn+1) definem o m´etodo

(20)

etodo de Runge-Kutta de 2

a

Ordem

Decl´ınio Radioactivo

(’Prog30 02.c’ e ’33 02.c’)

A aplica¸c˜ao do m´etodo de Runge-Kutta de 2a ordemao decl´ınio radioactivo d´a: dx dt = −λ x em que f (xn, tn) = −λ xn Para k1 e k2 tem-se k1 = h f (xn, tn) k2 = h f (xn+12k1, tn+12h) k1 = −h λ xn k2 = h (− λ (xn+ 12k1))

Substituindo k1 em k2, obt´em-se

k2 = −λ h xn+ 12λ2h2xn

E finalmente, tem-se o termo geral: xn+1 = xn+ k2

xn+1 = xn− λ h xn+12λ2h2xn

que ´e uma express˜ao de segunda ordem em ’h’ (δt).

(21)

etodo de Runge-Kutta de 4

a

Ordem

O m´etodo de Runge-Kutta de 4a ordem´e provavelmente o

m´etodo de resolu¸c˜ao de equa¸c˜oes diferenciaismais utilizado, e generaliza o caso anterior (Ver ’Prog33 03.c’).

Nesta ordem, o m´etodo utiliza quatro termos: k1 = h f (xn, tn)

k2 = h f (xn+ 12k1, tn+12 h)

k3 = h f (xn+ 12k2, tn+12 h)

k4 = h f (xn+ k3, tn+ h)

O valor da fun¸c˜ao no final do intervalo ´e ent˜ao dado por: yn+1 = yn+16k1+13 k2+ 13k3+ 16k4

que ´e uma express˜ao com potˆenciasde ’h’ at´e `a 4a ordem.

Outras variantes deste m´etodo podem ser encontradas na

bibliografia da cadeira, bem como programas exemplificativos das suas implementa¸c˜oes.

Referências

Documentos relacionados

Ao estudarmos a estabilidade do m´ etodo LCR na equa¸c˜ ao de transporte modelo foi not´ orio que a solu¸c˜ ao num´ erica fornecida ao utilizar a vers˜ ao LCR da equa¸c˜

Quantidade de Resíduos de Embalagens Retomadas (Toneladas) SMAUT Comércio e Serviços Indústria FAP Fábrica de Aglomerados de Plásticos de Manuel Alberto Mendes

Demonstra¸c˜ao. Designamos esse tipo de ponto fixo de n´o repulsivo. Analogamente, se a derivada da fun¸c˜ao F tiver o valor entre 0 e 1, as sequˆencias que come¸carem

O estudo demonstrou que o modelo TAM é adequado para a avaliação da intenção do uso do WhatsApp por professores universitários em um ambiente presencial, principalmente pela

Ora, j´ a vimos que as ´ unicas solu¸c˜ oes da equa¸c˜ ao de Legendre usual que permanecem limitadas nos extremos ±1 (assim como suas derivadas) s˜ao os polinˆ omios de Legendre P

Aten¸ c˜ ao: N˜ ao ser˜ ao aceitas respostas sem justificativa: as express˜ oes que levaram a alguma resposta num´ erica devem ser indicadas nos espa¸cos

Publicamos em 2001 artigo nesta Revista [1], inti- tulado ‘Esfera condutora em movimento: campo, po- tenciais e d´ uvidas’. As ‘d´ uvidas’ se referiam ao sentido f´ısico

[r]