Escolar Documentos
Profissional Documentos
Cultura Documentos
0
1
2
3
4
5
6
7
8
50
40
50
30
40
30
20
20
10
10
0
i=1
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.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
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
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
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,
Captulo 1
Sistemas Lineares
1.1
Introduc
ao
.
.
.
.
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
a11
a21
..
.
a12
a22
..
.
am1 am2
..
.
a1n
a2n
..
.
amn
x1
x2
..
.
b1
b2
..
.
bm
xn
..
..
..
..
..
.
.
.
.
.
am1 am2
amn bm
2x1 + x2 = 3
x1 + 4x2 = 5
A=
2 1
1 4
, B=
3
5
, X=
x1
x2
2 1 3
1 4 5
1.1. INTRODUC
AO
1
x
0
-7
-6
-5
-4
-3
-2
-1
-1
-2
-3
-4
1.1.1
Soluc
ao de um sistema n n
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.
y
4
1
x
0
-7
-6
-5
-4
-3
-2
-1
-1
-2
-3
-4
1.2
M
etodos Diretos
1.2.1
M
etodo de Gauss
Quando n
ao existem erros de truncamento e arredondamento
1.2. METODOS
DIRETOS
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
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
a11
0
0
..
.
a12
a22
0
..
.
a13 a1n
a23 a2n
a33 a3n
..
..
..
.
.
.
0
amn
b1
b2
b3
..
.
(1.1)
bm
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
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
1.2.2
Decomposic
ao LU
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
y1 =
5
5
1 0 0
y1
2 1 0 y2 = 3 =
2y1 + y2 =
3
y1 + 3y2 + y3 = 1
1
1 3 1
y3
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
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
1.3.1
M
etodo Iterativo de Jacobi
Considere um sistema 3 3:
(3)
a31 x1 + a32 x2 + a33 x3 = b3
12
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
}
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
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
1.3.2
Crit
erio de Parada
1.3. METODOS
ITERATIVOS
15
v
u n
uX
n
p
kxi kp , p N
kx kp = t
i=1
4
2
1
kx x k =
5
kx3 x2 k =
1
2
1
2
3
2
=
=
1
4
3
4
>
1.3.3
M
etodo Iterativo de Gauss-Seidel
n
bi
1 X
=
aij xj
aii aii
j=1,j6=i
16
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
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
fazendo k = 1 temos:
1.3.4
M
etodo do Refinamento Iterativo
1.3.5
N
umero Condicional
x1 + 1.001x2 = 2.001
Exemplo 1.3.4. Considere o sistema
0.999x1 + x2 = 1.999
18
xk
2.001
2
0.000001
1
1.001
r =
.
=
1.999
0.999
1
0.001
0
| {z } |
{z
} | {z }
k
xk
1 0
0 1010
1.3. METODOS
ITERATIVOS
1.3.6
19
Converg
encia do M. Iterativo de Jacobi e GaussSeidel
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
j=1
j=1,j6=i
20
1.4
(1.5)
Ms Nt = c
Ns + Mt = d
|
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 }
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
22
x1 3x2 + x3 = 6
4x2 x3 = 5
a)
x3 = 4
2x1 = 2
x1 + x2 = 3
b)
x1 + x2 + x3 = 4
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
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.
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
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.
= 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.
2ix1 + 3x2 = 2 + 5i
(1 + i)x1 + ix2 =
3
valores fictcios
24
Alimento
1-Pera
1-Uva
1-Maca
Vitamina A
1g
2g
3g
Vitamina B
3g
3g
2g
Vitamina C
4g
5g
3g
Captulo 2
Zeros de func
ao
2.1
Introduc
ao
CAPITULO 2. ZEROS DE FUNC
AO
26
a
x
b
x
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
2.2
M
etodo de Localizac
ao de Zeros
CAPITULO 2. ZEROS DE FUNC
AO
28
b
x
-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 ,
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
2.3
M
etodo do Meio Intervalo - MMI
CAPITULO 2. ZEROS DE FUNC
AO
30
y
x x
n
2
Veja livro de c
alculo ou an
alise matem
atica
2.4. METODO
DA SECANTE
31
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
2.4
M
etodo da Secante
CAPITULO 2. ZEROS DE FUNC
AO
32
f (b))
(a,f (
x
2
f (b)f (a)
.
ba
f (b) f (a)
f (b) f (a)
(x b) = y = f (b) +
(x b)
ba
ba
f (b) f (a)
f (b)
(x0 b) = x0 = b
(b a)
ba
f (b) f (a)
2.5. METODO
DE NEWTON
33
xn = b
f (b)
f (b)f (xn1 ) (b
xn1 )
(2.1)
2.4.1
Converg
encia no M
etodo da Secante
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
CAPITULO 2. ZEROS DE FUNC
AO
34
x x
1
L1
L0
f (b)
f 0 (b)
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
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
CAPITULO 2. ZEROS DE FUNC
AO
36
2.6
M
etodo da Iterac
ao Linear
LINEAR
2.6. METODO
DA ITERAC
AO
37
(x)
f( x )
f( x )
2
1
y=x
f( x )
0
x
x
y=x
(x)
x
x
b
x
...
0
...
CAPITULO 2. ZEROS DE FUNC
AO
38
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
LINEAR
2.6. METODO
DA ITERAC
AO
39
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.
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
sen(x)
2 |
1
5
=
=
=
=
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
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
2.7.2
M
etodo do Meio Intervalo - MMI
2.7.3
M
etodo da Secante
2.7.4
M
etodo de Newton
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
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
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
2.8
Zeros de um Polin
omio
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
n1
X a n1
X kai k
i
<1
ni
x
kxkni
(2.3)
(2.4)
i=0
i=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
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
= 2 10
CAPITULO 2. ZEROS DE FUNC
AO
46
L
2
x
-8
-6
-4
-2
-2
-4
-6
-8
2.8. ZEROS DE UM POLINOMIO
47
0
-L
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),
Veja em [5]
CAPITULO 2. ZEROS DE FUNC
AO
48
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
1
L .
e os zeros positivos estao em
L1
L1
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
1
= 0.572 .
L1
L
x
-8
-6
-4
-2
-2
-4
-6
-8
CAPITULO 2. ZEROS DE FUNC
AO
50
2.8.1
Multiplicidade de um zero
= 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
2.9. EXERCICIOS
51
2.9
Exerccios
CAPITULO 2. ZEROS DE FUNC
AO
52
Captulo 3
Interpolac
ao
3.1
Introduc
ao
p(x) = f (x) para todo x [a b], ou seja, |f (x) p(x)| < para
qualquer dado.
53
CAPITULO 3. INTERPOLAC
AO
54
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 )
=
=
=
=
(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
(x x1 )(x x2 ) (x xn )
(x x0 )(x x2 ) (x xn )
n
Y
(x xj ), para i = 0, . . . , n.
j=0,j6=i
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
(3.2)
= 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 )
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
f (x1 ) f (x0 )
x1 x0
f [x2 , x1 ] f [x1 , x0 ]
x2 x0
3.3.1
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
(3.5)
59
(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
= 0.46 + x
3
2
1.257
= 1.257
x + 1, 425
3.4
Erro de Truncamento
CAPITULO 3. INTERPOLAC
AO
60
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)!
61
(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
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
(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)
(3.7)
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
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)
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
CAPITULO 3. INTERPOLAC
AO
66
5
49
10
105
15
172
20
253
25
352
30
473
35
619
40
793
mm
Kgf
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
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
NUMERICA
CAPITULO 4. INTEGRAC
AO
70
ex dx
4.2
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
=
x0
4.2. REGRA DOS TRAPEZIOS
71
y
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
4.2.1
Erro de Truncamento
NUMERICA
CAPITULO 4. INTEGRAC
AO
72
y
x x
0
x x
...
2
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
i=1
5 1
3
,
,
,
.
3 2
6 2
x1
x0
[f (x1 ) f (x0 )]
(1 +
f (x) dx = (x1 x0 )
=
2
8
73
3)
= 1.07287
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
4.3
1a Regra de Simpson
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
NUMERICA
CAPITULO 4. INTEGRAC
AO
74
p(x)
x2
x0
Et (x) dx =
x1
x0
(x x0 )(x x1 )(x x2 )
f 3 ()
dx
3!
f 3 ()h4
12
EI =
f 3 ()h4
12
75
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
g(d)
f (x) dx =
g(c)
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
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
ba
b+a
t+
2
2
ba
.
2
b
f (x) dx basta
a
i=0
77
(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
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 =
1
n
X
wi F (ti )
i=0
E=
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
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
com n = 2.
De acordo com a tabela 4.1 temos
Z
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. EXERCICIOS
81
Z
1
dx e o erro
x3
cometido.
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
ex dx com
82
NUMERICA
CAPITULO 4. INTEGRAC
AO
Captulo 5
Mnimos e M
aximos
5.1
Introduc
ao
CAPITULO 5. MINIMOS E MAXIMOS
84
k0
k1
= 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
CAPITULO 5. MINIMOS E MAXIMOS
86
5.2
M
etodo da Sec
ao Aurea
AUREA
5.2. METODO
DA SEC
AO
87
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
o que implica em
lim xn = L.
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
CAPITULO 5. MINIMOS E MAXIMOS
88
Superfcies em R3
5.3
50
40
30
20
10
0
5
5
0
0
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
CAPITULO 5. MINIMOS E MAXIMOS
90
p5
p3
p4
p1
p2
p0
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
5.5. BACIAS DE ATRAC
AO
91
8
6
4
2
0
2
4
6
8
10
25
20
25
15
20
15
10
10
5
5
0
92
5.6
M
etodo de direco
es aleat
orias
1 (0.166, 0.583)
0.933 >
2 (0.019, 0.0049) 0.596 < parar o metodo.
5.7. EXERCICIOS
93
5.7
Exerccios
94
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
AO MATLAB
CAPITULO 6. INTRODUC
AO
96
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
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)
6.2.3
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
>>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
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
SE <COMPARAC
AO>
Comandos e outras estruturas
FIM SE
SE <COMPARAC
AO>
Comandos 1
SENAO
Comandos 2
FIM SE
<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
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
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
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
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
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
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
AO MATLAB
CAPITULO 6. INTRODUC
AO
112
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
AO MATLAB
CAPITULO 6. INTRODUC
AO
114
0
3
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
6.7. GRAFICOS
TRIDIMENSIONAIS
6.7
115
Gr
aficos Tridimensionais
10
0
60
50
25
40
20
30
15
20
10
10
5
0
10
0
60
50
25
40
20
30
15
20
10
10
5
0
AO MATLAB
CAPITULO 6. INTRODUC
AO
116
6.8
Exerccios
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
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
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 :
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
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 :
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
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 :
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;
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
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
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
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
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;
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
7.2
Zeros de Func
ao
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
-0.6160
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
f (x), a, b,
1
2
3
4
5
11 :
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);
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 :
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
(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
7.3
Interpolac
ao
7.3. INTERPOLAC
AO
137
Entrada :
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 :
%vetor de pontos X.
%vetor imagem f (X)
0.0000
0.0000
DOS METODOS
CAPITULO 7. IMPLEMENTAC
AO
138
7.4
Integra
c
ao
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
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
Arquivo f.m
function [f ] = f (x)
f = x. 2 + 1
>> quad(0 f 0 , 0, 2)
ans = 4.6667
7.5
Otimizac
ao
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
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
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 .
7.6. EXERCICIOS
145
7.6
Exerccios
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
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.
Ed.
149