Você está na página 1de 89

Fsica Computacional

Professor Klaus Cozzolino


Universidade Federal do Par
Instituto de Cincias Exatas e Naturais
Faculdade de Fsica
29 de abril de 2013
2
Sumrio
1 Introduo 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 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 Integrao e Diferenciao Numricas 13
2.1 Integrais denidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.1 Regra do Trapzio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.2 Regra de Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Quadratura Guassiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.1 Quadratura Gauss-Legendre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Integrais Imprprias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.1 Quadratura Gauss-Laguerre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4 Diferenciao Numrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4.1 Aproximaes de primeira e segunda ordem para f

(x) . . . . . . . . . . . . . . 21
2.4.2 Aproximaes de primeira e segunda ordem para f

(x) . . . . . . . . . . . . . . 22
2.4.3 Aproximaes de f

(x), f

(x) e f

(x) cbicas e qurticas . . . . . . . . . . . . 22


2.5 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3 Razes de Funes de uma Varivel 27
3.1 Mtodo da Iterao Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.1 Convergncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2 Mtodo de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.1 Convergncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3 Mtodo da Bisseco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4 Mtodo da Secante (Rgula Falsi) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.5 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3
4 SUMRIO
4 Ajuste de Curvas 31
4.1 Mnimos Quadrados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.1 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.2 Ajuste por uma funo qualquer (Newton e Gauss-Newton) . . . . . . . . . . . . . . . 34
5 Sistema de Equaes Lineares 43
5.1 Denies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2 Mtodo de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.3 Mtodo de Gauss-Jordan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.4 Decomposio LU (ou Fatorao LU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.5 Mtodo Iterativo de Jacobi-Richardson . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.6 Mtodo de Gauss-Sidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.7 Convergncia dos mtodos Iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.8 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6 Soluo de Equaes Diferenciais Ordinrias 53
6.1 Decaimento Radioativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.2 Equao de Poisson 1-D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.2.1 Algoritmo de Thomas - Sistemas tridiagonais . . . . . . . . . . . . . . . . . . . 56
6.3 Oscilaes Simples, Amortecidas e Foradas . . . . . . . . . . . . . . . . . . . . . . . . 58
6.3.1 Oscilador Harmnico Simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.3.2 Oscilador Harmnico Amortecido . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.3.3 Oscilaes Foradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.4 Algoritmo Verlet (Velocity-Verlet) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.5 Sistemas de Equaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.6 Mtodo de Runge-Kutta 4 Ordem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7 Soluo de Equaes Diferenciais Parciais 71
7.1 Equao da Difuso 1-D (caso transiente) . . . . . . . . . . . . . . . . . . . . . . . . . 71
7.2 Solues Numricas da Equao da Difuso . . . . . . . . . . . . . . . . . . . . . . . . 72
7.2.1 Forward no tempo e centrada no espao (1-D) . . . . . . . . . . . . . . . . . . . 72
7.2.2 Esquema de Crank-Nicolson (1-D) . . . . . . . . . . . . . . . . . . . . . . . . . 72
7.3 Soluo da Equao de Schrdinger 1-D transiente (pacote Gaussiano) . . . . . . . . . 73
7.4 Equao da Onda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
7.5 Equao de Laplace e Poisson 2-D (caso estacionrio) . . . . . . . . . . . . . . . . . . . 78
7.6 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Referncias Bibliogrcas 85
A Obtendo Pontos e Pesos para Quadraturas 87
A.1 Quadratura Gaussiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
A.2 Quadratura Gauss-Legendre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Captulo 1
Introduo
1.1 Ementa da disciplina
Introduo a linguagem cientca de programao a ser usada no curso: FORTRAN (preferencial-
mente), MATHEMATICA, MAPLE, MATLAB (opcionais). Introduo aos mtodos bsicos de clculo
numrico: zeros de funo, ajuste de dados, integrao, diferenciao e soluo de sistemas algbricos.
Soluo de equaes diferenciais ordinrias que modelem sistemas fsicos por mtodos numricos.
Resoluo numrica de equaes diferenciais parciais em uma e duas dimenses, Transformada de
Fourier, Processos Estocsticos (opcional), Dinmica Molecular (opcional).
1.2 Objetivos
Fornecer meios para que o estudante receba, por uma abordagem moderna, as informaes bsicas,
mas necessrias para o uso das facilidades computacionais existentes na maioria das Faculdades e
Universidades.
1.3 Conceitos iniciais
Linguagem de programao: comunicao pessoa computador.
Como exemplo de linguagens de programao temos:
ASSEMBLY - Esta linguagem de programao foi criada no meio da dcada de 50 para substituir
a linguagem de mquina (linguagem binria que a Unidade Central de Processamento ou CPU
entende).
ALGOL - ALGOrithmic Language. Criada em 1958 constituda por uma mistura de linguagens
de programao. Considerada a primeira linguagem de programao estruturada.
COBOL - COmmon Business Oriented Language. Criada em 1960 com objetivo de manipular
grandes arquivos. Utilizado por bancos e empresas para manuteno de contas correntes, folhas
de pagamento, controle de estoque e outras aplicaes.
BASIC - Beginners All-purpose Symbolic Instruction Code. Foi criada em 1964 no Dartmouth
College e muito utilizada nos primeiros computadores pessoais (PCs).
VBASIC - Visual Basic. Evoluo da Linguagem Basic, muito usada na construo de aplicativos
para sistemas Windows como MSOce e outros aplicativos grcos.
5
6 CAPTULO 1. INTRODUO
PASCAL - Criada em 1970 por Niklaus Wirth, tinha por objetivo a substituio do BASIC por
ser uma linguagem estruturada e robusta. As liguagens de programao Turbo Pascal e Delphi
so evolues do PASCAL.
C - Foi lanada em 1972 para o desenvolvimento de sistemas operacionais UNIX sua evoluo
resultou na linguagem C++ muito utilizada para programao cientca.
FORTRAN - FORmula TRANslation. A primeira verso padronizada foi lanada em 1966 tendo
o nome de FORTRAN66. Aprimoramentos do compilador culminaram nas verses FORTRAN
77, 90 e 95.
JAVA
TM
- muito utilizada atualmente em ambientes de internet, nos celulares, em vizualizaes
3D e aplicativos grcos. Desenvolvida pela companhia Sun Microsystems uma linguagem de
programao multiplataforma.
Qualquer que seja a linguagem de programao usada precisamos seguir algumas importantes etapas
para que tenhamos sucesso. So elas
1. planeje os projetos antecipadamente - identique as principais variveis a serem usadas nos
clculos, o mtodo ou mtodos numricos a serem empregados e como os resultados devem ser
apresentados;
2. desenvolva-os por estgios - incio, corpo e sadas;
3. modularize-os - se possvel estruture seu programa em mdulos estanques;
4. mantenha-o simples - cdigos complexos dicultam a depurao, ou seja, a identicao e remoo
dos erros tipogrcos, lgicos e metodolgicos;
5. sempre teste cada estgio - a sada de um estgio (dados, nmeros, decises) normalmente
usada no prximo mdulo. Se um estgio estiver com erros os resultados do prximo tambm
estaro errados;
6. documente todo o programa - insira comentrios para facilitar a compreenso das etapas sempre
que julgar necessrio;
7. obtenha e interprete seus resultados
denominadas de REGRAS de OURO da PROGRAMAO RINO (2008) ou golden rules, na lngua
inglesa .
1.4 Fluxogramas e Algoritmos
Todo programa - ou cdigo fonte - escrito com um editor de texto normalmente muito simples como o
Notepad (do Windows), o Vi (do Linux), o Edit (no DOS) mas possvel editar tambm em ambientes
de programao prprios linguagem em uso como o MSDeveloperStudio para Fortran ou C++ ou
Visual Studio C++.
Os programas mais simples assemelham-se uma redao possuindo incio, meio e m (ou concluso).
O incio de um programa normalmente denominado de etapa de inicializao e/ou entrada de dados:
contm informaes importantes que sero utilizadas tais como constantes, dimenses de matrizes e
de vetores bem como valores iniciais. O corpo do programa contm as instrues principais a serem
passadas Unidade de Processamento Central (CPU) da mquina para que a mesma realize as tarefas.
nesta etapa que os clculos so realizados atravs de linhas de comando/instrues especcas cada
linguagem de programao, i. e.
a = 2 +b, atribua ao a o resultado da soma de 2 com b e
c = a exp(b t), atribua ao c o resultado das operaes.
1.4. FLUXOGRAMAS E ALGORITMOS 7
Na concluso do cdigo fonte encontramos instrues como sada de resultados para arquivos, sa-
das grcas ou simplismente uma menssagem de nalizao da execuo. Uma simples sada como
Aplique na Ao X ou NO Aplique na Ao Y pode ser o resultado de inmeras linhas de ins-
trues de um cdigo executvel.
O Algoritmo: um conjunto resumido de instrues (ou camandos) a serem realizadas pelo compu-
tador.
O Fluxograma: apresenta as instrues de um algoritmo na forma grca atravs de guras geom-
tricas com as instrues principais em seu interior.
Exemplos de algoritmos, uxogramas introduo a programao 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 posio de um objeto que se desloca com acelerao constante. Para isso usamos
as equaes da Fsica pertinentes cinemtica inserindo, via teclado, alguns dados iniciais como
posio e velocidade em t = t
o
. Abaixo temos um exemplo de uxograma e um do algoritmo
desenvolvido para tal m.
.
1. Inicialize as variveis: N = 0, dt = 0.1, a, vo,
xo, to
2. Calcule:
novo tempo t = to + N*dt;
nova velocidade v = vo + a*t;
nova posio 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 contrrio
6
6. Fim
Figura 1.1: Exemplo de Fluxograma ( esquerda) e Algoritmo ( direita) para gerao de uma tabela
de dados (arquivo TAB.DAT) com 1000 linhas contendo em cada linha tempo (t), velocidade (v) e
posio (x).
Observe e reita: no uxograma encontramos uma gura de deciso (losngulo) com a instruo
N maior ou igual a 1000? . Porm, no item 5 do algoritmo tem-se, Se N for menor do que 1000
v .... Estas instrues so claramente diferentes mas realizam o mesmo propsito: a repetio das
instrues necessrias a construo de uma tabela contendo o tempo, a velocidade e a posio de um
mvel em movimento retilneo uniformemente acelerado - MRUA.
8 CAPTULO 1. INTRODUO
1.5 Comandos e estruturas no ambiente MATLAB ou OCTAVE
Como em qualquer ambiente de programao importante sabermos passar para o computador um
conjunto de comandos para que o mesmo compreenda e execute. A Tabela 1.1 abaixo contm alguns
comandos e estruturas encontrados na maioria dos programas cientcos. Os dois primeiros so es-
truturas de lao usados para executar repetidamente uma instruo ou um conjunto de instrues ou
operaes com diferentes dados a cada lao. O terceiro caso usado em situaes que exijam deciso,
por exemplo, se o relgio estiver parado d corda e acerte a hora, caso contrrio no faa nada.
Informaes adicionais das funes pr-denidas no ambiente Matlab so encontradas em JALN;
RODRGUEZ; VIDAL (2001); JALN; RODRGUEZ; VIDAL (2005) bem como nos arquivos de
ajuda (help) que vm junto com o aplicativo THE MATHWORKS (2002a,b,c)
Exemplo 2: para criar um vetor linha com quatro elementos escrevemos no prompt do ambiente
Matlab (>>):
>> v = [ 0 . 0 0. 5 0. 9 1 . 2 ] ;
e teclamos enter. Os elementos do vetor devem estar separados por espao ou vrgulas. Um vetor
com elementos igualmente espaados de 0.1, que inicie com 0 e termine com 0.5, pode ser criado
usando 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 denir
uma 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 insero do ; . Multiplicar a matriz M por
um vetor coluna vt ou seja o vetor transposto de v fazemos:
>> v1 = Mv ;
J uma matriz inversa pode ser obtida com o comando inv:
>> IM = i nv (M) ;
Para obtermos o quadrado dos valores de um vetor usamos:
>> v2 = v . v ;
cujos elementos sero v2 = [0
2
0.5
2
0.9
2
1.2
2
] = [0 0.25 0.81 1.44], porm se zermos
>> r e s = v v ;
o resultado ser o produto interno de v v = 0
2
+ 0.5
2
+ 0.9
2
+ 1.2
2
= 2.5. A sutil diferena - o
ponto antes do sinal de multiplicao - instrui a CPU que: multiplique o primeiro elemento de v
(antes de .* ) com o primeiro elemento de v (depois de .*) assim sucessivamente at os ltimos
elementos dos vetores, armazenando cada resultado no vetor v2. Se usarmos
>> v2 = v. ^2 ;
tambm obtemos um vetor resultante v2 idntico ao anterior onde cada elemento de v2 o
quadrado do respectivo elemento em v. Se desejamos criar uma matriz 3x3 com todos os elementos
nulos podemos usar o comando zeros na forma
>> MZ = z e r os ( 3 , 3 ) ;
e atribumos 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 Comentrio
for ... end
for i = 1 : N;
comando 1 ;
comando 2; ...
end;
estrutura de lao - para i
variando de 1 at N repita
comando 1 e comando 2
while ... condio ...
end;
while condio;
comando1 ;
comando2 ; ...
end;
estrutura de lao - enquanto
condio for verdadeira
repita as instrues comando
1 e comando 2
if ... else ... end;
if condio;
comando 1;
else;
comando 2;
end;
estrutura de deciso - se
condio for verdadeira
execute comando 1 caso
contrrio exec comando2
+ e - y = z + w - I soma e subtrao
* e / x = vo + a * t; y = z / x ; multiplicao e diviso
^ y = yo + a * t^2 potenciao ou radiciao
cos , acos , sin , asin,
tan , atan , sec , asec ,
...
a = cos(x) , arc = asin(M)
operaes trigonomtricas e
suas inversas (radianos)
whos whos
lista as variveis e bem como
suas dimenses
clear clear ; clear x y z
suprime todas as variveis do
espao de trabalho ativo e
suprime apenas x, y e z
length( ) length(x) ; length(M)
no. de elementos do vetor x e
max. dimenso da matriz M
zeros( ) , ones( ) M=zeros(3, 2) ; N=ones(3, 2)
inicializa uma matriz 3x2 com
todos elementos nulos ou uns
( ... ) y = 2*pi / (3 * y) indica preferncia na operao
help comando ou
funo
help plot
lista uma ajuda sobre o
comando plot
load load nome.ext -ascii
carrega na memria os dados
contidos no arquivo nome.ext
e cria uma matriz no ambiente
Matlab
save save nome.ext varivel -ascii
salva no diretrio corrente
os dados armazenados em
varivel no arquivo
nome.ext
vt = v ; Mt = M ;
transposio do vetor/matriz
(valores reais) ou
transposio do complexo
conjugado
10 CAPTULO 1. INTRODUO
>> MZ( 1 , 1) = 5 . 0 ; % o el emento de MZ l i nha 1 col una 1 passa a s e r 5. 0
>> MZ( 2 , 3) = 1 . 0 ; % o el emento de MZ l i nha 2 col una 3 passa a s e r 1. 0
Exemplo 3: O cdigo fonte depende da linguagem de programao.
Cdigo fonte do Exemplo 1 em FORTRAN
program tabela
! cria TAB.DAT c/ t v e x
integer :: N, Nlin=1000
real :: dt=0.1
real :: t, v, x, to, vo, xo
open(unit=10, file=TAB.DAT,&
status=UNKNOWN)
print*,entre c/ a,to,vo,xo
read*,a,to,vo,xo
N = 0
do while (N < Nlin)
t = to + N * dt
v = vo + a * t
x = xo + vo *t + 0.5* a * dt
write(10,*) t, v, x
N = N + 1
end do
close(10)
write(6,*) FIM DA EXECUO
stop
end
Cdigo fonte do Exemplo 1 em MATLAB/OC-
TAVE
% tabela.m
% cria TAB.DAT c/ t v e x
Nlin = 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 EXECUO)
Figura 1.2: Cdigos fonte em FORTRAN ( esquerda) e Matlab ou OCTAVE ( direita).
No cdigo para Matlab acima as duas primeiras linhas so comentrios e portanto no so
executadas: comeam com % . Na terceira e quarta linhas so inicializadas as variveis
nmero de linhas da tabela (Nlin) e incremento do tempo (dt). Da quinta a oitava linha vemos
as instrues de entrada de dados via teclado (comando input). O arquivo TAB.DAT
aberto para escrita na nona linha. Na dcima linha inicializa-se o contador N necessrio
estrutura de lao while compreendido entre as linhas 11 18. Dentro do lao as instrues
sero executadas enquanto a condio N < Nlin for verdadeira. Os valores de t, v e x so
alterados a cada lao e o comando fprintf instrui a mquina a escrever os valores das variveis
em uma linha no formato cientco (%e) 1.2345678e00 que equivale a 1.234567810
00
. O \n
instrui o computador a pular de linha aps escrever os valores numricos de t, v e x no arquivo,
isto para cada valor do contador N . Na sequncia o valor de N incrementado de uma unidade
para um nova repetio das instrues dentro do lao. Quando N for igual a 1000 o lao
interrompido e o computador ir executar a linha posterior ao end ou seja ir fechar o arquivo
TAB.DAT para ento escrever no prompt do ambiente Matlab o m da execuo do script
tabela.m .
Deve-se ressaltar que em ambos os cdigos existe um erro no clculo de x(t): o ltimo termo da
equao deveria ter 0.5*a*t*t. Este tipo de erro no incomum, ou o programador desconhece a
equao da cinemtica ou ocorreu erro de digitao. Em ambos os casos os resultados da posio
da partcula no arquivo TAB.DAT estaro errados!
Exemplo 4: A srie de Taylor da funao f(x) = senx dada por
f(x) = sen x = x
x
3
3!
+
x
5
5!

x
7
7!
+ =

k=1
(1)
k+1
x
2k1
(2k 1)!
1.6. EXERCCIOS 11
Para responder quantos termos so necesrios para que o resultado da srie em x = /3 tenha
preciso de 4 casas decimais foi desenvolvido o seguinte algoritmo
1- limpar memria
2- denir soma como zero
3- denir preciso desejada
4- inicializar o contador k 0
5- denir ponto x
6- enquanto termo > = precisao faa
k k + 1
termo (-1)^(k+1) * x^(2*k-1) / (2*k-1) !
soma soma + termo
m do lao 6
7- escreva o valor do contador k
Observaes: no ambiente Matlab/Octave o fatorial de um nmero (num) obtido usando
a instruo factorial(num). Um erro frequente ao codicar o algoritmo acima para uma lingua-
gem de programao pode ocorrer: o valor da varivel termo no foi denido antes do teste na
instruao de nmero 6.
Exemplo 5: A srie d
1.6 Exerccios
1.1- Edite um arquivo de nome tabela.m copiando o script (cdigo fonte) para Matlab/Octave
apresentado na Figura1.2. No ambiente Matlab execute o cdigo e verique a presena do arquivo
TAB.DAT no diretrio de trabalho, aps a execuo do script. Abra o arquivo TAB.DAT com
o editor e verique se nmero de linhas est correto.
1.2- Ao nal do cdigo tabela.m adicione a linha load TAB.DAT e abaixo outra linha plot(TAB(:,1),
TAB(:,3),b--); grid; salve, execute o cdigo e descreva o que aconteceu. Mude b-- no
comando grco plot para ro, salve, execute o script e descreva o que ocorreu. Digite help
plot no prompt (>>) do ambiente MATLAB, leia o texto e tire suas concluses.
1.3- (a) Crie um algoritmo com intuito de gerar um arquivo de dados (mhs_a.dat) que contenha
100 linhas de modo que cada linha possua o tempo (t), a deformao da mola (xs) do MHS e
a deformao da mola (xa) do movimento harmnico amortecido. (b) Transcreva o algoritmo
para um uxograma. (Dica: reveja o contedo de oscilaes para obter as equaes horrias de
x(t) para cada sistema fsico).
1.4- Crie um script para o ambiente Matlab/Octave que gere um vetor de elementos igualmente
espaados de 1 a 1001, com incremento de 10. Em seguida use a estrutura de lao for i =
inicio:incremento:m; comandos; end; para somar os elementos do vetor. ( Obs.: no Matlab
obtemos o valor numrico do elemento i=2 de um vetor usando v(i). Isto equivalente a
escrever valor=v(2), o que atribui a varivel valor o nmero armazenado na posio 2 do vetor
v. Dica: reveja o script na Figura 1.2 na pgina oposta e preste ateno no contador N. Esta
estrutura tambm chamada de acumulador e pode ser ligeiramente modicada para acumular
as sucessivas somas dos elementos do vetor.)
1.5- O C.M. (centro de massa) de um sistema discreto de massas calculado por r = x
CM

i +
y
CM

j + z
CM

k onde x
CM
=

m
i
x
i/

m
i
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 posies no eixo x e y so
x = [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. Faa um
script para Matlab/OCTAVE que a partir dos dados de m, x e y calcule a posio do centro de
12 CAPTULO 1. INTRODUO
massa r
CM
. (Use estrutura de lao, um somador para x
CM
e outro somador para y
CM
). Adicione
a instruo plot(x, y, ro, xcm, ycm, bs) e execute novamente o script. Descreva o resultado
grco.
1.6- Considere n [1, 1000]. Escreva um cdigo usando instrues na linguagem Matlab/Octave que
obtenha o resultado da soma dos nmeros pares bem como dos nmeros mpares entre 1 e 1000.
Para tanto use uma estrutura de deciso
Se condio faa
somapar somapar + n
caso contrrio faa
somaimp somaimp + n
m do Se
que teste se o nmero par (condio) usando o resto da diviso entre dois nmeros mod(x, y)
ou rem(x, y). Veja na ajuda a documentao sobre a instruo mod: use help mod.
1.7- Uma carga teste (prton) encontra-se no vcuo sob ao
de um campo eltrico uniforme de 10
5
V/m e sentido
como indicado na Figura 1.3. Em t = 0s sua posio
de 1 m a direita da origem e possui velocidade de 53,6
m/s da direita para esquerda. Assumindo a massa de
1, 67 10
27
Kg e carga de 1, 6 10
19
C
(a) escreva a equao horria de sua posio e
(b) faa um script (Matlab/Octave) para encontrar os
dois instantes em que o prton cruza a origem do sistema
de coordenadas: dena as quantidades pertinentes; com
elas obtenha a acelerao da carga teste; (o script deve
resolver a equao do segundo grau em t);
(c) crie um vetor com valores de tempo no intervalo
[0, 0,15]s e incremento de 10
4
s; em seguida usando a
equao horria x(t) do item (a) calcule as posies do
prton nestes tempos e faa um grco usando a instru-
o plot(t, x);
(d) a partir do grco estime a mxima distncia ne-
gativa alcanada pelo prton e
(e) em que instante ele estar na posio x = 2m.
Figura 1.3: Prton em campo eltrico
uniforme. Esquema do exerccio 1.7.
Observao: neste exerccio deconsideramos as pertubaes geradas pelo campo da carga teste
sobre o campo eltrico uniforme bem como o campo irradiado por ela em virtude de sua pequena
acelerao, como preconiza o eletromagnetismo clssico.
1.8- Considere os dados do exerccio anterior e a expresso da massa relativstica M dada por
M =
m
_
1
_
v
c
_
2
onde v a velocidade instantnea do prton e c a velocidade da luz.
(a) Escreva um cdigo para gerar um grco da dependncia da massa do prton com o tempo
(o grco um dos produtos nais) ;
(b) execute o cdigo considerando o intervalo de tempo do exerccio anterior e
(c) altere a linha do cdigo que gera o tempo para um tempo nal de 1000 s e incremento de
1 s; execute-o e analizando o grco responda
(d) necessrio considerar o efeito relativstico da massa no problema ?
(e) Quais so os valores de x e v em t = 1000 s ? (Use o x(1000) e v(1000))
Captulo 2
Integrao e Diferenciao Numricas
Em Fsica comum o clculo de integrais como por exemplo a do trabalho de uma fora que depende
da posio ou o impulso provocado por determinada fora que depende do tempo. As vezes a funo
a ser integrada leva a manipulaes algbricas complexas e o importante em determinadas situaes
o resultado numrico para interpretao. Este captulo tm por nalidade ilustrar alguns aspectos
bsicos dos processos de integrao e diferenciao numrica aplicadas a funes reais de uma varivel.
2.1 Integrais denidas
2.1.1 Regra do Trapzio
Consideremos uma funo f(x) conhecida e denida para qualquer valor de x [a, b]. Desejamos
calcular o resultado da integral denida
I =

b
a
f(x) dx,
sendo f(x) nita no intervalo x (a, b). Uma possibilidade seria usar a denio da Integral de
Riemann (SPIEGEL, 1975, p.102)
I =

b
a
f(x) dx = lim
x0

i
f(c
i
)x
i
, (2.1)
onde c
i
um valor compreendido no intervalo [x
i
, x
i
+ x
i
]. Fazendo x pequeno obtemos a Regra
dos Retngulos.
13
14 CAPTULO 2. INTEGRAO E DIFERENCIAO NUMRICAS
Outro mtodo, mais preciso, a Regra dos Trapzios:
discretizamos o intervalo [a, b] em N 1 segmentos
de largura x onde N o nmero de avaliaes da
funo. Dado um conjunto de valores de x
i
a saber
x = [a, (a + x), (a + 2x) + . . . . . . + (a + (N
1)x), b] = [x
1
, x
2
, . . . , x
N
] a rea genrica Area
i
de
um trapzio dada por (ver Figura (2.1))
Area
i
=
1
2
(f(x
i
) +f(x
i+1
)) x
e, somando para todos os intervalos de 1 a N 1 vm
I =
_
1
2
f(x
1
) +f(x
2
) +. . . +f(x
N1
) +
1
2
f(x
N
)
_
x.
Figura 2.1: Elemento genrico de rea do m-
todo dos trapzios.
Como f(x
1
) = f(a) e f(x
N
) = f(b) podemos escrever
I
ab
=
_
N

i=1
f(x
i
)
1
2
[f(a) +f(b)]
_
x =
_
N

i=1
f
i

1
2
[f(a) +f(b)]
_
x. (2.2)
Exemplo 1: um script simples para implementar o mtodo 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 lao para soma
x(i)= a+(i-1)*dx;
f(i)= % funo( x(i) ) % expresso da funo a ser integrada nesta linha
soma = soma + f(i);
end; % fim do lao
disp(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 Trapzios a Regra de
Simpson que faz uso de trs avaliaes da funo para denir a rea elementar. Neste caso podemos
escrever de forma compacta a expresso desta regra a saber
I
ab
=
x
3
(N1)/2

i=1
[f(x
2i1
) + 4f(x
2i
) +f(x
2i+1
)]
I
ab
=
x
3
(N1)/2

i=1
[f
2i1
+ 4f
2i
+f
2i+1
] . (2.3)
2.2. QUADRATURA GUASSIANA 15
Neste mtodo o nmero de intervalos (N1 ) entre a e b deve ser par. Ao deduzir sua frmula Simpson
aproxima a funo por uma parbola em cada conjunto de 3 pontos como ilustrado na Fig. 2.2 sendo
x
i
= a +ix, x
i1
= a + (i 1)x e x
i+1
= a + (i + 1)x para i = 1, 1, 2,...,N-1.
x x x
i-1
i i+1
y
x
y
i
y
i+1
y
i-1
y=f(x)
Figura 2.2: Regra de Simpson 3 pontos: aproximao da rea elementar abaixo da parbola.
A rea elementar obtida integrando uma funo parablica y(x) = c
o
x
2
+c
1
x +c
2
que se ajusta aos
trs pontos de avaliao da funo. O valor aproximado da integral ser
A
i
=

x
i+1
x
i1
_
c
o
x
2
+c
1
x +c
2
_
dx
=
_
c
o
3
x
3
+
c
1
2
x
2
+c
2
x
_
x
i+1
x
i1
=
_
c
o
3
_
x
3
i+1
x
3
i1
_
+
c
1
2
_
x
2
i+1
x
2
i1
_
+c
2
(x
i+1
x
i1
)
_
A
i
=
(x
i+1
x
i1
)
6
_
2c
o
_
x
2
i+1
+x
i+1
x
i1
+x
2
i1
_
+ 3c
1
(x
i+1
+x
i1
) + 6c
2

escrevendo em termos da funo y(x) temos


A
i
=
(x
i+1
x
i1
)
6
_

_
y(x
i+1
)
..
c
o
x
2
i+1
+c
1
x
i+1
+c
2
+
y(x
i1
)
..
c
o
x
2
i1
+c
1
x
i1
+c
2
+
+c
o
_
x
2
i+1
+ 2x
i+1
x
i1
+x
2
i1
_
+ 2c
1
(x
i+1
+x
i1
) + 4c
2
_
=
(x
i+1
x
i1
)
6
_
y(x
i1
) +y(x
i+1
) + 4
_
c
0
_
x
i+1
+x
i1
2
_
2
+c
1
_
x
i+1
+x
i1
2
_
+c
2
__
A
i
=
(x
i+1
x
i1
)
6
_
y(x
i1
) +y(x
i+1
) + 4y
_
x
i+1
+x
i1
2
__
.
Usando as igualdades x
i+1
x
i1
= 2x e (x
i+1
+ x
i1
)/2 = x
i
escrevemos a rea elementar abaixo
da parbola na forma
A
i
=
x
3
[y(x
i1
) + 4y (x
i
) +y(x
i+1
)] ,
o que leva Regra de Simpson (Eq. 2.3) ao somarmos para todo o intervalo.
2.2 Quadratura Guassiana
No ltimo exemplo cou claro a necessidade de se resolver uma integral denida no intervalo [a, b]. A
Quadratura Gaussiana um mtodo de integrao que basicamente substitui a integral por uma soma
16 CAPTULO 2. INTEGRAO E DIFERENCIAO NUMRICAS
do produto de uma funo peso w(x
i
) pela funo f(x) a ser integrada, i.e.

b
a
f(x)dx
n

i=1
w(x
i
)f(x
i
) (2.4)
onde os valores de x
i
, pontos de avaliao da funo, so denidos em termos do nmero de pontos
n da soma. Como regra bsica se a funo f(x) um polinmio de grau 2n 1 sero necessrios n
pares (x
i
, w
i
) para que o resultado da integral seja exato. Para a aplicao deste mtodo necessrio
o conhecimento da funo f(x).
Exemplo 2: o script a seguir foi adaptado de uma subrotina em Fortran (PRESS et al., 1989). Os
resultados sero precisos caso f(x) seja um polinmio de grau menor ou igual 19.
% Integ_gauss.m
% realiza a integral de f(x) por quadratura gaussiana
% preciso para polinmios de grau <= 19
clear;
% define pontos da quadratura xi
xi=[.1488743389,.4333953941,.6794095682,.8650633666,.9739065285];
%
% define os pesos wi
wi=[.2955242247,.2692667193,.2190863625,.1494513491,.0666713443];
%
% entrada dos limites a e b
a=input(Entre c/ limite inferior: );
b=input(Entre c/ limite superior: );
%
% define a funo a ser integrada
ff=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 cdigo acima pode ser reescrito usando o formalismo matricial a saber:
% Integ_gauss1.m
% realiza a integral de f(x) por quadratura gaussiana
clear;
% define pontos da quadratura xi
xi=[.1488743389,.4333953941,.6794095682,.8650633666,.9739065285];
%
% define os pesos wi
wi=[.2955242247,.2692667193,.2190863625,.1494513491,.0666713443];
2.2. QUADRATURA GUASSIANA 17
%
% entrada dos limites a e b
a=input(Entre c/ limite inferior: );
b=input(Entre c/ limite superior: );
%
% define a funcao a ser integrada
ff=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 funes escritas para este m. Ao nal do script
abaixo existem trs linhas de comando com as funes pr-denidas no ambiente Matlab: quad,
quad8 e quadl. A forma de cham-las para o clculo das integrais o mesmo: quad(nome_funo,
lim_inf, lim_sup, tolerncia).
% Integ_gauss2.m
% realiza a integral de f(x) por quadratura gaussiana
clear;
%
% entrada dos limites a e b
a=input(Entre c/ limite inferior: );
b=input(Entre c/ limite superior: );
%
% define a funcao a ser integrada
ff=inline(cos(8*x).*exp(-x),x)
%
% realiza a integral
disp(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 no tem
2.2.1 Quadratura Gauss-Legendre
Quando os limites de integrao de uma funo so nitos comum a aplicao de uma substituio
de variveis
x = x
R
z +x
M
, onde
x
R
=
b a
2
,
x
M
=
b +a
2
.
18 CAPTULO 2. INTEGRAO E DIFERENCIAO NUMRICAS
com o intito de normalizar os mesmos para o intrervalo [-1, 1]. Assim a integral denida no intervalo
x [a, b] reescrita na forma de um somatrio a saber
I =

b
a
f(x) dx =

1
1
f
_
b a
2
z +
b +a
2
__
b a
2
dz
_
=
b a
2

1
1
f
_
b a
2
z +
b +a
2
_
dz
I
b a
2
n

i=1
W
i
f
_
b a
2
z
i
+
b +a
2
_
(2.5)
I x
R
n

i=1
W
i
f (x
R
z
i
+x
M
) .
onde z
i
so as razes do Polinmio de Legendre P
n
(z) com pesos calculados por
W
i
=
2
_
1 z
2
i
_
[P

n
(z
i
)]
2
.
Os polinmios de Legendre so obtidos recursivamente segundo (ARFKEN; WEBER, 2001, p.749)
pela equao
P
n+1
(z) = 2zP
n
(z) P
n1
(z)
zP
n
(z) P
n1
(z)
(n + 1)
.
Para obt-los iniciamos com n = 0, sabendo que P
0
(z) = 1 e, recursivamente, derivamos os polinmios
de graus mais elevados. Como exemplo os quatro primeiros polinmios de Legendre so
P
1
(z) = z,
P
2
(z) =
1
2
_
3z
2
1
_
,
P
3
(z) =
1
8
_
5z
3
3z
_
,
P
4
(z) =
1
8
_
35z
4
30z
2
+ 3
_
.
Abaixo um script em Matlab/OCTAVE (TREFETHEN, 2008) para o clculo dos pontos e pesos
necessrios a aplicao do mtodo
% esta funcao deve estar salva no diretrio de trabalho
% com o nome GaussLegendre.m
function [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 funo salva no diretrio de trabalho podemos obter os pontos e respectivos pesos da qua-
dratura Gauss-Legendre usando uma instruo como
>> [x , w] = GaussLegendre(3)
x =
-0.77459666924148 0 0.77459666924148
w =
0.55555555555556 0.88888888888889 0.55555555555556
o que atribui a x as razes do polinmio de Legendre de terceiro grau (pontos da quadratura) e w os
respectivos pesos. Neste caso possvel integrar com preciso um polinmio, f(x), de grau menor ou
igual 2n 1 = 5.
2.3. INTEGRAIS IMPRPRIAS 19
2.3 Integrais Imprprias
Algumas integrais possuem o limite inferior, o superior ou ambos igual a . Neste caso as integrais
so denominadas de imprprias existindo algumas tcnicas capazes de simplica-las numericamente
por substituio de variveis. Vejamos o exemplo a seguir.
Exemplo 5: calcular numericamente a integral I =

0
dx
1+x
2
. Uma tabela de integrais indenidas
fornece o resultado como sendo I = tan
1
(x) e, substituindo os limites, obtemos I = /2.
Agbricamente podemos realizar a seguinte substituio de variveis: x = 1/y =dx = dy/y
2
.
Ao faz-lo temos
I =


0
dx
1 +x
2
=

1
0
dx
1 +x
2
+

0
1

dy
y
2
(1 + 1/y
2
)
,
=

1
0
dx
1 +x
2

0
1
dy
1 +y
2
,
I = 2

1
0
dx
1 +x
2
.
Neste exemplo vimos que a integral no intervalo [0, ] foi substituda por outra integral, agora
denida no intervalo [0, 1], sendo facilmente resolvida por um dos mtodos descritos nas sees
anteriores. A Tabela 2.1 abaixo ilustra alguns casos de integrais imprprias e suas respectivas
substituies.
Tabela 2.1: Exemplos de integrais imprprias e suas respectivas substituies (PRESS et al., 1989,
cap. 4).

b
a
f(x)dx

1/a
1/b
1
t
2
f(
1
t
)dt , ab>0 Usada quando b e a > 0
ou quando a e b < 0

b
a
f(x)dx
1
1

(ba)
1
0
t

1
f(t
1
1
+a)dt , b>a No caso do integrando
divergir em (x a)

prximo de x = a para
0 < 1

b
a
f(x)dx
1
1

(ba)
1
0
t

1
f(b t
1
1
)dt , b>a No caso do integrando
divergir em (xb)

prximo
de x = b para 0 < 1

b
a
f(x)dx

ba
0
2tf(a +t
2
)dt , b>a Funes do tipo 1/[x a]
1/2
com singularidade em x = a

b
a
f(x)dx

ba
0
2tf(b t
2
)dt , b>a Funes do tipo 1/[x b]
1/2
com singularidade em x = b

a
f(x)dx

exp(a)
0
1
t
f(log t)dt Integrandos que decaem
exponencialmente exp(x)
2.3.1 Quadratura Gauss-Laguerre
Similar ao mtodo de Gauss-Legendre porm aplicado integrais com um dos limites nito e outro
innito, 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
W
i
_
exp(x
i
)
x

i
f(x
i
)
_
(2.6)
20 CAPTULO 2. INTEGRAO E DIFERENCIAO NUMRICAS
onde > 1, x
i
so as razes do Polinmio de Laguerre L
n
(z) com pesos W
i
calculados por
W
i
=
(n + + 1) z
i
n!
_
(n + 1)L

n+1
(z
i
)

2
.
com
L

n
(z) =
n

m=0
(n +)!
(n m)!( +m)!
(z)
m
m!
.
Usando a propriedades bsicas da funo, (n + 1) = n! obtemos para = 0
W
i
=
z
i
(n + 1)
2
[L
n+1
(z
i
)]
2
.
Os polinmios de Laguerre so recurssivamente obtidos pela equao (ARFKEN; WEBER, 2001, p.831)
L
n+1
(z) = 2L
n
(z) L
n1
(z)
(1 +z)L
n
(z) L
n1
(z)
(n + 1)
.
Os clculos iniciam-se com n = 0 sabendo que L
0
(z) = 1 fornecendo os seguintes resultados para os
prximos quatro polinmios
L
1
(z) = z + 1,
L
2
(z) =
1
2
_
z
2
4z + 2
_
,
L
3
(z) =
1
6
_
z
3
+ 9z
2
18z + 6
_
,
L
4
(z) =
1
24
_
z
4
16z
3
+ 72z
2
96z + 24
_
.
Abaixo encontra-se um script em Matlab/Octave (WILSON; TURCOTTE, 1998; RECKTENWALD,
2000) para o clculo dos pontos e pesos da quadratura necessrios a aplicao da Quadratura Gauss-
Laguerre.
% esta funcao deve estar salva no diretrio de trabalho
% com o nome GaussLaguerre.m
function [x, w] = GaussLaguerre(n, alpha)
% x - pontos da quadratura (saida)
% w - pesos da quadratura (saida)
% n - nmero de pontos da quadratura (entrada)
% - potncia 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;
Observao: o maior real expresso em um sistema operacional 32 ou 64 bits aproximadamente
1.79 10
308
. Usando a instruo >> [x, w] = GaussLaguerre(185, 0), ou seja, 185 pontos
e = 0, obtemos o maior ponto de avaliao da funo x
185
708. Ao inserir este valor na
exponencial temos exp(708) 3.02 10
307
resultado este muito prximo do limite de expresso
de um nmero real. Conclu-se assim que a quadratura Gauss-Laguerre deve ser usada com
cuidado pois o nmero de pontos (e pesos) escolhido pode incorrer no resultado Inf : o que
signica um real acima do valor 1.79 10
308
.
2.4. DIFERENCIAO NUMRICA 21
2.4 Diferenciao Numrica
Em alguns ramos da Fsica, como no Eletromagnetismo, encontramos relaes vetoriais entre o campo
eltrico e o campo magntico, com fontes e sumidouros. Um exemplo o campo eltrico produzido
por uma densidade de carga no vcuo. Assim entendemos da teoria eletromagntica que o campo
eltrico relaciona-se com a densidade de carga eltrica segundo a equao
(
o

E) =
onde
o
a permitividade eltrica do meio (vcuo) e o operador Nabla a saber
=

x

i +

y

j +

z

k coord. cartesianas
=

r
r +
1
r

+

z

k coord. cilndricas
=

r
r +
1
r sin

+
1
r

coord. esfricas.
O operador gradiente tambm est presente na teoria da conduo do calor. A Lei de Fourier estabelece
uma relao entre o uxo de calor e o produto da condutividade trmica do material (k) pelo gradiente
de temperatura em certo ponto do meio, i.e.

H = kT
e que expressa a quantidade de calor por unidade de tempo por unidade de rea sendo propagada
atravs do slido.
2.4.1 Aproximaes de primeira e segunda ordem para f

(x)
Consideremos o grco ao lado de f(x). Desejamos
obter uma aproximao numrica da derivada pri-
meira da funo f(x) no ponto x
0
. Considerando o
tringulo 1 podemos escrever a seguinte equao
f

(x
i
) = tan =
y
x

f(x
i
) f(x
i
x)
x
i
(x
i
x)
f

(x
i
)
f(x
i
) f(x
i
x)
x
sendo conhecida como aproximao atrasada de pri-
meira ordem da derivada primeira (aproximao
backward). De modo anlogo, mas usando o tri-
ngulo 2 temos
f

(x
i
)
f(x
i
+ x) f(x
i
)
x
sendo esta equao a derivada numrica de primeira
ordem (erro x) conhecida por aproximao adi-
antada (forward) para f

(x) em x = x
i
.
Figura 2.3: Representaes grcas da derivada
primeira: atrasada, adiantada e centrada.
Outra aproximao da derivada primeira de uma funo a aproximao centrada que pode ser obtida
pela mdia entre as aproximaes backward e forward, ou ainda atravs do tringulo 3 na Fig. 2.3
resultando em
f

(x
i
)
f(x
i
+ x) f(x
i
x)
2x
sendo esta uma aproximao de segunda ordem (erro x
2
), ou seja, mais precisa.
22 CAPTULO 2. INTEGRAO E DIFERENCIAO NUMRICAS
Observao: as derivadas numricas tambm podem ser deduzidas atravs da Srie de Taylor da
funo 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 simplicado para
f(x + x) f(x) +f

(x)x +
1
2
f

(x)x
2
+
e, retendo apenas os dois primeiros termos da srie e manipulanto temos
f

(x)
f(x + x) f(x)
x
que representa a aproximao numrica de primeira ordem forward para f

(x). Se os valores de
x forem discretos como em uma lista ou tabela, i.e., x
i
= a + (i 1)x para i = 1, 2, 3, . . . por
substituio na equao anterior obtemos a forma compacta a saber
f

(x
i
)
f (a + (i 1)x + x) f (a + (i 1)x)
x
,
f

(x
i
)
f (a +ix) f (a + (i 1)x)
x
,
f

i

f
i+1
f
i
x
,
onde f
i
e f
i+1
representam os valores da funo f(x) obtidos nos pontos x
i+1
e x
i+1
, respectiva-
mente.
2.4.2 Aproximaes de primeira e segunda ordem para f

(x)
A aproximao numrica da segunda derivada de f(x) pode ser obtida facilmente atravs da formulao
vista na seo anterior porm aplicada a derivada primeira, i.e.
f

(x
i
)
f

(x
i
)
forward
f

(x
i
)
backward
x

_
f(x
i
+x)f(x
i
)
x
_

_
f(x
i
)f(x
i
x)
x
_
x
f

(x
i
)
f(x
i
+ x) 2f(x
i
) +f(x
i
x)
x
2
ou f

i
=
f
i+1
2f
i
+f
i1
x
2
sendo esta a aproximao centrada de segunda ordem (erro x
2
) para a derivada segunda de f(x).
Outras formulaes numricas para f

(x) so
f

(x
i
)
f(x
i
+2x)2f(x
i
+x)+f(x
i
)
x
2
, aproximao (forward) f

i
=
f
i+2
2f
i+1
+f
i
x
2
f

(x
i
)
f(x
i
)2f(x
i
x)+f(x
i
2x)
x
2
, aproximao (backward) f

i
=
f
i
2f
i1
+f
i2
x
2
ambas de primeira ordem (erro x), ou seja, menos precisas.
2.4.3 Aproximaes de f

(x), f

(x) e f

(x) cbicas e qurticas


Alguns clculos podem exigir aproximaes numricas das derivadas com uma preciso maior. A tabela
abaixo resume algumas formulaes de terceira e quarta ordem para as derivadas numricas.
2.4. DIFERENCIAO NUMRICA 23
Tabela 2.3: Derivada Primeira f

em x
0
: expresses numricas, erros e interpolao
Expresso Erro Polinmio Tipo
[11f(x
0
) + 18f(x
1
) 9f(x
2
) + 2f(x
3
)]/6x (x)
3
cbico Forward
[2f(x
3
) + 9f(x
2
) 18f(x
1
) + 11f(x
0
)]/6x (x)
3
cbico Backward
[25f(x
0
) + 48f(x
1
) 36f(x
2
) + 16f(x
3
) 3f(x
4
)]/12x (x)
4
quarta Forward
[3f(x
4
) 16f(x
3
) + 36f(x
2
) 48f(x
1
) + 25f(x
0
)]/12x (x)
4
quarta Backward
[f(x
2
) 8f(x
1
) + 8f(x
1
) f(x
2
)]/12x (x)
4
quarta Central
Tabela 2.4: Derivada Segunda f

em x
0
: expresses numricas, erros e interpolao
Expresso Erro Polinmio Tipo
[2f(x
0
) 5f(x
1
) + 4f(x
2
) f(x
3
)]/x
2
(x)
2
cbico Forward
[f(x
3
) + 4f(x
2
) 5f(x
1
) + 2f(x
0
)]/x
2
(x)
2
cbico Backward
[35f(x
0
) 104f(x
1
) + 114f(x
2
) 56f(x
3
) + 11f(x
4
)]/12x
2
(x)
4
quarta Forward
[11f(x
4
) 56f(x
3
) + 114f(x
2
) 104f(x
1
) + 35f(x
0
)]/12x
2
(x)
3
quarta Backward
[f(x
2
) + 16f(x
1
) 30f(x
0
) + 16f(x
1
) f(x
2
)]/12x
2
(x)
3
quarta Central
Tabela 2.5: Derivada Terceira f

em x
0
: expresses numricas, erros e interpolao
Expresso Erro Polinmio Tipo
f

(x
0
)
[f(x
0
) + 3f(x
1
) 3f(x
2
) +f(x
3
)]/x
3
[f(x
1
) + 3f(x
0
) 3f(x
1
) +f(x
2
)]/x
3
(x) cbico Forward
f

(x
0
)
[f(x
3
) + 3f(x
2
) 3f(x
1
) +f(x
0
)]/x
3
[f(x
2
) + 3f(x
1
) 3f(x
0
) +f(x
1
)]/x
3
(x) cbico Backward
f

(x
0
) [f(x
2
) + 2f(x
1
) 2f(x
1
) +f(x
2
)]/2x
3
(x)
2
quarta Central
Deve ser observado nas tabelas acima a seguinte notao f
i
= f(x
i
) = f(x
0
ix) e f
i
= f(x
i
) =
f(x
0
+ ix) para efeito de clculos. Tambm devemos ter em mente ao realizarmos aproximaes
numricas das derivadas a diculdade em calcul-las nas extremidades dos intervalos. Se temos um
conjunto de dados do tipo (x
j
, f
j
) onde j = 1, 2, ..., 11 ou seja, possumos 11 pares de dados, a
aproximao de segunda ordem da derivada primeira conter apenas 9 pares de dados pois necessitamos,
para o clculo da derivada na segunda amostra (j = 2), de (x
1
, f
1
) e de (x
3
, f
3
). Analogamente, para
derivada em j = 10 so necessrios os pares (x
9
, f
9
) e de (x
11
, f
11
). Uma metodologia muito empregada
nestes extremos dos dados (j = 1 e j = 11) a utilizao das aproximaes de primeira ordem, forward
e backward, nos extremos inicial e nal respectivamente.
Exemplo 6: Um sistema amortecido oscila segundo a funo g(t) = 10 sin(0, 5t) exp(0, 2t). A deri-
vada primeira (analtica) g

(t) = 5 cos(0, 5t) exp(0, 2t)2 sin(0, 5t) exp(0, 2t). Considerando
o intervalo para t de 0 a 10 e um incremento dt = 0.5 determine:
1. A derivada primeira (numrica) da funo;
2. O erro entre a aproximao numrica e a expresso analtica de g

(x)
Neste exemplo criamos o seguinte script:
% deriv1.m
clear
dt=0.5;
t=0:dt:10;
N=length(t);
fg=inline(10*sin(0.5*t).*exp(-0.2*t));
24 CAPTULO 2. INTEGRAO E DIFERENCIAO NUMRICAS
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); pause
plot(err); pause
%
% usando backward e forward para os ptos. inicial e final
%
gl_nu(1)=( fg(t(2)) - fg(t(1)) )/dt; % avanada
gl_nu(N)=( fg(t(N)) - fg(t(N-1)) )/dt; % atrasada
for 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); pause
plot(err)
2.5 Exerccios
2.1- Admita a funo f(x) = cos(8x) exp(x
2
). Realize a integral de f(x) para diferentes discretiza-
es x (nmero de intervalos) e verique para que x o resultado da integral no difere mais
usando
a) regra dos Trapzios
b) regra de Simpson
(Sugesto: escolha um intervalo [0, /2] e rode o cdigo para (N-1) = 30, 40, 50, ... ; o
valor de x obtido escrevendo >> dx <enter> no prompt de comando.)
2.2- Para obtermos a posio do C.M. de uma distribuio contnua de massa usamos r
CM
=
_
r dm
_
/M
em que x
CM
=
_
xdm
_
/M, e assim sucessivamente com M sendo a massa do corpo. Quando
a distribuio de massa no uniforme a massa especca depende da posio, ou seja, =
(x, y, z). Considere uma vareta de comprimento L = 0, 8m, rea da seo reta circular a =
5, 0 mm
2
e com massa especca dada por (x) = 7 +2xx
2
kg/m
3
. Use a Regra de Simpson
para estimar o valor numrico de x
CM
.
2.3- Considere o problema do Exerccio 2 uma vareta de comprimento L = 0, 9m, rea da seo
reta circular a = 6, 0 mm
2
e com massa especca dada por (x) = 7 + 2x x
2
kg/m
3
. Use a
Quadratura de Gaussiana para estimar o valor numrico de x
CM
.
2.4- Considere novamente o problema do Exerccio 2. Uma vareta de comprimento L = 0, 9m, rea
da seo reta circular a = 6, 0 mm
2
e com massa especca dada por (x) = 7 + 2x x
2
kg/m
3
.
Use a Quadratura de Gauss-Legendre para estimar o valor numrico de x
CM
.
2.5- Em um laboratrio foram realizadas medidas experimentais da posio de uma partcula em
relao ao tempo e os resultados encontram-se registrados na tabela abaixo.Construa um scrip
para Matlab denindo dois vetores t e x com os dados ao lado. Em seguida
2.5. EXERCCIOS 25
t (s) x (m) t (s) x (m)
0.5000 0.1947 3.0000 2.0082
0.9000 0.5165 3.4000 2.1118
1.4000 0.9733 4.0000 2.1654
1.9000 1.3961 4.5000 2.1343
2.5000 1.7907 5.0000 2.0521
1. use a aproximao numrica centrada da derivada
primeira para estimar o vetor velocidade a partir
dos dados fornecidos.
2. Aplique o mesmo procedimento para o vetor veloci-
dade com o intuito de estimar a acelerao da par-
tcula.
3. Faa um grco de x(t) , outro de v(t) e nalmente
um para a(t).
2.6- A energia potencial gravitacional de um sistema de dois corpos pode ser expressa por
U(r) = G
Mm
r
onde G = 6, 7 10
11
Nm
2
/kg
2
a constante universal da gravitao e r a distncia entre os
corpos de massas M = 6, 0 10
24
Kg e m = 80 Kg. Sabemos ainda que a fora gravitacional
pode ser obtida a partir do gradiente de U(r). Considerando o exposto e que r = 6, 4 10
6
+z,
onde z a altitude em metros:
a) determine analiticamente a expresso da fora gravitacional que atua nos corpos;
b) escreva um script para Matlab em que os dados de entrada sejam as massas; que crie um
vetor contendo os valores de r igualmente espaados; que faa um grco superposto de
F(r) analtico (pontos) e de F(r) numrico (linha cheia) usando a aproximao centrada da
derivada primeira de U;
c) refaa os clculos para derivada primeira de ordem superior (centradas Tab 2.3) e armazene
os resultados.
d) Calcule o erro numrico entre a aproximao da derivada primeira e o resultado analtico de
F e faa um grco superposto de F r e do Erro r para comparao.
2.7- Desprezando a resistncia do ar faa um script que calcule numericamente o trabalho W da
fora gravitacional ao deslocar um paraquedista com massa de 80 Kg de uma altitude z igual
a 7500 m at uma altitude nal de 300 m considerando que (a) a acelerao da gravidade
constante e igual a 9, 81 m/s
2
e (b) considerando que a gravidade varie com a altitude segundo
a expresso
g(z) = G
M
(R +z)
2
,
onde R = 6, 4 10
6
m o raio mdio da Terra e M = 6, 0 10
24
Kg a massa da Terra. (c)
Calcule a diferena relativa entre os resultados: |W
b
W
a
|/W
b
.
2.8- Segundo RESNICK; HALLIDAY (1983, cap. 8) a soluo completa de problemas unidimensionais
com foras dependentes da posio pode ser descrita pela equao
t
2
t
1
=
_
m
2

x
2
x
1
dx
_
E U(x)
onde m a massa da partcula, E a energia mecnica (constante) do sistema e U(x) a energia
potencial do sistema. Os tempos t
1
e t
2
esto relacionados com as posies x
1
e x
2
da partcula,
respectivamente. O sinal + ou deve ser escolhido segundo o sinal da velocidade da partcula em
eixo orientado. Sendo a energia do sistema invariante ocorre divergncia do integrando quando
a energia cintica tende a zero: E U(x) 0. As regras do trapzio e de Simpson no podem
ser usadas para encontrar o valor de t
2
pois o integrando no denido nas situaes em que
E = U(x). A integrao numrica por quadratura pode contornar este problema visto que os
pontos de integrao sempre esto localizados no interior do intervalo a ser integrado.
26 CAPTULO 2. INTEGRAO E DIFERENCIAO NUMRICAS
a) Considere o sistema massa mola com m = 0, 2Kg, constante elstica k = 30N/m e que em
t
1
= 0s a posio inicial da partcula seja x
1
= 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,10
m com incremento de 0,01 m para obter a resposta t
2
. Este processo permitir construir dois
vetores x
2
e os respectivos tempos t
2
associados. (Observ.: dentro do lao para o clculo de
t
2
a integral deve ser resolvida numericamente por um dos processos de integrao discutidos
neste captulo)
b) Compare os resultados obtidos no item anterior com os valores advindos da equao x(t) =
Acos(
_
k
m
t) sendo A a amplitude do movimento. Para isso use o vetor t
2
na equao e faa
um grco superposto dos resultados, i.e., use a instruo plot(t2, x2, ro, t2, x, b).
Captulo 3
Razes de Funes de uma Varivel
Freqentemente desejamos encontrar o valor de uma varivel x que anula ou satisfaz uma determinada
equao, por exemplo: x + 2 = 0; x
2
+ 3x 4 = 0; sin(x) = 2x. Existem alguns mtodos numricos
clssicos para tal m, entre eles o Mtodo da Iterao Linear, o da Bisseco e o de Newton Raphson,
Rgula Falsi (ou Mt. da Secante).
Um teorema muito usado na busca de razes de funes o Teorema de Bolzano que diz:
Se f(x) uma funo contnua sobre um intervalo fechado [a, b] e f(a) e f(b) tm sinais
contrrios, ento, 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 funo f(x) no intervalo mencionado.
Outro caso ocorre quando os sinais de f(a) e f(b) so iguais: neste caso ou existe um nmero par de
razes ou nenhuma raiz de f(x) no intervalo [a, b].
3.1 Mtodo da Iterao Linear
Para encontrar o valor de x que zera a funo f(x) isolamos x da funo escrevendo uma equao
alternativa na forma x = g(x):
se f(x) = 2x
2
x + 1 temos: x = 2x
2
+ 1 = g(x)
se f(x) = sin(x) + 2x temos: x = 0.5 sin(x) = g(x)
O processo numrico para determinar o valor
(aproximado) da raiz da funo f(x) simples
basta escrever
x
i+1
= g(x
i
) (3.1)
e inserir um valor inicial para o x
1
na fun-
o g(x). O resultado proveniente da funo
atribudo a x
2
. O valor de i incrementado
de uma unidade de modo que podemos subs-
tituir em g(x) o valor anteriormente obtido,
x
2
. Este processo Itera at a preciso num-
rica desejada:
Passo 1 dado x
1
obtemos x
2
= g(x
1
)
Passo 2 com x
2
obtemos x
3
= g(x
2
), ...
Passo n com x
n
obtemos x
n+1
= g(x
n
)
Figura 3.1: Ilustrao grca do Mtodo da
Iterao
27
28 CAPTULO 3. RAZES DE FUNES DE UMA VARIVEL
Observaao: Nos mtodos iterativos usamos com freqncia um ou dois critrios de parada: se
desejamos que o valor da raiz possua preciso de trs algarismos signicativos ento
caso |x
i+1
x
i
| pare o clculo
onde = 10
3
1.0e 3. Outro critrio de parada pode ser pelo nmero de iteraes,
ou seja, quando n > N - nmero mximo de iteraes. Dependendo do chute inicial x
1
o
mtodo pode no convergir para o valor da raiz da funo f(x) o programa terminar
pelo nmero mximo de iteraes estipulado.
3.1.1 Convergncia
Suponha que escrevamos a equao f(x) = 0 na forma x = g(x) sendo g(x) a funo de iterao. Para
haver convergncia do mtodo existem trs condies necessrias mas no sucientes a saber:
1. g(x) e g

(x) devem ser contnuas 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. x
1
[a, b]; o chute inicial deve estar dentro do intervalo considerado;
3.2 Mtodo de Newton-Raphson
Seja f(x) uma funo contnua no intervalo [a, b] e
c o nico zero da funo no intervalo. Se a primeira
derivada e a segunda derivada tambm so cont-
nuas em [a, b] escrevemos a expanso em Srie de
Taylor da funo na forma truncada
f(x
i
+ x
i
) f(x
i
) +
1
1!
f

(x
i
)x
i
ou ainda, igualando a zero
x
i
=
f(x
i
)
f

(x
i
)
x
i+1
= x
i

f(x
i
)
f

(x
i
)
(3.2)
que fornece um mtodo iterativo para a estimativa
do zero da funo f(x) no intervalo denido [a, b].
Um problema deste mtodo ocorre quando f

(x
i
)
zero - caso que deve ser evitado pois causa uma
indeterminao no segundo termo direita da igual-
dade na equao.
Figura 3.2: Ilustrao grca do Mtodo de
Newton-Raphson
3.2.1 Convergncia
Considerando a funo f(x) no intervalo [a, b] as condies sucientes de convergncia do mtodo de
Newton-Raphson so:
1. f(a).f(b) < 0
2. f

(x) = 0, x [a, b]
3. f

(x) > 0 ou f

(x) < 0 (i.e. f

(x) no 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. MTODO DA BISSECO 29
3.3 Mtodo da Bisseco
Para se aproximar de uma raiz c, o princpio da bisseo consista em reduzir o intervalo inicial testando
o sinal de f(x) para o ponto mdio do intervalo, i.e. x = (a +b)/2. Considerando um intervalo inicial
[a, b] usamos
Se f(a).f(
a+b
2
) < 0 o intervalo [a, b] substitudo por [a, (a +b)/2]
Se f(b).f(
a+b
2
) < 0 o intervalo [a, b] substitudo por [(a +b)/2, b]
com o novo intervalo calcula-se novamente o valor mdio de x, realiza-se o teste e redene-se o intervalo
at que o critrio de parada seja satisfeito. A desvantagem deste mtodo a sua lenta convergncia
para obter uma aproximao da raiz da equao (x = c). Outra desvantagem a necessidade de
fornecer ao mtodo dois pontos, a e b, com valores de f(a) e f(b) possuindo sinas contrrios.
3.4 Mtodo da Secante (Rgula Falsi)
Mtodo usado para obter zeros de funes sua-
ves. Neste mtodo os pontos de cruzamento da
secante de uma aproximao so usados como
pontos de base inicial para uma nova secante,
mais prxima do zero real. uma modicaao
do Mtodo de Newton visto que a derivada da
funo f

(x) substituida por uma aproxima-


o numrica.
Regula falsi: caso especial do Mtodo da Se-
cante, em que se condiciona que o zero pro-
curado que sempre entre os pontos de cruza-
mento da secante utilizada na iterao ante-
rior:. Diferente do Mtodo da Secante neste o
processo de busca do zero da funo inicia-se
com f
a
f
b
< 0, obrigatriamente.
Para aplicar o mtodo iterativo usamos a se-
guinte expresso
x
i+1
= x
i
f(x
i
)
x
i
x
i1
f(x
i
) f(x
i1
)
Figura 3.3: Ilustrao grca do Mtodo da
Secante
e, observando melhor, vericamos que a frao direita da igualdade o inverso da aproximao
numrica para a derivada primeira (Srie de Taylor).
O inconveniente deste mtodo a escolha de dois valores iniciais para iniciar o processo: se i = 0
necessitamos de x
0
e x
1
um esquerda da raiz e outro direta dela. Porm se a relao f(a).f(b) < 0
for satisfeita podemos escolher x
0
= a e x
1
= b.
3.5 Exerccios
3.1- Dois automveis partem simultaneamente de cidades vizinhas A e B afastadas de 100 Km em
linha reta. As equaes horrias de suas posies so
x
a
(t) = 12t + 4t
2
,
x
b
(t) = 10
5
6t
2
,
respectivamente, com a origem do sistema de coordenadas sobre a cidade A. Para encontrar o
tempo em que os mveis se cruzam na estrada devemos igualar as equaes, i.e., fazer x
a
= x
b
.
30 CAPTULO 3. RAZES DE FUNES DE UMA VARIVEL
(a) Encontre analiticamente o tempo decorido entre as suas partidas e o instante em que se
cruzam na estrada. No prompt do Matlab dena t=0:1:120; xa= ..., xb=... e faa um
grco com o comando plot(t, xa, t, xb). Compare o resultado encontrado algbricamente
com o tempo no ponto que as curvas se cruzam. No grco possvel estimar a que distncia
da cidade A os carros se encontraro.
(b) implemente o Mtodo da Iterao em um script para Matlab/Octave para calcular este
tempo. Confronte o resultado com o obtido algbricamente.
(c) Crie outro script para encontrar o tempo decorrido atravs do mtodo de Newton-Raphson
e verique se est de acordo com o resultado analtico.
(d) Sem muitas alteraes o script do item (c) pode ser modicado para obter o tempo pelo
Mtodo da Secante. Faa isso e compare o tempo obtido numricamente com o resultado
analtico.
(e) Finalmente escreva, execute e compare o tempo numrico com o analitico implementando o
Mtodo da Bisseco em um novo script para Matlab/OCTAVE.
3.2- Considere o automvel A do exerccio anterior com uma equao horria mais complexa, a saber
x
a
(t) = 12 t +t
2
exp(0, 05 t).
Neste caso no possvel obter analiticamente o tempo decorrido entre a partida dos mveis e o
cruzamento dos mesmos na rodovia.
a) No prompt do Matlab dena um vetor t=0:1:70, xa=.... e xb=.... Faa um grco com o
comando plot para estimar em que tempo eles se cruzaro e a posio do cruzamento a
partir da cidade A.
b) Altere a equao do automvel A nos cdigos dos itens (b), (c), (d) e (e) do exerccio anterior.
Encontre o tempo numericamente por cada mtodo comparando os resultados com o valor
estimado grcamente.
3.3- No captulo anterior (seco (2.2.1)) foram mencionados os Polinmios de Legendre. A quadratura
Gauss-Legendre de N pontos exige o conhecimento de N razes e pesos para sua implementao
e uma funo GaussLegendre.m foi apresentada para este m. Desenvolva um script em que
permita o usurio entrar com o valor de N entre 1 e 4 retornando os pontos da quadratura (zeros
dos polinmios) e seus respectivos pesos usando:
a) o mtodo da Iterao Linear;
b) o mtodo de Newton-Raphson.
(Observao: as razes e os pesos dos polinmios de Legendre encontram-se limitados ao
intervalo [-1, 1].)
(Sugestes: use a estrutura de deciso if N==1... else if N==2 ...else .. ...end; dena o
polinmio usando o comando inline (ex. P=inline(z) se N=1) e a expresso do peso W(z
i
)
em cada caso da estrutura. Encontre os zeros e calcule os respectivos pesos.)
Captulo 4
Ajuste de Curvas
4.1 Mnimos Quadrados
Em Fsica freqente a necessidade de ajustar dados provenientes de medidas experimentais com o
intuito de prever valores ou leis que representem o fenmeno em questo. Assumimos um conjunto de
dados (x
i
, y
i
) com i = 1, 2, . . . , N.
Uma tcnica muito empregada minimiza o quadrado dos resduos entre as observaes (y
i
) e os valores
preditos por uma funo de ajuste (f(x
i
)), i. e.
min
_
R
2
_
= min
_
N

i=1
[y
i
f(x
i
)]
2
_
.
Esta minimizao pode ser obtida aps a denio do grau do polinmio (p) que deve ajustar os dados.
Para esclarecer o mtodo dos mnimos quadrados vamos admitir um polinmio de grau p na forma
f(x) = c
0
+c
1
x +c
2
x
2
+ +c
p
x
p
onde desejamos encontrar os coecientes {c
0
, c
1
, . . . , c
p
}. Como visto na disciplina de clculo, o
mnimo de R
2
pode ser obtido pela derivada da funo R
2
com respeito aos coecientes do polinmio,
i.e.
(R
2
)
c
0
= 2

[y
i
f(x
i
)]
f(x
i
)
c
0
= 2

[y
i
f(x
i
)] = 0
(R
2
)
c
1
= 2

[y
i
f(x
i
)]
f(x
i
)
c
1
= 2

x
i
[y
i
f(x
i
)] = 0
(R
2
)
c
2
= 2

[y
i
f(x
i
)]
f(x
i
)
c
2
= 2

x
2
i
[y
i
f(x
i
)] = 0
(R
2
)
c
p
= 2

[y
i
f(x
i
)]
f(x
i
)
c
p
= 2

x
p
i
[y
i
f(x
i
)] = 0
substituindo f(x
i
) e expandindo temos

y
i
= c
0

1 +c
1

x
i
+c
2

x
2
i
+ +c
p

x
p
i

x
i
y
i
= c
0

x
i
+c
1

x
2
i
+c
2

x
3
i
+ +c
p

x
p+1
i

x
2
i
y
i
= c
0

x
2
i
+c
1

x
3
i
+c
2

x
4
i
+ +c
p

x
p+2
i
.
.
.
.
.
.
.
.
.
.
.
.

x
p
i
y
i
= c
0

x
p
i
+c
1

x
p+1
i
+c
2

x
p+2
i
+ +c
p

x
2p
i
31
32 CAPTULO 4. AJUSTE DE CURVAS
e que pode ser expresso na forma matricial a saber
_

_
N

x
i

x
2
i


x
p
i

x
i

x
2
i

x
3
i


x
p+1
i
.
.
.
.
.
.
.
.
.
.
.
.

x
p
i

x
p+1
i

x
p+2
i


x
2p
i
_

_
_

_
c
0
c
1
c
2
.
.
.
c
p
_

_
=
_

y
i

x
i
y
i

x
2
i
y
i
.
.
.

x
p
i
y
i
_

_
.
Podemos ainda renomear as matrizes e vetores e reescrever o sistema de equaes em uma forma
compacta
M c =

b
cuja soluo desejada obtida pela multiplicao da inversa de M pelo vetor

b,
c = M
1

b.
Observao: o sistema de equaes acima pode ser resolvido com uma metodologia ligeiramente
diferente ao considerarmos o seguinte sistema de equaes
_

_
1 x
1
x
2
1
x
m
1
1 x
2
x
2
2
x
p
2
.
.
.
.
.
.
.
.
.
.
.
.
1 x
N
x
2
N
x
p
N
_

_
_

_
c
0
c
1
c
2
.
.
.
c
p
_

_
=
_

_
y
1
y
2
y
3
.
.
.
y
N
_

_
ou ainda X c = y
pr-multiplicando por X
T
a ltima equao obtemos X
T
X c = X
T
y o que leva a soluo desejada
na forma
c =
_
X
T
X
_
1
X
T
y
de modo que
_
X
T
X
_
1
= M
1
e X
T
y =

b.
4.1.1 Exemplos
Nos vrios ramos da fsica comum encontrarmos leis, relativamente simples, que prevem os compor-
tamentos dos sistemas. Tais leis so funes como retas e parbolas, exponenciais, logaritmos entre
outras.
Exemplo 1: Ajuste de dados atravs de uma funo linear do tipo: y = A+Bx.
Neste caso possumos uma tabela de dados na forma
x
i
y
i
x
1
y
1
x
2
y
1
.
.
.
.
.
.
x
N
y
N
e desejamos ajustar uma reta
pelos dados experimentais (x
i
, y
i
). Pelo que foi exposto na seo 4.1 o sistema a ser resolvido
_
N

x
i

x
i

x
2
i
_ _
A
B
_
=
_
y
i

x
i
y
i
_
Sendo um sistema 2 2 possvel obter uma soluo analtica simples para os coecientes
desejados do polinmio A e B.
4.1. MNIMOS QUADRADOS 33
Exemplo 2: Ajuste de dados atravs de uma funo logartmica na forma:
y = A+Bln x.
Para obtermos os coecientes A e B reescrevemos a equao na forma y = A+Bw onde w = ln x.
O sistema que permite o ajuste dos dados similar ao do Ex1, i.e.
_
N

w
i

w
i

w
2
i
_ _
A
B
_
=
_
y
i

x
i
y
i
_
ou seja, basta criar mais uma coluna de dados na tabela contendo ao invs de x
i
os valores de
w
i
= ln x
i
.
Exemplo 3: Ajuste de dados por uma funo exponencial na forma:
y = Aexp(Bx).
Para obtermos os coecientes A e B do ajuste reescrevemos a equao na forma ln y = ln A+Bx
ou ainda z = a+bx. Assim a tabela de dados necessita de uma coluna com os valores de ln y
i
= z
i
.
O procedimento do Ex1 ento repetido de modo a obter os coecientes a e b por
_
N

x
i

x
i

x
2
i
_ _
a
b
_
=
_
z
i

x
i
z
i
_
.
Os reais coecientes da funo exponencial sero ento A = exp(a) e B = b.
Exemplo 4: Ajuste de dados por uma lei de potncia na forma:
y = Ax
B
.
Neste caso aplicamos a funo ln na equao para obtermos ln y = ln A + Bln x ou ainda
z = a +bw. O sistema resultante ser um misto dos Ex2 e Ex3 ou seja
_
N

w
i

w
2
i
_ _
a
b
_
=
_
z
i

w
i
z
i
_
.
Os coecientes desejados para o ajuste sero A = exp(a) e B = b.
Exemplo 5:
Em uma experincia como pndulo
simples conseguimos os seguintes pero-
dos em funo do comprimento (tabela
ao lado). Aps efetuar os procedimentos
indicados nos exemplos de 1 a 4 obtive-
mos os seguintes coecientes:
L
i
(m) T
i
(s)
0.50 1.43
1.00 2.00
2.00 2.85
3.00 3.48
4.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 ln x
- ajuste exponencial: A=exp(a)=1.43 ; b=B=0.281 y = 1, 43 exp(0, 281x)
- ajuste potncia de x: A=exp(a)=2.01 ; b=B=0.495 y = 2, 01x
0,495
O grco abaixo ilustra o resultado dos ajustes. Podemos observar que a Lei de Potncia forneceu
o melhor ajuste entre os apresentados. Entretanto a potncia deveria ser igual a 0,5. Isto indica
que as medidas experimentais no foram realizadas com a necessria preciso fornecendo um erro
de (0,500-0,495)/0,500= 0,01 = 1%.
O valor da gravidade local pode ser estimado a partir do coeciente A fazendo g = (2/A)
2
=
9, 77m/s
2
. Assumindo o valor real de 9,81m/s
2
o erro na estimativa de g (9,81-9,77)/9,81=0,004
= 0,4%.
34 CAPTULO 4. AJUSTE DE CURVAS
Figura 4.1: Diferentes ajustes obtidos com os dados provenientes de uma experincia com o Pndulo
Simples.
Exerccio 2.1: Monte o sistema p/ obter os coecientes 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., fornea a equao y = A + B*x.
Exerccio 2.2: Faa um script usando a linguagem do Matlab para realizar um ajuste linear dos
pontos fornecidos no Exerccio 2.1. No nal do cdigo faa um grco com os dados da tabela
(crculos vermelhos) e, sobreposto, o ajuste conseguido (linha cheia em azul).
4.2 Ajuste por uma funo qualquer (Newton e Gauss-Newton)
Em alguns casos os dados experimentais no possuem um bom ajuste com as funes exploradas na
seo precedente. Exemplos destes casos so
P(w, A, w
o
, ) =
A
(w w
o
)
2
+
2
, potncia em exp. de ressonncia,
G(x, , x
o
) =
1

2
2
exp(
(x x
o
)
2
2
2
), funo Gaussiana,
f(k, ) =

k
exp()
k!
, distribuio de Poisson
e cujos grcos apresentam-se como nas guras abaixo.
4.2. AJUSTE POR UMA FUNO 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
x
0
= 0,0;
2
=0,2
x
0
= 0,0;
2
=1,0
x
0
= 0,0;
2
=5,0
x
0
=2,0;
2
=0,5
(b)
Figura 4.2: Grcos ilustrando (a) distribuies de Poisson e (b) distribuies Normal (Gaussiana).
Nesta seo ser mostrado um procedimento conhecido pelo Mtodo de Newton que permite ajustar
dados experimentais por uma funo qualquer - funo esta denida previamente - a exemplo das
equaes acima apresentadas e normalmente no lineares.
Neste mtodo desejamos minimizar o quadrado dos resduos como denido no Mtodo dos Mnimos
Quadrados ou seja minimizar R
2
=

i
r
2
i
=

i
[f(x
i
, c) y
i
]
2
onde c = {c
1
, c
2
, ..., c
N
} o vetor com
os parmetros da funo ajuste. Iniciamos com a derivada do quadrado dos resduos com respeito aos
parmetros de uma funo f(x, c), i.e.
g
j
(c) =
1
2
(R
2
)
c
j
=
N

i=1
r
i
r
i
c
j
,
g
j
(c) =
N

i=1
[f(x
i
, c) y
i
]
f(x
i
, c)
c
j
.
Comparando com o Mtodo de Newton-Raphson (se. 2.2) desejamos os coecientes c que minimizam
R
2
. Expandindo a funo g
j
(c) em uma Srie de Taylor e truncando os termos de ordem superior a 2
temos
g
j
(c + c) g
j
(c) +

k
g
j
c
k
c
k
,
onde J
jk
=
g
j/c
k
o elemento linha j coluna k da matriz Jacobiana associada ao vetor g. Impondo
que g se anule aps a correo dos parmetros fazemos g(c +c) = 0 e reescrevemos a ltima equao
na forma matricial a saber
0 = g +J c
J c = g
c =
_
J
_
1
g
cuja soluo c o vetor com o incremento dos parmetros do vetor c de modo que a nova estimativa
dos parmetros da funo f(x, c) sero c
n+1
= c
n
+c
(n)
para n = 1, 2, ... iteraes sendo a Jocobiana
denida por
J
jk
=
N

i=1
_
f(x
i
, c)
c
j
f(x
i
, c)
c
k
+ [f(x
i
, c) y
i
]

2
f(x
i
, c)
c
j
c
k
_
.
36 CAPTULO 4. AJUSTE DE CURVAS
Em algumas literaturas o segundo termo entre as chaves desconsiderado nos clculos com o intuito
de minimizar o nmero de operaes numricas. Tal procedimento leva ao Mtodo de Gauss-Newton.
Os zeros da funo g
j
so obtidos em termos da matriz Jacobiana denida acima e deduzida a partir
da funo ajuste f(x, c) a saber
J
jk
=
g
j
(c)
c
k
=

c
k
N

i=1
r
i
r
i
c
j
=
N

i=1
_
r
i
c
k
r
i
c
j
+r
i

2
r
i
c
k
c
j
_
,
=

c
k
N

i=1
[f(x
i
, c) y
i
]
f(x
i
, c)
c
j
,
=
N

i=1
_

c
k
[f(x
i
, c) y
i
]
f(x
i
, c)
c
j
+ [f(x
i
, c) y
i
]

2
f(x
i
, c)
c
j
c
k
_
,
J
jk
=
N

i=1
_
f(x
i
, c)
c
j
f(x
i
, c)
c
k
+ [f(x
i
, c) y
i
]

2
f(x
i
, c)
c
j
c
k
_
.
Em resumo, para encontrar os coecientes do vetor c que denem a funo f(x, c) iterativamente
procedemos da seguinte forma:
Algoritmo
1. escolhemos um conjunto de coecientes
que produzem um ajuste prximo dos
valores tabelados (x
i
, y
i
) - chute inicial
c
(1)
2. calculamos a funo g
j
(x, c
(1)
) e a ma-
triz Jacobiana J
jk
(c
(1)
)
3. resolvemos o sistema linear para c:
J(c
(1)
) c
(1)
= g(x, c
(1)
)
4. incrementamos o novo vetor de coeci-
entes: c
(2)
= c
(1)
+ c
(1)
5. repete-se os clculos nos passos 2, 3
e 4 para obter c
(3)
, . . . , c
(m)
enquanto
|c| > tol
1
ou |f(x, c) y| > tol
2
6. satisfeito o critrio em 5 assume-se como
coecientes (razes) de g ou parmetros
da funao f(x, c) o ltimo conjunto de
coecientes (vetor c)
Figura 4.3: Fluxo 2
A ttulo de conhecimento dizemos que a matriz J a Jacobiana de g porm denominada de Hes-
siana (H) de f. Este mtodo empregado quando possumos uma estimativa inicial dos valores dos
coecientes da funo no linear usada para o ajuste dos dados, ou seja fornecemos c
1
.
Dependendo do chute inicial c
(1)
possvel que o mtodo gere um incremento c demasiadamente
grande fornecendo um resduo maior do que o resduo sem o incremento:

i
r
2
i
(c + c) >

i
r
2
i
(c)
contrrio ao desejado. Quando isto ocorre dizemos que o mtodo diverge e os parmetros obtidos no
faro com que a funo f(x, c) ajuste os dados experimentais. O que se faz inserir (fornecer) um
novo conjunto de parmetros para um novo teste at que se consiga a convergncia.
Exemplo 6: Considere uma garrafa com uma quantidade n = N/V de molculas por unidade de
volume. Cada molcula possui massa m e o gs encontra-se a uma temperatura T. O nmero
4.2. AJUSTE POR UMA FUNO QUALQUER (NEWTON E GAUSS-NEWTON) 37
de molculas por unidade de volume n
v
com velocidade entre v e v +dv no interior da garrafa
dado pela lei de Maxwell para a distribuio de velocidades a saber
n
v
(v) = Av
2
exp(Bv
2
),
onde
A = 4n
_
m
2kT
_
3/2
e B =
m
2kT
.
Suponha que, atravs de um mtodo expe-
rimental, tenhamos conseguido obter o se-
guinte conjunto de dados (v, n
v
) condensados
ao lado. Escreva um script em Matlab que
fornea um ajuste para este conjunto de da-
dos, ou seja, obtenha os coecientes A e B da
distribuio de velocidades moleculares. Ao -
nal do script faa um grco com os pontos
experimentais e com o ajuste obtido.
v(m/s) n
v
(m
3
) v(m/s) n
v
(m
3
)
0 0 400 30.150
40 1.4677 440 26.921
80 5.4582 480 22.244
120 13.159 520 18.279
160 19.677 560 12.405
200 28.305 600 9.1540
240 33.285 640 6.8828
280 36.652 680 4.8711
320 35.528 720 2.9592
360 35.967 760 1.7515
Soluo: a primeira coisa que devemos fazer deduzir analiticamente o sistema de equaes,
i.e., a matriz Jacobiana e o vetor g. Logo
f(x
i
, c)
c
1
=
n
v
(v
i
, A, B)
A
= v
2
i
exp(Bv
2
i
) D
A
f(x
i
, c)
c
2
=
n
v
(v
i
, A, B)
B
= Av
4
i
exp(Bv
2
i
) D
B

2
f(x
i
, c)
c
1
c
1
=

2
n
v
(v
i
, A, B)
A
2
= 0 D
AA

2
f(x
i
, c)
c
2
c
2
=

2
n
v
(v
i
, A, B)
B
2
= Av
6
i
exp(Bv
2
i
) D
BB

2
f(x
i
, c)
c
1
c
2
=

2
n
v
(v
i
, A, B)
AB
= v
4
i
exp(Bv
2
i
) =

2
n
v
(v
i
A, B)
BA
D
AB
g
1
=
N

i=1
[f(x
i
, c) y
i
]
n
v
(x
i
, A, B)
A
=
N

i=1
[f(x
i
, c) y
i
] v
2
i
exp(Bv
2
i
)
g
2
=
N

i=1
[f(x
i
, c) y
i
]
n
v
(x
i
, A, B)
A
=
N

i=1
[f(x
i
, c) y
i
]
_
Av
4
i
exp(Bv
2
i
)

, ou
g
1
f D
T
A
g
2
f D
T
B
, onde, f
i
= f(x
i
, c) y
i
Segundo as dedues e denies acima temos
_
J
11
J
12
J
21
J
22
_ _
s
1
s
2
_
=
_
g
1
g
2
_
,
onde
J
11
=
_
D
A
D
T
A
+f D
T
AA
_
,
J
12
=
_
D
A
D
T
B
+f D
T
AB
_
= J
21
,
J
22
=
_
D
B
D
T
B
+f D
T
BB
_
.
O script em Matlab a seguir permite que o usurio insira coecientes A e B at que o ajuste
que prximo dos dados experimentais. Na seqncia, iterage um nmero mximo de 50 vezes
38 CAPTULO 4. AJUSTE DE CURVAS
caso a condio de tolerncia no seja satisfeita, para no nal mostrar o grco e escrever na tela
os parmetros 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); %obtm o tamanho do vetor - numero de componentes
% inicializao
par=input(Informe o pto. inicial e tol [A , B, tol]: );
A=par(1); B=par(2); tol=par(3);
c=[A;B];
% lao p/ obteno do melhor chute inicial
while 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 lao - chute inicial
%
% lao para busca automtica dos parmetros
for i=1:50;
% definicoes
nv=A*v.^2.*exp(-B*v.^2);
df=nv-n;
% calculo das derivadas de n(v) em relacao a A e B
DA= v.^2.*exp(-B*v.^2);
DB=-A*v.^4.*exp(-B*v.^2);
% calcula gi
g1=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 segundas
DAA=zeros(1,nd);
DBB=-DB.*v.^2;
DAB=-DA.*v.^2;
DBA= DAB;
% calculo da Jacobiana
J(1,1)=DA*DA+df*DAA; % Desconsiderar os termos
J(2,2)=DB*DB+df*DBB; % a direita das 4 somas leva
J(1,2)= DA*DB+df*DAB; % ao Metodo de Gauss-Newton
4.2. AJUSTE POR UMA FUNO QUALQUER (NEWTON E GAUSS-NEWTON) 39
Figura 4.4: Resultado do ajuste usando o cdigo Maxwell.m
J(2,1)= DB*DA+df*DBA; %
% calculo do incremento s
s= - inv(J)*g;
c= c + s; % nova solucao
A=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 interno
disp([A B chi2]) % excreve A, B e chi-quadrado do ajuste na tela
Exerccio 2.3: O potencial de Lenard-Jones usado para o estudo de molculas di-atmicas. Sua
expresso em uma dimenso U(x, U
o
, a, b) = U
o
_
_
a
x
_
12
2
_
b
x
_
6
_
sendo a e b constantes que
dependem dos tomos em questo e U
o
a energia de ligao ou de dissociao da molcula.
Escreva um script LenJon.m que permita o ajuste de um conjunto de dados (x
i
, U
i
) a ser
fornecido pelo usurio. Neste problema desejamos encontrar os parmetros a, b e U
o
. (Dica: faa
uma adaptao dos procedimentos descritos em sala de aula - script Maxwell.m).
40 CAPTULO 4. AJUSTE DE CURVAS
Use os dados da tabela ao abaixo para
obter as constantes U
o
, a e b, cujo grco
est ilustrado na Figura ao lado
x U(x) x U(x)
0.4200 4.8198 0.6200 -0.9490
0.4400 0.6602 0.6400 -0.8061
0.4600 -1.1571 0.6600 -0.6847
0.4800 -1.8459 0.6800 -0.5822
0.5000 -2.0000 0.7000 -0.4960
0.5200 -1.9121 0.7200 -0.4235
0.5400 -1.7265 0.7400 -0.3625
0.5600 -1.5132 0.7600 -0.3112
0.5800 -1.3048 0.7800 -0.2679
0.6000 -1.1153 0.8000 -0.2313
Figura 4.5: Potencial de Lenard-Jones obtido com
os dados da tabela ao lado.
Exerccio 2.4: Um paraquedista possui massa igual a 81,6 kg e encontra-se a uma altitude y
0
com uma
velocidade inicial v
0
quando aciona um equipamento capaz de armazenar a altitude, a velocidade
e a acelerao em funo do tempo. Considerando que a fora de atrito viscosa (resistncia do
ar) seja proporcional a velociadade (v). A 2 Lei de Newton acerta que
ma

j = mg

j v

j a =
dv
dt
= g

m
v
dv
dt
=
g
v
l
(v
l
v)
onde v
l
= mg/ a velocidade limite do paraquedista (fora resultante nula). Na primeira
equao consideramos um referencial orientado de baixo para cima com a origem no solo de
modo que a, v e g so considerados positivos. Use o mtodo iterativo desta seo (a exemplo do
cdigo maxwell.m) para obter
4.2. AJUSTE POR UMA FUNO QUALQUER (NEWTON E GAUSS-NEWTON) 41
a) o parmetro , a altura inicial y
0
e
a velocidade inicial v
0
a partir dos da-
dos (tempo, altitude) segundo a tabela
ao lado sabendo que a dependncia da
altitude com o tempo dada por
y(t) = y
0

mgt

+
m

_
mg

v
0
_
(1e
t/m
)
b) a velocidade v
0
e o coeciente a par-
tir dos dados (tempo, velocidade) forne-
cidos na tabela ao lado sabendo que a
dependncia da velocidade com o tempo
dada por
v(t) =
mg


_
mg

v
0
_
e
t/m
c) a velocidade v
0
e o coeciente a par-
tir dos dados (tempo, acelerao) forne-
cidos na tabela ao lado sabendo que a
dependncia da acelerao com o tempo
dada por
a(t) =
_
mg

v
0
_
e
t/m
d) o parmetro , a altura inicial y
0
e
a velocidade inicial v
0
a partir dos da-
dos (velocidade, altitude) fornecidos na
tabela ao lado sabendo que a dependn-
cia da altitude com a velocidade dada
por
y(v) = y
0
+
m

(v
0
v)
m
2
g

2
ln
mg v
mg v
0
.
Tabela : dados do altmetro, da velocidade e da
acelerao em funo do tempo
t (s) y(t) (m) v(t) (m/s) a(t) (m/s
2
)
1.50 1.43e+03 2.08e+01 6.36
3.00 1.26e+03 2.86e+01 4.67
4.50 1.11e+03 3.42e+01 3.44
6.00 1.02e+03 3.89e+01 2.63
7.50 8.98e+02 4.19e+01 1.95
9.00 8.56e+02 4.56e+01 1.57
10.5 7.31e+02 4.68e+01 1.14
11.0 5.94e+02 4.68e+01 8.01e-01
12.5 6.08e+02 5.12e+01 7.17e-01
14.0 4.72e+02 5.02e+01 4.97e-01
15.5 4.30e+02 5.30e+01 4.16e-01
17.0 3.00e+02 5.08e+01 2.79e-01
18.5 2.34e+02 5.23e+01 2.23e-01
20.0 1.43e+02 5.14e+01 1.59e-01
22.5 6.68e+01 5.20e+01 1.24e-01
OBS.: faam o script em Matlab que fornea os
parmetros pedidos e faa um grco dos dados ex-
perimentais (ptos vermelhos) e que mostre o ajuste
conseguido (linha contnua azul).
42 CAPTULO 4. AJUSTE DE CURVAS
Captulo 5
Sistema de Equaes Lineares
5.1 Denies
Denimos uma equao linear de n variveis na forma: a
1
x
1
+a
2
x
2
+ +a
n
x
n
= b onde os x

i
s sos
as incgnitas da equao, os a

i
s so os coecientes das incgnitas (nmeros conhecidos) e b o termo
independente (conhecido). Como outro exemplo exemplo: ax + by + cz = d representa uma equao
linear com trs incgnitas, x, y e z.
Consideremos A uma matriz nn, x um vetor de incgnitas n1 e b o vetor de termos independentes
n1. A formulao matricial Ax = b representa um sistema de equaes lineares de ordem nn, cuja
soluo x deve ser obtida atravs de um processo simultneo em que todas as equaes so satisfeitas
ao mesmo tempo. Para esclarecer, se n = 3 temos o seguinte sistema de equaes
_
_
A
11
A
12
A
13
A
21
A
22
A
23
A
31
A
32
A
33
_
_
_
_
x
1
x
2
x
3
_
_
=
_
_
b
1
b
2
b
3
_
_
ou
A
11
x
1
+A
12
x
2
+A
13
x
3
= b
1
A
21
x
1
+A
22
x
2
+A
23
x
3
= b
2
A
31
x
1
+A
32
x
2
+A
33
x
3
= b
3
.
Dependendo de como a matriz A e o vetor b se apresentam os sistemas lineares so classicados a
saber:
1. Sistema Impossvel - no tem soluo;
_
2 2
2 2
_ _
x
1
x
2
_
=
_
5
5
_
2. Sistema Possvel e Indeterminado - innitas solues;
_
1 1
3 3
_ _
x
1
x
2
_
=
_
5
15
_
(0; 5), (2, 5; 2, 5), . . .
3. Sistema Possvel e Determinado - soluo nica;
_
2 2
2 2
_ _
x
1
x
2
_
=
_
5
5
_
(0; 2, 5)
OBS.: Algumas operaes aritmticas entre duas equaes do mesmo sistema de equaes podem
resultar em sistemas equivalentes ( com mesma soluo):
a) ao multiplicarmos os membros de uma equao do sistema por um nmero real distinto de zero,
obtm-se outro sistema equivalente ao inicial;
b) ao somar ou subtrair duas equao do mesmo sistema, obtemos outro sistema equivalente ao inicial;
c) somando (subtraindo) uma equao do sistema outra equao do mesmo, multiplicada por um
nmero real diferente de zero, obtemos outro sistema equivalente;
d) se em um sistema de equaes lineares uma equao proporcional a outra ou combinao linear
de outras, podemos retir-la e o sistema que obtemos equivalente ao inicial.
Veremos nas sees a seguir algumas das tcnicas de soluo de sistemas de equaes lineares.
43
44 CAPTULO 5. SISTEMA DE EQUAES LINEARES
5.2 Mtodo de Gauss
Neste mtodo necessitamos dois passos para obter o vetor soluo.de um sistema de equaes:
1. triangularizar a matriz A e,
2. realizar a retro-substituio (substituio regressiva).
No primeiro passo usamos operaes aritmticas entre linhas da matriz de modo a deix-la na forma
triangular a saber
_
_
A
m
11
A
m
12
A
m
13
0 A
m
22
A
m
23
0 0 A
m
33
_
_
_
_
x
1
x
2
x
3
_
_
=
_
_
b

1
b

2
b

3
_
_
,
onde A

ij
so os elementos modicados da matria A enquanto b

i
so os elementos modicados do vetor
independente b.
Exemplo 1: Desejamos triangularizar o sistema de equaes 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.
A
A
=
_
_
1 3 4
4 2 3
2 4 1

1
2
3
_
_
e ento comeamos a oper-la. 1) Substitumos a 2 linha pelo resultado da subtrao entre o
dobro da terceira linha menos a segunda, i.e.
A
A
=
_
_
1 3 4
0 6 1
2 4 1

1
4
3
_
_
.
Em seguida 2) substituimos a 3 linha pelo resultado da subtrao entre o dobro da primeira
linha e a terceira, i.e.
A
A
=
_
_
1 3 4
0 6 1
0 2 7

1
4
1
_
_
.
Finalmente 3) substituimos a 3 linha pelo resultado da subtrao entre a segunda linha e o
triplo da terceira, i.e.
A
A
=
_
_
1 3 4
0 6 1
0 0 22

1
4
7
_
_
.
Assim obtemos o novo sistema de equaes A

x = b

em que a matriz A foi triangularizada


A

=
_
_
1 3 4
0 6 1
0 0 22
_
_

_
_
1 3 4
0 6 1
0 0 22
_
_
_
_
x
1
x
2
x
3
_
_
=
_
_
1
4
7
_
_
.
O novo sistema de equaes pode ser facilmnete resolvido por retrosubstituio pois conhecemos o
valor de x
3
atravs de uma simples operao: x
3
=
7
/22.
5.3. MTODO DE GAUSS-JORDAN 45
Exemplo 2: Retrosubstituio: Sabemos da terceira equao do sistema que x
3
=
7
/22. Substituindo
este valor na segunda equao 6x
2
x
3
= 4 obtemos
x
2
=
1
6
_
4
7
22
_
=
81
6 22
x
2
=
27
44
e, em seguida substituimos na primeira equao x
1
+3x
2
+4x
3
= 1 os valores de x
3
e x
2
obtendo
x
1
= 1 3
27
44
+ 4
7
22
x
1
=
44 81 + 56
44
x
1
=
19
44
,
nalizando a soluo do sistema de equaes segundo o mtodo de Gauss: x = [
19
/44;
27
/44;
7
/22].
5.3 Mtodo de Gauss-Jordan
Este mtodo uma extenso do mtodo de Gauss que objetiva a transformao da matriz A em uma
matriz identidade. Basicamente as operaoes entre linhas so promovidas de modo a diagonalizar a
matriz original nalizando com elementos unitrios 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 a
matriz ampliada temos
A
A
=
_
_
2 4 2
2 1 1
1 1 2

6
16
9
_
_
.
Como o elemento (3,1) unitrio, permutamos as linhas 1 e 3 obtendo
A
A
=
_
_
1 1 2
2 1 1
2 4 2

9
16
6
_
_
.
Realizamos as seguintes operaoes: L
2
= L
2
2L
1
e L
3
= L
3
2L
1
obtendo
A
A
=
_
_
1 1 2
0 1 3
0 2 2

9
2
12
_
_
.
Multiplicamos L
2
por -1 e fazemos as seguintes operaes: L
1
= L
1
L
2
e L
3
= L
3
2L
2
obtendo
A
A
=
_
_
1 0 1
0 1 3
0 0 8

7
2
16
_
_
L
3
=L
3
/8
A
A
=
_
_
1 0 1
0 1 3
0 0 1

7
2
2
_
_
.
Finalmente as operaes: L
1
= L
1
+L
3
e L
2
= L
2
3L
3
nos permitem escrever
A
A
=
_
_
1 0 0
0 1 0
0 0 1

9
4
2
_
_
fornecendo a soluo desejada x = [9; 4; 2].
Este mtodo muito pouco usado nas solues de sistemas de equaes pois necessita de um nmero
maior de operaes levando o dobro do tempo gasto pelo mtodo de Gauss. Em alguns problemas
fsicos o objetivo a diagonalizao de operadores (como A): problemas de auto-valores e auto-vetores
so amplamente usados em Mecnica Quntica. Nestes casos no trabalhamos com a amatriz ampliada
e o resultado da diagonalizao fornece, na diagonal principal, o espectro de auto-valores do operador
ao invs da matriz identidade.
46 CAPTULO 5. SISTEMA DE EQUAES LINEARES
5.4 Decomposio LU (ou Fatorao LU)
Este mtodo mais trabalhoso que o mtodo de Gauss porm muito prtico quando necessitamos
resolver sistemas de equaes em que a matriz de coecientes A permanece a mesma e o vetor de
termos independentes b assume diferentes valores para cada sistema de equaes a resolver.
Na forma compacta o sistema de equaes Ax = b pode ser reescrito usando a igualdade LU = A na
forma
LUx = b. (5.1)
onde L a matriz inferior (lower) e U a matriz superior (upper) que multiplicadas fornecem a matriz
A, i.e.
_

_
1 0 0
L
21
1 0
.
.
.
.
.
.
.
.
.
.
.
.
L
n1
L
n2
. . . 1
_

_
_

_
U
11
U
12
U
1n
0 U
22
. . . U
2n
.
.
.
.
.
.
.
.
.
.
.
.
0 0 . . . U
nn
_

_
=
_

_
A
11
A
12
A
1n
A
21
A
22
. . . A
2n
.
.
.
.
.
.
.
.
.
.
.
.
A
n1
A
n2
. . . A
nn
_

_
.
Ao multiplicarmos a 1 linha de L pelas colunas de U vericamos que U
1j
= A
1j
para j = 1, ..., n. Ao
multiplicarmos a 2 linha de L pela 1 coluna de U obtemos L
21
U
11
= A
21
ou ainda L
21
= A
21
/U
11
. As
multiplicaes pelas outras colunas fornecem equaes com dois termos na forma L
21
U
1j
+1 U
2j
= A
2j
para j = 2, ..., n e, visto que conhecemos L
21
bem como a primeira linha da matriz U obtemos
U
2j
= A
2j
L
21
U
1j
, i.e., os coecientes restantes da 2 linha da matriz U.
O processo acima pode ser extendido no intuito de construirmos ambas as matrizes L e U. Suprimindo
detalhes a fatorao da matriz A em uma matriz inferior L e outra superior U ca resumida em duas
equaes a saber
U
ij
= A
ij

i1

k=1
L
ik
U
kj
, para i j ; (5.2)
L
ij
=
_
A
ij

i1
k=1
L
ik
U
kj
_
U
jj
, para i > j. (5.3)
Visto que LUx = b escrevemos Ly = b e y = Ux e a soluo do sistema de equaes resolvido em
duas etapas:
1. calculamos y a partir de Ly = b
_

_
1 0 0
L
21
1 0
.
.
.
.
.
.
.
.
.
.
.
.
L
n1
L
n2
. . . 1
_

_
_

_
y
1
y
2
.
.
.
y
n
_

_
=
_

_
b
1
b
2
.
.
.
b
n
_

_
fornecendo: y
1
= b
1
; y
2
= b
2
L
21
y
1
; y
3
= b
3
L
31
y
1
L
32
y
2
etc. Este processo leva a seguinte
frmula de recorrncia
y
i
= b
i

i1

j=1
L
ij
y
j
, para i = 1, ..., n. (5.4)
2. usando retro-substituio obtemos x a partir de U e y:
_

_
U
11
U
12
U
1n
0 U
22
. . . U
2n
.
.
.
.
.
.
.
.
.
.
.
.
0 0 . . . U
nn
_

_
_

_
x
1
x
2
.
.
.
x
n
_

_
=
_

_
y
1
y
2
.
.
.
y
n
_

_
com um procedimento idntico segunda etapa do mtodo de Gauss.
5.5. MTODO ITERATIVO DE JACOBI-RICHARDSON 47
Exerccio 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 decomposio LU a soluo do sistema de equaes. Resp: a soluo x = [1; 2; 1; 0].
5.5 Mtodo Iterativo de Jacobi-Richardson
Os mtodos iterativos usam um uma estimativa inicial da soluo do sistema de equaes para obter
uma melhor estimativa da mesma aps sucessivos passos. Assim, sendo x
0
uma soluo aproximada
do sistema de equaes o processo deve ser capaz de devolver uma soluo aproximada x
1
, melhor do
que x
0
, aps uma iterao. A soluo x
1
ento usada para obteno de x
2
e assim sucessivamente.
Consideremos um sistema n n do tipo Ax = b. Podemos escrever a matriz de coecientes como a
soma de trs matrizes: uma triangular inferior, uma diagonal e uma triangular superior na forma
_

_
0 0 0
L
21
0 0
.
.
.
.
.
.
.
.
.
.
.
.
L
n1
L
n2
. . . 0
_

_
. .
L
+
_

_
A
11
0 0
0 A
22
0
.
.
.
.
.
.
.
.
.
.
.
.
0 0 . . . A
nn
_

_
. .
D
+
_

_
0 U
12
U
1n
0 0 . . . U
2n
.
.
.
.
.
.
.
.
.
.
.
.
0 0 . . . 0
_

_
. .
U
=
_

_
A
11
A
12
A
1n
A
21
A
22
. . . A
2n
.
.
.
.
.
.
.
.
.
.
.
.
A
n1
A
n2
. . . A
nn
_

_
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
1
b D
1
_
L +U
_
x.
O processo iterativo de Jacobi-Richardson inicia-se ao substituirmos x direita da igualdade por sua
aproximao x
1
resultando em uma nova aproximao da soluo. Como este processo repetido vrias
vezez, a frmula de recorrncia deste mtodo
x
k+1
= D
1
b D
1
_
L +U
_
x
k
, para k = 1, 2, .... (5.5)
nalizando quando o limite mximo de iteraes ultrapassado ou quando a diferena max|x
k+1
x
k
| <
, sendo um nmero pequeno relacionado com o grau de preciso desejado para a soluo do problema.
Vericamos na Eq.(5.5) a necessidade de inverter a matriz diagonal D. Embora a inverso desta matriz
seja muito simples possvel evitar este procedimento redenindo os termos da Eq.(5.5) a saber
x
k+1
= b

_
L

+U

_
x
k
, para k = 1, 2, .... (5.6)
onde
_

_
b

i
= b
i
/A
ii
, i = 1, ..., n
L

ij
= A
ij
/A
ii
, se i > j e 0 caso contrrio
U

ij
= A
ij
/A
ii
, se i < j e 0 caso contrrio
o que representa uma normalizao dos elementos de cada linha da matriz A pelo elemento da diagonal
principal A
ii
no incio da deduo do mtodo.
48 CAPTULO 5. SISTEMA DE EQUAES LINEARES
5.6 Mtodo de Gauss-Sidel
Como na seo anterior reescrevemos o sistema de equaes Ax = b na forma
_
L

+I +U

_
x = b

,
sendo I. a matriz identidade. Manipulando a equao obtemos
_
L

+I
_
x = b

x
x =
_
L

+I
_
1
b

_
L

+I
_
1
U

x
e, admitindo uma soluo inicial aproximada para x direita da igualdade, obtemos a frmula de
recorrncia para o mtodo iterativo de Gauss-Sidel a saber
x
k+1
=
_
L

+I
_
1
b

_
L

+I
_
1
U

x
k
, para k = 1, 2, ... (5.7)
com critrios de parada idnticos aos mencionados na seo anterior.
Devemos observar na Eq.(5.7) a necessidade de inverter a matriz triangular inferior (L

+ I) para a
aplicao do mtodo. neste ponto que nos perguntamos: por qu tanto trabalho se necessitamos
inverter o termo (L

+ I) ? No seria melhor resolver o sistema Ax = b invertendo a matriz A e


multiplicando por b?
A resposta a estas perguntas torna-se clara ao redenirmos o mtodo. Pr-multiplicamos a Eq.(5.7)
pela matriz (L

+I) obtendo
_
L

+I
_
x
k+1
= b

x
k
, ou
x
k+1
= b

x
k+1
U

x
k
, para k = 1, 2, ... (5.8)
A Eq.(5.8) permite o clculo iterativo da soluo do sistema de equaes sem a necessidade da inverso
da matriz (L

+I). Assumindo um chute inicial x


k
= [x
k
1
; x
k
2
; . . . , x
k
n
] com k = 0 para o primeiro passo
temos
x
k+1
1
= A

12
x
k
2
A
13
x
k
3
A
1n
x
k
n
+b

1
x
k+1
2
= A

21
x
k+1
1
A
23
x
k
3
A
2n
x
k
n
+b

2
.
.
.
.
.
.
x
k+1
n
= A

n1
x
k+1
1
A
n2
x
k+1
2
A
nn
x
k+1
n1
+b

n
o que fornece x
1
= [x
1
1
; x
1
2
; . . . , x
1
n
]. No segundo passo incrementa-se k para o valor 1 repetindo-se o
processo. Podemos observar nas solues que o valor recm calculado de x
1
usado para estimar x
k+1
2
.
Os valores atualizados de x
1
e x
2
so empregados na estimativa de x
k+1
3
e assim sucessivamente at
x
k+1
n
.
Exerccio 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 soluo do sistema de equaes usando o mtodo de Gauss-Sidel. Resp: a soluo
x = [1; 2; 1; 0].
5.7 Convergncia dos mtodos Iterativos
Os dois mtodos iterativos, acima apresentados, iro convergir para a soluo do sistema de equaes
sempre que a matriz for diagonalmente dominante,. i.e., quando a matriz A satiszer
|A
ii
| >
n

j=i
|A
ij
| , para cada i = 1, 2, . . . , n.
5.7. CONVERGNCIA DOS MTODOS ITERATIVOS 49
Convergncias lentas ocorrem quando o chute inicial est distante da soluo do problema e quando o
critrio acima ca prximo da igualdade, ou seja
|A
ii
|

j=i
|A
ij
| , para i = 1, 2, . . . , n.
possvel melhorar o condicionamento da matriz realizando algumas permutaes entre linhas de
modo a tornar o sistema diagonalmente dominante. Este processo denominado de pivoteamento e
usado tambm nas solues diretas obtidas pela aplicao do mtodo de Gauss, de Jacobi-Richardson
e decomposio LU.
50 CAPTULO 5. SISTEMA DE EQUAES LINEARES
Exemplo 1: Podemos usar um sistema de equaes lineares para obter, por exemplo, as correntes
que circulam nas malhas do circuito abaixo. O mtodo de Maxwell simples pois assume apenas
uma corrente em cada malha. Considerando a Lei de Kircho para as trs malhas do circuito
temos
R
0
i
0
+V
2
+R
5
(i
0
i
2
) +R
6
i
0
= 0
R
1
i
1
+R
2
(i
1
i
2
) V
2
= 0
R
3
i
2
+R
4
i
2
+R
5
(i
2
i
0
) +R
2
i
2
= 0
Sabendo que R
1
= R
3
= R
5
= 100 e R
0
= R
2
= R
4
= R
6
= 200 monte o sistema de equaes
e obtenha, com papel-lpis-calculadora, as correntes usando
a) o mtodo de Gauss e
b) o mtodo de Gauss-Sidel.
c) Agora tente implementar o mtodo de Gauss usando a linguagem do Matlab ou do Octave
de modo que valores das resistncias R
0
. . . R
5
bem como de V
1
e V
2
sejam inseridos via teclado
antes de se resolver o problema computacionalmente.
Figura 5.1: Circuito com trs malhas e duas fontes de tenso contnuas V
1
e V
2
.
Observao: as correntes que percorrem os resistores sero dadas por
R
1
I
1
R
2
I
1
I
2
R
3
I
2
R
4
I
2
R
5
I
0
I
2
R
0
I
0
R
5
I
0
5.8 Exerccios
5.1- A Ponte de Wheatstone usada para calcular resistncias (ou capacitncias) desconhecidas.
O circuito abaixo ilustra uma Ponte de Wheatstone em que R
0
I
5
= 0 quando a ponte est em
equilbrio, i.e., quando R
2
R
3
= R
1
R
4
. Normalmente entre os pontos B e D existe um ampermetro
5.8. EXERCCIOS 51
que indica a corrente neste segmento (I
5
) sendo R
0
a resistncia do aparelho.
.
Figura 5.2: Esquema de circuito: Ponte de Wheatstone
Usando as Leis de Kirchho aos ns A, D, C e D obtemos as equaes
I = I
1
+I
2
I
3
= I
1
+I
5
I = I
3
+I
4
I
2
= I
4
+I
5
e, as trs malhas fornecem as equaes restantes
I
1
R
1
+I
4
R
4
= V
I
1
R
1
I
5
R
0
I
2
R
2
= 0
I
3
R
3
I
4
R
4
+I
5
R
0
= 0
necessrias a soluo analtica desde que sejam fornecidos dados sucientes para isso: este sistema
possui cinco resistncias, seis correntes, uma fonte (bateria) e apenas sete equaes. Assumindo
que as incgnitas do problema sejam as correntes reescrevemos o conjunto de equaes acima na
forma
_

_
1 1 1 0 0 0
0 1 0 1 0 1
1 0 0 1 1 0
0 0 1 0 1 1
0 R
1
0 0 R
4
0
0 R
1
R
2
0 0 R
5
0 0 0 R
3
R
4
R
0
_

_
_

_
I
I
1
I
2
I
3
I
4
I
5
_

_
=
_

_
0
0
0
0
V
0
0
_

_
A x =

b
onde observa-se que a matriz A no quadrada. Uma forma de solucionar este problema baseia-
se na obteno de um sistema de equaes equivalente. Para tanto pr-multiplicamos a equao
pela matriz transposta, ou seja, fazemos
A
T
A x = A
T

b M x = c
onde c = A
T

b e M = A
T
A sendo M uma matriz quadrada 6x6. Considere R
1
= 100, R
2
= 30,
R
3
= 20, R
4
= 200, R
5
= 1 e que a bateria fornea 20V de d.d.p. entre os terminais A e C
52 CAPTULO 5. SISTEMA DE EQUAES LINEARES
do circuito. Monte a matriz A e o vetor

b, realize a pr-multiplicao para obter a matriz M e o
vetor c. Em seguida implemente um script (Matlab/Octave) para encontrar computacionalmente
as correntes em cada resistor pelo
a) Mtodo de Fatorao LU e
b) Mtodo de Gauss-Sidel
5.2- Considere o sistema de roldana e pesos ao lado. A roldana
possui raio R e momento de Inrcia I. Considere M > m va-
lores tambm conhecidos e:
a) escreva as equaes de movimento dos pesos e da roldana
b) monte um sistema de equaes em que as incgnitas so
T
1
, T
2
e a acelerao angular da roldana .
c) dados M = 2Kg , m = 1Kg, R = 10cm e I = 0,01 Kgm
2
altere o script Gauss.m para obter a soluo
d) altere GauSeidel.m para obter a soluo
e) o sist. Fsico levado a Lua (g muda) recalcule a soluo
Captulo 6
Soluo de Equaes Diferenciais
Ordinrias
Nos distintos ramos da cincia Fsica muito freqente encontrarmos sistemas que so regidos por
equaes diferenciais. A primeira Leis de Newton aplicada ao sistema massa-mola leva as equaes
diferenciais do oscilador harmnico, simples, amortecido e forado.
Este captulo apresenta, com uma formulao simples, o Mtodo de Diferenas Finitas (MDF) como fer-
ramenta numrica para obteno das solues de algumas equaes diferenciais tais como: decaimento
radioativo, oscilaes e difuso do calor.
6.1 Decaimento Radioativo
A Lei que expressa o decaimento radioativo de uma substncia radioativa (ex. Urnio, Trio, Potssio)
equacionada na forma
dN
dt
= N = N(t) = N
0
exp(t) (6.1)
onde N
0
representa o nmero de tomos radioativos no instante t = 0s e uma constante de decaimento
que depende da substncia. Algumas denies importantes so:
t
1/2
=
ln 2

=
0, 693

, meia vida
t
m
=
1

, vida mdia
sendo que a meia vida da substncia, como a denominao sugere, o tempo necessrio para que metade
dos ncleos radioativos decaiam e t
m
o tempo mdio de vida da substncia. Embora tenhamos a
soluo analtica do problema podemos, a ttulo de exemplo, aplicar a tcnica numrica denominada
de Mtodos de Diferenas Finitas equao diferencial com o intuito de obter uma soluo numrica
N
num
(t). Para isso devemos substitui a derivada dN/dt por suas aproximaes (vide cap. anterior),
ou seja
1. Diferena centrada:
N
i+1
N
i1
2t
= N
i
= N
i+1
= N
i1
2t N
i
(Centered)
2. Diferena atrasada:
N
i
N
i1
t
= N
i
= N
i
=
N
i1
1 +t
(Backward)
3. Diferena adiantada:
N
i+1
N
i
t
= N
i
= N
i+1
= N
i
(1 t) (Forward)
53
54 CAPTULO 6. SOLUO DE EQUAES DIFERENCIAIS ORDINRIAS
4. Forward Modicado:
N
i+1
N
i
t
= N
i+1/2
e, tomando o valor mdio N
i+1/2
= (N
i+1
+N
i
)/2
obtemos
N
i+1
=
(1 t/2)
(1 +t/2)
N
i
Tarefa: (a) Considerando N
0
= 1000 e = 3, 46 10
2
s
1
determine numericamente os valores de
N(t) segundo as aproximaes de 1 a 4 usando 21 amostras no tempo compreendido ao intervalo
[0 , 5 10
2
] segundos.
(b) Faa um grco de tempo contra as solues numricas N
1
(t), N
2
(t), ...
(c) Calcule a soluo analtica nos tempos discretizados e compute os erros de cada aproximao
na forma erro =
S
anal
N
S
anal
100. Ao nal produza um grco do tempo contra cada um dos erros.
6.2 Equao de Poisson 1-D
Em eletrosttica vimos uma relao entre o uxo do campo eltrico e a distribuio de cargas no
espao. Considerando o vetor deslocamento eltrico,

D =

E, onde a permitividade eltrica do
meio e

E o campo eltrico temos


D = , (Lei de Gauss)
ou ainda
(

E) = , (6.2)
sendo a densidade de carga. O campo eltrico pode ser obtido a partir do gradiente do potencial
eltrico, i.e.,

E = V . Substituindo na equao (6.2) vem
(V ) = . (6.3)
Em meios homogneos constante e a ltima equao simplica-se para

2
V =

, (6.4)
conhecida por equao de Poisson para o potencial eletrosttico. Com exemplo considere a seguinte
equao diferencial de segunda ordem
d
2

dx
2
= f(x) = x (6.5)
sujeita as seguintes condies de fronteira (Dirichlet)
(0) =
1
= a,
(1) =
n
= b.
Usando diferena centrada esquerda da igualdade temos
(x + x) 2(x) +(x x)
x
2
= x
que pode ser simplicada usando a notao x = (i 1)x, (x) =
i
, (x +x) =
i+1
de modo que

i+1
2
i
+
i1
x
2
= x
i

i1
2
i
+
i+1
= x
2
x
i
. (6.6)
Existem dois problemas ao se tentar usar esta equao: um ocorre quando inserimos i = 1, pois aparece
um termo
0
= (x) que no est no domnio do problema e dois, quando i = n, pois aparece o
6.2. EQUAO DE POISSON 1-D 55
termo
n+1
= (1 + x) que tambm encontra-se fora do modelo (domnio) denido para valores de
x [0, 1]. Podemos desenvolver a ltima equao para diferentes posies x, ou equivalentemente,
para diferentes valores de i na forma
i = 1
0
2
1
+
2
= x
2
x
1
i = 2
1
2
2
+
3
= x
2
x
2
i = 3
2
2
3
+
4
= x
2
x
3
: : :
i = n
n1
2
n
+
n+1
= x
2
x
n
.
Como
0
e
n+1
no fazem parte da soluo os termos devem ser retirados da primeira e ltima
equaes. Alm disso, das condies de fronteira sabemos os exatos valores de
1
e de
n
, de modo que
a primeira e a ltima equaes no so verdadeiras devendo ser removidas do sistema de equaes. O
resultado destas conjecturas permite reescrever o conjunto de equaes acima na forma
i = 2 2
2
+
3
= x
2
x
2

1
i = 3
2
2
3
+
4
= x
2
x
3
: : :
i = n 1
n2
2
n1
= x
2
x
n1

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

_
2 1 0 . . . . 0
1 2 1 0 . . . 0
0 1 2 1 0 . . .
. 0 . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . 2 1
0 0 . . . 0 1 2
_

_
_

4
.
.
.
.

n1
_

_
=
_

_
x
2
x
2
a
x
2
x
3
x
2
x
4
.
.
.
.
x
2
x
n1
b
_

_
. (6.7)
Denominando a matriz a esquerda da igualdade de K, o vetor soluo-parcial de e o vetor direita
da igualdade de c, o sistema simultneo de equaes resolvido a saber
K = d
= K
1
d. (6.8)
Neste sistema de equaes a matriz K de ordem (n2) (n2) enquanto os vetores possuem n2
elementos. O vetor soluo deste problema, , pode ser obtido usando as seguintes linhas de comando
no ambiente Matlab
clear;
...
define-se a e b (cond. cont.)
define-se n, dx e x
calcula-se a matriz K
calcula-se o vetor c
...
psi=inv(K)*d; % soluo para i=2,..,n-1. Exclui-se as bordas
phi(1) = a; %\
phi(2:n-1)= psi; % > soluo numrica completa.
phi(n) = b; %/
phi_anl = x.*(1-x.^3)/12; % soluo analtica
plot(x,psi,b., x,phi_anl,r-) % grfico comparativo entre solues
56 CAPTULO 6. SOLUO DE EQUAES DIFERENCIAIS ORDINRIAS
Observao: quando o meio for heterogneo = (x) a equao (6.3) desenvolvidada usando a
identidade vetorial (AB) = B A+A( B) sendo A e B escalares. A aplicao desta
identidade fornece
(V ) = V +( V ) =

2
V + V =

d
2
V
dx
2
+
d
dx
dV
dx
=
d
2
V
dx
2
+
d ln
dx
dV
dx
=

ou seja, para meios heterogneos a equao diferencial possui um termo com dependncia no
gradiente do potencial eltrico.
6.2.1 Algoritmo de Thomas - Sistemas tridiagonais
Um grande nmero de problemas fsicos recaem em um sistema de equaes do tipo Ax = b onde a ma-
triz A tridiagonal, ou seja, possui a diagonal principal (b
i
), uma subdiagonal (a
i
) e uma sobrediagonal
(c
i
) na forma
_

_
b
1
c
1
0 0 . . . 0
a
2
b
2
c
2
0 . . . 0
0 a
3
b
3
c
3
. . . 0
0 0 a
4
.
.
.
.
.
.
.
.
.
.
.
. . . . 0
.
.
.
.
.
.
c
n1
0 0 0 a
n
b
n
_

_
_

_
x
1
x
2
x
3
.
.
.
.
.
.
x
n
_

_
=
_

_
d
1
d
2
d
3
.
.
.
.
.
.
d
n
_

_
.
A proposta do algoritmo de obter o vetor x armazenando apenas as trs diagonais da matriz ao invs
de armazenar a matriz cheia n n. Em uma primeira etapa o processo o de eliminao da diagonal
inferior (vide mtodo de eliminao Gaussiana) de modo que escrevemos
c
1
= c
1
/b
1
d
1
= d
1
/b
1
para k de 1 at n
den = b
k
a
k
c
k1
c
k
= c
k
/den
d
k
= (d
k
a
k
d
k1
)/den
fim do lao
Em uma segunda etapa, a da retrosubstituio obtemos a soluo desejada a saber
x
n
= d
n
para k de n-1 at 1
x
k
= d
k
c
k
x
k+1
fim
No ambiente Matlab/Octave podemos criar uma funo (script ) para este m. 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. EQUAO 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
% retrosubstituio
x(n) = d(n);
for i= n-1:-1:1
x(i) = d(i) - c(i)*x(i + 1);
end
Dirichlet: na seo anterior vimos um exemplo em que a soluo da EDO possuia valores xos nas
duas fronteiras do modelo: condies de Dirichlet. Como resultado o sistema de equaes n n
foi reduzido um sistema com n2 incgnitas e o vetor de termos independentes teve a primeira
e ltima linhas alteradas para insero das condies de contorno, i.e.
K = d

onde d

= d c
D
=
_

_
d
2
d
3
.
.
.
d
n1
_

_
a
0
.
.
.
b
_

_
.
Muitos sistemas fsicos possuem outras condies de contorno : em difuso do calor comum encon-
trarmos fronteiras com condies de conveco ou com uxo prescritos, paredes adiabticas implicam
em uxo trmico nulo. No processo de obter a soluo analtica ou numrica de equaes diferenciais
impomos com frequncia as de Neumann e de Robin (mista)

x
= e (6.9)

x
+ = , (6.10)
respectivamente. Como a condio de Robin incorpora a de Dirichlet ( = 0) e de Neumann ( = 0)
interessante analizar como inseri-la na soluo numrica de uma EDO de segunda ordem.
Condio de Robin: Consideremos a soluo numrica 1D (por DF) da EDO de Poisson
(k) = f
onde a condio mista ocorre em x = 0 e a condio de Dirichlet (L) =
L
imposta em x = L.
A equao diferencial acima assume a forma discretizada (com k = cte)

i1
2
i
+
i+1
=
x
2
k
f
i
, para i = 1, 2, ..., n 1. (6.11)
onde adotou-se a discretizao espacial na forma x
i
= (i1)x. Usando a aproximao numrica
(centrada) na derivada primeira da condio de contorno mista temos

i+1

i1
2x
+
i
= , em i = 1 vm

0
= 2x

+ 2x

1
+
2
(6.12)
58 CAPTULO 6. SOLUO DE EQUAES DIFERENCIAIS ORDINRIAS
que representa o valor de obtido em um ponto ctcio (fora do modelo) x
0
= x. Substituindo

0
na eq. (6.11) com i = 1 vm
i = 1
0
2
1
+
2
=
x
2
k
f
1
,
2x

+ 2x

1
+
2
2
1
+
2
=
x
2
k
f
1
,
2
_
1 x

1
+ 2
2
=
x
2
k
f
1
+ 2x

. (6.13)
Assim o sistema de equaes lineares capaz de resolver numricamente a equao de Poisson com
fonte e condies de Robin (x = 0) e Dirichlet (x = L)
_

_
2(1 x

) 2 0 . . . . 0
1 2 1 0 . . . 0
0 1 2 1 0 . . .
. 0 . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . 2 1
0 0 . . . 0 1 2
_

_
_

3
.
.
.
.

n1
_

_
=
_

_
x
2
k
f
1
+ +2x

x
2
k
f
2
x
2
k
f
3
.
.
.
.
x
2
k
f
n1

L
_

_
(6.14)
onde consideramos os parmetros k, , , e
L
constantes. Comparando o ltimo resultado
com o sistema de equaes (6.7) conclumos: ao introduzir a condio de contorno mista o
sistema passa a ter ordem n 1 e as mudanas ocorrem tanto na matriz quanto no vetor de
termos independentes.
O sistema de equaes lineares em que a condio de Neumann ocorre em x = 0 deve ser deduzido
de forma similar ao descrito para condio mista. Tentar usar o artifcio = 0 na equao (6.14)
produzir erro: diviso por zero!
Exerccio: (a) aplique diferenas nitas equao de Poisson no domnio x[0, 1] e obtenha o sistema
de equaes lineares como mostrado em 6.7 e 6.14 pertinente as seguintes condies de contorno
(x) = a, em x = 0
k

x
= b, em x = 1
(b) dado o termo fonte f(x) = x derive a soluo analtica para este problema, ou seja, integre
duas vezes a equao d
2
/dx
2
= x/k e use as condies de contorno para deduzir as constantes
de integrao.
(c) construa um script para ambiente Matlab/Octave que resolva o sistema de equaes ob-
tido no item (a); programe tambm a soluo analtica para comparao atravs da instruo
plot(x,phi,b-, x,phi_a, r.) . Sugeto: use k = 0, 5; b = 0, 1 ; a = 2 e L = 1.
6.3 Oscilaes Simples, Amortecidas e Foradas
Alguns sistemas fsicos de movimento peridico estudados na graduao constituem o que denomina-
se de MHS - Movimento Harmnico Simples: Massa-Mola, Pndulo Simples, Pndulo Fsico, Circuito
LC. Outros sistemas oscilantes podem conter em sua descrio fsica-matemtica os termos dissipativos
(atrito, resistncia do ar) bem como o termo fonte.
Nesta seo veremos como problemas oscilantes com e sem amortecimento, com e sem fontes usando
como modelo o Oscilador Massa-Mola.
6.3. OSCILAES SIMPLES, AMORTECIDAS E FORADAS 59
6.3.1 Oscilador Harmnico Simples
Este o oscilador mais fundamental (Mecnica Clssica) que se trata na graduao do curso de Fsica.
composto de uma mola de constante elstica k, com uma das extremidades xa na parede e a
outra em um corpo ideal de massa m apoiado em uma mesa sem atrito. Dentro do limite elstico da
mola Hook props que a fora exercida pela mola na massa proporcional a deformao da mesma.
Designando a deformao por x e usando a 2 Lei de Newton obtemos
ma = kx,
d
2
x
dt
2
=
k
m
x,
d
2
x
dt
2
+w
2
0
x = 0. (6.15)
Esta ltima equao conhecida por Equao Diferencial do MHS sendo w
0
=
_
k/m a freqncia
angular (natural) do movimento peridico da massa. Relembrando a relao do perodo do movimento
com a freqncia angular obtemos
T =
2
w
0
o que nos permite calcular o tempo de uma oscilao do sistema cuja soluo geral
x(t) = Acos(w
0
t +) (6.16)
onde A a amplitude do movimento e a constante de fase - fase inicial do movimento.
Nosso intuito usar o Mtodo de Diferenas Finitas para obter solues numricas da amplitude
(deformao) em funo do tempo. Assim, substituindo a derivada segunda por sua aproximao
(centrada, cap. 2) obtemos
x
j+1
2x
j
+x
j1
t
2
+w
2
0
x
j
= 0
x
j+1
= 2x
j
t
2
w
2
0
x
j
x
j1
x
j+1
=
_
2 t
2
w
2
0
_
x
j
x
j1
(6.17)
sendo esta uma formulao explcita do problema com o sobrescrito j associado ao tempo. Podemos
observar na equao que para obtermos a soluo no tempo j + 1 necessitamos do conhecimento das
deformaes em dois tempos anteriores, j e j 1.
Conhecendo-se o perodo do movimento, ou equivalentemente a const. elstica e a massa do corpo nos
deparamos com um problema em que se faz necessrio tambm o conhecimento a posio inicial x(0)
e a velocidade inicial v(0). A equao apresentada para x
j+1
s pode ser aplicada diretamente para o
caso em que x(0) = A e v(0) = 0 pois assumindo causalidade fazemos x
0
= x
1
= A na tentativa de
se obter x
1
. Vejamos o procedimento um pouco mais genrico:
. conhecemos x(0), v(0) e w
0
e desejamos x(t > 0). O problema est em encontrar quem so A e no
caso analtico porm no caso numrico no h sentido j que no esto presentes na expresso
de x
j+1
. Como v = dx/dt usamos a aproximao numrica para escrever
v(0) =
x
j+1
x
j1
2t
= x
j1
= x
j+1
2v(0)t
e, substituindo na expresso de x
j+1
temos
x
j+1
=
_
2 t
2
w
2
0
_
x
j
x
j+1
+ 2v(0)t
x
j+1
=
1
2
__
2 t
2
w
2
0
_
x
j
+ 2v(0)t

60 CAPTULO 6. SOLUO DE EQUAES DIFERENCIAIS ORDINRIAS


e que vlida apenas na primeira iterao j = 0 fornecendo ento a igualdade
x
1
=
1
2
__
2 t
2
w
2
0
_
x(0) + 2v(0)t

(6.18)
pois x
0
= x(0). Para as prximas iteraes j = 2, 3, ... a equao a ser usada a que foi deduzida
anteriormente
x
j+1
=
_
2 t
2
w
2
0
_
x
j
x
j1
.
A seguir encontra-se um script em Matlab que fornece os primeiros passos na tentativa de se obter
um grco da soluo e o erro entre a soluo analtica e numrica.
clear;
tmax=input( Entre com Tempo maximo: ); % tempo desejado da soluo
% discretizao no tempo
dt=input( Entre com discretizao do tempo (dt): );
% numero de iteraes no tempo
nt=Tmax/dt-1;
x0=input( Entre com posio em t=0s: ); % posio inicial
v0=input( Entre com velocidade em t=0s: ); % velocidade inicial
w =input( Entre com freq. angular (k/m)^0.5: ); % freq. angular
x(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; % lao no tempo das solues
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 inicial
A = x0/cos(phi); % amplitude
xa = A*cos(w*t+phi); % sol. analitica
% grfico comparando sol. anal. e sol. numrica
plot(t,x,b,t,xa,r.); grid; xlabel(t (s)); ylabel(x(t) (m));
er=100*(x-xa)./max(xa);
pause;
% grfico do erro entre sol. anal. e sol. numrica
plot(t,err); grid; xlabel(t (s)); ylabel(erro rel %);
6.3.2 Oscilador Harmnico Amortecido
Os osciladores reais esto sujeitos a foras dissipativas responsveis pela diminuio da energia mecnica
do sistema e por conseguinte da amplitude do movimento. comum usarmos para as foras de atrito
uma dependncia com a velocidade da mesma de modo que a equao diferencial que rege o sistema
ca escrita na forma
ma = kx bv,
m
d
2
x
dt
2
= kx b
dx
dt
,
d
2
x
dt
2
+
b
m
dx
dt
+w
2
0
x = 0 (6.19)
onde b a constante de amortecimento. A soluo analtica deste problema para pequenos amorteci-
mentos (w
0
> b/2m) conhecida e possui a forma
x(t) = Aexp(
b
2m
t) cos(wt +) (6.20)
6.3. OSCILAES SIMPLES, AMORTECIDAS E FORADAS 61
onde w =
_
w
2
0
(b/2m)
2
a freqncia das oscilaes amortecidas e w
2
0
= k/m o quadrado da
freqncia natural das oscilaes do sistema. Supondo que nos sejam informados os valores de x
0
e v
0
desejamos calcular a posio da massa em funo do tempo usando Diferenas Finitas.
Procedemos como na seo anterior e usamos a representao centrada para a derivada primeira no
tempo de modo que
x
j+1
2x
j
+x
j1
t
2
+
b
m
x
j+1
x
j1
2t
+w
2
0
x
j
= 0,
x
j+1
2x
j
+x
j1
+
bt
2m
_
x
j+1
x
j1
_
+ t
2
w
2
0
x
j
= 0
_
1 +
bt
2m
_
x
j+1

_
2 t
2
w
2
0
_
x
j
+
_
1
bt
2m
_
x
j1
= 0
x
j+1
=
1
_
1 +
bt
2m
_
_
_
2 t
2
w
2
0
_
x
j

_
1
bt
2m
_
x
j1
_
(6.21)
onde podemos observar que para obtermos a soluo em t = (j + 1)t precisamos conhecer os valores
das posies da massa nos tempos j e j 1 de modo anlogo ao da seo precedente.
6.3.3 Oscilaes Foradas
Alguns sistemas fsicos oscilam sujeitos a foras externas e um exemplo simples o circuito ressonante
RLC com uma fonte alternada. O circuito pode entrar em ressonncia (mxima amplitude de corrente)
quando a freqncia da fonte se aproximar da freqncia natural das oscilaes do sistema.
Tomando por base o sistema com amortecimento e admitindo que uma fora externa co-senoidal seja
aplicada ao mesmo temos
d
2
x
dt
2
+
b
m
dx
dt
+w
2
0
x =
F
0
m
cos(w
f
t) (6.22)
onde F
0
a amplitude da fora e w
f
a freqncia angular da fonte. Como viu-se em disciplina anterior,
a soluo analtica desta equao diferencial obtida pela soma da soluo da homognea com uma
soluo particular. Suprimindo os detalhes de tal deduo a soluo analtica da equao diferencial
dos sistemas forados-amortecidos
x(t) = Aexp(
b
2m
t) cos(wt +) +
F
0
G
sin(w
f
t ). (6.23)
O primeiro termo da soma direita da igualdade a soluo homognea e o segundo termo a solu-
o particular. Como o primeiro termo decai exponencialmente comum usarmos apenas a soluo
permanente. Logo a equao horria da posio da massa torna-se
x(t) =
F
0
G
sin(w
f
t ) (6.24)
onde
G =
_
m
2
(w
2
f
w
2
o
)
2
+b
2
w
2
f
= cos
1
(bw
f
/G).
Do ponto de vista numrico a diferena deste problema para o da seo anterior o termo direita
da igualdade ( termo fonte) que depende do tempo. Substituindo as aproximaes numricas das
derivadas e tambm t = jt no termo fonte temos
x
j+1
2x
j
+x
j1
t
2
+
b
m
x
j+1
x
j1
2t
+w
2
0
x
j
=
F
0
m
cos(w
f
jt) = f
j
62 CAPTULO 6. SOLUO DE EQUAES DIFERENCIAIS ORDINRIAS
que aps manipulao algbrica resulta em
x
j+1
2x
j
+x
j1
+
bt
2m
_
x
j+1
x
j1
_
+ t
2
w
2
0
x
j
= t
2
f
j
ou
x
j+1
=
1
_
1 +
bt
2m
_
_
t
2
f
j
+
_
2 t
2
w
2
0
_
x
j

_
1
bt
2m
_
x
j1
_
(6.25)
onde f
j
=
F
0
m
cos(w
f
jt).
6.4 Algoritmo Verlet (Velocity-Verlet)
O mtodo descrito nesta seo muito utilizado na descrio numrica de sistemas fsicos em que a
fora resultante depende da posio ou explcitamente do tempo. O sistema massa-mola, o Pndulo
Simples, o Pndulo Fsico, o de Toro e o Circuito LC so clssicos exemplos de tais sistemas.
Consideremos uma partcula de massa m sujeita a uma fora resultante F. A segunda Lei de Newton
acerta que
d
2
x
dt
2
=
F
m
= a
onde a = a(x(t), v(t), t) a acelerao resultante. Assim, a partir do conhecimento da acelerao
desejamos obter os valores numricos da posio e da velocidade. Usando diferenas centradas (vide
Cap. 3) reescrever a ltima equao na forma
x(t + t) 2x(t) +x(t t)
t
2
=
F(t)
m
= a(t)
ou ainda
x(t + t) = 2x(t) x(t t) +a(t)t
2
. (6.26)
Na equao (6.26) necessrio o conhecimento das posies nos instantes t e t t bem como da
acelerao em t = t. Como ilustrao para o sistema massa-mola (OHS) a acelerao funo da
posio segundo
a(t) =
F(t)
m
=
k
m
x(t) = w
2
x(t)
expresso esta a ser substituida na eq. (6.26).
Para descrever completamente o problema faz-se necessrio o conhecimento da velocidade v(t). Como
visto no captulo 3 existem trs 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)
2t
, (centrada)
sendo que as duas primeiras equaes fornecem a velocidade com erro da ordem de t enquanto a
terceira estima as velocidades com erro da ordem de t
2
.
Exerccio: faa uma expanso em srie de Taylor de x(t +t) e x(t t) at o quarto termo. Some
os resultados e obtenha a equao (6.26). (Obs.: a preciso no clculo de x(t) da orem de t
4
pois os termos de quarta ordem em t foram desprezados na deduo deste resultado).
6.4. ALGORITMO VERLET (VELOCITY-VERLET) 63
Uma variao do mtodo anterior, denominado de velocity-Verlet, faz uso da expanso em srie de
Taylor de x(t + t) mais dois passos na estimativa de v(t + t) a saber
x(t + t) = x(t) +v(t)t +
1
2
a(t)t
2
,
v(t +
t
2
) = v(t) +
1
2
a(t)t, (6.27)
v(t + t) = v(t +
t
2
) +
1
2
a(t + t)t.
As vantagens do algortmo velocity-Verlet em relao a verso bsica so: clculo de posio e veloci-
dade no mesmo instante (digo, t + t) e a necessidade do conhecimento de v e x apenas no instante
anterior, t.
Em problemas bi e tridimensionais as equaes acima assumem a forma vetorial a saber

r (t + t) =

r (t) +

v (t)t +
1
2

a (t)t
2
,

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 numricamente, faz-se necessrio escrever trs equaes (como em (6.27))
para cada uma das componentes x, y e z bem como para v
x
, v
y
e v
z
.
Exemplo: consideremos uma partcula de massa m = 2kg inicialmente em repouso uma distncia
de 15m do solo. A nica fora que atua na partcula a fora peso. O script abaixo, baseado
no mtodo velocity-Verlet, usado para estimar a posio e velocidade da partcula em tempos
posteriores.
% queda_livre_vv.m
%
clear;
g =-9.8; % acel. gravitacional
m = 2.0; % massa
dt= 0.1; % incremento no tempo
t(1) = 0 ; % tempo inicial
y(1) = 15; % posio inicial
v(1) = 0 ; % velocidade inicial
a(1) = g ; % acelerao
%
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+dt
vtemp = 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;
% -----------------
% soluo analitica
ya = 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 CAPTULO 6. SOLUO DE EQUAES DIFERENCIAIS ORDINRIAS
xlabel(tempo (s)); ylabel(posiao (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(aceleraao (m/s^2)); title(Queda livre);
% ---------------
% calculo do erro
er_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 ento abandonado.
Desejamos os valores de x, v e a no intervalo de um perodo.
As equaes horrias deste movimento so dadas por
x(t) = A cos(wt)
v(t) = Awsen(wt)
a(t) =
k
m
x(t) = Aw
2
cos(wt)
O script abaixo usa velocity-Verlet para obter numricamente 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;
% soluo analitica
xa = x(1)*cos(w*t);
va =-x(1)*w*sin(wt);
aa = -k*xa/m;
subplot(2,2,1);
6.5. SISTEMAS DE EQUAES 65
plot(t,y,bo,t,xa,r);
xlabel(tempo (s)); ylabel(posiao (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(aceleraao (m/s^2)); title(Massa-Mola);
% calculo do erro
er_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 Equaes
Alguns problemas fsicos (ex. sistemas acoplados) se apresentam como um sistema de equaes onde
desejamos encontrar simultneamente um conjunto de solues. Consideremos um sistema composto
de duas massas ligadas por trs molas como na gura.
Figura 6.1: Sistema de duas massas acopladas onde x
10
e x
20
so as posies de equilbrio e u
1
e u
2
so os deslocamentos das massas a partir das posies de equilbrio.
No sistema em questo denimos as posies instantneas dass massas por x
1
= x
10
+u
1
e x
2
= x
20
+u
2
.
As foras elsticas que atuam nos corpos so equacionadas a saber
F
12
F
11
= k(u
2
u
1
) k
1
u
1
bv
1
F
22
F
12
= k
2
u
2
k(u
2
u
1
) bv
2
que pode ser reescrita na forma
m
1
d
2
u
1
dt
2
+ (k
1
+k)u
1
ku
2
+bv
1
= 0 (6.29)
m
2
d
2
u
2
dt
2
ku
1
+ (k
2
+k)u
2
+bv
2
= 0 (6.30)
66 CAPTULO 6. SOLUO DE EQUAES DIFERENCIAIS ORDINRIAS
ou seja, um sistema com dois graus de liberdade cujas solues so u
1
(t) e u
2
(t). Substituindo as
derivadas segundas por suas aproximaes centradas obtemos
m
1
v
n+1
1
v
n
1
t
+ (k
1
+k)u
n
1
ku
n
2
+bv
n
1
= 0
m
2
v
n+1
2
v
n
2
t
ku
n
1
+ (k
2
+k)u
n
2
+bv
n
2
= 0
ou
v
n+1
1
= (1
b
m
1
t)v
n
1
+
t
m
1
[(k
1
+k)u
n
1
+ku
n
2
]
v
n+1
2
= (1
b
m
2
t)v
n
2
+
t
m
2
[ku
n
1
(k
2
+k)u
n
2
]
e que na forma matricial ca expresso a saber
_
v
1
v
2
_
n+1
=
_
1
b
m
1
t 0
0 1
b
m
2
t
_
_
v
1
v
2
_
n
+ t
_

k
1
+k
m
1
k
m
1
k
m
2

k
2
+k
m
2
_
_
u
1
u
2
_
n
(6.31)
de modo que podemos resolver o sistema acima iterativamente para as velocidades v
1
e v
2
no tempo
t = (n + 1)t a partir dos valores conhecidos de v
1
, v
2
, u
1
e u
2
no tempo anterior nt.
Neste ponto obtivemos as velocidades em funo do tempo e com estes valores podemos realizzar
numericamente a integral das velocidades para obtermos as posies u
1
e u
2
. Para exemplicar o
procedimento usemos a expresso backward para substituir as velocidades em (n + 1)t, ou seja
v
1
=
du
1
dt

u
n+1
1
u
n
1
t
,
v
2
=
du
2
dt

u
n+1
2
u
n
2
t
.
Aps manipulaes algbricas temos
u
n+1
1
= u
n
1
+v
n+1
1
t
u
n+1
2
= u
n
2
+v
n+1
2
t
que na forma matricial resulta em
_
u
1
u
2
_
n+1
=
_
u
1
u
2
_
n
+
_
v
1
v
2
_
n+1
t. (6.32)
O procedimento acima descrito ilustra perfeitamente uma das vrias metodologias numricas para se
obter as solues do sistema de equaes diferenciais ordinrias.
Exerccio: implemente um script Sist_Acopl.m na linguagem Matlab. Considere b = 0, m
1
= m
2
=
0, 5kg, k
1
= k
2
= 1N/m, k = 0, 2N/m. Considere um tempo mximo de 40s com t = 0, 2s e
as seguintes condies iniciais:
a) u
1
(0) = 0, 5m e u
2
(0) = v
1
(0) = v
2
(0) = 0;
b) u
1
(0) = u
2
(0) = 0m e v
1
(0) = 0, 25m/s com v
2
(0) = 0m/s;
As solues analticas de u
1
e u
2
(Alonso e Finn,1981, p.365; Butkov, 1988, p.408) considerando
m
1
= m
2
= m sem atrito (b = 0) so
u
1a
(t) = C
1
cos(w
1
t) +C
2
sin(w
1
t) +C
3
cos(w
2
t) +C
4
sin(w
2
t)
u
2a
(t) = C
1
cos(w
1
t) +C
2
sin(w
1
t) C
3
cos(w
2
t) C
4
sin(w
2
t)
6.6. MTODO DE RUNGE-KUTTA 4 ORDEM 67
com w
1
=
_
k
1
/m
1
e w
2
=
_
(k
1
+ 2k)/m
1
onde as constantes so calculadas de acordo com as
condies iniciais, i.e.
C
1
=
u
1
(0) +u
2
(0)
2
C
3
=
v
1
(0) +v
2
(0)
2w
1
,
C
2
=
u
1
(0) u
2
(0)
2
C
4
=
v
1
(0) v
2
(0)
2w
1
.
Use o comando plot (ex. plot(t, u1, b-, t, u1a, r.) ) para comparar as solues numricas e
analticas de u
1
, u
2
, v
1
e v
2
.
6.6 Mtodo de Runge-Kutta 4 Ordem
Em problemas em que a fora depende da velocidade comum o emprego do Mtodo de Runge-Kutta
para obteno da soluo numrica de uma EDO ou de um sistema de EDOs. O mtodo mais usado
o de quarta ordem e sua aplicao segue os passos:
1. K
1
= f(t
n
, x
n
)
2. K
2
= f(t
n
+ t/2 , x
n
+ t K
1
/2)
3. K
3
= f(t
n
+ t/2 , x
n
+ t K
2
/2)
4. K
4
= f(t
n
+ t , x
n
+ t K
3
)
5. x
n+1
= x
n
+
t
6
(K
1
+ 2K
2
+ 2K
3
+K
4
)
onde f(t, x) a taxa de variao da soluo, i.e., dx/dt = f(t, x).
Exemplo: como aplicao simples do mtodo consideremos o oscilador harmnico amortecido
composto de uma mola com constante elstica k e de uma massa m sujeita uma fora de atrito
proporcional a velocidade bv. A 2 Lei de Newton fornece
m
d
2
x
dt
2
= b
dx
dt
kx, (6.33)
que pode ser reescrita na forma desejada para aplicao numrica
dx
dt
= v,
dv
dt
=
b
m
v
k
m
x.
Denimos ento f
x
(t, x, v) = v e f
v
(t, x, v) = bv/mkx/m de modo que
K
x1
= f
x
(v
j
) K
v1
= f
v
(x
j
, v
j
)
K
x2
= f
x
(v
j
+ t K
x1
/2) K
v2
= f
v
(x
j
+ t K
x1
/2, v
j
+ t K
v1
/2)
K
x3
= f
x
(v
j
+ t K
x2
/2) K
v3
= f
v
(x
j
+ t K
x2
/2, v
j
+ t K
v2
/2)
K
x4
= f
x
(v
j
+ t K
x3
) K
v4
= f
v
(x
j
+ t K
x3
, v
j
+ t K
v3
)
fornecendo assim as prximas estimativas da posiao e da velocidade por
x
j+1
= x
j
+
t
6
(K
x1
+ 2K
x2
+ 2K
x3
+K
x4
), (6.34)
v
j+1
= v
j
+
t
6
(K
v1
+ 2K
v2
+ 2K
v3
+K
v4
). (6.35)
68 CAPTULO 6. SOLUO DE EQUAES DIFERENCIAIS ORDINRIAS
Exerccio: implemente o mtodo acima em um script MHA.m na linguagem do Matlab usando
k = 2N/m, m = 0, 5kg, b = 0, 2kg/s para as condies iniciais: x(0) = 0, 25m e v(0) = 0, 2m/s.
Use dt = 0.1s para um tempo de simulao T = 10s. Faa os grcos de x(t) e v(t) em linha
contnua (azul) superpondo as solues analticas com pontos (vermelho). A soluo analtica da
posio
x(t) = Aexp(
b
2m
t) cos(wt +) , w =

k
m

_
b
2m
_
2
onde as constantes A e so obtidas em termos das condies iniciais a saber
= arctan
_

1
w
_
v
0
x
0
+
b
2m
__
A =
_

_
x
0
cos
, se x
0
= 0

v
0
[(0.5b/m) cos +wsin ]
, se x
0
= 0
Exerccios
6.1- Obtenha analticamente a soluo da equao (6.2). Aps, implemente o algortmo ao nal da
seo 6.2.
6.2- Ao nal da seo (6.3.1) encontra-se um script para a soluo da EDO do MHS, ou seja equao
(6.15). (a) Salve-o em um arquivo mhs.m e execute-o usando os seguintes valores: t
max
= 50s,
t = 0.1s, x(0) = 0.2m, v(0) = 1m/s, w = 0.5. Remova possveis erros e verique se as
solues analtica e numrica concordam. O que voc pode deduzir ao analisar o grco de erros
relativos entre as solues. (b) Repita o procedimento trocando apenas o valor da posio inicial
para x(0) = 0m e descreva o que ocorreu. (c) Reveja as equaes horrias de x(t) e v(t) para
t = 0s. A partir delas tente obter uma forma alternativa para derivar a aplitude A em termos
da velocidade em t = 0s. Use uma estrutura de deciso if .... else ....end para o clculo de
e A. Execute o script e verique se a soluo analtica concorda com a soluo sumrica. (Obs.:
quando x(0) = 0m o valor da fase inicial = /2).
6.3- O Carbono 14 um radio istopo muito usado em dataes arqueolgicas pois sua meia-vida
de aproximadamente 5730 anos, a maior dentre seus outros istopos. Use a teoria apresentada
na seo 6.1 juntamente com o mtodo Forward Modicado para traar um grco de N(t) con-
sidereando uma a quantidade inicial de ispos radioativos igual a 1mol. Compare seus resultados
numricos com a soluo analtica.
6.4- A Lei do Resfriamento de Newton acerta que um
corpo perde calor por unidade de tempo para o meio
que o envolve de forma proporcional a diferena de
temperatura entre o corpo e o meio. Equacionando
temos
dQ
dt
= hA(T T
m
)
onde Q o calor, h o coeciente de transferncia
trmica, A a rea da superfcie que perde calor,
T a temperatura no tempo t e T
m
a temperatura
do meio que envolve o corpo.
Fig 6.3 - Esquema do exerccio 6.4.
Usando dQ = mc dT temos
dT
dt
=
hA
mc
(T T
m
) = R(T T
m
), com R =
hA
mc
6.6. MTODO DE RUNGE-KUTTA 4 ORDEM 69
onde m a massa do corpo e c seu calor especco. Considere uma garrafa cilndrica de gua que
saiu da geladeira com uma temperatura inicial T
0
= 5C e foi colocada na mesa da cozinha onde
a temperatura do ar de T
m
= 25C. O raio externo da garrafa e sua altura so 5cm e 25cm,
respectivamente. Alm disso o material da garrafa possui as mesmas propriedades da gua.
(a) use integrao para obter a expresso analtica de T(t)
(b) use a metodologia Forward Modicada para obter a soluo numrica da EDO. Para isso
considere uma massa total de 2kg, que a base da garrafa est isolada trmicamente e que o
coeciente h seja de 35 W/m
2
C.
(c) faa um grco superposto das solues analtica e numrica.
6.5- Considere um circuito RLC em srie como ilustrado na
gura ao lado. Sejam R = 10, L = 50mH e C = 100F.
O capacitor est carregado com V
c
= 10V em t = 0s,
instante em que a chave acionada. Sabemos ainda que
as ddps entre os terminais de cada elemento so dadas
por
V
R
= RI ; V
L
= L
dI
dt
; V
C
=
1
C

I dt
e, usando a lei das malhas obtemos
L
dI
dt
+RI +
1
C

I dt = 0.
Fig 6.4 - Esquema do exerccio 6.5.
Substituindo I = dq/dt, a EDO homognea anterior reescrita em termos para a carga armaze-
nada no capacitor na forma
L
d
2
q
dt
2
+R
dq
dt
+
1
C
q = 0.
Considerando R < 2
_
L/C a soluo oscilante dada por
q(t) = CV
0
exp(
R
2L
t) cos(wt +)
sendo w = [w
2
0
(R/2L)
2
]
1/2
a frequncia das oscilaes com w
0
= 1/

LC. Use o Mtodo de


Runge-Kutta de 4 ordem e:
(a) obtenha as solues numricas para q(t) e I(t)
(b) compare a soluo numrica e analtica de q(t) ; use um grco superposto com a soluo
analtica expressa por pontos e a numrica com linha contnua.
6.6 Ao substituirmos a chave no circuito RLC (Figura 6.5) por uma fonte alternada obtemos
L
dI
dt
+RI +V
C
= V
e
.
Como V
c
= q/C e I = dq/dt = C dV
C
/dt temos por substituio
LC
d
2
V
C
dt
+RC
dV
C
dt
+V
C
= V
e
,
que representa uma EDO no homognea com soluo V
C
(t). Seja a tenso de excitao do
circuito dada por V
e
(t) = V
0
sen(w
f
t) com V
0
= 10V e w
f
= 120 rad/s. Use os mesmos dados
do problema anterior para obter a soluo numrica via Mtodo de Runge-Kutta.
70 CAPTULO 6. SOLUO DE EQUAES DIFERENCIAIS ORDINRIAS
Captulo 7
Soluo de Equaes Diferenciais Parciais
7.1 Equao da Difuso 1-D (caso transiente)
Quando estudamos conduo do calor (Fsica II) vimos que a taxa de conduo do calor atravs de uma
barra de comprimento L e rea de seo reta A, sujeita as temperaturas T
1
e T
2
em suas extremidades,
era dada por
H = kA
dT
dx
kA
T
x
H = kA
T
2
T
1
L
(7.1)
com T
1
> T
2
. Esta equao expressa que a taxa de conduo H (cte) proporcional a rea da
seo reta da barra e tambm ao gradiente de temperatura entre suas extremidades. A constante de
proporcionalidade conhecida por condutibilidade (ou condutividade) trmica do material de que a
barra constituda. Este o caso da conduo em regime estacionrio, que no depende do tempo.
Por outro lado, se a barra estivesse inicialmente uma temperatura de 10C e subitamente fosse
colocada entre dois reservatrios de calor com temperaturas T
1
= 100C e T
L
= 0C, respectivamente,
o que aconteceria? Este um exemplo de conduo do calor em que a temperatura da barra se altera
com o tempo, regime transiente. A equao da conduo do calor 1-D ento expressa na forma
k

2
T
x
2
= c
T
t
(7.2)
onde a massa especca e c o calor especco do material da barra. Para simplicar denimos a
difusividade trmica do material pela razo = k/c obtendo a equao diferencial parcial de segunda
ordem em x

2
T
x
2
=
T
t
(7.3)
cuja soluo desejada T(x, t), isto , uma funo que depende da posio e do tempo. Normalmente
as equaes diferenciais que envolvem o tempo possuem o que denominamos de condies iniciais,
ou seja, para o tempo t = 0s conhecemos a distribuio espacial de temperatura da barra, isto ,
T(x, 0) = f(x). No obstante comum este tipo de problema estar sujeito uma ou mais condies
de fronteira como na seo precedente.
A seguir veremos duas variaes de tratamento numrico da equao da difuso do calor em regime
transiente.
71
72 CAPTULO 7. SOLUO DE EQUAES DIFERENCIAIS PARCIAIS
7.2 Solues Numricas da Equao da Difuso
7.2.1 Forward no tempo e centrada no espao (1-D)
Como a soluo da EDP T depende de duas variveis x e t precisamos incluir mais um ndice para
o tempo. Assim a conveno ser x = ix e t = jt, sendo x e t as discretizaes espacial e
temporal, respectivamente. Deste modo denimos as seguintes notaes
T(x, t) = T(ix, jt) T
j
i
T(x + x, t) = T((i + 1)x, jt) T
j
i+1
T(x, t + t) = T(ix, (j + 1)t) T
j+1
i
, ...
de modo a facilitar as dedues futuras. Substituindo as derivadas por suas aproximaes numricas
na equao (7.3) temos

T
j
i+1
2T
j
i
+T
j
i1
x
2
=
T
j+1
i
T
j
i
t
(7.4)
ou
T
j+1
i
= T
j
i
+
t
x
2
_
T
j
i+1
2T
j
i
+T
j
i1
_
= T
j
i1
+ (1 )T
j
i
+T
j
i+1
(7.5)
onde = t/x
2
. Esta formulao til pois conhecendo os valores da temperatura em todos
os pontos espaciais i no tempo inicial j, podemos calcular a temperatura nos pontos i porm no
tempo posterior j + 1. Se alm de valores iniciais o problema possuir condies de fronteira torna-se
mais conveniente a formulao matricial do mesmo. O processo similar ao desenvolvido na captulo
precedente: uma barra homognea com temperatura inicial conhecida xada entre dois resevatrios
trmicos com temperaturas T
1
e T
L
. Usando a equaao (7.5) escrevemos o conjunto de equaes para
diferentes valores de i a saber
i = 2 T
j+1
2
= T
j
1
+ (1 )T
j
2
+T
j
3
i = 3 T
j+1
3
= T
j
2
+ (1 )T
j
3
+T
j
4
:
i = n 1 T
j+1
n1
= T
j
n2
+ (1 )T
j
n1
+T
j
n
ou ainda na forma matricial
_

_
T
2
T
3
.
.
.
T
n1
_

_
j+1
=
_

_
(1 ) 0 0 .. 0
(1 ) 0 .. 0
0 (1 ) 0 :
: . . . . :
: . . . .
0 .. 0 0 (1 )
_

_
_

_
T
2
T
3
.
.
.
T
n1
_

_
j
+
_

_
T
1
0
.
.
0
T
L
_

_
(7.6)
ou na formulao compacta
U
j+1
= M U
j
+V (7.7)
onde T
1
e T
L
so constantes de modo que o vetor V tambm o .
7.2.2 Esquema de Crank-Nicolson (1-D)
O esquema desenvolvido nesta seo muito usado em problemas de difuso. A metodologia numrica
relativamente simples e os resultados normalmente melhores do que qualquer outra combinao de
derivadas numricas. Assim a derivada segunda substituda pela mdia das derivadas tomadas nos
tempos t e t + t enquanto a derivada no tempo a adiantada. Usando a equao (7.3) denimos a
taxa de variao da soluo por
7.3. SOLUODAEQUAODE SCHRDINGER 1-DTRANSIENTE (PACOTE GAUSSIANO)73
T
t
=

x
_

T
x
_
= f(t, T,
T
x
,

2
T
x
2
)
Aplicando a proposta de Crank-Nicolson obtemos a seguinte relao para a derivada numrica no
tempo
T
j+1
i
T
j
i
t
=
1
2
_
f(t + t, T,
T
x
,

2
T
x
2
) +f(t, T,
T
x
,

2
T
x
2
)
_
,
que aps substituio da funo f fornece

2
_
T
j+1
i+1
2T
j+1
i
+T
j+1
i1
x
2
+
T
j
i+1
2T
j
i
+T
j
i1
x
2
_
=
T
j+1
i
T
j
i
t
. (7.8)
desde que k seja constante. Usando a denio = t/x
2
e transpondo os termos no tempo t +t
para a esquerda da igualdade e os termos t para o lado direito da equao temos

2
_
T
j+1
i+1
2T
j+1
i
+T
j+1
i1
_
T
j+1
i
=

2
_
T
j
i+1
2T
j
i
+T
j
i1
_
T
j
i
,

2
T
j+1
i1
(1 +)T
j+1
i
+

2
T
j+1
i+1
=

2
T
j
i1
(1 )T
j
i


2
T
j
i+1
,
T
j+1
i1
2(1 +)T
j+1
i
+T
j+1
i+1
= T
j
i1
2(1 )T
j
i
T
j
i+1
.
Novamente no podemos usar os valores de i = 1 e i = n pois os termos T
1
e T
n+1
no esto presentes
na soluo do problema. Considerando uma temperatura xa para T
1
o primeiro termo esquerda
da equao constante logo T
j+1
1
= T
j
1
= T
1
e podemos transpor este termo para o lado direito da
igualdade pois este T
1
conhecido. Quando i = n1 o termo T
j+1
n
= T
j
n
= T
L
e o mesmo procedimento
pode ser realizado penltima equao. A igualdade reescrita na forma matricial a saber
_

_
(1 + 2) 0 .. 0
(1 + 2) . :
0 . . . 0
: . (1 + 2)
0 . . (1 + 2)
_

_
. .
M
E
_

_
T
2
T
3
:
:
T
n1
_

_
j+1
=
=
_

_
(1 2) 0 .. 0
(1 2) . :
0 . . 0
: . (1 2)
0 . . (1 2)
_

_
. .
M
D
_

_
T
2
T
3
:
:
T
n1
_

_
j

_
2T
1
0
:
0
2T
n
_

_
j
(7.9)
ou ainda, na forma compacta
M
E
U
j+1
= M
D
U
j
V
j
,
de modo que a soluo desejada, vetor

U
j+1
, possui a distribuio de temperatura no intervalo
[x, L x] pois os valores das temperaturas em x = 0 e x = L so xos e conhecidos.
7.3 Soluo da Equao de Schrdinger 1-D transiente (pacote Gaus-
siano)
A equao de Schrdinger expressa em coordenadas cartesianas 1-D dada por


2
2m

x
2
+V (x) = i

t
, ou H = i

t
, (7.10)
74 CAPTULO 7. SOLUO DE EQUAES DIFERENCIAIS PARCIAIS
onde H = (
2
/2m)
2
/x
2
+V (x) o operador Hamiltoniano. Na eq.(7.10) m a massa da partcula
sujeita a um potencial dependente apenas da posio V (x), t a coordenada tempo, (x, t) a soluo
da equao diferencial com
=
h
2
sendo h = 6, 626 10
34
J s = 4, 136 10
15
eV s a constante de Planck. No caso de uma partcula
livre V (x) = 0 e a soluo (x, t) pode ser obtida pela tcnica de separao de variveis (Butkov, dad
, pg). Outros problemas como uma partcula sujeita a ao de potenciais degrau, barreira e poo so
igualmente resolvidos usando a mesma tcnica.
Um problema interessante o de uma partcula livre cuja funo de onda em t = 0s modulada por
uma Gaussiana. Segundo Cohen et al. (ANO) o pacote de onda Gaussiano pode ser obtido em termos
de uma transformada de Fourier no espao dos momentos a saber
(x, 0) =

a
(2)
3/4

exp[
a
2
4
(k k
0
)
2
] exp(ikx) dk (7.11)
e que representa uma superposio de ondas planas com velocidade inicial v
0
= p
0
/m = k
0
/m, a
largura do pacote com o nmero de onda k
0
dado por
k
0
=

2mE

(7.12)
sendo E a energia da partcula.
A evoluo no tempo do pacote Gaussiano obtida pelo resultado da transformada
(x, t) =

a
(2)
3/4

exp[
a
2
4
(k k
0
)
2
] exp[i(kx wt)] dk
com frequncia angular w = k
2
/2m sendo esta a relao de disperso do pacote. Aps manipulaes
algbricas pode-se mostrar que a expresso para o pacote Gaussiano assume a forma
(x, t) =
_
2a
2

_
1/4
e
i
_
a
4
+
4
2
t
2
m
2
_
1/4
e
ik
0
x
exp
_

_
_
x
k
0
m
t
_
2
a
2
+
2it
m
_

_
, (7.13)
com
=
k
2
0
2m
t e
tan 2 =
2t
ma
2
.
Exemplo 7.1 - Consideremos uma partcula livre descrita por um pacote Gaussiano. No sistema de
unidades atmicas temos m = 0, 5 = 0, 5, a = = /1, 5, x
0
= 10 e consideramos um domnio
para o modelo numrico L[20, 20] com discretizao espacial de 851 pontos. Na discretizao
da coordenada tempo foram usados 1501 avaliaes entre t[0, max(L)/v
0
].
% schrodinger_1D.m
% resolve a eq. schrodinger 1D- transiente
% particula livre
% opcional: condicao periodica
clear ; 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. SOLUODAEQUAODE SCHRDINGER 1-DTRANSIENTE (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 ondas
m = 0.5; % massa = 9.1093826160e-31 kg
hb = 1.0; % cte planck = 1.0545716818e-34 J.s
%
% discretizacao espacial
L = 20.; % -L < x < L
Nx = 851; % no. ptos. = 1501
dx = 2*L/(Nx-1); % discret. espacial
x =-L:dx:L;
%
% parametros fisicos do modelo
lam= pi/1.5; % comprimento de onda
ko = 2*pi/lam; % no. onda medio <ko> = < p >/hb
E = (ko*hb)^2/2/m;
vo = ko*hb/m; % velocidade de grupo Vg = < v >
xo =-10; % posiao inicial < x >
sigo = 1.*lam;
%
% discretizacao tempo
T = L/vo; %4*abs(xo/vo); % Tmax
Nt = 1501; % no. avaliacoes = 2401
dt = T/(Nt-1); % incremento no t
t = 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=0
disp(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 CAPTULO 7. SOLUO DE EQUAES 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)); pause
plot(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 propagacao
IME=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 tempo
t_o = 0; cnt = 0; escala = 0.5*max(Uo,E);
tic
for 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. EQUAO 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 20
0
2
4
6
x 10
3

E
n
e
r
g
i
a

(
a
.
u
.
)
t = 0 u.a.


20 10 0 10 20
0
2
4
6
x 10
3

E
n
e
r
g
i
a

(
a
.
u
.
)
t = 1224 u.a.
20 10 0 10 20
0
2
4
6
x 10
3

E
n
e
r
g
i
a

(
a
.
u
.
)
t = 2448 u.a.
20 10 0 10 20
0
2
4
6
x 10
3

E
n
e
r
g
i
a

(
a
.
u
.
)
t = 3672 u.a.
20 10 0 10 20
0
2
4
6
x 10
3
x (a.u.)

E
n
e
r
g
i
a

(
a
.
u
.
)
t = 4896 u.a.
20 10 0 10 20
0
2
4
6
x 10
3
x (a.u.)

E
n
e
r
g
i
a

(
a
.
u
.
)
t = 6120 u.a.
| (x, t)|
2
U(x)
Re()
Im()
Figura 7.1: gg
7.4 Equao da Onda
Em disciplinas anteriores o estudo da propagao de ondas contemplou as ondas sonoras em tubos e
no espao sendo estas conhecidas por ondas longitudinais. O estudo das ondas transversais inicia-se
em cordas sendo aprofundado, posteriormente, na propagao das ondas eletromagnticas em meios
normalmente homogneos.
As equaes de propagao das ondas eletromagnticas em um meio de permissividade eltrica e
78 CAPTULO 7. SOLUO DE EQUAES DIFERENCIAIS PARCIAIS
permeabilidade magntica so

2

E
t
2
= v
2

2

E

2

B
t
2
= v
2

2

B,
onde v = 1/

a velocidade da onda eletromagntica no meio. Equaes de propagao de ondas


mecnicas so similares s eletromagnticas, i. e.

2
u
t
2
= v
2

2
u,
onde u representa a deformao do meio. A velocidade da em uma corda funo do mdulo da tenso
T e da densidade linear mesma (v
2
= T/); para ondas sonoras a velocidade de propagao depende
do mdulo volumtrico B e da massa especca do meio no pertubado
0
na forma v
2
= B/
0
, onde
B = V p/V denido como a razo entre a variao de presso e a respectiva variao relativa de
volume.
7.5 Equao de Laplace e Poisson 2-D (caso estacionrio)
Em estudos da difuso do calor (ou eletrosttica) podemos estar interessados na soluo estacionria
de um problema do tipo
(kT) = s,
onde T(x, y, z) o campo escalar de temperatura (ou potencial eltrico) , k a condutividade trmica
do meio (ou permissividade eltrica) e s o termo fonte. Em coordenadas cartesianas esta equao
reescrita a saber

x
_
k
T
x
_
+

y
_
k
T
y
_
+

z
_
k
T
z
_
= s(x, y, z).
As solues numricas dos problemas bidimensionais exigem um esforo computacional superior aos
problemas em uma dimenso. Para ilustrar a aquisio de tais solues consideremos o Mtodo de
Diferenas Finitas aplicado ao problema estacionrio da conduo do calor em uma placa de lados L
x
e L
y

2
T
x
2
+

2
T
y
2
=
s(x, y).
k
e usando a formulao centrada para as derivadas parciais temos
T
i+1,j
2T
i,j
+T
i1,j
x
2
+
T
i,j+1
2T
i,j
+T
i,j1
y
2
=
s(x
i
, y
j
)
k
com a seguinte denio T
i,j
= T(x
i
, y
j
) onde x
i
= (i 1)x e y
j
= (j 1)y. A equaao acima pode
ser reescrita na forma
T
i+1,j
+T
i1,j
x
2
+
T
i,j+1
+T
i,j1
y
2
2
_
1
x
2
+
1
y
2
_
T
i,j
=
s(x
i
, y
j
)
k
y
2
(T
i+1,j
+T
i1,j
) + x
2
(T
i,j+1
+T
i,j1
) 2
_
x
2
+ y
2
_
T
i,j
= x
2
y
2
s(x
i
, y
j
)
k
ou
T
i,j
=
1
2 (x
2
+ y
2
)
_
y
2
(T
i+1,j
+T
i1,j
) + x
2
(T
i,j+1
+T
i,j1
) + x
2
y
2
s(x
i
, y
j
)
k
_
o que indica ser a temperatura T
i,j
, no ponto (x
i
, y
j
), uma funo da temperatura nos pontos vizinhos
e do termo fonte. A gura (7.2) ilustra os pontos e suas respectivas temperaturas para a estimativa do
valor T
i,j
. Infelizmente este mtodo no retorna a soluo da equao diferencial com boa aproximao.
Para melhor estimar a soluo da EDP lembremos do Mtodo da Iterao Linear (Se. 2.1) de modo
que
T
n+1
i,j
= g(T
n
i+1,j
, T
n
i1,j
, T
n
i,j+1
, T
n
i,j1
, s
i, j
)
7.5. EQUAO DE LAPLACE E POISSON 2-D (CASO ESTACIONRIO) 79
Figura 7.2: dfvdv
onde os sobrescritos indicam a estimativa inicial da soluo T
n
e a nova estimativa da soluo T
n+1
.
Se considerarmos x = y = obtemos aps simplicaes
T
n+1
i,j
=
1
4
_
T
n
i+1,j
+T
n
i1,j
+T
n
i,j+1
+T
n
i,j1

+

2
4
s(x
i
, y
j
)
k
que a expresso conhecida por Mtodo de Jacobi, necessria a implimentao do Algoritmo de Jacobi.
A expresso acima permite estimar a nova temperatura nos pontos internos do domnio, i.e., para
valores de i [2, N
x
1] e j [2, N
y
1] sendo portanto ideal para problemas em que a condio
de fronteira xa e conhecida (Dirichlet). Se a condio de fronteira for a de Neumann deveremos
realizar adaptaes que incluam o uxo nas fornteiras.
Exemplo: Uma placa homognea de lados L
x
= 3a e L
y
= 2a est sujeita s seguintes condies de
fronteira (contorno)
T
x
= 0, em x = 0 e y [0, L
y
],
T
y
= 0, em y = 0 e x [0, L
x
],
T(L
x
, y) = 0,
T(x, L
y
) = T
0
cos
x
6a
,
cuja soluo analtica (Reddy, 1993, p.348)
T(x, y) = T
0
cosh
y
6a
cos
x
6a
cosh(/3)
.
O problema no possui fonte e a propriedade fsica considerada constante. O script parcial
abaixo ilustra os passos principais necessrios ao clculo do campo de temperatura pelo mtodo
de Jacobi:
% Jacobi.m
%
% resolve o problema : d2U d2U
% --- + ---- = -s(x,y)/k
80 CAPTULO 7. SOLUO DE EQUAES DIFERENCIAIS PARCIAIS
% dx2 dy2
% sujeito a condioes 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 temperatura
fonte= 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=0
while 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 homognea
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 homognea
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 homognea
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. EXERCCIOS 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;
pause
figure(3) %-----------------
mesh(mx, my, difer);
xlabel(x); ylabel(y); zlabel(T); title(Difere An-Nu);
%
max(max(abs(difer)))
7.6 Exerccios
7.1 Uma barra de ao homognea e isotrpica, com comprimento 1,2m, encontra-se uma tem-
peratura inicial de 20C. A seo transversal da barra de 20cm
2
, sua difusividade trmica
= 1, 38 10
5
m
2
/s e sua condutividade trmica K = 52, 9W/mK. A barra est isolada tr-
micamente na rea externa ao longo de seu comprimento e encaixada entre dois reservatrios
trmicos, um 100C e outro 0C no tempo t = 0s. Podemos calcular a taxa de transferncia
de calor atravs da barra, em regime estacionrio, aplicando a equao (7.1). Como o problema
transiente resolva-o numricamente usando:
a) a tcnica apresentada na subseo (7.2.1) e
b) a tcnica apresentada na subseo (7.2.2)
para estimar a variao de temperatura em L/4, L/2 e 3L/4 com o tempo, ou seja, obter um
grco ilustrando o comportamento da temperatura em funo do tempo nas posies mencio-
nadas.
Para estimar o tempo em que o regime deixa de ser transiente compare as taxas de transfe-
rncia de calor estimadas numricamete em L/4 e 3L/4. Teoricamente quando elas forem iguais
o regime ser permanente porm numericamente esta igualdade no ocorre e voc deve usar um
critrio relativo, por exemplo:
D
iferenca
=
|H(L/4) H(3L/4)|
H(L/4)
< 0, 05
ou seja quando a diferena relativa for inferior a 5% o programa termina e informa o tempo
desejado. Implemente este clculo com o intito de estimar o tempo necessrio para o sistema
alcanar o estado estacionrio
c) no item (a), e
d) no item (c).
82 CAPTULO 7. SOLUO DE EQUAES DIFERENCIAIS PARCIAIS
7.2: Considere a equao (7.3) com um termo fonte, ou seja,

2
T
x
2
+
s(x, t)
c
=
T
t
,
onde K a condutividade trmica, a massa especca, c o calor especco e = K/c a
difusividade trmica do meio (propriedades constantes). Considerando o termo fonte funo tanto
da posio como do tempo obtenha o sistema de equaes lineares pertinente a este problema
pela aplicao da metodologia proposta na seo (7.2.2).
7.3 Uma barra de tungstnio possui comprimento L = 1m, rea de seo reta A = 20 cm
2
, K =
178 W/mK, = 13, 9 kg/m
3
, c = 132 J/kgK e encontra-se inicialmente 30C. Sua rea
externa, ao longo de seu comprimento, encontra-se isolada trmicamente do meio vizinho. As
faces esquerda e direita subitamente entram em contato com reservatrios trmicos um 100C e
outro 0C. A fonte de calor gerada pela passagem de corrente eltrica atravs de vrias ddps
ao longo de seu comprimento na forma
s(x) =
1

2
2
exp(
(x x
o
)
2
2
2
),
onde = 0, 1 e x
0
= 0, 5. Obtenha a distribuio de temperatura T(x, t) nos tempos t = 60, 300
e 1000 s (faa um grco contendo estas trs curvas).
7.4 Efeito de bordas: dois planos paralelos esto separados de 10cm e encontram-se carregados com
a -V e +V sendo o potencial de um Volt . Os planos esto imersos no ar: obtenha o pontencial
eltrico pela soluo numrica da equao
_

2
V
x
2
+

2
V
y
2
_
= 0
considerando L
x
= L
y
= 1m e N
x
= N
y
= 101. Use a condio homognea de Neumann em
y = 0m para reduzir o modelo (ver gura). Aps obter o potencial use as intrues:
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 clculos so parecidos com o apresentado no script Jacobi.m
% A cada iterao do mtodo 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 eltrico use
curvas = 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 instrues
plot(x,EX(:,[1 41 51 56 61]));
xlabel(x (m)); ylabel(E_x (V/m))
para avaliar a componente x do campo eltrico em y = 0; 0,4; 0,5; 0,55 e 0,60 m.
7.6. EXERCCIOS 83
Figura 7.3: (Esquerda) modelo usado para avaliar efeito de bordas em capacitor de placas paralelas
(Direita) .
84 CAPTULO 7. SOLUO DE EQUAES DIFERENCIAIS PARCIAIS
Referncias Bibliogrcas
PRESS, H. A. (Ed.). Mathematical Methods for Physicists. 5.ed. [S.l.: s.n.], 2001. 1112p.
GUSMAN, G.; VASCONCELLLOS, A. Fluxogramas e Programao Cobol. 2.ed. [S.l.]: Livros
Tcnicos e Cientcos, RJ, 1985. 180p.
JALN, J. G. D.; RODRGUEZ, J. I.; VIDAL, J. Aprenda Matlab 7.0 como si estuviera en
primero. [S.l.]: Universidad Politcnicade, Escuela Tcnica Superior de Ingenieros Industriales,
Madrid, 2005. 128p.
JALN, J. G. D.; RODRGUEZ, J. I.; VIDAL, J. Aprenda Matlab 5.3 como si estuviera en
primero. [S.l.]: Universidad Politcnicade, Escuela Tcnica Superior de Ingenieros Industriales,
Madrid, 2001. 113p.
MEDINA, M.; CRISTINA, F. Algoritmos e Programaao - Teoria e Prtica. [S.l.]: Novatec,
2005. 384p.
PRESS, W. H.; FLANNERY, B. P.; TEUKOLSKY, S. A.; VETTERLING, W. T. Numerical Reci-
pes: the art of scientic 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.
CIENTFICOS, L. T. e (Ed.). Fsica. [S.l.: s.n.], 1983. v.1.
RINO, J. P. Fsica Computacional I. http://www.df.ufscar.br/Fortran-parteA.pdf, acessado em
02/2008.
BRASIL, M.-H. do (Ed.). Clculo Avanado. [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.6787, 2008.
WILSON, H.; TURCOTTE, L. Advanced Mathematics and Mechanics Applications Using
MATLAB. 2nd ed..ed. [S.l.]: CRC Press, 1998.
85
86 REFERNCIAS BIBLIOGRFICAS
Appendix A
Obtendo Pontos e Pesos para Quadraturas
Os mtodos de quadratura apresentados no captulo 2 necessitam dos pontos e dos pesos para a
obteno dos resultados numricos das integrais denidas ou imprprias. Generalizando, o procedi-
mento numrico de integrar uma funo resume-se a substituir a integral por uma soma nita de termos
na forma
I =

1
1
f(x) dx =

1
1
w(x)F(x) dx =
n

i=1
W(x
i
)F(x
i
),
onde F(x) = f(x)/w(x). Casos em que os limites de integrao sejam diferentes de -1 e 1 so resolvidos
com uma substituio de variveis pertinente.
A.1 Quadratura Gaussiana
Desejamos encontrar os pontos e pesos da quadratura necessrios obteno do valor exato da integral
de uma funo polinomial de grau p = 2n 1 sendo n o nmero de pontos e pesos associados. A
aproximao desejada da integral da forma

b
a
f(x)dx W
1
f(x
1
) +W
2
f(x
2
) + +W
n
f(x
n
).
Caso os intervalos de integrao sejam diferentes de [-1, 1] utilizamos uma substituio de variveis
pertinente, x = x
r
z +x
m
onde x
r
= (b a)/2 e x
m
= (b +a)/2, para reescrever a integral na forma

b
a
f(x)dx = x
r

1
1
g(z)dz = x
r
[W
1
g(z
1
) +W
2
g(z
2
) + +W
n
g(z
n
)] ,
onde g(z) = f(x
r
z + x
m
). Simplicando, consideremos o intervalo [a, b] = [1, 1] e aproximemos a
funo f(x) por um polinmio base
k
(x) = x
k
onde k = 0, 1, . . . , p. Substituindo o polinmio base
com k = 0 e intergrando temos

1
1

0
(x)dx = [1]
1
1
= 2 = w
1

0
(x
1
) +w
2

0
(x
2
) + +w
n

0
(x
n
)
ou ainda
2 = w
1
+w
2
+ +w
n
.
Os resultados para valores superiores de k so

1
1

1
(x)dx = [
x
2
2
]
1
1
= 0 = w
1
x
1
+w
2
x
2
+ +w
n
x
n

1
1

2
(x)dx = [
x
3
3
]
1
1
=
2
3
= w
1
x
2
1
+w
2
x
2
2
+ +w
n
x
2
n
.
.
.
.
.
.

1
1

p
(x)dx = [
x
p+1
p + 1
]
1
1
= w
1
x
p
1
+w
2
x
p
2
+ +w
n
x
p
n
87
88 APPENDIX A. OBTENDO PONTOS E PESOS PARA QUADRATURAS
e que podem ser reescritos na forma de um sistema de equaes no linear com ordem 2n e cujas
incgnitas so os pontos e pesos da quadratura (x
i
, w
i
com i = 1, 2, . . . , n) a saber
_

_
1 1 1 1
x
1
x
2
x
3
x
n
x
2
1
x
2
2
x
2
3
x
2
n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
x
p
1
x
p
2
x
p
3
x
p
n
_

_
_

_
w
1
w
2
w
3
.
.
.
w
n
_

_
=
_

_
2
0
2/3
.
.
.
[
x
p+1
p+1
]
1
1
_

_
.
Para resolver este sistema precisamos do conhecimento dos pontos da quadratura (x
i
) que so as razes
do polinmio de grau n = (p + 1)/2 denido segundo a relao de recorrncia
p
j+1
(x) = (x A
j
) p
j
(x) B
j
p
j1
(x)
com
p
1
(x) = 0 , p
0
(x) = 1
e coecientes A
j
e B
j
obtidos por
A
j
=

1
1
xp
2
j
(x)dx

1
1
p
2
j
(x)dx
, para j = 0, 1, 2, ...
B
j
=

1
1
p
2
j
(x)dx

1
1
p
2
j1
(x)dx
, para j = 1, 2, 3, ...
sendo B
0
uma constante qualquer. Como exemplo desejamos integrar uma funo f(x) usando uma
aproximao de trs pontos (n = 3). Usando as relaes de recorrncia obtemos
j = 0 A
0
= 0, B
0
= 0 logo p
1
(x) = x
j = 1 A
1
= 0, B
1
=
1
3
logo p
2
(x) = x
2

1
3
j = 2 A
2
= 0, B
2
=
4
15
logo p
3
(x) = x
_
x
2

3
5
_
.
As trs raizes de p
3
(x) so [x
1
, x
2
, x
3
] = [
_
3
/5, 0,
_
3
/5] [0.7746, 0, 0.7746] denominadas de
pontos da quadratura. Os respectivos pesos sero obtidos pela soluo do sistema
_
_
1 1 1

_
3
/5 0
_
3
/5
3
/5 0
3
/5
_
_
_
_
w
1
w
2
w
3
_
_
=
_
_
2
0
2
/3
_
_
,
fornecendo [w
1
, w
2
, w
3
] = [
5
/9,
8
/9,
5
/9] [0.5556, 0.8889, 0.5556]. Os valores calculados dos pontos e
pesos permitem integraes precisas com polinmios de grau menor ou igual a 2n1 = 5. Finalmente
o resultado da integral pode ser calculdo segundo a quadratura de trs pontos a saber

1
1
f(x) dx
3

i=1
W
i
f(x
i
) =
5
9
f(
_
3
/5) +
8
9
f(0) +
5
9
f(
_
3
/5).
A.2 Quadratura Gauss-Legendre
Neste caso w(x) = 1 e F(x) = f(x). A funo f(x) ser aproximada por um polinmio de Legendre
de ordem n, P
n
(x), o que fornece
I =

1
1
f(x) dx

1
1
P
N
(x) dx =
N

i=1
W(x
i
)f(x
i
),
A.2. QUADRATURA GAUSS-LEGENDRE 89
com os polinmio obtidos recursivamente pela equao
P
j+1
(z) = 2zP
j
(z) P
j1
(z)
zP
j
(z) P
j1
(z)
(j + 1)
,
onde P
0
(z) = 1. Asim que for denido o nmero de pontos n da quadratura obtemos o polinmio de
Legendre de mesma ordem e encontramos suas razes, ou seja, os pontos de avaliao da funo para,
em seguida, calcular os pesos segundo
W
j
=
2
_
1 z
2
j
_
[P

n
(z
j
)]
2
.

Você também pode gostar