Sei sulla pagina 1di 101

APOSTILA DE CLCULO NUMRICO

1.0
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0.0
0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

100

50
150
0

0.5
0.0

0.5

1.0
0.5

0.0

1.0
0.5

1.0

1.0

y
2

1.0
0.8
0.6

1
0.4
0.2
2.0

1.5

1.0

0.5

0.5

1.0

1.5

x
1

0.0
1

0.2
0.4

2
0.6

Wanderson Jos Lambert


Seropdica
Maio de 2014

10

Vaaaaai Curintia!!!!

Sumrio
1 Introduo
1.1 Srie de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Soluo de sistema lineares
2.1 Mtodo de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Implementao do Mtodo de Gauss . . . . . . . . . . . . . . . . . . .
2.2 Mtodo de Gauss com pivoteamento parcial . . . . . . . . . . . . . . . . . . .
2.2.1 Implementao do Mtodo de Gauss com Pivoteamento . . . . . . . .
2.3 Decomposio LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1 Implementao do Mtodo da Decomposio LU para matrizes . . .
2.4 Mtodos iterativos: Ponto fixo, erros, norma de matriz e outras coisas mais
2.4.1 Mtodo do Ponto fixo linear e erros . . . . . . . . . . . . . . . . . . . .
2.4.2 Norma de Vetores e Matrizes . . . . . . . . . . . . . . . . . . . . . . .
2.5 Mtodo de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.1 Implementao do Mtodo de Jacobi . . . . . . . . . . . . . . . . . . .
2.6 Mtodo de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6.1 Implementao do Mtodo de Gauss-Seidel . . . . . . . . . . . . . . .
2.7 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8 Projeto: Sistemas lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5
7
8

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

9
11
14
15
18
20
23
24
25
28
30
34
36
38
40
43

3 Mtodos para o clculos de razes de funes


3.1 Mtodo da Biseco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 Implementao do Mtodo da Biseco . . . . . . . . . . . . . . . . . . .
3.2 Mtodo de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Taxa de Convergncia do Mtodo de Newton: Assumindo convergncia
3.2.2 Implementao do Mtodo de Newton . . . . . . . . . . . . . . . . . . .
3.3 Mtodo da Secante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Implementao do Mtodo da Secante . . . . . . . . . . . . . . . . . . .
3.4 Extenso do Mtodo de Newton para funes vetoriais . . . . . . . . . . . . . .
3.4.1 A implementao do Mtodo de Newton p-dimensional . . . . . . . . .
3.5 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6 Projeto: Encontrar razes de funes . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

45
46
51
53
55
57
59
60
63
65
68
69

4 Interpolao Polinomial
4.1 Unicidade da expanso polinomial . . . . . .
4.2 Mtodo de Lagrange . . . . . . . . . . . . . .
4.3 Diferenas Divididas de Newton . . . . . . .
4.4 Splines Cbicas . . . . . . . . . . . . . . . . .
4.5 Exerccios . . . . . . . . . . . . . . . . . . . . .
4.6 Projeto: Interpolao de Funes Polinomiais

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

71
75
76
80
82
83
84

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

SUMRIO

5 Ajuste de Curvas e Otimizao


85
5.1 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.2 Projeto: Ajuste de Curvas e Otimizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6 Derivao Numrica
89
6.1 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.2 Projeto: Derivao Numrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
7 Integrao Numrica
93
7.1 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
7.2 Projeto: Integrao Numrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
8 Equaes Diferenciais Ordinrias
97
8.1 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
8.2 Projeto: Equaes Diferenciais Ordinrias . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

Captulo 1

Introduo
Um curso de clculo numrico talvez no seja a primeira oportunidade que o aluno tem de utilizar-se
do computador para resolver aspectos importantes dos problemas que aparecem no clculo e lgebra
linear, mas o curso que torna tais conceitos numricos mais organizados e uma primeira tentativa
a fim de tornar este processo rigoroso.
Neste curso, no pretendemos nos aprofundar em nenhum tpico especificamente, mas procuraremos cobrir os principais aspectos do clculo numrico, introduzindo os mtodos e fazendo algumas
demonstraes intuitivas a cerca dos mesmos. Apesar do curso ser organizado para um pblico geral:
matemticos, fsicos, qumicos, engenheiros, e afins, acreditamos que um certo rigor necessrio no
momento da introduo dos mtodos, sem, entretanto, que tal rigor tire o foco do material que de
ser introdutrio e tratar o clculo numrico como uma ferramenta a ser utilizada para resolver problemas prticos. Na seo de bibliografia so listados vrias referncias que discorrem esses conceitos de
maneira mais rigorosa e aprofundada.
Como matemtico, aprendi a no acreditar em tudo que eu vejo; aprendi a desconfiar da beleza das
solues; aprendi a no confiar, cegamente, no mtodo que se coloca a minha frente. Como cientistas ou
usurios de ferramentas numricas para o clculo de problemas exatos, temos que ter perfeita confiana na soluo que encontramos, para tanto conhecermos, pelo menos rudimentos, das demonstraes
e rigor realmente bastante importante.
Neste texto, no farei nenhuma meno questo de erros de arredondamento como uma sesso
particular. Entretanto, quando trabalhamos com questes numricas tais erros de arredondamento
devem ser levados em conta. Devemos ter cincia disso, pois muitas vezes tais erros podem prejudicar
sobremaneira nossa soluo dando-nos respostas bastante erradas.
Hoje em dia, os computadores servem-se de uma memria bastante grande de modo que todos os
clculos so feitos com muitos dgitos significativos e os erros de arredondamento so, para a maioria
dos problemas prticos, bastante reduzidos. Mas seria uma temeridade dizer que eles no existem.
Ao longo do texto, procurarei chamar ateno desses aspectos em alguns momentos quando necessrio, sem, no entanto, me alongar por demasia nessas questes.
Vale lembrar que para cada uma dos assuntos a seguir, existem muitos outros mtodos. Seria
impossvel num cursos de um semestre atingir todos os mtodos e trat-los com todo o rigor necessrio.
Dessa forma fizemos uma escolha: apresentar os mtodos principais em cada seo.
Fizemos a opo de ao invs de trazermos os algoritmos, em cada subsesso, que descreve cada
um dos mtodos, trazemos o algoritmo implementado em Matlab. O mesmo contm instrues de uso
atravs de um pequeno tutorial como utiliz-lo.
O texto organizado como segue:
1. Captulo 1. Discutimos a soluo de sistemas lineares quadrados. Admitimos que a matriz dos
coeficientes associada ao sistema linear no singular, ou seja, o sistema possua soluo nica.
Apresentaremos mtodos diretos, de decomposio de matrizes e mtodos iterativos.
2. Captulo 2. Discutimos mtodos para se encontrar razes de funes reais e de funes vetoriais.
5

CAPTULO 1. INTRODUO
Todos os mtodos apresentados so, basicamente, iterativos. Aqui discutiremos, brevemente, o
mtodo de Taylor para a linearizao de funes reais.
3. Captulo 3. Neste captulo discutimos os mtodos usados para a interpolao de pontos, ou seja,
dado um conjunto de n pontos qual o melhor polinmio ou funo que melhor se ajusta a esses
pontos. Discutimos polinmio e splines. Note que os mtodos de interpolao servem para nos
dar condies de fazermos previses sobre valores que esto dentro do domnio dos pontos de
interpolao, entretanto, tal tcnica muito ruim para querermos fazer previses sobre pontos
que esto fora do domnio do domnio, ou seja, de extrapolarmos os pontos, fato este que discutido
no captuloa seguir.
4. Captulo 4. Neste captulo, desenvolvemos, brevemente, o conceito, bastante importante, de
dado um conjunto de pontos, qual a curva, de um determinado grau, que se ajusta melhor a
estes pontos. Observe que este conceito diferente do estudado no Captulo 3, pois aqui no
h necessidade das curvas interpolarem os pontos, apenas de ser uma melhor aproximao. Tal
conceito chamado mais geralmente de Mtodos dos Mnimos Quadrados. Ele a tcnica mais
usada em problemas experimentais pois atravs do ajuste de curvas possvel extrapolar fora
do domnio dos pontos, diferentemente dos mtodos de interpolao que no permitem uma boa
extrapolao.
5. Captulo 5. Discutimos aqui a derivao e a aproximao de derivadas numericamente. As
tcnicas so particularmente baseadas no mtodo de Taylor para a linearizao de funo.
6. Captulo 6. Neste captulo, seguindo a mesma linha do captulo anterior iremos aplicar o mtodo
de Taylor para a linearizao das funes a proposio dos mtodos numricos. Tambm utilizaremos mtodos de quadratura que constituem-se mtodos de uma melhor preciso e aparecem
de modo mais refinado. Neste captulo, fazemos uma breve introduo sobre a ideia terica da
introduo do conceito de integral, bem como a ideia de partio que ser particularmente til
para o estudo da resoluo de equaes diferenciais ordinrias.
7. Captulo 7. Aqui, fazemos a soluo de Equaes Diferencias Ordinrias (inclusive para sistemas) atravs de tcnicas aproximativas. Utilizamos de uma modelao matemtica para transformar equaes diferenciais ordinrias de ordem mais alto em sistemas de equaes afim de
aplicarmos as tcnicas desenvolvidas anteriormente.

Vale notar que o texto est sendo organizado aos poucos, portanto, alteraes podem ocorrer ao longo
do semestre. Em todas as sesses e subsesses so dados algoritmos implementados em matlab para
cada um dos mtodos introduzidos. Estude adequadamente os mtodos para obter-se os algoritmos.
A cada final de captulo, coloquei uma breve lista de exerccios, que foram retiradas, basicamente
da referncia [1]. Caso queira, poder procurar, em livros de clculo numrico, mais exerccios para
aprofundamento da matria que mais lhe interessar.
No final de cada sesso tambm colocado um projeto a ser desenvolvido. O aluno poder entregar
todos os projetos. Cada projeto vale um ponto na prova, alm da nota, na prova que corresponde.
para ser feito em grupo, os detalhes constam em cada projeto.
Como sequncia do texto, aqui, discutimos um mtodo bastante til em clculo numrico que a
expanso de Taylor. No nos aprofundaremos muito em tal tcnica, mas discutiremos brevemente
sua aplicao.

1.1. SRIE DE TAYLOR

1.1 Srie de Taylor


A ideia principal da srie de taylor a seguinte questo:
Ser que possvel escrever uma funo f : D R R, em sries de potncias em torno de um
ponto c D, ou seja,

f ( x) =

an ( x c)n ?

(1.1)

i=0

Queremos que essa srie de potncia seja convergente para um raio de convergncia R, ou seja, admi

timos que a srie

an (x c)n converge para |x c| < R.

i=0

Definio 1. O valor positivo R dito raio de convergncia para a srie de potncia

an ( x c)n .

(1.2)

i=0

Se a srie converge para todo | x c| < R e no converge para nenhum | x c| > R.


Vamos tentar e ver quais condies temos que impor sobre a funo f para que a mesma possa
ser escrita como uma srie do tipo (1.1). Olhando para (1.1) sabemos que f deve satisfazer para todo
x D.
f ( x) = a0 + a1 ( x c) + a2 ( x c)2 + a3 ( x c)3 + a4 ( x c)4 + .
(1.3)

Como (1.3) vlido para todo x, em particular vlido para x = c, ou seja, :

f ( x) = a0 + a1 (c c) + a2 (c c)2 + a3 (c c)3 + a4 (c c)4 + ,


ento
a0 = f (c).
sabido, que uma srie de potncias pode ser derivada (ou integrada) quantas vezes necessrias sobre
o seu raio de convergncia, ento, derivando (1.3) uma vez, obtemos:
f ( x) = a1 + 2a2 ( x c) + 3a3 ( x c) + 4a4 ( x c)3 + .

(1.4)

Substituindo x = c em (1.4), ns obtemos:


f (c) = a1 + 2a2 (c c) + 3a3 (c c) + 4a4 (c c)3 + ,
ento
a1 = f (c).
Procedendo com o mesmo algoritmo, podemos derivar (1.4) uma vez. Observe que o grau do polinmio
vai caindo:
f ( x) = 2a2 + 2 3a3 ( x c) + 3 4a4 ( x c)2 + 4 5a5 ( x c)3 .
(1.5)
Substituindo x = c em (1.4), ns temos, aps os clculos: ento
a2 =

f (c)
.
2!

Sendo bastante reduntante, com o mesmo algoritmo, podemos derivar (1.5) uma vez. Observe que o
grau do polinmio vai caindo que os coeficientes multiplicando cada ai so decrescentes e da forma
i (i 1)(i 2) (2)(1) = i!:
f ( x) = 3!a3 + 2 3 4a4 ( x c) + 3 4 5a5 ( x c)2 + 4 5 6a6 ( x c)3 .

(1.6)

CAPTULO 1. INTRODUO

8
Substituindo x = c em (1.6), ns temos, aps os clculos: ento
a3 =

f (c)
.
3!

Apresentando este algoritmo, indutivamente, conseguimos descobrir que


 n 
f n (c)
d
f (c).
an =
, no qual f n (c) =
n!
dxn

(1.7)

Note que se n = 0, ento a funo no fazemos nenhuma derivao.


Ento a srie de Taylor (1.1) em torno do ponto c pode ser escrita como:

f ( x) =

i=0

f n (c)
f (c)
( x c)n = f (c) + f (c)( x c) +
( x c)2 + .
n!
2!

(1.8)

Entretanto, muitas vezes queremos apenas uma aproximao da srie de Taylor, pois muito difcil
representarmos, em problemas cotidianos, todos os termos da srie. Ento truncamos a srie e expandimos apenas at um certo ndice k. A pergunta : Qual o erro cometido?
possvel mostrar,( veja referncias [1], [2]), que uma srie de Taylor pode ser escrita da seguinte
forma:
k
f n (c)
( x c ) n + Rk ,
(1.9)
f ( x) =
n!
i=0
no qual Rk o erro cometido. Tal erro dado por:
Rk =

f n+1 ( ( x))
( x c)n+1 .
(n + 1)!

(1.10)

Vale observar que no temos condies, em geral, de dizer quem ( x). Quando estudamos erro, em
geral utilizamos o pior caso possvel para fazer uma estimativa (o maior erro possvel que poderia
aparecer).
Dessa forma, a srie de Taylor escrita, contabilizando tal erro, como:
k

f ( x) =

i=0

f n+1 ( ( x))
f n (c)
( x c)n +
( x c)n+1 .
n!
(n + 1)!

(1.11)

Observao 1. Note que a o erro bem pequeno para valores de x bem prximos de c. Portanto, para
valores de x prximos de c precisamos reter apenas poucos termos da srie e erro tende a zero da ordem
de | x c|n+1 , ou seja, vai para zero bem rapidamente.
A srie de Taylor pode ser facilmente extendida para dimenso espacial n qualquer, entretanto,
quando for necessrio (se for necessrio) faremos a apresentao da srie de Taylor para a respectiva
dimenso.

1.2 Exerccios
Exerccio 1: Encontre a srie de Taylor das funes em torno dos pontos indicados:
a) f ( x) = e x , em torno de c = 1.
3
b) f ( x) = xe x , em torno de c = 0.
c) f ( x) = cos( x), em torno de c = .
d) f ( x) = x4 + 2x3 + x2 + 1, em torno de c = 10.
e) f ( x) = x4 sen( x), em torno de c = 0.
f ) f ( x) = ln( x), em torno de c = 1.

Captulo 2

Soluo de sistema lineares


Inicialmente estamos interessados na resoluo de sistema lineares. Sistemas lineares aparecem muitas vezes na nossa rotina de matemticos, fsicos, engenheiros, gelogos, etc. Em geral, tais sistemas
so muito grandes e clculos manuais tornam-se impraticveis, portanto, a soluo numrica indispensvel.
Existem muitos pacotes fechados (ou seja, programas nos quais o usurio no tem condies de
modificar a estrutura do programa, entra apenas com o que se quer resolver) tais como Matlab, Mathematica, Scilab, etc; e calculadoras cientficas como HP. Entretanto, conhecer-se a arquitetura de como
tais programas so estruturados bastante importante, alm disso, muitas vezes precisamos de fato
implementar tais mtodos para resolver problemas grandes ou que exibam particularidades que, atravs de uma anlise mais crtica, possam ter sua soluo facilitada.
Definio 2. Um sistema linear consiste-se de um grupo de m equaes com n incgnitas. Tais incgnitas so definidas como x1 , x2 , , xn . O grupo de equaes escrito como:
a11 x1 + a12 x2 + + a1n xn = b1 ,

a21 x1 + a22 x2 + + a2n xn = b2 ,


..
..
..
.
.
.

. = ..,
am1 x1 + am2 x2 + amn xn = bm ,

(2.1)
(2.2)

O sistema linear (2.1) pode ser escrito na forma matricial como:


(2.3)

AX = B,
no qual A a matriz dos coeficientes:

A=

a11
a21
..
.

a12
a22
..
.

am1

am2

a1n
a1n
..
.
amn

(2.4)

X = ( x 1 , x2 , , xn ) T o vetor de incgnitas (observe que o sobreescrito T indica que o vetor est


transposto, ou seja, est de p. Lembre-se T (teso) deixa tudo que est deitado de p...), e B =
( b1 , b2 , , bn ) T .
Em nosso curso, iremos tratar apenas do caso em que o sistema linear quadrado.
Definio 3. Dizemos que um sistema linear quadrado se a quantidade de equaes exatamente
igual a quantidade de incgnitas, o que quer dizer que n = m. Note que neste caso a matriz dos
coeficientes A quadrada, ou seja, o nmero de linhas igual o nmero de colunas.
9

10

CAPTULO 2. SOLUO DE SISTEMA LINEARES

Alm disso, vamos admitir que o sistema linear (2.1) possua soluo nica. Os casos em que o
sistema no possua nenhuma soluo ou possua infinitas solues esto fora do escopo desse primeiro
curso introdutrio de clculo numrico. Uma anlise mais detalhada pode ser encontrada em livros
mais avanados de clculo numrico, listados nas referncias.
Sabemos de lgebra linear que para um sistema quadrado ter soluo nica, basta que a matriz dos
coeficientes A seja no singular. H vrias formas de verificar se uma matriz no singular, todas elas,
igualmente dificeis e a verificao, basicamente, depende de tcnicas de decomposio e fatorao de
matrizes. Algumas propriedades que exibem as matrizes quadradas no singulares so: determinante
da matriz A no zero; a matriz A pode ser invertida; a matriz A pode ser fatorada numa matriz
triangular com os elementos da diagonal principal todos diferentes de zero; etc..
Existem vrios mtodos para utilizados para a soluo de sistemas lineares.
Neste curso, estudaremos trs diferentes tipos mais utilizados:
1. Mtodo de Gauss - Mtodo direto para a soluo do sistema. Um dos mtodos mais utilizados,
inclusive em cursos de lgebra linear.
2. Mtodo de Gauss com pivoteamento parcial - O pivoteamento uma tcnica utilizada para evitar
que os erros de arredodamento se propagem muito para o sistema. Pode ser usado em sistemas
de equaes para os quais as equaes tenham ordens muito diferentes.
3. Mtodo de decomposio LU - Neste mtodo decompomos a matriz A = LU, no qual L uma
matriz triangular inferior e U uma matriz triangular superior, basicamente, neste mtodo utilizamos o mtodo de Gauss acima. Existem muitas outras formas de decompor uma matriz, tais
como decomposio A = PLU. Decomposio de Cholesky, caso a matriz seja definida positiva.
Mas aqui nos concentraremos apenas na decomposio LU que a mais usada e que serve, inclusive, para o caso em que a matriz seja singular.
4. Mtodos iterativos de Jacobi e Gauss-Seidel - Estes mtodos so bastante lentos para serem
aplicados a sistemas pequenos, entretanto so bem interessantes para sistemas grandes para os
quais a matriz dos coeficientes diagonalmente dominante e esparsa. Daremos tais definies
nas sees que se seguem.
Vale ressaltar que existem muitos outros mtodos para a resoluo de sistemas lineares. Alguns
deles levando-se em conta particularidades da matriz dos coeficientes, tais como: positividade, simetria, esparsidade, tridiagonalidade, etc. Sugerimos que quando o leitor deparar-se com a resoluo de
sistemas lineares grandes e com particularidades que ele procure as boas referncias dadas no final
do texto e procure l mtodos mais adequados as suas necessidades. A rea do clculo numrico
bastante rica e bem desenvolvida.
A parte de sistema linear est organizada em Sees: Mtodo de Gauss; mtodo de Gauss com
pivoteamento parcial; decomposio LU. Para a introduo dos mtodos iterativos construimos uma
seo no qual damos a ideia do ponto fixo para mtodos iterativos e discutimos, brevemente, a noo
de norma de vetores e de matrizes. Posteriormente discutimos os mtodos de Jacobi e Gauss-Seidel.

2.1. MTODO DE GAUSS

11

2.1 Mtodo de Gauss


Este mtodo consiste em transformar a matriz dos coeficientes A numa matriz triangular superior
atravs de operaes elementares.
Definio 4. Uma matriz A dita triangular superior se os elementos abaixo da diagonal principal
so todos nulos. Uma matriz A dita triangular inferior se os elementos acima da diagonal principal
so todos nulos. Caso os nicos elementos no nulos da matriz estejam ao longo de sua diagonal ela
tanto triangular superior quanto triangular inferior. Neste caso dizemos que a matriz diagonal.
Definio 5. Operaes elementares so aquelas operaes feitas sobre matrizes para os quais podemos substituir uma linha (ou coluna, mas neste caso iremos trabalhar apenas com linhas) por uma
combinao linear de outras linhas ou permutao entre linhas. Tal processo no modifica a natureza
da matriz, ou seja, se a matriz for no singular inicialmente ela continuar no singular. Caso seja
singular ela continuar singular. Note-se apenas que no possvel nessas operaes multiplicar uma
linha ou coluna pelo nmero zero, pois ele torna a matriz singular.
A ideia transformar a matriz quadrada numa matriz do tipo triangular superior da forma:

a 11 a 12 a 13 a 1n1 a 1n
0 a 22 a 23 a 2n1 a 2n

0
0 a 33 a 3n1 a 3n

(2.5)
0
0
0 a 44

a 4n

.
.
..
..
0
0
0
0
0
0
0
0
a nn

no qual os a i j (com i, j variando de 1 at n com i j) so os coeficientes obtidos apartir das operaes


elementares sobre a matriz.
Para aplicar o algoritmo de Gauss, os passos so simples:
Primeiro passo: Construo da matriz aumentada do sistema (2.1):
Definio 6. A matriz aumentada a matriz formada pela matriz dos coeficientes A e com a ultima
coluna formada pelo vetor do lado direito de (2.1) B = (b1 , b2 , , bn ) T , da seguinte forma:

a11 a12 a1n | b1


a21 a22 a2n | b2

A= .
(2.6)

..
..
..

.
.
an1 an2 ann | bn
Segundo passo: Inicialmente devemos zerar todos os elementos da primeira coluna que esto abaixo
da primeira linha. Para isto vamos utilizar um piv.

Definio 7. Dada uma matriz A qualquer da forma (2.4), chamamos de piv da i-sima linha, o
primeiro elemento no nulo da linha a partir da esquerda. No texto, usaremos apenas a palavra piv,
a linha estar subentendida.
Caso o elemento a11 seja diferente de zero, este ser o nosso piv. Caso ele seja zero, devemos trocar
a posio entre a primeira linha e alguma linha que no tenha um elemento no nulo. Sempre existir
esta linha com elemento no nulo, pois a matriz no singular. Uma dica, quando for fazer esta troca,
procure trocar pela linha que possui o elemento de maior mdulo, pois o mtodo utilizado ser mais
estvel.
Aps as devidas trocas de linha, caso necessrio e admitindo que a11 seja diferente de zero, procedemos com a eliminao dos elementos ai1 para i = 2, 3, , n (ou seja, os elementos abaixo da primeira
linha). Para isto basta procedermos assim, para i = 2, 3, , n:


a1i
L1 ,
(2.7)
Li Li
a11

CAPTULO 2. SOLUO DE SISTEMA LINEARES

12

ou seja, trocamos a linha i pela linha i subtrada da linha 1 multiplicada por a1i / a11 .
Aps este primeiro passo a matriz fica da forma:

a11 a12 a1n | b1


(1)
(1)
(1)

0 a22 a2n | b2
,
A=
..
..
..

.
.
.

(1)

an2

(1)

ann

(2.8)

(1)

| bn

no qual o sobrescrito (1) indica que o coeficiente no o original e sim aquele trocado por aquele
somado, ou seja, os novos elementos so dados por


a1i
(1)
a1 j .
ai j = ai j
a11

Prximos passos: O processo repetido. Note que aps a primeira rodada de operaes so introduzidos os zeros da primeira coluna. No segundo passo ser necessrio fazer operaes para introduzir os
(1)
zeros na segunda coluna abaixo da segunda linha. Caso a22 seja no nulo este ser o piv, entretanto,
caso este seja zero, deveremos, novamente, buscar um elemento diferente de zero na segunda coluna,
sempre existir pois, por hiptese, estamos admitindo que a matriz A no singular. Procedendo como
anteriormente, para i = 3, 4, , n fazemos:
!
(1)
a2i
L2 ,
(2.9)
Li Li
(1)
a22

o que nos d uma matriz da forma:

A=

a11
0
0
..
.

a12
(1)
a22
0

a13
(1)
a23
(2)
a33
..
.
(2)
an3

no qual temos, como anteriormente,


(2)
ai j

(1)
ai j

(1)

a1i

(1)
a11

a1n
(1)
a2n
(2)
a3n
..
.
(2)

ann
!

| b1
(1)
| b2
(2)
| b3
(2)

| bn

(2.10)

(1)

a1 j .

Esse passo feito no mximo n 1 vezes. Aps a aplicao desses para as n 1 colunas (note que
a ltima no precisar ser modificada), encontramos uma matriz aumentada que da forma:

a 11 a 12 a 13 a 1n1 a 1n | b 1
0 a 22 a 23 a 2n1 a 2n | b 2

0
0 a 33 a 3n1 a 3n | b 3

(2.11)
0
0
0 a 44

a 4n | b 4

.
.
.
..
..
..
0

0
0
0
0
0
0
0
a nn | b n
ou seja, o sistema linear torna-se:

a 11 x1 + a 12 x2 + a 13 x3 + + a 1n1 xn1 + a 1n xn = b 1
a 12 x2 + a 23 x3 + + a 2n1 xn1 + a 2n xn = b 2

a 33 x3 + + a 3n1 xn1 + a 3n xn = b 3
..
..
.
..
.
.

. = ..
a nn xn = b n .

(2.12)

2.1. MTODO DE GAUSS

13

O subescrito em cada coeficiente indica que esta matriz foi operada quantas vezes necessria para
torn-la uma matriz triangular superior. O sistema (2.12) exatamente equivalente ao sistema original (2.1).
Definio 8. Para encontrar a soluo basta resolv-lo debaixo para cima, tal tcnica chamada de
retrossubstituio. Note que fcil obter a soluo desta forma, pois:
xn =
xn1 =
..
.

b n
,
a nn
b n1 a n1n xn
..
.,

a nn

(2.13)
(2.14)

(2.15)

b a 1n xn a 12 x2
.
x1 = 1
a 1

(2.16)

Exemplo 1. Resolva o sistema


x1 3x2 + 4x3 + 2x4 = 8

2x1 + x 2 + 3x3 x4 = 2
3x1 + 2x2 + 2x3 + 2x4 = 3

(2.17)

2x1 x2 x3 + x4 = 7

pelo mtodo de Gauss.


Para resolver, inicialmente criamos a matriz dos coeficientes C, com a matriz aumentada, M

1
2
C=
3
2

3 4
2
1
3 1
,
2
2
2
1 1 1

1
2
M=
3
2

3 4
2
8
1
3 1 2
,
2
2
2 3
1 1 1
7

(2.18)

Procedendo para tornar a matriz C, uma matriz triangular superior, operamos sobre a matriz aumentada M. A primeira coisa a fazer introduzir zeros na primeira coluna abaixo da primeira linha.
Note que o piv (que o elemento da primeira linha e primeira coluna) a ser usado para tornar os elementos abaixo da primeira linha da primeira coluna todos zero 1. No ser necessrio fazer nenhuma
permutao de linhas.
Ento procedendo as operaes fazemos:
L2 2L1 L2,

L3 3L1 L3

and

L4 2L1 L4.

(2.19)

obtemos a matriz aumentada M como:

1
0
M=
0
0

3
4
2
8
7
5 5 14

11 10 4 27
5
9 3 9

(2.20)

Como prximo passo, introduzimos zeros abaixo da segunda linha e segunda coluna. O piv a ser
utilizado para o segundo passo ser 7.
Note que no mexemos mais na linha 1. Ento procedendo as operaes fazemos:
L3

(11)
L L3
(7) 2

and

L4

(5)
L L4.
(7) 2

(2.21)

CAPTULO 2. SOLUO DE SISTEMA LINEARES

14
obtemos a matriz aumentada M como:

1
0

M= 0

3
7
0
0

4
5
15

7
38

2
5
15
7
4
7

8
14

(2.22)

Finalmente, devemos introduzir zeros abaixo da terceira linha e terceira coluna. Observe que o piv
15
agora ser . Dessa forma procedemos com o seguinte clculo:
7
L4

(38)/(7)
38
L3 L4, ou seja, L4
L3 L4
(15)/(7)
15

(2.23)

o que nos fornece:

1
0

M= 0

3
7
0
0

4
5
15

7
0

2
5
27
7
46

8
14

41
3

Aps estes clculos, o sistema equivalente pode ser escrito como:


x1 3x2 + 4x3 + 2x4
7x2 5x3 5x4
27
15
x3 + x4
7
7
46
x4
5

=8
= 14
= 5
=

41
3

Aplicando retro-substituio encontramos:


27
x4
47
7
x3 =
x3 =
,
15
138
7
76
14 + 5x3 + 5x4
x2 = ,
x2 =
7
23
167
x1 = 8 + 3x2 4x3 2x4 x1 =
.
69
205
x4 =
,
138

2.1.1
%
%
%
%
%

5+

Implementao do Mtodo de Gauss

function x = Gauss(A, b)
Resolve o sistema linear Ax = b
usando eliminao de Gauss
A uma matriz n por n
b o vetor do lado direito da forma b=(b1,b2,...,bn)^T
x o vetor a ser encontrado

[n, n] = size(A);
x = zeros(n,1);

% Descobre a ordem da matriz A


% Inicializa x

(2.24)

2.2. MTODO DE GAUSS COM PIVOTEAMENTO PARCIAL

15

for i = 1:n-1
m = -A(i+1:n,i)/A(i,i); % Encontra a razo entre os elementos divididos pelo pivo.
A(i+1:n,:) = A(i+1:n,:) + m*A(i,:);
b(i+1:n) = b(i+1:n) + m*b(i);
end;
% Usando retro-substituicao para encontrar a solucao.
x(n) = b(n)/A(n,n);
for i = n-1:-1:1
x(i) = (b(i) - A(i,i+1:n)*x(i+1:n))/A(i,i);
end

2.2 Mtodo de Gauss com pivoteamento parcial


O mtodo de Gauss com pivoteamento o mesmo mtodo de Gauss, entretanto, utilizado quando
existem diferenas muito grande entre as linhas e equaes do problema. Por exemplo, suponha que
voc queiramos resolver um sistema linear simples 2x2:
0, 003x1 + 59, 14x2 = 59, 17
5, 291x1 6, 130x2 = 46, 78

(2.25)
(2.26)

Verifique que este sistema possui como soluo exata x1 = 10 e x2 = 1. Para tanto basta substituir
esses valores em (2.25) e (2.26).
Entretanto, suponhamos que queiramos resolver pelo mtodo de Gauss. Dessa forma a matriz
aumentada do sistema acima ser:


0, 003 59, 14 59, 17
.
(2.27)
5, 291 6, 130 46, 78
Note que o piv para da primeira linha 0, 003, que apesar de pequeno diferente de zero. Para
proceder os clculos, imaginemos que queiramos ao invs de utilizar os valores exatos, que usemos
uma aproximao do valor. Para a aproximao temos dois tipos de formas de aproximar um nmero:
truncamento e arredondamento.
Definio 9. Uma operao de truncamento de trs dgitos significativos aquela para o qual so
pegados apenas 3 dgitos aps a vrgula, desconsiderando-se o valor do quarto dgito aps a vrgula.
Exemplo: Truncamento do nmero 0, 0346843 ser de 0, 034.
Definio 10. Uma operao de arredondamento de trs dgitos significativos aquela para o qual
so pegados os 2 primeiros dgitos significativos e o terceiro dgito depende do valor do quarto dgito
aps a vrgula, se o quarto dgito for maior ou igual a 5, ser acrescido um ao terceiro dgito, caso o
quarto dgito seja menor do que 5 o terceiro dgito mantido inalterado. Exemplo: Arredondamento do
nmero 0, 0346843 ser de 0, 035.
Vamos utilizar um arredodamento de 3 casas aps a vrgula. Ento procedendo a decomposio de
Gauss, devemos fazer a seguinte operao:
L2

5, 291
L1 L2 .
0, 003

Neste caso, a segunda linha fica dada por:


L2 = (0;

104289, 6633333333

104383, 2133333333 ) T

Usando trs casas decimais aps a vrgula para o arredondamento, aproximamos L2 por:
L2 = (0;

104289, 663

104383, 213 ) T

CAPTULO 2. SOLUO DE SISTEMA LINEARES

16

Note que esta aproximao, a nossos olhos, parece muito boa. Ento o sistema linear, com as aproximaes, fica da forma:
0, 003x1 + 59, 14x2 = 59, 17
104289, 663x2 = 104383, 213

(2.28)
(2.29)

Ento da Eq. (2.29), encontramos


x2 =

104383, 663
1.000897020829380,
104289, 213

o qual pode ser aproximado, com 3 casas decimais aps a vrgula, por x2 = 1.001. Observe que este
valor est bem prximo do valor exato x2 = 1 que a soluo exata do nosso sistema.
Ento, substituindo x2 = 1.001 em (2.28) obtemos:
0, 003x1 + 59, 14(1, 001) = 59, 17, x1 =

59, 17 59, 199


= 9.667.
0, 003

(2.30)

Note que a soluo x1 = 9.667 totalmente diferente da soluo original do problema que x1 = 10.
A questo que surge : Por que isto aconteceu? Veja a Figura (2.1.a), no qual fazemos o desenho de
cada uma das retas definidas por (2.25) e (2.26). A reta azul obtida de (2.25), escrevendo-se x1 em
funo de x2 . A reta vermelha obtida de (2.26), escrevendo-se tambm x1 em funo de x2 . Note que
h uma variao muito grande na reta azul, a vermelha est, nesta escala, praticamente sobre o eixo
x.
Isto ocorreu porque o piv utilizado no primeiro nvel de clculo foi (em mdulo) muito pequeno
(0, 003) comparado com os outros nmeros do sistema. Note que na primeira operao dividimos L2 por
este valor. Isto introduz erros numricos que podem se acumular e acabamos no tendo controle sobre
isto.
Como devemos proceder? Como na primeira coluna o nmero 5, 291 maior do que o nmero
0, 003 permutamos a L1 com L2 para obtermos a seguinte matriz (note que o sistema o mesmo a ser
resolvido):


5, 291 6, 130 46, 78
.
(2.31)
0, 003 59, 14 59, 17
Vamos utilizar um arredodamento de 3 casas aps a vrgula. Ento procedendo, como anteriormente,
a decomposio de Gauss, devemos fazer a seguinte operao:
L2

0, 003
L1 L2 .
5, 291

Neste caso, a segunda linha fica dada por:


L2 = (0;

59, 143475713475716

59, 143475713475716 ) T

Surpreendentemente, os valores com 15 casas decimais aps a vrgula exatamente o mesmo. Usando
trs casas decimais aps a vrgula para o arredondamento, aproximamos L2 por:
L2 = (0;

59, 143

59, 143 ) T

Ento o sistema linear, com as aproximaes, fica da forma:


5, 291x1 6, 130x2 = 46, 78

59, 143x2 = 59, 143,

ento, imediatamente, temos que x2 = 1. Substituindo na primeira equao, nos d:


5, 291x1 6, 130(1) = 46, 78 5, 291x1 = 52, 91 x1 = 10.

2.2. MTODO DE GAUSS COM PIVOTEAMENTO PARCIAL

17

x2

x1
18000

16000

0
1

14000

10

11

x1

1
12000
2

10000
8000

6000

4000

2000
6
0
0.1
2000

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

1.1

x2

Figura 2.1: a)- Esquerda. A reta azul obtida de (2.25), escrevendo-se x1 em funo de x2 . A reta vermelha obtida de (2.26), escrevendo-se tambm x1 em funo de x2 . Note que h uma variao muito
grande na reta azul, a vermelha est, nesta escala, praticamente sobre o eixo x. b)- Direita. A reta azul
obtida de (2.25), escrevendo-se x2 em funo de x1 . A reta vermelha obtida de (2.26), escrevendose tambm x2 em funo de x1 . Nesta estratgia, as duas retas tem um crescimento praticamente
parecido e bem melhor comportado.

Note que a soluo encontrada foi exata. Veja a Figura (2.1.b), no qual fazemos o desenho de cada uma
das retas definidas por (2.25) e (2.26). A reta azul obtida de (2.25), escrevendo-se x2 em funo de
x1 . A reta vermelha obtida de (2.26), escrevendo-se tambm x2 em funo de x 1 . Note que agora
houve um comportamento bem menos abrupto da soluo, e as retas tem uma ordem de crescimento,
praticamente igual.
Por que agora o mtodo de Gauss funcionou? Funcionou pois foi aplicado o que chamamos de
Pivoteamento Parcial O Pivoteamento parcial uma tcnica muito simples. Basta em cada nvel
de fatorao, sempre fazermos as permutaes necessrias para tornarmos o piv como sendo o maior
elemento, em mdulo, de cada coluna.
Neste caso o algoritmo de Gauss ficar modificado para os seguintes passos:
Primeiro passo: Como no mtodo de Gauss, inicialmente construmos a matriz aumentada do sistema (2.1), dada por (2.6).
Segundo passo: Inicialmente devemos zerar todos os elementos da primeira coluna que esto abaixo
da primeira linha. Para isto vamos utilizar um piv. Entretanto antes de zerar esses elementos,
devemos escolher um piv bem adequado. Para isto queremos o maior nmero (em mdulo) possvel.
Ento fazemos uma busca, na primeira coluna, do maior elemento em mdulo. Se este maior elemento
(em mdulo) est na k-sima linha (,ou seja, | a1 j | | a1k | para j = 1, 2, , n), trocamos a L1 com Lk ,
mantendo as outras linhas originais sem mudar de lugar.
Aps as devidas trocas de linhas, o sistema que temos equivalente ao sistema original. Para facilitar nossa notao renomeamos os elementos novamente como elementos da linha 1 como a1i para
i = 1, 2, , n, elementos da linha 2 como a2i para i = 1, 2, , n e assim sucessivamente. Para procedemos com a eliminao dos elementos a1i para i = 2, 3, , n (ou seja, os elementos da primeira
coluna abaixo da primeira linha). Para isto basta procedermos assim, para j = 2, 3, , n:
Li Li

a1i
a11

L1 ,

ou seja, trocamos a linha i pela linha i subtrada da linha 1 multiplicada por a1i / a11 .

(2.32)

CAPTULO 2. SOLUO DE SISTEMA LINEARES

18

Aps este primeiro passo a matriz fica da forma:

a11 a12
(1)

0 a22

A= .
..
.
..
0

(1)

an2

a1n
(1)
a2n
..
.
(1)

ann

| b1
(1)
| b2

(1)
| bn

(2.33)

no qual o sobrescrito (1) indica que o coeficiente no o original e sim aquele trocado por aquele
somado, ou seja, os novos elementos so dados por


a1i
(1)
a1 j .
ai j = ai j
a11
Prximos passos: O processo repetido. Note que aps a primeira rodada de operaes so introduzidos os zeros da primeira coluna. No segundo passo ser necessrio fazer operaes para introduzir os
zeros na segunda coluna abaixo da segunda linha. Entretanto antes de zerar esses elementos, devemos
proceder como anteriormente e escolher um piv bem adequado. Para isto queremos o maior nmero
(em mdulo) possvel. Ento fazemos uma busca, na segunda coluna, do maior elemento em mdulo.
Se este maior elemento (em mdulo) est na k-sima linha (,ou seja, | a2 j | | a2k | para j = 2, 3, , n),
trocamos a L2 com Lk , mantendo as outras linhas originais sem mudar de lugar.
Aps as devidas trocas de linhas, o sistema que temos equivalente ao sistema original. Para
facilitar nossa notao renomeamos os elementos novamente elementos da linha 2 como a2i para i =
2, 3, , n, elementos da linha 3 como a3i para i = 2, 3, , n e assim sucessivamente. Note que a
posio a1i = 0 para i = 2, 3, , n em todas as linhas.
Para procedemos com a eliminao dos elementos a2i para i = 3, 4, , n (ou seja, os elementos
da segunda linha coluna abaixo da segunda linha). Para isto basta procedermos assim, para i =
3, 4, , n:
!
(1)
a2i
L2 ,
(2.34)
Li Li
(1)
a22
o que nos d uma matriz da forma (2.10). Esse passo feito no mximo n 1 vezes. Aps a aplicao
desses para as n 1 colunas (note que a ltima no precisar ser modificada), encontramos uma matriz
aumentada que da forma (2.11) que nos fornece o sistema da forma (2.12). Aqui no h diferena
do processo do mtodo de Gauss, pois o pivoteamento parcial foi utilizado apenas para tornar a matriz
dos coeficientes uma matriz diagonal superior. A soluo obtida por retrossubstituio dada pela
definio 8.

2.2.1

Implementao do Mtodo de Gauss com Pivoteamento

function x = GaussPP(A,b)
%
%
%
%

Resolve o sistema linear Ax = b usando eliminao de Gauss com pivoteamento


A uma matriz n por n
b o vetor do lado direito da forma b=(b1,b2,...,bn)^T
x o vetor a ser encontrado

n = size(A,1);
A = [A,b];

%obtendo o tamanho da matriz A;


%Cria a matriz aumentada.

%Processo de eliminao inicia

2.2. MTODO DE GAUSS COM PIVOTEAMENTO PARCIAL

19

for i = 1:n-1
p = i;
%Comparao para selecionar o pivo, observe que faz-se uma comparao
%entre os elementos que so maiores em valores absolutos.
for j = i+1:n
if abs(A(j,i)) > abs(A(i,i))
U = A(i,:);
A(i,:) = A(j,:);
A(j,:) = U;
end
end
%verificando se os pivos no so nulos.
while A(p,i)== 0 & p <= n
p = p+1;
end
if p == n+1
disp(Sem soluo unica); % neste caso o mtodo para, pois no est adequado pa
% matriz que no tenham soluo unica.
break
else
if p ~= i
T = A(i,:);
A(i,:) = A(p,:);
A(p,:) = T;
end
end
for j = i+1:n
m = A(j,i)/A(i,i);
for k = i+1:n+1
A(j,k) = A(j,k) - m*A(i,k);
end
end
end

%Checando se a ultima entrada no zero. (isto serve para garantir que o mtodo tenha s
if A(n,n) == 0
disp(Solucao nao unica);
return
end
%Retro-substituicao
x(n) = A(n,n+1)/A(n,n);
for i = n - 1:-1:1
sumax = 0;
for j = i+1:n
sumax = sumax + A(i,j)*x(j);
end
x(i) = (A(i,n+1) - sumax)/A(i,i);
end

CAPTULO 2. SOLUO DE SISTEMA LINEARES

20

2.3 Decomposio LU
Queremos fator a matriz A como um produto de duas outras matrizes na forma A = LU no
uma matriz triangular inferior U uma matriz triangular superior, ou seja,

1
0
0
0 0
u11 u12 u13 u1n1

l
0
0 0
a11 a12 a1n

21 1
0 u22 u23 u2n1
l31 l32 1
0 0
0
a21 a22 a2n
0 u33 u3n1

..
..
= .
0
..

..
.
.
0
0 u44

.
.
.
1

0
.
.

.
.
.
.

..

.
.
.
.
.
..
. . ..
0
0
0
0
an1 an2 ann
..
0
0
0

0
ln1 ln2 ln3
1

qual L
u1n
u2n
u3n
u4n
..
.
unn

(2.35)

Observe que a vantagem de poder quebrar A = LU que o sistema (2.3) poder ser resolvido para
qualquer b diferente, sem que haja necessidades de se aplicar o mtodo de Gauss toda vez. Ento, para
resolver o sistema basta:
Ax = b, LUx = b.
(2.36)
Quebramos a soluo em duas. Primeiro definimos y = Ux e resolvemos, por substituio o sistema:

1
0
0
0 0
y1
b1
l21 1
0
0 0

y2

b2
l31 l32 1

0
0

y
b

3
3

.
..
..
..
Ly = b,
=
(2.37)

.
.
.. ..
.
.
1 0

.
..
.
..
..
. .. yn1 bn1
.
yn
bn
ln1 ln2 ln3
1

da seguinte forma:

y 1 = b1 ,
y2 = b2 y1 l21 ,
..
.

(2.38)

yn = bn y1 ln1 y2 ln2 yn1 lnn1 .


Encontrado o vetor y, podemos encontrar o vetor x resolvendo o sistema por retrossubstituio

x1
u11 u12 u13 u1n1 u1n
y1
0 u22 u23 u2n1 u2n x2 y2

0 u33 u3n1 u3n


x3 y3

Ux = y, 0
=
(2.39)

0
0 u44

u4n .. ..

.
.

..
..
0
.
. xn1 yn1
0
0
0
0
0
0
0
unn
xn
yn

da seguinte forma:

yn
,
unn
y
xn un1n
= n1
,
un1n1

xn =
xn1
..
.

xn xn u1n xn1 u1n1 x 2 u12


.
x1 =
u11

(2.40)

2.3. DECOMPOSIO LU

21

A decomposio da matriz segue os mesmos princpios da decomposio de Gauss. Isso ocorre, pois,
possvel atravs de operaes elementares (ou seja, operaes sobre as linhas da matriz) transformar
A numa matriz triangular superior atravs do mtodo de Gauss. Cada operao elementar pode ser
expressa atravs de uma matriz chamada de matriz de operaes elementares o qual denotada
por M( i) . Por exemplo, para deixar a matriz A da forma (2.8) basta multiplicar a matriz A pela matriz
elementar M( 1) como M( 1) A = A( 1) , e obtemos a matriz A( 1):

1
21
aa11
..
.
aan1
11

0
1

..
.

0
0
..
.
1

a11
a21
..
.

a12
a22
..
.

an1

an2

a1n
a2n
..
.
ann

,=

a11
0
..
.

a12
(1)
a22
..
.

an2

(1)

a1n
(1)
a2n
..
.
(1)

ann

(2.41)

Multiplicando a matriz A( 1) pela matriz M( 2) como M( 2) A( 1) = A( 2) , temos:

1
0

..
.

(1)

(1)

0
0
..
.

..

0
1

a 32

a 22

..
.

(1)

a n2

(1)
a 22

0
0
..
.
.

a11

.
..
..
.

a12
(1)
a22
..
.
(1)

an2

a1n
(1)
a2n
..
.
(1)

ann

,=

a11
0
0
..
.

a12
(1)
a22
0

a13
(1)
a23
(2)
a33
..
.

an3

(2)

a1n
(1)
a2n
(2)
a3n
..
.
(2)

ann

(2.42)

Note que a matriz M( i), para a i-esima operao, esta associada a i-esima coluna e tem a sempre a
forma:

1 0

0
0

0 1

0
0

..
..

.
.

0
0
0

(i1)

..
..
a i +1i
0
1
.
.
(2.43)
(i1)

a ii

.
..
.
..
..
. ..
.
0

(i1)

a ni
0 (i1) 0 1
a ii

Atravs dessa anlise, como devemos colocar zeros abaixo da primeira linha e primeira coluna, abaixo
da segunda linha segunda coluna, abaixo da terceira linha e terceira coluna e assim, sucessivamente,
teremos n 1 matrizes (pois a ltima coluna no mexemos). Ento para conseguirmos escrever a
matriz A como uma matriz triangular superior U, basta multiplicar A pelas matriz M( i) e temos:
M( n1) M( n2) M( 1) A = U.

(2.44)

Como sabemos que toda matriz de transformao elementar invertvel, podemos inverter o produto
( M(n1) M(n2) M(1) )1 = ( M(1) )1 ( M(2) )1 ( M(n1) )1 , que uma matriz triangular inferior,
desta forma a matriz A pode ser escrita como:
A = ( M( 1) )1 ( M( 2) )1 ( M( n1))1 U,

(2.45)

ento a matriz definimos a matriz L = ( M( 1) )1 ( M( 2) )1 ( M( n1))1 . Note que muito simples de


encontrar a matriz inversa ( M( i) )1 para todo i, pois basta pegar a mesma matriz ( M( i) ) e inverter o

CAPTULO 2. SOLUO DE SISTEMA LINEARES

22

sinal, ou seja, a inversa da matriz ( M( i) ) dada por (2.43) :

1
0
..
.
0
..
.
0

0
1
0

..
.
(i1)

a i +1i

(i1)

a ii

..
.

(i1)

a ni

(i1)

a ii

0
0

0
0

0
..
.

0
..
.

..

..
.

Fazendo o produto ( M( 1) )1 ( M( 2) )1 ( M( n1))1 , ento a matriz L finalmente dada por:

1
0

0
0
a21

0
0
a11

(1)
..
a 32
..

0
0

(1)
a 22

(i1)
..
..
a i +1i
ai+11

.
.
1

a11
(i1)

a ii
.
..
..
..
.

.
.
.
.

(n 2)
(i1)
an1

a nn 1
a ni
1

(i1)
(n 2)
a 11
a ii

(2.46)

(2.47)

a n 1n 1

E a matriz U a matriz triangular superior obtida atravs da decomposio de Gauss.


Acabamos de provar o seguinte teorema:

Teorema 1. Se uma matriz quadrada A pode ser colocada na forma triangular superior atravs do
mtodo de Gauss sem que haja necessidade de pivoteamento e nenhum elemento da diagonal principal
nulo, ento A pode ser decomposta na forma A = LU, no qual L uma matriz triangular inferior com
elementos todos iguais a 1 na diagonal principal e U uma matriz triangular superior.
Exemplo 2. Vamos decompor a matriz C dada por (2.18) como um produto C = LU. Para fazer isto,
basta notar que j fizemos a decomposio de Gauss. Ento a matriz L ser formada pelos nmeros que
foram multiplicados pelas linhas com os sinais trocados. A primeira coluna da matriz L ser formada
pelos nmeros que usados em (2.19) com o sinal trocado, ou seja, a primeira coluna ser (1, 2, 3, 2) T. A
segunda coluna da matriz L ser formada pelos nmeros usados em (2.21) com o sinal trocado, ou seja,
(0, 1, 11/7, 5/7) T. A terceira coluna da matriz L ser formada pelo nmero usado em (2.23) com o sinal
trocado, ou seja, (0, 0, 1, 38/15) T. A matriz U ser a matriz resultante da operao, ou seja:

1 3
4
2
1 0
0 0
0 7
2 1
5
5
0 0

27
U = 0 0 15
(2.48)
L = 3 11
,

1
0

7
7
7

5
46
38
2
0 0
0

1
7
15
5
Se quisermos resolver o sistema (2.17) utilizando esta tcnica resolvemos inicialmente:

1 0
0 0

y1
8
2 1

0
0

y2
= 2
3 11

1
0

y3
3

5
38
y4
7
2
1
7
15

(2.49)

2.3. DECOMPOSIO LU

23

que, atravs de (2.38) nos d como soluo:


y1 = 8,
y2 = 2 8 2 = 14,
y3 = 3 3 8 + 14(11/7) = 5,
 
38
41
5
+5
=
.
y4 = 7 8 (2) + 14
7
15
3
Agora devemos resolver Ux = y, ou seja,

1 3
4
0 7

15
0 0

0 0
0

2
5
27
7
46

Resolvendo (2.50) por retrossubstituio temos:


41
205
46
x4 =
,
x4 =
5
3
138


8
x1

14
x2
=

x 3 5

41
x4
3

27
x4
47
7
,
x3 =
15
138
7

5+
x3 =

76
14 + 5x3 + 5x4
x2 = ,
7
23
167
x1 = 8 + 3x2 4x3 2x4 x1 =
.
69
x2 =

2.3.1

Implementao do Mtodo da Decomposio LU para matrizes

function [L,U]=LUfactor(A)
%
%
%
%
%
%
%

Mtodo de fatorao para uma matriz A


de nxn.
A fatorada como A = L*U
Sada
L uma matriz triangular inferior com os elementos da diagonal
principal todos valendo 1.
U a matriz triangular superior obtida atravs do sistema.

[n,n]=size(A);
L=eye(n);
for k=1:n
if (A(k,k) == 0) Error(Pivoteamento necessrio); end
L(k+1:n,k)=A(k+1:n,k)/A(k,k);
for j=k+1:n
A(j,:)=A(j,:)-L(j,k)*A(k,:);
end
end
U=A;

(2.50)

CAPTULO 2. SOLUO DE SISTEMA LINEARES

24

2.4 Mtodos iterativos: Ponto fixo, erros, norma de matriz e


outras coisas mais
Suponhamos que queiramos resolver a seguinte equao bastante simples:
(2.51)

10x = 10.

Todo mundo sabe que a resposta para esta equao x = 1, no h segredo. Entretanto, podemos
propor um mtodo numrico iterativo dado recursivamente atravs da seguinte manipulao:
Metodo 1.
9x + x = 10,

9x ( n+1) = 10 x ( n)

definimos a iterao

ou

x( n+1) =

10 x( n)

.
9
9

(2.52)

Para comear a iterao necessrio um chute inicial. Caso este chute seja bem dado a soluo pode
ou no convergir rapidamente. Vamos, inicialmente fornecere como chute inicial x ( 0) = 0. Dessa forma,
atravs da relao estabelecida acima (2.52) encontramos x( 1) como:
x(1) =

10
10 x( 0)

, x( 1) =
.
9
9
9

(2.53)

A distancia entre x( 0) e x ( 1) dada por:





10
10
| x(0) x(1) | = 0 =
.
9
9

(2.54)

Aplicando sucessivamente, temos, x( 2) como:


x(2) =

80
10 x( 1)
10 10

, x( 2) =
2 = 2.
9
9
9
9
9

(2.55)

A distancia entre x( 1) e x ( 2) dada por:




10 80
10
| x(1) x(2) | = 2 = 2 .
9
9
9

(2.56)

Aplicando sucessivamente, temos, x( 3) como:


x(3) =

10 80
10 x( 2)
730

, x( 3) =
3 = 3 .
9
9
9
9
9

(2.57)

A distancia entre x( 2) e x ( 3) dada por:

|x

(2)

(3)



80 730
10

| = 2 3 = 3 .
9
9
9

(2.58)

Observe que podemos aplicar, sucessivamente este critrio e teremos que x( n) tender a 1 quando n vai
para o infinito pois a distncia entre termos consecutivos xn1 e x ( n) satisfaz a seguinte lei:

| xn1 x( n) | =

10
.
9n

(2.59)

E a pergunta relevante : Quando devemos parar a iterao?


A iterao deve ser feita at voc encontrar o nmero necessrio com a preciso exigida. Por exemplo,
se vc quer obter a soluo do problema acima tal que a distncia entre dois termos consecutivos seja de

2.4. MTODOS ITERATIVOS: PONTO FIXO, ERROS, NORMA DE MATRIZ E OUTRAS COISAS MAIS25
104 , perceba que na n-sima iterao o erro entre termos consecutivos dado por 10/9n . Portanto, para
saber at quando vc ir iteragir basta ento encontrar n tal que | x n1 x( n) | < 104 |, ou seja, :
10
5
< 104 , 105 < 9n
< n.
9n
log(9)

(2.60)

A ltima desigualdade foi obtida passando logaritmo e log (9) o logaritmo de 9 na base 10 que
aproximadamente 0.9542. Ento basta iterar 6 n, para atingir a preciso exigida.
Metodo 2. Vamos pensar no mesmo problema, s que mudando o mtodo:
9x + x = 10,

definimos a iterao

x ( n+1) = 10 9x( n) .

(2.61)

Vamos, inicialmente fornecer como chute inicial x ( 0) = 0. Dessa forma, atravs da relao estabelecida
acima (2.61) encontramos x( 1) como:
x( 1) = 10 9x( 0), x( 1) = 10.

(2.62)

A distancia entre x( 0) e x ( 1) dada por:

| x(0) x(1) | = |0 10| = 10.

(2.63)

Aplicando mais uma vez temos, x ( 2) como:


x( 2) = 10 9x( 1) , x( 2) = 10 90 = 80.

(2.64)

A distancia entre x( 1) e x ( 2) dada por:

| x(1) x(2) | = |10 (80)| = 90.

(2.65)

Aplicando sucessivamente, temos, x( 3) como:


x( 3) = 10 9(80), x( 3) = 730.

(2.66)

A distancia entre x( 2) e x ( 3) dada por:

| x(2) x(3) | = |80 730| = 810.

(2.67)

Observe que podemos aplicar, sucessivamente este critrio e teremos que x( n) nunca tender a 1 quando n
vai para o infinito pois a distncia entre termos consecutivos xn1 e x( n) est cada vez mais aumentando.
E a pergunta relevante : Por que o Mtodo 1 funcionou e o Mtodo 2 no funcionou?

2.4.1

Mtodo do Ponto fixo linear e erros

Tais mtodos so casos particulares de problemas iterativos chamados de mtodo do ponto fixo. O
mtodo do ponto fixo est baseado numa metodologia bastante utilizada em clculo numrico que
do clculo recursivo. Imagine que tenhamos uma sequncia de pontos x( n) para n = 1, 2, 3, dada
recursivamente atravs da relao
x( n+1) = f ( x( n) ),
(2.68)
no qual f : D R R uma funo qualquer (o argumento vlido se a funo f : D Rm R( n) ),
observe que D o domnio da funo. Caso f seja uma contrao uniforme, ou seja, para todo x, y D
exista uma constante 0 K < 1 tal que

| f ( x) f ( y)| < K | x y|,

(2.69)

CAPTULO 2. SOLUO DE SISTEMA LINEARES

26

possvel mostrar que (2.68) possui um ponto fixo, ou seja, existe um x tal que satisfaa:
x = f ( x ).

(2.70)

Neste caso, dizemos que a sequncia x( n) dada por (2.68) convergente, ou seja,
x = lim x( n+1) = lim f ( x( n) ) = f ( lim x( n) ) = f ( x ),
n

(2.71)

Para o caso linear, consideremos uma funo f ( x ( n) ) = Tx( n) + c, no qual T e c so nmeros (mais tarde
faremos a extenso para T sendo uma matriz).
Neste caso o nosso mtodo iterativo torna-se:
x( n+1) = Tx( n) + c,

(2.72)

Aplicando x( n) de modo iterativo acima temos:


xn+1 = Tx( n) + c = T ( Txn1 + c) + c = T ( T ( Txn2 + c) + c) + c =

x( n+1) = T n+1 x( 0) + T n+1 c + T n c + T n1 c + + Tc + c

x( n+1) = T n+1 x( 0) + ( T n+1 + T n + T n1 + + T + 1)c.

(2.73)

Observe que ( T n+1 + T n + T n1 + + T + 1) uma soma de termos geomtricos de razo T. A soma


dos n+1 primeiro termos dada pela frmula:
n+1

i=0

T i = T n+1 + T n + T n1 + + T + 1 =

1 T n+1
1T

(2.74)

Ento temos de (2.73) a seguinte identidade:


x( n+1) = T n+1 x( 0) +

1 T n+1
c.
1T

(2.75)

Note que so podemos tomar n se | T | < 1. Caso 1 | T | a srie no converge. Tomando limite
de n em (2.74) temos que lim n T n+1 = 0 e:
1

Ti = 1 T .

(2.76)

i=0

Ento se | T | < 1 e tomando limite n , temos que o mtodo converge e vale:


lim x( n+1) = x = lim T n+1 x( 0) + lim

T i c = 1 T c, x (1 T ) = c x = Tx + c,
n
i=0

(2.77)

ou seja, x um ponto fixo do mtodo iterativo (2.72).


Acabamos de provar o seguinte teorema:
Teorema 2. Dado um sistema iterativo da forma (2.72) ele convergir para um ponto fixo x , i.e.,
x = Tx + c somente se | T | < 1. Caso | T | > 1 ento o mtodo divergir.
O teorema 2) explica porque o Mtodo 1 converge e o Mtodo 2 diverge. Note que no Mtodo 1
T = 1/9 e no Mtodo 2 T = 9.
Definio 11. O mtodo iterativo dever ser realizado at uma tolerncia ou erro mximo sejam
atingidos. Por tolerncia, entendemos, o mximo erro admitido para encontrar-se a raiz. E denotamos
tal tolerncia como tol. Note que tol > 0.

2.4. MTODOS ITERATIVOS: PONTO FIXO, ERROS, NORMA DE MATRIZ E OUTRAS COISAS MAIS27
Definio 12. Definimos como erro absoluto o valor numrico para o qual a soluo encontrada difere
(n)
da soluo exata. Note que se x a soluo exata ento o erro, denotado por Er abs na i-sima iterao
definido como:
(i)

Er abs = || x x( i) ||.

(2.78)

Entretanto, muito mais til trabalhar com o erro relativo. Se || x || > 0, ento
(i)

Errel =

|| x x(i) ||
,
|| x ||

(2.79)

pois, se por exemplo, x for muito grande e o valor de tol > 0 muito pequeno, o valor demorar muito a
ser obtido. Vamos considerar um caso ilustrativo.
Suponha, para um problema, que a soluo correta seja x = 10000000, e coloquemos como tolerncia tol = 0, 01, ento o mtodo ir parar apenas quando x( i) estiver dentro do intervalo (9999999, 99; 10000000, 01).
Entretanto, para mtodos aproximativos isso poder ser muito demorado. uma Uma soluo do tipo
100000001 j uma excelente aproximao, o erro relativo, ser em torno de 10( 7).
O erro relativo tambm funciona bem se x bem pequeno. Imagine se a soluo correta x (0, 0001),
e colocamos uma tolerncia de 0, 01, ento a soluo a ser atingida menor do que o prprio erro.
Como, muitas vezes, no temos controle sobre este fato, sempre preferimos utilizar o erro relativo.
Atravs do mtodo acima podemos provar o seguinte teorema:
Teorema 3. O mtodo iterativo Eq. (2.77), fornece uma sequncia de pontos x( i) tal que dois valores
consecutivos da sequncia tem a distncia dada por | x( i+1) x( i) | = | T |n (|1 T || x ( 0) | + |c|) (Eq. (2.80)
( i +1 ) x ( i ) | = | T | n (| 1 T || x ( 0 ) | + | c |). Alm disso
abaixo). Se x( 0) =
0, ento a distncia reduz-se a | x


n



c
e se x( 0) = 0, ento | x x( i) | = cT .
| x(i) x | = | T n | x(0) +
1 T
1 T
Prova: Note pelo mtodo iterativo de (2.77)

1 Tn
T n T n+1
1 T n+1
c ( T n x(0) +
c) = ( T n+1 T n ) x( 0) +
c
x( i+1) x( i) = T n+1 x( 0) +
1T
1T
1T




1T
x( i+1) x( i) = T n ( T 1) x ( 0) +
c = T n ( T 1) x(0) + c
1T

| x(i+1) x(i) | = | T |n (|(1 T ) x(0) + c|).

Note de (2.80) que se o chute inicial x( 0) for 0, ento temos que | x ( i+1) x( i) | = | T |n |c|.
Agora o erro, dado por | x ( i) x | satisfaz:




1

1 T n
c
| x x(i) | =
( T n x(0) +
c) = | T n | x( 0) +
.
1T
1T
1 T


cT n
.

Note que se x( 0) = 0, ento o erro dado por | x x( i) | =
1 T

(2.80)

(2.81)

Definio 13. O nmero de iteraes para se atingir a preciso desejada, entendido como o nmero
de vezes que devemos fazer os clculos tal que o erro, seja menor do que uma determinada tolerncia,
tol, ou seja,
|| x x(i) ||
Eriabs =
< tol
|| x ||

Dessa forma qualquer x ( x tol || x ||, x + tol || x ||) admitido como soluo do problema.

CAPTULO 2. SOLUO DE SISTEMA LINEARES

28

Observao 2. Todo algoritmo iterativo deve ser colocado um nmero mximo de iteraes para o qual
o mtodo pode ser executado. Isso necessrio, pois, caso o mtodo no convirja os clculos podero ser
feitos sem parar (por exemplo,se T > 1) e o mtodo nunca ir atingir nenhum valor. Dessa forma definimos Nmero mximo de iteraes como sendo o maior nmero de iteraes admitido no processo
iterativo. Muitas vezes, caso esse nmero seja atingido o mtodo no converge. Caso haja confiana no
mtodo, basta aumentar esse nmero de iteraes. Para mtodos no convergentes, o nmero mximo
de iteraes sempre ser atingido para uma tolerncia dada.

(i)
Observao 3. Ento note
pelo Teorema
3 que a diferena entre x , x , que o erro, tem como valor


c
numrico | x ( i) x | = | T n | x( 0) +
e que a distncia entre dois termos consecutivos x ( i) e x( i+1)
1 T

| x(i+1) x(i) | = | T |n (|1 T || x(0) | + |c|), ou seja, tais diferenas so bastante similares. Entretanto, do
ponto de vista computacional muito mais fcil quantificar a distncia entre dois pontos consecutivos.
Ento como vamos admitir que uma raiz satisfaz uma tolerncia exigida tol sempre que tivermos dois
termos consecutivos distando no mximo de tol || x ( i+1)|| (erro relativo) um do outros, ou seja, se tivermos
i tal que
|| x(i+1) x(i) ||
< tol,
(2.82)
|| x(i+1)||

ento dizemos que atingimos a tolerncia exigida. Note que xi+1 diferente de zero, pois a nica
possibilidade desse termo ser zero caso c tambm fosse zero, a a nica soluo seria a trivial.

2.4.2

Norma de Vetores e Matrizes

Tal ideia pode ser extendida para o caso de matrizes. Entretanto, ser necessrio generalizar a noo
de mdulo de um nmero. Como uma matriz pode ser entendida como um vetor de vetores, ento, a
noo natural de distncia que surge para matriz a noo de norma. Por exemplo, se tivermos um
vetor da forma x = ( x 1 , x2 , , xn a norma euclidiana do vetor x, denotada como || x||2 dada porque
s
q
n
|| x||2 = x2i = x21 + x22 + + x2n .
(2.83)
i=1

Existem outras normas que podem ser consideradas no caso de vetores. Temos uma norma que
chamada de norma 1, e denotada como || x||1 , dada por:
n

|| x||1 =

| xi | = | x1 | + | x2 | + + | xn |.

(2.84)

i=1

E uma norma que chamada de norma infinito (ou norma do mximo), denotada como || x|| , dada
por:
|| x|| = max | xi |.
(2.85)
1in

Todas essas normas so equivalentes e igualmente importante e possuem suas respectivas aplicaes.
Na verdade, a norma uma estrutura matemtica bastante rica e uma descrio mais detalhada disso
encontrada em
Exemplo 3. Seja x = (5, 2, 3, 3, 5, 8, 7, 4). Vamos calcular || x||2 , || x||1 e || x|| . Pela definio das
normas acima temos:
q

|| x||2 = (5)2 + (2)2 + (3)2 + (3)2 + (5)2 + (8)2 + (7)2 + (4)2 = 201.
(2.86)

|| x||1 = |5| + |2| + |3| + | 3| + |5| + | 8| + |7| + | 4| = 37.


|| x|| = max (|5|, |2|, |3|, | 3|, |5|, | 8|, |7|, | 4|) = 8.
1i8

(2.87)

(2.88)

2.4. MTODOS ITERATIVOS: PONTO FIXO, ERROS, NORMA DE MATRIZ E OUTRAS COISAS MAIS29
Para o nosso caso, precisamos definir apenas uma norma adequada para uma matriz A quadrada.
Sem muito aprofundamento nesse conceito, possvel mostrar que para uma matriz A da forma (2.4),
como m = n, uma norma dada como sendo o mximo valor da soma do modo dos elementos de uma
linha, ou seja,
n

| ai j |
1in

|| A|| = max

(2.89)

j=1

Note que para encontar o mximo valor, somamos o mdulo dos elementos de cada linha e pegamos o
maior valor dessa soma.
Exemplo 4. Seja a matriz A

1 3 4
2
2 1
3 1
,
A=
3 2
2
2
2 1 1 1

soma modulo linha 1 |1| + | 3| + |4| + |2| = 10,


soma modulo linha 2 |2| + |1| + |3| + | 1| = 7,
soma modulo linha 3 |3| + |2| + |2| + |2| = 9,
soma modulo linha 4 |2| + | 1| + | 1| + |1| = 5.

(2.90)

Portanto, || A|| = 10, pois a maior das somas a da linha 1, que 10.

Abaixo, utilizaremos as tcnicas acima para apresentao dos mtodos iterativos de Jacobi e GaussSeidel. Para tanto vamos admitir que a matriz seja diagonalmente dominante.
Definio 14. Uma matriz A da forma (2.4) diagonalmente dominante se para cada linha, o elemento
da diagonal maior do que a soma dos mdulos de todos os outros elementos da respectiva linha, ou
seja, para a i-sima linha o elemento da diagonal dado por aii , ento
n

| aii | >

j = 1, j 6 = i

| ai j |.

(2.91)

Exemplo 5. A matriz A

diagonalmente dominante, pois:

15
2
A=
3
2

3
6
2
10
3
1

2 11
2
1 1 15

(2.92)

1. Em L1 o elemento da diagonal 15 e |15| > | 3| + |6| + |2|.

2. Em L2 o elemento da diagonal 10 e |10| > |2| + |3| + | 1|.

3. Em L3 o elemento da diagonal 11 e | 11| > |3| + |2| + |2|.

4. Em L4 o elemento da diagonal 15 e | 15| > |2| + | 1| + | 1|.

Observao 4. possvel provar, veja [1] que uma matriz diagonalmente dominante invertvel.
Ento se o sistema linear da forma (2.1) tiver A como uma matriz quadrada diagonalmente dominante
o sistema tem soluo nica.
Observao 5. Os mtodos iterativos so, em geral, bastante demorados para convergirem. A velocidade de convergncia est associada ao valor absoluto de T. Se || T || << 1, ento os mtodos convergem
bem rapidamente, por outro lado se || T || um valor menor do que 1, mas bem prxima a 1 o mtodo
converge lentamente.
Por outro lado, os mtodos iterativos so bastante teis para a resoluo de matrizes esparsas
Definio 15. Uma matriz A dita esparsa se somente poucos dos seus elementos forem diferente de
zero. Numa matriz esparsa a maioria dos elementos zero.
e tambm so teis para sistemas lineares que no so quadrados, para a aproximao de solues.

CAPTULO 2. SOLUO DE SISTEMA LINEARES

30

2.5 Mtodo de Jacobi


Este um mtodo iterativo, baseado na metodologia do ponto fixo descrito acima. Ento, qualquer que
seja o algoritmo iterativo proposto, temos que ter garantia de que o mtodo numrico convirja.
Para tanto, podemos mostrar, que se a matriz for diagonalmente dominante ento o mtodo de
Jacobi, que ser definido a seguir, convergente.
Seja o sistema a ser resolvido:
a11 x1 + a12 x2 + + a1n xn = b1 ,

a21 x1 + a22 x2 + + a2n xn = b2 ,


..
..
..
.
.
.

. = ..,
an1 x1 + an2 x2 + ann xn = bn ,

(2.93)
(2.94)

Ento propomos como mtodo iterativo o seguinte mtodo, para i = 1, 2, :


( i+1)
x1
( i+1)

x2

..
.
( i+1)

xn

(i)

(i)

(i)

(i)

(i)

(i)

b1 a12 x2 a13 x3 a1n xn


,
=
a11
b2 a21 x1 a23 x3 a2n xn
,
a22
..
.,
=

(i)

(i)

(2.95)

(i)

bn an1 x1 an2 x2 ann1 xn


,
ann
(2.96)

Note que o mtodo dado por (2.95) da forma (2.72), com T igual a matriz e c o vetor :

T=

0
a
21
a22
..
.
an1

ann

a12
a11
0

..

a1n
a
a 11
2n
a22
..
.

an2
ann

c=

b1
a11
b2
a22
..
.
bn
ann

(2.97)

Note que a matriz dos coeficientes do sistema (2.93) pode ser escrita como (2.4) com m = n. Note
tambm que possvel decompor a matriz A em trs diferentes matriz L que uma matriz diagonal
inferior com elementos da diagonal todos nulos D que uma matriz diagonal e U que uma matriz
triangular superior com todos os elementos da diagonal nulos:

L=

0
a21
..
.

0
0
..
.

an1

an2

0
0
..
.
0

,D =

a11
0
..
.

0
a22
..
.

0
0
..
.
ann

,U =

0
0
..
.

a12
0
..
.

a1n
a2n
..
.
0

(2.98)

Observe que a matriz A dos coeficientes pode ser decomposta em A = L + D + U. Por que isso
relevante? Pois podemos escrever a matriz T e o vetor c, em funo de tais matrizes. Note que para
obtermos a matriz T usamos apenas os elementos acima e abaixo da diagonal da matriz A, divididos

2.5. MTODO DE JACOBI

31

pelos respectivos elementos da diagonal, todos com sinal negativo, ou seja,


1
0
a
011
1

a 22
1
1
1

T = D ( L + U ) e c = D b no qual D = .
..
.
..
0
0

0
0
..
.
1
a nn

(2.99)

Admitindo que a matriz A seja diagonalmente dominante podemos provar o seguinte teorema.
Teorema 4. Seja um sistema linear da forma (2.1) com A uma matriz quadrada, diagonalmente
dominante. Ento o mtodo iterativo de Jacobi pode ser escrito como x( i+1) = Tx( i) + c ser convergente
e o erro absoluto pode ser medido como:

|| x(i+1) x(i) ||2 .

(2.100)

Observao 6. Pelo teorema acima, o mtodo dever ser iterado at que se atinja a tolerncia, tol,
exigida, ou seja, devemos iterar at que o erro absoluto satisfaa, para algum i

|| x(i+1) x(i) ||2


< tol.
|| x(i+1)||2

(2.101)

Prova do Teorema 4. Para fazer a prova deste fato, basta apenas mostrar que a matriz T, satisfaz
|| T || < 1, pois a podemos usar o Teorema 2 e concluir que o esquema da forma x(i+1) = Tx(i) + c, seja
convergente.
Ento vamos provar || T || < 1. Usando a definio da norma da matriz (2.89), ento || T || dada
por:
n

| al j |.
1l n

|| T || = max

(2.102)

j=1

Admita que o valor mximo acima atingido para uma linha k qualquer, ento || T || satisfaz:








a a
a
a

a
|| T || = k1 + k2 + + kk1 + kk+1 + kn .
(2.103)
akk
akk
akk
akk
akk

Note que como A diagonalmente dominante, para toda linha o mdulo do elemento da diagonal
maior que o mdulo da soma dos outros elementos da matriz da mesma linha, em particular, para a
linha k tenhos:
(2.104)
| akk | > | ak1 | + | ak2 | + + | akk1 | + | akk+1 | + | akn | .

Dividindo ambos os lados de (2.104) por | akk |, (que positivo pois a matriz diagonalmente dominante),
temos, aps ajeitar os termos, que













ak1 ak2
+
+ + akk1 + akk+1 + akn < 1.

(2.105)
a a
a
a a
kk
kk
kk
kk
kk
Portanto, comparando (2.103) e (2.105), chegamos a concluso que || T || < 1, e portanto o mtodo
convergente.

Exemplo 6. Aplique o mtodo de Jacobi para resolver o sistema linear:
20x1 3x2 + 4x3 = 8
x1 30x2 + 3x3 = 2

3x1 + 2x2 + 20x3 = 3,

CAPTULO 2. SOLUO DE SISTEMA LINEARES

32

com erro mximo igual a 0.01. Note que podemos usar o erro dado pela distncia entre dois termos
|| x(1) x(0) ||2
consecutivos, ento devemos iterar at que
< 0, 01 seja atingido. A soluo do sistema
|| x(1) ||2
linear corresponde a interseco dos trs planos definidos por cada uma das equaes, veja Figura 2.2.
Note que a matriz dos coeficientes A diagonalmente dominante, ento o mtodo iterativo de Jacobi
pode ser escrito como:
( i+1)
x1

(i)

(i)

8 + 3x2 4x3
=
20
(i)

(i)

2 + x1 + 3x3
30
(i)
(i)
3 3x1 2x2
( i+1)
.
x3
=
20
( i+1)

x2

A soluo exata desse problema pode ser provada ser, com 4 casas decimais de preciso, (0, 4305; 0, 0730; 0, 2073).
Nos clculos que se seguem, usarei arredondamento apenas na iterao em que atingir a preciso
exigida, entretanto, o aluno j pode proceder com arredondamentos com 4 casas decimais desde o incio
do clculo.
Para iniciar a iterao precisamos de um chute inicial. Vamos comear com a iterao tomando
x( 0) = (0, 0, 0). Dessa forma podemos achar x ( 1) como:
(0)

(1)

x1 =
(1)
x2
(1)

x3
Note que

(0)

8 + 3x2 4x3
20
(0)

4
5

(0)

2 + x1 + 3x3
1
=
=
30
10
(0)
(0)
3 3x1 2x2
3
= .
=
20
20

|| x(1) x(0) ||2

|| x(1) ||2
|| x(1) x(0) ||
|| x(1) ||

r

4
5

2 
2 
2
1
3
0 + 10
0 + 20
0
r 
= 1.
2 
2

2
4
1
3
+

5
10
20

|| x(1) x(0) ||2


> 0, 01, continuamos o processo. Para
|| x(1) ||2
usamos x( 1) obtido anteriormente no esquema de Jacobi e obtemos:

Como a preciso exigida no foi atingida, ou seja,


encontrar x( 2)

(2)

(1)

x1 =
(2)
x2
(2)

x3

(1)

8 + 3x2 4x3
20
(1)

(1)

89
200

2 + x1 + 3x3
11
=
=
30
200
(1)
(1)
3 3x1 2x2
7
=
= .
20
25

2.5. MTODO DE JACOBI


Note que

33

|| x(2) x(1) ||2

|| x(2) ||2

|| x(2) x(1) ||

|| x(2) ||2

r

89
200

45
r

2

89
200


11
+
+ 200
2

1
10

2

2

11
200


7
+
+ 25

7
25

3
20

2

2

69 371
0, 7729.
207

|| x(2) x(1) ||2


> 0, 01, continuamos o processo. Para
|| x(2) ||2
usamos x( 2) obtido anteriormente no esquema de Jacobi e obtemos:

Como a preciso exigida no foi atingida, ou seja,


encontrar x( 3)

(2)

(3)

x1 =
(3)

(2)

8 + 3x2 4x3
20
(2)

1791
4000

(2)

2 + x1 + 3x3
479
=
30
6000
(2)
(2)
3 3x1 2x2
169
=
=
.
20
800

x2 =
(3)

x3

|| x(3) x(2) ||2

|| x(3) ||2

O erro nesse passo, medido por

|| x(3) x(2) ||

|| x(3) ||2

r

1791
4000

89
200
r

2

1791
4000


479
+
+ 6000

2

479
6000

11
200

2

2


169
+
+ 800

169
800

7
25

2

2

385259 18106559
0, 1486.
18106559

|| x(3) x(2) ||2


> 0, 01, continuamos o processo. Para
|| x(3) ||2
usamos x( 3) obtido anteriormente no esquema de Jacobi e obtemos:

Como a preciso exigida no foi atingida, ou seja,


encontrar x( 4)

(3)

(4)

x1 =
(4)

(3)

8 + 3x2 4x3
20
(3)

17211
40000

(3)

2 + x1 + 3x3
1093
=
30
15000
(3)
(3)
3 3x1 2x2
50203
=
=
.
20
240000

x2 =
(4)

x3
O erro nesse passo, medido por

|| x(4) x(3) ||2


=
|| x(4) ||2

r

17211
40000

|| x(4) x(3) ||2

|| x(4) ||2

1791
4000
r

2

17211
40000


1093
+ 15000
+
2

1093
15000

479
6000

2

Como a preciso exigida no foi atingida, ou seja,

2


50203
+ 240000
+

50203
240000

2

169
800

2

20632229 13490038109
0, 0391.
13490038109

|| x(4) x(3) ||2


> 0, 01, continuamos o processo. Para
|| x(4) ||2

CAPTULO 2. SOLUO DE SISTEMA LINEARES

34

encontrar x( 5) usamos x( 4) obtido anteriormente no esquema de Jacobi e obtemos:


(4)

(5)

x1 =
(5)
x2
(5)

x3
Note que
r

(4)

8 + 3x2 4x3
20
(4)

517087
1200000

(4)

2 + x1 + 3x3
175781
=
=
30
2400000
(4)
(4)
3 3x1 2x2
497411
=
=
.
20
2400000

|| x(5) x(4) ||2

|| x(5) ||2

517087
1200000

17211
40000
r

2


175781
+
+ 2400000

517087
1200000

2

1093
15000

175781
2400000

2

2


497411
+
+ 2400000

497411
2400000

50203
240000

2

2

301718 16639907718
0, 0042.
16639907718

|| x(5) x(4) ||2


0, 0042 < 0, 01.
|| x(5) ||2
Portanto a soluo ser, com 4 casas de aproximao (0, 4309, 0, 0732, 0.207). Do erro estabelecido,
sabemos que podemos ter confiana na soluo apenas at a terceira casa decimal, ou seja, a soluo a
ser dada ser (0, 431; 0, 073; 0, 207).

Agora a preciso foi atingida, pois o erro relativo na quinta iterao

2
0
4
2
4
0.2
0.4
0.0

y
0.2

0.0

0.4
0.2

0.4

Figura 2.2: a)- Esquerda. Interseco de cada uma das equaes lineares do sistema acima. b)- Direita.Zoom prximo a soluo.

2.5.1

Implementao do Mtodo de Jacobi

function jacobi(A, b, N)
%
% O mtodo de Jacobi(A, b, N) resolve um sistema linear iterativo
%A matriz dos coeficientes, e b o vetor coluna.
%N o nmero mximo de iteraes.

2.5. MTODO DE JACOBI

35

%O mtodo implementado o Jacobi iterativo.


% O vetor inicial um vetor nulo, mas pode ser ajustado at um de acordo
% com a necessidades.
% A forma iterativa baseado na matriz de transio de Jacobi.
% Tj = (D)^(-1)*(L+U) e o vetor constante cj=D^(-1)*b.
% A sada o vetor solucao x.

n
%
%
%
D
L
U

= size(A,1);
Separando a matriz A em trs matrizes L, U e D
A=L+D+U, no qual L uma matriz triangular inferior, D a matriz
diagonal e U a matriz triangular superior
= diag(diag(A));
= tril(-A,-1);
= triu(-A,1);

% matriz de transicao e vetor constante usado para iteracoes


Tj = inv(D)*(L+U);
cj = inv(D)*b;
tol = 1e-05; % Tolerancia de 10^(-5)
k = 1;
x = zeros(n,1); %vetor inicial
while k <= N
x(:,k+1) = Tj*x(:,k) + cj;
if (norm(x(:,k+1)-x(:,k))/(norm(x(:,k+1)))) < tol
disp(O procedimento foi um sucesso)
disp(Condicao ||x^(k+1) - x^(k)|| < tol foi encontrada aps k iteraes)
disp(k); disp(x = );disp(x(:,k+1));
k=k+1;
break
end
k = k+1;
end

if (norm(x(:,k)-x(:,k-1))/(norm(x(:,k)))) > tol || k > N


disp(Numero maximo de iteracoes foi atingido sem satisfazer a condicao:)
disp(||x^(k+1) - x^(k)|| < tol); disp(tol);
disp(Por favor, examine um sistema de iteraes)
disp(No caso em que voc possa observar que a matriz convergente, aumente o numero
disp(No caso de divergencia, a matriz pode no ser diagonalmente dominante)
disp(x);
end

CAPTULO 2. SOLUO DE SISTEMA LINEARES

36

2.6 Mtodo de Gauss-Seidel


Uma pergunta imediata : Ser que no podemos melhorar o mtodo? Observe que, do mtodo de
Jacobi, sempre esperamos que x( i+1) esteja mais prxima da soluo do sistema linear x do que x( i).
( i+1)
Observe, de (2.95), tambm, que supondo que conheamos x( i) , vamos calcular x1
. Observe de (2.95)
(i)

( i+1)

que precisamos saber x j para j = 2, 3, , n. Para calcular x 2


(i) (i)
(i)
x1 , x3 , xn ,
( i+1)
x1
?

entretanto, j conhecemos

( i+1)
x1
,

( i+1)

O mesmo se sucede para o clculo de x3


( i+1)

entretanto, j conhecemos x 1
(i)
x2

( i+1)
x2
?

( i+1)

e x2

, do mtodo de Jacobi precisamos de


(i)

ser que no seria mais vantajoso trocarmos x1 por


(i)

(i)

(i)

(i)

, do mtodo de Jacobi precisamos de x1 , x2 , x4 , xn ,


(i)

( i+1)

, ser que no seria mais vantajoso trocarmos x1 por x1

por
Este justamente o mtodo de Gauss-Seidel. Tal mtodo consiste-se em perceber que para o cl( i+1)
( i+1)
culo do elemento xk
, todos os elementos x l
, para l = 1, 2, , k 1 so conhecidos e podem ser
substituidos no algoritmo de Jacobi (2.95), dando-nos o seguinte algoritmo:
(i)

(i)

(i)

(i)

( i+1)

b1 a12 x2 a13 x3 a14 x4 a1n xn


,
a11

( i+1)

b2 a21 x1

( i+1)

b2 a31 x1

x1
x2

x3

..
.
( i+1)

xn

( i+1)

a23 x3 a24 x4 a2n xn


,
a22

( i+1)

a32 x2

( i+1)

bn an1 x1

(i)

( i+1)

..
.,

=
=

(i)

(i)

(i)

(i)

a34 x4 a2n xn

a22

( i+1)

( i+1)

an2 x2

an3 x3
ann

(2.106)

( i+1)

ann1 xn

Tal mtodo pode ser escrito como, na forma matricial, usando as matrizes L, D e U definidas em (2.98)
como:
Dx( i+1) = b Lx ( i+1) Ux( i) ( D + L) x( i+1) = b Ux ( i) x( i+1) = ( D + L)1 (b Ux ( i)), (2.107)
Ento T = ( D + L)1 U e c = ( D + L)1 b. possvel mostrar que se A diagonalmente dominante,
ento, || T || < 1, no entanto, bem mais trabalhoso, veja as referncias do texto.
O critrio de erro a ser usado ser exatamente o critrio dado em (2.101).
Vamos resolver o mesmo sistema dado no Exemplo 6.
Exemplo 7. O mtodo iterativo de Gauss-Seidel pode ser escrito como:
(i)

(i)

( i+1)

8 + 3x2 4x3
20

( i+1)

2 + x 1

3 3x1

x1

x2

( i+1)
x3

( i+1)

(i)

+ 3x3

30
( i+1)

20

( i+1)

2x2

A soluo exata desse com 4 casas decimais de preciso, (0, 4305; 0, 0730; 0, 2073). Vamos resolver,
como no exemplo 6, com preciso de 0.01.
Nos clculos que se seguem, usarei arredondamento apenas na iterao em que atingir a preciso
exigida, entretanto, o aluno j pode proceder com arredondamentos com 4 casas decimais desde o incio
do clculo.

2.6. MTODO DE GAUSS-SEIDEL

37

Para iniciar a iterao precisamos de um chute inicial. Vamos comear com a iterao tomando
x( 0) = (0, 0, 0). Dessa forma podemos achar x ( 1) como:
(0)

2
5

(1)

2 + x1 + 3x3
4
=
30
75
(1)
(1)
3 3x1 2x2
307
=
.
=
20
1500

x2

(1)

x3
Note que

(0)

8 + 3x2 4x3
20

(1)

x1

(1)

(0)

|| x(1) x(0) ||2

|| x(1) ||2
|| x(1) x(0) ||

|| x(1)||2

r

2
5

2 
2 
2
4
307
0 + 75
0 + 1500
0
r 
= 1.

2 
2
2
2
4
307
+ 75 + 1500
5

|| x(1) x(0) ||2


> 0, 01, continuamos o processo. Para
|| x(1) ||2
usamos x( 1) obtido anteriormente no esquema de Gauss-Seidel e obtemos:

Como a preciso exigida no foi atingida, ou seja,


encontrar x( 2)

(2)
x1
(2)

(1)

(1)

8 + 3x2 4x3
=
20
(1)

3247
7500

(2)

2 + x1 + 3x3
8179
=
30
112500
(2)
(2)
3 3x1 2x2
467257
=
.
=
20
2250000

x2 =
(2)

x3
Note que

|| x(2) x(1) ||2

|| x(2) ||2

|| x(2) x(1) ||

|| x(2) ||2

r

3247
7500

52
r

2


8179
+
+ 112500

3247
7500

2

4
75

8179
112500

2

2


467257
+
+ 2250000


467257
2250000

2

307
1500

2

7435683449 1193958330449
0, 078
1193958330449

|| x(2) x(1) ||2


> 0, 01, continuamos o processo. Para
|| x(2) ||2
usamos x( 2) obtido anteriormente no esquema de Gauss-Seidel e obtemos:

Como a preciso exigida no foi atingida, ou seja,


encontrar x( 3)

(3)

(2)

x1 =
(3)
x2
(3)

x3

(2)

8 + 3x2 4x3
20
(3)

(2)

1211143
2812500

2 + x1 + 3x3
24664283
=
=
30
337500000
(3)
(3)
3 3x1 2x2
699591457
=
=
.
20
3375000000

CAPTULO 2. SOLUO DE SISTEMA LINEARES

38
O erro nesse passo, medido por

r

1211143
2812500

3247
7500
r

2

|| x(3) x(2) ||2

|| x(3) ||2


24664283
+
+ 337500000

1211143
2812500

2

8179
112500

24664283
337500000

2

2


699591457
+
+ 3375000000

699591457
3375000000

467257
2250000

2

2

11

527257438469
num

num

0, 0049,

onde num = 2662549899984351749. Agora a preciso foi atingida, pois o erro relativo na quinta iterao
|| x(3) x(2) ||2

0, 0049 < 0, 01. Portanto a soluo ser, com 4 casas de aproximao (0, 4306, 0, 0730, 0.2072).
|| x(3) ||2
Do erro estabelecido, sabemos que podemos ter confiana na soluo apenas at a terceira casa decimal,
ou seja, a soluo a ser dada ser (0, 431; 0, 073; 0, 207).
Observao 7. Em todos os calculos acima, poderamos ter calculado o erro usando a norma || x|| ,
ou seja,
( i+1)
(i)
max j[1,2,3](| x j
xj |
|| x(i+1) x(i) ||
.
(2.108)
=
( i+1)
|| x(i+1)||
max j[1,2,3](| x j
|
A utilizao dessa norma diminui bastante os clculos, pois, por exemplo se tivssemos


8179
467257
3247
(2) (2) (2)
.
,
,
( x1 , x2 , x3 ) =
7500
112500
2250000

(3) (3) (3)


( x1 , x2 , x3 )

1211143
24664283
699591457
,
,
2812500
337500000 3375000000

|| x(i+1) x(i) ||
dada por:
|| x(i+1)||



1211143 3247 24664283
699591457
8179
max 2812500
7500 , 337500000 + 112500
+
, 3375000000





24664283 699591457
max 1211143
2812500 , 337500000 , 3375000000

Ento

467257
2250000



1211143 3247
2812500 7500


= 0, 0053
=
1211143
2812500

Refaa a soluo do sistema acima usando o mtodo de Jacobi e Gauss-Seidel com a norma || x||
acima.

2.6.1

Implementao do Mtodo de Gauss-Seidel

function GaussSeidel(A, b, N)
%
%
%
%
%
%
%
%
%
%

O metodo de GaussSeidel(A, b, N) resolve um sistema linear iterativo


A = matriz dos coeficientes, e b o vetor coluna.
N = o nmero mximo de iteracoes.
O mtodo implementado o Gauss Seidel iterativo.
O vetor inicial um vetor nulo, mas pode ser ajustado de acordo
com a necessidades.
A forma iterativa baseado na matriz de transicao de Gauss.
Tj = (D)^(-1)*(L+U) e o vetor constante cj=D^(-1)*b.
no qual

2.6. MTODO DE GAUSS-SEIDEL


%
%
%
%
%

L= matriz triangular inferior obtida atraves de A (diagonal zero).


U= matriz triangular superior obtida atraves de A (diagonal zero).
D= matriz diagonal
A matriz A=L+D+U.
A de sada o vetor solucao x.

n
%
%
%
D
L
U

= size(A,1);
Separando a matriz A em tres matrizes L, U e D
A=L+D+U, no qual L e uma matriz triangular inferior, D e a matriz
diagonal e U e a matriz triangular superior
= diag(diag(A));
= tril(A,-1);
= triu(A,1);

39

% matriz de transicao e vetor constante usado para iteracoes


Tmej = -inv(D)*(L);
Tmaj = -inv(D)*U;
cj = inv(D)*b;
Tj=Tmej+Tmaj;
tol = 1e-05; % Tolerancia de 10^(-5)
k = 1;
x = zeros(n,1); %vetor inicial
while k <= N
auxiliar=x(:,k);
x(:,k+1) = Tj*x(:,k) + cj;
for st=1:n
x(st,k+1) =( Tmej(st,:)*x(:,k+1)+ Tmaj(st,:)*x(:,k)) + cj(st);
auxiliar(st)=x(st,k+1);
end
if ((norm(x(:,k+1)-x(:,k)))/(norm(x(:,k+1)))) < tol
disp(O procedimento foi um sucesso)
disp(Condicao ||x^(k+1) - x^(k)|| < tol foi encontrada apos k iteracoes)
disp(k); disp(x = );disp(x(:,k+1));
k=k+1;
break
end
k = k+1;
end

if ((norm(x(:,k)-x(:,k-1)))/(norm(x(:,k)))) > tol || k > N


disp(Numero maximo de iteracoes foi atingido sem satisfazer a condicao:)
disp(||x^(k+1) - x^(k)|| < tol); disp(tol);
disp(Por favor, examine um sistema de iteraes)
disp(No caso em que voce possa observar que a matriz convergente, aumente o numero
disp(No caso de divergencia, a matriz pode nao ser diagonalmente dominante)
disp(x);
end

CAPTULO 2. SOLUO DE SISTEMA LINEARES

40

2.7 Exerccios
Exerccio 1 Em cada um dos problemas abaixo utilize eliminao de Gauss com substituio retroativa e (caso necessrio) operaes com arredondamento de 2 dgitos (ou seja, duas casas aps a vrgula)
4x1 x2 + x 3 = 8,

4x1 + x2 + 2x3 = 9,

2x1 + 5x2 + 2x3 = 3,


x1 + 2x2 + 4x3 = 11,

2x1 + 4x2 x3 = 5,
x1 + x2 3x3 = 9,

Exerccio 2 Utilize o Algoritmo da eliminao de Gauss para resolver os sistemas lineares a seguir,
se possvel, determine onde a substituio de linhas necessria
x1 x2 + 3x3 = 2,
3x1 3x2 + x3 = 1,
x1 + x2 + = 3,

2x 1 1, 5x2 + 3x3 = 1,
x1
+ 2x3 = 3,

4x1 4, 5x2 + 5x3 = 1,

x1 + x 2 + x4 = 2,
2x1 + x2 x3 + x4 = 1,
4x1 x2 2x3 + 2x4 = 0,

3x1 x2 x3 + 2x4 = 3,

2x1 = 3,
x1 + 1, 5x2 = 4, 5,
x1 2x2 + 3x3 = 1,

2x1 = 3
x1 + 1, 5x2 = 4, 5,
3x2 + 0, 5x3 = 6, 6,

2x1 2x2 + x3 + x4 = 0, 8,

x 1 + x2 + x4 = 2,
2x1 + x2 x3 + x4 = 1,
x1 + 2x2 + 3x3 x4 = 4,

3x1 x2 x3 + 2x4 = 3,

Exercicio 3 Dado o sistema linear


2x1 6 x2 = 3,
3
x1 x2 = .
2
a)- Encontre os valores de para os quais o sistema no tem solues.
b)- Encontre os valores de tenha infinitas solues.
c)- Assumindo que existe uma nica soluo para um valor de dado, encontre essa soluo.
Exercicio 4 Dado o sistema linear
x1 x2 + x3 = 2,

x1 + 2x2 x3 = 3.
x1 + x2 + x3 = 2.

(2.109)

a)- Encontre os valores de para os quais o sistema no tem solues.


b)- Encontre os valores de tenha infinitas solues.
c)- Assumindo que existe uma nica soluo para um valor de dado, encontre essa soluo.
Exerccio 5 Existe um mtodo para a resoluo de sistemas lineares, chamado de Mtodo de
Gauss-Jordan que consiste-se em transformar a matriz aumentada numa matriz diagonal da forma:

a 11 0
0
0 0 | b 1
0 a 22 0
0 0 | b 2

0
0 a 33
0 0 | b 3

,
(2.110)
0
0
0 a 44 0 | b 4

..
.
..

0
. ..
.
0
0
0

0
0
0
0 0 | bn
Dessa forma a soluo obtida no exige substituio retroativa e dada por:
xi =

b i
.
a ii

(2.111)

2.7. EXERCCIOS

41

a)- Desenvolva um algoritmo para tal mtodo de resoluo.


b)- Desenvolva o algoritmo para a resoluo dos sistemas lineares do exerccio 1 e 2. Note que o
nmero de clculo aumenta consideravelmente.
Exerccio 6 Encontre o intercmbio de linhas que so necessrios para se utilizar o mtodo de
Gauss sem pivoteamento.
x1 5x2 + x3 = 7,
10x1 + 20x3 = 6,

x1 + x2 x3 = 1,
x1 + x2 + 4x3 = 2,

5x1 x3 = 4,

2x1 x2 + 2x3 = 3,

2x1 3x2 + 2x3 = 5,


4x1 + 2x2 6x3 = 4, 5,
2x1 + 2x2 + 4x3 = 8,

x2 + x3 = 6,
x 1 2x2 x3 = 4,
x 1 x2 + x3 = 5,

Exerccio 7 Repita o exerccio anterior utilizando o mtodo de Gauss com pivoteamento parcial.
Exerccio 8 Use eliminao de Gauss e operaes aritmticas com aproximao de trs dgitos por
truncamento (veja definio 9) para resolver os seguintes sistemas lineares, e compare as aproximaes com as solues reais.
0, 03x1 + 58, 9x2 = 59, 2,
5, 31x1 6, 10x2 = 47, 0,

Soluo real (10, 1) T ,

58, 9x1 + 0, 03x2 = 59, 2,


6, 10x1 + 5, 31x2 = 47, 0,

Soluo real (1, 10) T ,

3, 03x1 12, 1x2 + 14x3 = 119,


3, 03x1 + 12, 1x2 7x3 = 120, 5,
6, 11x1 14, 2x2 + 21x3 = 139,

Soluo real (0, 10, 1/7) T

Exerccio 9 Repita o exerccio anterior com operaes aritmticas com arredondamento (veja
definio 10) de 3 dgitos.
Exerccio 10 Repita o exerccio 8 utilizando a eliminao de Gauss com pivoteamento parcial.
Exerccio 11 Repita o exerccio 9 utilizando a eliminao de Gauss com pivoteamento parcial.
Exerccio 12 Repita o exerccio 5 utilizando um arredondamento de um dgito significativo.
Exerccio 13 Repita o exerccio 6 utilizando um arredondamento de um dgito significativo.
Exerccio 14 Resolva os seguintes sistemas lineares:

1
2
1

0
1
0

0
2
0 0
1
0

3
2
0

1
x3
2
2 0 0
1 1 1
x3
1
1 x 2 = 1 , 1 1 0 0 1 2 x 2 = 3
3
x1
1
3 2 1
0 0 1
x1
0

Exerccio 15 Fatore as matrizes a seguir utilizando decomposio LU.

1
1 1 2
2 1 1
1 2 1

3 3 9 , 2 4 7 , 1 1 1 5 ,

2
2
3 7
3 3 5
1 2 5
2
3
4 5

1
2
1
2

1
2
1
3

1
4
1
4

2
5

7
6

Exerccio 16 Use o mtodo da fatorao LU para resolver cada um dos sistemas lineares abaixo:
2x1 x2 + x3 = 1,
3x1 + 3x2 + 9x3 = 0,
3x1 + 3x2 + 5x3 = 4,

1, 012x1 2, 132x2 + 3, 104x3 = 1, 984,


2, 132x14, 096x2 7, 013x3 = 5, 049,

3, 104x1 7, 013x2 + 0, 014x3 = 3, 895,

2x1 = 3,
x1 + 1, 5x2 = 4, 5,
3x2 + 0, 5x3 = 6, 6,

2x1 2x2 + x3 + x4 = 0.8,

2x1 = 3,
x1 + 1, 5x2 = 4, 5,
x1 2x2 + 3x3 = 1,

2, 1756x1 + 4, 0231x2 2, 1732x3 + 5, 1967x4 = 17, 102,

4, 0231x1 + 6x2 + 1, 1973x4 = 6, 1593,


1x1 5, 2107x2 + 1, 1111x3 = 3, 0004,
6, 0235x1 + 7x2 4, 1561x4 = 0,

CAPTULO 2. SOLUO DE SISTEMA LINEARES

42

Exerccio 17 Para cada uma das matrizes A abaixo, calcule a


mente dominantes.

11
1
1
2 1 1
12
2
1
1 11 1
3 11 9 , 2 14 7 ,
2
2
32
3 3 15
1
2
5
2
3
4

21
3
3

1 1
32 9 ,
3 52

13
23
1

2
14
2

1
7 ,
51

9
1

2
2

12
17
2
3

1
1
18
4

norma e diga quais so diagonal


2
5
,
7
15

2
5
,
7
9

1
2

1
2

11
2

1
2

1
2
1
3
1
11
1
3

1
4
1
4

2
5

7
6

1 2
4
5

11 7
4 16

Exerccio 18 Faa as duas primeiras iteraes do mtodo de Jacobi para os sistemas (use x( 0) = 0):
3x1 x2 + x3 = 1,
3x1 + 6x2 + 2x3 = 0,
3x1 + 3x2 + 7x3 = 4,
10x1 + 5x2 = 6,
5x1 + 10x2 4x3 = 25,

10x1 x2 = 9,

x1 + 10x2 2x3 = 7,
2x2 + 10x3 = 3,

4x2 + 8x3 x4 = 11,


x3 + 5x4 = 11,

4x1 + x2 x3 = 5,

x1 + 3x2 + x3 = 4,
2x1 + 2x2 + 5x3 = 1,

4x1 + x2 x3 + x4 = 2
x1 + 4x2 x3 x4 = 1,

x1 x2 + 5x3 + x4 = 0,
x1 x2 + x3 + 3x4 = 1,

1
2x1 + x2 + x3 = 4,
3
x1 2x2 0, 5x3 = 4,
x2 + 2x3 = 0,

4x1 + x2 + x4 = 2,
2x1 + 8x2 x3 + x4 = 1,

x1 + 2x2 10x3 x4 = 4,
3x1 x2 x3 + 20x4 = 3,

Exerccio 19 Repita o Exerccio 18 usando o mtodo de Gauss-Seidel.


Exerccio 20 Resolva o Exerccio 18, usando o mtodo de Jacobi com erro mximo de x = 0.01. O
erro aqui pode ser o medido na norma || x||2 ou || x|| descrito na observao 7.
Exerccio 21 Resolva o Exerccio 18, , usando o mtodo de Gauss com erro mximo de x = 0.01. O
erro aqui pode ser o medido na norma || x||2 ou || x|| descrito na observao 7.

2.8. PROJETO: SISTEMAS LINEARES

43

2.8 Projeto: Sistemas lineares


Uma quantidade bastante importante para uma matriz a noo de determinante. Em geral o clculo
do determinante bastante complicado, entretanto, caso seja possvel reduzir uma matriz numa forma
triangular (superior ou inferior) o determinante transforma-se no produto dos elementos da diagonal
principal.
A primeira parte do projeto consiste-se em desenvolver um mtodo numrico para encontrar-se o
determinante de uma matriz baseado em tornar a matriz triangular superior ou triangular inferior.
Note que operaes elementares podem modificar o determinante da matriz, portanto, o algoritmo tem
que levar este fato em conta.
Como referncia consulte o livro [1] no captulo 6.
Observao: O Algoritmo deve funcionar se o determinante for zero. Observe que isso vai acontecer se em algum momento de transformar a matriz em triangular inferior (ou superior) for impossvel
encontrar um piv no nulo.
O trabalho deve conter:
1. A argumentao matemtica.
2. O Algoritmo (implementado em qualquer linguagem ou software. Podem ser usados os programas
que eu implementei em matlab para ajudar a transformar a matriz numa matriz triangular.
Entretanto, note que ser necessrio guardar as operaes feitas pois existem algumas operaes
elementares que estragam o determinante da matriz).
3. Um exemplo de uma matriz 7x7, implementado na linguagem para mostrar rodando.
O grupo dever conter no mximo 4 alunos. A avaliao do trabalho ser feita grupo a grupo. A
nota ser dada em funo do conhecimento do trabalho e ser dada pela nota menor entre os 4 alunos.
Se no dia de apresentar o trabalho para o professor um aluno do grupo no estiver presente, tire o
nome do aluno ou todos recebero zero.
Lembrando que no vale a pena colocar um aluno apenas por amizade ou porque ele o famoso
paga lanche , pois isso no contribuir em nada para ningum. Se no sabe explicar o trabalho, todos
ganharo zero.
Outra coisa importante, no adianta copiar o que est escrito (no livro, wikipedia, etc..etc), porque
de bobo s tenho a cara e o jeito de andar, ou seja, descobrirei. E sim, eu leio o que me entregam. E
sim, eu confiro e procuro na net para ver se no copiaram de algum.
Caso tenha uma frase inteira que seja copiada o trabalho todo ser anulado. O mesmo vale para
dois trabalhos com uma frase inteira igual ou uma linha de cdigo igual. Os dois sero anulados. E
conheo todos os truques do tipo: trocar uma palavra por um sinnimo dela, inverter a ordem das
palavras, picar o texto para parecer diferente, etc...
Observao:
O trabalho valer at 1 ponto na primeira avaliao do dia 17 de junho.
No ser contabilizado caso o aluno decida fazer segunda chamada, ou seja, se o aluno perder a
primeira prova, implicitamente, estar dizendo que no quer que o trabalho seja avaliado.

44

CAPTULO 2. SOLUO DE SISTEMA LINEARES

Captulo 3

Mtodos para o clculos de razes de


funes
Aqui estamos interessados em encontrar razes de funes. Para tanto vamos considerar, inicialmente,
uma funo f : D R R contnua. Na Seo 3.4, extendemos a tcnica de Newton descrita na
Seo 3.2 para funes do tipo f : D Rn Rn .
O que queremos neste captulo apresentar mtodos para encontrar razes de funes.
Definio 16. Dizemos que x D raiz ou zero de uma funo f se
f ( x ) = 0.

(3.1)

Veja Figura (3.1.a).


Estudaremos aqui trs tcnicas, todas iterativas: Mtodo da Biseco, Mtodo de Newton e Mtodo
da Secante. Existem muitos outros mtodos, mas nos fixaremos nesses visto que so bastante usados,
principalmente, o mtodo de Newton e bastante rpido para convergir.

Figura 3.1: a)- Esquerda. Funo f ( x) com 4 razes no intervalo x1 , x2 , x3 , x4 . b)- Direita. Mtodo da
Biseco. Note que f ( a) < 0 e f (b) > 0. Como f contnua possui pelo menos uma raiz denotada por
x .

45

46

CAPTULO 3. MTODOS PARA O CLCULOS DE RAZES DE FUNES

3.1 Mtodo da Biseco


O mtodo da Biseco baseia-se no teorema do valor intermedirio para funes contnuas, o qual pode
ser reformulado da seguinte forma.
Teorema 5. Seja f : [ a, b] R uma funo contnua, tal que f ( a) < 0 < f (b), ento existe um
d ( a, b) tal que f (d) = 0, ou seja, d uma raiz da funo, veja Figura (3.1.b).
Observao 8. O teorema 5 continua vlido de tivermos f ( a) > 0 > f (b). Como exerccio, refaa a
demonstrao do Teorema 5 que dada abaixo.
Para provar o Teorema 5 utilizamos o seguinte resultado, sem prova.
Teorema 6. Seja an uma sequncia de nmeros reais, montona e limitada, ento an convergente.
Definio 17. Dizemos que uma sequncia de nmeros reais an montona crescente (respectivamente, montona no decrescente) se
an+1 > an

(respectivamente, an+1 an )

n N.

Definio 18. Dizemos que uma sequncia de nmeros reais an montona decrescente (respectivamente, montona no crescente) se
an+1 < an

(respectivamente, an+1 an )

n N.

Definio 19. Dizemos que uma sequncia de nmeros reais an limitada superiormente (respectivamente, limitada inferiormente) se existe um L1 R (respectivamente, L2 R) tal que
an L1

(respectivamente, an L2 )

n N.

Se an for limitada inferiormente e superiormente dita, simplesmente, sequncia limitada.


Prova do Teorema 5. A demonstrao bem simples e construtivo. A prpria demonstrao o
algoritmo. Como vamos criar uma sequncia de nmeros, vamos denotar a0 = a e b0 = b.
(1)

1. Calculamos o ponto mdio do intervalo [ a0 , b0 ] o qual denotamos por x m , ou seja,


(1)

xm =

a 0 + b0
.
2

(1)

Avaliamos a funo f em xm e temos 3 possibilidades:




(1)
(1)
f xm = 0. Se isto acontecer x = xm e o algoritmo finaliza pois encontramos a raiz.


(1)
(1)
f xm < 0. Se isto acontecer, quer dizer que a raiz est entre [ xm , b0 ], ento definimos a1
e b1 como:
(1)
a1 = xm
e
b1 = b0 .


(1)
(1)
f xm > 0. Se isto acontecer, quer dizer que a raiz est entre [ a0 , xm ], ento definimos: a1
e b1 como:
(1)
a1 = a0
e
b1 = x m .
Note que o tamanho do intervalo [ a1 , b1 ] a metade do tamanho anterior, ou seja,
b1 a 1 =

ba
.
2

3.1. MTODO DA BISECO

47

2. Note que agora a raiz est no novo intervalo [ a1 , b1 ]. E procedemos como anteriormente. Calcula(2)
mos o ponto mdio do intervalo [ a1 , b1 ] o qual denotamos por xm , ou seja,
(2)

xm =

a 2 + b2
.
2

(2)

Avaliamos a funo f em xm e temos 3 possibilidades:




(2)
(2)
f xm = 0. Se isto acontecer x = xm e o algoritmo finaliza pois encontramos a raiz.


(2)
(2)
f xm < 0. Se isto acontecer, quer dizer que a raiz est entre [ xm , b1 ], ento definimos a2
e b2 como:
(2)
a2 = xm
e
b2 = b1 .


(2)
(2)
f xm > 0. Se isto acontecer, quer dizer que a raiz est entre [ a1 , xm ], ento definimos: a2
e b2 como:
(2)
a2 = a1
e
b2 = x m .
Note que o tamanho do intervalo [ a2 , b2 ] a metade do tamanho anterior, ou seja,
b2 a 2 =

b1 a 1
ba
=
.
2
22

3. E este processo continuado. Note que dessa forma geramos duas sequncias de pontos ai e bi tal
que i N. Alm disso a sequncia ai no decrescente, pois, pelo algoritmo acima,
ai

 se temos
a i + bi
a i + bi
< 0,
, que maior que ai , caso f
podemos encontrar ai+1 e, note que ai+1 ou ser
2
2


a i + bi
> 0. E qualquer caso temos que ai uma sequncia montona
ou ser o prprio ai se f
2
no decrescente. Pelo mesmo argumento, temos que bi uma sequncia montona no crescente,
ou seja,
a 1 a 2 a 3 a i e b1 b2 b3 bi .
Alm disso o tamanho do intervalo [ ai , bi ] satisfaz:
bi a i =

ba
.
2i

(3.2)

As sequncias ai e bi so limitadas (tanto inferiormente por a, quando superiormente por b), ento
pelo Teorema 6 as sequncias so convergentes, ou seja, existem l1 e l2 tais que
lim ai = l1

(3.3)

lim bi = l2 .

Para mostrar que l1 igual a l2 , basta usar (3.2) e tomar o limite de i indo para o .
 


1
ba
=
(
b

a
)
lim
= 0.
lim (bi ai ) = lim (bi ) lim ( ai ) = l2 l1 = lim
i 2 i
i
i
i
i
2i

(3.4)

Chamando l = l1 = l2 , s falta mostrar que l a raiz. Note que como a funo f contnua ento


(3.5)
f ( ai ) < 0 lim f ( ai ) = f lim ai = f (l ) 0

f (bi ) > 0 lim f (bi ) = f


i

lim bi

(3.6)

= f (l ) 0.

Ento de (3.5) e (3.6) temos que f (l ) = 0. E o teorema demonstrado.

CAPTULO 3. MTODOS PARA O CLCULOS DE RAZES DE FUNES

48
y

y
2.0

1.0

1.5
0.5
1.0
1.4 1.2 1.0 0.8 0.6 0.4 0.2

0.2

0.4

0.6

0.8

1.0

1.2

1.4

0.5

0.5
1.4 1.2 1.0 0.8 0.6 0.4 0.2 0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

1.0
Function 1: x^2 1

Function 1: x^2

Figura 3.2: a)- Esquerda. A funo f ( x) = x2 1 tem duas razes em x = 1 e x = 1, entretanto, como
no muda de sinal no intervalo [1.5, 1.5]. Caso o intervalo seja restringido para [0, 1.5] possvel
aplicar o mtodo. b)- Direita. A funo f ( x) = x2 tem um zero em x = 0, mas a funo nunca muda de
sinal, portanto o mtodo no funciona.
y
2

1.4 1.2 1.0 0.8 0.6 0.4 0.2

0.2

0.4

0.6

0.8

1.0

1.2

1.4

x
1

3
Function 1: x 2
Function 2: 4*x^2*cos(x)

Figura 3.3: A funo descontnua dada por f ( x) = x 2 se x 0.3 e f ( x) = 4x2 cos( x) se x > 0.3,
muda de sinal no intervalo [1, 3; 1, 3] entretanto, no possui nenhuma raiz pois descontnua nesse
intervalo.
Observao 9. Pode acontecer da funo ter razes, mas o mtodo s pode ser aplicado se a funo
muda de sinal no intervalo. Por exemplo, f ( x) = x2 1, possui duas razes no intervalo [1.5, 1.5],
entretanto, o mtodo no pode ser aplicado pois a funo no muda o sinal no intervalo. Veja Figura
3.2. Caso o intervalo seja restrito, por exemplo, [0, 1.5] o mtodo pode ser aplicado. Entretanto, h
funes que mesmo restringindo o intervalo no possvel encontrar a raiz, pois a funo zero num
ponto mas nunca troca de sinal, por exemplo, a funo f ( x) = x2 possui uma raiz em x = 0, mas nunca
muda de sinal, ento o mtodo nunca pode ser aplicado.
Observao 10. Caso a funo f seja descontnua pode acontecer de f ( a) < 0 e f (b) > 0, mas a funo
no ter nenhuma raiz, veja Figura 3.3.
Definio 20. Para uma tolerncia, tol, (ou erro mximo) fornecida, O mtodo deve iterar at que o
erro para encontrar razes, ou seja, o mtodo deve ser iterado i vezes at que
( i+1)

| f ( xm
( i+1)

onde xm

a o ponto mdio do intervalo [ ai , bi ].

)| < tol,

(3.7)

3.1. MTODO DA BISECO


y

49
y

1.0

1.0

0.8
0.6

0.5

0.4
0.2

0.0
0.1

0.0
0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

x
x

0.2

0.2

1.0
0.5

0.4
0.6
1.0
0.8

x^2
cos(x)

1.0

Figura 3.4: a)- Esquerda. Funo f ( x) = x2 cos( x) no intervalo [0, 1]. b)- Direita. f ( x) = x 2 cos( x)
tem um zero quando as funes x2 e cos( x) se encontram, ou seja, a raiz x satisfaz ( x )2 = cos( x ).
Exemplo 8. Use o mtodo da biseco para mostrar que a funo
f ( x) = x2 cos( x)
possui uma raiz no intervalo [0, 1]. Encontre a soluo com erro de 0.01.
Note que f (0) = 0 2 cos(0) = 1 e que f (1) = 1 2 cos(1) 0.4597 (lembre-se que cos(1) medido
em radianos). Ento existe um zero entre [0, 1]. Aplicando o algoritmo:
(1)

(1)

1. O ponto mdio do intervalo [0, 1] x m = 0.5. Avaliando a funo f em xm temos:




(1)
f xm = (0, 5)2 cos(0, 5) 0, 6276,

ou seja, a raiz est entre [0, 5; 1] e substitumos a1 = 0, 5 e b1 = 1. Note que a tolerncia ainda no
foi atingida pois



(1)
f xm = | 0, 6276| = 0, 6276 > 0, 01.
(2)

(2)

2. O ponto mdio do intervalo [0, 5; 1] x m = 0, 75. Avaliando a funo f em xm temos:




(2)
f xm = (0, 75)2 cos(0, 75) 0, 1692,

ou seja, a raiz est entre [0, 75, 1] e substitumos a2 = 0, 75 e b2 = 1. Note que a tolerncia ainda
no foi atingida pois



(2)
f xm | 0, 1692| = 0, 1692 > 0, 01.
(3)

(3)

3. O ponto mdio do intervalo [0, 75; 1] x m = 0, 875. Avaliando a funo f em xm temos:




(3)
f xm = (0, 875)2 cos(0, 875) 0, 1246,

ou seja, a raiz est entre [0, 75, 0, 875] e substitumos a3 = 0, 75 e b3 = 0, 875. Note que a tolerncia
ainda no foi atingida pois



(3)
f xm = |0, 1246| = 0, 1246 > 0, 01.

CAPTULO 3. MTODOS PARA O CLCULOS DE RAZES DE FUNES

50

(4)

(4)

4. O ponto mdio do intervalo [0, 75, 0, 875] xm = 0, 8125. Avaliando a funo f em xm temos:


(4)
f xm = (0, 8125)2 cos(0, 8125) 0, 0275,

ou seja, a raiz est entre [0, 8125, 0, 875] e substitumos a4 = 0, 8125 e b4 = 0, 875. Note que a
tolerncia ainda no foi atingida pois



(4)
f xm | 0, 0275| = 0, 0275 > 0, 01.
(5)

(5)

5. O ponto mdio do intervalo [0, 8125, 0, 875] x m = 0, 84375. Avaliando a funo f em xm temos:


(5)
f xm = (0, 84375)2 cos(0, 84375) 0, 0472,

ou seja, a raiz est entre [0, 8125, 0, 84375] e substitumos a5 = 0, 8125 e b5 = 0, 84375. Note que a
tolerncia ainda no foi atingida pois



(5)
f xm |0, 0472| = 0, 0472 > 0, 01.
(6)

(6)

6. O ponto mdio do intervalo [0, 8125, 0, 84375] xm = 0, 828125. Avaliando a funo f em xm


temos:


(6)
f xm = (0, 828125)2 cos(0, 828125) 0, 0095,
A tolerncia foi atingida, pois



(6)
f xm |0, 0095| = 0, 0095 < 0, 01.

Logo a raiz da funo aproximada por x = 0, 8281.

Observao 11. Existem funes que possuem variao muito rpida em torno de sua raiz, Veja Figura
(3.5), de modo que impor condies de erro apenas sobre o mdulo de f ( x(i) ) pode fazer com que o mtodo
no convirja, mesmo estando com um valor de soluo bastante prxima do valor de raiz no domnio.
y

20

10

0.10

0.08

0.06

0.04

0.02

0.02

0.04

0.06

0.08

0.10

X
10

20

Figura 3.5: a)- Esquerda. Variao bastante rpida em torno da raiz. b)- Direita. Funo f ( x) = 2000x
em torno de x = 0, observe que para termos uma tolerncia sobre | f ( x)| < 0, 01, devemos ter que
x (0, 000005; 0, 000005) o que em geral est fora do arredondamento que utilizamos com 4 casa
decimais.
Por exemplo, para a funo f ( x) = 2000x, x = 0 uma raiz da funo, entretanto, se tivermos
encontrado na nossa aproximao um valor aproximado de x aprox = 0.001, tal valor bastante prximo
de x = 0, entretanto, se fossemos o valor dessa funo teramos
f ( x aprox) = 2000(0.001) = 2,

3.1. MTODO DA BISECO

51

que seria estaria bem fora da tolerncia, em geral, estabelecida, Veja Figura (3.5). Neste caso, se quisssemos que | f ( x)| < 0, 01, deveriamos ter:

| f ( x)| = 2000| x| < 0, 01

| x| < 0, 000005,

ou seja, x (0, 000005; 0, 000005), ou seja, tal nmero estaria inclusive fora do nosso arredondamento
utilizado at agora que est sendo de 4 casas decimais.
Ento, para contornar tal caso, como critrio de convergncia estabelecemos um dos 3 casos:
1. Se | f ( x ( i) )| < tol1 satisfeita para alguma tol1 sobre a imagem da funo estabelecida, dizemos
que o mtodo numrico convergiu para a raiz com erro mximo tol1. Isto o que desejamos
que acontea em geral. Tomamos x = x( i) .
2. Se | f ( x ( i) | no for menor do que tol1, estabelecido como a tolerncia da imagem, mas | x ( i+1)
x( i) | < tol2, no qual tol2 a tolerncia que colocamos sobre pontos do domnio, dizemos que a a
raiz no atingiu a tolerncia exigida da imagem, mas atingiu a tolerncia exigida no
domnio. Tomamos x = x( i+1).Este caso contempla justamente o exemplo acima dado. Note, por
outro lado, que possvel encontrar | x( i+1) x( i) | < tol2, mas tal que f ( x ) seja um valor bem
distante de zero. Entretanto, o erro relativo, neste caso bem pequeno em geral. item Se nem
| f ( x(i+1))| < tol1, nem | x(i+1) x(i) | < tol2 so satisfeitas, mas o nmero de iteraes excedeu um
mximo estabelecido. Dizemos que o mtodo no convergiu. , muitas vezes, possvel aumentar
o nmero mximo de iteraes permitido fazendo com que o mtodo convirja.

3.1.1

Implementao do Mtodo da Biseco

function [xr, k] =biseccao


a=input(Entre com a funcao ,s);
f=inline(a);
xl=input(Entre com o valor inferior do intervalo ) ;
xu=input(Entre com o valor superior do intervalo );
tol=input(Entre com a tolerancia exigida );
N= input(Entre com o maximo numero de iteracoes possiveis );

if f(xu)*f(xl)<=0
else
fprintf(Erro. O metodo so funciona se vc entrar se a funcao mudar de sinal. Tente novam
xl=input(Entre com o valor inferior do intervalo) ;
xu=input(Entre com o valor superior do intervalo);
end
k=0;
xr= xu;
xx=linspace(xl,xu,100);
plot(xx,f(xx));
hold on
plot(xr,f(xr),*)
hold off
pause
while (abs(f(xr))>=tol)

52

CAPTULO 3. MTODOS PARA O CLCULOS DE RAZES DE FUNES

xr=(xu+xl)/2;
if f(xr)==0
str = [A raiz foi, num2str(xr), ]
it = [O numero de iteracoes foi , num2str(k), ]
break
end
if f(xu)*f(xr)<=0
xl=xr;
else
xu=xr;
end
if f(xl)*f(xr)<=0
xu=xr;
else
xl=xr;
end
xnew(1)=0;
k=k+1;
xnew(k+1)=xr;
xx=linspace(xl,xu,100);
plot(xx,f(xx));
hold on
xrr=(xl+xu)/2;
plot(xr,f(xr),*)
%hold off
pause
if (k>=N)
fprintf(O metodo nao convergiu com as iteracoes exigidas);
break,
end
%if abs((xnew(i)-xnew(i-1))/xnew(i))<tol,
%
break,end
end
if(k<N)
str = [A raiz foi, num2str(xr), ]
it = [O numero de iteracoes foi , num2str(k), ]
end
if (k>=N)
it = [O numero de iteracoes foi , num2str(k), E o metodo nao convergiu]
end

3.2. MTODO DE NEWTON

53

3.2 Mtodo de Newton


O mtodo da Biseco bom, entretanto, bastante lento. H mtodos iterativos que, na vizinhana
da raiz e sob certas condies, convergem muito rpido.
Um desses mtodos o mtodo de Newton. Tal mtodo surge atravs de uma observao geomtrica
interessante para algumas funes. Veja Figura (3.6.a).

10

0
15.3

15.4

15.5

15.6

15.7

15.8

15.9

16.0

10

20

Figura 3.6: a)- Esquerda. Mtodo de Newton. b)- Direita. Funo x2 250 na vizinhana de sua raiz,
note que a funo se comporta de modo muito parecido a de uma funo afim com coeficiente angular
positivo, por isso o mtodo converge muito rapidamente.
Suponha que conheamos o ponto x( n) e queiramos encontrar, atravs de um mtodo, um ponto
. O algoritmo tal que a partir de x ( n) traamos uma reta que tangente a funo f ( x) no ponto
(x( n) , f ( x( n) )). O ponto x ( n+1) corresponde ao valor do domnio para o qual a tangente partindo de
(x( n) , f ( x( n) )) atinge o eixo x.
Note, da Figura (3.6.a) que temos um tringulo com vrtices (x( n) , f ( x( n) )), ( x ( n+1), 0) e ( x( n) , 0). O
valor da numrico da reta tangente no ponto (x ( n) , f ( x( n) )) a derivada da funo avaliada em x( n+1) e
igual a tangente do tringulo acima descrito, ou seja, temos que:
x( n+1)

f ( x(n) ) =

f ( x (n) ) 0
,
x( n) x( n+1)

x( n+1) = x( n)

f ( x(n) )
.
f ( x(n) )

(3.8)

O algoritmo (3.8) chamado de Mtodo de Newton.


Para comear a iterao do mtodo de Newton necessrio um chute inicial, se o chute inicial for
bom o mtodo pode iterar rapidamente.

Exemplo 9. Use o mtodo de Newton para estimar a raiz f ( x) = 250.


Para utilizar o mtodo de Newton neste caso, precisamos criar uma funo adequada, para o qual
250 seja uma raiz. Note que
f ( x) = x2 250,

tem como raiz, justamente, 250.


Para aplicar o mtodo de Newton, precisamos calcular a derivada de f ( x) a qual dada por f ( x) =
2x, ento o mtodo escrito como:
x( n+1) = x( n)

( x(n) )2 250
.
2x( n)

(3.9)

54

CAPTULO 3. MTODOS PARA O CLCULOS DE RAZES DE FUNES

Como chute inicial, vamos dar uma raiz exata prxima de 250 que conhecemos, por exemplo, x( 0) = 16,
que a raiz exata de 256. Ento podemos achar x( 1) como:
x(1) = x(0)

( x(0) )2 250
(16)2 250
= 15, 8125.
=
16

2 250
2x( 0)

(3.10)

Avaliando a funo f em x( 1) para calcular o erro, obtemos:

| f ( x)| = |( x(1))2 250| 0, 0352.


O erro , aproximadamente, 0.0352, o que no ruim com apenas uma iterao. Entretanto, vamos
iterar mais uma vez para melhorar essa aproximao, para x( 1) = 15, 8125, encontramos
x(2) = x(1)

( x(1) )2 250
= 15.8114.
2x( 1)

(3.11)

Avaliando a funo f em x( 2) para calcular o erro, obtemos:

| f ( x)| = |( x(2))2 250| 0, 0000012.


que uma excelente aproximao. Tivemos que colocar aqui mais do que 4 casas decimais significativas
aps a vrgula, pois o mtodo deu um erro menor do que 0, 0001. Um excelente mtodo.
Exemplo 10. Use o mtodo de Newton para encontrar a raiz de f ( x) = x2 cos( x), com erro de 0, 01.
Esta exatamente a funo do exemplo 8, a qual foi encontrada na sexta iterao.
Para resolver, precisamos calcular a derivada de f ( x) = 2x + sen( x), ento o mtodo escrito como:
x( n+1) = x( n)

( x(n) )2 cos( x(n) )


.
x( n) + sen( x( n) )

(3.12)

Como chute inicial, x( 0) = 1, ento podemos achar x( 1) como:


x(1) = x(0)

(1)2 cos(1)
( x(0))2 cos( x(0))
=
1

0, 8382.
2 1 + sen(1)
2x( 0) + sen( x( 0) )

(3.13)

Avaliando a funo f em x( 1) para calcular o erro, obtemos:

| f ( x)| = |( x(1) )2 cos( x(1))| 0, 0338.


A preciso no foi atingida, mas est muito prximo da tolerncia dada que foi de 0, 01. Iterando mais
uma vez, para x( 1) = 0, 8382, encontramos
x(2) = x(1)

( x(1))2 cos( x(1))


= 0.8242.
2x( 1) + sen( x( 1) )

(3.14)

Avaliando a funo f em x( 2) para calcular o erro, obtemos:

| f ( x)| = |( x(2) )2 cos( x(2))| 0, 0003.


O erro, surpreendentemente, menor que 0, 001 na segunda iterao. O mtodo converge rapidamente.
Uma pergunta, o que aconteceria, se no Exemplo 10 tivssemos escolhido como chute inicial o ponto
x( 0) = 0. Observe neste caso que teramos um problema bastante srio, pois quando fssemos calcular
a derivada teramos
f ( x( 0)) = f (0) = 2(0) sen(0) = 0,

note do algoritmo de Newton, que teramos diviso por zero!!!


De fato isto um problema para o mtodo de Newton, como este fato srio, tecemos uma observao:

3.2. MTODO DE NEWTON

55

Observao 12. O mtodo de Newton no deve ser usado para razes x tais que f ( x ) = 0, o
problema que quase nunca sabemos desse fato. Ento til no usar o mtodo para funes para os
quais a derivada comea a atingir valores prximos a zero, pois a soluo, muito provavelmente, no
ir convergir.
Veja a Figura (3.7.a), para um estado x( n1), atravs da reta por este ponto, encontramos x( n) como
sendo o valor de x para o qual a reta tangente funo f em ( x( n1), f ( x( n1)) atinge o eixo x. Note que,
visualmente, x( n) est mais longe da raiz x do que x( n1).
A partir de x( n), aplicamos novamente o mtodo de Newton para encontrarmos x ( n+1). Tal ponto o
valor de x para o qual a reta tangente funo f em ( x ( n) , f ( x( n) ) atinge o eixo x. Note que aqui bem
claro que O mtodo est se afastando da soluo raiz do problema. E por que isto aconteceu?
Aconteceu, pois em x( n) a derivada da funo est muito prxima de zero, o que, por uma anlise
criteriosa do mtodo de Newton, atravs da Equao (re f newtonmeth), podemos ver que o mesmo se
comporta muito mal.
A convergncia do mtodo de Newton uma questo difcil de estabelecer, pois no sempre que o
mesmo converge. Entretanto, para chutes iniciais perto da raiz, e se no houver pontos que tornem a
derivada com valores muito prximos de zero (ou zero) o mtodo, em geral, converge.
Por outro lado, caso o mtodo convirja, podemos estabelecer um resultado interessante que diz quo
rpido o mtodo de Newton converge, que o que chamamos de taxa de convergncia, Seo 3.2.1.

Figura 3.7: a)- Esquerda. Mtodo de Newton. b)- Direita. Funo x2 250 na vizinhana de sua raiz,
note que a funo se comporta de modo muito parecido a de uma funo afim com coeficiente angular
positivo, por isso o mtodo converge muito rapidamente.

3.2.1

Taxa de Convergncia do Mtodo de Newton: Assumindo convergncia

Vamos assumir que o mtodo de Newton encontre uma raiz, a qual denotamos como x , vamos estimar
quo rpido dois pontos da sequncia x( n) e x( n+1) se aproximam de x .
Para isto, vamos usar a frmula de Taylor (1.11), expandida em torno de x( n) , com trucamento de
segunda ordem, ou seja (1.11)
f ( x) = f ( x( n) ) + f ( x( n) )( x x ( n) ) +

f ( )
( x ( x(n) )2 .
2!

no qual uma funo que depende de x o qual, em geral, no sabemos fornecer precisamente.

(3.15)

56

CAPTULO 3. MTODOS PARA O CLCULOS DE RAZES DE FUNES

Vamos fazer x = x , raiz da equao. Para este valor f ( x ) = 0 e a equao acima (3.15) nos d a
relao:
0 = f ( x( n) ) + f ( x( n) )( x x( n) ) +

f ( x(n) )( x x(n) ) = f ( x(n) ) +

f ( )
( x ( x(n) )2 ,
2!

f ( )
( x ( x(n) )2 ,
2!
(3.16)

Admitindo que f ( x ( n) ) 6= 0, podemos dividir ambos os lados de (3.16) por f ( x ( n) ) e obtemos:


x x(n) =

f ( )
f ( x (n) )

( x ( x (n) )2 .
f ( x(n) )
f ( x ( n) )2!

(3.17)

De (re f newtonmeth) podemos escrever

f ( x (n) )
= x( n+1) x( n)
f ( x(n) )

o que substituindo em (3.17) nos d:


x x( n) = x( n+1) x( n)
x x( n+1) =

f ( )
( x ( x (n) )2 ,
f ( x( n) )2!

f ( )
( x ( x(n) )2 .
f ( x( n) )2!

(3.18)

De (3.18) podemos ver como se aproximam os pontos da sequncia da raiz x :

|x x

( n+1)



f ( )

| = (n) (| x ( x(n) |)2 .
f ( x )2!

(3.19)

Note de (3.19) que | f ( x( n) )| << 1, ento a soluo pode, de fato, se distanciar da soluo. Por outro
lado, se | f ( x( n) )| e ( x ( n) est suficientemente prximo da soluo, ento o mtodo de Newton d uma
convergncia que chamamos de convergncia quadrtica
Definio 21. Um mtodo iterativo para encontrar uma soluo x tem ordem de convergncia (ou
razo de convergncia) k, para algum k R+ se satisfaz:

| x x ( n+1 ) | M| x x ( n+1 ) |k ,

(3.20)

para alguma constante M > 0. Denotamos isso como O(| x x( n+1)|k ), ou, simplesmente, O(k). Se, por
outro lado, M = M( x) e lim x x M( x) = 0, denotamos tal fato como o(| x x( n+1)|k ), ou, simplesmente,
( k ) .
Ento temos estabelecido o seguinte teorema:
Teorema 7. Caso o mtodo de Newton seja convergente para uma raiz x , ento a taxa de convergncia
quadrtica, ou seja, satisfaz (3.19)
Observao 13. O mtodo de biseco tambm possui uma taxa de convergncia, mas a demonstrao
bem mais complicada do que este caso. Se o aluno tiver interesse da demonstrao dessa convergncia
e da de outros mtodos recomendamos como uma excelente leitura [1].

3.2. MTODO DE NEWTON

3.2.2

Implementao do Mtodo de Newton

function [ x, ef, ex, iter ] = newton


a=input(Entre com a funcao ,s);
f=inline(a);
b=input(Entre com a derivada da funcao ,s);
df=inline(b);
x0=input(Entre com o chute inicial ) ;
tol1=input(Entre com a tolerancia exigida para o erro de f(^{n+1}));
tol2=input(Entre com a tolerancia exigida para o erro |x^{n+1}-x^{n}|);
N= input(Entre com o maximo numero de iteracoes possiveis );
%
%
%
%
%
%
%
%
%
%
%

Metodo de Newton.
Descobre as raizes sucessivamente.
Output:
x - aproximacao da raiz
ef - |f(x^n)| (ou seja, o erro de $f$.
ex - erro estimado emvalor absoluto dno dominio
iter=numero de iteracoes.
Example:
[ x, ex ] = newton( exp(x)+x, exp(x)+1, 0, 0.5*10^-5, 10 )
x(1) = x0 - (f(x0)/df(x0));
ef(1)=abs(f(x(1));
ex(1) = abs(x(1)-x0);
k = 2;
% Comando para fazer o grfico (apenas cosmetico).
xxx=linspace(x(1),x0,100);
plot(xxx,f(xxx))
hold on
plot(x0,f(x0), *)
plot(xxx,((f(x0))/(x0-x(1)))*xxx-((f(x0))/(x0-x(1)))*x(1))
%
pause
while (ef(k-1) >= tol1) && (ex(k-1) >= tol2) && (k <= N)
x(k) = x(k-1) - (f(x(k-1))/df(x(k-1)));
ef(k)=abs(f(x(k));
ex(k) = abs(x(k)-x(k-1));
% Comando para fazer o grfico (apenas cosmetico).
xxx=linspace(x(k),x(k-1),100);

57

CAPTULO 3. MTODOS PARA O CLCULOS DE RAZES DE FUNES

58

plot(xxx,f(xxx))
hold on
plot(x(k-1),f(x(k-1)), *)
plot(xxx,((f(x(k-1)))/(x(k-1)-x(k)))*xxx-((f(x(k-1)))/(x(k-1)-x(k)))*x(k))
%
k = k+1;
pause
end
%
% Verificao quanto ao erro e ao nmero de iteraes atingidas.
%
%
% Erro maximo da imagem foi atingido. Raiz encontrada
%
if(k<N)&& (ef(k-1) < tol1)
str = [A raiz atingiu |f(x^n)|<tol1. O valor da raiz eh , num2str(x(k-1)), ]
efinalimagem=[Com erro da imagem, |f(x^n)| num2str(ef(k-1)), ]
efinaldominio=[Com, |x^{n}-x^{n-1}| dado por num2str(ex(k-1)), ]
it = [O numero de iteracoes foi , num2str(k-1), ]
end
%
% Erro maximo da
%

imagem nao foi atingido, mas do dominio foi.

if(k<N)&& (ef(k-1) >= tol1)


[A raiz nao atingiu |f(x^n)|<tol1, mas |x^{n}-x^{n-1}| <tol2]
str = [ O valor da raiz eh , num2str(x(k-1)), ]
it = [O numero de iteracoes foi , num2str(k-1), ]
efinalimagem=[Com erro da imagem, |f(x^n)| num2str(ef(k-1)), ]
efinaldominio=[Com, |x^{n}-x^{n-1}| dado por num2str(ex(k-1)), ]
end
%
% Numero de iteraes nao foi suficiente para o metodo convergir.
%
if (k>=N)
[O metodo nao convergiu. Aumente a tolerancia]
it = [O numero de iteracoes foi , num2str(k-1). ]
end
iter=k-1;
end

3.3. MTODO DA SECANTE

59

3.3 Mtodo da Secante


O mtodo da secante uma leve modificao do mtodo de Newton. Para este mtodo aproximamos a
derivada em x( n) por uma reta secante, conforme a Figura (3.7.b).
Note que isto pode ser facilmente obtido atravs da expanso de Taylor, pois, expandindo at n = 1,
em torno de um ponto c, temos uma aproximao do tipo:
f ( x) = f (c) + f (c)( x c) + O(| x c|2 ).

(3.21)

onde temos O(| x c|2 ) indica que o erro vai a zero quadraticamente quando x tende a c, conforme a
Definio 21.
Tomando x = x( n1) e c = x( n) temos, de (3.21)
f ( x ( n1)) = f ( x( n) ) + f ( x( n) )( x( n1) x( n) ) + O(| x( n1) x( n) |2 )
f ( x(n) ) =

f ( x( n) ) f ( x ( n1)) O(| x( n) x( n1) |2 )


+
.
( x( n) x( n1))
x( n) x( n1)

(3.22)

Como O(hk ), para algum h e k genricos, diz que taxa de convergncia e hk , quando dividimos tal
ordem por h p , ento a taxa de convergncia (ou ordem de convergncia) torna-se O(hk )/h p = O(hk p ),
portanto, de Eq. (3.22) temos, finalmente:
f ( x (n) ) =

f ( x( n) ) f ( x ( n1))
+ O(| x(n) x(n1)|).
( x( n) x( n1))

(3.23)

Portanto, podemos adaptar o mtodo de Newton, substituindo f ( x( n) ) por uma aproximao. Dessa
forma, para se obter o estado x( n+1), so necessrios os dois estados anteriores x( n1) e x( n) . O mtodo
da Secante escrito como:
x( n+1) = x( n)

f ( x (n) )
f ( x (n )) f ( x (n1))

( x ( n ) x ( n 1 ))

x( n+1) = x( n)

f ( x ( n) )( x( n) x( n1))
.
f ( x( n) ) f ( x ( n1))

(3.24)

Vamos repetir os mesmos exemplos usados para o mtodo de Newton. Note que para a inicializao do
mtodo da secante so necessrios dois chutes iniciais, os quais vamos chamar de x (1) e x( 0) .

Exemplo 11. Use o mtodo da secante para estimar a raiz f ( x) = 250.


Para utilizar o mtodo de secante, como em Newton, temos que 250 raiz de f ( x) = x2 250. Ento
o mtodo da secante, (3.24), fica escrito como:
x( n+1) = x( n)

(( x(n) )2 250)( x(n) x(n1))


.
( x( n) )2 ( x( n1))2

(3.25)

Precisamos dar dois chutes iniciais paraa raiz a fim de inicializar o mtodo. Vamos fornecer as duas
razes exatas mais prximas da raiz de 250 que conhecemos que so 15 e 16 x (1) = 15 e x( 0) = 16.
Ento, usando (3.25), podemos achar x( 1) como:
x(1) = x(0)

(( x(0))2 250)( x(0) x(1) )


15, 8064.
( x(0) )2 ( x(1))2

(3.26)

Avaliando a funo f em x( 1) para calcular o erro, obtemos:

| f ( x(1) )| = |( x(1))2 250| 0, 1561.

O erro no est to satisfatrio quanto o do mtodo de Newton, pois um dos chutes, 15, estava longe da
soluo. Vamos continuar iterando x( 1) = 15, 8064, encontramos para o prximo ponto
x(2) = x(1)

(( x(1))2 250)( x(1) x(0) )


= 15.8114.
( x(1) )2 ( x(0))2

(3.27)

CAPTULO 3. MTODOS PARA O CLCULOS DE RAZES DE FUNES

60

Avaliando a funo f em x( 2) para calcular o erro, obtemos:

| f ( x)| = |( x(2))2 250| 0, 0009.


que uma excelente aproximao, menos boa do que de Newton, mas com duas iteraes j encontramos
uma raiz com erro menor que 0, 001.
Exemplo 12. Use o mtodo da Secante para encontrar a raiz de f ( x) = x2 cos( x), com erro de 0, 01.
o mtodo da secante, (3.24), fica escrito como:
x( n+1) = x( n)

(( x(n))2 cos( x(n) ))( x(n) x(n1) )


.
( x(n) )2 cos( x(n) ) ( x(n1))2 cos( x(n1))

(3.28)

Precisamos dar dois chutes iniciais para a raiz a fim de inicializar o mtodo. Vamos fornecer os dois
extremos 0 e 1, ou seja, x(1) = 0 e x ( 0) = 1, note que neste caso no teremos diviso por zero.
Ento x( 1), de (3.28), obtido satisfazendo:
x(1) = x(0)

(( x(0))2 cos( x(0)))( x(0) x(1) )


0, 6851.
cos( x(0) ) ( x(1))2 cos( x(1))

( x(0) )2

(3.29)

Avaliando a funo f em x( 1) para calcular o erro, obtemos:

| f ( x(1))| = |( x(1) )2 cos( x(1))| 0, 3050


A preciso de 0, 01 no foi atingida. Iterando mais uma vez, para x( 1) = 0, 6851, encontramos
x(2) = x(1)

(( x(1))2 cos( x(1) ))( x(1) x(0) )


0, 8107.
( x(1))2 cos( x(1)) ( x(0) )2 cos( x(0) )

(3.30)

Avaliando a funo f em x( 2) para calcular o erro, obtemos:

| f ( x(2) )| = |( x(2))2 cos( x(2) )| 0, 0318.


A preciso de 0, 01 no foi atingida, diferentemente do mtodo de Newton que nos deu a convergncia
com apenas duas iteraes. Iterando mais uma vez, para x( 2) = 0, 8107, encontramos
x(3) = x(2)

(( x(2))2 cos( x(2) ))( x(2) x(1) )


0, 8253.
( x(2))2 cos( x(2)) ( x(1) )2 cos( x(1) )

(3.31)

Avaliando a funo f em x( 3) para calcular o erro, obtemos:

| f ( x(3) )| = |( x(3))2 cos( x(3) )| 0, 0028.


A tolerncia foi atingida, entretanto, com 3 iteraes o mtodo da secante deu um erro maior do que o
mtodo de Newton apenas com duas iteraes. O mtodo da secante tem vantagens, pois, mesmo para
regies em que temos uma derivada nula, as vezes ele pode ser aplicado, diferentemente do mtodo de
Newton, fazendo com que o mtodo da secante seja mais robusto em certas situaes.

3.3.1

Implementao do Mtodo da Secante

function [ x, ef, ex,iter ] = secante


a=input(Entre com a funcao ,s);
f=inline(a);

3.3. MTODO DA SECANTE

61

xm1=input(Entre com o primeiro chute inicial ) ;


x0=input(Entre com o segundo chute inicial ) ;
tol1=input(Entre com a tolerancia exigida para o erro de f(^{n+1}));
tol2=input(Entre com a tolerancia exigida para o erro |x^{n+1}-x^{n}|);
N= input(Entre com o maximo numero de iteracoes possiveis );
%
%
%
%
%
%
%
%
%
%
%

Metodo da Secante
Descobre as raizes sucessivamente.
Output:
x - aproximacao da raiz
ef - |f(x^n)| (ou seja, o erro de $f$.
ex - erro estimado emvalor absoluto dno dominio
k=numero de iteracoes.
Example:
[ x, ex ] = secante( exp(x)+x, exp(x)+1, 0, 0.5*10^-5, 10 )

x(1)=x0;
x(2) = x0 - ((f(x0)(x0-xm1))/(f(x0)-f(xm1)));
ef(1)=abs(f(x(1));
ex(1) = abs(x(1)-x0);
k = 3;

% Comando para fazer o grfico (apenas cosmetico).


xxx=linspace(x(1),x0,100);
plot(xxx,f(xxx))
hold on
plot(x0,f(x0), *)
plot(xxx,((f(x0))/(x0-x(1)))*xxx-((f(x0))/(x0-x(1)))*x(1))
%
pause
while (ef(k-2) >= tol1) && (ex(k-2) >= tol2) && (k <= N)
x(k) = x(k-1) - ((f(x(k-1))(x(k-1)-x(k-2)))/(f(x(k-1))-f(x(k-2))));
ef(k-1)=abs(f(x(k));
ex(k-1) = abs(x(k)-x(k-1));
% Comando para fazer o grfico (apenas cosmetico).
xxx=linspace(x(k),x(k-1),100);
plot(xxx,f(xxx))
hold on
plot(x(k-1),f(x(k-1)), *)
plot(xxx,((f(x(k-1)))/(x(k-1)-x(k)))*xxx-((f(x(k-1)))/(x(k-1)-x(k)))*x(k))
%

CAPTULO 3. MTODOS PARA O CLCULOS DE RAZES DE FUNES

62
k = k+1;
pause
end

%
% Verificao quanto ao erro e ao nmero de iteraes atingidas.
%
%
% Erro maximo da imagem foi atingido. Raiz encontrada
%
if(k-1<N)&& (ef(k-2) < tol1)
str = [A raiz atingiu |f(x^n)|<tol1. O valor da raiz eh , num2str(x(k-1)), ]
efinalimagem=[Com erro da imagem, |f(x^n)| num2str(ef(k-2)), ]
efinaldominio=[Com, |x^{n}-x^{n-1}| dado por num2str(ex(k-2)), ]
it = [O numero de iteracoes foi , num2str(k-2), ]
end
%
% Erro maximo da
%

imagem nao foi atingido, mas do dominio foi.

if(k-1<N)&& (ef(k-2) >= tol1)


[A raiz nao atingiu |f(x^n)|<tol1, mas |x^{n}-x^{n-1}| <tol2]
str = [ O valor da raiz eh , num2str(x(k-1)), ]
it = [O numero de iteracoes foi , num2str(k-2), ]
efinalimagem=[Com erro da imagem, |f(x^n)| num2str(ef(k-2)), ]
efinaldominio=[Com, |x^{n}-x^{n-1}| dado por num2str(ex(k-2)), ]
end
%
% Numero de iteraes nao foi suficiente para o metodo convergir.
%
if (k-1>=N)
[O metodo nao convergiu. Aumente a tolerancia]
it = [O numero de iteracoes foi , num2str(k-2). ]
end
iter=k-2;
end

3.4. EXTENSO DO MTODO DE NEWTON PARA FUNES VETORIAIS

63

3.4 Extenso do Mtodo de Newton para funes vetoriais


O mtodo de Newton pode ser facilmente extendidos para funes vetoriais.
Definio 22. Entendemos por funes vetoriais (ou aplicaes, ou ainda campos vetoriais) funes com domnio sendo um subconjunto denso do R p e o contradomnio um subconjunto denso de Rq
para p e q inteiros maiores do que 1. Para a obteno das razes, vamos assumir que p = q.
Dessa forma a funo f , a qual encontraremos as razes, satisfaz f : D R p R p , ou seja,
f ( x) = ( f 1 ( x), f 2 ( x), , f ( x)) T , no qual x = ( x 1 , x2 , , x p ) T
De fato, atravs de (3.8), podemos verificar que a extenso bastante simples. Entretanto, no
mtodo de Newton precisamos de calcular a derivada da funo para a qual queremos encontrar a raiz.
O equivalente neste caso a matriz Jacobiana

Definio 23. Seja f : D R p R p , com, f ( x) = ( f 1 ( x), f 2 ( x), , f ( x)) T , e x = ( x 1 , x2 , , x p ) T ,


uma funo vetorial contnua que admite todas as derivadas parciais em relao a x, ento a matriz
Jacobiana a matriz quadrada definida como:

f1 f1
f1

x1 x2
x p

f2 f2
f2

x p
(3.32)
J ( x) = x1 x2

..
..
..

.
.

fp fp
fp

x1 x2
x p

Assumindo que a matriz Jacobiana admite inversa em pontos adequados, o mtodo de Newton (3.8)
fica escrito como:

 1
x ( n+1 ) = x ( n) J ( x( n) )
f ( x(n) ),
(3.33)

 1
no qual J ( x( n) )
a inversa da matriz Jacobiana avaliada no ponto x( n) .

Lembrando que conhecemos x( n) e queremos encontrar o ponto x( n+1) da nossa sequncia aproximativa.
Para sistemas de equaes pequenos, o clculo da inversa imediato, mas para sistemas grandes,
o clculo da matriz inversa bastante custoso, entretanto, nestes casos, podemos reescrever (3.33)
como um sistema linear e aplicar os mtodos desenvolvidos no Captulo 2, para a resoluo do sistema
proveniente.
Passando x( n) para o lado esquerdo na igualdade (3.33) e multiplicando ambos os lados do resultado
por J ( x( n) ), ns obtemos:
J ( x( n) )( x( n+1) x( n) ) = f ( x( n) ).
(3.34)
Definindo x( n) = ( x( n+1) x( n) ), ento o sistema (3.34) fica escrita como
J ( x( n) )x ( n) = f ( x( n) ),

(3.35)

o qual resolvido, como j dito anteriormente, utilizando-se as tcnicas desenvolvidas no Captulo 2.


Encontrado x( n) , para obter x( n+1) basta proceder:
x( n) = ( x( n+1) x( n) )

Para o prximo exemplo precisamos definir:

x( n+1) = x( n) + x( n) .

(3.36)

Definio 24. Seja f : D R p R, uma funo contnua que admite todas as derivadas parciais de
primeira ordem, o gradiente de f , o qual denotado por f (ou grad( f )), definido como a aplicao
f : D R p R p , escrita como o vetor:


f T
f f
.
(3.37)
,
, ,
f =
x1 x2
x p

CAPTULO 3. MTODOS PARA O CLCULOS DE RAZES DE FUNES

64

Definio 25. Seja f : D R p R, um ponto crtico de f , so os valores x R p tal que o gradiente


de f , ou seja, x R p tal que f ( x) = 0.
Os pontos crticos so candidatos a pontos de: mximo, mnimo ou sela.
Exemplo 13. Encontre os pontos crticos da funo f ( x) = x2 + y2 , com preciso de 0, 001. Para
encontrar tais pontos crticos precisamos derivar a funo f para encontrar o gradiente:


f f T
f =
= (2x, 2y).
,
x y
a soluo pra este sistema bem fcil, x = y = 0, entretanto, vamos aplicar o mtodo de Newton.
Observe que f D R2 R2 . A Jacobiana dessa aplicao a matriz:


 1

2 0
0
2
, cuja a inversa
0 2
0 12
Ento o mtodo de Newton (3.33) escrito, na forma vetorial, como:

  (n)   (n)  

 ( n+1)   ( n)   1
0
2 x(n)
x
x
0
x
x
2
=

=
.
=

0
0 12
2 y(n)
y(n)
y(n)
y( n+1)
y(n)

(3.38)

Para qualquer valor de ( x( 0), y( 0)) T fornecido, o mtodo de Newton d soluo exata para o ponto crtico
que (0, 0) T . Veja Figura (3.8.a).

0.8

0.6
4
0.4
28

1.0
0.2

0.0

yy

0.5

0
0

2
1

2 1
2

0.0
0.5

1.0
0.5
1.0
0.5

1.0

0.0

1.0

xx

Figura 3.8: a)- Esquerda. Funo f ( x) = x2 + y2 tendo ponto crtico


em ( x, y) = (0, 0), note que
p
este ponto crtico ponto de mnimo. b)- Direita. Funo f ( x) = 1 x2 y2 , com ponto crtico em
( x, y) = (0, 0), note que este ponto crtico ponto de mximo.
p
Exemplo 14. Encontre os pontos crticos da funo f ( x) = 1 x2 y2 , com preciso de 0, 001.
Para encontrar tais pontos crticos precisamos derivar a funo f para encontrar o gradiente:


T
y
f f T  x
2 2
.
(3.39)
=
,
f =
2
2
x y +1
x y +1
x y

Geometricamente (veja Figura (3.8.b)) e por intuio, podemos ver que a soluo para este sistema
x = y = 0, entretanto, vamos aplicar o mtodo de Newton. Observe que f : D R2 R2 . A
Jacobiana e a sua inversa dessa aplicao so as matrizes:

y2 1
xy
p
p

 2p

3
2+1
( x2 y2 +1) 23
x
x2 yp
x2 y2 + 1
x y 
x2 y2 + 1
( x 2 y 2 + 1 ) 2

p
xy
,

x2 1
y2 1
x2 y2 + 1
x y x2 y2 + 1

3
3
( x2 y2 +1) 2
( x2 y2 +1) 2

3.4. EXTENSO DO MTODO DE NEWTON PARA FUNES VETORIAIS

65

Ento o mtodo de Newton (3.33) escrito, depois de alguns clculos, na forma vetorial, como:





 ( n+1)   ( n) 
x(n) ( x(n) )2 + ( y(n) )2 1
x(n) ( x(n) )2 + ( y(n))2
x
x
 (3.40)


 =
=

y( n+1)
y(n)
y(n) ( x(n) )2 + ( y(n) )2
y(n) ( x(n) )2 + ( y(n) )2 1

Vamos fornecer, inicialmente, valor de ( x( 0) , y( 0)) T = (0, 5; 0, 5) T, ento na primeira iterao, utilizando
(3.40), temos:





 (1) 
x(0) ( x(0) )2 + ( y(0))2
0, 25
x


=
.
(3.41)
=
0, 25
y(1)
y(0) ( x(0) )2 + ( y(0))2 =

Substituindo no gradiente da funo, dado por (3.39), obtemos:


q
|| f ( x(1) , y(1))||2 (0.2672612419)2 + (0.2672612419)2 0.377964473.

Estamos longe do valor da raiz, pois o erro ainda bem grande. Vamos iterar mais uma vez, usando o
valor ( x( 1) , y( 1)) T = (0, 25; 0, 25) T, na segunda iterao, temos:



 (2) 


(1) ( x(1))2 + ( y(1))2
x
x
0, 03125

=


=
.
(3.42)
0, 03125
y(2)
y(1) ( x(1))2 + ( y(1))2 =

Substituindo no gradiente da funo, dado por (3.39), obtemos:


q
|| f ( x(2) , y(2))||2 (0, 03128056235)2 + (0, 03128056235)2 0, 04423739552

Ainda no atingimos a tolerncia exigida, mas estamos bem prximos dela. Vamos iterar pela terceira
vez, obtendo:





 (3) 
x(2) ( x(2) )2 + ( y(2))2
0, 000061
x

.
(3.43)
=
0, 000061
y(3)
y(2) ( x(2) )2 + ( y(2))2 =

Substituindo no gradiente da funo, dado por (3.39), obtemos:


q
|| f ( x(2) , y(2))||2 (0, 000061)2 + (0, 000061)2 0, 000086.

Atingimos a raiz na terceira iterao com erro de, aproximadamente, 0, 00009, bem menor que o erro
exigido de 0, 01.
Observao 14. Existem outros mtodos que podem ser usados para aproximar as razes da funo vetorial, entretanto, sua deduo bem mais trabalhosa e est fora do objetivo desse material introdutrio
de clculo numrico. Para mais detalhes veja Captulo 11 de [1].

3.4.1

A implementao do Mtodo de Newton p-dimensional

function [ x, ex,iter ] = newtonpdimensional(x0,tol)


%
%
%
%
%
%

Metodo de Newton.
Descobre as raizes sucessivamente.

Diferentemente do metodo anterior, nao podemos


entrar com a funo $f$ e a matriz $jacobiana$

CAPTULO 3. MTODOS PARA O CLCULOS DE RAZES DE FUNES

66

% Vamos defini-la num a funo separada (abaixo)


% a qual chamamos de $funcaof$ e $Jacobianaf$
%
%
%
%
%
%
%
%
%

Entrada do mtodo
x0 = chute inicial como vetor COLUNA
tol = tolerancia maxima admitida para o erro.
Output:
x - aproximacao da raiz
ex - erro estimado em valor absoluto.
k=numero de iteracoes.

% Calcula a dimenso para o qual


% estamos querendo encontrar a raiz.
nn=length(x0);
%
% Neste mtodo iremos utilizar o comando de inversao de matrizes do matlab
%
%Avalie a matriz Jacobiana no ponto x0
J= Jacobiana(x0);
%Inverte a Jacobiana
A= inv(J);
x(:,1) = x0 - A*(funcaof(x0));
calculaf1(:,1)=f(x(:,1));
%
% Calcula os erros absolutos para o dominio e a imagem
% Estamos usando a norma 2.
%
auxiliar1=0
auxiliar2=0;
for ii=1:nn
auxiliar1=(x(ii,1)-x0(ii))^2+auxiliar;
auxiliar2=(calculaf1(ii))^2+auxiliar2;
end
ef(1)=sqrt(auxiliar2);
ex(1) = sqrt(auxiliar1);
k=2;
pause
while (ef(k-1) >= tol1) && (ex(k-1) >= tol2) && (k <= N)
J= Jacobiana(x(:,k-1));
%Inverte a Jacobiana
A= inv(J);
x(:,k) = x(:,k-1) - A*(calculaf1(:,k-1));
calculaf1(:,k)=f(x(:,k));

3.4. EXTENSO DO MTODO DE NEWTON PARA FUNES VETORIAIS

67

%
% Calcula os erros absolutos para o dominio e a imagem
% Estamos usando a norma 2.
%
auxiliar1=0
auxiliar2=0;
for ii=1:nn
auxiliar1=(x(ii,k)-x(ii,k-1))^2+auxiliar;
auxiliar2=(calculaf1(ii))^2+auxiliar2;
end
ef(k)=sqrt(auxiliar2);
ex(k) = sqrt(auxiliar1);
k = k+1;
pause
end
%
% Verificao quanto ao erro e ao nmero de iteraes atingidas.
%
%
% Erro maximo da imagem foi atingido. Raiz encontrada
%
if(k<N)&& (ef(k-1) < tol1)
str = [A raiz atingiu |f(x^n)|<tol1. O valor da raiz eh , num2str(x(:,k-1)), ]
efinalimagem=[Com erro da imagem, |f(x^n)| num2str(ef(k-1)), ]
efinaldominio=[Com, |x^{n}-x^{n-1}| dado por num2str(ex(k-1)), ]
it = [O numero de iteracoes foi , num2str(k-1), ]
end
%
% Erro maximo da
%

imagem nao foi atingido, mas do dominio foi.

if(k<N)&& (ef(k-1) >= tol1)


[A raiz nao atingiu |f(x^n)|<tol1, mas |x^{n}-x^{n-1}| <tol2]
str = [ O valor da raiz eh , num2str(x(:,k-1)), ]
it = [O numero de iteracoes foi , num2str(k-1), ]
efinalimagem=[Com erro da imagem, |f(x^n)| num2str(ef(k-1)), ]
efinaldominio=[Com, |x^{n}-x^{n-1}| dado por num2str(ex(k-1)), ]
end
%
% Numero de iteraes nao foi suficiente para o metodo convergir.
%
if (k>=N)
[O metodo nao convergiu. Aumente a tolerancia]
it = [O numero de iteracoes foi , num2str(k-1). ]
end
iter=k-1;
end

CAPTULO 3. MTODOS PARA O CLCULOS DE RAZES DE FUNES

68

3.5 Exerccios
Observao 15. Nos exerccios abaixo, caso o intervalo possua extremos sendo nmeros com vrgula,
utilizarei o smbolo ; para indicar a separao entre dois nmeros distintos.
Exerccio 1 Use o mtodo o teorema do valor intermedirio para cada uma das funes para provar
que elas possuem razes no intervalo selecionado e o use o mtodo da Biseco iterando o mtodo 3 vezes
e calcule o erro encontrado.

f ( x) = x cos( x) x [0, 1],


f ( x) = 3( x + 1)( x 0.5)( x 1) x [2; 1, 5] e x [1, 3]
Exerccio 2. Prove que cada funo f ( x) possui raiz no intervalo dado atravs do teorema do valor
intermedirio, e use o mtodo a biseco para encontrar raiz com tolerncia de 0, 01 em cada caso:
f ( x) = x3 7x2 + 14x 6, para x [0; 1],
4

x [1; 3, 2]

f ( x) = x 2x 4x + 4x + 4, para x [2; 1],

f ( x) = x 2 x , para x [0, 1],

x [0, 2],

x [2, 3]

f ( x) = e x x2 + x 2, para x [0, 1]

f ( x) = 2xcos(2x) ( x + 1)2 , para x [3, 2],


2

e x [3, 2; 4].

f ( x) = xcos( x) 2x + 3x 1, para x [0, 2; 0, 3],

e x [1; 0].

e x [1, 2; 1, 3].

e x [1, 0].

3.6. PROJETO: ENCONTRAR RAZES DE FUNES

3.6 Projeto: Encontrar razes de funes

69

70

CAPTULO 3. MTODOS PARA O CLCULOS DE RAZES DE FUNES

Captulo 4

Interpolao Polinomial
Muitas vezes, em problemas prticos cotidianos, deparamo-nos com um grupo de dados (que podem
ser obtidos experimentalmente ou atravs de frmulas) e queremos encontrar uma funo que passa
conecta todos esses dados.
Como uma primeira aproximao, a ideia encontrar um polinmio de grau adequado conectando
esses pontos.
Por exemplo, imagine que tenhamos obtido, atravs de algum experimento os pontos ( x 0 , y0 ) = (0, 1)
e ( x1 , y1 ) = (1, 3). A pergunta : Qual o polinmio de menor grau que conecta esses dois pontos?.
Desde o pr de 6, sabemos que dois pontos determinam de modo nico uma reta.
Uma reta encontrada atravs da Equao:
y = ax + b,
no qual devemos encontrar os valores de a (que o coeficiente angular, ou seja, a inclinao da reta) e b
(que o coeficiente linear, ou seja, o ponto no qual a reta corta o eixo y). Note que precisamos de duas
informaes para encontrar a e b, as quais foram fornecidas atravs dos pontos dados.
De modo genrico, para pontos ( x0 , y0 ) e ( x1 , y1 ) dados, tal que x0 6= x 1 , podemos encontrar os
valores a e b atravs do seguinte algoritmo.
Quando x = x0 , temos que y = y0 ; quando x = x 1 , temos que y = y1 . Dessa forma encontramos o
seguinte sistema linear nas incgnitas a e b:
(4.1)
(4.2)

y0 = ax0 + b,
y1 = ax1 + b.
Tem como soluo
a=

y1 y0
x1 x0

b=

portanto, a equao da reta y = ax + b escrita como:


y=

x0 y1 x1 y0
,
x0 x1

y1 y0
x0 y1 x1 y0
x+
.
x1 x0
x0 x1

(4.3)

(4.4)

Para o exemplo acima, tomando ( x 0 , y0 ) = (0, 1) e ( x1 , y1 ) = (1, 3), encontramos a reta, veja Figura
(4.1.a):
0 311
31
x+
= 2x + 1.
y=
10
01
Observe que a necessidade de x0 6= x1 aconteceu pois apenas nesse caso y funo. Caso x 0 = x1 e
y0 6= y1 a reta paralela ao eixo y e no uma funo, deveria ser dada por uma curva parametrizada.
Seguindo nosso raciocnio, imaginemos agora que nos sejam dados 3 pontos ( x0 , y0 ) = (0, 1), ( x 1 , y1 ) =
(1, 3) e ( x2 , y2 ) = (2, 8). A pergunta : Qual o polinmio de menor grau que conecta tais pontos? Caso
71

CAPTULO 4. INTERPOLAO POLINOMIAL

72
y

y
3

10

8
2
6
1

2
1.0

0.8

0.6

0.4

0.2

0.2

0.4

0.6

0.8

1.0

1.2

x
1.0 0.8 0.6 0.4 0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4

xxx

Figura 4.1: a)- Esquerda. Grfico da reta y = 2x + 1, interpolando os pontos ( x0 , y0 ) = (0, 1) e ( x 1 , y1 ) =


(1, 3). b)- Direita. Parbola de equao y = 1, 5x2 + 0, 5x + 1 interpolando os pontos ( x0 , y0 ) = (0, 1),
( x1 , y1 ) = (1, 3) e ( x1 , y1 ) = (2, 8).
os pontos sejam colineares, ou seja, estejam ao longo de uma linha reta (veja Definio e, como exerccio, verifique que os pontos dados acima de fato no so colineares) ento o polinmio de menor grau
que os conecta uma reta. Mas isso muito restritivo e para um grupo geral de 3 dados fornecidos
quase impossvel.
Definio 26. Trs pontos ( x0 , y0 ), ( x1 , y1 ) e ( x2 , y2 ) so colineares se satisfazem:
y y0
y y1
y1 y0
= 2
= 2
.
x1 x0
x2 x0
x2 x1

(4.5)

O mais natural imaginar que eles no sejam colineares. Da lgebra linear, sabemos que os pontos,
sob essas circunstncias determinam, de modo nico, um polinmio de segundo grau, ou seja, existe
um polinmio da forma
y = ax2 + bx + c
(4.6)
conectando os pontos.
Seguindo o mesmo raciocnio que usamos para encontrar os coeficientes a e b da reta, impomos as
condies que quando x = x0 , temos que y = y0 , quando x = x1 , temos que y = y1 e quando x = x2 ,
temos que y = y 2 . Dessa forma encontramos o seguinte sistema linear nas incgnitas a, b e c:
y0 = ax20 + bx0 + c,
y1 =
y2 =

ax21
ax22

(4.7)

+ bx1 + c,

(4.8)

+ bx2 + c,

(4.9)
(4.10)

O sistema linear formado pelas equaes (4.7)- (4.9) pode se escrito na forma matricial como:


1
1
(x x )1(x x )
x0 2 x0 1
y0
a
y0
a
x

x
x

x
(x0 x1 ) (x0 x2 )
(
)
(
)
0
1
0
2
1
2
1
2
x0 +x2
x +x
x1 2 x1 1 b = y1 b =
(x xx0)+(xx1 x )
y1
(x0 x11) ( x20 x2 )
(x0 x1 ) (x1 x2 )
0
2
1
2
2
x1 x2
x0 x2
x0 x1
y2
c
y2
c
x2
x2 1
(x x ) (x x )
(x x ) (x x )
(x x ) (x x )
0

Depois de muita conta, podemos mostrar que a soluo satisfaz:

x0 y2 +x2 y0 +x1 y2 x2 y1

x0 y1 (xx1 y0
0 x1 ) (x0 x2 ) (x1 x2 )
a

x0 2 y1 x1 2 y0 x0 2 y2 +x2 2 y0 +x1 2 y2 x2 2 y1
b =
(x0 x1 ) (x0 x2 ) (x1 x2 )

c
y1 x0 2 x2 y2 x0 2 x1 + y2 x0 x1 2 y1 x0 x2 2 y0 x1 2 x2 + y0 x1 x2 2

(x x ) (x x ) (x x )
0

Note que os clculos ficam bem complicados, j com um polinmio de grau 2.

(4.11)

73
Observao 16. Note que se os pontos forem colineares, ou seja, satisfizerem (4.5), ento a = 0 (prove
esse fato, usando (4.5) em (4.11)). Portanto, no precisamos nos preocupar inicialmente em verificar se
os pontos so ou no colineares, basta que xi 6= x j se i 6= j para qualquer conjunto de pontos e possvel
encontrar tal polinmio. Caso seja colinear, os coeficientes de graus mais altos iro, naturalmente,
anularem-se.
Em geral, para um exemplo especfico, muito mais fcil calcular a soluo diretamente, ou seja,
para encontrarmos o polinmio passando por ( x0 , y0 ) = (0, 1), ( x1 , y1 ) = (1, 3) e ( x2 , y2 ) = (2, 8),
precisamos resolver o sistema linear:
1 = a(0)2 + b(0) + c,
2

3 = a(1) + b(1) + c,
8 = a(2)2 + b(2) + c,

c=1

a+b+c = 3

4a + 2b + c = 8,

que tem como soluo bastante simples a = 1, 5, b = 0, 5 e c = 1, portanto o polinmio passando pelos
trs pontos dados y = 1, 5x 2 + 0, 5x + 1, veja Figura (4.1.b).
Agora imagine que tenhamos um grupo de m + 1 pontos ( x 0 , y0 ), ( x2 , y2 ), , ( xm , ym ). Genericamente (desconsiderando casos em que os pontos estejam todos sobre uma curva de grau menor que m),
o polinmio de menor grau que interpola esses pontos um polinmio de grau m da forma:
y = am x m + am1 x m1 + + a1 x 1 + a0 .

(4.12)

Observe que existem m + 1 incgnitas, que so os m + 1 coeficientes ai para i = 0, 1, , m e m + 1


informaes, que so os pontos para os quais o polinmio passa.
Usando a mesma estratgia anterior, iremos admitir que y = y0 , quando x = x0 , que y = y1 quando
x = x2 e assim sucessivamente at que y = yn quando x = xn . Dessa forma encontramos o seguinte
sistema linear nas incgnitas am , am1 , , a0 :
m1
+ + a1 x0 + a0 ,
y0 = am xm
0 + am1 x 0

m1
+ + a1 x1 + a0 ,
y1 = am xm
1 + am1 x 1
..
..
. =
.

(4.13)

m1
ym = am xm
+ + a1 xm + am ,
m + am1 x m

o qual pode ser escrito na forma matricial como:


m
x0 x0m1
x m x m1
1
1
AX = Y .
..

xm
m

m1
xm

..
.

1
1
..
.

am

am1

..
.
a0
1

y0
y1
..
.
ym

(4.14)

A matriz dos coeficientes A um tipo de matriz, chamada de matriz de Vandermonde. possvel


mostrar que se xi 6= x j para i 6= j a matriz no singular. Ento quer dizer que o sistema (4.14) tem
soluo e nica.
Exemplo 15. Encontre o polinmio de grau 4 passando pelos pontos (0, 1), (1, 3), (2, 7), (3, 5), (4, 11).
Para encontrar o polinmio, basta resolvermos o sistema:

0 0 0 0 1
a4
1
1 1 1 1 1 a3 3
4

2 23 22 2 1 a2 = 7
(4.15)

34 33 32 3 1 a1 5
a0
11
44 43 42 4 1

CAPTULO 4. INTERPOLAO POLINOMIAL

74

Usando algum mtodo desenvolvido no Captulo 2, encontramos a soluo de ( a4 , a3 , a2 , a1 , a0 ) como


(11/12, 41/6, 181/12, 43/6, 1), ento o polinmio de grau 4 fica escrito como:
y=

11 4 41 3 181 2 43
x
x +
x
x + 1.
12
6
12
6

Veja a Figura (4.2.a).


y

y
4.0

12

3.9
3.8

10

3.7
8

3.6
3.5

3.4
3.3

3.2
2

3.1
3.0
0.0

0.5

1.0

1.5

2.0

2.5

3.0

3.5

4.0

1.0 0.8 0.6 0.4 0.2 0.0

0.2

0.4

0.6

0.8

1.0

1.2

xxx

1.4

1.6

1.8

2.0

2.2

11 4 41 3 181 2 43
x
x +
x
x + 1, interpolando os
12
6
12
6
10
1
pontos (0, 1), (1, 3), (2, 7), (3, 5), (4, 11). b)- Direita. Reta de equao y = x +
passando pelos
3
3
pontos (1, 3), (2, 4).

Figura 4.2: a)- Esquerda. Grfico do polinmio y =

Poderamos entar estar satisfeitos e dizer que esse captulo est acabado e podemos passar para o
prximo. Bem, mas vamos entar imaginar um caso exemplo, nada absurdo.
Imagine que tenhamos 101 pontos para serem interpolados. Vamos imaginar que os valores de x
so da forma x0 = 0, x1 = 1, , xi = i x 100 = 100. Como estudado at agora, sabemos que podemos
encontrar um polinmio de grau 100 conectando esses pontos. Bastante grande, mas bem possvel de
termos que interpolar essa quantidade de pontos.
Portanto, a matriz dos coeficientes A ficaria escrita como:
x100
0
x100
1
.
..
x100
m

x99
0
x99
1

x99
m

..
.

1
1
..
.

0
1

0
1

2100
..
.

299

100100

(100)99

..
.

0
1
2
..
.
100

1
1

..
.
1

Observe que da primeira linha para a centsima linha, a ordem da matriz fica extremamente
grande, pois passa de 1 para (o absurdo) 100100. Qualquer mtodo utilizado para a soluo, poder
encontrar muitos problemas e os erros podem aumentar tanto a ponto de estragar definitivamente a
soluo do sistema.
Uma questo se coloca: Como tentar contornar esse fato? Como conseguir interpolar esses pontos
utilizando um algoritmo que seja estvel e nos d uma soluo adequada?
Isso tem que acontecer, pois sabemos ser possvel interpolar esses pontos. Para tanto surgem algumas tcnicas interessantes, tais como o mtodo de Lagrange que descreveremos a seguir. Na Seo 4.4
discutiremos a spline-cbica, que uma tcnica de interpolao um pouco diferente da de encontrar polinmios, mas particularmente, muito til. Em geral, os programas que constroem grficos, baseiam-se
na tcnica de spline cbica para desenhar as curvas.

4.1. UNICIDADE DA EXPANSO POLINOMIAL

75

4.1 Unicidade da expanso polinomial


Na prxima seo, iremos propor um mtodo diferente para encontrar um polinmio de grau m passando por m + 1 pontos. Uma pergunta bastante relevante : Este polinmio ser nico ou existem
outros polinmios de grau m que interpolam os pontos?.
Definio 27. Dizemos que um polinmio p( x) interpola um conjunto pontos ( x i , yi ), para i = 0, 1, , m
dados, se
p( xi ) = yi ,
i = 0, 1, 2, , m.
Definio 28. Dado um polinmio qualquer p( x), definimos como o grau de um polinmio o maior
expoente (inteiro e positivo) de suas potncias. Representamos tal grau como grau( p( x))
A resposta a essa pergunta : Sim, o polinmio nico e dado pelo seguinte Teorema:
Teorema 8. Existe um nico polinmio de grau menor ou igual a m interpolando m + 1 pontos ( x i , yi ),
para i = 0, 1, , m dados.
Prova: Suponhamos que existam dois polinmios, denotados por p1 ( x) e p2 ( x), de grau menor ou
igual a m interpolando os pontos ( x i , yi ), para i = 0, 1, , m dados, ou seja, para i = 0, 1, , m
p1 ( xi ) = yi

e p2 ( xi ) = yi .

(4.16)

Definimos um polinmio P( x) como sendo a diferena de p1 ( x) e p2 ( x):


P( x) = p1 ( x) p2 ( x),
Sabemos que a soma ou diferena de polinmios no podem aumentar o seu grau (podem diminuir,
desde que pode haver cancelamento do termo de maior expoente entre os polinmios). Portanto ou
P( x) 0, ou seja, P( x) identicamente zero, ou grau( P( x)) m.
Se P( x) no identicamente nulo note que temos cada xi , para i = 0, 1, , m, uma raiz do
polinmio P( x) pois
P( xi ) = p1 ( xi ) p2 ( x i ) = yi yi = 0,

no qual a ltima igualdade obtida de (4.16).


Quer dizer que P( x) tem m + 1 razes, neste caso P( x) poderia ser decomposto em suas razes como:
P( x) = h( x)( x x0 )( x x 1 ) ( x xm ),

(4.17)

no qual o grau de h( x) seria maior ou igual a zero (o polinmio constante, exceto o identicamente nulo,
tem grau 0). Mas isto um absurdo, pois se P( x) pudesse ser decomposto como (4.17) o grau( P( x)) > m.
O absurdo esteve em supor que P( x) no era identicamente nulo. Portanto, a nica possibilidade para
P( x) 0 e, portanto,
p1 ( x) p2 ( x) 0 p1 ( x) p2 ( x),
(4.18)
e o Teorema est provado.

Observao 17. Como o polinmio de grau m nico, ento no importa da forma que calculemos
o polinmio. O mtodo de Lagrange dar o mesmo polinmio que seria obtido pelo mtodo anterior,
entretanto, de forma bem mais estvel, pois no h crescimento rpido dos termos, como no caso da
matriz de Vandermonde anteriormente descrita.

CAPTULO 4. INTERPOLAO POLINOMIAL

76

4.2 Mtodo de Lagrange


O mtodo de Lagrange um mtodo bastante simples, mas poderoso e que torna possvel a obteno de
um polinmio de grau m interpolando m + 1 pontos qualquer que seja o valor de m (inclusive o exemplo
acima que tornou-se insolvel).
Ele baseia-se numa ideia que vamos comeando a construir paulatinamente. Primeiro para equaes lineares, depois para polinmios de segundo grau at sua generalizao para um caso de m-simo
grau.
Polinmio de Grau 1
Como na Seo anterior, suponhamos que queiramos interpolar os pontos ( x0 , y0 ) e ( x1 , y1 ) com x0 6= x1 .
Vamos propor um polinmio p( x) dado por:
p ( x ) = L0 ( x ) y 0 + L1 ( x ) y 1 ,

(4.19)

no qual L0 ( x) e L1 ( x) so funes a serem determinadas. Vamos determin-la do modo mais simples


que pudermos. Primeiro, note que se impusermos a condio sobre L0 ( x) e L1 ( x) satisfazendo:
(
(
1, se x = x0 ,
0, se x = x0 ,
L0 ( x ) =
e
L1 ( x ) =
(4.20)
0, se x = x1 ,
1, se x = x1 ,
temos de (4.19) que o polinmio p( x) satisfaz:
p ( x 0 ) = L0 ( x 0 ) y 0 + L1 ( x 0 ) y 1 = y 0

p ( x 1 ) = L0 ( x 1 ) y 0 + L1 ( x 1 ) y 1 = y 1 ,

o que indica que o polinmio p( x) realmente interpola ( x0 , y0 ) e ( x 1 , y1 ).


Precisamos encontrar uma funo razovel para L0 ( x) e L1 ( x) de modo que eles retenham as propriedades (4.20) e continuem simples. A melhor forma de propor tal funo olhando para os valores
que ela se anula.
Comeando por L0 ( x), note que este anula-se para x = x1 , ento j temos uma boa indicao de
como proceder e desenvolver um algoritmo simples. Vamos propor, inicialmente,
L0 ( x ) = x x 1 ,

(4.21)

Observe que (4.21) a funo mais simples que se anula em x1 e no constante. Mas note que ela
ainda no satisfaz a segunda propriedade, ou seja, que L0 ( x0 ) = 1. Para chegar em tal propriedade,
basta normalizarmos (4.21), dividindo-o por ( x0 x1 ) e temos:
x x1
,
x0 x1

(4.22)

x x0
.
x1 x0

(4.23)

x x0
x x1
y0 +
y ,
x0 x1
x1 x0 1

(4.24)

L0 ( x ) =

o qual um polinmio de grau um bem simples que satisfaz as propriedades (4.20).


Usando o mesmo argumento construtivo para L1 ( x) (refaa os passos), propomos a seguinte funo:
L1 ( x ) =

Usando (4.22) e (4.23), o polinmio p( x) dado por (4.19) escrito como:


p( x) =

Exemplo 16. Encontre, pelo mtodo de Lagrange, o polinmio passando por (1, 3), (2, 4).
Para encontrar o polinmio, basta substituir (1, 3), (2, 4) em (4.24):
p( x) =
que uma reta, veja Figura (4.2.b)

x2
x+1
x 10
3+
4= +
,
1 2
2+1
3
3

4.2. MTODO DE LAGRANGE

77

Polinmio de Grau 2
Seguindo nosso raciocnio, suponhamos que queiramos interpolar os pontos ( x 0 , y0 ), ( x 1 , y1 ) e ( x 2 , y2 )
com x0 6= x1 6= x2 . Vamos propor um polinmio p( x) dado por:
p ( x ) = L0 ( x ) y 0 + L1 ( x ) y 1 + L2 ( x ) y 2 ,

(4.25)

no qual L0 ( x), L1 ( x) e L2 ( x) so funes a serem determinadas. Vamos determin-la do modo mais


simples que pudermos. Primeiro, note que se impusermos a condio sobre L0 ( x), L1 ( x) e L2 ( x) satisfazendo:

1, se x = x0 ,
0, se x = x0 ,
0, se x = x0 ,
L0 ( x) = 0, se x = x1 ,
L1 ( x) = 1, se x = x1 ,
e L2 ( x) = 0, se x = x1 ,
(4.26)

0, se x = x2 ,
0, se x = x2 ,
1, se x = x2 ,

temos de (4.25) que o polinmio p( x) satisfaz:

p ( x 0 ) = L0 ( x 0 ) y 0 + L1 ( x 0 ) y 1 + L2 ( x 0 ) y 2 = y 0 ,
p ( x 1 ) = L0 ( x 1 ) y 0 + L1 ( x 1 ) y 1 + L2 ( x 1 ) y 2 = y 1
p ( x 2 ) = L0 ( x 2 ) y 0 + L1 ( x 2 ) y 1 + L2 ( x 2 ) y 2 = y 2 ,
o que indica que o polinmio p( x) realmente interpola ( x0 , y0 ), ( x1 , y1 ) e ( x2 , y2 ).
Precisamos encontrar uma funo razovel para L0 ( x), L1 ( x) e L2 ( x) de modo que eles retenham
as propriedades (4.26) e continuem simples. A melhor forma de propor tal funo olhando para os
valores que ela se anula, como no caso linear.
Vamos fazer para L0 ( x), os outros so iguais. Note que L0 ( x) se anula para x = x1 e x = x 2 , fato
que nos d uma boa indicao de como proceder e desenvolver um algoritmo simples. A funo mais
simples que satisfaz essa propriedade que podemos pensar :
L0 ( x) = ( x x1 )( x x2 ),

(4.27)

Para obter que L0 ( x0 ) = 1, basta normalizarmos (4.27), dividindo-o por ( x0 x1 )( x0 x2 ) e temos:


L0 ( x ) =

( x x1 )( x x2 )
,
( x0 x1 )( x0 x2 )

(4.28)

o qual um polinmio de grau dois bem simples que satisfaz as propriedades (4.26).
Usando o mesmo argumento construtivo para L1 ( x) e L2 ( x) (refaa os passos), propomos as seguintes funes:
( x x0 )( x x2 )
( x x0 )( x x1 )
L1 ( x ) =
texte L2 ( x) =
.
(4.29)
( x1 x0 )( x1 x2 )
( x2 x0 )( x2 x1 )
Usando (4.28) e (4.29), o polinmio p( x) dado por (4.25) escrito como:
p( x) =

( x x1 )( x x2 )
( x x0 )( x x2 )
( x x0 )( x x1 )
y +
y +
y ,
( x0 x1 )( x0 x2 ) 0 ( x1 x0 )( x1 x2 ) 1 ( x2 x0 )( x2 x1 ) 2

Exemplo 17. Encontre, pelo mtodo de Lagrange, o polinmio passando por (0, 2), (1, 6), (2, 4).
Para encontrar o polinmio, basta substituir esses pontos em (4.30):
p( x) =

( x 1)( x 2)
( x 0)( x 2)
( x 0)( x 1)
2+
6+
2 = 7 x 3 x2 + 2,
(0 1)(0 2)
(1 0)(1 2)
(2 0)(2 1)

que uma parbola, veja Figura (4.3.b)

(4.30)

CAPTULO 4. INTERPOLAO POLINOMIAL

78
y

y
6

14
12

10
8

4
6
4
3
2
0

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

1.6

1.8

2.0

2.2

2
4

11 4 41 3 181 2 43
x
x +
x
x + 1, inter12
6
12
6
polando os pontos (0, 1), (1, 3), (2, 7), (3, 5), (4, 11).
b)- Direita.
Polinmio de grau 7
11 x7
581 x6
1879 x5 5467 x4 289 x3
21731 x2 6227 x
y=

+
+ 2, interpolando (0, 2), (1, 6),
336
720
240
144
3
180
105
(2, 4), (3, 5), (4, 2), (5, 9), (6, 12), (7, 1).
Figura 4.3:

a)- Esquerda.

Grfico do polinmio y =

Polinmio de Grau m- qualquer


Suponhamos que queiramos interpolar os pontos m + 1 pontos enumerados como ( x 0 , y0 ), ( x1 , y1 ), ,
( xm , ym ) com xi 6= x j se i 6= j [1, 2, , m].
Usando o mesmo raciocnio, aplicado aos casos anteriores, vamos propor um polinmio p( x) dado
por:
p ( x ) = L0 ( x ) y 0 + L1 ( x ) y 1 + + Lm ( x ) y m ,
(4.31)

no qual L0 ( x), L1 ( x), , L2 ( x) so funes a serem determinadas. Vamos determin-la do modo


mais simples que pudermos. Primeiro, note que se impusermos a condio sobre qualquer Li ( x) para
i = 1, 2, , m
(
1, se x = xi ,
Li ( x ) =
(4.32)
0, se x = x j , para j = 1, 2, , m e j 6= i,
temos de (4.31) que o polinmio p( x) satisfaz:
p ( x i ) = L0 ( x i ) y 0 + L1 ( x i ) y 1 + + Li 1 ( x i ) y i + Li ( x i ) y i + Li +1 ( x i ) y i +1 + + Lm ( x i ) y m
p( xi ) = 0y0 + 0y1 + + 0yi + (1) yi + 0yi+1 + + 0ym = yi

ou seja, o polinmio p( x) interpola ( x0 , y0 ), ( x1 , y1 ), , ( x m , ym ).


Usamos o mesmo argumento utilizado para a deduo dos graus 1 e 2, para o polinmio Li ( x)
satisfazer as propriedades (4.32) basta escolh-lo como:
Li ( x ) =

( x x1 )( x x2 ) ( x xi1 )( x xi+1 ) ( x xm )
=
( xi x1 )( xi x2 ) ( xi xi1 )( xi xi+1 ) ( xi xm )

x xj
,
x xj
j = 0, j 6 = i i

(4.33)

note que Li ( x) um polinmio de grau m satisfazendo as propriedades (4.32).


Definio 29. O smbolo
m

j = 0, j 6 = i

representa o produtrio de 1 at m, exceto o elemento de ordem i, o que deixa a representao da


frmula mais sucinta (mas no menos complicada).

4.2. MTODO DE LAGRANGE

79

Usando (4.33) o polinmio (4.31) escrito como:


m

p( x) =

x xj
xi x j y0 +
j=1

x xj
xi x j y1 + +
j = 0, j 6 = 1

m1 x x
x xj
j
y
+
m

1
xi x j
xi x j ym .
j=0
j = 0, j 6 = m 1
m

(4.34)

Exemplo 18. Encontre, pelo mtodo de Lagrange, o polinmio de grau 7, passando pelos pontos 8 (0, 2),
(1, 6), (2, 4), (3, 5), (4, 2), (5, 9), (6, 12), (7, 1).
Para encontrar o polinmio, basta substituir esses pontos em (4.34), com m = 7. Como o polinmio bastante grande, iremos calcular cada um dos L0 at L7 separadamente. Aps alguma lgebra,
encontramos:

( x 1) ( x 2) (x 3) ( x 4) (x 5) ( x 6) ( x 7)
,
5040
x (x 2) (x 3) ( x 4) (x 5) ( x 6) (x 7)
,
L1 ( x ) =
720
x ( x 1) (x 3) ( x 4) (x 5) ( x 6) ( x 7)
L2 ( x ) =
,
240
x (x 1) (x 2) ( x 4) (x 5) ( x 6) (x 7)
L3 ( x ) =
,
144
x ( x 1) (x 2) ( x 3) (x 5) ( x 6) ( x 7)
,
L4 ( x ) =
144
x (x 1) (x 2) ( x 3) (x 4) ( x 6) (x 7)
L5 ( x ) =
,
240
x ( x 1) (x 2) ( x 3) (x 4) ( x 5) ( x 7)
L6 ( x ) =
,
720
x (x 1) (x 2) ( x 3) (x 4) ( x 5) (x 6)
L7 ( x ) =
.
5040

L0 ( x ) =

Ento o polinmio p( x), dado por (4.34) e usando os valores de L0 ( x), L1 ( x), , L7 ( x), acima encontramos:
p( x) =

581 x6
1879 x5 5467 x4
289 x3 21731 x2 6227 x
11 x7

+
+ 2.
336
720
240
144
3
180
105

Veja a Figura 4.3.b).


S a ttulo de lembrana, do Teorema 8, sabemos que esta expanso nica. Portanto podemos
estabelecer nossos clculos acima atravs do seguinte:
Teorema 9. (Teorema de Lagrange) O nico polinmio de grau m interpolando m + 1 pontos ( xi , yi ),
para i = 0, 1, , m, dado por (4.31) com os Li ( x), para i = 0, 1, , m satisfazendo (4.33).
Tal fato ir motivar uma forma mais simples de encontrarmos os coeficientes da expanso de Lagrange.
Observao 18. Neste material no provaremos a convergncia, nem o erro cometido pela interpolao
de polinmios aproximando funes, pois est fora do escopo desse curso introdutrio. Em [1] tal anlise
feita detalhadamente.

CAPTULO 4. INTERPOLAO POLINOMIAL

80

4.3 Diferenas Divididas de Newton


Como sabemos, atravs dos Teoremas 8 e 9 que o polinmio de grau menor ou igual a m interpolando
m + 1 pontos nico, podemos procurar formas alternativas de encontrar tais coeficientes de modo
mais rpido e adequado.
Dessa forma, se considerarmos tais pontos como ( xi , yi ), para i = 0, 1, , m, podemos propor um
polinmio de grau m da forma:
P( x) = a0 + a1 ( x x0 ) + a2 ( x x0 )( x x 1 ) + + am ( x x0 )( x x1 ) ( x xm1 ),

(4.35)

no qual os ai , para i = 0, 1, , m so desconhecidos. O nosso objetivo , justamente, obter meios


para encontr-los. Como nos algoritmos desenvolvido anteriormente, vamos construir o mecanismo
de encontrar os ai de modo intuitivo, para tanto, vamos comear com polinmios de grau 1, depois
polinmios de grau 2, at chegarmos aos polinmios de grau m qualquer e estabelecermos a teoria.
Diferenas Divididas para polinmios de grau 1
J sabemos que um polinmio de grau 1 ser obtido da interpolao de dois pontos ( x 0 , y0 ) e ( x1 , y1 ).
Neste caso o polinmio P( x) dado por (4.35) escrito como:
(4.36)

P( x) = a0 + a1 ( x x0 ).

Queremos encontrar a0 e a1 de modo que P( x0 ) = y0 e P( x1 ) = y1 . Impondo essas condies obtemos:


1. Para x = x 0 , podemos obter a0 como:
y0 = P( x0 ) = a0 + a1 ( x0 x0 ) = a0

a0 = P( x0 ) = y0 .

2. Para x = x 1 , j conhecemos a0 , atravs do clculo anterior, portanto a1 dado por:


y1 = P( x1 ) = a0 + a1 ( x1 x0 ) = y0 + a1 ( x1 x0 )

y y0
P( x1 ) P( x0 )
= 1
.
x1 x0
x1 x0

a1 =

Note que os coeficientes so os mesmos que encontramos com os mtodos anteriores, o polinmio fica
da (no surpreendente) forma:
y y0
P( x) = y0 + 1
( x x0 ).
x1 x0
Diferenas Divididas para polinmios de grau 2
Para o polinmio de grau 2 precisamos de trs pontos ( x0 , y0 ), ( x1 , y1 ) e ( x2 , y2 ). Neste caso o polinmio
P( x) dado por (4.35) escrito como:
(4.37)

P( x) = a0 + a1 ( x x 0 ) + a2 ( x x0 )( x x1 ).

Queremos encontrar a0 , a1 e a2 de modo que P( x0 ) = y0 , P( x1 ) = y1 e P( x2 ) = y2 . Impondo essas


condies obtemos:
1. Para x = x 0 , podemos obter a0 como:
y0 = P( x0 ) = a0 + a1 ( x0 x0 ) + a2 ( x0 x0 )( x 0 x1 ) = a0

a0 = P( x0 ) = y0 .

2. Para x = x 1 , j conhecemos a0 , atravs do clculo anterior, portanto a1 satisfaz:


y1 = P( x1 ) = a0 + a1 ( x 1 x0 ) + a2 ( x 1 x0 )( x1 x1 ) = y0 + a1 ( x1 x0 )
a1 =

y y0
P( x1 ) P( x0 )
= 1
.
x1 x0
x1 x0

4.3. DIFERENAS DIVIDIDAS DE NEWTON

81

item Para x = x2 , j conhecemos a0 e a1 , atravs dos clculos anteriores, para obter a2 temos:
P( x1 ) P( x0 )(( x 2 x0 ))
+ a2 ( x2 x0 )( x2 x1 )
x1 x0


P( x2 ) P( x0 )
P( x2 ) P( x0 )
P( x1 ) P( x0 )
1
P( x1 ) P( x0 )
a2 =

( x2 x0 )( x2 x1 ) ( x1 x0 )( x2 x1 )
( x2 x1 )
( x2 x0 )
( x1 x0 )

P( x2 ) = a0 + a1 ( x 2 x0 ) + a2 ( x2 x0 )( x2 x1 ) = P( x0 ) +

82

4.4 Splines Cbicas

CAPTULO 4. INTERPOLAO POLINOMIAL

4.5. EXERCCIOS

4.5 Exerccios

83

84

CAPTULO 4. INTERPOLAO POLINOMIAL

4.6 Projeto: Interpolao de Funes Polinomiais

Captulo 5

Ajuste de Curvas e Otimizao

85

86

5.1 Exerccios

CAPTULO 5. AJUSTE DE CURVAS E OTIMIZAO

5.2. PROJETO: AJUSTE DE CURVAS E OTIMIZAO

5.2 Projeto: Ajuste de Curvas e Otimizao

87

88

CAPTULO 5. AJUSTE DE CURVAS E OTIMIZAO

Captulo 6

Derivao Numrica

89

90

6.1 Exerccios

CAPTULO 6. DERIVAO NUMRICA

6.2. PROJETO: DERIVAO NUMRICA

6.2 Projeto: Derivao Numrica

91

92

CAPTULO 6. DERIVAO NUMRICA

Captulo 7

Integrao Numrica

93

94

7.1 Exerccios

CAPTULO 7. INTEGRAO NUMRICA

7.2. PROJETO: INTEGRAO NUMRICA

7.2 Projeto: Integrao Numrica

95

96

CAPTULO 7. INTEGRAO NUMRICA

Captulo 8

Equaes Diferenciais Ordinrias

97

98

8.1 Exerccios

CAPTULO 8. EQUAES DIFERENCIAIS ORDINRIAS

8.2. PROJETO: EQUAES DIFERENCIAIS ORDINRIAS

8.2 Projeto: Equaes Diferenciais Ordinrias

99

100

CAPTULO 8. EQUAES DIFERENCIAIS ORDINRIAS

Referncias Bibliogrficas
[1] R. L. Burden, J. D. Faires, Numerical Analysis, Ninth Edition, Brooks/COLE Cengange Learning,
Canada, 2011.
[2] E. L. Lima, Anlise Real, 2a. Edio, IMPA, Rio de Janeiro.

101

Potrebbero piacerti anche