Fisica Comp

89
Física Computacional Professor Klaus Cozzolino Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Física 29 de abril de 2013

Transcript of Fisica Comp

Física Computacional

Professor Klaus Cozzolino

Universidade Federal do ParáInstituto de Ciências Exatas e Naturais

Faculdade de Física

29 de abril de 2013

2

Sumário

1 Introdução 5

1.1 Ementa da disciplina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3 Conceitos iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.4 Fluxogramas e Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.5 Comandos e estruturas no ambiente MATLAB ou OCTAVE . . . . . . . . . . . . . . . 8

1.6 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 Integração e Diferenciação Numéricas 13

2.1 Integrais definidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.1.1 Regra do Trapézio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.1.2 Regra de Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2 Quadratura Guassiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2.1 Quadratura Gauss-Legendre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.3 Integrais Impróprias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3.1 Quadratura Gauss-Laguerre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.4 Diferenciação Numérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.4.1 Aproximações de primeira e segunda ordem para f ′(x) . . . . . . . . . . . . . . 21

2.4.2 Aproximações de primeira e segunda ordem para f ′′(x) . . . . . . . . . . . . . . 22

2.4.3 Aproximações de f ′(x), f ′′(x) e f ′′′(x) cúbicas e quárticas . . . . . . . . . . . . 22

2.5 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3 Raízes de Funções de uma Variável 27

3.1 Método da Iteração Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.1.1 Convergência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.2 Método de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.2.1 Convergência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.3 Método da Bissecção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.4 Método da Secante (Régula Falsi) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.5 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3

4 SUMÁRIO

4 Ajuste de Curvas 31

4.1 Mínimos Quadrados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.1.1 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.2 Ajuste por uma função qualquer (Newton e Gauss-Newton) . . . . . . . . . . . . . . . 34

5 Sistema de Equações Lineares 43

5.1 Definições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.2 Método de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.3 Método de Gauss-Jordan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.4 Decomposição LU (ou Fatoração LU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.5 Método Iterativo de Jacobi-Richardson . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.6 Método de Gauss-Sidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.7 Convergência dos métodos Iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.8 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

6 Solução de Equações Diferenciais Ordinárias 53

6.1 Decaimento Radioativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

6.2 Equação de Poisson 1-D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

6.2.1 Algoritmo de Thomas - Sistemas tridiagonais . . . . . . . . . . . . . . . . . . . 56

6.3 Oscilações Simples, Amortecidas e Forçadas . . . . . . . . . . . . . . . . . . . . . . . . 58

6.3.1 Oscilador Harmônico Simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

6.3.2 Oscilador Harmônico Amortecido . . . . . . . . . . . . . . . . . . . . . . . . . . 60

6.3.3 Oscilações Forçadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

6.4 Algoritmo Verlet (Velocity-Verlet) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

6.5 Sistemas de Equações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

6.6 Método de Runge-Kutta 4ª Ordem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

7 Solução de Equações Diferenciais Parciais 71

7.1 Equação da Difusão 1-D (caso transiente) . . . . . . . . . . . . . . . . . . . . . . . . . 71

7.2 Soluções Numéricas da Equação da Difusão . . . . . . . . . . . . . . . . . . . . . . . . 72

7.2.1 Forward no tempo e centrada no espaço (1-D) . . . . . . . . . . . . . . . . . . . 72

7.2.2 Esquema de Crank-Nicolson (1-D) . . . . . . . . . . . . . . . . . . . . . . . . . 72

7.3 Solução da Equação de Schrödinger 1-D transiente (pacote Gaussiano) . . . . . . . . . 73

7.4 Equação da Onda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

7.5 Equação de Laplace e Poisson 2-D (caso estacionário) . . . . . . . . . . . . . . . . . . . 78

7.6 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Referências Bibliográficas 85

A Obtendo Pontos e Pesos para Quadraturas 87

A.1 Quadratura Gaussiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

A.2 Quadratura Gauss-Legendre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

Capítulo 1

Introdução

1.1 Ementa da disciplina

Introdução a linguagem científica de programação a ser usada no curso: FORTRAN (preferencial-mente), MATHEMATICA, MAPLE, MATLAB (opcionais). Introdução aos métodos básicos de cálculonumérico: zeros de função, ajuste de dados, integração, diferenciação e solução de sistemas algébricos.Solução de equações diferenciais ordinárias que modelem sistemas físicos por métodos numéricos.

Resolução numérica de equações diferenciais parciais em uma e duas dimensões, Transformada deFourier, Processos Estocásticos (opcional), Dinâmica Molecular (opcional).

1.2 Objetivos

Fornecer meios para que o estudante receba, por uma abordagem moderna, as informações básicas,mas necessárias para o uso das facilidades computacionais existentes na maioria das Faculdades eUniversidades.

1.3 Conceitos iniciais

Linguagem de programação: comunicação pessoa ⇐⇒ computador.

Como exemplo de linguagens de programação temos:

• ASSEMBLY - Esta linguagem de programação foi criada no meio da década de 50 para substituira linguagem de máquina (linguagem binária que a Unidade Central de Processamento ou CPUentende).

• ALGOL - ALGOrithmic Language. Criada em 1958 é constituída por uma mistura de linguagensde programação. Considerada a primeira linguagem de programação estruturada.

• COBOL - COmmon Business Oriented Language. Criada em 1960 com objetivo de manipulargrandes arquivos. Utilizado por bancos e empresas para manutenção de contas correntes, folhasde pagamento, controle de estoque e outras aplicações.

• BASIC - Beginner’s All-purpose Symbolic Instruction Code. Foi criada em 1964 no DartmouthCollege e muito utilizada nos primeiros computadores pessoais (PCs).

• VBASIC - Visual Basic. Evolução da Linguagem Basic, muito usada na construção de aplicativospara sistemas Windows como MSOffice e outros aplicativos gráficos.

5

6 CAPÍTULO 1. INTRODUÇÃO

• PASCAL - Criada em 1970 por Niklaus Wirth, tinha por objetivo a substituição do BASIC porser uma linguagem estruturada e robusta. As liguagens de programação Turbo Pascal e Delphisão evoluções do PASCAL.

• C - Foi lançada em 1972 para o desenvolvimento de sistemas operacionais UNIX sua evoluçãoresultou na linguagem C++ muito utilizada para programação científica.

• FORTRAN - FORmula TRANslation. A primeira versão padronizada foi lançada em 1966 tendoo nome de FORTRAN66. Aprimoramentos do compilador culminaram nas versões FORTRAN77, 90 e 95.

• JAVATM - muito utilizada atualmente em ambientes de internet, nos celulares, em vizualizações3D e aplicativos gráficos. Desenvolvida pela companhia Sun Microsystems é uma linguagem deprogramação multiplataforma.

Qualquer que seja a linguagem de programação usada precisamos seguir algumas importantes etapaspara que tenhamos sucesso. São elas

1. planeje os projetos antecipadamente - identifique as principais variáveis a serem usadas noscálculos, o método ou métodos numéricos a serem empregados e como os resultados devem serapresentados;

2. desenvolva-os por estágios - início, corpo e saídas;

3. modularize-os - se possível estruture seu programa em módulos estanques;

4. mantenha-o simples - códigos complexos dificultam a depuração, ou seja, a identificação e remoçãodos erros tipográficos, lógicos e metodológicos;

5. sempre teste cada estágio - a saída de um estágio (dados, números, decisões) é normalmenteusada no próximo módulo. Se um estágio estiver com erros os resultados do próximo tambémestarão errados;

6. documente todo o programa - insira comentários para facilitar a compreensão das etapas sempreque julgar necessário;

7. obtenha e interprete seus resultados

denominadas de REGRAS de OURO da PROGRAMAÇÃO RINO (2008) ou golden rules, na línguainglesa .

1.4 Fluxogramas e Algoritmos

Todo programa - ou código fonte - é escrito com um editor de texto normalmente muito simples como oNotepad (do Windows), o Vi (do Linux), o Edit (no DOS) mas é possível editar também em ambientesde programação próprios à linguagem em uso como o MSDeveloperStudio para Fortran ou C++ ouVisual Studio C++.

Os programas mais simples assemelham-se à uma redação possuindo início, meio e fim (ou conclusão).O início de um programa é normalmente denominado de etapa de inicialização e/ou entrada de dados:contém informações importantes que serão utilizadas tais como constantes, dimensões de matrizes ede vetores bem como valores iniciais. O corpo do programa contém as instruções principais a serempassadas à Unidade de Processamento Central (CPU) da máquina para que a mesma realize as tarefas.É nesta etapa que os cálculos são realizados através de linhas de comando/instruções específicas à cadalinguagem de programação, i. e.

a = 2 + b, atribua ao a o resultado da soma de 2 com b ec = a ∗ exp(−b ∗ t), atribua ao c o resultado das operações.

1.4. FLUXOGRAMAS E ALGORITMOS 7

Na conclusão do código fonte encontramos instruções como saída de resultados para arquivos, saí-das gráficas ou simplismente uma menssagem de finalização da execução. Uma simples saída como“Aplique na Ação X” ou “NÃO Aplique na Ação Y” pode ser o resultado de inúmeras linhas de ins-truções de um código executável.

O Algoritmo: é um conjunto resumido de instruções (ou camandos) a serem realizadas pelo compu-tador.

O Fluxograma: apresenta as instruções de um algoritmo na forma gráfica através de figuras geomé-tricas com as instruções principais em seu interior.

Exemplos de algoritmos, fluxogramas introdução a programação podem ser encontrados em GUSMAN;VASCONCELLLOS (1985); MEDINA; CRISTINA (2005).

Exemplo 1: desejamos construir uma tabela com 1000 linhas que contenha em suas colunas o tempo,a velocidade e a posição de um objeto que se desloca com aceleração constante. Para isso usamosas equações da Física pertinentes à cinemática inserindo, via teclado, alguns dados iniciais comoposição e velocidade em t = to. Abaixo temos um exemplo de fluxograma e um do algoritmodesenvolvido para tal fim.

.

1. Inicialize as variáveis: N = 0, dt = 0.1, a, vo,xo, to

2. Calcule:novo tempo t = to + N*dt;nova velocidade v = vo + a*t;nova posição x = xo +vo*t +0.5*a*t^2

3. Escreva em TAB.DAT: t , v e x

4. Incremente o valor de N: N = N + 1

5. Se N < 1000 vá para o passo 2 caso contrário6

6. Fim

Figura 1.1: Exemplo de Fluxograma (à esquerda) e Algoritmo (à direita) para geração de uma tabelade dados (arquivo TAB.DAT) com 1000 linhas contendo em cada linha tempo (t), velocidade (v) eposição (x).

Observe e reflita: no fluxograma encontramos uma figura de decisão (losângulo) com a instrução “N é maior ou igual a 1000? “. Porém, no item 5 do algoritmo tem-se, “ Se N for menor do que 1000vá ...”. Estas instruções são claramente diferentes mas realizam o mesmo propósito: a repetição dasinstruções necessárias a construção de uma tabela contendo o tempo, a velocidade e a posição de ummóvel em movimento retilíneo uniformemente acelerado - MRUA.

8 CAPÍTULO 1. INTRODUÇÃO

1.5 Comandos e estruturas no ambiente MATLAB ou OCTAVE

Como em qualquer ambiente de programação é importante sabermos passar para o computador umconjunto de comandos para que o mesmo compreenda e execute. A Tabela 1.1 abaixo contém algunscomandos e estruturas encontrados na maioria dos programas científicos. Os dois primeiros são es-truturas de laço usados para executar repetidamente uma instrução ou um conjunto de instruções ouoperações com diferentes dados a cada laço. O terceiro caso é usado em situações que exijam decisão,por exemplo, se o relógio estiver parado dê corda e acerte a hora, caso contrário não faça nada.

Informações adicionais das funções pré-definidas no ambiente Matlab são encontradas em JALÓN;RODRÍGUEZ; VIDAL (2001); JALÓN; RODRÍGUEZ; VIDAL (2005) bem como nos arquivos deajuda (help) que vêm junto com o aplicativo THE MATHWORKS (2002a,b,c)

Exemplo 2: para criar um vetor linha com quatro elementos escrevemos no “prompt” do ambienteMatlab (>‌>):

>> v = [ 0 . 0 0 .5 0 .9 1 . 2 ] ;

e teclamos enter. Os elementos do vetor devem estar separados por espaço ou vírgulas. Um vetorcom elementos igualmente espaçados de 0.1, que inicie com 0 e termine com 0.5, pode ser criadousando a linha de comando:

>> vi = 0 : 0 .1 : 0 . 5 ;

o que resultará em um vetor com seis elementos vi = [0.0 0.1 0.2 0.3 0.4 0.5]. Se desejamos definiruma matriz 4x4 usamos

>> M = [ 0 . 5 3 .0 2 .5 3 .6 ; 1 . 0 6 .0 3 .0 2 .8 ; 2 . 0 5 . 0 3 .0 4 .0 ; . . .1 . 0 8 . 0 4 .0 2 . 0 ] ;

onde a quebra da linha da matriz é indicada pela inserção do ’ ; ’. Multiplicar a matriz M porum vetor coluna vt ou seja o vetor transposto de v fazemos:

>> v1 = M∗v ’ ;

Já uma matriz inversa pode ser obtida com o comando inv :

>> IM = inv (M) ;

Para obtermos o quadrado dos valores de um vetor usamos:

>> v2 = v .∗ v ;

cujos elementos serão v2 = [02 0.52 0.92 1.22] = [0 0.25 0.81 1.44], porém se fizermos

>> re s = v ∗ v ’ ;

o resultado será o produto interno de ~v · ~v = 02 + 0.52 + 0.92 + 1.22= 2.5. A sutil diferença - oponto antes do sinal de multiplicação - instrui a CPU que: multiplique o primeiro elemento de v(antes de .* ) com o primeiro elemento de v (depois de .*) assim sucessivamente até os últimoselementos dos vetores, armazenando cada resultado no vetor v2. Se usarmos

>> v2 = v .^2 ;

também obtemos um vetor resultante v2 idêntico ao anterior onde cada elemento de v2 é oquadrado do respectivo elemento em v. Se desejamos criar uma matriz 3x3 com todos os elementosnulos podemos usar o comando zeros na forma

>> MZ = ze ro s ( 3 , 3 ) ;

e atribuímos valores a cada elemento da matriz usando por exemplo

1.5. COMANDOS E ESTRUTURAS NO AMBIENTE MATLAB OU OCTAVE 9

Tabela 1.1: Estruturas e comandos iniciais em MATLAB/OCTAVE.

Comando/ Estrutura Exemplo Comentário

for ... end

for i = 1 : N;comando 1 ;comando 2; ...

end;

estrutura de laço - para ivariando de 1 até N repitacomando 1 e comando 2

while ... condição ...end;

while condição;comando1 ;comando2 ; ...

end;

estrutura de laço - enquantocondição for verdadeira

repita as instruções comando1 e comando 2

if ... else ... end;

if condição;comando 1;

else;comando 2;

end;

estrutura de decisão - secondição for verdadeiraexecute comando 1 casocontrário exec comando2

+ e - y = z + w - I soma e subtração* e / x = vo + a * t; y = z / x ; multiplicação e divisão^ y = yo + a * t^2 potenciação ou radiciação

cos , acos , sin , asin,tan , atan , sec , asec ,

...a = cos(x) , arc = asin(M) operações trigonométricas e

suas inversas (radianos)

whos whos lista as variáveis e bem comosuas dimensões

clear clear ; clear x y zsuprime todas as variáveis doespaço de trabalho ativo esuprime apenas x, y e z

length( ) length(x) ; length(M)no. de elementos do vetor x emax. dimensão da matriz M

zeros( ) , ones( ) M=zeros(3, 2) ; N=ones(3, 2)inicializa uma matriz 3x2 comtodos elementos nulos ou uns

( ... ) y = 2*pi / (3 * y) indica preferência na operaçãohelp comando ou

função help plot lista uma ajuda sobre ocomando plot

load load nome.ext -ascii

carrega na memória os dadoscontidos no arquivo nome.exte cria uma matriz no ambiente

Matlab

save save nome.ext variável -ascii

salva no diretório correnteos dados armazenados em

variável no arquivonome.ext

’ vt = v’ ; Mt = M’ ;

transposição do vetor/matriz(valores reais) ou

transposição do complexoconjugado

10 CAPÍTULO 1. INTRODUÇÃO

>> MZ(1 ,1 ) = 5 . 0 ; % o elemento de MZ l inha 1 coluna 1 passa a s e r 5 . 0>> MZ(2 ,3 ) = 1 . 0 ; % o elemento de MZ l inha 2 coluna 3 passa a s e r 1 . 0

Exemplo 3: O código fonte depende da linguagem de programação.

Código fonte do Exemplo 1 em FORTRAN

program tabela! cria TAB.DAT c/ t v e xinteger :: N, Nlin=1000real :: dt=0.1real :: t, v, x, to, vo, xoopen(unit=10, file=’TAB.DAT’,&status=UNKNOWN)

print*,’entre c/ a,to,vo,xo’read*,a,to,vo,xoN = 0do while (N < Nlin)

t = to + N * dtv = vo + a * tx = xo + vo *t + 0.5* a * dtwrite(10,*) t, v, xN = N + 1

end doclose(10)write(6,*) ’FIM DA EXECUÇÃO’stopend

Código fonte do Exemplo 1 em MATLAB/OC-TAVE

% tabela.m% cria TAB.DAT c/ t v e xNlin = 1000;dt = 0.1;a =input(’Entre c/ a :’);to=input(’Entre c/ to:’);vo=input(’Entre c/ vo:’);xo=input(’Entre c/ xo:’);fid = fopen(’TAB.DAT’,’w’);N = 0;while N < Nlin;

t = to + N * dt;v = vo + a * t;x = xo + vo *t + 0.5* a * dt;fprintf(fid,’%e %e %e \n’,t,v,x);N = N +1;

end;fclose(fid);disp(’FIM DA EXECUÇÃO’)

Figura 1.2: Códigos fonte em FORTRAN (à esquerda) e Matlab ou OCTAVE (à direita).

No código para Matlab acima as duas primeiras linhas são comentários e portanto não sãoexecutadas: começam com “ % ”. Na terceira e quarta linhas são inicializadas as variáveisnúmero de linhas da tabela (Nlin) e incremento do tempo (dt). Da quinta a oitava linha vemosas instruções de entrada de dados via teclado (comando input). O arquivo “ TAB.DAT “ éaberto para escrita na nona linha. Na décima linha inicializa-se o contador “ N ” necessário àestrutura de laço “ while ” compreendido entre as linhas 11 à 18. Dentro do laço as instruçõesserão executadas enquanto a condição “ N < Nlin “ for verdadeira. Os valores de t, v e x sãoalterados a cada laço e o comando fprintf instrui a máquina a escrever os valores das variáveisem uma linha no formato científico (%e) 1.2345678e00 que equivale a 1.2345678×1000. O “ \n “instrui o computador a pular de linha após escrever os valores numéricos de t, v e x no arquivo,isto para cada valor do contador N . Na sequência o valor de N é incrementado de uma unidadepara um nova repetição das instruções dentro do laço. Quando N for igual a 1000 o laço éinterrompido e o computador irá executar a linha posterior ao “ end “ ou seja irá fechar o arquivo“ TAB.DAT ” para então escrever no prompt do ambiente Matlab o fim da execução do script“ tabela.m “.Deve-se ressaltar que em ambos os códigos existe um erro no cálculo de x(t): o último termo daequação deveria ter 0.5*a*t*t. Este tipo de erro não é incomum, ou o programador desconhece aequação da cinemática ou ocorreu erro de digitação. Em ambos os casos os resultados da posiçãoda partícula no arquivo TAB.DAT estarão errados!

Exemplo 4: A série de Taylor da funçao f(x) = senx é dada por

f(x) = senx = x− x3

3!+x5

5!− x7

7!+ · · · =

∞∑k=1

(−1)k+1x2k−1

(2k − 1)!

1.6. EXERCÍCIOS 11

Para responder quantos termos são necesários para que o resultado da série em x = π/3 tenhaprecisão de 4 casas decimais foi desenvolvido o seguinte algoritmo

1- limpar memória2- definir soma como zero3- definir precisão desejada4- inicializar o contador k ← 05- definir ponto x6- enquanto termo > = precisao faça

k ← k + 1termo ← (-1)^(k+1) * x^(2*k -1) / (2*k -1) !soma ← soma + termo

fim do laço 67- escreva o valor do contador k

Observações: no ambiente Matlab/Octave o fatorial de um número (num) é obtido usandoa instrução factorial(num). Um erro frequente ao codificar o algoritmo acima para uma lingua-gem de programação pode ocorrer: o valor da variável termo não foi definido antes do teste nainstruçao de número 6.

Exemplo 5: A série d

1.6 Exercícios

1.1- Edite um arquivo de nome “tabela.m” copiando o script (código fonte) para Matlab/Octaveapresentado na Figura1.2. No ambiente Matlab execute o código e verifique a presença do arquivoTAB.DAT no diretório de trabalho, após a execução do script. Abra o arquivo “TAB.DAT” como editor e verifique se número de linhas está correto.

1.2- Ao final do código “tabela.m” adicione a linha “load TAB.DAT“ e abaixo outra linha ” plot(TAB(:,1),TAB(:,3),’b--’); grid; “ salve, execute o código e descreva o que aconteceu. Mude ’b--’ nocomando gráfico plot para ’ro’, salve, execute o script e descreva o que ocorreu. Digite helpplot no prompt (>‌>) do ambiente MATLAB, leia o texto e tire suas conclusões.

1.3- (a) Crie um algoritmo com intuito de gerar um arquivo de dados (mhs_a.dat) que contenha100 linhas de modo que cada linha possua o tempo (t), a deformação da mola (xs) do MHS ea deformação da mola (xa) do movimento harmônico amortecido. (b) Transcreva o algoritmopara um fluxograma. (Dica: reveja o conteúdo de oscilações para obter as equações horárias dex(t) para cada sistema físico).

1.4- Crie um script para o ambiente Matlab/Octave que gere um vetor de elementos igualmenteespaçados de 1 a 1001, com incremento de 10. Em seguida use a estrutura de laço “for i =inicio:incremento:fim; comandos; end;“ para somar os elementos do vetor. ( Obs.: no Matlabobtemos o valor numérico do elemento i=2 de um vetor usando v(i). Isto é equivalente aescrever valor=v(2), o que atribui a variável valor o número armazenado na posição 2 do vetorv. Dica: reveja o script na Figura 1.2 na página oposta e preste atenção no contador N. Estaestrutura também é chamada de acumulador e pode ser ligeiramente modificada para acumularas sucessivas somas dos elementos do vetor.)

1.5- O C.M. (centro de massa) de um sistema discreto de massas é calculado por ~r = xCM i +yCM j + zCM k onde xCM =

∑mixi/

∑mi e assim sucessivamente. Considere um sistema de

seis massas, m = [1.0, 3.0, 5.0, 2.0, 4.0, 3.0] no plano xy. Suas posições no eixo x e y sãox = [0.0, 0.5, 1.0, 2.0, 3.0, −5.0] e y = [−1.0, 0.0, 2.0, 4.0, 6.5, 8.0], respectivamente. Faça umscript para Matlab/OCTAVE que a partir dos dados de m, x e y calcule a posição do centro de

12 CAPÍTULO 1. INTRODUÇÃO

massa ~rCM . (Use estrutura de laço, um somador para xCM e outro somador para yCM ). Adicionea instrução “plot(x, y, ’ro’, xcm, ycm, ’bs’)” e execute novamente o script. Descreva o resultadográfico.

1.6- Considere n ∈ [1, 1000]. Escreva um código usando instruções na linguagem Matlab/Octave queobtenha o resultado da soma dos números pares bem como dos números ímpares entre 1 e 1000.Para tanto use uma estrutura de decisão

Se condição façasomapar ← somapar + n

caso contrário façasomaimp ← somaimp + n

fim do Seque teste se o número é par (condição) usando o resto da divisão entre dois números mod(x, y)ou rem(x, y). Veja na ajuda a documentação sobre a instrução mod: use help mod.

1.7- Uma carga teste (próton) encontra-se no vácuo sob açãode um campo elétrico uniforme de 10−5V/m e sentidocomo indicado na Figura 1.3. Em t = 0s sua posição éde 1 m a direita da origem e possui velocidade de 53,6m/s da direita para esquerda. Assumindo a massa de1, 67× 10−27Kg e carga de 1, 6× 10−19C

(a) escreva a equação horária de sua posição e(b) faça um script (Matlab/Octave) para encontrar os

dois instantes em que o próton cruza a origem do sistemade coordenadas: defina as quantidades pertinentes; comelas obtenha a aceleração da carga teste; (o script deveresolver a equação do segundo grau em t);

(c) crie um vetor com valores de tempo no intervalo[0, 0,15]s e incremento de 10−4s; em seguida usando aequação horária x(t) do item (a) calcule as posições dopróton nestes tempos e faça um gráfico usando a instru-ção plot(t, x);

(d) a partir do gráfico estime a máxima distância ne-gativa alcançada pelo próton e

(e) em que instante ele estará na posição x = 2m.

Figura 1.3: Próton em campo elétricouniforme. Esquema do exercício 1.7.

Observação: neste exercício deconsideramos as pertubações geradas pelo campo da carga testesobre o campo elétrico uniforme bem como o campo irradiado por ela em virtude de sua pequenaaceleração, como preconiza o eletromagnetismo clássico.

1.8- Considere os dados do exercício anterior e a expressão da massa relativística M dada por

M =m√

1−(vc

)2

onde v é a velocidade instantânea do próton e c é a velocidade da luz.(a) Escreva um código para gerar um gráfico da dependência da massa do próton com o tempo

(o gráfico é um dos produtos finais) ;(b) execute o código considerando o intervalo de tempo do exercício anterior e(c) altere a linha do código que gera o tempo para um tempo final de 1000 s e incremento de

1 s; execute-o e analizando o gráfico responda(d) é necessário considerar o efeito relativístico da massa no problema ?(e) Quais são os valores de x e v em t = 1000 s ? (Use o x(1000) e v(1000))

Capítulo 2

Integração e Diferenciação Numéricas

Em Física é comum o cálculo de integrais como por exemplo a do trabalho de uma força que dependeda posição ou o impulso provocado por determinada força que depende do tempo. As vezes a funçãoa ser integrada leva a manipulações algébricas complexas e o importante em determinadas situaçõesé o resultado numérico para interpretação. Este capítulo têm por finalidade ilustrar alguns aspectosbásicos dos processos de integração e diferenciação numérica aplicadas a funções reais de uma variável.

2.1 Integrais definidas

2.1.1 Regra do Trapézio

Consideremos uma função f(x) conhecida e definida para qualquer valor de x ∈ [a, b]. Desejamoscalcular o resultado da integral definida

I =

ˆ b

af(x) dx,

sendo f(x) finita no intervalo x ∈ (a, b). Uma possibilidade seria usar a definição da Integral deRiemann (SPIEGEL, 1975, p.102)

I =

ˆ b

af(x) dx = lim

∆x→0

∑i

f(ci)∆xi , (2.1)

onde ci é um valor compreendido no intervalo [xi, xi + ∆xi]. Fazendo ∆x pequeno obtemos a Regrados Retângulos.

13

14 CAPÍTULO 2. INTEGRAÇÃO E DIFERENCIAÇÃO NUMÉRICAS

Outro método, mais preciso, é a Regra dos Trapézios:discretizamos o intervalo [a, b] em N − 1 segmentosde largura ∆x onde N é o número de avaliações dafunção. Dado um conjunto de valores de xi a saberx = [a, (a + ∆x), (a + 2∆x) + . . . . . . + (a + (N −1)∆x), b] = [x1, x2, . . . , xN ] a área genérica Areai deum trapézio é dada por (ver Figura (2.1))

Areai =1

2(f(xi) + f(xi+1)) ∆x

e, somando para todos os intervalos de 1 a N −1 vêm

I =

[1

2f(x1) + f(x2) + . . .+ f(xN−1) +

1

2f(xN )

]∆x.

Figura 2.1: Elemento genérico de área do mé-todo dos trapézios.

Como f(x1) = f(a) e f(xN ) = f(b) podemos escrever

Iab =

N∑i=1

f(xi)−1

2[f(a) + f(b)]

∆x =

N∑i=1

fi −1

2[f(a) + f(b)]

∆x. (2.2)

Exemplo 1: um ’script ’ simples para implementar o método acima encontra-se a seguir.

% Reg_Trap.m% use para dados com ’dx = cte.’clear;N1=input(’Entre com o no. de intervalos (N-1): ’);N =N1+1;a =input(’Entre com o limite inferior a: ’);b =input(’Entre com o limite superior b: ’);dx=(b-a)/N1;soma=0;for i = 1:N ; % inicio do laço para soma

x(i)= a+(i-1)*dx;f(i)= % função( x(i) ) % expressão da função a ser integrada nesta linhasoma = soma + f(i);

end; % fim do laçodisp(’O resultado da integral eh:’)I = dx*( soma - 0.5*( f(1) + f(N) ) )

2.1.2 Regra de Simpson

Uma forma alternativa e normalmente mais precisa do que a Regra dos Trapézios é a Regra deSimpson que faz uso de três avaliações da função para definir a área elementar. Neste caso podemosescrever de forma compacta a expressão desta regra a saber

Iab =∆x

3

(N−1)/2∑i=1

[f(x2i−1) + 4f(x2i) + f(x2i+1)]

Iab =∆x

3

(N−1)/2∑i=1

[f2i−1 + 4f2i + f2i+1] . (2.3)

2.2. QUADRATURA GUASSIANA 15

Neste método o número de intervalos (N−1 ) entre a e b deve ser par. Ao deduzir sua fórmula Simpsonaproxima a função por uma parábola em cada conjunto de 3 pontos como ilustrado na Fig. 2.2 sendoxi = a+ i∆x, xi−1 = a+ (i− 1)∆x e xi+1 = a+ (i+ 1)∆x para i = 1, 1, 2,...,N-1.

x x xi-1 i i+1

y

x

yiyi+1

yi-1

y=f(x)

Figura 2.2: Regra de Simpson 3 pontos: aproximação da área elementar abaixo da parábola.

A área elementar é obtida integrando uma função parabólica y(x) = cox2 + c1x+ c2 que se ajusta aos

três pontos de avaliação da função. O valor aproximado da integral será

Ai =

ˆ xi+1

xi−1

(cox

2 + c1x+ c2

)dx

=[co

3x3 +

c1

2x2 + c2x

]xi+1

xi−1

=[co

3

(x3i+1 − x3

i−1

)+c1

2

(x2i+1 − x2

i−1

)+ c2 (xi+1 − xi−1)

]Ai =

(xi+1 − xi−1)

6

[2co(x2i+1 + xi+1xi−1 + x2

i−1

)+ 3c1 (xi+1 + xi−1) + 6c2

]escrevendo em termos da função y(x) temos

Ai =(xi+1 − xi−1)

6

y(xi+1)︷ ︸︸ ︷

cox2i+1 + c1xi+1 + c2 +

y(xi−1)︷ ︸︸ ︷cox

2i−1 + c1xi−1 + c2 +

+co(x2i+1 + 2xi+1xi−1 + x2

i−1

)+ 2c1 (xi+1 + xi−1) + 4c2

]

=(xi+1 − xi−1)

6

y(xi−1) + y(xi+1) + 4

[c0

(xi+1 + xi−1

2

)2

+ c1

(xi+1 + xi−1

2

)+ c2

]

Ai =(xi+1 − xi−1)

6

[y(xi−1) + y(xi+1) + 4y

(xi+1 + xi−1

2

)].

Usando as igualdades xi+1 − xi−1 = 2∆x e (xi+1 + xi−1)/2 = xi escrevemos a área elementar abaixoda parábola na forma

Ai =∆x

3[y(xi−1) + 4y (xi) + y(xi+1)] ,

o que leva à Regra de Simpson (Eq. 2.3) ao somarmos para todo o intervalo.

2.2 Quadratura Guassiana

No último exemplo ficou claro a necessidade de se resolver uma integral definida no intervalo [a, b]. AQuadratura Gaussiana é um método de integração que basicamente substitui a integral por uma soma

16 CAPÍTULO 2. INTEGRAÇÃO E DIFERENCIAÇÃO NUMÉRICAS

do produto de uma função peso w(xi) pela função f(x) a ser integrada, i.e.

ˆ b

af(x)dx ≈

n∑i=1

w(xi)f(xi) (2.4)

onde os valores de xi, pontos de avaliação da função, são definidos em termos do número de pontosn da soma. Como regra básica se a função f(x) é um polinômio de grau 2n − 1 serão necessários npares (xi, wi) para que o resultado da integral seja exato. Para a aplicação deste método é necessárioo conhecimento da função f(x).

Exemplo 2: o ’script ’ a seguir foi adaptado de uma subrotina em Fortran (PRESS et al., 1989). Osresultados serão precisos caso f(x) seja um polinômio de grau menor ou igual à 19.

% Integ_gauss.m% realiza a integral de f(x) por quadratura gaussiana% preciso para polinômios de grau <= 19clear;% define pontos da quadratura xixi=[.1488743389,.4333953941,.6794095682,.8650633666,.9739065285];%% define os pesos wiwi=[.2955242247,.2692667193,.2190863625,.1494513491,.0666713443];%% entrada dos limites a e ba=input(’Entre c/ limite inferior: ’);b=input(’Entre c/ limite superior: ’);%% define a função a ser integradaff=inline(’cos(8*x).*exp(-x)’,’x’)%%xm=0.5*(b+a);xr=0.5*(b-a);soma=0;for j=1:5;

dx=xr*xi(j);soma=soma + wi(j)*( ff(xm+dx) + ff(xm-dx) );

end;disp(’O resultado da integral eh: ’)soma=soma*xr

Exemplo 3: o código acima pode ser reescrito usando o formalismo matricial a saber:

% Integ_gauss1.m% realiza a integral de f(x) por quadratura gaussianaclear;% define pontos da quadratura xixi=[.1488743389,.4333953941,.6794095682,.8650633666,.9739065285];%% define os pesos wiwi=[.2955242247,.2692667193,.2190863625,.1494513491,.0666713443];

2.2. QUADRATURA GUASSIANA 17

%% entrada dos limites a e ba=input(’Entre c/ limite inferior: ’);b=input(’Entre c/ limite superior: ’);%% define a funcao a ser integradaff=inline(’cos(8*x).*exp(-x)’,’x’)%%xm=0.5*(b+a);xr=0.5*(b-a);dx=xr*xi;soma=wi*( ff(xm+dx) + ff(xm-dx) )’;disp(’O resultado da integral eh: ’)soma=soma*xr % desnormaliza o resultado

Exemplo 4: existe no Matlab/OCTAVE algumas funções escritas para este fim. Ao final do ’script ’abaixo existem três linhas de comando com as funções pré-definidas no ambiente Matlab: quad,quad8 e quadl. A forma de chamá-las para o cálculo das integrais é o mesmo: quad(nome_função,lim_inf, lim_sup, tolerância).

% Integ_gauss2.m% realiza a integral de f(x) por quadratura gaussianaclear;%% entrada dos limites a e ba=input(’Entre c/ limite inferior: ’);b=input(’Entre c/ limite superior: ’);%% define a funcao a ser integradaff=inline(’cos(8*x).*exp(-x)’,’x’)%% realiza a integraldisp(’O resultado da integral eh: ’)soma=quad(ff,a,b)disp(’O resultado da integral eh: ’)soma=quad8(ff,a,b)disp(’O resultado da integral eh: ’)soma=quadl(ff,a,b) % nas versoes mais antigas não tem

2.2.1 Quadratura Gauss-Legendre

Quando os limites de integração de uma função são finitos é comum a aplicação de uma substituiçãode variáveis

x = xR z + xM , onde

xR =b− a

2,

xM =b+ a

2.

18 CAPÍTULO 2. INTEGRAÇÃO E DIFERENCIAÇÃO NUMÉRICAS

com o intúito de normalizar os mesmos para o intrervalo [-1, 1]. Assim a integral definida no intervalox ∈ [a, b] é reescrita na forma de um somatório a saber

I =

ˆ b

af(x) dx =

ˆ 1

−1f

(b− a

2z +

b+ a

2

)[b− a

2dz

]=

b− a2

ˆ 1

−1f

(b− a

2z +

b+ a

2

)dz

I ≈ b− a2

n∑i=1

Wi f

(b− a

2zi +

b+ a

2

)(2.5)

I ≈ xR

n∑i=1

Wi f (xR zi + xM ) .

onde zi são as raízes do Polinômio de Legendre Pn(z) com pesos calculados por

Wi =2(

1− z2i

)[P ′n(zi)]

2 .

Os polinômios de Legendre são obtidos recursivamente segundo (ARFKEN; WEBER, 2001, p.749)pela equação

Pn+1(z) = 2zPn(z)− Pn−1(z)− zPn(z)− Pn−1(z)

(n+ 1).

Para obtê-los iniciamos com n = 0, sabendo que P0(z) = 1 e, recursivamente, derivamos os polinômiosde graus mais elevados. Como exemplo os quatro primeiros polinômios de Legendre são

P1(z) = z,P2(z) = 1

2

(3z2 − 1

),

P3(z) = 18

(5z3 − 3z

),

P4(z) = 18

(35z4 − 30z2 + 3

).

Abaixo um script em Matlab/OCTAVE (TREFETHEN, 2008) para o cálculo dos pontos e pesosnecessários a aplicação do método

% esta funcao deve estar salva no diretório de trabalho% com o nome GaussLegendre.mfunction [x, w] = GaussLegendre(n)% x - pontos da quadratura (saida)% w - pesos da quadratura (saida)% n - numero de pontos da quadratura (entrada)i = 1:n-1;a = i./sqrt(4*i.^2-1);CM = diag(a,1) + diag(a,-1);[V L] = eig(CM);[x ind] = sort(diag(L));V = V(:,ind)’;w = 2 * V(:,1).^2;

Com esta função salva no diretório de trabalho podemos obter os pontos e respectivos pesos da qua-dratura Gauss-Legendre usando uma instrução como

>‌> [x , w] = GaussLegendre(3)x =

-0.77459666924148 0 0.77459666924148w =

0.55555555555556 0.88888888888889 0.55555555555556

o que atribui a x as raízes do polinômio de Legendre de terceiro grau (pontos da quadratura) e à w osrespectivos pesos. Neste caso é possível integrar com precisão um polinômio, f(x), de grau menor ouigual à 2n− 1 = 5.

2.3. INTEGRAIS IMPRÓPRIAS 19

2.3 Integrais Impróprias

Algumas integrais possuem o limite inferior, o superior ou ambos igual a ±∞. Neste caso as integraissão denominadas de impróprias existindo algumas técnicas capazes de simplifica-las numericamentepor substituição de variáveis. Vejamos o exemplo a seguir.

Exemplo 5: calcular numericamente a integral I =´∞

0dx

1+x2. Uma tabela de integrais indefinidas

fornece o resultado como sendo I = tan−1(x) e, substituindo os limites, obtemos I = π/2.Agébricamente podemos realizar a seguinte substituição de variáveis: x = 1/y =⇒ dx = −dy/y2.Ao fazê-lo temos

I =

ˆ ∞0

dx

1 + x2=

ˆ 1

0

dx

1 + x2+

ˆ 0

1− dy

y2 (1 + 1/y2),

=

ˆ 1

0

dx

1 + x2−ˆ 0

1

dy

1 + y2,

I = 2

ˆ 1

0

dx

1 + x2.

Neste exemplo vimos que a integral no intervalo [0, ∞] foi substituída por outra integral, agoradefinida no intervalo [0, 1], sendo facilmente resolvida por um dos métodos descritos nas seçõesanteriores. A Tabela 2.1 abaixo ilustra alguns casos de integrais impróprias e suas respectivassubstituições.

Tabela 2.1: Exemplos de integrais impróprias e suas respectivas substituições (PRESS et al., 1989,cap. 4).

´ ba f(x)dx

´ 1/a1/b

1t2f(1

t )dt , ab>0 Usada quando b→∞ e a > 0ou quando a→ −∞ e b < 0´ b

a f(x)dx 11−γ´ (b−a)1−γ

0 tγ

1−γ f(t1

1−γ + a)dt , b>a No caso do integrandodivergir em (x− a)−γ

próximo de x = a para0 ≤ γ < 1´ b

a f(x)dx 11−γ´ (b−a)1−γ

0 tγ

1−γ f(b− t1

1−γ )dt , b>a No caso do integrandodivergir em (x− b)−γ próximo

de x = b para 0 ≤ γ < 1´ ba f(x)dx

´ √b−a0 2tf(a+ t2)dt , b>a Funções do tipo 1/[x− a]1/2

com singularidade em x = a´ ba f(x)dx

´ √b−a0 2tf(b− t2)dt , b>a Funções do tipo 1/[x− b]1/2

com singularidade em x = b´∞a f(x)dx

´ exp(−a)0

1t f(− log t)dt Integrandos que decaem

exponencialmente exp(−x)

2.3.1 Quadratura Gauss-Laguerre

Similar ao método de Gauss-Legendre porém aplicado à integrais com um dos limites finito e outroinfinito, i.e.

I =

ˆ ∞0

f(x) dx =

ˆ ∞0

xα exp(−x)g(x) dx =

ˆ ∞0

xα exp(−x)

[exp(x)

xαf(x)

]dx

I ≈n∑i=1

Wi

[exp(xi)

xαif(xi)

](2.6)

20 CAPÍTULO 2. INTEGRAÇÃO E DIFERENCIAÇÃO NUMÉRICAS

onde α > −1, xi são as raízes do Polinômio de Laguerre Ln(z) com pesos Wi calculados por

Wi =Γ(n+ α+ 1) zi

n![(n+ 1)Lαn+1(zi)

]2 .com

Lαn(z) =n∑

m=0

(n+ α)!

(n−m)!(α+m)!

(−z)m

m!.

Usando a propriedades básicas da funçãoΓ, Γ(n+ 1) = n! obtemos para α = 0

Wi =zi

(n+ 1)2 [Ln+1(zi)]2 .

Os polinômios de Laguerre são recurssivamente obtidos pela equação (ARFKEN; WEBER, 2001, p.831)

Ln+1(z) = 2Ln(z)− Ln−1(z)− (1 + z)Ln(z)− Ln−1(z)

(n+ 1).

Os cálculos iniciam-se com n = 0 sabendo que L0(z) = 1 fornecendo os seguintes resultados para ospróximos quatro polinômios

L1(z) = −z + 1,L2(z) = 1

2

(z2 − 4z + 2

),

L3(z) = 16

(−z3 + 9z2 − 18z + 6

),

L4(z) = 124

(z4 − 16z3 + 72z2 − 96z + 24

).

Abaixo encontra-se um script em Matlab/Octave (WILSON; TURCOTTE, 1998; RECKTENWALD,2000) para o cálculo dos pontos e pesos da quadratura necessários a aplicação da Quadratura Gauss-Laguerre.

% esta funcao deve estar salva no diretório de trabalho% com o nome GaussLaguerre.mfunction [x, w] = GaussLaguerre(n, alpha)% x - pontos da quadratura (saida)% w - pesos da quadratura (saida)% n - número de pontos da quadratura (entrada)% α - potência de x no integrando (entrada)i = 1:n;a = (2*i-1) + alpha;b = sqrt( i(1:n-1) .* ((1:n-1) + alpha) );CM = diag(a) + diag(b,1) + diag(b,-1);[V L] = eig(CM);[x ind] = sort(diag(L));V = V(:,ind)’;w = gamma(alpha+1) .* V(:,1).^2;

Observação: o maior real expresso em um sistema operacional 32 ou 64 bits é aproximadamente1.79× 10308. Usando a instrução >‌> [x, w] = GaussLaguerre(185, 0), ou seja, 185 pontose α = 0, obtemos o maior ponto de avaliação da função x185 ≈ 708. Ao inserir este valor naexponencial temos exp(708) ≈ 3.02× 10307 resultado este muito próximo do limite de expressãode um número real. Concluí-se assim que a quadratura Gauss-Laguerre deve ser usada comcuidado pois o número de pontos (e pesos) escolhido pode incorrer no resultado “Inf ”: o quesignifica um real acima do valor 1.79× 10308.

2.4. DIFERENCIAÇÃO NUMÉRICA 21

2.4 Diferenciação Numérica

Em alguns ramos da Física, como no Eletromagnetismo, encontramos relações vetoriais entre o campoelétrico e o campo magnético, com fontes e sumidouros. Um exemplo é o campo elétrico produzidopor uma densidade de carga ρ no vácuo. Assim entendemos da teoria eletromagnética que o campoelétrico relaciona-se com a densidade de carga elétrica segundo a equação

∇ · (εo−→E ) = ρ

onde εo é a permitividade elétrica do meio (vácuo) e ∇ é o operador Nabla a saber

∇ = ∂∂x i+ ∂

∂y j + ∂∂z k coord. cartesianas

∇ = ∂∂r r + 1

r∂∂φ φ+ ∂

∂z k coord. cilíndricas

∇ = ∂∂r r + 1

r sin θ∂∂φ φ+ 1

r∂∂θ θ coord. esféricas.

O operador gradiente também está presente na teoria da condução do calor. A Lei de Fourier estabeleceuma relação entre o fluxo de calor e o produto da condutividade térmica do material (k) pelo gradientede temperatura em certo ponto do meio, i.e.

−→H = −k∇T

e que expressa a quantidade de calor por unidade de tempo por unidade de área sendo propagadaatravés do sólido.

2.4.1 Aproximações de primeira e segunda ordem para f ′(x)

Consideremos o gráfico ao lado de f(x). Desejamosobter uma aproximação numérica da derivada pri-meira da função f(x) no ponto x0. Considerando otriângulo 1 podemos escrever a seguinte equação

f ′(xi) = tan θ =∆y

∆x≈ f(xi)− f(xi −∆x)

xi − (xi −∆x)

f ′(xi) ≈f(xi)− f(xi −∆x)

∆x

sendo conhecida como aproximação atrasada de pri-meira ordem da derivada primeira (aproximaçãobackward). De modo análogo, mas usando o tri-ângulo 2 temos

f ′(xi) ≈f(xi + ∆x)− f(xi)

∆x

sendo esta equação a derivada numérica de primeiraordem (erro ≈ ∆x) conhecida por aproximação adi-antada (forward) para f ′(x) em x = xi.

Figura 2.3: Representações gráficas da derivadaprimeira: atrasada, adiantada e centrada.

Outra aproximação da derivada primeira de uma função é a aproximação centrada que pode ser obtidapela média entre as aproximações backward e forward, ou ainda através do triângulo 3 na Fig. 2.3resultando em

f ′(xi) ≈f(xi + ∆x)− f(xi −∆x)

2∆x

sendo esta uma aproximação de segunda ordem (erro ≈ ∆x2), ou seja, mais precisa.

22 CAPÍTULO 2. INTEGRAÇÃO E DIFERENCIAÇÃO NUMÉRICAS

Observação: as derivadas numéricas também podem ser deduzidas através da Série de Taylor dafunção f(x), i.e.

f(x+ ∆x) = f(x) + f ′(x) [x+ ∆x− x] +1

2!f ′′(x) (x+ ∆x− x)2 + · · ·

que pode ser simplificado para

f(x+ ∆x) ≈ f(x) + f ′(x)∆x+1

2f ′′(x)∆x2 + · · ·

e, retendo apenas os dois primeiros termos da série e manipulanto temos

f ′(x) ≈ f(x+ ∆x)− f(x)

∆x

que representa a aproximação numérica de primeira ordem forward para f ′(x). Se os valores dex forem discretos como em uma lista ou tabela, i.e., xi = a + (i − 1)∆x para i = 1, 2, 3, . . . porsubstituição na equação anterior obtemos a forma compacta a saber

f ′(xi) ≈f (a+ (i− 1)∆x+ ∆x)− f (a+ (i− 1)∆x)

∆x,

f ′(xi) ≈f (a+ i∆x)− f (a+ (i− 1)∆x)

∆x,

f ′i ≈fi+1 − fi

∆x,

onde fi e fi+1 representam os valores da função f(x) obtidos nos pontos xi+1e xi+1, respectiva-mente.

2.4.2 Aproximações de primeira e segunda ordem para f ′′(x)

A aproximação numérica da segunda derivada de f(x) pode ser obtida facilmente através da formulaçãovista na seção anterior porém aplicada a derivada primeira, i.e.

f ′′(xi) ≈f ′(xi)forward − f ′(xi)backward

∆x

[f(xi+∆x)−f(xi)

∆x

]−[f(xi)−f(xi−∆x)

∆x

]∆x

f ′′(xi) ≈f(xi + ∆x)− 2f(xi) + f(xi −∆x)

∆x2ou f ′i =

fi+1 − 2fi + fi−1

∆x2

sendo esta a aproximação centrada de segunda ordem (erro ≈ ∆x2) para a derivada segunda de f(x).Outras formulações numéricas para f ′′(x) são

f ′′(xi) ≈ f(xi+2∆x)−2f(xi+∆x)+f(xi)∆x2

, aproximação (forward) f ′i =fi+2 − 2fi+1 + fi

∆x2

f ′′(xi) ≈ f(xi)−2f(xi−∆x)+f(xi−2∆x)∆x2

, aproximação (backward) f ′i =fi − 2fi−1 + fi−2

∆x2

ambas de primeira ordem (erro ≈ ∆x), ou seja, menos precisas.

2.4.3 Aproximações de f ′(x), f ′′(x) e f ′′′(x) cúbicas e quárticas

Alguns cálculos podem exigir aproximações numéricas das derivadas com uma precisão maior. A tabelaabaixo resume algumas formulações de terceira e quarta ordem para as derivadas numéricas.

2.4. DIFERENCIAÇÃO NUMÉRICA 23

Tabela 2.3: Derivada Primeira f ′ em x0: expressões numéricas, erros e interpolação

Expressão Erro Polinômio Tipo[−11f(x0) + 18f(x1)− 9f(x2) + 2f(x3)]/6∆x (∆x)3 cúbico Forward

[−2f(x−3) + 9f(x−2)− 18f(x−1) + 11f(x0)]/6∆x (∆x)3 cúbico Backward[−25f(x0) + 48f(x1)− 36f(x2) + 16f(x3)− 3f(x4)]/12∆x (∆x)4 quarta Forward

[3f(x−4)− 16f(x−3) + 36f(x−2)− 48f(x−1) + 25f(x0)]/12∆x (∆x)4 quarta Backward[f(x−2)− 8f(x−1) + 8f(x1)− f(x2)]/12∆x (∆x)4 quarta Central

Tabela 2.4: Derivada Segunda f ′′ em x0: expressões numéricas, erros e interpolação

Expressão Erro Polinômio Tipo[2f(x0)− 5f(x1) + 4f(x2)− f(x3)]/∆x2 (∆x)2 cúbico Forward

[−f(x−3) + 4f(x−2)− 5f(x−1) + 2f(x0)]/∆x2 (∆x)2 cúbico Backward[35f(x0)− 104f(x1) + 114f(x2)− 56f(x3) + 11f(x4)]/12∆x2 (∆x)4 quarta Forward

[11f(x−4)− 56f(x−3) + 114f(x−2)− 104f(x−1) + 35f(x0)]/12∆x2 (∆x)3 quarta Backward[−f(x−2) + 16f(x−1)− 30f(x0) + 16f(x1)− f(x2)]/12∆x2 (∆x)3 quarta Central

Tabela 2.5: Derivada Terceira f ′′′ em x0: expressões numéricas, erros e interpolação

Expressão Erro Polinômio Tipo

f ′′′(x0)[−f(x0) + 3f(x1)− 3f(x2) + f(x3)]/∆x3

[−f(x−1) + 3f(x0)− 3f(x1) + f(x2)]/∆x3 (∆x) cúbico Forward

f ′′′(x0)[−f(x−3) + 3f(x−2)− 3f(x−1) + f(x0)]/∆x3

[−f(x−2) + 3f(x−1)− 3f(x0) + f(x1)]/∆x3 (∆x) cúbico Backward

f ′′′(x0) [−f(x−2) + 2f(x−1)− 2f(x1) + f(x2)]/2∆x3 (∆x)2 quarta Central

Deve ser observado nas tabelas acima a seguinte notação f−i = f(x−i) = f(x0 − i∆x) e fi = f(xi) =f(x0 + i∆x) para efeito de cálculos. Também devemos ter em mente ao realizarmos aproximaçõesnuméricas das derivadas a dificuldade em calculá-las nas extremidades dos intervalos. Se temos umconjunto de dados do tipo (xj , fj) onde j = 1, 2, ..., 11 ou seja, possuímos 11 pares de dados, aaproximação de segunda ordem da derivada primeira conterá apenas 9 pares de dados pois necessitamos,para o cálculo da derivada na segunda amostra (j = 2), de (x1, f1) e de (x3, f3). Analogamente, paraderivada em j = 10 são necessários os pares (x9, f9) e de (x11, f11). Uma metodologia muito empregadanestes extremos dos dados (j = 1 e j = 11) é a utilização das aproximações de primeira ordem, forwarde backward, nos extremos inicial e final respectivamente.

Exemplo 6: Um sistema amortecido oscila segundo a função g(t) = 10 sin(0, 5t) exp(−0, 2t). A deri-vada primeira (analítica) é g′(t) = 5 cos(0, 5t) exp(−0, 2t)−2 sin(0, 5t) exp(−0, 2t). Considerandoo intervalo para t de 0 a 10 e um incremento dt = 0.5 determine:

1. A derivada primeira (numérica) da função;

2. O erro entre a aproximação numérica e a expressão analítica de g′(x)

Neste exemplo criamos o seguinte script:% deriv1.mcleardt=0.5;t=0:dt:10;N=length(t);fg=inline(’10*sin(0.5*t).*exp(-0.2*t)’);

24 CAPÍTULO 2. INTEGRAÇÃO E DIFERENCIAÇÃO NUMÉRICAS

gl_an=5*cos(0.5*t).*exp(-0.2*t)-2*sin(0.5*t).*exp(-0.2*t);for i=2:N-1;

gl_nu(i-1)= 0.5*( fg(t(i+1)) - fg(t(i-1)) )/dt;err(i-1)=gl_an(i)-gl_nu(i-1);

end;plot(t(2:N-1),gl_nu,’b.’ , t,gl_an); pauseplot(err); pause%% usando backward e forward para os ptos. inicial e final%gl_nu(1)=( fg(t(2)) - fg(t(1)) )/dt; % avançadagl_nu(N)=( fg(t(N)) - fg(t(N-1)) )/dt; % atrasadafor i=2:N-1;

gl_nu(i)= 0.5*( fg(t(i+1)) - fg(t(i-1)) )/dt;err(i)=gl_an(i)-gl_nu(i);

end;err(1)=gl_an(1)-gl_nu(1);err(N)=gl_an(N)-gl_nu(N);plot(t,gl_nu,’b.’ , t,gl_an); pauseplot(err)

2.5 Exercícios

2.1- Admita a função f(x) = cos(8x) exp(−x2). Realize a integral de f(x) para diferentes discretiza-ções ∆x (número de intervalos) e verifique para que ∆x o resultado da integral não difere maisusando

a) regra dos Trapézios

b) regra de Simpson(Sugestão: escolha um intervalo [0, π/2] e rode o código para (N-1) = 30, 40, 50, ... ; ovalor de ∆x é obtido escrevendo >‌> dx <enter> no prompt de comando.)

2.2- Para obtermos a posição do C.M. de uma distribuição contínua de massa usamos ~rCM =(´~r dm

)/M

em que xCM =(´x dm

)/M , e assim sucessivamente com M sendo a massa do corpo. Quando

a distribuição de massa não é uniforme a massa específica depende da posição, ou seja, ρ =ρ(x, y, z). Considere uma vareta de comprimento L = 0, 8m, área da seção reta circular a =5, 0mm2 e com massa específica dada por ρ(x) = 7 + 2x−x2kg/m3. Use a Regra de Simpsonpara estimar o valor numérico de xCM .

2.3- Considere o problema do Exercício 2 uma vareta de comprimento L = 0, 9m, área da seçãoreta circular a = 6, 0mm2 e com massa específica dada por ρ(x) = 7 + 2x − x2kg/m3. Use aQuadratura de Gaussiana para estimar o valor numérico de xCM .

2.4- Considere novamente o problema do Exercício 2. Uma vareta de comprimento L = 0, 9m, áreada seção reta circular a = 6, 0mm2 e com massa específica dada por ρ(x) = 7 + 2x− x2kg/m3.Use a Quadratura de Gauss-Legendre para estimar o valor numérico de xCM .

2.5- Em um laboratório foram realizadas medidas experimentais da posição de uma partícula emrelação ao tempo e os resultados encontram-se registrados na tabela abaixo.Construa um scrippara Matlab definindo dois vetores t e x com os dados ao lado. Em seguida

2.5. EXERCÍCIOS 25

t (s) x (m) t (s) x (m)0.5000 0.1947 3.0000 2.00820.9000 0.5165 3.4000 2.11181.4000 0.9733 4.0000 2.16541.9000 1.3961 4.5000 2.13432.5000 1.7907 5.0000 2.0521

1. use a aproximação numérica centrada da derivadaprimeira para estimar o vetor velocidade a partirdos dados fornecidos.

2. Aplique o mesmo procedimento para o vetor veloci-dade com o intuito de estimar a aceleração da par-tícula.

3. Faça um gráfico de x(t) , outro de v(t) e finalmenteum para a(t).

2.6- A energia potencial gravitacional de um sistema de dois corpos pode ser expressa por

U(r) = −GMm

r

onde G = 6, 7 × 10−11Nm2/kg2 é a constante universal da gravitação e r é a distância entre oscorpos de massas M = 6, 0 × 1024Kg e m = 80Kg. Sabemos ainda que a força gravitacionalpode ser obtida a partir do gradiente de U(r). Considerando o exposto e que r = 6, 4× 106 + z,onde z é a altitude em metros:

a) determine analiticamente a expressão da força gravitacional que atua nos corpos;

b) escreva um “script’ para Matlab em que os dados de entrada sejam as massas; que crie umvetor contendo os valores de r igualmente espaçados; que faça um gráfico superposto deF (r) analítico (pontos) e de F (r) numérico (linha cheia) usando a aproximação centrada daderivada primeira de U;

c) refaça os cálculos para derivada primeira de ordem superior (centradas Tab 2.3) e armazeneos resultados.

d) Calcule o erro numérico entre a aproximação da derivada primeira e o resultado analítico deF e faça um gráfico superposto de F × r e do Erro × r para comparação.

2.7- Desprezando a resistência do ar faça um script que calcule numericamente o trabalho W daforça gravitacional ao deslocar um paraquedista com massa de 80 Kg de uma altitude z iguala 7500 m até uma altitude final de 300 m considerando que (a) a aceleração da gravidade éconstante e igual a 9, 81m/s2 e (b) considerando que a gravidade varie com a altitude segundoa expressão

g(z) = GM

(R+ z)2,

onde R = 6, 4 × 106m é o raio médio da Terra e M = 6, 0 × 1024Kg é a massa da Terra. (c)Calcule a diferença relativa entre os resultados: |Wb −Wa|/Wb.

2.8- Segundo RESNICK; HALLIDAY (1983, cap. 8) a solução completa de problemas unidimensionaiscom forças dependentes da posição pode ser descrita pela equação

t2 − t1 = ±√m

2

ˆ x2

x1

dx√E − U(x)

onde m é a massa da partícula, E a energia mecânica (constante) do sistema e U(x) a energiapotencial do sistema. Os tempos t1 e t2 estão relacionados com as posições x1e x2 da partícula,respectivamente. O sinal + ou − deve ser escolhido segundo o sinal da velocidade da partícula emeixo orientado. Sendo a energia do sistema invariante ocorre divergência do integrando quandoa energia cinética tende a zero: E −U(x) −→ 0. As regras do trapézio e de Simpson não podemser usadas para encontrar o valor de t2 pois o integrando não é definido nas situações em queE = U(x). A integração numérica por quadratura pode contornar este problema visto que ospontos de integração sempre estão localizados no interior do intervalo a ser integrado.

26 CAPÍTULO 2. INTEGRAÇÃO E DIFERENCIAÇÃO NUMÉRICAS

a) Considere o sistema massa mola com m = 0, 2Kg, constante elástica k = 30N/m e que emt1 = 0s a posição inicial da partícula seja x1 = 0, 10cm e que a mesma parta do repouso.Construa um script para Matlab/OCTAVE em que o limite superior varie de 0,10 m até -0,10m com incremento de 0,01 m para obter a resposta t2. Este processo permitirá construir doisvetores x2 e os respectivos tempos t2 associados. (Observ.: dentro do laço para o cálculo det2 a integral deve ser resolvida numericamente por um dos processos de integração discutidosneste capítulo)

b) Compare os resultados obtidos no item anterior com os valores advindos da equação x(t) =

A cos(√

km t) sendo A a amplitude do movimento. Para isso use o vetor t2 na equação e faça

um gráfico superposto dos resultados, i.e., use a instrução “plot(t2, x2, ’ro’, t2, x, ’b’)”.

Capítulo 3

Raízes de Funções de uma Variável

Freqüentemente desejamos encontrar o valor de uma variável x que anula ou satisfaz uma determinadaequação, por exemplo: x + 2 = 0; x2 + 3x − 4 = 0; sin(x) = 2x. Existem alguns métodos numéricosclássicos para tal fim, entre eles o Método da Iteração Linear, o da Bissecção e o de Newton Raphson,Régula Falsi (ou Mét. da Secante).

Um teorema muito usado na busca de raízes de funções é o Teorema de Bolzano que diz:

“Se f(x) é uma função contínua sobre um intervalo fechado [a, b] e f(a) e f(b) têm sinaiscontrários, então, existe pelo menos um ponto c ∈ [a, b], tal que, f(c) = 0”.

Devemos ter em mente a possibilidade de mais de uma raiz da função f(x) no intervalo mencionado.Outro caso ocorre quando os sinais de f(a) e f(b) são iguais: neste caso ou existe um número par deraízes ou nenhuma raiz de f(x) no intervalo [a, b].

3.1 Método da Iteração Linear

Para encontrar o valor de x que zera a função f(x) isolamos x da função escrevendo uma equaçãoalternativa na forma x = g(x):

• se f(x) = 2x2 − x+ 1 temos: x = 2x2 + 1 = g(x)

• se f(x) = sin(x) + 2x temos: x = −0.5 sin(x) = g(x)

O processo numérico para determinar o valor(aproximado) da raiz da função f(x) é simplesbasta escrever

xi+1 = g(xi) (3.1)

e inserir um valor inicial para o x1 na fun-ção g(x). O resultado proveniente da funçãoé atribuído a x2. O valor de i é incrementadode uma unidade de modo que podemos subs-tituir em g(x) o valor anteriormente obtido,x2. Este processo Itera até a precisão numé-rica desejada:

Passo 1 dado x1 obtemos x2 = g(x1)

Passo 2 com x2 obtemos x3 = g(x2), ...

Passo n com xn obtemos xn+1 = g(xn)

Figura 3.1: Ilustração gráfica do Método daIteração

27

28 CAPÍTULO 3. RAÍZES DE FUNÇÕES DE UMA VARIÁVEL

Observaçao: Nos métodos iterativos usamos com freqüência um ou dois critérios de parada: sedesejamos que o valor da raiz possua precisão de três algarismos significativos então

caso |xi+1 − xi| ≤ ε pare o cálculo

onde ε = 10−3 ≡ 1.0e − 3. Outro critério de parada pode ser pelo número de iterações,ou seja, quando n > N - número máximo de iterações. Dependendo do chute inicial x1 ométodo pode não convergir para o valor da raiz da função f(x) é o programa terminarápelo número máximo de iterações estipulado.

3.1.1 Convergência

Suponha que escrevamos a equação f(x) = 0 na forma x = g(x) sendo g(x) a função de iteração. Parahaver convergência do método existem três condições necessárias mas não suficientes a saber:

1. g(x) e g′(x) devem ser contínuas no intervalo [a, b];

2. |g′(x)| < 1 ∀x ∈ [a, b]; a derivada de g deve ser inferior a 1 para todo x no intervalo

3. x1 ∈ [a, b]; o chute inicial deve estar dentro do intervalo considerado;

3.2 Método de Newton-RaphsonSeja f(x) uma função contínua no intervalo [a, b] ec o único zero da função no intervalo. Se a primeiraderivada e a segunda derivada também são contí-nuas em [a, b] escrevemos a expansão em Série deTaylor da função na forma truncada

f(xi + ∆xi) ≈ f(xi) +1

1!f ′(xi)∆xi

ou ainda, igualando a zero

∆xi = − f(xi)

f ′(xi)−→ xi+1 = xi −

f(xi)

f ′(xi)(3.2)

que fornece um método iterativo para a estimativado zero da função f(x) no intervalo definido [a, b].Um problema deste método ocorre quando f ′(xi)é zero - caso que deve ser evitado pois causa umaindeterminação no segundo termo à direita da igual-dade na equação.

Figura 3.2: Ilustração gráfica do Método deNewton-Raphson

3.2.1 Convergência

Considerando a função f(x) no intervalo [a, b] as condições suficientes de convergência do método deNewton-Raphson são:

1. f(a).f(b) < 0

2. f ′(x) 6= 0, ∀x ∈ [a, b]

3. f ′′(x) > 0 ou f ′′(x) < 0 (i.e. f ′′(x) não muda de sinal em [a, b])

4.∣∣∣ f(a)f ′(a)

∣∣∣ < (b− a) e∣∣∣ f(b)f ′(b)

∣∣∣ < (b− a)

para qualquer valor inicial de x ∈ [a, b].

3.3. MÉTODO DA BISSECÇÃO 29

3.3 Método da Bissecção

Para se aproximar de uma raiz c, o princípio da bisseção consista em reduzir o intervalo inicial testandoo sinal de f(x) para o ponto médio do intervalo, i.e. x = (a+ b)/2. Considerando um intervalo inicial[a, b] usamos

• Se f(a).f(a+b2 ) < 0 o intervalo [a, b] é substituído por [a, (a+ b)/2]

• Se f(b).f(a+b2 ) < 0 o intervalo [a, b] é substituído por [(a+ b)/2, b]

com o novo intervalo calcula-se novamente o valor médio de x, realiza-se o teste e redefine-se o intervaloaté que o critério de parada seja satisfeito. A desvantagem deste método é a sua lenta convergênciapara obter uma aproximação da raiz da equação (x = c). Outra desvantagem é a necessidade defornecer ao método dois pontos, a e b, com valores de f(a) e f(b) possuindo sinas contrários.

3.4 Método da Secante (Régula Falsi)

Método usado para obter zeros de funções sua-ves. Neste método os pontos de cruzamento dasecante de uma aproximação são usados comopontos de base inicial para uma nova secante,mais próxima do zero real. É uma modificaçaodo Método de Newton visto que a derivada dafunção f ′(x) é substituida por uma aproxima-ção numérica.Regula falsi: caso especial do Método da Se-cante, em que se condiciona que o zero pro-curado fique sempre entre os pontos de cruza-mento da secante utilizada na iteração ante-rior:. Diferente do Método da Secante neste oprocesso de busca do zero da função inicia-secom fa · fb < 0, obrigatóriamente.Para aplicar o método iterativo usamos a se-guinte expressão

xi+1 = xi − f(xi)xi − xi−1

f(xi)− f(xi−1)

Figura 3.3: Ilustração gráfica do Método daSecante

e, observando melhor, verificamos que a fração à direita da igualdade é o inverso da aproximaçãonumérica para a derivada primeira (Série de Taylor).

O inconveniente deste método é a escolha de dois valores iniciais para iniciar o processo: se i = 0necessitamos de x0 e x−1 um à esquerda da raiz e outro à direta dela. Porém se a relação f(a).f(b) < 0for satisfeita podemos escolher x0 = a e x−1 = b.

3.5 Exercícios

3.1- Dois automóveis partem simultaneamente de cidades vizinhas A e B afastadas de 100 Km emlinha reta. As equações horárias de suas posições são

xa(t) = 12t+ 4t2,

xb(t) = 105 − 6t2,

respectivamente, com a origem do sistema de coordenadas sobre a cidade A. Para encontrar otempo em que os móveis se cruzam na estrada devemos igualar as equações, i.e., fazer xa = xb.

30 CAPÍTULO 3. RAÍZES DE FUNÇÕES DE UMA VARIÁVEL

(a) Encontre analiticamente o tempo decorido entre as suas partidas e o instante em que secruzam na estrada. No prompt do Matlab defina t=0:1:120; xa= ..., xb=... e faça umgráfico com o comando plot(t, xa, t, xb). Compare o resultado encontrado algébricamentecom o tempo no ponto que as curvas se cruzam. No gráfico é possível estimar a que distânciada cidade A os carros se encontrarão.

(b) implemente o Método da Iteração em um script para Matlab/Octave para calcular estetempo. Confronte o resultado com o obtido algébricamente.

(c) Crie outro script para encontrar o tempo decorrido através do método de Newton-Raphsone verifique se está de acordo com o resultado analítico.

(d) Sem muitas alterações o script do item (c) pode ser modificado para obter o tempo peloMétodo da Secante. Faça isso e compare o tempo obtido numéricamente com o resultadoanalítico.

(e) Finalmente escreva, execute e compare o tempo numérico com o analitico implementando oMétodo da Bissecção em um novo script para Matlab/OCTAVE.

3.2- Considere o automóvel A do exercício anterior com uma equação horária mais complexa, a saber

xa(t) = 12 t+ t2 exp(0, 05 t).

Neste caso não é possível obter analiticamente o tempo decorrido entre a partida dos móveis e ocruzamento dos mesmos na rodovia.

a) No prompt do Matlab defina um vetor t=0:1:70, xa=.... e xb=.... Faça um gráfico com ocomando plot para estimar em que tempo eles se cruzarão e a posição do cruzamento apartir da cidade A.

b) Altere a equação do automóvel A nos códigos dos itens (b), (c), (d) e (e) do exercício anterior.Encontre o tempo numericamente por cada método comparando os resultados com o valorestimado gráficamente.

3.3- No capítulo anterior (secção (2.2.1)) foram mencionados os Polinômios de Legendre. A quadraturaGauss-Legendre de N pontos exige o conhecimento de N raízes e pesos para sua implementaçãoe uma função GaussLegendre.m foi apresentada para este fim. Desenvolva um script em quepermita o usuário entrar com o valor de N entre 1 e 4 retornando os pontos da quadratura (zerosdos polinômios) e seus respectivos pesos usando:

a) o método da Iteração Linear;

b) o método de Newton-Raphson.(Observação: as raízes e os pesos dos polinômios de Legendre encontram-se limitados aointervalo [-1, 1].)(Sugestões: use a estrutura de decisão if N==1... else if N==2 ...else .. ...end; defina opolinômio usando o comando inline (ex. P=inline(’z’) se N=1) e a expressão do peso W (zi)em cada caso da estrutura. Encontre os zeros e calcule os respectivos pesos.)

Capítulo 4

Ajuste de Curvas

4.1 Mínimos Quadrados

Em Física é freqüente a necessidade de ajustar dados provenientes de medidas experimentais com ointuito de prever valores ou leis que representem o fenômeno em questão. Assumimos um conjunto dedados (xi, yi) com i = 1, 2, . . . , N .

Uma técnica muito empregada minimiza o quadrado dos resíduos entre as observações (yi) e os valorespreditos por uma função de ajuste (f(xi)), i. e.

minR2

= min

N∑i=1

[yi − f(xi)]2

.

Esta minimização pode ser obtida após a definição do grau do polinômio (p) que deve ajustar os dados.Para esclarecer o método dos mínimos quadrados vamos admitir um polinômio de grau p na forma

f(x) = c0 + c1x+ c2x2 + · · ·+ cpx

p

onde desejamos encontrar os coeficientes c0, c1, . . . , cp. Como visto na disciplina de cálculo, omínimo de R2 pode ser obtido pela derivada da função R2 com respeito aos coeficientes do polinômio,i.e.

∂(R2)

∂c0= 2

∑[yi − f(xi)]

∂f(xi)

∂c0= −2

∑[yi − f(xi)] = 0

∂(R2)

∂c1= 2

∑[yi − f(xi)]

∂f(xi)

∂c1= −2

∑xi [yi − f(xi)] = 0

∂(R2)

∂c2= 2

∑[yi − f(xi)]

∂f(xi)

∂c2= −2

∑x2i [yi − f(xi)] = 0

∂(R2)

∂cp= 2

∑[yi − f(xi)]

∂f(xi)

∂cp= −2

∑xpi [yi − f(xi)] = 0

substituindo f(xi) e expandindo temos∑yi = c0

∑1 + c1

∑xi + c2

∑x2i + · · ·+ cp

∑xpi∑

xiyi = c0

∑xi + c1

∑x2i + c2

∑x3i + · · ·+ cp

∑xp+1i∑

x2i yi = c0

∑x2i + c1

∑x3i + c2

∑x4i + · · ·+ cp

∑xp+2i

......

......∑

xpi yi = c0

∑xpi + c1

∑xp+1i + c2

∑xp+2i + · · ·+ cp

∑x2pi

31

32 CAPÍTULO 4. AJUSTE DE CURVAS

e que pode ser expresso na forma matricial a saberN

∑xi

∑x2i · · · · · ·

∑xpi∑

xi∑x2i

∑x3i · · · · · ·

∑xp+1i

......

......∑

xpi∑xp+1i

∑xp+2i · · · · · ·

∑x2pi

c0

c1

c2...cp

=

∑yi∑xiyi∑x2i yi...∑xpi yi

.

Podemos ainda renomear as matrizes e vetores e reescrever o sistema de equações em uma formacompacta

M c = b

cuja solução desejada é obtida pela multiplicação da inversa de M pelo vetor b,

c = M−1b.

Observação: o sistema de equações acima pode ser resolvido com uma metodologia ligeiramentediferente ao considerarmos o seguinte sistema de equações

1 x1 x21 · · · xm1

1 x2 x22 · · · xp2

......

......

1 xN x2N · · · xpN

c0

c1

c2...cp

=

y1

y2

y3...yN

ou ainda X c = y

pré-multiplicando por XTa última equação obtemos X

TX c = X

Ty o que leva a solução desejada

na forma

c =

(XTX

)−1

XTy

de modo que(XTX

)−1

= M−1

e XTy = b.

4.1.1 Exemplos

Nos vários ramos da física é comum encontrarmos leis, relativamente simples, que prevêem os compor-tamentos dos sistemas. Tais leis são funções como retas e parábolas, exponenciais, logaritmos entreoutras.

Exemplo 1: Ajuste de dados através de uma função linear do tipo: y = A+Bx.

Neste caso possuímos uma tabela de dados na forma

xi yi

x1 y1

x2 y1...

...xN yN

e desejamos ajustar uma reta

pelos dados experimentais (xi, yi). Pelo que foi exposto na seção 4.1 o sistema a ser resolvido é[N

∑xi∑

xi∑x2i

] [AB

]=

[ ∑yi∑xiyi

]Sendo um sistema 2 × 2 é possível obter uma solução analítica simples para os coeficientesdesejados do polinômio A e B.

4.1. MÍNIMOS QUADRADOS 33

Exemplo 2: Ajuste de dados através de uma função logarítmica na forma:

y = A+B lnx.

Para obtermos os coeficientes A e B reescrevemos a equação na forma y = A+Bw onde w = lnx.O sistema que permite o ajuste dos dados é similar ao do Ex1, i.e.[

N∑wi∑

wi∑w2i

] [AB

]=

[ ∑yi∑xiyi

]ou seja, basta criar mais uma coluna de dados na tabela contendo ao invés de xi os valores dewi = lnxi.

Exemplo 3: Ajuste de dados por uma função exponencial na forma:

y = A exp(Bx).

Para obtermos os coeficientes A e B do ajuste reescrevemos a equação na forma ln y = lnA+Bxou ainda z = a+bx. Assim a tabela de dados necessita de uma coluna com os valores de ln yi = zi.O procedimento do Ex1 é então repetido de modo a obter os coeficientes a e b por[

N∑xi∑

xi∑x2i

] [ab

]=

[ ∑zi∑xizi

].

Os reais coeficientes da função exponencial serão então A = exp(a) e B = b.

Exemplo 4: Ajuste de dados por uma lei de potência na forma:

y = AxB.

Neste caso aplicamos a função “ln” na equação para obtermos ln y = lnA + B lnx ou aindaz = a+ bw. O sistema resultante será um misto dos Ex2 e Ex3 ou seja[

N∑w∑

wi∑w2i

] [ab

]=

[ ∑zi∑wizi

].

Os coeficientes desejados para o ajuste serão A = exp(a) e B = b.

Exemplo 5:

Em uma experiência como pêndulosimples conseguimos os seguintes perío-dos em função do comprimento (tabelaao lado). Após efetuar os procedimentosindicados nos exemplos de 1 a 4 obtive-mos os seguintes coeficientes:

Li(m) Ti(s)0.50 1.431.00 2.002.00 2.853.00 3.484.00 3.98

- ajuste linear: A= 1.23 e B= 0.722 y = 1, 23 + 0, 722x- ajuste logaritmo: A= 2.14 e B= 1.23 y = 2, 14 + 1, 23 lnx- ajuste exponencial: A=exp(a)=1.43 ; b=B=0.281 y = 1, 43 exp(0, 281x)- ajuste potência de x: A=exp(a)=2.01 ; b=B=0.495 y = 2, 01x0,495

O gráfico abaixo ilustra o resultado dos ajustes. Podemos observar que a Lei de Potência forneceuo melhor ajuste entre os apresentados. Entretanto a potência deveria ser igual a 0,5. Isto indicaque as medidas experimentais não foram realizadas com a necessária precisão fornecendo um errode (0,500-0,495)/0,500= 0,01 = 1%.O valor da gravidade local pode ser estimado a partir do coeficiente A fazendo g = (2π/A)2 =9, 77m/s2. Assumindo o valor real de 9,81m/s2 o erro na estimativa de g é (9,81-9,77)/9,81=0,004= 0,4%.

34 CAPÍTULO 4. AJUSTE DE CURVAS

Figura 4.1: Diferentes ajustes obtidos com os dados provenientes de uma experiência com o PênduloSimples.

Exercício 2.1: Monte o sistema p/ obter os coeficientes A e B considerando um ajuste linear (reta)do seguinte conjunto de dados: x = [0.00, 0.20, 0. 50, 0.90, 1.40] e y = [2.32, 1.46, 0.40, -0.88,-2.32]. Resolva o sistema analiticamente, i. e., forneça a equação y = A + B*x.

Exercício 2.2: Faça um ’script’ usando a linguagem do Matlab para realizar um ajuste linear dospontos fornecidos no Exercício 2.1. No final do código faça um gráfico com os dados da tabela(círculos vermelhos) e, sobreposto, o ajuste conseguido (linha cheia em azul).

4.2 Ajuste por uma função qualquer (Newton e Gauss-Newton)

Em alguns casos os dados experimentais não possuem um bom ajuste com as funções exploradas naseção precedente. Exemplos destes casos são

P (w, A, wo, Γ) =A

(w − wo)2 + Γ2, potência em exp. de ressonância,

G(x, σ, xo) =1√

2πσ2exp(

−(x− xo)2

2σ2), função Gaussiana,

f(k, λ) =λk exp(−λ)

k!, distribuição de Poisson

e cujos gráficos apresentam-se como nas figuras abaixo.

4.2. AJUSTE POR UMA FUNÇÃO QUALQUER (NEWTON E GAUSS-NEWTON) 35

(a)−5 −4 −3 −2 −1 0 1 2 3 4 5 0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

x0= 0,0; σ2 =0,2

x0= 0,0; σ2 =1,0

x0= 0,0; σ2 =5,0

x0=−2,0; σ2 =0,5

(b)

Figura 4.2: Gráficos ilustrando (a) distribuições de Poisson e (b) distribuições Normal (Gaussiana).

Nesta seção será mostrado um procedimento conhecido pelo Método de Newton que permite ajustardados experimentais por uma função qualquer - função esta definida previamente - a exemplo dasequações acima apresentadas e normalmente não lineares.

Neste método desejamos minimizar o quadrado dos resíduos como definido no Método dos MínimosQuadrados ou seja minimizar R2 =

∑i r

2i =

∑i [f(xi, c)− yi]2 onde c = c1, c2, ..., cN é o vetor com

os parâmetros da função ajuste. Iniciamos com a derivada do quadrado dos resíduos com respeito aosparâmetros de uma função f(x, c), i.e.

gj(c) =1

2

∂(R2)

∂cj=

N∑i=1

ri∂ri∂cj

,

gj(c) =N∑i=1

[f(xi, c)− yi]∂f(xi, c)

∂cj.

Comparando com o Método de Newton-Raphson (seç. 2.2) desejamos os coeficientes c que minimizamR2. Expandindo a função gj(c) em uma Série de Taylor e truncando os termos de ordem superior a 2temos

gj(c+ ∆c) ≈ gj(c) +∑k

∂gj∂ck

∆ck,

onde Jjk = ∂gj/∂ck é o elemento linha j coluna k da matriz Jacobiana associada ao vetor g. Impondoque g se anule após a correção dos parâmetros fazemos g(c+ ∆c) = 0 e reescrevemos a última equaçãona forma matricial a saber

0 = g + J ∆c

J ∆c = −g

∆c = −(J)−1

g

cuja solução ∆c é o vetor com o incremento dos parâmetros do vetor c de modo que a nova estimativados parâmetros da função f(x, c) serão cn+1 = cn+∆c

(n) para n = 1, 2, ... iterações sendo a Jocobianadefinida por

Jjk =

N∑i=1

∂f(xi, c)

∂cj

∂f(xi, c)

∂ck+ [f(xi, c)− yi]

∂2f(xi, c)

∂cj∂ck

.

36 CAPÍTULO 4. AJUSTE DE CURVAS

Em algumas literaturas o segundo termo entre as chaves é desconsiderado nos cálculos com o intuitode minimizar o número de operações numéricas. Tal procedimento leva ao Método de Gauss-Newton.

Os zeros da função gj são obtidos em termos da matriz Jacobiana definida acima e deduzida a partirda função ajuste f(x, c) a saber

Jjk =∂gj(c)

∂ck=

∂ck

N∑i=1

ri∂ri∂cj

=

N∑i=1

[∂ri∂ck

∂ri∂cj

+ ri∂2ri∂ck∂cj

],

=∂

∂ck

N∑i=1

[f(xi, c)− yi]∂f(xi, c)

∂cj,

=N∑i=1

∂ck[f(xi, c)− yi]

∂f(xi, c)

∂cj+ [f(xi, c)− yi]

∂2f(xi, c)

∂cj∂ck

,

Jjk =

N∑i=1

∂f(xi, c)

∂cj

∂f(xi, c)

∂ck+ [f(xi, c)− yi]

∂2f(xi, c)

∂cj∂ck

.

Em resumo, para encontrar os coeficientes do vetor c que definem a função f(x, c) iterativamenteprocedemos da seguinte forma:

Algoritmo

1. escolhemos um conjunto de coeficientesque produzem um ajuste próximo dosvalores tabelados (xi, yi) - chute inicialc(1)

2. calculamos a função gj(x, c(1)) e a ma-triz Jacobiana Jjk(c(1))

3. resolvemos o sistema linear para ∆c:J(c(1)) ∆c

(1)= −g(x, c(1))

4. incrementamos o novo vetor de coefici-entes: c(2) = c(1) + ∆c

(1)

5. repete-se os cálculos nos passos 2, 3e 4 para obter c(3), . . . , c(m) enquanto|∆c| > tol1 ou |f(x, c)− y| > tol2

6. satisfeito o critério em 5 assume-se comocoeficientes (raízes) de g ou parâmetrosda funçao f(x, c) o último conjunto decoeficientes (vetor c) Figura 4.3: Fluxo 2

A título de conhecimento dizemos que a matriz J é a Jacobiana de g porém é denominada de Hes-siana (H) de f . Este método é empregado quando possuímos uma estimativa inicial dos valores doscoeficientes da função não linear usada para o ajuste dos dados, ou seja fornecemos c1.

Dependendo do “chute inicial” c(1) é possível que o método gere um incremento ∆c demasiadamentegrande fornecendo um resíduo maior do que o resíduo sem o incremento:

∑i r

2i (c + ∆c) >

∑i r

2i (c)

contrário ao desejado. Quando isto ocorre dizemos que o método diverge e os parâmetros obtidos nãofarão com que a função f(x, c) ajuste os dados experimentais. O que se faz é inserir (fornecer) umnovo conjunto de parâmetros para um novo teste até que se consiga a convergência.

Exemplo 6: Considere uma garrafa com uma quantidade n = N/V de moléculas por unidade devolume. Cada molécula possui massa m e o gás encontra-se a uma temperatura T . O número

4.2. AJUSTE POR UMA FUNÇÃO QUALQUER (NEWTON E GAUSS-NEWTON) 37

de moléculas por unidade de volume nv com velocidade entre v e v + dv no interior da garrafa édado pela lei de Maxwell para a distribuição de velocidades a saber

nv(v) = Av2 exp(−Bv2),

ondeA = 4πn

( m

2πkT

)3/2e B =

m

2kT.

Suponha que, através de um método expe-rimental, tenhamos conseguido obter o se-guinte conjunto de dados (v, nv) condensadosao lado. Escreva um ’script’ em Matlab queforneça um ajuste para este conjunto de da-dos, ou seja, obtenha os coeficientes A e B dadistribuição de velocidades moleculares. Ao fi-nal do ’script’ faça um gráfico com os pontosexperimentais e com o ajuste obtido.

v(m/s) nv(m−3) v(m/s) nv(m

−3)

0 0 400 30.15040 1.4677 440 26.92180 5.4582 480 22.244120 13.159 520 18.279160 19.677 560 12.405200 28.305 600 9.1540240 33.285 640 6.8828280 36.652 680 4.8711320 35.528 720 2.9592360 35.967 760 1.7515

Solução: a primeira coisa que devemos fazer é deduzir analiticamente o sistema de equações,i.e., a matriz Jacobiana e o vetor g. Logo

∂f(xi, c)

∂c1=

∂nv(vi, A, B)

∂A= v2

i exp(−Bv2i ) ≡ DA

∂f(xi, c)

∂c2=

∂nv(vi, A, B)

∂B= −Av4

i exp(−Bv2i ) ≡ DB

∂2f(xi, c)

∂c1∂c1=

∂2nv(vi, A, B)

∂A2= 0 ≡ DAA

∂2f(xi, c)

∂c2∂c2=

∂2nv(vi, A, B)

∂B2= Av6

i exp(−Bv2i ) ≡ DBB

∂2f(xi, c)

∂c1∂c2=

∂2nv(vi, A, B)

∂A∂B= −v4

i exp(−Bv2i ) =

∂2nv(viA, B)

∂B∂A≡ DAB

g1 =N∑i=1

[f(xi, c)− yi]∂nv(xi, A, B)

∂A=

N∑i=1

[f(xi, c)− yi] v2i exp(−Bv2

i )

g2 =

N∑i=1

[f(xi, c)− yi]∂nv(xi, A, B)

∂A=

N∑i=1

[f(xi, c)− yi][−Av4

i exp(−Bv2i )], ou

g1 ≡ 4f DTA

g2 ≡ 4f DTB, onde, 4fi = f(xi, c)− yi

Segundo as deduções e definições acima temos[J11 J12

J21 J22

] [s1

s2

]= −

[g1

g2

],

onde

J11 =[DAD

TA +4f DT

AA

],

J12 =[DAD

TB +4f DT

AB

]= J21,

J22 =[DBD

TB +4f DT

BB

].

O ’script’ em Matlab a seguir permite que o usuário insira coeficientes A e B até que o ajustefique próximo dos dados experimentais. Na seqüência, iterage um número máximo de 50 vezes

38 CAPÍTULO 4. AJUSTE DE CURVAS

caso a condição de tolerância não seja satisfeita, para no final mostrar o gráfico e escrever na telaos parâmetros obtidos.

% Maxwell.m - para um conjunto de dados de entrada ( v, n) realiza% o ajuste dos mesmos segundo a Distrib. Velocid. Molecul. de Maxwell% n(v) = A * v.^2 * exp(-B * v.^2)clear% dados experimentais (v, n)vn=[0 0; 40 1.4677; 80 5.4582; 120 13.159; 160 19.677; ...200 28.305; 240 33.285; 280 36.652; 320 35.528; 360 35.967; ...400 30.150; 440 26.921; 480 22.244; 520 18.279; 560 12.405; ...600 9.1540; 640 6.8828; 680 4.8711; 720 2.9592; 760 1.7515];%v=vn(:,1)’;n=vn(:,2)’;nd=length(n); %obtém o tamanho do vetor - numero de componentes% inicializaçãopar=input(’Informe o pto. inicial e tol [A , B, tol]: ’);A=par(1); B=par(2); tol=par(3);c=[A;B];% laço p/ obtenção do melhor chute inicialwhile length(par) > 0;

nv=A*v.^2.*exp(-B*v.^2);plot(v,n,’.r’,v,nv)par=input(’Altere o pto. inicial e tol [A , B]: ’);if length(par) == 2;

A=par(1); B=par(2);c=[A;B];

end;end; % fim do laço - chute inicial%% laço para busca automática dos parâmetrosfor i=1:50;

% definicoesnv=A*v.^2.*exp(-B*v.^2);df=nv-n;% calculo das derivadas de n(v) em relacao a A e BDA= v.^2.*exp(-B*v.^2);DB=-A*v.^4.*exp(-B*v.^2);% calcula gig1=df*DA’;g2=df*DB’;g=[g1;g2];err=norm(g); % mesmo que sqrt(g*g’)if err < tol; break; end;% calculo das derivadas cruzadas e segundasDAA=zeros(1,nd);DBB=-DB.*v.^2;DAB=-DA.*v.^2;DBA= DAB;% calculo da JacobianaJ(1,1)=DA*DA’+df*DAA’; % Desconsiderar os termosJ(2,2)=DB*DB’+df*DBB’; % a direita das 4 somas levaJ(1,2)= DA*DB’+df*DAB’; % ao Metodo de Gauss-Newton

4.2. AJUSTE POR UMA FUNÇÃO QUALQUER (NEWTON E GAUSS-NEWTON) 39

Figura 4.4: Resultado do ajuste usando o código Maxwell.m

J(2,1)= DB*DA’+df*DBA’; %% calculo do incremento ss= - inv(J)*g;c= c + s; % nova solucaoA=c(1); B = c(2);nv=A*v.^2.*exp(-B*v.^2);plot(v,n,’.r’,v,nv);pause(0.5);

end;%vv=linspace(0,v(end),10*length(v));nvv=A*vv.^2.*exp(-B*vv.^2);plot(v,n,’.r’,vv,nvv);nv=A*v.^2.*exp(-B*v.^2);df=nv-n;chi2=df*df’; % produto internodisp([A B chi2]) % excreve A, B e chi-quadrado do ajuste na tela

Exercício 2.3: O potencial de Lenard-Jones é usado para o estudo de moléculas di-atômicas. Suaexpressão em uma dimensão é U(x, Uo, a, b) = Uo

[(ax

)12 − 2(bx

)6] sendo a e b constantes quedependem dos átomos em questão e Uo a energia de ligação ou de dissociação da molécula.Escreva um ’script’ LenJon.m que permita o ajuste de um conjunto de dados (xi, Ui) a serfornecido pelo usuário. Neste problema desejamos encontrar os parâmetros a, b e Uo. (Dica: façauma adaptação dos procedimentos descritos em sala de aula - ’script’ Maxwell.m).

40 CAPÍTULO 4. AJUSTE DE CURVAS

Use os dados da tabela ao abaixo paraobter as constantes Uo, a e b, cujo gráficoestá ilustrado na Figura ao lado

x U(x) x U(x)0.4200 4.8198 0.6200 -0.94900.4400 0.6602 0.6400 -0.80610.4600 -1.1571 0.6600 -0.68470.4800 -1.8459 0.6800 -0.58220.5000 -2.0000 0.7000 -0.49600.5200 -1.9121 0.7200 -0.42350.5400 -1.7265 0.7400 -0.36250.5600 -1.5132 0.7600 -0.31120.5800 -1.3048 0.7800 -0.26790.6000 -1.1153 0.8000 -0.2313

Figura 4.5: Potencial de Lenard-Jones obtido comos dados da tabela ao lado.

Exercício 2.4: Um paraquedista possui massa igual a 81,6 kg e encontra-se a uma altitude y0 com umavelocidade inicial v0 quando aciona um equipamento capaz de armazenar a altitude, a velocidadee a aceleração em função do tempo. Considerando que a força de atrito viscosa (resistência doar) seja proporcional a velociadade (−βv). A 2ª Lei de Newton acerta que

−maj = −mgj − βvj → a =dv

dt= g − β

mv → dv

dt=g

vl(vl − v)

onde vl = mg/β é a velocidade limite do paraquedista (força resultante nula). Na primeiraequação consideramos um referencial orientado de baixo para cima com a origem no solo demodo que a, v e g são considerados positivos. Use o método iterativo desta seção (a exemplo docódigo maxwell.m) para obter

4.2. AJUSTE POR UMA FUNÇÃO QUALQUER (NEWTON E GAUSS-NEWTON) 41

a) o parâmetro β, a altura inicial y0 ea velocidade inicial v0 a partir dos da-dos (tempo, altitude) segundo a tabelaao lado sabendo que a dependência daaltitude com o tempo é dada por

y(t) = y0−mgt

β+m

β

(mg

β− v0

)(1−e−βt/m)

b) a velocidade v0 e o coeficiente β a par-tir dos dados (tempo, velocidade) forne-cidos na tabela ao lado sabendo que adependência da velocidade com o tempoé dada por

v(t) =mg

β−(mg

β− v0

)e−βt/m

c) a velocidade v0 e o coeficiente β a par-tir dos dados (tempo, aceleração) forne-cidos na tabela ao lado sabendo que adependência da aceleração com o tempoé dada por

a(t) =

(mg

β− v0

)e−βt/m

d) o parâmetro β, a altura inicial y0 ea velocidade inicial v0 a partir dos da-dos (velocidade, altitude) fornecidos natabela ao lado sabendo que a dependên-cia da altitude com a velocidade é dadapor

y(v) = y0+m

β(v0 − v)−m

2g

β2ln

mg − βvmg − βv0

.

Tabela : dados do altímetro, da velocidade e daaceleração em função do tempo

t (s) y(t) (m) v(t) (m/s) a(t) (m/s2)1.50 1.43e+03 2.08e+01 6.363.00 1.26e+03 2.86e+01 4.674.50 1.11e+03 3.42e+01 3.446.00 1.02e+03 3.89e+01 2.637.50 8.98e+02 4.19e+01 1.959.00 8.56e+02 4.56e+01 1.5710.5 7.31e+02 4.68e+01 1.1411.0 5.94e+02 4.68e+01 8.01e-0112.5 6.08e+02 5.12e+01 7.17e-0114.0 4.72e+02 5.02e+01 4.97e-0115.5 4.30e+02 5.30e+01 4.16e-0117.0 3.00e+02 5.08e+01 2.79e-0118.5 2.34e+02 5.23e+01 2.23e-0120.0 1.43e+02 5.14e+01 1.59e-0122.5 6.68e+01 5.20e+01 1.24e-01

OBS.: façam o script em Matlab que forneça osparâmetros pedidos e faça um gráfico dos dados ex-perimentais (ptos vermelhos) e que mostre o ajusteconseguido (linha contínua azul).

42 CAPÍTULO 4. AJUSTE DE CURVAS

Capítulo 5

Sistema de Equações Lineares

5.1 Definições

Definimos uma equação linear de n variáveis na forma: a1x1 + a2x2 + · · ·+ anxn = b onde os x′is sãosas incógnitas da equação, os a′is são os coeficientes das incógnitas (números conhecidos) e b é o termoindependente (conhecido). Como outro exemplo exemplo: ax + by + cz = d representa uma equaçãolinear com três incógnitas, x, y e z.

Consideremos A uma matriz n×n, x um vetor de incógnitas n×1 e b o vetor de termos independentesn×1. A formulação matricial Ax = b representa um sistema de equações lineares de ordem n×n, cujasolução x deve ser obtida através de um processo simultâneo em que todas as equações são satisfeitasao mesmo tempo. Para esclarecer, se n = 3 temos o seguinte sistema de equações A11 A12 A13

A21 A22 A23

A31 A32 A33

x1

x2

x3

=

b1b2b3

ouA11x1 +A12x2 +A13x3 = b1A21x1 +A22x2 +A23x3 = b2A31x1 +A32x2 +A33x3 = b3

.

Dependendo de como a matriz A e o vetor b se apresentam os sistemas lineares são classificados asaber:

1. Sistema Impossível - não tem solução;[

2 2−2 −2

] [x1

x2

]=

[55

]

2. Sistema Possível e Indeterminado - infinitas soluções;[

1 13 3

] [x1

x2

]=

[515

]⇒ (0; 5), (2, 5; 2, 5), . . .

3. Sistema Possível e Determinado - solução única;[

2 2−2 2

] [x1

x2

]=

[55

]⇒ (0; 2, 5)

OBS.: Algumas operações aritméticas entre duas equações do mesmo sistema de equações podemresultar em sistemas equivalentes ( com mesma solução):

a) ao multiplicarmos os membros de uma equação do sistema por um número real distinto de zero,obtém-se outro sistema equivalente ao inicial;

b) ao somar ou subtrair duas equação do mesmo sistema, obtemos outro sistema equivalente ao inicial;

c) somando (subtraindo) uma equação do sistema à outra equação do mesmo, multiplicada por umnúmero real diferente de zero, obtemos outro sistema equivalente;

d) se em um sistema de equações lineares uma equação é proporcional a outra ou é combinação linearde outras, podemos retirá-la e o sistema que obtemos é equivalente ao inicial.

Veremos nas seções a seguir algumas das técnicas de solução de sistemas de equações lineares.

43

44 CAPÍTULO 5. SISTEMA DE EQUAÇÕES LINEARES

5.2 Método de Gauss

Neste método necessitamos dois passos para obter o vetor solução.de um sistema de equações:

1. triangularizar a matriz A e,

2. realizar a retro-substituição (substituição regressiva).

No primeiro passo usamos operações aritméticas entre linhas da matriz de modo a deixá-la na formatriangular a saber Am11 Am12 Am13

0 Am22 Am23

0 0 Am33

x1

x2

x3

=

b′1

b′2

b′3

,onde A′ij são os elementos modificados da matria A enquanto b′i são os elementos modificados do vetorindependente b.

Exemplo 1: Desejamos triangularizar o sistema de equações Ax = b dado que A = [1 3 4; 4 2 3; 2 4 1]e o b = [1; 2; 3].Iniciamos com a a matriz ampliada, i.e.

AA =

1 3 44 2 32 4 1

∣∣∣∣∣∣123

e então começamos a operá-la. 1) Substituímos a 2ª linha pelo resultado da subtração entre odobro da terceira linha menos a segunda, i.e.

AA =

1 3 40 6 −12 4 1

∣∣∣∣∣∣143

.Em seguida 2) substituimos a 3ª linha pelo resultado da subtração entre o dobro da primeiralinha e a terceira, i.e.

AA =

1 3 40 6 −10 2 7

∣∣∣∣∣∣14−1

.Finalmente 3) substituimos a 3ª linha pelo resultado da subtração entre a segunda linha e otriplo da terceira, i.e.

AA =

1 3 40 6 −10 0 22

∣∣∣∣∣∣14−7

.Assim obtemos o novo sistema de equações A′x = b′ em que a matriz A foi triangularizada

A′ =

1 3 40 6 −10 0 22

⇒ 1 3 4

0 6 −10 0 22

x1

x2

x3

=

14−7

.O novo sistema de equações pode ser facilmnete resolvido por retrosubstituição pois conhecemos ovalor de x3 através de uma simples operação: x3 = −7/22.

5.3. MÉTODO DE GAUSS-JORDAN 45

Exemplo 2: Retrosubstituição: Sabemos da terceira equação do sistema que x3 = −7/22. Substituindoeste valor na segunda equação 6x2 − x3 = 4 obtemos

x2 =1

6

(4− 7

22

)=

81

6× 22⇒ x2 =

27

44

e, em seguida substituimos na primeira equação x1 + 3x2 + 4x3 = 1 os valores de x3e x2 obtendo

x1 = 1− 3 · 27

44+ 4 · 7

22⇒ x1 =

44− 81 + 56

44⇒ x1 =

19

44,

finalizando a solução do sistema de equações segundo o método de Gauss: x = [19/44; 27/44;−7/22].

5.3 Método de Gauss-Jordan

Este método é uma extensão do método de Gauss que objetiva a transformação da matriz A em umamatriz identidade. Basicamente as operaçoes entre linhas são promovidas de modo a diagonalizar amatriz original finalizando com elementos unitários na diagonal principal.

Exemplo 4: suponha um sistema 3 × 3 dado por A = [2 4 2; 2 1 1; 1 1 2] e b = [6; 16; 9]. Usando amatriz ampliada temos

AA =

2 4 22 1 11 1 2

∣∣∣∣∣∣6169

.Como o elemento (3,1) é unitário, permutamos as linhas 1 e 3 obtendo

AA =

1 1 22 1 12 4 2

∣∣∣∣∣∣9166

.Realizamos as seguintes operaçoes: L2 = L2 − 2L1 e L3 = L3 − 2L1 obtendo

AA =

1 1 20 −1 −30 2 −2

∣∣∣∣∣∣9−2−12

.Multiplicamos L2 por -1 e fazemos as seguintes operações: L1 = L1−L2 e L3 = L3−2L2 obtendo

AA =

1 0 −10 1 30 0 −8

∣∣∣∣∣∣72−16

L3=−L3/8−→ AA =

1 0 −10 1 30 0 1

∣∣∣∣∣∣722

.Finalmente as operações: L1 = L1 + L3 e L2 = L2 − 3L3 nos permitem escrever

AA =

1 0 00 1 00 0 1

∣∣∣∣∣∣9−42

fornecendo a solução desejada x = [9; −4; 2].

Este método é muito pouco usado nas soluções de sistemas de equações pois necessita de um númeromaior de operações levando o dobro do tempo gasto pelo método de Gauss. Em alguns problemasfísicos o objetivo é a diagonalização de operadores (como A): problemas de auto-valores e auto-vetoressão amplamente usados em Mecânica Quântica. Nestes casos não trabalhamos com a amatriz ampliadae o resultado da diagonalização fornece, na diagonal principal, o espectro de auto-valores do operadorao invés da matriz identidade.

46 CAPÍTULO 5. SISTEMA DE EQUAÇÕES LINEARES

5.4 Decomposição LU (ou Fatoração LU)

Este método é mais trabalhoso que o método de Gauss porém muito prático quando necessitamosresolver sistemas de equações em que a matriz de coeficientes A permanece a mesma e o vetor determos independentes b assume diferentes valores para cada sistema de equações a resolver.

Na forma compacta o sistema de equações Ax = b pode ser reescrito usando a igualdade LU = A naforma

LUx = b. (5.1)

onde L é a matriz inferior (lower) e U é a matriz superior (upper) que multiplicadas fornecem a matrizA, i.e.

1 0 · · · 0L21 1 · · · 0...

.... . .

...Ln1 Ln2 . . . 1

U11 U12 · · · U1n

0 U22 . . . U2n...

.... . .

...0 0 . . . Unn

=

A11 A12 · · · A1n

A21 A22 . . . A2n...

.... . .

...An1 An2 . . . Ann

.Ao multiplicarmos a 1ª linha de L pelas colunas de U verificamos que U1j = A1j para j = 1, ..., n. Aomultiplicarmos a 2ª linha de L pela 1ª coluna de U obtemos L21U11 = A21 ou ainda L21 = A21/U11. Asmultiplicações pelas outras colunas fornecem equações com dois termos na forma L21U1j+1 ·U2j = A2j

para j = 2, ..., n e, visto que conhecemos L21 bem como a primeira linha da matriz U obtemosU2j = A2j − L21U1j , i.e., os coeficientes restantes da 2ª linha da matriz U .

O processo acima pode ser extendido no intuito de construirmos ambas as matrizes L e U . Suprimindodetalhes a fatoração da matriz A em uma matriz inferior L e outra superior U fica resumida em duasequações a saber

Uij = Aij −i−1∑k=1

LikUkj , para i ≤ j ; (5.2)

Lij =

(Aij −

∑i−1k=1 LikUkj

)Ujj

, para i > j. (5.3)

Visto que LUx = b escrevemos Ly = b e y = Ux e a solução do sistema de equações é resolvido emduas etapas:

1. calculamos y a partir de Ly = b1 0 · · · 0L21 1 · · · 0...

.... . .

...Ln1 Ln2 . . . 1

y1

y2...yn

=

b1b2...bn

fornecendo: y1 = b1; y2 = b2 − L21y1; y3 = b3 − L31y1 − L32y2 etc. Este processo leva a seguintefórmula de recorrência

yi = bi −i−1∑j=1

Lij yj , para i = 1, ..., n. (5.4)

2. usando retro-substituição obtemos x a partir de U e y:U11 U12 · · · U1n

0 U22 . . . U2n...

.... . .

...0 0 . . . Unn

x1

x2...xn

=

y1

y2...yn

com um procedimento idêntico à segunda etapa do método de Gauss.

5.5. MÉTODO ITERATIVO DE JACOBI-RICHARDSON 47

Exercício 2.2 Dados A = [2, 2, 1, 1; 1, −1, 2, −1; 3, 2, −3, −2; 4, 3, 2, 1] e b = [7; 1; 4; 12] deter-mine por decomposição LU a solução do sistema de equações. Resp: a solução é x = [1; 2; 1; 0].

5.5 Método Iterativo de Jacobi-Richardson

Os métodos iterativos usam um uma estimativa inicial da solução do sistema de equações para obteruma melhor estimativa da mesma após sucessivos passos. Assim, sendo x0 é uma solução aproximadado sistema de equações o processo deve ser capaz de devolver uma solução aproximada x1, melhor doque x0, após uma iteração. A solução x1 é então usada para obtenção de x2 e assim sucessivamente.

Consideremos um sistema n × n do tipo Ax = b. Podemos escrever a matriz de coeficientes como asoma de três matrizes: uma triangular inferior, uma diagonal e uma triangular superior na forma

0 0 · · · 0L21 0 · · · 0...

.... . .

...Ln1 Ln2 . . . 0

︸ ︷︷ ︸

L

+

A11 0 · · · 00 A22 · · · 0...

.... . .

...0 0 . . . Ann

︸ ︷︷ ︸

D

+

0 U12 · · · U1n

0 0 . . . U2n...

.... . .

...0 0 . . . 0

︸ ︷︷ ︸

U

=

A11 A12 · · · A1n

A21 A22 . . . A2n...

.... . .

...An1 An2 . . . Ann

ou L+D + U = A.

Substituindo A. no sistema original obtemos(L+D + U

)x = b

e, manipulando vem

Dx = b−(L+ U

)x,

x = D−1b−D

−1 (L+ U

)x.

O processo iterativo de Jacobi-Richardson inicia-se ao substituirmos x à direita da igualdade por suaaproximação x1 resultando em uma nova aproximação da solução. Como este processo é repetido váriasvezez, a fórmula de recorrência deste método é

xk+1 = D−1b−D

−1 (L+ U

)xk , para k = 1, 2, .... (5.5)

finalizando quando o limite máximo de iterações é ultrapassado ou quando a diferença max|xk+1−xk| <ε, sendo ε um número pequeno relacionado com o grau de precisão desejado para a solução do problema.

Verificamos na Eq.(5.5) a necessidade de inverter a matriz diagonal D. Embora a inversão desta matrizseja muito simples é possível evitar este procedimento redefinindo os termos da Eq.(5.5) a saber

xk+1 = b∗ −(L∗ + U∗

)xk , para k = 1, 2, .... (5.6)

onde

b∗i = bi/Aii , i = 1, ..., n

L∗ij = Aij/Aii, se i > j e 0 caso contrárioU∗ij = Aij/Aii, se i < j e 0 caso contrário

o que representa uma normalização dos elementos de cada linha da matriz A pelo elemento da diagonalprincipal Aii no início da dedução do método.

48 CAPÍTULO 5. SISTEMA DE EQUAÇÕES LINEARES

5.6 Método de Gauss-Sidel

Como na seção anterior reescrevemos o sistema de equações Ax = b na forma(L∗ + I + U∗

)x = b∗,

sendo I. a matriz identidade. Manipulando a equação obtemos(L∗ + I

)x = b∗ − U∗ x

x =(L∗ + I

)−1b∗ −

(L∗ + I

)−1U∗ x

e, admitindo uma solução inicial aproximada para x à direita da igualdade, obtemos a fórmula derecorrência para o método iterativo de Gauss-Sidel a saber

xk+1 =(L∗ + I

)−1b∗ −

(L∗ + I

)−1U∗ xk, para k = 1, 2, ... (5.7)

com critérios de parada idênticos aos mencionados na seção anterior.

Devemos observar na Eq.(5.7) a necessidade de inverter a matriz triangular inferior (L∗ + I) para aaplicação do método. É neste ponto que nos perguntamos: por quê tanto trabalho se necessitamosinverter o termo (L∗ + I) ? Não seria melhor resolver o sistema Ax = b invertendo a matriz A emultiplicando por b?

A resposta a estas perguntas torna-se clara ao redefinirmos o método. Pré-multiplicamos a Eq.(5.7)pela matriz (L∗ + I) obtendo(

L∗ + I)xk+1 = b∗ − U∗ xk, ou

xk+1 = b∗ − L∗ xk+1 − U∗ xk, para k = 1, 2, ... (5.8)

A Eq.(5.8) permite o cálculo iterativo da solução do sistema de equações sem a necessidade da inversãoda matriz (L∗+I). Assumindo um chute inicial xk = [xk1; xk2; . . . , xkn] com k = 0 para o primeiro passotemos

xk+11 = −A∗12x

k2 −A13x

k3 − · · · −A1nx

kn + b∗1

xk+12 = −A∗21x

k+11 −A23x

k3 − · · · −A2nx

kn + b∗2

......

xk+1n = −A∗n1x

k+11 −An2x

k+12 − · · · −Annxk+1

n−1 + b∗n

o que fornece x1 = [x11; x1

2; . . . , x1n]. No segundo passo incrementa-se k para o valor 1 repetindo-se o

processo. Podemos observar nas soluções que o valor recém calculado de x1 é usado para estimar xk+12 .

Os valores atualizados de x1 e x2 são empregados na estimativa de xk+13 e assim sucessivamente até

xk+1n .

Exercício 2.2 Dados A = [2, 2, 1, 1; 1, −1, 2, −1; 3, 2, −3, −2; 4, 3, 2, 1] e b = [7; 1; 4; 12] deter-mine a solução do sistema de equações usando o método de Gauss-Sidel. Resp: a solução éx = [1; 2; 1; 0].

5.7 Convergência dos métodos Iterativos

Os dois métodos iterativos, acima apresentados, irão convergir para a solução do sistema de equaçõessempre que a matriz for diagonalmente dominante,. i.e., quando a matriz A satisfizer

|Aii| >n∑j 6=i|Aij | , para cada i = 1, 2, . . . , n.

5.7. CONVERGÊNCIA DOS MÉTODOS ITERATIVOS 49

Convergências lentas ocorrem quando o chute inicial está distante da solução do problema e quando ocritério acima fica próximo da igualdade, ou seja

|Aii| ≈∑j 6=i|Aij | , para i = 1, 2, . . . , n.

É possível melhorar o condicionamento da matriz realizando algumas permutações entre linhas demodo a tornar o sistema diagonalmente dominante. Este processo é denominado de pivoteamento e éusado também nas soluções diretas obtidas pela aplicação do método de Gauss, de Jacobi-Richardsone decomposição LU.

50 CAPÍTULO 5. SISTEMA DE EQUAÇÕES LINEARES

Exemplo 1: Podemos usar um sistema de equações lineares para obter, por exemplo, as correntesque circulam nas malhas do circuito abaixo. O método de Maxwell é simples pois assume apenasuma corrente em cada malha. Considerando a Lei de Kirchoff para as três malhas do circuitotemos

R0i0 + V2 +R5(i0 − i2) +R6i0 = 0

R1i1 +R2(i1 − i2)− V2 = 0

R3i2 +R4i2 +R5(i2 − i0) +R2i2 = 0

Sabendo que R1 = R3 = R5 = 100Ω e R0 = R2 = R4 = R6 = 200Ω monte o sistema de equaçõese obtenha, com papel-lápis-calculadora, as correntes usando

a) o método de Gauss e

b) o método de Gauss-Sidel.

c) Agora tente implementar o método de Gauss usando a linguagem do Matlab ou do Octavede modo que valores das resistências R0 . . . R5 bem como de V1 e V2 sejam inseridos via tecladoantes de se resolver o problema computacionalmente.

Figura 5.1: Circuito com três malhas e duas fontes de tensão contínuas V1 e V2.

Observação: as correntes que percorrem os resistores serão dadas por

R1 −→ I1

R2 −→ I1 − I2

R3 −→ I2 R4 −→ I2

R5 −→ I0 − I2

R0 −→ I0 R5 −→ I0

5.8 Exercícios

5.1- A Ponte de Wheatstone é usada para calcular resistências (ou capacitâncias) desconhecidas.O circuito abaixo ilustra uma Ponte de Wheatstone em que R0I5 = 0 quando a ponte está emequilíbrio, i.e., quandoR2R3 = R1R4. Normalmente entre os pontos B e D existe um amperímetro

5.8. EXERCÍCIOS 51

que indica a corrente neste segmento (I5) sendo R0 a resistência do aparelho..

Figura 5.2: Esquema de circuito: Ponte de Wheatstone

Usando as Leis de Kirchhoff aos nós A, D, C e D obtemos as equações

I = I1 + I2

I3 = I1 + I5

I = I3 + I4

I2 = I4 + I5

e, as três malhas fornecem as equações restantes

I1R1 + I4R4 = V

I1R1 − I5R0 − I2R2 = 0

I3R3 − I4R4 + I5R0 = 0

necessárias a solução analítica desde que sejam fornecidos dados suficientes para isso: este sistemapossui cinco resistências, seis correntes, uma fonte (bateria) e apenas sete equações. Assumindoque as incógnitas do problema sejam as correntes reescrevemos o conjunto de equações acima naforma

1 1 1 0 0 00 1 0 −1 0 11 0 0 −1 −1 00 0 1 0 −1 −10 R1 0 0 R4 00 R1 −R2 0 0 −R5

0 0 0 R3 −R4 R0

II1

I2

I3

I4

I5

=

0000V00

−→ Ax = b

onde observa-se que a matriz A não é quadrada. Uma forma de solucionar este problema baseia-se na obtenção de um sistema de equações equivalente. Para tanto pré-multiplicamos a equaçãopela matriz transposta, ou seja, fazemos

ATAx = A

Tb ⇒ Mx = c

onde c = ATb eM = A

TA sendoM uma matriz quadrada 6x6. Considere R1 = 100Ω, R2 = 30Ω,

R3 = 20Ω, R4 = 200Ω, R5 = 1Ω e que a bateria forneça 20V de d.d.p. entre os terminais A e C

52 CAPÍTULO 5. SISTEMA DE EQUAÇÕES LINEARES

do circuito. Monte a matriz A e o vetor b, realize a pré-multiplicação para obter a matriz M e ovetor c. Em seguida implemente um script (Matlab/Octave) para encontrar computacionalmenteas correntes em cada resistor pelo

a) Método de Fatoração LU e

b) Método de Gauss-Sidel

5.2- Considere o sistema de roldana e pesos ao lado. A roldanapossui raio R e momento de Inércia I. Considere M > m va-lores também conhecidos e:

a) escreva as equações de movimento dos pesos e da roldana

b) monte um sistema de equações em que as incógnitas sãoT1, T2 e a aceleração angular da roldana α.

c) dados M = 2Kg , m = 1Kg, R = 10cm e I = 0,01 Kg·m2

altere o script Gauss.m para obter a solução

d) altere GauSeidel.m para obter a solução

e) o sist. Físico é levado a Lua (g muda) recalcule a solução

Capítulo 6

Solução de Equações DiferenciaisOrdinárias

Nos distintos ramos da ciência Física é muito freqüente encontrarmos sistemas que são regidos porequações diferenciais. A primeira Leis de Newton aplicada ao sistema massa-mola leva as equaçõesdiferenciais do oscilador harmônico, simples, amortecido e forçado.

Este capítulo apresenta, com uma formulação simples, o Método de Diferenças Finitas (MDF) como fer-ramenta numérica para obtenção das soluções de algumas equações diferenciais tais como: decaimentoradioativo, oscilações e difusão do calor.

6.1 Decaimento Radioativo

A Lei que expressa o decaimento radioativo de uma substância radioativa (ex. Urânio, Tório, Potássio)é equacionada na forma

dN

dt= −λN =⇒ N(t) = N0 exp(−λt) (6.1)

ondeN0 representa o número de átomos radioativos no instante t = 0s e λ uma constante de decaimentoque depende da substância. Algumas definições importantes são:

t1/2 =ln 2

λ=

0, 693

λ, meia vida

tm =1

λ, vida média

sendo que a meia vida da substância, como a denominação sugere, é o tempo necessário para que metadedos núcleos radioativos decaiam e tm é o tempo médio de vida da substância. Embora tenhamos asolução analítica do problema podemos, a título de exemplo, aplicar a técnica numérica denominadade Métodos de Diferenças Finitas à equação diferencial com o intuito de obter uma solução numéricaNnum(t). Para isso devemos substitui a derivada dN/dt por suas aproximações (vide cap. anterior),ou seja

1. Diferença centrada:Ni+1 −Ni−1

2∆t= −λNi =⇒ Ni+1 = Ni−1 − 2λ∆tNi (Centered)

2. Diferença atrasada:Ni −Ni−1

∆t= −λNi =⇒ Ni =

Ni−1

1 + λ∆t(Backward)

3. Diferença adiantada:Ni+1 −Ni

∆t= −λNi =⇒ Ni+1 = Ni (1− λ∆t) (Forward)

53

54 CAPÍTULO 6. SOLUÇÃO DE EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

4. Forward Modificado:Ni+1 −Ni

∆t= −λNi+1/2 e, tomando o valor médio Ni+1/2 = (Ni+1 +Ni)/2

obtemosNi+1 =

(1− λ∆t/2)

(1 + λ∆t/2)Ni

Tarefa: (a) Considerando N0 = 1000 e λ = 3, 46 × 10−2s−1 determine numericamente os valores deN(t) segundo as aproximações de 1 a 4 usando 21 amostras no tempo compreendido ao intervalo[0 , 5× 10−2] segundos.(b) Faça um gráfico de tempo contra as soluções numéricas N1(t), N2(t), ...(c) Calcule a solução analítica nos tempos discretizados e compute os erros de cada aproximaçãona forma erro = Sanal−N

Sanal×100. Ao final produza um gráfico do tempo contra cada um dos erros.

6.2 Equação de Poisson 1-D

Em eletrostática vimos uma relação entre o fluxo do campo elétrico e a distribuição de cargas noespaço. Considerando o vetor deslocamento elétrico,

−→D = ε

−→E , onde ε é a permitividade elétrica do

meio e−→E o campo elétrico temos

∇ ·−→D = ρ, (Lei de Gauss)

ou ainda∇ · (ε

−→E ) = ρ, (6.2)

sendo ρ a densidade de carga. O campo elétrico pode ser obtido a partir do gradiente do potencialelétrico, i.e.,

−→E = −∇V . Substituindo na equação (6.2) vem

−∇ · (ε∇V ) = ρ. (6.3)

Em meios homogêneos ε é constante e a última equação simplifica-se para

∇2V = −ρε, (6.4)

conhecida por equação de Poisson para o potencial eletrostático. Com exemplo considere a seguinteequação diferencial de segunda ordem

d2φ

dx2= f(x) = −x (6.5)

sujeita as seguintes condições de fronteira (Dirichlet)

φ(0) = φ1 = a,

φ(1) = φn = b.

Usando diferença centrada à esquerda da igualdade temos

φ(x+ ∆x)− 2φ(x) + φ(x−∆x)

∆x2= −x

que pode ser simplificada usando a notação x = (i− 1)∆x, φ(x) = φi, φ(x+ ∆x) = φi+1 de modo que

φi+1 − 2φi + φi−1

∆x2= −xi

φi−1 − 2φi + φi+1 = −∆x2 · xi. (6.6)

Existem dois problemas ao se tentar usar esta equação: um ocorre quando inserimos i = 1, pois apareceum termo φ0 = φ(−∆x) que não está no domínio do problema e dois, quando i = n, pois aparece o

6.2. EQUAÇÃO DE POISSON 1-D 55

termo φn+1 = φ(1 + ∆x) que também encontra-se fora do modelo (domínio) definido para valores dex ∈ [0, 1]. Podemos desenvolver a última equação para diferentes posições x, ou equivalentemente,para diferentes valores de i na forma

i = 1 φ0 − 2φ1 + φ2 = −∆x2 · x1

i = 2 φ1 − 2φ2 + φ3 = −∆x2 · x2

i = 3 φ2 − 2φ3 + φ4 = −∆x2 · x3

: : :

i = n φn−1 − 2φn + φn+1 = −∆x2 · xn.

Como φ0 e φn+1 não fazem parte da solução os termos devem ser retirados da primeira e últimaequações. Além disso, das condições de fronteira sabemos os exatos valores de φ1e de φn, de modo quea primeira e a última equações não são verdadeiras devendo ser removidas do sistema de equações. Oresultado destas conjecturas permite reescrever o conjunto de equações acima na forma

i = 2 −2φ2 + φ3 = −∆x2 · x2 − φ1

i = 3 φ2 − 2φ3 + φ4 = −∆x2 · x3

: : :

i = n− 1 φn−2 − 2φn−1 = −∆x2 · xn−1 − φn

e, usando φ1 = a e φn = b, pode-se expressar o sistema na forma matricial a saber

−2 1 0 . . . . 01 −2 1 0 . . . 00 1 −2 1 0 . . .. 0 . . . . . .. . . . . . . .. . . . . . . .. . . . . . −2 10 0 . . . 0 1 −2

φ2

φ3

φ4

.

.

.

.φn−1

=

−∆x2 · x2 − a−∆x2 · x3

−∆x2 · x4

.

.

.

.−∆x2 · xn−1 − b

. (6.7)

Denominando a matriz a esquerda da igualdade de K, o vetor solução-parcial de ψ e o vetor à direitada igualdade de c, o sistema simultâneo de equações é resolvido a saber

Kψ = d

ψ = K−1d. (6.8)

Neste sistema de equações a matriz K é de ordem (n− 2)× (n− 2) enquanto os vetores possuem n− 2elementos. O vetor solução deste problema, φ, pode ser obtido usando as seguintes linhas de comandono ambiente Matlab

clear;...

define-se a e b (cond. cont.)define-se n, dx e xcalcula-se a matriz Kcalcula-se o vetor c

...psi=inv(K)*d; % solução para i=2,..,n-1. Exclui-se as bordasphi(1) = a; %\phi(2:n-1)= psi; % > solução numérica completa.phi(n) = b; %/phi_anl = x.*(1-x.^3)/12; % solução analíticaplot(x,psi,’b.’, x,phi_anl,’r-’) % gráfico comparativo entre soluções

56 CAPÍTULO 6. SOLUÇÃO DE EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

Observação: quando o meio for heterogêneo ε = ε(x) a equação (6.3) é desenvolvidada usando aidentidade vetorial ∇· (A∇B) = ∇B ·∇A+A(∇·∇B) sendo A e B escalares. A aplicação destaidentidade fornece

∇ · (ε∇V ) = ∇ε · ∇V + ε(∇ · ∇V ) = −ρε∇2V +∇ε · ∇V = −ρ

εd2V

dx2+dε

dx

dV

dx= −ρ

d2V

dx2+d ln ε

dx

dV

dx= −ρ

ε

ou seja, para meios heterogêneos a equação diferencial possui um termo com dependência nogradiente do potencial elétrico.

6.2.1 Algoritmo de Thomas - Sistemas tridiagonais

Um grande número de problemas físicos recaem em um sistema de equações do tipo Ax = b onde a ma-triz A é tridiagonal, ou seja, possui a diagonal principal (bi), uma subdiagonal (ai) e uma sobrediagonal(ci) na forma

b1 c1 0 0 . . . 0a2 b2 c2 0 . . . 00 a3 b3 c3 . . . 0

0 0 a4. . . . . .

...... . . . 0

. . . . . . cn−1

0 · · · 0 0 an bn

x1

x2

x3......xn

=

d1

d2

d3......dn

.

A proposta do algoritmo é de obter o vetor x armazenando apenas as três diagonais da matriz ao invésde armazenar a matriz cheia n × n. Em uma primeira etapa o processo é o de eliminação da diagonalinferior (vide método de eliminação Gaussiana) de modo que escrevemos

c1 = c1/b1d1 = d1/b1para k de 1 até n

den = bk − akck−1

ck = ck/dendk = (dk − akdk−1)/den

fim do laço

Em uma segunda etapa, a da retrosubstituição obtemos a solução desejada a saber

xn= dnpara k de n-1 até 1

xk = dk − ckxk+1

fim

No ambiente Matlab/Octave podemos criar uma função (“script” ) para este fim. Um exemplo é

function [x]=TRID(a,b,c,d)% resolve o sistema Ax=d com A tridiagonal% a - diagonal inferior de A% b - diagonal principal “% c - diagonal superior “

6.2. EQUAÇÃO DE POISSON 1-D 57

% d - vetor de termos independentes% http://en.wikipedia.org/wiki/Tridiagonal_matrix_algorithm#Variants

n=length(a);c(1) = c(1)/b(1);d(1) = d(1)/b(1);for i = 2:n

id = (b(i) - c(i-1)*a(i));c(i)=c(i)/id;d(i)=(d(i) - a(i)*d(i-1))/id;

end% retrosubstituiçãox(n) = d(n);for i= n-1:-1:1

x(i) = d(i) - c(i)*x(i + 1);end

Dirichlet: na seção anterior vimos um exemplo em que a solução da EDO possuia valores fixos nasduas fronteiras do modelo: condições de Dirichlet. Como resultado o sistema de equações n× nfoi reduzido à um sistema com n−2 incógnitas e o vetor de termos independentes teve a primeirae última linhas alteradas para inserção das condições de contorno, i.e.

K ψ = d′ onde d

′= d− cD =

d2

d3...

dn−1

−a0...b

.

Muitos sistemas físicos possuem outras condições de contorno : em difusão do calor é comum encon-trarmos fronteiras com condições de convecção ou com fluxo prescritos, paredes adiabáticas implicamem fluxo térmico nulo. No processo de obter a solução analítica ou numérica de equações diferenciaisimpomos com frequência as de Neumann e de Robin (mista)

α∂φ

∂x= γ e (6.9)

α∂φ

∂x+ βφ = γ, (6.10)

respectivamente. Como a condição de Robin incorpora a de Dirichlet (α = 0) e de Neumann (β = 0)é interessante analizar como inseri-la na solução numérica de uma EDO de segunda ordem.

Condição de Robin: Consideremos a solução numérica 1D (por DF) da EDO de Poisson

∇ · (k∇φ) = f

onde a condição mista ocorre em x = 0 e a condição de Dirichlet φ(L) = φL é imposta em x = L.A equação diferencial acima assume a forma discretizada (com k = cte)

φi−1 − 2φi + φi+1 =∆x2

k· fi , para i = 1, 2, ..., n− 1. (6.11)

onde adotou-se a discretização espacial na forma xi = (i−1)∆x. Usando a aproximação numérica(centrada) na derivada primeira da condição de contorno mista temos

αφi+1 − φi−1

2∆x+ βφi = γ, em i = 1 vêm

φ0 = −2∆xγ

α+ 2∆x

β

αφ1 + φ2 (6.12)

58 CAPÍTULO 6. SOLUÇÃO DE EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

que representa o valor de φ obtido em um ponto fictício (fora do modelo) x0 = −∆x. Substituindoφ0 na eq. (6.11) com i = 1 vêm

i = 1 ⇒ φ0 − 2φ1 + φ2 =∆x2

k· f1,

−2∆xγ

α+ 2∆x

β

αφ1 + φ2 − 2φ1 + φ2 =

∆x2

k· f1,

−2

(1−∆x

β

α

)φ1 + 2φ2 =

∆x2

k· f1 + 2∆x

γ

α. (6.13)

Assim o sistema de equações lineares capaz de resolver numéricamente a equação de Poisson comfonte e condições de Robin (x = 0) e Dirichlet (x = L) é

−2(1−∆xβα) 2 0 . . . . 01 −2 1 0 . . . 00 1 −2 1 0 . . .. 0 . . . . . .. . . . . . . .. . . . . . . .. . . . . . −2 10 0 . . . 0 1 −2

φ1

φ2

φ3

.

.

.

.φn−1

=

∆x2

k · f1 + +2∆x γα∆x2

k · f2∆x2

k · f3

.

.

.

.∆x2

k · fn−1 − φL

(6.14)

onde consideramos os parâmetros k, α, β, γ e φL constantes. Comparando o último resultadocom o sistema de equações (6.7) concluímos: ao introduzir a condição de contorno mista osistema passa a ter ordem n − 1 e as mudanças ocorrem tanto na matriz quanto no vetor determos independentes.

O sistema de equações lineares em que a condição de Neumann ocorre em x = 0 deve ser deduzidode forma similar ao descrito para condição mista. Tentar usar o artifício α = 0 na equação (6.14)produzirá erro: divisão por zero!

Exercício: (a) aplique diferenças finitas à equação de Poisson no domínio xε[0, 1] e obtenha o sistemade equações lineares como mostrado em 6.7 e 6.14 pertinente as seguintes condições de contorno

φ(x) = a, em x = 0

k∂φ

∂x= b, em x = 1

(b) dado o termo fonte f(x) = −x derive a solução analítica para este problema, ou seja, integreduas vezes a equação d2φ/dx2 = −x/k e use as condições de contorno para deduzir as constantesde integração.(c) construa um script para ambiente Matlab/Octave que resolva o sistema de equações ob-tido no item (a); programe também a solução analítica para comparação através da instruçãoplot(x,phi,’b-’, x,phi_a, ’r.’) . Sugetão: use k = 0, 5; b = 0, 1 ; a = 2 e L = 1.

6.3 Oscilações Simples, Amortecidas e Forçadas

Alguns sistemas físicos de movimento periódico estudados na graduação constituem o que denomina-se de MHS - Movimento Harmônico Simples: Massa-Mola, Pêndulo Simples, Pêndulo Físico, CircuitoLC. Outros sistemas oscilantes podem conter em sua descrição física-matemática os termos dissipativos(atrito, resistência do ar) bem como o termo fonte.

Nesta seção veremos como problemas oscilantes com e sem amortecimento, com e sem fontes usandocomo modelo o Oscilador Massa-Mola.

6.3. OSCILAÇÕES SIMPLES, AMORTECIDAS E FORÇADAS 59

6.3.1 Oscilador Harmônico Simples

Este é o oscilador mais fundamental (Mecânica Clássica) que se trata na graduação do curso de Física.É composto de uma mola de constante elástica k, com uma das extremidades fixa na parede e aoutra em um corpo ideal de massa m apoiado em uma mesa sem atrito. Dentro do limite elástico damola Hook propôs que a força exercida pela mola na massa é proporcional a deformação da mesma.Designando a deformação por x e usando a 2ª Lei de Newton obtemos

ma = −kx,d2x

dt2= − k

mx,

d2x

dt2+ w2

0x = 0. (6.15)

Esta última equação é conhecida por Equação Diferencial do MHS sendo w0 =√k/m a freqüência

angular (natural) do movimento periódico da massa. Relembrando a relação do período do movimentocom a freqüência angular obtemos

T =2π

w0

o que nos permite calcular o tempo de uma oscilação do sistema cuja solução geral é

x(t) = A cos(w0t+ φ) (6.16)

onde A é a amplitude do movimento e φ a constante de fase - fase inicial do movimento.

Nosso intuito é usar o Método de Diferenças Finitas para obter soluções numéricas da amplitude(deformação) em função do tempo. Assim, substituindo a derivada segunda por sua aproximação(centrada, cap. 2) obtemos

xj+1 − 2xj + xj−1

∆t2+w2

0xj = 0

xj+1 = 2xj −∆t2w20x

j − xj−1

xj+1 =(2−∆t2w2

0

)xj − xj−1 (6.17)

sendo esta uma formulação explícita do problema com o sobrescrito j associado ao tempo. Podemosobservar na equação que para obtermos a solução no tempo j + 1 necessitamos do conhecimento dasdeformações em dois tempos anteriores, j e j − 1.

Conhecendo-se o período do movimento, ou equivalentemente a const. elástica e a massa do corpo nosdeparamos com um problema em que se faz necessário também o conhecimento a posição inicial x(0)e a velocidade inicial v(0). A equação apresentada para xj+1 só pode ser aplicada diretamente para ocaso em que x(0) = A e v(0) = 0 pois assumindo causalidade fazemos x0 = x−1 = A na tentativa dese obter x1. Vejamos o procedimento um pouco mais genérico:

. conhecemos x(0), v(0) e w0 e desejamos x(t > 0). O problema está em encontrar quem são A e φ nocaso analítico porém no caso numérico não há sentido já que não estão presentes na expressãode xj+1. Como v = dx/dt usamos a aproximação numérica para escrever

v(0) =xj+1 − xj−1

2∆t=⇒ xj−1 = xj+1 − 2v(0)∆t

e, substituindo na expressão de xj+1 temos

xj+1 =(2−∆t2w2

0

)xj − xj+1 + 2v(0)∆t

xj+1 =1

2

[(2−∆t2w2

0

)xj + 2v(0)∆t

]

60 CAPÍTULO 6. SOLUÇÃO DE EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

e que é válida apenas na primeira iteração j = 0 fornecendo então a igualdade

x1 =1

2

[(2−∆t2w2

0

)x(0) + 2v(0)∆t

](6.18)

pois x0 = x(0). Para as próximas iterações j = 2, 3, ... a equação a ser usada é a que foi deduzidaanteriormente

xj+1 =(2−∆t2w2

0

)xj − xj−1.

A seguir encontra-se um ’script’ em Matlab que fornece os primeiros passos na tentativa de se obterum gráfico da solução e o erro entre a solução analítica e numérica.

clear;tmax=input(’ Entre com Tempo maximo: ’); % tempo desejado da solução% discretização no tempodt=input(’ Entre com discretização do tempo (dt): ’);% numero de iterações no tempont=Tmax/dt-1;x0=input(’ Entre com posição em t=0s: ’); % posição inicialv0=input(’ Entre com velocidade em t=0s: ’); % velocidade inicialw =input(’ Entre com freq. angular (k/m)^0.5: ’); % freq. angularx(1)=x0; t(1)=0;x(2)=0.5*( (2-dt*dt*w*w)*x0 + 2*v0*dt); t(2)=dt;for j=2:nt; % laço no tempo das soluções

t(j+1)=t(j)+dt;x(j+1)=(2-dt*dt*w*w)*x(j)-x(j-1);

end;phi= atan(-v0/(w*x0)); % fase inicialA = x0/cos(phi); % amplitudexa = A*cos(w*t+phi); % sol. analitica% gráfico comparando sol. anal. e sol. numéricaplot(t,x,’b’,t,xa,’r.’); grid; xlabel(’t (s)’); ylabel(’x(t) (m)’);er=100*(x-xa)./max(xa);pause;% gráfico do erro entre sol. anal. e sol. numéricaplot(t,err); grid; xlabel(’t (s)’); ylabel(’erro rel %’);

6.3.2 Oscilador Harmônico Amortecido

Os osciladores reais estão sujeitos a forças dissipativas responsáveis pela diminuição da energia mecânicado sistema e por conseguinte da amplitude do movimento. É comum usarmos para as forças de atritouma dependência com a velocidade da mesma de modo que a equação diferencial que rege o sistemafica escrita na forma

ma = −kx− bv,

md2x

dt2= −kx− bdx

dt,

d2x

dt2+

b

m

dx

dt+ w2

0x = 0 (6.19)

onde b é a constante de amortecimento. A solução analítica deste problema para pequenos amorteci-mentos (w0 > b/2m) é conhecida e possui a forma

x(t) = A exp(− b

2mt) cos(wt+ φ) (6.20)

6.3. OSCILAÇÕES SIMPLES, AMORTECIDAS E FORÇADAS 61

onde w =√w2

0 − (b/2m)2 é a freqüência das oscilações amortecidas e w20 = k/m é o quadrado da

freqüência natural das oscilações do sistema. Supondo que nos sejam informados os valores de x0 e v0

desejamos calcular a posição da massa em função do tempo usando Diferenças Finitas.

Procedemos como na seção anterior e usamos a representação centrada para a derivada primeira notempo de modo que

xj+1 − 2xj + xj−1

∆t2+

b

m

xj+1 − xj−1

2∆t+ w2

0xj = 0,

xj+1 − 2xj + xj−1 +b∆t

2m

(xj+1 − xj−1

)+ ∆t2w2

0xj = 0(

1 +b∆t

2m

)xj+1 −

(2−∆t2w2

0

)xj +

(1− b∆t

2m

)xj−1 = 0

xj+1 =1(

1 + b∆t2m

) [(2−∆t2w20

)xj −

(1− b∆t

2m

)xj−1

](6.21)

onde podemos observar que para obtermos a solução em t = (j + 1)∆t precisamos conhecer os valoresdas posições da massa nos tempos j e j − 1 de modo análogo ao da seção precedente.

6.3.3 Oscilações Forçadas

Alguns sistemas físicos oscilam sujeitos a forças externas e um exemplo simples é o circuito ressonanteRLC com uma fonte alternada. O circuito pode entrar em ressonância (máxima amplitude de corrente)quando a freqüência da fonte se aproximar da freqüência natural das oscilações do sistema.

Tomando por base o sistema com amortecimento e admitindo que uma força externa co-senoidal sejaaplicada ao mesmo temos

d2x

dt2+

b

m

dx

dt+ w2

0x =F0

mcos(wf t) (6.22)

onde F0 é a amplitude da força e wf a freqüência angular da fonte. Como viu-se em disciplina anterior,a solução analítica desta equação diferencial é obtida pela soma da solução da homogênea com umasolução particular. Suprimindo os detalhes de tal dedução a solução analítica da equação diferencialdos sistemas forçados-amortecidos é

x(t) = A exp(− b

2mt) cos(wt+ φ) +

F0

Gsin(wf t− α). (6.23)

O primeiro termo da soma à direita da igualdade é a solução homogênea e o segundo termo a solu-ção particular. Como o primeiro termo decai exponencialmente é comum usarmos apenas a soluçãopermanente. Logo a equação horária da posição da massa torna-se

x(t) =F0

Gsin(wf t− α) (6.24)

onde

G =√m2(w2

f − w2o)

2 + b2w2f

α = cos−1(bwf/G).

Do ponto de vista numérico a diferença deste problema para o da seção anterior é o termo à direitada igualdade ( termo fonte) que depende do tempo. Substituindo as aproximações numéricas dasderivadas e também t = j∆t no termo fonte temos

xj+1 − 2xj + xj−1

∆t2+

b

m

xj+1 − xj−1

2∆t+ w2

0xj =

F0

mcos(wf j∆t) = f j

62 CAPÍTULO 6. SOLUÇÃO DE EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

que após manipulação algébrica resulta em

xj+1 − 2xj + xj−1 +b∆t

2m

(xj+1 − xj−1

)+ ∆t2w2

0xj = ∆t2f j

ou

xj+1 =1(

1 + b∆t2m

) [∆t2f j +(2−∆t2w2

0

)xj −

(1− b∆t

2m

)xj−1

](6.25)

onde f j = F0m cos(wf j∆t).

6.4 Algoritmo Verlet (Velocity-Verlet)

O método descrito nesta seção é muito utilizado na descrição numérica de sistemas físicos em que aforça resultante depende da posição ou explícitamente do tempo. O sistema massa-mola, o PênduloSimples, o Pêndulo Físico, o de Torção e o Circuito LC são clássicos exemplos de tais sistemas.

Consideremos uma partícula de massa m sujeita a uma força resultante F . A segunda Lei de Newtonacerta que

d2x

dt2=F

m= a

onde a = a(x(t), v(t), t) é a aceleração resultante. Assim, a partir do conhecimento da aceleraçãodesejamos obter os valores numéricos da posição e da velocidade. Usando diferenças centradas (videCap. 3) reescrever a última equação na forma

x(t+ ∆t)− 2x(t) + x(t−∆t)

∆t2=F (t)

m= a(t)

ou aindax(t+ ∆t) = 2x(t)− x(t−∆t) + a(t)∆t2. (6.26)

Na equação (6.26) é necessário o conhecimento das posições nos instantes t e t − ∆t bem como daaceleração em t = t. Como ilustração para o sistema massa-mola (OHS) a aceleração é função daposição segundo

a(t) =F (t)

m= − k

mx(t) = −w2x(t)

expressão esta a ser substituida na eq. (6.26).

Para descrever completamente o problema faz-se necessário o conhecimento da velocidade v(t). Comovisto no capítulo 3 existem três formas simples de obtê-la

v(t) =x(t+ ∆t)− x(t)

∆t, (adiantada)

v(t) =x(t)− x(t−∆t)

∆t, (atrasada)

v(t) =x(t+ ∆t)− x(t−∆t)

2∆t, (centrada)

sendo que as duas primeiras equações fornecem a velocidade com erro da ordem de ∆t enquanto aterceira estima as velocidades com erro da ordem de ∆t2.

Exercício: faça uma expansão em série de Taylor de x(t+ ∆t) e x(t−∆t) até o quarto termo. Someos resultados e obtenha a equação (6.26). (Obs.: a precisão no cálculo de x(t) é da orem de ∆t4

pois os termos de quarta ordem em ∆t foram desprezados na dedução deste resultado).

6.4. ALGORITMO VERLET (VELOCITY-VERLET) 63

Uma variação do método anterior, denominado de velocity-Verlet, faz uso da expansão em série deTaylor de x(t+ ∆t) mais dois passos na estimativa de v(t+ ∆t) a saber

x(t+ ∆t) = x(t) + v(t)∆t+1

2a(t)∆t2,

v(t+∆t

2) = v(t) +

1

2a(t)∆t, (6.27)

v(t+ ∆t) = v(t+∆t

2) +

1

2a(t+ ∆t)∆t.

As vantagens do algorítmo velocity-Verlet em relação a versão básica são: cálculo de posição e veloci-dade no mesmo instante (digo, t + ∆t) e a necessidade do conhecimento de v e x apenas no instanteanterior, t.

Em problemas bi e tridimensionais as equações acima assumem a forma vetorial a saber

−→r (t+ ∆t) = −→r (t) +−→v (t)∆t+1

2−→a (t)∆t2,

−→v (t+∆t

2) = v(t) +

1

2−→a (t)∆t, (6.28)

−→v (t+ ∆t) = −→v (t+∆t

2) +

1

2−→a (t+ ∆t)∆t,

e, para resolver o problema numéricamente, faz-se necessário escrever três equações (como em (6.27))para cada uma das componentes x, y e z bem como para vx, vy e vz.

Exemplo: consideremos uma partícula de massa m = 2kg inicialmente em repouso à uma distânciade 15m do solo. A única força que atua na partícula é a força peso. O script abaixo, baseadono método velocity-Verlet, é usado para estimar a posição e velocidade da partícula em temposposteriores.

% queda_livre_vv.m%clear;g =-9.8; % acel. gravitacionalm = 2.0; % massadt= 0.1; % incremento no tempot(1) = 0 ; % tempo inicialy(1) = 15; % posição inicialv(1) = 0 ; % velocidade iniciala(1) = g ; % aceleração%i = 1;while y(i) > 0;

t(i+1) = t(1) + i*dt;y(i+1) = y(i) + v(i)*dt + 0.5*a(i)*dt^2; % posi. t+dtvtemp = v(i) + 0.5*a(i)*dt;a(i+1) = g;v(i+1) = vtemp+ 0.5*a(i+1)*dt; % velo. t+dt

end;% -----------------% solução analiticaya = y(1) + v(1)*t + 0.5*g*t.^2;va = v(1) + g*t;subplot(2,2,1);plot(t,y,’bo’,t,ya,’r’);

64 CAPÍTULO 6. SOLUÇÃO DE EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

xlabel(’tempo (s)’); ylabel(’posiçao (m)’); title(’Queda livre’);subplot(2,2,2);plot(t,v,’bo’,t,va,’r’);xlabel(’tempo (s)’); ylabel(’velocidade (m/s)’); title(’Queda livre’);subplot(2,2,3);plot(t,a,’bo’,t,g,’r’);xlabel(’tempo (s)’); ylabel(’aceleraçao (m/s^2)’); title(’Queda livre’);% ---------------% calculo do erroer_y = 100*(ya-y)./ya;er_v = 100*(va-v)./va;subplot(2,2,4);plot(t,er_y,’b’, t,er_v,’r’);xlabel(’tempo (s)’); ylabel(’erro (%)’); title(’Queda livre’);

Exemplo: em um sistema massa-mola, sem atrito, m = 0, 2kg e k = 30N/m. A massa está inici-almente em repouso e a mola encontra-se deformada de 10cm. O sistema é então abandonado.Desejamos os valores de x, v e a no intervalo de um período.As equações horárias deste movimento são dadas por

x(t) = A cos(wt)

v(t) = −Aw sen(wt)

a(t) = − kmx(t) = −Aw2 cos(wt)

O script abaixo usa velocity-Verlet para obter numéricamente as grandezas acima.

% massa_mola_vv.m%clear;m = 0.2;k = 30 ;w = sqrt(k/m);T = 2*pi/w;%t(1) = 0.0;x(1) = 0.1;v(1) = 0.0;a(1) = -k*x(1)/m;%dt=0.01;i=1;while t(i) < 2*T;

t(i+1) = t(1) + i*dt;x(i+1) = x(i) + v(i)*dt + 0.5*a(i)*dt^2;vtemp = v(i) + 0.5*a(i)*dt;a(i+1) = -k*x(i+1)/m;v(i+1) = vtemp+ 0.5*a(i+1)*dt;

end;% solução analiticaxa = x(1)*cos(w*t);va =-x(1)*w*sin(wt);aa = -k*xa/m;subplot(2,2,1);

6.5. SISTEMAS DE EQUAÇÕES 65

plot(t,y,’bo’,t,xa,’r’);xlabel(’tempo (s)’); ylabel(’posiçao (m)’); title(’Massa-Mola’);subplot(2,2,2);plot(t,v,’bo’,t,va,’r’);xlabel(’tempo (s)’); ylabel(’velocidade (m/s)’); title(’Massa-Mola’);subplot(2,2,3);plot(t,a,’bo’,t,aa,’r’);xlabel(’tempo (s)’); ylabel(’aceleraçao (m/s^2)’); title(’Massa-Mola’);% calculo do erroer_x = xa-x;er_v = va-v;er_a = aa-a;subplot(2,2,4);plot(t,er_x,’b’, t,er_v,’r’, t, er_a,’k--’);xlabel(’tempo (s)’); ylabel(’erro (m, m/s e m/s^2)’); title(’Massa-Mola’);

6.5 Sistemas de Equações

Alguns problemas físicos (ex. sistemas acoplados) se apresentam como um sistema de equações ondedesejamos encontrar simultâneamente um conjunto de soluções. Consideremos um sistema compostode duas massas ligadas por três molas como na figura.

Figura 6.1: Sistema de duas massas acopladas onde x10 e x20 são as posições de equilíbrio e u1 e u2

são os deslocamentos das massas a partir das posições de equilíbrio.

No sistema em questão definimos as posições instantâneas dass massas por x1 = x10+u1 e x2 = x20+u2.As forças elásticas que atuam nos corpos são equacionadas a saber

F12 − F11 = k(u2 − u1)− k1u1 − bv1

F22 − F12 = −k2u2 − k(u2 − u1)− bv2

que pode ser reescrita na forma

m1d2u1

dt2+ (k1 + k)u1 − ku2 + bv1 = 0 (6.29)

m2d2u2

dt2− ku1 + (k2 + k)u2 + bv2 = 0 (6.30)

66 CAPÍTULO 6. SOLUÇÃO DE EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

ou seja, um sistema com dois graus de liberdade cujas soluções são u1(t) e u2(t). Substituindo asderivadas segundas por suas aproximações centradas obtemos

m1vn+1

1 − vn1∆t

+ (k1 + k)un1 − kun2 + bvn1 = 0

m2vn+1

2 − vn2∆t

− kun1 + (k2 + k)un2 + bvn2 = 0

ou

vn+11 = (1− b

m1∆t)vn1 +

∆t

m1[−(k1 + k)un1 + kun2 ]

vn+12 = (1− b

m2∆t)vn2 +

∆t

m2[kun1 − (k2 + k)un2 ]

e que na forma matricial fica expresso a saber[v1

v2

]n+1

=

[1− b

m1∆t 0

0 1− bm2

∆t

][v1

v2

]n+ ∆t

[−k1+k

m1

km1

km2

−k2+km2

][u1

u2

]n(6.31)

de modo que podemos resolver o sistema acima iterativamente para as velocidades v1e v2 no tempot = (n+ 1)∆t a partir dos valores conhecidos de v1, v2, u1 e u2 no tempo anterior n∆t.

Neste ponto obtivemos as velocidades em função do tempo e com estes valores podemos realizzarnumericamente a integral das velocidades para obtermos as posições u1 e u2. Para exemplificar oprocedimento usemos a expressão backward para substituir as velocidades em (n+ 1)∆t, ou seja

v1 =du1

dt≈ un+1

1 − un1∆t

,

v2 =du2

dt≈ un+1

2 − un2∆t

.

Após manipulações algébricas temos

un+11 = un1 + vn+1

1 ∆t

un+12 = un2 + vn+1

2 ∆t

que na forma matricial resulta em[u1

u2

]n+1

=

[u1

u2

]n+

[v1

v2

]n+1

∆t. (6.32)

O procedimento acima descrito ilustra perfeitamente uma das várias metodologias numéricas para seobter as soluções do sistema de equações diferenciais ordinárias.

Exercício: implemente um ’script ’ Sist_Acopl.m na linguagem Matlab. Considere b = 0, m1 = m2 =0, 5kg, k1 = k2 = 1N/m, k = 0, 2N/m. Considere um tempo máximo de 40s com ∆t = 0, 2s eas seguintes condições iniciais:a) u1(0) = 0, 5m e u2(0) = v1(0) = v2(0) = 0;b) u1(0) = u2(0) = 0m e v1(0) = 0, 25m/s com v2(0) = 0m/s;As soluções analíticas de u1 e u2 (Alonso e Finn,1981, p.365; Butkov, 1988, p.408) considerandom1 = m2 = m sem atrito (b = 0) são

u1a(t) = C1 cos(w1t) + C2 sin(w1t) + C3cos(w2t) + C4 sin(w2t)

u2a(t) = C1 cos(w1t) + C2 sin(w1t)− C3cos(w2t)− C4 sin(w2t)

6.6. MÉTODO DE RUNGE-KUTTA 4ª ORDEM 67

com w1 =√k1/m1 e w2 =

√(k1 + 2k)/m1 onde as constantes são calculadas de acordo com as

condições iniciais, i.e.

C1 =u1(0) + u2(0)

2C3 =

v1(0) + v2(0)

2w1,

C2 =u1(0)− u2(0)

2C4 =

v1(0)− v2(0)

2w1.

Use o comando plot (ex. plot(t, u1, ’b-’, t, u1a, ’r.’) ) para comparar as soluções numéricas eanalíticas de u1, u2, v1 e v2.

6.6 Método de Runge-Kutta 4ª Ordem

Em problemas em que a força depende da velocidade é comum o emprego do Método de Runge-Kuttapara obtenção da solução numérica de uma EDO ou de um sistema de EDOs. O método mais usadoé o de quarta ordem e sua aplicação segue os passos:

1. K1 = f(tn , xn)

2. K2 = f(tn + ∆t/2 , xn + ∆tK1/2)

3. K3 = f(tn + ∆t/2 , xn + ∆tK2/2)

4. K4 = f(tn + ∆t , xn + ∆tK3)

5. xn+1 = xn + ∆t6 (K1 + 2K2 + 2K3 +K4)

onde f(t, x) é a taxa de variação da solução, i.e., dx/dt = f(t, x).

Exemplo: como aplicação simples do método consideremos o oscilador harmônico amortecidocomposto de uma mola com constante elástica k e de uma massa m sujeita à uma força de atritoproporcional a velocidade −bv. A 2ª Lei de Newton fornece

md2x

dt2= −bdx

dt− kx, (6.33)

que pode ser reescrita na forma desejada para aplicação numérica

dx

dt= v,

dv

dt= − b

mv − k

mx.

Definimos então fx(t, x, v) = v e fv(t, x, v) = −bv/m− kx/m de modo que

Kx1 = fx(vj) Kv1 = fv(xj , vj)

Kx2 = fx(vj + ∆t ·Kx1/2) Kv2 = fv(xj + ∆t ·Kx1/2, v

j + ∆t ·Kv1/2)

Kx3 = fx(vj + ∆t ·Kx2/2) Kv3 = fv(xj + ∆t ·Kx2/2, v

j + ∆t ·Kv2/2)

Kx4 = fx(vj + ∆t ·Kx3) Kv4 = fv(xj + ∆t ·Kx3, v

j + ∆t ·Kv3)

fornecendo assim as próximas estimativas da posiçao e da velocidade por

xj+1 = xj +∆t

6(Kx1 + 2Kx2 + 2Kx3 +Kx4), (6.34)

vj+1 = vj +∆t

6(Kv1 + 2Kv2 + 2Kv3 +Kv4). (6.35)

68 CAPÍTULO 6. SOLUÇÃO DE EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

Exercício: implemente o método acima em um ’script ’ MHA.m na linguagem do Matlab usandok = 2N/m, m = 0, 5kg, b = 0, 2kg/s para as condições iniciais: x(0) = 0, 25m e v(0) = −0, 2m/s.Use dt = 0.1s para um tempo de simulação T = 10s. Faça os gráficos de x(t) e v(t) em linhacontínua (azul) superpondo as soluções analíticas com pontos (vermelho). A solução analítica daposição é

x(t) = A exp(− b

2mt) cos(wt+ φ) , w =

√k

m−(

b

2m

)2

onde as constantes A e φ são obtidas em termos das condições iniciais a saber

φ = arctan

[− 1

w

(v0

x0+

b

2m

)]

A =

x0

cosφ, se x0 6= 0

− v0

[(0.5b/m) cosφ+ w sinφ], se x0 = 0

Exercícios

6.1- Obtenha analíticamente a solução da equação (6.2). Após, implemente o algorítmo ao final daseção 6.2.

6.2- Ao final da seção (6.3.1) encontra-se um script para a solução da EDO do MHS, ou seja equação(6.15). (a) Salve-o em um arquivo mhs.m e execute-o usando os seguintes valores: tmax = 50s,∆t = 0.1s, x(0) = 0.2m, v(0) = 1m/s, w = 0.5. Remova possíveis erros e verifique se assoluções analítica e numérica concordam. O que você pode deduzir ao analisar o gráfico de errosrelativos entre as soluções. (b) Repita o procedimento trocando apenas o valor da posição inicialpara x(0) = 0m e descreva o que ocorreu. (c) Reveja as equações horárias de x(t) e v(t) parat = 0s. A partir delas tente obter uma forma alternativa para derivar a aplitude A em termosda velocidade em t = 0s. Use uma estrutura de decisão if .... else ....end para o cálculo de φe A. Execute o script e verifique se a solução analítica concorda com a solução sumérica. (Obs.:quando x(0) = 0m o valor da fase inicial é φ = π/2).

6.3- O Carbono 14 é um radio isótopo muito usado em datações arqueológicas pois sua meia-vida éde aproximadamente 5730 anos, a maior dentre seus outros isótopos. Use a teoria apresentadana seção 6.1 juntamente com o método Forward Modificado para traçar um gráfico de N(t) con-sidereando uma a quantidade inicial de isópos radioativos igual a 1mol. Compare seus resultadosnuméricos com a solução analítica.

6.4- A Lei do Resfriamento de Newton acerta que umcorpo perde calor por unidade de tempo para o meioque o envolve de forma proporcional a diferença detemperatura entre o corpo e o meio. Equacionandotemos

dQ

dt= −hA(T − Tm)

onde Q é o calor, h é o coeficiente de transferênciatérmica, A é a área da superfície que perde calor,T é a temperatura no tempo t e Tm a temperaturado meio que envolve o corpo.

Fig 6.3 - Esquema do exercício 6.4.Usando dQ = mcdT temos

dT

dt= −hA

mc(T − Tm) = −R(T − Tm), com R =

hA

mc

6.6. MÉTODO DE RUNGE-KUTTA 4ª ORDEM 69

onde m é a massa do corpo e c seu calor específico. Considere uma garrafa cilíndrica de água quesaiu da geladeira com uma temperatura inicial T0 = 5°C e foi colocada na mesa da cozinha ondea temperatura do ar é de Tm = 25°C. O raio externo da garrafa e sua altura são 5cm e 25cm,respectivamente. Além disso o material da garrafa possui as mesmas propriedades da água.(a) use integração para obter a expressão analítica de T(t)(b) use a metodologia Forward Modificada para obter a solução numérica da EDO. Para issoconsidere uma massa total de 2kg, que a base da garrafa está isolada térmicamente e que ocoeficiente h seja de 35 W/m2°C.(c) faça um gráfico superposto das soluções analítica e numérica.

6.5- Considere um circuito RLC em série como ilustrado nafigura ao lado. Sejam R = 10Ω, L = 50mH e C = 100µF.O capacitor está carregado com Vc = 10V em t = 0s,instante em que a chave é acionada. Sabemos ainda queas ddps entre os terminais de cada elemento são dadaspor

VR = RI ; VL = LdI

dt; VC =

1

C

ˆI dt

e, usando a lei das malhas obtemos

LdI

dt+RI +

1

C

ˆI dt = 0.

Fig 6.4 - Esquema do exercício 6.5.Substituindo I = dq/dt, a EDO homogênea anterior é reescrita em termos para a carga armaze-nada no capacitor na forma

Ld2q

dt2+R

dq

dt+

1

Cq = 0.

Considerando R < 2√L/C a solução oscilante é dada por

q(t) = CV0 exp(− R

2Lt) cos(wt+ α)

sendo w = [w20 − (R/2L)2]1/2 a frequência das oscilações com w0 = 1/

√LC. Use o Método de

Runge-Kutta de 4ª ordem e:(a) obtenha as soluções numéricas para q(t) e I(t)(b) compare a solução numérica e analítica de q(t) ; use um gráfico superposto com a soluçãoanalítica expressa por pontos e a numérica com linha contínua.

6.6 Ao substituirmos a chave no circuito RLC (Figura 6.5) por uma fonte alternada obtemos

LdI

dt+RI + VC = Ve.

Como Vc = q/C e I = dq/dt = C dVC/dt temos por substituição

LCd2VCdt²

+RCdVCdt

+ VC = Ve,

que representa uma EDO não homogênea com solução VC(t). Seja a tensão de excitação docircuito dada por Ve(t) = V0sen(wf t) com V0 = 10V e wf = 120π rad/s. Use os mesmos dadosdo problema anterior para obter a solução numérica via Método de Runge-Kutta.

70 CAPÍTULO 6. SOLUÇÃO DE EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

Capítulo 7

Solução de Equações Diferenciais Parciais

7.1 Equação da Difusão 1-D (caso transiente)

Quando estudamos condução do calor (Física II) vimos que a taxa de condução do calor através de umabarra de comprimento L e área de seção reta A, sujeita as temperaturas T1 e T2 em suas extremidades,era dada por

H = −kAdTdx≈ −kA∆T

∆x

H = −kAT2 − T1

L(7.1)

com T1 > T2. Esta equação expressa que a taxa de condução H (cte) é proporcional a área daseção reta da barra e também ao gradiente de temperatura entre suas extremidades. A constante deproporcionalidade é conhecida por condutibilidade (ou condutividade) térmica do material de que abarra é constituída. Este é o caso da condução em regime estacionário, que não depende do tempo.

Por outro lado, se a barra estivesse inicialmente à uma temperatura de 10°C e subitamente fossecolocada entre dois reservatórios de calor com temperaturas T1 = 100°C e TL = 0°C, respectivamente,o que aconteceria? Este é um exemplo de condução do calor em que a temperatura da barra se alteracom o tempo, regime transiente. A equação da condução do calor 1-D é então expressa na forma

k∂2T

∂x2= ρc

∂T

∂t(7.2)

onde ρ é a massa específica e c o calor específico do material da barra. Para simplificar definimos adifusividade térmica do material pela razão κ = k/ρc obtendo a equação diferencial parcial de segundaordem em x

κ∂2T

∂x2=∂T

∂t(7.3)

cuja solução desejada é T (x, t), isto é, é uma função que depende da posição e do tempo. Normalmenteas equações diferenciais que envolvem o tempo possuem o que denominamos de condições iniciais,ou seja, para o tempo t = 0s conhecemos a distribuição espacial de temperatura da barra, isto é,T (x, 0) = f(x). Não obstante é comum este tipo de problema estar sujeito à uma ou mais condiçõesde fronteira como na seção precedente.

A seguir veremos duas variações de tratamento numérico da equação da difusão do calor em regimetransiente.

71

72 CAPÍTULO 7. SOLUÇÃO DE EQUAÇÕES DIFERENCIAIS PARCIAIS

7.2 Soluções Numéricas da Equação da Difusão

7.2.1 Forward no tempo e centrada no espaço (1-D)

Como a solução da EDP T depende de duas variáveis x e t precisamos incluir mais um índice parao tempo. Assim a convenção será x = i∆x e t = j∆t, sendo ∆x e ∆t as discretizações espacial etemporal, respectivamente. Deste modo definimos as seguintes notações

T (x, t) = T (i∆x, j∆t) ≡ T jiT (x+ ∆x, t) = T ((i+ 1)∆x, j∆t) ≡ T ji+1

T (x, t+ ∆t) = T (i∆x, (j + 1)∆t) ≡ T j+1i , ...

de modo a facilitar as deduções futuras. Substituindo as derivadas por suas aproximações numéricasna equação (7.3) temos

κT ji+1 − 2T ji + T ji−1

∆x2=T j+1i − T ji

∆t(7.4)

ouT j+1i = T ji +

κ∆t

∆x2

[T ji+1 − 2T ji + T ji−1

]= γT ji−1 + (1− γ)T ji + γT ji+1 (7.5)

onde γ = κ∆t/∆x2. Esta formulação é útil pois conhecendo os valores da temperatura em todosos pontos espaciais i no tempo inicial j, podemos calcular a temperatura nos pontos i porém notempo posterior j + 1. Se além de valores iniciais o problema possuir condições de fronteira torna-semais conveniente a formulação matricial do mesmo. O processo é similar ao desenvolvido na capítuloprecedente: uma barra homogênea com temperatura inicial conhecida é fixada entre dois resevatóriostérmicos com temperaturas T1 e TL. Usando a equaçao (7.5) escrevemos o conjunto de equações paradiferentes valores de i a saber

i = 2 T j+12 = γT j1 + (1− γ)T j2 + γT j3

i = 3 T j+13 = γT j2 + (1− γ)T j3 + γT j4

:

i = n− 1 T j+1n−1 = γT jn−2 + (1− γ)T jn−1 + γT jn

ou ainda na forma matricial

T2

T3

.

.

.Tn−1

j+1

=

(1− γ) γ 0 0 .. 0γ (1− γ) γ 0 .. 00 γ (1− γ) γ 0 :: . . . . :: . . . . γ0 .. 0 0 γ (1− γ)

T2

T3

.

.

.Tn−1

j

+

γT1

0..0γTL

(7.6)

ou na formulação compactaUj+1

= M Uj

+ V (7.7)

onde T1e TL são constantes de modo que o vetor V também o é.

7.2.2 Esquema de Crank-Nicolson (1-D)

O esquema desenvolvido nesta seção é muito usado em problemas de difusão. A metodologia numéricaé relativamente simples e os resultados normalmente melhores do que qualquer outra combinação dederivadas numéricas. Assim a derivada segunda é substituída pela média das derivadas tomadas nostempos t e t + ∆t enquanto a derivada no tempo é a adiantada. Usando a equação (7.3) definimos ataxa de variação da solução por

7.3. SOLUÇÃO DA EQUAÇÃO DE SCHRÖDINGER 1-D TRANSIENTE (PACOTE GAUSSIANO)73

∂T

∂t=

∂x

(κ∂T

∂x

)= f(t, T,

∂T

∂x,∂2T

∂x2)

Aplicando a proposta de Crank-Nicolson obtemos a seguinte relação para a derivada numérica notempo

T j+1i − T ji

∆t=

1

2

[f(t+ ∆t, T,

∂T

∂x,∂2T

∂x2) + f(t, T,

∂T

∂x,∂2T

∂x2)

],

que após substituição da função f fornece

κ

2

[T j+1i+1 − 2T j+1

i + T j+1i−1

∆x2+T ji+1 − 2T ji + T ji−1

∆x2

]=T j+1i − T ji

∆t. (7.8)

desde que k seja constante. Usando a definição γ = κ∆t/∆x2 e transpondo os termos no tempo t+ ∆tpara a esquerda da igualdade e os termos t para o lado direito da equação temos

γ

2

[T j+1i+1 − 2T j+1

i + T j+1i−1

]− T j+1

i = −γ2

[T ji+1 − 2T ji + T ji−1

]− T ji ,

γ

2T j+1i−1 − (1 + γ)T j+1

i +γ

2T j+1i+1 = −γ

2T ji−1 − (1− γ)T ji −

γ

2T ji+1,

γT j+1i−1 − 2(1 + γ)T j+1

i + γT j+1i+1 = −γT ji−1 − 2(1− γ)T ji − γT

ji+1.

Novamente não podemos usar os valores de i = 1 e i = n pois os termos T−1 e Tn+1 não estão presentesna solução do problema. Considerando uma temperatura fixa para T1 o primeiro termo à esquerdada equação é constante logo T j+1

1 = T j1 = T1 e podemos transpor este termo para o lado direito daigualdade pois este T1 é conhecido. Quando i = n−1 o termo T j+1

n = T jn = TL e o mesmo procedimentopode ser realizado penúltima equação. A igualdade é reescrita na forma matricial a saber

−(1 + 2γ) γ 0 .. 0γ −(1 + 2γ) γ . :0 . . . 0: . γ −(1 + 2γ) γ0 . . γ −(1 + 2γ)

︸ ︷︷ ︸

ME

T2

T3

::

Tn−1

j+1

=

=

−(1− 2γ) −γ 0 .. 0−γ −(1− 2γ) −γ . :0 −γ . . 0: . −γ −(1− 2γ) −γ0 . . −γ −(1− 2γ)

︸ ︷︷ ︸

MD

T2

T3

::

Tn−1

j

2γT1

0:0

2γTn

j

(7.9)

ou ainda, na forma compactaMEU

j+1= MDU

j − V j,

de modo que a solução desejada, vetor U j+1 , possui a distribuição de temperatura no intervalo[∆x, L−∆x] pois os valores das temperaturas em x = 0 e x = L são fixos e conhecidos.

7.3 Solução da Equação de Schrödinger 1-D transiente (pacote Gaus-siano)

A equação de Schrödinger expressa em coordenadas cartesianas 1-D é dada por

− ~2

2m

∂2Ψ

∂x2+ V (x)Ψ = i~

∂Ψ

∂t, ou HΨ = i~

∂Ψ

∂t, (7.10)

74 CAPÍTULO 7. SOLUÇÃO DE EQUAÇÕES DIFERENCIAIS PARCIAIS

onde H = −(~2/2m)∂2/∂x2 +V (x) é o operador Hamiltoniano. Na eq.(7.10) m é a massa da partículasujeita a um potencial dependente apenas da posição V (x), t é a coordenada tempo, Ψ(x, t) a soluçãoda equação diferencial com

~ =h

sendo h = 6, 626× 10−34J · s = 4, 136× 10−15eV · s a constante de Planck. No caso de uma partículalivre V (x) = 0 e a solução Ψ(x, t) pode ser obtida pela técnica de separação de variáveis (Butkov, dad, pg). Outros problemas como uma partícula sujeita a ação de potenciais degrau, barreira e poço sãoigualmente resolvidos usando a mesma técnica.

Um problema interessante é o de uma partícula livre cuja função de onda em t = 0s é modulada poruma Gaussiana. Segundo Cohen et al. (ANO) o pacote de onda Gaussiano pode ser obtido em termosde uma transformada de Fourier no espaço dos momentos a saber

Ψ(x, 0) =

√a

(2π)3/4

ˆ +∞

−∞exp[−a

2

4(k − k0)2] exp(ikx) dk (7.11)

e que representa uma superposição de ondas planas com velocidade inicial v0 = p0/m = ~k0/m, a élargura do pacote com o número de onda k0 dado por

k0 =

√2mE

~(7.12)

sendo E a energia da partícula.

A evolução no tempo do pacote Gaussiano é obtida pelo resultado da transformada

Ψ(x, t) =

√a

(2π)3/4

ˆ +∞

−∞exp[−a

2

4(k − k0)2] exp[i(kx− wt)] dk

com frequência angular w = ~k2/2m sendo esta a relação de dispersão do pacote. Após manipulaçõesalgébricas pode-se mostrar que a expressão para o pacote Gaussiano assume a forma

Ψ(x, t) =

(2a2

π

)1/4eiϕ(

a4 + 4~2t2m2

)1/4eik0x exp

(x− ~k0

m t)2

a2 + 2i~tm

, (7.13)

com

ϕ = −θ − ~k20

2mt e

tan 2θ =2~tma2

.

Exemplo 7.1 - Consideremos uma partícula livre descrita por um pacote Gaussiano. No sistema deunidades atômicas temos m = 0, 5~ = 0, 5, a = λ = π/1, 5, x0 = −10 e consideramos um domíniopara o modelo numérico Lε[−20, 20] com discretização espacial de 851 pontos. Na discretizaçãoda coordenada tempo foram usados 1501 avaliações entre tε[0, max(L)/v0].

% schrodinger_1D.m% resolve a eq. schrodinger 1D- transiente% particula livre% opcional: condicao periodicaclear ; clc ;%--------------------------------------------------------------------------% Unidades atomicas (u.a.): ref. %% Bohr radius: ao = (4.pi.epslon_o.hb^2)/(e^2.m) = 0.52918 Angstrons (1e-10)

7.3. SOLUÇÃO DA EQUAÇÃO DE SCHRÖDINGER 1-D TRANSIENTE (PACOTE GAUSSIANO)75

% Time : t’ = (hb/ao^2.m).t = t / 2.418884e-17s% Length : x’ = x / ao = x / 0.529180e-10m% Velocity : v’ = x’/t’ = (ao.m/hb).v = v / 2.187691263e+6 m/s% massa : m’ = m /me = m / 9.1094e-31 kg% Energia : V’ = (ao^2.m/hb^2)V = V / 27.2114eV (1eV = 1.60217733e-19 J)%--------------------------------------------------------------------------% sistema de unidades e parametros do pacote de ondasm = 0.5; % massa = 9.1093826160e-31 kghb = 1.0; % cte planck = 1.0545716818e-34 J.s%% discretizacao espacialL = 20.; % -L < x < LNx = 851; % no. ptos. = 1501dx = 2*L/(Nx-1); % discret. espacialx =-L:dx:L;%% parametros fisicos do modelolam= pi/1.5; % comprimento de ondako = 2*pi/lam; % no. onda medio <ko> = < p >/hbE = (ko*hb)^2/2/m;vo = ko*hb/m; % velocidade de grupo Vg = < v >xo =-10; % posiçao inicial < x >sigo = 1.*lam;%% discretizacao tempoT = L/vo; %4*abs(xo/vo); % TmaxNt = 1501; % no. avaliacoes = 2401dt = T/(Nt-1); % incremento no tt = 0:dt:T;%% forma inicial do pacote de onda (com normalizacao)psio = exp(-0.5*(x-xo).^2/sigo^2).*exp(i*ko*x);% c=(2/pi/sigo^2)^0.25 *C2 = sqrt( trapz(x, abs(psio).^2) );psio = psio/C2;%% distribuicao do potencial Step c/ Vo/2 em x=0disp(’A energia na regiao V=0 eh: ’);disp(E);Uo = input(’Entre com o valor max. do potencial: ’)IV = abs(L/dx)+1; ii = (Nx-1)/2+1;Ui = zeros(1,Nx); Ui(IV+1:Nx)= Uo; Ui(IV)= Uo/2;%% condicoes p/ estabilidade e precisao :% ajp_Goldberg_Schey_Schwartz.pdf pg. 182% dimeo_quantum_visualizations_SP.pdf pg. 57% para dt: SchrodingerFDTD.pdf eq.30 pg.4

alpha= 2*dx^2*m/(hb*dt);kzero= abs(Nx*alpha/8/Nt/dx);km = -log(1.e-5)/sigo^2+ko;disp(’condicao 1:(km*dx)^2/12’);disp(’condicao 2: Nt.dt^3.(km^6-kzero^6)/12’)disp(’condicao 3: km*dx/pi’);

76 CAPÍTULO 7. SOLUÇÃO DE EQUAÇÕES DIFERENCIAIS PARCIAIS

disp(’condicao 4: max(Ui)*dx^2/12’)disp(’condicao 5: hb/( hb^2/m/dx^2 + Uo/2 )’)cnd1 = (km*dx)^2/12; cnd2 = abs(Nt*dt^3*(km^6-kzero^6)/12);cnd3 = km*dx/pi; cnd4 = max(Ui)*dx^2/12;cnd5 = hb/( hb^2/m/dx^2 + Uo/2 );disp(’ cnd1 cnd2 cnd3 cnd4 devem ser <= 0.1’);disp([cnd1 cnd2 cnd3 cnd4]);if cnd1 > 0.1; disp(’condicao 1: Falhou’); end;if cnd2 > 0.1; disp(’condicao 2: Falhou’); end;if cnd3 > 0.1; disp(’condicao 3: Falhou’); end;if cnd4 > 0.1; disp(’condicao 4: Falhou’); end;if dt > cnd5; disp(’condicao 5: Falhou’); end;

alf= hb*dt/(4*m*dx^2); psio(1) = 0; psio(Nx)= 0;Po = abs(psio).^2; Ao = max(Po); Ar = max(real(psio));Ai = max(imag(psio));plot(x,real(psio), x, imag(psio)); pauseplot(x,Po/Ao); pause%% gera matrizes diferencas finitas a esquerda e direita% da equacao - Cranck-Nicholson%ME=diag((i-2*alf-dt*Ui*0.5/hb),0) + diag( alf*ones(Nx-1,1),-1) ...+ diag( alf*ones(Nx-1,1),1);

MD=diag((i+2*alf+dt*Ui*0.5/hb),0) + diag(-alf*ones(Nx-1,1),-1) ...+ diag(-alf*ones(Nx-1,1),1);

%% insere condicao periodica psi(0) = psi(N+1)disp(’ ’);cnd_p = input(’Deseja condicao periodica ? (1- sim, 0- nao) ’);if cnd_p == 1;

ME(1,Nx)= alf; ME(Nx,1)= alf; MD(1,Nx)=-alf; MD(Nx,1)=-alf;end;MES=sparse(ME); MDS=sparse(MD); clear ME; clear MD;%% calcula a matriz de propagacaoIME=inv(MES); MMD=IME*MDS; clear IME;psi(1,:)=psio; Pxt(1,:) = conj(psi(1,:)).*psi(1,:);plot(x,Pxt(1,:)); axis([-0.5,1.,0, max(Pxt(1,:))]);Ampl=max(Pxt(1,:));[ve_o,ie_o]=max(Pxt(1,1:IV)); [vd_o,id_o]=max(Pxt(1,IV:Nx));%% evolucao no tempot_o = 0; cnt = 0; escala = 0.5*max(Uo,E);ticfor it=2:Nt;

sol = MMD* transpose(psi(it-1,:));psi(it,:) = transpose(sol);Pxt(it,:) = conj(psi(it,:)).*psi(it,:);if rem(it,20) == 0;% filme -----------------------------------------------------

Ampl=max(Pxt(it,:));plot(x, E+ escala* Pxt(it,:)/Ao,’-k’,x,Ui,’m’,’LineWidth’,2);hold on ;

7.4. EQUAÇÃO DA ONDA 77

plot(x, E+ escala* real(psi(it,:))/Ar,x,E+escala*imag(psi(it,:))/Ai);xlabel(’x (a.u.)’) ; ylabel(’ Potencial (a.u.)’);hold off;axis([-L, L, 0,1.5*max(Uo,E) ]);pause(0.001);

end;end;

−20 −10 0 10 200

2

4

6

x 10−3

Ene

rgia

(a.

u.)

t = 0 u.a.

−20 −10 0 10 200

2

4

6

x 10−3

Ene

rgia

(a.

u.)

t = 1224 u.a.

−20 −10 0 10 200

2

4

6

x 10−3

Ene

rgia

(a.

u.)

t = 2448 u.a.

−20 −10 0 10 200

2

4

6

x 10−3

Ene

rgia

(a.

u.)

t = 3672 u.a.

−20 −10 0 10 200

2

4

6

x 10−3

x (a.u.)

Ene

rgia

(a.

u.)

t = 4896 u.a.

−20 −10 0 10 200

2

4

6

x 10−3

x (a.u.)

Ene

rgia

(a.

u.)

t = 6120 u.a.

|Ψ (x, t)|2

U(x)

Re(Ψ)

Im(Ψ)

Figura 7.1: gg

7.4 Equação da Onda

Em disciplinas anteriores o estudo da propagação de ondas contemplou as ondas sonoras em tubos eno espaço sendo estas conhecidas por ondas longitudinais. O estudo das ondas transversais inicia-seem cordas sendo aprofundado, posteriormente, na propagação das ondas eletromagnéticas em meiosnormalmente homogêneos.

As equações de propagação das ondas eletromagnéticas em um meio de permissividade elétrica ε e

78 CAPÍTULO 7. SOLUÇÃO DE EQUAÇÕES DIFERENCIAIS PARCIAIS

permeabilidade magnética µ são

∂2−→E∂t2

= v2∇2−→E ∂2−→B∂t2

= v2∇2−→B,

onde v = 1/√εµ é a velocidade da onda eletromagnética no meio. Equações de propagação de ondas

mecânicas são similares às eletromagnéticas, i. e.

∂2u

∂t2= v2∇2u,

onde u representa a deformação do meio. A velocidade da em uma corda é função do módulo da tensãoT e da densidade linear mesma λ (v2 = T/λ); para ondas sonoras a velocidade de propagação dependedo módulo volumétrico B e da massa específica do meio não pertubado ρ0 na forma v2 = B/ρ0, ondeB = −V∆p/∆V definido como a razão entre a variação de pressão e a respectiva variação relativa devolume.

7.5 Equação de Laplace e Poisson 2-D (caso estacionário)

Em estudos da difusão do calor (ou eletrostática) podemos estar interessados na solução estacionáriade um problema do tipo

−∇ · (k∇T ) = s,

onde T (x, y, z) é o campo escalar de temperatura (ou potencial elétrico) , k a condutividade térmicado meio (ou permissividade elétrica) e s é o termo fonte. Em coordenadas cartesianas esta equação éreescrita a saber

∂x

(k∂T

∂x

)+

∂y

(k∂T

∂y

)+

∂z

(k∂T

∂z

)= −s(x, y, z).

As soluções numéricas dos problemas bidimensionais exigem um esforço computacional superior aosproblemas em uma dimensão. Para ilustrar a aquisição de tais soluções consideremos o Método deDiferenças Finitas aplicado ao problema estacionário da condução do calor em uma placa de lados Lxe Ly

∂2T

∂x2+∂2T

∂y2= −s(x, y).

k

e usando a formulação centrada para as derivadas parciais temos

Ti+1,j − 2Ti,j + Ti−1,j

∆x2+Ti,j+1 − 2Ti,j + Ti,j−1

∆y2= −s(xi, yj)

k

com a seguinte definição Ti,j = T (xi, yj) onde xi = (i− 1)∆x e yj = (j− 1)∆y. A equaçao acima podeser reescrita na forma

Ti+1,j + Ti−1,j

∆x2+Ti,j+1 + Ti,j−1

∆y2− 2

(1

∆x2+

1

∆y2

)Ti,j = −s(xi, yj)

k

∆y2 (Ti+1,j + Ti−1,j) + ∆x2 (Ti,j+1 + Ti,j−1)− 2(∆x2 + ∆y2

)Ti,j = −∆x2∆y2 s(xi, yj)

k

ouTi,j =

1

2 (∆x2 + ∆y2)

[∆y2 (Ti+1,j + Ti−1,j) + ∆x2 (Ti,j+1 + Ti,j−1) + ∆x2∆y2 s(xi, yj)

k

]o que indica ser a temperatura Ti,j , no ponto (xi, yj), uma função da temperatura nos pontos vizinhose do termo fonte. A figura (7.2) ilustra os pontos e suas respectivas temperaturas para a estimativa dovalor Ti,j . Infelizmente este método não retorna a solução da equação diferencial com boa aproximação.Para melhor estimar a solução da EDP lembremos do Método da Iteração Linear (Seç. 2.1) de modoque

Tn+1i,j = g(Tni+1,j , T

ni−1,j , T

ni,j+1, T

ni,j−1, si, j)

7.5. EQUAÇÃO DE LAPLACE E POISSON 2-D (CASO ESTACIONÁRIO) 79

Figura 7.2: dfvdv

onde os sobrescritos indicam a estimativa inicial da solução Tn e a nova estimativa da solução Tn+1.Se considerarmos ∆x = ∆y = ∆ obtemos após simplificações

Tn+1i,j =

1

4

[Tni+1,j + Tni−1,j + Tni,j+1 + Tni,j−1

]+

∆2

4

s(xi, yj)

k

que é a expressão conhecida por Método de Jacobi, necessária a implimentação do Algoritmo de Jacobi.A expressão acima permite estimar a nova temperatura nos pontos internos do domínio, i.e., paravalores de i ∈ [2, Nx − 1] e j ∈ [2, Ny − 1] sendo portanto ideal para problemas em que a condiçãode fronteira é fixa e conhecida (Dirichlet). Se a condição de fronteira for a de Neumann deveremosrealizar adaptações que incluam o fluxo nas fornteiras.

Exemplo: Uma placa homogênea de lados Lx = 3a e Ly = 2a está sujeita às seguintes condições defronteira (contorno)

∂T

∂x= 0, em x = 0 e y ∈ [0, Ly],

∂T

∂y= 0, em y = 0 e x ∈ [0, Lx],

T (Lx, y) = 0,

T (x, Ly) = T0 cosπx

6a,

cuja solução analítica (Reddy, 1993, p.348) é

T (x, y) = T0cosh πy

6a cos πx6a

cosh(π/3).

O problema não possui fonte e a propriedade física é considerada constante. O script parcialabaixo ilustra os passos principais necessários ao cálculo do campo de temperatura pelo métodode Jacobi:

% Jacobi.m%% resolve o problema : d2U d2U% --- + ---- = -s(x,y)/k

80 CAPÍTULO 7. SOLUÇÃO DE EQUAÇÕES DIFERENCIAIS PARCIAIS

% dx2 dy2% sujeito a condiçoes de contorno de Dirichlet e Neumann% usando o metodo de Jacobi%clear;%par= input(’Entre as dimensoes do modelo [Lx,Ly]: ’);Lx = par(1); Ly=par(2);del= input(’Entre com a discretizacao Deltax=Deltay: ’);x = 0:del:Lx;y = 0:del:Ly;Nx = length(x);Ny = length(y);T = zeros(Nx,Ny); % inicializa a temperaturafonte= zeros(Nx,Ny); % inicializa a fonte%% insere condicoes de contorno%% condicao na borda superior (x, y=Ly)

T(:,Ny)=10*cos(pi*x/(2*Lx))’ ;% condicao na borda direita (x=Lx, y)

T(Nx,:)= 0.0;%% grafico de T inicial%[mx,my]= meshgrid(x,y);mesh(mx,my,T)xlabel(’x’);ylabel(’y’);zlabel(’T’);pause%% iteracao do Metodo de Jacobi%err=1;cnt=0while err >= 1.e-4;

cnt=cnt+1;Tnew=T;Tnew(2:Nx-1,2:Ny-1)= 0.25*( T(3:Nx,2:Ny-1) + T(1:Nx-2,2:Ny-1) +...

T(2:Nx-1,3:Ny) + T(2:Nx-1,1:Ny-2) );% borda (x=0) - Neumann homogênea

Tnew(1,2:Ny-1)= 0.25*( 2*T(2,2:Ny-1) + T(1,3:Ny) + T(1,1:Ny-2) );% borda (y=0) - Neumann homogênea

Tnew(2:Nx-1,1)= 0.25*( 2*T(2:Nx-1,2) + T(3:Nx,1) + T(1:Nx-2,1) );% (x,y)=(0,0) - Neumann homogênea

Tnew(1,1) = 0.25*(2*T(2,1)+2*T(1,2));% adiciona fonte

Tnew = Tnew + 0.25*del^2*fonte;%

err = max(max(abs(Tnew-T)));T(1:Nx-1,1:Ny-1) = Tnew(1:Nx-1,1:Ny-1);

%mesh(mx, my, T)xlabel(’x’); ylabel(’y’); zlabel(’T’);

7.6. EXERCÍCIOS 81

pause(0.001);end;%% solucao analitica%for j=1:Ny;

for i=1:Nx;Tan(i,j)=10*( cosh(pi*y(j)*0.5/Lx)*cos(pi*x(i)*0.5/Lx) )/cosh(pi/3);end;

end;figure(1) %-----------------meshc(mx, my, T)xlabel(’x’); ylabel(’y’); zlabel(’T’); title(’Sol. Num.’);%figure(2) %-----------------meshc(mx, my, Tan)xlabel(’x’); ylabel(’y’); zlabel(’T’); title(’Sol. Analit’);%difer=Tan-T;pausefigure(3) %-----------------mesh(mx, my, difer);xlabel(’x’); ylabel(’y’); zlabel(’T’); title(’Difere An-Nu’);%max(max(abs(difer)))

7.6 Exercícios

7.1 Uma barra de aço homogênea e isotrópica, com comprimento 1,2m, encontra-se à uma tem-peratura inicial de 20ºC. A seção transversal da barra é de 20cm2, sua difusividade térmicaκ = 1, 38 × 10−5m2/s e sua condutividade térmica K = 52, 9W/m·K. A barra está isolada tér-micamente na área externa ao longo de seu comprimento e é encaixada entre dois reservatóriostérmicos, um à 100°C e outro à 0°C no tempo t = 0s. Podemos calcular a taxa de transferênciade calor através da barra, em regime estacionário, aplicando a equação (7.1). Como o problemaé transiente resolva-o numéricamente usando:a) a técnica apresentada na subseção (7.2.1) eb) a técnica apresentada na subseção (7.2.2)para estimar a variação de temperatura em L/4, L/2 e 3L/4 com o tempo, ou seja, obter umgráfico ilustrando o comportamento da temperatura em função do tempo nas posições mencio-nadas.

Para estimar o tempo em que o regime deixa de ser transiente compare as taxas de transfe-rência de calor estimadas numéricamete em L/4 e 3L/4. Teoricamente quando elas forem iguaiso regime será permanente porém numericamente esta igualdade não ocorre e você deve usar umcritério relativo, por exemplo:

Diferenca =|H(L/4)−H(3L/4)|

H(L/4)< 0, 05

ou seja quando a diferença relativa for inferior a 5% o programa termina e informa o tempodesejado. Implemente este cálculo com o intúito de estimar o tempo necessário para o sistemaalcançar o estado estacionárioc) no item (a), ed) no item (c).

82 CAPÍTULO 7. SOLUÇÃO DE EQUAÇÕES DIFERENCIAIS PARCIAIS

7.2: Considere a equação (7.3) com um termo fonte, ou seja,

κ∂2T

∂x2+s(x, t)

ρc=∂T

∂t,

onde K é a condutividade térmica, ρ é a massa específica, c o calor específico e κ = K/ρc é adifusividade térmica do meio (propriedades constantes). Considerando o termo fonte função tantoda posição como do tempo obtenha o sistema de equações lineares pertinente a este problemapela aplicação da metodologia proposta na seção (7.2.2).

7.3 Uma barra de tungstênio possui comprimento L = 1m, área de seção reta A = 20 cm2, K =178 W/m·K, ρ = 13, 9 kg/m3 , c = 132 J/kg·K e encontra-se inicialmente à 30°C. Sua áreaexterna, ao longo de seu comprimento, encontra-se isolada térmicamente do meio vizinho. Asfaces esquerda e direita subitamente entram em contato com reservatórios térmicos um à 100°C eoutro à 0°C. A fonte de calor é gerada pela passagem de corrente elétrica através de várias ddpsao longo de seu comprimento na forma

s(x) =1√

2πσ2exp(

−(x− xo)2

2σ2),

onde σ = 0, 1 e x0 = 0, 5. Obtenha a distribuição de temperatura T (x, t) nos tempos t = 60, 300e 1000 s (faça um gráfico contendo estas três curvas).

7.4 Efeito de bordas: dois planos paralelos estão separados de 10cm e encontram-se carregados coma -V e +V sendo o potencial de um Volt . Os planos estão imersos no ar: obtenha o pontencialelétrico pela solução numérica da equação(

∂2V

∂x2+∂2V

∂y2

)= 0

considerando Lx = Ly = 1m e Nx = Ny = 101. Use a condição homogênea de Neumann emy = 0m para reduzir o modelo (ver figura). Após obter o potencial use as intruções:

Nx = 101; x = linspace(0,Lx,Nx); del = x(2)-x(1);Ny = Nx; y = linspace(0,Ly,Ny);[yg,xg] = meshgrid(y,x);. . .% Os cálculos são parecidos com o apresentado no script Jacobi.m% A cada iteração do método deve-se redefinir o potencial em cada placa ou seja% V(x,y) = -1 para os pontos sobre a placa em x=0,45% V(x,y) = +1 para os pontos sobre a placa em x=0,55. . .% para obter as equipotenciais sobrepostas ao campo elétrico usecurvas = linspace( min(min(V)), max(max(V)), 7);[C,h] = contour(xg, yg, V, curvas);clabel(C,h); hold on;[EY,EX] = gradient(-V,del,del);hold off;% Adicione ao final as instruçõesplot(x,EX(:,[1 41 51 56 61]));xlabel(’x (m)’); ylabel(’E_x (V/m)’)para avaliar a componente x do campo elétrico em y = 0; 0,4; 0,5; 0,55 e 0,60 m.

7.6. EXERCÍCIOS 83

Figura 7.3: (Esquerda) modelo usado para avaliar efeito de bordas em capacitor de placas paralelas(Direita) .

84 CAPÍTULO 7. SOLUÇÃO DE EQUAÇÕES DIFERENCIAIS PARCIAIS

Referências Bibliográficas

PRESS, H. A. (Ed.). Mathematical Methods for Physicists. 5.ed. [S.l.: s.n.], 2001. 1112p.

GUSMAN, G.; VASCONCELLLOS, A. Fluxogramas e Programação Cobol. 2.ed. [S.l.]: LivrosTécnicos e Científicos, RJ, 1985. 180p.

JALÓN, J. G. D.; RODRÍGUEZ, J. I.; VIDAL, J. Aprenda Matlab 7.0 como si estuviera enprimero. [S.l.]: Universidad Politécnicade, Escuela Técnica Superior de Ingenieros Industriales,Madrid, 2005. 128p.

JALÓN, J. G. D.; RODRÍGUEZ, J. I.; VIDAL, J. Aprenda Matlab 5.3 como si estuviera enprimero. [S.l.]: Universidad Politécnicade, Escuela Técnica Superior de Ingenieros Industriales,Madrid, 2001. 113p.

MEDINA, M.; CRISTINA, F. Algoritmos e Programaçao - Teoria e Prática. [S.l.]: Novatec,2005. 384p.

PRESS, W. H.; FLANNERY, B. P.; TEUKOLSKY, S. A.; VETTERLING, W. T. Numerical Reci-pes: the art of scientific computing (fortran version). 2.ed. New York: Cambridge University Press,1989.

RECKTENWALD, G. Numerical Methods with MATLAB: implementations and applications.[S.l.]: Prentice Hall, 2000.

CIENTíFICOS, L. T. e (Ed.). Física. [S.l.: s.n.], 1983. v.1.

RINO, J. P. Física Computacional I. http://www.df.ufscar.br/Fortran-parteA.pdf, acessado em02/2008.

BRASIL, M.-H. do (Ed.). Cálculo Avançado. [S.l.]: McGraw-Hill do Brasil LTDA., 1975. 500p.

THE MATHWORKS, I.MATLAB - The Language of Technical Computing, MATLAB Func-tion Reference. The MathWorks, Inc., 3 Apple Hill DriveNatick, MA 01760-2098: The MathWorks,2002. v.1: A - E.

THE MATHWORKS, I.MATLAB - The Language of Technical Computing, MATLAB Func-tion Reference. The MathWorks, Inc., 3 Apple Hill DriveNatick, MA 01760-2098: The MathWorks,2002. v.2: F - O.

THE MATHWORKS, I.MATLAB - The Language of Technical Computing, MATLAB Func-tion Reference. The MathWorks, Inc., 3 Apple Hill DriveNatick, MA 01760-2098: The MathWorks,2002. v.3: P - Z.

TREFETHEN, L. N. Is Gauss Quadrature Better than Clenshaw-Curtis? SIAM Review, v.50, n.1,p.67–87, 2008.

WILSON, H.; TURCOTTE, L. Advanced Mathematics and Mechanics Applications UsingMATLAB. 2nd ed..ed. [S.l.]: CRC Press, 1998.

85

86 REFERÊNCIAS BIBLIOGRÁFICAS

Appendix A

Obtendo Pontos e Pesos para Quadraturas

Os métodos de quadratura apresentados no capítulo 2 necessitam dos pontos e dos pesos para aobtenção dos resultados numéricos das integrais definidas ou impróprias. Generalizando, o procedi-mento numérico de integrar uma função resume-se a substituir a integral por uma soma finita de termosna forma

I =

ˆ 1

−1f(x) dx =

ˆ 1

−1w(x)F (x) dx =

n∑i=1

W (xi)F (xi),

onde F (x) = f(x)/w(x). Casos em que os limites de integração sejam diferentes de -1 e 1 são resolvidoscom uma substituição de variáveis pertinente.

A.1 Quadratura Gaussiana

Desejamos encontrar os pontos e pesos da quadratura necessários à obtenção do valor exato da integralde uma função polinomial de grau p = 2n − 1 sendo n o número de pontos e pesos associados. Aaproximação desejada da integral é da formaˆ b

af(x)dx ≈W1f(x1) +W2f(x2) + · · ·+Wnf(xn).

Caso os intervalos de integração sejam diferentes de [-1, 1] utilizamos uma substituição de variáveispertinente, x = xrz + xm onde xr = (b− a)/2 e xm = (b+ a)/2, para reescrever a integral na formaˆ b

af(x)dx = xr

ˆ 1

−1g(z)dz = xr [W1g(z1) +W2g(z2) + · · ·+Wng(zn)] ,

onde g(z) = f(xrz + xm). Simplificando, consideremos o intervalo [a, b] = [−1, 1] e aproximemos afunção f(x) por um polinômio base φk(x) = xk onde k = 0, 1, . . . , p. Substituindo o polinômio basecom k = 0 e intergrando temosˆ 1

−1φ0(x)dx = [1]1−1 = 2 = w1φ0(x1) + w2φ0(x2) + · · ·+ wnφ0(xn)

ou ainda2 = w1 + w2 + · · ·+ wn.

Os resultados para valores superiores de k sãoˆ 1

−1φ1(x)dx = [

x2

2]1−1 = 0 = w1x1 + w2x2 + · · ·+ wnxn

ˆ 1

−1φ2(x)dx = [

x3

3]1−1 =

2

3= w1x

21 + w2x

22 + · · ·+ wnx

2n

......ˆ 1

−1φp(x)dx = [

xp+1

p+ 1]1−1 = w1x

p1 + w2x

p2 + · · ·+ wnx

pn

87

88 APPENDIX A. OBTENDO PONTOS E PESOS PARA QUADRATURAS

e que podem ser reescritos na forma de um sistema de equações não linear com ordem 2n e cujasincógnitas são os pontos e pesos da quadratura (xi, wi com i = 1, 2, . . . , n) a saber

1 1 1 · · · 1x1 x2 x3 · · · xnx2

1 x22 x2

3 · · · x2n

......

.... . .

...xp1 xp2 xp3 · · · xpn

w1

w2

w3...wn

=

20

2/3...

[xp+1

p+1 ]1−1

.

Para resolver este sistema precisamos do conhecimento dos pontos da quadratura (xi) que são as raízesdo polinômio de grau n = (p+ 1)/2 definido segundo a relação de recorrência

pj+1(x) = (x−Aj) pj(x)−Bjpj−1(x)

comp−1(x) = 0 , p0(x) = 1

e coeficientes Aj e Bj obtidos por

Aj =

´ 1−1 xp

2j (x)dx´ 1

−1 p2j (x)dx

, para j = 0, 1, 2, ...

Bj =

´ 1−1 p

2j (x)dx´ 1

−1 p2j−1(x)dx

, para j = 1, 2, 3, ...

sendo B0 uma constante qualquer. Como exemplo desejamos integrar uma função f(x) usando umaaproximação de três pontos (n = 3). Usando as relações de recorrência obtemos

j = 0 ∴ A0 = 0, B0 = 0 logo p1(x) = x

j = 1 ∴ A1 = 0, B1 =1

3logo p2(x) = x2 − 1

3

j = 2 ∴ A2 = 0, B2 =4

15logo p3(x) = x

(x2 − 3

5

).

As três raizes de p3(x) são [x1, x2, x3] = [−√

3/5, 0,√

3/5] ≈ [−0.7746, 0, 0.7746] denominadas depontos da quadratura. Os respectivos pesos serão obtidos pela solução do sistema 1 1 1

−√

3/5 0√

3/5

3/5 0 3/5

w1

w2

w3

=

20

2/3

,fornecendo [w1, w2, w3] = [5/9, 8/9, 5/9] ≈ [0.5556, 0.8889, 0.5556]. Os valores calculados dos pontos epesos permitem integrações precisas com polinômios de grau menor ou igual a 2n− 1 = 5. Finalmenteo resultado da integral pode ser calculdo segundo a quadratura de três pontos a saber

ˆ 1

−1f(x) dx u

3∑i=1

Wi f(xi) =5

9f(−

√3/5) +

8

9f(0) +

5

9f(√

3/5).

A.2 Quadratura Gauss-Legendre

Neste caso w(x) = 1 e F (x) = f(x). A função f(x) será aproximada por um polinômio de Legendrede ordem n, Pn(x), o que fornece

I =

ˆ 1

−1f(x) dx ≈

ˆ 1

−1PN (x) dx =

N∑i=1

W (xi)f(xi),

A.2. QUADRATURA GAUSS-LEGENDRE 89

com os polinômio obtidos recursivamente pela equação

Pj+1(z) = 2zPj(z)− Pj−1(z)− zPj(z)− Pj−1(z)

(j + 1),

onde P0(z) = 1. Asim que for definido o número de pontos n da quadratura obtemos o polinômio deLegendre de mesma ordem e encontramos suas raízes, ou seja, os pontos de avaliação da função para,em seguida, calcular os pesos segundo

Wj =2(

1− z2j

)[P ′n(zj)]

2.