Você está na página 1de 97

Métodos Matemáticos

em
Engenharia Mecânica
Notas de Aula
Versão 0.4d

Carolina Palma Naveira Cotta1


Juliana Vianna Valério2

11 de Março de 2017

1
Programa de Engenharia Mecânica (COPPE/POLI) - UFRJ
2
Departamento de Ciência da Computação (IM) - UFRJ
ii
Agradecimentos

• Aos monitores do ano de 2016, Vinícius Zacharias Martins e João Vitor


de Oliveira Silva, que contribuíram na confecção desta versão digital
das notas de aula do curso.

• Ao ex-aluno Israel de Oliveira Machado que identificou erros e deu


sugestões para melhor apresentar o conteúdo deste documento.

• Aos ex-alunos Gustavo Couto F. Araujo e Ronaldo Fonseca Júnior que


ofereceram suas cópias das notas de aula de quando foram alunos da
disciplina em 2015.

• Aos ex-alunos do ano de 2016, que serviram de cobaias para diversos


exemplos de problemas aplicados presentes neste documento.

iii
iv
Conteúdo

1 Introdução 1
1.1 Solução de um problema de engenharia . . . . . . . . . . . . . 1
1.2 Verificação e validação . . . . . . . . . . . . . . . . . . . . . . 6

2 Análise de Erros 11
2.1 Base de número e conversões . . . . . . . . . . . . . . . . . . 11
2.2 Aritmética de ponto flutuante . . . . . . . . . . . . . . . . . . 15
2.3 Erro de arredondamento e propagação de erros numéricos . . 16
2.4 Perda de significância . . . . . . . . . . . . . . . . . . . . . . 20

3 Método das Diferenças Finitas (EDO) 23


3.1 Dedução das Fórmulas de Diferenças Finitas . . . . . . . . . . 23
3.2 Aplicação em Problemas de Valor de Contorno . . . . . . . . 36
3.3 Problemas de Valor de Contorno Não-Lineares . . . . . . . . 44

4 Método das Diferenças Finitas (EDP) 49


4.1 Problemas Elípticos . . . . . . . . . . . . . . . . . . . . . . . 52
4.2 Problemas Parabólicos . . . . . . . . . . . . . . . . . . . . . . 52
4.3 Problemas Hiperbólicos . . . . . . . . . . . . . . . . . . . . . 52

5 Álgebra Linear (revisão) 53


5.1 Sistemas lineares (introdução) . . . . . . . . . . . . . . . . . . 53
5.2 Norma, Produto Interno e Ortogonalidade . . . . . . . . . . . 59
5.3 Sistemas lineares (métodos de resolução) . . . . . . . . . . . . 64
5.4 Autovalores e Autovetores . . . . . . . . . . . . . . . . . . . . 73

6 Álgebra Linear (novos conceitos) 81


6.1 Decomposição Cholesky . . . . . . . . . . . . . . . . . . . . . 81
6.2 Decomposição QR (sistemas lineares) . . . . . . . . . . . . . . 83
6.3 Método da Potência . . . . . . . . . . . . . . . . . . . . . . . 86
6.4 Algoritmo QR (autovalores) . . . . . . . . . . . . . . . . . . . 86

v
vi CONTEÚDO

6.5 Gauss-Jacobi e Gauss-Seidel . . . . . . . . . . . . . . . . . . . 86


6.6 Introdução à sistemas lineares esparsos . . . . . . . . . . . . . 86

7 Apêndice: Implementação Computacional 87


1
Introdução

1.1 Solução de um problema de engenharia

Diagrama de um processo de solução de um problema:

Sempre manter em vista o balanço de erros e incertezas quando estiver


desenvolvendo uma solução.

1
2 1. INTRODUÇÃO

Problema Real
Um sistema real, quando considerado em detalhes, é normalmente, muito
complicado e difícil de analisar. Compete, ao engenheiro, fazer simplifica-
ções sobre o sistema real, reduzindo a complexidade do problema e obtendo
um modelo possível de ser analisado com as ferramentas matemáticas dis-
poníveis.
Fica claro que o modelo como uma simplificação de um sistema real não
se comportará da mesma maneira. Dessa forma o comportamento previsto
matematicamente diferirá do comportamento real, mas ajudará no entendi-
mento do problema, e a economia de tempo e esforço no estudo analítico,
poderá tornar justificável a introdução das simplificações.

Modelo Físico
Um modelo é uma representação simplificada da realidade, ou uma
representação de um fragmento de um sistema, apresenta "apenas"uma
visão ou cenário de um fragmento do todo. Normalmente, para estudar um
determinado fenômeno complexo, criam-se vários modelos.

Modelo Matemático
Os modelos matemáticos representam os fenômenos da natureza por
meio de equações do tipo:

• Equações Algébricas (Lineares ou Não-Lineares)

• Inequações

• Equações Diferenciais Ordinárias

• Equações Integrais

• Equações Integro-Diferenciais

• Equações Diferenciais Parciais

A formulação matemática dos problemas reais foge ao escopo do presente


curso, mas essa etapa é tão importante que algumas considerações serão
feitas a seguir:

• Não é viável na prática incluir no modelo matemático todos os aspectos


presentes em um problema real (Ex: a gravidade da lua exerce força
sobre uma ponte, mas não vale a pena incluí-la em um modelo para o
projeto de uma ponte).
1.1. SOLUÇÃO DE UM PROBLEMA DE ENGENHARIA 3

• Os melhores modelos matemáticos são aqueles que incluem apenas as


características do problema real necessárias para reduzir a incerteza,
nesta fase, para um nível aceitável.

• Uma falácia comum na resolução de problemas é a crença de que a


melhora do modelo, automaticamente resultará em melhores resulta-
dos.

• O aprimoramento do modelo pode tornar o problema muito mais difí-


cil matematicamente ou numericamente e resultar em incertezas
muito maiores no processo de solução.

Métodos de resolução de modelos matemáticos


Existem diferentes maneiras de se obter a solução de um modelo mate-
mático.

Exemplo 1.1
Seja a equação:

ax2 + bx + c = 0
Um método analitico (ou método direto) para resolver esta equação
é a fatoração, tal que:

(x − x1 )(x − x2 ) = 0
x2 − x(x1 + x2 ) + x1 x2 = 0
4 1. INTRODUÇÃO

Tal que:

c
x1 x2 =
a
b
x1 + x2 = −
a
Um método numérico para resolver esta mesma equação seria apro-
ximações sucessivas (uma abordagem iterativa). Podemos reescrever a
equação como sendo:

(ax2 + c)
x=− ,
b
em forma de aproximações sucessivas poderíamos construir um algoritmo
para computar o valor de x, segundo a expressão abaixo, onde k = 1, 2, 3...
:

(a(xk )2 + c)
xk+1 = −
b
E uma primeira aproximação possível para xk=1 seria a solução da equa-
ção do primeiro grau:

2
ax
H
 H + bx + c = 0
bx + c = 0
c
x=−
a
Nos métodos numéricos faz-se aproximação do problema original por
outro de mais fácil resolução.

Métodos Numéricos
Os Métodos Numéricos correspondem a um conjunto de ferramentas ou
métodos usados para se obter a solução de problemas matemáticos de forma
aproximada. Esses métodos se aplicam a problemas que não apresentam
uma solução exata, portanto precisam ser resolvidos numericamente.
Deve-se escolher o método a ser utilizado, procurando aquele que é mais
adequado para o seu problema e que vantagens cada método oferece e que
limitações eles apresentam. Abaixo seguem alguns famosos métodos para
solução aproximada de equações diferenciais:

• Diferenças Finitas

• Elementos Finitos

• Volumes Finitos
1.1. SOLUÇÃO DE UM PROBLEMA DE ENGENHARIA 5

Métodos Analíticos/Diretos (EDP’s)


• Separação de Variáveis

• Transformada de Laplace

• Técnica da Transformada Integral Clássica (CITT)

Métodos Híbridos: Numérico-Analíticos


• Técnica da Transformada Integral Generalizada (GITT)

• Transformada de Laplace com Inversão numérica

• Métodos Espectrais

Algoritmo Computacional
A partir da formulação matemática e da escolha do método de solução
tem-se a implementação computacional de um algoritmo em uma linguagem
de programação adequada.
Dentre as várias linguagens de programação existentes, pode-se listar:

- Python, Pascal, Fortran, C, C++, Java, etc.

A implementação computacional pode ser também numérica-simbólica


através dos CAS (Computer Algebra System) que são softwares que permi-
tem computação simbólica, i.e., com símbolos literais que não tem valores
atribuídos. Estas plataformas de trabalho baseadas em técnicas de progra-
mação funcional e simbólica, misturam recursos analíticos e numéricos.
Os sistemas de álgebra computacional começaram a aparecer no início
da década de 1960 e evoluíram a partir da pesquisa para a inteligência
artificial. Nesta década dá-se início a elaboração dos primeiros software
no campo da manipulação simbólica. Entre os software desenvolvidos no
período 1961-1966 destacam-se o Formac, o Lisp e o Alpak. No período 1966-
1971 surge a segunda geração, englobando os software Macsyma, Reduce e
ScratchPad. Durante o período 1970-1980, o Reduce e o Macsyma ganham
popularidade e surge o sofwtare MuMath, antecessor do Derive. A partir
da década de 80, surgem os software Maple, Mathematica e Derive. Os
primeiros sistemas popularizados foram Reduce, Derive e Macsyma os quais
ainda são comercializados; uma versão simplificada do Macsyma chamada
Maxima está sendo mantida.
Uma outra possibilidade é utilizar pacotes computacionais como por
exemplo:

- CFX, FLUENT, COMSOL, ABAQUS, FLOTRAN, OPENFOAM, etc.


6 1. INTRODUÇÃO

Como é um software comercial, ele é uma "caixa-preta", contudo ele apre-


senta uma boa interface software-usuário, e em alguns deles o usuário tem
a possibilidade de incluir sub-rotinas computacionais escritas em linguagem
FORTRAN, e além disto, apresenta a flexibilidade da inclusão de equações
para o cálculo de certas variáveis.

1.2 Verificação e validação


A American Society of Mechanical Engineers (ASME) padronizou o vo-
cabulário associado e dá recomendações a fim de guiar os analistas na V&V
(ASME, 2006). A verificação é definida como a maneira de determinar
que um modelo computacional representa precisamente a formulação ma-
temática associada e suas respostas. Isto é, ela serve a demonstrar que a
implementação da formulação do problema matemático não contém erros.
A validação é definida como a maneira de determinar a que grau um
modelo é uma representação precisa da realidade, na perspectiva de usos do
modelo. Em outros termos, ela vai avaliar a capacidade preditiva do modelo.
Ou seja, o processo de verificação deve responder a pergunta: "O mo-
delo físico/matemático foi implementado corretamente?" enquanto que no
processo de validação deve-se responder a pergunta: "O modelo físico/ma-
temático adotado é o modelo correto?".
1.2. VERIFICAÇÃO E VALIDAÇÃO 7
8 1. INTRODUÇÃO

Verificação do código computacional

Garantir que o programa não tem erros (Contrariamente ao que pode


ser assumido, não é uma responsabilidade exclusiva de quem desenvolve o
programa, também é responsabilidade de qualquer usuario de um sistema
operacional comercial).

Verificação das soluções/cálculos

Estimativa de erro numérico:

• Erro de arrendodamento e truncamento (aritmética de ponto flu-


tuante).

• Erro iterativo (propagação de erros).

• Erro de discretização (métodos baseados em estudos de refinamento


de malha são uma das alternativas para a estimativa do erro/incerteza
de discretização).

Validação

Estimativa do erro de modelação por comparação com resultados experi-


mentais. A figura abaixo mostra uma comparação qualitativa entre resulta-
dos experimentais (símbolos) e simulação (em vermelho), onde a “qualidade”
do resultado depende dos tamanhos dos símbolos.

A figura abaixo mostra uma comparação entre resultados de simulação


e experimentais com a introdução das incertezas experimentais.
1.2. VERIFICAÇÃO E VALIDAÇÃO 9

A figura abaixo mostra uma comparação entre resultados de simulação e


experimentais com as suas respectivas incertezas numéricas e experimentais.

Recentemente a ASME propôs um método para a avaliação do erro de


modelação baseado no erro de comparação e na incerteza de validação:
• Diferença entre a solução numérica e a medição experimental, |E|, que
se denomina erro de comparação (comparison error):

|E| = |S − D|,
onde S é o resultado numérico e D é a medição experimental.
• Incerteza de validação, Uval , (validation uncertainty) obtida da
combinação das incertezas numérica, experimental e dos parâmetros
que definem o problema (condições de fronteira, número de Reynolds,...)
q
Uval = (Unum )2 + (UD )2 + (Uinput )2 ,
onde Unum é a incerteza numérica, UD é a incerteza experimen-
tal e Uinput é a incerteza dos parâmetros que definem o pro-
blema (número de Reynolds, condições de fronteira,...)
As incertezas nos parâmetros de entrada, por exemplo errar no quinto
dígito significativo de uma propriedade, pode levar a propagação de um
grande erro ao final do procedimento de cálculo. O importante é saber que
tipo de operações serão feitas com aquele valor errado no quinto dígito.
10 1. INTRODUÇÃO

Exemplo 1.2
Quando formado um engenheiro é contratado para ganhar o salário inicial
de R$ 8.453,90. Imagine agora que por algum motivo desconhecido o valor
depositado na conta do banco deste engenheiro tem um pequeno erro, está
sendo depositado R$0,90 a menos do que o combinado (R$ 8.453,00). Com
medo de perder o emprego o funcionário não reclama. Ao final de 1 ano
(13 salários) essa diferença é de R$11,70, ao final de 30 anos de trabalho
nessa mesma empresa, essa diferença é de R$370,00. Agora imagine que
essa empresa tenha 3.000 funcionarios e que essa mesma diferença de sala-
rio aconteça com todos eles, ao final destes mesmos 30 anos o dono dessa
empresa já acumulou o total de R$1.053.000,00 que ele resolveu dar esse
dinheiro como presente de casamento para o seu netinho. Agora imagine
que esse netinho é você !!! Fez ou não diferença aquele “errinho” de R$0,90?
2
Análise de Erros

Mesmo que sejam desejadas respostas “exatas” para os problemas, em


apenas alguns poucos casos consegue-se isso. Incerteza e erros podem ser in-
troduzidos em cada etapa da formulação e solução de problemas. A natureza
da incerteza na resolução de problemas é discutida na presente seção.
“Erros evitáveis” (por exemplo copiar a fórmula errada ou um bug do
programa) não serão considerados aqui, mesmo sabendo que eles são uma
verdadeira fonte de incertezas na resolução de problemas.
No presente curso iremos considerar os métodos de representação dos
números no computador e os erros introduzidos nessa representação. Ire-
mos examinar as fontes dos vários tipos de erros na computação e as suas
subsequentes propagações.

2.1 Base de número e conversões


A princípio, toda vez que escrevemos um número, deveríamos mencionar
a base numérica a qual estamos nos referindo. Obviamente, isso não se faz
necessário na prática, pois estamos sempre representando os números na
base decimal, portanto sabemos exatamente o seu significado. Por exemplo,
quando escrevemos o número 625, o que estamos dizendo que esse número
representa uma quantidade equivalente a:

625 = 6 × 100 + 2 × 10 + 5 × 1 = 6 × 102 + 2 × 101 + 5 × 100

Essa é a chamada representação posicional de números, neste caso


o numero 10 é chamado de base nessa representação. Qualquer numero é
possivel de ser expresso na forma polinomial na base 10 com coeficientes
inteiros entre 0 e 9. Podemos então representar números inteiros na base 10
na forma geral usando a seguinte notação:
N = (an an−1 ...a0 ) = an × 10n + an−1 10n−1 + ... + a0 × 100 .

11
12 2. ANÁLISE DE ERROS

Em uma máquina digital, como uma calculadora ou um computador, os


números não são representados na base decimal. Eles são representados na
base binária, ou seja, usam o número 2 como base ao invés do número 10.
Como na base decimal existem 10 algarismos diferentes (0, 1, 2 ,3, 4, 5, 6,
7, 8, 9), na base binária existem somente 2 números: 0 e 1. Portanto, a
base binária é usada porque essas máquinas utilizam-se de sinais elétricos,
sendo o 0 correspondente a ausência de sinal e o número 1 a presença do
sinal elétrico.
Inteiros não-negativos podem então ser representados na forma polino-
mial mas agora na base binária de acordo com a notação abaixo:

N = (an , an−1 , ..., ao )2


= an × 2n + an−1 × 2n−1 + · · · + a0 × 20

onde os coeficientes ak podem ser 0 ou 1.


Por exemplo:

(11)2 = 1 × 21 + 1 × 20 = 3
(1101)2 = 1 × 23 + 1 × 22 + 0 × 21 + 1 × 20 = 13

Para fazer a conversão de um número inteiro na base binária para uma


base decimal, por exemplo, pode-se seguir o algoritmo abaixo:
Escrever o número em forma polinomial, onde β é a base de representação
deste numero.

Número = p(β) =an β n + an−1 β n−1 + · · · + a1 β 1 + a0 β 0


bn = an
bn−1 = an−1 + bn × β
bn−2 = an−2 + bn−1 × β
bn−3 = an−3 + bn−2 × β
..
.
b0 = a0 + b1 × β

Por exemplo, o decimal equivalente ao numero (10000)2 usando o algo-


ritmo acima é:
2.1. BASE DE NÚMERO E CONVERSÕES 13

b4 = 1
bn−1 = an−1 + bn × β
bn−2 = an−2 + bn−1 × β
bn−3 = an−3 + bn−2 × β
..
.
b0 = a0 + b1 × β
O decimal equivalente ao numero (10000)2 usando o algoritmo acima é:

b4 = 1
b3 = 0 + 1 × 2 = 2
b2 = 0 + 2 × 2 = 4
b1 = 0 + 4 × 2 = 8
b0 = 0 + 8 × 2 = 16

ou seja, (10000)2 = (16)10


Apesar da facilidade do uso da base binaria pelos computadores esta uti-
liza um número consideravel de dígitos mesmo na representação de números
não tão grandes. Por exemplo 8 dígitos binários (10111011)2 são necessários
para representar o número (187)10 , que utiliza apenas 3 dígitos decimais.
Por essa razão alguns computadores trabalham em base octal, β = 8, ou
hexadecimal, β = 16.
Base 10 Base 2 Base 16
0 0 0
1 1 1
2 10 2
3 11 3
4 100 4
5 101 5
6 110 6
7 111 7
8 1000 8
9 1001 9
10 1010 a
11 1011 b
12 1100 c
13 1101 d
14 1110 e
15 1111 f
14 2. ANÁLISE DE ERROS

Por sua vez, conversão de um número decimal em base binária pode ser
feita escrevendo o numero em forma de um polinômio na base 10, conver-
tendo os coeficientes do polinômio e a base individualmente e seguindo o
algoritmo anteriormente apresentado:

187 = (187)1 0 = 1 × 102 + 8 × 101 + 7 × 100


= (1)2 × (1010)22 + (1000)2 × (1010)12 + (111)2 × (1010)02

Comparando o polinômio acima com o polinômio geral p(x) = an xn +


an−1 xn−1 + · · · + a1 x1 + a0 x0 , tem-se que a base é x = β = (10)10 = (1010)2
de modo que seguindo o algoritmo apresentado anteriormente tem-se:

b2 = a2 = (1)2
b1 = a1 + b2 × β = (1000)2 + (1)2 × (1010)2 = (1000)2 + (1010)2 = (10010)2
b0 = a0 + b1 × β = (111)2 + (10010)2 × (1010)2 = (111)2 + (10110100)2 = (10111011)2

tal que (187)10 = (10111011)2

Números inteiros na base decimal vão sempre ter conversão exata na


base binária. Todavia, a conversão de números fracionários pode por vezes
introduzir erro de computação devido à necessidade de arredonda-
mento ou truncamento. Por exemplo, quando convertemos o número
decimal (0.625)10 em base binária tem-se que (0.625)10 = (.101)2 .

2(0.625) = 1.25 → b1 = 1
2(0.25) = 0.5 → b2 = 0
2(0.5) = 1.0 → b3 = 1
2(0.0) = 0.0 → b4 = 0

e daí em diante, todos os bk são nulos.


Já quando convertemos o número decimal (0.1)10 na base binária, tem-se
que:
2.2. ARITMÉTICA DE PONTO FLUTUANTE 15

2(0.1) = 0.2 → b1 = 0
2(0.2) = 0.4 → b2 = 0
2(0.4) = 0.8 → b3 = 0
2(0.8) = 1.6 → b4 = 1
2(0.6) = 1.2 → b5 = 1
2(0.2) = 0.4 → b6 = 0
2(0.4) = 0.8 → b7 = 0
2(0.8) = 1.6 → b8 = 1
2(0.6) = 1.2 → b9 = 1
2(0.2) = 0.4 → b10 = 0
2(0.4) = 0.8 → b11 = 0
2(0.8) = 1.6 → b12 = 1
2(0.6) = 1.2 → b13 = 1
..
.

Tal que (0.1)10 = (.0001100110011 . . .)2 ou seja uma dízima na base


binária. Mas como o computador somente é capaz de armazenar um
número finito de bits para a mantissa, temos que arredondar ou
truncar em um certo ponto, introduzindo assim erro nesse processo de
conversão.

2.2 Aritmética de ponto flutuante


A fim de tornar a manipulação de números mais eficiente, os computa-
dores fazem a representação de um número real qualquer (inteiro ou não-
inteiro) através de ponto flutuante. Onde a posição do ponto decimal
“flutua” conforme o número a ser representado e sua posição é expressa pelo
expoente e como apresentado na representação a baixo (para um computa-
dor de 32 bits).

e
± (.d1 d2 d3 . . . dn )β β

• Sinal (1bit)

• Mantissa (23 bits)

• Expoente (8 bits)
16 2. ANÁLISE DE ERROS

onde: (.d1 d2 d3 . . . dn ) é chamado de mantissa (sempre com d1 6= 0), β


é a base numérica usada para representação e e é um expoente que
varia em um intervalo dado pelos limites da máquina utilizada. A
precisão ou o número máximo de dígitos da mantissa n é determinado pelo
comprimento da palavra do computador, mas pode ser alterado via alguns
softwares. Uma observação é que essa representação não conta com um bit
de sinal para o expoente, essa é denominada de normalizada. No caso
da base binária 23bits representam cerca de 7 a 8 dígitos decimais (23/3≈8
dígitos decimais) e os 8bits usados para o expoente representam cerca de 2
a 3 dígitos decimais (8/3 ≈ 2 dígitos decimais), totalizando os 32bits.
Nos computadores mais modernos com processadores de 64 bits, a re-
presentação de ponto flutuante de precisão dupla é possível:

e
± (.d1 d2 d3 . . . dn )β β

• Sinal (1bit)
• Mantissa (52 bits)
• Expoente (11 bits)

Agora para a mantissa podem ser reservados 52 bits (cerca de 52/3 ≈ 17


dígitos decimais) e para o expoente tem-se a reserva de 11bits (cerca de
11/3 ≈ 3 digitos decimais).

2.3 Erro de arredondamento e propagação de er-


ros numéricos
Como já mencionado, na representação e operações usando ponto flutu-
ante pode-se ter uma outra fonte de erro devido à processos de arredonda-
mento ou truncamento.
Uma vez que qualquer erro seja cometido, existe a contaminação dos
resultados subsequentes.
Essa propagação de erro através dos cálculos subsequentes é convenien-
temente estudada em termos de duas relações conceituais de condiciona-
mento e instabilidade.
2
Na simples representação da fração em ponto flutuante em uma
3
máquina com mantissa de 8 algarismos temos:

2
= (0.666666666666666 . . .) × 100
3
(
(0.66666667 . . .) × 100 → arredondamento
=
(0.66666666 . . .) × 100 → truncamento
2.3. ERRO DE ARREDONDAMENTO E PROPAGAÇÃO DE ERROS NUMÉRICOS17

Como o numero (0.1)10 não pode ser representado de forma exata pelo
computador, como vimos anteriormente, ele será truncado, introduzindo
um erro na sua representação. Uma forma interessante de constatar esse
1000
X
problema é escrevendo um pequeno programa que calcule o valor de 0.1
i=1
Você verá que esse número não é igual a 100 !
Exemplo deste cálculo em uma maquina de 64 bits usando o software
Mathematica:

(0.1)10 = (.0001100110011 . . .)2


1000
X
0.1 = 99.99999999999986
i=1

Nas operações entre números representados através de pontos flutuan-


tes também há introdução de erros devido ao arredondamento ou trun-
camento. Por exemplo vamos imaginar um computador fictício com uma
mantissa de 6 dígitos e representação na base decimal e vamos analisar o
produto entre dois números:

N1 = +(0.435692) × 100
N2 = +(0.595879) × 100 N1 × N2 = 0.25961971326800004

Como esse computador fictício trabalha com mantissa de 6 dígitos ele


tem que reduzir o número de dígitos do produto resultante ou por arredon-
damento ou truncamento.

N1 × N2 = 0.259620 → arredondamento
N1 × N2 = 0.259619 → truncamento

Esse resultado aproximado resulta da representação de um número


na forma de ponto flutuante e da inevitável limitação das máquinas de
trabalharem com uma quantidade finita de algarismos. Esse tipo de erro é
chamado de erro de arredondamento.

Erro Absoluto
Verificamos então que um número fracionário arredondado/truncado
apresentado por uma máquina é uma aproximação do valor real, já que ela
não pode mostrar infinitos algarismos. E quão próximo do valor real
está o resultado mostrado? Vamos definir a diferença entre o valor real
18 2. ANÁLISE DE ERROS

da grandeza que queremos calcular e o valor aproximado que efetivamente


calculamos como sendo o erro absoluto, ou seja:

erro absoluto = |valorReal − valorAproximado |

Quanto menor for esse erro, mais acurado será o resultado da operação.
Essa definição corresponde ao erro absoluto de um cálculo.
Por exemplo, digamos que o resultado de uma operação nos forneça o
valor 2123542.7 enquanto o valor real que deveríamos obter é 2123544.5.

valorReal = 2123544.5
valorAproximado = 2123542.7
erro absoluto = |2123544.5 − 2123542.7| = 1.8

O erro absoluto neste caso é 1.8. Comparada com o valor real, essa
diferença (o erro absoluto) é bem pequena, portanto, podemos considerar
o resultado preciso. Já em um outro caso, digamos que o resultado da
operação seja 0.234 e o resultado esperado era 0.128:

valorReal = 0.128
valorAproximado = 0.234
erro absoluto = |0.128 − 0.234| = 0.106

Desta vez o erro absoluto será igual a 0.106 , portanto menor que o
anterior, porém o resultado é bastante impreciso. Logo, se estivermos
lidando com números muito grandes, o erro pode ser grande em termos
absolutos, mas o resultado ainda ser preciso. E o caso inverso também
pode ocorrer: um erro absoluto pequeno, mas um resultado impreciso.
Essa ideia de precisão e imprecisão em uma aproximação vem ao se comparar
o erro absoluto e o seu valor real, a essa análise do erro dá se o nome de
erro relativo.

Erro Relativo
A fim de evitar esse tipo de ambiguidade, podemos criar uma nova definição.
Podemos definir o erro relativo, que corresponde ao quociente entre o erro
absoluto e o valor real da grandeza a ser calculada, ou seja:

erro absoluto |valorReal − valorAproximado |


erro relativo = =
|valorReal | |valorReal |
2.3. ERRO DE ARREDONDAMENTO E PROPAGAÇÃO DE ERROS NUMÉRICOS19

O erro relativo é então uma medida da precisão, já que leva em conside-


ração a magnitude do número que está sendo aproximado. O cálculo
do erro relativo para os exemplos anteriormente apresentados, são:

valorReal = 2123544.5 valorReal = 0.128


valorAproximado = 2123542.7 valorAproximado = 0.234
erro absoluto = |2123544.5 − 2123542.7| = 1.8 erro absoluto = |0.128 − 0.234| = 0.106
1.8 0.106
erro relativo = = 0.0000008 = 0.00008% erro relativo = = 0.83 = 83%
|2123544.5| |0.128|

Nota-se erro relativo evidencia que o erro cometido no segundo exemplo é


bem mais considerável.
Por exemplo, vamos supor que número 0.32632 é o valor aproximado do
número 0.32854, podemos então dizer que estes números são coincidentes
em 2 dígitos e que a acurácia desta aproximação é de 0.222 × 10−2 e a
precisão é de 0.68 × 10−2 :

valorReal = 0.32854
valorAproximado = 0.32632
erro absoluto = |0.32854 − 0.32632| = 0.00222 = 0.222 × 10−2 → acurácia
0.00222
erro relativo = = 0.0068031 = 0.68 × 10−2 → precisão
|0.32854|

Um outro caso: se temos o número N1 = 99753.93875496 e uma aproxi-


mação N1∗ = 99753.9387567:

erro absoluto = |99753.93875496 − 99753.9387567| = 1.73998 × 10−6 < 10−5


0.00000173998
erro relativo = = 1.744272 × 10−11 < 10−5
|99753.93875496|

• Como o erro absoluto é menor que 10−5 , a aproximação está acu-


rada até o quinto dígito decimal.

• Como o erro relativo é menor que 10−5 , a aproximação está precisa


até o quinto dígito significativo.

Quando os números são muito maiores do que um, o controle da acurá-


cia é mais restritivo, quando os números são muito menores do que um, o
controle da precisão é mais restritivo.
20 2. ANÁLISE DE ERROS

2.4 Perda de significância


Subtração de números muito próximos é uma das operações que gera
perda de dígitos significativos. A adição de números de magnitude muito
diferentes também gera erros de arredondamento.
Imagine a seguinte situação: Os números N1 = 0.54617 e N2 = 0.54601
são representados em um computador que trabalha na aritimética de 5 dí-
gitos. Então tem-se:

N1 = (0.54617) × 100 → 5 dígitos significativos


N2 = (0.54601) × 100 → 5 dígitos significativos

A subtração destes dois números (que são próximos) (3 dígitos coin-


cidentes), ocorre a perda de 3 dígitos significativos:

N 1 − N 2 = 0.00016 = (0.16000) × 10−3 → 2 “dígitos significativos”

Agora imagine se os mesmos números N1 = 0.54617 e N2 = 0.54601 ti-


verem que ser representados em um computador que trabalhe na aritimética
de 4 dígitos, no arredondamento de N1 e N2 temos :

N1∗ = +(0.5462) × 100


N2∗ = +(0.5460) × 100

Logo, na operação de subtração destes valores aproximados tem-se a


perda de significância e o número resultante desta operação apresenta ape-
nas 1 dígito significativo:

N1∗ − N2∗ = 0.0002 = (0.2000) × 10−3 → 1 dígito “significativos”

|0.00016 − 0.0002|
E o erro relativo é de erro relativo = = 0.25 = 25%
|0.00016|
Subtração de números muito proximos é uma das operações que gera
perda de dígitos significativos e, quando possível, devemos evitar esse tipo
de conta. Uma situação onde não conseguimos evitar esse tipo de problema
é na aproximação de uma derivada por uma diferença finita. Isso será
mais comentado no próximo capítulo.
A perda de dígitos significativos pode ser contornada quando esta
pode ser prevista. Uma forma é, quando possível, calcular N1 e N2 com
mais precisão de modo a minimizar essa perda. Uma outra possibilidade
é, quando possível, mudar a ordem das operações ou usar uma fórmula
alternativa para o cálculo. Veja os efeitos disso na seguinte situação:
2.4. PERDA DE SIGNIFICÂNCIA 21

Soma = 0.2036838201764277 + 0.15872451890846154 + 0.09324422219739889 + · · ·


+ 1.450839905093032 × 10−6 − 9.647361567403028 × 10−8 − 1.046607133852337 × 10−7 + · · ·
− 1.299328168824221 × 10−16 − 1.047522064336352 × 10−17 − 4.660518935564366 × 10−19 + · · ·
+ 6.006308713959778 × 10−207 + 3.140759230778392 × 10−211 + 6.87898436370186 × 10−216

O cálculo dessa expressão será realizado de 3 formas:


• Soma de todos os números na sequência em que eles aparecem no
somatório, denotada por Soma1
• Soma de todos os números negativos e todos os números positivos e
depois fazer uma única subtração, denotada por Soma2 .
• Começar a soma, tanto dos números positivos quanto dos negativos,
do menor para o maior, e ao final fazer uma única subtração, denotada
por Soma3 .
As somas obtidas foram:
Soma1 = 0.48213557943718355
Soma2 = 0.4821355794371835
Soma3 = 0.48213557943718344
Sabendo que a soma exata é 0.482135579437183443216075759801, é pos-
sível identificar a estratégia que menos esta sujeita a erros olhando os erros
relativos:

erro relativo1 = 2.302719550216902 × 10−16


erro relativo2 = 1.151359775108451 × 10−16
erro relativo3 = 0

Há mais uma forma de contornar erros de arredondamento, que é resol-


ver expressões matemáticas equivalentes a "problemática":
1 − cos(x)
Seja f (x) = . A medida que x se aproxima de 1, ocorre a
sen(x)
indesejada subtração entre números muito próximos. Sabemos que:

cos(2x) = cos2 (x) − sen2 (x)


cos(2x) = cos2 (x) + sen2 (x) − sen2 (x) − sen2 (x)
cos(2x) = 1 − 2sen2 (x)
2sen2 (x) = 1 − cos(2x)
22 2. ANÁLISE DE ERROS

1 − cos(x) 2sen2 ( x2 )
Portanto, f (x) = = . Escrita nessa forma, o pro-
sen(x) sen(x)
blema não ocorre mais.
3
Método das Diferenças Finitas
(EDO)

Métodos numéricos são úteis na abordagem de problemas envolvendo


não-linearidades, geometrias complexas, condições de contorno complicadas
ou sistemas acoplados de equações diferenciais. Um esquema numérico bas-
tante usado na solução de equações diferenciais é o Método de Diferenças
Finitas. A ideia do método é realizar uma discretização do domínio em
questão, de modo que o problema de resolver uma equação diferencial se
torne em um de resolver um sistema de equações algébricas. Desta
forma, os problemas podem ser escritos numa forma Ax = b e são usadas
ferramentas de álgebra linear para solucioná-los. Nos capítulos finais
serão revisitados métodos tradicionais para se resolver sistemas lineares e
métodos que usam a estrutura da matriz, resolvendo o problema
de forma eficiente.

3.1 Dedução das Fórmulas de Diferenças Finitas


O primeiro passo na solução numérica de uma equação diferencial pelo Mé-
todo de Diferencas Finitas é a aproximação das derivadas do problema
por diferenças finitas usando a expansão em série de Taylor.

Expansão em série de Taylor


Suponha que tenhamos uma função f (x) conhecida, ou pontos desta função,
e queremos derivar uma representação em termos de diferenças finitas para
as derivadas de f (x) no ponto xi , f 0 (xi ) , f 00 (xi ) .
- Para aproximar f 0 (xi ) por diferenças precisamos de pelo menos 2
pontos.

23
24 3. MÉTODO DAS DIFERENÇAS FINITAS (EDO)

- Para aproximar f 00 (xi ) por diferenças precisamos de pelo menos 2


pontos.

Iniciamos então expressando a função em termos de uma


série de Taylor, de modo que a expansão desta função nos pontos f (x+∆x)
e f (x − ∆x), para um espaçamento uniforme ∆x, são dadas por:

∆x2 00 ∆x3 000


f (x + ∆x) = f (x) + ∆xf 0 (x) + f (x) + f (x) + ... (3.1)
2! 3!

∆x2 00 ∆x3 000


f (x − ∆x) = f (x) − ∆xf 0 (x) + f (x) − f (x) + ... (3.2)
2! 3!

Primeira Derivada
Para obter a expressão em termos de diferenças finitas para a derivada de
primeira ordem f 0 (x) , isolamos f 0 (x) nas equações acima, temos duas apro-
ximações para a primeira derivada tal que:

f (x) − f (x − ∆x) ∆x 00 ∆x 000


f 0 (x) = | − f (x) − f (x)...
∆x 2! 3!
f (x) − f (x − ∆x) ∆x 00 ∆x 000
f 0 (x) = | + f (x) + f (x)...
∆x 2! 3!
OBS: O truncamento no 1o termo é uma aproximação para a
derivada, e o termo que lidera o que foi abandonado neste caso é
da ordem de ∆x.
Subtraindo a equação (3.1) e (3.2) e isolando temos mais uma aproxi-
mação para a primeira derivada tem-se:

∆x2 00 ∆x3 00
f (x + ∆x) = f (x) + ∆xf 0 (x) + f (x) + f (x) + ...
2! 3!
∆x2 00 ∆x3 000
− f (x − ∆x) = f (x) − ∆xf 0 (x) + f (x) − f (x) + ...
2! 3!
3.1. DEDUÇÃO DAS FÓRMULAS DE DIFERENÇAS FINITAS 25

______________________________________________

∆x3 000
f (x + ∆x) − f (x − ∆x) = 2∆xf 0 (x) + 2 f (x) + ...
3!

isolando f 0 (x):

f (x + ∆x) − f (x − ∆x) ∆x3 000


f 0 (x) = | + 2 f (x) + ... (3.3)
2∆x 3!
OBS: O truncamento no 1o termo é uma aproximação para a
derivada, e o termo que lidera o que foi abandonado neste caso é
da ordem de ∆x2 .
Da equação (3.1), (3.2) e (3.3) as seguintes aproximações podem ser
escritas para a primeira derivada:

Diferença avançada
f (x + ∆x) − f (x)
f 0 (x) = + O(∆x) (3.4)
∆x

Diferença atrasada
f (x) − f (x − ∆x)
f 0 (x) = + O(∆x) (3.5)
∆x

Diferença centrada
f (x + ∆x) − f (x − ∆x)
f 0 (x) = + O(∆x2 ) (3.6)
2∆x
Onde O(∆x) e O(∆x2 ) representam a ordem dos erros envolvidos
nessas aproximações.

Introduzimos então a notação:

xi = i∆x xi + ∆x = (i + 1)∆x xi − ∆x = (i − 1)∆x


f (xi ) = fi f (xi + ∆x) = fi+1 f (xi − ∆x) = fi−1

Portanto a representação da primeira derivada por diferenças


finitas nessa nova notação é dada por:

Diferença avançada
fi+1 − fi
fi0 = + O(∆x)
∆x
26 3. MÉTODO DAS DIFERENÇAS FINITAS (EDO)

Diferença atrasada
fi − fi−1
fi0 = + O(∆x)
∆x

Diferença centrada
fi+1 − fi−1
fi0 = + O(∆x2 )
2∆x

Segunda Derivada
Prosseguindo com a representação de diferenças finitas para a segunda
derivada , faz-se a expansão em série de Taylor de f (x) nos pontos f (x+2∆x)
e f (x − 2∆x), tem-se:
- Para aproximar por diferenças precisamos de pelo menos 3 pontos:
(xi , xi+1 , xi+2 ) ou (xi , xi−1 , xi−2 ):

4∆x2 00 8∆x3 000


f (x + 2∆x) = f (x) + 2∆xf 0 (x) + f (x) + f (x) + ... (3.7)
2! 3!

4∆x2 00 8∆x3 000


f (x − 2∆x) = f (x) − 2∆xf 0 (x) + f (x) − f (x) + ... (3.8)
2! 3!
Elimando a primeira derivada (f 0 (x)) usando a equação (3.2) e (3.8),
primeiro multiplicando a primeira por 2 e depois fazemos a subtração da
equação (3.8):

" #
∆x2 00
0 ∆x3 000
2 f (x − ∆x) = f (x) − ∆xf (x) + f (x) − f (x) + ...
2! 3!
4∆x2 00 8∆x3 000
− f (x − 2∆x) = f (x) − 2∆xf 0 (x) + f (x) − f (x) + ...
2! 3!
______________________________________________

2∆x2 00 6∆x3 000


2f (x − ∆x) − f (x − 2∆x) = f (x) − f (x) + f (x) + ...
2! 3!
Isolando f 00 (x), temos uma primeira aproximação para a segunda
derivada:

f (x − 2∆x) − 2f (x − ∆x) + f (x)


f 00 (x) = + ∆xf 000 (x) + ... (3.9)
∆x2
3.1. DEDUÇÃO DAS FÓRMULAS DE DIFERENÇAS FINITAS 27

Analogamente, eliminando a primeira derivada f 0 (x) usando as equações


(3.1) e (3.7), primeiro multiplicamos a equação (3.1) por 2 e depois fazemos
a subtração da (3.7) encontramos uma segunda aproximação para a se-
gunda derivada :

f (x) − 2f (x + ∆x) + f (x + 2∆x)


f 00 (x) = − ∆xf 000 (x) + ... (3.10)
∆x2

Somando as equações (3.1) e (3.2) e eliminando a primeira derivada


f 0 (x), temos uma terceira aproximação para a segunda derivada:

∆x2 00 ∆x3 000


f (x + ∆x) = f (x) + ∆xf 0 (x) + f (x) + f (x) + ...
2! 3!
∆x2 00 ∆x3 000
+ f (x − ∆x) = f (x) − ∆xf 0 (x) + f (x) − f (x) + ...
2! 3!
______________________________________________

∆x2 00 ∆x2 (4)


f (x + ∆x) + f (x − ∆x) = 2f (x) + 2 f (x) + 2 f (x) + ...
2! 4!

Isolando f 00 (x), tem-se:

f (x − ∆x) − 2f (x) + f (x + ∆x) ∆x2 000


f 00 (x) = − 2 f (x) + ...
∆x2 4
Usando a notação anterior tem-se:

Diferença avançada
fi − 2fi+1 + fi+2
fi00 = + O(∆x)
∆x2

Diferença atrasada
fi−2 − 2fi−1 + fi
fi00 = + O(∆x)
∆x2

Diferença centrada
fi−1 − 2fi + fi+1
fi00 = + O(∆x2 )
∆x2
28 3. MÉTODO DAS DIFERENÇAS FINITAS (EDO)

Formas mais acuradas de representação por diferenças finitas


A representação por diferenças avançadas e atrasadas apresentadas ante-
riormente tem erro de O(∆x). Expressões mais acuradas podem ser obtidas
substituindo a equação (3.9) na equação (3.2):
2a derivada atrasada (c/ 3 pontos):
f (x − 2∆x) − 2f (x − ∆x) + f (x)
f 00 (x) = + ∆f 000 (x) + ... (3.9)
∆x2
1a derivada atrasada (c/ 2 pontos):

f (x) − f (x − ∆x) ∆x 00 ∆x2 000


f 0 (x) = + f (x) + f (x) (3.2)
∆x 2! 3!
Tal que:

∆x2 000
 
f (x) − f (x − ∆x) ∆x f (x − 2∆x) − 2f (x − ∆x) + f (x)
f 0 (x) = + + ∆f 000
(x) + f (x) − ...
∆x 2! ∆x2 3!
f (x) f (x − ∆) f (x − 2∆x) f (x − ∆x) f (x) ∆x2 000 ∆x2 000
f 0 (x) = − + − + + f (x) + f (x)−
∆x ∆x 2∆x ∆x 2∆x 2 6
2f (x) 2f (x − ∆x) f (x − 2∆x) 2f (x − ∆x) f (x) 3∆x2 000 ∆x2
f 0 (x) = − + − + + f (x) + − ...
2∆x 2∆x 2∆x 2∆x 2∆x 6 6
2
3f (x) 4f (x − ∆) f (x − 2∆x) 4∆x 000
f 0 (x) = − + + f (x) − ...
2∆x 2∆x 2∆x 6
1a. derivada atrasada (c/ 3 pontos):

f (x − 2∆x) − 4f (x − ∆x) + 3f (x) 4∆x2 000


f 0 (x) = + f (x) − ...
2∆x 6
Em notação indicial,
fi−2 − 4fi−1 + 3fi
diferença atrasada: fi0 = + O(∆x2 )
2∆x
por analogia, tem-se:
−3fi + 4fi+1 − fi+2
diferença avançada: fi0 = + O(∆x2 )
2∆x

De forma similar podemos escrever formas mais acuradas, com erro de


segunda ordem O(∆x2 ) para as aproximações avançadas e atrasadas da se-
gunda derivada, para isso temos que escrever a expansão de Taylor de f (x)
nos pontos f (x + 3∆x) e f (x − 3∆x) encontrarmos uma aproximação para
a terceira derivada f 000 (x) e substituí-la na expressão para a diferença avan-
çada e atrasada, equações (3.9) e (3.10), respectivamente. Encontraremos
então uma aproximação de quatro pontos e erro de segunda ordem para
estas aproximações na forma:
1
diferença avançada: fi00 = (2fi −5fi+1 +4fi+2 −fi+3 )+O(∆x2 )
∆x2
3.1. DEDUÇÃO DAS FÓRMULAS DE DIFERENÇAS FINITAS 29

1
diferença atrasada: fi00 = (−fi−3 +4fi−2 −5fi−1 +2fi )+O(∆x2 )
∆x2

Erro relativo e as ordens de erro


Pode-se afirmar que a derivada exata em um ponto fi0 pode ser expressa
0
em termos da derivada aproximada neste mesmo ponto fiAP ROX e
(4)
um erro associado ∆xg(fi00 , fi000 , fi , ...) (g é uma função que depende das
derivadas presentes na série de Taylor) :

fi0 = fiAP
0 0 0
ROX + O(∆x) → fi = fiAP ROX + ∆xg

Sobre o erro relativo associado, tem-se:

fi0 − fiAP
0
ROX = ∆xg
fi0 − fiAP
0
ROX ∆xg
REL = 0 =
fi fi0

∆x
Então, seja ∆x um espaçamento escolhido e ∆x∗ = um outro espa-
10
çamento posteriormente usado. É possível perceber que:

fi0 − fiAP
∗ ∆x∗ g REL
∗REL = 0
ROX
= =
fi fi0 10

Logo se REL = 0.1 e ∗REL = 0.01, ganhou-se 1 dígito de precisão.


Se a ordem do erro é de ∆x2 ,a mesma análise pode ser feita, que mostra
que se ganha 2 dígitos de precisão quando ∆x é reduzido de 10 vezes.
30 3. MÉTODO DAS DIFERENÇAS FINITAS (EDO)

Resumo das representações por diferenças finitas


Primeira derivada - 2 pontos
• Diferença avançada
fi+1 − fi
fi0 = + O(∆x)
∆x
• Diferença atrasada
fi − fi−1
fi0 = + O(∆x)
∆x
• Diferença centrada
fi+1 − fi−1
fi0 = + O(∆x2 )
2∆x

Primeira derivada - 3 pontos


• Diferença avançada
−3fi + 4fi+1 − fi+2
fi0 = + O(∆x2 )
2∆x
• Diferença atrasada
fi−2 − 4fi−1 + 3fi
fi0 = + O(∆x2 )
2∆x

Segunda derivada - 3 pontos


• Diferença avançada
fi − 2fi+1 + fi+2
fi00 = + O(∆x)
∆x2
• Diferença atrasada
fi−2 − 2fi−1 + fi
fi00 = + O(∆x)
∆x2
• Diferença centrada
fi−1 − 2fi + fi+1
fi00 = + O(∆x2 )
∆x2

Segunda derivada - 4 pontos


• Diferença avançada
1
fi00 = (2fi − 5fi+1 + 4fi+2 − fi+3 ) + O(∆x2 )
∆x2
• Diferença atrasada
1
fi00 = (−fi−3 + 4fi−2 − 5fi−1 + 2fi ) + O(∆x2 )
∆x2
3.1. DEDUÇÃO DAS FÓRMULAS DE DIFERENÇAS FINITAS 31

Exemplo 3.1
Seja a função f (x) = ex , tal que f 0 (x) = ex :
Vamos considerar a aproximação de diferença avançada para a primeira
derivada:

fi+1 − fi
fi0 = + O(∆x)
∆x
Como a ordem do erro é de ∆x, um dígito de precisão deve ser ganho
no cálculo da primeira derivada quando o espaçamento for reduzido em
10 vezes. Porém há problema quando diminuimos ∆x: a subtração de
fi+1 e fi acaba envolvendo números muito próximos, e já sabemos da
análise de erros que a subtração de números muito próximos é uma operação
perigosa, com consequente perda de dígitos significativos.

∆x fi0
1 x.***********
0.1 x.x**********
0.01 x.xx*********
0.001 x.xxx********
0.0001 x.xxxx*******
0.00001 x.xx*********
0.000001 x.***********

0
fiexato = fi0 + iaproxF inita + iM DF
Onde existe então um ponto ótimo de compromisso entre o erro
introduzido pela limitação dos computadores de trabalharem com precisão
finita (que leva o aumento do erro à medida que ∆x diminui) e o erro da
aproximação da derivada por diferenças finitas (que leva o aumento do erro
à medida que ∆x aumenta).
32 3. MÉTODO DAS DIFERENÇAS FINITAS (EDO)

Método de diferenças finitas com espaçamento não uniforme

Fazendo a expansão em série de Taylor para o caso do espaçamento não


uniforme tem-se que:

∆x2 00 ∆x3 000


f (x + ∆x) = f (x) + ∆xf 0 (x) + f (x) + f (x) + ... (3.1)
2! 3!

φ2 ∆x2 00 φ3 ∆x3 000


f (x − ∆x) = f (x) − φ∆xf 0 (x) + f (x) − f (x) + ... (3.11)
2! 3!

Queremos encontrar uma aproximação para a primeira derivada f 0 (x),


para isso multiplicamos a equação 3.1 por φ2 e subtraímos pela equação
3.11:

φ2 ∆x2 00 φ2 ∆x3 000


φ2 f (x + ∆x) = φ2 f (x) + φ2 ∆xf 0 (x) + f (x) + f (x) + ...
2! 3!
∆x2 00 ∆x3 000
− f (x − ∆x) = f (x) − ∆xf 0 (x) + f (x) − f (x) + ...
2! 3!
______________________________________________

φ2 f (x + ∆x) − f (x − ∆x) =(φ2 − 1)f (x) + φ∆x(1 + φ)f 0 (x)+


φ2 ∆x3 φ2 ∆x4
+ (1 + φ)f 000 (x) + (1 + φ2 )f (4) (x) + · · ·
3! 4!
Tal que:

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


f 0 (x) ≈
φ∆x(1 + φ)

E o erro dessa aproximação é:


3.1. DEDUÇÃO DAS FÓRMULAS DE DIFERENÇAS FINITAS 33

φ2 ∆x3 φ2 ∆x4
Erro ≈ − (1 + φ)f 000 (x) − (1 + φ2 )f (4) (x)
φ∆x(1 + φ)3! φ∆x(1 + φ)4!
∆x ∆x2
≈ (1 − φ)f 000 (x) − (1 + φ3 )f (4) (x)
3 (12(1 + φ))

Ou seja, para esta aproximação da segunda derivada com malha não


uniforme a ordem do erro é O((1 − φ)∆x, (1 + φ3 )∆x2 ). Analisando o refi-
namento da malha em função do parâmetro φ, temos que :

• Para o caso de φ → 1, recuperamos a fórmula centrada para a aproxi-


mação da segunda derivada como desenvolvido anteriormente,f 00 (x) ≈
f (x + ∆x) − 2f (x) + f (x − ∆x)
. No cálculo do erro para o caso φ →
∆x2
1 temos que o coeficiente da terceira derivada fica nulo, de modo que
∆x2 (4)
E≈− f (x), ou seja, de ordem O(∆x2 ).
12
∆x 000
• Todavia, quando φ → 0 temos que o erro é de: E ≈ − f (x), ou
3
seja, de ordem O(∆x).

Dedução das fórmulas por diferenças finitas via interpolação


polinomial
Uma outra forma de determinar as expressões previamente encontradas
é usando interpolação polinomial.
Suponha que tenhamos pontos xi−1 , xi e xi+1 equidistantes:
xi−1 = xi − ∆x, xi+1 = xi + ∆x

Uma função f desconhecida assume os valores fi−1 , fi e fi+1 quando


passa exatamente por esses pontos. Desejamos determinar uma aproxi-
mação para f e suas derivadas usando técnicas de interpolação. Um
polinômio de segundo grau garantidamente irá passa pelos 3 pontos, e será
dado por (calculado via polinômio de Newton):

   
fi − fi−1 fi+1 − 2fi + fi−1
p(x) = fi−1 + (x − xi + ∆x) + (x − (x i − ∆x))(x − x i )
∆x 2∆x2

A derivada p0 (x) é dada por:

   
fi − fi−1 fi+1 − 2fi + fi−1
p0 (x) = + (2x − 2xi + ∆x)
∆x 2∆x2

Se desejarmos p0 (x = xi ) (a derivada no ponto do meio), temos:


34 3. MÉTODO DAS DIFERENÇAS FINITAS (EDO)

   
0 fi − fi−1 fi+1 − 2fi + fi−1 
p (xi ) = + (
∆x )
∆x 2∆x2
   
2fi − 2fi−1 fi+1 − 2fi + fi−1 fi+1 − fi−1
= + = = fi0
2∆x 2∆x 2∆x

que é a aproximação centrada para a primeira derivada. Será que


p0 (x = xi + ∆x) (ponto da direita) também acaba sendo igual a alguma
das expressões anteriores?

   
0 2fi − 2fi−1 fi+1 − 2fi + fi−1
p (xi + ∆x) = + 2xi + 2∆x − 
( 2xi + ∆x)

2∆x 2∆x2
   
2fi − 2fi−1 fi+1 − 2fi + fi−1
= + (3
∆x
)
2∆x 2∆x2
   
2fi − 2fi−1 3fi+1 − 6fi + 3fi−1
= +
2∆x 2∆x
fi−1 − 4fi + 3fi+1 0
= = fi+1 → Derivada atrasada de 3 pontos no nó i + 1
2∆x
Mas uma pergunta boa a se fazer é se sempre pode se inferir que p0 (x) ≈ f 0 (x) e
qual a ordem do erro cometido. Pela teoria de intepolação, é possível escrever
o erro E(x) cometido ao aproximar uma f (x) por um polinômio interpolador p(x)
de grau n em um intervalo [a, b]:

n
f (n+1) (ξ(x)) Y
E(x) = f (x) − p(x) = (x − xi )
(n + 1)! i=0

onde ξ(x) é necessariamente um número no intervalo [a, b]. No caso usamos


um polinômio de grau n = 2, então:

(x − xi + ∆x)(x − xi )(x − xi − ∆x) 000


E(x) = f (ξ(x)), onde xi − ∆x < ξ(x) < xi + ∆x
3!

Não sabemos dizer quem é exatamente ξ(x), mas usando o fato de


que os pontos usados na interpolação são suficientemente próximos
(∆x é um número pequeno), o erro pode ser aproximado pela seguinte
expressão:

(x − xi + ∆x)(x − xi )(x − xi − ∆x) 000


E(x) ≈ f (xi )
3!
Podemos escrever agora f (x) em função de p(x) e E(x) e calcular a primeira
derivada:
3.1. DEDUÇÃO DAS FÓRMULAS DE DIFERENÇAS FINITAS 35

f (x) = p(x) + E(x)


f 0 (x) = p0 (x) + E 0 (x)
   
fi − fi−1 fi+1 − 2fi + fi−1
= + (2x − 2x i + ∆x) + E 0 (x)
∆x 2∆x2

Usando a aproximação anterior para E(x), a expressão anterior pode ser


escrita aproximadamente como:

1 000
E 0 (x) ≈ f (xi )[(x − xi )(x − xi − ∆x) + (x − xi + ∆x)(x − xi − ∆x) + (x − xi + ∆x)(x − xi )]
3!
Vamos estimar o erro cometido ao aproximar a derivada no ponto x = xi :

f 0 (xi ) ≈p0 (xi ) + E 0 (xi )


fi+1 − fi−1 1 000
≈ + f (xi )[(0)(−∆x) + (∆x)(−∆x) + (+∆x)(0)]
2∆x 3!
fi+1 − fi−1 ∆x2 000
≈ − f (xi )
2∆x 3!

Percebe-se que a ordem do erro O(∆x2 ) corrobora com o encontrado via série
de Taylor. Para finalizar, façamos somente a dedução da expressão de diferença
finita centrada para segunda derivada (juntamente com uma estimativa para o
erro):

f 00 (x) = p00 (x) + E 00 (x)


 
fi+1 − 2fi + fi−1 00
= 2 + E (x)
2∆x2

 
fi+1 − 2fi + fi−1
= + E 00 (x)
∆x2

Uma aproximação para E 00 (x) pode ser determinada da mesma forma que an-
teriormente (substituir ξ(x) por xi ):

1 000
E 00 (x) ≈ f (xi )[2(x − xi + ∆x) + 2(x − xi ) + 2(x − xi − ∆x)]
3!
Descrevendo a aproximação e uma estimativa do erro no ponto x = xi :

f 00 (x) ≈ p00 (x) + e00 (x)


fi+1 − 2fi + fi−1 1 000
≈ + f (xi )[2(+∆x) + 2(0) + 2(−∆x)]
∆x2 3!
fi+1 − 2f i + f i−1
f 00 (x) ≈ +0
∆x2
36 3. MÉTODO DAS DIFERENÇAS FINITAS (EDO)

Algo curioso ocorreu... o erro associado seria 0? Infelizmente esse


não é o caso. A suposição de usar uma aproximação para E(x) faz com
que a estimativa do erro “esconda” termos associados a derivadas de
ordem acima de f 000 (x) que ocorrem ao derivar a função E(x) original
(perceba que nessa função há um ξ(x) que deveria ser levado em conta na
derivação, fazendo com que diversos outros termos surgissem ao se aplicar
a regra da cadeia). Veja quem deveria ser E 00 (x) na realidade:
1
E 00 (x) = (x − xi )f (5) (ξ(x))ξ 0 (x)2 (−∆x + x − xi )(∆x + x − xi )
6
1
+ (x − xi )f (4) (ξ(x))ξ 00 (x)(−∆x + x − xi )(∆x + x − xi )
6
1
+ (x − xi )f (4) (ξ(x))ξ 0 (x)(−∆x + x − xi )
3
1
+ (x − xi )f (4) (ξ(x))ξ 0 (x)(∆x + x − xi )
3
1
+ f (4) (ξ(x))ξ 0 (x)(−∆x + x − xi )(∆x + x − xi )
3
1 1 1
+ f (3) (ξ(x))(−∆x + x − xi ) + f (3) (ξ(x))(∆x + x − xi ) + (x − xi )f (3) (ξ(x))
3 3 3

Assustador, não? Mas já que temos a expressão, é possível calcular


E 00 (x = xi ) e avaliar qual será o resultado:

1
E 00 (xi ) = − ∆x2 f (4) (ξ(xi ))ξ 0 (xi )
3

Verifica-se um erro de ordem O(∆x2 ), novamente corroborando com o


encontrado pela série de Taylor. Percebe-se que deduzir as expres-
sões via interpolação pode não ser desafiador, mas determinar as
ordens de erro é bastante trabalhoso. Determinar aproximações
pela série de Taylor pode exigir um pouco mais de criatividade,
mas já responde a ordem do erro de maneira mais imediata.

3.2 Aplicação em Problemas de Valor de Contorno


Vejamos agora neste seção como o método das diferenças finitas é aplicado
em problemas de valor contorno (PVC):

Exemplo 3.2
Considere um problema de aletas dado matematicamente pelas equações
abaixo:

d2 T (x)
+ m2 (T (x) − T∞ ) = 0, 0 ≤ x ≤ L
dx2
sujeita as condições de contorno:
3.2. APLICAÇÃO EM PROBLEMAS DE VALOR DE CONTORNO 37


T (x = 0) = Tb em x = 0
−k dT (x)

= h(T (x = L) − T∞ ) em x=L
dx x=L

onde k,m e h são constantes.


Vamos utilizar o método das diferenças finitas para aproximar as deri-
vadas existentes nessa equação diferencial ordinária. Será usada uma malha
de nós espaçados regularmente de ∆x, construída sobre o dominio da região
0 ≤ x ≤ L.
As derivadas do potencial T (x) no nó xi podem ser aproximadas pela
expressão de diferenças centradas dadas por:

d2 T (x) Ti−1 − 2Ti + Ti+1


2

dx i ∆x2

dT (x) Ti+1 − Ti−1



dx i 2∆x
Introduzindo essas duas aproximações na equação diferencial ordinária
original, tem-se a equação abaixo que é valida para todos os nós da discre-
tização do dominio
i = 0, 2, 3, . . . , N .

Ti−1 − 2Ti + Ti+1


+ m2 (Ti − T∞ ) = 0
∆x2
Tal que a equação discretizada para o nó geral é dada por:

Ti−1 − (2 − m2 ∆x2 )Ti + Ti+1 = m2 ∆x2 T∞

Supondo uma discretização do dominio em 5 nós temos que :


38 3. MÉTODO DAS DIFERENÇAS FINITAS (EDO)

Podemos então escrever a equação para cada um dos nós:

• Para o nó x0 : T0 = Tb
• Para o nó x1 : −(2 + m2 ∆x2 )T1 + T2 = −m2 ∆x2 T∞ − T0
• Para o nó x2 : T1 − (2 + m2 ∆x2 )T2 + T3 = −m2 ∆x2 T∞
• Para o nó x3 : T2 − (2 + m2 ∆x2 )T3 + T4 = −m2 ∆x2 T∞
• Para o nó x4 : T3 − (2 + m2 ∆x2 )T4 + T5 = −m2 ∆x2 T∞
• Para o nó x5 : T4 − (2 + m2 ∆x2 )T5 + T6 = −m2 ∆x2 T∞

Para o nó x5 aparece a temperatura no nó x6 , T6 , que é um nó ficticio.


Para este nó então usamos a informação complementar da condição
de contorno em x = L, substituindo a aproximação da derivada, tal que:

T6 − T4
−k = h(T5 − T∞ )
2∆x
2∆xh
T6 = T4 − (T5 − T∞ )
k
Substituindo T6 na equação para o nó x5 temos então:
2∆xh 2∆xh
• Para o nó x5 : 2T4 − (2 + m2 ∆x2 + )T5 = −(m2 ∆x2 + )T∞
k k
Temos então que resolver este sistema de 5 equações e 5 incognitas,
que pode ser escrito na forma matricial Ax = b como mostrado a
seguir:

−(2 + m2 ∆x2 ) 1 0 0 0
  
T1
 1 −(2 + m2 ∆x2 ) 1 0 0  T2 
0 1 −(2 + m2 ∆x2 ) 1 0
  
  T3 

 0 0 1 −(2 + m2 ∆x2 ) 1  
 T4
2∆xh
0 0 0 2 −(2 + m2 ∆x2 + ) T5
k
−m2 ∆x2 T∞ − T0
 
 −m2 ∆x2 T∞ 
−m2 ∆x2 T∞
 
= 
2 2


 −m ∆x T∞ 

2∆xh
−m2 ∆x2 T∞ −
k
Pode-se observar que o sistema matricial acima, Ax = b , tem como
solução o vetor de temperaturas, x . Pode-se observar também que para
este caso a matriz A é tridiagonal, como consequencia da adoção de um
esquema de aproximação centrada para as derivadas. Percebe-se que agora
o problema é do âmbito da álgebra linear e nos capítulos 5 e 6 serão
estudadas/revisitadas formas de solucioná-lo.
3.2. APLICAÇÃO EM PROBLEMAS DE VALOR DE CONTORNO 39

Exemplo 3.3
Considere uma viga de comprimento L biapoiada em suas extremidades
e com uma carga constante q distribuída ao longo de sua extensão. O ob-
jetivo nesse problema é calcular o deslocamento da viga em função de sua
coordenada espacial.

O problema é governado pela seguinte equação diferencial ordinária:

d4 u
EI =q
dx4
onde E,I,q são constantes do problema. O problema é marcado pelas
seguintes condições de contorno:




 u(x = 0) = 0
d2 u



EI
 (x = 0) = 0
dx 2


 u(x = L) = 0
 2
EI d u (x = L) = 0



dx 2

Vamos realizar a discretização espacial do problema usando o mé-


todo das diferenças finitas. Serão usadas diferenças centradas nas
derivadas do problema, ou seja:

x = i∆x
u(x) ≈ ui
d2 u ui+1 − 2ui + ui−1
2

dx ∆x2
4
d u ui+2 − 4ui+1 + 6ui − 4ui−1 + ui−2
4

dx ∆x4
Substituindo as aproximações por diferenças finitas na equação diferen-
cial, temos a equação do nó geral:

q∆x4
ui−2 − 4ui−1 + 6ui − 4ui+1 + ui+2 =
EI
40 3. MÉTODO DAS DIFERENÇAS FINITAS (EDO)

L L
 
Discretizando o domínio em 5 nós ∆x = = , somente para
5−1 4
ilustrar o processo de discretização, a formulação pode ser estendida para
uma quantidade consideravelmente maior de nós:

• Para o nó i = 0: (nó de contorno)


Aplicando a condição de contorno.
u0 = 0

• Para o nó i = 1:

q∆x4
u−1 − 4u0 + 6u1 − 4u2 + u3 =
EI
Identifica-se a presença do nó fictício u−1 . Para resolver esse pro-
blema, usamos novamente uma das condições de contorno:
d2 u(0)
EI =0
dx2
u1 − 2u0 + u−1
=0
∆x2
u−1 = 2u0 − u1
Substituindo na equação do nó i = 1 previamente determinada:

q∆x4
2u0 + 5u1 − 4u2 + u3 =
EI
• Para o nó i = 2:

q∆x4
u0 − 4u1 + 6u2 − 4u3 + u4 =
EI
• Para o nó i = 3:

q∆x4
u1 − 4u2 + 6u3 − 4u4 + u5 =
EI
Identifica-se a presença do nó fictício u5 . Para resolver esse problema,
usamos novamente uma das condições de contorno:
d2 u(L)
EI =0
dx2
u5 − 2u4 + u3
=0
∆x2
u5 = 2u4 − u3
3.2. APLICAÇÃO EM PROBLEMAS DE VALOR DE CONTORNO 41

Substituindo na equação do nó i = 3 previamente determinada:

q∆x4
u1 − 4u2 + 5u3 − 2u4 =
EI

• Para o nó i = 4: (nó de contorno)


Aplicando a condição de contorno.

u4 = 0

Escrevendo as equações de forma matricial, tem-se um sistema linear


Ax = b:
 
0
4
u0  q∆x 
  
1 0 0 0 0
−2 −4    EI 
 5 1 0 u1   q∆x4 

1
 −4 6 −4 1 
 u2

   EI 
0 1 −4 5 −2 u3   q∆x

4
0 0 0 0 1 u4 
 
EI

0

Sabe-se que os valores u0 e u4 são conhecidos. Substituindo esses valores já


conhecidos nas equações para os nós i = 1, i = 2 e i = 3 e colocando esses
valores no lado direito das equações, pode-se escrever um sistema linear
menor equivalente:
 
q∆x4
  
5 −4 1 u1  EI 4 

−4  q∆x 
6 −4 u2 
   
 EI 
1 −4 5 u3  q∆x 4

EI
Neste problema unidimensional essa diferença é de somente duas linhas,
o que faz com que inserir valores já conhecidos no sistema não seja um pro-
blema. O mesmo não pode ser ditos em problemas bidimensionais e
tridimensionais, já que nesses há diversos nós associados a uma só condi-
ção de contorno. Além disso, remover os contornos neste caso (assim como
outros diversos) fez com que haja uma matriz simétrica no sistema li-
near associado, e será visto que isso permite que mais métodos pos-
sam ser aplicados na solução do mesmo (no capítulo 6 será estudada
a decomposição Cholesky, que é um desses métodos).

Exemplo 3.4
Considere a condução de calor unidimensional em regime permanente
em um cilindro maciço com geração interna de energia. A equação ordinária
que descreve matematicamente este problema físico é:
42 3. MÉTODO DAS DIFERENÇAS FINITAS (EDO)

d2 T (r) 1 dT (r) g(r)


+ + = 0, 0<r<1
dr2 r dr k
Com as seguintes condições de contorno:

 dT = 0,

em r = 0
dr
T = T∞ , em r = 1

Neste problema há uma adversidade a ser resolvida em r = 0. Percebe-


1
se que há um termo , que é marcado por uma indefinição matemática,
r
1
já que aparecerá . O que é realizado para contornar isso neste ponto do
0
domínio é resolver o limite de quando r tende a 0. Para se resolver esse
limite será usada a regra de L’Hôpital:

1 dT (r) d2 T (r)
 
lim =
r→0 r dr dr2
Portanto somente no ponto r = 0, a equação diferencial ordinária será:

d2 T (r) g(r)
2 + =0
dr2 k
A discretização espacial do problema usando o método das dife-
renças finitas, usando diferenças centradas nas derivadas do problema
será marcada por:

r = i∆r
T (r) ≈ Ti
g = gi
d2 T Ti+1 − 2Ti + Ti−1

dr2 ∆r2
dT Ti+1 − Ti−1

dr 2∆r
Primeiro temos de obter a equação do nó geral substituindo as apro-
ximações na EDO:

Ti+1 − 2Ti + Ti−1 1 Ti+1 − Ti−1 gi


 
2
+ =−
∆r r 2∆r k
1 1 2 1 1 gi
     
2
− Ti−1 + − 2 Ti + 2
+ Ti+1 = −
∆r 2r∆r ∆r ∆r 2r∆r k
3.2. APLICAÇÃO EM PROBLEMAS DE VALOR DE CONTORNO 43

Para não carregar muito a notação, se definirmos:


1 1 gi
λ= β= α=−
∆r2 2∆r k
A equação do nó geral será dada por:
β β
   
λ− Ti−1 + (−2λ)Ti + λ + Ti+1 = α
i∆r i∆r

1 1
 
Discretizando o domínio em 5 nós ∆r = = , escrevemos as
5−1 4
equações para cada um dos nós:

• Para o nó i = 0 (nó de contorno):


Lembrando que neste nó a EDO é outra, temos:
d2 T (r) g(r)
2 2
+ =0
dr k
T1 − 2T0 + T−1

2 =α
∆r2
α∆r2
T−1 − 2T0 + T1 =
2
Identifica-se a presença do nó fictício T−1 . Para resolver esse pro-
blema, usamos uma das condições de contorno:
dT
=0
dr r=0
T1 − T−1
=0
2∆r
T−1 = T1

Substituindo na equação do nó i = 0 previamente determinada:


α∆r2
− 2T0 + 2T1 =
2
α∆r2
− T0 + T1 =
2
• Para o nó i = 1:

(λ − 4β)T0 + (−2λ)T1 + (λ + 4β)T2 = α

• Para o nó i = 2:

(λ − 2β)T1 + (−2λ)T2 + (λ + 2β)T3 = α


44 3. MÉTODO DAS DIFERENÇAS FINITAS (EDO)

• Para o nó i = 3:

4 4
(λ − β)T2 + (−2λ)T3 + (λ + β)T4 = α
3 3

• Para o nó i = 4 (nó de contorno):

T4 = T∞

Escrevendo as equações de forma matricial Ax = b:

−1 α∆r2
    
1 0 0 0 T0
λ − 4β −2λ λ − 4β 0 0    4 
  T1   α 
 0 λ − 2β −2λ λ + 2β 0  T2  =  α 
   
4 4 

 0 0 λ− β −2λ λ + β  T3   α 
  
3 3 T4
0 0 0 0 1 T

Podemos usar o fato de T4 ser conhecido e escrever um sistema linear


equivalente:

α∆r2
 

−1
 
1 0 0 T0 4
 
λ − 4β −2λ λ + 4β 0   
  T1  
  α 
 0

λ − 2β −2λ 
λ + 2β   = 
T2   α 
 4 
4

0 0 λ − β −2λ T3  
3 α − (λ + β)T∞
3

Podemos observar que o sistema só diminuiu em uma linha e não é


simétrico, diferente do exemplo anterior.

3.3 Problemas de Valor de Contorno Não-Lineares


Existem problemas de engenharia que são modelados por equações di-
ferenciais não lineares. Diferente dos modelos lineares anteriormente
vistos, resolver analiticamente pode não ser uma possibilidade, en-
tretanto ainda é possível resolver usando métodos numéricos. Uma
possível forma de solucioná-los é primeiro discretizar o problema usando
o método das diferenças finitas e depois escrever uma iteração de
Newton-Raphson que converge para solução. Vamos ilustrar esse es-
quema no seguinte exemplo:
3.3. PROBLEMAS DE VALOR DE CONTORNO NÃO-LINEARES 45

Exemplo 3.5
Considere a distribuição de calor em uma barra longa fina de compri-
mento L, levando em conta o efeito de radiação além do de condução.
Neste caso, a equação diferencial que descreve essa situação (no caso per-
manente) é:

d2 T
−k + β(T 4 − Tb4 ) = g(x)
dx2
Com as respectivas condições de contorno:
(
T (0) = 0
T (L) = 0

onde Tb é a temperatura de fundo, β incorpora o coeficiente de radiação


e g(x) representa a fonte de calor. Diferente dos problemas anteriormente
vistos, a equação diferencial acima não é linear por causa do termo T 4 .
Primeiro vamos discretizar o domínio do problema por diferenças fini-
tas como já era feito. Será usada aproximação centrada para derivada
segunda do problema:

x = i∆x
T (x) ≈ Ti
g = gi
d2 T Ti+1 − 2Ti + Ti−1
2

dx ∆x2

A equação do nó geral será:

Ti+1 − 2Ti + Ti−1


 
−k + β(Ti4 − Tb4 ) = gi
∆x2
h i
(−k)Ti+1 + (2k)Ti + ∆x2 βTi4 + (−k)Ti−1 = ∆x2 gi + ∆x2 βTb4

L L
 
Discretizando o domínio em 5 nós ∆r = = , escrevemos as
5−1 4
equações para cada um dos nós:

• Para o nó i = 0 (nó de contorno):

T0 = 0
46 3. MÉTODO DAS DIFERENÇAS FINITAS (EDO)

• Para o nó i = 1:

h i
(−k)T2 + (2k)T1 + ∆x2 βT14 + (−k)T0 = ∆x2 g1 + ∆x2 βTb4

• Para o nó i = 2:

h i
(−k)T3 + (2k)T2 + ∆x2 βT24 + (−k)T1 = ∆x2 g2 + ∆x2 βTb4

• Para o nó i = 3:

h i
(−k)T4 + (2k)T3 + ∆x2 βT34 + (−k)T2 = ∆x2 g3 + ∆x2 βTb4

• Para o nó i = 4 (nó de contorno):

T4 = 0

Não é possível mais escrever o sistema numa forma matricial Ax = b


dada a natureza não linear do problema. O método de Newton-Raphson
tem o intuito de escrever uma iteração que converge para o zero de alguma
função, usando linearizações sucessivas. É possível escrever uma fun-
ção vetorial de várias variáveis f (x) para realizar esse processo com as
equações anteriores. Usando que T0 e T4 já são conhecidos, iremos definir
uma função f (T ) = (f1 (T ), f2 (T ), f3 (T )), onde T = (T1 , T2 , T3 ) é o vetor de
temperaturas f1 , f2 e f3 são as seguintes funções escalares e :

h i
f1 (T ) = (−k)T2 + (2k)T1 + ∆x2 βT14 − ∆x2 g1 − ∆x2 βTb4 = 0
h i
f2 (T ) = (−k)T3 + (2k)T2 + ∆x2 βT24 + (−k)T1 − ∆x2 g2 − ∆x2 βTb4 = 0
h i
f3 (T ) = (2k)T3 + ∆x2 βT34 + (−k)T2 − ∆x2 g3 − ∆x2 βTb4 = 0

Em funções de uma variável, a linearização ao redor de um ponto xk é


obtida truncando a série de Taylor até a primeira derivada:

f (x) ≈ f (xk ) + f 0 (x)(x − xk )

Em funções de várias variáveis, a linearização ao redor de um ponto


xk também é feita da mesma forma. Pelo Cálculo de Várias Variáveis, o
análogo a primeira derivada para uma função de vetorial de várias variáveis
é a matriz Jacobiana:
3.3. PROBLEMAS DE VALOR DE CONTORNO NÃO-LINEARES 47

f (x) ≈ f (xk ) + J(xk )(x − xk )

Se o objetivo é encontrar uma aproximação para o zero de função xk de


f (x), então:

0 = f (xk ) + J(xk )(x − xk )


J(xk )(x − xk ) = −f (xk )
J(xk )y = −f (xk )

Onde y = x − xk . O que é feito é definir uma iteração baseado no


resultado anterior. A partir de um chute inicial x0 , faz-se uma iteração do
tipo:
xAnterior ← x0
R e s o l v e r s i s t e m a l i n e a r J(xAnterior )y = −f (xAnterior )
xPosterior ← xAnterior + y
Enquanto ||xPosterior − xAnterior || ≥ tolerância
xAnterior ← xPosterior
R e s o l v e r s i s t e m a l i n e a r J(xAnterior )y = −f (xAnterior )
xPosterior ← xAnterior + y

É natural uma certa dificuldade inicial para entender o método e como


aplicá-lo ao problema que tinhamos. O que pode se perceber é que foi pos-
sível escrever uma forma de solucionar o problema usando sistemas lineares
(dessa vez muito mais do que somente um, perceba que há um loop que
resolve vários sistemas distintos). Por enquanto não se é discutido como
resolver sistemas lineares (de forma eficiente), entretanto vamos construir
a matriz Jacobiana associada a este problema e no capítulo 6 do livro esse
problema será revisitado. Umas considerações a se fazer sobre o método
de Newton-Raphson são:

• O método precisa de um chute inicial x0 para iniciar. No caso mul-


tivariável não é muito trivial garantir pela matemática que seu chute
inicial irá convergir para solução numérica desejada, mas é possível
usar da física associada ao problema para fornecer um bom chute
inicial.

• É necessário também definir uma tolerância para o método por causa


de sua natureza iterativa. Normalmente se usar valores como 10−6 ,10−10 ,
10−12 dependendo do interesse e do custo computacional associado a
solução.
48 3. MÉTODO DAS DIFERENÇAS FINITAS (EDO)

Finalmente, temos que o vetor f (T ) e a matriz Jacobiana J(T ) asso-


ciada serão dados por:
∆x2βT14 − ∆x2 g1 − ∆x2 βTb4
     
f1 (T ) (−k)T 2 + (2k)T1 +
f (T ) = f2 (T ) = (−k)T 3 + (2k)T2 + ∆x2βT24 + (−k)T1 − ∆x2 g2 − ∆x2 βTb4 
f3 (T ) (2k)T3 + ∆x βT34 + (−k)T2 − ∆x2 g3 − ∆x2 βTb4
2

∂f1 ∂f1 ∂f1


 
 ∂T1 ∂T2 ∂T3  
2k + 4∆x2 T13

 ∂f −k 0
 2 ∂f2 ∂f2

J(T ) =  = −k 2k + 4∆x2 T23 −k 
 ∂T1 ∂T2 ∂T3  2 3
 ∂f3 ∂f3 ∂f3  0 −k 2k + 4∆x T3
∂T1 ∂T2 ∂T3
4
Método das Diferenças Finitas
(EDP)

Dando continuidade ao capítulo anterior, neste capítulo será visto como


realizar a discretização de equações diferenciais parciais. Será visto
que o modo de se discretizar o equações que envolvem mais de uma variável
espacial e problemas que envolvem o tempo. Será feito um estudo sobre a
estabilidade dos esquemas de discretização ao longo deste capítulo.

Classificação de Equações Diferenciais Parciais


Podemos classificar matematicamente as EDP’s de 2a ordem escritas na
forma geral dada por:

∂2T ∂2T ∂2T ∂T ∂T


A(x, y) + B(x, y) + C(x, y) + D(x, y) + E(x, y) + F (x, y)T = G(x, y)
∂x2 ∂x∂y ∂y 2 ∂x ∂y

- Se G(x, y) = 0 a equação é dita homogênea, caso contrário é dita


não-homogênea.
- Se A(x, y), B(x, y), C(x, y), D(x, y),. . . forem funções também do
próprio potencial A(x, y, T ), B(x, y, T ), C(x, y, T ), D(x, y, T ),. . . a equação
é dita não-linear, caso contrário é dita linear.
A seguinte tabela indica a classificação da equação diferencial par-
cial:

Classificação da EDP Condição


Elíptica B 2 − 4AC < 0
Parabólica B 2 − 4AC = 0
Hipérbolica B 2 − 4AC > 0

49
50 4. MÉTODO DAS DIFERENÇAS FINITAS (EDP)

Exemplo 4.1
Seja a equação de Poisson:

∇2 T (x) = g(x)

Se g(x) = 0, temos a equação de Laplace ∇2 T (x) = 0.

• No caso em que x = [x] (1D), tem-se a equação diferencial ordinária

d2 T
= g(x), já estudada no capítulo anterior
dx2

• No caso em que x = [x, y](2D), tem-se a equação diferencial parcial:

∂2T ∂2T
+ = g(x, y) → A = 1, B = 0, C = 1 →B 2 − 4AC < 0
∂x2 ∂y 2
Elíptica

• No caso em que x = [x, y, z](3D), também trata-se de um problema


elíptico, por extensão.

Problemas elípticos são problemas dissipativos, associados a processos difusivos


permanentes ou independentes do tempo.

Exemplo 4.2
Seja a equação do Calor:

∂T (x, t)
= α∇2 T (x, t)
∂t

• No caso em que x = [x](1D), tem-se a equação diferencial parcial:

∂T ∂2T
= α 2 → A = α, B = 0, C = 0 →B 2 − 4AC = 0
∂t ∂x
Parabólica

• No caso em que x = [x, y](2D) ou x = [x, y, z](3D), também trata-se


de um problema parabólico, por extensão.

Problemas parabólicos são problemas dissipativos, associados a processos difusivos


transientes, ou seja, que carregam a informação da evolução no tempo.
51

Exemplo 4.3
Seja a equação da Onda:
∂ 2 T (x, t)
= λ∇2 T (x, t)
∂t2
• No caso em que x = [x](1D), tem-se a equação diferencial parcial:
∂2T ∂2T
= λ → A = λ2 , B = 0, C = −1 →B 2 − 4AC > 0
∂t2 ∂x2
Hiperbólica

• No caso em que x = [x, y](2D) ou x = [x, y, z](3D), também trata-se


de um problema hiperbólico, por extensão.

Problemas hiperbólicos são problemas advectivos, associados a processos de


transporte não-difusivos.

OBS: Equação de convecção (problema parabólico elíptico)

∂T (x, t) ∂T (x, t) ∂ 2 T (x, t)


+ u = α
∂t ∂x ∂x2
• Termo capacitivo
• Termo de Advecção
• Termo de Difusão
Se a difusão for nula temos que a equação de convecção acima pode ser
escrita como:

∂T (x, t) ∂T (x, t)
+u =0
∂t ∂x
• Derivando a equação em relação a t:
∂ 2 T (x, t) ∂ 2 T (x, t)
2
+u =0 (4.1)
∂t ∂t∂x
• Derivando a equação em relação a x
∂ 2 T (x, t) ∂ 2 T (x, t)
+u =0
∂x∂t ∂x2
• Multiplicando esta ultima por u:
∂ 2 T (x, t) ∂ 2 T (x, t)
u + u2 =0 (4.2)
∂x∂t ∂x2
52 4. MÉTODO DAS DIFERENÇAS FINITAS (EDP)

Fazendo (4.1)-(4.2), temos que a derivada cruzada se cancela, tal que


recuperamos a equação da Onda:

∂ 2 T (x, t) 2
2 ∂ T (x, t)
− u =0
∂t2 ∂x2
∂ 2 T (x, t)
Como podemos ver o termo não vem do operador Laplaciano
∂x2
(divergente do gradiente), ou seja este transporte é não-difusivo.

4.1 Problemas Elípticos

4.2 Problemas Parabólicos

4.3 Problemas Hiperbólicos


5
Álgebra Linear (revisão)

Como foi visto nos dois capítulos anteriores, discretizar equações di-
ferenciais normalmente resulta em um sistemas lineares de equações
algébricas, um dos tópicos mais importantes da álgebra linear. Também
foi verificado que para se ter aproximações boas das soluções, é preciso usar
um número considerável de nós, o que resulta em sistemas lineares
de grande porte, o que motiva o uso de ferramentas da álgebra linear
num ambiente computacional. Outra importância da álgebra linear é
ser uma ferramenta para avaliar estabilidade dos esquemas de discre-
tização. Diferente do curso introdutório de álgebra linear, também serão
investigados a eficiência e as fontes dos erros oriundos do uso de um
determinado método.
OBS: A notação adotada será:
• Vetores são denotados por letras em minúsculo em negrito. Ex: v, b, x.
São sempre considerados vetores coluna (N × 1). Logo vT seria
um vetor linha (1 × N ), já que é o transposto de um vetor coluna.

• Escalares são denotados por letras em minúsculo (sem negrito).


Ex: α, λ, x.

• Matrizes são denotadas por letras em maiúsculo. Ex: A, M, Q.

5.1 Sistemas lineares (introdução)


Sistemas de equações são ditos lineares quando podem ser expressos da
seguinte forma:
Ax = b,
A sendo uma matriz de constantes (de tamanho M × N ), x um vetor de
incógnitas (de tamanho N × 1) e b um vetor de constantes (de tamanho
M × 1). Abaixo segue um exemplo:

53
54 5. ÁLGEBRA LINEAR (REVISÃO)

Exemplo 5.1

( " #" # " #


2x − y = 1 2 −1 x 1
→ =
x+y =5 1 1 y 5
A x =b

Estas matrizes que só possuem entradas constantes são aplicadas sobre


vetores, transformando-os. Elas são denominadas de transformações
lineares.
A solução deste sistema linear é dada por:

x = [2 3]T

Há duas formas de interpretar um sistema linear: a geométrica e a


algébrica.

Interpretação geométrica

A solução do sistema linear é o ponto de interseção entre as retas r1


e r2 .

Interpretação algébrica
" # " # " #
2 −1 1
x +y =
1 1 5

b é uma combinação linear das colunas da matriz A.


Para dar continuidade no estudo de sistema lineares, um importante
conceito de álgebra de matrizes será revisto.
5.1. SISTEMAS LINEARES (INTRODUÇÃO) 55

Matriz Inversa
Dada uma matriz A quadrada (N × N ) diz-se que uma matriz A−1 é inversa
de A se AA−1 = A−1 A = I, I sendo a matriz identidade. Tomando a
matriz A do Exemplo 5.1 , tem-se que A−1 será:
1 1
 

A−1
 3 3
= 1 2

3 3
Isso se confirma, dado que:
1 1 "
 
# " #
 3 2 −1 1 0
 1 3 2 1 1 = 0 1


3 3
Como já dito , matrizes agem sobre vetores. Não deve-se pensar na ma-
triz inversa de uma matriz só como uma “caixa de números” que o produto
resulta na matriz identidade, mas na matriz que desfaz a transformação
feita sobre um vetor. Aproveitando ainda o Exemplo 5.1, isso fica visível
ao verificar que:

" #" # " #


2 −1 2 1
= (5.1)
1 1 3 5

1 1 " # " #
 
 3 3 1 2
 1 2 5 = 3 (5.2)

3 3
De (3.2), fica evidente que uma forma de resolver um sistema linear
é determinar a matriz inversa de A, e em seguida aplicá-la em b (realizar
A−1 b) . Isso nem sempre é possível, entretanto. Veja o seguinte exemplo:

Exemplo 5.2
" #" # " #
2 −1 2 0
=
−2 1 4 0

Pelo que foi visto, aplicar a matriz inversa de A sobre b = [0 0]T teria
como resposta x = [2 4]T . Mas não há Mas não há uma transformação
que ao ser aplicada sobre o vetor nulo resulte em algo diferente do vetor
nulo. Logo, A−1 não existe uma vez que não se sabe como “voltar para o
vetor x após ele sofrer uma transformação de A” (diz que a transformação
não é injetora nesse caso). Além disso, há mais um problema: aplicar A sobre
0 (vetor nulo) resulta em um mesmo vetor que o do sistema do exemplo,
56 5. ÁLGEBRA LINEAR (REVISÃO)

então “não se sabe como voltar pois há mais de uma maneira de formar
um determinado vetor”.
A matriz quadrada A não possuir inversa se dá pelo fato do suas
colunas não formarem uma base para o espaço vetorial de vetores
de duas entradas (R2 ), apenas formam um subespaço vetorial S
contido no mesmo. Isso pode soar um pouco abstrato, então segue uma
breve revisão de todas essas definições.

Espaço Vetorial e Subespaço Vetorial


Espaço Vetorial
Seja V um conjunto não vazio, que possui as operações de adição e a de
multiplicação por escalar. Isso quer dizer que, dados dois vetores u e v
pertencentes a V e um escalar α, obtemos de uma maneira única dois novos
vetores ∈ V : a soma u + v e a multplicação do escalar por um vetor αv .
V é um espaço vetorial se possui as seguintes propriedades:
1. u + (v + w) = (u + v) + w.
2. u + v = v + u.
3. Há um elemento (vetor) nulo 0 em V tal que v + 0 para qualquer v ∈ V .
4. Dado v ∈ V , existe um v ∈ V tal que v + v = 0.
5. α(u + v) = αu + αv.
6. (αβ)u = α(βu).
7. 0 · u = 0 e 1 · u = u.
p/ quaisquer v, u, w ∈ V e quaisquer escalares α, β ∈ R.
Neste curso estaremos interessados nos espaços vetoriais dos números
reais (R2 , R3 , R4 , ...), embora existam outros como o espaço dos complexos
e o espaço de funções.

Subespaço Vetorial
Definimos como um subconjunto S como um subespaço de um espaço veto-
rial V se:
1. 0 ∈ S.
2. u + w ∈ S para qualquer u, w ∈ S.
3. αu ∈ S para todo u ∈ S e α ∈ R.
Exemplos de subespaços são retas, hiperplanos e até mesmo um espaço
vetorial todo como o Rn . Olhando as colunas da matriz A , nota-se que o
subespaço gerado por ela não é o R2 todo, e sim a reta que tem como vetor
diretor [2 − 2]T . É uma verdade que para conseguir gerar um espaço
vetorial Rn , necessita-se de ao menos n vetores. E por que não foi possível
gerar o R2 , já que havia uma matriz de 2 colunas (2 vetores)? Porque
5.1. SISTEMAS LINEARES (INTRODUÇÃO) 57

o mesmos não formavam um conjunto linearmente independente


(ou não formavam uma base do R2 ). Após revisar estes conceitos
mencionados, será possível caracterizar um sistema como:

• Determinado (solução única).

• Indeterminado (infinitas soluções).

• Impossível (sem solução).

Dependência e Independência Linear


Combinação Linear
Dados n vetores v1 , v2 , ..., vn e escalares x1 , x2 , ..., xn , o vetor b gerado pela
seguinte soma:

x1 v1 + x2 v2 + x3 v3 + ... + xn vn = b
é uma combinação linear dos vetores mencionados. Olhando para
colunas de uma matriz A de um sistema linear Ax = b como vetores,
percebe-se que resolver um sistema linear é determinar os escalares (coefici-
entes) da combinação linear das colunas de A que gera b .

Vetores Linearmente Independentes(LI) e Linearmente


Dependentes (LD)
Dados k vetores v1 , v2 , v3 , ..., vk e k escalares x1 , x2 , x3 , ..., xk dizemos que
os vetores são um conjunto linearmente independente se o seguinte
sistema linear:

x1 v1 + x2 v2 +x3 v3 + ... + xk vk = 0


y
   
x1 0
x2  0
    
| | | ... | 
 x  0
  
v1 v2 v3 ... vk  
 3 =  

.  .
| | | ... |   ..   .. 
xk 0

só tiver uma única solução: x1 = x2 = x3 = ... = xk = 0.


Caso contrário, se houver uma solução diferente desta (chamada de solução
trivial) o conjunto será linearmente dependente. Um último retorno ao
Exemplo 5.2 será bem vindo para ilustrar estes conceitos. Nele há uma
solução diferente da trivial que resolve o sistema linear homogêneo
(Ax = 0), o que indica que o conjunto dos vetores presentes nas colunas
58 5. ÁLGEBRA LINEAR (REVISÃO)

da matriz A é LD. Por tal motivo, o sistema possui infinitas soluções.


Geometricamente esses vetores da coluna de A são LD pois tratam-se de
vetores paralelos. No caso do R2 , basta que dois vetores não sejam
paralelos para que o conjunto seja LI, pois com 2 vetores não-colineares
é possível gerar um plano todo.
Existem 2 subsespaços associados a uma matriz A de um sistema linear
que dizem em qual dos tipos 3 tipos mencionados este se encaixa: a Imagem
(ou espaço de colunas/column space) e o Núcleo (ou espaço nulo/nullspace).
Segue uma breve definição de cada um destes e um exemplo:

Imagem
Subespaço formado por todos os vetores que podem ser escritos da forma
Ax, ou seja, todos os possíveis vetores que podem ser formados ao se realizar
uma combinação linear das colunas de A. Denotado por Im(A).

Núcleo
Subespaço formado por todos os vetores que são solução do sistema linear
homogêneo Ax = 0. Quando somente a solução trivial é a solução (caso
que ocorre quando as colunas da matriz formam um conjunto LI), diz-se
que o núcleo é trivial (caso contrário o mesmo é não-trivial). Denotado
por N (A).

Exemplo 5.3

 
4 18 −82
18 9 −9 
 
17 15 −41

A Imageme oNúcleo
 são
 respectivamente:
     

 4 18 
  −2
 

Im(A) = c1 18 + c2  9  , ∀c1 , c2 ∈ R , N (A) = d  5  , ∀d ∈ R
     
   
 17 15   1 
A imagem só contém as duas direções independentes (o terceiro vetor
é uma combinação linear dos dois primeiros) e o núcleo contém todas as
infinitas formas de se resolver Ax = 0. A maneira de determinar quem são
esses subespaços algoritmicamente será vista posteriormente.

Finalmente vamos definir as características de A para cada um dos 3


tipos de sistemas:

• A tem N (A) = {0} (trivial) e b pertence a Im(A) → Sistema De-


terminado.
5.2. NORMA, PRODUTO INTERNO E ORTOGONALIDADE 59

• A tem N (A) 6= {0} (não-trivial) e b pertence a Im(A) → Sistema


Indeterminado.

• b não pertence a Im(A) → Sistema Impossível.

Para finalizar, foi utilizado anteriormente o conceito de base. Sem muito


formalismo, uma base de um espaço vetorial é um conjunto finito de
vetores LI , tal que sua combinação linear gera todo vetor pertencente
a este espaço vetorial. Por isso foi dito anteriormente que é necessário
n vetores linearmente independentes para se gerar o espaço (precisa-se de
uma base deste). Vale ressaltar que base não é unica, existem infinitas
bases para um determinado espaço vetorial. Veja dois exemplos de
base para o espaço tridimensional R3 :
n o
• [1 0 0]T , [0 1 0]T , [0 0 1]T
n o
• [3.4 3 − 3]T , [−1 4 − 2.82]T , [5 2 5]T

5.2 Norma, Produto Interno e Ortogonalidade


Existem algumas propriedades fundamentais de vetores que são funda-
mentais para o entendimento de métodos de resolução de sistemas li-
neares e cálculo de erro envolvido ao solucionar estes problemas
no computador.

Norma (ou módulo) de um vetor


Dadas todas n componentes de um vetor v ∈ Rn , definimos a sua norma
(denotada por ||v||) como uma função de Rn → R tal que:
1. ||v|| ≥ 0.

2. ||0|| = 0.

3. ||αv|| = |α|||v|| para todo α ∈ R.

4. ||v + w|| ≤ ||v|| + ||w|| para todo v, w ∈ Rn (desigualdade triangular).

É normal um certo estranhamento com essa definição um tanto quanto


formal, afinal em disciplinas como Física e Cálculo diz-se somente que a
norma é a raiz quadrada da soma dos quadrados das coordenadas de
um vetor. A questão é que isso é um tipo de norma, a que usa como noção
de distância a distância Euclidiana. Boa parte desse curso se importará
somente com essa norma (que é chamada de norma L2 ou Euclidiana),
mas para mensurar erros ela não é a melhor computacionalmente (neste
caso, é mais sugerida a norma Sup ou Inf ). Veja uns exemplos de norma
de vetores, incluindo estas duas já mencionadas:
60 5. ÁLGEBRA LINEAR (REVISÃO)

• A norma L1 :
n
X
||v||1 = |vi |
i=1

• A norma L2 (ou Euclidiana):


v
u n
uX
||v||2 = t vi2
i=1

• A norma Lp (pouco utilizada):


n
! p1
X
||v||p = vip
i=1

• A norma L∞ (ou norma sup, norma infinity ou norma inf):


||v||∞ = max |vi |
Ou seja, essa norma lhe dá a coordenada de maior módulo do vetor
(em módulo).
OBS: Para não carregar muito a notação, quando simplesmente for colocado
||v||, assumimos que a norma será a L2 (ou Euclidiana).

Produto interno (ou escalar)


Dados dois vetores v e w ∈ Rn , definimos o produto interno destes como:
n
X
< v, w >= vi wi = vT w = ||v||||w|| cos(β),
i=1

p/β sendo o ângulo entre estes dois vetores.


Será mais comum nestas notas a terceira forma de representar o produto
interno (vT w). Além disso, é fácil perceber que vT w = wT v.
OBS: Produto de matrizes NÃO é em geral comutativo! Veja
os seguintes exemplos:

Exemplo 5.4

" #
h i 1
1 1 =2
1
produto interno

" # " #
1 h i 1 1
1 1 =
1 1 1
produto tensorial (não será muito explorado nesse curso)
5.2. NORMA, PRODUTO INTERNO E ORTOGONALIDADE 61

Exemplo 5.5

    
1 2 3 2 3 5 −21 22 20
4 5 6 −1 2 3  −39 52 53
=
    
 
7 8 9 −7 5 3 −57 82 86
    
2 3 5 1 2 3 49 59 69
−1 2 3 4 5 6 = 28 32 36
    
−7 5 3 7 8 9 34 35 36

Ortogonalidade
Dois vetores não-nulos v e w ∈ Rn são ditos ortogonais (ou perpendicu-
π
lares) se o ângulo entre os mesmos for igual a . O produto interno dos
2
mesmos será sempre nulo, já que:

π
 
vT w = ||v||||w|| cos = ||v||||w|| · 0 = 0
2
Um conjunto de vetores ortogonais é necessariamente linearmente
independente . Além disso, escrever um vetor com uma base ortogonal
é mais imediato do que no caso geral, tudo uma consequência do produto
interno entre estes ser nulo. Vejamos primeiramente a prova de que um
conjunto de vetores ortogonais é necessariamente linearmente independente.
Teorema: Um conjunto de vetores ortogonais é necessariamente linear-
mente independente.
Prova: Sejam q1 , q2 , q3 , ..., qn ∈ Rn vetores não-nulos ortogonais e
x1 , x2 , x3 , ..., xn ∈ R, a combinação linear dos mesmos que forma 0

x1 q1 + x2 q2 + x3 q3 + ... + xn qn = 0
1. Para todo qj (1 ≤ j ≤ n) , se realizarmos o produto de ambos os lados
pela esquerda de qj (produto interno):
qjT (x1 q1 + x2 q2 + ... + xn qn ) = qjT 0

2. Como apenas qjT qj 6= 0, temos que:


qjT (xj qj ) = xj (qjT qj ) = 0

3. Sabe-se que qjT qj = ||qj ||2 . A norma de um vetor não-nulo ao qua-


drado certamente é diferente de 0, o que leva à conclusão que:
xj = 0
p/1 ≤ j ≤ n
todos os escalares nulos prova que o conjunto é LI.
62 5. ÁLGEBRA LINEAR (REVISÃO)

Para mostrar que representar um vetor por uma base ortogonal é um pro-
cesso mais imediato do que no caso geral será necessário revisitar o conceito
de projeção ortogonal.

Projeção Ortogonal
Dados dois vetores não-nulos v e w , a projeção ortogonal de w em v é
definido como:

wT v
Pv (w) = ·v
vT v

Se v for ortogonal a w , wT v = 0 . Portanto, a projeção de resulta em:

0
Pv (w) = ·v=0
vT v
O conceito de projeção será mais explorado em breve, mas por enquanto
o que foi visto é o necessário para mostrar a facilidade de representar
um vetor numa base ortogonal.

Representação de um vetor em uma base ortogonal


Sejam q1 , q2 , ..., qn vetores não-nulos ortogonais. Pelo fato dos mesmos
formarem um conjunto LI, é possível formar qualquer vetor b ∈ Rn com
certos escalares x1 , x2 , ..., xn :

x1 q1 + x2 q2 + ... + xn qn = w

Mas estes escalares seguem sempre uma “regra”. Pelo fato da pro-
jeção ortogonal ser uma transformação linear, pode-se afirmar que:

1. Pqj (v1 + v2 ) = Pqj (v1 ) + Pqj (v2 ).

2. Pqj (αv1 ) = αPqj (v1 ).

p/ qualquer v1 , v2 ∈ Rn
p/ qualquer α ∈ R

Então, pode-se dizer que a projeção de v no vetor (p/ 1 ≤ j ≤ n) será:

x1 Pqj (q1 ) + x2 Pqj (q2 ) + ... + xn Pqj (qn ) = Pqj (b)


Já foi visto que a projeção de um vetor qualquer sobre um outro ortogonal
resulta no vetor nulo. Então, tem-se que:
5.2. NORMA, PRODUTO INTERNO E ORTOGONALIDADE 63

xj Pqj (qj ) = Pqj (b)


qjT qj bT qj
xj · qj = · qj
qjT qj qjT qj
O que nos leva a conclusão que:

vT qj vT qj qjT v
xj = T = = (5.3)
qj qj ||qj ||2 ||qj ||2

Todos estes conceitos irão facilitar o entendimento de como resolver de-


terminados sistemas lineares. Até neste momento só vimos uma maneira de
resolver um sistema linear: o uso da matriz inversa. Em geral determinar
a matriz inversa é um processo não muito simples, mas para determinadas
matrizes especiais este processo é extremamente trivial. Veja o seguinte
sistema linear :

    
0.4031 0.6422 0.6520 x1 1.0355
 0.1044 −0.7400 0.6644 x2  = −2.0401
    
−0.9092 0.1997 0.3654 x3 −0.8751
As colunas desta matriz são vetores ortogonais... aliás são algo mais do
que isso: são vetores ortonormais (ortogonais com norma igual a 1).
Já foi visto que o desafio de resolver um sistema linear nada mais é do que
determinar os escalares que fazem b ser uma combinação linear das colunas
de A . Usando a expressão (3.3), temos que os escalares serão dados por:
 
  1.0355
0.4031 0.1044 −0.9092 −2.0401
−0.8751
x1 = =1
1  
  1.0355
0.6422 −0.7400 0.1997 −2.0401
−0.8751
x2 = =2
1  
  1.0355
0.6520 0.6644 0.3654 −2.0401
−0.8751
x3 = =2
1
Prestando um pouco de atenção, não foi feito nada além de x = AT b, e
tínhamos certeza que isso seria dado por x = A−1 b . Na realidade, matrizes
quadradas com colunas ortonormais possuem a matriz transposta
igual a sua inversa. Essas matrizes especiais são chamadas de matrizes
ortogonais. Segue uma breve definição deste tipo de matrizes:
64 5. ÁLGEBRA LINEAR (REVISÃO)

Matriz Ortogonal
Seja Q uma matriz ortogonal . Pode-se afirmar então que:

• As colunas de Q formam uma base ortonormal do espaço Rn .

• A matriz transposta QT é também uma matriz ortogonal.

• QT = Q−1 .

• Se v e w são vetores ∈ Rn , então:


- O produto interno após a matriz ser aplicada é preservado:
vT w = (Qv)T (Qw)
- A norma Euclidiana (tamanho do vetor) é preservada após sofer uma
transformação por Q
||Qv|| = ||v||

• O seu determinante (será estudado posteriormente) é igual a 1 ou -1.

Exemplos de transformações lineares geométricas representadas por ma-


trizes ortogonais são rotações e reflexões.
Um bom entendimento dos conceitos de ortogonalidade é necessário para
compreender uma certa forma de resolver sistemas lineares. Além
disso, é um conhecimento útil também para problemas de autovalores.
Isso tudo será confirmado no capítulo 6.

5.3 Sistemas lineares (métodos de resolução)


Finalmente veremos de fato algoritmos que resolvem um sistema linear.
Pode-se dividir estes em dois grupos: os métodos diretos e os métodos
iterativos. Como já vimos no primeiro capítulo, o primeiro tem um quan-
tidade finita de passos para resolver um determinado problema, e em teoria
resulta na solução analítica (só não resulta pelo erro de representação
dos números em um computador). Já os métodos iterativos não resultam
na solução exata, mas a medida que o mesmo executa mais passos, mais
próximo ele fica da solução analítica (vale ressaltar que também sofre dos
erros de representação em um computador além do erro de aproxima-
ção/iteração mencionado). Então uma pergunta natural a se fazer seria:
“Para que usar método iterativos no lugar de um método direto, se este
último possui menos fonte de erros?”. Métodos diretos em geral ocupam
uma quantidade consideravelmente maior de memória do computador do
que um método iterativo (dependendo da dimensão do problema isso pode
ser um problema), e se já se possui uma estimativa boa da solução (e somente
uma aproximação dentro de uma tolerância é o desejado) o método iterativo
5.3. SISTEMAS LINEARES (MÉTODOS DE RESOLUÇÃO) 65

pode se mostrar mais interessante. Uma etapa importante de resolver um


problema de engenharia é avaliar qual o melhor método a ser empregado
para um dado problema, então é necessário que se entenda todas as abor-
dagens para resolver um sistema linear, independente de serem diretas ou
não. De início, vejamos o mais famoso dos métodos diretos: a Eliminação
Gaussiana.

Eliminação Gaussiana
Dado um sistema linear Ax = b , deseja-se obter um sistema linear
triangular superior equivalente mais fácil de ser resolvido U x = y . Sis-
temas triangulares são fáceis de ser resolvidos, uma vez que basta aplicar o
processo de substituição reversa para se obter a solução x do sistema. O
processo envolve em aplicar operações elementares sobre a matriz A e o
vetor b simultâneamente. Vamos ver um exemplo:

Exemplo 5.6:
     
x1 + 2x2 + x3 = 5

 1 2 1 x1 5
3x + 2x + 4x = 17 → 3 2 4 x2  = 17
    
1 2 3


4x + 4x + 3x = 26
1 2 3
4 4 3 x3 26

Construímos uma matriz aumentada [A|b] . Em seguida deseja-se so-


mar linhas da matriz a fim de zerar elementos abaixo da diagonal
principal. Selecionamos um elemento que é chamado de pivô em cada co-
luna para realizar tal feito. Inicialmente o pivô é o elemento não nulo a11
da matriz.

     
1 2 1 | 5 1 2 1 | 5 1 2 1 | 5
3 2 4 | 17 → 0 −4 1 | 2 → 0 −4 1 | 2
     
    
4 4 3 | 26 4 4 3 | 26 0 −4 −1 | 6
a21
1. L2 ← L2 + (− )L1 = L2 + (−3)L1
a11
a31
2. L3 ← L3 + (− ) = L3 + (−4)L1
a11
Com todos os elementos abaixo do pivô nulos, devemos caminhar para
outro pivô. Será o elemento não nulo da matriz a22 .

   
1 2 1 | 5 1 2 1 | 5
0 −4 1 | 2 → 0 −4 1 | 2
   
0 −4 −1 | 6 0 0 −2 | 4
66 5. ÁLGEBRA LINEAR (REVISÃO)

a32
1. L2 ← L2 + (− )L1 = L3 + (−1)L2 .
a22
Por fim torna-se o problema de resolver [A|b] em um outro mais fácil de
ser resolvido [U |y]. O processo de substituição reversa é essencialmente
encontrar as variáveis do vetor solução de “baixo para cima”.

4
x3 = = −2
−2
2 − [1(−2)]
x2 = = −1
−4
5 − [1(−2) + 2(−1)]
x1 = =9
1

É natural se questionar o que são essas operações elementares/soma de


linhas. Matricialmente o que está sendo feito é aplicar sucessivamente
matrizes ditas elementares Cij {α} , que é uma matriz triangular inferior
definida como Cij {α} = I + αEij , onde Eij é uma matriz que tem todos
os elementos nulos, exceto o elemento da posição ij que é igual a 1.
Vejamos no sistema resolvido o que foi feito de fato:

C32 {−1}C31 {−4}C21 {−3}Ax = C32 {−1}C31 {−4}C21 {−3}b

Chamando L−1 = C32 {−1}C31 {−4}C21 {−3}:

L−1 Ax = L−1 b → U x = y
Não se estranhe o uso de ter chamado aquela composição de matrizes de
L−1 . Isso fará mais no próximo assunto que é decomposição LU.

Decomposição LU
Imagine o seguinte cenário: um engenheiro percebeu que uma entrada
do vetor b do seu sistema linear estava incoerente. Certamente seria algo
custoso resolver o processo de eliminação gaussiana mais uma vez. Mas não
há dúvidas que as operações elementares a serem aplicadas seriam
exatamente as mesmas do que a do sistema anterior. Daí surgiu
a ideia de armazenar as operações elementares, decompondo a matriz em
duas matrizes triangulares. Olhando novamente para as matrizes que
representam as operações elementares, uma característica muito interessante
das mesmas é o que faz com que essa decomposição seja obtida com tran-
quilidade:
Lema: A inversa da matriz Cij {α} é igual a Cij {−α}. Isso é possível
de se verificar, dado que:
5.3. SISTEMAS LINEARES (MÉTODOS DE RESOLUÇÃO) 67

Cij {α}Cij {−α} = (I + αEij )(I − αEij ) = (I − αEij + αEij − α2 Eij ) = (I − α2 Eij )

Como Eij tem apenas uma posição não nula (a saber, a posição (i, j)),
seu quadrado só pode ser diferente de zero se i = j, que nunca é o caso
2
quando tratamos de matrizes elementares.Logo, Eij = 0, então chegamos que
Cij {α}Cij {−α} = I, demonstrando esta propriedade (produto resultar na
identidade mostra que é a inversa). A ideia intuitiva por trás dessa inversa
no processo de eliminação seria a de que o inverso de somar duas linhas
seria realizar uma subtração análoga
Outra propriedade muito importante de matrizes triangulares inferiores é
que o produto de uma triangular inferior com outra sempre resulta
em uma triangular inferior. Desta propriedade podemos então dizer que
L−1 é uma matriz triangular inferior, uma vez que é dada pelo produto de
matrizes elementares Cij . Pois bem, haviamos dito também que:

L−1 A = U
Se multiplicarmos por (L−1 )−1 , ou seja, L ambos os lados desta igualdade,
obtem-se:

A = LU
Resta saber expressar quem seria a matriz L. Como já vimos no início
do capítulo, a matriz inversa é a matriz que desfaz a transformação feita.
Vejamos então quem seria essa matriz inversa no exemplo que resolvemos, e
depois ficará fácil de transcender:

L−1 = C32 {−1}C31 {−4}C21 {−3}

Para que surja uma matriz identidade (usando o que já vimos sobre as
matrizes elementares), basta fazer:

C21 {3}C31 {4}C32 {1}C32 {−1}C31 {−4}C21 {−3}


C21 {3}C31 {4}(I)C31 {−4}C21 {−3} = C21 {3}C31 {4}C31 {−4}C21 {−3}
C21 {3}(I)C21 {−3} = C21 {3}C21 {−3} = I

Então, não resta dúvidas que L = C21 {3}C31 {4}C32 {1}. Isto sempre irá
ocorrer, a matriz L será uma composição das matrizes elementares com os
escalares com sinais trocados. Umas considerações a se fazer são que na
prática estas matrizes elementares não são construídas, é realizada
a soma das linhas e o escalar (com sinal trocado) é armazenado na posição
(i, j) correspodente. Vejamos o seguinte exemplo:
68 5. ÁLGEBRA LINEAR (REVISÃO)

Exemplo 5.7
Determinar a decomposição A = LU da seguinte matriz:

 
1 1 −2
A = 1 3 −1
 
1 5 1

Elimando elementos abaixo do pivô a11 = 1:

 
1 1 −2
0 2 1 
 
0 4 3

a21
1. L2 ← L2 + (− )L1 = L2 + (−1)L1
a11
a31
2. L3 ← L3 + (− ) = L3 + (−1)L1
a11

Elimando elementos abaixo do pivô a22 = 2:

 
1 1 −2
0 2 1 
 
0 0 1

a23
1. L3 ← L3 + (− )L2 = L3 + (−2)L2
a22

Então temos enfim que:

   
1 0 0 1 1 −2
L = 1 1 0 U = 0 2 1 
   
1 2 1 0 0 1

Se fosse necessário resolver um sistema Ax = b já tendo a decomposição


LU , as seguintes etapas seriam realizadas (usando a introdução de uma
variável temporária y = U x):
1 . R e s o l v e r s i s t e m a l i n e a r Ly = b usando substituição direta
(L é t r i a n g u l a r i n f e r i o r )
2 . R e s o l v e r s i s t e m a l i n e a r U x = y usando substituição inver-
sa ( U é t r i a n g u l a r s u p e r i o r )
5.3. SISTEMAS LINEARES (MÉTODOS DE RESOLUÇÃO) 69

Pivoteamento Parcial
Uma possível adversidade que se pode encontrar é realizar eliminação
sobre uma matriz que possui zeros ao longo da diagonal, por exemplo:

Exemplo 5.8
 
0 −1 2
−4 1 0
 
1 2 5
Se tentassemos realizar eliminação gaussiana da mesma forma que os
a23
casos anteriores, 0 seria considerado um pivô e L3 ← L3 + (− )L2 =
a22
−4
L3 + (− )L2 (divisão por zero).
0

Exemplo 5.9
Num ambiente computacional, outro problema é visível e será usada uma
situação hipotética só pra ilustrá-lo: imagine um computador que trabalhe
na aritimética de 4 dígitos. Desejamos resolver o seguinte sistema linear:
" #" # " #
10−5 1 x1 1
=
1 1 x2 2
Se realizarmos eliminação gaussiana, temos que:
" # " #
10−5 1 | 1 10−5 1 | 1

1 1 | 2 0 −99999 | −99998
Na prática os números −99999 e −99998 serão arredondados para −99990
e −99990:
" #
10−5 1 | 1
0 −99990 | −99990

A solução deste sistema neste computador é x∗ = [0 1]T . Na realidade é


x = [1.00001 0.99999]T . Ou seja, um erro relativo (pela norma Euclidiana)
de:

||x − x∗ || 1
Relativo = = ≈ 0.707 ≈ 70.7%
||x|| 1.4142
Para contornar esses dois problemas, usa-se o chamado pivoteamento
parcial. Essa técnica diminui erros por permutar linhas e fazer com
que os pivôs não sejam mais os menores números (em módulo) da
linha. Vejamos ela aplicada à estes dois exemplos:
70 5. ÁLGEBRA LINEAR (REVISÃO)

Exemplo 5.8 (continuação)


A ideia do pivoteamento parcial é sempre olhar a coluna de uma matriz
e encontrar o elemento de maior módulo. Neste caso, este elemento é o
a12 = −4. Isso indica que as linhas 1 e 2 devem ser permutadas. Após
essa permutação, pode-se realizar eliminação gaussiana:

       
0 −1 2 L2 −4 1 0 L2 −4 1 0
−4 1 0 → L1   0 −1 2 → L1   0 −1 2
       
1 2 5 L3 1 2 5 L3 0 2.25 5

1. Permutar (L1 , L2 )
a31 1
 
2. L3 ← L3 + (− ) = L3 + L1
a11 4

        
L2 −4 1 0 L2 −4 1 0 L2 −4 1 0
L1   0 −1 2 → L3   0 2.25 5 → L3   0 2.25 5 
        
L3 0 2.25 5 L1 0 −1 2 L1 0 0 4.22222

1. Permutar (L1 , L3 )
a32
2. L1 ← L1 + (− ) = L1 + (−0.44444)L3
a22
Não é mais tão claro agora como se resolveria um sistema Ax = b, já
tendo realizado eliminação Gaussiana sobre a A previamente. É possível
escrever um sistema equivalente LU x = P b, onde L e U novamente são
matrizes triangulares e P é uma matriz de permutações. Para esse problema,
essas matrizes seriam:

     
1 0 0 −4 1 0 0 1 0
L = −0.25 1 0 U =  0 2.25 5  P = 0 0 1
     
0 −0.44444 1 0 0 4.22222 1 0 0

Umas considerações a se fazer são:

• A matriz U é a matriz triangular superior obtida após as per-


mutações e soma da linhas.

• L é construída de forma similar ao caso sem pivoteamento, só há


a diferença de que cada vez que acontece uma permutação
na U , os elementos abaixo da diagonal são permutados (por
exemplo, o −0.25 originalmente ficava na posição a31 e passou a ficar
na posição a21 pois L3 ficou na segunda linha final da matriz U ).
5.3. SISTEMAS LINEARES (MÉTODOS DE RESOLUÇÃO) 71

• A matriz P é a matriz que armazena a disposição final das li-


nhas após as permutações. Ao se resolver um sistema linear, o
vetor b do sistema sofre essa permutação. Essa matriz é sempre a
matriz identidade com suas linhas trocadas. Uma observação interes-
sante é que como trata-se de uma matriz identidade com suas linhas
trocadas, as colunas são ortonormais e por isso trata-se de uma matriz
ortogonal.

• É possível escrever a matriz como A = P T LU . Isso é conhecido como


a decomposição P LU ou LU com pivoteamento da matriz.

Exemplo 5.9 (continuação)


Vamos realizar novamente eliminação Gaussiana, mas usando agora pivote-
amento parcial:

" # " # " #


10−5 1 | 1 1 1 | 2 1 1 | 2
→ →
1 1 | 2 10−5 1 | 1 0 0.99999 | 0.99998

Lembrando que estamos trabalhando com um que trabalha com arit-


mética de 4 dígitos. Na prática os números 0.99999 e 0.99998 serão
arredondados para 0.9999 e 0.9999:

" #
1 1 | 2
0 0.9999 | 0.9999

Esse sistema terá solução x∗ = [1 1]T . O erro relativo da solução se-


ria:ia:

||x − x∗ || 1.4142 × 10−5


Relativo = ≈ ≈ 10−5 ≈ 0.001%
||x|| 1.4142
Que mostra como o pivoteamento diminuiu os erros obtidos por causa da
aritmética finita do computador.

Exemplo 5.10
É possível calcular o núcleo e a imagem de uma matriz usando eliminação
Gaussiana:

 
4 18 −82
18 9 −9 
 
17 15 −41
72 5. ÁLGEBRA LINEAR (REVISÃO)

A decomposição LU da matriz é:

 
1 0 0  
  4 18 −82
9   
L=
 1 0 U =0

−72 360 

2

  
 17 41 
1 0 0 0
4 48
A imagem da matriz pode ser obtida olhando os pivôs não-nulos da
matriz U . As colunas referentes a esses pivôs na matriz A são uma
base para imagem. Neste caso, seriam os vetores c1 = [4 18 17]T e
c2 = [18 9 15]T .
Para se determinar o núcleo da matriz, basta resolver o sistema homo-
gêneo Ax = 0 = LU x = 0. Tendo a decomposição LU , basta solucionar
U x = 0 (pois a inversa de L pode ser aplicada em ambos os lados da igual-
dade e L−1 0 = 0):

    
4 18 −82 x1 0
0 −72 360  x2  = 0
    
0 0 0 x3 0

−360
x2 = x3 = 5x3
−72
82x3 − 18(5x3 ) −8
x1 = = x3 = −2x3
4 4

 
−2
O núcleo é então x3  5 , onde x3 ∈ R.
 
1

É possível calcular determinante de matrizes também usando eli-


minação Gaussiana. Veja como uma matriz pode ser escrita como A = LU
(caso não haja pivoteamento envolvido). Existem duas propriedades que
não serão demonstradas sobre determinantes:

• Determinante do produto de duas matrizes quadradas é o produto dos


determinante:

det(AB) = det(A) × det(B)

• Determinante de uma matriz triangular (superior ou inferior) é igual


ao produto dos elementos da diagonal principal.
5.4. AUTOVALORES E AUTOVETORES 73

Usando a primeira propriedade, é uma verdade que:

det(A) = det(L) × det(U )

Agora usando a segunda propridade, pode se afirmar que:

det(L) = 1 × 1 × 1 = 1 (sempre será 1 pela definição da matriz)


det(U ) = 4 × −72 × 0 = 0

Portanto, det(A) = 1 × 0 = 0 = det(U ).


OBS: Caso houvesse pivoteamento, seria possível obter também o de-
terminante fazendo det(A) = det(P T ) × det(L) × det(U ), sendo que
det(P T ) = (−1)k , onde k é o número de permutações feitos ao longo do
processo da eliminação.
OBS2 : O processo de eliminação Gaussiana sobre uma matriz A com
colunas linearmente dependentes (ou núcleo não-trivial) irá sem-
pre resultar em uma U com uma linha toda nula. Isso faz com que o
determinante dessas matrizes A seja necessariamente igual a 0.

5.4 Autovalores e Autovetores


Em áreas como vibrações mecânicas, teoria da estabilidade e outra mais
problemas podem ser modelados da seguinte forma:

Ax = λx,

onde λ (escalar) e x são as incógnitas do problema.


É usual quando aplicamos A sobre um vetor x o mesmo mudar de dire-
ção... mas isso nem sempre é uma verdade. Existem vetores x que simples-
mente aumentam/diminuem de tamanho e/ou mudam somente de sentido
(a direção não muda!) quando se é feito Ax. Esses vetores especiais são
chamados os autovetores de A.
Veja o seguinte exemplo:
" #" # " # " #
0 −1 1 −1 1
= = −1
−1 0 1 −1 1

Umas observações importantes:

• O vetor que sofre a transformação é não nulo

• O resultado é um escalar multiplicado pelo vetor original(Ax = −1x).


Este escalar é chamado de um autovalor associado a A.
74 5. ÁLGEBRA LINEAR (REVISÃO)

Uma forma de resolver este tipo de problema é a seguinte: vamos escrever


a situação de aplicar A sobre x, com a resposta sendo um múltiplo de x.
Vamos considerar λ sendo um número real qualquer.

Ax = λx
Isso é equivalente a:
Ax = λIx
Ax − λIx = 0
(A − λI)x = 0

A matriz (A − λI) aplicada em um vetor x (x 6= 0) resulta em 0. Isso


indica que esta matriz possui núcleo não-trivial, e por isso
det(A − λI) = 0. Esse determinante será um polinômio em λ e
as raízes desse polinômio são todos os escalares que haviam sido
definidos como os autovalores da matriz A. Ilustremos isso no seguinte
exemplo:

Exemplo 5.11
    
1 −1 5 x1 x1
−1 2 1 x2  = λ x2 
    
0 0 5 x3 x3


y

    
1 − λ −1 5 x1 0
 −1 2−λ 1  x2  = 0
    
0 0 5 − λ x3 0


y

 
1−λ −1 5   
 1  x1  0
 0 2−λ+  x2  = 0
1 
 λ−1
0 0 5−λ x3 0

O determinante dessa matriz (triangular superior) deve ser nulo, logo:

1
 
det(A − λI) = p(λ) =(1 − λ) 2 − λ + (5 − λ) = 0
λ−1
 
=(5 − λ) λ2 − 3λ + 1 = 0
5.4. AUTOVALORES E AUTOVETORES 75

1 √  1 √ 
As raízes desse polinômio são λ1 = 5, λ2 = 3 + 5 e λ3 = 3− 5 .
2 2
Com os autovalores determinados, é possível encontrar as direções (au-
tovetores) associadas. Para isso, basta substituir cada um dos λ’s na
equação (A − λI) = 0 e determinar a solução do sistema homogêneo:

• λ1 = 5:

 
0
  
1 − 5 −1 5 x1
 −1 2 − 5 1  x2  = 0
 
0 0 5−5 x3 0

y

   
0

−4 −1 5 x1
−1 −3 1 x2  = 0
 
0 0 0 x3 0

Resolvendo este sistema, obtem-se como resposta


v1 = d1 = [14 − 1 11]T , d1 ∈ R. De fato, se pegarmos qualquer
vetor nesta forma, podemos perceber que:

 
70
      
1 −1 5 14 1 −1 5 14
−1 2 1 d1 −1 = d1 −1 2 1 −1 = d1 −5
 
0 0 5 11 0 0 5 11 55
 
14
= 5d1 −1 = 5v1
 
11

1 √ 
• λ2 = 3+ 5
2


1 √  
1 − 3 + 5 −1 5    
 2 √
 x1 0
 1   
−1 2− 3+ 5 1  x2 = 0
     
 2 √  x3
 1 0
0 0 5− 3+ 5
2
 √1
T
Resolvendo este sistema, obtem-se como resposta v2 = d2 (1 − 5) 1 0 ,
2
d2 ∈ R.
1 √ 
• λ3 = 3− 5
2
76 5. ÁLGEBRA LINEAR (REVISÃO)


1 √  
1 − 3 − 5 −1 5    
 2 √
 x1 0
 1   
−1 2− 3− 5 1  x2 = 0
     
 2 √  x3
 1 0
0 0 5− 3− 5
2

1 √ T
Resolvendo este sistema, obtem-se como resposta v3 = d3 (1 + 5) 1 0 ,
2
d3 ∈ R.

Esta é uma forma de se resolver problemas de autovalor, mas percebe-se


que não é muito amigável para um ambiente computacional (exige
determinação do polinômio característico e além disso calcular os
raízes do mesmo). No próximo capítulo veremos métodos numéricos
capazes de resolver esses problemas de uma melhor forma.

Autovetores e Geometria de Transformações Lineares


Existem transformações lineares do tipo projeção ortogonal e reflexão,
que além de aparecerem em alguns problemas que envolvem geometria, são
base para alguns métodos numéricos para se resolver Ax = λx ou Ax = b.
Sobre uma projeção ortogonal: se temos uma matriz P que projeta um
vetor qualquer para um subespaço (uma reta ou um plano) e aplicarmos
P sobre um vetor v1 que está dentro deste subespaço, não há dúvida
que P v1 = v1 sem fazer conta alguma. Além disso, se for feito o mesmo
com o vetor v2 que é perpendicular à este subespaço, é uma verdade que
P v2 = 0. Veja isso visualmente no seguinte exemplo do R2 :
5.4. AUTOVALORES E AUTOVETORES 77

Se você prestar atenção, por geometria identificamos os autovetores e


seus autovalores associados. Os vetores que pertencem ao subespaço (no
exemplo é uma reta) serão sempre os autovetores com autovalor 1. Já
os perpendiculares ao subespaço serão autovetores com autovalor 0.
A reflexão/espelhamento é algo muito similar. A diferença é que quando
você possui uma transformação linear deste tipo E e aplica a mesma sobre
um vetor perpendicular ao subespaço referente a transformação (também
chamado de espelho da transformação), Ev2 = −v2 , ou seja, (autovetores
associados ao autovalor −1). E se aplicar E sobre um vetor perten-
cente ao subespaço, Ev1 = v1 (autovetores associados ao autovalor
1). Segue um outro exemplo para ilustrar isso no R2 :

Diagonalização de matrizes
Exemplo 5.12
Seja M a seguinte matriz:
" #
2 6
M=
0 −1

Seus autovalores e autovetores correspondentes são λ1 = 2, v1 = [1 0]T


e λ2 = −1, v2 = [−2 1]T . Ou seja:

M v1 = λ 1 v1
M v2 = λ 2 v1
78 5. ÁLGEBRA LINEAR (REVISÃO)

Se definirmos uma matriz V tal que suas colunas são os autovetores v1


e v2 , então pode se dizer também que:

 
| |
V = v1 v2 
 
| |
 
| |
M V = λ1 v1 λ2 v2 
 
| |

Se definirmos uma matriz diagonal D, tal que os elementos da diagonal


são exatamente λ1 e λ2 , podemos rescrever o lado direito da igualdade como
um produto das duas matrizes V D:

" #
λ 0
D= 1
0 λ2
 
| | " #
 λ1 0
M V = v1 v2 

0 λ2
| |
MV = V D

Se multiplicarmos o lado direito da igualdade por V −1 pela direita,


temos que:

M = V DV −1

Ou seja, escrevemos a matriz M usando as matrizes de seus autovetores


e autovalores. Isso é conhecido como a decomposição espectral. Vamos
substituir os valores e verificar quem seriam as matrizes para o exemplo:

" # " #
2 0 1 −2
D= V =
0 −1 0 1
A matriz V é inversível e sua inversa é igual a:
" #
−1 1 2
V =
0 1
Portanto, se realizarmos o produto destas 3 matrizes:
" #" #" # " #
1 2 2 0 1 −2 2 6
= =M
0 1 0 −1 0 1 0 −1
5.4. AUTOVALORES E AUTOVETORES 79

Escrever a matriz em forma diagonal facilita certas operações sobre a


matriz, uma delas é a de potencialização. Se fosse de interesse calcular
M 120 , poderíamos usar a decomposição espectral e somente elevar a
matriz diagonal D a 150-ésima potência. O motivo disso se dá pois:

M 150 =V DV −1 V DV −1 ...V DV −1
O produto V −1 V é igual a I, logo:
" #
150 150 −1 150 2150 0
M =V D V , onde D =
0 −1150

Umas considerações a fazer:


• Uma matriz quadrada (N ×N ) é diagonalizável se possuir n autove-
tores linearmente independentes, em outras palavras, se possuir
uma base de autovetores para o Rn . Nem toda matriz é dia-
gonalizável, por exemplo:
 
1 0 0
−3 1 0
12 4 1

não é diagonalizável (só possui um autovalor λ1 = 1 e somente o


autovetor v1 = [0 0 1]T ).
O motivo pela “conta” fica claro. Perceba que é necessário determinar
V −1 , e já vimos que para uma matriz ter inversa suas colunas
tem ser todas linearmente independentes.

• Se uma matriz A tem n autovalores distintos λ1 , λ2 , ..., λn associ-


ados a v1 , v2 , ..., vn , então a matriz será necessariamente diagonali-
zável. Ca so não tenha n λ’s distintos, a matriz pode ou não ser
diagonalizável.

• Uma matriz simétrica é necessariamente diagonalizável. O mo-


tivo e esse fato serão explorados no próximo capítulo.
80 5. ÁLGEBRA LINEAR (REVISÃO)
6
Álgebra Linear (novos conceitos)

Além dos métodos apresentados no capítulo anterior, existem diversos


outros métodos para se solucionar problemas do tipo Ax = b e Ax = λx.
Neste capítulo serão apresentados alguns desses, indicando em que situ-
ação cada um desses se mostra interessante. Nesta seção serão usado
como exemplos alguns dos problemas discretizados nos capítulos sobre
método das diferenças finitas, identificando que nestes a estrutura
da matriz em geral pode ser explorada.

6.1 Decomposição Cholesky


A decomposição Cholesky é uma forma de escrever A uma matriz
simétrica positiva definida como:
T
A=LL

onde L é uma matriz triangular inferior (não confundir com a L da decom-


posição LU )! Primeiramente será definido o que vem a ser uma matriz
simétrica positiva definida:

Matrizes simétricas positivas definidas


Uma matriz A (N × N ) é dita simétrica positiva definida se:

xT Ax > 0, p/qualquer x ∈ Rn

Mostrar que uma matriz simétrica qualquer satisfaz esse critério não é
tão trivial, mas existem três outras formas de evidenciar que uma matriz é
deste tipo:

• Todos os autovalores da matriz são maiores do que 0.

81
82 6. ÁLGEBRA LINEAR (NOVOS CONCEITOS)

• Os pivôs após a eliminação gaussiana ser completada são mai-


ores do que 0.

• O algoritmo da decomposição Cholesky não tentar realizar a


raiz quadrada de um número menor do que 0.

A ideia da decomposição Cholesky é encontrar os elementos lij da matriz


triangular inferior L:

    
a11 a12 ··· a1n l11 0 ··· 0 l11 l21 · · · ln1
 a21

a22 ···   l21
a2n  
l22 ··· 0   0 l22 · · ·

ln2 

= .
 . .. .. ..   .. .. ..  . .. .. .. 
 .
.   ..
 .
 . . . . . .  . . . . 

an1 an2 · · · ann ln1 ln2 · · · lnn 0 0 ··· lnn
T
A = L L

Vejamos como determinar a fatoração Cholesky em um exemplo, usando


a matriz do capítulo 3 da equação da viga (Exemplo 3.3)

    
5 −4 1 l11 0 0 l11 l21 l31
−4 6 −4 = l21 l22 0   0 l22 l32 
    
1 −4 5 l31 l32 l33 0 0 l33

Realizando o produto matricial do lado direito da igualdade, tem-se:

2

l11 = 5 → l11 = 5
−4
l11 l21 = −4 → l21 = √
5
1
l11 l31 = 1 → l31 = √
5
r
2 2 14
l21 + l22 = 6 → l22 =
5r
2
l21 l31 + l22 l32 = −4 → l32 = −8
r 35
2 2 2 2
l31 + l32 + l33 = 5 → l33 = 2
7
Uma forma de ver a decomposição Cholesky é como a generalização da
raiz quadrada positiva de um número real.

Decomposição Cholesky como caso particular da decomposi-


ção LU
Seja A = LU a decomposição de uma matriz simétrica positiva definida.
6.2. DECOMPOSIÇÃO QR (SISTEMAS LINEARES) 83

- Como A = AT , então:

LU = (LU )T = U T LT

- Dado que L e U são matrizes inversíveis:

LU = U T LT
L−1 LU = L−1 U T LT
U = L−1 U T LT
U (LT )−1 = L−1 U T LT (LT )−1
U (LT )−1 = L−1 U T
U (LT )−1 → Produto de duas matrizes triangulares superiores = matriz triangular superior
L−1 U T → Produto de duas matrizes triangulares inferiores = matriz triangular inferior

Se temos que uma matriz triangular superior é igual a uma matriz tri-
angular inferior, então temos uma matriz diagonal D.

U (LT )−1 = L−1 U T = D


U (LT )−1 = D
U = DLT
LU = LDLT
A = LDLT
√ T
Definindo a matriz L = L D, temos enfim A = L L .
Da mesma forma que a decomposição LU , para resolver um sistema
linear usando a decomposição Cholesky faz-se:
1 . R e s o l v e r s i s t e m a l i n e a r Ly = b usando substituição direta
(L é t r i a n g u l a r i n f e r i o r )
T
2 . R e s o l v e r s i s t e m a l i n e a r L x = y usando substituição inver-
T
sa ( L é t r i a n g u l a r s u p e r i o r )

6.2 Decomposição QR (sistemas lineares)


Como já visto no capítulo de revisão, representar vetores numa base
ortogonal (ou melhor até do que isso, ortonormal) é mais simples que no
caso geral. A ideia da decomposição QR é escrever sua matriz original como
um produto de duas matrizes, semelhante a decomposição LU . Antes de
entender quem seriam Q e R, será necessário olhar para um algoritmo que
forme uma base ortogonal dado um conjunto de vetores.
84 6. ÁLGEBRA LINEAR (NOVOS CONCEITOS)

Algoritmo de Gram-Schmidt
O algoritmo de Gram-Schmidt usa de projeções ortogonais para construir
uma base ortogonal. Sejam v1 , v2 ,...vn vetores linearmente independentes.
Deseja-se obter q˜1 , q˜2 ,...,q˜n , onde q̃i ⊥ q˜j = 0 ∀i, j (ortogonais) e ||q̃i || = 1
∀i (unitários).
v1
1. O primeiro desses vetores será q˜1 =
||v1 ||
2. Para obter q˜2 , será feito o seguinte:

- É uma verdade que v2 pode ser escrito como uma


combinação linear dos seguintes 2 vetores:
v2 = x1 q˜1 + x2 q2 , onde q˜1 ⊥ q2
- Calculando a projeção de v2 sobre q˜1
Pq˜1 (v2 ) = x1 Pq˜1 (q˜1 ) + x2 Pq˜1 (q2 )
Pq˜1 (v2 ) = x1 q˜1 + x2 (0) = x1 q˜1
- Subtraindo então v2 de Pq˜1 (v2 ) , temos exatamente
a componente ortogonal à q1 :
v2 − Pq˜1 (v2 ) = x2 q2
- Normalizando esse vetor, temos finalmente q˜2 ⊥ q˜1 e ||q˜2 || = 1:
x 2 q2
q˜2 =
||x2 q2 ||

3. Para obter q˜3 , basta perceber que:

- É uma verdade que v3 pode ser escrito como uma


combinação linear dos seguintes 3 vetores:
v3 = x1 q˜1 + x2 q˜2 + q3 , onde q˜1 ⊥ q˜2 ⊥ q3
- Subtrair v3 de sua projeção sobre q˜1 , faz com que tenhamos :
v3 − Pq˜1 (v3 ) = x2 q˜2 + x3 q3
- Subtrair o vetor acima de sua projeção sobre q˜2 , faz com que tenhamos :
v3 − Pq˜1 (v3 ) − Pq˜2 (v3 ) = x3 q3
- Normalizando esse vetor, temos finalmente q˜3 ⊥ q˜2 ⊥ q˜1 :
x 3 q3
q˜3 =
||x3 q3 ||

E a ideia naturalmente se estende até o enésimo vetor q˜n .


6.2. DECOMPOSIÇÃO QR (SISTEMAS LINEARES) 85

Para melhor entender o algoritmo, vejamos um exemplo de aplicação


deste sobre o seguinte conjunto de vetores:

Exemplo 6.1
 
1 1 2
 1 0 −2
 
−1 2 3
T
[1 1 − 1]T

1 1 1
• Primeiro, obtemos q˜1 = = √ √ −√ .
||[1 1 − 1]T || 3 3 3
• Em seguida, é possível fazer o seguinte para se obter q˜2 :
1
 

 3  T  T
 1  1 1 1 4 1 5
T T T
q2 = [1 0 2] − Pq˜1 ([1 0 2] ) = [1 0 2] − [1 0 2]  √  √ √ −√ =
 
 3  3 3 3 3 3 3
 1 
−√
3
 4 1 5 T  T
4 1 5
q˜2 =  3 3 3 T = √ √ √
4 1 5 42 42 42
|| 3 3 3 ||

• Por fim, é possível obter q˜3 fazendo:

q3 = [2 − 2 3]T − Pq˜1 ([2 − 2 3]T ) − Pq˜2 ([2 − 2 3]T )


1 4
   
√ √
 3  T  42   T
 1  1 1 1  1  4 1 5
= [2 − 2 3]T − [2 − 2 3]  √  √ √ −√ − [2 − 2 3]  √  √ √ √
   
 3  3 3 3  42  42 42 42
 1   5 
−√ √
3 42
 T
3 1
= 1 − −
2 2
1 T T
1 − 23
 


2 2 3 1
q˜3 =  = √ −√ −√
1 T
|| 1 − 32 14 14 14

− 2 ||

A decomposição QR e sua aplicação em sistemas lineares


Vamos iniciar definindo um número rij , tal que :

rij = viT q̃j

É possível escrever os vetores da base original vi em termos da base orto-


normal construída pelo algoritmo da seguinte forma:
86 6. ÁLGEBRA LINEAR (NOVOS CONCEITOS)

v1 = r11 q̃1
v2 = r12 q̃1 + r22 q̃2
v3 = r13 q̃1 + r23 q̃2 + r33 q̃3
.. .. .. ..
. . . .
vn = r1n q̃1 + r2n q̃2 + r3n q̃3 + ... + rnn q̃n

Escrevendo as equações acima matricialmente, temos:

 
    r11 r12 r13 ··· r1n
| | | ··· | | | | ··· | 0 r22 r23 ··· r2n 
v1 v2 v3 ··· vn  = q̃1 q̃2 q̃3 ··· q̃n   .
 
. .. .. .. .. 
| | | ··· | | | | ··· |  . . . . . 
0 0 0 0 rnn
A = Q R

Foi possível escrever a matriz A como um produto de duas matrizes


Q e R, a primeira sendo uma matriz ortogonal (já estudada no capítulo
anterior) e a segunda uma matriz triangular superior. Essas matrizes
no caso do Exemplo 6.1 seriam:

√ √ 
1 4 2  1
√ √ √ 3 −√ − 3
 3 42 14  √ 3 √ 


 1 1 3  14 21 
  
 √3
Q= √ − √ R= 0 √ √ 
 

 42 14 
  3 √2 
 1 5 1  
7

−√ √ −√

0 0 √
3 42 14 2
Assim como a

6.3 Método da Potência

6.4 Algoritmo QR (autovalores)


https://www2.math.ethz.ch/education/bachelor/seminars/fs2008/nas/
grasic.pdf

6.5 Gauss-Jacobi e Gauss-Seidel

6.6 Introdução à sistemas lineares esparsos


7
Apêndice: Implementação
Computacional

Exemplo 3.3
Mathematica

n = 1000; (∗Numero de nos∗)


e = 210 10^9;
i = 4000 10^−12; (∗dados do problema∗)
q = 20;
L = 2;
∆x = L/(n − 1) // N;

M = Table[
Table[Which[j == i, 6, j == i + 1 , −4, j == i + 2, 1, j == i − 2,
1, j == i − 1, −4, True, 0], {j, n − 2}], {i , n − 2}];
(∗Criacao da matriz, sem levar em conta a primeira e
ultima linha que mudam por causa dos contornos∗)

M[[1, 1]] = 5;
M[[n − 2, n − 2]] = 5;
b = Table[(q ∆x4 )/(ei), {n − 2}];
u = LinearSolve[M, b, Method −> "Cholesky"];
u = Join[{0}, u, {0}]; (∗Insere os contornos no vetor u para plot∗)
malhaX = Table[(i − 1) ∆x, {i, 1, n}];
(∗Gera Malha de pontos para plot∗)

87
88 7. APÊNDICE: IMPLEMENTAÇÃO COMPUTACIONAL

ListPlot[Transpose[{malhaX, u}], PlotStyle −> Red]

Matlab/Octave

clear ;
n = 1 0 0 0 ; % Numero de nos
e = 210∗10^9;
I = 4000∗10^( −12); % dados do problema
q = 20;
L = 2;

dx = L/ ( n −1);
A = zeros ( n−2,n −2); %Criando m a t r i z A e v e t o r b n u l o s
b = zeros ( n −2 ,1)

f o r i =1:n−2
f o r j =1:n−2
i f ( i==j ) A( i , j ) = 6 ;
e l s e i f ( i==j −1) A( i , j ) = −4;
e l s e i f ( i==j +1) A( i , j ) = −4; %Construcao m a t r i z
e l s e i f ( i==j −2) A( i , j ) = 1;
e l s e i f ( i==j +2) A( i , j ) = 1;
end
end
b ( i ) = ( q∗dx ^ 4 ) / ( e ∗ I ) ;
end
A( 1 , 1 ) = 5 ; A( n−2,n−2) = 5 ; %Arrumando p r i m e i r a e
%u l t i m a l i n h a que mudam por causa da cond . de c o n t o r n o

Lb = chol (A, ’ l o w e r ’ ) ;
y = Lb\b ;
u = Lb ’ \ y ; %R e s o l v e r s i s t e m a v i a C h o l e s k y

malhaX = [ 0 : dx : L ] ; %Gera malha de p o n t o s para p l o t


u = [ 0 ; u ; 0 ] ; %I n s e r e os c o n t o r n o s no v e t o r u para p l o t
plot ( malhaX , u , ’ r ’ )
89

# 10-3
5

4.5

3.5

3
u(x)

2.5

1.5

0.5

0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

x
Plot da solução, usando 1000 nós
90 7. APÊNDICE: IMPLEMENTAÇÃO COMPUTACIONAL
Bibliografia

[1] J.C. Tannehil, Dale A. Andeson, Richard H. Pletcher, :Computational


Fluid Dinamics and Heat Transfer , Ed. Taylor and Francis

[2] Richard L. Burden and J. Douglas Faires :Numerical Analysis , Ed. CEN-
GAGE Learning

[3] M Necati Ozisik :Heat Conduction , Ed. John Wiley

[4] G. Strang :Álgebra Linear e suas aplicações Ed. CENGAGE LEAR-


NING

[5] S. C. Coutinho :Álgebra Linear Algorítmica , disponível em http://www.


dcc.ufrj.br/~collier/CursosGrad/ala/alinear.pdf

[6] David Bindel Introduction to Scientific Computing - course lectures, dis-


ponível em http://www.cs.cornell.edu/%7Ebindel/class/cs3220%
2Ds12/index.html

91

Você também pode gostar