Você está na página 1de 236

Práticas de Cálculo

Numérico
Prof.ª Patrícia de Andrade Paines

2019
1ª Edição
Copyright © UNIASSELVI 2019

Elaboração:
Prof.ª Patrícia de Andrade Paines

Revisão, Diagramação e Produção:


Centro Universitário Leonardo da Vinci – UNIASSELVI

Ficha catalográfica elaborada na fonte pela Biblioteca Dante Alighieri


UNIASSELVI – Indaial.

P147p

Paines, Patrícia de Andrade

Práticas de cálculo numérico. / Patrícia de Andrade Paines. – Indaial:


UNIASSELVI, 2019.

226 p.; il.

ISBN 978-85-515-0278-5

1. Cálculos numéricos - Prática - Brasil. II. Centro Universitário


Leonardo Da Vinci.

CDD 515

Impresso por:
Apresentação
O objetivo deste livro é apresentar ao aluno iniciante os principais
métodos de cálculo numéricos, noções básicas de utilização e aplicações
práticas em MATLAB. Esta disciplina visa apresentar uma rápida descrição
do software, onde são apresentados os principais comandos para a
implementação de algoritmos.

Separados em três unidades, iremos apresentar os métodos e


demonstrar as práticas de cálculo numérico para a solução de problemas
matemáticos e os comandos específicos no software MatLab. Em cada unidade
existe uma preocupação em expor assuntos atuais e de importância prática.

A Unidade 1 apresenta os principais métodos empregados na solução


de sistemas de equações e sistemas lineares e suas definições, tipologias e
abordagem funcional dos métodos diretos e iterativos com implementação
dos mesmos em Matlab.

A Unidade 2 trata as definições e tipologias de métodos aplicados


em sistemas de equações não lineares com as principais abordagens para
obter as raízes de funções reais pelo processo iterativo (zeros), bem como o
processamento numérico via aplicação computacional. Além disso, aborda
os principais métodos de interpolação polinomial, quando não dispomos da
função original.

A Unidade 3 relaciona os procedimentos de integração numérica a partir


dos métodos fechado e aberto, tais como os métodos trapezoidal e de Simpson,
e os métodos do ponto central e da quadratura de Gauss, respectivamente, na
solução de um problema. Também, nesta unidade são descritos os métodos
para equações diferenciais ordinárias de aplicação simples na solução de um
problema de valor inicial, tais como de Euler e de Runge-Kutta, bem como de
aplicação múltipla através dos métodos de Adams-bashforth e de predição de
correção. Além disso, métodos de solução de problema de valor no contorno,
como de diferenças finitas e de determinação de uma condição inicial em
função de uma condição de contorno.

Para melhorar seu conhecimento e metodologia de estudo em relação


aos métodos numéricos, são apresentadas, ao final de cada tópico do livro,
exercícios de fixação, videoaulas e sugestões de leituras complementares
para consultas futuras.

A autora.

III
NOTA

Você já me conhece das outras disciplinas? Não? É calouro? Enfim, tanto


para você que está chegando agora à UNIASSELVI quanto para você que já é veterano, há
novidades em nosso material.

Na Educação a Distância, o livro impresso, entregue a todos os acadêmicos desde 2005, é


o material base da disciplina. A partir de 2017, nossos livros estão de visual novo, com um
formato mais prático, que cabe na bolsa e facilita a leitura.

O conteúdo continua na íntegra, mas a estrutura interna foi aperfeiçoada com nova
diagramação no texto, aproveitando ao máximo o espaço da página, o que também
contribui para diminuir a extração de árvores para produção de folhas de papel, por exemplo.

Assim, a UNIASSELVI, preocupando-se com o impacto de nossas ações sobre o ambiente,


apresenta também este livro no formato digital. Assim, você, acadêmico, tem a possibilidade
de estudá-lo com versatilidade nas telas do celular, tablet ou computador.
 
Eu mesmo, UNI, ganhei um novo layout, você me verá frequentemente e surgirei para
apresentar dicas de vídeos e outras fontes de conhecimento que complementam o assunto
em questão.

Todos esses ajustes foram pensados a partir de relatos que recebemos nas pesquisas
institucionais sobre os materiais impressos, para que você, nossa maior prioridade, possa
continuar seus estudos com um material de qualidade.

Aproveito o momento para convidá-lo para um bate-papo sobre o Exame Nacional de


Desempenho de Estudantes – ENADE.
 
Bons estudos!

IV
V
VI
Sumário
UNIDADE 1 – SISTEMAS DE EQUAÇÕES LINEARES.................................................................. 1

TÓPICO 1 – SISTEMAS LINEARES..................................................................................................... 3


1 INTRODUÇÃO...................................................................................................................................... 3
2 EQUAÇÕES LINEARES....................................................................................................................... 3
2.1 SOLUÇÃO DE UM SISTEMA NXN.............................................................................................. 5
3 RESOLUÇÃO DE SL COM MATLAB............................................................................................... 6
4 ALGUNS COMANDOS BÁSICOS NO MATLAB......................................................................... 7
RESUMO DO TÓPICO 1........................................................................................................................ 11
AUTOATIVIDADE.................................................................................................................................. 12

TÓPICO 2 – MÉTODOS DIRETOS...................................................................................................... 15


1 INTRODUÇÃO...................................................................................................................................... 15
2 SOLUÇÃO DIRETA ............................................................................................................................. 15
3 MÉTODOS DIRETOS DE RESOLUÇÃO NO MATLAB.............................................................. 16
3.1 MÉTODO DE ELIMINAÇÃO DE GAUSS.................................................................................... 16
3.2 MÉTODO DE GAUSS-JORDAN.................................................................................................... 38
3.3 MÉTODO DA INVERSÃO DE MATRIZES.................................................................................. 39
3.4 MÉTODO DE DECOMPOSIÇÃO LU (DE CROUT)................................................................... 44
3.5 MÉTODO DE CHOLESKY.............................................................................................................. 61
RESUMO DO TÓPICO 2........................................................................................................................ 63
AUTOATIVIDADE.................................................................................................................................. 64

TÓPICO 3 – MÉTODOS ITERATIVOS............................................................................................... 67


1 INTRODUÇÃO...................................................................................................................................... 67
2 SOLUÇÃO ITERATIVA....................................................................................................................... 68
3 MÉTODOS DE RESOLUÇÃO NO MATLAB.................................................................................. 70
3.1 MÉTODO ITERATIVO DE JACOBI............................................................................................... 70
3.2 MÉTODO ITERATIVO DE GAUSS-SEIDEL................................................................................. 74
4 CONVERGÊNCIA DOS MÉTODOS ITERATIVOS...................................................................... 77
5 TEOREMA CONVERGÊNCIA – CRITÉRIO DE SCARBOROUGH.......................................... 78
LEITURA COMPLEMENTAR................................................................................................................ 82
RESUMO DO TÓPICO 3........................................................................................................................ 85
AUTOATIVIDADE.................................................................................................................................. 86

UNIDADE 2 – SISTEMAS DE EQUAÇÕES NÃO LINEARES....................................................... 89

TÓPICO 1 – SISTEMAS NÃO LINEARES.......................................................................................... 91


1 INTRODUÇÃO...................................................................................................................................... 91
2 EQUAÇÕES NÃO LINEARES............................................................................................................ 92
3 RESOLUÇÃO DE SNL COM MATLAB............................................................................................ 93
4 PRINCIPAIS COMANDOS BÁSICOS NO MATLAB................................................................... 93
RESUMO DO TÓPICO 1........................................................................................................................ 96
AUTOATIVIDADE.................................................................................................................................. 97

VII
TÓPICO 2 – ZEROS DAS FUNÇÕES................................................................................................... 99
1 INTRODUÇÃO...................................................................................................................................... 99
2 ZEROS DAS FUNÇÕES....................................................................................................................... 99
3 MÉTODOS DE RESOLUÇÃO NO MATLAB................................................................................101
3.1 MÉTODO DE BISSECÇÃO ..........................................................................................................101
3.2 MÉTODO INTERPOLAÇÃO LINEAR (FALSA POSIÇÃO)....................................................106
3.3 MÉTODO DE NEWTON-RAPHSON..........................................................................................109
3.4 MÉTODO DA SECANTE..............................................................................................................113
3.5 MÉTODO DE ITERAÇÃO DE PONTO FIXO............................................................................117
3.6 ORDEM DE CONVERGÊNCIA...................................................................................................124
RESUMO DO TÓPICO 2......................................................................................................................126
AUTOATIVIDADE................................................................................................................................127

TÓPICO 3 – INTERPOLAÇÃO POLINOMIAL...............................................................................129


1 INTRODUÇÃO....................................................................................................................................129
2 DEFINIÇÃO .........................................................................................................................................130
3 ALGUNS COMANDOS NO MATLAB...........................................................................................132
4 MÉTODOS DE RESOLUÇÃO NO MATLAB................................................................................132
4.1 MÉTODO DE SPLINE LINEAR...................................................................................................133
4.2 MÉTODO DE SPLINE QUADRÁTICA . ....................................................................................134
4.3 MÉTODO DE SPLINE CÚBICA...................................................................................................136
4.4 MÉTODO DE LAGRANGE .........................................................................................................139
4.5 MÉTODO DE NEWTON...............................................................................................................142
LEITURA COMPLEMENTAR..............................................................................................................146
RESUMO DO TÓPICO 3......................................................................................................................148
AUTOATIVIDADE................................................................................................................................149

UNIDADE 3 – INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS


ORDINÁRIAS..............................................................................................................153

TÓPICO 1 – INTEGRAÇÃO NUMÉRICA........................................................................................155


1 INTRODUÇÃO....................................................................................................................................155
2 MÉTODOS DE INTEGRAÇÃO........................................................................................................156
3 MÉTODOS DE RESOLUÇÃO NO MATLAB................................................................................157
3.1 INTEGRAÇÃO NUMÉRICA POR NEWTON-COTES.............................................................158
3.1.1 Método dos trapézios............................................................................................................158
3.1.2 Método de Simpson...............................................................................................................161
3.2 INTEGRAÇÃO NUMÉRICA GAUSSIANA OU QUADRATURA GAUSS...........................168
3.2.1 Método de Gauss-Legendre.................................................................................................168
3.2.2 Método Gauss-Chebyshev...................................................................................................174
LEITURA COMPLEMENTAR..............................................................................................................177
RESUMO DO TÓPICO 1......................................................................................................................181
AUTOATIVIDADE................................................................................................................................182

TÓPICO 2 – EQUAÇÕES DIFERENCIAIS ORDINAIS.................................................................185


1 INTRODUÇÃO....................................................................................................................................185
2 MÉTODOS DE PASSO SIMPLES PARA SOLUÇÃO DE UM PVI...........................................186
2.1 MÉTODO DE EULER.....................................................................................................................186
2.2 MÉTODOS DE RUNGE-KUTTA..................................................................................................189

VIII
2.2.1 Método de Runge-Kutta de ordem 2..................................................................................189
2.2.2 Método de Runge-Kutta de ordem 4..................................................................................192
2.3 CARACTERÍSTICAS DOS MÉTODOS DE PASSO SIMPLES..................................................196
3 METODOS DE PASSO MÚLTIPLO PARA SOLUÇÃO DE UM PVI.......................................198
3.1 MÉTODO DE ADAMS-BASHFORTH.........................................................................................198
3.2 MÉTODO DE PREDIÇÃO DE CORREÇÃO DE ERRO............................................................199
4 SISTEMAS DE EQUAÇÕES DIFERENCIAIS ORDINÁRIAS..................................................201
4.1 EQUAÇÕES DIFERENCIAIS ORDINÁRIAS DE ORDEM SUPERIOR.................................202
5 ESTABILIDADE NA OBTENÇÃO DA SOLUÇÃO NUMÉRICA.............................................204
5.1 REGIÃO DE ESTABILIDADE DE ALGUNS MÉTODOS.........................................................204
5.1.1 Método de Euler.....................................................................................................................205
5.1.2 Método de Runge-Kutta.......................................................................................................206
6 METODOS DE SOLUÇÃO DE PROBLEMA DE VALOR NO CONTORNO.........................206
6.1 MÉTODO DE DIFERENÇAS FINITAS........................................................................................207
6.1.1 Discretização do domínio.....................................................................................................208
6.1.2 Discretização das equações..................................................................................................208
6.1.3 Resolução do problema discreto.........................................................................................210
6.2 MÉTODOS DE DETERMINAÇÃO DE UMA CONDIÇÃO INICIAL EM FUNÇÃO
DE UMA CONDIÇÃO DE CONTORNO...................................................................................213
LEITURA COMPLEMENTAR..............................................................................................................217
RESUMO DO TÓPICO 2......................................................................................................................220
AUTOATIVIDADE................................................................................................................................221

REFERÊNCIAS........................................................................................................................................223

IX
X
UNIDADE 1

SISTEMAS DE EQUAÇÕES LINEARES

OBJETIVOS DE APRENDIZAGEM
A partir desta unidade, você será capaz de:

• introduzir conceitos fundamentais de cálculo numérico;

• utilizar recursos computacionais na solução de problemas;

• compreender os fundamentos dos sistemas de equações lineares;

• conceituar métodos diretos de resolução e métodos iterativos;

• efetuar e resolver sistemas de equações lineares por métodos diretos e


iterativos;

• elaborar algoritmos correspondentes aos métodos numéricos abordados;

• executar implementações computacionais.

PLANO DE ESTUDOS
Esta unidade está dividida em três tópicos. No decorrer da unidade,
você encontrará autoatividades com o objetivo de reforçar o conteúdo
apresentado.

TÓPICO 1 – SISTEMAS LINEARES

TÓPICO 2 – MÉTODOS DIRETOS

TÓPICO 3 – MÉTODOS ITERATIVOS

1
2
UNIDADE 1
TÓPICO 1

SISTEMAS LINEARES

1 INTRODUÇÃO
Nesta unidade iremos apresentar alguns métodos de resolução de
sistemas lineares que fundamentam o cálculo numérico computacional. Na
matemática, a teoria de sistemas lineares é a base e parte fundamental da álgebra
linear, um tema usado na maior parte da matemática moderna.

Cabe observar que, em primeiro lugar, a equação linear é, necessariamente,


uma equação polinomial em diversos ramos da matemática aplicada e ciências
naturais. Podemos encontrar vários usos de  sistemas lineares em diversas áreas
da  física, economia, engenharias, biologia, geografia, navegação, aviação,
cartografia, demografia e a astronomia.

Os métodos numéricos para resolução de um sistema linear podem ser


divididos em dois grupos: métodos diretos e métodos iterativos. Os métodos
diretos são aqueles que, a menos de erros de arredondamento, fornecem
a solução exata do sistema linear, caso existam, após um número finito de
operações. Na solução de problemas de sistemas lineares, os métodos iterativos
geram uma sequência de vetores, a partir de uma aproximação inicial. Sob certas
condições esta sequência converge para a solução, caso ela exista. Na sequência,
apresentaremos cada um dos métodos e suas respectivas representações digitais
no computador.

2 EQUAÇÕES LINEARES
Um Sistema de Equações Lineares é todo conjunto finito de Equações
Lineares, como afirmam Ruggiero e Lopes (1997) e Franco (2006). Segundo
pesquisas de Steinbruch e Winterle (1987), uma Equação Linear é uma equação
formada por uma soma de termos algébricos, onde, cada termo algébrico é
composto por um produto entre uma variável e um coeficiente numérico. Uma
equação linear pode ser escrita na seguinte forma:

a1x1 + a2 x2 + a3 x3 + ... + an xn =
b (1)

3
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

Em que, x1, x2, …, xn são as variáveis, a1, a2, …, an são os coeficientes


numéricos e é o termo independente. Uma equação linear possui a característica
de admitir um número infinito de soluções que a satisfazem. Um sistema de
equações lineares é definido com um conjunto de equações lineares, isto é, com m
equações e n incógnitas e pode ser escrito, da seguinte forma:

(2)

Sendo que, xn são as variáveis, amn são os coeficientes numéricos e são os


termos independentes. O sistema de equações representado pela Equação (2)
pode ser escrito ainda na sua forma matricial a seguir:

(3)

Em que A é a matriz dos coeficientes, X é a matriz das variáveis e a matriz B


é a matriz dos termos independentes. Chamamos de matriz ampliada do sistema,
a matriz formada pela junção da matriz de termos independentes e a matriz dos
coeficientes. É importante notar que a matriz ampliada do sistema é o ponto de
partida para encontrarmos a solução do sistema via métodos numéricos, o que
desenvolvemos mais adiante.

Exemplo 1: Considere o seguinte sistema 2 x 2:

 2 x1 + x2 =3

 x1 + 4 x2 =
5

sendo,

2 1  3  x1 
=A =  ,B   , X=  
1 4  5   x2 

4
TÓPICO 1 | SISTEMAS LINEARES

e a matriz ampliada do sistema dada por:

 2 1 3
 
1 4 5

Por motivos técnicos e computacionais trataremos apenas o caso de sistemas


onde o número de equações e incógnitas são iguais, ou seja, m = n. Matricialmente
isso quer dizer que, a matriz dos coeficientes é uma matriz quadrada. Também
assumir que a matriz dos coeficientes é uma matriz real. Geometricamente a
solução de um sistema linear (n x m) é a interseção de n hiperplanos em  n . Veja
no exemplo:

Exemplo 2: Considere o sistema do exemplo anterior onde a solução é dada


por P = (1; 1), que é exatamente a interseção das retas 2x1 + x2= 3 e x1 + 4x2 = 5
conforme Figura 1.

FIGURA 1– SOLUÇÃO GEOMÉTRICA DE UM SISTEMA 2 X 2


y
4

3
2

1
0 x
-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7
-1

-2

-3

-4

FONTE: RUGGIERO E LOPES (1997, p. 110)

2.1 SOLUÇÃO DE UM SISTEMA NXN


Um sistema de equações lineares admite como solução um conjunto de
valores para as variáveis que satisfazem, simultaneamente, todas as equações
que compõem o sistema. Através do número de soluções, Franco (2006) apresenta
uma classificação para os sistemas de equações lineares. Essa classificação pode
ser feita da seguinte forma:

● Sistema Possível e Determinado (SPD): é o sistema que admite uma única


solução.
● Sistema Possível e Indeterminado (SPI): é o sistema que admite um número
infinito de soluções.
● Sistema Impossível (SI): é o sistema que não admite soluções.

5
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

Segundo Ruggiero e Lopes (1997) e Franco (2006), os métodos de resolução


de um sistema de equações podem ser dados por duas classes de métodos, ou
seja, métodos diretos ou iterativos. A Figura 2 mostra o fluxograma de como estas
duas classes de métodos de resolução de sistemas de equações lineares estão
organizados conforme os seus principais métodos.

FIGURA 2– FLUXOGRAMA DAS CLASSES DE MÉTODOS DE RESOLUÇÃO DE


SISTEMAS DE EQUAÇÕES LINEARES
Resolução de Sistemas Lineares

Métodos Diretos Métodos Interativos


Regra de Cramer

Eliminação de Gauss
Gauss-Jacobi
Gauss-Jordan

Inversão de Matrizes Gauss-Seidel

Decomposição de LU Convergência
de Scarborough
Fatoração de Cholesky

Outros Outros
FONTE: O autor

Como pode ser observado na Figura 2, tanto a classe de métodos diretos


quanto a classe de métodos iterativos, possuem métodos específicos, isto é, cada
um possui características diferentes. Dependendo do tipo de sistema ou do
tamanho do mesmo, pode-se aplicar um ou outro método da mesma classe, ou
de uma outra classe para obter a solução dos sistemas de equações lineares de
forma otimizada.

A implementação computacional de métodos básicos para resolver


sistemas de equações lineares densos ou esparsos visa métodos clássicos
disponíveis na literatura, objetivando resolver os sistemas que surgem nos
modelos matemáticos abordados nos cursos de graduação (BURDEN; FAIRES,
2003; CHENEY; KINCAID, 2012).

3 RESOLUÇÃO DE SL COM MATLAB


O MatLab é um software criado, inicialmente, para realizar cálculos
envolvendo matrizes (MATrix LABoratory), porém, tornou-se uma ferramenta
computacional de grande utilidade na resolução de problemas científicos ou
tecnológicos, igualando-se em importância as linguagens de programação
científica, tais como, FORTRAN, Pascal, C etc.

6
TÓPICO 1 | SISTEMAS LINEARES

O MatLab tem a vantagem de seus comandos serem mais próximos da


forma como se escreve expressões matemáticas. Conforme Tonini e Couto (1999), o
MatLab é definido como um sistema interativo e uma linguagem de programação
para computação técnica e científica em geral, integrando a capacidade de fazer
cálculos, visualização gráfica e programação.

Atualmente, é aplicado na resolução de cálculos matemáticos, no


desenvolvimento de algoritmos, na modelagem, simulação e confecção de
protótipos, na análise, simulação e confecção de dados, na elaboração de gráficos
científicos e de engenharia, no desenvolvimento de aplicações, incluindo a
elaboração de interfaces gráficas com o usuário.

Sua programação é feita através de um arquivo chamado “arquivo.m”.


Isto é, um programa em MatLab é escrito no arquivo.m, e posteriormente, é lido
na área de trabalho do MatLab (workspace). No arquivo.m descreve-se todo o
programa incluindo equações, loopings, tomadas de decisões, enfim, todos os
comandos que compõem o programa desejado. Todos os resultados, incluindo as
representações gráficas, são apresentados na área de trabalho do MatLab.

Como a simulação numérica computacional é uma área de grande


expansão no campo da engenharia, o MatLab pode ser a porta de entrada nesse
campo, possibilitando que o engenheiro tenha uma interface computacional de
simples acesso. A seguir são apresentados alguns comandos básicos do MaTlab
para trabalhar com matrizes empregando os métodos diretos e iterativos para a
resolução dos sistemas de equações lineares.

4 ALGUNS COMANDOS BÁSICOS NO MATLAB


Para a resolução de equações lineares, vamos rever alguns comandos
básicos para trabalhar com matrizes no MaTlab:

a) Para atribuir valores para uma matriz A e um vetor b:


Exemplo: A=[2 3 4;1 2 3;5 -4 3], b=[1;-2;3]
b) Para calcular a transposta B de uma matriz A:
<<B = A’
c) Para calcular o determinante de uma matriz A:
<<det(A)
d) Para criar uma matriz identidade, por exemplo, de ordem 3:
<<eye(3)
e) Para calcular a inversa de uma matriz A:
<<inv(A)
f) Para calcular o produto entre duas matrizes:
<<A*B
g) Para resolver o sistema de equações lineares de forma direta pelo Matlab:

7
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

g.1) x = A\b (divisão esquerda, equivale a x = A-1*b)


g.2) x = inv(A)*b
g.3) x = linsolve(A,b)

h) Para a decomposição LU já é uma função pré-definida no Matlab para tal basta


digitar a matriz (A) representante do sistema e fazer [L U] = lu(A). Após obter
a fatoração resolvem-se os sistemas Ly = b ⇒ y = L\b e Ux = y ⇒ x = U\y, por
qualquer uma das formas apresentadas no item g.
i) Para a fatoração de Cholesky é obtida por U = chol(A), isto é, obtém-se a matriz
triangular superior através deste comando. Utilizar o seguinte sistema na forma
matricial para obter a fatoração de Cholesky. Vale ressaltar que a fatoração de
Cholesky só é possível para matriz simétrica positiva definida. Obtida a matriz
U resolver UTy = b (substituição progressiva) e depois Ux = y (por substituição
retroativa) de acordo com o item g.
j) Para calcular os autovalores da matriz quadrada A, basta de dentro da área de
trabalho do Matlab, fazer a chamada à rotina eig do Matlab: b = eig(A).
k) O comando que segue forma duas matrizes, C uma matriz cujas colunas são
os autovetores de A, e D é uma matriz diagonal contendo os autovalores na
diagonal: [C,D]=eig(A)
l) A função poly calcula diretamente o polinômio característico de uma matriz A,
isto é, retorna um vetor que contém os coeficientes do polinômio característico
de A: e = poly(A).
m) As raízes do polinômio são os autovalores, para obtê-los basta usar o comando
roots que retorna um vetor coluna, contendo os autovalores: roots(e).

Exemplo geral: Comandos básicos em Matlab relacionados com Sistemas


de Equações Lineares.

 Declaração de matrizes:

 Matriz qualquer:
 >> a = [1 3 6 2;2 5 2 8]
a=
1 3 6 2
2 5 2 8

 Matriz identidade:
 EYE(N) é uma matriz identidade NxN.
>> a=eye(3)
a=
1 0 0
0 1 0
0 0 1
8
TÓPICO 1 | SISTEMAS LINEARES

 EYE(M,N) ou EYE([M,N]) é uma matriz MxN com 1 na diagonal e 0 nos


demais elementos.
>> a=eye(3,4)
a=
1 0 0 0
0 1 0 0
0 0 1 0

 Matriz nula:
 ZEROS(N) é uma matriz NxN de zeros.
>> a=zeros(3)
a=
0 0 0
0 0 0
0 0 0

 ZEROS(M,N) ou ZEROS([M,N]) é uma matriz MxN de zeros.


>> a=zeros(3,4)
a=
0 0 0 0
0 0 0 0
0 0 0 0

 Operadores matriciais:

 Matriz transposta:
>> [1 5 4;2 7 9]'
ans =
1 2
5 7
4 9

 Matriz inversa:
> inv([1 5 4;2 7 9;5 3 7])
ans =

9
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

0.3607 -0.3770 0.2787


0.5082 -0.2131 -0.0164
-0.4754 0.3607 -0.0492

 Determinante:
> det([1 5 4;2 7 9;5 3 7])
ans =
61

 Sistema de equações lineares (inversa da matriz dos coeficientes


multiplicada pela transposta do vetor linha das constantes):
> inv([1 5 4;2 7 9;5 3 7])*[17 26 6]'
ans =
-2.0000
3.0000
1.0000

UNI

Para saber mais sobre alguns conceitos básicos em MatLab, consulte os


materiais disponíveis e gratuitos:
<http://www.cursoemvideo.com/course/curso-de-algoritmos/>
<http://w3.ufsm.br/petmatematica/images/minicursos/Apostilas/Apostila_Matlab.pdf>
<http://mtm.ufsc.br/~melissa/arquivos/matlabpet/apostila_curso_matlab.pdf>
<https://inf.ufes.br/~luciac/cn/MatlabOctave.pdf>.

10
RESUMO DO TÓPICO 1
Neste tópico, você aprendeu que:

• Sistemas de equações lineares aparecem em problemas que contêm muitas


variáveis dependentes.

• Um sistema de duas (ou três) equações com duas (ou três) incógnitas pode ser
resolvido manualmente por substituição ou com o uso de métodos matemáticos.

0 O MATLAB se tornou o ambiente de computação técnicas de grande


versatilidade, devido à diversidade de aplicações científicas, de engenharia,
computação numérica, de análise e visualização de dados e outras;
0 A representação do sistema dentro do MATLAB, dispõem de operações
matemáticas e de funções que podem ser úteis na análise de sistemas lineares;
0 Número de soluções de um sistema linear, de forma geral, podem ser
definidas de solução única, infinitas soluções ou não admitir solução.

11
AUTOATIVIDADE

1 Dado o sistema de equações a seguir:

0.2x + 0.5y = 1
0.3x + 0.2y = 0.6

a) Resolva a solução matricial:


b) Resolva a solução Matlab.

2 Determine a função inversa do sistema de equações lineares:

. x + 0.2 y + 0.4 z =
0125 2.3

0.375x + 0.5 y + 0.6 z =
4.8
0.5x + 0.3y = 2.9

3 Considere-se, por exemplo, o seguinte sistema:

x1 − x2 + x3 =
0
− x1 + x2 − x3 =
0
10 x2 + 25x3 =
90
20 x1 + 10 x2 =
80

a) Determine a forma matricial do problema.


b) Determine a solução em MATLAB.
c) Gerar o gráfico em MATLAB.

4 Resolver o sistema de equações A · X = B:

1 1 1 1  4
   
= 2 2 1 1 6
A ,B
1 2 1 2  6
   
 3 1 1 1   6 

a) Execute os comandos em Matlab.


b) Execute o comando Matlab: [L,U,P]=lu(A)
c) Por que é que LU diferente de A?
d) Calcule o número de condição da matriz A. Estime a precisão da solução x
calculada.
e) Para este sistema, qual foi o método que obteve melhores resultados?

12
5 Para resolver um dado problema de Engenharia é necessário determinar x
tal que A · X = B.

Determine:

 1 0 0 0 
 
 2.9444 −6.2222 2.9444 0 
A=
 0 2.9444 −6.2222 2.9444 
 
 0 0 0 1 

em que:

B = ( 0.0185 , 01111
. , 0.2222 , 01481
. )T

6) Considere a seguinte matriz: A = [1 2 3; 4 5 6; 7 8 0]:

a) Calcular a inversa da matriz quadrada A.


b) Calcular o vetor com os autovalores da matriz A.
c) Calcular os autovetores e autovalores da matriz.
d) Calcular o determinante da matriz A.
e) Decomposição LU da matriz.

13
14
UNIDADE 1
TÓPICO 2

MÉTODOS DIRETOS

1 INTRODUÇÃO
Neste tópico veremos a metodologia que transforma a matriz A do sistema
A · X = B em uma matriz mais simples, porém preservando a solução S do sistema
original. Isso é sempre possível quando fazemos uso das operações elementares
sobre linhas da matriz representativa do sistema. Tais operações são a troca de
linhas, a adição de linhas, bem como a multiplicação de uma linha por uma
constante não nula. Da álgebra linear sabemos que tais operações não alteram a
solução S do sistema, uma vez que uma operação elementar sobre linha equivale
a uma operação sobre a respectiva equação.

São métodos que produzem a solução exata de um sistema de equações


lineares, a menos de erros de arredondamento, por meio de um número finito
de operações aritméticas. Contudo, esses métodos não podem ser aplicados em
problemas práticos que requerem resoluções de sistemas de equações lineares
com alto índice de equações porque apresentam problemas de desempenho e
eficiência.

A seguir, apresentaremos os principais métodos diretos eficientes,


cuja complexidade é polinomial, para resolver sistemas lineares. Porém,
introduziremos uma base teórica necessária à apresentação de tais métodos.

2 SOLUÇÃO DIRETA
A solução Direta é um método que viabiliza a solução do sistema
realizando um número finito de operações aritméticas, portanto, o esforço
computacional necessário para se obter uma solução do sistema é previsível.
Esta solução seria exata se não fosse a presença de erros de arredondamento.
Esse método é normalmente empregado em sistemas lineares com matrizes de
coeficientes densas e de porte médio (até 1000 equações). Desconsiderando o
método de Cramer devido a sua ineficiência, os principais métodos diretos são:

15
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

● Método de Eliminação de Gauss.


● Método de Gauss-Jordan.
● Método da Inversão de Matrizes.
● Método de Decomposição de Lu (de Crout).
● Método de Cholesky.

DICAS

Para revisar cada um dos métodos diretos de resolução de sistemas de


equações lineares, consultar o livro de Cálculo Numérico (COSTA, 2011).

3 MÉTODOS DIRETOS DE RESOLUÇÃO NO MATLAB


Nesta seção serão apresentados os principais métodos diretos e os
resultados obtidos para a resolução do um sistema linear, utilizando uma
implementação de algoritmos e uso em MatLab, em que sua linguagem de
programação é uma tarefa rápida e eficiente.

3.1 MÉTODO DE ELIMINAÇÃO DE GAUSS


O método de eliminação de Gauss consiste em aplicar um conjunto de
operações elementares em um sistema linear com o objetivo de torná-lo um
sistema de resolução mais simples. Usando esse conjunto de operações, podemos
alterar sua matriz expandida, de modo que a matriz inicial seja transformada
em uma matriz triangular, superior ou inferior, visando simplificar o sistema de
equações para que a sua solução possa ser obtida diretamente por substituições
retroativas ou sucessivas, respectivamente.

Esse processo de eliminação, também denominado escalonamento, é


obtido através da aplicação sucessiva de operações elementares sobre linhas
na matriz expandida, buscando anular elementos não nulos para torná-la uma
matriz triangular. Podemos associá-lo a um processo de pivotamento parcial ou
total, que promove a troca seletiva de linhas (ou colunas) visando tomar pivôs
(elementos das diagonais principais) com maior módulo possível, para evitar a
presença de pivôs nulos e minimizar a acumulação de erros de arredondamento.

Exemplo 1: Resolva o sistema de equações lineares, a seguir, pelo método


de eliminação de Gauss (sem trocas de linhas e/ou colunas) adotando operações
aritméticas com apenas 4 dígitos significativos totais e arredondamento
ponderado, para exemplificar o efeito do acúmulo de arredondamentos.

16
TÓPICO 2 | MÉTODOS DIRETOS

0.448x1 + 0.832 x2 + 0193


. x3 = 1

0.421x1 + 0.784 x2 − 0.207 x3 = 0
−0.319 x + 0.884 x + 0.279 x = 0
 1 2 3

Solução:

Na forma matricial, temos:

 0.448 0.832 0193


.   x1  1 
     
 0.421 0.784 −0.207  .  x2  = 0 
 −0.319 0.884 0.279   x3  0 

E, na forma de matriz expandida, temos:

 0.448 0.832 0193


.  1
 
=A  0.421 0.784 −0.207  0 
 −0.319 0.884 0.279  0 

Processo de triangularização

O processo de triangularização deve seguir uma sequência otimizada de


passos k (que definem um algoritmo). Nesse caso, cada passo k corresponderá
à utilização da linha i = k para eliminar os coeficientes da coluna j = k usando
operações elementares sobre linhas.

Os índices comumente utilizados para acessar um elemento de uma matriz


aij são: i, para acessar a linha (1º índice); e j, para acessar a coluna (2º índice),
enquanto o índice k vai definir os passos do algoritmo. A i-ésima linha é denotada
por Li, e a j-ésima coluna é denotada por Cj. Vamos acompanhar os passos de
resolução do Exemplo 1.

Primeiro passo: definido pelo índice k = 1, usamos a primeira linha i = 1


(em negrito) para eliminar a primeira coluna j = 1 das linhas abaixo da linha i = 1.
Poderíamos estabelecer outra ordem para as operações elementares sobre linhas, mas
vamos adotar um algoritmo genérico que independe dos valores dos coeficientes e
use o menor número de operações aritméticas possível. Então, nesse primeiro passo,
substituímos as linhas i = 2 e i = 3 pelo resultado da subtração delas próprias com a linha
i = 1 multiplicada por um fator adequado, de tal modo que as suas colunas j = 1 sejam
zeradas, logo:

17
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

 0.448 0.832 0.193  1   0.421 


  L2 ← L2 −   ⋅ L1 ⇒ L2 ← L2 − 0.9397 ⋅ L1
 0.421 0.784 −0.207  0   0.448 
 −0.319 0.884 0.279  0   0.319 
L3 ← L3 −  −  ⋅ L3 ⇒ L3 ← L3 + 0.7121 ⋅ L1
 0.448 
Observações:

a) Na linha L3 , por exemplo:

 0.319 
L1 ← L3 −  −  L1⟹ L3 ←L3 + 0.7121 · L1,
 0.448 
no elemento i = 3 e j = 1, teremos a seguinte operação de eliminação:

 0.319   0.319 
a31 = a31 −  −  · a11 = −0.319 −  − 0.448  · 0.448 = 0
 0.448   
(na ausência de arredondamentos).

Então, podemos definir o fator multiplicativo sempre como a razão entre


o valor do coeficiente que deve ser zerado e o valor do coeficiente pivô (diagonal
principal) da linha correspondente ao passo, i = k. Esse mesmo fator multiplicativo
deve ser aplicado na operação elementar sobre toda a linha i = 3, em todas as suas
colunas j.

b) As linhas 2 e 3 sofrem alterações através da adição dos termos – 0.9397 · L1 e


0.7121 · L1 , ou seja, se esses termos adicionais tiverem arredondamentos, serão
levados para as linhas 2 e 3 resultantes.

c) Como esses mesmos fatores multiplicativos devem ser aplicados para todas
as colunas j das linhas i = 2 e i = 3, é importante que sejam determinados uma
única vez, armazenados e usados em todas as colunas de cada linha i.

d) Esses fatores multiplicativos, aplicados previamente na linha i = 1, – 0.9397


e 0.7121, sofreram arredondamentos no quarto dígito decimal (quarto dígito
significativo), logo levarão esse erro no quarto dígito decimal para as novas
linhas 2 e 3 geradas a seguir.

Aplicando essas operações elementares sobre a linhas i = 2 e i = 3, zeraremos


a coluna j = 1, conforme segue:

0.448 0.832 .
0193  1 
 
 0 0.002170 −0.3884  −0.9397 
 0 1.476 0.4164  0.7121 

18
TÓPICO 2 | MÉTODOS DIRETOS

Note que as linhas 2 e 3 foram alteradas pelos arredondamentos gerados,


mas, na coluna j = 1, os resultados previstos são exatos e nulos, logo não é
necessário efetuar essas operações aritméticas, basta atribuir esses resultados
nulos no algoritmo.

Segundo passo: definido pelo índice k = 2, usamos a segunda linha i = 2


(em negrito) para eliminar a segunda coluna j = 2:

0.448 0.832 .
0193  1 
 
 0 0.002170 -0.3884  -0.9397 
 1.476 
 0 1.476 0.4164  0.9397  L3 ← L3 −   ⋅ L2
 0.002170 
L3 ← L3 − 680.2 ⋅ L2

Observe que o fator multiplicativo na linha 2 é muito maior do que a


unidade, 680.2, então sofreu arredondamentos no primeiro dígito decimal (quarto
dígito significativo), logo levará esse erro no primeiro dígito decimal para a nova
linha 3, gerada a seguir:

0.448 0.832 .
0193  1 
 
 0 0.002170 −0.3884  −0 , 9397 
 0 0 264.6  −639.9 

Observe também que a linha 3 sofreu eliminações duas vezes, nos passos
k = 1 e k = 2, e isso caracteriza um processo cumulativo de operações aritméticas
com erros de arredondamento. Nessa fase, o sistema simplificado já está na
forma de matriz triangular superior, que deve ser equivalente ao sistema original
apresentado nesse exemplo, pois as operações elementares sobre linhas aplicadas
não podem alterar as equações. Então, a solução do sistema original:

0.448x1 + 0.832 x2 + 0193


. x3 = 1

0.421x1 + 0.784 x2 − 0.207 x3 = 0
−0.319 x + 0.884 x + 0.279 x = 0
 1 2 3

deveria ser a mesma do sistema de equações simplificado a seguir:

19
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

0.448x1 + 0.832 x2 + . x3 =
0193 1

 0x1 + 0.002170 x2 − 0.3884 x3 = −0 , 9397
 0x1 + 0x2 + 264.6 x3 =639.9

Processo de retrosubstituição sucessiva

Realizamos o processo de retrosubstituição sucessiva a partir da última


equação, determinando a última incógnita e substituindo-a na equação anterior,
e assim sucessivamente até obtermos todas as incógnitas.

Primeiro passo: note que o valor de x3 pode ser diretamente obtido a


partir da equação 3, uma vez que essa equação independe de x1 e x2:

639.9
0 · x1 + 0 · x2 + 264.6 · x3 = 639.9 x3= x3= 2.418
264.6
Segundo passo: posteriormente, podemos obter os valores de x2 e x1 das
equações 2 e 1, respectivamente:

−0.9397 − ( −0.3884 ⋅ x3 )
x2 = x2 =
−0.2529 (com x3 = 2.418)
0.002170
1 − 0.832 ⋅ x2 − 0.193 ⋅ x3
=x1 = x1 1.660
= (x3 2.418 e x2 = − 0.2529
0.448

Portanto, a solução obtida para o sistema do Exemplo 2.1, com precisão de


apenas 4 dígitos significativos, é:

S = {1.660, –0.2529, 2.418}

Vale ressaltar que essa solução S foi obtida de um sistema simplificado, cujos
coeficientes já sofreram acúmulo de arredondamentos, e não do sistema original.

Se os resíduos (R =|A · S – B|) de cada uma das equações do sistema


linear proposto fossem obtidos para aferição da solução, deveríamos ter valores
nulos, mas normalmente obtemos valores residuais, não nulos, decorrentes dos
arredondamentos acumulados. Por exemplo, se substituirmos a solução S em
cada equação original do

Exemplo 1, teremos os seguintes resíduos:

R1 0.448x1 + 0.832 x2 + 0193


= . x3 − 1 = 0.0000588 ≅ 0.00006
R2 0.421x1 + 0.784 x2 − 0.207 x3 − =
= 0 0.0000604 ≅ 0.00006
R3 =−0.319 x1 + 0.884 x2 + 0.279 x3 − 0 =0.7848 ≅ 0.08

20
TÓPICO 2 | MÉTODOS DIRETOS

O resíduo da equação 3 ficou alto, equivalente ao primeiro dígito decimal


(0.08 ≅ 0.1). Seria esperado um resíduo no quarto dígito decimal, pois temos
uma precisão de 4 dígitos significativos. Esse erro decorre principalmente dos
arredondamentos dos fatores multiplicativos de cada linha. No próximo exemplo,
vamos aplicar uma forma de reduzir esse resíduo.

Para comparação, também podemos calcular o erro de arredondamento


estimado sobre cada xi da solução usando uma estimativa do valor exato
da solução Sexato. Nesse método, temos somente erros de arredondamento
associados à solução, então o seu valor exato estimado pode ser obtido usando
variáveis com mais precisão, com mais de 4 dígitos significativos, para ter menos
arredondamentos. Na solução, a seguir, usamos o mesmo algoritmo aplicado no

Exemplo 1, mas operamos com as variáveis double de 16 dígitos


significativos, gerando os seguintes resultados:

Sexato = {1.561414494051542, –0.199881764024819, 2.418590333334499}

Os resíduos dessa solução exata estimada, obtida com precisão double, são:

Rexato = {00000000000 · 1000, 1.11022302462 · 10-16, 5.68434188608 · 10-14}


(em notação científica)

E os erros estimados, Erro = | S – Sexato |, são:

Erro x1 =
1.660 − 1.561414494051542 0.098585505948458 ≅ 01
= .
Erro x2 = −0.2529 − ( −0199881764024819
. ) =−0.053018235975181 ≅ 0.05
Erro x3 =
2. 418 − 2.418590333334499 0.000590333334499 ≅ 0.0006
=

Perceba que os erros de arredondamento acumulados no processo de


eliminação foram propagados também para o primeiro dígito decimal, nos valores
de x1 e x2, e, para o quarto dígito, no valor do x3. Observe que os arredondamentos
afetam toda a solução, pois em um sistema de equações não temos como dizer
que um valor de x é mais exato do que outro. Assim, a solução está afetada no
primeiro dígito. Podemos resumir o algoritmo de eliminação gaussiana em:

21
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

FIGURA 3– ALGORITMO DE ELIMINAÇÃO GAUSSIANA IMPLEMENTADOS

FONTE: Peters e Szeremeta (2017, p. 23)

No próximo exemplo, vamos implementar o processo de pivotação


parcial visando evitar linhas com possíveis zeros na diagonal principal de cada
linha i = k e ainda minimizar erros de arredondamento acumulados.

Pivotação parcial

A pivotação parcial consiste em:

a) no início de cada passo k das eliminações, escolher para akk o elemento de maior
módulo entre os coeficientes aik, i = k, k + 1,...,n; e
b) trocar as linhas k e i, se necessário.

Exemplo 2: resolva o sistema de equações lineares, a seguir, pelo método


de eliminação de Gauss com pivotamento parcial utilizando operações aritméticas
com 4 dígitos significativos e arredondamento ponderado. Esse sistema é o
mesmo do Exemplo 1, apenas com as equações em outra ordem.

 −0.319 0.884 0.279  0 


 
=A  0.421 0.784 −0.207  0 
 0.448 0.832 0193
.  1 

22
TÓPICO 2 | MÉTODOS DIRETOS

Solução:

Na forma matriz expandida.

 −0.319 0.884 0.279  0 


 
=A  0.421 0.784 −0.207  0 
 0.448 0.832 0193
.  1 

Processo de triangularização

Antes de promover o processo de triangularização, devemos escolher e


reposicionar a melhor linha i = k possível.

Primeiro passo: definido pelo índice k = 1, a pivotação parcial deve redefinir


a melhor linha i = 1, correspondente ao primeiro pivô (k = 1). Para tal:

a) Localizamos o maior módulo da coluna, j = 1 nesse caso, entre os coeficientes


destacados em negrito:

j =1
 -0.319 0.884 0.279 0
 
 0.421 0.784 −0.207 0
i = 3 (0.448) 0.832 0193
. 1 
(maior módulo está na linha i = 3)

b) Trocamos linhas, entre a linha i = 3, com o melhor coeficiente, e a linha i = 1:

 −0.319 0.884 0.279 0  L1 ← L3


 
 0.421 0.784 −0.207 0 
( 0.448) 0.832 0193
. 1  L3 ← L1 (troca da linha L com L e vice-versa)
1 3

c) Geramos a matriz pivotada:

( 0.448) 0.832 0193


.  1
 
 0.421 0.784 −0.207  0 
 −0.319 0.884 0.279  0 

Observe que, na pivotação parcial, apenas trocamos a ordem das equações


mudando-as de linhas.

23
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

d) Depois da pivotação, procedemos à eliminação gaussiana correspondente ao


primeiro passo (k = 1):

( 0.448) 0.832 0193


.  1
   0.421 
 0.421 0.784 −0.207  0  L2 ← L2 −  0.448  ⋅ L1 ⇒ L2 ← L2 − 0.9397 ⋅ L1
 −0.319 0.884 0.279  0   
 0.319 
L3 ← L3 −  −  ⋅ L1 ⇒ L3 ← L3 + 0.7121 ⋅ L1
 0.448 

e) Geramos nova matriz escalonada:

( 0.448) 0.832 .
0193  1 
 
 0 0.002170 −0.3884  −0.9397 
 0 1.476 0.4164  0.7121 

Segundo passo: definido pelo índice k = 2, a pivotação parcial deve redefinir


a melhor linha i = 2, correspondente ao segundo pivô (k = 2). Para tal:

a) Realizamos a busca parcial do maior módulo da coluna j = 2 (busca a partir


da segunda linha, em negrito, pois a primeira linha já foi usada para anular a
primeira coluna no passo anterior e não pode ser usada novamente para anular
a segunda coluna, uma vez que alteraria a coluna j = 1 já zerada):

j=2
( 0.448) 0.832 .
0193  1 
 
 0 0.002170 −0.3884  −0.9397 
i = 3  0 (1.476) 0.4164  0.7121  (maior módulo em i = 3)

b) Trocamos linhas, entre a linha i = 3 e a linha i = 2:

( 0.448) 0.832 .
0193  1 
 
 0 0.002170 −0.3884  −0.9397  L2 ← L3
 0 (1.476 ) 0.4164  0.7121  L3 ← L2

c) Geramos a matriz escalonada:

( 0.448) 0.832 .
0193  1 
 
 0 (1.476 ) 0.4164  0.7121 
 0 0.002170 −0.3884  −0.9397 

24
TÓPICO 2 | MÉTODOS DIRETOS

Observe que, no Exemplo 2, o pivô antigo, a22= 0.002170, era um valor


pequeno e gerava um fator multiplicativo elevado, 680.2, que carregava um erro
de arredondamento no primeiro dígito fracionário (quarto significativo).

d) Procedemos a triangularização, correspondente ao segundo passo (k = 2):

( 0.448) 0.832 .
01930  1 
 
 0 (1.476 ) 0.4164  0.7121 
 0 0.002170 −0.3884  −0.9397   0.002170 
L3 ← L3 −   ⋅ L2
 1.476 
L3 ← L3 − 0.001470 ⋅ L2

Agora o novo pivô, a22 = 1.476, é um valor maior e gera um fator


multiplicativo menor, 0.001470, que, nesse caso, sofreu arredondamentos no
sexto dígito fracionário (quarto significativo), logo levará apenas esses erros para
a nova linha 3 gerada, conforme segue:

( 0.448) 0.832 .
01930  1 
 
 0 (1.476 ) 0.4164  0.7121 
 0 0 −0.3893  −0.9412 

Agora a nova linha i = 3 ficou com valores próximos aos anteriores à


eliminação deste passo, ou seja, a linha i = 3 foi pouco alterada.

Processo de retrosubstituições sucessivas

O sistema de equações simplificado do exemplo 2, gerado a partir do


processo de eliminação gaussiana, é:

0.448x1 + 0.832 x2 + 0193


. x3 = 1

 0 x1 + 1.476 x2 + 0.4164 x3 =0.7121
 0x1 + 0x2 − 0.3893x3 = −0.9412

Note que podemos obter diretamente o valor de x3 a partir da equação 3, e


posteriormente os de x2 e x1 a partir dos valores obtidos anteriormente.

−0.9412 x3 = 2.418
x3 =
−0.3893
0.7121 − 0.4164 x3
x2 = x2 = −01997
.
1.476
1 − 0.832 x2 − 0193
. x3
x1 = x1 = 1.561
0.448

25
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

Portanto, a solução do sistema dado no Exemplo 2 é:


S = {1.561, –0.1997, 2.418}. Os resíduos (R = |A · S – B|) dessa solução são:

R1 =−0.319 x1 + 0.884x2 + 0.279x3 − 0 =0.0001282 ≅ 0.0001


R2 0.421x1 + 0.784 x2 − 0.207 x3 − =
= 0 0.0000902 ≅ 0.0001
R3 0.448x1 + 0.832 x2 + 0193
= . x3 − 1= 0.0001484 ≅ 0.0001

Pelos resíduos informados, observamos que a solução obtida no Exemplo


2 está mais próxima da exata do que a obtida no Exemplo 1, pois os resíduos
estão no quarto dígito decimal, enquanto no Exemplo 1 os resíduos chegavam ao
primeiro dígito.

Neste caso, também podemos calcular o erro de arredondamento


comparando à solução obtida com precisão de 4 dígitos a uma solução mais
precisa obtida com o mesmo algoritmo usando precisão double:

Sexato = {1.561414494051471, – 0.199881764024781, 2.418590333334500}

Observe que os erros estimados, Erro = |S – Sexato|, são:

Erro x1 =
1.561 − 1.561414494051471 0.000414494051471 ≅ 0.0004
=
Erro x2 = .
−01997 − ( 0199881764024781
. )=
0.000181764024781 ≅ 0.0002
Erro x3 =
2.418 − 2.418590333334500 0.000590333334500 ≅ 0.0006
=

Agora, perceba que os erros estimados de S também foram menores no


Exemplo 2 com pivotação parcial, ou seja, a solução S com pivotação parcial
acumulou menos erros de arredondamento.

Com o processo de pivotamento parcial:

a) eliminamos possíveis pivôs nulos, caso haja possibilidades de troca de linhas; e


b) conseguimos uma redução nos efeitos cumulativos de erros de arredondamento
(diminuição da perda de significação), pois os novos pivôs são os maiores
possíveis de cada coluna, gerando menores fatores multiplicativos, cujos
arredondamentos ocorrem em dígitos menos significativos.

Na próxima seção, vamos implementar o processo de pivotação total


visando obter soluções computacionalmente mais estáveis em relação às
perturbações introduzidas por arredondamentos.

26
TÓPICO 2 | MÉTODOS DIRETOS

Pivotação total

Alternativamente, podemos implementar o método de eliminação


de Gauss usando a pivotação total, que é computacionalmente um pouco
mais eficiente, induzindo normalmente a um menor erro de arredondamento
acumulado, de forma a obter soluções mais estáveis em relação às perturbações
introduzidas por arredondamentos.

No pivotamento total, ou completo, procuramos o elemento de maior


módulo entre todos os elementos disponíveis na matriz de coeficientes
promovendo trocas de linhas e colunas. Para avaliar as consequências dessas
trocas de linhas e colunas, devemos interpretar os elementos da matriz expandida
como termos das equações do sistema, assim:

a) a troca de linhas significa apenas trocar a ordem na apresentação das equações; e


b) a troca de colunas significa trocar a ordem de apresentação das incógnitas do
sistema.

Exemplo 3: Resolva o sistema de equações lineares, a seguir,


usando pivotação total, operações aritméticas com 4 dígitos significativos e
arredondamento ponderado.

0.448x1 + 0.832 x2 + 0193


. x3 = 1

0.421x1 + 0.784 x2 − 0.207 x3 = 0
−0.319 x + 0.884 x + 0.279 x = 0
 1 2 3

Solução:

Na forma de matriz expandida, temos:

 0.448 0.832 0193


.  1
 
=A  0.421 0.784 −0.207  0 
 −0.319 0.884 0.279  0 

Primeiro passo: na pivotação total, correspondente ao primeiro pivô (k = 1):

a) Buscamos o maior módulo entre todos os elementos da matriz de coeficientes:

27
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

j=2
 0.448 0.832 0193
.  1
 
 0.421 0.784 −0.207  0 
i = 3  −0.319 0.884 0.279  0 
x1 x2 x3

(o coeficiente de maior módulo está na coluna j = 2 e na linha i = 3, em negrito).

Observe que foi acoplada uma linha adicional, embaixo da matriz de


coeficientes, para o armazenamento da ordem de apresentação das incógnitas
envolvidas. Então, inicialmente temos a ordem natural das incógnitas x1, x2 e x3,
na primeira, segunda e terceira colunas.

b) Efetuamos a troca de linhas e colunas:

 0.448 0.832 0193


.  1  L1 ← L3
 
 0.421 0.784 −0.207  0 
 −0.319 0.884 0.279  0  L3 ← L1
x1 x2 x3
C1 C2
↑ ↑
C2 C1

Trocamos a linha L1 com L3 e vice-versa, e a coluna C1 com C2 e vice-versa.

c) Geramos a matriz pivotada:

0.884 −0.319 0.279  0 


 
 0.784 0.421 −0.207  0 
 0.832 0.448 .
0193  1 
x2 x1 x3

Note que, no processo de pivotamento total, a ordem de apresentação das


incógnitas xi envolvidas foi alterada para x2, x1 e x3.

Segundo passo: no processo de triangularização, correspondente ao


primeiro passo (k = 1), temos:

28
TÓPICO 2 | MÉTODOS DIRETOS

0.884 −0.319 0.279  0 


   0.784 
 0.784 0.421 −0.207  0  L2 ← L2 −  0.884  ⋅ L1 ⇒ L2 ← L2 − 0 ,8869 ⋅ L1
 0.832 0.448  
.
0193  1 
 0.832 
L3 ← L3 −   ⋅ L1 ⇒ L3 ← L3 − 0.9412 ⋅ L1
 0.884 
x2 x1 x3
0.884 −0.319 0.279  0
 
 0 0.7039 −0.4544  0 
 0 0.7482 −0.06959  1 
x2 x1 x3

Terceiro passo: na pivotação total, correspondente ao segundo pivô (k = 2):

a) Buscamos o maior módulo entre os elementos da matriz, a partir da segunda


linha e segunda coluna:

j=2
0.884 −0.319 0.279  0
 
 0 0.7039 −0.4544  0 
i = 3  0 0.7482 −0.06959  1 
x2 x1 x3

(elemento de maior módulo localizado na coluna j = 2 e linha i = 3).

b) Efetuamos somente troca de linhas, uma vez que, na coluna, a matriz já está
naturalmente pivotada:

0.884 −0.319 0.279  0


 
 0 0.7039 −0.4544  0  L2 ← L3
 0 0.7482 −0.06959  1  L3 ← L2
x2 x1 x3

c) Geramos a matriz pivotada:

0.884 −0.319 0.279  0


 
 0 0.7482 −0.06959  1 
 0 0.7039 −0.4544  0 
x2 x1 x3

29
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

Quarto passo: no processo de triangularização, correspondente ao


segundo passo (k = 2), temos:

0.884 −0.319 0.279  0


 
 0 0.7482 −0.06959  1 
 0 0.7039 −0.4544  0   0.7039 
L3 ← L3 −  ⋅L
 0.7482  2
x2 x1 x3
L3 ← L3 − 0.9408 ⋅ L2

0.884 −0.319 0.279  0 


 
 0 0.7482 −0.06959  1 
 0 0 −0.3889  −0.9408
x2 x1 x3

Quinto passo: no processo de retrosubstituição, temos:

0.884 −0.319 0.279  0 


 
 0 0.7482 −0.06959  1 
 0 0 −0.3889  −0.9408
x2 x1 x3

Retornando à forma de equações (note a nova ordem das incógnitas):

0.884 ⋅ x2 − 0.319 ⋅ x1 + 0.279 ⋅ x3 = 0



0 ⋅ x2 + 0.7482 ⋅ x1 − 0.06959 ⋅ x3 =
1
0 ⋅ x + 0 ⋅ x1 − 0.3889 ⋅ x3 =− 0.9408
 2

−0.9408
x3 = x3 2.419
−0.3889
1 + 0.06959 ⋅ x3
x1 = x1 = 1.561
0.7482
0 + 0.319 ⋅ x1 − 0.279 ⋅ x3
x2 = x 2 = −0.2002
0.884

Neste ponto, precisamos reordenar a solução sabendo que a ordem


das incógnitas obtidas na retrosubstituição é {x2, x1, x3}, enquanto a solução
ordenada é;

S = {x1, x2, x3} = {1.561, –0.2002, 2.419}. Os resíduos ( R = | A · S − B| ) dessa solução


são:

30
TÓPICO 2 | MÉTODOS DIRETOS

R1 0.448x1 + 0.832 x2 + 0193


= . x3 − 1= 0.0005
R2 0.421x1 + 0.784 x2 − 0.207 x3 − =
= 0 0.0003
R3 =−0.319 x1 + 0.884 x2 + 0.279 x3 − 0 =0.0003

E os erros estimados, Erro = | S – Sexato |, obtidos foram:

Erro x1 =
1.561 − 1.561414494051471 0.000414494051471 ≅ 0.0004
=
Erro x2 =−0.2002 − ( −0199881764024781
. ) =−0.000318235975219 ≅ 0.0003
Erro x3 =
2.419 − 2.418590333334500 0.000590333334500 ≅ 0.0006
=

Os resultados obtidos com pivotação total no Exemplo 3 são equivalentes


aos obtidos com pivotação parcial no Exemplo 2, considerando os resíduos e os
erros estimados. Estatisticamente, temos poucos tipos de sistemas que têm solução
melhor com pivotação total em relação à sua solução com pivotação parcial.

Quanto ao quantitativo de soluções de A · X = B

As soluções dos sistemas de equações lineares podem ser classificadas


segundo três possibilidades distintas:

a) Sistema determinado: quando o sistema de equações tem somente uma


solução, a matriz de coeficientes é não singular, isto é, o seu determinante é
não nulo. Acontece quando todas as equações dos sistemas são linearmente
independentes, ou seja, nenhuma equação é resultado de combinação linear
de outras.

Exemplo: Um sistema possível de resolver, mas indeterminado, se
comporta da seguinte forma:

0.448x1 + 0.832 x2 + 0193


. x3 = 1

0.421x1 + 0.784 x2 − 0.207 x3 =
0
0.421x + 0.784 x − 0.207 x= 0 (com L= L )
 1 2 3 3 2

Se aplicarmos a eliminação gaussiana, chegaremos à seguinte matriz


triangular superior na forma expandida:

0.448 0.832 .
0193  1 
 
 0 0.002170 −0.3884  −0.9397 
 0 0 0  0  (usando aritmética exata em i = 3)

31
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

Observe que a terceira linha, ou equação, foi completamente eliminada


no segundo passo, k = 2, não contribuindo mais com a solução do sistema. Logo,
temos um sistema efetivo de n = 2 equações, mas com três incógnitas:

0.448 x1 + 0.832 x2 + 0193


. x3 =1

0 x1 + 0.002170 x2 − 0.3884 x3 = −0.9397
0 x + 0 x + 0 x = 0
 1 2 3

0.448x1 + 0.832 x2 + 0193


. x3 = 1
⇒
0x1 + 0.002170 x2 − 0.3884 x3 = −0.9397

Assim, o nosso algoritmo da função retrosubstituição deve tratar


sistemas com uma linha a menos do que o número de incógnitas, ou seja, com
uma equação sendo combinação linear de outra(s), cujo coeficiente da diagonal
principal da última linha e o seu termo independente sejam numericamente
nulos. Desse modo, se esses coeficientes tiverem valores residuais, devido aos
arredondamentos, então atribuiremos um valor escolhido para o xn, pois o
algoritmo de retrosubstituição inicia com o cálculo do xn. Além disso, a linha que
se torna nula será a última, sempre que a pivotação for aplicada; e, se o método
não tiver pivotação associada, algum pivô poderá se tornar nulo antes, ainda
dentro do algoritmo de eliminação.

b) Sistema Indeterminado: uma indeterminação em sistemas lineares acontece


quando um sistema admite infinitas soluções. Uma consequência direta desse
fato é o determinante dos coeficientes ser nulo, apesar que só isto não garante a
indeterminação. Por ter várias soluções, o sistema linear apresenta certa relação
de dependência entre as equações, logo, uma equação é determinada pela
combinação linear das outras. Como não há um acréscimo em informações,
quando há equações que são combinações lineares das outras o sistema
possui menos equações que incógnitas, o que gera uma liberdade de algumas
incógnitas. Há vários métodos para verificar tal acontecimento, entre eles, o
pivotamento total pelo Método de Gauss, que deve então apresentar ao final
uma linha nula.

Exemplo: Um sistema impossível de resolver se comporta conforme a
seguir:

0.448x1 + 0.832 x2 + 0193


. x3 = 1

0.421x1 + 0.784 x2 − 0.207 x3 =
0
0.421x + 0.784 x − 0.207 x= 0 (com L= L )
 1 2 3 3 2

32
TÓPICO 2 | MÉTODOS DIRETOS

Se aplicarmos a eliminação gaussiana, chegaremos à seguinte matriz


triangular superior na forma expandida:

0.448 0.832 .
0193  1 
 
 0 0.002170 −0.3884  −0.9397 
 0 0 0  0  (usando aritmética exata em i = 3)

Observe que a terceira linha, ou equação, foi completamente eliminada


no segundo passo, k = 2, não contribuindo mais com a solução do sistema. Logo,
temos um sistema efetivo de n = 2 equações, mas com três incógnitas:

0.448x1 + 0.832 x2 + 0193


. x3 = 1

0 x1 + 0.002170 x2 − 03884 x3 = −0.9397
0 x + 0 x + 0 x = 0
 1 2 3

0.488x1 + 0.832 x2 + 0193


. x3 = 1
⇒
0x1 + 0.002170 x2 − 0.3884 x3 = −0.9397

Assim, o nosso algoritmo da função retrosubstituição deve tratar


sistemas com uma linha a menos do que o número de incógnitas, ou seja, com
uma equação sendo combinação linear de outra(s), cujo coeficiente da diagonal
principal da última linha e o seu termo independente sejam numericamente
nulos. Desse modo, se esses coeficientes tiverem valores residuais, devido aos
arredondamentos, então atribuímos um valor escolhido para o xn, pois o algoritmo
de retrosubstituição inicia com o cálculo do xn. Além disso, a linha que se torna
nula será a última, sempre que a pivotação for aplicada; e, se o método não tiver
pivotação associada, algum pivô poderá se tornar nulo antes, ainda dentro do
algoritmo de eliminação.

c) Sistema Impossível: quando o sistema de equações não tem solução alguma, a


matriz de coeficientes também é singular. Ocorre quando alguma equação do
sistema é insatisfatória. Por exemplo, se alguma equação do sistema é gerada
a partir da combinação linear “parcial”, de apenas um dos lados de duas
outras equações, então geramos uma equação inconsistente. No método de
Gauss, podemos constatar esse fato observando que, no final do processo de
eliminação, uma ou mais linhas da matriz de coeficientes se anulam, mas o
termo independente não se anula. Na prática, significa ter uma equação com
todos os coeficientes de x nulos e com um termo independente não nulo, o que
é impossível de ser satisfeito. Nas possibilidades (b) e (c), os elementos nulos
podem não ser necessariamente iguais a zero, mas podem assumir valores
residuais.

Exemplo: Um sistema impossível de resolver se comporta conforme a


seguir:
33
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

0.448x1 + 0.832 x2 + 0193


. x3 = 1

0.421x1 + 0.784 x2 − 0.207 x3 =
0
0.421x + 0.784 x − 0.207 x = (L3 difere de L2 somente pelo termo
 1 2 3 50 independente)

Se aplicarmos a eliminação gaussiana, chegaremos à seguinte matriz


expandida:

0.488 0.832 .
0193  1 
 
 0 0.002170 −0.3884  −0.9397 
 0 0 0  49.0603  (usando aritmética exata em i = 3)

Observe que a terceira linha, ou equação, foi parcialmente eliminada no


passo k = 2, mas ficou com um valor não nulo no termo independente:

0.448x1 + 0.832 x2 + 0193


. x3 = 1

0 x1 + 0.002170 x2 − 0.3884 x3 = −0.9397
0 x + 0 x + 0 x = 49.0603
 1 2 3

O algoritmo da função retrosubstituição também deve levar em conta


essa possibilidade de ter o coeficiente da diagonal principal da última linha
numericamente nulo, enquanto o seu termo independente é não nulo. Portanto,
a última equação desse sistema é impossível de ser satisfeita, pois não possui
solução, ou seja, uma das equações do sistema é “inconsistente”.

Nesse caso, o algoritmo não tem como tratar um sistema inconsistente.


Como alternativa, podemos apenas interromper o algoritmo, ou atribuir um valor
NaN (Not a Number) para o vetor solução, indicando solução como conjunto vazio.

No MaTlab

Na sequência, vamos apresentar o algoritmo de eliminação gaussiana


com pivotação parcial ou total aplicado ao Exemplo 3 e observações importantes
sobre o método de eliminação. No algoritmo de eliminação de Gauss, o processo de
pivotação, total ou parcial, está inserido antes da etapa da eliminação.

No processo de escalonamento, as operações nas colunas envolvem


algebricamente todos os j, for j = 1 : n + 1, pois são operações sobre as linhas i inteiras;
mas a operação na coluna j = k tem resultado conhecido, uma vez que sabemos que
esse resultado exato é sempre nulo. Assim, essa operação aritmética conhecida foi
suprimida no algoritmo, for j = k + 1 : n + 1, e atribuímos o resultado nulo conhecido
para a coluna j = k depois do encerramento do for j. Além disso, as operações nas
colunas j à esquerda de k (j = 1 : k) envolveriam somente operações com coeficientes
nulos, que também são desnecessárias e por isso também são suprimidas.
34
TÓPICO 2 | MÉTODOS DIRETOS

A seguir o Exemplo 3 com a implementação do método como função do


MatLab.

QUADRO 1 – IMPLEMENTAÇÃO DO MÉTODO EM MATLAB

% Método de Eliminação de Gauss com Pivoteamento por Coluna


clear all
clc
% Entrada de dados do Sistema Linear
A=input('Coloque os Coeficientes da Matriz (A)''\n');
b=input('Vetor da Igualdade (b)''\n');
b=reshape(b,length(b),1); %transforma b em coluna
[m,n]=size(A);  %Aquisição da ordem de A por tamanho
% Verificação do Sistema
  
    %Matriz A
    if m~=n
        disp('Número de Equações diferente do Número de Incógnitas')
        return
    end
  
    %Vetor b
    if [m,1]~=size(b)
        disp('Número de igualdades não corresponde ao número de linhas de A')
        return
    end
    if det(A)==0
        disp('Matriz Singular ou possui Equações Linearmente Dependentes')
        return
    end
  
    index=linspace(1,m,m);%cria um vetor com m termos, onde o último termo é m e o
incremento é 1
  
% Triangularização
    % 1º Pivoteamento
    for cont=1:m-1
    
        [Y,I]=max(A(cont,cont:m));
        I=I+(cont-1); %Correção do numero de colunas quando cont>1 em cont:m

35
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

aux=A(:,cont);
        A(:,cont)=A(:,I);
        A(:,I)=aux;
   
        aux=index(cont); % mudança de posiçao do vetor index
        index(cont)=index(I);
        index(I)=aux;

%      "AUX = A
%   A=B
%       B = AUX"

% 2º Anulação dos Valores abaixo do Pivo


        for cont2=cont+1:m
    
            k=-A(cont2,cont)/Y;
            A(cont2,cont:m)=A(cont2,cont:m)+k*A(cont,cont:m);
            b(cont2)=b(cont2)+k*b(cont);

        end
    end
  
 % Acabou  todo o pivoteamento
% Solve do sistema
    x(m)=b(m)/A(m,m);    
    
        while cont>=1 % contador regressivo
            aux=sum(A(cont,cont+1:m).*x(cont+1:m));
           
            x(cont)=(b(cont)-aux)/A(cont,cont);          
            cont=cont-1;
      
            if cont<1
                break
            end
           
        end
      
%       "Como sugerido na página 4 de backward_forward.pdf"
    %   Realojamento do Vetor de Incógnitas nas Posições Corretas:
for cont=1:m

36
TÓPICO 2 | MÉTODOS DIRETOS

  
for i=1:m
    
        if index(i)==index(cont)
      
            aux=x(index(i));
            x(index(i))=x(cont);
            x(cont)=aux;
    
            aux=index(index(i));% conserta-se o index pra não repetir a operação de troca de
valor em x
            index(index(i))=index(cont);
            index(cont)=aux;
      
        end
  
    end

end
disp('Vetor de Incógnitas')
disp(x)

FONTE: O autor

Algumas considerações são importantes e merecem destaque sobre os


Exemplos 1, 2 e 3 que desenvolvemos:

a) Os resíduos encontrados servem de parâmetros para validar uma solução, ou


seja, servem para verificar o número de dígitos exatos da solução, mas não para
sistemas mal condicionados, nos quais não basta calcular os resíduos, como
veremos mais adiante.
b) Os erros calculados nos exemplos capturam somente os erros de arredondamento
da solução, pois não temos erros de truncamento envolvidos no método de
eliminação gaussiana.
c) As soluções com menores erros de arredondamento acumulados foram obtidas
com pivotação parcial.
d) Para minimizar o efeito cumulativo dos erros de arredondamento, podemos
tentar modificar as operações elementares do processo de escalonamento da
seguinte forma:

● Substituímos a linha a ser eliminada pelo produto entre a própria linha e o


elemento pivô subtraído do produto entre a linha do pivô e o elemento a ser
eliminado. Por exemplo, se a linha L3 sofre a seguinte operação de eliminação
do elemento a31 com o pivô da primeira linha a11 no passo k = 1, temos:

37
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

a31
L3 ← L3 − ⋅L
a11 1

Sabendo que o objetivo dessa operação é anular o elemento a31, podemos


modificá-la desde que mantenhamos o resultado nulo na primeira coluna.
Assim, se:

a31 a
L3 − ⋅ L1= 0 , para j= 1, a31 − 31 ⋅ a11= 0
a11 a11

Então, podemos multiplicar essa equação pelo elemento pivô a11,


resultando em uma forma alternativa equivalente que mantém o resultado nulo
para primeira coluna da matriz. Mas esse processo sem divisões exige uma
multiplicação a mais em cada linha, aumentando o número total de operações
aritméticas:

a11=
⋅ L3 − a31 ⋅ L1 0 para j = 1, a11 =
⋅ a31 − a31 ⋅ a11 0

Com essa forma alternativa de aplicar as operações de eliminação, temos


um menor acúmulo de erros de arredondamento, pois não haverá divisões ao
longo do processo de eliminação, sendo necessária apenas uma divisão no final
do processo de retrosubstuituições, no momento de determinar as incógnitas
xi. Mesmo assim, esse procedimento alternativo pode gerar erros por perda de
significação, especialmente quando temos pivôs de grande magnitude ou quando
o número de equações é elevado. Nesses casos, ocorre um acúmulo de operações
de multiplicação sobre as linhas do sistema, amplificando seus valores e podendo
atingir a região de overflow, sobretudo nas últimas linhas da matriz escalonada.

3.2 MÉTODO DE GAUSS-JORDAN


O método de Gauss-Jordan consiste em transformar a matriz dos coeficientes,
que compõe a matriz expandida, em identidade. Então, depois de transformada, a
última coluna dessa matriz expandida será a solução de A · X = B. Essa transformação
é obtida através da aplicação sucessiva de operações elementares sobre linhas
buscando a eliminação de todos os coeficientes da respectiva coluna, exceto o da
diagonal principal. Também podemos associar esse método a um processo de
pivotamento parcial ou total. Vale ressaltar, que o algoritmo deste método necessita
do dobro de operações aritméticas em relação ao método de eliminação gaussiana
e, por conseguinte, acumula mais arredondamentos.

38
TÓPICO 2 | MÉTODOS DIRETOS

UNI

Acesse o link para assistir à videoaula e saiba mais sobre o Método de


Eliminação de Gauss: <https://www.youtube.com/watch?v=ylU2q3ytymE>.

UNI

Acesse o link para assistir à videoaula e saiba mais sobre o Método de Gauss-
Jordan: <https://www.youtube.com/watch?v=aMNbHF1o_wc.

3.3 MÉTODO DA INVERSÃO DE MATRIZES


No método de inversão de matrizes, multiplicamos o sistema A · X = B
pela matriz inversa A–1 de A:

A −1 ( A ⋅ X) =
A −1 (B)

Utilizando a associatividade do produto matricial, o sistema resulta em:

( A −1 ⋅ A)X =A −1 ⋅ B
)X A −1 ⋅ B
(I =
X A −1 ⋅ B
=

Portanto, podemos obter o vetor de incógnitas X apenas multiplicando a


matriz inversa A–1 pelo vetor de termos independentes B. Trata-se de um método
eficiente quando dispomos da inversa da matriz A; caso contrário, teremos o
custo adicional da determinação da inversa. Podemos obter a matriz inversa de
A de várias maneiras. Aqui, vamos usar o próprio método de escalonamento de
Gauss-Jordan aplicado à matriz aumentada [A : I] no Exemplo 4.

Exemplo 4: Resolva o sistema de equações lineares, a seguir, usando o


método da inversão de matrizes. Utilize o processo de pivotamento parcial para
evitar pivôs nulos e diminuir o acúmulo de arredondamentos.

39
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

3x1 + 1.5x2 + 4.75x3 =8



4 x1 + 2 x2 + 3x3 =7
2 x + 5x + 3x = −12
 1 2 3

Solução:

Agora, adotamos operações aritméticas com 4 dígitos significativos e


arredondamento ponderado. Assim, na forma matricial, temos:

 3 1.5 4.75  x1   8 
     
4 2 3  ⋅  x2  =  7 
 2 5 3   x3   −12 

Para a geração da matriz inversa de A, adotamos um método prático


clássico: geramos a matriz aumentada [A M I ] composta da matriz A concatenada
com a matriz identidade I da mesma ordem de A:

 3 1.5 4.75  1 0 0
 
4 2 3  0 1 0
 2 5 3  0 0 1 

Através de operações elementares sobre linhas, transformamos a matriz A


na matriz identidade I, e consequentemente a matriz identidade inicial transforma-
se na inversa A–1. Trata-se de um procedimento análogo ao que utilizamos no
método de Gauss- Jordan, mas, nesse caso, estendido para 2n colunas. A seguir,
vamos apresentar os passos para a obtenção de A–1.

Primeiro passo: utilizando o método de pivotação parcial, correspondente


ao primeiro pivô (k = 1):

a) Buscamos o maior módulo da coluna j = 1:

j =1
 3 1.5 4.75  1 0 0
 
i = 2 ( 4 ) 2 3  0 1 0
(elemento de maior módulo da coluna
 2 5 3  0 0 1  j = 1 está na segunda linha i = 2)

40
TÓPICO 2 | MÉTODOS DIRETOS

b) Trocamos linhas:

 3 1.5 4.75  1 0 0  L1 ← L2
 
( 4 ) 2 3  0 1 0  L2 ← L1
 2 5 3  0 0 1  (troca da linha L1 com L2 e vice-versa)

c) Geramos a matriz pivotada:

4 2 3  0 1 0
 
 3 1.5 4.75  1 0 0
 2 5 3  0 0 1 

Segundo passo: no processo de normalização do primeiro pivô (k = 1),


temos:

4 2 3  0 1 0  L1 ← L1 / 4
 
 3 1.5 4.75  1 0 0
 2 5 3  0 0 1 
1 0.5 0.75  0 0.25 0 
 
 3 1.5 4.75  1 0 0
 2 5 3  0 0 1 

Terceiro passo: no processo de diagonalização, correspondente ao


primeiro passo (k = 1), temos:

1 0.5 0.75  0 0.25 0 


 
 3 1.5 4.75  1 0 0  L2 ← L2 − 3L1
 2 5 3  0 0 1  L3 ← L3 − 2 L1
1 0.5 0.75  0 0.25 0 
 
0 0 2.5  1 −0.75 0 
0 4 1.5  0 −0.5 1 

Quarto passo: na pivotação parcial, correspondente ao segundo pivô


(k = 2):

a) Buscamos o maior módulo da coluna k = 2 (a partir da segunda linha, pois a


primeira linha já foi utilizada no processo de eliminação):

41
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

j=2
1 0.5 0.75  0 0.25 0 
 
0 0 2.5  1 −0.75 0 
(o elemento de maior módulo da
i 3 0 ( 4 ) 1.5  0 −0.5 1 
coluna j = 2 está na linha i = 3).

b) Trocamos linhas:

1 0.5 0.75  0 0.25 0 


 
0 0 2.5  1 −0.75 0  L2 ← L3
0 ( 4 ) 1.5  0 −0.5 1  L3 ← L2 (troca da linha L2 com L3 e vice e
versa)

c) Geramos a matriz pivotada:

1 0.5 0.75  0.25 0 


 
0 4 1.5  −0.5 1 
0 0 2.5  −0.75 0 

Observe que a pivotação parcial eliminou um pivô nulo.

Quinto passo: no processo de normalização do segundo pivô (k = 2),


temos:

1 0.5 0.75  0 0.25 0 


  L2
0 4 1.5  0 −0.5 1  L2 ← 4
0 0 2.5  1 −0.75 0 

1 0.5 0.75  0 0.25 0 


 
0 1 0.375  0 −0125
. 0.25
0 0 2.5  1 −0.75 0 

Sexto passo: no processo de diagonalização, correspondente ao segundo


passo (k = 2), temos:

1 0.5 0.75  0 0.25 0  L1 ← L1 − 0.5 ⋅ L2


 
0 1 0.375  0 −0125
. 0.25
0 0 2.5  1 −0.75 0 
1 0 0.5625  0 0.3125 −0125
. 
 
0 1 0.375  0 −0125
. 0.25 
0 0 2.5  1 −0.75 0 

42
TÓPICO 2 | MÉTODOS DIRETOS

Sétimo passo: no processo de normalização do terceiro pivô (k = 3 ), temos:

1 0 0.5625  0 0.3125 . 
−0125
 
0 1 0.375  0 −0125
. 0.25 
0 0 2.5  1 −0.75 0  L3
L3 ←
2.5
1 0 0.5625  0 0.3125 . 
−0125
 
0 1 0.375  0 −0125. 0.25 
0 0 1  0.4 −0.3 0 

Oitavo passo: no processo de diagonalização, correspondente ao terceiro


passo (k = 3 ), temos:

1 0 0.5625  0 0.3125 .  L1 ← L1 − 0.5625 L3


−0125
 
0 1 0.375  0 −0125
. 0.25  L2 ← L2 − 0.375 L3
0 0 1  0.4 −0.3 0 
1 0 0  −0.225 0.4812 . 
−0125
 
0 .
1 0  −015 −0.0125 0.25 
0 0 1  0.4 −0.3 0 

Então,

 −0.225 0.4812 −0125


. 
−1 
A = .
 −015 −0.0125 0.25 
 0.4 −0.3 0 

Para obter o vetor solução x, efetuamos o produto entre A–1 e B, logo:

 −0.225 0.4812 −0125


.   8   3.069 

−1     
X =A ⋅ B = −015
. −0.0125 0.25  ⋅  7  = −4.288
 0.4 −0.3 0   −12   1100
. 

Observe que a troca de linhas efetuadas na pivotação parcial não afeta a


matriz inversa e não deve alterar a ordem dos elementos do termo independente.
Então, a solução do sistema é a seguinte:

S = {3.069, –4.288, 1.100}

43
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

A vantagem desse método de inversão de matriz sobre a eliminação


gaussiana é a possibilidade de reuso da matriz inversa A–1 para outros sistemas
com a mesma matriz A de coeficientes e com diferentes vetores B de termos
independentes. O algoritmo do método de inversão de matrizes necessita de
quase o triplo de operações aritméticas que o método de eliminação gaussiana,
por conseguinte acumula mais arredondamentos. Por isso, só vale o esforço
computacional se a matriz inversa resultante puder ser reutilizada muitas vezes.

3.4 MÉTODO DE DECOMPOSIÇÃO LU (DE CROUT)


Matrizes quadradas não singulares podem ser decompostas no produto
de duas matrizes triangulares L e U, em que L é uma matriz triangular inferior e
U é uma matriz triangular superior, de modo que A = L · U.

Além disso, se atribuirmos valores fixos aos elementos da diagonal


principal, seja na matriz L (lii = 1, método de Doolitle) ou na U (uii = 1, método
de Crout), essa decomposição será única. Para a solução de A · X = B, podemos
decompor A, segundo o método de Crout, em:

 l11 0 0 1 u12 u1n 


   
= l21 l22 0 0 1 u2n 
L eU
         
   
 ln1 ln 2 lnn  0 0 1  tal que L · U = A.

Então, o sistema A · X = B torna-se (L · U ) · X = B. Também podemos


associar o produto das matrizes L e U, (L · U) · X = B, como L · (U · X) = B.
Considerando U · X = C (vetor auxiliar C desconhecido), resolvemos primeiro
L · C = B determinando C e, depois, U · X = C determinando X.

A vantagem do método de decomposição LU sobre o método de eliminação


gaussiana é a possibilidade de reuso das matrizes L e U decompostos para outros
sistemas que usem a mesma matriz A de coeficientes e com diferentes vetores B
de termos independentes.

Vamos exemplificar a determinação dos elementos de L e U para uma


matriz 3 por 3 na qual a multiplicação das matrizes L · U pode ser usada para
definir os valores de lij e uij em função de aij, pois o resultado do produto L · U é a
matriz A original, logo:

 l11 0 0  1 u12 u13   a11 a12 a13 


     
l21 l22 0  ⋅ 0 1 u23  = a21 a22 a23 
 l31 l32 l33  0 0 1   a31 a32 a33 

44
TÓPICO 2 | MÉTODOS DIRETOS

Então, nesse exemplo, o produto L · U gera 9 equações lineares com 9


incógnitas, uma para cada elemento da matriz:

l11 ⋅ 1 + 0 ⋅ 0 + 0 ⋅ 0 l11 ⋅ u12 + 0 ⋅ 1 + 0 ⋅ 0 l11 ⋅ u13 + 0 ⋅ u23 + 0 ⋅ 1   a11 a12 a13 


   
l21 ⋅ 1 + l22 ⋅ 0 + 0 ⋅ 0 l21 ⋅ u12 + l22 ⋅ 1 + 0 ⋅ 0 l21 ⋅ u13 + l22 ⋅ u23 + 0 ⋅ 1  =  a21 a22 a23 
l ⋅1 + l ⋅ 0 + l ⋅ 0 l31 ⋅ u12 + l32 ⋅ 1 + l33 ⋅ 0 l31 ⋅ u13 + l32 ⋅ u23 + l33 ⋅ 1  a31 a32 a33 
 31 32 33

Podemos obter de forma direta a solução desse sistema de equações


usando os seguintes passos:

Passo k = 1: Resolvemos as equações correspondentes à primeira coluna


j = 1 da matriz L · U = A:

l11 ⋅ 1 + 0 ⋅ 0 + 0=
⋅ 0 a11 l11 a11
⇒ =
l21 ⋅ 1 + l22 ⋅ 0 + 0=
⋅ 0 a21 ⇒ l21 = a21
l31 ⋅ 1 + l32 ⋅ 0 + l33 ⋅=
0 a31 ⇒ l=
31 a31

Para a primeira linha i = 1 (à direita da diagonal principal), temos:

a12
l11 ⋅ u12 + 0 ⋅ 1 +=
0 ⋅ 0 a12 u12
⇒ =
l11
a13
l11 ⋅ u13 + 0 ⋅ u23 + 0=
⋅ 1 a13 ⇒ u13
=
l11

Passo k = 2: Resolvemos as equações correspondentes à segunda coluna


j = 2 (a partir da diagonal principal):

l21 ⋅ u12 + l22 ⋅ 1 + 0 ⋅ 0= a22 ⇒ l22= a22 − l21 ⋅ u12


l33 ⋅ u12 + l32 ⋅ 1 + l33 ⋅ 0= a32 ⇒ l32= a32 − l31 ⋅ u12

Para a segunda linha i = 2 (à direita da diagonal principal), temos:

a23 − l21 ⋅ u13


l21 ⋅ u13 + l22 ⋅ u23 + 0 ⋅=
1 a23 ⇒ u23=
l22

Passo k = 3: Resolvemos a equações correspondentes à terceira coluna


j = 3 (a partir da diagonal principal):

l31 ⋅ u13 + l32 ⋅ u23 + l33 ⋅ 1 = a33 ⇒ l33 = a33 − ( l31 ⋅ u13 + l32 ⋅ u23 )

45
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

E não temos linhas à direita da diagonal principal da última linha.


Resumindo:

k =1
l11 = a11
a12
=l21 a=
21 u12
l11
a13
=l31 a=
31 u13
l11
k=2
l22 = a22 − l21 ⋅ u12
a23 − l21 ⋅ u13
l32 = a32 − l31 ⋅ u13 u23 =
l22
k=3
l33 = a33 − l31 ⋅ u13 − l32 ⋅ u23

Então, o algoritmo de decomposição segue esta sequência de cálculos:

a) determinamos os elementos da primeira coluna de L e da primeira linha de U; e


b) determinamos os elementos da segunda coluna de L e da segunda linha de U
e assim sucessivamente.

Obtidos L e U, devemos resolver L · C = B determinando C por substituições


sucessiva à frente:

 l11 0 0   c1   b1 
     
l21 l22 0  ⋅ c2  =
b2 
 l31 l32 l33   c3   b3 
   
 b1
 c1 =
 l11
 l11 ⋅ c1 = b1


 b2 − ( l21 ⋅ c1 )
 l21 ⋅ c1 + =
l22 ⋅ c2 b2 ⇒
= c 2
 l22
b3 
l31 ⋅ c1 + l32 ⋅ c2 + l33 ⋅ c3 =  b − ( l31 ⋅ c1 + l32 ⋅ c2 )
 c3 = 3
 l33

Note que o cálculo de C, do sistema L · C = B, segue a mesmo formato do


cálculo dos elementos de U. Uma vez obtidos L, U e C, devemos resolver U · X = C
determinando X por retrosubstituições sucessivas:

46
TÓPICO 2 | MÉTODOS DIRETOS

· · · · ·
· · · ·
· · ·

Sugerimos usar o armazenamento das colunas L e U sobrepostas na


mesma área de memória de A, o que otimiza o armazenamento e as operações de
pivotação, uma vez que a diagonal de U é unitária e não precisa ser armazenada:

 a11 a12 a13   l11 u12 u13 


   
 a21 a22 a23  ⇒ l21 l22 u23 
 a31 a32 a33   l31 l32 l33 

De uma forma geral, para sistemas de ordem n, teremos o seguinte


formulário:

FIGURA 4 – IMPLEMENTAÇÃO DO MÉTODO DE DECOMPOSIÇÃO LU

Primeiro passo: k = 1
=li1 ai1 =∀i 1,2,3,...,n
a1 j
=u1 j =∀j 2,3,...,n
l11

Segundo passo: k = 2,3,..., n-1

j −1
lij =
aij − ∑l
r −1
ir ⋅ urj ∀j = k , k + 1,...,n e j =
k

1  i −1 
u=
ij
lii
 aij −


∑l
r =1
ir ⋅ urj 


∀j = k + 1,...,n e i= k

Terceiro e último passo: k = n

j −1
lij =
aij − ∑l
r =1
ir ⋅ urj i=
j=
n

FONTE: Peters e Szeremeta (2017, p. 48)

47
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

O método de Crout com pivotação gera erros menores do que sem


pivotação. O efeito da pivotação sobre o método de Crout é análogo ao seu efeito
sobre o método de Gauss apresentado na seção anterior, ou seja, reduz o acúmulo
de erros de arredondamento, conforme o Exemplo 5.

Exemplo 5: resolva o sistema, a seguir, pelo método de Crout com


pivotamento parcial (é imprescindível incluir o(s) vetor(es) B do sistema na troca
de linhas da pivotação para não alterar as equações), usando quatro dígitos
significativos e arredondamento ponderado.

a) Representação em negrito: valores novos já decompostos em L e U; e


b) representação normal: valores originais da matriz A.

 a11 a12 a13   l11 u12 u13 


   
 a21 a22 a23  depois da decomposição LU → l21 l22 u23 
 a31 a32 a33   l31 l32 l33 

Solução:

Primeiro passo: na decomposição LU (método de Crout), correspondente


ao primeiro passo (k = 1):

a) Definimos a primeira coluna j = 1 da matriz L, li1 para i = 1,2,3: → l i1 = ai1 para


i = 1, 2, 3, ..., n (L equivale à coluna original de A):

 0.448 0.832 0193


. 1
 
 0.421 0.784 −0.207  2
 −0.319 0.884 0.279  3
C1

C1

resultando em

( 0.448 ) 0.832 0193


. 1
 
 0.421 0.784 −0.207  2
 -0.319 0.884 0.279  3

48
TÓPICO 2 | MÉTODOS DIRETOS

b) Observamos que a pivotação parcial deve ocorrer depois do cálculo dos


valores de lij na coluna j = k e antes do cálculo dos valores uij da linha i = k,
para que cada elemento lkk , que acaba de ser calculado na diagonal principal,
seja não nulo e também tenha o maior módulo possível. Para o primeiro passo
(k =1), a pivotação poderia ser feita ainda antes do cálculo de li1, pois li1= ai1. A
matriz lij, parcialmente calculada (em negrito), já se encontra pivotada neste
exemplo:

( 0.448 ) 0.832 0193


. 1
 
 0.421 0.784 −0.207  2
 -0.319 0.884 0.279  3

c) Definimos a primeira linha i = 1 da matriz U, u 1,j para j = 2,3:


a1 j
→ u1j = para j = 2,3,...,n
l11
L
( 0.448 ) 0.832 0193
.  1 L1 ← 1
  l11
 0.421 0.784 −0.207  2
 -0.319 0.884 0.279  3

resultando em

( 0.448 ) 1.857 0.4308  1


 
 0.421 0.784 −0.207  2
 -0.319 0.884 0.279  3

Segundo passo: na decomposição LU, correspondente ao segundo passo


(k = 2):

a) Definimos a coluna j = 2 da matriz L, li2 para i = 2, 3:

j −l
→ lij = aij − ∑ lir ⋅ urj
r =l
( i = k, k + 1,...., n e j = k )

 0.448 1.857 0.4308  1


 
 0.421 0.784 −0.207  2
-0.319 0.884 0.279  3
C2

C2 − ll1 ⋅ u12

49
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

resultando em

 0.448 1.857 0.4308  1


 
 0.421 0.002203 −0.207  2
-0.319 1.476 0.279  3

Observe que a pivotação parcial, correspondente ao segundo pivô (k = 2),


deve ocorrer depois do cálculo dos valores de lij na coluna j = k e antes do cálculo
dos valores uij da linha i = k, conforme mencionado no item (b) do primeiro passo.

b) Procedemos com a busca parcial do maior módulo da coluna j = 2 (busca a


partir da segunda linha):

 0.448 1.857 0.4308  1


 
 0.421 0.002203 −0.207  2
-0.319 (1.476) 0.279  3

Maior coeficiente em módulo encontrado na linha i = 3.

c) Trocamos linhas:

 0.448 1.857 0.4308  1


 
 0.421 0.002203 −0.207  2 L2 ← L3
-0.319 (1.476) 0.279  3 L3 ← L2

resultando em

 0.448 1.857 0.4308  1


 
-0.319 (1.476) 0.279  3
 0.421 0.002203 −0.207  2

d) Definimos a linha i = 2 da matriz U, u2j para j = 3:

1 i −1 
→ uij =  aij − ∑ lir ⋅ urj 
lii 
(j = k + 1,...., n e i = k )
r =1 

50
TÓPICO 2 | MÉTODOS DIRETOS

 0.448 1.857 0.4308  1


  L2 − l21 ⋅ u1l
-0.319 (1.476) 0.279  3 L2 ←
l22
 0.421 0.002203 −0.207  2

resultando em

 0.448 1.857 0.4308  1


 
-0.319 (1.476) 0.2821  3
 0.421 0.002203 −0.207  2

Terceiro passo: na decomposição LU correspondente ao terceiro passo


(k = 3):

a) Definimos a coluna j = 3 da matriz L, li3 para i = 3:

j −l
→ lij =aij − ∑ lir ⋅ urj
r =1
( i =j =n)

 0.448 1.857 0.4308  1


 
 −0.319 (1.476) 0.2821  3
 0.421 0.002203 −0.207  2
C3

C3 − l31 ⋅ u13 − l32 ⋅ u23

resultando em

 0.448 1.857 0.4308  1


 
-0.319 (1.476) 0.2821  3
 0.421 0.002203 -0.3890  2

logo,

 0.448 0 0  1 1.587 0.4308


   
L = -0.319 1.476 0  e 0 1 0.2821
 0.421 0.002203 -0.3890  0 0 1 

51
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

Decomposta a matriz A, vamos agora obter a solução do sistema através


da solução de dois sistemas triangulares:

0.448c1 + 0c2 + 0c 3 = 1

L ⋅ C = B ⇒ −0.319c1 + 1.476c2 + 0c 3 = 0
0.421c + 0.002203c − 0.3890c = 2
 1 2 3

Observe que o vetor B do sistema também trocou de linhas em razão da


pivotação:

 b1  1   b1  1 
       
b2 
= 2 L2 ← L3 ⇒ =
 b3  0
 b3   0  L3 ← L2 b2   2 

Aplicando substituições sucessivas à frente, a partir de c1, temos:

1
c1 = c1 2.232
0.448
0 − ( −0.319c1 )
c2 = ⇒ c2 0.4824
1.476
2 − ( 0.421c1 + 0.002203c2 )
c3 = c3 = −2.723
−0.3890

Resolvendo

 x1 + 1.857 x2 + 0.4308x3 =2.232



U ⋅ X = C ⇒ 0 x1 + x2 + 0.2821x3 = 0.4824
0 x + 0 x + x3 =−2.723
 1 2

E aplicando o processo de retrosubstituições sucessivas a partir de x3:

x3 = −2.723 x3 = −2.723
( 0.4824 − 0.2821x3 )
x2 = ⇒ x2 = 1.251
(
x1 =2.232 − (1.857 x2 + 0.4308x3 ) ) x1 = 1.082

Então, a solução obtida é: S = {1.082, 1.251, –2.723}

Para determinar o erro da solução anterior, obtemos a solução exata


calculada com 16 dígitos significativos e pivotação parcial, resultando em:

52
TÓPICO 2 | MÉTODOS DIRETOS

Sexato = {1.08321566094182, 1.25034738133745, –2.72315874287407}

Daí o erro de arredondamento da solução S será:

Erro
= S − Sexato :
Erro x1 = 1.082 − 1.08321566094182 ≅1.22 ⋅ 10−03
Erro x2 = 1.251 − 1.25034738133745 ≅ 6.53 ⋅ 10−04
Erro x3 = −2.723 − ( −2.72315874287407 ) ≅1.59 ⋅ 10−04

Podemos ver que os erros da solução S obtida com pivotação parcial são
compatíveis com a precisão de quatro dígitos significativo adotados, embora na
primeira equação ainda ocorra uma propagação de erros para o terceiro dígito
fracionário.

Exemplo 6: Resolva os três sistemas, a seguir, pelo método de Crout com


pivotamento parcial (é imprescindível incluir o(s) vetor (es) B do sistema na troca
de linhas da pivotação) e com quatro dígitos significativos:

 x1 + 2 x2 + 3x3 + 4 x4 =1  x1 + 2 x2 + 3x3 + 4 x4 1  x1 + 2 x2 + 3x3 + 4 x4


= −1
=
  
 x1 + 2 x2 − 3x3 − 4 x4 =0  x1 + 2 x2 − 3x3 − 4 x4 0  x1 + 2 x2 − 3x3 − 4 x4
= 0
=
  
− x1 + 0 x2 + 2 x3 + 3x4 =
1 − x1 + 0 x2 + 2 x3 + 3x4 1 − x1 + 0 x2 + 2 x3 + 3x4
= 1
=
 x − 4x − x + x  x − 4x − x + x −2 
=
 1 2 3 4 =2  1 2 3 4  x1 − 4 x2 − x3 + x4 2
=

Observe que esse exemplo demonstra a real aplicação do método de


decomposição LU, que ocorre quando vários sistemas têm a mesma matriz de
coeficientes A, mas com diferentes vetores de termos independentes B. Portanto,
com as mesmas matrizes L e U, decompostas de A, podemos resolver os três
sistemas diferentes.

Agora, vamos gerar uma matriz com os coeficientes das incógnitas A


concatenada com os três vetores B1, B2, B3 de termos independentes, para que, na
pivotação parcial, a troca de linhas corresponda a trocas de equações:

53
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

Solução:
Primeiro passo: k = 1

a) Definimos a primeira coluna j = 1 da matriz L, li1 (i = 1,2,3,4), que é igual à


matriz A original:

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

b) Lembramos que a pivotação parcial, correspondente ao primeiro pivô (k = 1),


deve ocorrer depois do cálculo dos valores de lik. Nesse caso, a matriz já se
encontra pivotada:

(1) 2 3 4   1  1  −1


       
1 2 −3 −4    0  0 0
 −1 0 2 3   1  1 1
       
 1 −4 −1 1    2   −2   2 

c) Definimos a primeira linha i = 1 da matriz U, u1j (j = 2,3,4), que é igual à matriz


A dividida pelo pivô l11 = 1:

(1) 2 3 4   1  1  −1


       
1 2 −3 −4    0  0 0
 −1 0 2 3   1  1 1
       
 1 −4 −1 1    2   −2   2 

Segundo passo: k = 2

a) Definimos a segunda coluna j = 2 da matriz L, li2 (i = 2, 3, 4), que é igual à matriz


A menos um somatório de produtos cruzados da sua linha e coluna, conforme
demonstramos ao lado das matrizes:

1 2 3 4   1  1  −1
        0 = 2 − (1 ⋅ 2 )
1 0 −3 −4    0  0 0
 −1 2 2 3   1  1  1  , em que 2 = 0 − ( −1 ⋅ 2 )
       
 1 ( −6 ) −1 1    2   −2   2  −6 =−4 − (1 ⋅ 2 )

54
TÓPICO 2 | MÉTODOS DIRETOS

b) Observamos que a pivotação parcial, correspondente ao segundo pivô (k = 2 ),


deve ocorrer depois do cálculo dos valores de lik. Nesse caso, a linha 4 é trocada
com a linha 2, em A e B:

1 2 3 4  1  1  −1
       
 1 ( −6 ) −1 1   2  −2  2
 −1 2 2 3  1  1 1
       
 1 0 −3 −4    0   0   0 

c) Definimos a segunda linha i = 2 da matriz U, u2j (j = 3, 4), que é igual à


matriz A menos um somatório de produtos cruzados da sua linha e coluna,
respectivamente, e dividido pelo pivô l22 = –6, conforme demonstramos ao lado
das matrizes:

1 2 3 4   1  1  −1
       
 1 ( −6 ) 0.6667 0.5    2   −2  2
 −1 2 2 3   1  1 1
       
 1 0 −3 −4    0   0   0 

Terceiro passo: k = 3

a) Definimos a terceira coluna j = 3 da matriz L, li3 (i = 3,4):

1 2 3 4   1  1  −1
       
 1 ( −6 ) 0.6667 0.5    2   −2  2
 −1 2 3.667 3   1  1 1
       
 1 0 ( −6 ) −4    0   0   0 

em que

3.667 = 2 − ( −1 ⋅ 3 + 2 ⋅ 0.6667 )
−6 =−3 − (1 ⋅ 3 + 0 ⋅ 0.6667 )

b) Observamos que a pivotação parcial, correspondente ao terceiro pivô (k = 3),


ocorre depois do cálculo dos valores de lik. Nesse caso, a linha 4 é trocada com
a linha 3, em A e B:

55
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

1 2 3 4   1  1  −1
       
 1 −6 0.6667 0.5    2   −2  2
1 0 (-6) −4    0  0 0
       
 −1 2 3.667 3   1   1   1 

c) Definimos a terceira linha i = 3 da matriz U, u3j (j = 4):

1 2 3 4   1  1  −1
       
 1 −6 0.6667 0.5    2   −2  2
1 0 (-6) 1.333    0  0 0
       
 −1 2 3.667 3   1   1   1 

em que

−4 − (1 ⋅ 4 + 0 ⋅ 0.5 )
1.333 =
−6

Quarto passo: k = 4

a) Definimos a quarta coluna j = 4 da matriz L, li4 (i = 4):

1 2 3 4   1  1  −1
       
 1 −6 0.6667 0.5    2   −2  2
1 0 (-6) 1.333    0  0 0
       
 −1 2 3.667 1.112   1   1   1 

em que

1.112 = 3 − ( −1 ⋅ 4 + 2 ⋅ 0.5 + 3.667 ⋅ 1.333 )

Observe que a decomposição LU é feita uma única vez e agora podemos


aplicá-la aos três sistemas, fazendo as substituições para cada B:

B1
A⋅X =
B2
A⋅X =
B3
A⋅X =

56
TÓPICO 2 | MÉTODOS DIRETOS

Primeiro sistema – A · X = B1:


Resolvendo L · C = B1 (observe que B1 foi pivotado), temos:

Resolvendo U · X = C1, temos:

Segundo sistema – A · X = B2:


Resolvendo L · C = B2, temos:

Resolvendo U · X = C2, temos:

Terceiro sistema – A · X = B3:


Resolvendo L · C = B3, temos:

Resolvendo U · X = C3, temos:

57
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

No MatLab

Confira o algoritmo de decomposição LU, aplicado ao Exemplo 6 de três


sistemas lineares com opção de pivotação parcial:

QUADRO 2– IMPLEMENTAÇÃO DO ALGORITMO DE DECOMPOSIÇÃO LU


DE PIVOTAÇÃO PARCIAL

FONTE: O autor

Considerações

No algoritmo de decomposição LU, de Crout, o processo de pivotação


parcial está inserido depois do cálculo dos valores de lik e imediatamente antes do
cálculo dos valores de ukj. No quadro a seguir, retomamos o número de operações
aritméticas envolvidas em cada um dos métodos numéricos diretos apresentados
até este momento (PETERS, SZEREMETA, 2017).

58
TÓPICO 2 | MÉTODOS DIRETOS

QUADRO 3 – COMPARATIVO ENTRE AS OPERAÇÕES ARITMÉTICAS REALIZADAS COM


MÉTODOS DIRETOS

Métodos Ordem do Número de Operações: (sem pivotamento)

Gauss O (2 n3 / 3)
Gauss-Jordan O (2 n3 / 3)
Inversão O (n3)
Crout O (2 n3 / 3)

FONTE: Adaptado de Peters e Szeremeta (2017, p. 59)

Essa ordem do número de operações aritméticas define a complexidade


do algoritmo de um método numérico. Os métodos de inversão de matrizes e
Gauss-Jordan são computacionalmente os menos eficientes, pois envolvem o
maior número de operações aritméticas, enquanto os métodos de Gauss e Crout
são os que envolvem o menor esforço computacional, porém todos são de ordem
O(n3) operações aritméticas (PETERS, SZEREMETA, 2017).

QUADRO 4 – COMPARATIVO ENTRE CADA TIPO DE OPERAÇÃO ARITMÉTICA REALIZADA


PELOS DOIS MÉTODOS MAIS EFICIENTES

Operações Método de Crout Método de Gauss


Adicão +Subtração (2n3+9n2-11n)/6 (2n3+3n2-5n)/6
Multiplicação (2n3+3n2-5n)/6 (2n3+3n2-5n)/6
Divisão (n2+n)/2 (n2+n)/2
Total (4n3+15n2-13n)/6 (4n3+9n2-7n)/6
FONTE: Adaptado de Peters e Szeremeta (2017, p. 60)

No método de Crout, temos um pouco mais de adições e subtrações do


que no método de Gauss, mas é uma diferença de ordem inferior, O(n2), e as
outras operações são de mesmo número. Assim, quando temos que resolver
vários sistemas com a mesma matriz de coeficientes A e com m diferentes vetores
de termos independentes do tipo A · Xm = Bm, podemos:

a) Utilizar o método de Crout para obter as matrizes decompostas L e U uma


única vez e efetuar as m substituições sucessivas L · Cm = Bm e U · Xm = Cm tantas
vezes quantas forem necessárias para obter as respectivas soluções Cm e Xm,
correspondentes a cada Bm. Nesses casos, temos apenas um custo de (2 · n2 − n)
operações, referente à substituição dupla para obter cada solução Xm, e um
custo de armazenamento de duas matrizes, L e U que podem ser sobrepostas
em uma única matriz, conforme feito no algoritmo de decomposição LU, de
Crout, apresentado.
b) Obter a matriz A− 1 uma única vez e aplicar apenas o produto final Xm = A-1 · Bm
para cada sistema m. O custo dessa etapa de operações do produto da inversa
é igual ao das duas substituições sucessivas com as matrizes L e U, e custo de
armazenamento de uma única matriz.

59
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

c) Aplicar o método de eliminação de Gauss a uma matriz estendida com todas


as colunas de Bm, incluindo-as conforme esta matriz com dados do Exemplo 6:

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

1 2 3 4  1 1 −1 
 
0 −6 −4 −3  1 −3 3 
⇒
0 0 −4 −8  −1 −1 1 
 
.
0 0 0 11111 ...  1.7222... 0.3888... 1.6111...

Depois de obter a matriz triangularizada dos coeficientes, que também


é uma matriz U triangular superior, efetuamos as retrosubstituições sucessivas
U · X m = Bm para obter a solução Xm correspondente a cada Bm escalonado, com
custo de n2 operações, como nas seguintes soluções, aqui obtidas em precisão
double:

.
 −0150000 −0.50000 −0.850000 
 
0.325000 0.525000 .
0175000
X= 
 −1.900000 −0.300000 .
−2100000 
 
 1.550000 0.350000 1.450000 

Nesse caso, não há possibilidade de reuso da matriz triangularizada,


como podemos fazer com a matriz decomposta ou com a matriz inversa. Essa
metodologia pode ser indicada para resolver sistemas de equações lineares que
estejam dentro de um processo iterativo que atualiza os coeficientes das equações
do sistema a cada iteração, não havendo necessidade de armazenar a matriz
transformada para reuso posterior.

DICAS

Acesse o link para assistir à videoaula e saiba mais sobre o Método de


Decomposição LU (de Crout): <https://www.youtube.com/watch?v=jFWLfdCgvso>.

60
TÓPICO 2 | MÉTODOS DIRETOS

3.5 MÉTODO DE CHOLESKY


No caso particular de sistemas com matrizes simétricas e positivas
definidas, podemos obter uma simplificação no método de decomposição para
obter as matrizes L e U, chamado de método de Cholesky (O(n3/6) operações).
Com esse método, podemos obter a matriz U diretamente pela transposta de L,
ou seja, U = LT, (A = L · LT ), segundo as seguintes equações:

a) Operações com o primeiro pivô: k = 1

l11 = a11

ai1
li1 = para todo i = 2,3,...,n
l11

b) Operações com pivô genérico: k = 2,3,...,n – 1.

1/2
 k −1 
lkk  akk −
=


r =1
lkr2 


1  k −1 
=lik
lkk
 aik −


∑l l
r =1
ir kr 


para todo i = k + 1,...,n

c) Operações com o último pivô: k = n

1/ 2
 n-1 
lnn =  ann -


r =1
2
lnr 


O método de Cholesky também é utilizado para verificar eficientemente


se uma dada matriz simétrica A é positiva definida ou não; pois, na decomposição
anterior, se não aparecerem radicandos negativos, então a matriz simétrica é
positiva definida.

No MatLab

No algoritmo de Cholesky, o processo de pivotação não pode ser aplicado,


para não alterar a simetria da matriz, conforme podemos conferir no arquivo:

61
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

QUADRO 5 – IMPLEMENTAÇÃO DO ALGORITMO DE CHOLESKY EM MATLAB

FONTE: O autor

DICAS

Acesse o link para assistir à videoaula e saiba mais sobre o Método de Cholesky:
<https://www.youtube.com/watch?v=jFWLfdCgvso>.

62
RESUMO DO TÓPICO 2
Neste tópico, você aprendeu que:

• Nos métodos diretos, a solução é obtida com a realização de operações


algébricas nas equações, isto é, são aqueles que forneceriam a solução “exata”
(a menos de erros de arredondamento) com um número finito de operações.

• Embora não seja possível definir qual tipo de método é mais eficiente sem
fazer um estudo preliminar, em linhas gerais, métodos diretos se mostram
mais eficientes para solução de sistemas de pequeno porte, inclusive nos quais
a matriz de coeficientes é densa, isto é, com muitos elementos diferentes de 0.

• Os métodos de Cramer, Eliminação de Gauss e Decomposição LU são os


principais métodos diretos de obtenção da solução de um sistema linear. Este
tipo de método é caracterizado por determinar a solução de sistemas em um
número finito de operações.

63
AUTOATIVIDADE

Resolva as questões utilizando os métodos diretos de Cramer,


Eliminação de Gauss, Decomposição LU e de Cholesky por meio de algoritmos
no MatLab.

1 Num determinado circuito elétrico, as correntes i1, i2 e i3 passam através das


impedâncias Z1, Z2 e Z3 e são dadas por:

+5V
IC2
+
R1 C4 C5

8 4
R2 7 TR1 Saída
R4 D - +
3 G
100W
D1 s
IC1
R3

6 5
D2
2 1 D4

D B C3 D3
S1
+
C1
C2 Entrada
- +
12V

i1 + i2 + i3 = 0

Z1i1 − Z2 i2 = e1 − e2
Z i − Z3i3 = e2 − e3
 21

Se Z1 = 10, Z2 = 8, Z3 = 3, e1 − e2 = 65 e e2 − e3 = 120:

a) Calcule os valores das correntes i1, i2 e i3 por um método direto e estável.


b) Calcule o determinante da matriz.
c) Calcule a matriz inversa.

2 Definimos um problema envolvendo três indivíduos suspensos verticalmente


e conectados por cordas. Foi derivado um sistema de equações algébricas
lineares baseadas nos balanços de forças para cada saltador:

64
 150 −100 0   x1  588 , 6 
     
 −100 150 −50   x2  =
686 , 7 
 0 −50 50   x   784 ,8 
 3  

Utilizando-se do MatLab, resolva esse sistema e determine as


posições verticais dos saltadores (os x’s). Interprete as respostas encontradas.

3 Considerando o sistema linear:

4 x1 − x2 + x3 =
8
2 x1 + 5x2 + 2 x3 =
3
x1 + 2 x2 + 4 x3 =
11

a) Calcule os valores das correntes i1, i2 e i3 pelo Método de Cramer.


b) Calcule o sistema de equações por Eliminação de Gauss.
c) Aplique o método de Decomposição A = LU ao sistema.

4 Resolva o seguinte conjunto de equações empregando a Eliminação de


Gauss Ingênua (sem pivotamento):

3x1 − 0 ,1x2 − 0 , 2 x3 =
7 ,85
0 ,1x1 + 7 x2 − 0 , 3x3 =
−19 , 3
0 , 3x1 − 0 , 2 x2 + 10 x3 =
71, 4

5 Use o MatLab para calcular a eliminação de Gauss por Decomposição LU:

 3 −0 ,1 −0 , 2   x1   7 ,85 
     
 0 ,1 7 −0 , 3   x2  =
−19 , 3
0 , 3 −0 , 2 10   x3   71, 4 

a) por eliminação de Gauss direto


b) por substituição progressiva
c) por substituição regressiva

6 Resolva a matriz utilizando o MatLab para obter a Decomposição de


Cholesky:

 6 15 55 
 
 A  = 15 55 225
55 225 979 

65
66
UNIDADE 1
TÓPICO 3

MÉTODOS ITERATIVOS

1 INTRODUÇÃO
Quando o sistema de equações lineares A· X = B tiver algumas características
especiais, como: a ordem n elevada (n é o número de equações); a matriz dos
coeficientes A possuir grande quantidade de elementos nulos (matriz esparsa); e
os coeficientes puderem ser gerados através de alguma lei de formação; em geral,
será mais eficiente resolvê-lo através de um método iterativo (repetitivo), sem
operar com os coeficientes nulos, desde que a convergência seja possível.

Nos métodos iterativos, uma solução inicial aproximada é assumida e


então utilizada em um processo iterativo para que soluções mais precisas sejam
obtidas sucessivamente. Na solução de sistemas de equações, as equações são
colocadas em uma forma explícita na qual cada incógnita é escrita em termos das
demais incógnitas.

Técnicas iterativas raramente são utilizados para a resolução de sistemas


lineares de dimensão pequena uma vez que o tempo necessário para obtermos
uma solução suficientemente precisa é maior que o tempo necessário para
obtermos as soluções através das técnicas diretas, tais como a eliminação de
Gauss.

Para sistemas grandes e com uma elevada quantidade de zeros na


matriz A, no entanto, estas técnicas são eficientes em termos de armazenamento
no computador e de computação. Dois métodos iterativos específicos são
apresentados a seguir, os métodos de Jacobi e de Gauss-Seidel. A diferença entre
esses dois métodos está na maneira pela qual os novos valores calculados para as
incógnitas são utilizados.

67
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

UNI

Se um algoritmo de um método direto, como o do método de Gauss, for


aplicado a um sistema com matriz de coeficientes esparsa, muitas operações aritméticas
desnecessárias serão empregadas, por exemplo, na manipulação de zeros com outros
zeros, a menos que sejam evitadas pelo próprio algoritmo, como em sistemas de equações
lineares do Tipo Banda.

2 SOLUÇÃO ITERATIVA
Uma solução iterativa de A· X = B consiste em tomar uma solução inicial
X(0) (estimada de alguma forma) para a solução S = {x1, x2, x3, ..., xn} procurada e
construir uma sequência

{ }

X ( k ) = xi( k )
k =0

de soluções aproximadas tal que, no limite:

lim X ( k ) = S
k →∞

se essa sequência for convergente.

Observe que as soluções de sistemas de equações lineares obtidas por


métodos iterativos são soluções aproximadas a cada iteração k (contador de
repetições), portanto têm erros de truncamento, além de erros de arredondamento;
mas, nesse caso, os arredondamentos não são acumulados, uma vez que os
coeficientes das equações não são alterados ao longo do processo.

Em A · X = B, tomando a matriz A e particionando-a na forma A = C + E,


com C não singular, temos:

(C + E ) ⋅ X = B ⇒ C ⋅ X = B − E ⋅ X ⇒ X = C −1 ( B − E ⋅ X ) (7)

Então, aplicando uma solução inicial estimada

{
X ( 0 ) = x1( 0 ) ,x(20 ) ,x3( 0 ) ,...,xn( 0 ) }

68
TÓPICO 3 | MÉTODOS ITERATIVOS

no lado direito da eq. (7), temos:

( 1)
X= (
C −1 B − E ⋅ X ( 0 ) )
fazendo X(0) = X(1) e reaplicando-o no lado direito da eq. (7), obtemos um
x e assim sucessivamente, resultando em uma sequência x(k +1) de soluções S
(2)

aproximadas:

(
X ( 2 ) = C −1 ⋅ B − E ⋅ X ( ) )
1

⋅ ( B − E ⋅ X( ) )
2
X ( 3) = C −1

(
X ( k +1) = C −1 ⋅ B − E ⋅ X ( )
k
) (8)

em que

{ }

S = X( k )
k −0

Se a sequência dada na eq. (8) for convergente, então existe:

lim X ( k +1) = lim X ( )


k
k →∞ k →∞ (9)

Aplicando o limite a ambos os lados da eq. (8), temos:

lim X (
k →∞
k+1)
(
= C -1 B − E ⋅ lim X ( )
k
k →∞
) (10)

Aplicando a eq. (9) na eq. (10), temos:

lim X (
k →∞
k+1)
= C -1 ⋅ B − C -1 ⋅ E ⋅ lim X (
k →∞
k+1)
( )
⇒ 1 + C -1 ⋅ E ⋅ lim X (
k →∞
k+1)
= C −1 ⋅ B
(11)
Multiplicando a eq. (11) pela matriz C, temos:

(C + E ) ⋅ klim X( ) = B
k+1
→∞ (12)
Mas (C + E) = A, então:

A ⋅ lim X (
k +1)
B
=
k →∞

Logo,

lim X (
k +1)
= S é a solução de A∙ X = B
k →∞

69
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

O problema agora é que, para gerar a sequência (8), necessitamos da


matriz inversa C-1. Portanto, essa inversa, por questão de eficiência, tem que ser
obtida facilmente.

A seguir, vamos abordar duas maneiras, não exclusivas, de particionar a


matriz A de modo que a matriz C seja trivialmente invertida.

3 MÉTODOS DE RESOLUÇÃO NO MATLAB


Nesta seção serão descritos dois métodos indiretos (iterativos): de Jacobi
e de Gauss- Seidel. A diferença entre esses dois métodos está na maneira pela
qual os novos valores calculados para as incógnitas são utilizados. No método
de Jacobi, os valores das incógnitas são atualizados todos de uma vez no final de
cada iteração.

No entanto, no método de Gauss-Seidel, o valor de cada incógnita é


atualizado (e usado no cálculo da nova estimativa das demais incógnitas dentro
da mesma iteração) assim que se calcula uma nova estimativa para essa incógnita.
A seguir são apresentados os dois métodos iterativos de processo de convergência
de solução.

3.1 MÉTODO ITERATIVO DE JACOBI


No sistema A · X = B, tomamos a matriz A e a particionamos na forma
A = L + D + U, em que:
a) D = diagonal principal de A;
b) L = matriz triangular inferior estrita, obtida apenas dos elementos infradiagonais
de A; e
c) U = matriz triangular superior estrita, obtida apenas dos elementos
supradiagonais de A.

Então, considerando que C = D ⇒ E = L + U e aplicando-as na eq. (8), temos:

k +1
(
X ( ) = D −1 ⋅ B − ( L + U ) ⋅ X ( )
k
) (13)

Obtemos trivialmente os elementos de D -1 tomando os recíprocos dos


coeficientes da diagonal principal D de A. Assim, expressando a eq. (13) na forma
desenvolvida para cada equação i, resulta que:

 
( k +1) 1 j −i
(k) n
(k) 
xi = bi − ∑ aij x j − ∑ aij x j
aii  j= 1 j = i +1 
 j <i j >i  (14)

70
TÓPICO 3 | MÉTODOS ITERATIVOS

Então, para resolver A · X = B pelo método Jacobi, tomamos uma solução


inicial x(0) = {x1(0), x2 (0),..,xn(0)} , isolamos diretamente a i-ésima incógnita xi na
i-ésima equação i, e aplicamos a eq. (14) somente com os coeficientes aij não nulos
necessários (os coeficientes nulos não influenciam no resultado e não devem
ser considerados nos cálculos para fins de otimização). Esses algoritmos são
específicos para cada sistema, pois usam apenas os coeficientes não nulos, que
devem ser identificados por algum mapeamento prévio.

Exemplo 9: Resolva o sistema, a seguir, pelo método de Jacobi:

3x1 − x2 − x3 =1

 x1 + 3x2 + x3 =
5
 x − x + 2x = 2
 1 2 3

Solução:

Iniciamos montando as equações evolutivas para cada incógnita do


sistema e isolando xi da sua respectiva equação i. Na forma matricial, é equivalente
a isolar os valores de xi de cada diagonal principal:

1 + x2( ) + x3( )
k k
( k +1)
x1 =
3
5 − x1( ) − x3( )
k k
x2( ) =
k +1

3
2 − x1( ) + x2( )
k k
x3( ) =
k +1

Valor inicial x(0) = {x1(0), x2 (0), x3(0)} = (0, 0, 0)

Consideremos k como passo iterativo, no qual uma nova solução xi(k) é


calculada. Assim, usando a solução inicial em k = 0, podemos calcular a solução
em k + 1 a seguir:

1+ 0 + 0
x1( )
1
= = 0.333
3
(1) 5 − 0 − 0
=x2 = 1.667
3
(1) 2 − 0 + 0
=x3 = 1.000
2

A partir dessa primeira solução aproximada, atualizamos os valores


iniciais (x1(0), x2(0), x3(0)) (0.333, 1.667, 1.000) e calculamos uma segunda solução
aproximada e assim sucessivamente, conforme a Tabela 1:

71
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

TABELA 1 – VALORES DA SOLUÇÃO APROXIMADA PARA CADA ITERAÇÃO PELO MÉTODO


DE JACOBI

k x1( k ) x(2k ) x3( k )

0 0 0 0

1 0.333 1.667 1

2 1.222 1.222 1.667

3 1.296 0.704 1

4 0.901 0.901 0.704

5 0.868 1.132 1

6 1.044 1.044 1.132

FONTE: Peters e Szeremeta (2017, p. 79)

Note que a aproximação (x1(6), x2(6), x3(6)) = (1.044, 1.044, 1.132), obtida em 6
iterações, está convergindo para uma solução S (nesse caso, Sexato = {1, 1, 1}.

Neste ponto, precisamos estabelecer um critério de parada que determine


quão próxima da solução exata está a sequência convergente xi(k), sem
conhecermos a solução exata. Entre os critérios mais comuns, estão:

{ }
a) Max xl( k +1) − xl( k ) ≤ ε ⇒ i =1, 2 , 3,...,n

Corresponde à máxima diferença absoluta entre os valores da iteração


nova e da iteração anterior, entre todas as incógnitas i.

 x( k +1) − x( k ) 
b) Max  l ( k +1) l  ≤ ε ⇒ i =1, 2 , 3,...,n
 xl 

Corresponde à máxima diferença relativa entre os valores da iteração


nova e da iteração anterior, entre todas as incógnitas i.

{
Max ri (
k +1)
} ≤ ε ⇒ i =1, 2,3,...,n

72
TÓPICO 3 | MÉTODOS ITERATIVOS

Corresponde
n
ao maior resíduo entre todas as equações
i,rl( k +1=
)
bl − ∑ a1l xl( k +1) que já foi aplicado para aferição de soluções de métodos
l −1
diretos, mas pode gerar valores inconsistentes para sistemas mal condicionados.

( k +1)
No caso do Exemplo 9, quando aplicamos o critério Max xi − xi( k ) ≤ ε { }
das diferenças de valores sucessivos, temos:

TABELA 2 – VALORES DA SOLUÇÃO APROXIMADA PELO MÉTODO DE JACOBI COM CRITÉRIO


DE PARADA

k x1( k ) x(2k ) x3( k ) x1( k +1) − x1( k ) x(2k +1) − x2( k ) x3( k +1) − x3( k )
0 0 0 0 - - -
1 0.333 1.667 1 0.333 1.667 1
2 1.222 1.222 1.667 0.889 0.555 0.667
3 1.296 0.704 1 0.074 0.518 0.667
4 0.901 0.901 0.704 0.395 0.197 0.296
5 0.868 1.132 1 0.033 0.197 0.296
6 1.044 1.044 1.132 0.176 0.088 0.132

FONTE: Peters e Szeremeta (2017, p. 80).

Portanto, no Exemplo 9, o critério alcançado depois de 6 iterações é:

Max xi( k +1) − xi( k ) =.


0176

NOTA

Note que no exemplo o processo iterativo é do tipo oscilatório, isto é, as


incógnitas aumentam e diminuem ao longo das iterações, o que prejudica a convergência,
tornando o processo mais lento.

Observe, no Gráfico 1, a evolução de x1(k) (no eixo vertical) com o nível


iterativo k (no eixo horizontal) usando o método de Jacobi.

73
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

GRÁFICO 1 – EVOLUÇÃO DE x1(K) (NO EIXO VERTICAL) COM O NÍVEL ITERATIVO K (NO EIXO
HORIZONTAL) USANDO O MÉTODO DE JACOBI
2

1.5

0.5

0
0 1 2 3 4 5 6

FONTE: Peters e Szeremeta (2017, p. 81)

A seguir, vamos apresentar um método iterativo normalmente mais


eficiente do que o método de Jacobi.

DICAS

Acesse os links para assistir às videoaulas e saiba mais sobre o Método de


Jacobi: https://www.youtube.com/watch?v=XKOTur1PUbs>.
<https://www.youtube.com/watch?v=2s93vKnoKIg>.

3.2 MÉTODO ITERATIVO DE GAUSS-SEIDEL


No método iterativo de Gauss-Seidel, temos A · X = B com a partição de
A na forma A = L + D +U, como no método de Jacobi, porém tomando C = D + L,
E = U e aplicando na eq. (8):

X(
k +1)
= ( D + L)
−1
( B − U ⋅ X( ) )
k

74
TÓPICO 3 | MÉTODOS ITERATIVOS

Multiplicando a eq. (15) pela matriz (D + L), temos:

( D + L ) X ( k +1) = B − U ⋅ X ( k )
D ⋅ X(
k +1)
= B − L ⋅ X(
k +1)
− U ⋅ X( )
k

X (=)
D −1 B − L ⋅ X (
k +1
( k +1)
− U ⋅ X( )
k
) (16)

que, na forma desenvolvida, torna-se:

l −1 n
bl − ∑ a1l xl(
k +1)
− ∑ a1l xl( )
k

l −1 l − l +1
( k +1) l<l l >l
xl = ⇒ i 1, 2 ,...,n
all (17)

Essa operacionalização é semelhante à do método de Jacobi, exceto que,


na eq. (16), utilizamos sempre os valores de xj mais atualizados possíveis no
lado direito da equação iterativa, ou seja, já são usados os valores anteriormente
calculados de xj (k+1) das equações com j < i dentro da própria iteração em andamento
e, em (14), utilizamos apenas os valores de xj(k) da iteração anterior, ∀j.

Exemplo 10: Resolva o sistema, a seguir, pelo método de Gauss-Seidel:

 k +1 1 + x( k ) + x( k )
 x1( ) = 2 3

 3
 ( k +1)
− x3( )
k
 ( k +1) 5 − x1
 x2 =
 3
( k +1)
 ( k +1) 2 − x + x2( )
k +1

 x3 = 1

 2

Note que as equações evolutivas utilizam os valores disponíveis mais


atualizados possíveis.
Valor inicial: (x1(0), x2(0), x3(0))=(0, 0, 0).
Assim, usando a solução inicial em k = 0, podemos calcular a solução em
k + 1 a seguir:

 (1) 1 + 0 + 0
 x1
= = 0.333
3

 (1) 5 − 0.333 − 0
= x2 = 1.555
 3
 (1) 2 − 0.333 + 1.555
= x3 = 1.611
2

Observe que x1 (1) = 0.333, calculado na primeira equação i = 1, já foi utilizado


na equação de x2(1) e assim por diante, conforme a Tabela 3.
75
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

TABELA 3 – VALORES DA SOLUÇÃO APROXIMADA PELO MÉTODO DE GAUSS-SEIDEL

k x1( k ) x(2k ) x3( k ) x1( k +1) − x1( k ) x(2k +1) − x2( k ) x3( k +1) − x3( k )
0 0 0 0 - - -
1 0.333 1.555 1.611 0.333 1.555 1.611
2 1.388 0.666 0.638 1.055 0.888 0.972
3 0.768 1.197 1.214 0.620 0.531 0.575
4 1.137 0.882 0.872 0.368 0.314 0.341
5 0.918 1.069 1.075 0.218 0.186 0.202
6 1.048 0.958 0.955 0.129 0.110 0.120

FONTE: Peters e Szeremeta (2017, p. 83)

Temos a solução aproximada (x1(6), x2(6), x3(6)) = (1.048, 0.958, 0.955) com
critério de parada Max |xi(k +1) – xi(k)| = 0.129 atingido em 6 iterações.

NOTA

No exemplo anterior, o processo iterativo correspondente à aplicação do


método de Gauss-Seidel também é um processo oscilatório (podemos verificar que
|xi(k+1) - xi(k)| tem sinais alternados), mas agora temos um processo de convergência
um pouco mais rápido porque no método de Gauss-Seidel são tomados os valores
disponíveis mais atualizados.

Veja, no Gráfico 2, a evolução também oscilatória de x1 (no eixo vertical)


com o nível iterativo k (no eixo horizontal) usando o método de Gauss-Seidel.

76
TÓPICO 3 | MÉTODOS ITERATIVOS

GRÁFICO 2 – EVOLUÇÃO DE x1 (NO EIXO VERTICAL) COM O NÍVEL ITERATIVO k (NO EIXO
HORIZONTAL) USANDO O MÉTODO DE GAUSS-SEIDEL
2

1.5

0.5

0
0 1 2 3 4 5 6
FONTE: Peters e Szeremeta (2017, p. 84)

DICAS

Acesse os links para assistir às videoaulas e saiba mais sobre o Método de


Gauss-Seidel: <https://www.youtube.com/watch?v=N1xENFo90eY>.

A seguir, vamos apresentar condições suficientes para que um processo


iterativo, de soluções de sistemas lineares, seja convergente.

4 CONVERGÊNCIA DOS MÉTODOS ITERATIVOS


Nas seções anteriores, desenvolvemos duas formas iterativas, eqs. (14)
e (17), de construir uma sequência {X(k)} ∞K=0 de possíveis aproximações para a
solução de A · X = B. Agora, abordaremos quando se dá a convergência dessa
sequência. Para tal, necessitamos de dois conceitos adicionais:

Definição 1: No sistema A · X = B, sejam

n
=Zi ∑=
aij ,i 1,...,n,
j =1
i ≠i

77
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

teremos diagonal dominante se ocorrer:

a) |aii|≥ Zi para i = 1,..., n; e


b) |aii| > Zi, para pelo menos uma linha i de A.

Definição 2: Se |aii| > Zi , ∀i = 1, ..., n, o sistema A · X = B terá diagonal


estritamente dominante.

5 TEOREMA CONVERGÊNCIA – CRITÉRIO DE SCARBOROUGH


Segundo o teorema de convergência de Scarborough: se o sistema A · X = B
tiver diagonal dominante, ou diagonal estritamente dominante, tanto a sequência
construída pelo método de Jacobi quanto a pelo de Gauss-Seidel convergem para
a solução S.

Veja a aplicação da Definição 1 aos Exemplos 9 e 10, conforme a análise a


seguir:

a) Se |aii|≥ Zi para i = 1,..., n para todas as linhas i;

3x1 − x2 − = x3 1 3 ≥ −1 + −1 Válido

 x1 + 3x2 + =
x3 5 3 ≥ +1 + +1 Válido

 x1 − x2 + 2=x3 2 2 ≥ +1 + −1 Válido

Temos uma condição verdadeira, pois o módulo de cada elemento da


diagonal principal é maior ou igual a soma dos módulos dos demais elementos
da respectiva linha.

b) Se |aii| > Zi , para alguma linha i.

3x1 − x2 − = x3 1 3 > −1 + −1 Válido



 x1 + 3x2= + x3 5 3 > +1 + +1 Válido

 x1 − x2 + 2=
x3 2 2 ≥ +1 + −1 Não verificado

A condição também verdadeira para as duas primeiras equações. Logo,


esse sistema, resolvido nos Exemplos 9 e 10, satisfaz o critério de Scarborough da
diagonal dominante, e, portanto, tem convergência garantida.

Com relação à convergência dos métodos iterativos, algumas características


importantes devem ser salientadas, entre as quais destacamos:

78
TÓPICO 3 | MÉTODOS ITERATIVOS

a) A convergência para a solução S = lim {X(k)} ∞K=0 não depende do valor inicial
(0). Portanto, a escolha do X(0) adequado afeta apenas a quantidade de iterações
necessárias. Quanto mais próxima à solução estimada X(0) estiver da solução
exata S, mais rápida será a convergência (se convergir).

b) O teorema da convergência contém uma condição suficiente, porém não


necessária. Portanto, se esse teorema for verdadeiro, a sequência S convergirá;
se não for, nada podemos afirmar.

Exemplo 11: Verifique que, em:

 x1 + 2 x2 =
3

 x1 − 3x2 =
−2

O método de Gauss-Seidel fornece uma sequência convergente, mesmo


não satisfazendo o teorema da convergência:

 x1= 3 − 2 x2

 2 + x1
 x2 =
 3
Na tabela a seguir, temos a evolução iterativa da solução aproximada por
Gauss-Seidel:

TABELA 4 – EVOLUÇÃO ITERATIVA DA SOLUÇÃO APROXIMADA POR GAUSS-SEIDEL

k x1 x2
0 0 0
1 3 0.666667
2 1.666667 1.666667
3 -0.333333 1.222222
4 0.555556 0.555556
5 1.888889 0.851852
6 1.296296 1.296296
20 0.982658 0.982658
30 1.002284 1.002284
40 0.999699 0.999699
50 1.000040 1.000040
60 0.999995 0.999995
70 1.000001 1.000001
76 1 1

FONTE: Peters e Szeremeta (2017, p. 86-87)

79
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

c) Um sistema que não tenha diagonal dominante pode, em alguns casos, ser
transformado para ter diagonal dominante através de troca de linhas e/ou
colunas (pivotamento parcial ou total).

d) O critério de convergência de Scarborough enunciado anteriormente não é o


único. Podemos verificar na literatura outros critérios de convergência.

e) O teorema de convergência, baseado na dominância da diagonal principal da


matriz de coeficientes do sistema, indica uma redução dos erros da solução
aproximada em cada iteração. Por exemplo, no sistema dos Exemplos 9 e 10:

3x1 − x2 − x3 =1

 x1 + 3x2 + x3 =
5
 x − x + 2x = 2
 1 2 3

Temos as seguintes equações iterativas:

 k +1 1 + 1x( k ) + 1x( k )
 x1( ) = 2 3

 3
 ( k +1)
− 1x3( )
k
 ( k +1) 5 − 1x1
 2x =
 3
( k +1)
 ( k +1) 2 − 1x + 1x2( )
k +1

 x3 = 1

 2

Na equação de x1 do sistema anterior, a solução inicial X(0) é nula, logo


X(0) tem um erro unitário em todas as incógnitas (pois a solução exata é 1 para
cada incógnita). Observe que a solução para x1 na primeira iteração é 0.333, logo
tem um erro menor do que 1.0, ou seja, erro de 0.667. Isso decorre da redução
de erros promovida pela própria equação iterativa de x1, na qual os dois valores
de x2 e x3, cada um com seu erro interno 1.0, são multiplicados por coeficientes
unitários e divididos pela diagonal principal 3.0, logo ocorre uma redução
de erro aplicado na equação de x1, passando do erro inicial que era 1.0 para o
novo erro 2/3 em x1 = 0.333. Assim, quanto maior for a diagonal principal, mais
dominante esta será e maior também será a redução de erro da solução de uma
iteração para outra.

f) No sistema a seguir:

 x1 + 2 x2 =
3

 x1 − 3x2 =
−2

80
TÓPICO 3 | MÉTODOS ITERATIVOS

Exemplo 11 que não tem diagonal dominante e mesmo assim converge, as


equações iterativas são:

 x1= 3 − 2 x2

 2 + x1
 x2 =
 3

Observe que na equação de x1 ocorre uma amplificação do erro inicial


de x2, que é multiplicado por 2 e propagado para x1, mas na 2ª equação, de x2,
ocorre uma redução do erro existente em x1, que é multiplicado por 1/3 e depois
atribuído a x2.

Assim, ocorre uma redução global de erros promovida mais fortemente


pela equação de x2. Note que a segunda equação tem diagonal bem dominante
|−3| > |1| e acaba compensando a não dominância da diagonal da primeira
equação |1| < |2|.

81
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

LEITURA COMPLEMENTAR

Este texto aplica-se às disciplinas: Métodos Numéricos e Cálculo


Numérico dos cursos da  área de ciências exatas, tais como Ciência da
Computação, Engenharias, Matemática,  Física, Licenciaturas correlatas, entre
outros. Buscamos contemplar, de forma concisa, os  principais métodos para
resolução de equações e sistemas lineares na área de matemática numérica.
Sugerimos a Leitura Complementar “O concurso” do livro Métodos Numéricos
de Silva e Santos (2006).

Este texto aplica-se às disciplinas: Métodos Numéricos e Cálculo Numérico


dos cursos da área de ciências exatas, tais como Ciência da Computação,
Engenharias, Matemática, Física, Licenciaturas correlatas, entre outros. Buscamos
contemplar, de forma concisa, os principais métodos para resolução de equações
e sistemas lineares na área de matemática numérica. Sugerimos a Leitura
Complementar “O concurso” do livro Métodos Numéricos de Silva e Santos
(2006, p. 103-105).

O CONCURSO

Aquela oportunidade Carlos não poderia perder. Iria apegar-se a ela


com unhas e dentes. Afinal, dois anos e meio sem emprego, deixa qualquer
um completamente fora de si. Aquele concurso, portanto, era efetivamente sua
portunidade.

Ele se preparou com maior cuidado possível. Longas noites em claro,


revisando cada ponto do programa, o deixou com alguma tranquilidade se é que
se pode falar em tranquilidade num concurso com mais de 520 candidatos por
vaga. Mas ele tentava manter calma.

No dia das provas, antes de sair de casa, foi inúmeras vezes a W. C. e,


em verdade, não queriaque ninguém soubesse, mas não resistiu e tomou um
“clamante”, desses considerados leves e saiu para a “guerra”.

Primeiro, fez uma redação a qual considerou excelente. Isso pra ele não
constituiu grande sacrifício, afinal já foi, em tempos pretéritos, com menção
honrosa, é bem verdade, em um concuros literário. Mas efetivamente ele tinha,
e tem, domínio acima da média da língua mãe. Quando à prova de matemática,
considerou-se a bastante razoável. Era o resultado daquelas noites em claro e
da minha modesta ajuda nas raras horas de folga. Bem, quanto a princípios de
computação, ele considerou que dava pra ir. Agora era aguarda o resultado.

O que o deixaria mais apreensivo era a existência de apenas duas vagas.


Vou repetir: apenas duas vagas. Isso não era razoável, mas o que se poderia fazer?

Uma sofrida semana depois, o resultado foi publicado:

82
TÓPICO 3 | MÉTODOS ITERATIVOS

Candidato Redação Matemática Computação Média


Ary Boanota Euempurro 8,0 8,7 9,2 8,4
Pedro Mediachutada 8,0 7,8 8,2 8,3
Carlos Silva 8,0 7,8 7,9 8,1

Apenas três candidatos tinham atingido a nota acima da mínima exigida,


no caso 8,0, para ser considerado classificado. Destes, só não foi convocado para
assumir uma vaga o meu ex-aluno Calos Silva, pois, como já sabemos, só duas
vagas existiam.
Bastante chateado, ele me mostriu aquela tabela e pude observar
rapidamente que no cálculo do resultado não era expresso o valor de uma média
aritmética uma vez que, se assim fosse, o resultado final de Calorlos Silva seria
8,1666... e não 8,1. Ele me confirmou que se tratava de uma média aritmética
ponderada cujos pessos não tinham sido claramente divulgados.
- Ora Carlos, disse-lhe, mas isso é fácil de sabemos, basta montar um sistema de
equações e ....
- Olha professor, ele me interrompeu, hoje não estou com cabeça para esse tipo
de discussão. Quero mais é ir para casa.
Eu comprrendi seu estado de espírito, mas pedi para ele deixasse comigo
aquela fatídica tabela.
Por pura curiosidade, eu quis saber o peso atribuído a cada um dos testes
aplicados e sem problema nenhum, escrevi o sistema de equações lineares.

8, 0 pr + 8, 7 pm + 9 , 2 pc
8, 4 =
pr + pm + pc

8, 0 pr + 7 , 8 pm + 8, 2 pc
8, 3 =
pr + pm + pc

8, 8 pr + 7 , 8 pm + 7 , 9 pc
8,1 =
pr + pm + pc

No qual pr, pm e pc representam os pesos das provas de redações,


matemática e princípios de computação, respectivamente.
De obtive:

−0 , 4 pr + 0 , 3pm + 0 , 8 pc =
0
−0 , 3pr − 0 , 5 pm − 0 ,1pc =
0
0 , 7 pr − 0 , 3pm − 0 , 2 pc =
0

83
UNIDADE 1 | SISTEMAS DE EQUAÇÕES LINEARES

Que possui solução única, uma vez que o determinante da matriz de seus
coeficientes é diferente de zero e vale exatamente 0,285.

( i +1) 0 , 3pm( i ) + 0 , 2 pc( i )


pr =
0, 7
( i +1) 0 , 3pr ( i +1) + 0 ,1pc( i )
pm =
−0 , 5
( i +1) 0 , 4 pr ( i +1) − 0 , 3pm( i +1)
pc =
0, 8

Onde a primeira equação foi trocada com a terceira para que a matriz
associada fosse de diagonal estritamente dominante e tivesse convergência
garantida, uma vez que queria resolver o sistema pelo método iterativo de Gauss-
Seidel.
Partindo do vetor nulo, qual não foi a minha surpresaa ao obter o valor
exato da solução do sistema com apenas uma interação: o próprio vetor nulo.
Ora, mais isso era um absurdo, pois estava clara a fraude aplicada no tal
concurso.
Fui imediatamente à casa de Carlos, munido daqueles Cálculos, e o
incentivei a pedir anulação daquele concurso, pois seu resultado certamente não
refletia a realidade.
Infelizmente, Carlos sequer conseguiu ficar entre os classificados nas
novas provas, mas em termos de cidadania obteve nota 10.

Inspirado em Barroso e outros no livro Cálculo Numérico,


Harper & Row do Brasil Ltda., São Paulo, 1983.

FONTE: Santos e Silva (2006, p. 103-105)

84
RESUMO DO TÓPICO 3
Neste tópico, você aprendeu que:

• Os métodos iterativos são métodos de solução de sistemas de equações lineares


que trabalham com o refinamento do vetor solução até que se obtenha uma
precisão aceitável.

• Os métodos iterativos são geralmente utilizados para grandes sistemas de


equações, para serem tratados através dos métodos diretos. Apesar dos métodos
iterativos serem aplicáveis a grandes sistemas de equações, a convergência não
é garantida.

• Métodos iterativos de resolução de sistemas lineares são métodos que,


teoricamente, resultam em solução aproximada do sistema em um número
infinito de passos. Porém, ao implementá-los numericamente, pode haver
ocorrência de erros por arredondamento relacionados à aritmética usada e
também erros por truncamento, pois não é possível obter infinitas iterações, ou
seja, deve haver um critério de parada.

• No método de Jacobi, a atualização das componentes é feita de modo


simultâneo, enquanto no método de Gauss-Seidel é feita de modo sequencial.
Enquanto no primeiro cada componente é calculada independentemente das
outras, no segundo o cálculo considera novas componentes, o que acelera a
convergência.

85
AUTOATIVIDADE

Resolva os exercícios utilizando os métodos método iterativo de Jacobi


e Gauss-Seidel por meio de algoritmos.

1 Uma fábrica de tintas pretende utilizar as sobras de tinta de 4 tipos diferentes


de tonalidades de tinta verde para criar uma tonalidade de verde mais
popular. Uma unidade de medida (u.m.) da nova tinta será composta por x1
u.m. de tinta tipo 1, x2 u.m. de tinta tipo 2, x3 u.m. de tinta tipo 3 e x4 u.m. de
tinta tipo 4. Cada u.m. de tinta nova é composta por 4 pigmentos que estão
relacionados pelo seguinte sistema de equações lineares:

Os coeficientes da matriz representam a percentagem de pigmento em


cada uma das 4 diferentes tonalidades de tinta verde, por exemplo, a tinta com
a nova tonalidade deverá conter 31% de pigmento 3, sabendo que a tinta tipo
1 contém 16%, a tinta tipo 2 com 20%, a tinta tipo 3 com 60% e a tinta tipo 4
contém 72% do mesmo pigmento.

a) Analisando apenas as condições suficientes de convergência, verifique se o


método de Gauss-Seidel converge, quando aplicado a este sistema.

b) Resolva o sistema de equações usando o método iterativo de Gauss-Seidel,


utilizando para aproximação inicial o ponto (0.5, 0.2, 0.2, 0)T e utilizando
para critério de paragem ε = 0.25 ou nmax = 2.

2 Considerando o sistema linear:

5x1 + 2 x2 + x3 =
7
− x1 + 4 x2 + 2 x3 =
3
2 x1 − 3x2 + 10 x3 =
−1

86
a) Aplique o Método de Jacobi considerando x0 a aproximação inicial proposta
pelo problema.
b) Construa o gráfico que ilustra a convergência da solução acima (b).
c) Aplique o Método de Gauss-Seidel. Utilizando a função com os parâmetros
Gauss Seidel ([5, 2, 1; -1, 4, 2; 2, -3, 10], [7, 3, -1], [-2.4, 5, 0.3], 10-2, 100).
d) Construa o gráfico de convergência do item citado anteriormente.

3 Considere o seguinte sistema de equações para determinar as concentrações


c1, c2 e c3 (g/m3) numa série de 3 reactores como função da quantidade de
massa à entrada de cada reactor (termo independente do sistema em g):

17c1 − 2c2 − 3c3 = 500



−5c1 + 21c2 − 2c3 = 200
−5c − 5c + 22c = 30
 1 2 3

a) Analise as condições suficientes de convergência do método de Gauss-


Seidel quando aplicado ao sistema.
b) Aplique o método de Gauss-Seidel ao sistema, considerando como
aproximação inicial o ponto (34, 19, 13) e ε1 = 0.0025 ou no máximo 2
iterações.

4 Uma equipa de três paraquedistas ligados por uma corda de peso


desprezável é lançada em queda livre a uma velocidade v = 5 m/s conforme
a figura. Considere os seguintes dados:

Massa Coef. de resistência


Paraquedista (i)
(mi) (kg) (ci) (kg/s)

1 70
10

2
60 14

3
40 17

O sistema linear resultante permite calcular a tensão em cada secção


da corda (R e T) e a aceleração da equipa (a). (considere g = 9.8 m/s2).

87
O que poderia dizer acerca da convergência do método iterativo de
Gauss-Seidel quando aplicado ao sistema? Justifique.

5 Resolva o seguinte conjunto de quatro equações lineares usando o método


iterativo de Gauss-Seidel.

9 x1 − 2 x2 + 3x3 + 2 x4 =
54 , 5
2 x1 + 8x2 − 2 x3 + 3x4 =
−14
−3x1 + 2 x2 + 11x3 − 4 x4 =
12 , 5
−2 x1 + 3x2 + 2 x3 + 10 x4 =
−21

Como ponto de partida, assume-se que o valor inicial de todas as


incógnitas seja igual a zero.

88
UNIDADE 2

SISTEMAS DE EQUAÇÕES NÃO


LINEARES

OBJETIVOS DE APRENDIZAGEM
A partir desta unidade, você deverá ser capaz de:

• aproximar um sistema não linear por um sistema linearizado em torno de


um ponto de equilíbrio;

• aproximar um sistema não linear por uma combinação de múltiplos


sistemas lineares;

• estabelecer valores iniciais para raízes de uma equação não linear f(x) = 0;
determinar as raízes que satifaçam uma equações f(x) = 0 por métodos de
quebra e de iterativos (linearização);

• estipular todas as raízes todas as raízes, reais e/ou complexas, para


equações polinomiais, considerando os efeitos da multiplicidade;

• mensurar e avaliar a precisão do resultado obtido com utilização de


algoritmos disponibilizados.

PLANO DE ESTUDOS
Esta unidade está dividida em três tópicos. No decorrer da unidade,
você encontrará autoatividades com o objetivo de reforçar o conteúdo
apresentado.

TÓPICO 1 – SISTEMAS NÃO LINEARES

TÓPICO 2 – ZEROS DAS FUNÇÕES

TÓPICO 3 – INTERPOLAÇÃO POLINOMIAL

89
90
UNIDADE 2
TÓPICO 1

SISTEMAS NÃO LINEARES

1 INTRODUÇÃO
Neste tópico iremos apresentar métodos para resolução de sistemas não
lineares que fundamentam o cálculo numérico computacional. No processo
de resolução de um problema prático, é frequente a necessidade de se obter a
solução de um sistema de equações não lineares.

Os métodos numéricos são usados na busca das raízes das equações, ou


os zeros reais de f(x). Em geral, os métodos utilizados apresentam duas fases
distintas, que são apresentadas por Pilling (s.d; p.2)

-> Fase I: localização ou Isolamento das Raízes: que consiste em


encontrar e obter um intervalo que contém a raiz da função f(x) = 0,
e em seguida, e
-> Fase II: refinamento: definimos a precisão da resposta e
determinamos as aproximações iniciais dentro do intervalo
encontrado na Fase I. Em seguida, melhoramos, sucessivamente, a
aproximação da raiz da função f(x) = 0, até se obter uma aproximação
para a raiz dentro de uma precisão pré-fixada.

A resolução de equações não lineares surge naturalmente em diversas


aplicações. Entretanto, na modelagem de problemas reais é comum que haja a
necessidade de se obter a solução de sistemas de equações não lineares. Contudo,
a resolução geralmente só é viável se realizada por um método iterativo.

Os métodos iterativos podem ser considerados como métodos de


aproximações sucessivas, sendo que cada nova aproximação é obtida a partir
da aproximação anterior por meio de um algoritmo conhecido, de modo que se
pretende tornar cada vez menor o erro de aproximação entre a solução gerada
pelas iterações e a solução real do problema. Dessa forma, os métodos iterativos
geram uma sequência de vetores solução que em condições ideais convergem
para uma das soluções do sistema de equações, caso ela exista (RUGGIERO;
LOPES, 1997).

91
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

UNI

https://www.math.tecnico.ulisboa.pt/~calves/MC/cap2.html

2 EQUAÇÕES NÃO LINEARES


Um sistema de equações não lineares é um sistema constituído por
combinação de funções algébricas e funções transcendentes, tais como a função
exponencial, a função logaritmo, as funções trigonométricas, e outros.

Devido a não linearidade dos sistemas de equações não lineares eles não
podem ser reduzidos à forma matricial A · X = B, de modo que nem o cálculo
direto pelo método de eliminação gaussiana nem por inversão de matrizes pode
ser aplicado. Outra dificuldade vem da diversidade de funções transcendentes
que impede a elaboração de algoritmo que possa ser aplicado a um sistema de
equações não lineares genérico (GILAT; SUBRAMANIAM, 2008).

Para resolver o seguinte problema, vamos estudar métodos numéricos


aplicado ao sistema de equações não lineares. Dada uma função f contínua, real e
de uma variável, queremos encontrar uma solução x∗ que satisfaça a equação não
linear:

f(x∗) = 0 (1)

Em geral a equação dada não pode ser resolvida exatamente, isto é, a


solução x∗ não pode ser descrita a partir de uma combinação finita de operações
algébricas simples (+, −, /, ×, exp, log) e funções elementares (polinômios, razão
entre polinômios, potências racionais, e as funções transcendentais: exp, log,
trigonométricas, hiperbólicas).

Há casos em que a própria função f não é conhecida explicitamente: pode


ser definida a partir de uma série infinita, ou a partir de uma integral ou ainda ser
solução de uma equação diferencial. Nesses casos utilizamos métodos numéricos
para resolver a equação. Idealmente, poderíamos dividir o procedimento nas
seguintes etapas: inicialmente devemos encontrar uma região de interesse onde
possam existir soluções da equação; em seguida, quando possível, isolar os
intervalos que contêm apenas uma solução; feito isso, determinamos pelo menos
1 aproximação inicial x0 da solução (de acordo com o método utilizado, pode
ser necessário utilizar mais de uma aproximação inicial) para cada intervalo;
finalmente, a partir das aproximações iniciais, o método numérico consiste na
construção de uma seqüência {xn}∞ n = 0 que converge para a solução , isto é,
lim xn = x∗
n→∞

92
TÓPICO 1 | SISTEMAS NÃO LINEARES

como solução da equação (1). Portanto os métodos numéricos para encontrar a


solução de equações não lineares são métodos iterativos. A cada iteração, utilizamos
um subconjunto das aproximações xn−1, xn−2 ,... , x0, obtidas anteriormente, para
determinar a próxima aproximação xn.

3 RESOLUÇÃO DE SNL COM MATLAB


Estudaremos os métodos separados em três classes principais para
resolver equações não lineares.

Métodos de quebra: o ponto de partida é encontrar um intervalo


que contenha pelo menos 1 solução. Segundo o teorema de Bolzano,
basta determinar um intervalo em que a função f muda de sinal.
Os métodos de quebra consistem na descrição de como subdividir
o intervalo inicial em intervalo cada vez menores que ainda
contenham a mesma solução. Nesse caso, a sequência x0, x1, x2,... , xn
é formada pelos extremos dos intervalos. A solução numérica será
encontrada quando a largura do intervalo em uma m-ésima iteração
for pequena o suficiente para satisfazer as exigências de exatidão. Os
dois principais métodos são da bisseção e da falsa posição (regula
falsi).
Métodos de ponto fixo: A seqüência {xi} i = n e i = 0 é construída a
partir da sucessiva iteração xn+1 = φ(xn). A convergência do método é
garantida pelo teorema do ponto fixo, daí o nome dos métodos. Os
principais métodos são da iteração linear e de Newton-Raphson.
Métodos de múltiplos passos: Uma generalização do método
anterior onde a função φ depende de mais de uma aproximação
anterior, i. e., x n+1 = φ(x n,x n−1,... ,xn−p) para algum p ≥ n, sendo o
método da secante o principal para a solução de sistemas não
lineares (GUIDI, s.d. ,p.11).

4 PRINCIPAIS COMANDOS BÁSICOS NO MATLAB


Para encontrar uma raiz da equação ƒ(x) = 0 onde ƒ é uma função de uma
variável real, a solução deste problema para uma função ƒ qualquer, a partir de
um ponto 0, podemos usar o comando fzero(função, x0). No entanto, um cuidado
especial com a função a ser minimizada é necessário.

No MATLAB, para passarmos uma função como argumento de outra


função (no caso, queremos passar ƒ(x) como argumento da função fzero)
precisamos obter a referência da função (assim como tínhamos obtido a referência
a um objeto gráfico anteriormente) (MENDONÇA, s.d.). Primeiramente, a função
para a qual gostaríamos de encontrar uma raiz deve estar em um arquivo próprio,
definida como uma função do MATLAB, no formato:

93
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

[y] = minhafuncao(x) comandos

Em seguida, chamamos a função fzero no console para minimizar a função


minhafuncao a partir do ponto x0, escrevendo:

» fzero(@minhafuncao,x0)

Exemplo: Para encontrar uma das raizes de ƒ(x) = x² − 4, previamente


definida em um arquivo de nome quadratica.m, a partir do ponto = 6, usamos o
comando:

» fzero(@quadratica,6)

O algoritmo da função fzero usa uma combinação dos métodos da


bisseção, secante e interpolação quadrática inversa.

Para encontrar as raízes de um polinômio de grau n da forma:

p(x) = a0 + a1x + a2 x 2 + ... + an xn

Primeiramente representamos este polinômio como um vetor linha


p no MATLAB, cujas componentes são os coeficientes dos termos em ordem
descendente de grau, ou seja:

» p = [an an−1 · · · a2 a1 a0]

Em seguida, usamos o comando » r = roots(p) resultando em um vetor


coluna r com as raízes deste polinômio.

Exemplo: Seja p(x) = t3 + 2t2 − 5t − 6

» p = [1 2 -5 -6]
» roots(p)

94
TÓPICO 1 | SISTEMAS NÃO LINEARES

FIGURA 1 – DADO f(x) = t³ + 2t² − 5t − 6 E SUAS RAÍZES

f(x) = t 3 + 2t 2 - 5t - 6
25

20

15

10

-5

-10

-15

-20
-4 -3 -2 -1 0 1 2 3
FONTE: Mendonça (2011, p. 52)

E, para encontrarmos a solução de um sistema de equações não lineares da


forma f(x) = 0 onde f :  n →  m , usamos a função fsolve. Neste caso, similarmente
à função fzero, devemos escrever a função f(x) em um arquivo .m separadamente,
e usar a sintaxe:

» fsolve(@minhafuncao,x0)

Exemplo: Resolver o sistema de equações

 y1 = 3x1 + 4 x2 − 16
2 2

 2 2
 y2 = 2 x1 − 3x2 − 5

» fsolve(@funcs,[1;1])

Observação: Este comando faz parte da Optimization Toolbox, que pode


não estar disponível na sua instalação do MATLAB.

95
RESUMO DO TÓPICO 1
Neste tópico, você aprendeu que:

• Na resolução numérica de equações não linerares, o processo iterativo deve


gerar iterações que se aproximam da raiz procurada, isto é, deve ser convergente
para a referida raiz.

• Considerando convergente um dado processo iterativo, a caracterização da


sua velocidade de convergência para uma certa raiz, é outra noção que importa
formalizar e que tem muita importância.

• Quanto maior a ordem de convergência maior também será a velocidade de


convergência.

• Podemos aproximar um sistema não linear por um sistema linearizado em


torno de um ponto de equilíbrio.

• Podemos aproximar um sistema não linear por uma combinação de múltiplos


sistemas lineares.

96
AUTOATIVIDADE

1 Resolva o sistema de equações não lineares:

 f1 ( x1 , x 2 ) = x12 + x 22 − 2 = 0

 x2
 f2 ( x1 , x 2 ) = x12 − 2 − 1= 0
 9

a) Determine as soluções do sistema.


b) Explique, por que este sistema admite quatro soluções, que são os pontos
onde as curvas se interceptam.
c) Interprete o gráfico.

x2

-√2 √2 x1

2 Resolva o sistema de equações não lineares:

 f1 ( x1 , x 2 ) = x12 − x 2 − 0, 2 = 0

 f2 ( x1 , x 2 ) = x1 − x 2 + 1 = 0
2

a) Determine as soluções do sistema.


b) Explique por que este sistema não tem solução, ou seja, não existem pontos
onde as curvas se interceptam.
c) Interprete o gráfico.

97
x2

-0,4 -0,2 0,2 0,4 0,6 1 x1


-0,2

98
UNIDADE 2 TÓPICO 2

ZEROS DAS FUNÇÕES

1 INTRODUÇÃO
Neste tópico, estudaremos os principais métodos iterativos para a solução
de um sistema de equações não lineares, assim como, exemplos de algoritmos
em Matlab, a saber: a descrição de cinco métodos numéricos utilizados na
determinação da raiz de uma única equação, sendo eles, dois métodos de
confinamento, o método da bisseção e o método de falsa posição, seguido dos
três métodos abertos, o método de Newton, o método da secante, e finalizando, o
método da iteração de ponto fixo.

O MATLAB possui duas funções que podem ser usadas para resolver
equações com uma variável. O comando fzero pode ser usado na obtenção da
raiz de qualquer equação, e o comando roots pode ser usado na obtenção das
raízes de um polinômio.

Além disso, considere esses algoritmos como exemplos complementares


que foram elaborados pela professora Mariana Baroni e disponiveis no site
<https://sites.google.com/site/marianabaroni/algoritmos>.

2 ZEROS DAS FUNÇÕES


Equações precisam ser resolvidas em todas as áreas da ciência e da
engenharia. Uma equação de uma única variável pode ser escrita na forma:

f(x) = 0

A solução desta equação (também chamada de raiz) é um valor numérico


de x que satisfaz à equação. Graficamente, a solução é o ponto onde a função f(x)
cruza ou toca o eixo x. Uma equação pode não ter solução ou ter uma ou várias
raízes (possivelmente muitas), conforme mostrado na Figura 2.

99
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

FIGURA 2 – ILUSTRAÇÃO DE EQUAÇÕES COM NENHUMA, UMA OU VÁRIAS SOLUÇÕES


y y y y
y=f(x) y=f(x) y=f(x) y=f(x)

Solução Soluções

x x x x

Sem Solução Uma Solução Uma Solução Várias soluções


FONTE: Gilat e Subramaniam (2008, p. 7)

Quando a equação é simples, o valor de x pode ser determinado


analiticamente. Esse é o caso quando se escreve x explicitamente após a aplicação
de operações matemáticas, ou quando uma fórmula conhecida (como a fórmula
usada na resolução de equações quadráticas) pode ser usada para determinar
o valor exato de x. Em muitas situações, no entanto, é impossível determinar
analiticamente a raiz de uma equação.

Os métodos numéricos usados para resolver equações podem ser divididos


em dois grupos: métodos de confinamento e métodos abertos. Nos métodos de
confinamento, identifica-se um intervalo que inclui a solução. Por definição, os
pontos finais do intervalo são os limites superior e inferior da solução. Então,
usando um esquema numérico, o tamanho do intervalo é reduzido sucessivamente
até que a distância entre os pontos finais seja menor que a precisão desejada para
a solução (CASTRO, s.d.).

Nos métodos abertos, assume-se uma estimativa inicial para a solução (um
ponto). O valor dessa tentativa inicial para a solução deve ser próximo à solução
real. Então, usando um esquema numérico, valores melhores (mais precisos) são
calculados para a solução. Métodos de confinamento (bisseção e o regula falsi)
sempre convergem para uma solução. Métodos abertos (Newton, secante e o
iteração de ponto fixo) são usualmente mais eficientes, mas às vezes podem não
levar à solução. Conforme mencionado anteriormente, já que métodos numéricos
não são exatos, é necessário estimar os erros envolvidos, conforme figura a seguir:

100
TÓPICO 2 | ZEROS DAS FUNÇÕES

FIGURA 3 – MÉTODOS NUMÉRICOS UTILIZADOS NA DETERMINAÇÃO DA RAIZ DE UMA


ÚNICA EQUAÇÃO

Sistemas Não-Lineares

Métodos

Newton-Raphson

Falsa Posição

Secante

Bisseção

Iteração de
Ponto Fixo

Fonte: O autor

O emprego de programas computacionais como o Matlab é de importância


significativa para o ensino de engenharia por tratar-se de um sistema gráfico que
integra a capacidade de se fazer cálculos, programação e visualização gráfica em
um ambiente interativo bastante agradável, onde os problemas e suas soluções
são expressos em uma linguagem matemática familiar (LIMA et al., 2004).

A ideia central dos métodos que iremos aprender é partir de uma


aproximação inicial para a raiz e em seguida refinar essa aproximação através de
um processo iterativo. A seguir, apresentaremos os métodos iterativos Bissecção,
Falsa posição, Ponto fixo, Newton-raphson e Secante, utilizados na determinação
da raiz de uma única equação e aplicação à solução de problema com o auxílio
do MaTlab.

3 MÉTODOS DE RESOLUÇÃO NO MATLAB


Seguidamente apresentaremos os cinco principais métodos iterativos
utilizados para resolver as equações não lineares aplicados em Matlab.

3.1 MÉTODO DE BISSECÇÃO


O método da bisseção é um método de confinamento usado para se
obter a solução de uma equação na forma f(x) = 0 dentro de um dado intervalo
[a, b], em que f(x) é contínua e a equação possui uma solução. De forma geral,
o método consiste em uma busca binária pelo zero da função problema.
Suponhamos uma função f(x), contínua ou não, mas bem definida no intervalo
[a, b] (o intervalo [a, b] deve ser contínuo).

101
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

Inicialmente, analisamos se f(a) · f(b) < 0, em caso verdadeiro, isto


indica que os valores da função para os pontos a e b têm valores opostos:
− f (a) f (b)
=
f (a) f (b)
Em seguida, dividimos o intervalo [a , b] pela metade, em um ponto p.
Analisando os sinais da função para os três pontos em questão [f(a),f(b),f(p)],
chegamos em três casos:

i) f(p) = 0 : O ponto p é raiz da função.


ii) f(p) · f(a) < 0 : A raiz da função encontra-se no intervalo [a, p]. Deste modo,
há uma atualização do intervalo inicial [a, b] para [a, p].
iii) f(p) · f(a) > 0 : A raiz da função encontra-se no intervalo [p, b]. Deste modo,
há uma atualização do intervalo inicial [a, b] para [p, b].

Conforme mostrado na Figura 4, se f(x) é contínua e tem uma solução


entre os pontos x = a e x = b.

FIGURA 4 – REPRESENTAÇÃO DO MÉTODO DA BISSECÇÃO

FONTE: Burden (2010, p. 49)

Ao implementarmos o método, é aconselhável que o cálculo para obtenção


do ponto médio Pn seja feita da seguinte forma:

bn − an
P=
n an +
2

102
TÓPICO 2 | ZEROS DAS FUNÇÕES

Uma forma equivalente e mais intuitiva seria:

an + bn
Pn =
2
Porém, esta segunda forma apresenta maior ampliação do erro em
relação à primeira. Ou seja, o primeiro modo irá resultar em menores erros de
arredondamento quando implementado.

É possível mensurar o número de iterações necessárias para se obter a


aproximação desejada, de acordo com o tamanho do intervalo inicial definido e a
tolerância imposta: Sabemos que o comprimento de um intervalo [bk,ak] é sempre
a metade do comprimento do intervalo anterior [bk-1,ak-1], logo:

bk - 1 - ak - 1 b0 − a0
bk - ak = =
2 2k

Deve-se obter o valor de k tal que bk – ak < ε, ou seja,

b0 − a0 b0 − a0
k
< ε → 2k > → k log ( 2 ) > log ( b0 − a0 ) − log ( ε ) →
2 ε
log ( b0 − a0 ) − log ( ε )
k>
log ( 2 )

O menor valor de k que satisfaz à desigualdade é também o menor


número de iterações necessárias. Como se pode ver pela desigualdade, ao tomar
um intervalo muito grande, se comparado a ε, a convergência do método é muito
lenta (RUGGIERO; LOPES, 1988).

Vale ressaltar que o método de bisseção sempre converge para uma


resposta, desde que uma raiz esteja contida no intervalo inicial [a, b], assim
como, pode falhar quando a função é tangente ao eixo x, não o cruzando em
f(x) = 0 e sua convergência é lenta em comparação com outros métodos (GILAT;
SUBRAMANIAM, 2008).

Exemplos: um exemplo de planilha em Excel para resolver equações não


lineares pelo Método da bisseção:

Exemplo a: f(x) = 3x - 4sen(x)

103
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

QUADRO 1 – RESOLUÇÃO DA FUNÇÃO f(x) = 3x - 4sen(x) PELO MÉTODO DA BISSEÇÃO

FONTE: O autor

Exemplo b: f(x) = x² = e-x

QUADRO 2 - RESOLUÇÃO DA FUNÇÃO f(x) = x² = e-X PELO MÉTODO DA BISSEÇÃO

FONTE: O autor

104
TÓPICO 2 | ZEROS DAS FUNÇÕES

Aplicação à solução de problema no MatLab

Exemplo c: Seja f(x) = x² + log (x), resolva a equação não linear pelo Método
da bisseção. Considere o algoritmo em Matlab para o Método de Bisseção.

QUADRO 3 – RESOLUÇÃO DA f(x) = x² + log (x) PELO MÉTODO DA BISSEÇÃO EM MATLAB

FONTE: O autor

105
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

DICAS

Acesse os links para assistir às viodeoaulas e saiba mais sobre o Método de


Bissecção:
<https://www.youtube.com/watch?v=dXxpLj5h6p4>.
<https://www.youtube.com/watch?v=jH1T1skt-7o>.

3.2 MÉTODO INTERPOLAÇÃO LINEAR (FALSA POSIÇÃO)


De forma geral, o método falsa-posição consiste na utilização de pares
[a, b] de aproximações que englobam a raiz nesse intervalo. Inicialmente
devemos inserir no método dois valores de saída, dois parâmetros iniciais: P0
e P1 . Além disso, temos que analisar o valor de f(P0) · f(P1).

Casos possíveis:

i) f(P0) · f(P1) = 0: P0 e/ou P1 é raiz da função.


ii) f(P0) · f(P1) < 0: A raiz da função encontra-se no intervalo [P0, P1].
iii) f(P0) · f(P1) > 0: Não necessariamente a função possui raiz e, para o
Método da Falsa Posição, este caso não é interessante.

Como visto no caso ii, para que possamos utilizar o Método da Falsa-
Posição, os valores da função nos pontos P0 e P1 devem ser opostos. Nesse caso, o
Teorema de Bolzano nos garante a existência de uma raiz.

Para determinarmos o valor de P2 , é necessário traçarmos uma reta r entre


os pontos [P0 , f(P0)] e [P1 , f(P1)], como indicado na figura a seguir. A posição do
ponto P2 é onde a reta r intercepta o eixo das abscissas. Porém, P2 é a primeira
aproximação de raiz do programa, é necessário que haja um refinamento dos
valores obtidos. Para que isso ocorra, precisamos encontrar um P3, P4, P5... até que
algum critério de parada seja satisfeito. Para encontrarmos P3 , devemos analisar
o sinal de f(P1) · f(P2):

a) Se f(P1) · f(P2) > 0 : Atualiza-se o intervalo [P0 , P1] para [P0 , P2]; e
b) Se f(P1) · f(P2) < 0 : Atualiza-se o intervalo [P0 , P1] para [P1 , P2];

Este processo é repetido, em termos gerais, da seguinte maneira: Para


encontrarmos Pn , devemos analisar o sinal de f(Pa) · f(Pb):

106
TÓPICO 2 | ZEROS DAS FUNÇÕES

a) Se f(Pa). f(Pb) > 0 : Atualiza-se o intervalo [Pc , Pd] para [Pc , Pb]; e
b) Se f(Pa). f(Pb) < 0 : Atualiza-se o intervalo [Pd , Pd] para [Pd , Pb];

Conforme ilustrado na Figura 5, a solução tem início com a obtenção de


um intervalo [p0, p1] que confine a solução. Os valores da função nos pontos finais
são f(p0) e f(p1).

FIGURA 5 – REPRESENTAÇÃO DA FALSA-POSIÇÃO

FONTE: Burden (2010, p. 73)

Aplicação à Solução de Problema no MatLab

Exemplo: Seja f(x) = x² + log (x), resolva a equação não linear pelo Método
Falsa-Posição. Considere o algoritmo em Matlab para o Método de Falsa-Posição.

107
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

QUADRO 4 – RESOLUÇÃO DA f(x) = x² + log (x) PELO MÉTODO FALSA-POSIÇÃO EM MATLAB

FONTE: O autor

108
TÓPICO 2 | ZEROS DAS FUNÇÕES

DICAS

Acesse os links para assistir às viodeoaulas e saiba mais sobre o Método da


Posição - Falsa:
<https://www.youtube.com/watch?v=ONQVk0SrbRQ>
<https://www.youtube.com/watch?v=Q9xqQ2NMzTo>.

3.3 MÉTODO DE NEWTON-RAPHSON


O método consiste em aproximações baseadas nas derivadas das funções
em pontos específicos. Portanto, precisamos de uma função contínua que seja
diferenciável em todos os pontos do intervalo analisado. Isto é, um esquema
usado para se obter a solução numérica de uma equação na forma f(x) = 0, onde
f(x) é contínua e diferenciável e sua equação possui uma solução próxima a um
ponto dado, conforme ilustrado na figura a seguir.

FIGURA 6 – REPRESENTAÇÃO DE NEWTON-RAPHSON

FONTE: Gilat e Subramaniam (2008, p. 82)

O processo de solução inicia com a escolha do ponto x1 como a primeira


estimativa da solução. A segunda estimativa, x2, é obtida a partir do cruzamento
com o eixo x da reta tangente a f(x) no ponto (x1, f(x1)). A estimativa seguinte, x3,
é a interseção com o eixo x da reta tangente a f(x) no ponto (x2, f(x2)), e assim por
diante. Matematicamente, na primeira iteração, a inclinação f ′(x1) da tangente no
ponto (x1, f(x1)) é dada por:

f ( x1 ) − 0
f ' ( x1 ) = (1)
´

x1 − x2

109
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

Resolvendo a Eq. (1) para x2, obtém-se:

f ( x1 )
x2 = x1 (2)
f '( x1 )

A Eq. (2) pode ser generalizada para que a “próxima” solução xi+1 seja
obtida a partir da solução atual:

f ( xi )
xi +1 = xi (3)
f '( xi )

A Eq. (3) é a fórmula iterativa geral do método de Newton. Chamada de


Fórmula Iterativa devido à solução obtida com a aplicação repetida da equação
(3) em cada valor sucessivo de i. O método de Newton também pode ser deduzido
a partir da série de Taylor. A expansão em série de Taylor de f(x) em torno de x1
é dada por:

1
f ( x=
) f ( x1 ) + ( x − x1 ) f '( x1 ) + ( x − x1 )2 f "( x1 ) + ... (4)
2!
1
f ( x2 ) =0 =f ( x1 ) + ( x2 − x1 ) f '( x1 ) + ( x2 − x1 )2 f "( x1 ) + ... (5)
2!
f ( x1 )
x2 = x1 (6)
f '( x1 )

O resultado é o mesmo dado pela Eq. (2). Na iteração seguinte, a expansão


em série de Taylor é escrita em torno do ponto x2, e uma solução aproximada x3 é
calculada. A fórmula geral é igual àquela dada pela Eq. (3).

Exemplos: três exemplos de planilha em Excel para resolver equações não


lineares pelo Método de Newton-Raphson.

Exemplo a:

110
TÓPICO 2 | ZEROS DAS FUNÇÕES

QUADRO 5 - RESOLUÇÃO PELO MÉTODO DE NEWTON-RAPHSON NO EXCEL

FONTE: O autor

Exemplo b: Resolução pelo Método de Newton-Raphson no Excel.

QUADRO 6 - RESOLUÇÃO PELO MÉTODO DE NEWTON-RAPHSON NO EXCEL

FONTE: O autor

Exemplo c:

QUADRO 7 - RESOLUÇÃO PELO MÉTODO DE NEWTON-RAPHSON NO EXCEL.

FONTE: O autor

111
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

Aplicação à Solução de Problema no MatLab

Exemplo d: Seja f(x) = x² + log (x), resolva a equação não linear pelo
Método de Newton-Raphson. Considere o algoritmo em Matlab para o Método
de Newton-Raphson.

QUADRO 8 – RESOLUÇÃO DA f(x) = x² + log (x) PELO MÉTODO DE NEWTON-RAPHSON


EM MATLAB

FONTE: O autor

112
TÓPICO 2 | ZEROS DAS FUNÇÕES

DICAS

Acesse os links para assistir às viodeoaulas e saiba mais sobre o Método de


Newton-Raphson:
<https://www.youtube.com/watch?v=aHuyFxMGcKg>.
<https://www.youtube.com/watch?v=j_5930C13Y4>.
<https://www.youtube.com/watch?v=0v_2fLnd4wE>.

3.4 MÉTODO DA SECANTE


O método da secante é similar ao método da falsa-posição, o qual é um
caso particular do primeiro. Este algoritmo consiste em determinar um intervalo
[x1,x0] onde a função é contínua. Nesta aplicação, não é necessário que a raiz da
função esteja contida no intervalo e, por essa razão, é sua viabilidade em certos
casos é maior.

Definido o intervalo, o próximo passo é traçar uma reta secante à curva,


que passe pelos dois pontos. Esta reta intercepta o eixo das abscissas em um dado
ponto x2. Este, por sua vez, configura um novo intervalo, definido por [x2, x1].

O passo anterior se repete e novos intervalos [xk, xk-1] são definidos, como
mostra a figura a seguir. O método chega ao fim após atender um dos critérios
de parada.

DICAS

Acesse os links para assistir às viodeoaulas e saiba mais sobre o Método


Secante:
<https://www.youtube.com/watch?v=ZlYUFFNB3Fc>.
<https://www.youtube.com/watch?v=x9FtE38b1vM>.
<https://www.youtube.com/watch?v=uVkMdtAy_XQ>.

113
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

FIGURA 7 – REPRESENTAÇÃO GRÁFICA DO MÉTODO DA SECANTE

f(x)

x0 x1
x3 x4 E x2 x

FONTE: Ruggiero e Lopes (1988, p. 75)

O valor aproximado da raiz da função (xn+1) é dado pela expressão a seguir:

xn − xn−1
xn+=
1 xn − f ( xn )
f ( xn ) − f ( xn−1 )

O método da secante também é similar ao método de Newton-Raphson.


Uma diferença é que a reta secante é substituída pela tangente em um dado ponto.
A substituição da tangente no método de Newton pela secante torna o método
relativamente mais simples, pois não é necessário calcular a derivada da função
para de obter o coeficiente angular da reta.

Segundo Ruggiero e Lopes (1988), outra diferença entre o método da


secante e o de Newton diz respeito à ordem de convergência(α) que, neste
método, é dada por:

1+ 5
=a ≈ 1.618
2

Onde α recebe a denominação de razão áurea. De acordo com a


abordagem referente a ordem de convergência (item 2.1.2.6), o valor de 1.618
configura convergência superlinear (α > 1 e α < 2).

Exemplos: dois exemplos de planilha em Excel para resolver equações


não lineares pelo Método da Secante.

114
TÓPICO 2 | ZEROS DAS FUNÇÕES

Exemplo a:

QUADRO 9 – RESOLUÇÃO DE EQUAÇÕES NÃO LINEARES PELO MÉTODO DA SECANTE


EM EXCEL

FONTE: O autor

Exemplo b:

QUADRO 10 – RESOLUÇÃO DE EQUAÇÕES NÃO LINEARES PELO MÉTODO DA SECANTE


EM EXCEL

FONTE: O autor

Aplicação à Solução de Problema no MatLab

Exemplo c: Seja f(x) = x² + log (x), resolva a equação não linear pelo Método
da Secante. Considere o algoritmo em Matlab para o Método da Secante.

115
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

QUADRO 11 – RESOLUÇÃO DA f(x) = x² + log (x) PELO MÉTODO DA SECANTE EM MATLAB

FONTE: O autor

116
TÓPICO 2 | ZEROS DAS FUNÇÕES

DICAS

Antes de prosseguir, assista às videoaulas, acessando os links:


<https://www.youtube.com/watch?v=ZlYUFFNB3Fc>.
<https://www.youtube.com/watch?v=x9FtE38b1vM>.
<https://www.youtube.com/watch?v=uVkMdtAy_XQ>.

3.5 MÉTODO DE ITERAÇÃO DE PONTO FIXO


Por definição um número α é um ponto fixo de uma dada função se
Φ(α) = α. Com a definição acima, temos que um ponto fixo de uma função é
um número no qual o valor da função não muda quando a função é aplicada.
Considerando uma função Φ(x) = x2 – 2, por exemplo, temos que os pontos fixos
são as intersecções de y = Φ(x) com y = x, ou seja, α1 = -1 e α2 = 2, conforme ilustra
o gráfico a seguir:

DICAS

Antes de prosseguir, assista às videoaulas, acessando os links:


<https://www.youtube.com/watch?v=4GhenW75YKU>.
<https://www.youtube.com/watch?v=KaKdD30s9qc>.

FIGURA 8 – GRÁFICO DAS INTERSECÇÕES DE Y = Φ(x) COM y = x

FONTE: <https://sites.google.com/site/calcnum10/home/lista-2/metodos/metodo-do-ponto-
fixo>. Acesso em: 10 jan. 2019.

117
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

Encontrar raízes e encontrar pontos fixos são problemas equivalentes no


seguinte sentido:

• Seja f(x) uma função contínua em [a, b], intervalo que contém uma raiz da
equação f(x) = 0. O Método do Ponto Fixo consiste em transformar esta equação
em uma equação equivalente x = Φ(x) e a partir de uma aproximação inicial
gerar a sequência {xk} de aproximações para a raiz R pela relação xk+1 = Φ(xk),
pois a função Φ(x) é tal que f(R) = 0 se e somente se Φ(R) = R. Assim, transforma-
se o problema de encontrar um zero de f(x) no problema de encontrar um
ponto fixo de Φ(x). Uma função que satisfaz essa condição é chamada função
de iteração para a equação f(x) = 0.

Resumindo: se existir um α no intervalo [a, b] tal que α = Φ(α), este


número é dito ponto fixo de Φ e pode ser calculado pelo seguinte algoritmo, que
é chamado de iterações de ponto fixo, no qual x(0) é a aproximação inicial.

x( k +1) =
∅( x( k ) ), k ≥ 0

Vale ressaltar que nem sempre a função φ(x) irá convergir para a raiz,
como ilustram as figuras a seguir:

FIGURA 9 - GRÁFICO DA FUNÇÃO Φ(x) E PONTO FIXO DE Φ


y=x
φ(x) φ(x)
y=x

x0 x1 x2 x x3 x1 x0 x2 x

(c) {xk} (d) {xk}

FONTE: <https://sites.google.com/site/calcnum10/home/lista-2/metodos/metodo-do-ponto-
fixo>. Acesso em: 10 jan. 2-19.

Assim, existe um teorema, o qual determina que, dado um intervalo I


contendo a raiz, para que a função φ(x) possa ser utilizada na implementação do
método, a saber:

118
TÓPICO 2 | ZEROS DAS FUNÇÕES

Das definições de convergência apresentadas anteriormente, concluímos


que o método do ponto fixo, em geral, apresenta convergência linear: De acordo
com o teorema enunciado acima, temos:

Se tomarmos o limite de k → ∞ , obtemos

Dessa forma, por conta do teorema,

Onde ek é o erro associado à iteração k. Sendo assim, conclui-se que a


convergência é, em geral, linear. Porém, isto nem sempre ocorre, como visto na
Figura 8.

Observações

Nas condições do Teorema do Ponto Fixo expostas acima, temos:

• Se 0 < g'(x) < 1 então a convergência é monótona, isto é, se a iteração inicial


estiver à direita (à esquerda) da raiz, então todas iterações ficam à direita (à
esquerda) da raiz.
• Se -1 < g'(x) < 0 então a convergência é alternada, isto é, as iterações irão alternar
à esquerda e à direita da raiz.

Caso as condições do Teorema não tenham sido atendidas, o comportamento


da função será como os dois gráficos localizados na região inferior da figura a
seguir, isto é, os valores calculados divergem da raiz esperada.

119
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

FIGURA 10 – GRÁFICOS POSSÍVEIS PARA O COMPORTAMENTO DA FUNÇÃO g(x) ESCOLHIDA

FONTE: <https://sites.google.com/site/calcnum10/home/lista-2/metodos/metodo-do-ponto-
fixo>. Acesso em: 10 jan. 2019.

Proposição:

Nas condições do teorema do ponto fixo, a convergência é linear se g'(z)


é diferente de 0 e o coeficiente assimptótico de convergência é |g'(z)|. De mesmo
modo, usando o Teorema de Lagrange, tal que:

|xm+1 – z| = |g(xm) – g(z)| = |g'(cm)|·|xm – z|

com cm num intervalo aberto cujos extremos são xm e z.


Logo, dividindo e passando ao limite, temos:

Em que cm tende para z, já que o extremo xm do intervalo tende para z.


Como assumimos que g'(z) é diferente de 0, concluímos o teorema.

Exemplo: um exemplo de planilha em Excel para resolver equações não


lineares pelo Método de iteração de ponto fixo.

Exemplo: f(x) = x3 - 9x + 3
Parte 1)

120
TÓPICO 2 | ZEROS DAS FUNÇÕES

QUADRO 12 – RESOLUÇÃO DE EQUAÇÕES NÃO LINEARES PELO MÉTODO DE ITERAÇÃO DE


PONTO FIXO EM EXCEL

FONTE: O autor

Parte 2)

QUADRO 13 – RESOLUÇÃO DE EQUAÇÕES NÃO LINEARES PELO MÉTODO DE ITERAÇÃO


DE PONTO FIXO EM EXCEL

FONTE: O autor

121
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

Parte 3)

QUADRO 14 – RESOLUÇÃO DE EQUAÇÕES NÃO LINEARES PELO MÉTODO DE ITERAÇÃO


DE PONTO FIXO EM EXCEL

FONTE: O autor

Aplicação à Solução de Problema no MatLab

Exemplo c: Seja f(x) = x² + log (x), resolva a equação não linear pelo
Método da Falsa-posição. Considere o algoritmo em Matlab para o Método da
Falsa-posição.

122
TÓPICO 2 | ZEROS DAS FUNÇÕES

QUADRO 15 – RESOLUÇÃO DA f(x) = x² + log (x) PELO MÉTODO DA FALSA-POSIÇÃO


EM MATLAB

FONTE: O autor

123
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

3.6 ORDEM DE CONVERGÊNCIA


Definição: Seja {xn} uma sucessão que converge para z. Se existirem
constantes reais p ≥ 1 e K∞ > 0 tais que:

z − xm +1
limm→∞ p
= K∞
z − xm

Então, {xn} converge para z com ordem de convergência p e K∞ chama-se


coeficiente assintótico de convergência (ou taxa de convergência).

Se a série converge, e:

● K∞ = 0, então a série possui convergência superlinear.


● K∞ = 1, então a série possui convergência sublinear.

Se a série converge linearmente e adicionalmente

xk + 2 − xk +1
=1
xk +1 − xk

Então é dito que a série {xk} converge logaritmicamente para L.

A próxima definição é usada para distinguir taxa de convergências supra-


linear. Chamamos que a série converge com ordem q para L para q > 1 se

lim xk +1 − L
k→∞
q
≥0
k →∞ xk − L

Em particular, ao convergir com ordem

● K∞ = 2 é chamado de convergência quadrática, e


● K∞ = 3 é chamado de convergência cúbica.

Essa definição é chamada de Q-convergência linear, Q-convergência quadrática


etc., para distinguir da definição. O Q significa "quociente", pois a definição usa o
quociente entre dois termos sucessivos.

124
TÓPICO 2 | ZEROS DAS FUNÇÕES

DICAS

Mais informações e exemplos sobre Comparação entre os Métodos - Parte III


em MATERIAL ADAPTADO DOS SLIDES DA DISCIPLINA CÁLCULO NUMÉRICO DA UFCG
disponível no link: <http://www.univasf.edu.br/~jorge.cavalcanti/4CN_Parte3_Comparacao.
pdf>.

125
RESUMO DO TÓPICO 2
Neste tópico, você aprendeu que:

• Graficamente, os zeros reais são representados pelas abscissas dos pontos onde
uma curva intercepta o eixo x.

• Quanto aos métodos para obter os Zeros de Funções, devemos considerar tais
critérios de comparação: garantias de convergência, rapidez de convergência e
esforço computacional.

• Quanto a garantias de convergência: para os Métodos Bissecção e Falsa


Posição, a convergência é garantida, desde que a função seja contínua num
intervalo [a, b] , tal que f(a) · f(b) < 0.

• Para os Métodos Ponto Fixo, Newton-Raphson e Secante as condições são


mais restritivas de convergência (PF). Se as condições de convergência forem
satisfeitas, os dois últimos métodos são mais rápidos do que os demais
estudados.

• Quanto à rapidez de convergência: número de iterações é medida usualmente


adotada para a determinação da rapidez de convergência de um método. Não
deve ser uma medida conclusiva sobre o tempo de execução do programa. E o
tempo gasto na execução de uma iteração é variável de método para método.

• E quanto ao esforço computacional: vale ressaltar o número de operações


efetuadas a cada iteração; complexidade das operações; número de decisões
lógicas; número de avaliações de função a cada iteração; e número total de
iterações.

126
AUTOATIVIDADE

1 Considerando um sistema de ponto flutuante com β = 10, t = 3 e e = [-15, 15],


representar os seguinte números, por arredondamento e por truncamento:
a) 381928 b)78,457 c) –9142,683

2 Escreva os seguintes números que estão no sistema binário no sistema de


base 10.
a) 11,11 b) 0,1011 c) 1,0011 d) 110101 e) 0,111101101

3 Escreva os seguintes números que estão no sistema decimal no sistema


binário.
a) 13,25 b) 0,10125 c) 1,5 d) 13 e) 12,03125

4 Resolva as equações pelo método de Newton-Raphson. Considere ɛ = 10–4 .


a) x = cos (x)
b) e–x² – cos (x) = 0
c) 5 · log (x) – 2 + 0,4 · x = 0
d) x3 – x – 5 = 0

5 Resolva a equação ex – x² + 4 = 0. Considere ɛ = 10–3.

6 Determinar 5 é equivalente a obter o zero positivo da função f(x) = x² – 5.


Considerando uma tolerância 10–4 e um intervalo inicial [0, 5], calcule a
quantidade de iterações para se obter a resposta com a precisão exigida pelo
método da bisseção.

7 Calcule 5⅓ pelo método da método da secante. Considere ɛ = 10–4.

8 Calcule 26⅕ pelo método de Newton-Raphson. Considere ɛ = 10–5.

9 Calcule a raiz real da equação x3 – 2x2 + 2x – 5 = 0 próxima de x0 = 2, por meio


do método da secante. Considere ɛ = 10–5.

2
x
10 Calcule a raiz da equação   − sen ( x ) =
0 , localizada no intervalo [1,5; 2],
2
usando os métodos da bisseção e de Newton-Raphson. Considere ɛ = 10–4.

127
128
UNIDADE 2 TÓPICO 3

INTERPOLAÇÃO POLINOMIAL

1 INTRODUÇÃO
A interpolação é definida como uma forma de estimar os valores de
uma função entre aqueles dados por algum conjunto de pontos de dados. A
interpolação é uma ferramenta valiosa quando não se pode calcular rapidamente
a função nos pontos intermediários desejados. Por exemplo, isto ocorre quando
os pontos dados resultam de medições experimentais ou de procedimentos
computacionais demorados, considere:

Se a função f(x) está tabelada em (n + 1) pontos e a aproximarmos de grau


n que a interpola sobre os pontos tabelados, o resultado dessa aproximação pode
ser desastroso. Uma alternativa é interpolar f(x) em grupos de poucos pontos,
obtendo-se polinômio de grau menor, e impor condições para que a função de
aproximação seja contínua e tenha derivadas contínuas até uma certa ordem. A
Figura 10 mostra o caso em que aproximamos a função por uma função linear por
partes, que denotaremos S1(x).

FIGURA 11 – GRÁFICO DA f(x), SE n = 5

f(x)
(x5, f(x5))
g(x)
(x1, f(x1))

(x2, f(x2)) (x4, f(x4))


(x0, f(x0))
(x3, f(x3)) f(x)

x0 x1 x2 x3 x4 x5 x

FONTE: Ruggiero e Lopes (1996, p. 213)

129
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

Observamos que a função S1 (x) é contínua, mas não é derivável em todo o


intervalo (x0, x4), uma vez que S1'(x) não existe para x = xi. Podemos optar também
por, a cada três pontos: xi, xi+1, xi+2, passar um polinômio de grau 2 e, neste caso,
teremos também garantia só de continuidade da função que vai aproximar f(x).

No caso das funções spline, a opção feita é aproximar a função tabelada, em


cada subintervalo [xi, xi+1], por um polinômio de grau p, com algumas imposições
sobre a função conforme a definição a seguir.

DICAS

Acesse o link para visualizar o material das autoras: Lúcia Catabriga e Andréa
Maria Pedrosa Valli e aprofundar seus conhecimentos sobre Interpolação Polinominal.
<https://inf.ufes.br/~luciac/cn/interpolacao-2017-pub.pdf>.
Acesse também o material dos professores: Adriana Cherri, Andréa Vianna, Antonio Balbo,
Edméa Baptista: <http://wwwp.fc.unesp.br/~adriana/Numerico/Interpolacao.pdf>.

2 DEFINIÇÃO
Considere a função f(x) tabelada nos pontos x0 < x1 < ... < xn. Uma função
Sp(x) é denominada spline de grau p com nós nos pontos xi, i = 0, 1, ..., n, se
satisfaz as seguintes condições:

a) em cada subintervalo [xi, xi+1], i = 0, 1, ..., (n – 1), Sp(x) é um polinômio de


grau p: Sp(x).
b) Sp(x) é contínua e tem derivada contínua até ordem (p – 1) em [a, b]. Se, além
disto, Sp(x) também satisfaz a condição:
c) Sp(xi) = f(xi), i = 0, 1, ..., n, então será denominada spline interpolante.

A origem do nome spline vem de uma régua elástica, usada em desenhos


de engenharia, que pode ser curvada de forma a passar por um dado conjunto de
pontos (xi , yi), que tem o nome de spline. Sob certas hipóteses (de acordo com a teoria
da elasticidade) a curva definida pela régua pode ser descrita aproximadamente
como uma função por partes, cada qual um polinômio cúbico, de tal forma que
ela e suas duas primeiras derivadas são contínuas sempre. A terceira derivada,
entretanto, pode ter descontinuidades nos pontos xi. Tal função é uma spline
cúbica interpolante com nós nos pontos xi, segundo a definição anterior (ver
demonstração no livro Métodos numéricos para engenheiros e cientistas: uma
introdução com aplicações usando o MATLAB de Gilat e Subramaniam (2008).

130
TÓPICO 3 | INTERPOLAÇÃO POLINOMIAL

A interpolação é um procedimento no qual uma fórmula matemática


é usada para fornecer o valor exato dos pontos pertencentes a um conjunto de
dados e um valor estimado entre esses pontos. A interpolação pode empregar um
único polinômio ou por partes, conforme mostra o fluxograma.

FIGURA 12 – Fluxograma dos métodos de interpolação por partes e único polinômio

INTERPOLAÇÃO POLINOMIAL

Por Partes Único Polinômio


Polinômios
Splines Lineares Interpoladores
de Lagrange
Splines Quadráticas

Splines Cúbicas
Polinômios
Interpoladores
de Newton

FONTE: O autor

Nesta seção vamos apresentar os dois tipos de interpolação: Linear e


Spline.

a) Interpolação linear: que considera que os valores intermediários caem em


uma linha reta entre os pontos definidos. Neste método se torna claro que, à
medida em que se têm mais pontos de dados e a distância entre eles diminui, a
interpolação linear se torna mais precisa.
b) Interpolação spline: que considera que alguma curva suave se ajusta aos
pontos, onde esta suposição é a de que um polinômio de terceira ordem, isto
é, um polinômio cúbico seja usado para modelar cada segmento entre pontos
consecutivos e que a inclinação de cada polinômio cúbico se ajuste nos pontos
de dados.

O conceito de spline foi originado de uma técnica de desenho arquitetônico


em que usa-se um barbante flexível — chamado spline — para desenhar uma curva
lisa passando por um conjunto de pontos. Nessa técnica, o desenhista coloca papel
sobre uma base fixa e prega pequenos pinos ao papel sobre os pontos dados. Uma
curva contínua é usada para intercalar estes pontos afixados, podendo ser reta
(linear), quadrática ou cúbica. Esta ideia foi utilizada em análise numérica para
ajuste de funções. Neste caso, utilizamos polinômios de pequeno grau para união
dos pontos consecutivos da amostragem.

131
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

3 ALGUNS COMANDOS NO MATLAB


O MATLAB possui a função spline,que efetua a interpolação polinomial
cúbica conforme demonstrado em aula. Por padrão, a condição “Não Nó” é
utilizada.

yy = spline(x,y, xx)

Tal que x e y são vetores que contêm os valores sobre os quais ocorrerá a
interpolação, xx contém o conjunto de valores do domínio nos quais queremos a
imagem; e o vetor yy contém o conjunto de pontos com os valores calculados da
interpolação.

Existe uma função chamada interp1, que implementa uma miríade de


diferentes tipos de interpolação unidimensional por partes. Sua sintaxe é dada por:

yi = interpt1(x, y, xi, 'método')

Onde x e y são os vetores contendo os valores a serem interpolados, yi é


o vetor que contém os resultados da interpolação avaliados em xi; e método é o
método desejado.

'nearest' – O valor é aproximado para o mais próximo, como se fosse um p0;


'linear' – Interpolação linear;
'spline' – Splines cúbicas;
'pchip' – Interpolação cúbica de Hermite.

Existem diferenças entre pchip e spline. A Spline procura preservar a


continuidade da derivada segunda, o que algumas vezes supera o peso que os
pontos de dados fornecidos tem. Já na interpolação de Hermite não ocorre este
fator. A Spline, assim, acaba se tornando adequada para ajustar funções que são
originalmente suaves; enquanto o polinômio de Hermite é mais adequado para
funções não tão suaves.

4 MÉTODOS DE RESOLUÇÃO NO MATLAB


Seguidamente apresentaremos os principais métodos de interpolação
utilizados para resolver as equações não lineares aplicados em Matlab.

132
TÓPICO 3 | INTERPOLAÇÃO POLINOMIAL

4.1 MÉTODO DE SPLINE LINEAR


O ajuste mais simples que podemos fazer com dois pontos é uni-los por
uma reta. Os splines de primeiro grau para um conjunto de pontos amostrados
podem ser definidos como um conjunto de funções lineares, tais que

f(x) = f(x0) + m0(x–x0)f(x) = f(x0) + m0(x–x0), para x0 ≤ x ≤ x2x0 ≤ x ≤ x1


f(x) = f(x1) + m1(x–x1)f(x) = f(x1) + m1(x–x1), para x1 ≤ x ≤ x2x1 ≤ x ≤ x2

f(x) = f(xn−1) + mn−1(x–xm−1)f(x) = f(xn−1) + mn−1(x–xm−1), para xn−1 ≤ x ≤ xnxn−1 ≤ x ≤ xn

onde mi mi é o coeficiente angular da reta que liga os pontos:

mi = f(xi+1) – f(xi)xi+1 – ximi = f(xi+1) – f(xi)xi+1 – xi

Essas equações podem ser utilizadas para calcular a função em qualquer


ponto entre x0x0 e xnxn. Notamos que este método é idêntico à interpolação linear.

Exemplo 1: Determinar o comportamento térmico da cabeça de um cilindro


a ser implementado num carro. Supondo também que os valores experimentais
referentes ao Tempo e a Temperatura sejam:

Tempo (s) Temperatura (F)


0 0
1 20
2 60
3 68
4 77
5 110

Para alocarmos estas informações devemos usar uma matriz, onde o


tempo será preenchido na primeira coluna através dos seguintes comandos:

dado1(:,1) = [0,1,2,3,4,5]
dado2(:,2) = [0,20,60,68,77,110]

Podemos usar o comando table1 para interpolar a temperatura


correspondente a um determinado tempo no intervalo de 0 a 5 segundos:

y1 = table1 (dado1, 2.6)


y2 = table1 (dado1, 4.9)

133
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

Os valores correspondentes serão y1 = 64.8 e y2 = 106.7. Supondo agora que


medimos a temperatura em três pontos do cilindro:

Tempo (s) T1 T2 T3
0 0 0 0
1 20 25 52
2 60 62 90
3 68 67 91
4 77 82 93
5 110 103 96

Guardando estas informações numa matriz, com as informações do tempo


na primeira coluna:

dado2(:,1) = [ 0,1,2,3,4,5]
dado2(:,2) = [0,20,60,68,77,110]
dado2(:,3) = [0,25,62,67,82,103]
dado2(:,4) = [0,52,90,91,93,96]

Para determinar valores das temperaturas nestes três pontos no tempo de


t = 2.6s, usamos os seguinte comando:
temps = table1 (dado2, 2.6)

Onde temps será um vetor contendo os três valores da temperatura: 64.8,


65.0 e 90.6

DICAS

Antes de prosseguir, assista às videoaulas, acessando os links:


<https://www.youtube.com/watch?v=EnIVH9FjbYc>.
<https://www.youtube.com/watch?v=TmV7FBMpDaM>.

4.2 MÉTODO DE SPLINE QUADRÁTICA


Este método é obviamente idêntico à interpolação por splines lineares. A
única diferença está na função de união dos pontos, que deve ser quadrática. Para
isso, o objetivo dos splines quadráticos é determinar um polinômio de segundo
grau para cada intervalo entre os pontos dados. Esse polinômio é representado
pela função:

fi(x) = aix2 + bix + cifi(x) = aix2 + bix + ci

134
TÓPICO 3 | INTERPOLAÇÃO POLINOMIAL

Para (n + 1)(n + 1) pontos dados (i = 0, 1, 2, 3,…, n)(i = 0, 1, 2, 3,…, n),


existem nn intervalos e, portanto, 3n3n constantes indeterminadas para
calcularmos: aiai, bibi e cici. Portanto, criamos 3n3n equações para calcular estas
incógnitas. São elas:

1) Dos valores da função e dos polinômios adjacentes que devem ser iguais aos
pontos interiores. Estas equações são:

ai−1xi−12 + bi−1xi−1 + ci−1 = f(xi−1)


aixi−12 + bixi−1 + ci = f(xi−1)

para i = 2⋯ni = 2⋯n. Como apenas os pontos internos amostrados foram usados,
as equações acima fornecem cada uma (n − 1)(n − 1) equações para um total de
(2n – 2)(2n – 2) equações.

2) A primeira e a última função deve passar pelos pontos extremos. Com isso,
temos duas equações adicionais:

aix02 + bix0 + ci = f(x0)


anxn2 + bnxn + cn = f(xn)

3) As primeiras derivadas nos pontos interiores devem sempre ser iguais. Isto é,
como a função de ajuste é de segundo grau, sua derivada terá a forma

f′(x) = 2ax + b

Portanto, a condição geral será

2ai−1xi−1 + bi−1 = 2aixi−1 + bi

para i = 2,⋯,ni = 2,⋯,n. Isso fornece outras (n − 1)(n − 1) equações para um total de
(3n – 1)(3n – 1).

4) A última condição supõe que a segunda derivada seja nula no primeiro ponto.
Isto é

a1 = 0

E
IMPORTANT

Sobre o MATLAB acesse o link e assista à explicação em videoaula:


<https://www.youtube.com/watch?v=Xf_S0jeAc2A>.

135
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

4.3 MÉTODO DE SPLINE CÚBICA


O objetivo nos splines cúbicos é determinar um polinômio de terceiro
grau para cada intervalo entre os pontos amostrados. Ou seja, a aproximação de
pontos consecutivos obedece à função

f1 ( x) = ai x3 + bi x + ci x + di

Logo, para (n + 1)(n + 1) pontos dados (i = 0, 1, 2,…, n)(i = 0, 1, 2,…, n),


existem nn intervalos e, consequentemente, 4n4n constantes indeterminadas. Para
dedução dos splines cúbicos, nos baseamos na observação de que, como cada par
de pontos amostrados é ligado por um polinômio cúbico, a segunda derivada no
interior de cada intervalo é uma reta. A equação acima pode ser derivada duas
vezes para verificar esta observação.

Com base nisso, as segundas derivadas podem ser representadas por um


polinômio interpolador de Lagrange de primeiro grau:

x − xl x − xl −1
=fi "( x) fi "( xi −1 ) + fi "( xi )
xl −1 − xl xl − xl −1

onde fi”(x)fi”(x) é o valor da segunda derivada em um ponto qualquer xx no i−


esimoi−esimo intervalo. Portanto, essa equação é uma reta ligando a segunda
derivada no primeiro ponto f ”(xi−1)f ”(xi−1) com a segunda derivada no segundo
ponto f ”(xi)f ”(xi) .

Integrando a última equação acima duas vezes, obtemos uma expressão


para fi(x)fi(x). Entretanto, essa expressão irá conter duas constantes de integração
indeterminadas. Tais constantes podem ser determinadas invocando-se a
condição de igualdade das funções. Isto é, fi(x) = f(xi−1)fi(x) = f(xi−1) e mxi−1xi−1 e
fi(x)fi(x) deve ser igual a fi(xi)fi(xi) em xixi . A partir desses cálculos, obteremos a
seguinte equação cúbica:

fi "( xi −1 ) fi "( xi )  f ( xi −1 ) f "( xi −1 )( xi − xi −1 )   f ( xi ) f


fi =
( x) ( xi − x)3 + ( x − xi −1 )3 +  −  ( xi − x) +  −
6( xi − xi −1 ) 6( xi − xi −1 )  xi − xi −1 6   xi − xi −1

− xi −1 )   f ( xi ) f "( xi )( xi − xi −1 ) 
 ( xi − x) +  −  ( x − xi −1 )
  xi − xi −1 6 

Observe que esta equação possui apenas dois coeficientes indeterminados:


as segundas derivadas f ”(xi−1)f ”(xi−1) e f ”(xi)f ”(xi). Estas segundas derivadas
podem ser calculadas usando-se a condição de que as primeiras derivadas nos
pontos amostrados são contínuas. Isto é:

f 'i ( xi ) = f 'i +1 ( xi )

136
TÓPICO 3 | INTERPOLAÇÃO POLINOMIAL

Derivando a equação de f (xi)f (xi), encontramos uma expressão para a


primeira derivada. Se isso for feito para os i−esimosi−esimos e (i − 1)−esimos(i −1)−
esimosintervalos e se os dois resultados forem igualados de acordo com a essa
função, obtemos a seguinte relação:

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


6 6
=  f ( xi +1 ) − f ( xi )  +  f ( xi −1 ) − f ( xi ) 
xi +1 − xi  xi − xi −1 

Se esta última equação for escrita para todos os pontos interiores amostrados,
temos (n − 1)(n − 1) equações simultâneas com (n + 1)(n + 1) segundas derivadas.
Contudo, como esse é um spline cúbico, as segundas derivadas nos extremos são
nulas e o problema se reduz a (n − 1)(n − 1) equações com (n − 1)(n − 1)incógnitas.

Além disso, se observamos a relação entre as variáveis, temos apenas a


relação entre (i − 1)(i − 1) , ii e (i + 1)(i + 1) , o que caracteriza um sistema tridiagonal.
Com isso, temos uma implementação extremamente simples e rápida de se
resolver.

Implementação no Matlab

QUADRO 16 – IMPLEMENTAÇÃO DO MÉTODO DE SPLINE CÚBICA EM MATLAB

Continua ...

137
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

Continua ...

FONTE: <http://www.sawp.com.br/code/interpolation/splines.py>. Acesso em: 10 jan. 2019.

NOTA

Para melhor visualização desta função, acesse o link: <http://www.sawp.com.


br/code/interpolation/splines.py>.

Exemplo 2: Supondo que queiramos usar a spline cúbica para calcular a


temperatura na cabeça do cilindro no tempo t = 2.6 segundos, podemos usar os
seguintes comandos:

x = [0,1,2,3,4,5]
y = [0,20,60,68,77,110]
temp1 = spline(x,y,2.6)

138
TÓPICO 3 | INTERPOLAÇÃO POLINOMIAL

O valor de temp1 será 67.3. Se quisermos usar estes processo para


calcularmos a temperatura em diferentes momentos podemos usar os seguintes
comandos:

temp2 = spline(x,y,[2.6,4.9])
temp2 = [67.3,105.2]

Se quisermos ainda plotar uma curva spline abrangendo um outro


intervalo de valores, podemos gerar um vetor x como o terceiro argumento do
comando spline.

Exemplo 3: Seja (x, y):

x = [0,1,2,3,4,5];
y = [0,20,60,68,77,110];
newx = 0: 0.1 :5;
newy = spline(x,y,newx);
axis([-1,6,-20,120]);
plot (x,y,newx,newy,x,y,´o’);
title (‘ Interpolação Spline ’);
xlabel(‘ Tempo,s ’);
ylabel(‘ Graus, F ’); grid.

Note que na interpolação linear, o gráfico de x e y percorrem as coordenadas


por meio de retas, enquanto que o gráfico de newx e newy representa a spline
definida por interpolação cúbica.

4.4 MÉTODO DE LAGRANGE


As interpolações apresentadas anteriormente (interpolação linear e
quadrática) são casos particulares da interpolação de Lagrange. Agora vamos
determinar, o polinômio interpolador P(x) de grau menor ou igual a n , sendo
dado para isto, n + 1 pontos distintos. Seja a tabela a seguir:

X x0 x1 x2 x3
Y y0 y1 y2 y3

Deseja-se passar um polinômio de grau £ 3, pelos 4 pontos tabelados.


O método de Lagrange constrói 4 polinômios auxiliares do terceiro grau: L0(x),
L1(x), L2(x) e L3(x), onde:

- L0(x) vale zero nos pontos x1 , x2 , x3 e vale 1 no ponto x0 .


- L1(x) vale zero nos pontos x0 , x2 , x3 e vale 1 no ponto x1 .
- L2(x) vale zero nos pontos x0 , x1 , x3 e vale 1 no ponto x2 .
- L3(x) vale zero nos pontos x0 , x1 , x2 e vale 1 no ponto x3 .
139
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

Como serão esses quatro polinômios ? Vejamos:

E
IMPORTANT

Para prosseguir com o conhecimento mais profundo sobre o tema, acesse os


links para assistir às videoaulas.
<https://www.youtube.com/watch?v=2rHV2WY2FWU>
<https://www.youtube.com/watch?v=p7wkeKlr6kk>

x − x1 x − x2 x − x3 x − x0 x − x1 x − x3
L0 = . . L2 = . .
x0 − x1 x0 − x2 x0 − x3 x2 − x0 x2 − x1 x2 − x3

x − x0 x − x2 x − x3 x − x0 x − x1 x − x2
L1 = . . L3 = . .
x1 − x0 x1 − x2 x1 − x3 x3 − x0 x3 − x1 x3 − x2

Repare que em L0 , no numerador aparece (x – x1)(x – x2)(x – x3), logo, para


x = x1, x = x2 e x = x3 , o polinômio vale zero.

Para x = x0 , o numerador é igual ao denominador e o polinômio vale 1.


Afirmação semelhante pode ser feita para L1, L2 e L3 .

Assim, fica imediata a construção de L0 , L1 , L2 e L3. O polinômio interpolante


(de Lagrange) será

P(x) = y0 L0(x) + y1 L1(x) + y2 L2(x) + y3 L3(x)

pois:
P(x0) = y0 L0(x0) + y1 L1(x0) + y2 L2(x0) + y3 L3(x0) = y0

pois:
L0(x0) = 1 L1(x0) = 0 L2(x0) = 0 e L3(x0) = 0,

por construção. Da mesma forma,

P(x1) = y1 , P(x2) = y2 e P(x3) = y3.

Logo o polinômio passa pelos pontos tabelados, sendo o polinômio


interpolante, pois a solução é única; isto é, há um único polinômio de grau menor
ou igual a três que passa nos quatro pontos tabelados. O polinômio P(x) sendo
formado pela soma de quatro polinômios do terceiro grau será necessariamente
de grau menor ou igual a três.

140
TÓPICO 3 | INTERPOLAÇÃO POLINOMIAL

Exemplo: Considere a tabela a seguir:

X 1 2 4 7
Y 3 6 8 12

Assim, P(x) = 3 L0(x) + 6 L1(x) + 8 L2(x) + 12 L3(x). Para calcular, por exemplo,
P(3), faz-se :

P ( 3) = 3⋅
( 3 − 2 )( 3 − 4 )( 3 − 7 ) + 6 ⋅ ( 3 − 1)( 3 − 4 )( 3 − 7 ) + 8 ⋅ ( 3 − 1)( 3 − 2 )( 3 − 7 ) + 12 ⋅ ( 3 − 1)( 3 − 2 )( 3 − 4 )
−18 10 −18 90
12 48 64
P ( 3) = − + +
18 10 18
P ( 3) = 7.422

Exemplo 2:
Seja a tabela:

x -1 0 2
f(x) 4 1 -1

Pela forma de Lagrange, temos que:

P2(x) = y0L0(x) + y1L1(x) + y2L2(x), onde:

Assim na forma de Lagrange,

P2(x) =

Agrupando os termos semelhantes, obtemos que P2(x) =

141
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

Aplicação à Solução de Problema no MatLab

Considere o algoritmo em Matlab para o Método de Interpolação de


Lagrange.

4.5 MÉTODO DE NEWTON


Seja f(x) definida em um intervalo [a, b] contendo (n + 1) pontos distintos:
x0, x1, ... , xn, e yi = f(xi), i = 0, 1, ... , n. Representa-se o polinômio de grau ≤ n que
interpola f(x) em x0, x1, ... , xn pela forma (ARENALES, 2010):

Pn (x) = f [x0 ] + f [x0, x1 ] · (x − x0 ) + f [x0, x1, x2 ] · (x − x0 ) · (x − x1 ) + ... +f


[x0, x1, … , xn ] · (x − x0 ) · (x − x1 ) … (x − xn−1)

Onde os termos f [xi] são conhecidos como diferenças divididas, e são


definidos, de acordo com sua ordem, como (ARENALES, 2010):

Notando que as diferenças divididas de ordem k são calculadas a partir


das diferenças divididas de ordem k − 1, pode-se construir a tabela de diferenças
divididas (ARENALES, 2010), como mostra o quadro a seguir.

142
TÓPICO 3 | INTERPOLAÇÃO POLINOMIAL

QUADRO 17 - DIFERENÇAS DIVIDIDAS

FONTE: Adaptado de RUGGIERO (1996)

Exemplo a: considerando os dados da tabela, determinar o polinômio


interpolador, usando:

i 0 1 2
x 1 2 3
y 0 -1 -2

Para este método, primeiro devemos calcular os operadores da diferença


dividida:

i x y Δy Δ2y

0 1 0 -1 0

1 2 -1 -1

2 3 -2

Aplicamos a fórmula:

143
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

Expandindo-a e substituindo os valores do exercício:

Exemplo b:

Usando a forma de Newton, o polinômio P₂(x), que interpola f(x) nos


pontos dados abaixo, é:
x -1 0 2
f(x) 4 1 -1

P₂(x) =

P₂(x) =

Observando que, agrupando os termos semelhante, obtemos

P₂(x) =

Essa expressão é a mesma obtida no exemplo 2 pelo Método de Lagrange.

E
IMPORTANT

Antes de prosseguir, acesse os vídeos sobre Interplação Polinomial e alargue


seus conhecimentos sobre este tema.
<https://www.youtube.com/watch?v=g9XcR_URiGE>.
<https://www.youtube.com/watch?v=pnf8UCJ2Gwg>.

144
TÓPICO 3 | INTERPOLAÇÃO POLINOMIAL

Aplicação à Solução de Problema no MatLab

Considere o algoritmo em Matlab para o Método de Interpolação de


Newton

145
UNIDADE 2 | SISTEMAS DE EQUAÇÕES NÃO LINEARES

LEITURA COMPLEMENTAR

Este texto aplica-se às disciplinas: Métodos Numéricos e Cálculo


Numérico dos cursos da  área de Ciências Exatas, como: Ciência da Computação,
Engenharias, Matemática,  Física, Licenciaturas correlatas, entre outros. Buscamos
contemplar, de forma concisa, os  principais métodos para resolução de equações
e sistemas lineares na área de matemática numérica.

APLICAÇÃO À SOLUÇÃO DE PROBLEMAS DE SISTEMAS DE


EQUAÇÕES NÃO LINEARES Gilat e Subramaniam

146
TÓPICO 3 | INTERPOLAÇÃO POLINOMIAL

FONTE: GILAT, A.; SUBRAMANIAM, V. Métodos numéricos para engenheiros e cientistas: uma
introdução com aplicações usando o MATLAB. Porto Alegre: Bookman, 2008, p. 95-96.

147
RESUMO DO TÓPICO 3
Neste tópico, você aprendeu que:

• A interpolação é definida como uma forma de estimar os valores de uma função


entre aqueles dados por algum conjunto de pontos de dados.

• O método é uma ferramenta valiosa quando não se pode calcular rapidamente


a função nos pontos intermediários desejados.

• Interpolação linear considera que os valores intermediários caem em uma linha


reta entre os pontos definidos. Neste método se torna claro que, à medida em
que se têm mais pontos de dados e a distância entre eles diminui, a interpolação
linear se torna mais precisa.

• Interpolação spline, considera que alguma curva suave se ajusta aos pontos,
onde esta suposição é a de que um polinômio de terceira ordem, isto é, um
polinômio cúbico seja usado para modelar cada segmento entre pontos
consecutivos e que a inclinação de cada polinômio cúbico se ajuste nos pontos
de dados.

• Interpolação tem vasta aplicação em diversos campos da ciência, como por


exemplo, na computação gráfica, no processamento de sinais e imagens.

148
AUTOATIVIDADE

1 Dadas as funções a seguir, determine os polinômios interpoladores P1(x)


e P2(x) utilizando os pontos x0 = 0, x1 = 0.6 e x2 = 0.9 para estimar f(0.45).
Determine o majorante do erro em cada caso e compare com o erro absoluto
real.

a) f(x) = cos (x)


b) f(x) = 1 + x
c) f(x) = ln (x + 1)

2 Estime f (0.43) utilizando a Forma de Lagrange e a Forma de Newton, se é


sabido que:

f(0) = 1
f(0.25) = 1.64872
f(0.5) = 2.71828
f(0.75) = 4.48169

3 Determine as diferenças divididas para os seguintes dados tabelados:

x f (x)
0.0 -6.0000
0.1 -5.8948
0.3 -5.6501
0.6 -5.1778
1.0 -4.2817

4 Seja f(x) = (x − x²)½ e P2(x) o polinômio que interpola f em x0 = 0, x1, e x2 = 1.


Determine o maior valor de x1 ∈ (0, 1) tal que f(0.5) − P2(0.5) = −0.25.

1 
5 Seja P3(x) o polinômio que interpola os pontos (0, 0),  , y  , (1, 3) e (2, 2). O
2 
coeficiente de x3 em P3(x) é 6. Determine o valor de y.

6 Construa o polinômio interpolador de f(x) = cos (x) + sen (x) utilizando os pontos
xi = 0.25 para i = 0, 1, 2, 3. Determine o majorante do erro para x ∈ [x0, x3].

7 A partir das informações existentes no quadro e determine:

149
i xi yi
0 0.0 0.000
1 0.2 2.008
2 0.4 4.064
3 0.5 5.125

a) O polinômio interpolador de Lagrange


b) P(0.3)

8 Considere as informações existentes no quadro e determine:

i xi yi
0 0.1 0.0110
1 0.3 0.1170
2 0.5 0.3750
3 0.7 0.8330

a) O polinômio interpolador de Lagrange


b) P(0.6)

9 Determinar o valor aproximado de f(0.4), usando todos os pontos tabelados


pelo método de Newton:

i xi yi
0 0.1 1.008
1 0.2 1.064
2 0.3 1.125
3 0.5 1.343
4 0.6 1.512

10 Determinar o valor aproximado de f(0.3), usando todos os pontos tabelados


pelo método de Newton:

150
i xi yi
0 0.0 0.0000
1 0.2 0.0480
2 0.4 0.2240
3 0.6 0.5760
4 0.8 1.1520

11 Exercício adicional e resolvido para ser reaplicado em Matlab: Considere


o algoritmo para obter gráfico de interpolação por método de Lagrange e
comparação com função original (interpolação de Newton).

Parte I) Algoritmo para a interpolação de Lagrange.

function YI = Desafio_INT(X,Y,f,XI)

% f : inline('função');
% X : são os pontos da interpolação
% Y : são os valores conhecidos de f(X)e/ou dados coletados para a interpolação
% XI : são pontos para a interpolação com intervalo pequeno
% YI : são pontos obtidos pela interpolação de XI por LagrangeINT.

for int = 1:length(XI),


Xint = XI(int);
YI(int) = LagrangeINT(X,f(X),Xint);
end

plot(XI,f(XI),'r',XI,YI,'b',X,Y,'g*');
grid;
xlabel('x');
ylabel('y');
legend('Valores exatos', 'Polinômio de Lagrange','Dados usados na interp.');
end

function Yint = LagrangeINT(x,y,Xint)


%LagrangeINT ajusta um polinômio de Lagrange a um conjunto de pontos dado
%e usa o polinômio para determinar o valor interpolado de um ponto.
%Variáveis de entrada:
%x Vetor com as coordenadas x dos pontos dados
%y Vetor com as coordenadas y dos pontos dados
%Xint - A coordenada x do ponto a ser interpolado
%Variável de saída: Yint - O valor interpolado de Xint

151
% O comprimento do vetor x fornece o número de termos do polinômio
n = length(x);
for i = 1:n,
%Calcula os termos Li do produtório
L(i) = 1;
for j = 1:n,
if j ~= i,
L(i) = L(i)*(Xint-x(j))/(x(i)-x(j));
end
end
end
Yint = y*(L');
end

152
UNIDADE 3

INTEGRAÇÃO NUMÉRICA E
EQUAÇÕES DIFERENCIAIS
ORDINÁRIAS

OBJETIVOS DE APRENDIZAGEM
A partir desta unidade, você deverá ser capaz de:

• efetuar operações de IN com os métodos newtonianos e gaussianos;

• gerenciar os erros envolvidos na aplicação computacional dos métodos de


IN abordados;

• determinar soluções numéricas de EDOs de problema de valor inicial e de


contorno;

• determinar soluções numéricas pelo método de passo simples e de passos


múltiplos;

• operar os algoritmos disponíveis.

PLANO DE ESTUDOS
Esta unidade de estudos será apresentada em dois tópicos. Em cada um
deles, você encontrará, ao final dos tópicos, um resumo e autoatividades
para auxiliá-lo na compreensão dos conteúdos estudados.

TÓPICO 1 – INTEGRAÇÃO NUMÉRICA

TÓPICO 2 – EQUAÇÕES DIFERENCIAIS

153
154
UNIDADE 3
TÓPICO 1

INTEGRAÇÃO NUMÉRICA

1 INTRODUÇÃO
Neste tópico apresentaremos os métodos de IN na solução de problemas
e no cálculo de grandezas nas Engenharias e em outras Ciências. Integrais e a
operação de integração também são usadas na solução de equações diferenciais.

O cálculo integrado pode ser uma função analítica ou um conjunto de


pontos discretos (dados tabulados). A integração numérica é necessária quando
a integração analítica é difícil, ou mesmo impossível, e quando o integrando é
fornecido como um conjunto discreto de pontos.

A avaliação numérica de uma integral consiste em estimar o número


I(f) correspondente à integral de uma função f(x) entre os limites a e b (GILAT;
SUBRAMANIAM, 2008). Se o integrando f(x) for uma função analítica, um
número finito de pontos é usado na integração numérica, conforme mostra a
figura a seguir.

FIGURA 1 - INTEGRAÇÃO NUMÉRICA DE UM CONJUNTO DE FINITO DE PONTOS

FONTE: Gilat e Subramaniam (2008, p. 288)

155
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

Em todos os casos, a integração numérica é feita utilizando um conjunto


de pontos discretos para representar o integrando. Quando o integrando for
uma função analítica, a localização dos pontos dentro do intervalo [a, b] pode ser
definida pelo usuário ou pelo método de integração. Quando o integrando for
um conjunto tabulado de pontos (como dados medidos em um experimento), a
localização dos pontos é fixa e não pode ser mudada.

2 MÉTODOS DE INTEGRAÇÃO
Existem vários métodos disponíveis para o cálculo numérico de integrais.
Em cada um desses métodos, uma fórmula é deduzida para calcular o valor
aproximado de uma integral a partir dos pontos discretos do integrando.

Esses métodos podem ser divididos em métodos abertos e métodos


fechados. Em métodos de integração fechados, os pontos finais do intervalo (e o
integrando) são usados na fórmula que estima o valor da integral. Em métodos de
integração abertos, o intervalo de integração se estende além do limite especificado
pelos pontos finais, conforme a figura a seguir.

FIGURA 2 – COMPARAÇÃO GRÁFICA DOS MÉTODOS DE INTEGRAÇÃO FECHADO E ABERTO

FONTE: Gilat e Subramaniam (2008, p. 288)

Neste tópico, estudaremos: métodos trapezoidal e de Simpson que são


métodos fechados, enquanto os métodos do ponto central e da quadratura de
Gauss são métodos abertos. Estes métodos são feitos com o emprego de fórmulas
de Newton-Cotes, onde o cálculo do valor de uma integral é estimado a partir dos
pontos discretos (GILAT; SUBRAMANIAM, 2008), conforme a figura a seguir:

156
TÓPICO 1 | INTEGRAÇÃO NUMÉRICA

FIGURA 3 – MÉTODOS DE INTEGRAÇÃO NUMÉRICA


Newton-Cotes

Fechado Aberto

Método Trapezoidal Método do Ponto


Central
Método Simpson Método da
Quadratura de Gauss
FONTE: O autor

Quando o integrando original é uma função analítica, a fórmula de


Newton Cotes a substitui por uma função mais simples. E quando o integrado
original é dado na forma de pontos discretos, a fórmula de Newton-Cotes realiza
a interpolação do integrando. Vale ressaltar, assim como nos métodos fechados
(trapezoidal e de Simpson), as fórmulas de integração de Newton-Cotes são
polinômios de diferentes graus.

A seguir, apresentaremos os métodos de integração numérica que usam


fórmulas de Newton-Cotes na solução de um problema.

DICAS

Acesse ao material de apoio “ Introdução ao Matlab”, do Prof. Ricardo Dahab e


saiba mais sobre métodos de IN aberto e fechado. Disponível em: <http://www.ic.unicamp.
br/~rdahab/cursos/matlab/#material_didatico>.

3 MÉTODOS DE RESOLUÇÃO NO MATLAB


Embora na maioria das situações práticas há derivadas, que constituem
equações diferenciais, em outras situações para resolver a integração numérica
objetiva-se determinar o valor aproximado da integral.

I = f ( x ) dx
∫a

157
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

Os métodos de integração numérica podem ser agrupados em duas


famílias, de acordo com a forma de aproximação da função integrada y = f(x):

a) por interpolação polinomial simples sobre pontos uniformemente distribuídos


em [a, b] – métodos de Newton-Cotes; e
b) por interpolação polinomial sobre pontos pré-definidos em [a, b] – métodos
gaussianos.

DICAS

Acesse o link e saiba mais sobre os métodos e implementação de algoritmos na


solução de In: <https://docplayer.com.br/23638821-Fundamentos-de-calculo-numerico-
para-engenheiros.html>.

Assim, apresentaremos alguns métodos de na solução de integração


numérica, considerando o erro máximo controlado, por meio de aproximações
do cálculo da área delimitada por y = f(x), x = a, x = b e y = 0.

3.1 INTEGRAÇÃO NUMÉRICA POR NEWTON-COTES


A seguir, apresentaremos os dois principais métodos de resolução por
Newton-Cotes aplicados em Matlab, a saber: métodos dos trapézios e de Simpson.

3.1.1 Método dos trapézios


A integral de uma função f no intervalo [a, b] pode ser aproximada pela
área de um trapézio, conforme a figura a seguir.

158
TÓPICO 1 | INTEGRAÇÃO NUMÉRICA

FIGURA 4 - GRÁFICO DA INTEGRAL DE UMA FUNÇÃO f NO INTERVALO [a, b]

f(a) f(x)
f(b)

a b x

FONTE: Bortoli e Quadros (2009, p. 142)

Em que

b
b−a
∫ f ( x)dx ≈  f (a) + f (b)
a
2

O valor fornecido pela formula é uma aproximaçao de ordem 1 do valor


exato da integral. Assim, existe um erro, dado pela diferenca:

b
b−a
E
= ∫ f ( x)dx −  f (a) + f (b)
a
2

Para reduzir este erro pode-se obter uma melhor aproximação com a
soma de vários trapézios. Sejam f(x), f′(x) e f′′(x) contínuas em [a, b] e seja num
inteiro e positivo. Subdividindo o intervalo [a, b] em n subintervalos de mesmo
b−a
comprimento h = , considerando x0 = a, xn = b e os pontos intermediários
n
xi+1 = xi + h, para i = 0, 1,..., n−1, obtém-se, para cada subintervalo [xi−1,xi], uma
integral, dada por:

xi
h
∫ f ( x ) dx ≈ 2 ⋅  f ( x ) + f ( x )
xi −1
i −1 i

Somando todos os subintervalos obtém-se a fórmula dos trapézios


(composta) para f(x) com espacamento h:

h 
T ( f , h) = ( )
⋅ f ( x0 ) + 2 f ( x1 ) + ... + f ( xn−1 ) + f ( xn ) 
2  

159
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

que é uma aproximação da integral de f(x) e, portanto, definada por:

∫ f=
a
( x)dx T ( f , h) + E( f , h)

E o erro de truncamento é estimado por:

h2
E( f , h) ≤ (b − a) max f "( x) .
12 x ∈  a , b 

Exemplo 1a: no quadro a seguir é fornecida a velocidade (km/h) de um


cavalo em função do tempo (h). Deseja-se determinar a distância percorrida pelo
cavalo após 24 minutos.

QUADRO 1 – VELOCIDADE (km/h) EM FUNÇÃO DO TEMPO (h)

Tempo (h) 0, 00 0,10 0,20 0,30 0,40


Velocidade (t) 4,2 7,5 9,0 10,5 7,0
FONTE: Ruggiero e Lopes (1996)

Solução: como a distância percorrida (d) é calculada como:

0 ,4
d= ∫0
v(t ) dt

Empregando a regra dos trapézios com n = 10 e h = 0.1, de forma que:

.
01
T ( v,h ) =
2
( )
⋅ 4.2 + 2 ⋅ ( 7.5 + 9.0 + 10.5 ) + 7.0 .

Logo, a distância percorrida é de aproximadamente d ≈ T(v,h) = 3.26 km.

Aplicação à solução de problema no MatLab

Exemplo 1b: efetue a integral a seguir por trapézios com k = 5 aproximações,


iniciando com h = 0.25 (n = 4 subintervalos) e precisão de 16 dígitos.

∫0
e x dx

160
TÓPICO 1 | INTEGRAÇÃO NUMÉRICA

Considere o algoritmo com implementação em Matlab pelo Método dos


trapézios.

QUADRO 2 – RESOLUÇÃO DA INTEGRAL PELO MÉTODO DOS TRAPÉZIOS EM MATLAB

FONTE: O autor

3.1.2 Método de Simpson


Visando obter uma melhor aproximação para integração utiliza-se um
polinômio de ordem 2 na fórmula de Simpsom. Para o intervalo [a, b], assumindo
b−a
h= resulta:
2

b b  ∆f ( a) ∆ 2 f ( a) 
∫ a
p2 ( x=
) dx ∫
a
 f ( a) + ( x − a)
 h
+ ( x − a)( x − m)
2h 2 
 dx .

a+b
Onde m = corresponde ao ponto médio entre ”a” e ”b”; para obter
2
um polinômio de segundo grau são necessários 3 pontos.

Via mudança de variáveis x(α) = a + αh, dx = hdα e mudança dos limites de


intervalo [a, b] para [0,2], resulta

b 2
 ∆ 2 f ( a)  h

a
p2 =
( x)dx ∫
0



f ( a ) + α∆f ( a ) + α( α − 1)
2 
=hdα
3
 f ( a) + 4 f ( m) + f (b)  .

161
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

ou seja,

b
h
∫ f ( x)dx ≈ 3  f (a) + 4 f (m) + f (b) .
a

Quando este processo é repetido em subintervalos de [a, b] tem-se a


extensão da regra. Sejam f, f′, f′′, f(3) e f(4) contínuas no intervalo [a, b] ; subdividindo o
b−a
intervalo em 2n subintervalos de espaçamento igual h = e usando os pontos:
a = x <x < ... < x = b, tem-se: 2n
0 1 2n

n
h
S( f=
, h)
3 ∑  f ( x
k =1
2 k −2 ) + 4 f ( x2 k −1 ) + f ( x2 k ) 

ou

h
S(=
f , h)
3
{f ( x0 ) + 4  f ( x1 ) + ... + f ( x2n−1 ) 

+ 2  f ( x2 ) + ... + f ( x2n− 2 )  + f ( x2n )}

Esta é uma aproximação para a integral de f(x). Portanto,

∫ a
f=
( x)dx S( f , h) + E( f , h),

onde

h4
E( f , h) ≤ ( x − x0 ) max f ( 4) ( x) =
O( h 4 )
180 2n x ∈  x x  0, 2n

Observe que o intervalo [a, b] deve ser dividido sempre em um número


par de subintervalos para poder aplicar esta formula.

162
TÓPICO 1 | INTEGRAÇÃO NUMÉRICA

Exemplo 2: seja a função f(x) definida por:

( x − 2) 2
f ( x) =
( x + 3)3

A) Estimar a integral de f(x) indo de 0 até 1, considerando que f(x) assume


os valores tabelados:

x 0.00 0.25 0.50 0.75 1.00


f ( x) 1.4815 ⋅ 10−1 8.9213 ⋅ 10 −2
5.2478 ⋅ 10 −2
2.9630 ⋅ 10 −2
1.5625 ⋅ 10−2

Usando as regras simples, isto é, sem usar múltiplos subintervalos,


calculamos as áreas por cada um dos métodos:

- Regra do ponto médio

1
 0 +1
∫ f ( x ) dx ≈ (1 − 0) ⋅ f 
0
 =1 ⋅ f ( 0.5 ) =0.052478.
2 

- Regra do trapézio

1
 f (0) + f (1)   0.14815 + 0.015625 
∫ f ( x ) dx ≈ (1 − 0) ⋅ 
0
2
 =1 ⋅ 
  2
 =0.0818875

- Regra do Simpson
  0 +1 
1  f (0) + 4 ⋅ f   + f (1) 
f ( x ) dx ≈ (1 − 0 ) ⋅   2 
∫  6


0
 
 
 0.14815 + 4 ⋅ ( 0.052478 ) + 0.015625 
≈ 1⋅  
 6 
 
≈ 0.06228

Implementando um código em MATLAB que calcula os métodos


considerando dois subintervalos. O código utilizado é apresentado no quadro
a seguir:

163
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

QUADRO 4 – RESOLUÇÃO DA INTEGRAL PELO MÉTODO DOS TRAPÉZIOS EM MATLAB

FONTE: <https://sites.google.com/site/calcachmr/exercicios-5a-27-04-2016>. Acesso em:


17 jan. 2019.

Os resultados obtidos neste caso são:


Aptomedio = 0.0594
Atrapezio = 0.0633
Asimpson = 0.0620

164
TÓPICO 1 | INTEGRAÇÃO NUMÉRICA

B) Estimar a integral de f(x) indo de 0 até 1,25, considerando que f(1.25)= 7.3275·10−3:

Aplicando diretamente a regra simples como fizemos no caso anterior não


 1.25 
é possível, já que precisaríamos saber f   = f(0.625), que não está definido no
 2 
vetor. Aplicando os mesmos métodos, mas através de uma formulação alternativa,
obtivemos:

- Regra do trapézio

1.25
h
∫ f ( x) dx ≈
2
( ( )
⋅ f ( x1 ) + 2 f ( x2 ) + f ( x3 ) + f ( x4 ) + f ( x5 ) + f ( x6 ) )
0
0.25

2
(
⋅ 0.1415 + 2 ⋅ ( 0.186946 ) + 0.0073275 )
≈ 0.066171187

- Regra do Simpson

1.25
h
∫ f ( x) dx ≈
3
(
⋅ f ( x1 ) + 4 f ( x2 ) + 2 f ( x3 ) + 4 f ( x4 ) + 2 f ( x5 ) + f ( x6 ) )
0
0.25
≈ ⋅ ( 0.1482 + 0.3569 + 0.1050 + 0.1185 + 0.0313 + 0.0073)
3
≈ 0.063921

C) Sabendo que A = 6.1988 · 10-2 e B = 6.4762 · 10-2, estimamos o erro relativo.

Para o primeiro caso (área A), usando apenas os valores do vetor fornecido,
determinamos os erros relativo como sendo:

Erro relativo (%)


Método Ponto Médio Trapézio Simpson
Simples 15.34 32.10 0.47
Composto 4.18 2.12 0.02

165
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

Para o caso da área B, calculamos o erro relativo como sendo:

Erro Trapézio Simpson


Relativo% 2.18 1.30

Após isso, implementamos em Matlab uma função que executa duas


aproximações distintas destes métodos, considerando diversos intervalos sobre
de domínio da função. Para este caso, plotamos os resultados em gráficos de erro
em função do número de subintervalos considerados, para ambos os métodos de
implementação.

Em uma das implementações consideramos os métodos compostos e na


outra ampliamos o método simples para que ele funcionasse em cima de pequenos
subintervalos. Os resultados são apresentados a seguir:

- Para a área A, obtivemos as Figuras 5 e 6:

FIGURA 5 - ERRO RELATIVO DA ÁREA A CALCULADO PARA O MÉTODO COMPOSTO

FONTE: Seiti et al. (2016)

166
TÓPICO 1 | INTEGRAÇÃO NUMÉRICA

FIGURA 6 - ERRO RELATIVO DA ÁREA A CALCULADO PARA UMA VARIAÇÃO DO MÉTODO SIMPLES

FONTE: Seite et al. (2016)

Para a área B, obtivemos as Figuras 7 e 8:

FIGURA 7 - ERRO RELATIVO À ÁREA B CALCULADO PARA O MÉTODO COMPOSTO

FONTE: Seite et al. (2016)

167
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

FIGURA 8 - ERRO RELATIVO À ÁREA B CALCULADO PARA UMA VARIAÇÃO DO MÉTODO SIMPLES

FONTE: Seite et al. (2016)

A seguir, vamos apresentaremos os métodos gaussianos de integração


numérica que supre essas deficiências dos métodos newtonianos.

3.2 INTEGRAÇÃO NUMÉRICA GAUSSIANA OU


QUADRATURA GAUSS
Para a resolução numérica de integrais, dentre os métodos existentes,
iremos focar a tecnica da Quadratura Gaussiana, porém o método possui várias
derivações como a Gauss-Chebyshev, Gauss-Hermite, Gauss-Laguerre, Gauss-
Legendre, entre outros. Todavia, o estudo é focado na Gauss-Legendre e Gauss-
Chebyshev , pois é de facil implementação em comparação com as demais.

3.2.1 Método de Gauss-Legendre


b
A solução numérica da integral f ( x ) dx por trapézios, conforme a Figura
∫a
9 (A), é obtida a partir da integração com um polinômio interpolador de ordem
1. Os pontos utilizados na determinação do polinômio interpolador foram os
dos limites de integração ou subintervalos com amplitude constante entre esses
limites.

168
TÓPICO 1 | INTEGRAÇÃO NUMÉRICA

FIGURA 9 - ESQUEMA DO MÉTODO QUADRATURA DE GAUSS

f(x) f(x)
f(x) f(x)
P1(x)
P1(x)

x0=a x1=b x x0=a P1 P2 x1=b x


(A) (B)
FONTE: Bortoli e Quadros (2009, p. 148)

Suponha agora que vamos gerar um polinômio interpolador, mas


utilizando outros pontos além dos limites de integração, como mostrado na Figura
9 (B). A reta interpoladora é determinada a partir dos pontos y1 e y2. Observe que
se os pontos forem bem escolhidos, o valor de área entre os pontos a e y, que
se está integrando a mais, poderá compensar as áreas que se está integrando a
menos entre os pontos y1 e a e entre os pontos y2 e b. A questão é como pode-se
definir estes pontos.

Para que esta ideia seja melhor entendida, suponha que a expressão da
Regra do Trapézio seja apresentada da seguinte forma:

A ≈ C1 f ( a) + C2 f (b)

Esta regra fornece resultado exato quando a função integrada é uma


constante, y = c3 ou uma linha reta y = x. A partir destas considerações chega-se
às expressões:

Resolvendo-se o sistema linear acima, obtém-se:

Logo a expressão resultante é dada por:

169
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

De maneira geral, uma fórmula de Newton-Cotes, que aproxima f(x) por


um polinômio que interpola f(x) em x0, x1, ..., xn (igualmente espaçados) é exata
para polinômios de grau menor ou igual a n.

As fórmulas de Gauss são exatas para polinômios de grau menor ou igual


a 2n−1 e são escritas como:

∫ a
f ( x=
) dx A0 f ( x0 ) + A1 f ( x1 ) + ... + An f ( xn ) (1)

Para obter a fórmula para n = 1 é necessário determinar A0, A1, x0 e x1 tais


que:

∫ a
f ( x) dx A0 f ( x0 ) + A1 f ( x1 )
=

seja exata para polinômios de grau menor ou igual a 3. Como os polinômios


de Legendre são definidos no intervalo [-1,1], a formula de Gauss-Legendre foi
desenvolvida para o mesmo intervalo. Quando a integral de interesse pertence a
um intervalo [a, b] qualquer, procede-se à mudança de variável da forma:

1 b−a b b−a 1
x=
2
 a + b + t(b − a)  e dx=
2
dt ou ∫
a
f ( x) dx=
2 ∫−1
F(t ) dt

Onde

F(t ) = f  x(t ) 

Esta fórmula é exata para polinômios de grau menor ou igual a 3, pois:

∫ −1
1 dt = A0 g(t0 ) + A1 g(t1 ) = A0 + A1 = 2
1

∫ −1
t dt = A0 g(t0 ) + A1 g(t1 ) = A0t0 + A1t1 = 0
1 2
∫ −1
t 2 dt = A0 g(t0 ) + A1 g(t1 ) = A0t02 + A1t12 =
3
1

∫ −1
t 3dt = A0 g(t0 ) + A1 g(t1 ) = A0t03 + A1t13 = 0

170
TÓPICO 1 | INTEGRAÇÃO NUMÉRICA

obtém-se o sistema:

 A0 + A1 2
=

 A0t0 + A1t1 =0
 2 2
 A0t0 + A1t1 =2/3
 A t3 + A t3 =0
 00 1 1

Cuja solução é:

3 3
t0 =
− t1 = A0 =
A1 =
1
3 3

Desta forma, para n = 1 resulta em:

1  3  3
∫−1
F(t ) dt =F  −

 3 
 + F


 3 
 

Considere que F(t) represente os polinômios especiais tk para k = 0, 1, ..., 2n − 1,


de forma que:

 0, se k é ímpar
1


k
t dt =  2
−1
 k + 1 , se k é par

Da teoria dos polinômios ortogonais, segue que os tk são as raízes de


polinômios de Legendre e os coeficientes Ak (da Equação 1) são obtidos da solução
do sistema de equações resultantes, cujos valores são indicados na Tabela 1:

171
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

TABELA 1– COEFICIENTES AK DA EQUAÇÃO 1

n tk Ak k

1 -0.57735027 1.00000000 0
-0.57735027 1.00000000 1

2 -0.77459667 0.55555556 0

0.00000000 0.88888889 1
0.77459667 0.55555556 2
3 -0.86113631 0.34785485 0
-0.33998104 0.65214515 1
0.86113631 0.34785485 2
0.33998104 0.65214515 3
4 -0.90617985 0.23692689 0
-0.53846931 0.47862867 1
0.00000000 0.56888889 2
0.90617985 0.23692689 3
0.53846931 0.47862867 4

FONTE: Bortoli e Quadros (2009, p. 150)

Exemplo 3: integre f(t) = t3 + 2 em (−1, 1) por quadratura gaussiana com


n = 2.

1
I= ∫−1
(t 3 + 2) dt = A0 f (t0 ) + A1 f (t1 ) + A2 f (t2 )

Solução: observe que,

t0 = −0.77459667 A0 = 0.55555556
t1 = 0.00000000 A1 = 0.88888889
t2 = 0.77459667 A2 = 0.55555556

Desta forma, substituindo temos:

I 0.55555556 ⋅ ( 0.77459667 ) + 2  + 0.88888889 ⋅ ( 0.00000000 ) + 2  +


3 3
=
   
+ 0.55555556 ⋅ ( 0.77459667 ) + 2  =
3
4, 0
 

172
TÓPICO 1 | INTEGRAÇÃO NUMÉRICA

Exemplo 4a: aproxime a integral abaixo por quadratura gaussiana com n = 2.

4 dx

∫ 0 x2

Solução: O intervalo dado é I = [0, 4], transformado para [-1, 1]. Assim,
calcula-se a integral conforme:

4 dx b−a 1

∫ 0 x 2
=
2 ∫−1
F(t ) dt

através da mudança de variáveis:

b−a a+b 4−0 4+0


x=t + =t + =2(t + 1)
 2  2  2  2

Resultando em:

4 dx 4−0
∫ ≈ ⋅  A F ( t ) + A1F ( t1 ) + A2 F ( t2 ) 
0 x 2
2  0 0
 
 1 1 1 
≈ 2 ⋅ 0.555556 + 0.888889 + 0.555556
 ( 2t0 + 3) ( 2t1 + 3) ( 2t2 + 3) 
2 2 2

≈ 0.251745

onde t0 = −0.7745967, t1 = 0.000000 e t2 = 0.7745967.

Aplicação à solução de problema no MatLab

1
Exemplo 4b: seja a função integrada f ( x ) = efetuada pelos métodos
1+ x
dos trapézios, de Simpson e de Gauss Legendre.

173
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

QUADRO 5 – COMPARAÇÃO DOS ALGORITMOS: MÉTODOS DOS TRAPÉZIOS, DE SIMPSON E


DE GAUSS LEGENDRE EM MATLAB

FONTE: O autor

3.2.2 Método Gauss-Chebyshev


Quadraturas de Gauss-Chebyshev são quadraturas gaussianas para
integrais da forma expressada por:

1 f ( x)
∫ (1 − x ) dx
−1 2

Neste caso, na quadratura gaussiana de n pontos os nodos xi são as raízes


do n-ésimo polinômio de Chebyshev. Pode-se mostrar, por exemplo, que o
conjunto de pontos desta quadratura são dados por:

 2i − 1 
=xi cos  π
 2n 
π
wi =
n
174
TÓPICO 1 | INTEGRAÇÃO NUMÉRICA

Exemplo 5a: considere o problema de aproximar a integral.


1 2
e−x

−1 1 − x2
dx

Usando a quadratura de Gauss-Chebyshev de n pontos temos:

• n = 1:

1 2
e−x − cos( π / 2 )
2


−1 1 − x2
dx ≈ πe

≈π

• n = 2:

1 2
e−x π − cos( π / 4 )2 π − cos( 3π / 4 )2

−1 1 − x2
dx ≈
2
e + e
2
≈ 1.90547

• n = 3

1 2
e−x π − cos( π / 6 )2 π − cos( π / 2 )2 π − cos( 5 π / 6 )2

−1 1 − x2
dx ≈
3
e + e
3
+ e
3
≈ 2.03652

Na tabela seguinte, temos as aproximações da integral computadas com a


quadratura de Gauss-Chebyshev com diferentes números de pontos.
TABELA 2– RESULTADOS REFERENTES AO EXEMPLO 5
~
n I
1 3.14159

2 1.90547

3 2.03652

4 2.02581

5 2.02647

6 2.02644

10 2.02644

FONTE: Konzen (2018)

175
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

Aplicação à solução de problema no MatLab

Exemplo 5b: seja a função integrada f(x) = ln(1 + x) efetuada pelo método
de Gauss-Chebychev.

QUADRO 6 – ALGORITMOS DO MÉTODO DE GAUSS-CHEBYCHEV APLICADO EM MATLAB

FONTE: O autor

DICAS

Acesse o link para saber mais os diversos problemas em física e em engenharia


que necessitam de soluções cuja matemática envolvida apresenta cálculos integrais
através de métodos numéricos de IN: <https://sites.google.com/site/calcachmr/exercicios-
5a-27-04-2016>.

DICAS

Para saber mais, acesse o livro “Fundamentos de cálculo numérico para


engenheiros” de Bortoli e Quadros (2009). Disponível em: <https://docplayer.com.
br/23638821-Fundamentos-de-calculo-numerico-para-engenheiros.html>.

176
TÓPICO 1 | INTEGRAÇÃO NUMÉRICA

LEITURA COMPLEMENTAR

Este texto aplica-se às disciplinas: Métodos Numéricos e Cálculo Numérico


dos cursos da  área de ciências exatas, tais como Ciência da Computação,
Engenharias, Matemática,  Física, Licenciaturas correlatas, dentre outros.
Buscamos contemplar, de forma concisa, os  principais métodos de integração
numérica.

USO DE INTEGRAÇÃO NUMÉRICA EM PROBLEMAS DE ENGENHARIA

Augusto Giacchini Kloth


Olga Harumi Saito

O objetivo deste é apresentar um estudo inicial do uso de integração


numérica na resolução de problemas aplicados à engenharia. Dentre os métodos
existentes, serão apresentados os métodos dos Trapézios e de Simpson na resolução
de um problema aplicado. O problema em questão é o cálculo da resposta em
um transdutor quando o transdutor sofre uma onda de choque proveniente de
uma explosão, em determinado tempo. Ainda, será analisado o erro cometido na
utilização destes métodos.

O cálculo de integração utilizando-se de elementos infinitesimais,


semelhante ao que se conhece hoje por Cálculo Diferencial e Integral, já era
utilizado por matemáticos da Grécia Antiga, e desenvolveu se ao longo do tempo,
de forma a tornar-se o que existe hoje. O conceito de integral definida proposto
por [1] pode ser dado através do limite expresso em (1), sendo f contínua no
intervalo [a, b], dividido em partições de tamanho ∆(xi).

(1)

Pelo Teorema Fundamental do Cálculo, F(x) é tal que F’(x) = f(x) · F(x) é a
primitiva ou antiderivada de f(x).

A integração numérica é apresentada por [1] e [3] e consiste em aproximar


a função a ser integrada por funções cuja integral seja conhecida. Este processo é
notável desde o século XVIII como alternativa ao cálculo da primitiva. A integração
numérica pode ser chamada de quadratura, pois é um método que mede a área
sob uma curva ao traçá-la em papel milimetrado e contar os quadrados sob
esta. As Fórmulas de Newton-Cotes para integração numérica são identificadas
por trabalharem com N pontos igualmente espaçados dentro do intervalo de
integração.

177
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

Dentre estas, os métodos dos Trapézios e de Simpson interpolam um


polinômio de grau N − 1 pelos pontos dados, polinômio este que será efetivamente
integrado. Fazendo-se N = 2 na situação anteriormente expressa, tem-se o método
dos Trapézios, que aproxima a função f(x) por uma função linear, cujo gráfico é
uma reta. O método de Simpson é obtido ao impor N = 3. Neste caso, a função f(x) é
aproximada por um polinômio P(x) de grau 2. A Figura 1 ilustra estas duas situações.

FIGURA 1– FUNÇÃO F(X) APROXIMADA PELO MÉTODO 1-TRAPÉZIO (R(X)) E PELO MÉTODO
1-SIMPSON (P(X))

FONTE: Adaptado de [4]

Utilizando-se da fórmula da Geometria Plana para cálculo da área do


trapézio, pode-se aproximar a integral definida de f(x) pelo método dos Trapézios,
dando origem à equação (2).

(2)

Já para construir o polinômio de grau 2 do método de Simpson são


necessários três pontos: (a, f(a)), (m, f(m)) e (b, f(b)), sendo m ponto médio de a e b.
A integral aproximada pelo método de Simpson é dada pela equação (3). Para o
método de Simpson, tem-se h = m − a.

(3)

É possível, ainda, calcular o erro máximo cometido ao calcular


uma integral definida pelos métodos dos Trapézios e de Simpson, dado
respectivamente por (4).

(4)

178
TÓPICO 1 | INTEGRAÇÃO NUMÉRICA

M é o máximo valor de |f''(ζ)| e N é o máximo valor de |f(4)(ζ)|, com


a ≤ ζ ≤ b. Em ambos os métodos, o intervalo inicial [a, b] pode ser dividido em
subintervalos, de forma a aumentar a precisão do resultado. Para obter o valor
aproximado da integral, basta somar os valores obtidos para cada subintervalo.
Cada erro máximo local é obtido através de (4), desde que utilizado o h do
subintervalo correspondente.

Na área de Engenharia é comum deparar-se com integrais cujo melhor


método de resolução é através de integração numérica. Por exemplo, [2] apresenta
o problema de uma onda de choque proveniente de uma explosão, que tem sua
resposta em um transdutor dada por: F(t) = (8/π) e−t I(a), para t ≥ a. O valor I(a) é
dado por:

Calculou-se I(1) através de programação da calculadora HP 50g, obtendo


os valores da Tabela 1, que traz os resultados utilizando os dois métodos de
integração e variando o número de partições do intervalo Npar. O valor E é o erro
máximo local, calculado por meio de (4). A Figura 2 mostra o gráfico de F(t) com
os valores de I(1) obtidos na Tabela 1. Em verde ´e mostrado F(t) quando I(1) é
obtido através do método dos Trapézios com Npar = 1. Já em violeta, é o resultado
obtido quando utiliza-se o método de Simpson com Npar = 1. Utilizando os outros
valores de I(1) apresentados na tabela encontrou-se comportamento próximo ao
de Simpson, destacado em violeta no gráfico.

QUADRO 1– APRESENTAÇÃO DOS RESULTADOS DE I(1) E ERROS ASSOCIADOS

Método dos Trapézios Método de Simpson


N par 1 3 6 9 1 2 3 4
I(1) 3.20641 3.07612 3.06339 3.06102 3.06066 3.05924 3.05914 3.05913
E 0.22652 0.02517 0.00629 0.00280 0.00849 0.00053 0 .00011 0.00003
FONTE: Os autores

179
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

FIGURA 2– GRÁFICO DE F(T) PARA DIFERENTES VALORES DE I(1)

F(I)
1.4

1.2

1.0

0.8

0.6

0.4

0.2
22 24 26 28 30 32 34 t

FONTE: Os autores

Conclui-se que em relação ao problema apresentado, utilizando o


mesmo número de partições de intervalo, o método de Simpson mostrou maior
precisão em relação ao método dos Trapézios. O gráfico da Figura 2 corrobora
esta situação, evidenciando a diferença dos resultados obtidos pelos diferentes
métodos. Analisando o Quadro 1, por sua vez, nota-se que a ordem do erro
máximo cometido por 6-Trapézios é a mesma de 1-Simpson.

Assim, nota-se a importância que estas ferramentas desempenham


em aplicações da área de Engenharia, como a exemplificada. Estudos com
outros métodos de integração numérica podem ser realizados a determinadas
situações-problema.

180
RESUMO DO TÓPICO 1

Neste tópico, você aprendeu que:

• Nenhum dos quatro métodos de integração numérica abordados nesta unidade


deve ser descartado a priori, pois cada um deles poderá ser o mais adequado,
conforme o tipo de integranda disponível.

• O método dos Trapézios será o mais adequado para funções integrandas com
gráfico tipo escada.

• O método de Simpson é indicado para funções integrandas discretas (definidas


por tabela de pontos).

• O método de Gauss-Legendre é mais eficiente, em geral, para funções


integrandas com expressão conhecida.

• Por fim, a integração numérica de Gauss-Chebyshev tem aplicações específicas


e deve ser utilizada quando a função integranda já inclui o fator peso
1
W ( x) = na sua expressão original, como na determinação de coeficientes
( )
1 − x2
da série aproximadora de Chebyshev.

181
AUTOATIVIDADE

1 Considere a integral I no intervalo [0, 1] com a fórmula dos trapézios


subdividido em n partes iguais. Responda:

11
∫0 x +1
dx

a) Prove que esta integral é igual a ln(2).


b) Calcule I4. A diferença I4 − ln(2) é positiva ou negativa?

2 Determine o número n de partes em que é necessário dividir o intervalo


[0, 10] para calcular a área sob o gráfico de cos(x2) com erro inferior a 10−4 ,
usando o método de Simpson.

3 Use o método de Simpson para calcular a integral com erro inferior a 0.01.
1

∫x
2
cos(x) dx
0

4 A área do círculo x2+ y2 = 1 é igual a π.

a) Determine uma aproximação para a área limitada por este círculo no


primeiro quadrante usando o método de Simpson com h = 0.25 e determine
uma estimativa para π a partir disto. Expresse o resultado com três casas
decimais.

 2 2
b) Seja f ( x=
) 1 − x 2 . Sabendo-se que f " ( 0 ) = −1 , que f "  = − e que
 2  2
 
f ’’’(x) não se anula no intervalo aberto (0, 1), determine h de modo que a
integração pela regra do trapézio produza o valor de π correto até a segunda
casa decimal.

5 Em quantas partes é necessário subdividir o intervalo [0, 1] para que a


integral abaixo possa ser calculada usando o método de trapézio 10-5 .
1

∫xe
3 2x
dx
0

6 Determinar o número mínimo de subintervalos necessários para


calcular, pela Segunda Regra de Simpson, o valor da integral abaixo
com erro ε < 0.001.
3

∫ ln( x) dx
1

182
7 Calcular, pela Primeira Regra de Simpson, a integral abaixo com erro ε < 0.001.

∫ ln( x) dx
1

8 Considere a integral I abaixo:

∫ ln( x) dx
1

a) Calcule a integral pela fórmula composta da Regra dos Trapézios com n = 10:
b) Avalie o erro máximo cometido:
c) Determine o número mínimo de subintervalos necessários para que se
obtenha o valor da integral com erro inferior a 0.001.

183
184
UNIDADE 3
TÓPICO 2

EQUAÇÕES DIFERENCIAIS ORDINAIS

1 INTRODUÇÃO
Equações diferenciais são utilizadas em modelos que descrevem
quantitativamente fenômenos, por exemplo, em fluxo de fluidos, transferência de
calor, vibrações, reações químicas, fenômenos biológicos etc. O seu surgimento
é bem antigo; basta lembrar da equação de Bernoulli para escoamentos simples,
entre outros (BORTOLI; QUADROS, 2009).

Uma Equação Diferencial Ordinária (EDO) de ordem n pode ser


escrita como:

y( n) = f ( x , y , y' , y " ..., y( n−1) )

Cuja solução φ(x) é n vezes diferencial e satisfaz,

( n)
ϕ= (
f x , ϕ, ϕ ', ϕ '',..., ϕ( )
n −1
)
As equações diferenciais podem ser lineares ou não, o que os torna não
lineares é o produto de variáveis.

Exemplo 6: considere os exemplos de equações lineares ou não lineares


que seguem:

x y′ = − y linear
x y′′ + (1 − y) y′ + y = 0 não linear

A solução particular de EDOs é feita a partir de condições iniciais gerando


os PVIs – problemas de valor inicial.

Exemplo 7: aplicações de problemas de valor inicial PVI são:

 y( 3) ( x) + y( x) =2x
 y '( x) = x y 
 =y(0) y= '(0) 0.....
 y( 0) = 0 , 3 =
 y( L) y= "( L) 0.....

185
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

Existe um número muito restrito de equações diferenciais cujas soluções


podem ser expressas sob a forma analítica simples. Desta forma, os métodos
numéricos são muito importantes na solução aproximada de equações diferenciais.

A seguir apresentam-se alguns métodos usados para resolver uma grande


quantidade de equações diferenciais.

2 MÉTODOS DE PASSO SIMPLES PARA SOLUÇÃO DE UM PVI


Dado um problema de valores de contorno:

dy
= f ( x , y)
dx
y( x0 ) = y0

Pretende-se determinar aproximações y(xl), igualmente espaçadas em


[x0, xf ], ou seja,

x=
l x0 + hl ;
l = 0 ,1, 2 ,..., n
x f − x0
h =
n

Os métodos que seguem são baseados em expansões em séries de Taylor


de y(x), ou seja,

h2
y( x + h)= y( x) + hf  x , y( x)  + f  x , y( x)  + ...
2! 

A seguir, vamos detalhar os métodos de EDO para solução numérica de


um Problema de Valor Inicial (PVI) e as principais características dos métodos de
passo simples.

2.1 MÉTODO DE EULER


Seja um PVI de primeira ordem, conhecendo-se t0 e y0, o coeficiente
angular da reta tangente ao gráfico da solução em t = t0, ou seja, φ′(t0) = f(t0, y0),
também é conhecido. Portanto, é possível construir a tangente à solução em t0 e
obter um valor aproximado y1 de φ(t1) mediante um deslocamento sobre a reta
tangente desde t0 até t1, conforme mostra a figura a seguir.

186
TÓPICO 2 | EQUAÇÕES DIFERENCIAIS ORDINAIS

Via expansão em série de Taylor até primeira ordem obtém-se yn+h = yn + hy1

FIGURA 10 - RETA TANGENTE

FONTE: Bortoli e Quadros (2009, p. 159)

Admitindo que o espaçamento h entre os pontos t0, t1, . . . seja uniforme,


então tn+1 = tn + h e a fórmula de Euler pode ser escrita como:

yn+1 = yn + h f(tn, yn) = yn + h fn, n = 0, 1, 2, . . .

Exemplo 8: obtenha y(0.2) de y′ = 2 − t + 3y utilizando a fórmula de Euler


sendo y(0) = 1.

Solução: a equação é linear de primeira ordem e o PVI apresenta como solução.

1 5 14
y=ϕ ( t ) = t − + e 3t
3 9 9

Utilizado a fórmula de Euler e um passo h = 0.1 obtém-se a sua solução


aproximada em t = 0.2. Como f(t, y) = 2 − t + 3y e f(0, 1) = 5; resulta:

y1 = y0 + h · f(0, 1) = 1 + 0.1 · 5 = 1.5.

em t = 0.1; para t = 0.2 obtém-se:

y2 = y1 + h · f(t1, y1) = 1.5 + 0.1 · f(0.1, 1.5) = 1.5 + 0.1 · 6.4 = 2.14.

Quando o resultado é comparado com o valor ”exato”, φ (0.2) = 2.345518


o erro relativo é de 2.345518 − 2.14 = 0.205518; que não é normalmente aceitável
por ser muito grande. Como a aproximação é de primeira ordem o erro cometido
pode crescer consideravelmente.
187
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

Aplicação à solução de problema no MatLab

Exemplo 9: Considere a seguinte EDO: y′(t, y) = 3y + t2.


Resolva numericamente a equação para uma malha de 5 pontos, com
intervalo de 0.1 unidades, sabendo que t0 = 0 e y0 = 2.

? = 0.1

i=1 i=2 i=3 i=4 i=5

Para a resolução da malha para 5 pontos, temos:

Solução numérica
6 Solução analítica
Solução numérica ∆t=0,01

5
y

2
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4

Como é possível observar, para Δt = 0.1 a solução numérica diverge


rapidamente em relação à solução real. Para Δt = 0.01 a solução numérica
aproxima-se da solução real, indicando a existência de convergência. No entanto,
pode-se ver que o erro aumenta consideravelmente ao fim de poucas iterações.
O quadro a seguir apresenta a implementação do código em MATLAB para a
resolução do exemplo pelo método de Euler:

188
TÓPICO 2 | EQUAÇÕES DIFERENCIAIS ORDINAIS

QUADRO 7 - ALGORITMOS DO MÉTODO DE EULER APLICADO EM MATLAB

FONTE: <https://fenix.ciencias.ulisboa.pt/downloadFile/1970462275928415/2-EDPs.pdf>. Acesso


em: 11 fev. 2019.

Usando a mesma ideia do método de Euler, pode-se obter aproximação


de ordem mais elevada conduzindo aos métodos de Runge-Kutta.

2.2 MÉTODOS DE RUNGE-KUTTA


Os métodos de expansão por séries têm uma boa característica: o erro de
truncamento global é O(hN) e N pode ser escolhido tão grande tal que o erro seja
pequeno.

Entretanto, o problema com estes métodos é a necessidade de cálculo de


derivadas de ordem mais alta, as quais podem ser bastante complicadas. Cada
método de Runge-Kutta é derivado de um método de Taylor apropriado de tal
maneira que o erro de truncamento global seja O(hN); para eliminar o cálculo das
derivadas faz-se várias avaliações da função f a cada passo. Estes métodos podem
ser construídos para qualquer ordem N.

2.2.1 Método de Runge-Kutta de ordem 2


O método de Runge-Kutta de segunda ordem é definido pelas equações:

h
yn+1 =yn + (k + k )
2 1 2
onde:
k1 = f(xn, yn) e k2 = f(xn + h, yn + hk1)

189
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

Exemplo 10: demonstre como obter esta fórmula.

Solução: considere a expansão:

 h2 
yn + f  xn , y ( xn )  h +   ! f '  xn , y ( xn ) 
yn+1 =
 2 
onde:
yn+1 = yn + [f(ak1, bk2)]h

com a e b constantes. Assim,

 h2 
ak1 + bk2 f  xn , y ( xn )  h +   ! f '  xn , y ( xn ) 
=
 2 
onde:
k1 = f(xn, yn) e k2 = f [xn + ph, yn + qh f (xn), y(xn)]

Deve-se determinar a, b, q, p. Por expansão em Séries de Taylor resulta:

k2 = f [xn + ph, yn + qh f (xn), y(xn)] ∼ f(xn, yn) + ph fx(xn, yn) + qh f(xn, yn) fy (xn, yn)

onde:


f x ( xn , yn ) = f ( x, y )
∂x x
n , yn


f y ( xn , yn ) = f ( x, y )
∂y x n , yn

Pois,

∂f ( x , y ) ∂f ( x , y )
f ( x , y )  f ( a + h , b + h2 )  f ( a , b ) + h1 + h2
∂x ∂x
a ,b a ,b

A substituição desta expressão em yn+1 fornece

 h 
yn+1 =yn + h ( ak1 + bk2 ) =yn + h  f ( xn , yn ) + f '( xn , yn ) 
 2 

ou

yn+1  yn + h af( xn , yn ) + bf ( xn + ph , yn ) + qhf ( xn , yn ) 

190
TÓPICO 2 | EQUAÇÕES DIFERENCIAIS ORDINAIS

e ainda:

yn + ah af( xn , yn )  + hb  fxn + bh 2 pf x ( xn , yn ) + bqh 2 f ( xn , yn ) f y ( xn , yn ) 


yn+1 =
 

ou

yn+1 =yn + h( a + b) f ( xn , yn ) + hb2  pf x ( xn , yn ) + qf ( xn , yn ) f y ( xn , yn ) 

Como

d
f=
'( x , y ) =( x , y) fx ( x , y) + f ( x , y) f y ( x , y)
dx

Pode-se escrever

h2
yn+1 =
yn + hf ( xn , yn ) + f ( xn , yn ) f y ( xn , yn )
2!

Igualando as expressões, obtém-se:

h( a + b) f ( xn , yn ) + h 2 bpf x ( xn , yn ) + qbf ( xn , yn ) f y ( xn , yn )  =
 f (x , y ) 1 
hf ( xn , yn ) + h 2  x n n + f ( xn , yn ) f y ( xn , yn ) 
 2! 2! 

1 1 1 1
Desta forma, a + b = 1, bp = e bq = . Para b = obtém-se, a = b = ,
2 2 2 2
p = q = 1. Portanto, o método de Runge-kutta de ordem 2 é dado por:

k1 + k2
y(n + 1=
) y(n) +
2
k1 = hf ( xn , yn )
k2 = hf ( xn + h , yn + k1 )

Exemplo 11: obter a solução aproximada da equação diferencial abaixo,


considerando o intervalo [0, 1], utilizando o método de Runge-Kutta de segunda
ordem com h = 0, 1.

dy
= − xy
dx
y(0) = 1

191
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

Solução: a fórmula iterativa neste caso fica:

0 ,1
yn+1 =+
yn (k + k )
2 1 2

Onde

k1 = − xn yn
− ( xn + 0.1) ⋅ ( yn + 0.1 k1 )
k2 =

Como x0 = 0 e y0 = 1, os resultados obtidos são os seguintes exibidos na


tabela a seguir:

TABELA 3 - OS RESULTADOS OBTIDOS A PARTIR DA FÓRMULA ITERATIVA


n xn yn k1 k2 yn+1
0 0.0 1.000000000 0.000000000 -0.100000000 0.995000000
1 0.1 0.995000000 -0.099500000 -0.197010000 0.980174500
2 0.2 0.980174500 -0.196034900 -0.288171303 0.955964190
3 0.3 0.955964190 -0.286789257 -0.370914106 0.923079022
4 0.4 0.923079022 -0.369231609 -0.443077930 0.882463545
5 0.5 0.882463545 -0.441231772 -0.503004221 0.835251745
6 0.6 0.835251745 -0.501151047 -0.549595648 0.782714410
7 0.7 0.782714410 -0.547900087 -0.582339521 0.726202430
8 0.8 0.726202430 -0.580961944 -0.601295612 0.667089552
9 0.9 0.667089552 -0.600380597 -0.607051492 0.606717947

FONTE: Bortoli e Quadros (2009, p. 164)

2.2.2 Método de Runge-Kutta de ordem 4


O método de Runge-Kutta de ordem N = 4 é o mais popular. De modo
geral, é uma boa escolha, pois é bastante preciso, estável e fácil de programar. Sua
formula é a seguinte:

h
yn+1 = yn + ( k + 2k2 + 2k3 + k4 )
6 1

192
TÓPICO 2 | EQUAÇÕES DIFERENCIAIS ORDINAIS

Sendo:

k1 = f (tn , yn )
 h h 
k2 = f  tn + , yn + k1 
 2 2 
 h h 
k3 = f  tn + , yn + k2 
 2 2 
k4 = f (tn + h , yn + hk3 )

A demonstração desta fórmula segue o mesmo procedimento indicado


para o método de ordem 2, porém é muito mais trabalhosa, não sendo apresentada.
Ao invés de mostrar o desenvolvimento rigoroso destas fórmulas, é interessante
observar algumas características importantes.

Considere o gráfico de y = y(t) no primeiro subintervalo [t0, t1]. Os valores


são aproximações para as derivadas desta curva em determinados pontos. Logo,
k1 é a derivada na extremidade esquerda do intervalo, k2 e k3 são duas estimativas
para a derivada no ponto central e k4 é a derivada na extremidade direita, conforme
exibido na figura a seguir:

FIGURA 11 - MÉTODO DE RUNGE-KUTTA DE ORDEM 4

FONTE: Bortoli e Quadros (2009, p. 165)

O ponto seguinte, (t1, y1), é obtido pela integração:

t1

y (t1 ) − y(t0 ) = ∫
f t , y(t )  dt.
t0
(1)

193
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

Se a regra de Simpson é aplicada a esta equação com espaçamento h ,


então a aproximação para a integral fica: 2

t1 h
∫t0
f t , y(t )  dt ≈  f (t , y(t0 )) + 4 f (t1/ 2 , y(t1/ 2 )) + f (t1 , y(t1 )) 
6 0
(2)

Onde t1/2 é o ponto médio do intervalo. Três valores da função f são


necessários; portanto, faz-se a escolha:

f(t0, y(t0)) = k1 e f(t1, y(t1)) ≈ k4

e para o valor no centro do intervalo escolhe-se uma média entre k2 e k3, isto é,

k2 + k3
f t1/ 2 , y ( t1/ 2 )  ≈
2

Estes valores são substituídos em (2), que é usada na equação (1) para
determinar:

h  4 ( k2 + k3 ) 
y1 =+
y0  k1 + + k4 
6  2 

Quando esta fórmula é simplificada, percebe-se que para n = 0, esta é a


equação:

h
yn+1 =yn + ( k + 2k2 + 2k3 + k4 )
6 1

Na sequência, vamos apresentar um exemplo utilizando o método de


Runge-Kutta de quarta ordem.

Exemplo 12: obter a solução aproximada da equação diferencial abaixo,


considerando o intervalo [0, 1] utilizando o método de Runge-Kutta de quarta
ordem com h = 0, 1.

dy
= − xy
dx
y(0) = 1

A fórmula iterativa fica:

0.1
yn+1 =yn +
6 1
( k + 2k2 + 2k3 + k4 )

194
TÓPICO 2 | EQUAÇÕES DIFERENCIAIS ORDINAIS

Sendo:

k1 = − xn yn
k2 =
−( xn + 0.05)( yn + 0.05k1 )
k3 =
−( xn + 0.05)( yn + 0.05k2 )
k4 =
−( xn + 0.1)( yn + 0.1k3 )

Como x0 = 0 e y0 = 1, os resultados obtidos são indicados na tabela a seguir:

TABELA 4 - OS RESULTADOS OBTIDOS A PARTIR DA FÓRMULA ITERATIVA

n xn yn k1 k2 k3 k4 yn+1
0 0,0 1,0000000 0,0000000 -0,0500000 -0,0498750 -0,0995012 0,995012479
1 0,1 0,99501248 -0,09950125 -0,14850561 -0,14813808 -0,19603973 0,98019867
2 0,2 0,98019867 -0,19603973 -0,24259917 -0,24501720 -0,28679909 0,95599748
3 0,3 0,95599748 -0,28679924 -0,32958013 -0,32883147 -0,36924573 0,92311634
4 0,4 0,92311634 -0,36924654 -0,40709431 -0,40624273 -0,44124604 0,88249690
5 0,5 0,88249690 -0,44124845 -0,47322390 -0,47235922 -0,50115659 0,83527021
6 0,6 0,83527021 -0,50116213 -0,52663787 -0,52580991 -0,54788245 0,78270454
7 0,7 0,78270454 -0,54789318 -0,56648241 -0,56578532 -0,58090081 0,72614905
8 0,8 0,72614905 -0,58091924 -0,59253763 -0,59204384 -0,60025020 0,66697684
9 0,9 0,66697684 -0,60027916 -0,60511474 -0,60488505 -0,60648834 0,60653073

FONTE: Bortoli e Quadros (2009, p. 167)

Podemos observar que, o método de Runge-Kutta de quarta ordem é o


mais preciso, estável e fácil de programar.

Aplicação à solução de problema no MatLab

Exemplo 13a: considere a seguinte EDO: y′(t, y) = 3y + t2.


Resolva numericamente a equação para uma malha de 5 pontos, com
intervalo de 0.1 unidades, sabendo que t0= 0 e y0 = 2, usando o Método de Runge-
Kutta de ordem 4 em Matlab.

h = 0.1
i=1 i=2 i=3 i=4 i=5

O quadro a seguir apresenta a implementação do código em MATLAB


para a resolução do exemplo pelo Método de Runge-Kutta de ordem 4:

195
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

QUADRO 8 - ALGORITMOS DO MÉTODO DE EULER APLICADO EM MATLAB

FONTE: <https://fenix.ciencias.ulisboa.pt/downloadFile/1970462275928415/2-EDPs.pdf>. Acesso


em: 11 fev. 2019.

2.3 CARACTERÍSTICAS DOS MÉTODOS DE PASSO SIMPLES


O método de Euler não é muito usado em problemas práticos em virtude
da necessidade de intervalos pequenos para obter a precisão desejada. Os
métodos de Runge-Kutta são de maior exatidão que o de Euler e evitam o cálculo
das derivadas de y(x) calculando a função f(x, y) em pontos selecionados em cada
subintervalo.

Todos os métodos de passo simples são autoinicializáveis. Em particular,


os métodos de Runge-Kutta:

• Não precisam do cálculo de derivadas de ordem elevada.


• Permitem a troca fácil do tamanho do intervalo.
• Difíceis de avaliar o erro de truncamento.
• Fáceis de vetorizar e paralelizar.

Aplicação à solução de problema no MatLab

Exemplo 13b: resolva por Euler simples e Runge-Kutta de 2ª e 4ª ordem o


PVI no matlab:

y’ = x – y + 2, com y(x = 0) = 2 no domínio [0, 1].

Escolha um valor inicial para o número n de divisões do domínio e


aumente o n até que y(x =1) tenha erro estimado da ordem de 10-6 .

196
TÓPICO 2 | EQUAÇÕES DIFERENCIAIS ORDINAIS

QUADRO 9 – ALGORITMOS DE EULER SIMPLES E RUNGE-KUTTA DE 2ª E 4ª ORDEM COM


IMPLEMENTAÇÃO EM MATLAB

FONTE: O autor

A figura a seguir apresenta os resultados aproximados obtidos executando


os algoritmos Euler Simples, Rung-Kutta de 2ª e 4ª ordem para n = 8, tornando a
visualização da sua diferença praticamente imperceptível.

197
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

FIGURA 12 - RESULTADOS OBTIDOS EXECUTANDO OS ALGORITMOS EULER SIMPLES, RUNG-


KUTTA DE 2ª E 4ª ORDEM

FONTE: Peters e Szeremeta (2017, p. 451)

3 METODOS DE PASSO MÚLTIPLO PARA SOLUÇÃO DE


UM PVI
Os métodos que executam mais de um passo ou que utilizam informações
em mais de um ponto além do ponto anterior para calcular yn+1 são denominados
métodos de passo múltiplo. Dentre eles são indicados os métodos da família
Adams e de predição de correção.

3.1 MÉTODO DE ADAMS-BASHFORTH


De acordo com o teorema fundamental do cálculo, sabe-se que

tn+1


y(tn+1 ) − y(tn ) =y '(t ) dt
tn (3)

A ideia básica dos métodos de Adams é aproximar y′(t) por um polinômio


Pk(t) de grau k e usar o polinômio para determinar a integral da equação (3).
Fórmulas de Adams mais precisas podem ser obtidas usando polinômios de grau
mais elevado e, portanto, um número maior de pontos.

198
TÓPICO 2 | EQUAÇÕES DIFERENCIAIS ORDINAIS

Considere que seja utilizado um polinômio de grau 3. Os coeficientes são


determinados a partir dos quatro pontos:

(tn, yn),(tn−1, yn−1), (tn−2, yn−2) e (tn−3, yn−3)

Substituindo y′(t) por este polinômio na equação (3), calculando a integral e


simplificando o resultado, obtém-se a fórmula de Adams-Bashforth de quarta ordem:

h
yn+1 =+
yn
24
( 55 fn − 59 fn−1 + 37 fn−2 − 9 fn−3 ) (4)

cujo erro de truncamento global é proporcional a h4.

Uma pequena modificação na dedução das fórmulas de Adams-Bashforth


resulta em outro conjunto de fórmulas denominadas fórmulas de Adams-
Moulton:

h
yn+1 =yn +
24
( 9 fn+1 + 19 fn − 5 fn−1 + fn−2 ) (5)

que é do tipo implícita, já que fn+1 = f(tn+1, yn+1).

3.2 MÉTODO DE PREDIÇÃO DE CORREÇÃO DE ERRO


O método adaptativo com correção é uma tentativa de obter simplicidade
e precisão combinando as duas fórmulas de Adams, uma vez que:

yn−3, yn−2, yn−1 e yn

são conhecidas, pode-se calcular fn−3, fn−2, fn−1 e fn e usar a fórmula de Adams-
Bashforth (preditor = estimativa) para obter um primeiro valor para yn+1:

h
yn( 0+)1 =+
yn (55 fn − 59 fn−1 + 37 fn− 2 − 9 fn−3 ) (6)
24

( )
( 0
)
Em seguida, calcula-se fn+1 = f tn+1 , yn+1 e usa-se a fórmula de Adams-
Moulton (corretor), para obter um valor mais preciso de yn+1:

h
yn+1 =yn + (9 f − 19 fn − 5 fn−1 + fn− 2 ) (7)
24 n+1

Para usar qualquer um dos métodos de passo múltiplo é necessário


primeiro calcular alguns yn usando outro método. Por exemplo, o método de
Adams-Moulton de quarta ordem requer valores para y1 e para y2, enquanto o
método de Adams-Bashforth de quarta ordem também requer um valor para y3.
199
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

Uma maneira de contornar esta dificuldade é usar um “método de passo


simples” de precisão comparável para determinar os valores iniciais necessários.
Assim, no caso de métodos de passo múltiplo de quarta ordem pode-se empregar
o método de Runge-Kutta de quarta ordem para obter os valores iniciais.

Como os métodos de passo múltiplo da família Adams não são auto


inicializáveis e a ordem de aproximação é a mesma de Runge-Kutta de ordem 4,
os mesmos tendem a ser pouco utilizados para problemas de engenharia.

Há outros métodos que seguem o mesmo raciocínio, entretanto realiza


uma tamanha quantidade de trabalho para resolver sistemas de equações
diferenciais; o método de Runge-Kutta simplificado seria uma alternativa.

Aplicação à solução de problema no MatLab

Exemplo 13c: resolva o PVI no matlab pelo método de Adams-Bashforth


com n = 8:

y’ = x – y + 2 , com y(x = 0) = 2 no domínio [0, 1].

Use o método de Runge-Kutta de segunda ordem, para obter o segundo


ponto y2.

QUADRO 10 – ALGORITMOS DE ADAMS-BASHFORTH COM INTEGRAÇÃO POR TRAPÉZIOS


COM IMPLEMENTAÇÃO EM MATLAB

FONTE: O autor

A seguir, abordaremos a solução numérica de EDOs de ordem superior,


por meio da sua transformação em um sistema de EDOs de primeira ordem.

200
TÓPICO 2 | EQUAÇÕES DIFERENCIAIS ORDINAIS

4 SISTEMAS DE EQUAÇÕES DIFERENCIAIS ORDINÁRIAS


Considere a solução numérica de para um sistema do tipo:

dx
= f (t , x , y )
dt
dy
= g( t , x , y )
dt

Sendo x(t0) = x0 e y(t0) = y0 no intervalo a ≤ t ≤ b. A solução pode ser


encontrada com os mesmos métodos indicados anteriormente para o caso de uma
equação apenas.

No método de Euler o intervalo [a, b] é dividido em M subintervalos de


b−a
tamanho h = , onde tn+1 = tn + h, de forma que as fórmulas recursivas são as
seguintes: M

xn+1 = xn + h f(tn, xn, yn)


yn+1 = yn + h g(tn, xn, yn) para n = 0, 1, . . . ,M – 1

Para o método de ordem mais alta também pode ser usado para que se
obtenha um nível razoável de precisão. Um deles seria o método de Runge-Kutta
de ordem 4:

h
xn+=
1 xn + ( k + 2 k2 + 2 k3 + k4 )
6 1
h
yn+=
1 yn + ( l1 + 2 l2 + 2 l3 + l4 )
6

Onde

k1 f=
(tn , xn , yn ) l1 g(tn , xn , yn )
 h h h   h h h 
k2 = f  tn + , xn + k1 , yn + l1  l2 = g  tn + , xn + + k1 , yn + l1 
 2 2 2   2 2 2 
 h h h   h h h 
k3 = f  tn + , xn + k2 , yn + l2  l3 = g  tn + , xn + k2 , yn + l2 
 2 2 2   2 2 2 
k4 = f ( t n + h , xn + hk3 , yn + hl3 ) l4 = g(tn + h , xn + hk3 , yn + hl3 )

A mesma ideia poderia ser estendida para resolver equações de ordem


superior, que vamos abordar na sequência.

201
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

4.1 EQUAÇÕES DIFERENCIAIS ORDINÁRIAS DE ORDEM


SUPERIOR
Sistemas de equações diferenciais ordinárias são comuns em algumas
situações envolvendo vibração e controle, cujas aplicações são muito importantes
em engenharia. Este tipo de equação envolve derivadas x′′(t), x′′′(t) e assim por
diante. A equação

m
x "(t ) + cx '(t ) + kx(t ) =
f (t )
g

por exemplo, representa um sistema mecânico para uma mola com constante k.

Assume-se, geralmente, que o atrito seja proporcional à velocidade e que


a função f(t) seja uma força externa. Em geral, a posição x(t0) e a velocidade x′(t0)
são conhecidas em um certo tempo t0. Esta equação para x(t0) = x0 e x′(t0) = y0 pode
ser escrita como:

x "(t ) = f t , x(t ), x '(t ) 

A equação diferencial de segunda ordem pode ser reformulada como um


sistema de duas equações de primeira ordem através da substituição:

x′(t) = y(t)

Desta forma, x′′(t) = y′(t) e a equação diferencial acima torna-se um sistema


com x(t0) = x0 e y(t0) = y0:

dx
=y
dt
dy
= f (t , x , y )
dt

Um método numérico tal como o método de Runge-Kutta pode ser


empregado para resolver o sistema acima e gerar duas sequências, {xn} e {yn},
sendo que a primeira dela é a solução do problema de um sistema mecânico para
uma mola com constante k.

202
TÓPICO 2 | EQUAÇÕES DIFERENCIAIS ORDINAIS

Exemplo 14: considere o problema de valor inicial de segunda ordem


(movimento harmônico amortecido):

x′′(t) + 4x′(t) + 5x(t) = 0


x(0) = 3
x′(0) = −5

1. Escreva o sistema de duas equações de primeira ordem equivalente.


2. Use o método de Runge-Kutta para resolver o problema reformulado no
intervalo [0, 5] usando 50 subintervalos de tamanho h = 0, 1.
3. Compare a solução numérica com a solução analítica x(t) = 3e−2t cos (t) + e−2t sen (t).

Solução: a equação diferencial tem a forma x′′(t) = −4x′(t) − 5x(t).

Usando a substituição x′(t) = y(t), obtém-se

dx
=y
dt
dy
=−5x − 4 y
dt

com x(0) = 3 e y(0) = −5.

Alguns resultados são mostrados na tabela a seguir, que compara o valor


numérico com o da solução analítica.

TABELA 5 – RESOLUÇÃO DO SISTEMA DE EQUAÇÕES DIFERENCIAIS

n tn xn xexata
0 0.0 3.00000000 3.00000000
1 0.1 2.52564583 2.52565822
2 0.2 2.10402783 2.10404686
3 0.3 1.73506269 1.73508427
4 0.4 1.41653369 1.41655509
5 0.5 1.14488509 1.14490455
10 1.0 0.33324303 0.33324661
20 2.0 -0.00620684 -0.00621162
30 3.0 -0.00701079 -0.00701204
40 4.0 -0.00091163 -0.00091170
48 4.8 -0.00004972 -0.00004969
49 4.9 -0.00002348 -0.00002345
50 5.0 -0.00000493 -0.00000490

FONTE: Bortoli e Quadros (2009, p. 173)

203
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

5 ESTABILIDADE NA OBTENÇÃO DA SOLUÇÃO NUMÉRICA


A solução numérica de equações diferenciais está relacionada a escolha do
passo h (variação espacial). Assim, observa-se o surgimento dos seguintes erros:

• Erro de Truncamento Local (ETL) – É o erro existente em uma iteração ao


substituirmos um processo infinito por um finito.
• Erro de Arredondamento Local (EAL) – É causado pela precisão finita do
computador em uso.
• Erro de Truncamento Global (ETG) – É a acumulação dos ETL ao longo do
processo de integração, porém ele existiria mesmo que se utilizasse uma
aritmética de precisão infinita, pois é inerente ao método e independente do
computador utilizado.
• Erro de Arredondamento Global (EAG)- É a acumulação de todos os EAL.
• Erro Total (ET) – É a soma dos ETG e EAG.

Uma representação gráfica é mostrada na figura a seguir; note que


quando h cresce o erro de truncamento aumenta e, por outro lado, o erro de
arredondamento diminui. Logo, tal fato deve ser considerado para a escolha de h;
nesse caso, h* é o melhor espaçamento.

5.1 REGIÃO DE ESTABILIDADE DE ALGUNS MÉTODOS


Uma maneira de analisar a estabilidade de um método numérico
consiste em estabelecer regiões do plano complexo construídas com base na
seguinte definição:

FIGURA 13 - REPRESENTAÇÃO GRÁFICA DOS ERROS NA SOLUÇÃO NUMÉRICA


DE EDOS

FONTE: Bortoli e Quadros (2009, p. 175)

204
TÓPICO 2 | EQUAÇÕES DIFERENCIAIS ORDINAIS

Um método de aproximação é dito ser absolutamente estável num ponto


λh do plano complexo se a sequência {yk} gerada pelo método aplicado à EDO de
referência.

dy
= λy sendo λ = constante qualquer
dx

com passo Δx = h, for limitada, isto é, yk → 0 quando xk → ∞. Resultando, para os


métodos de Euler e de Runge-Kutta:

5.1.1 Método de Euler


dy
Resolvendo por Euler a equação de referência = λy obtém-se:
dx

y k +=
1 y k + h(λy k =
) y k (1 + λh)
y k=
+2 y k (1 + λh)2
  
y k=
+n y k (1 + λh)n

A sequência {yk} é limitada se |1 + λh| ≤ 1. Então, a região de estabilidade


é o conjunto dos complexos λh tais que |1 + λh| ≤ 1. Assim −2 ≤ λh ≤ 0. Na figura
a seguir temos a representação geométrica da estabilidade do método de Euler.

FIGURA 14 - REGIÃO DE ESTABILIDADE PARA O MÉTODO DE EULER

iy

-2 -1 0 x

FONTE: Bortoli e Quadros (2009, p. 176)

205
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

5.1.2 Método de Runge-Kutta


A região de estabilidade do método de Runge-Kutta para a equação de
referência é o conjunto dos números complexos λh, tais que:

( λh ) 2
1 + λh + ≤ 1 → Runge − kutta ordem 2
2
( λ h ) 2 ( λ h )3
1 + λh + + ≤ 1 → Runge − kutta ordem 3
2 6

( λ h ) 2 ( λ h )3 ( λh) 4
1 + λh + + ++ ≤ 1 → Runge − kutta ordem 4
2 6 24

e graficamente resulta em:

FIGURA 15 - REGIÃO DE ESTABILIDADE PARA O MÉTODO DE RK2, RK3 E RK4,


RESPECTIVAMENTE
iy iy iy
-3
√3 2√2
-2
1
-1

-2 -1 x -3 -2 -1 1 x
-2 -1 x --1
-2.51 -2.79
--2
-1
-2√2
-√3 --3

FONTE: Bortoli e Quadros (2009, p. 177)

Observe que o cruzamento das linhas com o eixo dos y (complexo)


fornecerá o número de Courant-Friedrich-Lewwi - CFL limite que pode ser
utilizado.

6 METODOS DE SOLUÇÃO DE PROBLEMA DE VALOR NO


CONTORNO
Para uma EDO de ordem n > 1 , se o valor da sua solução y(x) , ou de
alguma(s) de suas derivadas até ordem n – 1, for conhecido em mais de um ponto
do domínio [a, b], normalmente nos extremos deste intervalo, ela será denominada
de Problema de Valor no Contorno (PVC) e sua solução não poderá ser obtida
diretamente por meio dos métodos de resolução de PVIs.

206
TÓPICO 2 | EQUAÇÕES DIFERENCIAIS ORDINAIS

Por exemplo, para uma EDO de ordem n = 2, y’’ = f(x, y, y’) com domínio
x ϵ [a, b], a especificação dos valores conhecidos nos extremos pode ser
sintetizada pelo sistema:

α1 y( a) + β1 y '( a) = v1

α 2 y(b) + β2 y '(b) = v2

Sendo αi, βi e v i, com i = 1, 2, são constantes Reais conhecidas, bem como


os αi e βi não podem ser simultaneamente nulos.

Os métodos de solução de PVCs podem ser agrupados na categoria dos


fundamentados nas diferenças finitas, nos quais as derivadas envolvidas na EDO
são aproximadas numericamente por operadores de diferenças, gerando sistemas
de equações algébricas cuja solução fornece aproximações discretas da solução
do PVC (BURDEN; FAIRES, 2008).

6.1 MÉTODO DE DIFERENÇAS FINITAS


Consideramos o seguinte problema linear de valor de contorno da forma:

α( x)u "+ β( x)u '+=


γ( x)u f ( x), c1 < x < c2 (4)
η1u '(c1 ) + θ1u(c1 ) = g1 (5)
η2u '(c2 ) + θ2u(c2 ) = g2 (6)

Onde a incógnita u = u(x) e os são dados os coeficientes α(x) ≠ 0, β(x),


γ(x) e a função f(x). Nas condições de contorno, são dados os coeficientes η1 e
θ1 não simultaneamente nulos, bem como, os coeficientes η2 e θ2, também, não
simultaneamente nulos.

A aproximação pelo método de diferenças finitas surge da substituição das


derivadas por fórmulas de diferenças finitas. Isto requer a prévia discretização do
domínio do problema. Mais precisamente, a aplicação do método de diferenças
finitas envolve três procedimentos básicos:

• Discretização do domínio de integração.


• Discretização das equações diferenciais.
• Resolução do problema discreto.

207
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

6.1.1Discretização do domínio
A discretização do domínio refere-se ao particionamento do mesmo em
pontos espaçados uniformemente ou não. Aqui, para mantermos a simplicidade,
vamos considerar apenas o caso de um particionamento uniforme. Desta forma,
escolhemos o número n de pontos da partição e, então, o passo é dado por:

c2 − c1
h= (7)
n −1

e os pontos da partição podem ser indexados da seguinte forma:

x1 = c1 + (i − 1)h (8)

6.1.2 Discretização das equações


Considerando a equação (4), no ponto x = xi temos:

α( xi ) u ''( xi ) + β( xi ) u '( xi ) + γ( xi ) u ( xi ) = f ( xi ) (9)

para i = 2, 3, ..., n − 1. Podemos substituir a segunda derivada de u pela fórmula


de diferenças finitas central de ordem h2, i.e.

u( xi − h) − 2u( xi ) + u( xi + h)
u "( xi ) + O ( h2 )
h2
 (10)
D 2 u( xi )
2
0. h

A primeira derivada de u também pode ser substituída pela fórmula de


diferenças finitas central de ordem h2, i.e.

u( xi + h) − u( xi − h)
=u '( xi ) + O ( h2 )
2h
 (11)
D 2u( xi )
0 ,h

Agora, denotando ui ≈ u(xi), temos ui−1 ≈ u(xi − h) e ui+1 ≈ u(xi + h). Então,
substituindo as derivadas pelas fórmulas de diferenças finitas acima na equação
(9), obtemos:

208
TÓPICO 2 | EQUAÇÕES DIFERENCIAIS ORDINAIS

 u − 2ui + ui +1   ui +1 − ui −1  2
α( xi )  i −1  + β ( xi )   + γ( xi ) ui + O( h ) = f ( xi ) (12)
 h 2
  2h 

para i = 2, 3, ..., n − 1. Rearranjando os termos e desconsiderando o termo do erro


de truncamento, obtemos o seguinte sistema discreto de equações lineares:

 α( xi ) β( xi )   2α( xi )   α( xi ) β( xi ) 
 2 −  ui −1 +  γ( xi ) −  ui +  2 +  u =f ( xi ) (13)
 h 2h   h2   h 2h  i +1

para i = 2, 3, ..., n−1. Observe que este sistema consiste em n − 2 equações envolvendo
as n incógnitas ui, i = 1, 2, ..., n. Para fechá-lo, usamos as condições de contorno.
Usando a fórmula de diferenças finitas progressiva de ordem h2 para a derivada
u’(c1) temos:

−3u (c1 ) + 4u(c1 + h) − u(c1 + 2h


u '(c1 ) + O( h 2 ) (14)
2h

Então, observando que c1 corresponde ao ponto x1 na partição do domínio,


temos u1 ≈ u(c1), u2 = u(c1 + h) e u3 = u(c1 + 2h) e, portanto de (5) temos:

 −3u1 + 4u2 − u3  2
η1   + θ1u1 + O( h ) = g1 (15)
 2 h 

Então, desconsiderando o termo do erro de truncamento, obtemos a


seguinte equação discreta:

 3η1  2η1 η
 θ1 −  u1 + u2 − 1 u3 =g1 (16)
 2h  h 2h

Procedendo de forma análoga para a condição de contorno (6), usamos


a fórmula de diferenças finitas regressiva de ordem h2 para a derivada u’(c2), i.e.

3u(c2 ) − 4u(c2 − h) + u(c2 − 2h)


u '(c2 ) + O( h 2 ) (17)
2h

Aqui, temos un ≈ u(c2), un−1 ≈ u(c2 − h) e un−2 ≈ u(c2 − 2h), e de (6) obtemos:

 3u − 4un−1 + un− 2  2
η2  n  + θ2un + O( h ) = g2 (18)
 2 h 

209
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

Então, desconsiderando o termo do erro de truncamento, obtemos:

η2 2η  3η 
un− 2 − 2 un−1 +  θ2 + 2  un =g2
2h h 2h  (19)

Por fim, as equações (16)-(19) formam o seguinte problema discretizado


pelo método de diferenças finitas

 3η1  2η1 η
 θ1 −  u1 + u2 − 1 u3 =g1 (20)
 2h  h 2h

 α( xi ) β( xi )   2α( xi )   α( xi ) β( xi ) 
 2 −  ui −1 +  γ( xi ) −  ui +  2 + =u f ( x=
i ), i 2 ,.. (21)
 h 2h  
2
h   h 2h  i +1

η2 2η  3η  (22)
un− 2 − 2 un−1 +  θ2 + 2  un =g2
2h h  2h 

6.1.3 Resolução do problema discreto


O problema discreto (20)-(22) consiste em um sistema linear de n equações
com n incógnitas. Na forma matricial temos:

~ = B
Au (23)

~
onde u = (u1, u2, ..., un) é o vetor das incógnitas, B é o vetor dos termos
constantes B = (g1, f(x2), f(x3), ..., f(xn−1), g2) e A é a matriz dos coeficientes.

Observamos que os coeficientes não nulos da matriz A são:

 3η 
a11 =  θ1 − 1  ,
 2h 

a12 = 1 ,
h
η
a13 = − 1 , (24), (25) e (26), respectivamente:
2h

210
TÓPICO 2 | EQUAÇÕES DIFERENCIAIS ORDINAIS

Onde:

 α( xi ) β( xi ) 
ai ,i −1 =
 2 −  ,i =2 ,..., n − 1,
 h 2h 
 2α( xi ) 
ai ,i =  γ( xi ) −  ,i =2 ,..., n − 1,
 h2 
 α( xi ) β( xi ) 
ai ,i +1 =
 2 +  ,i =2 ,..., n − 1,
 h 2h  (27), (28) e (29), respectivamente:

Em que:

η2
an ,n− 2 = ,
2h

an ,n−1 = − 2 ,
h
 3η 
an ,n =  θ2 + 2 
 2h  (30), (31) e (32), respectivamente:

Com isso em mente, a matriz A tem a seguinte estrutura:

a11 a12 a13


a21 a22 a23

A= ai,i-1 ai,i ai,i+1

an-1,n-2 an-1,n-1 an-1,n


an,n-2 an,n-1 an,n (33)

A resolução do sistema discreto se resume, então, a resolver o sistema


~
Au = B, o que pode ser feito por qualquer método numérica apropriada.

Exemplo 15: consideremos o seguinte problema de valor de contorno.

−u " sen( x), 0 ≤ x ≤ 2 ,


=
u(0) = 0 , (34), (35) e (36), respectivamente.
u( 2) = sen( 2).

211
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

FIGURA 16 - RESULTADO REFERENTE AO EXEMPLO 15

1.4

1.2

0.8

0.6

0.4

0.2

0
0 0.5 1 1.5 2
x
FONTE: Konzen (2018, p. 229)

A solução analítica deste problema é u(x) = sen(x). Agora, usando a


abordagem pelo método de diferenças finitas abordado nesta seção, obtemos o
seguinte problema discreto:

u1 = 0 ,
1 2 1
− 2
ui −1 + 2
ui − ui +1 = sen( xi ), i = 2 ,..., n − 1,
h h h2
un = sen( 2), (37), (38) e (39), respectivamente.

π
onde h = e xi = (i − 1)h. Resolvendo este sistema com h = 0,5 obtemos a solução
n −1
numérica apresentada na figura anterior. Temos ainda a comparação na norma
~
L2 da solução numérica u = (u1, u2, ..., un) com a solução analítica u(x) = sen(x) para
diferentes escolhas de h.

Uma segunda maneira de resolver um PVC consiste em determinar a


condição inicial desconhecida por meio de uma função entre esta condição inicial
desconhecida e a condição de contorno conhecida (PETERS; SZEREMETA, 2017),
conforme apresentaremos a seguir.

212
TÓPICO 2 | EQUAÇÕES DIFERENCIAIS ORDINAIS

6.2 MÉTODOS DE DETERMINAÇÃO DE UMA CONDIÇÃO


INICIAL EM FUNÇÃO DE UMA CONDIÇÃO DE CONTORNO
Para o PVC y’’= f(x, y, y’), x ϵ [a, b] com condições de contorno y(a) = v1
e y(b) = D conhecidos, a ideia é tentar adivinhar um valor inicial C para o y’(a)
desconhecido do PVI a seguir,

y'’ f(x, y, y’), x ϵ [a, b] com


y(a) = y1(a) = v1 e
y’(a) = y2(a) = C = ?

de modo que, depois de resolvido esse PVI, pelos métodos abordados na


seção anterior, a partir das condições iniciais (CI) atribuídas, possamos atingir a
condição de contorno (CC) y(b) = D conhecida. É o mesmo que determinar C da
equação erro(C) = z(C) - D = 0, em que:

a) y1 (b) = y(b) = Z (C) é o alvo atingido pela solução numérica da EDO, obtida a
partir de y(a) = y1(a) = v1 e y2(a) = y’(a) = C;
b) y1 (b) = y(b) = D é o alvo correto; e
c) Z(C) representa o cálculo da condição de contorno y1 (x = b), correspondente ao
alvo atingido, em função de uma condição inicial atribuída (mira) y2 (x = a) = C
por meio da solução numérica do respectivo sistema de PVIs.

Na solução de um PVC de segunda ordem aplicamos o chamado shooting


method, Método da tentativa e erro, com o qual calculamos a condição inicial
(mira) y2 (x = 0) = C por meio de correções baseadas no valor da condição de
contorno conhecida (alvo) y1 (x =1) = D. Por isso, esse método de tentativas é
chamado de shooting (tiro).

Usando um método para problemas de valor inicial, deixamos o sistema


evoluir até o ponto tf. Neste sentido, calculamos o erro em relação às condições de
contorno no ponto final, seguindo alguns parâmetros:
- Se o erro (todas as componentes) for menor que a tolerância, achamos a solução;
ou
- Se não, escolhemos um novo chute voltamos ao passo 2, isto é, aprenderemos a
“chutar”.

A partir de um conjunto de condições de contorno α = {α1, α2, ..., αn2},


queremos encontrar um novo conjunto que faça o erro diminuir, tal que:

α '= α + ∆α

Para isso, escolhemos Δα, tal que:

 ∂ε 
ε=  jij  =
J ∆α J = i
   ∂α 
 j

213
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

E aproximamos

( ) (
∂ε i ε i α1 ,...,α j + ∆α j ,...,α n2 − ε i α i ,...,α n2
=
)
∂α j ∆α j

Passos: solução de EDO de segunda ordem.

1º - escrevemos y” = F(x, y, y’) como 2 EDOs de ordem 1;


2º - as condições de contorno do problema são, portanto;
3º - chute inicial: dois valores iniciais para y’(x0), α1, α2;
4º - usamos, por exemplo, o método de Runge-Kutta para obter:
y1(xf , α1) e y1(xf , α2)
5º - calculamos o erro ε1,2 = y1,2(xf , α1,2);
6º - como a mudança no erro deverá ser contrária ao erro, caso contrário, temos
que:
7º - repetir o processo, desde o passo 4 até que |ε2| se torne menor que a tolerância.

Implementar o método “shooting” para EDOs lineares visa gerar boas


estimativas, compreender como as condições de contorno nas derivadas são
incorporadas ao método “shooting”; e aprender a resolver EDOs não lineares com
o método “shooting” por técnicas de localização de raízes para gerar estimativas
precisas.

Exemplo 16: utilizar o método Shooting para resolver a equação da


distribuição da temperatura para L = 10 m; h’ = 0.05 m-2; Tinf = 200 K; T(0) = 300 K e
T(10) = 400 K. O problema pode ser expresso por uma parte de EDOs de primeira
ordem:

dT dz dz
z
= − h '(T∞ − T )
= −0.05 ( 200 − T )
=
dx dx dx

Além do valor inicial de T(0) = 300 K, iremos arbitrar que za1= –5 K/m como
valor inicial para z(0). Podemos então utilizar o método RK quarta ordem para
calcular T(10) baseado nestes parâmetros. Assim:

dydt = @(x,y) [ y(2); -0.05*(200-y(1))];


tspan = [0 10]; y0 = [300; -5]; h = 1;
[tp,yp] = rk4sys(dydt,tspan,y0,h);

Obtemos, como resultado, que T(10) = 569.74. Faremos outro teste, agora
supondo que za1= –20 K/m .

214
TÓPICO 2 | EQUAÇÕES DIFERENCIAIS ORDINAIS

dydt = @(x,y) [ y(2); -0.05*(200-y(1))];


tspan = [0 10]; y0 = [300; -20]; h = 1;
[tp,yp] = rk4sys(dydt,tspan,y0,h);

O que nos fornece T(10) = 259.51. Podemos então usar a equação do


método de Shooting para estabelecer o valor inicial de za para que T(10) = 400 K
conforme estipulado.

z − za1
za1 + a 2
za = (T − Tb1 )
Tb 2 − Tb1 b
−20 − ( −5)
za =−5 + ( 400 − 569.75)
259.51 − 569.75
za = −13.20

Faremos outro teste, agora supondo que za1= –13.20 K/m.

dydt = @(x,y) [ y(2); -0.05*(200-y(1))];


tspan = [0 10]; y0 = [300; -13.20]; h = 1;
[tp,yp] = rk4sys(dydt,tspan,y0,h);

E agora conseguimos T(10) = 400.1486, o quê fecha com a condição de


contorno imposta. Agora temos a distribuição de temperatura na haste, conforme
a tabela a seguir:

TABELA 6 – RESULTADO DA DISTRIBUIÇÃO DE TEMPERATURA


za1 -5 Tb1 569.75
za2 -20 Tb2 259.51

za -13.20 T'b 400.15

FONTE: Roza (2016, p. 16)

215
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

FIGURA 17 – GRÁFICO DA DISTRIBUIÇÃO DE TEMPERATURA UTILIZANDO O MÉTODO RK4A ORDEM

FONTE: Roza (2016, p. 17)

DICAS

Para daber outrois detalhes sobre o Problema Presa-Predador, de Lotka &


Volterra, acesse o link <http://www.ime.unicamp.br/~rmiranda/wordpress/wp-content/
uploads/2015/12/PresaPred.pdf>.

E outros exemplos de problemas físicos com implementação em Matlab no link: <https://


fenix.ciencias.ulisboa.pt/downloadFile/1970462275928415/2-EDPs.pdf> .

216
TÓPICO 2 | EQUAÇÕES DIFERENCIAIS ORDINAIS

LEITURA COMPLEMENTAR

Este texto aplica-se às disciplinas: Métodos Numéricos e Cálculo


Numérico dos cursos da  área de ciências exatas, tais como Ciência da
Computação, Engenharias, Matemática,  Física, Licenciaturas correlatas, dentre
outros. Buscamos contemplar, de forma concisa, os  principais métodos de EDOs.
Sugerimos a Leitura Complementar:

PROBLEMA PRESA-PREDADOR

Alfred J. Lotka
Vito Volterra

É apresentado um caso comum na predição da população de duas


espécies, sendo uma delas a presa e a outra predadora, cuja população no tempo t
é dado por x(t) e y(t). Suponha que a presa sempre disponha de comida suficiente
e que sua taxa da natalidade seja proporcional à quantidade de presas vivas nesse
tempo, ou seja, a taxa de natalidade é c1x(t).

A taxa de mortalidade da presa depende do número de presas e de


predadores vivos nesse tempo, que podemos supor, na forma c2x(t)y(t). Por
outro lado, a taxa de natalidade do predador depende de sua disponibilidade
de comida x(t) e, também, do número de predadores disponíveis para processo
de reprodução.

Por tal razão, suponha que a taxa de natalidade dos predadores seja c3x(t)
y(t). Suponha que sua taxa de mortalidade seja proporcional à quantidade de
predadores vivos no tempo, ou seja, que a taxa de mortalidade dos predadores
seja c4y(t). Dado que x’(t) e y’(t) representam, a alteração nas populações de presas
e predadores no tempo, o problema se expressa por meio do sistema acoplado de
equações diferenciais não lineares:

=x '(t ) c1x(t ) − c2 x(t ) y(t )



 y '(t ) c3 x(t ) y(t ) − c4 y(t )
=
 x(0) x= y( 0 ) y 0
=
 0,

Resolva esse sistema para 0 ≤ t ≤ 4, usando o método de Runge-Kutta de


quarta ordem, supondo que x0 = 1000, y0 = 500, c1 = 3, c2 = 0.002, c3 = 0.0006, c4 = 0.5.
Faça o gráfico das soluções encontradas, registrando ambas as populações em
função do tempo, e descreva os fenômenos físicos encontrados.

Sugestão: O sistema pode ser resolvido simultaneamente ou determina-


se primeiro o número de presas x(t1) em (1)1, depois y(t1) em (1)2, usando x(t1).
Calculado y(t1) determine x(t2) em (1)1 usando y(t1) e assim sucessivamente.

217
UNIDADE 3 | INTEGRAÇÃO NUMÉRICA E EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

Solução: Observando o enunciado, não é ressaltado o valor de h. Logo,


propomos com h = 0.5.

 x ' =
3x − 0.002 xy = f (t , x , y ), x0 =
1000

y ' 0.0006 xy − 0.=
= 5 y g(t , x , y ), y 0 500
=

As fórmulas iterativas de Runge-Kutta para o passo de (xn,yn) à aproximação


seguinte (xn+1,yn+1) ≈ (x(tn+1), y(tn+1)) são:

h
xn+1 =xn + ( F1 + 2 F2 + 2 F3 + F4 )
6
h
yn+1 =yn + (G1 + 2G2 + 2G3 + G4 )
6

Em que:

F1 = f (tn , xn , yn )
 h h h 
F2 = f  tn + , xn + F1 , yn + G1 
 2 2 2 
 h h h 
F3 = f  tn + , xn + F2 , yn + G2 
 2 2 2 
F4 = f (tn + h , xn + hF3 , yn + hG3 )

Analogamente fazemos isso para G1, G2, G3 e G4.

218
TÓPICO 2 | EQUAÇÕES DIFERENCIAIS ORDINAIS

Então,

h 1
x1 =x0 + ( F1 + 2 F2 + 2 F3 + F4 ) =1000 + ( 2000 + 5775 + 6517.297 + 4640.0221) =4155.3865
6 6
h 1
y1 =y0 + (G1 + 2G2 + 2G3 + G4 ) =500 + (150 + 430 + 470.43592 + 665.56525) =786.00018
6 6

Assim, sucessivamente fazer até t8 = 4.

FONTE: PINHEIRO, Felipe Luís Pereira. 2010. Influência das Leis de Escala sobre Dinâmica de
Populações Dissertação de Mestrado - Universidade de Brasília, Instituto de Física. Brasília.

219
RESUMO DO TÓPICO 2

Neste tópico, você aprendeu que:

• Uma equação diferencial designa-se ordinária sempre que inclua apenas


derivadas em ordem a uma única variável independente.

• A ordem de uma EDO é dada pela maior ordem das derivadas presentes.
As EDOs são usadas numa grande variedade de problemas físicos. Alguns
exemplos envolvem tipos de equações, tais como: o movimento de fluídos,
circulação da corrente eléctrica, propagação de ondas e fluxos de calor.

• São ferramentas fundamentais para a modelagem matemática de vários


fenômenos físicos, químicos, biológicos e outros, quando esses fenômenos são
descritos em termos de taxa de variação

• A solução numérica de EDO visa métodos analíticos restritos apenas a algumas


formas especiais de função.

• Nem toda EDO tem solução analítica, mas os métodos numéricos não possuem
tal limitação.

• A solução numérica é obtida como uma tabela de valores da função para vários
valores da variável independente.

• A solução analítica é uma relação funcional.

• Praticamente qualquer EDO pode ser resolvida numericamente.

• Se as condições iniciais forem alteradas, toda a tabela deve ser recalculada.

• Os métodos numéricos para a solução de EDO, são sujeitas às condições iniciais.

• Vale ressaltar que os métodos de passo simples da família Runge-Kutta são


amplamente usados para resolver EDOs por fornecerem resultados precisos e
com baixo esforço computacional.

220
AUTOATIVIDADE

1 Considere o seguinte problema de valor inicial:

−u" + u' = f ( x ) , − 1 < x < 1,



 u ( −1) =0, 1 , x ≤ 0
 u' 1 f ( x) = 
 ( ) = 0, onde 0 , x ≤ 0

Use uma aproximação adequada pelo método de diferenças finitas


para obter o valor aproximado de u(0) com precisão de 2 dígitos significativos.

2 Determine a solução numérica aproximada da seguinte Equação Diferencial


Ordinária, com o passo h = 0.2:

 y '( x) + 2 y=
( x) 0 ∀x ∈ 0 ,1

 y(0) = 1

a) Método de Euler (Método das Tangentes):


b) Método de Euler Aperfeiçoado:
c) Método de Runge-Kutta de quarta ordem:
d) Método de Predição-Correção de quarta ordem:
e) Sabendo-se que a solução exata da equação é y(x) = e-2x, compare com as
soluções aproximadas obtidas nos itens anteriores:

3 Considere a equação diferencial ordinária, dada por:

 xy '( x) − x y( x) =
2
−2 0 ∀x ∈ 1, 2 

 y(1) = 3

Fazendo h = 0.1, determine a solução aproximada no ponto x = 1.5, usando o


método de Euler Aperfeiçoado.

4 Determine a solução numérica aproximada da seguinte Equação Diferencial


Ordinária, de segunda ordem, com o passo h = 0.2:

 y "( x) + y(=
x) 0 ∀x ∈ 0 ,1

 1
 y(0) 0=
= e y '(0)
 π

221
a) Método de Euler (método das Tangentes):
b) Método de Euler Aperfeiçoado:
1
c) Sabendo-se que a solução exata da equação é y(x) = sen (πx), compare
π2
com as soluções aproximadas obtidas nos itens anteriores.

5 Dado o PVI abaixo, considere h = 0.5 e 0.1 (no computador).

 y '= 4 − 2 x

 y(0) = 2.

Encontre uma aproximação para y(5) usando o método de Euler


aperfeiçoado, para cada h.

6 Use os métodos de Euler, Euler aperfeiçoado e Runge-Kutta de quarta ordem


com h = 0.2 e 0.025 (no computador) para encontrar y (2) sendo dado o PVI:

= y ' cos ( x ) + 1



 y ( 0 ) = −1.

7 Use os métodos de Euler, Euler aperfeiçoado e Runge-Kutta de quarta ordem


(no computador) com passo h = 0.2 e 0.025 para encontrar y (1.6) sendo dado
o PVI:

 1
 y '(=
x) ( 2 y + x + 1)
 x

 y(1) = 0 , 5.

8 Considere o PVI abaixo:

= y ' yx 2 − y
 com x ∈ 0 ,1
 y(0) = 1.

a) encontre a solução aproximada usando o método de Euler com h = 0.25 e h = 0.5.


b) idem, usando o método de Euler aperfeiçoado.
c) idem, usando Runge-Kutta de quarta Ordem.

222
REFERÊNCIAS
APROXIMAÇÃO DE FUNÇÕES. Método de Lagrange e Newton. Disponível
em:https://www.ppgia.pucpr.br/~jamhour/Download/pub/MatComp/5-
InterpolacaoPolinomial.pdf. Acesso em: 7 dez. 2018.

ARENALES, S.; DAREZZO, A. Aproximação de funções. In: Cálculo numérico:


aprendizagem com apoio de software. São Paulo: Cengage Learning, 2010. Cap.
IV, pg 127-188.

ARENALES, Selma; DAREZZO, Artur. Aproximação de funções. In: Cálculo


numérico: aprendizagem com apoio de software. São Paulo: Cengage Learning,
2010. Cap. IV, p. 127-188.

BARROSO, L. C.; BARROSO, M. D. A.; CAMPOS, F. F.; CARVALHO, M. D.;


MAIA, M. L. Cálculo numérico (com aplicações). São Paulo: Harbra, v. 384, 2.
ed., 1987.

BECKER, A. J. et al. Noções básicas de programação em MATLAB. Universidade


Federal de Santa Maria, 2010.

BELLON, Olga Regina. Métodos numéricos – notas de aula. Disponível em:


http://www.inf.ufpr.br/nicolui/grad/ci202/Docs/NotasAula/Cap-04.pdf. Acesso
em: 7 dez. 2018.

BORTOLI, A. L.; QUADROS, R. S. Fundamentos de cálculo numérico para


engenheiros. Porto Alegre: FBN, v. 361, 2009. Disponível em: https://docplayer.
com.br/23638821-Fundamentos-de-calculo-numerico-para-engenheiros.html.
Acesso em: 22 dez. 2018.

BURDEN, R. L.; FAIRES, J. D. Análise numérica. Thomson. São Paulo, 2003.

BURDEN, R. L.; FAIRES, J. D. Análise numérica. Tradução da 8. edição norte-


americana, Editora: Thomson Learning, 2008.

CASTRO, Pedro Machado Manhaes. Projeto de cálculo numérico: zeros de


funções. Disponível em: passeidireto.com/arquivo/6326998/projeto-numerico-
relatorio-zeros-de-funcoes. Acesso em: 21 out. 2019.

CAVALCANTI, Jorge. Material adaptado dos slides da disciplina cálculo


numérico da UFCG. Disponível em: http://www.univasf.edu.br/~jorge.
cavalcanti/4CN_Parte3_Comparacao.pdf. Acesso em: 7 dez. 2018.

CHAPRA, Steven C. Métodos numéricos aplicados com MATLAB® para


engenheiros e cientistas. 3. ed., AMGH Editora, 2013.

223
CHENEY, E. W.; KINCAID, D. R. Numerical mathematics and computing.
Cengage Learning, 2012.

CHERRI, Adriana; VIANNA, Andréa; BALBO, Antônio; BAPTISTA, Edméa.


Cálculo de zeros de funções reais. Disponível em: http://wwwp.fc.unesp.
br/~adriana/Numerico/Funcoes.pdf. Acesso em: 7 dez. 2018.

CIÊNCIAS. Modelação numérica DEGGE: Tema 3 – equações diferenciais


ordinárias. Universidade de Lisboa. Disponível em: https://fenix.ciencias.ulisboa.
pt/downloadFile/1970462275928415/2-EDPs.pdf. Acesso em: 4 jan. 2019.

FRANCO, N. B. Cálculo numérico. São Paulo: Pearson Prentice Hall. 2006.

GILAT, A.; SUBRAMANIAM, V. Métodos numéricos para engenheiros e


cientistas: uma introdução com aplicações usando o MATLAB. Porto Alegre:
Bookman, 2008.

GILAT, A.; SUBRAMANIAM, V. Métodos numéricos para engenheiros e


cientistas: uma introdução com aplicações usando o MATLAB. Bookman Editora,
2009.

GÓES, Duaymy BR et al. Desenvolvimento de interface em matlab para


aprendizado e comparação de métodos numéricos. Proceeding Series of
the Brazilian Society of Computational and Applied Mathematics, v. 3, n. 1,
2015. Disponível em: http://docplayer.com.br/11106971-Desenvolvimento-de-
interface-em-matlab-para-aprendizado-e-comparacao-de-metodos-numericos.
html. Acesso em: 7 dez. 2018.

GUIDI, Leonardo F. Cálculo Numérico. Disponível em: http://www.mat.ufrgs.


br/~guidi/grad/MAT01169/laminas.calculo_numerico.4.pdf. Acesso em: 21 out.
2019.

JORDAN, Gladys Castillo Jordán. Métodos numéricos. Disponível em: https://


sites.google.com/site/gladyscjmetnum/interpolacion. Acesso em: 12 nov. 2018.

JOSÉ, David Roza. Splines e interpolação por Partes - B. Instituto Federal


Catarinense. Disponível em: http://professor.luzerna.ifc.edu.br/david-jose/wp-
content/uploads/sites/25/2016/02/Aula-18-Splines-e-Interpolacao-por-Partes-B.
pdf. Acesso em: 7 dez. 2018.

JUSTO, D. A. R. Métodos numéricos para equações diferenciais – PPGMAP.


(2001). Disponível em: https://chasqueweb.ufrgs.br/~djusto/metnum/metnum.
pdf. Acesso em: 3 jan. 2019.

KILHIAN, Kleber. Polinômio interpolador de lagrange. Disponível em: https://


www.obaricentrodamente.com/2010/03/polinomio-interpolador-de-lagrange.
html. Acesso em: 7 dez. 2018.

224
KONZEN, P. H. A. Matemática numérica. 2018. Disponível em: https://phkonzen.
github.io/notas/MatematicaNumerica/main.pdf. Acesso em jan. 2019.

LIMA, L. R. O.; SILVA, J. G. S.; FERREIRA, A. R.; SILVA, S. M.; MATTOS, A.


R. Uma experiência didática com base no emprego do Matlab nos cursos
de graduação da Faculdade de Engenharia da UERJ. In: World Congress on
Engineering and Technology Education – WCETE 2004, Santos. World Congress
on Engineering and Technology Education – WCETE 2004. Georgia: Education
Society Publications – IEEE, v. 1. p. 1-5, 2004.

MENDONÇA, M. MATLAB Avançado – MTM/CFM-UFSC. Disponível em:


http://mtm.ufsc.br/~melissa/arquivos/matlabpet/apostila_curso_matlab.pdf.
Acesso em: 17 dez. 2018.

MONTEIRO, M. T. T. Métodos numéricos: exercícios resolvidos aplicados à


Engenharia e outras Ciências. pp. 1-192, 2012. Disponível em: <http://www.inf.
ufpr.br/kunzle/disciplinas/ci202/M%C3%A9todos%20Num%C3%A9ricos:%20
exerc%C3%ADcios%20resolvidos%20aplicados%20%C3%A0%20
Engenharia%20e%20outras%20Ci%C3%AAncias.pdf. Acesso em: 2 nov. 2018.

PETERS, S.; SZEREMETA, J. F. Cálculo numérico computacional: caderno de


algoritmos e caderno de exercícios e respostas. (acesso livre, 2017). Disponível em:
http://sergiopeters.prof.ufsc.br/livro-calculo-numerico-computacional/.Acesso em:
2 nov. 2018.

PETERS, S.; SZEREMETA, J. F. Cálculo numérico computacional: caderno de


algoritmos e caderno de exercícios e respostas. Disponível em: http://sergiopeters.
prof.ufsc.br/livro-calculo-numerico-computacional/. Acesso em: 2 nov. 2018.

PILLING, Sergio. Cálculo Numérico. Disponível em: https://www1.univap.br/


spilling/CN/CN_Capt2.pdf. Acesso em: 21 out. 2019.

QUARTERONI, A.; SALERI, F. Cálculo científico com MatLab e Octave. 2007.

ROZA, D. J. Problemas de valor de contorno – IFC (2016). Disponível em: http://


professor.luzerna.ifc.edu.br/david-jose/wp-content/uploads/sites/25/2016/02/
Aula-24-Problemas-de-Valor-de-Contorno.pdf. Acesso em: 4 jan. 2019.

RUGGIERO, M. A. G.; LOPES, V. L. R. Cálculo numérico, aspectos teóricos e


computacionais. São Paulo. McGraw-Hill, 1988.

RUGGIERO, M. A. G.; LOPES, V. L. R. Cálculo numérico: aspectos teóricos e


computacionais. São Paulo: Pearson Prentice Hall,1996.

RUGGIERO, M. A. G.; LOPES, V. L. R. Exercícios disponíveis. Disponível em:


http://wwwp.fc.unesp.br/~arbalbo/Iniciacao_Cientifica/interpolacao/teoria/3_
Splines.pd. Acesso em: 7 dez. 2018.

225
SEITI, A.; Ferreira, H.; Alves, M.; Zucolotto, R. Cálculo numérico A. Técnicas da
cálculo numérico para resolução de alguns problemas específicos. Universidade
Federal do ABC, 2016. Disponível em: https://slideplayer.com.br/slide/5254624/.
Acesso em: 21 fev. 2019.

STEINBRUCH, A.; WINTERLE, P. Álgebra linear. São Paulo: Pearson Makron


Books.1987.

STEINBRUCH, A.; WINTERLE, P. Álgebra linear. São Paulo: Pearson Makron


Books.1987

TADANO, Yara de Souza. Aulas e lista de exercícios. Disponível em: http://


paginapessoal.utfpr.edu.br/yaratadano/2014-2/calculo-numerico/aulas. Acesso em:
12 nov. 2018.

UNIVERSIDADE FEDERAL DE OURO PRETO – Cálculo numérico – notas de


aula. Ouro Preto: Universidade Federal de Ouro Preto, 2013. Disponível em:
http://www.decom.ufop.br/bcc760/material_de_apoio/notas_de_aulas/notas_
raizes.pdf>. Acesso em: 12 nov. 2018.

UNIVERSIDADE FEDERAL DE OURO PRETO. Instituto de Ciências Exatas e


Biológicas. Departamento de Computação Cálculo Numérico. Disponível em:
http://www.decom.ufop.br/bcc760/material_de_apoio/listas/lista_interpolacao.
pdf. Acesso em: 7 dez. 2018.

226

Você também pode gostar