Você está na página 1de 162

n

 


 

0
1
2
3
4
5
6
7
8
50
40

50
30

40
30

20
20
10

10
0

i=1

  ll!#" $ % &' )(* i

PARA ELIANE...

Sum
ario
1 Sistemas Lineares
1.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1 Soluc
ao de um sistema n n . . . . . . . . . .
1.2 Metodos Diretos . . . . . . . . . . . . . . . . . . . . .
1.2.1 Metodo de Gauss . . . . . . . . . . . . . . . . .
1.2.2 Decomposic
ao LU . . . . . . . . . . . . . . . .
1.3 Metodos Iterativos . . . . . . . . . . . . . . . . . . . .
1.3.1 Metodo Iterativo de Jacobi . . . . . . . . . . .
1.3.2 Criterio de Parada . . . . . . . . . . . . . . . .
1.3.3 Metodo Iterativo de Gauss-Seidel . . . . . . . .
1.3.4 Metodo do Refinamento Iterativo . . . . . . . .
1.3.5 N
umero Condicional . . . . . . . . . . . . . . .
1.3.6 Convergencia do M. Iterativo de Jacobi e GaussSeidel . . . . . . . . . . . . . . . . . . . . . . .
1.4 Sistemas Lineares Complexos . . . . . . . . . . . . . .
1.5 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . .

19
20
21

2 Zeros de fun
c
ao
2.1 Introducao . . . . . . . . . . . . . . . . . . .
2.2 Metodo de Localizac
ao de Zeros . . . . . . .
2.3 Metodo do Meio Intervalo - MMI . . . . . .
2.4 Metodo da Secante . . . . . . . . . . . . . .
2.4.1 Convergencia no Metodo da Secante
2.5 Metodo de Newton . . . . . . . . . . . . . .
2.5.1 Convergencia no Metodo de Newton
2.6 Metodo da Iterac
ao Linear . . . . . . . . . .

25
25
27
29
31
33
33
35
36

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

1
1
3
4
4
8
11
11
14
15
17
17

2.7

2.8
2.9

2.6.1 A Func
ao de Iterac
ao . . . . . .
Coment
arios Finais Sobre os Metodos .
2.7.1 Localizac
ao de Zeros . . . . . . .
2.7.2 Metodo do Meio Intervalo - MMI
2.7.3 Metodo da Secante . . . . . . . .
2.7.4 Metodo de Newton . . . . . . . .
2.7.5 Metodo da Iterac
ao Linear . . .
Zeros de um Polin
omio . . . . . . . . . .
2.8.1 Multiplicidade de um zero . . . .
Exerccios . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

39
41
41
41
41
41
42
43
50
51

3 Interpola
c
ao
3.1 Introduc
ao . . . . . . . . . . . . . . . . . . . .
3.2 Interpolac
ao de Lagrange . . . . . . . . . . .
3.3 Interpolac
ao com Diferencas Divididas Finitas
3.3.1 Propriedades de uma DDF . . . . . .
3.3.2 Obtenc
ao da Formula . . . . . . . . .
3.4 Erro de Truncamento . . . . . . . . . . . . . .
3.5 Metodo de Briot-Ruffini . . . . . . . . . . . .
3.6 Considerac
oes Finais . . . . . . . . . . . . . .
3.7 Exerccios . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.

. . . .
. . . .
DDF .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .

53
53
54
57
57
58
59
62
64
65

4 Integra
c
ao Num
erica
4.1 Introduc
ao . . . . . . . . . . .
4.2 Regra dos Trapezios . . . . .
4.2.1 Erro de Truncamento
4.3 1a Regra de Simpson . . . . .
4.4 Quadratura Gaussiana . . . .
4.5 Exerccios . . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

69
69
70
71
73
76
80

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

Sec
ao Aurea
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

83
83
86
87
88
89
90
92

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

5 Mnimos e M
aximos
5.1 Introduc
ao . . . . . . . . . . . . . .

5.2 Metodo da Sec


ao Aurea
. . . . . .
5.2.1 Convergencia no Metodo da
5.3 Superfcies em R3 . . . . . . . . . .
5.4 Metodo do Gradiente . . . . . . . .
5.5 Bacias de atrac
ao . . . . . . . . . .
5.6 Metodo de direc
oes aleatorias . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

5.7

Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . 93

6 Introdu
c
ao ao Matlab
6.1 Introducao . . . . . . . . . . . .
6.2 Comandos . . . . . . . . . . . .
6.2.1 Comando de leitura . .
6.2.2 Comando de impressao
6.2.3 Comando de atribuic
ao
6.2.4 Estrutura de decisao . .
6.2.5 Estruturas de repetic
ao
6.3 Itens Basicos do Matlab . . . .
6.3.1 Operadores relacionais .
6.3.2 Conectivos logicos . . .
6.3.3 Funcoes Pre-definidas .
6.3.4 Script . . . . . . . . . .
6.4 Vetores e Matrizes . . . . . . .
6.5 Funcoes em Matlab . . . . . . .
6.6 Graficos Bidimensionais . . . .
6.7 Graficos Tridimensionais . . . .
6.8 Exerccios . . . . . . . . . . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

95
95
97
97
97
98
99
100
103
103
104
104
105
108
111
113
115
116

7 Implementa
c
ao dos M
etodos
7.1 Sistemas Lineares . . . . . .
7.2 Zeros de Func
ao . . . . . .
7.3 Interpolacao . . . . . . . . .
7.4 Integracao . . . . . . . . . .
7.5 Otimizacao . . . . . . . . .
7.6 Exerccios . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

119
119
130
136
138
139
145

Bibliografia

.
.
.
.
.
.

.
.
.
.
.
.

149

Lista de Figuras
1.1
1.2
1.3

Solucao geometrica de um sistema 2 2 . . . . . . . . 3


O sistema nao possui soluc
ao . . . . . . . . . . . . . . 4
Seq
uencia X n . . . . . . . . . . . . . . . . . . . . . . . 14

2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14

Zeros de uma func


ao . . . . . . . . . . . . . .
0
0
f (x) > 0 e f (x) < 0 . . . . . . . . . . . . . .
Zeros de f (x) . . . . . . . . . . . . . . . . . .
Zeros de f (x) . . . . . . . . . . . . . . . . . .
Criando uma partic
ao P . . . . . . . . . . . .
(xn ) convergindo para o zero . . . . . . . .
Seq
uencia (xn ) no metodo da secante . . . . .
Seq
uencia (xn ) no metodo de Newton . . . .
Seq
uencia (xn ) no metodo da Iterac
ao Linear
Seq
uencia (xn ) no Metodo da Iterac
ao Linear
Metodo grafico . . . . . . . . . . . . . . . . .
Limite dos zeros . . . . . . . . . . . . . . . .
Isolando zeros . . . . . . . . . . . . . . . . . .
Limite de zeros complexos . . . . . . . . . . .

3.1

Erro de truncamento . . . . . . . . . . . . . . . . . . . 63

4.1
4.2
4.3
4.4

Area
do trapezio . . . . . . . . . . . . . .
Calculo da area por trapezios . . . . . . .
Calculo da area pela 1a regra de Simpson
Calculo da area por trapezios . . . . . . .

5.1
5.2

Mnimos local e global . . . . . . . . . . . . . . . . . . 84


Paraboloide . . . . . . . . . . . . . . . . . . . . . . . . 88
V

.
.
.
.

.
.
.
.

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

.
.
.
.

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

.
.
.
.

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

.
.
.
.

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

.
.
.
.

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

.
.
.
.

26
26
27
28
29
30
32
34
37
37
43
46
47
49

71
72
74
75

5.3
5.4

Seq
uencia (pn ) se aproximando do mnimo de f (x) . . 90
Bacias de atrac
ao . . . . . . . . . . . . . . . . . . . . . 91

6.1
6.2
6.3

Grafico de f (x) = x2 . . . . . . . . . . . . . . . . . . . 114


Grafico de f (x, y) = x2 + y 2 . . . . . . . . . . . . . . . 115
Grafico+(curva de nvel) de f (x, y) = x2 + y 2 . . . . . 115

Pref
acio
Este livro de calculo numerico foi escrito com base nas notas
de aula, ministradas na Universidade Federal do Esprito Santo e
na Universidade Estadual do Sudoeste da Bahia. A importancia do
calculo numerico para os estudantes de engenharia, fsica e matematica
se faz na conexao dos metodos numericos matematicos com a computacao, cada vez mais presente no dia-dia academico. Os metodos
numericos sao velhos conhecidos dos matematicos. Mesmo antes de
Cristo ja se conhecia alguns metodos numericos. Com o advento do
computador esses metodos puderam ser implementados e assim uma
quantidade de problemas puderam ser resolvidos. O que antes se
conhecia apenas como existencia e unicidade, agora pode ser determinado por aproximac
oes tao precisas quanto se queira.
Tentei escrever um livro para ser usado em um semestre letivo
nos cursos de graduac
ao, por isso, no que tange o conte
udo de
cada captulo, ha uma preocupac
ao em expor os principais metodos
numericos, claro que alguns ficaram de fora. O leitor interessado
pode procurar na bibliografia para aprofundar mais. Temos como objetivo que o estudante tenha uma visao profunda em alguns temas e
outros uma visao geral, montando assim seu conhecimento e metodologia de estudo em relac
ao aos metodos numericos.
Em cada captulo, existe uma preocupac
ao em expor assuntos atuais e de importancia pratica. Muitas demonstrac
oes nao sao feitas
devido a complexidade e o fato de fugirem do tema principal, mas
podem ser obtidas nas referencias. Dedicamos um captulo, a introducao do software Matlab, que sera suficiente para implementar
os metodos apresentados aqui. Claro que os metodos tambem podem ser implementados em uma outra linguagem. Um coment
ario
importante: grande parte dos metodos numericos apresentados aqui
ja estao implementados no Matlab em forma de func
oes pre-definidas.
Mesmo assim, e de suma importancia o estudo desses metodos, uma
vez que os problemas praticos exigem certas mudancas.
Dei especial atencao ao captulo de zeros de func
oes, apresentando metodos numericos e analticos para encontrar zeros de uma
funcao. Uma secao dedicada exclusivamente aos zeros de um polinomio,

faz o diferencial deste livro. Fornecendo um potente teorema que


limita os zeros de um polinomio.
Em geral nao e comum o tema Mnimos e Maximos em textos
de calculo numerico. Por isso, o professor desejoso, pode omitir esse
captulo. Esse tema foi colocado neste texto devido a importancia
pratica cada vez maior, e o fato de ser uma otima aplicac
ao dos
metodos numericos.
Como pre-requisito, o leitor deve ter em mente o curso de Calculo
I e II, e algebra linear. No captulo 6 fizemos uma introduc
ao aos algoritmos em Matlab, o que elimina um curso basico de programacao
como pre-requisito. Gostaria de agradecer aos alunos da UESB pelas
correcoes e sugestoes efetuadas no decorrer do trabalho. Agradeco
aos professores Ivanor e Maria Aparecida pelos incentivos para a
publicacao deste texto.
Vit
oria da Conquista, 10 de Junho de 2005.
Flaulles Boone Bergamaschi

Captulo 1

Sistemas Lineares
1.1

Introduc
ao

Neste captulo vamos desenvolver tecnicas e metodos numericos para


resolver sistemas lineares nn. Esses sistemas aparecem com freq
uencia
em problemas da engenharia, fsica, qumica, etc... Com o advento
do computador tais metodos ganharam mais atenc
ao, ficando assim
evidente a importancia de um estudo mais aprofundado. Lembramos
o leitor que alguns topicos basicos de algebra linear sao necessarios.
Por isso, aconselhamos o uso de algum livro sobre o assunto para
acompanhamento.
Um sistema de equac
oes lineares com m equac
oes e n incognitas
e dado na forma:

a11 x1 + a12 x2 + + a1n xn


= b1

a21 x1 + a22 x2 + + a2n xn


= b2
()
..
..
..
..

.
.
.
.

am1 x1 + am2 x2 + + amn xn = bm

Com aij (i = 1, . . . m, j = 1 . . . n) n
umeros reais ou complexos.
A solucao do sistema () e um conjunto (x1 , x2 , . . . , xn ) que satisfaca todas as m equac
oes.
O sistema () tambem pode ser escrito na forma matricial:
1

CAPITULO 1. SISTEMAS LINEARES

a11
a21
..
.

a12
a22
..
.

am1 am2

..
.

a1n
a2n
..
.

amn

x1
x2
..
.

b1
b2
..
.

bm

xn

ou seja, AX = B com A sendo a matriz dos coeficientes, X o vetor


de incognitas e B o vetor de termos independentes.
Chamamos de matriz ampliada do sistema () a matriz formada
pela juncao do vetor de termos independentes e a matriz dos coeficientes.

a11 a12 a1n b1


a21 a22 a2n b2

..
..
..
..
..
.
.
.
.
.
am1 am2

amn bm

importante notar que a matriz ampliada do sistema e o ponto


E
de partida para encontrar-mos a soluc
ao do sistema via metodos
numericos, o que desenvolveremos mais adiante.
Exemplo
1.1.1. Consideremos o seguinte sistema 2 2

2x1 + x2 = 3
x1 + 4x2 = 5

A=

2 1
1 4

, B=

3
5

, X=

Matriz ampliada do sistema:

x1
x2

2 1 3
1 4 5

Por motivos tecnicos e computacionais trataremos apenas o caso


de sistemas onde o n
umero de equac
oes e incognitas sao iguais, ou
seja, m = n. Matricialmente isso quer dizer que, a matriz dos coeficientes e uma matriz quadrada. Tambem vamos assumir que a
matriz dos coeficientes e uma matriz real.
Geometricamente a soluc
ao de uma sistema linear (n m) e a
intersecao de n hiperplanos em Rn . Veja no exemplo:


1.1. INTRODUC
AO

Exemplo 1.1.2. Considere o sistema do exemplo anterior onde a


soluc
ao e dada por P = (1, 1), que e exatamente a intersec
ao das
retas 2x1 + x2 = 3 e x1 + 4x2 = 5 conforme Figura 1.1
y
4

1
x

0
-7

-6

-5

-4

-3

-2

-1

-1

-2

-3

-4

Figura 1.1: Soluc


ao geometrica de um sistema 2 2

1.1.1

Soluc
ao de um sistema n n

Vamos relembrar alguns resultados da algebra linear:


i. Um sistema linear (n n) possui soluc
ao u
nica se o determinante da matriz dos coeficientes e diferente de zero.
ii. Caso o determinante seja zero, o sistema n
ao possui soluc
ao
ou possui infinitas soluc
oes.
A demonstracao dos itens acima pode ser encontrada em [2]
Exemplo
1.1.3. Consideremos os sistema

2x1 + x2 =
3
2 1
, veja que det
=0
4x1 + 2x2 = 6
4 2
Neste caso as retas 2x1 + x2 = 3 e 4x1 + 2x2 = 6(veja Figura
1.2) s
ao paralelas.

CAPITULO 1. SISTEMAS LINEARES

y
4

1
x

0
-7

-6

-5

-4

-3

-2

-1

-1

-2

-3

-4

Figura 1.2: O sistema nao possui soluc


ao
Em problemas praticos e comum encontrar sistemas lineares de
grande porte, por exemplo n > 1000. Por isso e necessario desenvolvermos metodos numericos para encontrar a soluc
ao de tais sistemas de tal forma que, seja sempre possvel implementar algoritmos
computacionais.
Comecamos com os metodos numericos diretos que fornecem a
solucao exata 1 atraves de um n
umero finito de passos.

1.2

M
etodos Diretos

1.2.1

M
etodo de Gauss

Este metodo trabalha com a equivalencia de sistemas atraves de


operacoes
elementares na matriz ampliada. Para comecar vamos definir as
operacoes elementares sobre as linhas de uma matriz.
Operacoes elementares
i. trocar linhas, Li Lj .
ii. Multiplicar uma linha por um escalar k 6= 0, Li kLi .
1

Quando n
ao existem erros de truncamento e arredondamento


1.2. METODOS
DIRETOS

iii. Substituir uma linha por sua soma com um m


ultiplo escalar de
outra linha. k 6= 0, Li Li + kLj .
Defini
c
ao 1.1. Dizemos que as matrizes Amn e Bmn s
ao linha
equivalentes, se Bmn pode ser obtida atraves de operac
oes elementares
em Amn .
Na definicao acima podemos usar a notac
ao A B.

0 2 2
Exemplo 1.2.1. A matriz A =
e linha equivalente a B =
1 2 3

1 1 2
.
0 1 1
Aplicando operac
oes elementares em A temos:

0 2 2 L1 L2 1 2 3 L2 21 L2 1 2 3 L1 L1 +(1)L2

1 2 3
0 2 2
0 1 1
|
{z
}
A

1 1 2
0 1 1
{z
}
|
B

Teorema 1.1. Dois sistemas que possuem matrizes ampliadas equivalentes s


ao equivalentes, ou seja, tem mesma soluc
ao.
A demonstracao desse teorema pode ser encontrada em [2].

Exemplo 1.2.2. O sistema

2x1 + x2 = 3
x1 + x2 = 2

s
ao equivalentes.
Basta observar que:

2 1 3 L1 2L1 4 2 6 L2 12 L2 4

1
1 1 2
1 1 2
2

4x1 + 2x2 = 6
1
1
2 x1 + 2 x2 = 1

2 6
1
2 1

Com o Teorema 1.1 estamos prontos para iniciar o metodo de


Gauss, que consiste em transformar a matriz ampliada de um sistema
atraves de operacoes elementares em uma matriz da forma:

CAPITULO 1. SISTEMAS LINEARES

a11
0
0
..
.

a12
a22
0
..
.

a13 a1n
a23 a2n
a33 a3n
..
..
..
.
.
.
0
amn

b1
b2
b3
..
.

(1.1)

bm

ou seja, a matriz dos coeficientes e uma matriz triangular superior.

x1 + x2 = 2
Exemplo 1.2.3. Considere o sistema
. Efet2x1 + x2 = 3
uando operac
oes elementares na matriz ampliada termos:

1 1 2
2 1 3

L2 L2 +(2)L1

1 1
2
0 1 1

x1 + x2 = 2
, que
x2 = 1
e facilmente resolvido por substituic
ao retroativa, ou seja, encontramos x2 na segunda equaca
o e substitumos na primeira equac
ao,
encontrando x1 .
Portanto este sistema e equivalente a

Daremos agora os passos para obter a matriz equivalente no caso


de um sistema 3 3.

a11 x1 + a12 x2 + a13 x3 = b1


a21 x1 + a22 x2 + a23 x3 = b2 e
Considere ent
ao o sistema

a31 x1 + a32 x2 + a33 x3 = b3


sua matriz ampliada:

a11 a12 a13 b1


A = a21 a22 a23 b2
a31 a32 a33 b3
Com os passos abaixo e possvel transformar a matriz A em uma
matriz na forma dada em (1.1), atraves de operac
oes elementares.
1o passo
Definimos o elemento chamado de pivo como a11 e calculamos:


1.2. METODOS
DIRETOS
m21 =

a21
a31
e m31 =
pivo
pivo

2o passo
Operamos na matriz ampliada A:
L2 L2 + m21 L1
L3 L3 + m31 L1
3o passo
O elemento pivo passe a ser a22 e calculamos:
m32 =

a32
pivo

4o passo
L3 L3 + m32 L2
Veja que o elemento pivo toma sempre os elementos na diagonal
da matriz dos coeficientes.
O caso n n e analogo ao dado acima. Observamos que nesse
algoritmo matematico, o elemento pivo deve ser diferente de zero,
em outras palavras, todos os elementos na diagonal da matriz dos
coeficientes deve ser diferente de zero. Mas nem tudo esta perdido!
Caso algum elemento akk seja igual a zero, deve-se usar a operac
ao
elementar de troca de linha, ou seja, troca-se a linha k por uma linha
r tal que k < r.
Um outro problema pode ocorrer quando o elemento pivo est
a
proximo de zero, veja o

0.0001x1 + x2 = 1
Exemplo 1.2.4. Considere o sistema
x1 + x2 = 2
A soluc
ao exata e x1 = 1.0001 e x2 = 0.9999. Resolvendo este
sistema pelo metodo de Gauss obtemos, x1 = 1 e x2 = 0 que n
ao
e a soluc
ao do sistema, nem t
ao pouco um aproximac
ao. Mas se a
primeira linha e trocada com a segunda, ent
ao o metodo de Gauss
gera uma soluc
ao x1 = 1 e x2 = 1 que e uma boa aproximac
ao.
Uma outra forma de resolver o problema quando o pivo e zero
ou esta proximo de zero e conhecido como o metodo de Pivotac
ao

CAPITULO 1. SISTEMAS LINEARES

Parcial, onde o elemento pivo e escolhido da seguinte forma: Toma-se


o pivo como o elemento de maior modulo na matriz dos coeficientes,
e efetua-se as operac
oes elementares na matriz ampliada. O proximo
pivo e escolhido da mesma forma na matriz ampliada sem a linha do
pivo anterior.

1.2.2

Decomposic
ao LU

Seja AX = B um sistema n n e det(A) 6= 0. Suponha que A


possa se decompor no produto de uma matriz triangular inferior L,
e uma matriz triangular superior U , tal que A = LU , assim AX = B
equivale a (LU )X = B. Dessa forma podemos obter dois sistemas,
LY = B e U X = Y . Como L e U s
ao triangulares, o sistema
LY = B e rapidamente resolvido por substituic
ao retroativa, e logo
apos U X = Y .
Assim o problema agora e decompor a matriz A no produto de
L e U . Recorremos ent
ao a algebra linear onde esse problema e
conhecido como decomposic
ao LU . Comecamos com o
Teorema 1.2. Seja Ann uma matriz qualquer e Akk uma submatriz
de Ann formada pela intersec
ao das primeiras k linhas e k colunas.
Se det(Akk ) 6= 0 para k = 1, . . . , n 1 ent
ao existem e s
ao u
nicas as
matrizes L e U tal que A = LU .
A demonstrac
ao pode ser encontrada em [8]
Para obter L e U o processo vem da eliminac
ao Gaussiana, aquela
feita na sec
ao anterior, onde L e uma matriz triangular inferior com
diagonal igual a 1 e multiplicadores mij , e U uma matriz triangular
superior formada pelos elementos da forma final de A. Veja no caso
3 3,



u11 u12 u13
1
0
0
a11 a12 a13
a21 a22 a23 = m21
1
0 . 0 u22 u23
0
0 u33
m31 m32 1
a31 a32 a33


1.2. METODOS
DIRETOS

2x1 + 3x2 x3
4x1 + 4x2 3x3
Exemplo 1.2.5. Considere o sistema

2x1 3x2 + x3

2
3
4
onde a matriz dos coeficientes e dada por A = 4
2 3

=
5
=
3 ,
= 1

1
3 .
1

a21
Tomando pivo = a11 , calculando m21 = pivo
= 2, m31 =
= 1 e fazendo L2 L2 + m21 L1 e L3 L3 + m31 L1
obtemos a matriz:
a31
pivo

2
3 1
0 2 1
0 6
2
a32
= 3 e
Tomando agora pivo = a22 e calculando m32 = pivo
fazendo L3 L3 + m32 L2 obtemos a matriz:

2
3 1
0 2 1
0
0
5
Dessa forma obtemos a decomposic
ao de A em:

1 0 0
L= 2 1 0
1 3 1

2
3 1
U = 0 2 1
0
0
5

Assim o sistema LY = B equivale a:

y1 =
5
5
1 0 0
y1

2 1 0 y2 = 3 =
2y1 + y2 =
3

y1 + 3y2 + y3 = 1
1
1 3 1
y3

Resolvendo por substituic


ao retroativa temos a soluc
ao y1 = 5, y2 =
7 e y3 = 15, onde podemos agora montar o sistema U X = Y :

CAPITULO 1. SISTEMAS LINEARES

10

5
5
2
3 1
x1
2x1 + 3x2 x3 =
0 2 1 x2 = 7 =
2x2 x3 = 7

15
5x3 = 15
x3
0
0
5

Novamente por substituic


ao retroativa obtemos x1 = 1, x2 = 2 e
x3 = 3.
O leitor ja deve ter observado que usamos o metodo de eliminacao
de Gauss para fazer a decomposic
ao LU . Isso nos leva a pensar que
o metodo de Gauss da sec
ao anterior e equivalente a decomposic
ao
LU . Veremos essa diferenca no exemplo abaixo.
Exemplo 1.2.6. Invers
ao de Matrizes.
Dada uma matriz Ann tal que det(A) 6= 0. Ent
ao A possui
1
1
inversa A . Para encontrar A devemos resolver n sistemas lineares, veja:
Fazendo A1 = X temos AX = I, ou seja,

a11 a12
a21 a22
.. ..
. .
an1 an2

..
.

a1n
a2n
..
.

ann

x11 x12
x21 x22
.. .. . .
.
. .
xn1 xn2
{z

x1n
x2n
..
.
xnn



=

}

1
0
..
.

0
1
..
.

..
.

0
0
..
.

A1

onde os sistemas s
ao:

a11 a12
a21 a22
.. ..
. .
an1 an2

..
.

a11 a12
a21 a22
.. ..
. .
an1 an2

..
.

a1n
a2n
..
.

ann
a1n
a2n
..
.

ann

x11
x21
..
.

xn1



.

x12
x22
..
.
xn2

1
0
..
.

(sistema 1)

0
1
..
.
0

(sistema 2)


1.3. METODOS
ITERATIVOS

11

..
.

a11 a12
a21 a22
.. ..
. .
an1 an2

..
.

a1n
a2n
..
.

ann

x1n
x2n
..
.

xnn

0
0
..
.

(sistema n)

Veja que os n sistemas lineares tem a mesma matriz de coeficientes A. Para usar o metodo de Gauss deveramos aplic
a-lo n
vezes. Por outro lado, uma vez aplicado o metodo de Gauss em
A obtemos a decomposic
ao LU . Agora resolvemos os sistemas por
substituic
ao retroativa. Isso reduz consideravelmente o n
umero de
operac
oes.
Existem outros metodos para se obter as matrizes L e U , o leitor
interessado pode consultar o metodo de Doolittle e Crout em [11].

1.3

M
etodos Iterativos

Os metodos iterativos sao caracterizados por uma func


ao chamada
de funcao de iteracao. Essa func
ao deve ser obtida de tal forma
que possamos garantir que a seq
uencia produzida por ela convirja
para solucao do sistema, em outras palavras, dado o sistema AX =
B, com Ann , devemos obter (x) tal que, dado x0 construmos
a seq
uencia x1 = (x0 ), x2 = (x1 ), . . . , xn = (xn1 ), . . . , e
ao exata do sistema AX = B.
lim xn = x, onde x e a soluc
n

1.3.1

M
etodo Iterativo de Jacobi

Considere um sistema 3 3:

(1) a11 x1 + a12 x2 + a13 x3 = b1


(2)
a21 x1 + a22 x2 + a23 x3 = b2

(3)
a31 x1 + a32 x2 + a33 x3 = b3

CAPITULO 1. SISTEMAS LINEARES

12

De (1) temos que x1 =

De (2) temos que x2 =

De (3) temos que x3 =

a12
a13
b1

x2
x3
a11 a11
a11

(1.2)

b2
a21
a23

x1
x3
a22 a22
a22

(1.3)

b3
a31
a32

x1
x2
a33 a33
a33

(1.4)

ou

x1

b1
a11

b
2
x2 =
a22


b3
x3
a33
| {z
d



a21
+ a22

31
aa33
|
}

aa12
11

a13
a11

aa23
22

aa32
{z33

x1

. x2

x3
}

Agora podemos montar a func


ao de iterac
ao de Jacobi:
(x) = d + F x
O caso geral e analogo, ou seja, a matriz F e dada por

13
0
aa12
aa11
aa1n
11
11

a21
a23
a2n
0

a22
a22
a22

a31
a3n
0

a33 aa32
a33
33

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

n1
n2
n3
aann
aann
aann


1.3. METODOS
ITERATIVOS

13

e d e dado por

b1
a11
b2
a22
b3
a33

..
.

bn
ann

Exemplo
1.3.1. Vamos resolver pelo metodo de Jacobi o sistema

2x1 x2 = 1
x1 + 2x2 = 3

1
0 12
2
e d=

F =
1
3
2 0
2
Comecamos com a soluc
ao inicial x0 = (0, 0) e iteramos:

x1 = (x0 ) = d + F x0 =

1
2

3
2

x2 = (x1 ) = d + F x1 =

5
4

5
4

x3 = (x2 ) = d + F x2 =

9
8

7
8

x4 = (x3 ) = d + F x3 =

15
16
15
16

CAPITULO 1. SISTEMAS LINEARES

14

0.998
Continuando teremos
que e uma boa aproximac
ao
1.002
uencia com
da soluc
ao exata x = (1, 1). Poderamos continuar a seq
10
11
x , x , . . ., onde surge a pergunta: Quando parar? Isso ser
a respondido na pr
oxima sec
ao.
Podemos tambem observar a aproximac
ao da seq
uencia xn para
a soluc
ao exata x por um gr
afico. Veja figura 1.3.
x9

1.8

1.6

x1

1.4

x2

1.2

x
x6

x4

0.8

x3

0.6

0.4

0.2

x0
0
0

0.2

0.4

0.6

0.8

1.2

1.4

1.6

1.8

Figura 1.3: Seq


uencia X n

1.3.2

Crit
erio de Parada

Devemos parar o metodo iterativo de Jacobi quando, para um dado


temos que kxn xn1 k < , onde kxn k = M ax{|xi |; 1 i n}.
Podemos utilizar outras normas para o criterio de parada, por
exemplo:


1.3. METODOS
ITERATIVOS

15

v
u n
uX
n
p
kxi kp , p N
kx kp = t
i=1

Voce pode utilizar essa norma, mas por convenc


ao neste texto vamos
trabalhar sempre com a norma k k .
Um outro criterio de parada e o n
umero de iterac
oes, ou seja,
fixado um k produzimos a seq
uencia xn ate o termo xk . Isso nem
sempre resulta em uma boa aproximac
ao. Por exemplo, quando k e
muito pequeno.
Exemplo 1.3.2. Considere o Exemplo 1.3.1. Suponha que seja dado
como criterio de parada = 0.6 assim devemos fazer:
kx1 x0 k = kx1 k = 32 >
5

4
2
1

kx x k =
5

kx3 x2 k =

1
2

1
2
3
2

=
=

1
4

3
4

>

< parar o metodo.

Observe que se definimos menor, ent


ao devemos produzir mais
termos da seq
uencia xn para atingir a precis
ao desejada.

1.3.3

M
etodo Iterativo de Gauss-Seidel

Este metodo e muito parecido com o metodo de Jacobi, na verdade


e uma pequena alterac
ao no metodo de Jacobi que produz o metodo
de Gauss-Seidel.
Relembramos que uma soluc
ao aproximada xk para um sistema
k
k
oes
nn e dada pelo vetor x = (x1 , xk2 , . . . , xkn )T . Recorde das equac
(1.2),(1.3),(1.4) no metodo de Jacobi e definimos agora a equac
ao
geral
para
uma
soluc
ao
k1
k1 )T :
,
x
,
.
.
.
,
x
xk = (xk1 , xk2 , . . . , xkn )T e xk1 = (xk1
n
1
2
xki

n
bi
1 X
=

aij xj
aii aii
j=1,j6=i

CAPITULO 1. SISTEMAS LINEARES

16

Cada elemento da soluc


ao xk depende exclusivamente dos elementos da soluc
ao anterior. No metodo de Gauss-Seidel isso muda
um pouco veja:
xk1 =

1
(b1 a12 xk1
a13 xk1
a1n xk1
n )
2
3
a11

xk2 =

1
(b2 a21 xk1 a23 xk1
a2n xk1
n )
3
a22
..
.

xkn =
ou
xk+1
=
i

1
(bn an1 xk1 an2 xk2 ann1 xkn1 )
ann

1
bi
aii

ou

i1
X

aij xk+1

j=1

n
X

aij xkj

j=i+1

i1
n
X
X
, com i = 1, 2, . . . , n, fij e
fij xkj +
fij xk1
xki = di +
j
j=1

j=i+1

di entradas da matriz F e d dadas no metodo de Jabobi.


Nao abordaremos aqui, mas e possvel criar uma func
ao de iteracao (x) como a que foi feita no metodo de Jacobi. Para isso,
veja [10].
Exemplo 1.3.3. Resolva pelo metodo de Gauss-Seidel o sistema

2x1 x2 = 1
.
x1 + 2x2 = 3
Comecando com x0 = (0, 0) temos:

Equac
oes iterativas de Gauss-Seidel

fazendo k = 0 temos:

k+1
x1 = 12 (1 + xk2 )

xk+1
= 12 (3 xk+1
1 )
2


1.3. METODOS
ITERATIVOS

17

x11 = 12 (1 + x02 ) = 12 (1 + 0) = 0.5


x12 = 12 (3 x11 ) = 12 (3 0.5) = 1.25

fazendo k = 1 temos:

x21 = 12 (1 + x12 ) = 12 (1 + 1.25) = 1.125

x22 = 12 (3 x21 ) = 12 (3 1.125) = 0.9375

Continuando podemos observar que o metodo de Gauss-Seidel


converge mais r
apido que o metodo de Jacobi.

1.3.4

M
etodo do Refinamento Iterativo

Considere um sistema n n, AX = B com soluc


ao exata x e x0 uma
solucao aproximada. Assim x = e0 + x0 , onde e0 e o erro cometido.
Como Ax = b entao:
0
0
0
A(e0 +x0 ) = B = Ae0 +Ax0 = B = Ae0 = B
| {zAx} = Ae = r
r0

Resolvendo o sistema Ae0 = r0 teremos uma aproximac


ao de e0 .
0
0
0
0
ao e melhora a soluc
ao x .
Como x = e + x , ent
Este processo pode ser repetido ate que se obtenha uma precisao
desejada.

1.3.5

N
umero Condicional

Considere um sistema n n, AX = B e uma soluc


ao aproximada
xk . Definimos como o vetor resduo rk = B Axk . Intuitivamente
somos levados a pensar que quanto mais proximo do vetor nulo o
vetor rk estiver, melhor sera a soluc
ao xk . O problema e que nem
sempre isso ocorre devido a uma anomalia na matriz A. Veja o

x1 + 1.001x2 = 2.001
Exemplo 1.3.4. Considere o sistema
0.999x1 + x2 = 1.999

18

CAPITULO 1. SISTEMAS LINEARES

xk

Este sistema tem soluc


ao exata x = (1, 1)T . Para a soluc
ao
T
= (2, 0.001) o resduo e


2.001
2
0.000001
1
1.001
r =
.
=

1.999
0.999
1
0.001
0
| {z } |
{z
} | {z }
k

xk

Veja que o resduo rk e quase nulo. Se n


ao soubessemos que a
T
soluc
ao exata e x = (1, 1) seramos levados a pensar que a soluc
ao
xk e uma boa aproximac
ao. O que n
ao ocorre.
Como dito antes essa anomalia aparece na matriz dos coeficientes
A. Para identificar melhor esse problema definimos o n
umero condicional de uma matriz.
Defini
c
ao 1.2. Seja Ann uma matriz tal que det(A) 6= 0. Ent
ao o
n
umero condicional de A e dado por Cond(A) = kAk.kA1 k.
A norma na definic
ao acima e dada por:
( n
)
X
kAk = max
|aij | ; j = 1, . . . , n
i=1

Quando o Cond(A) 1 ent


ao podemos dizer que a matriz A
e bem condicionada, ou seja, pequenas pertubac
oes no vetor B refletem em pequenas variacoes no vetor soluc
ao X. Mas se Cond(A)
e muito grande, ent
ao pequenas pertubac
oes no vetor B produzem
uma grande variac
ao no vetor soluc
ao X.
O n
umero condicional nao deve ser entendido como regra para
determinar o mau condicionamento de uma matriz (sistema). Mas
como uma previsao de mau condicionamento. Por exemplo, um sistema em que a matriz dos coeficientes e dada por:

1 0
0 1010

Tem Cond(A) = 1010 mas o sistema nao e mal condicionado. Para


mais detalhes sobre n
umero condicional veja [11].


1.3. METODOS
ITERATIVOS

1.3.6

19

Converg
encia do M. Iterativo de Jacobi e GaussSeidel

A primeira vista o metodo de Jacobi e Gauss-Seidel seriam ideais


para resolver sistemas lineares n n(que possuem soluc
ao). A ma
noticia e que, nem todos os sistemas n n podem ser resolvidos com
esses metodos. Existe uma condic
ao de convergencia que e crucial.
Ela sera dada nos teoremas abaixo.
Teorema 1.3. Se para cada i fixo, i = 1, . . . , n temos que

n
X

|fij |

j=1

L < 1, ent
ao o metodo iterativo de Jacobi e Gauss-Seidel convergem
para a soluc
ao exata do sistema.
Em outras palavras, o teorema diz que: Se a soma em modulo de
cada linha da matriz F for menor que 1, ent
ao o metodo de Jacobi
e Gauss-Seidel convergem para a soluc
ao exata do sistema, seja qual
for a solucao inicial x0 .
Esse criterio de linhas tambem pode ser estendido para colunas.
Veja o
Teorema 1.4. Se para cada j fixo, j = 1, . . . , n temos que

n
X

|fij |

i=1

L < 1, ent
ao o metodo iterativo de Jacobi e Gauss-Seidel convergem
para a soluc
ao exata do sistema.
Corol
ario 1.1. A condic
ao
equivalente a |aij | >

n
X

n
X

|fij | L < 1 no Teorema 1.3 e

j=1

|aij | para cada i = 1, . . . , n fixo.

j=1,j6=i

A demonstracao desses teoremas pode ser encontrada em [1].


Se F satisfaz um dos teoremas acima, ent
ao podemos aplicar
tanto o metodo de Jacobi quanto o metodo de Gauss-Seidel, pois e
garantida a convergencia.

CAPITULO 1. SISTEMAS LINEARES

20

1.4

Sistemas Lineares Complexos

Consideremos uma sistema AX = B onde A, X e B s


ao matrizes
complexas. Ent
ao sao escritas na forma:
A = M + Ni
B = c + di
X = s + ti

(1.5)

onde M, N, c, d, s, t sao matrizes reais. Substituindo a equac


ao (1.5)
em AX = B teremos:
(M + N i)(s + ti) = c + di = M s N t + (N s + M t)i = c + di,
ou seja,

Ms Nt = c
Ns + Mt = d

O sistema acima pode ser visto como:


|
N
s


|
N
|
M
t
M

(1.6)

que e um sistema real, e pode ser resolvido com os metodos apresentados anteriormente.

(1 + 2i)x1 + 3x2 = 5 + 4i
Exemplo 1.4.1. Resolva o sistema
x1 + x2 =
1
Vamos decompor a matriz dos coeficientes:

A=

1 + 2i

3 + 0i

1 + 0i

1 + 0i

=
|

1
1

3
{z
M

+
}

2
0

0
{z
N

i
}

1.5. EXERCICIOS

B=

5 + 4i

21

1 + 0i

X=

x1
x2

s1

1
| {z }

0
| {z }

t1

s2
| {z }

t2
| {z }

Escrevendo o sistema na forma (1.6) temos:

1 3 2 0
s1
5
1 1

0 0

. s2 = 1
2 0
1 3 t1 4
0 0 1 1
t2
0
Resolvendo o sistema por metodos anteriores (por exemplo pelo
metodo de Gauss) obtemos:
s1
=
0, s2
=
1,
t1 = 1, t2 = 1, dessa forma a soluc
ao do sistema e dada por x1 =
i, x2 = 1 + i.

1.5

Exerccios

3 5
0
1
1.5.1. Atraves de operac
oes elementares mostre que a matriz 2 0
5 1 1

1 0 0
e equivalente `
a 0 1 0 .
0 0 1
ao possui soluc
ao
1.5.2. Mostre geometricamente que o sistema abaixo n
real:

2x1 + 6x2 = 8
3x1 + 9x2 = 15

x1 + 3x2 = 6

CAPITULO 1. SISTEMAS LINEARES

22

1.5.3. Resolva os sistemas abaixo por retro substituic


ao:

x1 3x2 + x3 = 6
4x2 x3 = 5
a)

x3 = 4

2x1 = 2
x1 + x2 = 3
b)

x1 + x2 + x3 = 4

1.5.4. Resolva pelo metodo de Gauss os sistemas:

x1 + x2 + x3 + x4

x1 + x2 + x3 x4
a)
x + x2 x3 + x4

1
x1 x2 + x3 + x4

=
0
=
4
= 4
=
2

x1 + 2x2 + x3 = 0
2x1 + x2 + 3x3 = 0
b)

3x1 + 2x2 + x3 = 0

1.5.5. Mostre que:

5
5
2x1 + 3x2 x3 =
2x1 + 3x2 x3 =
4x1 + 4x2 3x3 =
3 e equivalente a
2x2 x3 = 7

2x1 3x2 + x3 = 1
6x2 + 2x3 = 6

ao LU obtenha a soluc
ao dos sistemas
1.5.6. Atraves de decomposic
do
exerccio 1.5.4.

1.5.7. Calcule a matriz inversa A1 das matrizes abaixo. Para isso,


use decomposic
ao LU.

2
7
a)
1
1

1 6
3
4
2 15

2 4
9
1
2 6

1 3 4
b) 2 1 0
0 3 2

1.5. EXERCICIOS

23

1.5.8. Resolva atraves do metodo iterativo de Jacobi os sistemas


abaixo com = 0.07:

10x1 + x2 + x3 = 12
2x1 + x2 = 2
2x1 + 4x2 + x3 = 7
b)
a)
x1 + 3x2 = 1

x1 x2 + 3x3 = 3

1.5.9. Resolva os sistemas do exerccio 1.5.8 pelo metodo de GaussSeidel com = 0.07.

ao garante con1.5.10. Explique por que o metodo de Gauss-Seidel n


vergencia para soluca
o exata do sistema abaixo;

= 3
x1 + x2 + x3
2x1 + x2 + x3 = 4

3x1 + 2x2 + x3 = 6

ao do
1.5.11. Aplique o metodo do Refinamento Iterativo na soluc
exerccio 1.5.8 com uma iterac
ao. Verifique se a nova soluc
ao melhora a anterior.

1.5.12. De exemplos de sistemas mal condicionados.

1.5.13. Resolva o sistema:

2ix1 + 3x2 = 2 + 5i
(1 + i)x1 + ix2 =
3

1.5.14. Considere a tabela de valores nutricionais2 dos alimentos


abaixo:
2

valores fictcios

CAPITULO 1. SISTEMAS LINEARES

24
Alimento
1-Pera
1-Uva
1-Maca

Vitamina A
1g
2g
3g

Vitamina B
3g
3g
2g

Vitamina C
4g
5g
3g

Deseja-se saber quanto de cada alimento deve-se ingerir para


obter 11g de vitamina A, 13g de vitamina B e 20g de vitamina C.
Monte um sistema e resolva pelo metodo de Gauss esse problema.

1.5.15. Descreva o metodo de resoluca


o de sistemas lineares complexos n n atraves de reduc
ao `
a sistemas lineares reais. Verifique
com isto, que um sistema n n complexo e reduzido a um sistema
real (2n) (2n).
ario 1.1.
1.5.16. Demonstre o Corol
1.5.17. Monte um sistema que tenha como soluc
ao x1 = 1, x2 = 2,
x3 = 0, x4 = 1.
1.5.18. Implemente em portugol o metodo de substituic
ao retroativa.
1.5.19. Implemente em portugol o metodo de Gauss.
1.5.20. Implemente em portugol o metodo de Jacobi e Gauss-Seidel.

Captulo 2

Zeros de func
ao
2.1

Introduc
ao

Neste captulo estamos interessados em obter os zeros de uma func


ao
real atraves de metodos numericos. Em outras palavras, dada uma
certa funcao f (x), gostaramos de encontrar tal que, f () = 0. Por
exemplo, a funcao f (x) = x2 3x + 2 tem dois zeros, 1 = 2 e 2 = 1.
Vale lembrar que uma func
ao pode ter zeros reais ou complexos.
Neste texto nao vamos tratar o caso complexo, o leitor interessado
pode encontrar em [11].
Para comecar, vamos enunciar algumas definic
oes e teoremas.
Para o nosso estudo nao sera necessario demonstra-los.
Defini
c
ao 2.1. Dizemos que uma func
ao f : I R e contnua
em um ponto c, se para toda seq
uencia (xn ) em I,tivermos
lim xn = c = lim f (xn ) = f (c)

A grosso modo podemos entender essa definic


ao da seguinte forma:
Dizemos que f (x) e continua, se ao tracar seu gr
afico n
ao levantamos o lapis do papel.
Teorema 2.1. Seja f (x) uma func
ao contnua definida no intervalo
[a b] tal que f (a)f (b) < 0, ent
ao f (x) possui pelo menos um zero
em [a b].
25


CAPITULO 2. ZEROS DE FUNC
AO

26

Figura 2.1: Zeros de uma func


ao
y

a
x

b
x

Figura 2.2: f 0 (x) > 0 e f 0 (x) < 0


Esse teorema nos diz que, se f (x) e contnua e f (a) tem sinal
diferente de f (b), ent
ao f (x) corta o eixo x pelo menos uma vez, ou
seja, existe [a b] tal que f () = 0. Veja a figura 2.1.
Teorema 2.2. Seja f (x) uma func
ao definida no intervalo [a b] tal
que
f (a)f (b) < 0 e f 0 (x) > 0 para todo x (a b). Ent
ao f (x) possui um u
nico zero em [a b].
O Teorema 2.1 garante apenas a existencia mas nao a unicidade.
Acrescentando a hipotese da derivada ser positiva em todo intervalo
(o que implica em f (x) ser crescente) 1 (veja figura 2.2) obtemos o
Teorema 2.2 que garante a unicidade desse zero.
1

tambem vale para negativa


DE ZEROS
2.2. METODO
DE LOCALIZAC
AO

27

4
4

0
-5

-4

-3

-2

-1

0
-7

-6

-5

-4

-3

-2

-1

-1

-1

-2

-2
-3

-4

Figura 2.3: Zeros de f (x)


Teorema 2.3. Se f (x) pode ser escrita como diferenca de duas
func
oes,
digamos g(x) e h(x), ent
ao os zeros de f (x) s
ao exatamente os pontos de intersec
ao de g(x) e h(x).
Veja que se f (x) = g(x) h(x) e e um zero de f (x), ent
ao
0 = f () = g() h() = g() = h()
Exemplo 2.1.1. Considere f (x) = 12 ex cos(x) com g(x) = 12 ex e
h(x) = cos(x). Observe a figura 2.3. Veja que g(x) e h(x) possuem
varias intersec
oes. Cada intersec
ao e um zero de f (x).
uencia (xn ) e de Cauchy quando,
Defini
c
ao 2.2. Diz-se que uma seq
para todo > 0 dado, existe n0 N tal que m, n > n0 = |xm xn | <

Em outras palavras, uma seq


uencia e de Cauchy se seus termos
estao cada vez mais proximos uns dos outros.
Teorema 2.4. Uma seq
uencia (xn ) real converge se, e somente se,
e de Cauchy.

2.2

M
etodo de Localizac
ao de Zeros

Nesta secao vamos desenvolver um metodo para isolar os zeros de


uma funcao em intervalos. Em outras palavras, obter intervalos onde
existe um u
nico zero.


CAPITULO 2. ZEROS DE FUNC
AO

28

b
x

Figura 2.4: Zeros de f (x)


Consideremos uma func
ao f (x) cujo grafico seja dado pela figura
2.4. Gostaramos de encontrar uma partic
ao do intervalo [a b] digamos P = {p1 , p2 , p3 , . . . , pn }, onde pj = pj1 + para algum
escolhido. Tal que, cada zero esteja em um subintervalo (pk1 pk )
criado pela partic
ao. Veja exemplo abaixo:
Exemplo 2.2.1. Considere f (x) = 16x3 22x 5(figura 2.5) no
intervalo [2 2]. Tomamos uma partic
ao com = 12 e obtemos a
tabela:
P
f (P)

-2
<0

32
<0

-1
>0

12
>0

0
<0

1
2

<0

1
<0

3
2

>0

2
>0

Portanto,
o Teorema 2.1 existem zeros em 32
1 aplicando

2 0 e 1 32 .

1 ,

bom lembrar que quanto mais fina a partic


E
ao, ou seja, quanto
menor o melhores sao as chances de isolar todos os zeros da func
ao.
Em geral nao sabemos onde estao os zeros da func
ao f (x), simplesmente criamos uma partic
ao e observamos a mudanca de sinal
de acordo com o Teorema 2.1 para encontrar os intervalos onde f (x)
possui zeros. O proximo passo e encontrar uma aproximac
ao para
esses zeros. Isso sera feito nas proximas sec
oes.


2.3. METODO
DO MEIO INTERVALO - MMI

29

40

20

p1
-2

-1.5

p2
-1

p3

-0.5

p4
0

p5

p6

p7

0.5

1.5

x
2

-20

-40

Figura 2.5: Criando uma partic


ao P

2.3

M
etodo do Meio Intervalo - MMI

Considere uma funcao f (x) contnua no intervalo [a b] tal que


f (a)f (b) < 0 e f (x) possua um u
nico zero nesse intervalo. O MMI
consiste em efetuar sucessivas divisoes no intervalo [a b] de forma
que o zero fique dentro algum subintervalo (bem pequeno) criado
pelas divisoes. Ao contr
ario do Metodo de Localizac
ao de Zeros,
agora estamos interessados na aproximac
ao do zero, nao do intervalo. Acompanhe a explicac
ao abaixo com a figura 2.6.
Inicialmente dividimos o intervalo [a b] ao meio em x0 = a+b
2
e verificamos se f (x0 ) = 0, caso contr
ario analisamos o sinal de
f (a)f (x0 )
e
f (x0 )f (b).
Suponhamos que f (a)f (x0 ) > 0 e f (x0 )f (b) < 0. Assim pelo Teorema 2.1 existe um zero em (x0 b). Descartamos o intervalo [a x0 ].
Dividimos o intervalo (x0 b) ao meio em x1 = x02+b e verificamos
se f (x1 ) = 0, caso contr
ario, repetimos o processo verificando o
sinal de f (x0 )f (x1 ) e f (x1 )f (b). Suponhamos que f (x0 )f (x1 ) < 0 e
f (x1 )f (b) > 0. Descartamos o intervalo (x1 b) e dividimos [x0 x1 ]
em x3 . O processo segue ate que |xn xn1 | seja menor ou igual que
um certo fixado.
Na figura 2.6 verificamos que se continuarmos o metodo a seq
uencia
(xn ) converge para o zero . Mostraremos agora uma prova rigorosa de que a seq
uencia (xn ) realmente converge para , ou seja,


CAPITULO 2. ZEROS DE FUNC
AO

30
y

x x

Figura 2.6: (xn ) convergindo para o zero


lim xn = .
Para isso, tome somente os intervalos aproveitados:

[a b], [x0 b], [x0 x1 ], . . . , [xn xk ], . . .


renomeando para
[a0 b0 ], [a1 b1 ], [a2 b2 ], . . . , [an bn ], . . .
Veja que [a0 b0 ] [a1 b1 ] [a2 b2 ] . . . [an bn ] . . ., com
f (an )f (bn ) < 0 e ambas as seq
uencias (an ) e (bn ) limitadas. Outro
fato e que a0 a1 a2 . . . an . . . e b0 b1 b2
. . . bn . . ., onde conclumos que essas seq
uencias sao monotonas
e limitadas. Pelo Teorema de Bolzano-Weierstrass2 temos que (an )
e (bn ) convergem para um certo L, ou seja,
lim an = lim bn = L.

Ainda resta mostrar que L e exatamente o zero . Para isso calcule


o limite na desigualdade f (an )f (bn ) < 0 e use o fato de f (x) ser
continua. Temos ent
ao:
lim (f (an )f (bn )) < 0

n
2

Veja livro de c
alculo ou an
alise matem
atica


2.4. METODO
DA SECANTE

31

lim f (an ) lim f (bn ) < 0

lim an f lim bn < 0

f (L)f (L) < 0


f (L)2 < 0 = f (L) = 0
Como e o u
nico zero em [a b] ent
ao = L.
Exemplo 2.3.1. Encontre o zero de f (x) = x2 2 no intervalo [0 2]
com = 0.07.
n
0
1
2
3
4

an
0
1
1
1.25
1.37

bn
2
2
1.5
1.5
1.5

xn
1
1.5
1.25
1.37
1.43

|xn xn1 |
1>
0.5>
0.25>
0.12>
0.06

parar o metodo

Assim nossa aproximac


ao para o zero de f (x) seria x4 = 1.43

2.4

M
etodo da Secante

O metodo da Secante3 e parecido com o MMI no sentido de criar


uma seq
uencia que se aproxima do zero procurado.
Antes de aplicar o metodo devemos observar como a func
ao f (x)
se comporta no intervalo. Pois como veremos a concavidade muda o
modo como iremos criar a seq
uencia (xn ).
Vamos entao as hipoteses do metodo. Seja f (x) uma func
ao
duas vezes diferenciavel em [a b] e f (a)f (b) < 0. Suponhamos como
primeiro caso que:
f 0 (x) > 0 e f 00 (x) > 0, para todo x [a b]
3

tambem chamado de metodo das cordas


CAPITULO 2. ZEROS DE FUNC
AO

32

f (b))

(a,f (


x
2

Figura 2.7: Seq


uencia (xn ) no metodo da secante
Com essas hipoteses temos que o grafico de f (x) em [a b] tem a
forma da figura 2.6. O metodo da secante consiste em tomar a reta
(digamos L0 ) que passa pelos pontos (a, f (a)), (b, f (b)). O primeiro
elemento da seq
uencia (xn ), ou seja, o elemento x0 ser
a a intersecao
dessa reta com o eixo x, veja figura 2.7.
A segunda reta (digamos L1 ) passa pelos pontos (b, f (b)), (x0 , f (x0 )).
A intersecao dessa reta com o eixo x gera o elemento x1 . O processo
segue ate que |xn xn1 | seja menor ou igual que um certo fixado.
Ainda nao conhecemos bem os elementos da seq
uencia xn , por
isso vamos comecar determinando x0 . Lembramos que a equac
ao de
uma reta que passa por dois pontos quaisquer (x, y), (s0 , t0 ) e dada
por:
y t0 = m(x s0 ),
onde m e o coeficiente angular da reta.
O coeficiente angular da reta L0 e dado por mL0 =
Assim a equac
ao da reta L0 e:
y f (b) =

f (b)f (a)
.
ba

f (b) f (a)
f (b) f (a)
(x b) = y = f (b) +
(x b)
ba
ba

x0 e o ponto onde essa reta corta o eixo x, ou seja, y = 0, ent


ao
0 = f (b) +

f (b) f (a)
f (b)
(x0 b) = x0 = b
(b a)
ba
f (b) f (a)


2.5. METODO
DE NEWTON

33

Como o mesmo procedimento aplicado na reta L1 obtemos o ponto


x1 :
f (b)
x1 = b
(b x0 )
f (b) f (x0 )
Portanto a seq
uencia xn ser
a dada por:

xn = b

f (b)
f (b)f (xn1 ) (b

xn1 )

(2.1)

Veja exerccio 2.9.5 para outros casos.

2.4.1

Converg
encia no M
etodo da Secante

Podemos afirmar que a seq


uencia (xn ) e monotona e limitada. Dessa
forma:
lim xn = L.

Passando o limite na equac


ao (2.1) obtemos:

f (b)
lim xn = lim b
(b xn1 )
n
n
f (b) f (xn1 )
assim
L=b

f (b)
(b L) = f (L) = 0
f (b) f (L)

Como e o u
nico zero em [a b] ent
ao = L.

2.5

M
etodo de Newton

Considere para o metodo de Newton as mesmas hipoteses para f (x)


como no metodo da secante, ou seja, f (x) uma func
ao duas vezes
diferenciavel em [a b] e f (a)f (b) < 0. Suponhamos como primeiro
caso que:
f 0 (x) > 0 e f 00 (x) > 0, para todo x [a b]


CAPITULO 2. ZEROS DE FUNC
AO

34

x x
1

L1

L0

Figura 2.8: Seq


uencia (xn ) no metodo de Newton
Com essas hipoteses temos que o grafico de f (x) em [a b] tem a
forma da figura 2.6. O metodo de Newton difere pouco do metodo
da secante. Agora em vez da reta secante, tomamos a reta(digamos
L0 ) tangente no ponto (b, f (b)), ou seja, essa reta tem coeficiente
angular f 0 (b). Veja figura 2.8.
Observe que x0 e a intersec
ao de L0 com o eixo x e x1 e a intersecao da reta L1 com o eixo x. Como no metodo da secante vamos
determinar o ponto x0 . Para isso usaremos o fato do coeficiente angular mL0 ser igual a f 0 (b). Dessa forma a equac
ao da reta L0 fica
sendo:
y f (b) = f 0 (b)(x b) = y = f (b) + f 0 (b)(x b)
Como x0 e o ponto onde essa reta corta o eixo x, ou seja, y = 0
entao:
x0 = b

f (b)
f 0 (b)

O mesmo procedimento e aplicado em L1 e obtemos o ponto


x1 = x0
o que implica no caso geral

f (x0 )
f 0 (x0 )


2.5. METODO
DE NEWTON

xn = xn1

2.5.1

35

f (xn1 )
f 0 (xn1 )

(2.2)

Converg
encia no M
etodo de Newton

Podemos afirmar que a seq


uencia (xn ) e monotona e limitada. Dessa
forma:
lim xn = L.

Passando o limite na equac


ao (2.2)obtemos:

f (xn1 )
lim xn = lim xn1 0
n
n
f (xn1 )
assim
L=L

f (L)
= f (L) = 0
f 0 (L)

Como e o u
nico zero em [a b] ent
ao = L.
Exemplo 2.5.1. Vamos aplicar o metodo de Newton no Exemplo
2.3.1.
n
0
1
2

xn
1.5
1.416
1.414

|xn xn1 |
1.5>
0.08>
0.002

parar o metodo

Assim nossa aproximac


ao para o zero de f (x) seria x2 = 1.414.
Uma observacao muito importante e o fato do metodo de Newton
atingir com n = 2, ao passo que no MMI, n = 4. Isso nao acontece
por acaso, o metodo de Newton realmente converge mais rapido.
Nunca e demais lembrar que o M. de Newton exige que mais hipoteses
sobre a funcao do que o MMI.


CAPITULO 2. ZEROS DE FUNC
AO

36

2.6

M
etodo da Iterac
ao Linear

Comecamos esse metodo obtendo a func


ao de iterac
ao (x). Para
isso isolamos a vari
avel x na equac
ao f (x) = 0. Tome como exemplo
f (x) = x2 5x + 6:
x2 5x + 6
= 0
x2 x 4x + 6 = 0
x2 4x + 6
= x
Assim (x) = x2 4x + 6.
Veja agora que o ponto fixo(veja definic
ao adiante) de (x) e
justamente o zero de f (x), ou seja, k tal que (k) = k implica em
f (k) = 0.
Na verdade, o que fizemos foi transformar o problema de encontrar zeros, para o problema de encontrar ponto fixo.
Defini
c
ao 2.3. Diz-se que k e ponto fixo de (x), se (k) = k.
A seq
uencia (xn ) sera criada a partir de uma aproximac
ao inicial
x0 (mais a frente comentaremos essa escolha) da seguinte forma:
x1 = (x0 ), x2 = (x1 ), . . . , xn = (xn1 ), . . .
Observe nas figuras (2.9) e (2.10) a seq
uencia (xn ).
Como nem tudo sao flores! O metodo da Iterac
ao Linear nem
sempre pode ser usado, conforme o teorema abaixo.
Teorema 2.5. Se |0 (x)| < 1 para todo x [a b], ent
ao
para qualquer valor inicial x0 [a b] a seq
uencia x1 = (x0 ), x2 =
(x1 ), . . . , xn = (xn1 ), . . . converge para um certo L que e o ponto
fixo de (x) em [a b].
demonstracao
Consideremos o primeiro caso (figura 2.9) com xn1 < xn . Pelo
teorema do valor medio4 existe n (xn1 xn ) tal que:
|(xn ) (xn1 )| = |0 (n )||xn xn1 )|,
4

Veja qualquer livro de c


alculo


LINEAR
2.6. METODO
DA ITERAC
AO

37

(x)

f( x )
f( x )
2
1

y=x

f( x )
0

x
x

Figura 2.9: Seq


uencia (xn ) no metodo da Iterac
ao Linear

y=x

(x)

x
x

b
x

...
0

...

Figura 2.10: Seq


uencia (xn ) no Metodo da Iterac
ao Linear


CAPITULO 2. ZEROS DE FUNC
AO

38

segue por hipotese que |0 (n )| , ent


ao
|(xn ) (xn1 )| |xn xn1 |
implicando em
|xn+1 xn | |xn xn1 |
por analogia teremos
|xn+1 xn | |xn xn1 | 2 |xn1 xn2 | . . . n |x1 x0 |
ou seja,
|xn+1 xn | n |x1 x0 |
Passando o limite nesta u
ltima desigualdade teremos:

lim |xn+1 xn |

lim n |x1 x0 |
| {z }

constante

|x1 x0 | lim n
n
| {z }
0

0
Logo (xn ) e uma seq
uencia de Cauchy, pelo Teorema 2.4 a seq
uencia
(xn ) converge para um certo L em (a b), ou seja, lim xn = L.
n

Como (x) e diferenciavel, logo contnua temos que:

(L) = lim xn = lim (xn ) = lim xn+1 = L


n

Portanto L e o ponto fixo de (x).


Corol
ario 2.1. O ponto fixo L dado no Teorema 2.5 e o u
nico ponto
fixo de (x) em [a b].
demonstracao


LINEAR
2.6. METODO
DA ITERAC
AO

39

A prova sera feita por reduc


ao ao absurdo. Para isso, suponha
que exista um outro ponto fixo M em [a b]. Pelo teorema do valor
medio existe c (L M ) tal que:
|(L) (M )| = |0 (c)||L M |
|L M |
mais ainda,
|L M | |L M |
(1 )|L M | 0
Como < 1 entao (1 ) > 0, ou seja,
0 (1 )|L M | 0
(1 )|L M | = 0
Portanto L = M .
Mais detalhes sobre ponto fixo veja [7].

2.6.1

A Fun
c
ao de Iterac
ao

Pelo Teorema 2.5 observamos que a escolha de (x) e muito importante para a convergencia do Metodo da Iterac
ao Linear. Por isso,
para aplicar esse metodo devemos procurar uma func
ao de iterac
ao
(x) que satisfaca as hipoteses desse teorema. O exemplo abaixo
mostra como podemos obter varias func
oes de iterac
ao. Bastando
para isso, escolher e isolar x na equac
ao.

Exemplo 2.6.1. Encontre o zero de f (x) = 2x cos(x) em 51 2 ,


com = 0.01
1a func
ao de iterac
ao
2x cos(x)
= 0
x + x cos(x) = 0
cos(x) x
= x
assim 1 (x) = cos(x) x


CAPITULO 2. ZEROS DE FUNC
AO

40
2a func
ao de iterac
ao

2x cos(x) = 0 = x =
assim 2 (x) =

cos(x)
2

cos(x)
2

3a func
ao de iterac
ao

2x cos(x) = 0 somando x em ambos os lados


2x + x cos(x) = x
3x cos(x) = x
assim 3 (x) = 3x cos(x)
Vamos agora calcular derivada de cada
ao obtida, observando
func
seu comportamento no intervalo 15 2 .
|01 (x)| = | sen(x) 1| > 1, para algum x
|02 (x)| = |

sen(x)
2 |

< 1, para todo x

|03 (x)| = |3 + sen(x)| > 1, para todo x

1
5

Portanto conclumos que 2 (x) deve ser a func


ao de iterac
ao.
Uma vez que 2 (x) satisfaz o Teorema 2.5. Assim comecamos nossa
seq
uencia (xn ) com o elemento x0 = 51 e iteramos (a calculadora
deve estar em radianos):
x1
x2
x3
x4

=
=
=
=

2 (x0 )
2 (x1 )
2 (x2 )
2 (x3 )

=
=
=
=


2 15
2 (0.49003)
2 (0.44116)
2 (0.45213)

=
=
=
=

0.49003
0.44116
0.45213
0.44976

Paramos o metodo em x4 , porque |x4 x3 | = 0.00237 .

2.7. COMENTARIOS
FINAIS SOBRE OS METODOS

41

A escolha de x0
Caso a funcao f (x) tenha a forma da figura 2.9, x0 deve ser
escolhido de tal forma que x0 seja menor que o zero , pois caso
contrario o metodo pode nao convergir. Uma sugestao seria comecar
com o extremo do intervalo (nesse caso o ponto a).
Caso f (x) tenha forma da figura 2.10 o elemento x0 pode ser
arbitrario dentro do intervalo.

2.7
2.7.1

Coment
arios Finais Sobre os M
etodos
Localizac
ao de Zeros

um bom metodo para localizar os possveis intervalos onde se enE


contram os zeros de uma func
ao. Porem, se o intervalo de pesquisa
for muito grande ou se a func
ao possuir muitos zeros, o metodo pode
se tornar computacionalmente invi
avel.
Se o escolhido nao for suficientemente pequeno podemos ter intervalos onde existem dois ou mais zeros. Se for pequeno o metodo
pode nao ser viavel.

2.7.2

M
etodo do Meio Intervalo - MMI

A grande vantagem deste metodo consiste no fato que so exigimos


que a funcao f (x) seja contnua. Mas infelizmente a convergencia e
lenta.

2.7.3

M
etodo da Secante

Exige que o sinal de f 0 (x) e f 00 (x) sejam constantes no intervalo.


Nem sempre a funcao tem derivadas, o que inviabiliza o metodo. Se
o intervalo de procura for muito grande o metodo pode se tornar
lento.

2.7.4

M
etodo de Newton

Exige que o sinal de f 0 (x) e f 00 (x) sejam constantes no intervalo.


Mas tem convergencia extraordinaria.


CAPITULO 2. ZEROS DE FUNC
AO

42

2.7.5

M
etodo da Iterac
ao Linear

A funcao de iterac
ao (x) deve ser obtida atraves de um processo
manual, ou seja, analtico. Satisfazendo a hipotese do Teorema 2.5.
Nem sempre e facil encontrar tal func
ao.
Para finalizar, relacionamos o n
umero de iterac
oes que cada metodo
gasta para resolver um problema. Tambem verificamos os zeros de
uma funcao onde nao temos o intervalo de procura. Isto fica claro
nos exemplos abaixo.
1

2.7.1. Encontre um zero de f (x) = e 10 x + x2 10 em


Exemplo

5 7
5
2 2 com = 10
Neste exemplo obtemos os resultados:

n
umero de iterac
oes

MMI
16

M. Secante
6

M. Newton
3

M. Iterac
ao Linear
4

Exemplo 2.7.2. Calcule pelo menos um zero de f (x) = log(x) + x.


Observe que n
ao foi dado o intervalo. Uma sada e aplicar o Teorema 2.3 com h(x) = x e g(x) = log(x). O gr
afico dessas func
oes e
dado na figura 2.11. Nele podemos observar que a intersec
ao de h(x)
e g(x) encontra-se no intervalo [0 1]. Atraves do gr
afico tambem observamos que essa intersec
ao e u
nica. Logo f (x) possui somente um
u
nico zero. Para esse exemplo aplicaremos o metodo do meio intervalo - MMI, com = 0.009. Lembrando
1 que
em vez do intervalo
a que f (x) n
ao est
a
[0 1] trabalharemos com o intervalo 100 1 j
definida em 0.
n
0
1
2
3
4
5
6

an
1/100
1/100
0.257
0.381
0.381
0.381
0.396

bn
1
0.505
0.505
0.505
0.443
0.412
0.412

xn
0.505
0.257
0.381
0.443
0.412
0.396
0.404

|xn xn1 |
0.248>
0.124>
0.062>
0.031>
0.016>
0.008

parar o metodo


2.8. ZEROS DE UM POLINOMIO

43

g(x)

0.5

0
-0.5

0.5

1.5

2.5

-0.5

-1

-1.5

-2

-2.5


Figura 2.11: Metodo grafico


Logo nossa aproximac
ao com = 0.09 e x6 = 0.404.

2.8

Zeros de um Polin
omio

Nas secoes anteriores desenvolvemos metodos para encontrar zeros de


uma funcao. Inclusive de polinomios. Nesta sec
ao vamos aprofundar
um pouco mais nosso conhecimento sobre os zeros de um polinomio.
Lembramos que neste texto, o zero de um polinomio e o mesmo que a
raiz de um polinomio. Nosso principal objetivo e chegar no teorema
que limita os zeros de um polinomio qualquer.

Da Algebra
Linear, sabemos que dois espacos vetoriais sao isomorfos se, existe um isomorfismo entre eles. Nesta sec
ao vamos utilizar o isomorfismo dos n
umeros complexos (C) em R2 , denotado por
C R2 , que associa a cada n
umero complexo a + bi o par (a, b) em
2
R .
Tambem vamos utilizar a norma euclidiana em R2 dada por:
p
k(a, b)k = a2 + b2 ,
assim ka + bik = k(a, b)k.
Nas proposicoes e teoremas abaixo, os polinomios podem ter
coeficientes reais ou complexos. Consideramos apenas polinomios
monicos, ou seja o coeficiente do termo de maior grau e igual a 1.


CAPITULO 2. ZEROS DE FUNC
AO

44

Proposi
c
ao 2.1. Seja p(x) = xn + an1 xn1 + + a1 x + a0 um
n1
X kai k
polin
omio de grau n e a0 6= 0. Se
< 1 e x 6= 0, ent
ao
kxkni
i=0
p(x) 6= 0.
demonstracao
Como x 6= 0 podemos escrever

p(x) = x

1+

n1
X
i=0

ai
xni

e usar a desigualdade triangular5 .

n1
X a n1
X kai k

i
<1

ni

x
kxkni

(2.3)

(2.4)

i=0

i=0

De (2.3) e (2.4) conclumos que p(x) 6= 0.

Corol
ario 2.2. Se

kai k1/(ni)
1
< para i = 0, . . . , n 1 e x 6= 0.
kxk
2

Ent
ao p(x) 6= 0.
demonstracao
Veja que
n1
X
i=0

kai k
kxkni

n1
X
i=0

kai k1/(ni)
kxk

!ni

1
1
1
1
+
+ + 2 +
2n 2n1
2
2

1
< 1
5

ka + bk kak + kbk

1
2n


2.8. ZEROS DE UM POLINOMIO

45

De acordo com a Proposic


ao 2.1 p(x) 6= 0.
Estamos prontos para enunciar e demonstrar o
Teorema 2.6. Seja p(x) = xn + an1 xn1 + + a1 x + a0 um
polin
omio de grau n e a0 =
6 0. Se x e um zero de p, ent
ao
kxk L
onde L = 2 max {kai k1/(ni) }
0in1

demonstracao
Negando o Corolario 2.2 temos que; se p(x) = 0 ent
ao existe i0 tal
1/(ni
)
0
1
kai0 k
. Do fato de
que
kxk
2
max {kai k1/(ni) }

0in1

kxk

kai0 k1/(ni0 )
kxk

conclumos que
max {kai k1/(ni) }

0in1

kxk

1
= kxk 2 max {kai k1/(ni) }
0in1
2

Exemplo 2.8.1. Ache o limite superior e inferior dos zeros reais do


polin
omio
p(x) = x3 + 3x2 10x + 24.
Veja que
L = 2 max {kai k1/(ni) }
0in1

= 2 max{ka0 k1/3 , ka1 k1/2 , ka2 k}


= 2 max{241/3 , 101/2 , 3}

= 2 10


CAPITULO 2. ZEROS DE FUNC
AO

46

assim todos os zeros reais de p(x) est


ao no intervalo [L L].
Exemplo 2.8.2. Determine a bola onde todos o zeros reais e complexos de p(x) = x3 + 3x2 10x + 24 est
ao.

Pelo exemplo anterior temos que L = 2 10. Assim se x e um


zero de p(x) ent
ao kxk L. Usando a correspondencia C R2
temos a bola da figura 2.12:
y

L
2

x
-8

-6

-4

-2

-2

-4

-6

-8

Figura 2.12: Limite dos zeros

Exemplo 2.8.3. Ache o limite superior e inferior dos zeros do


polin
omio
p(x) = 2x3 3x2 2x + 3.
Observe que neste caso p(x) n
ao est
a na forma do Teorema 2.6.
Para resolver isso, basta tomar o polin
omio


2.8. ZEROS DE UM POLINOMIO

47

0
-L

Figura 2.13: Isolando zeros

g(x) =

p(x)
2x3 3x2 2x + 3
3
3
=
= x3 x2 x +
a3
2
2
2

cujo zeros s
ao os mesmos de p(x).
Aplicando o Teorema 2.6 em g(x) temos:
1

L = 2 max{(3/2) 3 , 1, 3/2} = 3
assim todos os zeros reais de p(x) est
ao no intervalo [L L] =
[3 3].
Ainda podemos avancar um pouco mais. Queremos agora o limite
inferior dos zeros positivos e o limite superior dos zeros negativos,
veja (?) na figura 2.13.
Para encontrar estes limites, precisamos de um resultado impor6

tante de Algebra:
n
Se p(x) = x + an1 xn1 + + a1 x + a0 e um polinomio de grau
n, entao p(x) tem no maximo n zeros reais ou complexos.
Decorre desse resultado que todo polinomio de grau mpar tem
pelo menos um zero real.
Com esses resultados, seja (0 , 1 , . . . , n1 ) os zeros de p(x),

entao podemos escrever p(x) na forma(tambem e dado pela Algebra):


p(x) = (x 0 )(x 1 ) (x n1 ).
Consideremos o polinomio

1
.
P1 (x) = x p
x
n

Veja em [5]


CAPITULO 2. ZEROS DE FUNC
AO

48

Pelo que acabamos de ver,

1
1
1
n
P1 (x) = x
0
1
n1
x
x
x

xn

1 x0
x

1 x1
x

1 xn1
x

= (1 x0 )(1 x1 ) (1 xn1 ).

1
1 1
, ,...,
. Aplicando
Observe que os zeros de P1 (x) sao
0 1
n1
o Teorema 2.6 em P1 (x) temos a existencia de L1 tal que

1
L1
xii
1
ki k. Portanto, se x e um zero de um
L1
polinomio qualquer (monico), ent
ao L1 kxk L.
No caso de zeros reais podemos dizer que:
o que implica em

L1
onde

1
L1 para i = 0, . . . , n 1
i
1
1
L1 =
i
i
L1

e
L1

1
1
= i
i
L1

assim, os zeros reais negativos de p(x) estao no intervalo L

1
L .
e os zeros positivos estao em
L1

L1

Exemplo 2.8.4. Ache os limites L, L1 de p(x) = 2x3 3x2 2x + 3.


No Exemplo 2.8.3 calculamos L = 3. Conforme feito, vamos utilizar
3
3
o polin
omio g(x) = x3 x2 x + . Calculando P1 (x) temos:
2
2


2.8. ZEROS DE UM POLINOMIO

49

1
1
3
1 3
3
3
3
P1 (x) = x p
=x
2 +
= 1 x x2 + x3 .
3
x
x
2x
x 2
2
2
3

Como P1 (x) n
ao est
a nas condic
oes do Teorema 2.6, mudamos
para
g1 (x) =

P1 (x)
2
2
= x3 x2 x +
3/2
3
3

Aplicando o Teorema 2.6 em g1 (x) temos:


1
1
L1 = 2 max{(2/3) 3 , 1, (2/3)} = 2(2/3) 3
= 1.747 e

1
= 0.572 .
L1

Assim todos os zeros complexos de p(x) est


ao no disco da figura
2.14.
y

L
x
-8

-6

-4

-2

-2

-4

-6

-8

Figura 2.14: Limite de zeros complexos


CAPITULO 2. ZEROS DE FUNC
AO

50

Portanto todos os zeros reais(se existirem) negativos de p(x) est


ao
em [3 0.572] e todos os zeros positivos em [0.572 3].
Uma vez dados os intervalos [L L11 ] e [ L11 L] podemos
aplicar o metodo de localizac
ao de zeros associado com qualquer
metodo de busca (MMI, Newton, etc) para encontrar os zeros reais
do polinomio.

2.8.1

Multiplicidade de um zero

Consideremos o seguinte teorema cuja demonstrac


ao pode ser encontrada em [5].
Teorema 2.7. Todo polin
omio de grau n tem exatamente n zeros
reais ou complexos.
Considere o polinomio p(x) = x3 + 4x + 5x + 2. Aplicando o
2.7 temos a existencia de 3 zeros. Mas os u
nicos zeros sao {-1,-2}.
Isto parece contradit
orio. O fato se da pela multiplicidade do zero
1, ou seja, 1 e contado duas vezes. Dizemos que o zero 1 tem
multiplicidade igual a 2.
Para saber a multiplicidade de um zero basta olhar para a derivada
do polinomio. Assim se e um zero de p(x) ent
ao a multiplicidade
de e dado por m, onde
p0 (x)
p00 (x)

= 0
= 0
..
.

pm1 (x) = 0
pm (x)
6= 0
Exemplo 2.8.5. No caso de p(x) = x3 + 4x + 5x + 2 temos que:
p(1) = 0
p0 (1) = 0
p00 (1) 6= 0

p(2) = 0
p0 (2) 6= 0

Logo a multiplicidade de 1 e 2 e a multiplicidade de 2 e 1.

2.9. EXERCICIOS

51

Observe que a soma da multiplicidade de todos os zeros e igual ao


grau do polinomio. Outro fato, se o polinomio p(x) tem grau mpar
entao possui pelo menos um zero real.
Conclumos que para procurar por zeros reais de um polinomio
devemos seguir um roteiro:
i Encontrar os limites L, L1
ii- Aplicar metodo de localizac
ao de zeros.
iii- Contar os zeros.
iv- Aplicar algum metodo de aproximac
ao(MMI, Newton,Secante,etc)

2.9

Exerccios

2.9.1. Seja f (x) = x4 x10 definida em [2 2]. Aplique o metodo


de localizac
ao de zeros com = 14 para encontrar os subintervalos
onde f (x) possui zeros.
ao do Exerccio
2.9.2. Aplique o MMI para encontrar os zeros da func
2.9.1.
2.9.3. Encontre atraves do MMI com = 0.01 pelo menos um zero
de:
a) f (x) = x3 x + 1
b) g(x) = 2ex sen(x)
c) h(x) = xln(x) 0.8
2.9.4.Aplique o Metodo da Secante para encontrar uma aproximac
ao
para 2 e compare com o Metodo de Newton.
ao geral para a seq
uencia (xn ) no Metodo da
2.9.5. Mostre a equac
Secante quando:
a) f 0 (x) < 0 e f 00 (x) > 0 para todo x [a b]
b) f 0 (x) < 0 e f 00 (x) < 0 para todo x [a b]
c) f 0 (x) > 0 e f 00 (x) < 0 para todo x [a b]


CAPITULO 2. ZEROS DE FUNC
AO

52

2.9.6. Mostre que no Metodo de Newton podemos escolher x0 se


f (x0 )f 00 (x0 ) > 0
2.9.7. Ache um zero de f (x) = ex sen(x) 2 com = 0.0001 pelo
Metodo da Secante e pelo Metodo de Newton. Compare os resultados
e diga qual Metodo converge mais r
apido.
2.9.8. Ache um zero de f (x) = x + ln(x) e g(x) = 2x3 + ln(x) 5
com = 0.001 pelo Metodo da Iterac
ao Linear.
2.9.9. Usando o Metodo da Iterac
ao Linear ache um zero de
f (x) = cos(x) + ln(x) + x com = 102 .

2.9.10. Calcule uma aproximac


ao para 7 9
2.9.11. Seja f (x) = ex + x3 1, ache x tal que f (x) = 2.
2.9.12. Ache os pontos de m
aximo e mnimo de f (x) = x5 +10x2 +x
em [2 1].
2.9.13. Determine o mnimo global de f (x) = 2x4 2x3 x2 x 3
2.9.14. O que ocorre quando aplicamos o MMI em uma func
ao que
possui 3 zeros em um intervalo [a b].
2.9.15. Para cada item abaixo de um exemplo onde n
ao podemos
aplicar o:
a)Metodo do Meio Intervalo - MMI
b)Metodo da Secante
c)Metodo de Newton
d)Metodo da Iteraca
o Linear.
2.9.16. De acordo com o texto calcule L, L1 para p(x) = x4 5x3
7x2 + 29x + 30
2.9.17. Encontre os tres zeros reais de p(x) = x3 2x2 5x + 6 com
= 102 .

Captulo 3

Interpolac
ao
3.1

Introduc
ao

Abordaremos neste captulo os aspectos basicos da teoria de interpolacao.


Comecamos apresentando dois problemas:
i- Considere uma func
ao f (x) conhecida apenas nos pontos
(x0 , x1 , . . . , xn ). Se n
ao temos a forma analtica de f (x) como
podemos determinar o valor f (c) para um c (xi xj )?
ii- Seja f (x) uma func
ao de forma analtica complicada ou de
difcil avaliaca
o. Existe uma outra func
ao g(x) tal que g(x)
= f (x),
onde g(x) e uma func
ao de f
acil avaliaca
o?
Esses problemas serao resolvidos atraves da construc
ao de um
polinomio chamado polinomio interpolador. Em outros textos e
possvel encontrar interpolantes trigonometricas e exponenciais, para
isso veja [11].
Tudo comeca com o teorema abaixo:
Teorema 3.1. (Weirstrass) Se f (x) e uma func
ao contnua em um
intervalo fechado [a b], ent
ao existe um polin
omio p(x) tal que

p(x) = f (x) para todo x [a b], ou seja, |f (x) p(x)| < para
qualquer dado.
53


CAPITULO 3. INTERPOLAC
AO

54

Como muitos teoremas na matematica, o teorema acima so garante


a
existencia do polinomio interpolador, outro fato e que o grau do
polinomio p(x) depende do escolhido. A demonstrac
ao encontra-se
em [9].

3.2

Interpolac
ao de Lagrange

Garantida a existencia do polinomio interpolador, vamos agora desenvolver um metodo para encontr
a-lo.
Teorema 3.2. (Lagrange) Sejam (x0 , x1 , . . . , xn ) os pontos distintos
onde f (x) e conhecida. Ent
ao o polin
omio interpolador p(x) tem
grau n e e dado pela f
ormula:

p(x) =

n
X

f (xi )

i=0

n
Y
j=0,j6=i

(x xj )
(xi xj )

Antes de demonstrar o Teorema 3.2 facamos um exemplo:


Exemplo 3.2.1. Seja f (x) conhecida em :
(x0 , f (x0 ))
(x1 , f (x1 ))
(x2 , f (x2 ))
(x3 , f (x3 ))
Desejamos saber o valor de f

=
=
=
=

(1, 1)
(1, 3)
(2, 1)
(3, 4)

1
2 . Usando o Teorema 3.2 temos:

DE LAGRANGE
3.2. INTERPOLAC
AO

p(x) =

3
X

f (xi )

i=0

= f (x0 )

j=0,j6=i

(x xj )
(xi xj )

(x x1 )(x x2 )(x x3 )
(x x0 )(x x2 )(x x3 )
+ f (x1 )
(x0 x1 )(x0 x2 )(x0 x3 )
(x1 x0 )(x1 x2 )(x1 x3 )

+f (x2 )
..
.

3
Y

55

(x x0 )(x x1 )(x x3 )
(x x0 )(x x1 )(x x2 )
f (x3 )
(x2 x0 )(x2 x1 )(x2 x3 )
(x3 x0 )(x3 x1 )(x3 x2 )

27
13 3 11 2 11
x x + x+
24
4
24
4

Observe que p(xi ) = f (xi ) parai = 0, 1, 2, 3 e o grau


de
p(x) e 3.
Agora, para saber o valor de f 21 basta calcular p 12
= 5.671
demonstracao do Teorema 3.2
Consideremos os polinomios de Lagrange:
P0 (x) =
P1 (x) =
..
.

(x x1 )(x x2 ) (x xn )
(x x0 )(x x2 ) (x xn )

Pn (x) = (x x0 )(x x1 ) (x xn1 )


Em geral Pi (x) =

n
Y

(x xj ), para i = 0, . . . , n.

j=0,j6=i

Esses polinomios tem a seguinte propriedade:

Pi (x) 6= 0 e Pi (xj ) = 0

(3.1)

Pelo Teorema 3.1 temos que p(x) existe e seu grau e igual a n.
Dessa forma podemos escrever p(x) como combinac
ao linear dos
polinomios de Lagrange, ou seja, existem escalares (b0 , b1 , . . . , bn )
tais que:


CAPITULO 3. INTERPOLAC
AO

56

p(x) = b0 P0 (x) + b1 P1 (x) + + bn Pn (x)

(3.2)

Pela equacao (3.1) podemos afirmar que:


p(xk ) = b0 P0 (xk ) + b1 P1 (xk ) + + bk Pk (xk ) + + bn Pn (xk )
| {z } | {z }
| {z }
0

= bk Pk (xk )
o que implica em

bk =

p(xk )
para k = 0, 1, . . . , n
Pk (xk )

(3.3)

Substituindo a equac
ao (3.3) na equac
ao (3.2) temos:

p(x) =

p(x0 )
p(x1 )
p(xn )
P0 (x) +
P1 (x) + +
Pn (x)
P0 (x0 )
P1 (x1 )
Pn (xn )

como p(xi ) = f (xi ) ent


ao

p(x) =

f (x0 )
f (x1 )
f (xn )
P0 (x) +
P1 (x) + +
Pn (x)
P0 (x0 )
P1 (x1 )
Pn (xn )

logo
p(x) =

n
X
i=0

f (xi )

n
n
X
Y
Pi (x)
=
f (xi )
Pi (xi )
i=0

j=0,j6=i

(x xj )
(xi xj )

Corol
ario 3.1. O polin
omio dado no Teorema 3.2 e u
nico.
demonstracao

COM DIFERENC
3.3. INTERPOLAC
AO
AS DIVIDIDAS FINITAS - DDF57
Suponhamos que exista um outro polinomio s(x) tal que s(xi ) =
f (xi ) para i = 0, 1, . . . , n. Considere o polinomio:
T (x) = s(x) p(x)
Veja que T (xi ) = s(xi ) p(xi ) = 0 para i = 0, 1, . . . , n. Como o grau
de s(x) e p(x) e n, ent
ao o grau de T (x) tambem e n. Mas T (x) tem
n + 1 zeros o que e um absurdo de acordo com o Teorema 2.7. Logo
s(x) = p(x).

3.3

Interpolac
ao com Diferencas Divididas Finitas - DDF

Consideremos uma func


ao f (x) contnua em [a b] e diferenciavel em
(a b). Uma diferenca dividida finita - DDF de primeira ordem de
f (x) em relacao a x0 , x1 e dada por:
f [x1 , x0 ] =

f (x1 ) f (x0 )
x1 x0

observe que f [x1 , x0 ] e uma aproximac


ao para f 0 (x0 ).
A DDF de segunda ordem sera dada por:
f [x2 , x1 , x0 ] =

f [x2 , x1 ] f [x1 , x0 ]
x2 x0

veja que isso e uma aproximac


ao para f 00 (x1 ).
Assim a DDF de n-esima ordem sera dada por:
f [xn , xn1 , . . . , x1 , x0 ] =

3.3.1

f [xn , xn1 , . . . , x1 ] f [xn1 , xn2 , . . . , x0 ]


xn x0

Propriedades de uma DDF

i - f [xn , xn1 , . . . , x1 , x0 ] = f [x0 , x1 , . . . , xn1 , xn ] onde


0 , 1 , . . . , n1 , n e qualquer permutac
ao dos inteiros
{n, n 1, . . . , 1, 0}. Por exemplo:
f [x2 , x1 , x0 ] = f [x1 , x2 , x0 ] = f [x2 , x0 , x1 ] = f [x0 , x1 , x2 ] = f [x1 , x0 , x2 ] = f [x0 , x2 , x1 ]


CAPITULO 3. INTERPOLAC
AO

58
ii - f [x0 , x1 ] =

3.3.2

f (x1 )
x1 x0

f (x0 )
x0 x1

Obtenc
ao da F
ormula

Pelo Teorema 3.1 temos a existencia do polinomio p(x). Assim considere (x0 , x1 , . . . , xn ) os n + 1 pontos conhecidos de f (x). Pela
definicao de DDF temos:
p[x, x0 ] =

p(x) p(x0 )
x x0

ou
p(x) = p(x0 ) + (x x0 )p[x, x0 ]
mais ainda,
p[x, x0 , x1 ] =

(3.4)

p[x, x0 ] p[x0 , x1 ]
x x1

p[x, x0 ] = p[x0 , x1 ] + (x x1 )p[x, x0 , x1 ]

(3.5)

Substituindo (3.5) em (3.4) temos:


p(x) = p(x0 ) + (x x0 )p[x0 , x1 ] + (x x0 )(x x1 )p[x, x0 , x1 ]
como
p[x, x0 , x1 ] = (x x2 )p[x, x0 , x1 , x2 ] + p[x0 , x1 , x2 ]
entao
p(x) = p(x0 ) + (x x0 )p[x0 , x1 ] + (x x0 )(x x1 )p[x0 , x1 , x2 ]
+ (x x0 )(x x1 )(x x2 )p[x, x0 , x1 , x2 ].
Continuando a substituir p[x, x0 , x1 , x2 ] teremos:
p(x) = p(x0 ) + (x x0 )p[x0 , x1 ] + (x x0 )(x x1 )p[x0 , x1 , x2 ]
+ (x x0 )(x x1 )(x x2 )p[x0 , x1 , x2 , x3 ] + +
(x x0 ) (x xn1 )p[x0 , . . . , xn ] + (x x0 ) (x
xn )p[x, x0 , . . . , xn ]

3.4. ERRO DE TRUNCAMENTO

59

Como p(x) e um polinomio de grau n ent


ao a (n + 1)-esima
derivada e igual a zero. Logo p[x, x0 , . . . , xn ] = 0. Dessa forma o
polinomio p(x) pode ser escrito como:
p(x) = f (x0 ) + (x x0 )p[x0 , x1 ] + (x x0 )(x x1 )p[x0 , x1 , x2 ]+
+(x x0 )(x x1 )(x x2 )p[x0 , x1 , x2 , x3 ] + +
+(x x0 ) (x xn1 )p[x0 , . . . , xn ]
Exemplo 3.3.1. Vamos construir o polin
omio interpolador para
sen(x)
func
ao f (x) =
via DDF. Para essa interpolac
ao considere
x
os pontos:

(x0 , f (x0 )) = 3
,
0.46
2
(x1 , f (x1 )) =

2 , 0.797

Veja que
p[x0 , x1 ] =
Assim

f (x0 ) f (x1 )
1.257
p(x0 ) p(x1 )
=
=
x0 x1
x0 x1

p(x) = f (x0 ) + (x x0 )p[x0 , x1 ]

= 0.46 + x

3
2

1.257

= 1.257
x + 1, 425

3.4

Erro de Truncamento

Considere o problema (ii ) na Introduc


ao do Captulo. Nesse caso
conhecemos a forma analtica de f (x). Veremos que se f (x) for suficientemente diferenciavel, ent
ao podemos calcular o erro de truncamento na interpolacao.
Seja p(x) o polinomio interpolador de grau n criado com base em
(x0 , x1 , . . . , xn ). Definimos o erro de truncamento como:
Et (x) = f (x) p(x)
A proposicao abaixo caracteriza Et (x). Mas sua demonstrac
ao
requer um famoso teorema, chamado de Teorema de Rolle. Apenas


CAPITULO 3. INTERPOLAC
AO

60

enunciaremos esse teorema. Sua demonstrac


ao pode ser encontrada
em livros de Calculo ou em [3].
ao contnua
Teorema 3.3. (Rolle) Seja f : [a b] R uma func
definida em um intervalo fechado [a b]. Se f (x) e diferenci
avel no
intervalo aberto (a b) e f (a) = f (b) = 0. Ent
ao existe (a b) tal
que f 0 () = 0.
Proposi
c
ao 3.1. Seja f (x) = Et (x) + p(x), onde p(x) e o polin
omio
interpolador de f (x) relativamente aos pontos (x0 , x1 , . . . , xn ) de [a b]
e f (x) seja (n + 1) vezes diferenci
avel em [a b]. Ent
ao existe
(a b) tal que
Et (x) = (x x0 )(x x1 ) (x xn )

f n+1 ()
(n + 1)!

demonstracao
Comecamos construindo uma func
ao auxiliar
(x) = f (x) p(x) (x x0 )(x x1 ) (x xn )A,
observe que (x0 ) = (x1 ) = = (xn ) = 0, ou seja, (x) se
anula em n + 1 pontos. Tome z (a b) distinto de (x0 , x1 , . . . , xn )
e escolhemos A tal que (z) = 0.
(x) e (n + 1) vezes diferenciavel, ja que isso ocorre com f (x) e
p(x). Assim podemos aplicar o Teorema de Rolle repetidas vezes e
garantir a existencia de (a b) tal que:
0 = n+1 () = f n+1 () (n + 1)!A
donde
A=

f n+1 ()
(n + 1)!

ou
Et (z) = (z x0 )(z x1 ) (z xn )

f n+1 ()
(n + 1)!

Como z foi escolhido arbitrario temos o resultado.

3.4. ERRO DE TRUNCAMENTO

61

A Proposicao 3.1 garante a existencia de . Na pratica nao e


possvel encontra-lo. Para resolver isso, tomamos como f n+1 () o
maximo que |f n+1 (x)| assume em [a b].
Uma observacao que deve ser feita, vem do fato de que o polinomio
interpolador e u
nico de acordo com o Teorema 3.1, ent
ao o erro
de truncamento tambem e o mesmo, tanto para o polinomio de
Lagrange, quanto para o polinomio obtido via DDF. Neste caso o
polinomio interpolador obtido por DDF (por exemplo com tres pontos {x0 , x1 , x2 }) e escrito como:
p(x) = f (x0 ) + (x x0 )p[x0 , x1 ] + (x x0 )(x x1 )p[x0 , x1 , x2 ]
com isto,
Et (x) = f (x) p(x)
= f (x) (f (x0 ) + (x x0 )p[x0 , x1 ] + (x x0 )(x x1 )p[x0 , x1 , x2 ])
= (x x0 ){f [x, x0 ] p[x0 , x1 ] (x x0 )(x x1 ) p[x0 , x1 , x2 ]
| {z }
|
{z
}
f [x0 ,x1 ]

f [x0 ,x1 ,x2 ]

= (x x0 )(x x1 )(x x2 )f [x, x0 , x1 , x2 ]


Podemos generalizar para
Et (x) = (x x0 )(x x1 ) (x xn )f [x, x0 , x1 , . . . , xn ]
Comparando essa u
ltima equac
ao com a Proposic
ao 3.1 conclumos
que:
f n+1 ()
f [x, x0 , x1 , . . . , xn ] =
(n + 1)!
para algum em (a b).
Exemplo
3.4.1. Considere a funca
o f (x) = sen(x) no intervalo

omio interpolador via metodo de La0 2 . Vamos obter o polin
grange nos pontos
(x0 , f (x0 )) = (0, 0)

(x1 , f (x1 )) =
, 22
4

(x2 , f (x2 )) =
2,1


CAPITULO 3. INTERPOLAC
AO

62
assim

p(x) =

2
X
i=0

f (xi )

2
Y
j=0,j6=i

(x xj )
=
(xi xj )


!
!
88 2
4 22
2
x +
x
2

facilmente que |f 3 (x)| assume m


aximo igual a 1 em
Verificamos

0 2 . Dessa forma podemos calcular o erro de truncamento:


Et (x) = (x x0 )(x x1 )(x x2 )

1
1
=x x
x
3!
4
2 6

Como aplicac
ao vejamos o erro de truncamento no ponto

Et 3 = 0.30280

3
8 .

Por comparac
ao vamos calcular os valores exatos:

Et 3 = f 3 p 3 = 0.018

8
8
8
Certamente o leitor deve estar se perguntando; n
ao teria que resultar o mesmo valor? A resposta

e
n
a
o.
Quando
tomamos
o m
aximo

ao
de |f 3 (x)| no intervalo 0 2 estamos assumindo uma aproximac
3
para o |f ()|. Portanto o erro de truncamento deve ser calculado
com bastante cuidado.
O erro de truncamento pode ser visto geometricamente na figura
3.1.

3.5

M
etodo de Briot-Ruffini

Consideremos um polinomio de grau n, p(x) = an xn + an1 xn1 +


+ a1 x + a0 em R. Veja que para calcular o valor p(c) para um
c R efetuamos n(n+1)
multiplicac
oes e n adic
oes. O metodo de
2
Briot-Ruffini propoe reduzir o n
umero de multiplicac
oes.
Pela divisao euclidiana de p(x) por (x c) temos:
p(x) = (x c)Q(x) + R

(3.6)


3.5. METODO
DE BRIOT-RUFFINI

63

0
1.75

1.5

1.25

0.75

0.5

0.25

0.25

0.5


0.75

1.25

1.5

1.75

-1

-2

p(x)

Figura 3.1: Erro de truncamento


onde R e uma constante, ja que o grau de p(x) e n e o grau de
Q(x) e n 1.
Assim p(c) = R, ou seja, basta encontrar R. Para isso comecamos
escrevendo Q(x) na forma geral:
Q(x) = bn1 xn1 + bn2 xn2 + + b1 x + b0

(3.7)

e substituindo (3.7) em (3.6)


p(x) = (x c)(bn1 xn1 + bn2 xn2 + + b1 x + b0 ) + R
= bn1 xn + (bn2 cbn1 )xn1 + (bn3 cbn2 )xn2 + +
+(b1 cb2 )x2 + (b0 cb1 )x + (cb0 + R)
Expandindo p(x)
an xn + an1 xn1 + + a1 x + a0
e igual a


CAPITULO 3. INTERPOLAC
AO

64

bn1 xn +(bn2 cbn1 )xn1 +(bn3 cbn2 )xn2 + +(b1 cb2 )x2 +(b0 cb1 )x+(Rcb0 )
Portanto:
bn1 = an
bn2 = an1 + cbn1
bn3 = an2 + cbn2
..
.
b0
R

= a1 + cb1
= a0 + cb0

Dessa forma, R e facilmente encontrado e o n


umero de multiplicacoes e igual a n.
Exemplo 3.5.1. Use o metodo de Briot-Ruffini para avaliar p(x) =
x2 + 3x + 1 em c = 2
b1 = a2
= 1
b0 = a1 + cb1 = 5
R = a0 + cb0 = 11
Assim p(2) = 11.

3.6

Considerac
oes Finais

Uma observac
ao importante que devemos fazer em relac
ao a interpolacao e a seguinte; quanto maior o n
umero de pontos melhor e a
bom lembrar
aproximacao fornecida pelo polinomio interpolador. E
que quanto mais pontos, maior e o grau do polinomio e assim mais
lenta e sua avaliac
ao, por isso e necessario a utilizac
ao de metodos
de avaliacao polinomial tal como o metodo de Briot-Ruffini1 .
1

N
ao e o u
nico.

3.7. EXERCICIOS

3.7

65

Exerccios

c
ao de Lagrange para determinar uma aprox3.7.1. Use interpola

imac
ao de f 5 sabendo que:
3
1
= ,f
= 0, f
=
f (0) = 1, f
3
2
2
6
2

cos(x)

. Calcule uma aproximac


ao para f 3
3
2
x
atraves do polin
omio de Lagrange.
3.7.2. Seja f (x) =

3.7.3.
ao por DDF obtenha o valor aproximado de
Usando interpolac
f 12 sabendo que:

2
1
3
= , f (2) =
f (1) = 1, f
2
3
2
3.7.4. Os problemas vistos ate agora s
ao da forma:
Dado os pontos (x0 , x1 , . . . , xn ), onde f (x) e conhecida, pede-se
para encontrar um valor f (c) para algum c [xj xi ] conhecido.
Pense agora no problema inverso:
Dado os pontos (x0 , x1 , . . . , xn ), onde f (x) e conhecida, pede-se
para encontrar um valor c onde conhecemos o valor f (c). Chamamos
de interpolac
ao inversa.
Determine o valor aproximado de c para f (c) = 0.95 usando os
valores da func
ao f (x) = sen(x) (x em radianos) dados abaixo:
i
xi
f (xi )

0
1.75
0.984

1
1.80
0.9738

2
1.85
0.9613

3
1.90
0.9463

3.7.5. Verifique que, se f (x) for um polin


omio de grau n, ent
ao o
polin
omio interpolador p(x) relativo a (x0 , x1 , . . . , xn ) e igual a f (x).
3.7.6. Usando interpolac
ao inversa, determine uma aproximac
ao
para um zero de:
a) f (x) = x3 9x + 10
b) g(x) = ln(x) + 4x 3


CAPITULO 3. INTERPOLAC
AO

66

3.7.7. Interpole a func


ao f (x) = ex no intervalo [0 1] com 4 pontos.
Calcule o erro de truncamento.
3.7.8. Mostre que f [x0 , x1 , x2 ] = f [x2 , x1 , x0 ].
3.7.9. Seja p(x) um polin
omio de grau n. Mostre que e necess
ario
n(n+1)
multiplicac
oes e n adic
oes para avaliar p(c) para c R
2
3.7.10. Calcule o n
umero de adico
es e multiplicac
oes para gerar o
polin
omio interpolador de Lagrange em (n + 1) pontos.
3.7.11. Determina-se empiricamente o alongamento de uma mola
em milmetros, em func
ao da carga P kgf que sobre ela atua, obtendose
x
P

5
49

10
105

15
172

20
253

25
352

30
473

35
619

40
793

mm
Kgf

Interpolando adequadamente por meio de polin


omios de terceiro grau,
encontre as cargas que produzem os seguintes alongamentos na mola:
a) 12mm
b) 22mm
c) 31mm
3.7.12. Numa rodovia federal, medindo-se a posic
ao de um
onibus
que partiu do marco zero da rodovia, obtiveram-se as seguintes marcac
oes:
T(min)
D(km)

60
76

80
95

100
112

120
138

140
151

160
170

180
192

Pede-se o posicionamento do
onibus para os tempos de:
a) 95 min
b) 130 min
c) 170 min

3.7. EXERCICIOS

67

3.7.13. A velocidade so som na


agua varia com a temperatura. Usando os valores da tabela abaixo, determine o valor aproximado da
velocidade do som na
agua a 100 C
Temperatura ( C)
Velocidade (m/s)

86.0
1.552

93.3
1.548

98.9
1.544

104.4
1.538

110.0
1.532

68

CAPITULO 3. INTERPOLAC
AO

Captulo 4

Integrac
ao Num
erica
4.1

Introduc
ao

A mais de 2000 anos, o calculo da area e volume de figuras geometricas


intriga a curiosidade humana. Os gregos, foram talvez os primeiros
a tentar calcular a area de figuras complicadas por aproximac
oes
numericas, um exemplo disso e o calculo da area e comprimento do
circulo pelo metodo da exaustao de Eudoxio (408-355 a.C.) Com a
invencao do Calculo por Newton(1642-1727) e Leibnitz(1646-1716),
varios problemas foram resolvidos, mas tambem surgiram outros.
Para integrais, temos o Teorema Fundamental do Calculo(T.F.C.),
ou seja, se f (x) e uma func
ao contnua no intervalo [a b], ent
ao a
area sob o grafico de f (x) e dado por:
Z

f (x) dx = F (a) F (b), onde F e a antiderivada de f (x).


a

Uma pergunta surge: onde o Calculo Numerico pode contribuir,


uma vez que o T.F.C. parece ter resolvido tudo? Ocorre que, nem
sempre podemos aplicar o T.F.C. conforme os problemas abaixo:
i- De acordo com resultados do Calculo, toda func
ao contnua em
um intervalo fechado possui antiderivada. Mas o calculo desta nem
sempre e simples. Por exemplo:
69

NUMERICA

CAPITULO 4. INTEGRAC
AO

70

ex dx

ii- Como calcular a integral de uma func


ao conhecendo-a apenas
em um n
umero finito de pontos?.
Desta forma recorremos a integrac
ao numerica1 para resolver
estes e outros problemas.
Na Interpolac
ao polinomial aprendemos como gerar o polinomio
Z b
Z b

interpolador, ou seja, p(x) = f (x). Portanto


p(x) dx =
f (x) dx.
a

Nesta linha, vamos desenvolver os metodos numericos de integrac


ao.

4.2

Regra dos Trap


ezios

Comecamos considerando a Interpolac


ao de Lagrange (veja cap. anterior) em uma func
ao f (x) conhecida apenas em (x0 , f (x0 )), (x1 , f (x1 )).
Seja entao
p(x) = f (x0 )

x x1
x x0
+ f (x1 )
x0 x1
x1 x0

integrando
Z

x1

p(x) dx =
x0

f (x0 )
x0 x1

x1

x0

f (x1 )
(x x1 ) dx +
x1 x0

x1

x0

(x x0 ) dx

x1 x0
[f (x1 ) f (x0 )]
2
Z x1
Donde conclumos que
p(x) dx e exatamente a area do trapezio
=

conforme figura 4.1.

x0

Se tivermos (n + 1) pontos, digamos (x0 , x1 , . . . , xn ) igualmente


espacados, ou seja, xk = xk1 + h,(k = 1, . . . , n), ent
ao podemos
generalizar (acompanhe com a figura 4.2) para:
1
Tambem chamado de quadratura, devido a Arquimedes(387-212 a.C.) e o
problema da quadratura do circulo


4.2. REGRA DOS TRAPEZIOS

71
y

Figura 4.1: Area


do trapezio

xn

p(x) dx =
x0

x0

x1

p1 (x) dx +

x1 x0
2 [f (x1 )

x2

x1

p2 (x) dx + +

f (x0 )] +

x2 x1
2 [f (x2 )

xn

xn1

pn (x) dx

f (x1 )] + +

n1
+ xn x
[f (xn ) f (xn1 )]
2

h
[f (x0 ) + 2f (x1 ) + + 2f (xn1 ) + f (xn )]
2

Com pk (x) o polinomio interpolador nos pontos (xk1 , xk ),(k =


1, . . . , n).

4.2.1

Erro de Truncamento

De acordo com a secao 3.4 o erro de truncamento na interpolac


ao e
f 00 ()
para (x0 x1 ). Integrando
dado por Et (x) = (xx0 )(xx1 )
2
teremos

NUMERICA

CAPITULO 4. INTEGRAC
AO

72
y

x x
0

x x

...
2

Figura 4.2: Calculo da area por trapezios


Z

x1

x0

Et (x) dx =

x1

x0

(x x0 )(x x1 )

f 00 ()
dx
2

f 00 ()(x1 x0 )3
12
Assumindo x1 x0 = h, ent
ao o erro de integrac
ao e dado por
=

EI =

f 00 ()h3
12

Lembre-se que, no caso geral(x0 , x1 , . . . , xn ), temos que somar


todos os erros, ou seja, o erro total sera dado por:
n1
X

EIi , onde EIi e o erro calculado em (xi1 , xi ).

i=1

Exemplo 4.2.1. Considere f (x) conhecida nos pontos


Pela regra dos trapezios teremos:

5 1
3
,
,
,
.
3 2
6 2

4.3. 1a REGRA DE SIMPSON

x1

x0

[f (x1 ) f (x0 )]
(1 +
f (x) dx = (x1 x0 )
=
2
8

73

3)
= 1.07287

Sabendo que f (x) = sen(x) e f 00 () = max{|f 00 (x)| ; x (x0 x1 )} =

ao
= 0.86602 calculamos o erro de integrac

|f 00 (/3)|

EI =

f 00 ()(x1 x0 )3
= 0.2797
12

Portanto
Z

x1

x0

f (x) dx + EI = 1.35257

Compare este resultado com o valor fornecido pelo T.F.C.


Escolhemos f (x) = sen(x) no exemplo anterior para verificar o
erro cometido. Nos problemas onde a forma analtica de f (x) nao e
conhecida nao podemos calcular EI .

4.3

1a Regra de Simpson

A regra dos trapezios utiliza polinomios interpolantes de grau 1, ja


que trabalha de dois em dois pontos. No caso de tres pontos, podemos ter uma interpolante de grau 2, ou seja, nosso erro de interpolacao tende a ser menor. Dessa forma, se f (x) e conhecida em
tres pontos (x0 , x1 , x2 ), ent
ao o polinomio interpolador de Lagrange
sera dado por:

p(x) = f (x0 )

(x x1 )(x x2 )
(x x0 )(x x2 )
(x x0 )(x x1 )
+f (x1 )
+f (x2 )
(x0 x1 )(x0 x2 )
(x1 x0 )(x1 x2 )
(x2 x0 )(x2 x1 )

assim

x2

p(x) dx =
x0

h
[f (x0 ) + 4f (x1 ) + f (x2 )].
3

O caso geral em (n + 1) pontos e dado por:


Z x2
h
p(x) dx = [f (x0 )+4f (x1 )+2f (x2 )+4f (x3 )+2f (x4 )+ +2f (xn2 )+4f (xn1 )+f (xn )]
3
x0

NUMERICA

CAPITULO 4. INTEGRAC
AO

74

p(x)

Figura 4.3: Calculo da area pela 1a regra de Simpson


A comparac
ao da 1a regra de Simpson com a regra dos trapezios
pode ser observada nas figuras 4.3 e 4.4.
O erro de truncamento pode ser rapidamente calculado:
Z

x2

x0

Et (x) dx =

x1

x0

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

f 3 ()
dx
3!

f 3 ()h4
12

Portanto o erro de integrac


ao na 1a regra de Simpson sera dado
por:

EI =

f 3 ()h4
12

4.3. 1a REGRA DE SIMPSON

75


Figura 4.4: Calculo da area por trapezios


Exemplo 4.3.1. Considere f (x) conhecida apenas em

(x0 , f (x0 )) = (/3, 3/2)


(x1 , f (x1 )) = (5/2, 1/2)
(x2 , f (x2 )) = (, 0)
Pela regra dos trapezios (observe que h = /4) temos:
Z x2
h
f (x) dx
= [f (x0 ) + 2f (x1 ) + f (x2 )] = 1.4655
2
x0
Pela 1a regra de Simpson temos:
Z x2
h
f (x) dx
= [f (x0 ) + 4f (x1 ) + f (x2 )] = 1.5006
3
x0
Qual resultado e o melhor? Certamente o valor fornecido pela 1a regra
de
Simpson. Uma vez que o erro tende a ser menor.
Para convencer o leitor revelamos que f (x) = sen(x), e calculamos o valor exato via T.F.C.
Z
sen(x) dx = 1.50
/3

2a

Podemos obter a
regra de Simpson com um processo analogo
no polinomio interpolador de grau 3 gerado por 4 pontos. Mais
detalhes veja exerccio 4.5.7.

NUMERICA

CAPITULO 4. INTEGRAC
AO

76

4.4

Quadratura Gaussiana

Nos metodos anteriores de Integrac


ao, usamos intervalos igualmente
espacados, ou seja, xk = xk1 + h. No metodo de Gauss estes pontos
nao
sao
mais
escolhidos, vamos definir um criterio para essa escolha.
Comecamos considerando o teorema de mudanca de vari
avel:
Teorema 4.1. (Mudanca de vari
avel) Sejam f : [a b] R
contnua,
g : [c d] R com derivada integr
avel e g([c d]) [a b]. Ent
ao
Z

g(d)

f (x) dx =
g(c)

f (g(t)).g 0 (t) dt.

A demonstrac
ao pode ser encontrada em [6]. Esse teorema sera
muito u
til como veremos.
Z b
Nosso problema continua sendo tentar calcular
f (x) dx. Para
a

facilitar as contas vamos efetuar a seguinte mudanca de variv


avel.

ba
b+a
Seja g : [1 1] R tal que, g(t) =
t+
, observe
2
2
que g(1) = a e g(1) = b. Aplicando o Teorema 4.1 temos:
Z b
Z 1
f (x) dx =
F (t) dt
a

onde

F (t) = f (g(t)).g (t) = f

ba
b+a
t+
2
2

Com isto conclumos que para saber o valor de


Z 1
calcular
F (t) dt.
1

ba
.
2
b

f (x) dx basta
a

O metodo da Quadratura Gaussiana(nao demonstraremos) afirma


que:
Z 1
n
X
F (t) dt =
wi F (ti )
1

i=0

4.4. QUADRATURA GAUSSIANA

77

onde wk sao chamados de pesos e tk pontos do intervalo [1 1].


Nosso objetivo e identificar estes pesos e pontos. Para simplificar
comecamos com n = 1, ou seja, dois pontos apenas. Dessa forma:
Z

F (t) dt = w0 F (t0 ) + w1 F (t1 )

(4.1)

Para descobrir estas quatro incognitas necessitamos de um sistema com quatro equac
oes. Uma vez que estas incognitas nao dependem de F (t) podemos assumir F (t) = tk ,k = 0, 1, 2, 3. Ou seja,
Z

tk dt = w0 F (t0 ) + w1 F (t1 )
Z

k = 0 = 2 =
1

k = 1 = 0 =
1

k = 2 =

2
=
3

t0 dt = w0 t00 + w1 t01
t1 dt = w0 t0 + w1 t1

k = 3 = 0 =
1

t2 dt = w0 t20 + w1 t21

t3 dt = w0 t30 + w1 t31

com estas equacoes geramos o sistema:

0
2/3

=
w0 + w1
= w0 t0 + w1 t1
= w0 t20 + w1 t21
= w0 t30 + w1 t31

Resolvendo...

w0 = w1 = 1 e t0 = t1 = 1/ 3.
Substituindo estes valores na equac
ao (4.1) temos:

NUMERICA

CAPITULO 4. INTEGRAC
AO

78
Z

F (t) dt = F (1/ 3) + F (1/ 3)

Com um processo analogo na forma geral


Z

F (t) dt =
1

n
X

wi F (ti )

i=0

wk e tk podem ser calculados por polinomios de Legendre(veja [11]).


Nao faremos essa demonstrac
ao, mas os valores podem ser vistos na
tabela 4.1.
omio de ate grau 3, ent
ao esta
Observa
c
ao 4.1. Se F e um polin
f
ormula fornece o valor exato da integral. Caso contr
ario o erro pode
ser calculado pela f
ormula abaixo:

E=

2(2n+3) [(n + 1)!]4 (2n+2)


F
()
(2n + 3)[(2n + 2)!]3

com [1 1].
bom lembrar que F (2n+2) () deve ser tomado como o maior
E
valor possvel, como feito em sec
oes anteriores.
Z /2
Exemplo 4.4.1. Calcular
sen(x) dx por quadratura gaussiana
0

com n = 1.
Comecamos fazendo a mudanca de vari
avel

ba
b+a ba
F (t) = f
t+
2
2
2
= sen

t+


4 4

4.4. QUADRATURA GAUSSIANA

79

ti

wi

1;0

0.57735027

0;1
2

0.77459667
0

5/9
8/9

0;1
2;3

0.86113631
0.33998104

0.34785484
0.65214516

0;1
2;3
4

0.90617985
0.53846931
0

0.23692688
0.47862868
0.53888889

0;1
2;3
4;5

0.93246951
0.66120939
0.23861919

0.17132450
0.36076158
0.46791394

0;1
2;3
4;5
6

0.94910791
0.74153119
0.40584515
0

0.12948496
0.27970540
0.38183006
0.41795918

0;1
2;3
4;5
6;7

0.96028986
0.79666648
0.52553242
0.18343464

0.10122854
0.22238104
0.31370664
0.36268378

Z
Tabela 4.1: Valores de wk e tk para

F (t) dt =
1

n
X
i=0

wi F (ti )

NUMERICA

CAPITULO 4. INTEGRAC
AO

80
dessa forma
Z

/2

sen(x) dx =
0

F (t) dt = F (1/ 3) + F (1/ 3) = 0.9984

Compare com o valor fornecido pelo T.F.C.


Z /2
Exemplo 4.4.2. Calcular
sen(x) dx por quadratura gaussiana
0

com n = 2.
De acordo com a tabela 4.1 temos
Z

F (t) dt = w0 F (t0 ) + w1 F (t1 ) + w2 F (t2 )


=

5
5
8
F (0.77459667) + F (0.77459667) + F (0)
9
9
9

= 1
Compare esse resultado com o valor fornecido pelo T.F.C.
Finalizamos lembrando o leitor, que este texto e apenas introdutorio e abrange alguns metodos de integrac
ao numerica. Em [11]
e possvel encontrar outros metodos de integrac
ao.

4.5

Exerccios
Z

4.5.1. Calcule o valor da integral

f (x) dx apenas sabendo que:


0

(x0 , f (x0 )) = (0, 0)


(x1 , f (x1 )) = (1/2, 1/4)
(x2 , f (x2 )) = (1, 1)
Z
4.5.2. Calcule o valor da integral
com 4 pontos.

x2 dx pela regra dos trapezios

4.5. EXERCICIOS

81
Z

1
dx e o erro
x3

4.5.3. Calcule pela regra dos trapezios a integral


2

cometido.

4.5.4. Calcule o valor da integral

2xsen(x2 ) dx com n = 3 pela

regra dos trapezios e pela 1a regra Simpson. Calcule o erro cometido.


Compare com o T.F.C.
Z 3
sen/2 (x + 1)cos(x2 ) dx com
4.5.5. Calcule o valor da integral
0

n = 4 pela regra dos trapezios e pela 1a regra Simpson.


4.5.6. Mostre que
Z xn
h
p(x) dx = [f (x0 )+4f (x1 )+2f (x2 )+4f (x3 )+2f (x4 )+ +2f (xn2 )+4f (xn1 )+f (xn )]
3
x0
Na 1a regra de Simpson.
4.5.7. Dados os pontos (x0 , x1 , x2 , x3 ) mostre que a 2a regra de Simpson e dada por:
Z x3
3
f (x)
= h[f (x0 ) + 3f (x1 ) + 3f (x2 ) + f (x3 )]
8
x0
e o caso geral

xn

f (x)
x0

3
h[f (x0 )+3f (x1 )+3f (x2 )+2f (x3 )+3f (x4 )+3f (x5 )+2f (x6 )+ +3f (xn2 )+3f (xn1 )+f (xn )]
8
4.5.8. Atraves da 2a regra de Simpson, com n = 4 calcule a integral
do exerccio 4.5.4.
Atraves da 2a regra de Simpson, com n = 6 calcule a integral
4.5.9.
Z 3
ln(x + 2) 1 dx.
2

4.5.10. Calcule por quadratura gaussiana a integral


n = 1 e n = 2. Calcule tambem o erro.

ex dx com

4.5.11. Calcule por quadratura gaussiana a integral do exerccio


4.5.4.

82

NUMERICA

CAPITULO 4. INTEGRAC
AO

Captulo 5

Mnimos e M
aximos
5.1

Introduc
ao

Neste captulo faremos uma breve introduc


ao ao problema de encontrar mnimos e maximos de uma func
ao. Na pratica desejamos
encontrar o valor mnimo ou maximo que a func
ao assume num determinado intervalo. Esse problema tem aplicac
oes imediatas nas
engenharias, fsica e na propria matematica. No final, daremos um
exemplo pratico.
Comecamos analisando func
oes de R em R.
Defini
c
ao 5.1. Seja f : [a b] R. Dizemos que k e mnimo local
se, dado > 0, para todo x (k , k + ) temos f (x) f (k).
A definicao de maximo local segue analogo.
Defini
c
ao 5.2. Seja f : [a b] R. Dizemos que k e m
aximo local
se, dado > 0, para todo x (k , k + ) temos f (x) f (k).
Observe que o define o carater local do mnimo ou maximo.
Definimos agora o mnimo e maximo global, veja:
Defini
c
ao 5.3. Seja f : [a b] R. Dizemos que k e mnimo
global se, para todo x [a, b] temos f (x) f (k).
Defini
c
ao 5.4. Seja f : [a b] R. Dizemos que k e m
aximo
global se, para todo x [a, b] temos f (x) f (k).
83


CAPITULO 5. MINIMOS E MAXIMOS

84

Exemplo 5.1.1. Considere f : [a b] R cujo gr


afico e exibido
na figura 5.1. Veja que k0 e k1 s
ao mnimos locais. Mas podemos
afirmar que k1 e mnimo global, uma vez que f (k1 ) < f (k0 ).


k0

k1

Figura 5.1: Mnimos local e global


Para encontrar mnimos/m
aximos podemos utilizar varias tecnicas.
Se a funcao e diferenciavel no intervalo, ent
ao podemos observar o
comportamento da derivada da func
ao. Uma vez que os mnimos/m
aximos
sao pontos onde a derivada e zero.
Exemplo 5.1.2. Considere f (x) = x4 2x3 4x2 + 2x no intervalo
[2 2], cuja derivada ser
a dada por f 0 (x) = 4x3 6x2 8x +
2. Aplicando os metodos do captulo de zeros de func
ao podemos
encontrar os zeros de f 0 (x) que s
ao: 1, 0.2192 e 2.2808. Avaliando
f (x) nesses pontos temos:
f (1)

= 3

f (0.2192

= 0.2274

f (2.2808) = 12.9149
Assim fica claro que 2.2808 e um ponto de mnimo global no
intervalo [2 2].


5.1. INTRODUC
AO

85

Lembramos o leitor que, se k e um ponto de maximo ou mnimo


local, a derivada se anula em k. Mas se a derivada se anula em k
nao quer dizer que seja mnimo ou maximo local. Veja o exemplo
abaixo.
Exemplo 5.1.3. Considere f (x) = x3 com f 0 (x) = 3x2 . Veja que
para k = 0, f 0 (k) = 0 mas k n
ao e ponto de mnimo nem m
aximo.
Dizemos que k e um ponto de inflex
ao, veja definic
ao abaixo.
Defini
c
ao 5.5. Seja f (x) uma funca
o diferenci
avel em [a b]. Dizemos que k e ponto de inflex
ao horizontal se, existe > 0 tal que uma
das duas situac
oes ocorre:
i) f (x) < f (k) para todo k < x < k e f (x) > f (k) para todo
k <x<k+
ii) f (x) > f (k) para todo k < x < k e f (x) < f (k) para todo
k < x < k + .
Observa
c
ao 5.1. Caso f (x) seja duas vezes diferenci
avel podemos
visualizar o ponto de inflex
ao como o ponto onde f 00 (x) muda de
sinal.
Com estas definic
oes nao poderamos deixar de enunciar o
Teorema 5.1. Seja f : (a b) R uma func
ao n vezes diferenci
avel e cujas derivadas, f 0 , f 00 , . . . , f n sejam contnuas em (a b).
Seja k (a b) tal que f 0 (k) = f 00 (k) = . . . = f n1 (k) = 0 e
f n (k) 6= 0. Ent
ao, se n e par,
f n (k) < 0 implica que f tem m
aximo em k f n (k) > 0 implica
que f tem mnimo em k.
Se n e mpar, k e um ponto de inflex
ao horizontal.
A demonstracao pode ser encontrada em [3].
Exemplo 5.1.4. Como aplicac
ao do Teorema 5.1 vamos mostrar
que k = 1 e ponto de mnimo de f (x) = x3 3x + 1. Tome f 0 (x) =
3x2 3, f 00 (x) = 6x, f 3 (x) = 6, f 4 (x) = 0, ...,f n (x) = 0. Veja que
f 0 (k) = 0 e f 00 (k) = 6 > 0, assim pelo Teorema temos que k = 1 e
ponto de mnimo.


CAPITULO 5. MINIMOS E MAXIMOS

86

Devemos lembrar que o Teorema 5.1 tem suas limitac


oes. Veja
que uma vez dado k podemos aplicar o Teorema. O grande problema e encontrar k. Por isso, vamos desenvolver um metodo para
encontrar tais pontos.
Para finalizar considere tambem o
ao contnua em um intervalo fechado possui
Teorema 5.2. Toda func
mnimo/m
aximo global.
A demonstrac
ao pode ser encontrada em [7].
Deste ponto em diante trataremos apenas o caso de encontrar
mnimos de uma func
ao. Uma vez que o mnimo de f (x) e o maximo
de f (x).

5.2

M
etodo da Sec
ao Aurea

Seja f (x) uma func


ao contnua com um u
nico mnimo no intervalo
[a b]. O metodo da sec
ao aurea consiste em criar uma seq
uencia
(xn ) que converge para o mnimo da func
ao. A seq
uencia (xn ) sera
n
dada por xn = an +b
onde [a0 b0 ] [a1 b1 ] [an bn ] .
2
Assim seja a0 = a e b0 = b.
a1 = b0 0.618(b0 a0 ) e b1 = a0 + 0.618(b0 a0 )
Se f (a1 ) < f (b1 ), ent
ao a2 = a1 e b2 = a1 + 0.618(b1 a1 ).
Se f (a1 ) f (b1 ), ent
ao a2 = b1 0.618(b1 a1 ) e b2 = b1
Novamente
Se f (a2 ) < f (b2 ), ent
ao a3 = a2 e b3 = a2 + 0.618(b2 a2 ).
Se f (a2 ) f (b2 ), ent
ao a3 = b2 0.618(b2 a2 ) e b3 = b2 .
E o processo segue ate que |xn xn1 | seja menor que um certo
fixado como criterio de parada.


AUREA

5.2. METODO
DA SEC
AO

87

Exemplo 5.2.1. Seja f (x) = x2 2x+3. Vamos encontrar o mnimo


de f (x) em [2 3] pelo metodo da sec
ao
aurea com = 0.06.
i
1
2
3
4
5

5.2.1

ai
0.09
0.3608
0.6393
0.8115
0.9179

bi
1.09
1.09
1.09
1.09
1.09

xi
0.5
0.7254
0.8647
0.9507
1.0030

|xi xi1 |
0.2254 >
0.1393 >
0.0860 >
0.0523 < parar o metodo

Converg
encia no M
etodo da Sec
ao Aurea

Observe que no metodo, utilizamos os intervalos [a0 b0 ] [a1 b1 ]


[an bn ] com a0 a1 an e b0 b1
bn . Logo (an ) e (bn ) sao seq
uencias monotonas e limitadas.
Pelo Teorema de Bolzano (veja em [3]) temos:
lim an = lim bn = L

o que implica em
lim xn = L.

Vamos mostrar que L e o mnimo que f (x) assume em [a b].


Para isso, seja k o ponto mnimo em [a b]garantido pelo Teorema
5.2. Assim f (k) f (ai ) e f (k) f (bi ) para i = 0, . . . , , o que
implica em k [ai bi ] para i = 0, . . . , , ou seja, ai k bi para
i = 0, . . . , . Aplicando o limite nesta u
ltima desigualdade teremos:
lim an k lim bn ,

ou seja,
LkL
o que implica em
L = k.
Observa
c
ao 5.2. O n
umero 0.618 e chamado de raz
ao
aurea. Que
era considerado sagrado para os estudantes da escola grega pitag
orica
(fundada por Pitagors (586-500 a.C.)). Procure conhecer mais sobre
esse famoso n
umero e surpreenda-se1 .
1

Veja mais em [4].


CAPITULO 5. MINIMOS E MAXIMOS

88

Superfcies em R3

5.3

Para nosso estudo vamos considerar f : D R2 R, onde D


e um retangulo em R2 . Por exemplo f (x, y) = x2 + y 2 onde D =
[0 1] [1 2]. Veja que o grafico de f (x) e o paraboloide dado na
figura 5.2.

50

40

30

20

10

0
5
5
0
0

Figura 5.2: Paraboloide


Nosso problema agora e encontrar o mnimo global k D. Podemos tambem enunciar da seguinte forma: minimizar f na caixa
D = [a b] [c d].
Defini
c
ao 5.6. Seja f : D R2 R uma func
ao diferenci
avel.
O vetor gradiente de f no ponto a ser
a dado por:

f
f
f (a) =
(a),
(a) .
x
y
ao f (x, y) = (2x, 2y).
Exemplo 5.3.1. Seja f (x, y) = x2 + y 2 . Ent
Dessa forma o gradiente de f no ponto a = (2, 1) ser
a dado por
f (2, 1) = (4, 2).


5.4. METODO
DO GRADIENTE

89

Defini
c
ao 5.7. Uma superfcie de nvel ser
a dada pelo conjunto:
Sc = {(x, y) R2 / f (x, y) = c}
Podemos visualizar Sc como os pontos em D com imagem igual
a c, o que geometricamente corresponde a um corte na superfcie na
altura de c. Veja na figura 5.2 os crculos no plano XY. Cada circulo
corresponde a superfcie de nvel.
Proposi
c
ao 5.1. Seja f : D Rn R uma funca
o diferenci
avel.
Ent
ao podemos afirmar que:
i) o vetor gradiente f (x) aponta para uma direc
ao onde f (x) e
crescente.
ii) dentre todas as direc
oes ao longo das quais f (x) cresce, a
direc
ao do gradiente f (x) e a de crescimento mais r
apido.
iii) o gradiente f (x) e perpendicular a superfcie de nvel que
passa por x.
A demonstracao dessas propriedades pode ser encontrada em [7].
Lembramos que, se estamos interessados no mnimo de f (x),
entao devemos tomar a direc
ao contr
aria a do gradiente, ou seja,
f (x) para encontrar a direc
ao onde f (x) mais decresce.

5.4

M
etodo do Gradiente

Tendo em mente a Proposic


ao 5.1, vamos desenvolver um metodo
numerico para localizar o mnimo de uma func
ao em uma caixa D,
utilizando vetor gradiente. Para isso, considere um ponto p0 qualquer
em D(acompanhe com a figura 5.3). Pelo item ii a direc
ao f (p0 )
tem maior decrescimento. Nosso objetivo e caminhar nesta direc
ao
para encontrar o mnimo de f (x). Para nos auxiliar vamos definir a
funcao g0 (t) = f (p0 tf (p0 ).
Observe que a func
ao g0 (t) e de uma vari
avel. Podemos ent
ao,
aplicar o metodo da sec
ao aurea para encontrar seu mnimo, digamos
p1 .


CAPITULO 5. MINIMOS E MAXIMOS

90

Repetimos o processo para p1 , ou seja, definimos g1 (t) = f (p1


tf (p1 ) e encontramos seu mnimo p2 .
O processo segue ate que a distancia entre pn e pn1 seja menor
que um certo fixado como criterio de parada, nesse caso sera dado
por kpi pi1 k. Tambem podemos utilizar como criterio de parada
o proprio vetor gradiente. Nesse caso, paramos o metodo se a norma
do vetor gradiente em pn for menor que um certo .
Essa distancia pode ser calculada como a norma do vetor pn
pn1 de acordo com a sec
ao 1.3.2.

p5

p3
p4

p1
p2

p0

Figura 5.3: Seq


uencia (pn ) se aproximando do mnimo de f (x)
Observa
c
ao 5.3. Lembramos que, ao aplicar o metodo da sec
ao

aurea na func
ao gn (t), devemos ter cuidado de restringir t, de tal
forma que, o vetor pn tf (pn ) permaneca em D.
Exemplo 5.4.1. Considere f : [1 1] [1 1] R dada
por f (x, y) = x2 + y 2 (veja o gr
afico na figura 5.2). Escolhemos
p0 = (1, 1), logo f (p0 ) = (2, 2). Continuando temos g(t) = f (p0
tf (p0 )) = f ((1, 1) t(2, 2) = (1 2t)2 + (1 2t)2 = 8t2 8t + 2.
Minimizando g(t) pelo metodo da sec
ao
aurea temos t0 = 21 . Calculamos agora p1 = p0 t0 f (p0 ) = (1, 1) 21 (2, 2) = (0, 0). Observe
que o metodo convergiu em apenas uma iterac
ao.

5.5

Bacias de atrac
ao

Podemos dizer que cada mnimo/m


aximo local de uma func
ao diferenciavel possui uma bacia de atrac
ao. Veja na figura 5.4 as varias


5.5. BACIAS DE ATRAC
AO

91

bacias de atracao de f . Cada bacia possui um mnimo ou um maximo


local.

8
6
4
2
0
2
4
6
8
10
25
20

25
15

20
15

10
10
5

5
0

Figura 5.4: Bacias de atrac


ao
Para sintetizar considere a
Proposi
c
ao 5.2. Se o metodo do gradiente for iniciado em um ponto
p0 n
ao situado na bacia de atrac
ao do mnimo global; ent
ao podemo
ocorrer duas situac
oes:
i) o metodo gradiente converge para o mnimo local associado a
bacia de atrac
ao em que estiver o ponto p0 .
ii) Caso p0 n
ao esteja associado a nenhuma bacia de atrac
ao,
ent
ao o metodo do gradiente n
ao converge.
Assim temos um problema: se a func
ao possui varios mnimos/m
aximos
locais, como encontrar o mnimo/maximo global? A resposta e; iniciar o metodo do gradiente em varios pontos distintos. Dessa forma
temos uma probabilidade de iniciar o metodo justamente na bacia de
atracao do mnimo/m
aximo global. E bom lembrar que esse metodo
nao e muito confiavel.

92

5.6

CAPITULO 5. MINIMOS E MAXIMOS

M
etodo de direco
es aleat
orias

Seja f : D R2 R uma func


ao apenas contnua em D. No
metodo do gradiente escolhemos a direc
ao do gradiente para encontrar maximos, e a direc
ao contr
aria do gradiente para encontrar
mnimos. Ja no metodo de direc
oes aleatorias, a direc
ao de busca
e aleatoria. Para construir o metodo basta voltar no metodo do
gradiente e substituir f (pn ) por um vetor qualquer, veja:
Tome p0 qualquer em D, e v0 um vetor qualquer. Considere
g0 (t) = f (p0 + tv0 ). Aplicando o metodo da sec
ao aurea em g0 encontramos seu mnimo em t0 . Dessa forma p1 = p0 +t0 v0 . Novamente
escolhemos outro vetor aleatorio v1 , tal que, v1 6= v0 e consideramos
g1 (t) = f (p1 + tv1 ) cujo mnimo sera t1 .
O processo segue ate que kpn pn1 k seja menor que um certo
fixado como criterio de parada.
Observa
c
ao 5.4. Lembramos que o metodo do gradiente converge
mais r
apido que o metodo de direco
es aleat
orias. Porem o metodo
do gradiente exige que a func
ao seja diferenci
avel em D.
Outro fato, no metodo do gradiente, se o ponto inicial p0 n
ao
estiver em nenhuma bacia de atrac
ao, o metodo pode n
ao convergir.
No metodo de direc
oes aleat
orias isso pode n
ao ocorrer, uma vez que
as direc
oes s
ao escolhidas aleat
oriamente.
Exemplo 5.6.1. Considere f : [1 1] [1 1] R dada por
f (x, y) = x2 + y 2 (veja o gr
afico na figura 5.2). Definimos como
criterio de parada = 0.6 .
Escolhemos p0 = (1, 1) e v0 = (1, 21 ). Dessa forma g0 (t) = f (p0 +
tv0 ) = f (1 + t, 1 + 21 t) = (1 + t)2 + (1 + 21 t)2 . Aplicando o metodo da
sec
ao
aurea, g0 tem mnimo em t0 = 56 . Assim p1 = p0 + t0 v0 =
7
2
( 61 , 12
). Escolhemos o vetor aleat
orio v1 = ( 14 , 1), e g1 (t) = 17
16 t +
5
53
10
nimo em t1 = 17 , continuando p2 =
4 t + 144 . Onde g1 tem m
1
1
( 51 , 204 ). Paramos o metodo, pois j
a atingimos o delta desejado.
i
pi
kpi pi1 k
0
(1, 1)

1 (0.166, 0.583)
0.933 >
2 (0.019, 0.0049) 0.596 < parar o metodo.

5.7. EXERCICIOS

93

Observe que a seq


uencia (pn ) converge para o ponto (0, 0).

5.7

Exerccios

5.7.1. Apenas usando a derivada, calcule os pontos de m


aximo,
mnimo e inflex
ao, da func
ao f (x) = 16x3 22x 5 no intervalo
[2 2].
5.7.2. De acordo com o Teorema 5.2, ache os pontos m
aximo e
mnimo de f (x) = x3 3x + 1.
5.7.3. Aplique o metodo da seca
o
aurea para encontrar o ponto de
mnimo de f (x) = x2 5x+1 no intervalo [1 3]. Compare o resultado
com o fornecido pela derivada.
5.7.4. Apenas fazendo f = 0, encontre o ponto de mnimo de
f (x, y) = 5x2 + 3y + 3x 3y.
5.7.5.
5.7.6.
5.7.7.

94

CAPITULO 5. MINIMOS E MAXIMOS

Captulo 6

Introduc
ao ao Matlab
Faremos uma introduc
ao ao algoritmo estruturado na linguagem portugues, e em paralelo o Matlab.

6.1

Introduc
ao

Toda linguagem de programac


ao e constituda essencialmente por
COMANDOS e ESTRUTURAS DE CONTROLE que o computador
e capaz de interpretar e executar. Os COMANDOS sao ordens bastante primitivas como: Ler um valor; Imprimir um valor; Somar dois
valores; Multiplicar dois valores; etc...etc...etc. As ESTRUTURAS
DE CONTROLE sao uma especie de comandos de nvel mais elevado,
porque elas sao utilizadas para gerenciar a execuc
ao dos comandos
mais primitivos. Por exemplo: admitamos que eu queira bater o
n
umero 1 no teclado, e queira que o computador exiba na tela:
a) Todos os n
umeros inteiros de 1 a 9.; b) Os pares de 10 a 20;
c) Os mpares de 20 a 30.
Para tal, deve-se ter a seguinte seq
uencia de comandos e estruturas de controle:
1 - Ler teclado (Comando: ordena o computador a armazenar na
memoria o n
umero que eu digitar no teclado.
95

AO MATLAB
CAPITULO 6. INTRODUC
AO

96

2 - Repetir 9 vezes (Estrutura de controle: gerencia a repeticao


dos comandos 2.1 e 2.2)
inicio
2.1 - Exibir teclado 2.2 - teclado + 1
fim
3 - Repetir 6 vezes
inicio 3.1 Exibir teclado 3.2 teclado + 2 fim
4 - teclado -1
5 - Repetir 5 vezes
inicio 5.1 - Exibir teclado 5.2 - teclado +2
fim
Os comandos e estruturas de controle que utilizamos no exemplo acima sao apenas ilustrativos. Eles nao existem de verdade nas
linguagens. Mais adiante daremos esses comandos e estruturas de
controle na linguagem Matlab.
ALGORITMO
Receita de bolo e uma expressao mais apropriada `a arte culinaria
e `a gastronomia. A receita de bolo e uma seq
uencia de comandos
escritos para um cozinheiro executar. A seq
uencia de comandos escritos para um computador executar e chamada na verdade de ALGORITMO. Ou seja, a seq
uencia de comandos e estruturas de controle que escrevemos anteriormente e chamada de algoritmo. Um
algoritmo e uma soluc
ao que voce encontra para um determinado
problema fazendo uso exclusivamente dos comandos e estruturas de
controle que a linguagem de programac
ao lhe oferece. Para resolver o
mesmo problema voce pode escrever in
umeros algoritmos diferentes.
Tudo vai depender do seu estado de alma no momento. Se voce

6.2. COMANDOS

97

estiver inspirado, cheio de criatividade, voce podera resolver o problema como um algoritmo bem pequeno com poucas linhas. Se nao
for o seu dia, o algoritmo pode ficar longo e talvez nem funcionar.
Nosso objetivo central e aprender a escrever algoritmos; ou seja,
aprender a encontrar soluc
ao para os problemas propostos fazendo o
uso exclusivamente dos comandos e estruturas de controle.

6.2
6.2.1

Comandos
Comando de leitura

Ao executar um comando de Leitura o computador faz um pequeno


cursor ficar piscando na tela, indicando que ele, o computador, esta
esperando que voce digite um n
umero (ou um caracter) no teclado.
Assim que voce digita o n
umero, pressionando em seguida a tecla
enter, o computador apanha (le) o n
umero que voce digitou e o
armazena em uma posic
ao na sua memoria.
Em Matlab
input
exemplo:
>>A=input(tecle um valor para A)

6.2.2

Comando de impress
ao

Este comando e utilizado quando se deseja que o computador exiba na tela os valores que tem armazenado em diversas posic
oes na
memoria. Em portugues seria Imprima(A) e o computador exibe o
valor da variavel A.
Em Matlab
disp
exemplo:

AO MATLAB
CAPITULO 6. INTRODUC
AO

98
>>disp(A)

exibe o valor da vari


avel A

>>disp(exibe este texto)

6.2.3

exibe uma mensagem

Comando de atribuic
ao

O comando de atribuic
ao e tambem chamado de COMANDO AR
ITMETICO porque e nele que definimos as expressoes aritmeticas
necessarias `a resoluc
ao de um problema qualquer. Ao executar um
comando de atribuic
ao, o computador armazena na vari
avel cujo
nome e mencionado `a esquerda do sinal de (=) o valor da expressao
aritmetica especificada `a direita do sinal de (=).
Em Matlab
=
exemplo:
>>a=5

atribui o valor 5 a vari


avel a

>>b=a+10
>>b=b+1

atribui a vari
avel b o valor de a mais 10
atribui a vari
avel b o valor de b mais 1

>>c=o mundo e tao lindo


o mundo e t
ao lindo

atribui a vari
avel c a mensagem

Observa
c
ao 6.1. Lembramos que o Matlab faz distinc
ao de mai
usculas
e min
usculas. Assim a vari
avel c difere da vari
avel C. Outro fato;
n
ao e necess
ario declarar a vari
avel antes de atribuir qualquer valor
a ela.
Defini
c
ao 6.1. Uma estrutura de controle e uma especie de comando especial, de patente mais elevada, cujo objetivo e controlar a
maneira como os comandos s
ao executados.

6.2. COMANDOS

6.2.4

99

Estrutura de decis
ao

Esta estrutura forca o computador a tomar uma decisao quanto a


executar ou nao uma determinada seq
uencia de comandos. Existem
na verdade duas estruturas distintas: a estrutura SE de um u
nico
ramo, ou, de uma u
nica alternativa; e a estrutura SE de dois ramos,
ou, de duas alternativas.
A estrutura SE de um u
nico ramo (ou de uma u
nica alternativa).

SE <COMPARAC
AO>
Comandos e outras estruturas
FIM SE

Podemos entender a estrutura SE da seguinte forma: Se <COMPARAC


AO>
for verdadeira entao Comandos e outras estruturas e executado.

Caso contrario, ou seja, <COMPARAC


AO>
e falso, o computador
da um salto para logo apos o FIM SE.
A estrutura SE de dois ramos (ou de duas alternativas).

SE <COMPARAC
AO>
Comandos 1

SENAO
Comandos 2
FIM SE

Nessa estrutura, se a <COMPARAC


AO>
for verdadeira ent
ao
Comandos 1 e executado e Comandos 2 nao e executado. Caso

<COMPARAC
AO>
for falso ent
ao Comandos 2 e executado e Comandos 1 nao e executado. Sempre um dos dois e executado.
Em Matlab

AO MATLAB
CAPITULO 6. INTRODUC
AO

100

SE de um ramo

SE de dois ramos

if < >

if < >

Comandos
end

Comandos 1
else
Comandos 2
end

exemplo:
A=input(digite um valor para A)
B=input(digite um valor para B)
if A < B
disp(A vari
avel A e menor que a vari
avel B)
else
disp(A vari
avel A e maior ou igual que a vari
avel B)
end

6.2.5

Estruturas de repetic
ao

Estrutura PARA
Esta estrutura serve para se repetir uma determinada quantidade
de vezes a execuc
ao de um ou mais comandos. O formato geral da
estrutura de repetic
ao PARA e dado por:
M
PARA i ;Passo k; DE j ATE
Comandos e outras estruturas.

6.2. COMANDOS

101

FIM PARA
A variavel i comeca valendo j, e adicionando k ela cresce/decresce
ate M. Cada acrescimo da vari
avel i Comandos e outras estruturas
e executado. Caso k=1 ao final teremos (M-j+1) repetic
ao de Comandos e outras estruturas. Por exemplo:
` 10
PARA i;Passo 1; DE 1 ATE
Comandos e outras estruturas.
FIM PARA
executado (10-1+1)=10 vezes.
Comandos e outras estruturas. E
avel i,j,k e M devem necessariamente ser
Observa
c
ao 6.2. A vari
inteiras.
Em Matlab
for i=j:k:M
Comandos e outras estruturas
end
exemplo:
for i=3:1:5
disp(mundo)
end
A palavra mundo e repetida 3 vezes.
Estrutura ENQUANTO

AO MATLAB
CAPITULO 6. INTRODUC
AO

102

O ENQUANTO e uma estrutura de repetic


ao que funciona mais
ou menos nos mesmos moldes da estrutura PARA. Ou seja, ENQUANTO e PARA sao estruturas de repetic
ao que diferem entre
si basicamente nos detalhes. Ambas foram projetadas para fazer
o computador repetir uma determinada quantidade de vezes a execucao de um bloco de comandos. O formato geral da estrutura de
repeticao ENQUANTO e dado por:

ENQUANTO <COMPARAC
AO>
Comandos e outras estruturas
FIMENQUANTO

Enquanto a <COMPARAC
AO>
for verdadeira Comandos e outras estruturas e executado. O fim da repetic
ao acontece quando

<COMPARAC
AO>
se torna falsa. Na fase inicial o estudante comete
um erro muito comum, ou seja, criar uma estrutura de repetic
ao sem
fim. Por exemplo:
A=5
ENQUANTO A < 10
Imprima(mundo)
FIMENQUANTO
Veja que a condic
ao (A < 10) e sempre verdadeira. O computador comeca a imprimir a palavra mundo e nunca para. Por isso para
a estrutura ENQUANTO terminar deve ocorrer algo dentro do Laco

que torne a <COMPARAC


AO>
falsa. No exemplo acima facamos
uma pequena mudanca.
A=5
ENQUANTO A < 10
Imprima(mundo)


6.3. ITENS BASICOS
DO MATLAB
A=A+1
FIMENQUANTO
Agora a palavra mundo e repetida apenas 5 vezes.
Em Matlab
While < >
Comandos e outras estruturas
end
exemplo:
A=5
while A < 10
disp(mundo)
A=A+1
end

6.3
6.3.1
<
<=
>
>=
==
=

Itens B
asicos do Matlab
Operadores relacionais
Menor que
Menor ou igual que
Maior que
Maior ou igual que
Igual a
Diferente de

103

AO MATLAB
CAPITULO 6. INTRODUC
AO

104

6.3.2
&
|

Xor

6.3.3

Conectivos l
ogicos
E
Ou
Nao
Ou excludente

Fun
c
oes Pr
e-definidas

cos(x)
sin(x)
tan(x)
csc(x)
cot(x)

exp(x)
log(x)
log10(x)
sqrt(x)
abs(x)
isreal(x)
f ix(x)
f loor(x)
ceil(x)
round(x)
rem(x, y)
mod(x, y)
det(A)
inv(A)
size(A)
isprime(x)
primes(x)
gcd(x, y)
lcm(x, y)
cross(v, w)
sum(v. w)

Retorna ao cosseno de x
Retorna ao seno de x
Retorna a tangente de x
Retorna a co-secante de x
Retorna a co-tangente de x
Potencia, exemplo: 5 2 = 52
Retorna a ex
Retorna ao ln(x)
Retorna a log10 (x)

Retorna a x
Valor absoluto de x ou |x|
Verdadeiro para valores reais
Arredondamento na direc
ao do zero
Arredondamento na direc
ao de
Arredondamento na direc
ao de +
Arredondamento para o inteiro mais proximo
Resto da divisao de x por y
Resto com sinal.
Determinante da matriz A
Inversa da matriz A
Retorna a dimensao da matriz A
1 se x primo, 0 se x n
ao e primo.
Seq
uencia de primos menores que x
M
aximo divisor comum de x e y
Mnimo m
ultiplo comum de x e y
Produto vetorial v w
Produto interno < v, w >


6.3. ITENS BASICOS
DO MATLAB

6.3.4

105

Script

Rapidamente voce vai notar que a janela do Octave nao e suficiente


para escrever programas mais extensos. Por isso; sera necessario criar
um Script (Roteiro). Um Script nada mais e do que uma lista de
comandos e estruturas que serao executados seq
uencialmente. Para
criar um Script basta clicar em arquivo/novo.
Exemplo 6.3.1. Vamos criar um Script para somar o primeiros 100
n
umeros.
soma=0;
for i=1:1:100
soma=soma+i;
end
disp(soma)
Para executar o Script basta escrever na linha de comando >>
o nome do mesmo.
Lembramos que o ; no final de cada atribuic
ao faz com que os
valores n
ao sejam exibidos na tela.
Exemplo 6.3.2. Facamos um Script para encontrar e imprimir o
menor valor de 3 n
umeros.
a=input(digite o primeiro n
umero)
b=input(digite o segundo n
umero)
c=input(digite o terceiro n
umero)
if a < b
if a < c
disp(a)
disp( e o menor valor)

AO MATLAB
CAPITULO 6. INTRODUC
AO

106

else
disp(c)
disp( e o menor valor)
end
else
if b < c
disp(b)
disp( e o menor valor)
else
disp(c)
disp( e o menor valor)
end
end
Exemplo 6.3.3. Facamos um Script para ler um n
umero inteiro
positivo N e calcular S onde:
S=

1 3 5 7
I
+ + + + +
1 2 3 4
N

N=input(digite o n
umero inteiro positivo N)
S=0; I=1;
for j=1:1:N
S=S+(I/j);
I=I+2;
end
disp(o valor de S e: )
disp(S)


6.3. ITENS BASICOS
DO MATLAB

107

Exemplo 6.3.4. Facamos um Script para ler um n


umero inteiro
positivo N > 1 e imprimir os N primeiros termos da seq
uencia de
Fibonacci.
fibo = 0 1 1 2 3 5 8 13 21 34 55 ... X Y (X+Y) ...
N=input(digite o n
umero inteiro positivo N > 1)
Disp(A seq
uencia ser
a produzida abaixo)
X=0; Y=1
for i=2:1:N
Z=X+Y
X=Y;
Y=Z;
end
Veja que nesse programa n
ao utilizamos os comando DISP para
exibir o n
umero Z. Simplesmente retiramos o ponto e vrgula (;).
Exemplo 6.3.5. Facamos um Script para ler um n
umero inteiro
positivo N > 0 e responder, se N e primo ou n
ao. O Script deve
terminar quando o N lido for negativo.
N=input(digite o n
umero inteiro positivo N > 0)
while (N > 0)
X=2;
Sinal=0;
while (X <= (f ix(sqrt(N ))))
if (rem(N,X))==0
Sinal=1;
end
X=X+1;
end
if Sinal==0

AO MATLAB
CAPITULO 6. INTRODUC
AO

108

disp(Esse n
umero e primo)
else
disp(Esse n
umero n
ao e primo)
end
N=input(digite o n
umero inteiro positivo N > 0)
end

6.4

Vetores e Matrizes

Um vetor pode ser considerado como uma vari


avel m
ultipla, ou seja,
uma variavel que possui outras vari
aveis. Assim o vetor V=[1 0 0 5 6]
e considerado um vetor de 5 posic
oes. Cada elemento do vetor V
pode ser obtido por referencia a posic
ao. Assim V(1)=1, V(2)=0,
V(3)=0, V(4)=5 e V(5)=6.
O mesmo vale
Se M=[1 3 0; 3 3 3; 2 1 8]
para matrizes.

1 3 0
temos a matriz 3 3 3 . Podemos fazer referencia da seguinte
2 1 8
forma: V(i,j) onde i e a linha e j a coluna. Assim V(3,2)=1, V(1,3)=0
etc...
No Matlab
>> V=[1 1 0]
V=
1
1
0
>> 5*V
ans =
5

>> K=[2 3 5]
K=
2
3
5
>> V+K
ans =
3
4

6.4. VETORES E MATRIZES


>> M=[1
M=
1 3
3 3
2 1

109

3 0;3 3 3;2 1 8]
0
3
8

>> M(1,3)
ans = 0
>> M(2,3)
ans = 3
>> M(2,2)
ans = 3
>> c=7*M(2,2)
c = 21
>> 2*M
ans =
2 6 0
6 6 6
4 2 16
Nota: Nao poderamos deixar de comentar o comando size que
retorna as dimensoes de uma matriz. Se M e uma matriz qualquer
entao o comando [L,C]=size(M) grava na vari
avel L o n
umero de
linhas de M e na vari
avel C o n
umero de colunas. Caso M seja um
vetor L e sempre igual a 1.
Exemplo 6.4.1. Vamos escrever um Script para preencher um vetor
com os n
umeros pares de 1 a 100.
posi=1; num=2;
while posi < 100
v(posi)=num;
posi=posi+1;

AO MATLAB
CAPITULO 6. INTRODUC
AO

110

num=num+2;
end
disp(V)
Exemplo 6.4.2. Escreva um Script para preencher uma matriz 44
da seguinte forma:

0
1

2
3

0
1
2
3

0
1
2
3

0
1

2
3

for i=1:1:4
for j=1:1:4
M(i,j)=i-1;
end
end
disp(M)
Exemplo 6.4.3. 3) Escreva um Script para colocar em ordem crescente o vetor abaixo:
V=[0 1

for i=1:1:9
for j=1:1:9
if v(j)v(j+1)
aux=v(j);
v(j)=v(j+1);
v(j+1)=aux;
endif
endfor
endfor
disp(v)

1]


6.5. FUNC
OES
EM MATLAB

111

Nota: Em outras linguagens teramos que criar um pequeno programa para multiplicar duas matrizes A e B. No Matlab essa rotina
j
a est
a pronta, desde que seja possvel a multiplicac
ao. Basta efetuar
A*B.

6.5

Funco
es em Matlab

Voce certamente ja utilizou algumas func


oes pre-definidas, por exemplo a funcao sqrt(x) que retorna a raiz quadrada de x, a func
ao
cos(x) que retorna ao co-seno de x e muitas outras ja descritas. Nesta
secao vamos aprender a criar estas func
oes que sao tao importantes
para os problemas que queremos resolver.
Uma funcao em Matlab e bem parecida com uma func
ao matematica,
ou seja, dado um valor x a func
ao associa a um valor y. No computador o valor x e chamado de entrada, y de sada e a associac
ao
de processamento.
Assim a funcao F (x) = x2 pode ser construda da seguinte forma:
function [F ] = F (x)
F = x2
end
Quando retornamos para a linha de comando (>>) basta aplicar
a funcao F (x) em um n
umero qualquer que teremos o quadrado desse
n
umero.Por exemplo:
>> F (2)
ans=4
>> F (3)
ans=9
Nota: Cada funcao deve ser salva com o mesmo nome do cabecalho.
Outro fato; cada func
ao deve ter um arquivo diferente.

AO MATLAB
CAPITULO 6. INTRODUC
AO

112

Exemplo 6.5.1. Vamos escrever uma func


ao para receber como entrada, um n
umero inteiro positivo N e tenha como sada:
i)1 se o n
umero for primo.
ii) 0 se o n
umero n
ao for primo.
function [eprimo]=eprimo(N )
X=2;
Sinal=1;
while (X <= (f ix(sqrt(N ))))
if (rem(N,X))==0
Sinal=0;
end
X=X+1;
end
eprimo=Sinal
end
Exemplo 6.5.2. Vamos escrever uma func
ao para receber dois valores x, y inteiros positivos e retornar ao quociente inteiro da divis
ao
de x por y.
function [quociente]=quociente(x,y)
quociente=

X rem(x, y)
y

end
Exemplo 6.5.3. Vamos escrever uma func
ao para receber um vetor
V qualquer e retornar o vetor em ordem crescente.
function [cresc]=cresc(V)
[L,C]=size(V)
for i=1:1:C-1


6.6. GRAFICOS
BIDIMENSIONAIS

113

for j=1:1:C-1
if V(j)>V(j+1)
aux=V(j);
V(j)=V(j+1);
V(j+1)=aux;
end
end
end
cresc=V
end

6.6

Gr
aficos Bidimensionais

O processo para criar um grafico de uma func


ao f (x) e bem simples
e parecido com aquele dado ensino fundamental, ou seja, criamos
uma tabela de pontos com valores (x, y) e simplesmente marcamos
estes pontos no plano. Veja passo a passo a construc
ao do grafico da
2
funcao f (x) = x no intervalo [3 3].
1- Criamos a func
ao f (x) (como feito acima em F (x) = x2 )
2 - Criamos o vetor X com espacamento de 1/100 no intervalo
[3 3].
x = 3 : 0.01 : 3
3 - Nao sabemos o tamanho do vetor X por isso usaremos o
funcao pre-definida size() para descobrir o tamanho do vetor X. e
assim calcular o vetor Y = f (X).
[L,C]=size(X)
for i=1:C
Y = f (X(i));
end

AO MATLAB
CAPITULO 6. INTRODUC
AO

114

4- Para tracar o grafico basta usar a func


ao pre-definida plot().
Essa funcao simplesmente marca no plano os pontos (X(i), Y (i)) dos
vetores X e Y .
plot(X, Y ) veja o resultado a figura 6.1.
9

0
3

Figura 6.1: Grafico de f (x) = x2

Modo r
apido: O modo com que criamos o grafico acima, permite mais controle sobre o mesmo. Mas existe uma outra forma de
construir mais rapidamente o grafico de f (x). Veja:
>> x = 3 : 0.01 : 3
>> y = x.2
>> plot(x, y)
Observa
c
ao 6.3. Para saber mais sobre a func
ao plot() basta digitar
>> help plot1 na linha de comando. Para construir dois gr
aficos
ao mesmo tempo basta utilizar o comando hold on depois de cada
gr
afico.
1

Isso pode ser feito com qualquer funca


o pre-definida


6.7. GRAFICOS
TRIDIMENSIONAIS

6.7

115

Gr
aficos Tridimensionais

O processo para construir graficos tridimensionais e bem parecido


com o bidimensional. Vamos construir o grafico de f (x, y) = x2 + y 2
na caixa D = [1 1] [2 3].
>> [X, Y ] = meshgrid(1 : 0.1 : 1, 2 : 0.1 : 3);
>> Z = X. 2 + Y. 2 Z e uma matriz, por isso, usamos X. e
Y. no calculo.
>> surf (Z)
Veja figura 6.2 As curvas de nvel podem ser

10

0
60
50

25

40

20

30

15
20

10
10

5
0

Figura 6.2: Grafico de f (x, y) = x2 + y 2

construdas com a func


ao contour(z). Para desenhar grafico + curva
de nvel use surf c(z)(veja figura 6.3).

10

0
60
50

25

40

20

30

15
20

10
10

5
0

Figura 6.3: Grafico+(curva de nvel) de f (x, y) = x2 + y 2

AO MATLAB
CAPITULO 6. INTRODUC
AO

116

6.8

Exerccios

6.8.1. Escrever um SCRIPT que imprima em ordem decrescente os


mpares entre 500 e 100.
6.8.2. Escrever um SCRIPT para ler um inteiro positivo N e dizer
se N e ou n
ao m
ultiplo de 7. Terminar o SCRIPT quando N for
negativo.
uencia:
6.8.3. Escreva um SCRIPT para imprimir a seq
1 2 3 4 -5 -6 -7 -8 9 10 11 12 -13 -14 -15 -16 17 18 19 20 ...
<1500
6.8.4. Escreva um SCRIPT para imprimir a seq
uencia:
1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 ... <1500
6.8.5. Escreva um SCRIPT para imprimir a seq
uencia de primos
menores que 1000.
6.8.6. Escreva um SCRIPT para ler um inteiro positivo N e imprimir o valor de S onde:
0 1 1 2 3
5
8
F
S= + + + + +
+
+ ... +
1
2
3
5
7
11
13
P}
{z
|
N termos

F e a seq
uencia de Fibonacci
P e a seq
uencia de Primos
6.8.7. Escrever uma func
ao em Octave para calcular a norma de um
vetor de tamanho qualquer, onde
q
kV k = x21 + x22 + . . . + x2n
6.8.8. Escrever uma func
ao em Octave para calcular a norma de
uma Matriz Aij onde,
kAij k =

X
ij

|aij |

6.8. EXERCICIOS

117

6.8.9. Crie uma func


ao para dizer se um Npertence ou n
ao a
seq
uencia abaixo:
1 2 4 7 11 16 17 19 22 26 31 32 34 37 41 46 ... 10000
6.8.10. Escreva uma func
ao para calcular o m
odulo de uma matriz
nxn, onde
|A| = M ax{|aij |}
6.8.11. Criar o gr
afico da func
ao f (x) = 2x2 + sen(x) no intervalo
[2 5].
6.8.12. Construa o gr
afico da func
ao f (x, y) = sen(xy) na caixa
D = [2 2, 2 2]

118

AO MATLAB
CAPITULO 6. INTRODUC
AO

Captulo 7

Implementa
c
ao dos
M
etodos
Neste captulo vamos implementar os metodos numericos que foram
estudados anteriormente. Lembramos que o pre-requisito sera apenas o conhecimento basico de algoritmos. Caso o leitor nao tenha
familiaridade com o Matlab, recomendamos a leitura do Captulo de
Introducao ao Matlab. Nossa ordem sera:

i) Algoritmo em portugues.
ii) Algoritmo em Matlab (em forma de func
ao).
iii) Quando possvel, func
ao pre-definida do Matlab.

7.1

Sistemas Lineares

Algoritmo 7.1.1. Metodo da substituica


o retroativa, ou retro-substituic
ao.
Sistema triangular superior.
119

DOS METODOS

CAPITULO 7. IMPLEMENTAC
AO

120

Entrada :

aij , i j, bi , j n

1
2
3
4
5
6
7
8

xn = bn /a(k, k)
para k = n 1 : 1
soma = bk
para j = k + 1 : n
soma = soma akj xj
f im para
xk = soma
akk
f im para

:
:
:
:
:
:
:
:

Sada :

(aij elementos da M. dos Coeficientes.

NO MATLAB
function [retro]=retro(A)
[L,C]=size(A);
n=L;
m=C;
x(n)=A(n,m)/A(n,n);
for k=n-1:-1:1
soma=A(k,m);
for j=k+1:n
soma=soma-A(k,j)*x(j);
end
x(k)=soma/A(k,k);
end
retro=x
Nota: Veja que no Matlab, usamos a matriz ampliada do sistema(matriz dos coeficientes + vetor de termos independentes), assim trocamos os elementos bi por A(i, m).
Exemplo:

0
2x1 + x2 x3 =
x2 x1 = 2
Vamos aplicar a func
ao retro() no sistema

1/2x3 =
2

7.1. SISTEMAS LINEARES


>> A = [2 1 1 0; 0 1 1 2; 0 0 1/2 1]
>> retro(A)
ans =
1 0 2
Algoritmo 7.1.2. Metodo da eliminac
ao Gaussiana.
Entrada : A = [aij ] Matriz n m
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :

para k = 1 : n
se akk = 0
para s = k + 1 : n
se ask 6= 0
troque a linha s com linha k
f im se
f im para
f im se
para i = k + 1 : n
mik = aik /akk
para j = k : m
aij = ai j mik akj
f im para
f im para
f im para

Sada :

matriz triangularA = [aij ]

NO MATLAB
function [egauss]=egauss(A)
[L,C]=size(A);
n=L;
m=C;
for k=1:n
if A(k,k)==0
for s=k+1:n
if A(s,k) =0
auxiliar=A(k,:);

121

DOS METODOS

CAPITULO 7. IMPLEMENTAC
AO

122

A(k,:)=A(s,:);
A(s,:)=auxiliar;
end
end
end
for i=k+1:n
m(i,k)=A(i,k)/A(k,k);
for j=k:m
A(i,j)=A(i,j)-m(i,k)*A(k,j);
end
end
end
egauss=A

Nota: A func
ao egauss() pode ser composta com a func
ao retro()
para resolver uma sistema nn qualquer, ou seja, retro(egauss(A)),
onde A e a matriz ampliada do sistema.

Exemplo:

=
0
2x1 + x2 x3
x1 + x2 x1
= 1
Considere o sistema

4x1 x2 1/2x3 =
3

>> A = [2 1 1 0; 1 1 1 1; 4 1 1/2 3]
>> retro(egauss(A))
ans =
1

Algoritmo 7.1.3. Metodo da eliminac


ao Gaussiana com pivotea-

7.1. SISTEMAS LINEARES


mento.

123

Entrada :

A = [aij ]

Matriz n m

1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :

para k = 1 : n
w = |akk |
para s = k + 1 : n
se |ask | > w
w = |ask |, r = s
f im se
f im para
troque a linha s com linha k
para i = k + 1 : n
mik = aik /akk
para j = k : m
aij = ai j mik akj
f im para
f im para
f im para

Sada :

matriz triangularA = [aij ]

NO MATLAB
function [egausspiv]=egausspiv(A)
[L,C]=size(A);
n=L;
m=C;
for k=1:n
w=abs(A(k,k));
for s=k+1:n
if abs(A(s,k))w
w=abs(A(s,k));
r=s;
end
end
for i=k+1:n
m(i,k)=A(i,k)/A(k,k);

124

DOS METODOS

CAPITULO 7. IMPLEMENTAC
AO
for j=k:m
A(i,j)=A(i,j)-m(i,k)*A(k,j);
end
end
end
egausspiv=A;

Algoritmo 7.1.4. Decomposic


ao LU.
Entrada :

Ann

1 :
2 :

para i = 1 : n
para j = i : n
i1
X
mik ukj
uij = aij

3 :
4 :
5 :

k=1

para j =i + 1 : n
!
i1
X
mjk ukj /uii
mji = aji

6 :
7 :
8 :

f im para
f im para
f im para

Sada :

matrizes L e U

NO MATLAB
function [fatlu]=fatlu(A)
[L,C]=size(A); n=L;
for i=1:n
for j=i:n
u(i,j)=A(i,j);
for k=1:i-1
u(i,j)=u(i,j)-m(i,k)*u(k,j);
end
end
for j=i+1:n

k=1

7.1. SISTEMAS LINEARES

125

m(j,i)=A(j,i);
for k=1:i-1
m(j,i)=m(j,i)-m(j,k)*u(k,i);
end
u(i,j)=u(i,j)/u(i,i);
end
end
L=m U=u

Nota: N
ao fizemos nesse algoritmo, mas e necess
ario completar
a diagonal principal da matriz L com 1.

1 1 2
Exemplo: Considere a matriz A = 1 2 3 .
0 1 5

>> A = [1 1 2; 1 2 3; 0 1 5]
>> f atlu(A)
L=
0

U=
1

Algoritmo 7.1.5. Metodo Iterativo de Jacobi.

126

DOS METODOS

CAPITULO 7. IMPLEMENTAC
AO

Entrada :

Ann , bn , x0 ,

1 :
2 :
3 :

k=1
enquantokxk xk1 k >
para i = 1 : n

n
X
1
xk+1
=
bi
aii xkj
i
aii

4 :

j=1,j6=i

5 :
6 :

f im para
f im enquanto

Sada :

soluc
ao aproximada xk

NO MATLAB
function [jacobi]=jacobi(A,x,delta)
[L,C]=size(A);
n=L;
m=C;
k=2;
x(:,2)=1;
cont=1;
while norm(x(:,k)-x(:,k-1))>delta
k=k+1;
if cont==1
k=k-1;
cont=0;
end
for i=1:n
x(i,k)=A(i,m);
for j=1:n
if j =i
x(i,k)=x(i,k)-A(i,j)*x(j,k-1);
end
end
x(i,k)=x(i,k)/A(i,i)
end

7.1. SISTEMAS LINEARES

127

end
jacobi=x;
Nota: A sada da func
ao jacobi() ser
a dada pelo vetor x na
seguinte formatac
ao:
soluc
ao x1

x2

...

xk

x11

x21

...

xk1

x12

x22

...

xk2

..
.

..
.

..
.

..
.

x1n

x2n

...

xkn

Algoritmo 7.1.6. Metodo Iterativo de Gauss-Seidel


Entrada :

Ann , bn , x0 ,

1 :
2 :
3 :

k=1
enquantokxk xk1 k >
para i = 1 :
n

i1
n
X
X
1
bi
xk+1
=
aij xk+1

aij xkj
i
j
aii

4 :

j=1

5 :
6 :

f im para
f im enquanto

Sada :

soluc
ao aproximada xk

NO MATLAB
function [gausseidel]=gausseidel(A,x,delta)

j=i+1

DOS METODOS

CAPITULO 7. IMPLEMENTAC
AO

128

[L,C]=size(A);
n=L;
m=C;
k=2;
x(:,2)=1;
cont=1;
while norm(x(:,k)-x(:,k-1))>delta
k=k+1;
if cont==1
k=k-1;
cont=0;
end
for i=1:n
x(i,k)=A(i,m);
for j=1:i-1
x(i,k)=x(i,k)-A(i,j)*x(j,k);
end
for j=i+1:n
x(i,k)=x(i,k)-A(i,j)*x(j,k-1);
end
x(i,k)=x(i,k)/A(i,i);
end
end
gausseidel=x;

Nota: A sada da func


ao gausseidel() ser
a dada pelo vetor x na

7.1. SISTEMAS LINEARES

129

seguinte formatac
ao:
soluc
ao x1

x2

...

xk

x11

x21

...

xk1

x12

x22

...

xk2

..
.

..
.

..
.

..
.

x1n

x2n

...

xkn

Exemplo:

3x1 + x2 = 4
pelo metodo
2x1 + 6x2 = 8
de Jacobi e em seguida pelo metodo de Gauss-Seidel com = 0.0001
Vamos achar a soluca
o do sistema

NO MATLAB
>> A = [3 1 4; 2 6 8]
3 1 4
A=
2 6 8
>>jacobi(A,[0 0],0.0001)
Columns 1 through 7
0
0

1.3333
1.3333

0.8889
0.8889

1.0370
1.0370

Columns 8 through 11
1.0005 0.9998 1.0001
1.0005 0.9998 1.0001
>>gausseidel(A,[0 0],0.0001)

0.9877
0.9877

1.0000
1.0000

1.0041
1.0041

0.9986
0.9986

DOS METODOS

CAPITULO 7. IMPLEMENTAC
AO

130
ans
0
0

1.3333
0.8889

1.0370
0.9877

1.0041
0.9986

1.0005
0.9998

1.0001
1.0000

1.0000
1.0000

Observe que o metodo de Jacobi retornou a soluc


ao exata (1, 1)
com = 0.0001 em 11 iterac
oes, incluindo a soluc
ao inicial, enquanto o metodo de Gauss-Seidel retornou a soluc
ao exata em 7
iterac
oes. Essa diferenca tende a aumentar com o tamanho do sistema.

7.2

Zeros de Func
ao

Algoritmo 7.2.1. Metodo de Localizac


ao de Zeros.
Entrada :

f (x), a, b, n

1 :

2
3
4
5
6
7
8

:
:
:
:
:
:
:

Sada :

n e o n
umero de subintervalos

|b a|
n
p0 = a
para i = 1 : n
pi = pi1 +
se f (pi )f (pi1 ) 0
armazenar o intervalo [pi1 pi ] em um vetor V
f im se
f impara
V etor V

NO MATLAB
function[MLZ]=MLZ(a,b,n)
gama=abs(b-a)/n;
p(1)=a; %trocamos p(0) por p(1)
j=1;
for i=2:n+1
p(i)=p(i-1)+gama;
if(f(p(i))*f(p(i-1)))<=0


7.2. ZEROS DE FUNC
AO

131

V(j)=p(i-1);
V(j+1)=p(i);
j=j+2;
end
end
MLZ=V;
Nota: O retorno da func
ao M LZ() e dado pelos intervalos [v1 v2 ], [v3 v4 ], . . . , [vk1 vk ]
onde est
ao os possveis zeros de f (x). O vetor V e dado na seguinte
formatac
ao:
M LZ = V = v1 v2 v3 v4 . . . vk1 vk

Exemplo:
Seja f (x) = x3 2x2 + 1 cujos zeros s
ao 0.6180, 1, 1.6180.
Vamos aplicar a funca
o M LZ() no intervalo [1 2] com n = 10
depois com n = 500.
>> M LZ(1, 2, 10)
ans =
-0.7000

-0.4000

0.8000

1.1000

1.4000

1.7000

0.9980

1.0040

1.6160

1.6220

>> M LZ(1, 2, 500)


ans =
-0.6220

-0.6160

Veja que os zeros de f (x) est


ao nos intervalos [vi vi+1 ].
Algoritmo 7.2.2. Metodo do Meio Intervalo - MMI.

DOS METODOS

CAPITULO 7. IMPLEMENTAC
AO

132

Entrada :

f (x), a, b,

1 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :

enquanto |b a| >
a+b
x=
2
se f (x) = 0
x e zero, encerrar
sen
ao
se f (a)f (x) < 0
b=x
sen
ao
a=x
f im se
f im se
f im enquanto

Sada : x

aproximaca
o para o zero de f em [a b]

2 :

NO MATLAB
function[MMI]=MMI(a,b,delta)
while abs(b-a)>delta
x=(a+b)/2;
if f(x)==0
MMI=x;
return %termina a func
ao
else
if (f(a)*f(x))0
b=x;
else
a=x;
end
end
end
MMI=x;


7.2. ZEROS DE FUNC
AO

133

De acordo com o exemplo do Algoritmo 7.2.1, temos que f (x)


possui zeros em [0.7 0.4], [0.8 1.1], [1.4 1.7]. Aplicando a
func
ao M M I() em cada intervalo com delta = 0.01 temos:
>> M M I(0.7, 0.4, 0.01)
ans =
-0.6156
>> M M I(0.8, 1.1, 0.01)
ans =
0.9969
>> M M I(1.4, 1.7, 0.01)
ans =
1.6156
Tente fazer com delta = 0.0001, veja que os resultados s
ao melhores.
Algoritmo 7.2.3. Metodo da Secante.
Entrada :

f (x), a, b,

1
2
3
4
5

11 :

se f (a)f 00 (a) > 0


c = a, x0 = b
sen
ao
c = b, x0 = a
f im se
f (x0 )
x1 = x0
(x0 c)
f (x0 ) f (c)
n=1
enquanto|xn xn1 | >
n=n+1
f (xn1 )
xn = xn1
(xn1 c)
f (xn1 ) f (c)
f im enquanto

Sada :

xn

:
:
:
:
:

6 :
7 :
8 :
9 :
10 :

134

DOS METODOS

CAPITULO 7. IMPLEMENTAC
AO
NO MATLAB
function[secante]=secante(a,b,delta)
if (f(a)*ddf(a))>0 %ddf() e a derivada segunda de f(x)
c=a;
x(1)=b;
else
c=b;
x(1)=a;
end
x(2)=x(1)-(f(x(1))*(x(1)-c))/(f(x(1))-f(c));
n=2;
while abs(x(n)-x(n-1))>delta
n=n+1;
x(n)=x(n-1)-(f(x(n-1))*(x(n-1)-c))/(f(x(n-1))-f(c));
end
secante=x(n);

De acordo com o exemplo do Algoritmo 7.2.1, temos que f (x)


possui zeros em [0.7 0.4], [0.8 1.1], [1.4 1.7]. Aplicando a
func
ao secante() em cada intervalo com delta = 0.01 temos:
>> secante(0.7, 0.4, 0.01)
ans =
-0.6163
>> secante(0.8, 1.1, 0.01)
ans =
1.0003
>> secante(1.4, 1.7, 0.01)
ans =
1.6169
Tente fazer com delta = 0.0001, veja que os resultados s
ao melhores. Compare com o M M I().
Nota: A funca
o ddf () deve ser criada como a func
ao f ().


7.2. ZEROS DE FUNC
AO
Algoritmo 7.2.4. Metodo de Newton.
Entrada :

f (x), f 0 (x), a, b,

1
2
3
4
5

7 :
8 :
9 :
10 :
11 :

se f (a)f 00 (a) > 0


x0 = a
sen
ao
x0 = b
f im se
f (x0 )
x1 = x0 0
f (x0 )
n=1
enquanto|xn xn1 | >
n=n+1
n1 )
xn = xn1 ff0(x
(xn1 )
f im enquanto

Sada :

xn

:
:
:
:
:

6 :

NO MATLAB
function[newton]=newton(a,b,delta)
if (f(a)*ddf(a))>0 %ddf() e a derivada segunda de f(x)
c=a;
x(1)=b;
else
c=b;
x(1)=a;
end
x(2)=x(1)-f(x(1))/ddf(x(1));
n=2;
while abs(x(n)-x(n-1))>delta
n=n+1;
x(n)=x(n-1)-f(x(n-1))/ddf(x(n-1));
end
newton=x(n);
Nota: A func
ao ddf () deve ser criada como a func
ao f ().

135

DOS METODOS

CAPITULO 7. IMPLEMENTAC
AO

136

Algoritmo 7.2.5. Metodo da Iteraca


o Linear.
Entrada :

(x), x0 ,

1
2
3
4
5
6

x1 = (x0 )
n=1
enquanto |xn xn1 | >
n=n+1
xn = (xn1 )
f im enquanto

:
:
:
:
:
:

Sada :

xn

No Matlab podemos encontrar os zeros, utilizando a func


ao pre0
0
definida f zero( f uncao , [a b]). Por exemplo:
Desejamos encontrar o zero de f (x) = sen(x) no intervalo [1 4]
>> x = f zero(0 sin(x)0 , [1 4]
x = 3.1416
No caso polinomial, como exemplo, considere f (x) = x2 3x + 2.

>> p = [1 3 2] vetor que define o polinomio.


r = roots(p) calcula as razes(zeros) do polinomio.
2
r=
1

7.3

Interpolac
ao

Algoritmo 7.3.1. Avaliac


ao do polin
omio interpolador de Lagrange.


7.3. INTERPOLAC
AO

137

Entrada :

x, X = [x0 , x1 , , xn ], f (X) = [f (x0 ), f (x1 ), , f (xn )]

1
2
3
4
5

7 :
8 :
9 :
10 :

soma = 0
para i = 0 : n
P =1
para j = 0 : n
se j 6= i
(x xj )
P =P
(xi xj )
f im se
f im para
soma = soma + f (xi )P
f im para

Sada :

soma

:
:
:
:
:

6 :

No Matlab podemos utilizar a func


ao interp1. Veja exemplo:
>> X = [1 2 3]
>> f X = [1 4 9]

%vetor de pontos X.
%vetor imagem f (X)

>> interp1(X, f X, 2.5)


avalia em 2.5
ans = 6.5

%calcula o polinomio interpolador e

>> p = polyf it(X, f X, 2)


interpolador de grau 2.
p=
1.0000

0.0000

%exibe os coeficientes do polinomio

0.0000

Logo nosso polinomio interpolador sera p(x) = 1x2 + 0x + 0 = x2 .

DOS METODOS

CAPITULO 7. IMPLEMENTAC
AO

138

7.4

Integra
c
ao

Algoritmo 7.4.1. Integrac


ao por trapezios.
Entrada :

x0 , h

1
2
3
4
5

soma = 0
para i = 1 : n 1
xi = xi1 + h
soma = soma + f (xi )
f im para
h
IT r = [f (x0 ) + 2soma + f (xn )]
2

:
:
:
:
:

6 :
Sada :

IT r

No Matlab integramos com o comando trapz() que calcula a integral por trapezios. Por exemplo:
Z 2
Desejamos calcular
(x2 + 1) dx.
0

>> x = 0 : 0.01 : 2
h = 0.01

faz uma partic


ao do intervalo [0 2] com

>> y = x. 2 + 1 avalia a func


ao no vetor x.

IT R = trapz(x, y) calcula o valor da integral.

IT R = 4.6667
Algoritmo 7.4.2. Integrac
ao pela 1a Regra de Simpson.


7.5. OTIMIZAC
AO

139

Entrada :

x0 , h

1
2
3
4
5
6
7
8
9

soma = 0
para i = 1 : n 1
xi = xi1 + h
se (i par)
soma = soma + 2f (xi )
sen
ao
soma = soma + 4f (xi )
f im se
f im para
h
IS = [f (x0 ) + soma + f (xn )]
3

:
:
:
:
:
:
:
:
:

10 :
Sada :

IS

No Matlab utilizamos o comando quad(0 f 0 , a, b), onde f deve ser


a funcao a ser integrada no intervalo [a b]. Lembramos que nesse
caso a funcao f deve ser escrita com arquivo .m. Por exemplo:
Z 2
Desejamos calcular a
(x2 + 1) dx.
0

Arquivo f.m
function [f ] = f (x)
f = x. 2 + 1
>> quad(0 f 0 , 0, 2)
ans = 4.6667

7.5

Otimizac
ao

Algoritmo 7.5.1. Mnimo de uma func


ao(de uma vari
avel) pelo
metodo da sec
ao
aurea.

140

DOS METODOS

CAPITULO 7. IMPLEMENTAC
AO

Entrada :

f (x), a, b,

1
2
3
4
5
6
7
8
8
8
9

enquanto |b a| >
xa = b 0.618(b a)
xb = a + 0.618(b a)
se f (xa ) < f (xb )
b = xb
xb = a + 0.618(b a)
sen
ao
a = xa
xa = b 0.618(b a)
f im se
f im enquanto
xa + xb
I=
2

:
:
:
:
:
:
:
:
:
:
:

10 :
Sada :

NO MATLAB
function[aurea]=aurea(a,b,delta)
while abs(b-a)>delta
xa=b-0.618*(b-a);
xb=a+0.618*(b-a);
if f(xa)<f(xb)
b=xb;
xb=a+0.618*(b-a);
else
a=xa;
xa=b-0.618*(b-a);
end
end
I=(xa+xb)/2;
aureo=I;
Considerando f (x) = sen(x), vamos encontrar o zero de f (x)
em [0 2] com = 0.01, aplicando a func
ao que acabamos de criar


7.5. OTIMIZAC
AO

141

aurea(). Em seguida vamos comparar o resultado com a func


ao
pre-definida do Matlab f min().
>> aurea(0, 2 pi, 0.01)
ans =
4.7128
>> f min(0 sin(x)0 , 0, 2 pi)
ans =
4.7124
Experimente = 0.0001.
Algoritmo 7.5.2. Mnimo de uma func
ao (duas vari
aveis) pelo
metodo do gradiente.
Entrada :

f (x), x0 ,

1
2
3
4
5
6
7
8

k=0
enquanto kxk xk1 k >
gk = f (xk )
dk = gk
k = mnimo por sec
ao
aurea de gk (t) = f (xk + tdk )
xk+1 = xk + k dk
k =k+1
f im enquanto

:
:
:
:
:
:
:
:

Sada :

xk

NO MATLAB
function[Mgrad]=Mgrad(x,delta)
k=2;
x=x; %transforma x em um vetor coluna
x(:,k)=1;
cont=1;
while norm(x(:,k)-x(:,k-1))>delta
if cont =1
k=k+1;

142

DOS METODOS

CAPITULO 7. IMPLEMENTAC
AO
end
gk=gradiente(x(:,k-1),0.0001);
dk=-gk;
ak=aurea(0,1,x(:,k-1),dk,0.0001);
x(:,k)=x(:,k-1)+ak*dk;
cont=cont+1;
end
Mgrad=x(:,k)

A func
ao M grad() faz uso das func
oes gradiente() e aurea().
Vamos conhecer essas func
oes;
gradiente(): Essa func
ao calcula o gradiente da func
ao f no
ponto x. O serve como grau de precis
ao. Lembrando que, a func
ao
f (x)
deve
ser
diferenci
avel.
Entrada: x,
Sada: f (x)
function[gradiente]=gradiente(x,delta)
[L,C]=size(x);
for i=1:C
k=x;
k(i)=x(i)+delta;
s(i)=((f(k)-f(x))/delta);
end
gradiente=s;
aurea(): Fizemos uma pequena modificaca
o(veja abaixo) no Algoritmo ?? para adaptar ao metodo gradiente. Essa modificac
ao inclui na entrada do mesmo o ponto xk e a direc
ao dk. Lembrando
que, estamos interessados em encontrar o mnimo da funca
o gk(t) =
f (xk + tdk), e nesse caso, t varia em [a b]. Dessa forma podemos
definir manualmente a, b de tal forma que xk + tdk n
ao saia da caixa
onde queremos o mnimo da func
ao.
function [aurea]=aurea(a,b,xk,dk,delta)
while abs(b-a)>delta


7.5. OTIMIZAC
AO

143

xa=b-0.618*(b-a);
xb=a+0.618*(b-a);
if f(xk+xa*dk)<f(xk+xb*dk)
b=xb;
xb=a+0.618*(b-a);
else
a=xa;
xa=b-0.618*(b-a);
end
end
I=(xa+xb)/2;
aureo=I;
Algoritmo 7.5.3. Mnimo de uma func
ao (duas vari
aveis) por direc
ao
aleat
oria.
Entrada :

f (x), x0 ,

1
2
4
5
6
7
8

k=0
enquanto kxk xk1 k >
dk = rand(n, 1)
k = mnimo por sec
ao
aurea de gk (t) = f (xk + tdk )
xk+1 = xk + k dk
k =k+1
f im enquanto

:
:
:
:
:
:
:

Sada :

xk

O algoritmo em Matlab para direc


oes aleatorias e analogo ao
metodo do gradiente. Apenas modificamos a direc
ao dk com a func
ao
pre-definida do Matlab rand(2, 1) e aumentamos o intervalo da sec
ao
aurea. Veja:
NO MATLAB
function [aleatorio]=aleatorio(x,delta)
k=2;
x=x;

144

DOS METODOS

CAPITULO 7. IMPLEMENTAC
AO
x(:,k)=1;
cont=1;
while norm(x(:,k)-x(:,k-1))>delta
if cont =1
k=k+1;
end
dk=rand(2,1);
ak=aurea(-1,1,x(:,k-1),dk,0.0001);
x(:,k)=x(:,k-1)+ak*dk;
cont=cont+1;
end
aleatorio=x(:,k)

Exemplo de aplicac
ao: Considere a func
ao f (x1 , x2 ) = (x1 +
Vamos aplicar as func
oes M grad() e aleatorio() com
o ponto inicial (4, 5) e = 0.001. O valor k representa a n
umero de
iteracoes em cada func
ao:
1)2 + (x2 + 2)2 .

>> M grad([4 5], 0.001)


k= 3
Mgrad =
-1.0000 -2.0000
>> aleatorio([4 5], 0.001)
k = 60
aleatorio =
-1.0027 -1.9969
Veja que o metodo do gradiente resolve com apenas 3 iterac
oes,
enquanto o metodo aleatorio em 60. Assim fica claro que, para
funcoes diferenciaveis o metodo do gradiente e muito melhor. Mas
nunca e demais lembrar que, o mesmo so pode ser aplicado em
funcoes diferenciaveis e com ponto inicial na bacia de atrac
ao do
mnimo.
Tambem podemos utilizar as func
oes pre-definidas do Matlab.
Assim para encontrar mnimo de uma func
ao de Rn em R, utilizamos
a funcao f mins(0 f 0 , x0). Onde f deve ser uma func
ao que recebe um
vetor em Rn e x0 deve ser o valor inicial. Veja:

7.6. EXERCICIOS

145

Desejamos encontrar o mnimo da func


ao f : R2 R dada
2
2
por f (x1 , x2 ) = (x1 + 1) + (x2 + 2) . Tomamos como ponto inicial
x0 = (4, 5).
>> x = f mins(0 (x(1) + 1) 2 + (x(2) + 2) 20 , [4 5]
x = 1.0000 2.00000

7.6

Exerccios

7.6.1. Teste os algoritmos nos exerccios e exemplos, dos captulos


anteriores.
7.6.2. Implemente em Matlab o metodo da Iterac
ao Linear.
7.6.3. Utilizando o metodo de localizaca
o de zeros - MLZ associado
com o metodo da Iterac
ao Linear encontre os 3 zeros reais de f (x) =
x5 4x3 + x 1 no intervalo [3 3]. Faca o mesmo para o metodo
do meio intervalo MMI, Secante e Newton.
7.6.4. Implemente em Matlab o metodo de interpolac
ao de lagrange,
cujo algoritmo foi dado. Faca uma func
ao que retorne aos coeficientes do polin
omio interpolador, compare sua func
ao com a func
ao
pre-definida do Matlab. Dica: use sistemas lineares.
ao. Compare
7.6.5. Implemente em Matlab os algoritmos de Integrac
os resultados com as func
oes pre-definidas do Matlab.
7.6.6. Na func
ao M grad() utilizamos a func
ao aurea() com o intervalo fixo em [0 1]. Explique por que na func
ao aleatorio() utilizamos
a func
ao aurea() com o intervalo [1 1].

Indice Remissivo

Aurea,
metodo, 86

Decomposic
ao LU, 8
Direc
ao aleatoria, 92
Direto Metodo, 4
Doolitle metodo, 11

Algoritmo, definic
ao, 96
Ampliada, matriz, 2
Atratoras, bacias, 90

Elementares, operac
oes, 4
Eliminac
ao Gaussiana, 8
Erro, 17
Erro de truncamento, 59

Bacias de atrac
ao, 90
Bolzano, teorema de, 30
Briot-Ruffini, metodo de, 62
Cauchy, 38
Cauchy, seq
uencia de, 27
Comentarios finais Zeros de func
ao,
41
Complexos, sistemas lineares,
20
Condicional, n
umero, 17
Contnua, func
ao, 25
Convergencia no metodo da secante, 33
Convergencia no metodo de Newton, 35
Convergencia, metodo de Jacobi e Gauss-Seidel, 19
Criterio de linhas, 19
Criterio de parada, 14
DDF, 57
DDF, formula geral interpolac
ao,
58
146

Func
ao contnua, 25
Func
ao de Iterac
ao, 39
Func
ao de iterac
ao, 11
Func
ao, zeros de uma, 25
Func
oes pre-definidas, 104
Gauss metodo, 4
Gauss, metodo iterativo de, 15
Gaussiana, eliminac
ao, 8
Geometrica, soluc
ao, 2
Global, maximo, 83
Global, mnimo, 83
Gradiente de uma func
ao, 88
Grout metodo, 11
Infinitas soluc
oes, 3
Inflex
ao, ponto, 85
Interpolac
ao, 53
Interpolac
ao de Lagrange, 54
Interpolac
ao por DDF, 57

INDICE REMISSIVO
Inversao de matriz, 10
Inversao, matriz, 10
Iteracao linear, metodo da, 36
Iteracao, funcao de, 11
Iterativo, metodo do refinamento,
17
Iterativos metodos, 11
Jacobi, metodo, 11
Linear, Sistema, 1
Local, maximo, 83
Local, mnimo, 83
Localizacao de zeros, 41
Localizacao de zeros, metodo
de, 27
LU decomposicao, 8
Maximo local, 83
Metodo Briot-Ruffini, 62
Metodo da iteracao linear, 36,
42

Metodo da Secao Aurea,


86
Metodo da secante, 31, 41
Metodo de Doolitle, 11
Metodo de Gauss, 4
Metodo de Grout, 11
Metodo de Localizacao de Zeros, 27
Metodo de Newton, 33, 41
Metodo do meio intervalo, 29,
41
Metodo do Refinamento Iterativo, 17
Metodo iterativo de Jacobi, 11
Metodo iterativo Gauss-Seidel,
15
Metodos Diretos, 4

147
Metodos Iterativos, 11
Mnimo global, 83
Mnimo local, 83
Matriz ampliada, 2, 4, 5
Matriz dos coeficientes, 2
Matriz quadrada, 2
Matriz triangular inferior, 8
Matriz triangular superior, 8
Meio intervalo, metodo do, 29
Multiplicidade de um zero, 50
N
umero condicional, 17, 18
Newton, convergencia no metodo
de, 35
Newton, metodo, 33
Operac
oes elementares, 4
Otimizac
ao, 83
Parada, Criterio de, 14
Partic
ao, 28
Pivo, 7
Pivotac
ao parcial, 8
Ponto de inflexao, 85
Ponto fixo, 36
Quadrada, matriz, 2
Refinamento iterativo, metodo
do, 17
Resduo, vetor, 17
Script, 105
Sec
ao aurea, 86
Secante, convergencia no metodo
da, 33
Secante, metodo da, 31
Seidel, metodo iterativo de, 15
Seq
uencia de Cauchy, 27

148
Seq
uencia monotona, 30
Sistemas Complexos, 20
Sistemas Lineares, 1
Solucao de um sistema n n,
3
Solucao Geometrica de um sistema, 2
Substituicao Retroativa, 9
Substituicao retroativa, 6
Teorema de Bolzano, 30
Teorema de Rolle, 60
Teorema de Weirstrass, 53
Teorema do ponto de inflexao,
85
Teorema Interpolac
ao de Lagrange, 54
triangular matriz, 8
Vetor incognitas, 2
Vetor resduo, 17
Vetor termos independentes, 2
Zeros de func
ao, 25
Zeros de um polinomio, 43

INDICE REMISSIVO

Refer
encias Bibliogr
aficas
[1] Leonidas C. Barroso. C
alculo Numerico com aplicac
oes. Harbra,
1987.

Linear. Ed. Harbra, 1980.


[2] Jose Luiz Boldrini. Algebra
[3] Djairo Guedes de Figueiredo. An
alise I. Ed. LTC, 1996.
[4] Howard. Eves. Introduca
o `
a Hist
oria da Matem
atica.
Polgono, 1989.

Ed.

[5] I.N. Hernstein. T


opicos de Algebra.
Ed. Polgono, 1970.
[6] Elon Lajes Lima. Curso de An
alise, vol.1. Ed. SBM, 1993.
[7] Elon Lajes Lima. Curso de An
alise, vol.2. Ed. SBM, 1999.

[8] Elon Lajes Lima. Algebra


Linear. Ed. SBM, 1980.
[9] Walter Rudin. Princpios de An
alise Matem
atica. Ed. Ao Livro
Tecnico, 1971.
[10] Francis Scheid. An
alise Numerica. McGraw-Hill, 1991.
[11] Dercio Sperandio. C
alculo Numerico: caracteristicas matematicas e computacionais dos metodos numericos. Ed. Prentice Hall,
2003.

149

Você também pode gostar