Vous êtes sur la page 1sur 229

CALCULO

NUMERICO
COMPUTACIONAL.
Tarcisio Praciano-Pereira1
Universidade Estadual Vale do Acara
u
Sobral, 26 de janeiro de 2008

tarcisio@member.ams.org

Edicoes Lab. de Matem


atica Computacional
Universidade Estadual Vale do Acara
u
Sobral - Ce

copyleft by Tarcisio Praciano Pereira

Praciano-Pereira, Tarcisio
P496c
C
alculo Num
erico Computacional.
Sobral: UeVA, Sobral, 26 de janeiro de
2008
133.p
Bibliografia
ISBN:85-87906-05-4
1 - Linguagem - Computaca
o C/C++
2 - C
alculo Num
erico.
I. Ttulo
CDD
515.1

Sum
ario
1 A derivada aproximada
1.1 derivada . . . . . . . . . . .
1.2 Quocientes de diferencas
de ordem superior . . . . .
1.3 Polinomios de Taylor . . . .
1.4 Derivadas parciais . . . . .
1.5 Solucao de alguns exercicios
1.6 Vocabulario . . . . . . . . .

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

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

2 Razes aproximadas
2.1 Razes por varredura . . . . . . . . . . . . . .
2.1.1 Metodo computacional basico . . . . .
2.1.2 Busca de razes por varredura . . . . .
2.2 A troca de sinal . . . . . . . . . . . . . . . . .
2.2.1 Analise de um programa . . . . . . . .
2.3 Raz do tipo secante . . . . . . . . . . . . . .
2.3.1 Metodo da secante . . . . . . . . . . .
2.4 Quando a derivada e zero . . . . . . . . . . .
2.5 O metodo da tangente . . . . . . . . . . . . .
2.5.1 Como funciona o metodo da tangente
2.5.2 Quando o metodo nao funciona . . . .
2.5.3 A precisao do metodo . . . . . . . . .
2.6 Metodo da busca binaria . . . . . . . . . . . .
2.7 Encontrar razes, sumario . . . . . . . . . . .
2.8 Intersecao de graficos . . . . . . . . . . . . . .
3 Recursividade
3.1 exemplos . . . . . . . . . . . . . . . . . .
3.1.1 raz quadrada . . . . . . . . . . . .
3.2 Fundamentos da convergencia de iteradas
3.3 O algoritmo babibilonio e convergente . .
3.4 Exerccios . . . . . . . . . . . . . . . . . .
3.5 Solucao de alguns exercicios . . . . . . .

ii

.
.
.
.
.
.

.
.
.
.
.
.

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

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

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

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

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

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

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

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

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

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

1
1

.
.
.
.
.

10
18
21
26
26

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

28
29
30
37
44
44
47
49
57
62
63
64
65
70
74
77

.
.
.
.
.
.

82
82
88
89
91
93
94

4 Splines
4.1 Aproximacao polinomial classica . . . . . .
4.1.1 Analise de dois casos particulares . .
4.1.2 A solucao geral do problema . . . .
4.1.3 Interpolacao polinomial de Lagrange
4.2 Funcoes polinomiais por pedacos . . . . . .
4.2.1 sensor . . . . . . . . . . . . . . . . .
4.2.2 aproximacao . . . . . . . . . . . . .
4.3 Quase-splines . . . . . . . . . . . . . . . . .
4.3.1 polinomiais . . . . . . . . . . . . . .
4.4 Valor medio integral . . . . . . . . . . . . .
4.5 Splines c
ubicos . . . . . . . . . . . . . . . .
4.5.1 convolucao . . . . . . . . . . . . . .
4.5.2 suporte compacto . . . . . . . . . . .
4.6 Solucao de alguns exercicios . . . . . . . .
4.7 Vocabulario . . . . . . . . . . . . . . . . . .
5 Integral aproximada
5.1 soma de Riemann . . . . . . . . . . . .
5.1.1 Integracao geometrica. . . . . .
5.1.2 Somas de Riemann . . . . . . .
5.2 Integral no sentido de Riemann . . . .
5.2.1 propriedades da integral . . . .
5.2.2 Calculo numerico da integral
5.3 trapesio . . . . . . . . . . . . . . . . .
5.4 polinomios . . . . . . . . . . . . . . . .
5.4.1 Apresentacao do metodo . . . .
5.4.2 Integral num sub-intervalo . . .
5.5 quasi-splines . . . . . . . . . . . . . . .
6 E.D.O.
6.1 Metodo de Euler . .
6.2 Metodo de Taylor . .
6.2.1 segundo grau
6.2.2 grau maior do

. . . . . .
. . . . . .
. . . . . .
que dois .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

101
102
105
115
124
126
127
129
135
135
137
142
144
151
158
163

.
.
.
.
.
.
.
.
.
.
.

169
170
170
171
178
180
183
189
191
192
192
199

.
.
.
.

200
203
207
207
208

Indice Remissivo Alfab


etico

211

Bibliografia

211

iii

Lista de Figuras
1
3

Ret
angulos para aproximar uma integral
Uma aproximaca
o spline de uma curva.

1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10

A pedra, quando o cord


ao se rompe

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

Razes de f no intervalo [, ]
Partica
o do intervalo I
. . .

3.1
3.2
3.3
4.1
4.2

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

ix
xi

. . . .
Taxa de variaca
o . . . . . . . . . . . . .
Dados obtidos com um sensor . . . . . . .
Dados obtidos por um sensor mais preciso .
Curva que interpola os dados . . . . . . .
interpolaca
o n
ao linear . . . . . . . . . .
Qual pode ser o gr
afico de f ? . . . . . . .
grafico de f analisando f . . . . . . . . .
Dados amostrais
. . . . . . . . . . . . .
Reta tangente ao gr
afico de f . . . . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

2
2
5
6
7
8
9
17
18
20

. . . . . .
. . . . . .
Malha sobre uma regi
ao do plano . . . .
V
arios representantes da u
nica raiz
. . .
O m
etodo das secantes . . . . . . . . .
Fluxograma - m
etodo da secante . . . . .
Num ponto de tang
encia, tipo parab
olico .
Quando a derivada
e zero . . . . . . . .
Uma sequ
encia de retas tangentes... . . .

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

a
rea limitada por duas curvas

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

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

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

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

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

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

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

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

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

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

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

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

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

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

29
32
35
40
48
54
60
62
63
65
78
80
81
81

Determinaca
o de 10 . . . .

Ponto inicial menor do que a

Ponto inicial maior do que a

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

87
91
92

.
.
.
.
.
.
.
.
.

Duas tangentes se reproduzindo indefinidamente


Interseca
o de curvas . . . . . . . . . . . . . .
Regi
ao cuja a
rea queremos calcular
a
rea limitada por duas par
abolas

. . . . . . . . . . . . . . . . . . . . . 103
. . . . . . . . . . . . . . . . . . . . . . . . 104

Uma reta interpola dois pontos


A reta e o fen
omeno real

iv

4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
4.13
4.14
4.15
4.16
4.17
4.18
4.19

Duas soluco
es do problema homog
eneo
O teorema do m
odulo m
aximo . . . .

. . .
. . .
Aproximaca
o linear por pedacos - 1-spline .
interpolaca
o polinomial dos pontos . . . . .
Polin
omio de Lagrange . . . . . . . . . .
Aproximaca
o de uma funca
o . . . . . . . .

4.20

Regularizaca
o por convoluca
o

5.1
5.2
5.3

Trap
esios para aproximar a
rea
Soma de Riemann . . . . . .

5.4
5.5
5.6

a
rea do trap
esio
e uma m
edia aritm
etica

6.1
6.2
6.3

Uma poligonal-soluca
o aproximada
O m
etodo de Euler - uma poligonal

.
.
.
.
.
.

.
.
.
.
.
.
Derivada, tangente e Teorema do Valor m
edio .
Uma funca
o positiva cuja integral
e1 . . . . .
Definica
o geom
etrica - produto de convoluca
o
.
O significado geom
etrico de tr
es valores . . . .
Correca
o pelo valor m
edio numa vizinhanca de c
M
edia viciada . . . . . .
N
ucleos ou pulsos unit
arios

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

quadrado de convoluca
o da funca
o caracterstica
2-splines . . . . . . . . . . . . . . . . . . .

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

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

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

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

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

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

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

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

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

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

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

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

Comparaca
o: polin
omio de Lagrange e splines .
Comparaca
o: polin
omio de Lagrange e splines - quando os n
os ficam uniformente pr
oximos.

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

106
107
109
112
118
130
134
143
144
146
147
148
152
154
166
167

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
. . . . . . . . . . . . . . . . . . . . . . 168

. . . . . . . . . . . . . . . . . . . . . . 172
. . . . . . . . . . . . . . . . . . . . . . 173
R3 2
ret
angulos da soma de Riemann para
x + 2x + 1 . . . . . . . . . . . 185
3

. . . . . . . . . . . . . . . . . 190
. . . . . . . . . . . . . . . . . . . . 197
Modelagem com polin
omios por pedacos . . . . . . . . . . . . . . . . . 198
Gr
afico do polin
omio por pedacos

soluca
o aproximada de y = yx

. . . . . . . . . . . . . . . . . . . 202
. . . . . . . . . . . . . . . . . . . 204
. . . . . . . . . . . . . . . . . . . . . 206

Introdu
c
ao
Faca apenas uma leitura superficial desta introducao como primeira leitura.
Volte a le-la depois mais algumas vezes ate que ela lhe pareca mais clara. No
incio sera difcil entende-la por completo, porque ela fala de assuntos que ser
ao
objeto do trabalho do livro. Mas, ainda assim, o seu lugar e aqui mesmo, no
incio....
O autor deste livro sente responsabilidade com @ leitor@ e quer disponibilizar material complementar que incluir no texto o deixaria demasiado longo.
Para isto ha uma pagina na Internet em que o material complementar do livro
pode ser encontrado, entretanto os links para paginas na Internet podem mudar e o endereco do autor e mais estavel, havendo dificuldade com algum link,
me envie um e-mail para tarcisio@member.ams.org, mas nao se esqueca de que
eu nao posso lhe dar cursos particulares via e-mail, use este recurso de forma
cuidadosa.
Ha duas areas muito produtivas e com objetivos e metodos diferentes em que
se utiliza o computador para fazer Matematica ou para aplicar Matem
atica:
Matem
atica aplicada e computacional, e a terminologia brasileira, que ainda
se chama de computaca
o cientfica; Um ramo da matem
atica aplicada e
computacional e an
alise numerica que e onde se encontra a nossa disciplina, o c
alculo numerico.
O nosso trabalho se enquadra, portanto, nesta area, computaca
o cientfica
e neste caso os programas que usamos como auxiliares, neste livro s
ao
scilab, gnuplot, calc, e algumas linguagens de programacao como C,
C++, Python. Todos estes itens podem ser, em geral, encontrados nas
distribuicoes Linux.
alculo
Computaca
o algebrica que tenta, com razoavel sucesso, substituir o c
aproximado pelo c
alculo formal. Representantes deste trabalho s
ao
Maxima um pacote de computacao algebrica de domnio p
ublico que
em geral e encontrado nas distribuicoes de GNU/Linux ;

Pari um pacote de computacao algebrica voltado para Algebra,


de
domnio p
ublico;
MuPad um pacote de computacao algebrica publicado por um grupo
de matematicos da Universidade Paderborne (Alemanha) que e distribuido com uma licenca amigavel para usuarios individuais, mas
normalmente vendido;
Maple um pacote de computacao algebrica publicado por um grupo
de universidades do Canada e Estados Unidos, que e vendido por um
preco nao muito acessvel;
Reduce que e semelhantes ao MuPad, do ponto de vista de distribuic
ao;

vi

e ha outros que sao francamente comerciais e nao vemos razao para cit
a-los
aqui. A sintaxe usada no Maxima, MuPad, Maple e muito semelhantes,
de modo que quem ja usou algum deles, facilmente migra para outro, e
naturalmente, sugerimos que se migre para Maxima que e distribuido sob
GPL.
Metodologia de comunicacao
O texto e completado com observacoes de dois tipos. Um dos tipos se chama
claramente observacao, o outro sao as notas de rodape.
Voce deve ler as observacoes na ordem em que elas aparecerem, mas sem lhes
dar muita importancia numa primeira leitura. Em geral elas sao apresentadas
com letra pequena, para salientar o fato de que voce lhe deve dar pouca atenc
ao,
numa primeira leitura.
Para lhe permitir uma busca mais acurada de informacoes, o livro tem um
ndice remissivo alfabetico, ao final, em que todos os conceitos que surgem nas
observacoes se encontram indexados, de forma que voce podera facilmente retornar a eles quando achar necessario. Tambem se encontram indexadas todas
as palavras-chave do texto.
Quando falamos usamos encenacao para completar o sentido das palavras
usadas no discurso: mexemos as maos, o corpo e alteramos a entonac
ao da
voz. Para suprir um pouco deste teatro usaremos uma convencao tipogr
afica:
texto em it
alico representa material que voce deve olhar com cuidado, possivelmente nao esta definido ainda e estamos usando a concepcao intuitiva do termo.
Quando usarmos texto tipogr
afico estaremos fazendo referencia a um termo
tecnico ja definido anteriormente ou considerado bem conhecido como tal. As
palavras da linguagem C serao escritas no estilo tipogr
afico. Quan-do usarmos letra pequena estamos lhe querendo dizer que o assunto e polemico e que ha
muito mais coisa para ser dito do que estamos conseguindo dizer naquele momento. Usamos texto sublinhado para chamar sua atencao de um detalhe que
poderia passar desapercebido, tem o mesmo sentido texto em negrito.
O que e Calculo Numerico
Acima dissemos que este livro e sobre Calculo Numerico e queremos agora
dizer-lhe qual e o planejamento do nosso trabalho, porque ha muitas formas de
desenvolver esta disciplina e nos vamos escolher uma que nao precisa ser melhor
do que qualquer outra, apenas traduz a nossa preferencia. Se voce gostar do
nosso trabalho, insistiremos em que leia outros autores para completar a sua
visao.
De uma forma simplificada e repetir o Calculo Diferencial e Integral calculando, aproximadamente, aquilo que e obtido formalmente na outra
disciplina;
Resolver, numericamente, algumas questoes que o Calculo consegue apenas mostrar que tem solucao; Por exemplo;
determinacoes de valores, n
umeros, raizes de equacoes para os quais
o calculo formal pode ser longo ou muito complexo, isto e feito aqui
no captulo 0.
vii

criacao de modelos semi-formais para representar dados de um fen


omeno,
este e o objeto do captulo 0 mas o captulo 0 tambem representa este
item.
calculo de algumas integrais para as quais nao existem formulas, este
e objeto do captulo 0.
solucoes aproximadas de equacoes diferenciais, isto e feito aqui, muito
moderadamente, no captulo 0, e somente uma introducao.
Associar uma linguagem de programacao, ou pacotes computacionais para
realizar o projeto acima descrito.
Vamos discutir detalhadamente cada um dos topicos que levantamos an preciso lembrar que nao e facil explicar o desconhecido e ate
teriormente. E
poderiamos questionar a validade de uma introducao como esta.
A ideia de tentar explicar o que faremos tem sentido ainda assim, porque
em parte estamos falando de topicos que os leitores deste livro ja estudaram,
no Calculo Diferencial e Integral e cujos aspectos esta disciplina ira desenvolver
com outro objetivo. Mas estamos nos referindo a itens novos tambem e a raz
ao
e lhe oferecer um plano do trabalho.
Suas perguntas, entretanto, podem fornecer ao expositor ganchos valiosos
na tentativa de deixar as coisas mais claras. O autor tambem se sentir
a agradecido se os leitores tiverem a bondade de lhe mostrar o que n
ao gostaram no
texto.
Razes de uma funcao
Este e o assunto do captulo 0.
Para a determinacao das razes de uma funcao vamos fazer uso de programas que apresentaremos resumidamente no texto. Os programas se encontram
disponveis em endereco citado na biliografia.
A busca de razes e um assunto que nao e diretamente discutido nos Cursos
de Calculo.
Calculo de integrais
O c
alculo de integrais e um dos itens mais importantes do Calculo Diferencial
e Integral. Sua importancia supera a propria conceituacao da integral, como
caculo de area ou volume.
A integral e um metodo que se insere em outras definicoes, um exemplo bem
simples disto sao os conceitos qualificados com quantidade de, como e o caso
de
quantidade de movimento;
quantidade de exposicao `a irradiacao;
n
umero de moleculas ou virus em determinado vetor.
Aqui ha duas versoes do problema:
ha integrais que nao sabemos calcular formalmente,
viii

ou, mesmo sabendo, o calculo formal e muito complexo ou longo para


certas aplicacoes, como nas telecomunicacoes, por exemplo.
e o resultado e que se torna mais pratico calcular estas integrais aproximadamente.
Um dos instrumentos para o calculo aproximado de integrais e a Soma de
Riemann. Como instrumento, esta longe de ser o melhor, mas os metodos
melhores usam-na como metodo auxiliar. Porisso comecaremos por discut-la.
Veja na figura (fig. 1), o que e uma soma de Riemann.
Soma de Riemann para f; passo=0.2
10
data
8

-2
-3

Figura 1:

-2

-1

Ret
angulos para aproximar uma integral

Nela voce pode ver o domnio de integracao subdividido em diversos intervalos e um retangulo associado a cada um destes sub-intervalos.
A soma das areas dos retangulos e uma aproximacao para a integral desejada.
Que precisamos para fazer este calculo ? Quais sao as tecnicas envolvidas no
calculo de uma integral usando Somas de Riemann ?
Uma colecao de retangulos, devidamente dimensionados, representam uma
area que aproxima a area de uma determinada funcao.
Um programa de computador permite o calculo rapido de somas e portanto
cria as condicoes para que usemos retangulos com bases nfimas o que nos
conduz a uma grande aproximacao.
Analise e controle de variacao
Um exemplo tpico, e bem atual, e o da qualidade da corrente eletrica que
uma determinada instituicao, um hospital, por exemplo, recebe da rede p
ublica
(manipulada por empresas privadas...) Veja o grafico na figura (fig. ??),
Como se poderia tratar este problema ? Qual e o problema ? quais s
ao as
ferramentas ?
Surpreendemente, ha uma superposicao de tecnicas a serem usadas aqui e
no problema que discutimos anteriormente. Mas ha tecnicas novas tambem.
Vamos rapidamente analisar o que precisamos.
Deixando de lado a coleta de dados, que deveria ser feita por uma placa
apropriada instalada em um computador, vamos resolver o problema a partir
ix

dos dados colhidos. Estamos indicando ao lado de cada uma das etapas o
departamento cientfico responsavel pela mesma. Chamamos isto de divis
ao do
trabalho.
1. Leitura e digitalizacao de dados anal
ogicos recebidos da placa coletora de
dados (a digitalizacao pode ser trabalho da placa); (Computaca
o, Engenharia Eletrica )
2. Calculo da variacao da tensao criando uma serie temporal com estes dados;
(C
alculo Numerico e Estatstica)
3. Comparacao dos piques de tensao com valores maximais selecionados como
suportaveis. (C
alculo Numerico Engenharia eletrica)
4. Decisao, em tempo real, sobre conexao ou desconexao de aparelhos, com
desvio para nobreakes ou outro tipo de alimentacao de seguranca. (Computaca
o e Engenharia Eletrica);
5. O calculo de uma integral faz o registro do consumo da energia eletrica
recebida... (quantidade de energia que passou pela placa controladora),
calcula medias, desvios. (C
alculo Numerico
Tangente, derivadas.
Para que servem.
Examine a figura (fig. 1.1), pagina 2. Tangentes e derivada servem pelo
menos para colher mangas maduras de arvores. Mas podemos, partindo deste
exemplo, atingir um uso mais sofisticado. Como poderiamos colher mangas
maduras usando derivada ? Indiretamente, e claro.
A figura (fig. 1.1) sugere alguma coisa. Queremos lancar uma pedra, amarrada a um cordao, de modo que o cordao fique preso proximo a um conjunto
de mangas. Rodamos a pedra preza ao cordao ate que ela atinja uma velocidade angular razoavel. Quando a pedra, em seu caminho sobre o crculose
encontrar na posicao adequada, soltamos o cordao que ir
a acompanhar a pedra
se alojando entre as mangas. Usamos o coeficiente angular instaneo da pedra
percorrendo o crculopara escolher a direcao certa.
O mecanismo e o mesmo quando um computador vai dirigir a trajet
oria de
um foguete. Com as informacoes guardadas na memoria do computador sobre o
mapa da Terra em sua orbita, o computador calcula a cada milesimo de segundo
qual deve ser o coeficiente angular relativo do eixo do foguete e desta forma vai
corrigindo a rota que levara a nave ao seu destino.
O piloto automatico dos grandes avioes comerciais fazem algo parecido. Ao
partir o piloto humano coloca o aviao na direcao do aeroporto de destino. O
piloto automatico vai medindo o erros de rota impostos pelo fluxo do ar e calculando a direcao para corrigir o erro.
Aproximacao polinomial de curvas
As funcoes nos fornecem dados dinamicos sobre diversos fenomenos. Mas
nem sempre a natureza se conforma `a matematica como nos gostariamos...

A solucao e fazermos aproximacoes para os fenomenos naturais. Ha diversos


tipos de aproximacoes vamos analisar uma delas aqui, splines.
Splines sao uma melhora consideravel dos polinomios de Taylor. Precisaremos deste assunto de Calculo para desenvolver esta forma de aproximac
ao que
uma aproximacao polinomial por pedacos. A figura (fig. 3) ilustra este tipo de
aproximacao usando polinomios do primeiro grau o que resulta numa poligonal.
O objetivo do curso
Discutir os problemas
180
data
do Calculo Diferencial e
160
140
Integral de modo a en120
contrar solucoes aproxi100
madas para este proble80
mas.
60
Questionar a validade
40
20
destas aproximacoes.
0
Criar a sensacao de
-20
-20
-15
-10
-5
0
5
10
15
20
que a solucao exata pode
ser um mito.
Linguagem de programacao
Vimos que metodos com- Figura 3: Uma aproximacao spline de uma curva.
putacionais sao essenciais para desenvolvermos as aproximacoes.
Os alunos, seja do curso de Computacao, ou do curso de Matem
atica ou
das Engenharias, ja deveriam conhecer uma linguagem de programacao, a esta
altura.
Infelizmente isto raramente e verdade.
Mas achamos que e preciso forcar a barra, como temos feito com os nossos
alunos de Calculo Numerico, com resultados positivos: ao final do segundo mes
de aula a maioria deles ja sabe fazer programas e inclusive planejar um pequeno
pacote, claro, isto pressupoe que eles tenham acesso a computadores.
Na metologia que temos empregado os programas crescem de nvel de modo
que, se o aluno se empenhar em entende-los, ficara gradualmente no nvel dos
mesmos.
Nas duas ou tres primeiras semanas temos mantido a preocupacao de explicar
detalhadamente os programas.
Mas aos poucos vamos deixando que o leitor comece a voar sozinho...obviamente,
na companhia de um bom livro sobre uma linguagem de programacao, e tambem
sob a hipotese de que ele ira encontrar sempre um hackera sua volta no laboratorio de computacao de modo a lhe tirar algumas d
uvidas (e lhe implantar
mais uma dezena...).
Vamos adotar a linguagem C, mas ninguem deve se sentir obrigado a nos
acompanhar nesta escolha. Use o que houver `a sua mao, aquilo que ficar mais
facil, mas que os alunos aprendam a programar.
As linguagens de programacao de um certo tipo todas se parecem de formas que quando apresentarmos um programa em C facilmente ele poder
a ser
transformado para a linguagem preferida do leitor.
xi

Como e que se aprende uma linguagem ?


Primeiro que tudo metendo a cara, depois perguntando muito a quem j
a sabe
um pouco mais, e sem dar muita importancia ao semblante de incomodado que
algumas pessoas possam fazer... quem sabe um pouco mais, aprendeu perguntando aos outros. Pergunte! incomode inclusive o professor! use o seu endereco
eletr
onico para tirar suas d
uvidas, mas nao se esqueca de que sera o seu esforco
pessoal que sera decisivo.
Procure economizar a paciencia dos outros, tente descobrir voce sozinho
como fazer as coisas. Este e seguramente o melhor aprendizado: quando voce
mesmo descobre.
Estamos convencido de que o uso de computacao no ensino de Matem
atica
enriquece fortemente a experiencia do aluno porque permite introduzir uma
dinamica que giz e quadro na conseguem mais gerar ante uma nova mentalidade
gr
afica que esta presente em nos todos.
Isto vale para qualquer outra profissao e nos nao tentariamos convencer os
alunos de computacao desta verdade.
Vamos listar algumas linguagens de programacao parecidas com C
1. Pascal, e voce certamente vai encontrar [18] na biblioteca que lhe pode
conduzir a dominar esta linguagem.
2. Python, e uma linguagem de domnio p
ublico que se encontra disponvel
em todo sistema Gnu/Linux. Nestes sistemas voce encontra um tutorial
sobre esta linguagem no diretorio /usr/doc/python/tutorial.
3. Java, praticamente de domnio p
ublico, se encontra disponvel em todo
sistema Gnu/Linux
4. Computacao Algebrica.
Domnio p
ublico ou relativamente livres MuPad, Reduce, Maxima

Comerciais - nao aconselhamos! Maple, Derive

5. Calculo Numerico, dom


nio p
ublico SciLab Octave
6. Calculo Numerico, comercial MatLab. Scilab, Octave fazem tudo que
MatLab faz.
Os programas distribuidos sob o GPL, General Public License, sao de excelente qualidade. Ninguem mais precisa, hoje, pagar, para ter um computador
funcionando, alem do preco da maquina... Este livro, todos os programas que o
acompanham, todo o trabalho de pesquisa do autor, se desenvolve inteiramente
com programas de domnio p
ublico rodando em ambiente Linux.

xii

Captulo 1

A derivada aproximada
A taxa de variacao de f e uma das informacoes mais importantes
que podemos ter sobre um fenomeno descrito por f . O Calculo
Diferencial e Integral define a derivada, usando o limite da taxa
de variacao ou a taxa de variaca
o instant
anea
A taxa de variacao e definida por um quociente de diferencas e
esta e a definicao basica que iremos usar neste captulo.

1.1

Quociente de diferencas
Uma funca
o f
e diferenci
avel se em cada ponto do domnio o gr
afico
graf (f ) tiver uma reta tangente
A reta tangente no ponto (a, f (a) tem um coeficiente angular m e n
os diremos
que f (a) = m. A funca
o derivada, f
e uma outra funca
o que descreve as
derivadas de f e portanto as taxas de variaca
o instant
aneas de f . No C
alculo
dizemos que a derivada define a reta tangente ao gr
afico, aqui preferimos
inverter a forma de falar porque vamos criar modelos, funco
es, a partir de
dados amostrais e a taxa de variaca
o ser
a frequentemente um desses dados
amostrais.

Este primeiro captulo e dedicado a uma revisao do Calculo Diferencial e


Integral e de programacao como um alerta daquilo que voce precisa saber para
o desenvolvimento dos demais captulos.
Observe a figura (fig. 1.1) em que estamos simulando o que acontece com
uma pedra que alguem esteja rodando presa a um cordao e que, num certo
momento, o cordao (provavelmente podre) se rompa. A pedra memoriza o
u
ltimo coeficiente angular que o seu movimento tinha sobre o crculo e segue
em movimento uniforme n
ao acelerado1 pela reta tangente.
Assim o coeficiente angular da reta tangente e o coeficiente angular instantaneo da trajetoria da pedra no crculo.
1 falso,

obviamente, porque a aceleraca


o da gravidade est
a presente

CAPITULO 1. A DERIVADA APROXIMADA

Aqui se quebrou
o cordo

Ao se quebrar o cordo, a pedra sai pela tangente

Figura 1.1:

A pedra, quando o cord


ao se rompe

Se f representar a parte da equacao do crculo onde vemos a pedra ainda


presa ao cordao, e t1 for o valor do parametro no ponto em que o cord
ao se
rompeu, entao
f (t1 ) e a derivada de f no ponto (t1 , f (t1 )))

(1.1)

Para dizer o mesmo que dissemos acima, o professor de Calculo considera


a seguinte figura (fig. 1.2) em que podemos ver uma reta tangente e tres retas
Tangente e uma sucesso de secantes

a+h

(f(a+h)f(a))/h
Taxa de variao

Figura 1.2:

Taxa de variaca
o

secantes. As retas secantes sao aproximaco


es da tangente.
Na figura (fig. 1.2) estao indicados apenas dois valores para o par
ametro
a, a + h mas temos al as secantes correspondentes a tres valores: a1 , a2 , a3 e o
o calculo do coeficiente angular, das secantes, e feito assim:
m1 =
m2 =

f (a1 )f (a)
a1 a
f (a2 )f (a)
a2 a

(1.2)
(1.3)

CAPITULO 1. A DERIVADA APROXIMADA

m3 =

f (a3 )f (a)
a3 a

(1.4)

Quanto mais proximo estiver ai de a mas preciso sera o valor do coeficiente


angular da secante, relativamente ao desejado coeficiente angular da tangente.
Veja mais abaixo onde estamos explicando um metodo pratico para cortar
um crculo em um folha de papel como um exemplo do que e aproximaca
o.
O coeficiente angular da tangente e o limite das taxas de variacao. Como
nem sempre podemos calcular o limite, seja recortando crculos em papel (ou
colocando foguetes em orbita), muita vezes temos que nos contentar com o coeficiente angular de uma reta secante, tentando minimizar o erro disto decorrente,
ou tentando corrigir o erro ao longo do processo.
Relembrando a equacao da reta tangente
f (x1 )f (a)
f (a)
x1 a
f (x1 )f (a)
= m = f
= a (f )
x1 a
x

y1 y0 = f (x1 ) f (a) = m(x1 a)


f (x) f (a) = f (a)(x a) + o(x a)
f (x) f (a) f (a)(x a)
y f (a) = f (a)(x a)

(1.5)
(1.6)
(1.7)
(1.8)
(1.9)
(1.10)

Vamos parar um pouquinho nas u


ltimas equacoes.
A equacao 7 representa a relacao entre os lados de um triangulo sobre a
reta secante que passa nos pontos (a, f (a)), (x1, y1 ).
As equacoes 8 e 9 sao equivalentes, representam a aproximacao que a
reta tangente fornece para os valores de f . Na equacao 8 o erro est
a
representado com a notacao o(x a), o o pequeno de Landau2
Na equacao 8 estamos indicando com o termo corretor o(x a) que a
equacao da reta fornece o valor de f (x) com este erro: o(x a)
Au
ltima equacao, 10, e simplesmente a equacao da reta tangente:
y b = m(x a) ; b = f (a), m = f (a)
Escrevemos a equacao 8 com o termo corretor, o(x a) porque a express
ao
y f (a) = f (a)(x a)

(1.11)

e a equacao de uma reta e o grafico da funcao nao precisa ser uma reta3 ent
ao a
igualdade representada pela reta esta errada e e isto que estamos representando
uma forma pratica de indicar que existe
com o termo de correcao o(x a). E
um erro sem precisar entrar no detalhe do valor do erro.
2 A nota
ca
o dos o s de Landau nos ajudam a falar de aproximaca
o de uma forma pr
atica
escondendo a precis
ao, veja mais a respeito no ndice remissivo
3 compare as equa
co
es 8 e 10

CAPITULO 1. A DERIVADA APROXIMADA

Observa
c
ao 1 Porque falar em aproximaca
o
Falaremos seguidamente de aproximaca
o, neste livro. Podemos dizer que
Calculo Numerico faz de forma aproximada o que o C
alculo Diferencial e Integral diz que faz exatamente.
Porque falar que as secantes sao aproximacoes da tangente?
Veja a seguinte experiencia que voce certamente j
a fez4 .
Suponha que voce deseje recortar um crculo em papel. A geometria nos
ensina que as tangentes a um crculo s
ao perpendiculares ao raio. Assim, se

Posio da tesoura,
perpendicularmente,
ao raio do crculo

quisermos recortar um crculo em papel, devemos marcar o centro e ir mantendo


a tesoura a dist
ancia constante do centro e sempre perpendicular a uma reta
(imaginaria...) que parte do centro.
Mas, quando voce aciona a tesoura, voce corta um pequeno segmento de
reta, que dizer que voce est
a na verdade recortando um polgono com um n
umero
de lados t
ao grande que lhe parece que o resultado e um crculo.
Voce n
ao est
a cortando tangentes, mas sim secantes. Mas voce queria que
fossem tangentes.
O resultado e uma aproximaca
o e voce, em geral, ficar
a satisfeito com ela.
Mas n
ao e apenas uma situaca
o t
ao simples quanto recortar crculos em papel
que nos interessam. H
a situaco
es bem mais importantes, como como colocar
um satelite em o
rbita para tornar possvel as comunicacaco
es. O metodo e bem
parecido com o da construca
o de crculos em papel com tesoura. No captulo
final, quando discutirmos equacoes diferenciais, estaremos mostrando como e
parecido, recortar crculos em papel, e colocar um foquete em o
rbita em que um
computador, substituindo a tesoura, estar
a corrigindo a trajet
oria do foquete
e fazendo-o percorrer pequenos segmentos de reta de algumas centenas de
kil
ometros. Corrigindo assim a trajet
oria para que o foguete atinja uma o
rbita
(elptica ) desejada. Portanto, para aprender a colocar foguetes em o
rbita no
u
ltimo captulo, v
a logo treinando com papel, tesoura e crculos...
O Calculo Diferencial e Integral algumas vezes deixa uma sensacao de que
derivadas e integrais podem ser sempre calculadas exatamente. O Calculo tem a
sua funcao e aqui nos temos a nossa de corrigir o otimismo do Calculo. Vejamos
4e

se n
ao tiver feito, use a primeira oportunidade para executar a experi
encia que estamos
aqui relatando...

CAPITULO 1. A DERIVADA APROXIMADA

no seguinte exemplo como podemos usar derivadas aproximadas como a u


nica
opcao disponvel.
Exemplo 1 Sensor e levantamento de dados
Veja na figura (fig. 1.3) p
agina 5,

Dados amostrais

x
1

2
Figura 1.3:

x4

Dados obtidos com um sensor

Lendo a figura podemos dizer, sobre o fen


omeno descrito, que
houve um descrescimento de x1 para x2 ;
de x2 em diante o fen
omeno apenas cresceu;
houve um crescimento consider
avel entre x3 para x4 ;
o crescimento entre x4 para x5 foi relativamente reduzido.
Mas esta impres
ao visual poderia ser tornada efetiva se usassemos um sensor
de geraca
o mais recente que fosse capaz de fazer micro medicoes ao redor de cada
ponto, veja na figura (fig. 1.4) p
agina 6,
Na figura (fig. 1.4) estamos indicando que, em cada um dos pontos que o
sensor mediu, ele tambem fez tres medico
es a pequenos intervalos de tempo.
Estas micro-medico
es nos permitem calcular a taxa de variaca
o do fen
omeno
em cada um dos pontos:
f (x12 )f (x11 )
x12 x11
f (x22 )f (x21 )
x22 x21

;
;

f (x13 )f (x12 )
x13 x12
f (x23 )f (x22 )
x23 x22

(1.12)
(1.13)

CAPITULO 1. A DERIVADA APROXIMADA

Dados amostrais refinados

x
51

x
1

x4

52

53

foram tomadas trs medidas


medidas em cada um
x x
dos pontos:
x
i1

i3

i2

Figura 1.4:

Dados obtidos por um sensor mais preciso

f (x32 )f (x31 )
x32 x31
f (x42 )f (x41 )
x42 x41
f (x52 )f (x51 )
x52 x51

;
;
;

f (x33 )f (x32 )
x33 x32
f (x43 )f (x42 )
x43 x42
f (x53 )f (x52 )
x53 x52

(1.14)
(1.15)
(1.16)

Alem de sabermos o valor no ponto, podemos calcular a derivada aproximada


da funca
o que descreve o fen
omeno.
O C
alculo nos ensina que tudo pode ser descrito por alguma funca
o, e isto e
certssimo, apenas nem sempre as funco
es tem equaco
es algebricas que possamos
derivar. Algumas vezes tudo que sabemos sobre estas funco
es s
ao valores colidos
por um sistema de amostragem, como as figuras que acabamos de comentar
indicam.
Para terminar o exemplo, vejamos mais duas figuras. A figura (fig. 1.5)
p
agina 7, nos apresenta uma interpolacao linear dos dados, quer dizer, tudo
que sabiamos eram os valores obtidos em cada ponto, e os segmentos de reta
al desenhados nos sugerem qual poderia ser o valor do fen
omeno em pontos
intermedi
arios entre aqueles em que foram tomados medidas.
Veja agora na pr
oxima figura, (fig. 1.6) p
agina 8, em que, usando as taxas de variaca
o obtidas em cada um dos pontos, pudemos tracar uma curva
nao poligonal5 interpolante descrevendo melhor o que acontece nos pontos intermedi
arios.
5 retas,

s
ao curvas, poligonais, s
ao curvas, e tem curvas que n
ao retas...

CAPITULO 1. A DERIVADA APROXIMADA

Interpolao linear dos dados

x
1

2
Figura 1.5:

x4

Curva que interpola os dados

Vamos ver como fazer isto no captulo 0, esta curvas interpolantes ser
ao
pedacos de polin
omios.
Agora, com as taxas de variaca
o podemos descrever melhor o fen
omeno medido. Lendo o gr
afico contido na figura (fig. 1.6), podemos dizer
H
a um ponto de mnimo do fen
omeno entre os pontos x1 e x2 ;
o crescimento abrupto que parecia acontecer entre x3 e x4 de fato acontece
num pequeno pedaco deste intervalo, a partir do ponto medio.
tambem houve um crescimento abrupto pr
oximo do ponto x5 .
Observe que a interpolacao linear n
ao nos permitia tecer nenhuma dessas consideraco
es. Sem o conhecimento da taxa de variaca
o em cada um dos pontos, tudo
que podemos fazer e uma interpolaca
o linear que descreve um comportamento
uniforme entre os pontos em que as medico
es foram feitas.
Este exemplo nos mostra uma situaca
o bem concreta do dia-a-dia em que a
derivada formal seria in
util6 . A derivada tem que ser obtida aproximadamente
a partir de algumas medico
es finas tomadas em alguns pontos escolhidos.
O exemplo tambem nos mostra a import
ancia da derivada como informaca
o
complementar.
6 mas

se voc
e estiver deduzindo que o estudo do C
alculo
e in
util, engana-se. Precisamos
de teorias formais, para produzir a t
ecnica e as aproximaco
es, mas isto
e uma hist
oria mais
longa, envolva o professor nesta discuss
ao...

CAPITULO 1. A DERIVADA APROXIMADA

Interpolao no linear dos dados

x
1

foram tomadas trs


medidas em cada um
x
x
dos pontos:
i1

i2

Figura 1.6:

x4

i3

interpolaca
o n
ao linear

E o qual seria a taxa de variaca


o a ser considerada em cada um dos pontos?
Temos tres medidas, logo duas taxas de variaca
o.
Aqui entra em cena uma decis
ao tpica de quem cria modelos para fen
omenos.
A media e uma melhor opca
o, ela corrige possveis erros de medidas. Um
bom sensor tomaria n
ao tres medico
es mas certamente uma dezena de micromedicoes o que permitiria uma boa media.
Voltaremos a discutir interpolaca
o mais a frente.
Resumindo,
a (f ) = f
x representa o coeficiente angular de uma reta secante que
desejamos que seja uma aproximacao da reta tangente;
f (a) e o coeficiente angular da reta tangente ao grafico de f no ponto
(a, f (a)).
Usaremos, quando a tecnica nos permitir, o valor medio de uma colec
ao
de taxas de variacao, obtidas com micro medicoes, para representar (aproximar) f (a).
Nos exerccios seguintes, voce sera solicitado a calcular a derivada aproximada de funcoes cuja derivada voce sabe calcular exatamente. Desta forma voce
podera comprender melhor a derivada aproximada, comparando-a em casos em
que temos a derivada exata disponvel.

CAPITULO 1. A DERIVADA APROXIMADA

Exerccios 1 Derivada aproximada


Notaca
o a (f ) =

f (a+x)f (a)
x

1. micro medico
es Considere a funca
o f (x) = (x + 3) (x 4) e no ponto
x = 3 considere as micro-medico
es
(3, f (3)), (3.01, f (3.01)), (3.02, f (3.02)).
(3)
(3.01)
Calcule 3 (f ) = f (3.01)f
e 3.01 (f ) = f (3.02)f
e a media aritmetica
0.01
0.01
3 (f )+3.01 (f )

. Compare o resultado com f (3)


2

2. micro medico
es Repita a quest
ao anterior com o ponto x = 4 com x =
0.001
3. Sabendo que f (1) = 3, f (1) = 1 qual dos gr
aficos na figura (fig. 1.7)
p
agina 9, corresponde ao gr
afico de f . Justifique sua resposta.

f
f

Figura 1.7:

Qual pode ser o gr


afico de f ?

2
4. Calcule a (f ) = f
x com f (x) = x + 3x + 2 no ponto x = a e com os
valores de x indicados

x=a
1
2
1.5

x
0.1
0.1
0.1

x
0.01
0.01
0.01

x
0.001
0.001
0.001

5. Complete a tabela, calculando a diferenca (o erro) D = |f (a) a (f )| =


2
|f (a) f
x |x=a | com f (x) = x + 3x + 2.

CAPITULO 1. A DERIVADA APROXIMADA

x=a
1
2
1.5

x
0.001
0.001
0.001

10

|f (a) a (f )|

6. A seguinte listagem de valores foi obtido por um sensor para os valores de


na vizinhanca de um ponto. Calcule a derivada media.
a (f ) = f
x
0.99884447020655558927
0.99945892356272536761
0.99976592143543602562
0.99991936316018971376
7. Um sensor apresenta a seguinte sada de dados em que o primeiro valor
e f (a) e os quatro seguintes s
ao a (f ) = f
x na proximidades do ponto
x=a.
(a) Construa, gr
afica e algebricamente, a interpolacao linear dos dados.
(b) Construa, gr
afica e algebricamente, uma interpolacao nao linear da
amostragem com quatro dados obtidos pelo sensor em cada ponto.
a
1
0
1
2
3

a (f )(1)
0.667
0.002
0.812
2.926
5.895

a (f )(2)
0.701
0.001
0.774
2.861
5.816

a (f )(3)
0.719
0.000
0.755
2.828
5.776

a (f )(4)
0.728
0.000
0.746
2.812
5.756

f(a)
3
-5
-7
-14
-20

8. Faca um programa que liste os valores de a (f ) de de f (a) para alguns


valores de um um intervalo. Use um while() para controlar uma lista de
valores.
solu
c
ao derivadas.c, [20].

1.2

Quocientes de diferencas
de ordem superior
Se calcularmos a diferenca entre dois quocientes de diferencas sucessivos
2a (f ) =

a+x (f ) a (f )
x

estaremos obtendo uma aproximaca


o da segunda derivada.
Este
e um quociente de diferencas de segunda ordem.

Como nao podemos calcular a derivada formal, em nossos programas de


c
alculo numerico, resta-nos a tentativa com os quocientes de diferencas. Aqui

CAPITULO 1. A DERIVADA APROXIMADA

11

vamos discutir os quocientes de diferenca de segunda ordem


a+x (f )a (f )
=
x
(a)
(a+x)
f (a+x)f
( f (a+2x)f
x
x
(a+x)+f (a)
= f (a+2x)2f
x2

2a (f ) =

(1.17)
=)/x

(1.18)
(1.19)

Nao havendo d
uvida7 nos usaremos uma notacao mais simples para os quocientes
de diferenca de segunda ordem:
2 (f ) = 2a (f )

(1.20)

Enquanto que os quocientes de diferencas de primeira ordem sao razoavelmente precisos, quando passamos aos de segunda ordem, e preciso ter muito
cuidado com os resultados porque a precisao cai.
Veja seguinte listagem obtida com a funcao:
f (x) = (1 x2 )sin(x/4)
Usamos um programa feito em calc que tem uma sintaxe semelhante a da
linguagem C, e o programa deriva02.calc que voce pode encontrar em [20,
programas.tgz]. A listagem foi editada e resumida, voce pode rodar e alterar o
programa para ganhar mais experiencia. Nao tema extragar os programas, eles
estarao na pagina `a sua diposicao quando voce cometer erros e nao souber como
corrig-los, aprenda, tranquilamente, a alterar os programas.
O programa derivada02.calc produz uma sada de dados pronta para usar
em um texto com LATEX. Experimente a versao derivada03.calc que produz
o resultado no terminal.
As funcoes d2f() e ddf() sao idendticas.
ddf() calcula o quociente de primeira ordem da funcao df(), que calcula o
quociente de primeira ordem de f(), corresponde a equacao (17), d2f() calcula
diretamente o quociente de segunda ordem usando f(), corresponde a equac
ao
(19).
Intervalo [0, 10], passo 1, Delta = 0.000001
x
0
1
2
3
4
5
6
7
8
9

d2f
-0.000001520000
-1.463721700812
-2.624124797793
-3.217524857357
-3.055271491335
-2.051102544324
-0.237390644956
2.231711106131
5.090941230838
7.987785378986

ddf
-0.000001520000
-1.463721700812
-2.624124797793
-3.217524857357
-3.055271491335
-2.051102544324
-0.237390644956
2.231711106131
5.090941230838
7.987785378986

exata
-0.5
-1.463720340220
-2.185332631556
-2.485835877783
-2.244818686029
-1.420459396864
-0.060549895849
1.696970169472
3.634424528937
5.475087704277

7 (f ), um quociente de diferen
cas, e f = f (x2 ) f (x1 ), uma diferenca, como x =
x2 x1

CAPITULO 1. A DERIVADA APROXIMADA

12

Podemos ver nesta listagem erros da ordem de 300% no calculo aproximado


da derivada segunda, e o caso quando x = 6 ou de 3289% quando x = 0 o que
mostra que nao podemos confiar em calculos aproximados da segunda derivada
usando quocientes de diferenca. Mas veremos no captulo 0 que conseguimos
modelar com boa precisao dados discretos (obtidos com sensores) usando apenas aproximacoes da primeira derivada, esta sim, calculada com quociente de
diferencas.
No captulo 0 vamos usar do quociente de segunda ordem, apenas o numerador, quando estudarmos o problema,
f (x) = 0
veremos que assim e possvel contornar o problema deste erro, ao evitar o quociente, No momento certo voltaremos a discutir esta questao.
Exerccios 2 Revis
ao de C
alculo e computaca
o
oes de C
alculo e de computaca
o,
objetivo adquirir familiaridade com quest
necess
arias ao C
alculo Numerico Computacional. Conscientemente, ignore as
quest
oes que voce domina, o objetivo n
ao e perder tempo, mas ao mesmo tempo,
aprofunde e procure outras quest
oes parecidas com as que voce n
ao dominar para
aumentar a sua pr
atica.
O programa gnuplot e um pacote computacional para fazer gr
aficos, tem
tambem uma vers
ao que roda em windows que pode ser encontrada aqui, [13].
Nas revis
oes de programaca
o, voce pode usar em programas em Pascal, [18],
mas os programas que associados a este livro, que est
ao aqui, [20], foram escritos
em C ou em calc.
Voce quiser rodar programas em Pascal existe um compilador, gpc, para
Linux.
1. Equaca
o da reta que passa num ponto
(a) te
orica Escreva a equaca
o da reta que passa no (a, b) e tem coeficiente
angular m.
es das retas que passam no (a, b) com
(b) aplicaca
o Escreva as equaco
o coeficiente angular indicado, em cada item abaixo. Faca gr
aficos
procurando ser preciso. Voce pode usar gnuplot ou xfig para fazer
estes gr
aficos, mas deve indicar por escrito como fez.
no ponto
(a, b)
(1, 3)
(1, 3)

coef. angular
m
3
1

no ponto
(a, b)
(1, 3)
(1, 3)

coef. angular
m
1
2

(c) te
orica Escreva a equaca
o da reta que passa nos pontos (a1 , b1 ), (a2 , b2 ).
es das retas que passam nos pontos in(d) aplicaca
o Escreva as equaco
dicados em cada um dos itens abaixo. Para cada caso faca gr
aficos
precisos. Voce pode usar gnuplot ou xfig para fazer estes gr
aficos,
mas deve indicar por escrito como fez.

CAPITULO 1. A DERIVADA APROXIMADA

P1
(a1 , b1 )
(1, 3)
(1, 3)

P1
(a2 , b2 )
(1, 3)
(3, 3)

P1
(a1 , b1 )
(1, 3)
(1, 3)

13
P1
(a2 , b2 )
(3, 1)
(2, 5)

2. teoria Reta tangente ao gr


afico de uma funca
o F
ormula de Taylor. A derivada de uma funca
o nos fornece o coeficiente angular instant
aneo da
mesma no ponto:
f (a) e o coeficiente angular instant
aneo de f em (a, f (a))
o da
(a) te
orica F
ormula de Taylor - equaca
o da reta Escreva a equaca
reta que passa no (a, f (a)) e e tangente ao gr
afico da funca
o neste
ponto. Observe que voce deseja a equaca
o da reta que passa no ponto
(a, f (a)), com coeficiente angular f (a). Faca um gr
afico generico
mostrando o que acontece.
(b) Aplicaca
o - derivada algortmica

Derivar algortmicamente significa, para


este exerccio, evitar de fazer todas as contas, represente as contas, n
ao as faca
totalmente, deixe que a linguagem de programac
ao calcule por voc
e.

Para cada
item abaixo faca o gr
afico da funca
o e da reta tangente no ponto
(a, f (a)) indicado. Voce pode usar gnuplot ou xfig para fazer estes
gr
aficos, mas deve indicar por escrito como fez.
f (x) = (x + 3)(x 4)
f (x) = (x + 3)(x 4)
f (x) = (x + 3)(x 4)
f (x) = sin(x)(x + 1)
f (x) = sin(x)(x 1)(x 5)
f (x) = cos(x)(x + 3)(x 4)

a = 3
a=4
a = 0.5
a = 4
a = 2
a = 0.5

3. Altere o programa ex01.c para imprimir alguns n


umeros. Voce encontra
este programa aqui, [20, programas.tgz].
4. Altere o programa ex01.c para que ele escreva quatro termos de uma
progress
ao artimetica cujo primeiro termo seja 3 a ra
ao 4.
solu
c
ao: ex02.c
5. Faca um programa que escreva de 0 a 10, use um while().
solu
c
ao: ex03.c
6. Altere ex03.c para escrever os 10 termos de uma progress
ao aritmetica
de raz
ao 3.
solu
c
ao: ex04.c
7. Altere ex04.c para escrever os 10 termos de uma progress
ao geometrica
de raz
ao 2.
solu
c
ao: ex05.c

CAPITULO 1. A DERIVADA APROXIMADA

14

8. Altere ex05.c para escrever os 100 termos de uma progress


ao geometrica
de raz
ao 1.0005, os juros da simpl
oria cadernete de poupanca.
solu
c
ao: ex06.c
9. Altere o programa ex06.c colocando um if() dentro do while() controlando
um contador para permitir a visualizaca
o do sagrado capital sendo transformado na poupanca.
solu
c
ao: ex07.c
10. Escreva um programa que
(a) Produza uma progress
ao artimetica de raz
ao 0.5, primeiro termo 3 e
o n
umero de termos 10;
solu
c
ao: altere ex04.c
(b) Produza uma progress
ao artimetica de raz
ao 5, primeiro termo -3 e
o n
umero de termos 10;
solu
c
ao: altere ex04.c
(c) uma progress
ao geometrica de raz
ao 7% com primeiro termo 1000
e com 12 termos. Obtenha outra cuja raz
ao seja 0.5%. Uma delas
(qual ?) mostra como cresce sua dvida se voce usar cheque especial
ou cart
ao de credito.
solu
c
ao: altere ex07.c
11. Derivada aproximada O quociente
f (a + x) f (a)
f
=
f (a)
x
x

(1.21)

e uma aproximacao do valor da derivada de f no ponto x = a quando


x for pequeno. Os pr
oximos itens servem para que voce desenvolva a
sua intuicao com respeito a esta aproximacao, faca gr
aficos bem feitos
que permitam voce se convencer do seu significado, a precis
ao com que
os gr
aficos ser
ao feitos e parte essencial da quest
ao, um gr
afico mal feito
n
ao lhe indicar
a nada, use papel quadriculado (ou milimetrado). Se voce
usar gnuplot, ele lhe permite um zoom usando o bot
ao direito do ratinho
e voce poder
a ver assim o detalhe entre as duas retas.
(a) Considere f (x) = x2 2x 3 e encontre a reta tangente ao gr
afico
de f no ponto (1, f (1)). Faca o gr
afico.
solu
c
ao: derivada02 01.gnuplot, [20].
(b) Use x = 0.2, calcule o valor aproximado da derivada com este erro,
e obtenha a equaca
o da reta tangente no ponto (1, f (1)). Faca
o gr
afico.
solu
c
ao: derivada02 02.gnuplot

CAPITULO 1. A DERIVADA APROXIMADA

15

(c) Use x = 0.05, calcule o valor aproximado da derivada com este


erro, e obtenha a equaca
o da reta tangente no ponto (1, f (1)).
Faca o gr
afico.
solu
c
ao: altere derivada02 02.gnuplot
(d) Com f (x) = x2 2x 3 e encontre a reta tangente ao gr
afico de f
no ponto (3, f (3)). Complete o gr
afico anterior.
solu
c
ao: altere derivada02 02.gnuplot
(e) Use x = 0.2, calcule o valor aproximado da derivada com este
erro, e obtenha a equaca
o da reta tangente no ponto (3, f (3)).
Complete os gr
aficos anteriores.
solu
c
ao: altere derivada02 02.gnuplot
(f ) Use x = 0.05, calcule o valor aproximado da derivada com este
erro, e obtenha a equaca
o da reta tangente no ponto (3, f (3)).
Complete os gr
aficos anteriores.
solu
c
ao: altere derivada02 02.gnuplot
12. Faca um programa que imprima a derivada aproximada, por quociente de
diferencas, do item anterior. Aprenda a usar funca
o, em C,
solu
c
ao: derivadas.c
13. Para f (x) = x2 9
(a) Encontre as retas tangentes ao gr
afico de f nos pontos
(4, f (4)), (3, f (3)), (0, f (0))
Faca os gr
aficos.
solu
c
ao: altere derivada02 02.gnuplot
(b) Use x = 0.05, calcule o valor aproximado da derivada com este
erro, e obtenha a equaca
o da reta tangente nos pontos
(4, f (4)), (3, f (3)), (0, f (0))
Complete os gr
aficos anteriores.
solu
c
ao: altere derivada02 02.gnuplot
o f (x) = x3 3x2 9x + 2
14. Significado da derivada Considere a funca
(a) Calcule a derivada f .
(b) Encontre as razes de f e deduza os pontos extremos relativos f
(c) objetivo: Algumas vezes e mais f
acil fazer o gr
afico de f que o gr
afico
de f . Deduza um esboco do gr
afico de f do gr
afico usando o gr
afico
da derivada.

CAPITULO 1. A DERIVADA APROXIMADA

16

Solu
c
ao 1 A derivada da funca
o f (x) = x3 3x2 9x + 2 e uma funca
o
do segundo grau, cujos zeros sabemos calcular.
f (x) = x3 3x2 9x + 2
f (x) = 3x2 6x 9 = 0 = x2 2x 3

(1.22)
(1.23)

x = 2 24+12
=3=
x1 = 2+4
2

(1.24)
(1.25)

x2 = 1 =

(1.26)

As razes, x1 , x2 da derivada s
ao pontos de extremos de f , neste caso com
certeza porque s
ao zeros isolados de um polin
omio.
Temos duas maneiras de determinar se s
ao m
aximo ou mnimos. Uma
consiste em calcular a segunda derivada e verificar o sinal. Outra consiste
em verificar a variaca
o em volta do ponto.
Vamos usar o teste da segunda derivada. Lembrando a f
ormula de Taylor,
a segunda derivada representa a concavidade da funca
o e portanto mostra uma par
abola que lhe e semelhante no ponto. Se f (xi ) for positiva,
ent
ao f neste ponto lembra uma par
abola com com o vertice para baixo,
passando por um mnimo. Se for negativa passar
a por um m
aximo.
ponto
f (x1 )
f (x2 )

2a. derivada no ponto


12
-12

diagn
ostico
passa por um mnimo
passa por um m
aximo

valor no ponto
f (x1 ) = 25
f (x2 ) = 7

O esboco gr
afico de f pode ser visto na figura (1.8) p
agina 17,
Comandos do gnuplot usados na resoluca
o desta quest
ao
f(x) = x**3 - 3*x**2 - 9*x + 2
df(x) = 3*x**2 - 6*x - 9 ## x**2 - 2*x - 3 = 0
a1 = (2 + sqrt(4+12))/2.0
a2 = (2 - sqrt(4+12))/2.0
print df(a1)
print df(a2)
plot df(x),0
ddf(x) = 6*x - 6
print ddf(a1)
print ddf(a2)
set xrange [a2-2:a1+2]
plot f(x),df(x),0
plot f(x),df(x),0
set terminal post enhanced portrait
set output derivada_funcao01.eps
plot f(x),df(x),0

CAPITULO 1. A DERIVADA APROXIMADA

17

40
f(x)
df(x)
0

30

20

10

-10

-20

-30
-3

-2

-1

Figura 1.8:

grafico de f analisando f

o de uma reta (um tipo de modelo) que melhor


15. Modelo Encontre a equaca
represente os dados da tabela na figura (1.9) p
agina 18. Justifique sua
soluca
o;
Calcule o valor deste modelo no ponto x = 2. Calcule o valor medio
que estes dados representam usando a reta como modelo, e admita que o
intervalo de observaco
es e [10, 10].
solu
c
ao: calcule o valor medio das taxas de variaca
o e use este valor para
a equaca
o da reta.
afico do conjunto de pontos da tabela (1.9) e da
16. Teste do modelo Faca o gr
reta que voce encontrou para modelar os dados com gnuplot e verifique
assim se o modelo est
a adequado. Justifique a sua conclus
ao.

CAPITULO 1. A DERIVADA APROXIMADA

10
6
2
0
3
7
9

Figura 1.9:

1.3

18

28.6
15.4
2.2
4.4
11.7
22.5
27.9

Dados amostrais

Polin
omios de Taylor

Estudamos a equacao da reta tangente ao grafico de f no ponto (a, f (a)) e na


verdade quando comecamos a estudar esta questao o nosso exemplo, na figura
(fig. 1.1), pagina 2, nos dizia que nao era a reta tangente que nos deveria
interessar e sim a par
abola tangente. Vamos agora ver como podemos obter
uma par
abola tangente ao grafico graf (f ) no ponto (a, f (a)).
O metodo se parece com o que ja usamos para a reta tangente, foi porisso
mesmo que comecamos com este caso mais simples. Revendo o caso da reta
tangente,
y f (a) = f (a)(x a)
y = f (a) + f (a)(x a)

(1.27)
(1.28)

seriamos facilmente conduzidos ao erro de imaginar que a equacao da par


abola
8
tangente seria (esta errado)
y f (a) = f (a)(x a) + f (a)(x a)2
y = f (a) + f (a)(x a) + f (a)(x a)2

(1.29)
(1.30)

Para encontrar a formula correta, vamos inicialmente considerar um polin


omio
do segundo grau
P (x) = a0 + a1 (x a) + a2 (x a)2
(1.31)
desenvolvido no ponto x = a e vamos impor as condicoes que nos interessam,
para encontrar9 os coeficientes
a0 , a1 , a2
(1.32)

P (a) = f (a) a0 = f (a)


P (x) = a1 + 2a2 (x a)

P (a) = f (a) a1 = f (a)


P (x) = 2a2

(1.35)
(1.36)

f (a)
2

(1.37)

P (a) = f (a) a2 =
8 esta
9 os

(1.33)
(1.34)

f
ormula est
a errada!
coeficientes
e que s
ao as inc
ognitas deste problema....

CAPITULO 1. A DERIVADA APROXIMADA

19

Na equacao (33) estamos impondo a condicao de que o polinomio P passe


no ponto (a, f (a)). Na equacao (34) calculamos a derivada do polin
omio P
para impor a condicao, na equacao (35), que o polinomio P tivesse a mesma
derivada que f no ponto (a, f (a)). Derivamos, na equacao (36), o polin
omio P
para impor na equacao (37) que o polinomio tivesse a mesma derivada segunda
(curvatura) que a funcao f tem no ponto (a, f (a)).
Vemos assim que a formula correta para a equacao da parabola tangente ao
gr
afico graf (f ) no ponto (a, f (a)) e
f (a)
(x a)2
(1.38)
2
Compare a equacao errada 33 com a equacao correta 38 e veja que a diferenca
se encontra no metodo do calculo para o coeficiente do segundo grau:
y = P (x) = f (a) + f (a)(x a) +

a2 =

f (a)
2

Este exemplo tambem lhe mostra a razao pela qual a equacao do movimento
acelerado (caso da gravidade) e
g
v = s0 + v0 (t a) + (t a)2
2

(1.39)

em que t = a e o ponto considerado como incio do movimento.


Nos cursos de Calculo este topico aparece sob o nome de f
ormula de Taylor
afico
e vai bem alem na construcao de um polinomio de grau n tangente ao gr
de f no ponto (a, f (a)). A metodologia para obter esta formula e exatamente a
mesma que apresentamos acima, entretanto partindo do polinomio
P (x) = a0 + a1 (x a) + . . . + an (x a)n

(1.40)

ao qual se impoem, sucessivamente, as condicoes de tangencia. A conclus


ao e
que
f (n) (a)
(1.41)
an =
n!
e a voce deve observar que
2 = 2!, 1 = 1!, 1 = 0!

(1.42)

sao os denominadores dos termos em x2 , x, x0 .


Fizemos mencao ao erro existente entre a equacao da reta tangente ao
graf (f ) e os valores de f numa vizinhanca do ponto de tangencia, chamando-o
de o(x a).
Aqui usaremos a mesma notacao, porem o erro e, teoricamente, menor.
Infelizmente, quando passarmos aos calculos numericos este erro tende a
ser bem maior, desta maneira ha que ser prudente com o uso da aproximac
ao
polinomial do grau elevado. O fato e que em geral nos damos muito bem com
as aproximacoes do primeiro grau. No captulo 0 vamos ver que o grau ideal
para as aproximacoes polinomiais e o terceiro grau.

CAPITULO 1. A DERIVADA APROXIMADA

20

Aqui voce pode observar a crtica diferenca entre o calculo feito manualmente (e formalmente) e os calculos automaticos. Podemos atingir precis
oes
muito maiores com o calculo manual, mas possivelmente com um grande lapso
de tempo, nao esquecendo que nele estamos sujeitos a erros diversos. No entanto, no calculo automatico os computadores incluem outros tipos de erros
com a inevitavel aproximacao com que tem que trabalhar. A conclus
ao, nos
a repetiremos com frequencia, e temos que fazer os c
alculos com programas de
computador, mas temos que monitorar os resultados e saber analis
a-los criticamente para tirar o bom proveito que eles nos podem trazer.
No pen
ultimo captulo 0 iremos estudar aproximacao polinomial quando
necessitaremos que voce tenha uma boa pratica com do uso do polin
omio de
Taylor e de programacao, eis uma boa razao para lhe oferecermos logo uma
lista de exerccios.
Exerccios 3 Polin
omios de Taylor
ormula de Taylor. A derivada
1. Reta tangente ao gr
afico de uma funca
o F
de uma funca
o nos fornece o coeficiente angular instant
aneo da mesma no
ponto:
f (a) e o coeficiente angular instant
aneo de f em (a, f (a))
Veja na figura (fig. 1.10),
600

f(x)
reta(x)
0

500

400

300

200

100

100

200

300

Figura 1.10:

Reta tangente ao gr
afico de f

(a) Considere f (x) = x2 2x3 calcule f (2) e encontre a reta tangente


ao gr
afico de f no ponto (2, f (2)).
solu
c
ao: altere derivada02.02.gnuplot, voce o encontra aqui, [?]
(b) Considere f (x) = x2 9 calcule f (4) e encontre a reta tangente
ao gr
afico de f no ponto (4, f (4)).
solu
c
ao: altere derivada02.02.gnuplot

CAPITULO 1. A DERIVADA APROXIMADA

21

(c) Escreva a express


ao da reta tangente ao gr
afico de uma funca
o qualquer, f no ponto (a, f (a)). Observe que voce deseja a equaca
o da

reta que passa no onto (a, f (a)), com coeficiente angular f (a).
solu
c
ao: altere derivada02.02.gnuplot
2. An
alise do gr
afico de f
(a) par
abola tangente Encontre a par
abola tangente ao gr
afico de
f (x) = (1 x2 )sin(x/4)
no ponto (4, f (4)) e deduza como e o gr
afico de f nas vizinhancas
deste ponto.
solu
c
ao: altere derivada02.03.gnuplot
abola tangente ao gr
afico de f no
(b) par
abola tangente Encontre a par
ponto (2, f (2)) e deduza como e o gr
afico de f nas vizinhancas
deste ponto.
solu
c
ao: altere derivada02.03.gnuplot
(c) Deduca
o do gr
afico de f Com base nas duas informaco
es10 obtidas
anteriormente, simule o gr
afico de f numa vizinhanca do intervalo
[1, 1].
ao usual dos polin
omios e
3. Polin
omio desenvolvido em um ponto A express
desenvolvida no ponto x = 0
P (x) = a0 + a1 x + a2 x2 + a0 x3 + + an xn

(1.43)

Usando polin
omio de Taylor podemos desenvolver um polin
omio em qualquer outro ponto.
Desenvolva o polin
omio
P (x) = 3 x + 2x2 3x3 + 5x4

(1.44)

no ponto x = 3 e faca os gr
aficos dos dois polin
omios com gnuplot.
Comente o resultado obtido.
solu
c
ao:11 num terminal, rode calc < poltay2.calc

1.4

Derivadas parciais

Vamos generalizar a formula de Taylor para o caso multivariado. Aqui a restricao sera mais forte, nao passaremos do primeiro grau e a considerac
ao feita
anteriormente sobre erros nas aproximacoes de derivadas de ordem maior se
10 este

exerccio tem o defeito de sugerir que podemos fazer uma simulaca


o destas em qualquer intervalo sabendo o que acontece nos extremos. Isto
e falso!
11 Todos os programas do livro se encontram aqui, [20]

CAPITULO 1. A DERIVADA APROXIMADA

22

aplica, fora que a otencao de dados amostrais com taxas de variacao parcial
maior do que um e bem mais difcil de ser obtida.
Se considerarmos uma express
ao dependendo de varias variaveis
F (x, y, x) = d

(1.45)

e lhe aplicarmos derivaca


o implcita, vamos obter um modelo que nos permitir
a
chegar `a equacao de um objeto linear tangente:
dw = dF (x, y, z) =

F
F
F
dx +
dy +
dz = 0
x
y
z

(1.46)

Vamos agora admitir a hipotese de que conhecemos um ponto


P = (a, b, c)
onde passa a variedade12 .
F (x, y, z) = d
Uma outra forma de dizermos a mesma coisa e
P = (a, b, c)
e uma solucao da equacao (45). Nesta forma de falar a hipotese e que existe
uma solucao para esta equacao, que e P .
Se substituirmos, neste modelo,
dx := x a ; dy := y b ; dz := z c

(1.47)

vem a equacao da variedade13 linear tangente:


F
F
F
(x a) +
(y b) +
(z c) = 0
x
y
z

(1.48)

Podemos explicitar z nesta express


ao
F
x (x
F
z

a) +

F
y

(y b) +

F
z

(z c) = 0

x
|(a, b, c) 6= 0 z c = F
(x a)
z

F
y
F
z

(1.49)
(y b)

(1.50)

o que nos conduz, com auxlio do Teorema da Funca


o Implcita14 a garantir que
existe uma funcao
F

x
z = f (x, y) ; f
x = F ;
z

12 variedade

F
y
= F

f
(x a) + f
(y b) ; c =
x
y
f
f (a, b) + f
x (x a) + y (y b) ; c

zc=
z=

f
y

(1.51)

f (a, b)

(1.52)

= f (a, b)

(1.53)

e o conceito que nos livra da pris


ao tridimensional veja no ndice remissivo mais
informaco
es a respeito neste caso esta
e variedade de dimens
ao dois, uma superfcie
13 esta variedade tangente
e um plano, planos s
ao variedades lineares de dimens
ao dois
14 voc
e encontra este teorema em qualquer bom livro de C
alculo. Estamos tamb
em admitindo a hip
otese de a derivada parcial que aparece no denominador seja diferente de zero

CAPITULO 1. A DERIVADA APROXIMADA

23

e assim temos duas formulas que podemos adaptar para fazer aproximac
oes
de funcoes com duas ou tres variaveis sendo imediato (basta considerar mais
derivadas parciais) estender estas formulas para um n
umero qualquer que se
15
precise de variaveis
O smbolo := que utilizamos, apareceu com a linguagem de programac
ao
Pascal para evitar a confusao com a igualdade matematica. Queremos dizer
que os dois objetos que se encontram de cada lado do smbolo := tem natureza
distinta, mas que e possvel fazer uma deducao de um, a partir do outro.
Observe que a equacao (53 ) e a f
ormula de Taylor multivariada, de grau 1
para a funcao = f (x, y).
Existe tambem uma f
ormula de Taylor multivariada de grau 2, de grau
3, etc... mas em geral nao passamos da formula do primeiro grau, devido as
imprecisoes que o calculo numerico joga nas derivadas de ordem superior.
Exerccios 4 Polin
omio de Taylor
Voce deve usar gnuplot para obter todos os gr
aficos, mas deve apresentar
toda a justificaca
o das equaco
es que usar.
O comando do gnuplot para fazer gr
aficos de funco
es de duas vari
aveis e
splot f(x,y)
es (53),
1. Te
orica - polin
omio do segundo grau tangente Expanda as equaco
(44) para encontrar aw equaco
es de uma par
abola (polin
omio do segundo
grau) tangente ao gr
afico de f memorizando tambem a curvatura (segunda
derivada)
y = A + B(x a) + C(x a)2
(1.54)
Um polin
omio desenvolvido16 no ponto x = a.

solu
c
ao: polin
omio de Taylor do segundo grau no ponto x = a
2. Te
orica - polin
omio do terceiro grau tangente Expanda as equaco
es (53),
(44) para obter as condico
es que facam de
P (x) = A + B(x a) + C(x a)2 + D(x a)3

(1.55)

um polin
omio do terceiro grau, tangente ao gr
afico de f no ponto (a, f (a)).
Descreva as equaco
es para determinarmos os coeficientes A, B, C, D.
solu
c
ao: polin
omio de Taylor do terceiro grau no ponto x = a
3. F
ormula de Taylor
(a) Ache o desenvolvimento de Taylor para f (x) = sen(x) no ponto x = 0
de ordem 7 (grau 7) (um polin
omio de grau 7).
15 os

problemas econ
omicos lidam com espacos de dimens
ao de alguns milhares, o que justifica a grande dificuldade no planejamento econ
omico, por outro lado justifica trabalharmos
com dimens
oes altas.
16 novamente, um polin
omio desenvolvidono ponto x = a

CAPITULO 1. A DERIVADA APROXIMADA

24

(b) Ache o desenvolvimento de Taylor para g(x) = cos(x) no ponto x = 0


de ordem 8 (grau 8), (um polin
omio de grau 8). Analise porque a
diferenca de grau entre esta quest
ao e anterior.
solu
c
ao: derivada02 ex02.calc
(c) Calcule a derivada de g(x) + if (x), com os polin
omios encontrados
no item anterior. Ser
a que o resultado poderia ser interpretado como
sendo
(g(x) + if (x)) = i(g(x) + if (x))
4. Aplicaco
es
(a) Calcule o valor aproximado de sen(0.1) usando a f
ormula de Taylor
de ordem 7. Compare o resultado, indicando o erro ocorrido usando
uma calculadora.
solu
c
ao: derivada02 ex02.calc
(b) Calcule o valor aproximado de cos(0.1). Compare o resultado, indicando o erro ocorrido usando uma calculadora.
solu
c
ao: derivada02 ex02.calc
o te
orica A equaca
o de plano que passa no
5. Derivadas parciais introduca
ponto (a, b, c) e por comparaca
o com a equaca
o da reta

z c + A(x a) + B(y b) = 0
z = c A(x a) B(y b)

(1.56)
(1.57)

(a) Calcule as derivadas parciais de z = f (x, y) na equaca


o (57).
resposta: A, B
(b) Justifique a afirmaca
o seguinte usando os conceitos tangente, coeficiente angular dentro de uma pequena redaca
o. Se o plano cuja
equacao esta em (56), for tangente ao grafico de uma funcao no ponto
(a, b, f (a, b)) entao a equacao do plano seria, atualizando os valores
de c, A, B na equacoes (56), (57):
z f (a, b) + A(x a) + B(y b) = 0
z = f (a, b) +

f
x (x

a) +

f
y (y

b)

(1.58)
(1.59)

(c) Considere uma funca


o
z = f (x, y)

(1.60)

que seja deriv


avel numa vizinhanca do ponto (a, b, f (a, b)). Ent
ao
ela tem um plano tangente no ponto (a, b, f (a, b)), semelhante ao
caso da funca
o univariada com a reta tangente. Identifique entre as
equaco
es abaixo a equaca
o do plano tangente ao gr
afico de f no ponto
(a, b, f (a, b)) e justifique sua escolha.

CAPITULO 1. A DERIVADA APROXIMADA

25

f
y (y b)
f
z a = f (a, b) (x a) + f
(y b)
z
y
f
a = f (a, b) (x a) + f
x (x a) + y (y

(1.61)

z a = f (a, b) (x a) +

(1.62)
b)

(1.63)

solu
c
ao: z = 5 + 2(x 1) + 3(y 2); f (1.1, 2.1) 4.5

(d) Sabendo que as taxas de variaca


o parciais de z = f (x, y) no ponto
(1, 2) s
ao
f
f
= 2;
=3
x
y
e que f (1, 2) = 5

i. Escreva a equaca
o do plano tangente ao gr
afico de f no ponto
(1, 2, f (1, 2))
ii. calcule aproximadamente
f (1.1, 2.1)

(e) F
ormula de Taylor multivariada de grau 1 Observe que a equaca
o do
plano tangente pode ser escrita de forma semelhante a
equaca
o da
reta tangente. Encontre as semelhancas e escreva a formula de Taylor
multivariada de grau 1. Voce vai precisar de um produto de matrizes
(estas matrizes se chamam de gradiente ou Jacobiana).
6. Polin
omio Esta e uma variante do metodo polinomio de Taylor. Podemos
encontrar um polin
omio que memoriza as informaco
es de uma funca
o de
forma parecida com o polin
omio de Taylor, mas usando informaco
es em
dois pontos. Encontre um polin
omio P desenvolvido no ponto x = a tal
que
P (a) = f (a); P (a) = f (a)
P (b) = f (b); P (b) = f (b)

em que [a, b] e um intervalo em que f est


a definida e e deriv
avel. Sugest
ao:
escreva a express
ao de um polin
omio desenvolvido no ponto x = a.
omio tal que
7. Aplicaca
o Encontre um polin
a) P (3) = 3
P (3) = 1

P (3) = 1
P (3) = 1

b) P (3) = 3
P (3) = 3

Faca os gr
aficos destes polin
omios usando gnuplot

P (3) = 1
P (3) = 1

CAPITULO 1. A DERIVADA APROXIMADA

1.5

Solu
c
ao de alguns exercicios

1.6

Vocabul
ario

26

gnuplot, Landau, variedade


Nesta secao vamos incluir alguns conceitos que e
preciso discutir mas cujo desenvolvimento dentro do
texto seria prejudicial. Mesmo assim sera uma pequena amostra de cada assunto.

gnuplot e um programa para fazer graficos, uma especie de m


aquina
de calcular eletr
onica com capacidade para fazer gr
aficos, que roda num
terminal do computador, com alguma habilidade sintatica. Voce pode
escrever pequenos algoritmos no terminal do gnuplot ou com um editor
de textos e chamar gnuplot para ler e executar o algoritmo.
gnuplot pode ser chamado de dentro de um programa, logicamente falando e o mesmo que ja dissemos acima a respeito de chamar gnuplot na
linha de comandos passando-lhe um arquivo: isto pode ser feito de dentro
de um programa e inclusive o programa pode construir o arquivo de comandos do gnuplot, veja, por exemplo raizq graf.c, rode apenas, este
e um programa relativamente avancado que sera discutido no captulo 0.
O proprio programa lhe dira que construiu um arquivo de comandos do
gnuplot que voce podera ler como um exemplo.
Landau Para representar que uma variavel tem uma relacao multiplicativa com outra, usamos uma das notacoes
y
= K 6= 0
x=0 x

(1.64)

y
=0
x=0 x

(1.65)

x = O(y) lim

x = o(y) lim

No primeiro caso, equacao (64), o significado e que para valores cada vez
menores de x as variaveis x, y se encontram numa proporcao e podemos
dizer que sao comparaveis.
Este e o caso

f
f (x) f (a)
=
(1.66)
x
xa
quando a funcao for diferenciavel no ponto a com derivada diferente de
zero. Neste ponto a funcao tem uma tangente paralela a reta
x 7 Kx

(1.67)

CAPITULO 1. A DERIVADA APROXIMADA

27

em que K e o que aparece na equacao (64).


No segundo caso, equacao (65), a variavel y e infinitamente menor do que
a variavel x, e o caso em que a funcao derivavel f tangencia o eixo dos X,
a derivada e nula, portanto f e infinitamente pequeno relativamente a
x.
Esta linguagem, infinitamente pequeno, traduzida com a palavra infinitesimo, gerou uma confusao e um mito grande durante toda a primeira
metade do seculo 20 em que varios autores procuraram apresentar infinitesimos como um tipo de n
umero.
Observe o salto violento que existe entre as duas notacoes, nao h
a nada
entre elas. A melhor forma de entender a notacao de Landau, que foi uma
tentativa de evitar os infinitesimos, e usa-la para aos poucos compreender
quando usar uma ou a outra, e talvez admitir o que Courant dizia, que o
limite se encontra no limiar da Matematica superior. . .
Se voce quiser ver alguma coisa experimental nesta linha, considere y =
f (x) e compare
x com f (x) quando x V(0), uma vizinhanca de zero, e o caso
do o pequeno de Landau, faca um programa que liste x, f (x) com x
decrescendo para zero.
x a com f (x) f (a) quando x V(a), uma vizinhanca de um ponto
a 6= zero, e o caso do O grande de Landau, faca um programa que
liste x a, f (x) f (a) com x a decrescendo para zero, voce vai ver
que neste caso K = f (a).
Variedade e uma palavra que nos livra da prisao tridimensional em que
a geometria do mundo fsica em que vivemos nos confina.
Diremos variedade de dimensao 1 para fazer referencia as curvas, uma
reta, um crculo sao variedades de dimensao 1.
Diremos variedade de dimensao 0 para fazer referencia aos pontos.
As superfcies sao as variedades de dimensao 2, como um plano que e uma
variedade linear de dimensao 2.
Depois da dimensao 2 a geometria nao tem mais palavras e nos continuamos a denominar os objetos de variedades lineares ou nao-lineares
acrescentando a dimensao que eles tenham. Podemos entao falar de uma
variedade linear de dimensao 4 que seria uma generalizacao dos planos ou
das retas.
Enfim, agora nao temos mais as limitacoes da geometria.

Captulo 2

Razes aproximadas de
fun
c
oes contnuas

Neste captulo vou estudar o problema determinac


ao das razes de uma func
ao: queremos
descobrir quando f (x) = 0. Este
e um velho problema e a justificaca
o de sua inclus
ao no
currculo se deve a que ele
e ilustrativo de t
ecnicas importantes que t
em valor por s pr
oprias,
como o m
etodo da tangente, a procura bin
aria, e o m
etodo da secante e a recursividade.
O problema
e velho e atual, como veremos na discuss
ao,
e atual no sentido que n
os n
ao
sabemos resolv
e-lo.
Resolver esta equaca
o computacionalmente,
e bastante difcil, e iremos, no momento apropriado, indicar quais os problemas envolvidos. A sada, computacional,
e resolver a desigualdade
|f (x)| <
para um valor adequado para . Veremos que isto
e insuficiente e irrealista, apesar de ser
naturalmente a sada matem
atica.
Iremos salientar como os m
etodos computacionais, associados a estas a
ntigas metodologias,
as tornam mais a
geis.

O plano do trabalho e:
mostrar e exemplificar o problema;
apresentar uma primeira solucao computacional, simples, ingenua mesmo,
usando varredura eliminando parte do problema;
mostrar uma solucao mais efetiva;
apresentar os metodos, metodo da secante e o metodo da tangente e imergir
estes metodos em metodos computacionais;
vamos estudar dois metodos matematicos importantes, busca bin
aria e
sucess
oes recursivas;

28

CAPITULO 2. RAIZES APROXIMADAS

29

apresentar ao final o problema completo, mas, obviamente, n


ao, a soluca
o.
interessante observar que a primeira parte, a soluca
E
o ingenua e simples
far
a parte integrante da solucao final. Tambem faremos uma afirmac
ao: este
ao
problema, a determinacao das razes, nos ensina uma licao, que os humanos s
companheiros dos computadores na busca de soluco
es. . .

2.1

Razes de uma func


ao por varredura

Queremos determinar todos os pontos a tal que


f (a) = 0 ; a [, ]
isto e, todas as razes de f no intervalo [, ].
Veja a figura (fig. 2.1) que mostra uma funcao que tem diversas razes, mas
apenas uma no intervalo que nos interessa.

Estamos interessados
nesta raz
Figura 2.1:

Razes de f no intervalo [, ]

Claro, e voce deveria comecar se perguntando: e porque nos interess


aria um
deteminado intervalo, e n
ao o conjunto mais amplo em que uma funca
o tivesse
razes ?
A resposta para esta pergunta, absolutamente logica, e que existem conjuntos que sao os domnios naturais para uma funcao dentro de um problema em
que ela aparece. Neste caso seria uma perda tempo procurarmos propriedades
desta funcao num conjunto mais amplo.

CAPITULO 2. RAIZES APROXIMADAS

30

Uma outra forma de responder, seria, quando definimos uma funca


o, necess
ariamente estipulamos um domnio de validade para a mesma.
Sera neste domnio que iremos procurar as razes da funcao.

2.1.1

Um m
etodo computacional: varredura

Um metodo computacional basico, para resolver esta questao, e varias outras


que voce vai encontrar neste livro, e varredura.
Existe um paradoxo muito conhecido, de Zenon, resolvido por Arist
oteles,
em que Aquiles persegue uma tartaruga. Aquiles corre a um metro por segundo
enquanto que a tartaruga corre a 0.1 metro por segundo, mas a tartaruga parte
de um ponto mais avancado, a 0.9 m mais a frente.
O paradoxo estabelece que Aquiles somente pode atingir a tataruga depois
de percorrer o espaco percorrido por esta (e aqui esta o paradoxo):
Aquiles parte do ponto 0 e a tartaruga parte do ponto 0.9;
quando Achile atingir o ponto 0.9 a tartaruga ja nao esta mais la;
nova corrida comeca, agora com Aquiles no ponto 0.9 e a tartaruga no
ponto 0.91 e quando ele atingir o ponto 0.91 a tartaruga ja n
ao est
a mais
la . . . e assim nova corrida comeca, [14, logica, Stanford].
Podemos inventar outra forma equivalente deste paradoxo com uma tartaruga que aos poucos fosse ficando cansada com a corrida.
A tartaruga comeca uma corrida e no primeiro dia corre a metade do percurso oficial, no segundo dia corre a metade do que ficou faltando e assim,
sucessivamente, segue correndo sempre a metade do que estiver faltando nos
dias seguintes. Serve para ilustrar que nunca a tartaruga terminaria a corrida...
Aqui vamos usar a ideia para convence-lo de que por menor que for o passo,
nao sera possvel percorrer todos os pontos de um intervalo.
Em vez de falar em percorrer, coisa impossvel, vamos falar em varrer. Aquiles pode varrer o espaco a sua frente e passar
a pela tartaruga em algum ponto no
caminho, mas pode sempre acontecer, dependo do passo escolhido, que nunca
Aquiles encontre a tartaruga.
E nao ha nenhum paradoxo nesta questao, assim como o paradoxo de Aquiles
nada mais e do que uma forma enganosa de colocar a questao. Nao existe
nenhum paradoxo de Aquiles.
Problema 1 Nunca encontrar o zero de f
Este e o problema b
asico, sem nenhum paradoxo, e simplesmente pouco
prov
avel que encontremos x tal que f (x) = 0.
Para fazer uma varredura de uma regiao vamos colocar uma malha de n
os
sobre esta regiao.
Pense numa rede de pesca, mas nos interessam apenas os nos da rede . . .
A regiao (pode ser uma regiao da reta, do plano ou do espaco), e queremos escolher um conjunto de n
os, definindo a malha, associada a esta regi
ao.
Existe um conceito vizinho a este denominado de partica
o.

CAPITULO 2. RAIZES APROXIMADAS

31

Malha associada a um intervalo


Vamos comecar com o caso unidimensional.
Acompanhe a descricao do metodo com a figura (fig. 2.2) pagina 32.
1. Malha uniforme associada a um intervalo I = [, ]
(a) A precisao da malha - a norma
Considere um intervalo I = [, ]
A medida deste intervalo e
m([, ]) =
e a dividimos por um inteiro n que representa a precisao com que
faremos os calculos.
A norma da malha1 e

.
(2.1)
x =
n
Quando a malha for uniforme este conceito perde sentido, e a medida de qualquer sub-intervalo. Ele e importante quando as malhas
nao sao uniformes porque serve para controlar a distribuicao quaseuniforme dos nos, impedindo que uma grande de quantidade de n
os
se concentre em uma pequena sub-regiao.
(b) nos da malha Podemos agora definir os n
os como os elementos de
uma progress
ao aritmetica
= x0 , x1 , , xn =

(2.2)

x0 = ,
x1 = + x,

(2.3)
(2.4)

x2 = + 2x, ,
xk = + kx, ,

(2.5)
(2.6)

, xn1 = + (n 1)x,
xn = + nx =

(2.7)
(2.8)

Em geral desprezamos um dos extremos, deste conjunto de n


os,
desprezamos o u
ltimo no
(xk )n1
k=0 = x0 , x1 , , xn1 = x
x0 = , x1 = + x, x2 = + 2x, ,
xk = + kx, ,
xn1 = + (n 1)x

ou
1 ou

norma da partica
o

(2.9)
(2.10)
(2.11)
(2.12)

CAPITULO 2. RAIZES APROXIMADAS

32

desprezamos o primeiro no
(xk )nk=1 = x1 = + x, , xn =
x1 = + x, x2 = + 2x, ,

xk = + kx, , xn1 = + (n 1)x,


xn = + nx =

(2.13)
(2.14)
(2.15)
(2.16)

Veja na figura (fig. 2.2) pagina 32,

xn

x0

x1
Partio do
intervalo I

Figura 2.2:

Partica
o do intervalo I

Algumas vezes preferimos salientar que este processo criou uma colec
ao
de sub-intervalos
I0 = [x0 , x1 ),
I1 = [x1 , x2 ), . . . ,

(2.17)
(2.18)

In1 = [xn1 , xn ]
I0 I1 In1 = I

(2.19)
(2.20)

cuja uni~
ao e o intervalo I sendo estes sub-intervalo disjuntos. Esta
colecao de sub-intervalos e o que chamamos uma parti
ca
~o de I
Em Matematica gostamos de pensar que escolhemos uma coleca
o
arbitr
aria de pontos
x0 , x1 , x2 , . . . , xn1 , xn I

(2.21)

CAPITULO 2. RAIZES APROXIMADAS

33

mas, para tornar computacional uma particao e preciso estabelecer


uma equacao, para o elemento generico coisa que os computadores
entendem.
Se a sucessao (xk )nk=1 formar uma progressao aritmetica, dizemos que
temos uma malha uniforme (ou uma particao uniforme). Esta ser
aa
nossa preferencia neste livro: particoes uniformes.
Usamos, entao, x como a razao de uma progress
ao aritmetica cujo
primeiro termo e x0 =
xk = + kx

(2.22)

como ja descrevemos.
Esta express
ao aparecera com frequencia neste livro.
Observa
c
ao 2 Aprendendo a ler ou a programar
O programa raizes01.c, [20, programas.tgz], e um implementaca
o deste
metodo, mas ele faz um pouco mais do que isto, procura algumas razes.
Leia o programa sem stress.
lendo programas que a gente aprende a programar, assim como e lendo
E
os autores cl
assicos que a gente aprende a escrever.
Mas nem aprendemos a escrever apenas lendo como n
ao aprenderemos

a programar apenas lendo programas. E preciso aprender a alterar os


programas.
N
ao tenha medo de faze-lo. N
ao se preocupe com estragar o programa, o
original se encontrar
a, sempre, a
` sua disposica
o na p
agina ou no CD.
2. Malha nao uniforme Vamos descrever o que seria construir uma malha
nao uniforme, mas nao faremos nenhum uso para este tipo de malha neste
livro, imediatamente.
A construcao de malhas uniformes conduz a selecao de uma raz
ao como
a que se encontra na equacao (1), e de uma progressao aritmetica que se
encontra na sucessao de equacoes que iniciando em (2), ou do conjunto de
intervalos, todos com mesma medida que apresentamos nas equac
oes que
comecam com (17).
No captulo 0 e no captulo 0 vamos usar malhas nao uniformes, elas aparecerem naturalmente quando pensamos em aplicacoes do tipo coleta de dados feitas por sensores distribuidos ao longo do percurso de um fen
omeno.
Neste momento seria artificial dividir este percurso em partes iguais, estabelecendo um passo x porque tais caminhos tem pontos crticos que
merecem atencao especial onde havera uma concentracao de sensores. Um
exemplo tpico seria a analise do trafego numa rodovia em que eventos
como curvas, cidades ou vilarejos, acidentes geogr
aficos exigiriam um levantamento especial de dados.

CAPITULO 2. RAIZES APROXIMADAS

34

A resposta para este tipo de necessidade vem com um arquivo de dados


em que os nos estao definidos pela posicao dos sensores.
A esta altura do texto e tambem um pouco artificial esta discuss
ao que
preferimos relegar para o momento certo, apenas declarando aqui teremos
necessidade de malhas n
ao uniformes. Se o leitor precisar de imediatamente ver este ponto, recorra aos captulos 0 ou 0 ou procure no ndice
remissivo ao final do livro.
Descrevemos assim malhas unidimensionais. Vamos descrever, na pr
oxima
seccao, como construir malhas bidimensionais.
Malhas bidimensionais
oes de
1. Malha associada a uma regiao do plano Selecionar malhas para regi
dimensao maior que 1 geralmente e mais trabalhoso. No caso unidimensional nao ha muitas escolhas mas nos casos pluridimensionais h
a v
arios
problemas a serem considerados.
Analise um caso simples, representado pela figura (fig. 2.3) pagina 35, e
acompanhe com a figura, as definicoes que faremos.
Comecaremos supondo que se trata de uma regiao limitada.
Quer dizer que existem quatro n
umeros reais: 1 , 2 , 1 , 2 tal que e
um subconjunto do produto cartesiano de dois intervalos:
[1 , 1 ] x [1 , 1 ]

(2.23)

e entao criamos uma malha em cada um dos intervalos:


x =

1 1
2 2
; y =
n
n

(2.24)

Agora o produto cartesiano dos dois conjuntos de nos em cada intervalo, define um conjunto de n
os no plano, uma malha no plano;
temos que selecionar um sub-conjunto desta malha que fique no interior de , veja a figura (fig. 2.3).
Se for definido por uma express
ao algebrica, pode ser simples a selec
ao
automatica dos nos que esteja no seu interior.
Frequentemente este e um outro problema a ser resolvido, mas este livro
vai lhe apresentar, no captulo 0 uma tecnica, aproximacao polinomial,
que pode fornecer a equacao algebrica determinando o contorno de uma
figura como (fig. 2.3) a partir de uma coleta de dados como uma fotografia
aerea, por exemplo, ou um conjunto de medicoes tomadas no proprio local.
Veja na figura (fig. 2.3), um domnio, , do plano, em que colocamos uma
malha e fizemos a selecao dos pontos da malha que se encontram dentro
do domnio.

CAPITULO 2. RAIZES APROXIMADAS

35

Malha sobre uma


regio do plano
Figura 2.3:

Malha sobre uma regi


ao do plano

Um elemento generico da malha tem por equacao


xi,j = (xi , yj ) ; i = 0, . . . , n 1 ; j = 0, . . . , n 1
em que estamos ignorando os pontos que se encontram na u
ltima linha da
malha (tanto na horizontal como na vertical).
Se usarmos o mesmo metodo da progress
ao aritmetica, que ja usamos com
malhas sobre um intervalo, (eq.1) teremos
xi,j = (1 + ix1 , 2 + jx2 );
x1 =
x2 =

1 1
;
n
2 1
;
n

(2.25)
(2.26)
(2.27)

Tambem podiamos considerar n


umeros de pontos diferentes na horizontal
e na vertical, neste caso, usariamos as variaveis n, m para designar estas
quantidade e nos denominadores, das fracoes nas equacoes (26), (27).
Estamos usando a hipotese de que e possvel selecionar os pontos com
uma decisao algebrica, realmente isto pode ser complicado de fazer e n
ao
conhecemos um algoritmo generico para tratar deste caso, mas os metodos
do captulo 0 podem resolver esta questao.
Neste livro usaremos malhas em dimensao maior do que um apenas no c
alculo
entretanto conveniente, pelo menos
de integrais multivariadas no captulo 0. E

CAPITULO 2. RAIZES APROXIMADAS

36

mostrar ao leitor, onde ele pode fazer uso de malhas multidimensionais e uma
pista de como encontrar a solucao para os problemas envolvidos.
Tais situacoes podem ser facilmente encontradas como aplicacoes do c
alculo
aproximado de integrais.
Exemplo 2 Uso de malhas multidimensionais
1. Populaca
o de microrganismos numa lamina. Sabendo que os microrganismos a serem estudados s
ao capazes de um certo tipo de reaca
o, e possvel
pint
a-los com uma soluca
o qumica que far
a com que eles respondam a
reaca
o qumica com um comprimento de onda, que habitualmente chamamos de cor. Cada um dos pontos da figura (2.3) pode ser descrito como
aquele que o sensor captou como estando na faixa de comprimento de onda
que identifique a presenca dos microrganismos que interessa.
Depois podemos contar a quantidade de microrganismos calculando a a
rea
da regi
ao que eles ocupam. O bi
ologo deve, experimentalmente, descobrir
uma constante especfica que permita transformar esta a
rea na quantidade
microrganismos presentes na l
amina.
ao urbana. A figura (2.3) pode representar
2. Fotografia de satelite de regi
uma regi
ao fotografada por um satelite e novamente, via comprimento de
onda, se pode detectar intensidade construco
es urbanas, florestas etc...
Neste caso a fotografia pode ser feita sob emiss
ao de uma onda com uma
comprimento particular, ver [14, onda], objetivando obter um determinado
resultado: florestas, construco
es urbanas, determinados tipos de poluica
o.
Novamente o c
alculo da a
rea da regi
ao determinada vai permitir uma avaliaca
o da regi
ao urbana, da floresta, ou da quantidade de poluica
o que se
estiver observando. Aqui tambem constantes especficas permitem a transformaca
o da a
rea nas quantidades que seja deseja determinar.
No captulo 0 vamos estudar o c
alculo aproximado das integrais.
Estes exemplos s
ao bastante genericos e mostram a amplitude do uso de
integrais multivariadas.
Estas aplicacoes fogem ao planejamento deste livro mas se o leitor precisar, encontrara aqui meios para fazer estas aplicacoes, se puder contar com
informacoes sobre as constantes mencionadas nos exemplos, na literatura especializada.
Pelo menos um metodo para calculo de integrais multivariadas sera visto no
captulo 0.
Malhas num programa de computador
Dentro de um programa de computador, podemos implementar a progress
ao
aritmetica definida na (eq.1 )

CAPITULO 2. RAIZES APROXIMADAS

x=
enquanto (x < )

37
// (1)
// (2)

{
x = x + x
}

// (3).

1. o ponto inicial
2. a logica que controla o laco
3. a progress
ao aritmetica que define os nos da malha
Este pequeno programa n
ao faz nada, visvel ! Seria preciso um comando
para guardar, num arquivo, no disco, os elementos da progress
ao aritmetica ou
faze-los aparecer na tela do computador:
(1)
x =
n
x=
enquanto (x < )

// (1)
// (2)
{
x = x + x
imprima(x)
}

// (3).
// (4)

1. dando valores iniciais as variaveis


2. a logica que controla o laco
3. a progress
ao aritmetica que define os nos da malha
4. o comando para imprimir na tela os elementos da progress
ao aritmetica
O caso de malhas multidimensionais, num programa, consiste em encadeiar
lacos semelhantes a estes que apresentamos acima para o caso unidimensional,
nao tem segredo, outro, que dominar a definicao do domnio, e como ja dissemos
este pode ser um problema especial: considere um lado dentro de uma regi
ao,
ele pode representar um buraco em que voce nao deseja ou nao poder
a obter
informacoes. Mas o tal lago pode representar informacoes preciosas num estudo
de reacoes clim
aticas da mesma regiao. . .

2.1.2

Procura de razes por varredura

Temos as ferramentas para fazer a nossa primeira pesquisa de razes de uma


funcao. Vamos discutir uma solucao simples e intuitiva do problema.
Vamos varrer um intervalo [, ] procurando quando os valores de f sejam
menores que um erro escolhido. Pela discussao feita acima sobre o chamado
paradoxo de Aquiles, nao vale a pena procurar quando f (x) = 0, porque a
probabilidade de que Aquiles encontre a tartaruga, e a mesma de encontremos
x tal que f (x) = 0, e muito pequena praticamente nula.

CAPITULO 2. RAIZES APROXIMADAS

38

Como no caso de Aquiles, e melhor procurar saber quando tivermos passado


pela tartaruga:
(2.28)
|f (x)| >
Um primeiro programa seria:
x =
[1]
n
x=
enquanto (x < )

[1]
[2]
{
se (|f (x)| < ) escreva x, f (x);
x = x + x
}

[3]
[4]

Este livro nao pode oferecer-lhe tecnicas de programacao, sem fugir dos seus
objetivos, mas algumas sugestoes podem ser encontradas aqui. Uma delas e
basica: construa programas que executem tarefas especficas e bem restritas,
depois cole os programas para produzir um algorimo mais complexo, quando
tiver certeza de que todas as etapas anteriores foram bem testadas.
Outra forma de fazer programas eficientes consiste em partir de um programa
como este que esta acima e ir acrescentando ao programas novas rotinas. Mesmo
neste caso vale a observacao anterior: teste as rotinas separadamente antes de
inclu-las no programa.
Esta metodologia se presta para o trabalho em equipe.
Descricao das etapas do programa
1. valores iniciais para as variaveis
2. a logica que controla o laco
3. o teste para encontrar as razes aproximadas
4. a progress
ao aritmetica que define os nos da malha
Exemplo 3 Procura de razes
Todos os exemplos apresentados aqui foram executados com programa
raizes01.c
que pode ser obtido aqui,[20, programas.tgz], ou no CD que acompanha este
livro. Em seguida lhe apresentamos uma lista de exerccios em que voce ser
a
convidado a usar o programa para repetir estes exemplos e construir outros para
melhorar a sua compreens
ao do assunto.
1. Raiz de f (x) = x2 no intervalo [1, 1]
Rodamos um programa que implementa o algoritmo acima. O programa
solicita os pontos inicial e final do intervalo de busca, e pede a norma da
malha, depois o programa usa a pr
opria norma da malha no teste
|f (x)| < = x

CAPITULO 2. RAIZES APROXIMADAS

39

> Forneca-me o intervalo [a,b] para busca de raizes:


a = -1 b = 1
> Sua busca de raizes no intervalo [ -1.000000 , 1.000000 ]
> Forneca-me o passo delta da malha para a busca:
> Sugestao 0.01 < delta
< 0.5
delta = 0.1
> Precisao da malha 0.100000
=================================================
> Aperte <enter> para continuar
Raiz provavel da funcao no intervalo
[-0.100000,0.000000]
valor de f no ponto -0.100000 --> 0.010000
valor de f no ponto 0.000000 --> 0.000000
Raiz provavel da funcao no intervalo
[0.000000,0.100000]
valor de f no ponto 0.000000 --> 0.000000
valor de f no ponto 0.100000 --> 0.010000

O programa acha dois intervalos onde h


a valores aproximados para a raiz
da funca
o, e escreve o valor de f em cada extremo do intervalo:
[0.1, 0]
[0, 0.1]

Aqui voce j
a pode ver uma dificuldade na determinaca
o de razes aproximadas, com programas de computador. O programa encontrou duas raizes,
uma no intervalo [0.1, 0] e outra no intervalo [0, 0.1] que representam,
ambas, a mesma raz, x = 0.
Este e o problema intitulado separacao das razes . O nome n
ao e dos
melhores porque, como voce ve, acima, n
ao h
a duas razes e sim uma u
nica
que foi apresentada como aparecendo em dois intervalos consecutivos.
A figura (fig. 2.4) p
agina 40, pretende ilustrar o problema descrito no
exemplo. Uma malha muito fina levar
a o programa a encontrar v
arios
pontos que satisfazem a desigualdade.
Este e um dos principais problemas em C
alculo Numerico: nos n
ao sabemos fazer programas que possam funcionar sozinhos.
Temos que monitorar o resultado dos programas e selecionar, dentre as
possibilidades por eles encontradas, quais s
ao interessantes. Este mesmo
programa poderia n
ao encontrar nenhuma raz no intervalao indicado, se
usarmos um valor muito pequeno para . Veja o resultado se modificarmos
o programa com x 6=
Forneca-me o intervalo [a,b] para busca de raizes:
a = -1 b = 1

CAPITULO 2. RAIZES APROXIMADAS

40

|y| < r
Figura 2.4:

V
arios representantes da u
nica raiz

Sua busca de raizes no intervalo [ -1.000000 , 1.000000 ]


Forneca-me o passo delta da malha para a busca:
Sugestao 0.01 < delta
< 0.5
delta = 0.3
Precisao da malha: 0.300000
Forneca-me o erro epsilon :
Sugestao 0.01 < epsilon
< 0.5
0.001
Erro : 0.001000
=================================================
Aperte <enter> para continuar
Nenhuma raiz foi encontrada no intervalo dado !
Rode, novamente, o programa, com passo mais fino...
Desta vez o programa n
ao conseguiu encontrar nenhuma raiz, observe porque.
Como escolhemos x = 0.3 ele analisou os intervalos
[1, 0, 7], [0.7, 0.4], [0.4, 0.1], [0.1, 0.2], ...
e em cada um deles verificou se nos extremos |f (x)| < ;

os testes falharam nos extremos em todos os casos porque somente


no interior do intervalo [0.1, 0.2] e que poderia ter dado certo.

Veja o resultado se agora rodarmos o programa com x = 0.1


Forneca-me o intervalo [a,b] para busca de raizes:

CAPITULO 2. RAIZES APROXIMADAS

41

a = -1 b = 1
Sua busca de raizes no intervalo [ -1.000000 , 1.000000 ]
Forneca-me o passo delta da malha para a busca:
Sugestao 0.01 < delta
< 0.5
delta = 0.1
Precisao da malha: 0.100000
Forneca-me o erro epsilon :
Sugestao 0.01 < epsilon
< 0.5
0.001
Erro : 0.001000
=================================================
Aperte <enter> para continuar
Raiz provavel da funcao no intervalo
[0.000000,0.100000]
valor de f no ponto 0.000000 --> 0.000000
valor de f no ponto 0.100000 --> 0.010000
O programa analisou os intervalos
[1, 0.9], [0.9, 0.8], . . . , [0.1, 0], [0, 0.1]
e achou uma raiz no intervalo [0, 0.1]. Se o programa tivesse testado os
dois extremos de cada intervalo, teria achado tambem uma raz no intervalo [0.1, 0].
2. razes de f (x) = x5 + x4 + x3 + x2 + x + 1 em [3, 3]
Forneca-me o intervalo [a,b] para busca de raizes:
a = -3 b = 3
Sua busca de raizes no intervalo [ -3.000000 , 3.000000 ]
Forneca-me o passo delta da malha para a busca:
Sugestao 0.01 < delta
< 0.5
delta = 0.01
Precisao da malha: 0.010000
Forneca-me o erro epsilon :
Sugestao 0.01 < epsilon
< 0.5
0.1
Erro : 0.100000
=================================================
Aperte <enter> para continuar
Raiz provavel da funcao no intervalo
[-1.030002,-1.020002]
valor de f no ponto -1.030002 --> -0.095599
valor de f no ponto -1.020002 --> -0.062463
Raiz provavel da funcao no intervalo
[-1.020002,-1.010002]

CAPITULO 2. RAIZES APROXIMADAS

42

valor de f no ponto -1.020002 --> -0.062463


valor de f no ponto -1.010002 --> -0.030613
Raiz provavel da funcao no intervalo
[-1.010002,-1.000002]
valor de f no ponto -1.010002 --> -0.030613
valor de f no ponto -1.000002 --> -0.000006
Raiz provavel da funcao no intervalo
[-1.000002,-0.990002]
valor de f no ponto -1.000002 --> -0.000006
valor de f no ponto -0.990002 --> 0.029401
Raiz provavel da funcao no intervalo
[-0.990002,-0.980002]
valor de f no ponto -0.990002 --> 0.029401
valor de f no ponto -0.980002 --> 0.057650
Raiz provavel da funcao no intervalo
[-0.980002,-0.970002]
valor de f no ponto -0.980002 --> 0.057650
valor de f no ponto -0.970002 --> 0.084781
Raiz provavel da funcao no intervalo
[-0.970002,-0.960002]
valor de f no ponto -0.970002 --> 0.084781
valor de f no ponto -0.960002 --> 0.110833

Esta funca
o tem uma u
nica raz, no ponto x = 1 e o programa encontrou
v
arios intervalos em que o valor de |f (x)| < . Rodando o programa
novamente, com o valor menor para temos
Forneca-me o intervalo [a,b] para busca de raizes:
a = -3
b = 3
Sua busca de raizes no intervalo [ -3.000000 , 3.000000 ]
Forneca-me o passo delta da malha para a busca:
Sugestao 0.01 < delta
< 0.5
delta = 0.01
Precisao da malha: 0.010000
Forneca-me o erro epsilon :
Sugestao 0.01 < epsilon
< 0.5
0.0001
Erro : 0.000100
=================================================
Aperte <enter> para continuar
Raiz provavel da funcao no intervalo
[-1.000002,-0.990002]
valor de f no ponto -1.000002 --> -0.000006

CAPITULO 2. RAIZES APROXIMADAS

valor de f no ponto -0.990002

43

--> 0.029401

O programa conseguiu isolar um u


nico intervalo com uma raz aproximada.
Os exemplos acima mostram as dificuldades que temos para resolver o problema de encontrar as razes de uma funcao usando varreduras. Depois veremos
que, com tecnicas mais refinadas, poderemos evitar estes erros.
Porem os programas podem ainda, deixar de encontrar razes, mesmo que
elas existam o que nos obriga a monitorar o funcionamento dos programas para
dirigir a busca a partir dos resultados indicados.
Exerccios 5 Procurando razes com varreduras
1. Leia o programa raizes01.c. Logo no incio o programa traz instruco
es
de como compilar e rodar um programa.
2. Voce pode repetir as experiencias registradas aqui rodando o programa
raizes01.c. A funca
o cujas razes est
ao sendo procuradas, est
a definida
dentro do programa, ao final. Troque a equaca
o para executar os seus experimentos e depois compile e rode o programa. Dentro do programa, no
incio h
a instruco
es de como compilar e rodar o programa.
3. Rode raizes01.c com f (x) = x2 no intervalo [3.2, 3] com passo 0.3
e erro m
aximo 0.001. O programa vai dizer-lhe que nenhuma raiz foi
encontrada. Analise por que ?
4. Rode raizes01.c com f (x) = x2 no intervalo [3, 3] com passo 0.3 e erro
m
aximo 0.001. Agora o programa vai encontrar um intervalo onde h
a uma
raiz.
5. Rode raizes01.c com f (x) = x no intervalo [3.2, 3] com passo 0.3 e erro
m
aximo 0.05. O programa vai dizer-lhe que nenhuma raiz foi encontrada.
Analise por que ?
6. Rode raizes01.c com f (x) = x2 no intervalo [3, 3] com passo 0.05 e
erro m
aximo 0.01. O programa vai encontrar v
arios sub-intervalos onde
h
a razes.
Nos exerccios, a busca de razes, com uma mesma funcao um programa
produz diversos resultados. A figura (2.4) oferece uma boa descricao geometrica
para este problema:
uma malha com passo muito fino e com erro (modulo maximo) relativamente muito grande, apresenta varios nos em que a desigualdade e verificada;
se o erro, (modulo maximo) for relativamente muito pequeno nenhum dos
nos da malha vai satisfazer a desigualdade.

CAPITULO 2. RAIZES APROXIMADAS

44

Observe que usei o adverbio relativamente para qualificar os adjetivos


grande ou pequeno porque as grandezas sao relativas a algum referencial. Voce
talvez precise de fazer algumas experiencias com o programa raizes01.c para
compreender o problema descrito nesta secao.
Na proxima secao vamos encontrar uma sada para esta dificuldade.

2.2

Razes analisando a troca de sinal

Acima analisamos a busca de razes apenas testando quando o valor de f (x)


fosse pequeno:
|f (x)| <

(2.29)

Vamos mostrar, como um exemplo, que isto pode ser insuficiente.

2.2.1

An
alise do programa raizes01.c

Analise o que acontece com a funcao f (x) = x ao rodarmos o programa raizes01.c.


Forneca-me o intervalo [a,b] para busca de raizes:
a = -3.2
b = 3
Sua busca de raizes no intervalo [ -3.2.000000 , 3.000000 ]
Forneca-me o passo delta da malha para a busca:
Sugestao 0.01 < delta
< 0.5
delta = 0.3
Precisao da malha: 0.30000
Forneca-me o erro epsilon :
Sugestao 0.01 < epsilon
< 0.5
0.001
Erro : 0.001000
=================================================
Aperte <enter> para continuar
Nenhuma raiz foi encontrada no intervalo dado !
Rode, novamente, o programa, com passo mais fino...
O programa nao encontrou
|f (x)| < 0.001
no intervalo considerado.
Em vez de procurar por um valor pequeno de |f (x)| e portanto depender da
relatividade do tamanho que se vai procurar, vamos verificar quando a func
ao
troca de sinal.

CAPITULO 2. RAIZES APROXIMADAS

45

Este metodo nos livra do relativismo2 . Quando uma funcao contnua trocar
de sinal em um intervalo, neste intervalo ha um ponto (pelo menos) em que a
funcao vai se anular.
Se introduzirmos esta pequena melhora no programa ele ira encontrar uma
raiz aproximada com os mesmo dados (x, ).
Vamos incluir o teste
f (x) f (x + x) 0
que descobre quando f troca de sinal dentro de um intervalo.
O programa
x =
n
x=
enquanto (x < )

[1]
[1]
[2]
{
se (|f (x)| < ) ou (f (x)f (x + x) 0 )
{escreva x, f (x)};
x = x + x
}

[3]
[4]

Comentando as etapas do programa


1. valores iniciais para as variaveis
2. a logica que controla o laco
3. o teste para encontrar as razes aproximadas tanto a verifica se m
odulo de
f e pequeno:
|f (x)| <
como tambem verifica se f troca de sinal no intervalo:
f (x)f (x + x) 0
O operador logico ou pesca se uma destas condicoes for satisfeita.
4. a progress
ao aritmetica que define os nos da malha
Veja o resultado deste programa mais especializado:
Forneca-me o intervalo [a,b] para busca de raizes:
a = -3 b = 3
Sua busca de raizes no intervalo [ -3.000000 , 3.000000 ]
Forneca-me o passo delta da malha para a busca:
Sugestao 0.01 < delta
< 0.5
delta = 0.15
Precisao da malha: 0.150000
2 tamanho

e um conceito relativo, depende de um referencial...

CAPITULO 2. RAIZES APROXIMADAS

46

Forneca-me o erro epsilon :


Sugestao 0.01 < epsilon
< 0.5
0.001000
Erro : 0.001000
=================================================
Aperte <enter> para continuar
Raiz provavel da funcao no intervalo
[-0.150000,0.000000]
valor de f no ponto -0.150000 --> -0.150000
valor de f no ponto 0.000000 --> 0.000000
Raiz provavel da funcao no intervalo
[0.000000,0.150000]
valor de f no ponto 0.000000 --> 0.000000
valor de f no ponto 0.150000 --> 0.150000
O programa achou dois intervalos, num deles a funcao troca de sinal, no outro
a funcao e pequena. Veja outro exemplo:
Forneca-me o intervalo [a,b] para busca de raizes:
a = -2
b = 2
Sua busca de raizes no intervalo [ -2.000000 , 2.000000 ]
Forneca-me o passo delta da malha para a busca:
Sugestao 0.01 < delta
< 0.5
delta = 0.15
Precisao da malha: 0.150000
Forneca-me o erro epsilon :
Sugestao 0.01 < epsilon
< 0.5
0.01
Erro : 0.010000
=================================================
Aperte <enter> para continuar
Raiz provavel da funcao no intervalo
[-0.050000,0.100000]
valor de f no ponto -0.050000 --> -0.050000
valor de f no ponto 0.100000 --> 0.100000
Bastou que trocassemos os pontos inicial e final do intervalo de busca para
que o programa identificasse um u
nico intervalo onde ha raz da funcao. Monitorando o programa conseguimos obter um resultado preciso.
Se voce nao souber programar, ou nao tiver acesso a um computador, se
tudo que voce tiver for uma maquina de calcular, o algoritmo analisando a
troca de sinal e o ideal. Depois de verificar num intervalo grande que f troca

CAPITULO 2. RAIZES APROXIMADAS

47

de sinal, voce pode refinar sua pesquisa em sub-intervalos deste ate encontrar
um pequeno intervalo onde se encontra a raz.
Exerccios 6 Explorando raizes011.c
1. Leia o programa raizes011.c. Logo no incio o programa traz instruco
es
de como compilar e rodar um programa.
2. Leia o programa raizes011.c. Leia o coment
ario (10) que lhe explica que
o problema tem dados pre-definidos que voce pode aproveitar na primeira
vez que rodar o programa.
3. Leia o coment
ario (30) e elimine o teste do modulo maximo. Verifique
que alguma raiz pode ser perdida, dependendo da equaca
o que voce estiver
usando. Experimente v
arios tipos de equaco
es. Leia o coment
ario (50).
4. Altere o programa a vontade, deve haver uma c
opia em disco para voce
retornar a
` vers
ao original... faca suas experiencias.

2.3

Raz do tipo secante

Falamos na troca de sinal para encontrar razes de funco


es. A forma cl
assica
e o m
etodo
das secantes que vamos estudar mais a frente. Como preparaca
o para os m
etodos cl
assicos
vou fazer uma an
alise dos tipos de razes que irei classificar como do tipo secante e do tipo
tangente. Primeiro vamos discutir as razes do tipo secante.

Vamos nos aprofundar na analise de quando uma funcao se anula. S


ao
desafios interessantes que temos pela frente. Os graficos podem ter curvas e
neste caso encontrar as razes exige mais domnio do assunto.
Observe o que nos diz a figura (fig. 2.5) pagina 48,
O gr
afico da funcao f corta o eixo OX em dois pontos.
afico,
Raz por tangencia Uma desta razes e do tipo tangente, veja o gr
(fig. 2.5).
O grafico de f tangencia o eixo OX, no ponto x1 e corta o eixo OX no
ponto x2 .
x1 e um ponto de tangencia, uma raiz em que
f (x1 ) = 0.

(2.30)

e nao seria possvel obter esta raz pelo metodo das secantes neste
ponto porque neste ponto (nesta raz) f nao troca de sinal. Aparentemente a u
nica forma de encontrar esta raz e usando o teste
|f (x)| <

(2.31)

Num ponto de tangencia, como x1 , o grafico pode ser comparado


com o grafico de uma parabola em que f << x. O smbolo <<

CAPITULO 2. RAIZES APROXIMADAS

48

Esta raz possvel


de se determinar pelo
mtodo das secantes

raz aproximada
obtida pelo mtodo
das secantes
f

1
x

raz impossvel
de se obter pelo
mtodo das secantes

Figura 2.5:

O m
etodo das secantes

se le muito menor do que. A tal ponto f << x que o quociente


3
x1 (f ) = f
x tem limite zero, quando x representar o zero . A
derivada e zero. Vou tratar deste caso na proxima secao. Vamos
ver que existe outra maneira de encontrar esta raiz sem ser com a
desigualdade
(2.32)
|f (x)| <
que ja sabemos que e problematica porque depende de valor relativamente pequenos, coisas com que programas nao podem lidar de
forma efetiva.
Raz por secancia o ponto x2 e um ponto de secancia do grafico com
o eixo OX e vou me especializar neste caso agora.
A outra raz e do tipo secante, o grafico graf (f ) corta o eixo OX de
forma semelhante a uma reta, neste ponto (nesta raz) f troca de sinal.
Aqui o teste
|f (x)| <

(2.33)

funciona mal porque e difcil comparar o tamanho de |f (x)| com o tamanho


de x e desta forma fica difcil definir um erro adequado.
3 ou,

como ainda se diz, quando x tender a zero

CAPITULO 2. RAIZES APROXIMADAS

49

hora de observar que igualdades e desigualdades sao sempre difceis de


E
serem obtidas com programas, e a razao esta descrita acima, a dificuldade
de comparar tamanhos.
mais simples e pratico usarmos o teste da troca de sinal
E
f (x)f (x + x) 0

(2.34)

porque se o zero x2 [x, x+x] entao f tera sinais diferentes nos extremos
do intervalo.

2.3.1

M
etodo da secante

O chamado metodo da secante consiste em substituir o grafico de f , num intervalo em que haja troca de sinal, pela reta secante obtida com os valores de f
nos extremos do intervalo.
Notacao: Vamos designar por [a, a + x] um intervalo que descobrimos4 em
que f troca de sinal.
Veja o grafico (fig. 2.5), pagina 48, e observe o ponto x2 . Na figura estou
salientando que a raiz da equacao do primeiro grau que representa a reta secante,
e uma aproximacao da raiz de f .
Queremos obter a raiz da funcao do primeiro grau cujo grafico passa no
pontos
(2.35)
(a, f (a)), (a + x, f (a + x))
entao precisamos da equacao da reta que passa por estes dois pontos. Relembrando a equacao da reta que passa num ponto com coeficiente angular m dado
chegamos `a equacao que nos interessa:
m=

f (a+x)f (a)
a+xa

f (a+x)f (a)
x

a f
x

y f (a) = m(x a)
fazendo y = 0 em y f (a) = m(x a)
(a)
y = 0 x a = fm

s0 = a

f (a)
m

(2.36)
(2.37)
(2.38)
(2.39)
(2.40)

a raz aproximada que estamos procurando e


s0 = a
4 N
ao

f (a)
m

(2.41)

se esqueca de que chegamos at


e aqui dentro de um programa que fez uma varredura apenas testando troca de sinal e agora vamos entrar numa sub-rotina chamada
procura raiz secante()

CAPITULO 2. RAIZES APROXIMADAS

50

Nao se perca com a mudanca de notacao.


Chegamos aqui, olhe a figura (fig. 2.5), pagina 48, porque sabemos que existe
um ponto designado por x2 que e a raiz exata que gostariamos de encontrar.
Resolvemos uma equacao do primeiro grau para encontrar a raz da reta secante
e estamos chamando s0 ao primeiro ponto de uma sucessao de pontos que
esperamos que convirjam para a raz
s n x2

(2.42)

x2 e o limite da sucessao sn
Ao iterarmos este processo vamos criar a sucessao (sn ) referida acima. Precisamos re-escrever as equacoes acima alterando a notacao de forma a sermos
conduzidos a uma express
ao (matem
atica) adequada. Depois vou transformar
as equacoes matematicas no algoritmo computacional que e muito mais simples,
e se voce preferir (nao deve) pode saltar direto para o algoritmo computacional.
Repetindo (e alterando a notacao) temos:
a0 = a; b0 = a0 + x;

m0 =

y f (a0 ) = m0 (x a0 )
y = f (a0 ) + m0 (x a0 )

f (b0 ) f (a0 )
b0 a0

(a0 )
y = 0 s0 a0 = f m
0

(2.43)
(2.44)
(2.45)
(2.46)
(2.47)

uma raz aproximada inicial


s0 = a0

f (a0 )
m0

(2.48)

a u
nica modificacao foi que designamos por m0 o coeficiente angular da reta
secante no intervalo onde (o programa) detectou a troca de sinal, e usamos a0 , b0
para representar os extremos do intervalo inicial, porque isto vai uniformizar a
notacao.
Leia com calma e vera que e verdade, nao foi para complicar, foi para tornar
mais claro (padronizar).
Porque agora vamos considerar um segundo intervalo, um sub-intervalo deste
primeiro.
Veja a construcao do algoritmo.
O ponto s0 associado ao coeficiente angular m0 , divide o intervalo
[a0 , b0 ]
em dois sub-intervalos
[a0 , s0 ] , [s0 , b0 ]

(2.49)

CAPITULO 2. RAIZES APROXIMADAS

51

certamente ha uma troca de sinal em um destes intervalos porque havia


troca de sinal no intervalo primitivo
(2.50)

[a0 , b0 ];

Problema
Pode haver mais de uma troca de sinal e isto pode representar um complicador para o algoritmo, o programa pode simplesmente se perder em buscas
indefinidas... Logo diremos como podemos controlar este problema.
Mas vamos supor a situacao mais benignaa e para depois procurar melhores
algoritmos.
a
e a t
ecnica que estamos utilizando, montamos a teoria usando os casos simples, depois
iremos test
a-la e procurar algoritmos mais robustos

Testamos a troca de sinal e no intervalo onde ela se verificar, tracamos5


nova reta secante usando os extremos para determinar agora o ponto s2
da sucessao:

a0 = a; b0 = b;

(2.51)

Se f (a0 )f (s0 ) 0
entao b1 = s0 ; a1 = a0 ;

(2.52)
(2.53)

senao b1 = b0 ; a1 = s0 ;

(2.54)

m1 =

f (b1 )f (a1 )
b1 a1

(2.55)
y=0

y = r1 (x) = f (a1 ) + m1 (x a1 )
x = s1 = a1

f (a1 )
m1

(2.56)
(2.57)

iteramos este processo para encontrar


an , bn , mn =

f (bn )f (an )
bn an

(2.58)
y=0

y = rn (x) = f (an ) + mn (x an )
x = sn = an

f (an )
mn

ate que o teste


|f (sn)| <
em que e a precisao com que desejamos calcular a raz.
5 n
ao

tracamos nada, apenas calculamos a raz da equaca


o do primeiro grau

(2.59)
(2.60)

CAPITULO 2. RAIZES APROXIMADAS

52

Observa
c
ao 3 Voce pode fazer isto com calc
A linguagem de programaca
o calc e injustamente chamada de C interpretado, e uma outra linguagem de programaca
o que tem uma precis
ao infinita,
coisa que C n
ao tem. Mas se parece com C e pode servir para fazer prot
otipos
de programas em C.
Veja uma sess
ao para obter a sucess
ao de razes de uma funca
o. Depois
que voce rodar o script do calc, volte e releia as contas matem
aticas que v
ao
da equaca
o (51) ate a equaca
o (60) a respeito das quais voce, provavelmente,
pensou que o autor estava complicando, para ver que e, exatamente, o que a
m
aquina precisa para pensar corretamente e lhe dar os resultados certos.
define f(x) {return sin(1 +x/4)*(x+1)}
x = -10
delta = 0.7
while (f(x)*f(x+delta) >= 0){
x = x + delta;
print x,;
}
print x-delta, x ;
## o resultado
e o intervalo [-5.1 ,-4.4]
a0 = -5.1;
b0 = -4.4;
m0 = (f(b0)-f(a0))/(b0 - a0);
s0 = a0 - f(a0)/m0;
print s0;
-4.09298252718108963004
if (f(a0)*f(s0) <= 0 ) { b1 = s0; a1 = a0;}

else {a1 = s0; b1 = b0;};

m1 = (f(b1)-f(a1))/(b1 - a1);
s1 = a1 - f(a1)/m1;
print s1;
-4.01048304495901701641
if (f(a1)*f(s1) <= 0 ) { b2 = s1; a2 = a1;}

else {a2 = s1; b2 = b1;};

m2 = (f(b2)-f(a2))/(b2 - a2);
s2 = a2 - f(a2)/m2;
print s2;
-4.00121371137763323854
if (f(a2)*f(s2) <= 0 ) { b3 = s2; a3 = a2;}

else {a3 = s2; b3 = b2;};

m3 = (f(b3)-f(a3))/(b3 - a3);
s3 = a3 - f(a3)/m3;
print s3;
-4.00014094678986900281

CAPITULO 2. RAIZES APROXIMADAS

if (f(a3)*f(s3) <= 0 ) { b4 = s3; a4 = a3;}

53

else {a4 = s3; b4 = b3;};

m4 = (f(b4)-f(a4))/(b4 - a4);
s4 = a4 - f(a4)/m4;
print s4;
-4.00001637370536391669
A notacao matematica tem que passar por pelas quatro sucessoes
(an )n , (bn )n , (mn )n , (sn )n
que irao definir os novos sub-intervalos que iremos encontrar.
A notacao computacional nos permite calcular as razes, com um programa,
e a notacao matematica nos permite provar que ela existe.
Sao duas coisas distintas e somente podemos rodar programas se pudermos
provar que eles chegar
ao em algum resultado. O contrario e inocuo.
No captulo 0 vamos discutir melhor os metodos matematicos que determinam as razes dentro de um quadro mais geral. Todos os metodos que estamos
usando aqui sao recursivos e o o captulo 0 vai discutir recursividade. Claro,
voce pode, e deve, chegar ate o o captulo 0 agora para entender melhor o que
estamos fazendo e comecar a ler sobre este outro assunto. O livro esta departamentalizado por uma questao de organizacao, mas voce nao precisa ficar preso
a estas paredes.
Vou transformar o metodo matematico no algoritmo computacional, ate
mesmo porque voce podera rodar o algoritmo e isto lhe servira de motivac
ao
para entender melhor o metodo matematico.
O algoritmo do m
etodo da secante I
Comece analisando a figura (2.6) pagina 54, que e um fluxograma, um planejamento visual que fazemos antes de escrever um programa.
No centro da figura (2.6) voce pode observar um caminho, indicado pelas
seta que sai do diamante que representa o teste de parada do programa
|f (a)| > epsilon

(2.61)

que e uma mistura de Matematica e computacao.


Numa linguagem de computacao deveria6 estar
(abs(f (a)) > epsilon)
Tambem nao aparecem sn porque numa linguagem de programacao os valores
se encontram em memorias cujos enderecos estao associados a variaveis, e e isto
que o programador deve ver os nomes das variaveis (e nao o endereco onde os
dados estao guardados).
6 em

Pascal a funca
o valor absoluto
e abs(), em C
e fabsf()

CAPITULO 2. RAIZES APROXIMADAS

54

f troca de sinal em
[a,b]

Mtodo da secante

F
| f(a) | > epsilon

m = (f(b)f(a))/(ba)
r(x) = f(a) + m(x a)

s a raz de r
a a raz
aproximada
com erro epsilon
V
b=s

f(s)f(a)<=0

F
a=s

Figura 2.6:

Fluxograma - m
etodo da secante

Entramos no algoritmo quando descobrimos que ha uma troca de sinal no


intervalo [a, b] e calculamos, sucessivamente, m, r(x), s.
Somos levados agora ao teste que vai decidir em que intervalo h
a nova
troca de sinal
f (s)f (a) <= 0

(2.62)

Um novo intervalo, onde se verifica a troca de sinal, e calculado:


O teste resultando em verdadeiro o programa vai colocar o valor s
na memoria apontada pela variavel b.
Se o teste resultar em falso o programa vai colocar o valor s na
memoria apontada pela variavel a.
Neste escolha a variavel que nao foi usada fica com o seu valor primitivo.
Este novo intervalo continua sendo designado por [a, b] e se o teste de
parada do algoritmo, na equacao (62), resultar em verdadeiro novo ciclo
vai ser efetuado. Se for falso significa que a precisao esperada j
a foi
atingida e portanto o algoritmo para.

CAPITULO 2. RAIZES APROXIMADAS

55

O programa escolhe quem vai ser indicada como raz aproximada, se e a,


ou s ou b, ou como em alguns dos nossos programas
a+b
2
pura questao de gosto do programador. Se o programador for mais exigente aplicaria o teste da (62) a estes quatro candidatos para escolher
aquele que ofereca uma precisao maior.
Matem
atica do M
etodo da secante
Vamos repetir de forma suscinta, tanto os calculos matematicos como o algoritmo computacional nesta secao e na proxima.
Para construir a formulacao matematica do metodo, vou mais uma vez retomar a sequencia de equacoes em que calculei a raiz, alterando novamente a
notacao. Repetindo (e alterando a notacao) temos:
[a, a + x] = [a0 , b0 ]

(2.63)

x0 = b0 a0

(2.64)

y f (a0 ) = m0 (x a0 )
y = f (a0 ) + m0 (x a0 )

(2.66)
(2.67)

m0 =

f (b0 )f (a0 )
x0

y = 0 s0 = a0

(2.65)

f (a0 )
m0

(2.68)

a primeira versao da raz aproximada que achamos foi


s0 = a0

f (a0 )
m0

(2.69)

Agora determinamos em qual dos sub-intervalos ha troca de sinal (se houver


nos dois7 , o programa tera que se lembrar disto para fazer nova busca no outro
interval):
f (a0 )f (s0 ) 0 ; f (s0 )f (b0 ) 0

(2.70)

Vou simplificar a redacao sob a suposicao de que apenas um destes produtos


e negativo (mas fica claro que e uma simplificacao e que o programa tem que ir
em busca da outra possibilidade).
se (f (a0 )f (s0 ) 0)[a1 , b1 ] = [a0 , s0 ]
senao [a1 , b1 ] = [s0 , b0 ]
7 observe

que isto significa que h


a mais de uma raiz no intervalo

(2.71)
(2.72)

CAPITULO 2. RAIZES APROXIMADAS

56

o que nos levara a definir m1 e s1


[a1 , b1 ]
x1 = b1 a1

)f (a1 )
m1 = f (b1x
1
y f (a1 ) = m1 (x a1 )
f (a1 ) = m1 (x1 a1 )

s1 = a1

f (a1 )
m1

(2.73)
(2.74)
(2.75)
(2.76)
(2.77)
(2.78)
(2.79)

achamos assim a segunda versao da raz aproximada


s1 = a1

f (a1 )
m1

(2.80)

Podemos provar, usando inducao finita, que


sn = an

f (an )
mn

(2.81)

definindo as quatro sucessoes,


ak , bk , mk =

f (bk ) f (ak )
f (ak )
, sk = ak
bk ak
mk

(2.82)

Algoritmo do M
etodo da secante II
A notacao computacional e mais simples. Vamos usar a mesma tecnica, copiando
a equacao e alterando a notacao. Repetindo (e alterando a notacao) temos.
Simplesmente chamamos de [a, b] o intervalo onde foi detectada a troca de
sinal
[a, b] e o intervalo onde ha troca de sinal
m=

f (b)f (a)
ba

y f (a) = m(x a)

(a)
y = 0 x a = fm

x=a

f (a)
m

(2.83)
(2.84)
(2.85)
(2.86)
(2.87)

a raz aproximada que estamos procurando, no primeiro passo e


x=a

f (a)
m

e agora tomamos a decisao sobre a nova troca de sinal

(2.88)

CAPITULO 2. RAIZES APROXIMADAS

f (a)f (x) 0 [a, b] = [a, x]


f (x)f (b) 0 [a, b] = [x, b]

57

(2.89)
(2.90)

e seguimos no laco com as variaveis tendo assumido os novos valores. Ser


a
preciso um condicional para que o processo pare. Isto pode ser feito de duas
maneiras:
com um contador estipulando-se o n
umero maximo de iteracoes;
testando em cada passo a precisao da raiz aproximada obtida.
O programas raizes013.c faz isto, rode e leia o programa.

2.4

A raiz num ponto de tang


encia

Vamos agora estudar como podemos descobrir a raiz quando ela for um ponto em que a
funca
o tang
encia o eixo OX. O m
etodo consiste em usar a troca de sinal da derivada. Vou
comecar mostrando alguns exemplos gr
aficos para ilustrar as dificuldades e como podemos
sair delas.

Para lhe dar uma visao da necessidade de um pouco mais de teoria, comece
resolvendo os exerccios seguintes sobre os quais eu farei comentarios em seguida.
A figura (fig. 2.5) pagina 48 e a referencia para as experiencias que vamos
comecar fazendo, nela ha uma raiz num ponto de tangencia do grafico com o
eixo OX e o objetivo e produzir um programa que consiga descobrir esta raiz.
Exerccios 7 Usando raizes011.c
1. Edite o programa raizes011.c e escolha a funca
o
f (x) = (x + 3)(x + 3)(x 2)
que pode estar desligada (com o smbolo de coment
ario) na vers
ao que
voce tiver do programa. Depois compile e rode o programa com os valores
pre-definidos que ele tem (de enter em todas as perguntas do programa).
Analise o resultado.
2. Rode novamente o programa usando os valores pre-determinados, entretanto responda com o valor 0.1 para a precis
ao (quando o programa
solicitar o valor da vari
avel epsilon). Observe que o resultado ficou diferente.
3. Rode novamente o programa usando os valores pre-determinados, mas escolha um valor grande para a norma da partica
o. Sugest
ao x = 1.
Comentando os resultados do programa nas experiencias que voce fez usando
os valores pre-deteminados no programa.

CAPITULO 2. RAIZES APROXIMADAS

58

Quando = x o programa encontrou diversas razes que na verdade representam a mesma raiz exata x = 3. Veja uma replica dos resultados
do programa captados8 por um editor de textos:
Forne
ca-me o intervalo [a,b] para busca de raizes:
a =
b =
Forne
ca-me o passo delta da malha para a busca:
Sugest~
ao 0.01 < delta
< 0.5
delta =
Forne
ca-me o erro epsilon (m
odulo m
aximo) :
Sugest~
ao 0.01 < epsilon
< 0.5
epsilon
=
Sua busca de ra
zes no intervalo [-5.000000 , 5.000000]
Precis~
ao da malha: 0.100000
Erro (m
odulo m
aximo): 0.100000
=================================================
Aperte <enter> para continuar
Ra
z prov
avel da fun
ca
~o no intervalo
[-3.100002,-3.000002]
valor de f no ponto -3.100002
e 0.051002
valor de f no ponto -3.000002
e 0.000000
Ra
z prov
avel da fun
ca
~o no intervalo
[-3.000002,-2.900002]
valor de f no ponto -3.000002
e 0.000000
valor de f no ponto -2.900002
e 0.048998
Ra
z prov
avel da fun
ca
~o no intervalo
[-2.900002,-2.800002]
valor de f no ponto -2.900002
e 0.048998
valor de f no ponto -2.800002
e 0.191996
Estas razes representam todas a raiz x = -3 - sao valores proximos de 3
que o programa captou. Achou tambem a raiz x = 2
Ra
z prov
avel da fun
ca
~o no intervalo
[1.999998,2.099998]
valor de f no ponto 1.999998
e 0.000057
valor de f no ponto 2.099998
e -2.600939
Quando << x lhe sugeri no exerccio que voce usasse 0.1 o programa
achou uma representacao para cada uma das razes existentes:
8 o editor de textos joe, permite que voc
e rode programa dentro dele e consequentemente
pode captar os resultados do programa

CAPITULO 2. RAIZES APROXIMADAS

59

Forne
ca-me o intervalo [a,b] para busca de raizes:
a =
b =
Forne
ca-me o passo delta da malha para a busca:
Sugest~
ao 0.01 < delta
< 0.5
delta = 0.3
Forne
ca-me o erro epsilon (m
odulo m
aximo) :
Sugest~
ao 0.01 < epsilon
< 0.5
epsilon
= 0.1
Sua busca de ra
zes no intervalo [-5.000000 , 5.000000]
Precis~
ao da malha: 0.300000
Erro (m
odulo m
aximo): 0.100000
=================================================
Aperte <enter> para continuar
Ra
z prov
avel da fun
ca
~o no intervalo
[-2.900000,-2.600000]
valor de f no ponto -2.900000
e 0.049000
valor de f no ponto -2.600000
e 0.736001
Ra
z prov
avel da fun
ca
~o no intervalo
[1.900000,2.200000]
valor de f no ponto 1.900000
e 2.400998
valor de f no ponto 2.200000
e -5.408001
Vamos agora continuar as experiencias agora usando o programa raizes012.c
Exerccios 8 Experiencias com raizes012.c
1. Leia o programa raizes012.c e verifique se a funca
o escolhida e f (x) =
9
(x + 3)(x + 3)(x 2). Se n
ao for selecione esta funca
o cujo gr
afico e
semelhante ao da figura (fig. 2.5).
2. Leia o programa raizes012.c. Ele e uma alteraca
o de raizes011.c.
Leia tambem os coment
arios dentro do programa. Compile e rode o programa usando os valores predefinidos no programa. O programa escolhe,
ele mesmo, o valor da precis
ao , verifique isto. Veja o coment
ario (41)
do programa, veja como foi calculado .
3. O programa, como os valores pre-definidos, encontrou as razes 3, 2.
Teste o programa com valores diferntes para a norma da malha.
4. Rode raizes012.c alterando a equaca
o de f para f (x) = (x 1)2 (1 +
7(x + 1)2 ). Observe que esta equaca
o j
a se encontra no programa, mas
desligada por um coment
ario. Basta lig
a-la.
9 voce pode ligar ou desligar uma express
ao colocando ou apagando o smbolo de coment
ario // na frente, n
ao precisa apagar

CAPITULO 2. RAIZES APROXIMADAS

60

5. Teste o programa com outras equaco


es e nestes casos altere o intervalo de
busca. Isto pode ser feito dentro do programa ou respondendo a
`s perguntas
que o programa fizer.
Vamos entender o metodo utilizado no programa raizes012.c. Num ponto
de tangencia com o eixo OX a derivada troca de sinal e podemos nos aproveitar
disto para encontrar a raiz evitando a perigosa comparacao
|f (x)| < .

(2.91)

Analise a figura (fig. 2.7), pagina 60. Vamos tirar algumas informac
oes desta
figura.
No ponto a temos uma raz do tipo tangente,
e marcamos dois pontos, a, a+, anterior e posterior10 , ao ponto a,
fizemos os graficos das retas tangentes em (a, f (a)), e (a+, f (a+)).
f

a+

O coeficiente angular da
reta tangente negativo

Figura 2.7:

O coeficiente angular da
reta tangente positivo

Num ponto de tang


encia, tipo parab
olico

Voce pode ver que antes e depois do ponto de tangencia, o coeficiente


angular da reta tangente tem sinais diferentes:
sinal(a (f )) 6= sinal(a+ (f ))
sinal( f
x |a )

10 a,

6=

sinal( f
x |a+ )

(2.92)
(2.93)

a+ s
ao notaco
es padr
ao em Matem
atica para representar pontos anterior e posterior
ao ponto a

CAPITULO 2. RAIZES APROXIMADAS

61

Como x > 0 entao11 podemos comparar apenas os numeradores12 . Analisaremos apenas os produtos dos n
umeradores, o produto de dois valores
sucessivos de f ao longo da varredura. Estamos evitando os quocientes:
f (a) f (a + ) < 0

(2.94)

para verificar se e um ponto de tangencia de tipo parabolico.


Se for uma tangencia do tipo ponto de inflexao o programa continuar
a
fazendo o teste de troca de sinal de f .
Caracterizamos estes dois tipos de razes, veja a figura (fig. 2.5), como
ao
raiz tangente, e o que acontece no ponto x1 em que o grafico da func
tangencia o eixo OX;
ao
raiz secante, e o que acontece no ponto x2 em que o grafico da func
corta o eixo OX. Fica includa, aqui o caso de tangente com ponto de
inflexao.
raiz tangente - num ponto de inflexao vamos trata-lo como um ponto de
secancia porque nele a funcao troca de sinal.
Vamos agora observar o que acontece no grafico representado na figura (fig.
2.8) pagina 62,
Neste grafico a figura nos mostra dois pontos em que a derivada se anula,
mas apenas o ponto x2 e o que nos interessa.
Entao foi preciso incluir no programa raizes012.c um teste complementar
ao teste de troca de sinal da derivada.
Tanto em x1 , como em x2 , na (fig. 2.8), a derivada troca de sinal. Mas
apenas em x2 a funcao e pequena.
Este e o resultado do exerccio em que lhe foi pedido que rodasse o programa
com a funcao
f (x) = (x 1)2 (1 + 7(x + 1)2 ).

O gr
afico desta funcao se assemelha ao grafico na figura (fig. 2.8). Voce pode
obter este grafico usando Gnuplot, nao se esqueca de usar o comando
set xrange [-4:3]
para instruir Gnuplot a considerar o grafico sobre o intervalo [4, 3] afim de que
voce consiga ver alguma coisa interessante. Se voce nao fizer isto ele vai usar o
intervalo padr
ao, [10, 10].
Vimos assim o metodo para separar estas duas situacoes dentro de uma
analise automatica (dentro de um programa). O algoritmo ira fazer os dois testes
em cada ponto da varredura, ira aceitar o ponto x2 como uma raiz aproximada
e descartar o ponto x1 . Estamos nos referindo ainda `a figura (fig. 2.8).
Observe que terminamos por voltar a usar a desigualdade, agora apenas em
uma forma complementar. Assim ela funciona.
11 x

n
ao precisa ser positivo, mas tradicionalmente consideramos assim para que o seu
valor concida com o comprimento do intervalo considerado
12 aqui voc
e tem a t
ecnica prometida no captulo das derivadas, em vez de usarmos derivada,
estamos usando derivada aproximada

CAPITULO 2. RAIZES APROXIMADAS

x2

x1

A derivada se anula
no ponto x1 mas ele no
uma raiz

Figura 2.8:

62

Aqui a derivada se anula


e tambm uma raiz

Quando a derivada
e zero

Exerccios 9
1. Leia o programa raizes013.c e identifique onde o programa verifica a troca de sinal de f e da derivada.
2. Rode o programa com cada uma das tres funco
es definidas no programa.
Com os dados pre definidos os resultados n
ao s
ao muito bons, aumente a
precis
ao da malha em experiencias sucessivas.
3. Defina novas funco
es para testar o programa.

2.5

O m
etodo da tangente

Vamos estudar o m
etodo da tangente para determinaca
o aproximada da raz de uma funca
o.
Evite confundir-se, nas seco
es anteriores falamos de raiz (do tipo) tangente, s
ao as razes
m
ultiplas, em que o graf (f )
e tangente ao eixo OX. Agora vamos discutir o m
etodo da
tangente para determinar razes.
natural observar, pese o trocadilho, que o m
E
etodo da tangente serve para encontrar razes
(do tipo) tangente. . .
S
ao duas coisas diferentes os tipos como classificamos as raizes, tangente, secantes e os
m
etodos cl
assicos, com estes nomes, para determinar razes, metodo da tangente, que vamos
estudar agora e m
etodo da secante que usamos rapidamente na seca
o anterior. Comecaremos
por mostrar as limitaco
es do m
etodo. A crtica se encontra no contexto, ao iniciarmos o
captulo chamamos sua atenca
o para a dificuldade de resolver o problema que nos ocupa
aqui, estamos apenas ressaltando, em cada momento as dificuldades que aparecem.

O plano do trabalho:

CAPITULO 2. RAIZES APROXIMADAS

63

Comecaremos mostrando um exemplo em que o metodo funciona,


depois um exemplo em que ele nao pode funcionar.
Vamos transformar o metodo em um programa de computador e encontrar
algumas razes. Voce podera rodar o programa e experimentar o resultado.
Finalmente vamos discutir em que condicoes (hipoteses) o metodo da tangente pode ser aplicado e um programa de computador em que ele e usado
intensivamente junto com o metodo da secante.

2.5.1

Como funciona o m
etodo da tangente

Veja as figuras (fig. 2.9) pagina 63 que nos mostram como funciona o metodo.

raz exata

f
raz aproximada
obtida por uma tangente

A raz
exata
esta

Razes aproximadas
por retas tangentes

Figura 2.9:

Uma sequ
encia de retas tangentes...

CAPITULO 2. RAIZES APROXIMADAS

64

Com uma sequencia de retas tangentes vamos encontrar uma sequencia de


pontos x0 , x1 , . . . que se aproximam de uma raz, a sequencia converge para a
raz da funcao f .
Descricao do metodo:
Ponto inicial Escolhemos um ponto inicial x0 e nele tracamos uma reta
tangente ao grafico de f ;
Ponto inicial o metodo somente se aplica em razes do tipo secante ou
do tipo tangente portanto temos que encontrar um intervalo em que haja
troca de sinal de f ou de f . O ponto inicial a0 e um dos extremos deste
intervalo de troca de sinal;
Segundo ponto Escrevemos a equacao da reta tangente em (a0 , f (a0 )) e
cuja raiz encontramos, este e o ponto s0 da sucessao;
Iteramos o processo, tracando a reta tangente ao grafico de f no ponto
(s0 , f (s0 )), resolvendo a nova equacao do primeiro grau correspondente a
esta nova reta tangente encontrando assim s2 , s3 , . . . , sn
A sucessao (sn )n>0 converge para uma raiz de f
sn s a raz exata
f (sn ) f (s) = 0
f (sn ) 0

(2.95)
(2.96)
(2.97)

e sn e uma raiz aproximada de f .


No algoritmo, que acabamos de descrever, usamos a expressao escolhemos
um ponto inicial. Estamos fazendo uso de uns do metodos mais controversiais
da Matematica, a escolha. Controversial porque funciona e tambem porque
envolve uma dos problemas abertos da Matematica, o axioma da escolha.
Como escolher um elemento proximo de um ponto desconhecido ? Em algumas circunst
ancias podemos provar que o metodo funciona.

2.5.2

E quando o m
etodo n
ao funciona ?

Mas vamos logo ver quando deixa de funcionar. Na figura (fig. 2.10) pagina 65,
Consideramos a reta tangente no (A, f (A)); A raiz da reta tangente em A
e B;
Esta reta tangente tem como raiz o ponto x = B
Consideramos entao a reta tangente no ponto (B, f (B)) corta o eixo OX
no ponto x = A e a raiz da reta tangente em B e A ...

CAPITULO 2. RAIZES APROXIMADAS

65

A raiz da reta tangente em A B


a raiz da reta tangente em B A ...

Figura 2.10:

Duas tangentes se reproduzindo indefinidamente

Vemos que caimos num circulo vicioso. O programa que fizermos cair
a em
loop infinito.
Obviamente este e um exemplo raro de acontecer, ele apenas mostra que
o risco existe e uma intervencao do usuario do programa pode prevenir contra
este acontecimento com uma troca do ponto inicial. No intervalo que a figura
(2.10) exibe o problema, podemos escolher um ponto inicial diferente de A ou
B para evitar o ciclo vicioso.
preciso incluir no programa um teto de operacoes que ao ser atingido sem
E
sucesso o programa sugira ao usuario alterar um pouco um dos extremos do
intervalo inicial. Voce pode ver na figura (fig. 2.10) pagina 65 que uma alterc
ao
no valor de A faz com que a sucessao dos zeros das retas tangentes convirja para
uma das razes.

2.5.3

Funciona com precis


ao, se funcionar

Considere o ponto a escolhido para tracarmos a reta tangente por (a, f (a))
A equacao da reta tangente sendo

(2.9
(2.9

a0 = a = s0
y f (a0 ) = f (a0 )(x a0 )

y = 0 s0 = a0
s1 = s0

f (a0 )
f (a0 )

f (s0 )
f (s0 )

= T (a0 ) = T (s0 )

= T (s0 )

(2.10
s2 = s1

f (s1 )
(2.10
= T (s1 ) = T (T
(s
f (s1 )
(2.10

CAPITULO 2. RAIZES APROXIMADAS

66

podemos ver que a lei de formaca


o dos elementos da sucessao e
sn = sn1

f (sn1 )
= T n (s0 )
f (sn1 )

(2.103)

em que na equacao (103) a potencia aplicada no operador T representa


repeticao do operador aplicado no ponto inicial. Seria interessante fazer
uma primeira leitura do captulo 0, se voce ainda nao tiver feito isto, para
reconhecer que estamos lidando com expressoes recursivas.
Assim,
cada nova raz da funcao do primeiro grau tangente, se expressa sempre da mesma maneira usando a anterior,
a potencia da transformacao T , indica o n
umero de vezes que
ela foi aplicada ao ponto inicial a, funca
o de funca
o.
o que chamamos de iteraco
E
es de T . Na equacao (eq. 103) se est
a
indicando que calculamos a terceira iterada de T .
Falta-nos provar que a sucessao assim obtida se aproxima da raz exata,
ou tem algum limite.
Este e um exemplo de recursividade, semelhante ao que vamos usar no c
alculo
de razes, na busca binaria. .
Vamos discutir recursividade no captulo 0.
O metodo Matematico para obter demonstracoes passa pela abstraca
o das
expressoes. Suponhamos que a sucessao produzida pelas iteradas de T seja
convergente (tenha limite) e chamemos este limite de b.
Como T e uma funcao contnua em qualquer intervalo em que a derivada de
f nao se anule, (vamos admitir esta hipotese) temos
xn+1 = T (xn ) b

(2.104)

como T e contnua T (b) = b = b


b=b

f (b)
f (b)

f (b)
f (b)

f (b)
f (b)

=0

como por hipotese f (b) 6= 0 entao f (b) = 0

(2.105)
(2.106)
(2.107)

ou seja, a hipotese de que a sucessao seja convergente nos conduz a que o limite
seja uma raz de f .
Uma consequencia dos calculos acima e que
T (b) = b.

(2.108)

Quando isto acontece dizemos que o ponto b e um ponto fixo da func


ao T
Vamos obter uma condicao suficiente para que T tenha um ponto fixo.
Comecando por relembrar a aproximacao linear dada pela derivada, da qual
extrairemos a condicao que desejamos.

CAPITULO 2. RAIZES APROXIMADAS

67

T (b) T (a) = T (a)(b a) + o(b a)


(2.109)
|x2 x1 | = |T (x1 ) T (x0 )| = |T (x0 )||x1 x0 | + o(|x1 x0 |) (2.110)
|x3 x2 | = |T (x2 ) T (x1 )| = |T (x1 )||x2 x1 | + o(|x2 x1 |) (2.111)

(2.112)
|xn xn1 | = |T (xn1 ) T (xn2 )| =
(2.113)
= |T (xn2 )||xn1 xn2 | + o(|xn1 xn2 |)

(2.114)

Na (eq. 109) aplicamos a formula de aproximacao linear pela derivada.


Na (eq. 110) voltamos a usar a mesma aproximacao, mas agora, e sucessivamente, nas seguintes, estamos aplicando aos elementos que foram sendo obtidos
pela iteracao do metodo das tangentes.
Como queremos que a sucessao seja convergente, e portanto que a dist
ancia
entre dois novos pontos seja cada vez menor, vamos impor uma semelhanca com
as series geometricas.
Vemos que a cada dois novos pares de pontos da sucessao surge como multiplicador T (a) em que a e um dos pontos anteriores. Basta-nos que a derivada
de T seja menor do que 1 para a comparacao com as series geometricas tenha
sucesso.
Esta e a hipotese que precisamos.
Derivando T quando f for um polinomio de grau maior do que 2, temos
T (x) = x

f (x)
f (x)

(x)
|T (x)| = | f (x)f
f (x)2 |

(2.115)
(2.116)
(2.117)

A fracao racional que aparece como derivada de T tem polinomios de mesmo


grau no denominador e no denominador: 2n 2 em que n e o grau de f com
termos lider igual
n(n 1)a2n x2n2 ; n2 a2n x2n2
(2.118)
respectivamente, no numerador e no denominador. Portanto, exceto no pontos
em que o denominador se anule e numa vizinhanca destes pontos, a derivada
e menor do que 1 em modulo o que fara que com que o metodo da tangente
produza iteradas que convirjam para uma raz, se alguma houver.
Demonstramos assim
Teorema 1 Metodo da tangente
Se f for uma funca
o polinomial de grau maior do que 2, as iteradas de
f (x)
T (x) = x f (x) convergem para uma raz de f
Infelizmente nao podemos aplicar o metodo arbitrariamente. Ele tem que ser
monitorado, ja vimos um exemplo grafico mostrando que nem sempre o metodo
funciona.

CAPITULO 2. RAIZES APROXIMADAS

68

Exemplo 4 Iteradas do metodo da tangente


Dentro do Gnuplot voce pode executar a sequencia de comandos abaixo. O
resultado ser
a o gr
afico das sucessivas retas tangentes cujas razes se aproximam
da raz x = 1 de
f (x) = x3 + x2 + x + 1
set xrange [-3:3]
f(x) = x**3 + x**2 + x + 1
df(x) = 3*x**2 + 2*x + 1
a = -2.0
reta(x) = f(a) + df(a)*(x-a)
plot reta(x),f(x),0
pause -2
a = a - f(a)/df(a) // calculo de novo valor para a
plot reta(x),f(x),0
pause -2
a = a - f(a)/df(a) // calculo de novo valor para a
plot reta(x),f(x),0
pause -2
a = a - f(a)/df(a)
plot reta(x),f(x),0
pause -2

// calculo de novo valor para a

a = a - f(a)/df(a)
plot reta(x),f(x),0
pause -2

// calculo de novo valor para a

a = a - f(a)/df(a) // calculo de novo valor para a


plot reta(x),f(x),0
pause -2
es, s
ao:
Os valores de a para seis iteraco
-2
-1.44444444444444444444
-1.13057124921531701193
-1.01497995228090965490
-1.00022106301976068486
-1.00000004885805680258
onde vemos o valor 1.00000004885805680258 para raz aproximada de
f (x) = x3 + x2 + x + 1; f (1) = 0

Veja outra iteraca


o, em que usamos como ponto inicial x = 20

(2.119)

CAPITULO 2. RAIZES APROXIMADAS

69

-20
-13.43755383290267011197
-9.05962558919570544190
-6.13716679398553077204
-4.18447916859825334681
-2.87926553135386543847
-2.01119102134060700997
-1.45135929223981982374
-1.13389377376757093773
-1.01570113608729869728
-1.00024268578025712329
-1.00000005888209635796
e vemos que novamente o algoritmo produz uma sucess
ao convergindo para a
raiz x = 1. Estas duas sequencias foram obtidas com calc e o programa
e o seguinte em que uma funca
o recursiva, principal() est
a se chamando a
si pr
opria enquanto o par
ametro p for estritamente positivo. Quando p = 0 o
processo para. Copie esta sequencia em um arquivo, por exemplo, raizes.calc
e depois chame
calc < raizes.calc
e voce poder
a repetir a experiencia feita acima. Troque a equaca
o da funca
o
para calcular razes de outras funco
es.
define principal(a,p)
{
if (p) {printf("%f \n",a);principal(T(a),p-1);}
}

define f(x){return x**3 +x**2 +x +1;}


define df(x){return 3*x**2 + 2*x + 1;}
define T(x) {return x - f(x)/df(x);}
principal(-2,10);
quit;
Na pen
ultima linha se encontra o comando que bota o programa para rodar:
principal(-2,10). O primeiro par
ametro, a = 2 e o ponto inicial, e o
segundo par
ametro, p = 10 e o n
umero de iteraco
es que desejarmos.
Troque a equaca
o de f e de sua derivada df e repita a experiencia com outra
funca
o. Logo no primeiro passo voce ver
a se o processo conduz, ou n
ao a alguma
raz.
Experimente
f (x) = x2 + 1

CAPITULO 2. RAIZES APROXIMADAS

70

que n
ao tem razes reais. Use um n
umero de pequeno de iteraco
es, 10 no
m
aximo.

2.6

Busca bin
aria

Vamos estudar aqui o metodo busca binaria para determinacao de razes.

A busca bin
aria e um metodo matematico antigo, o matematico Dedekind
o utilizou para definir n
umeros reais, os chamados cortes de Dedekind, que
consistem em dividir a reta racional em duas semi-retas, numa se encontra o
ponto13 (n
umero real desejado) e assim sucessivamente vai sendo dividido o
conjunto Q dos n
umero racionais ate se obter uma aproximacao desejada de um
n
umero real (ou uma sucessao convergente).
Vamos usar esta ideia para produzir uma sucessao de razes aproximadas
convergindo para uma raiz de f .
Precisamos encontrar um intervalo em que f troque sinal e o processo e
muito semelhante ao do metodo da reta secante.
Descricao matematica do metodo:
Suponha que que no intervalo [a, b] = [a0 , b0 ]
Hip
otese 1 Existencia de raz em um subintervalo
f troque de sinal,
ou f troque de sinal, e f seja pequena.
Este intervalo pode ser obtido com uma varredura que pare quando uma
destas duas condicoes for satisfeita.
Selecione o ponto medio do intervalo
s0 =

b0 a0
2

(2.120)

e repita o teste 1 para descobrir em qual das duas metades esta a raz
procurada e defina


[a0 , s0 ] = [a1 , b1 ]
[s0 , b0 ] = [a1 , b1 ]

se hipotese for verdadeira


se hipotese for verdadeira
s1 =

13 eta

b1 a1
2

erro l
ogico... se o ponto estivesse a n
ao seria uma reta racional...

(2.121)
(2.122)

CAPITULO 2. RAIZES APROXIMADAS

71

Itere o processo para obter o proximo intervalo;


O resultado deste processo e uma sucessao de intervalos cuja medida ser
a
sempre a metade do anterior, tendo partido de um intervalo de medida
r = b a = b0 a0
b a = b0 a0 = r
m([a0 , b0 ]) = r
m([a1 , b1 ]) = 2r
..
.

m([an , bn ]) =

r
2n

(2.123)
(2.124)
(2.125)
(2.126)
(2.127)

sendo esta uma convergencia muito rapida porque e dominada por progress
ao
geometrica de razao 12 . Veja abaixo o poder decrescente de uma progress
ao
geometrica num calculo executado por calc
C-style arbitrary precision calculator (version 2.11.10.1)
Calc is open software. For license details type: help copyright
[Type "exit" to exit, or "help" for help.]
; define f(n,r) {return r*power(1/2, n);}
f(n,r) defined
; r = 3
; k = 10
; for(n=0; n<= k; n++) {printf("%d --> %f \n", n, f(n,r));}
0 --> 3
1 --> 1.5
2 --> 0.75
3 --> 0.375
4 --> 0.1875
5 --> 0.09375
6 --> 0.046875
7 --> 0.0234375
8 --> 0.01171875
9 --> 0.005859375
10 --> 0.0029296875
;
na decima iterada, partindo de um intervalo de medida tres ja estamos com
um intervalo de medida 0.0029296875 e portanto ja teriamos uma aproximac
ao
da raiz com esta precisao. Como em geral vamos procurar mudancas de sinal
usando intervalos de medida 0.1 na decima iterada ja teriamos um intervalo medindo 0.00009765625 consequentemente nos oferecendo a raiz com esta precis
ao.

CAPITULO 2. RAIZES APROXIMADAS

72

Exemplo 5 C
alculo de uma raiz
Considere a funca
o
f (x) = x3 + x2 + x + 1

(2.128)

que tem uma u


nica raiz no ponto x = 1, veja isto fazendo o gr
afico desta funca
o
com Gnuplot. Coloque set xrange [-2:2] para obter um gr
afico mais ntido.
Vou chamar Calc
C-style arbitrary precision calculator (version 2.11.10.1)
Calc is open software. For license details type: help copyright
[Type "exit" to exit, or "help" for help.]
define f(x) {return power(x,3) + power(x,2) + x + 1}
f(x) defined
define busca_binaria(a,b,n){
local x = (a+b)/2;
if (n==0) {printf("%f \n",x); return x;}
else
if (f(a)*f(x) ==0) return x;
else if (f(a)*f(x) < 0) busca_binaria(a,(a+b)/2,n-1);
else busca_binaria((a+b)/2,b,n-1);}
busca_binaria(a,b,n) defined
; busca_binaria(-3,3,10);
-0.9990234375
; busca_binaria(-3,3,20);
-0.99999904632568359375
busca_binaria(-1.1,-0.9,3)
-1
quit;
observe que no u
ltimo c
alculo usamos um intervalo de medida 0.2 e a busca
bin
aria encontrou a raiz com 3 iteraco
es. N
ao acredite que buscas bin
arias
encontrem razes exatas... este e um resultado muito bom. Use as definico
es
expostas acima, em Calc para construir outros exemplos.
Exemplo 6 As razes de (x 3)2 (x + 3)sin( x2x+1 )
O programa raizes014.c procura razes usando busca bin
aria nos pontos de
sec
ancia e analisa a troca de sinal da derivada nos pontos de tangencia. Veja o
resultado do programa procurando as razes de
f (x) = (x 3)2 (x + 3)sin(

x2

x
)
+1

no intervalo [10, 10] em que h


a tres razes:
Raizes aproximadas - metodos da secante e tangente

(2.129)

CAPITULO 2. RAIZES APROXIMADAS

73

Forneca-me o intervalo [a,b] para busca de raizes:


a = -10.000000
b = 10.000000
Forneca-me o passo da malha para a busca:
Sugestao 0.01 < delta
< 0.5
delta = 0.050000
busca de raizes no intervalo [-10.000000, 10.000000]
Precisao da malha 0.050000
=================================================
Aperte <enter> para continuar
Raiz, por busca bin
aria, prov
avel, da fun
ca
~o no intervalo
[-3.049978, -2.999978]
valor de f no ponto -10.728836 --> 134.416962
Raiz, por busca bin
aria, prov
avel, da fun
ca
~o no intervalo
[-0.049980, 0.000020]
valor de f no ponto 27.644634 --> 672.242493
Raiz, por tang^
encia, prov
avel, da fun
ca
~o no intervalo
[2.950018, 3.000018]
valor de f no ponto 2.975019 --> 0.001109
Encontrei 3 intervalos onde ha raizes
este resultados foram captados pelo editor Joe dentro do qual eu rodei uma
vers
ao compilada do programa raizes014.c.
Observa
c
ao 4 Ponto fixo e busca bin
aria
Neste captulo estudamos o problema
f (x) = 0

(2.130)

resolver uma equacoes.


Fomos omissos em n
ao dizer que tudo que fizemos vale para funco
es polinomiais. Na verdade sabemos que vale para funco
es n
ao polinomiais tambem, mas
com algumas restrico
es. Por exemplo, a demonstraca
o que fizemos do metodo
das tangentes usou que a funca
o, cujas razes procuravamos, era polinomial.
Sem d
uvida sabemos um pouco mais sobre o assunto do que antes de iniciar
o captulo, sobre tudo sabemos que n
ao e f
acil resolver-se uma equaca
o. Algebricamente, as equaco
es polinomiais somente podem ser resolvidas com radicais
ate o grau quatro. Mesmo as equaco
es do grau tres e quatro oferecem razo
aveis
dificuldade para que as resolvamos usando as f
ormulas algebricas. Com um programa de computador, e com um monitoramento adequado do mesmo podemos
ir bem mais longe.
Como dissemos no incio do captulo, o nosso objetivo era tomar o problema
de resoluca
o de equaco
es como motivaca
o para o estudo de algumas tecnicas
matem
aticas e seus correspondentes algoritmos computacionais.
Estudamos assim os metodos cl
assicos para determinaca
o de razes,

CAPITULO 2. RAIZES APROXIMADAS

74

1. o metodo da secante;
2. o metodo da tangente;
aos quais associamos a tecnica computacional varredura.
Tambem estudamos dois metodos matem
aticos (e a correspondente implementaca
o computacional)
1. busca bin
aria;
2. sucess
oes recursivas;
3. ponto fixo.
O metodo do ponto fixo e muito mais profundo do que nos foi possvel discutir aqui. Tudo que fizemos foi partir da hip
otese de convergencia e usando a
continuuidade de uma funca
o fomos conduzidos a que o limite satisfaz a
` equaca
o
T (b) = b

(2.131)

Um ponto de T satisfazendo esta equaca


o, se chama ponto fixo .
Os pontos fixos sempre aparecem nas iteradas de uma funca
o e sempre usamos esta propriedade para resolver equaco
es. Relembre aqui o que j
a dissemos
no incio do captulo, estamos usando o problema para estudarmos tecnicas que
tem valor por si pr
opria.
Esta e uma delas, construir iteradas para encontrar pontos fixos que s
ao
soluco
es de equaco
es.
Esta tecnica e usada largamente na construca
o de soluco
es aproximadas de
equaco
es diferenciais. N
os dedicaremos, ao final do livro, um captulo a
` introduca
o deste assunto, onde voltaremos a usar o metodo do ponto fixo para
resolver estas equaco
es.

2.7

O problema completo

O ttulo e audacioso, problemas completos dificilmente existem. O que vou fazer


e juntar os pedacos, as discussoes feitas nas secoes anteriores, numa discuss
ao
final e apresentar-lhe um programa que faz todas estas analises conjuntamente.

O problema de busca de razes, na forma como o estudamos aqui, separa as


razes em dois tipos,
razes do tipo tangente, que na verdade se classificam algebricamente como
razes m
ultiplas porque, numa vizinhanca da raiz a funcao pode ser fatorada como
(2.132)
f (x) = (x a)n g(x) ; g(a) 6= 0

CAPITULO 2. RAIZES APROXIMADAS

75

em que n e o ndice de multiplicidade da raiz e um n


umero par. Se n for
par serao estas razes que estou classificando aqui como do tipo tangente,
nao ha troca de sinal em alguma vizinhanca da raiz;
razes do tipo secante podemos usar a notacao do item anterior e dizer que
f (x) = (x a)n g(x) ; g(a) 6= 0

(2.133)

com n impar. Neste caso ha troca de sinal da funcao em alguma vizinhanca


da raiz e podemos usar os metodos classicos:
busca de razes pelo metodo da secante;
busca de razes pelo metodo da tangente;
busca bin
aria. Este metodo, a busca binaria, pode ser usado quando
a multiplicadade da raiz for par, mas eu nao usei este metodo no
programa.
O programa raizes015.c faz isto salientando qual foi o metodo que ele
escolheu em cada raiz.
Testamos o programa com diversas funcoes com bons resultados, mas lhe
entregamos tambem o c
odigo fonte no modo habitual de programacao aberta.
Se voce melhorar o programa, distribua a melhor versao nao se esquecendo de
nos enviar uma copia, poruqe o conhecimento e universal, e de todos.
Veja o resultado do programa captado pelo editor Joe com pequenas alteracoes feitas por mim. Leia e rode o programa para fazer suas experiencias.
A funcao selecionada dentro do programa e
f (x) = (x + 3.4)4 (x + 3)2 (x + 2)3 (x 1)2 (x 3)sen(

x
x2 + 1

(2.134)

que nao chega a ser uma funcao realmente maldosa. Bastaria acrescentar um
termo como sen(3x) para deixar o programa instavel. Esta instabilidade pode
ser resolvida com uma mudanca de variaveis, entretanto, como eu ja disse diversas vezes, nao ha programa que possa funcionar sozinho, eles tem que ser
monitorados.
O programa conseguiu encontrar todas as razes quando usei o passo 0.0001
com passo maior ele perde alguma das razes.
Raizes aproximadas - metodos da secante e tangente
Forneca-me o intervalo [a,b] para busca de raizes:
a = -10.000000
b = 10.000000
Forneca-me o passo da malha para a busca:
Sugestao 0.01 < delta
< 0.5
delta = 0.050000 0.0001
busca de raizes no intervalo [-10.000000, 10.000000]

CAPITULO 2. RAIZES APROXIMADAS

Precisao da malha 0.000100


=================================================
==== Quando a derivada troca de sinal - tang^
encia =====
Raiz, por tang^
encia, prov
avel, da fun
ca
~o no intervalo
[-3.400079, -3.399979]
valor de f no ponto -3.400029 --> -0.000000
====
fim do caso troca de sinal da derivada =====

==== Quando a derivada troca de sinal - tang^


encia =====
Raiz, por tang^
encia, prov
avel, da fun
ca
~o no intervalo
[-3.000090, -2.999990]
valor de f no ponto -3.000040 --> -0.000000
====
fim do caso troca de sinal da derivada =====

============= Tr^
es m
etodos ===========
Raiz prov
avel da fun
ca
~o no intervalo [-2.000017, -1.999917]
========1o m
etodo: por busca bin
aria =======
valor de f no ponto -2.000000 --> 0.000000
========2o m
etodo: pelo m
etodo da secante =========
valor de f no ponto -2.000012 --> -0.000000
========3o m
etodo: pelo m
etodo da tangente ========
valor de f no ponto -1.999998 --> 0.000000
======== fim do caso troca de sinal ========

============= Tr^
es m
etodos ===========
Raiz prov
avel da fun
ca
~o no intervalo [-0.000097, 0.000003]
========1o m
etodo: por busca bin
aria =======
valor de f no ponto -0.000000 --> 0.000984
========2o m
etodo: pelo m
etodo da secante =========
valor de f no ponto -0.000000 --> 0.000000
========3o m
etodo: pelo m
etodo da tangente ========
valor de f no ponto 0.000000 --> -0.000250
======== fim do caso troca de sinal ========

==== Quando a derivada troca de sinal - tang^


encia =====
Raiz, por tang^
encia, prov
avel, da fun
ca
~o no intervalo
[0.999956, 1.000056]
valor de f no ponto 1.000006 --> -0.000006
====
fim do caso troca de sinal da derivada =====

76

CAPITULO 2. RAIZES APROXIMADAS

77

============= Tr^
es m
etodos ===========
Raiz prov
avel da fun
ca
~o no intervalo [2.999995, 3.000095]
========1o m
etodo: por busca bin
aria =======
valor de f no ponto 3.000000 --> 0.000000
========2o m
etodo: pelo m
etodo da secante =========
valor de f no ponto 3.000000 --> 0.000000
========3o m
etodo: pelo m
etodo da tangente ========
valor de f no ponto 3.000000 --> 0.000000
======== fim do caso troca de sinal ========

Encontrei 6 intervalos onde ha raizes

2.8

Interse
c
ao de gr
aficos
Discutimos at
e agora a soluca
o do problema
f (x) = 0
mas
e muito mais frequente precisarmos de resolver o problema
f (x) = g(x)
em que f, g s
ao duas funco
es dadas. Evidentemente que este problema se
reduz ao anterior, entretanto h
a t
ecnicas especficas para resolver o segundo
problema que vamos discutir nesta seca
o.

Uma express
ao da forma f (x) = g(x) pode ser escrita como
h(x) = f (x) g(x) = 0 h(x) = 0
e portanto podemos dizer que este nao e um novo problema que estamos estudando.
Mas as peculiaridades em que o problema f (x) = g(x) se encontra, ou as
aplicacoes que podem ser modeladas por este problema justificam que nos lhe
demos uma atencao diferenciada como logo voce ira ver.
Vamos comecar lendo o grafico na figura (fig. 2.11) pagina 78.
Este e um caso interessante que descreve uma gama de problemas do tipo
f (x) = g(x) ou f (x) g(x)
Analisando o grafico vemos:
Temos um intervalo [a, b]
f (a) = g(a) e f (b) = g(b)
f (a) > g (a) e f (b) < g (b)
c ; c (a, b) ; f (c) = g (c)

(2.135)

CAPITULO 2. RAIZES APROXIMADAS

78

f(a) < g(a)

f
f(a) > g(a)

f(c) < g(c)

Figura 2.11:

Interseca
o de curvas

ou seja, temos duas funcoes e algum ponto do domnio as derivadas delas se


alternam em tamanho.
Se por um momento aceitarmos a linguagem mecanica14 diremos que pode
haver um momento em que o grafico de g passe o grafico de f porque a derivada
representa a taxa de crescimento.
Pelo teorema do valor medio tem que haver um ponto no interior do intervalo,
c (a, b), tal que neste ponto as derivadas se igualem.
Vejamos uma classe de problemas que podemos resolver com estes dados.
Exemplo 7 Conhecemos tudo sobre um dos pontos
Sabemos que
f (a) = g(a)
f (a) > g (a)
e podemos provar que a partir de um certo valor x = b
f (x) < g (x)

(2.136)

ent
ao e possvel encontrar outra soluca
o b > a para o problema f (x) = g(x)
Cosidere
g(x) = x
f (x) = 2(1 ex ) ; f (x) = 2ex 0 quando x cresce
f (0) = g(0) = 0 ; f (0) = 2 > g (0) = 1

(2.137)
(2.138)
(2.139)

Como f decresce muito rapidamente, e possvel que haja outra soluca


o para o
problema f (x) = g(x) quando x > 0.
14 que

usualmente rejeitamos, tal como tende para limite

CAPITULO 2. RAIZES APROXIMADAS

79

Vamos analisar o que nos diz o Teorema do Valor medio para derivadas, se
em algum ponto f (x) = 1
f (x) = 2ex = 1 ex = 12
ex = 2 x = ln(2)

(2.140)
(2.141)
(2.142)

Temos que procurar uma raz a a partir de x = ln(2) 0.69314718 o que


faremos usando um dos nossos programas:
a = 0.69314718
b = 10
Sua busca de raizes no intervalo [ 0.693147 , 10.000000 ]
Forneca-me o passo delta da malha para a busca:
Sugestao 0.01 < delta
< 0.5
delta = 0.001
Precisao da malha 0.001000
=================================================
Aperte <enter> para continuar
Procurando raizes do tipo secante
Raiz, por secancia, provavel, da funcao no intervalo
[1.593147,1.594147]
valor de f no ponto 1.593647 com 13 iteracoes --> 0.000014
Observe somente o detalhe que ponto medio do Teorema do Valor medio n
ao e a
media aritmetica entre os pontos a, b que resolvem o problema, mas se encontra
razoavelmente pr
oximo do ponto medio.
Em outras palavras, 2ln(2) e uma aproximaca
o da raz.
Uma aplicacao desta questao a determinacao da area entre duas curvas.
Neste caso nao queremos encontrar todas as solucoes do problema f (x) = g(x).
Desejamos encontrar aquelas que ficam nos extremos de um intervalo que e a
projecao, no eixo OX da regiao cuja area desejamos calcular.
Um caso comum e que voce pode ver no grafico (fig. 2.12)
graf (f ) graf (g) = {(a, f (a)), (b, f (b))}
as duas curvas se cortam em exatamente dois pontos. O valor da area da regi
ao
limitada por elas e
Zb
| (f (x) g(x))dx|
a

e temos que encontrar as duas razes do problema f (x) = g(x).


O calculo, com grande acuracidade de razes somente pode ser feito com
auxlio de programas de computador, entretanto, a determinacao grosseira

CAPITULO 2. RAIZES APROXIMADAS

80

Figura 2.12:

Regi
ao cuja a
rea queremos calcular

de um intervalo onde haja raz15 pode ser feito com auxlio de uma m
aquina
de calcular eletronica e isto e o que se espera na lista de exerccios a seguir
proposta.
Exerccios 10 Raizes de funco
es
1. Considere f (x) = x5 + x2 4
(a)
(b)
(c)
(d)

Mostre que f tem apenas duas razes, x0 < x1 .


Prove, sem fazer c
alculos numricos que f (x0 ) > f (x1 )
Prove fazendo algum c
alculo numrico que 0 > f (x0 ) > f (x1 )
Prove que f tem uma u
nica raz real e determine um intervalo onde
esta raz se encontra Resposta f (0) < 0, f (2) > 0

2. Encontre um intervalo contendo exatamente uma raz de


f (x) = x 10000sen(x)
3. Calcule a a
rea da regi
ao limitada pelos gr
aficos das par
abolas, figura
y = x2 x 12 ; y = x2 x + 12
(fig. 2.13) p
agina 81,
4. As curvas
g(x) = (x2 + x 12)cos(

x
x
) ; f (x) = (x2 x 12) sin( )
2
2

se cortam segundo tres pontos no intervalo [7, 7], veja a figura


y = x2 x 12 ; y = x2 x + 12
(fig. 2.14) p
agina 81,
Encontre os dois pontos mais distantes (ignore o ponto medio) e calcule a
a
rea indicada na figura.
15 ou

no plural, a determinaca
o dos intervalos onde haja razes

CAPITULO 2. RAIZES APROXIMADAS

81

15

f(x)
g(x)
0

10

10

15
4

Figura 2.13:

a
rea limitada por duas par
abolas

100

f(x)
g(x)
0

80
60
40
20
0
20
40
60
80
100
10

Figura 2.14:

a
rea limitada por duas curvas

10

Captulo 3

Sucess
oes recursivas
Os babil
onios conheciam um m
etodo pr
atico, ver [?], para c
alcular razes
quadradadas, que vamos usar como introduca
o para o assunto deste captulo
porque
e um algoritmo recursivo.
Recursividade
e um m
etodo em que uma funca
o f chama a si pr
opria.
A recursividade
e conhecida e usada em Matem
atica h
a mil
enios, como o
algoritmo do c
alculo de ra
zes quadradas, mas recentemente (desde 1970), com
LISP, vem sendo usada em programas de computador produzindo algoritmos
bastante otimizados.

3.1

Babil
onios e raz quadrada
Vamos usar o algoritmo dos babilonios para calcular razes quadradas como motivacao para o assunto deste captulo.
Uma sequencia e recursiva se for definida em funcao dos seus
proprios termos: xn = f (xn1 , . . . , x1 ) em que f e uma express
ao
legal (computacional ou matematica).

Escolhemos o algoritmo dos babilonios para servir de introducao (e motivacao) para o assunto deste captulo por duas razoes:
pela sua antiguidade provavel de mais de 4.000 anos e assim nos educamos
no respeito dos antigos e do antigo contra o mito de que o moderno e que
bom;
pela sua alta precisao, com auxlio de uma maquina de calcular com
memoria, com algumas iteradas, quatro ou cinco, voce obtem uma raiz
quadrado com boa precisao.

Uma primeira aproximacao para a vem da desigualdade entre a media


aritmetica e a media geometrica:
82

CAPITULO 3. RECURSIVIDADE

83

Teorema 2 Desigualdade aritmetico-geometrica Se a, b > 0 temos

ab

a+b
2

(3.1)

Dem :

a+b
2

ab

a +2ab+b
4
2ab + b2

ab ( a+b
)2 =
2
4ab

a2

(3.2)

0 a2 2ab + b2 = (a b)2

(3.3)
(3.4)
(3.5)

e como a u
ltima equac
ao
e verdadeira e as anteriores s
ao equivalentes alg
ebricas dela, ent
ao
a primeira
e verdadeira. q.e.d .

Este teorema vale para um n


umero qualquer de termos, ver [26], mas aqui
e suficiente o caso da media entre dois n
umero positivos, mais exatamente 1, a
em que a e o n
umero positivo cuja raz quadrada desejamos.

Se a > 1 entao 1 < a < a e 1 < a+1


< a;
2

Se 0 < a < 1 entao 1 > a > a e 1 > a+1


2 > a;
portanto os n
umeros

1+a
, a
2
se encontram ambos entre 1 e a ate porque ambos sao a media entre 1, a, um a
media aritmetica, o outro a media geometica, pelo teorema (2).

Assim temos uma estimativa inicial, e de muito baixa precisao, para a


como consequencia da desigualdade aritmetico-geometrica

assim

a=

1a

a+1
2

(3.6)

a+1
2

Exemplo 8 Raiz quadrada de 10

10 + 1
= 5.5
2
Podemos ver neste exemplo como a estimativa fornecida pela desigualdade
aritmetico-geometrica e de baixa classe. Mas os babil
onios h
a mais de 4.000
anos souberam iterar esta estimativa obtendo um algoritmo que fornece a raz
quadrada com grande precis
ao depois de alguns passos.
Uma observaca
o simples conduz ao algoritmo dos babil
onios.

1
Se tivermos uma estimativa inicial, digamos, x, para a raz quadrada a
o:
ent
ao, xa e outra aproximaca
10

a
a
= a
x
a
1e

temos, que
e a m
edia com a unidade

(3.7)

CAPITULO 3. RECURSIVIDADE

84

a menor do a.
a ent
ao xa ser

ao xa ser
a maior do a.
Se x for menor do que a ent
Se x for maior do que

Quer dizer que temos duas aproximaco


es, (no segundo caso)

a
a
x, ; x < a <
x
x

uma menor e outra maior do que a logo a


` media das duas que vai ser,
melhor do que uma delas.

Definimos (definiram os babil


onios)
g(x) =

x+
2

a
x

a + x2
2x

(3.8)

cuja derivada e

; g ( a) = 0

g (x) > 0 x > a

g e crescente x > a

x>a

g( a) = a g(x) > a

<x
x > a g(x) = x+a/x
2

x > a g(g(x)) < g(x)


g (x) =

x2 a
2x2

(3.9)
(3.10)
(3.11)
(3.12)
(3.13)
(3.14)

Com estas propriedades podemos deduzir (possivelmente n


ao foi assim que
os babil
onios provaram)

uma primeira aproximaca


o s 0 = x > x

a < s1 = g(s0 ) < s0

g( a) = a < g(s1 ) = s2 < s1

a < g(s1 ) = s2 < s1 < s0


..
.

hip
otese: a < sn = g(sn1 ) < sn1

g( a) = a < g(sn ) = sn+1 < sn

e assim provamos por induca


o parte do Teorema
Teorema 3 algoritmo dos babil
onios

(3.15)
(3.16)
(3.17)
(3.18)
(3.19)
(3.20)
(3.21)
(3.22)

CAPITULO 3. RECURSIVIDADE

85

A sucess
ao (sn )n definida recursivamente por

a
x e uma
aproxima
c
a

o
de

x> a
s0 = g(x)

sn = g(sn1 )

e decrescente e limitada por a logo converge para um limite

sn l = a

(3.23)

(3.24)

Dem :

Falta prova apenas a u


ltima afirmac
ao do teorema, que o limite
e exatamente a.
Para isto observemos que g
e contnua, portanto preserva limite o que significa que
lim g(sn ) = g(lim sn )
n

(3.25)

A direita na equac
ao (25) temos
lim sn+1 = l

(3.26)

g(lim sn ) = g(l)

(3.27)

g(l) = l

(3.28)

e a esquerda na equac
ao (25) temos
n

o que nos leva

Substituindo na equac
ao de g, (8), temos

g(l) =

l2 + a
=l
2l

l2 + a = 2l2

l=

(3.29)

q.e.d .

Defini
c
ao 1 Ponto fixo
Quando uma funcao g satisfizer a equaca
o (28), dizemos que o valor l e um
ponto fixo de g.
A sucess
ao seguinte de equaco
es mostra como eles faziam:
0
= x0 +10/x
2
1
= x1 +10/x
2
2
= x2 +10/x
2
3
= x3 +10/x
2
4
= x4 +10/x
2

e usando x5 como aproximaca


o de 10 temos

x0
x1
x2
x3
x4

=1
= 5.5
= 3.6590909
= 3.196005
= 3.162455

x1
x2
x3
x4
x5

x1
x2
x3
x4
x5

= 5.5
= 3.6590909
= 3.196005
= 3.162455
= 3.1622776

x25 = (3.1622776)2 = |9.999999


{z } 61946176

que n
os d
a 10 x25 < 0.0000004 =

4
107

(3.30)

CAPITULO 3. RECURSIVIDADE

86

Vejamos mais um exemplo, calculando a raz

1000.

Exemplo 9 A raz de 1000


x0
x1
x2
x3
x4
x5
x6
x7

=1
= 500.5
= 251.249
= 127.6145
= 67.7253273
= 41.2454260
= 41.2454260
= 32.74526

x1
x2
x3
x4
x5
x6
x7
x8

=
=
=
=
=
=
=
=

x0 +1000/x0
2
x1 +1000/x1
2
x2 +1000/x2
2
x3 +1000/x3
2
x4 +1000/x4
2
x5 +1000/x5
2
x6 +1000/x6
2
x7 +1000/x7
2

x1
x2
x3
x4
x5
x6
x7
x8

= 500.5
= 251.249
= 127.6145
= 67.7253273
= 41.2454260
= 32.74526
= 32.74526
= 31.62278

x28 = (31.62278)2 = |1000.000


{z } 2149284

(3.31)

Os exemplos sao eloquentes, mostram que um povo primitivo, como os


babilonios, usavam um metodo ha mais de 4.000 anos que continua hoje imbatvel...
Nos nao temos nada melhor, para calcular razes quadradas, a n
ao ser
maquinas com recursos formais. Por exemplo, o calculo acima, feito em Calc
tem o seguinte aspecto:
;
;
;
;
;
;
;
;
;
;
;

y=1
y=(y+1000/y)/2
y=(y+1000/y)/2
y=(y+1000/y)/2
y=(y+1000/y)/2
y=(y+1000/y)/2
y=(y+1000/y)/2
y=(y+1000/y)/2
y=(y+1000/y)/2
y=(y+1000/y)/2
y
~31.62277660168433424334
; y**2
~1000.00000000003421099649
em que, tudo que precisamos, fazer foi apertar a seta para cima no teclado
tudo que podemos fazer para melhorar o algoritmo dos
do micro, oito vezes. E
babilonios.
Resta-nos agora entender o que se encontra por tras do metodo, e o que
passaremos a fazer.
Exerccios 11 Medias e razes
1. Calcule as medias aritmeticas e geometricas dos pares de n
umeros

CAPITULO 3. RECURSIVIDADE

87

12

f(x)
x
0
"data"

10
8
6
4
2
0

Raz

aproximada
de 10

Figura 3.1:
a
1
2
0.2
0.2

Determinaca
o de

b
2
4
0.4
1

a+b
2

10

ab

2. Calcule a media aritmetica ponderada dos objetos dados considerando os


pesos indicados
a1 , a2 , a3

p1 , p2 , p3

3
P

pi ai

i=1

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

0.1, 0.2, 0.7


0.4, 0.3, 0.3
1 1 1
3, 3, 3
1 1 1
6, 3, 2
1 1 1
6, 3, 2

3. Calcule, aproximadamente, as razes quadradas dos n


umeros indicados,
usando o metodo dos babil
onios, ate a quarta iterada, e indique o erro
cometido:

a
x4
a
1
2
20
200
O gr
afico (fig. 3.1), mostra a realizacao do algoritmo dos babilonios (para
raz quadrada de 10). Nele podemos ver a funcao identidade e grafico de
g(x) =

x + 10/x
2

CAPITULO 3. RECURSIVIDADE

88

com a sucessao de pontos que vai sendo obtida com a iteradas de g para obter
a sucessao recursiva (xn )n cujo limite e o ponto fixo

( 10, g( 10)).
Voce pode repetir este processo inclusive com outras razes quadradas usando
o programa em C que apresentamos logo a seguir.
Exerccios 12 Sequencias recursivas
1. Matem
atica Social Escolha uma funca
o f (sem combinar com seus colegas
de trabalho) tal que graf (f ) e o o gr
afico da primeira bissetriz y = x se
cortem no primeiro quadrante e que2 hipergraf (f ) seja convexo.
Considere x0 > 0 escolhido arbitrariamente (sem combinar com seus colegas de trabalho) e construa graficamente a sucess
ao de pontos no plano
(n n
ao menor do que 4)

(x0 , x0 )
(x0 , f (x0 )) ; x1 = f (x0 )

(x1 , x1 )
(x1 , f (x1 )) ; x2 = f (x1 )
(3.32)

(xn , xn ) (xn , f (xn )) ; xn+1 = f (xn )

e agora compare o seu resultado com o dos seus colegas de trabalho para
tirar uma conclus
ao.

2. Verifique (geometricamente) que a funca


o f (x) = ln(x) n
ao pode definir
uma sucess
ao recursiva xn+1 = f (xn ) convergente. Justifique.
3. Verifique quais das funco
es seguintes produz uma sucess
ao recursiva convergente, e em que regi
ao isto se d
a (se der). Sugest
ao faca um gr
afico
contendo graf (f ), graf (y = x).
f
a)f (x) = x + 3
c)f (x) = x2
e)f (x) = x2 9

[a, b]

Os exercos acima estao longe de esclarecer a importancia ou os metodos


como tratar sucess
oes recursivas que e um vasto topico dentro do qual se encontra o algoritmo dos babil
onios.

3.1.1

Um programa em C

O programa se chama raizq graf.c e voce pode encontra-lo em [20].


2o

hipergr
afico de f
e o conjunto dos pontos (x, y) tal que y f (x) -
e o conjunto limitado
inferiormente pelo graf (f )

CAPITULO 3. RECURSIVIDADE

89

Os modulos do programa sao, a funcao


g(x, a) =

x + a/x
2

ao no
em que deixamos a como parametro de formas que uma pequena alterac
programa permite que ele rode na linha de comandos.
A funcao principal, main(), que e obrigatoria em todo programa em C ou
C + + e que puxa o script do teatro.
Alguns comandos colocados na funcao principal para criar o arquivo data
onde se encontram as linhas que Gnuplot ira tracar.
Um arquivo que chamamos transfere e que contem os comando de Gnuplot
e que serao chamados internamente pelo programa uma vez que quem vai fazer
tudo e o programa em C.
O programa contem comentarios para ajuda-lo a compreender o que ele, faz,
mas voce deve ler os arquivos data e transfere que o programa cria, para
compreende-lo melhor. E, finalmente, escreva um e-mail ao autor, com suas
d
uvidas, ou consulte um hacker em computacao a sua volta, eles sao, em geral,
benignos.
O comando para compilar o programa e
gcc -Wall -oprog -lm programa.c
em que programa.c e o nome do arquivo onde voce guardou o texto acima, e gcc
e o nome do compilador C que acompanha qualquer distribuicao Linux. Compilado o programa voce o pode rodar (executar) o executavel, prog, digitando
numa shell do Linux
./prog
no diretorio onde se encontra o programa gravado.
O programa descrito acima constroi qualquer exemplo de raz quadrada que
voce desejar, implementando o metodo dos babilonios. Ele cria dois arquivos: data e transfere. Se voce apenas quiser rever3 o grafico, digite numa shell
(Linux)
gnuplot transfere
e voce voltara a ver o grafico recem feito com o programa. Ou, simplesmente,
rode novamente4 o
programa com os mesmos dados. O programa fara, automaticamente, o caso 2 se voce apenas der, enter, como resposta a todas as
perguntas. Movendo o cursor, sobre a tela grafica do Gnuplot, voce pode ver
o valor aproximado da raz escolhida. Nao espere conseguir grande precis
ao,
nesta visualizacao.

3.2

Fundamentos da converg
encia de iteradas

Exemplificamos, com o algoritmo dos babilonios da raz quadrada, que um tipo


de sucessao, que designamos por recursivas eram convergentes. Tambem j
a
vimos que o metodo das tangentes e gerado por uma funcao recursiva:
3 enquanto

voc
e n
ao der enter, o gr
afico ficar
a presente na tela
voc
e tiver problemas com o programa, ou n
ao rodar Linux em seu computador, solicite
uma vers
ao do programa, ao autor, indicando qual o sistema que roda em seu computador
4 se

CAPITULO 3. RECURSIVIDADE

g(x) = x

90

f (x)
; xn+1 = g(xn )
f (x)

(3.33)

Desejamos agora demonstrar os fatos, descobrir em que condicoes podemos


garantir que uma sucessao
xn+1 = g(xn )
(3.34)
seja convergente. Vamos usar a aproximacao linear
g(b) g(a) = g (a)(x a) + o(|x a|)
x2 x1 = g(x1 ) g(x0 ) = g (x0 )(x1 x0 ) + o(|x1 x0 |)
|x2 x1 | = |g(x1 ) g(x0 )| |g (x0 )| |x1 x0 |

|xn+1 xn | = |g(xn ) g(xn1 )| |g (xn1 )| |xn xn1 |

(3.35)
(3.36)
(3.37)
(3.38)
(3.39)

Estes calculos nos mostram que precisamos da hipotese de que g seja diferenciavel e que em uma vizinhanca do ponto inicial x0 o modulo da derivada
seja menor do que 1. Se isto acontecer podemos deduzir das equacoes acima:
|x2 x1 | = |g(x1 ) g(x0 )| |g (x0 )| |x1 x0 |
|x3 x2 | = |g (x1 )| |x2 x1 | |g (x1 )||g (x0 )| |x1 x0 |
|xn+1 xn |

n1
Y
k=0

(3.40)
(3.41)

(3.42)

|g (xk )||x1 x0 |

(3.43)

Considerando os fatores na equacao (eq. 43) seja


r = max(|g (x0 )|, . . . , |g (xk )|, . . . , |g (xn1 )|) < 1

(3.44)

podemos deduzir da (eq. 43)


|xn+1 xn | r n |x1 x0 |

(3.45)

e assim comparar a sucessao (xn ) com uma sucessao geometrica convergente.


Demonstramos assim o Teorema
Teorema 4 Teorema do ponto fixo
Se uma sucess
ao recursiva xn+1 = g(xn ) em que g e uma funca
o diferenci
avel
e tal que exista um domnio [a, b] a cujo interior pertenca o ponto x0 e que
|g | < r < 1 em [a, b] ent
ao a sucess
ao recursiva xn+1 = g(xn ) converge para
um ponto a de forma mais r
apida que uma sucess
ao geometrica de raz
ao r e o
ponto a = lim xn e um ponto fixo de g
n

Au
ltima parte da tese do Teorema e o resultado das contas que fizemos na
secao anterior, com o algoritmo dos babilonios para a raz quadrada. Embora

CAPITULO 3. RECURSIVIDADE

91

o ponto fixo no caso daquele algoritmo tenha sido obtido num caso especial de
funcao contnua, o arqumento aqui seria o mesmo.
Ha varios teoremas do ponto fixo, nos demonstramos acima um caso particular e bem simples que atende `as nossas necessidades aqui. Mas o estudioso
de an
alise ira encontrar mais a frente outras formulacoes deste teorema quando
vera, entretanto, que a questao gira em torno das mesma ideias, poder garantir
que a funcao g que define uma certa sucessao recursiva funcione como um freio
interno da sucessao. Tais funcao satisfazem `a desigualdade
|g(a) g(b)| < |a b|
portanto elas contraem a imagem e poristo se chamam de contracoes. Quando
a derivada for menor do que 1 em modulo temos uma contracao, e foi isto que
usamos na demonstracao do teorema-4.

3.3

O algoritmo babibil
onio
e convergente

Para terminar o projeto, queremos mostrar que o algoritmo babibilonio para


razes quadradas satisfaz `as hipotses do teorema do ponto fixo, e portanto converge.
Vimos que o algoritmo depende da funcao
x+
a
g(x) = (x + )/2 =
x
2
cuja derivada e g (x) =

1
2

a
x

(3.46)

a
2x2 .

g (x) = 0 = 1

a
= 0 = x = a
2
x

(3.47)

quer dizer que, para x > 0 o grafico conjunto de g e da primeira bissetriz e da


forma (fig. 3.2) ou da forma (fig. 3.3)

Figura 3.2:

Ponto inicial menor do que

CAPITULO 3. RECURSIVIDADE

92

xo

Figura 3.3:

Ponto inicial maior do que

Nos dois tipos de graficos, (fig. 3.2) ou (fig. 3.3), vemos que o gra
fico
de g
corta a primeira bissetriz na imagem do ponto fixo sobre o graf (g), ( a, a).
Como g e assntota `a funcao
x
y=
2

e no ponto ( a, a) a derivada de g e zero, entao se x0 for grande, quer dizer
maior do que a, entao |g (x0 )| < 1.
Consideremos entao o intervalo I = [ a, ). Sobre I a hipotese do (Teorema
4) e atendida porque como g(x) < x entao g(g(x))< g(x) e portanto xn I, o
que termina a demonstracao se escolhermos x0 > a.
Mas
podemos considerar um ponto inicial x0 pequeno, isto e, menor do
que a. Mas neste caso
x1 = g(x0 ) = x0 +

x0 + xa0 > a

a
x0

a 2
) >a
x0
x20 + 2a + ( xa0 )2 > a
x20 + a + ( xa0 )2 > 0

(x0 +

(3.48)
(3.49)
(3.50)
(3.51)
(3.52)

provando que x1 I portanto, se escolhermos um ponto inicial pequeno o segundo ponto da sucessao obtida pelas iteracoes de g sera grande, pertentecer
a
ao intervalo I e portanto a sucessao
(xn )n1 I

(3.53)

satisfaz ao (Teorema 4).


Provamos assim que o algoritmo dos babil
onios para razz quadrada converge
e muito rapido.
Teorema 5 Algoritmo babil
onio para raz quadrada
x+a/x
A funca
o g(x) = 2 define uma sucess
ao recursiva a partir de um ponto
pa

qualquer x0 > 3 sendo o seu ponto fixo a.

CAPITULO 3. RECURSIVIDADE

3.4

93

Exerccios

1. Escreva os 5 primeiros termos das seguintes sucessoes definidas recursivamente


a)sn = sn1 + sn2
c)sn = 1 + sn1
e)sn = nsn1
b)sn = sn1 + sn2
d)sn = 1 + sn1
f)sn = nsn1

s0 = 0; s1 = 1
s0 = 1
s0 = 2; s1 = 1
s0 = 1; s1 = 1
s0 = 1
s0 = 3; s1 = 1

2. Escreva o loop em pseudo linguagem de programaca


o5 que calcula cada
uma das sucessoes
a)sn+1 = sn + sn1
c)sn+1 = sn sn1
e)sn+1 = sn sn1
b)sn+1 = sn /sn1
d)sn+1 = (n + 1)sn
f)sn+1 = nsn

s0 = 1; s1 = 1
s0 = 1; s1 = 2
s0 = 2;
s0 = 1; s1 = 1
s0 = 1; s1 = 1
s0 = 3;

3. serie, termos geral Escreva a equacao de Sn sabendo que


Sn+1 Sn = an ; S0 = 0

(3.54)

em que a sucessao a = (an )nN e dada.


4. Escreva a equacao de Sn sabendo que
Sn+1 Sn = an ; S0 = 0

(3.55)

em que a sucessao a = (an )nN e dada


Sn+1
a)Sn+1
c)Sn+1
e)Sn+1

an
1
n
n2

Sn+1
b) Sn+1
d) Sn+1
f) Sn+1

an
1
n
1
n2
3

5. Seq
uencia de Fibonacci6
A seq
uencia de Fibonacci e definida, recursivamente, como
s0 = 1

(3.56)

s1 = 1
n > 1sn = sn1 + sn2

(3.57)
(3.58)

Calcule alguns termos de s e escreva o loop que calcule s Resposta e


exatamente um dos exerccios anteriores.
5 chamamos de pseudo linguagem de programa
ca
o uma sequ
encia de comandos que poderiam pertencer a uma determinada linguagem de programaca
o, aquilo que
e habitual fazer
em cursos introdut
orios de programaca
o com o nome de algoritmo

CAPITULO 3. RECURSIVIDADE

3.5

94

Solu
c
ao de alguns exercicios

1. (ex. 1) pagina 93
(a)
sn = sn1 + sn2 ; s0 = 0; s1 = 1
s2 = 1; s3 = 2; s4 = 3; s5 = 5;

(3.59)
(3.60)

sn = sn1 + sn2 ; s0 = 1; s1 = 1
s2 = 2; s3 = 3; s4 = 5; s5 = 8

(3.61)
(3.62)

(b)

(c)
sn = 1 + sn1 ; s0 = 1

(3.63)

s1 = 2; s2 = 3; s3 = 4; s4 = 5; s5 = 6

(3.64)

sn = 1 + sn1 ; s0 = 1
s1 = 0; s2 = 1; s3 = 2; s4 = 3; s5 = 4

(3.65)
(3.66)

(d)

(e)
sn = nsn1 ; s0 = 2; s1 = 1

(3.67)

s2 = 2; s3 = 6; s4 = 24; s5 = 120

(3.68)

sn = nsn1 ; s0 = 3; s1 = 1
s2 = 2; s3 = 6; s4 = 24; s5 = 120;

(3.69)
(3.70)

(f)

2. (ex. 2) pagina 93
(a) entrada de dados: n;
int S=0, a0=1, a1=1,contador=2;
if (n ==0 ) return(a0);
if (n == 1) return(a1);
while(contador <=n)
{
S = a0 + a1;
a0 = a1;
a1 = S;
contador++; // contador = contador + 1
}

CAPITULO 3. RECURSIVIDADE

0
1
2
3
4
5
6
7
8
9
10
(b)

(c)

return(S); // saida de dados do programa


1
1
2
3
5
8
13
21
34
55
89

float S=1; // produto e divisoes, inicio 1


float a0=2.0, a1=1.0;
int
contador=2;
printf("%d %f \n %d %f \n",0,a0,1, a1);
if (n == 0 ) return(a0);
if (n == 1 ) return(a1);
while(contador <=n)
{
S = a1/a0; // s(n+1)
printf("%d %f \n",contador, S);
a0 = a1; // s(n-1)
a1 = S; // s(n)
contador++;
}
0 2.000000
1 1.000000
2 0.500000
3 0.500000
4 1.000000
5 2.000000
6 2.000000
7 1.000000
8 0.500000
9 0.500000
10 1.000000
float S=1; // produto e divisoes, inicio 1
float a0=1.0, a1=2.0;
int
contador=2;
printf("%d %f \n %d %f ",0,a0,1,a1);
if (n == 0 ){printf("%d %f \n ",0,a0); return(a0);}
if (n == 1 ){printf("%d %f \n ",1,a1); return(a1);}
while(contador <=n)
{

95

CAPITULO 3. RECURSIVIDADE

S = a1*a0; // s(n+1)
printf("%d %f \n",contador, S);
a0 = a1; // s(n-1)
a1 = S; // s(n)
contador++;
}
0 1.000000
1 2.000000 2 2.000000
3 4.000000
4 8.000000
5 32.000000
6 256.000000
7 8192.000000
8 2097152.000000
9 17179869184.000000
10 36028797018963968.000000
(d)

float S=1; // produto e divisoes, inicio 1


float a0=1.0, a1=1.0;
int
contador=2;
printf("%d %f \n %d %f \n ",0,a0,1,a1);
if (n == 0 ){printf("%d %f \n ",0,a0); return(a0);}
if (n == 1 ){printf("%d %f \n ",1,a1); return(a1);}
while(contador <=n)
{
S = contador*a1; // s(n+1)
printf("%d %f \n",contador, S);
a1 = S; // s(n)
contador++;
}
0 1.000000
1 1.000000
2 2.000000
3 6.000000
4 24.000000
5 120.000000
6 720.000000
7 5040.000000
8 40320.000000
9 362880.000000
10 3628800.000000

(e)

float S=1; // produto e divisoes, inicio 1


float a0=2.0;
int
contador=1;

96

CAPITULO 3. RECURSIVIDADE

printf("%d %f \n ",0,a0);
if (n == 0 ){printf("%d %f \n ",0,a0);
while(contador <=n)
{
S = contador*a0; // s(n+1)
printf("%d %f \n",contador, S);
a0 = S; // s(n)
contador++;
}

97

return(a0);}

0 2.000000
1 2.000000
2 4.000000
3 12.000000
4 48.000000
5 240.000000
6 1440.000000
7 10080.000000
8 80640.000000
9 725760.000000
10 7257600.000000
(f)

float S=1; // produto e divisoes, inicio 1


float a0=3.0;
int
contador=1;
printf("%d %f \n ",0,a0);
if (n == 0 ){printf("%d %f \n ",0,a0); return(a0);}
while(contador <=n)
{
S = (contador-1)*a0; // s(n+1)
printf("%d %f \n",contador, S);
a0 = S; // s(n)
contador++;
}
0 3.000000
1 0.000000
2 0.000000
3 0.000000
4 0.000000
5 0.000000
6 0.000000
7 0.000000
8 0.000000
9 0.000000
10 0.000000

CAPITULO 3. RECURSIVIDADE

98

3. (ex. 3) pagina 93
S0 = 0 = S1 = S0 + a0 = a0
S2 = S1 + a1 = S0 + a0 + a1
S2 = a0 + a1

(3.71)
(3.72)
(3.73)

S3 = S2 + a2 = a0 + a1 + a2

(3.74)
(3.75)

Sn+1 = Sn + an = a0 + a1 + a2 + + an
n
P
ak
Sn+1 =

(3.76)
(3.77)

k=0

4. (ex. 4) pagina 93
(a) Sn+1 =
(b) Sn+1 =

n
P

k=0
n
P

k=1

1=n+1
1
k

1 1.000000
2 1.500000
3 1.833333
4 2.083333
5 2.283334
6 2.450000
7 2.592857
8 2.717857
9 2.828969
10 2.928968
Sn+1 ln(n) para grandes valores de n.
100000
P 1
ln(100000) 11.51292546497022842009;
k 12.090851
k=1

(c)

n
P

k=1

k=

(1+n)n
2

1 1.0000000000000
2 1.2500000000000
3 1.3611111111111
4 1.4236111111111
5 1.4636111111111
6 1.4913888888889
7 1.5117970521542
8 1.5274220521542
9 1.5397677311665

CAPITULO 3. RECURSIVIDADE

99

10 1.5497677311665
double S=0; // inicilizando soma
double a0=1.0;
int
contador=1;
printf("%d %lf \n ",0,a0);
if (n == 0 ){printf("%d %lf \n ",0,a0); return(a0);}
while(contador <=n)
{
S = S + a0; // s(n+1)
printf("%d %2.13lf \n",contador, S);
contador++; // contador = contador + 1
a0 = (double) 1/(contador*contador); // s(n-1)
}
n
X
2
1

k2
6
1
para grandes valores de n. Com n = 35000S35000 = 1.6449054958278
2
e 6 1.64493406684822643649

(d) 1 1.000000
2 5.000000
3 14.000000
4 30.000000
5 55.000000
6 91.000000
7 140.000000
8 204.000000
9 285.000000
10 385.000000
float S=0; // inicializa uma soma
float a1=1.0;
int
contador=1;
printf("%d %f \n",1, a1);
if (n == 1 ) return(a1);
while(contador <=n)
{
S = S + a1; // s(n+1)
printf("%d %f \n",contador, S);
contador++; // contador = contador + 1
a1 = contador*contador;
}
n
P
P (k) em que P e um polinomio a coeficientes
As somas do tipo
k=0

inteiros, podem ser calculadas exatamente usando-se um polin


omio Q
de grau uma unidade superior ao de P porque estas somas se reduzem

CAPITULO 3. RECURSIVIDADE

100

a uma express
ao da forma Q(n + 1) Q(0), ver [27, inducao finita].
n
P
= Q(n); Q(10) =
k 2 = n(n+1)(2n+1)
neste caso a formula exata e
6

385

k=1

5. 1 1.000000
2 9.000000
3 36.000000
4 100.000000
5 225.000000
6 441.000000
7 784.000000
8 1296.000000
9 2025.000000
10 3025.000000
float S=0; // inicializa uma soma
float a1=1.0;
int
contador=1;
printf("%d %f \n",1, a1);
if (n == 1 ) return(a1);
while(contador <=n)
{
S = S + a1; // s(n+1)
printf("%d %f \n",contador, S);
contador++; // contador = contador + 1
a1 = contador*contador*contador;
}
Como foi dito no item anterior, esta soma pode ser calculada exatamente,
n
P
)2
k 2 = (1 + 2 n)2 = ( n(n+1)
2
k=1

Captulo 4

Aproximac
ao polinomial de
fun
c
oes
Este captulo vai lhe apresentar o objetivo deste livro: a modelagem matematica usando aproximacao polinomial.
Primeiro consideraremos o metodo intuitivo, um polinomio de
grau n interpolando n pontos do plano, depois vamos otimizar
este metodo o que nos vai conduzir ao chamado metodo de La o que chamamos de metodo classico e que foi utilizado
grange. E
ate 1950.
Com o metodo classico, que consiste em fazer passar um polinomio pelos pontos conhecidos de uma funcao, para obter-se uma
boa aproximacao e preciso que a densidade da malha seja muito
grande e consequentemente o grau do polinomio muito alto. As
consequencias computacionais sao graves com esta metologia, mas
o metodo e excelente para epoca em que foi construidoa ,como o
programa que acompanha o livro bem o mostra.
Aos poucos, a partir dos anos 50, no seculo passado, foi surgindo
um metodo sugerido por autores da decada de 40 que se constitue
em considerar varios polinomios, um para cada intervalo da malha.
o que chamamos polin
E
omios por pedacos, ou uma polinomial e
finalmente vieram os splines, e os metodos finitos que muito se
parecem: ambos sao polinomiais.
A parte final deste captulo faz a construcao dos splines por convolucao.
a Lagrange,

(1736-1813)

101

CAPITULO 4. SPLINES

4.1

102

Aproxima
c
ao polinomial cl
assica

Comecaremos pela aproximaca


o polinomial cl
assica, na verdade com um u
nico
objetivo em mente, mostrar que ela exige uma amostragem muito grande do
fenomeno para que se possa obter uma boa aproximacao e, consequentemente,
nao e pratica (computacional). Ela servira como motivacao para o assunto
das u
ltimas secoes, aproximaca
o polinomial por pedacos e finalmente para os
splines.

Nesta primeira secao vamos apresentar o problema um pouco de forma


historica mas com o objetivo de encaminha-lo para um uso intenso de dois
programas, gnuplot e scilab.
O gnuplot ja vem sendo usado no livro desde o primeiro captulo, aqui
voce vai ter a possibilidade de usa-lo como uma maquina de calcular. scilab,
[23], e um pacote computacional distribuido gratuitamente pelo instituto frances
INRIA que se dedica aos experimentos numericos computacionais em v
arios
campos da ciencia sendo scilab um dos projetos deste instituto. scilab, entre
outras coisas, resolve sistemas de equacoes lineares de grande porte. Neste
sentido vou usar, inicialmente, a aproximacao polinomial como uma motivac
ao
para aumentar a sua experiencia com estes dois programas.
A ideia intuitiva, e ingenua1 , para aproximacao polinomial ou interpolaca
o
polinomial de n pontos
(x0 , y0 ) (xn1 , yn1 )

(4.1)

consiste em encontrar-se um polinomio


P (x) = a0 + a1 x + + am xm
tal que
P (xk ) = yk ; k {0, n 1}

(4.2)

Como as incognitas do problema sao os coeficientes de P e como temos n


condicoes, vemos que P deve ter no mnimo2 n coeficientes: um polin
omio de
grau n 1.
Vamos comecar do comeco, com o caso mais simples, um polinomio do primeiro grau.
A figura (4.1) pagina 103, mostra a solucao deste problema quando tivermos
dois pontos,
P = (a, b) ; Q = (c, d)
1 Veremos, mais adiante, que existe uma solu
ca
o, a chamada de Lagrange, que n
ao
e nem
ing
enua e nem intuitiva.
2 Com grau maior, h
a mais coeficientes aumentando o grau de liberdade da soluca
o e
permitindo uma maior seleca
o entre as soluco
es.

CAPITULO 4. SPLINES

103

Q
(c,d)
f(p)
f(x) = m (xa) + b
f(a) = b
P

f(c) = d
(a,b)

[a,c]

Figura 4.1:

Uma reta interpola dois pontos

precisamos de um polinomio a ser determinado por dois coeficientes:


f (x) = m(x a) + b ; f (a) = b ; m =

db
; c 6= a
ca

(4.3)

Como ja vimos em varias ocasioes neste livro, e interessante escrever o polinomio desenvolvido em dos pontos porque teremos de graca um dos coeficientes
quando impusermos a condicao f (a) = b na equacao (3) temos o valor de b a
ordenada de um dos pontos que determina a reta.
Claro, e preciso vermos claro quais sao as condicoes do problema, mesmo
que isto tenha sido dito acima, uma pequena repeticao torna-se didatica: s
ao
dados dois pontos e queremos saber qual e o polinomio que interpola estes dois
pontos. Encontrar um polinomio significa encontrar os seus coeficientes.
O nosso objetivo aqui nao e geometrico e sim funcional, desejamos func
oes.
No caso da reta, figura (4.1) estamos entendendo que foram feitas duas medidas,
uma no ponto x = a com intensidade y = b e outra no ponto x = c com
intensidade y = d resultando nos dois pontos P = (a, b), Q = (c, d) e a reta que
aparece na figura e a uma aproximacao do que acontece no intervalo [a, c].
Se todas as informacoes que tivermos forem estas (muito pobre o conjunto
de informacoes) a u
nica modelagem do fenomeno e o segmento de reta que passa
nos dois pontos, na figura (4.1).
Se considerarmos um ponto p [a, c] o valor do fenomeno neste ponto, obtido
como interpolacao (linear) e o valor da funcao do primeiro grau, equac
ao (3),
calculada no ponto p. Pontos calculados em cima de retas sao medias aritmetica

CAPITULO 4. SPLINES

104

ponderadas dos valores que determinam esta reta, isto e a melhor que coisa que
podemos obter com esta quantidae (pobre) de informacoes.
Em geral se quer obter mais informacoes, mas obviamente existe um custo
associado a quantidade de informacoes: mais pessoas levantando dados, mais
tempo de busca, mais tempo de processamento. Entao precisamos de metodos
mais eficientes para conseguir o melhor resultado com uma quantidade menor
de informacoes, este e o objetivo deste captulo, desenvolver um metodo nos
permita interpolar as informacoes conhecidas para calcular mais informacoes a
partir das (poucas) informacoes obtidas.
Nesta primeira secao estamos apresentando a solucao classica, que se originou no seculo 18, uma antiguidade digna de museu, mas que vale a pena pelo
menos conhecer porque e magnifica considerando os parcos meios que Euler e
Lagrange e outros tinham para chegar nesta solucao, e nao somente nisto, ela e
bastante exata, porem depende de uma grande quantidade de informac
oes.
Veja mais uma comparacao grafica para ilustrar a imprecisao com que uma
pequena quantidade de informacoes nos deixa. Na figura (4.2) pagina 104,
estamos apresentando uma formulacao grafica de um pretenso fen
omeno real
o valor obtido por
interpolao linear
para x=p

o fenmeno "real"

(c,d)

f(x) = m (xa) + b
f(a) = b
P

f(c) = d
(a,b)

O erro no ponto
x=p

[a,c]

Figura 4.2:

A reta e o fen
omeno real

associado `a reta que que interpola o fenomeno a partir, apenas, das informac
oes
coletadas nos extremos do intervalo. Voce pode ver neste grafico que a reta
nada tem a ver com o fenomeno modelado, porque a quantidade de informac
oes
coletadas e muito pequena.
Observe que se, tudo que soubermos for os valores nos pontos x = a e x = c,
nao teremos nenhuma condicao de avaliar o erro ocorrido ao considerar a media

CAPITULO 4. SPLINES

105

aritmetica f (p) como um valor aproximado do fenomeno no ponto x = p.


O gr
afico na figura (4.2) e apenas uma ilustracao, e um gr
afico feito `
a m
ao.
Certamente nao lhe estamos dizendo nada de extraordinario, o que desejamos
e conscientiza-lo para a necessidade de um trabalho maior em que pretendemos
mete-lo agora: resolver um grande sistema de equacoes lineares. Felizmente
temos bons programas para resolver sistemas de equacoes lineares e a pr
atica
com usa-los lhe sera u
til em muitas situacoes.
Uma solucao para este problema, quando tivermos um levantamento de dados com n informacoes, pode ser obtida com um sistema de n equacoes nas n
incoognitas representadas pelos coeficientes de P
P (x) = a0 + a1 x + + an1 xn1

(4.4)

um polinomio de grau n 1, como no caso da reta, duas informac


oes, s
ao
interpoladas com um polinomio de grau 1, n informacoes serao interpoladas
com um polinomio de grau n 1.
Vamos comecar brincando um pouco com varias interpolacoes polin
omiais
tendo como objetivo mostrar-lhe que gnuplot e um excelente instrumento para
testes porque lhe permite somar polinomios ou multiplica-los por constantes e
portanto pesquisar sadas para um problema para o qual voce ainda n
ao tenha
um modelo adequado.
gnuplot e uma m
aquina de calcular com potencialidades bem elevadas e e
isto que lhe queremos mostrar, inicialmente.

4.1.1

An
alise de dois casos particulares

Interpolando pontos sobre o eixo OX


No primeiro caso considerarmos o caso em que yk = 0 para todo k, podemos facilmente ver que ha muitas solucoes para este problema e assim discutir
a existencia de uma solucao otima. Veja na figura (fig. 4.3) pagina 106, as
m
ultiplas solucoes, para o problema particular, construidas com gnuplot
Esta modelagem com gnuplot foi produzida com o seguinte script que pode
ser encontrado aqui, [20, programas.tgz].
## splines01.01.gnuplot
e o nome do arquivo
a0=5;a1=2;a2=-2;a3=-4
p(x) = (x - a0)*(x-a1)*(x-a2)*(x-a3)
dp(x) = (x-a0)*(x-a1)*(x-a2) + (x-a0)*(x-a1)*(x-a3) +\
(x -a0)*(x-a2)*(x-a3) + (x-a1)*(x-a2)*(x-a3)
set xrange [a3-1:a0+1]
plot p(x),dp(x),0
pause -2
M = 470.0 ## m
odulo m
aximo da derivada (visualmente)
P(x) = (1/M)*p(x)
dP(x)=(1/M)*dp(x)
plot P(x), dP(x),0

CAPITULO 4. SPLINES

106

3.5
P(x)
g(x)
0
3

2.5

1.5

0.5

0.5

1.5

Figura 4.3:

Duas soluco
es do problema homog
eneo

pause -2
plot P(x),dP(x),0,p(x),dp(x)
pause -2
g1(x) = 2*P(x)
g2(x) = 3*P(x)
plot P(x), g1(x), g2(x),0
pause -2
#set terminal fig color big portrait
#set output "splines01_03.fig
Neste caso particular, quando estivermos interpolando pontos de um intervalo contido em R, qualquer m
ultiplo de uma solucao e tambem uma solucao,
e a soma de duas solucoes e tambem uma solucao produzindo um espaco vetorial de soluco
es e voce pode se divertir procurando a dimensao deste espaco
vetorial. . .
Ao construir a solucao do problema:
fizemos o grafico de p, p = dp
modulo maximo calculamos, visualmente, o modulo maximo de p . Existe
um teorema que garante que o modulo maximo de um polinomio ocorre na
o teorema
fronteira de um disco que contem este intervalo considerado. E
do m
odulo m
aximo e a figura (fig. 5) pagina 120, e uma ilustrac
ao do
teorema do m
odulo m
aximo estudado em variaveis complexas. A figura
justifica porque preferimos calcular visualmente o maximo da derivada;
usamos como coeficiente
1
; M = 470.0 ; M = max(|p (x)|)
M

CAPITULO 4. SPLINES

107

que e o valor do modulo maximo da derivada de p no intervalo


I = [a3 1, a0 + 1]
redefinimos o polinomio, P (x) =
do polinomio P no intervalo I.

1
M p(x),

portanto reduzimos a oscilaca


o3

O modulo maximo vem do plano complexo que o melhor lugar para estudarmos polinomios (mas tambem um pouco mais complicado), a figura
(5) mostra o que significa o modulo maximo quando estudamos polin
omios
com variaveis complexas. Esta e a u
ltima mencao `as vari
aveis complexas
neste livro para o caso de voce querer saber onde e que se pode obter
informacoes mais completas sobre o uso do m
odulo m
aximo.
Mdulo mximo
pr imagem do
ponto de mdulo
mximo

O mdulo mximo
no plano complexo

Figura 4.4:

O teorema do m
odulo m
aximo

Esta analise sugere a existencia de uma solucao o


tima. Vamos ver que existe
uma solucao u
nica para o problema que e tambem, em um certo sentido, o
tima.
Os exerccios seguintes devem conduz-lo a uma compreensao da oscilaca
o
dos polinomios interpolantes associada a densidade da malha representada pelos pontos a serem interpolados. O objetivo dos exerccios e o de lhe oferecer
uma oportunidade de fazer calculos, portanto faca experiencias com gnuplot
e scilab mas nao despreze as express
oes formais sem as quais nao e possvel
escreverem-se os programas.
Quanto mais densa a malha, menor a oscilacao no interior do intervalo em
que se encontram os pontos (nos) da malha. Os exerccios vai convida-lo a usar

scilab, um pacote para fazer Algebra


Linear, [23].
Quando os valores dados est
ao fora de OX
No segundo caso consideramos yk = r uma constante r R,.
Aqui nos ajuda a solucao dos sistemas lineares dos quais sabemos que a
solucao geral de um sistema (e o caso agora) e a solucao geral do caso homogeneo
(o primeiro caso que estudamos) mais uma solucao particular do caso geral.
3 Observe que para reduzir a oscila
ca
o do polin
omio fomos buscar o m
odulo m
aximo da
derivada

CAPITULO 4. SPLINES

108

Qualquer solucao P do problema homogeneo, somada de uma soluc


ao particular, um polinomio, portanto um conjunto de coeficientes, e a soluc
ao geral

deste problema nao homogeneo. Vem da Algebra


Linear, porque o problema
se reduz `a procura dos coeficientes sendo portanto um equacao matricial. Um
exemplo particular esta no exerccio (3) na pagina 109.
Nao e possvel obter todas as solucoes do problema n
ao homogeneo sem
considerar o caso homogeneo foi poristo que dividimos a questao em dois casos.
Esta formulacao e importante se estivermos trabalhando com sistemas superdeterminados onde existe uma infinidade de solucoes (uma infinidade de
polinomios).
unico) polinomio de grau n 1 que interpola n
Se quisermos encontrar o (
pontos dados, a solucao e u
nica, e se trata simplesmente de resolver um sistema
de equacoes determinado como mostra o exerccio (3) na pagina 109.
Nao vamos voltar mais a esta questao neste livro, isto e uma decis
ao de
otimizar esforcos, o nosso objetivo sao os splines, quer dizer polinomios por
pedacos. Se o leitor precisar de modelar com polinomios, o que foi dito acima e
suficiente para guia-lo na complementacao do que ainda precisar.
Exerccios 13 Interpolaca
o e oscilaca
o de um polin
omio
1. O gr
afico na figura (fig. 4.1) foi produzido com o script
splines01.01.gnuplot
que se encontra aqui [20, programas.tgz]. Edite este script e faca alguns
experimentos com polin
omios. Eis algumas sugest
oes:
encontre uma famlia de polin
omios que que interpolem os pontos
{(a0 , r), (a1, r), (a2, r), (a3, r), (a4, r)}

(4.5)

escolha os valores de ai diretamente dentro do script do gnuplot;


Construa um polin
omio que passa em dois pontos escolhidos com uma
oscilaca
o especificada.
solu
c
ao: splines01.02.gnuplot, [20, programas.tgz].
Mais difcil: construa um polin
omio com oscilaca
o especificada que
passe em alguns pontos escolhidos. Voce vai precisar de resolver um
sistema de equaco
es. . .
omeno f medido sobre
2. interpolaca
o linear Tudo que sabemos sobre um fen
o intervalo [a, b] s
ao os valores do fen
omeno nos pontos a, b, c:
[a, b] = [3, 5] ; f (3) = 7; c = 0f (c) = 2; f (5) = 1

(4.6)

Interpole,linearmente, estas informaco


es estimando qual poderia ser o
valor de f nos pontos
{2, 0, 2}
(4.7)
Faca um gr
afico ilustrativo.

CAPITULO 4. SPLINES

109

7
f(x)
0
6

-1

-2
-3

-2

-1

Figura 4.5:

Aproximaca
o linear por pedacos - 1-spline

Solu
c
ao 2 Veja o gr
afico na figura (fig. 4.5) p
agina 109,
Esta funca
o est
a definida por dois sementos de reta, um quando x < 0 e
outro quando x 0.
x = 2 (x < 0)f (x) = 7 (9/3)(x + 3); f (2) = 4
x = 0 (x 0)f (x) = 2 + (3/5) x; f (0) = 2
x = 2 (x 0)f (x) = 2 + (3/5) x; f (2) = 0.8

(4.8)
(4.9)
(4.10)

3. interpolaca
o n~
ao linear Temos as informaco
es f (xk ) sobre f definida no
intervalo [a, b]:
[a, b] = [3, 5]; x0 = 3; x1 = 2; x2 = 0; x3 = 2; x4 = 5
f (3) = 7; f (2) = 3; f (0) = 3; f (2) = 0; f (5) = 1

(4.11)
(4.12)

Encontre um polin
omio do quarto grau
P (x) = a0 + a1 x + a2 x2 + a3 x3 + a4 x4

(4.13)

P (xk ) = f (xk )

(4.14)

tal que
interpolando nao linearmente as informaco
es contidas na (eq. 12). Use
esta interpolaca
o para obter uma estimativa dos valores de f nos pontos
{1, 1, 3}
Faca um gr
afico ilustrativo.

(4.15)

CAPITULO 4. SPLINES

110

Solu
c
ao 3 As informaco
es que temos nos permitem montar a tabela
xk
yk

-3
7

-2
3

0
-3

2
0

5
1

P (3) = a0 3a1 + 9a2 27a3 + 81a4 = 7

(4.16)

P (2) = a0 2a1 + 4a2 8a3 + 16a4 = 3


P (2) = a0 = 3

(4.17)
(4.18)

P (2) = a0 + 2a1 + 4a2 + 8a3 + 16a4 = 0


P (5) = a0 + 5a1 + 25a2 + 125a3 + 625a4 = 1

(4.19)
(4.20)

3a1 + 9a2 27a3 + 81a4 = 11


2a1 + 4a2 8a3 + 16a4 = 6
2a1 + 4a2 + 8a3 + 16a4 = 3

(4.21)
(4.22)
(4.23)

3
2

2
5

5a1 + 25a2 + 125a3 + 625a4 = 4


a1
9 27 81

4 8
16
a2 =
4
8
16 a3
a4
25 125 625

(4.24)

11
6

3
4

(4.25)

Vamos primeiro usar scilab para resolver o sistema de equaco


es depois
vamos mostrar uma outra forma de resolver o problema associado com o
que fizemos no captulo 1, usando a ideia (n
ao o conceito) de polin
omio
de Taylor. Com scilab resolvemos qualquer sistema de equaco
es portanto
n
ao precisamos de tecnicas mais avancadas de calculos manuais (que mostraremos depois).
a = [-3 , 9 , -27 , 81 ;
-2 , 4 , -8,
16 ;
2 , 4 , 8 , 16
;
5 , 25 , 125 , 625]
a =
! - 3.
! - 2.
!
2.
!
5.

9.
4.
4.
25.

- 27.
- 8.
8.
125.

-->b=[11 ; 6 ;3
b =
!
!

11. !
6. !

;4]

81.
16.
16.
625.

!
!
!
!

CAPITULO 4. SPLINES

!
!

3.
4.

111

!
!

-->a\b
ans =
! - 0.6880952 !
!
1.2678571 !
! - 0.0154762 !
! - 0.0357143 !

-->function y = f(x)
-->y =-3 -0.6880952*x + 1.2678571*x*x - 0.0154762*x*x*x - 0.0357143*x*
-->endfunction
-->f(0) = - 3.
-->f(-3)

-->f(-2) =

7.9999986
2.9999996

-->f(2) = - 0.0000004
-->f(5) =

0.999989

a0 = 3; a1 = 0.6880952; a2 = 1.2678571;
a3 = 0.0154762; a4 = 0.0357143

(4.26)
(4.27)

Observe o erro apreci


avel no c
alculo de f (3) = 7.9999986 cometido
usando scilab. O erro n
ao e do scilab mas do metodo, uma interpolaca
o
polinomial de grau 4 das quatro informaco
es obtidas de uma tabela.
Devemos ainda calcular, usando a interpolaca
o polinomial, os valores de
f (1), f (1), f (3), com scilab
-->f(-1)

- 1.0642858

-->f(1)

- 2.4714286

-->f(3)

3.0357126

Veja o gr
afico deste polin
omio, feito com scilab na figura (fig. 4.6) p
agina
112,

CAPITULO 4. SPLINES

112

8
f(x)
0

4
3

Figura 4.6:

interpolaca
o polinomial dos pontos

Outra soluca
o, de acordo com o que desenvolvemos no captulo 1, vamos
desenvolver o polin
omio no ponto x = 3
f (x) = a0 + a1 (x + 3) + a2 (x + 3)2 + a3 (x + 3)3
a0 = 7

f (2) =
7 + a1 + a2 + a3
=3

f (0) =
7 + 3a1 + 9a2 + 27a3
= 3
f (2) = 7 + 5a1 + 25a2 + 125a3 = 0

f (5) = 7 + 8a1 + 64a2 + 512a3 = 1

(4.28)
(4.29)
(4.30)

CAPITULO 4. SPLINES

113

a1 + a2 + a3
3a1 + 9a2 + 27a3
5a1 + 25a2 + 125a3

8a1 + 64a2 + 512a3

= 10
=4
=7
=8

(4.31)

Resolvendo este sistema de equaco


es com scilab temos
a =

[1 , 1 , 1 ;

3, 9, 27; 5,

25,

125; 8, 64, 512]

b = [10; 4; 7; 8]
c = a\b
function y = f(x)
y = -7 + c(1)*(x+3) + c(2)*(x+3)**2 + c(3)*(x+3)**3;
return y;
endfunction
-->f(-3)
ans =
- 7.
-->f(-2)
ans =
- 1.2993631
-->f(0)
ans =
1.0127389
-->f(2)
ans =
- 2.0063694
-->f(5)
ans =
1.2866242
em que obtivemos precis
ao apenas para f (3).
Este dois exemplos nos mostram as dificuldades de obter uma interpolaca
o
confi
avel com polin
omios de grau alto determinado pelo n
umero de informaco
es. Aqui foram polin
omios de grau pequeno porque tambem temos
poucas informaco
es.
4. Faca uma pequena dissertaca
o descrevendo quem e f e P na quest
ao
(ex.3). Use em sua redaca
o algumas das palavras: interpolacao, linear,
estimativa, aproximacao, modelo.

CAPITULO 4. SPLINES

114

onico4 p que interpola os


5. interpolaca
o n
ao linear Calcule o polinomio m
pontos
(7.5, 0), (2.5, 0), (2.5, 0), (7.5, 0)
6. C
alcule o m
odulo m
aximo M de p no intervalo [3, 4] e defina P (x) =
p(x)
. Calcule M axx[3,4] P (x) resposta oscilaca
o = 0.6
M
7. interpolaca
o n
ao linear Refaca a quest
ao considerando os pontos
(7.5, 0), (1, 0), (1, 0), (7.5, 0)
.

x0 = -7.5; x1=-2.5; x2=2.5; x3=7.5;


p(x)=(x-x0)*(x-x1)*(x-x2)*(x-x3)
dp(x)=(x-x0)*(x-x1)*(x-x2)+(x-x0)*(x-x1)*(x-x3)+(x-x0)*(x-x2)*(x-x3)+\
(x-x1)*(x-x2)*(x-x3)
set xrange [x0:x3]
## quando a particao nao for uniforme altere a etiqueta
set title "uniforme" ## altere esta etiqueta para "nao uniforme"
plot p(x),dp(x),0
pause -2
M=1/1470.0 ## calcule este valor e substitua aqui
P(x) = M*(x-x0)*(x-x1)*(x-x2)*(x-x3)
dP(x) = M*((x-x0)*(x-x1)*(x-x2)+(x-x0)*(x-x1)*(x-x3)+(x-x0)*(x-x2)*(x(x-x1)*(x-x2)*(x-x3))
plot P(x),dP(x),0
pause -2
8. Comparando as quest
oes (ex. 5) e (ex. 7), verifique que, se os n
os formarem uma partica
o uniforme, a oscilaca
o de P e da derivada P do
polin
omio que interpola os pontos e diferente. Identifique em que caso a
oscilaca
o e menor, sobre o intervalo determinado pelos pontos a serem
interpolados.
resposta oscilaco
es 0.6 e 1
Interpolando pontos do plano
Nos exemplos desenvolvidos, mostramos como interpolar n pontos selecionados num intervalo [a, b] contido em R. Tambem mostramos a baixa precis
ao
que existe neste metodo ingenuo de interpolar justificando assim que devemos
procurar metodos mais eficientes.
O nosso objetivo entretanto e, considerada uma colecao de nos sobre um
intervalo [a, b]
a = x0 < x1 < < xn1 < xn1 = b
(4.32)
4 se

chama polin
omio m
onico aquele cujo coeficiente do termos de maior grau
e1

CAPITULO 4. SPLINES

115

e um correspondente conjunto de valores


{y0 , y1 , . . . , yn1 }

(4.33)

como poderiamos interpolar, polinomialmente, os pontos


{(x0 , y0 ), (x1 , y1 ), . . . , (xn1 , yn1 )}

(4.34)

ou ainda, encontrar um polinomio P cujo grafico passe por estes pontos. No


exemplo anterior fizemos isto quando yk = 0 para todo k.
Da mesma forma como
dois pontos determinam uma reta, um polinomio de grau 1, porque os dois
pontos determinam os dois coeficientes da reta que passa por estes pontos,
tambem n pontos determinam um polinomio de grau n1, os n coeficientes
do polinomio, que os interpola.
Um segmento de reta, um polinomio de grau 1, e a forma de interpolar dois pontos.
A forma eficiente de interpolar n pontos deve ser um polinomio de grau n 1.

4.1.2

A soluc
ao geral do problema

Resolver o problema geral de interpolacao polinomial classica


(x0 , y0 ) (xn1 , yn1 )

(4.35)

consiste em encontrar um polinomio P de grau n tal que


P (xk ) = yk ; k {0, n 1}.

(4.36)

seremos conduzidos a resolver um sistema de n equacoes cujas incognitas s


ao os
coeficientes de um polinomio do grau n 1
a0 , a1 , , an1
P (x) = a0 + a1 x + + an1 xn1

P (x0 ) =

P (x1 ) =
..

P (xn ) =

P (x0 )

..
=

P (xn1 )

P (x0 )
..
.
P (xn1 )

(4.37)
(4.38)

y0
..
.
yn1

= (4.39)

a0 + a0 x0 + + an1 xn1
=
y0
y0
0
y1
a0 + a0 x1 + + an1 xn1
=
y1
1
=
(4.40)
..
..
..

.
.
.

yn
a0 + a0 xn1 + + an1 xn1
n1 = yn1

n1
x0
1
x0
x20
a0
y0
a 1 y1
1
x1
x21
xn1
1

..
..
..
.. .. = .. (4.41)
.
.
.
. . .
n1
an1
yn1
1 xn1 x2n1 xn1

CAPITULO 4. SPLINES

116

a0
a1
..
.
an1

y0
y1
..
.
yn1

(4.42)

Este e um sistema muito especial cuja matriz A e uma matriz de Vandermonde5 e

sabemos, da Algebra
Linear que o valor do seu determinante e obtido pelo
produto das diferencas entre os seus elementos caractersticos
x0 , x1 , x2 , , xn1

(4.43)

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


(xk xk+1 ) (xk xn1 ) (xn2 xn1 ) =

(4.44)
(4.45)

= i>j (xi xj ) = V an((xi )n1


i=0 ) = D

(4.46)

em que V an((xi )n1


i=0 ) representa o determinante da matriz de Vandermonde,
de ordem n, ver [12, pagina 301] ou [29, Vandermonde], cujos elementos caractersticos estao listados entre parenteses como parametros.
Este produto e diferente de zero, porque os n
os 6 sao todos diferentes (n
ao
teria sentido haver n
os repetidos). Consequentemente a solucao do sistema
existe e u
nica. Isto demonstra o teorema
Teorema 6 da interpolaca
o polinomial de Lagrange
Dada uma partica
o de um intervalo [a, b] com n n
os,
{a = x0 , . . . , xn1 = b}

(4.47)

existe um u
nico polin
omio de grau menor ou igual a n passando pelos pontos
(x0 , y0 ) (xn1 , yn1 )

(4.48)

Ou
nico polinomio identificado no (teorema 6) pode ser calculado a partir do
sistema de equacoes descrito acima, mas este metodo conduz `a formulas muito
difceis de expressar. Em vez disto vamos usar um metodo algortmico que vai
conduzir a uma formula mais simples para encontrar este polinomio.
Os exerccios seguintes sao um tutorial para conduz-l@ a 7 entender o chamado metodo de Lagrange para determinacao deste u
nico polinomio de grau n
que interpola os pontos
{(x0 , y0 ), (x1 , y1 ), . . . , (xn1 , yn1 )}

(4.49)

a = x0 < x1 < < xn1 = b

(4.50)

associados `a malha
sobre o intervalo [a, b].
5 Alexandre

Vandermonde, matem
atico franc
es (1735-1796).
da malha de precis
ao
7 mas descoberto por Edward Waring (1736-1798) e por Leonard Euler (1707-1783)
6 pontos

CAPITULO 4. SPLINES

117

Exerccios 14 Tutorial sobre polin


omio de Lagrange
Estes exerccios v
ao conduz-lo a entender o que e um polin
omio de interpolaca
o de Lagrange. Os exerccios marcados com asterisco podem ser ignorados, porque n
ao ser
ao usados em nenhum local do livro.
1. derivada algoritmica Considere
P (x) = (x x1 )(x x2 )(x x3 )

(4.51)

Verifique que
P (x) = (x x1 )(x x2 ) + (x x1 )(x x3 ) + (x x2 )(x x3 ) (=4.52)
P (x) = P1 (x) + P2 (x) + P3 (x)
(4.53)
em que (nota
c
ao)
P1 (x) =

P (x)
P (x)
P (x)
; P2 (x) =
; P3 (x) =
x x1
x x2
x x3

(4.54)

Solu
c
ao 4 Usando a derivada do produto: (uv) = u v + uv que pode
ser usada com um produto de qualquer quantidade termos, e observando
que a derivada de que cada fator e 1, temos
P (x) = (x x2 )(x x3 ) + (x x1 )(x x3 ) + (x x1 )(x x2 )
uma soma de produtos em que, sucessivamente, cada um dos fatores ori razo
ginais foi eliminado (trocado por 1). E
avel designarmos
P (x)
xx1 ;
P (x)
P2 (x) = (x x1 )(x x3 ) = xx
;
2
P (x)
P3 (x) = (x x1 )(x x2 ) = xx
3

P1 (x) = (x x2 )(x x3 ) =

(4.55)
(4.56)
(4.57)

e desta forma
P (x) = P1 (x) + P2 (x) + P3 (x)

(4.58)

em que Pk e o polin
omio sem o fator (x xk ) ou ainda e o quociente
P (x)
xxk .
Vamos usar esta notaca
o no pr
oximo exerccio.

2. Verifique que se
P (x) = (x x1 )(x x2 )(x x3 )
ent
ao
(a) Pj (xk ) = 0 se j 6= k

(4.59)

CAPITULO 4. SPLINES

118

(b) Pk (xk ) 6= 0

(c) Para todo k P (xk ) 6= 0

Esboce o gr
afico de P e tente uma justificativa geometrica para o fato de
que a derivada de P e diferente de zero se as razes forem distintas.
Solu
c
ao 5 (a) Pj tem todos os fatores (x xk ) exceto (x xj ) logo
Pj (xk ) = 0 se j 6= k.
Como (x xj ) n
ao e fator de Pj ent
ao Pj (xj ) 6= 0. Vemos assim que
o valor de Pj (xk ) e

Pj (xk ) = 0 j 6= k
(4.60)
Pj (xk ) 6= 0 j = k
(b) O c
alculo da derivada P (xk ):
P (x) =

3
P

Pk (x)

(4.61)

3
P

(4.62)

k=1

dado k P (xk )

Pj (xk )

j=1

P (xk ) = Pk (xk ) 6= 0

(4.63)

porque todos os termos em que j 6= k se tem Pk (xj ) = 0. Portanto


P e diferente de zero em todos os n
os e o seu valor e Pk (xk ) em xk .
Veja o esboco gr
afico de P na figura (fig. 4.7) p
agina 118, As retas

x1

x2
x3

Figura 4.7:

Polin
omio de Lagrange

tangentes tem por coeficiente angular o valor da derivada de P no

CAPITULO 4. SPLINES

119

ponto
m1 = P (x1 ) e coeficiente angular em x1
m2 = P (x2 ) e coeficiente angular em x2

(4.64)
(4.65)

m3 = P (x3 ) e coeficiente angular em x3

(4.66)
(4.67)

3. Verifique que se
P (x) = (x x1 )2 (x x2 )(x x3 )

(4.68)

ent
ao P (x1 ) = 0.
Verifique que definindo
P1 (x) =
ent
ao P =

3
P

P (x)
P (x)
2P (x)
; P2 (x) =
; P3 (x) =
x x1
x x2
x x3

Pk .

k=1

Esboce o gr
afico de P e tente uma justificativa geometrica do valor zero
ou diferente de zero das derivadas. Tente elaborar uma uma teoria geral
sobre o assunto, comparando este caso com o anterior.
4. derivada algoritmica Considere o polin
omio de grau n
P (x) = nk=1 (x xk )
(a) Verifique que
P (x) =

n
X

Pk (x)

(4.69)

(4.70)

k=1

em que, para cada k, Pk (x) =

P (x)
.
xxk

(b) Encontre uma lei que descreva os valores Pk (xj )


(c) Prove que se P for um polin
omio definido pela equaca
o (eq. 69) e as

raizes xk todas distintas, ent


ao P (xk ) 6= 0 para todo k = 1 . . . n, o
valor da derivada, em todos os n
os, e diferente de zero.
(d) Faca um esboco gr
afico de P e escreva uma pequena redaca
o justificando, com uma argumentaca
o geometrica, porque P (xk ) 6= 0.
uma generalizaca
Solu
c
ao 6 (a) E
o dos exerccios anteriores, agora temos um produto de n mon
omios, todos tendo por derivada 1. Quando
aplicarmos a derivada do produto teremos uma soma de n novos produtos, cada com n 1 termos em cada um dos quais aparentemente
dividimos P por cada um dos fatores, sucessivamente:

CAPITULO 4. SPLINES

120

P1 =
P2 =

P (x)
xx1
P (x)
xx2

..
.
Pn =

(4.71)
(4.72)
(4.73)

P (x)
xxn

P (x) = P1 (x) + P2 (x) + + Pn (x)


n
P
P (x) =
Pk (x)

(4.74)
(4.75)
(4.76)

k=1

(b) Valor de Pk (xj ).


Para cada k, o polin
omio Pk (x) e um produto de n 1 termos em
que o fator (x xk ) n
ao est
a presente, logo
Pk (xk ) 6= 0.
Por outro lado todos os fatores (x xj ) com j 6= k est
ao presentes
em Pk (x) e assim
Pk (xj ) = 0 j 6= k.
(c) C
alculo de P (xj )
P (xj ) =

n
X

k=1

Pk (xj ) = Pj (xj ) 6= 0

(4.77)

O gr
afico de P corta o eixo OX em todos os n
os se alternando com m
aximo

ou mnimos locais entre as razes. E um gr


afico semelhante ao que voce
pode ver na figura (fig. 4.7) p
agina 118.

o) se P for dado pela equaca


o (eq. 69)
5. * Verifique (tente uma demonstraca

com todos os xk distintos, ent


ao as raizes de P e P se entrelacam (tem
uma) raz de P entre duas raizes de P . Escreva um teorema descrevendo
inteiramente esta situaca
o.
Solu
c
ao 7 Como as razes s
ao todas distintas, (n
ao h
a razes m
ultiplas)

ent
ao as razes de P s
ao todas distintas das razes de P .
Como entre duas razes de P este polin
omio ter
a um m
aximo ou um
mnimo8 local, ent
ao P tem uma raz entre duas razes de P .

8 quem

garante isto
e a continuidade

CAPITULO 4. SPLINES

121

ultiplas em
6. * Por que a teoria do item anterior falha se houver raizes m
(eq. 69) ?
Solu
c
ao 8 Porque quando houver uma raz m
ultipla, ela tambem ser
a
raiz da derivada. Suponhamos que x = a seja uma raz com multiplicidade
n > 1 ent
ao

f (x) = (x a)n g(x)


n1

(4.78)
n

f (x) = n(x a)
g(x) + (x a) g (x) =
f (x) = (x a)[n(x a)n2 g(x) + (x a)n1 g (x)]

f (a) = 0

(4.79)
(4.80)
(4.81)

ent
ao x = a tambem e raz de f .

otese essencial na teoria do exerccio (exer. 5) e que P e uma


7. * A hip
funca
o contnua e P tambem e contnua. Generalize o (exer. 5 ) com
estas duas hip
oteses, para uma funca
o f que e contnua e continuamente
diferenci
avel.
8. *oscilaca
o da derivada(1) Considere P (x) = x2 a2 . Encontre uma condica
o

para que o m
aximo da derivada P seja maior do que o m
aximo de P no
9
intervalo que contem as razes [a, a]; a > 0 Prove que se |ba| 4 ent
ao
|(x a)(x b)| |2x a b| = x [a, b]
Sugest
ao: nada muda no tamanho (desigualdades) quando os gr
aficos forem transladados...
aximo
9. *oscilaca
o da derivada(2) Verifique que para P (x) = x(x2 1) o m

da derivada P e maior do que o m


aximo de P no intervalo que contem
as razes [1, 1]
10. Polin
omio interpolando pontos no plano
(a) Considere a sequencia de n
os
{2.5, 1.5, 0.5, 2, 3} [3, 3]
e encontre P com estas razes e calculo o m
odulo m
aximo, M , de P .
(b) Soluca
o o
tima Calcule os coeficientes de Q = P/M
(c) Considere os pontos do plano
{(2.5, 0), (1.5, 2), (0.5, 3), (0.5, 3), (1.5, 1), (2.5, 2)}
e calcule um polin
omio que interpole este pontos usando o polin
omio
Q. Faca os gr
aficos.
9a

condica
o a > 0 n
ao
e essencial, apenas facilita a apresentaca
o do problema.

CAPITULO 4. SPLINES

122

uencia de n
os
11. polin
omio de Lagrange Considere a seq
xk {2.5, 1.5, 0.5, 2, 3} [3, 3]
do intervalo [3, 3]. Seja P o polin
omio m
onico10 que tem estes n
os como
P (x)
razes. E defina Pk (x) = xxk .
(a) Calcule P .
(b) Mostre que

P =

5
X

Pk .

k=1

(c) Mostre que


Pj (xk ) = 0 = j 6= k
(d) Mostre que
P (xj ) = Pj (xj )
(e) Defina
5
X
Pk (x)
f (x) =
P (xk )
k=1

Verifique que f e um polin


omio de grau no m
aximo 5. Calculando
seus valores sobre os n
os, verifique sua equaca
o.
(f ) Considere a seguinte sucess
ao de dados yk {4, 1, 2, 5, 7} e re5
P
yk Pk (x)
defina f (x) =
P (xk ) . Mostre que f (yk ) = yk e que, portanto, o
k=1

polin
omio f interpola os pontos

(2.5, 4), (1.5, 1), (0.5, 2)(2, 5), (3, 7)


do plano.
(g) polin
omio de Lagrange Considere uma seq
uencia de n
os
(xk )nk=0 [, ]
Seja P o polin
omio m
onico11 que tem estes n
os como razes. E defina
P (x)
.
Pk (x) = xx
k
10 aquele

cujo coeficiente do termo de maior grau


e 1, obtido com os produtos
(x x1 ) (x x5 ).

11 aquele

cujo coeficiente do termo de maior grau


e 1, obtido com os produtos
(x x1 ) (x x8 ).

CAPITULO 4. SPLINES

123

i. Calcule P .
ii. Mostre que

P =

n
X

Pk .

k=0

iii. Mostre que


Pj (xk ) = 0 = j 6= k
iv. Mostre que
P (xj ) = Pj (xj )
v. Defina

n
X
Pk (x)
f (x) =
P (xk )
k=0

Verifique que f e um polin


omio de grau no m
aximo n. Calculando seus valores sobre os n
os, verifique sua equaca
o.
n
vi. Considere uma sucess
ao de dados (yk )k=0 e redefina f (x) =
n
P
yk Pk (x)
. Mostre que f (yk ) = yk e que, portanto, o polin
omio
P (xk )
k=0

f interpola os pontos

((xk , yk )nk=0 )
do plano.
(h) Considere uma sucess
ao (crescente) de n
os (xk )nk=0 de um intervalo
[a, b]. Seja P o polin
omio m
onico12 que tem estes n
os como razes. E
P (x)
defina Pk (x) = xxk . Verifique que
i.

P =

n
X

Pk

k=0

ii.
Pj (xk ) = 0 = j 6= k
iii.
Pj (xj ) = P (xj )
iv. f (x) =

n
P

k=0

Pk (x)
P (xk )

e um polin
omio de grau no m
aximo n. Calcu-

lando seus valores sobre os n


os, verifique sua equaca
o.
v. Polin
omio de Lagrange Considere uma sucess
ao de dados (yk )nk=0
n
P
yk Pk (x)
. Mostre que f (yk ) = yk
e redefina f (x) =
P (xk )
k=0

12 aquele

cujo coeficiente do termo de maior grau


e 1, obtido com os produtos
(x x0 ) (x xn ).

CAPITULO 4. SPLINES

4.1.3

124

Interpolac
ao polinomial de Lagrange

Se voce tiver feito o tutorial sobre polin


omio de Lagrange esta secao representa
apenas um resumo do que foi feito no tutorial e possivelmente pode ser pulada.
Considere dois pontos no plano, eles determinam uma reta que e o gr
afico de
um polinomio de grau menor13 ou igual a 1. Isto e dois pontos sao interpolados
por um polinomio de grau menor que dois. Tres pontos sao interpolados por
uma par
abola ou uma reta, novamente o grau e menor do que a quantidade de
pontos.
Assim, se quisermos interpolar n + 1 pontos, deveremos obter um polin
omio
de grau no maximo n cujos n + 1 coeficientes ficam unicamente determinados
pelos n + 1 pontos dados. Alias, o fato de havermos encontrado uma multitude
de solucoes e um indicativo da fraqueza do metodo. Por outro lado, observe
que o adjetivo fraqueza e enganoso uma vez que na verdade a nossa conclus
ao
deveria ser a de que existe excesso de informaco
es e este excesso de informaco
es
pode ser algumas vezes usado para obter melhor solucao em outro contexto.
Guarde este comentario para uso posterior.
Vamos fazer um resumo do metodo, devido a Lagrange14 para construir um
polinomio de grau menor ou igual a n 1 interpolando n pontos
(x0 , y0 ), (xn1 , yn1 ) ; x0 < x1 < < xn1
dados.
O metodo de Lagrange representa uma alternativa, usando a derivada, para
limitar a oscilacao do polinomio de interpolacao.
Como habitual, chamamos os pontos x0 , . . . , xn1 I = [a, b] de n
os de
uma malha que consideramos no intervalo I. Como sempre,
a = x0 , b = xn1
sao os extremos do intervalo considerado.
Estes n
os que definem uma particao do intervalo I sao chamados de pontos de precis
ao porque neles conhecemos exatamente a funcao que est
a sendo
estudada, por exemplo, eles sao os pontos em que estao colocados os sensores
que mediram algum fenomeno. Se estivermos aproximando alguma func
ao g, a
funcao aproximante f que sera construida por algum dos metodos que estudaremos neste captulo, conncidira com g nestes pontos: f (xk ) = g(xk ).
A particao nao precisa ser uniforme, embora seja pratico, nas implementac
oes
computacionais, considerar particoes uniformes porque simplifica a construc
ao
do algoritmo. Voce ira encontrar, entre os nossos programas, um meio para trabalhar com particoes nao uniformes, que podem ser u
teis em alguns contextos,
como na analise de de fenomenos com alta oscilacao, ou piques.
Portanto a medida dos intervalos Ik = [xk , xk+1 ] nao precisa ser a mesma.
Comecamos considerando o polinomio
Q(x) = (x x0 ) (x xn1 )
13 salvo
14 mas

no caso em que os pontos estejam sobre uma paralela ao eixo OY ...


descoberto por Edward Waring (1736-1798) e por Leonard Euler (1707-1783)

(4.82)

CAPITULO 4. SPLINES

125

de grau n + 1 cuja derivada e obtida pela regra do produto, acompanhe a


sequencia de operacoes que lhe devem ser familiares, como consequencia de
exerccios anteriores:
Pk (x) =

P (x)
xxk

um polinomio de grau n

P (x) =

n1
P

Pk (x)

(4.83)
(4.84)

k=0

Pk (xk ) = P (xk )
Pk (xj ) = 0 == j 6= k
n1
P Pk (x)
f (x) =
P (xk )

(4.85)
(4.86)
(4.87)

k=0

f (xk ) =

n1
P
k=0

Pk (xk )
P (xk )

Pk (xk )
P (xk )

P (xk )
P (xk )

=1

(4.88)

como f e uma combinacao de polinomios de grau n entao e um polinomio cujo


grau e no maximo n. Como os valores deste polinomio nos n + 1 n
os s
ao a
unidade, podemos concluir que f e constante igual a 1. As experiencias feitas
com gnuplot na lista de exerccios acima ja evidenciou estes fatos.
n1
P Pk (xk )
Quer dizer que a express
ao
e uma combinacao linear convexa
P (xk )
k=0

(uma soma de pesos), para todos os valores de x no intervalo [a, b]. Se portanto
escolhermos uma colecao de n + 1 valores, cada um deles associados a um dos
nos podemos definir:
n1
X yk Pk (x)
(4.89)
g(x) =
P (xk )
k=0

e como o valor da soma, em cada no era 1, agora


g(xk ) = yk
o que nos da um polinomio de grau n passando por n + 1 pontos escolhidos no
intervalo [a, b].
O polinomio de grau n, equacao (89), e o polinomio de interpolac
ao de
Lagrange.

CAPITULO 4. SPLINES

4.2

126

Func
oes polinomiais por peda
cos

A forma mais simples de interpolar uma coleca


o de pontos do plano consiste em lig
a-los por
segmentos de reta: a poligonal cujos v
ertices s
ao os pontos dados. Aqui vamos considerar
um caso particular em que os pontos dados representam valores de uma funca
o hipot
etica
defina em um intervalo [, ], os valores obtidos pelas medico
es de um sensor ao longo de um
intervalo do tempo. Nestas condico
es as abcissas destes pontos s
ao uma sequ
encia crescente
de pontos do intervalo [, ],
{ = a0 < a1 < < an = }
e a poligonal mencionada acima
e uma func
ao linear por pedacos, caso particular do nosso
objetivo. Vamos generalizar o caso das poligonais nesta seca
o construindo os quase-splines,
que s
ao funco
es polin
omiais por pedacos do terceiro grau cuja derivada
e contnua.

Nesta secao vamos fazer a construcao teorica das funcoes polinomiais por
pedacos que ja aparecerem em varios exerccios e que portanto voce j
a est
a
praticamente familiarizado com este instrumento. Aqui a linguagem ser
a mais
formal apenas.
Alguns itens da lista de exerccios seguinte servem apenas para relembr
a-lo
de algumas tecnicas, do C
alculo Diferencial e Integral e da Geometria Analtica
que precisaremos na continuacao. Aquilo que lhe parecer trivial voce deve,
simplesmente, saltar.
Exerccios 15 Polin
omios por pedacos
1. Funca
o linear por pedacos
(a) Considere a seq
uencia de n
os
xk {3, 2.5, 1.5, 0.5, 0.5, 1.5, 2.5, 3} [3, 3]
e a seq
uencia de valores correspondente
yk {0, 1, 1, 2, 3, 1, 2, 0}
Construa, (faca o gr
afico) da poligonal que interpola os pontos (xk , yk ).
(b) Chame f a funca
o cujo gr
afico foi feito no item anterior e calcule os
seus valores nos pontos inteiros do intervalo [3, 3].
2. Considere a seguinte melhoria nos dados do item anterior: para cada n
o
da malha, o sensor calculou a taxa de variaca
o
dk {1, 0, 2, 1, 0, 1, 0, 1}
e consequentemente, em cada intervalo Ik = [ak , ak+1 ] temos quatro informaco
es:

CAPITULO 4. SPLINES

Ik =

127
n
o
xk
xk+1

valor
yk
yk+1

taxa de variaca
o
dk
dk+1

Encontre, para cada intervalo Ik , o polin


omio
Pk (x) = ak,0 + ak,0 (x xk ) + ak,0 (x xk )2 + ak,0 (x xk )3
que15 pode ser obtido considerando os valores nos extremos de Ik , yk , yk+1
e as taxas de variaca
o nestes pontos, dk , dk+1 , quer dizer que
Pk (xk ) = dk
Pk (xk+1 ) = dk+1

Pk (xk ) = yk
Pk (xk+1 ) = yk+1

3. Calcule a quantidade do fenomeno descrito no exerccio (ex. 2 ), por


definica
o a quantidade de um fen
omeno e a integral da funca
o que o descreve.
4. Considere a seguinte tabela de dados (obtidos por um sensor)
xk
5
1
7

yk
7
3
5

dk
3
1
2

em que xk s
ao os n
os da malha e yk , dk s
ao, respectivamente o valor medido e a taxa de variaca
o calculada em cada n
o. Encontre um polin
omio
16
por pedacos do terceiro grau, P , que represesente o fen
omeno no intervalo [3, 3] e faca o gr
afico.

4.2.1

Um sensor mais inteligente

Retomando a linguagem e a notacao que usamos na discussao do polin


omio de
Lagrange, quando tivermos uma malha
{a = x0 , . . . , xn = b}

(4.90)

definindo uma particao de um intervalo [a, b], o problema tpico que desejamos
resolver consiste em criar um modelo para um fenomeno cujos valores
{y0 , . . . , yn }

(4.91)

sao conhecidos (medidos) sobre os n


os. Anteriormente usamos a linguagem
desejamos encontrar um polin
omio que passe pelos n + 1 pontos
(x0 , y0 ) (xn , yn )
15 dizemos
16 chamos

que este polin


omio est
a desenvolvido no ponto xk
este tipo de funca
o de uma polinomial do terceiro grau

(4.92)

CAPITULO 4. SPLINES

128

agora diremos que desejamos encontrar uma polinomial, uma funca


o polinomial
por pedacos que passe pelos pontos na equacao (92).
Uma situacao pratica que este problema descreve, consiste de uma serie de
sensores colocados ao longo de uma via por onde passe o fenomeno que desejamos
medir, como um oleoduto e a press
ao arterial do fl
uido que nele passe, ou a
velocidade e a intensidade do trafego em uma estrada, enfim, qualquer evento
que possa ser medido controlado por um parametro que pertence a um intervalo.
Este e o significado de yk , a medida tomada no n
o xk , examine os exercicios
(ex. 2) e (ex. 3), pagina 127.
Vamos considerar um sensor de melhor qualidade, capaz de nao somente
medir a intensidade do fenomenos em cada n
o xk mas tambem calcular-lhe a
taxa de variaca
o neste ponto. Assim a base de dados que temos e
(x0 , y0 , d0 ) (xn , yn , dn )

(4.93)

em que yk e a intensidade do fenomeno em cada n


o xk e dn e a taxa de variac
ao
em cada n
o.
Exemplo 10 Sensor
Vamos mostrar com um pequeno exemplo que a situaca
o descrita acima e
explorada no exerccio 1, do sensor que tambem mede taxas de variaca
o, e
realista.
Considere um sensor colocado em uma local estrategico para medir um fen
omeno que executa as medico
es a intervalos determinados, a cada minuto, por exemplo. Mas, ao disparar o medidor, em vez de fazer uma u
nica medida, faz tres
medico
es, por exemplo, a cada mili-segundo.
**aqui p
agina 24
A base de dados assim levantada fica descrita pela matriz

y0,2 y0,1
y
y
y0,2
y0,1
+ 0,3t 0,2
t1
t1 + t2
2
=
2
2

x0 y0,1 y0,2 y0,3 d0 =

..
..
..
..
..
(4.94)
.
.
.
.
.

yn,3 yn,2
yn,2
yn,1
yn,2 yn,1
xn

yn,1

yn,2

yn,3

dn =

t1

+
2

t2

t1

+
2

t2

em que dk e o valor medio das duas taxas de variaca


o que pudemos calcular
usando as tres medidas finas obtidas em cada n
o.
Simplificando, desta matriz de dados vamos fazer uso apenas da submatriz

x0 y0,1 d0
..
..
..
(4.95)
.
.
.
xn

yn,1

dn

x0
..
.
xn

y0
..
.

d0
..
.
dn

e vamos simplificar a notaca


o

yn

(4.96)

CAPITULO 4. SPLINES

129

esquecendo o metodo como obtivemos as derivadas aproximadas e mesmo ignoraremos na continuaca


o que se tratam de derivadas aproximadas. Diremos
que dk e a derivada no ponto xn quer dizer que temos 2(n + 1)informaco
es
17
processadas pelo sensor:
Quatro informaco
es em cada sub-intervalo [xk , xk+1 ]. Temos
no n
o xk : y k , d k

(4.97)

no n
o xk+1 : yk+1 , dk+1 ;

(4.98)

Polin^
omios por peda
cos. Em cada sub-intervalo podemos calcular um
polin
omio de grau tres que modela o fen
omeno no intervalo [xk , xk+1 ];
Pk (x) = ak,0 + ak,0 (x xk ) + ak,0 (x xk )2 + ak,0 (x xk )3
Examine, novamente, os exercicios (ex. 2) e (ex. 3), p
agina 127.
Malha com n + 1 n
os, com os n + 1 pontos, incluindo os extremos do intervalo, determinammos n subintervalos, temos n polin
omios de grau tres
que ir
ao modelar o fen
omeno no intervalo [a, b];
Polinomial de grau tres e esta funca
o que estamos chamando de uma polinomial de grau tres que usaremos como modelo para os fen
omenos que
estamos estudando. A polinomial tambem chamada de funcao polinomial
por pedacos.
Podemos resumir estes dados na tabela:

P0 (x) = a0,0 + a0,1 (x x0 ) + a0,2 (x x0 )2 + a0,3 (x x0 )3

..

.
yn dn Pn (x) = an,0 + an,1 (x xn ) + an,2 (x xn )2 + an,3 (x xn )3
(4.99)
H
a v
arias formas de resolver o exerccio 1. Leia a soluca
o dos exerccios ao
final do captulo, n
os vamos us
a-la como metodo de trabalho. Rode os nossos
programas usando-os como exemplos din
amicos18 do texto.

x0
..
.
xn

y0
..
.

4.2.2

d0
..
.

Aproximac
ao de func
oes

Analise o grafico (fig. 4.8) pagina 130,


Este grafico (fig. 4.8), pode ser reproduzido e inclusive impresso em papel,
usando o programa19 aproximacao que pode ser encontrado em [20, programas.tgz] No grafico voce pode ver uma funcao do tipo
f (x) = P (x)sen(ax + b)
17 Houve

(4.100)

uma quantidade bem maior de informaco


es coletadas, depois de coletadas foram
processadas, ou pelo sensor ou por um programa num computador resultando em 2(n + 1)
informaco
es.
18 simplesmente rodar os programas n
ao o vai levar a adquirir conhecimento...
19 escolha, no programa, a op
ca
o (3)

CAPITULO 4. SPLINES

130

grfico da aproximao

Aproximao de uma funo


60
"polped"
"precisao"
"XOY"
40

20

20

40

60
10

10

grfico da funo

Figura 4.8:

Aproximaca
o de uma funca
o

obtida pelo produto de uma funcao polinomial por uma senoide. Tais func
oes
sao bons exemplos de modelos com grandes oscilacoes e portanto que oferecem
dificuldades para serem aproximadas. Rodando o programa com intervalos grandes, por exemplo [30, 30] voce podera ver os defeitos da aproximacao. Usando
o intervalo default do programa, voce tera uma visao enganosa de perfeic
ao, mas
e este o objetivo do programa, permitir que voce manipule o exemplo o que n
ao
e possvel fazer com uma figura como (fig. 4.8).
Observa
c
ao 5 Simulaca
o da realidade
Primeiro que tudo e preciso observar que n
ao temos nenhuma funca
o para
aproximar. O nosso objetivo e o de resolver problemas do tipo exemplificado
pelo (ex. 3), p
agina 127 em que uma massa de dados e obtida, de alguma
20
forma , representando um certo fen
omeno que desejamos estudar. No caso
dos programas educacionais que fizemos, e interessante supor que exista uma
funca
o f dada, por uma equaca
o algebrica21 , como
f (x) = P (x)sen(ax + b),
porque podemos exibir gr
aficos que mostrem as perfeico
es ou as fraquezas do
metodo. Nada poderiamos ilustrar apenas apresentando o modelo.
Falaremos com frequencia de uma funcao hipotetica que estamos tentando
aproximar, e essa funca
o seria a equaca
o do fen
omeno. Ora, a Natureza e muito
rebelde para ser equacionada e e porisso que precisamos de modelos matem
aticos
para simular a Natureza, e, naturalmente, sempre estar conscientes de que uma
parte, possivelmente significativa, da realidade se perdeu em sua idealizaca
o pelo
modelo.
20 em

geral com auxlio de sensores


usando alg
ebrico de forma larga, seno n
ao
e evidentemente uma funca
o
alg
ebrica
21 estamos

CAPITULO 4. SPLINES

131

Au
nica forma de ter seguranca com simulaco
es e
Rodar diversas vezes o modelo. Rode o programa aproximacao com intervalos bem diferentes, para entender o que estamos dizendo;
cada vez que o modelo for rodado, fazer uma nova entrada de dados experimentais;
acompanhar estatisticamente a dispers
ao entre os dados obtidos com o
modelo e os levantamentos de dados do fen
omenos estudado;
somente aceitar o modelo quando resultados independentes tiverem uma
dispers
ao estatstica baixa.
Modelos s
ao aproximacoes da realidade construidas por seres humanos que
podem perder de vista um aspecto muito importante do problema no qual voce
estiver aplicando o modelo. Eis a raz
ao da import
ancia de entendamos os modelos por dentro e os possamos modificar, este e um ponto central na quest
ao
software aberto.
Obviamente que existe um custo a ser considerado e, infelizmente, este custo
pode ser alguma vezes sobreposto a quest
oes como seguranca, aqui entra a etica...
Base te
orica dos modelos
Ha varios tipos de modelos e este assunto sozinho ocupa varios volumes na
literatura, portanto o leitor deve ficar consciente de que aqui seguiremos por
um atalho em busca de um tipo de modelo de nossa escolha. Na bibligrafia voce
podera encontrar mais dados para prosseguir num aprofundamento, se este for
o seu desejo.
Numa classificacao um pouco simples consideraremos dois tipos de modelos:
discretos em que o conjunto sobre os quais as funcoes estiverem definidas tenha um n
umero finito de valores. Teoria dos jogos por exemplo
usa este tipo de modelos, a an
alise combinat
oria, ou mais amplamente a
combinat
oria, e uma base teorica para tais modelos;
contnuos em que as funcoes envolvidas tem como domnios subconjuntos
dos n
umeros reais. As funco
es contnuas e diferenci
aveis sao a peca central
nestes modelos com todas as tecnicas, integral e derivada, do C
alculo
Diferencial e Integral.
Os modelos de que trataremos neste livro sao do segundo tipo, os contnuos.
Observa
c
ao 6 Contradica
o dos modelos contnuos
Melhor do que contradica
o seria possivelmente usar a palavra paradoxo. Aqui
e preciso chamar sua atenca
o para uma contradica
o com a qual e preciso conviver.
Todo o nosso trabalho se encontra intimamente ligado com programas de
computador, enfim com computadores. Ora, tudo em um computador e finito,

CAPITULO 4. SPLINES

132

quer dizer que estaremos modelando o infinito (contnuo)22 com um modelo discreto, o computador.
Uma das conseq
uencias mais funestas desta contradica
o e que surge um item
omnipresente em nossos trabalhos, o erro, que temos que, permanentemente,
levar em conta. Aqui e preciso ter uma atitude sempre realista de verificaca
o
sistem
atica dos modelos em suas aplicaco
es. Mas o objetivo desta observaca
o
n
ao e o de sugerir o receio e sim o de observar que o cuidado sempre deve
estar presente e um metodo pr
atico para enfrentar esta quest
ao e o trabalho em
equipes.
Os elementos da teoria sao os seguintes:
da computacao vem uma tecnica que estamos usando deste o primeiro
captulo, varredura;
na Matematica, esta tecnica computacional de varreduras, assume o aspecto de malha, ou partica
o de um determinado conjunto. Estes dois
conceitos matematicos sao equivalentes, malha,partica
o, embora algumas
vezes nao seja trivial a passagem de um para o outro. Neste livro sempre usaremos malhas associadas a um conjunto de pontos que determinam
retangulos (nos casos multidimensionais) ou sub-intervalos (nos casos
unidimensionais). Veja as figuras (fig. 2.2), pagina 32 e (fig. 2.3), p
agina
35.
Um exemplo, no caso unidimensional e o que voce tem no (ex. 3), p
agina
127, em um conjunto de n
os escolhidos em um intervalo determina a
malha. Associada a esta malha temos uma famlia de polin
omios do grau
tres, uma polinomial do grau tres e assim escapamos do alto custo computacional que e trabalhar com polinomios de grau elevado;
convergencia do algoritmo Os algoritmos definem sucessoes. Estudamos
sucessoes no captulo tres. Uma sucessao e uma funcao definida no conjunto dos n
umeros naturais e tomando valores em um outro conjunto. Este
segundo conjunto determina a natureza das sucessoes. Com frq
uencia,
neste livro, as sucessoes tem valores reais, e o que chamamos de sucess
oes
23
de n
umeros reais . Sucessoes deste tipo definem n
umeros quando forem
convergentes, e o limite da sucessao. Entretanto, nao daremos enfase `
a
convergencia de algoritmos neste livro, e isto e um defeito do livro, procure
compensar este defeito com literatura complementar.
o conceito de continuidade e utilizado seguidamente. No Calculo voce essencialmente estudou que se a diferenca
|x| = |x2 x1 |
22 com

freq
u
encia a palavra contnuo
e tomada como sin
onimo de infnito mas os dois conceitos s
ao distintos
23 em geral n
umeros racionais, sobretudo porque os nossos programas de computador somente podem lidar com n
umeros racionais

CAPITULO 4. SPLINES

133

for pequena, entao a diferenca


f = f (x2 ) f (x1 )
tambem sera pequena quando a funcao f for contnua. Este e um ponto
essencial e que se encontrara em jogo a todo momento. Vamos sempre
supor que os fenomenos sao contnuos. Lavoisier dizia, veja [11], que na
Natureza nada se cria e nada se perde, tudo se transforma que se pode
traduzir grosseiramente por a Natureza n
ao d
a saltos, modificado pela
Ciencia Quantica para a natureza d
a saltos, porem pequenos.
a continuidade que usamos quando afirmamos que ao refinarmos uma
E
malha reduzimos o erro cometido.
As funco
es diferenci
aveis sao apenas funcoes mais profundamente contnuas.
A derivada e uma ordem superior de continuidade.
com base nestes tres conceitos
E
malha ou particao e sua realizacao computacional, a varredura;
convergencia de sucessoes;
continuidade dos fenomenos a hipotetica equacao que governaria um fen
omeno das ciencias naturais ou humanas, e uma funcao contnua e mesmo
diferenciavel,
que vamos construir os modelos e provar que eles conseguem nos dar uma aproximacao satisfatoria da realidade.
A proxima lista de exerccios tem por objetivo recclar os seus conhecimentos
de Calculo dentro do nosso objetivo.
Observa
c
ao 7 A admir
avel eficiencia dos modelos matem
aticos
Ou, em outras palavras, modelos contnuos para um Universo esponjoso.
Os saltos quanticos n
ao alteram ou impedem o uso da continuidade nos modelos embora eles tenham que ser levados em conta num momento apropriado...
Na verdade o Universo e esponjoso e n
ao existe, na vida real, a continuidade dos modelos matem
aticos. Mas os modelos, mesmo sendo, como s
ao, uma
realidade virtual, nos permitem analisar a realidade fsica muito bem, desde que
saibamos us
a-los adequadamente. O nosso objetivo e mostrar-lhe isto aqui.
Exerccios 16 Continuidade e diferenciabilidade
Se um exerccio lhe parecer o
bvio, n
ao o faca, n
ao perca tempo, mas seja
honesto consigo pr
oprio: se um exerccio lhe parecer pouco claro, crie uma
variante do mesmo e faca os dois, o exerccio e a variante.
1. continuidade Construa uma polinomial do terceiro grau P usando os dados
da tabela abaixo. Prove, usando P0 (x1 ) = P1 (x1 ), que P e continua. Prove
que P tambem e diferenci
avel.

CAPITULO 4. SPLINES

134

xk
x0 = 5
x1 = 0
x2 = 6

yk
1
0
2

dk
0
1
1

2. Considere a figura (fig. 4.9) p


agina 134. Justifique a existencia de pontos
(a)
no intervalo de definica
o nos quais f () = f (b)f
. Identifique , a, b e
ba
o teorema do C
alculo que governa esta afirmaca
o.

1
b

a
Figura 4.9:

Derivada, tangente e Teorema do Valor m


edio

3. Considere uma funca


o contnua e diferenci
avel, f , definida no intervalo
[5, 6] e a poligonal do terceiro grau P definida pela tabela seguinte:
xk
x0 = 5
x1 = 0
x2 = 6

yk
f (5)
f (0)
f (6)

dk
f (5)
f (0)
f (6)

Mostre que existe um ponto x0,1 [x0 , x1 ] tal que P (x0,1 ) =

e um ponto x1,1 [x1 , x2 ] tal que P (x1,1 ) =


o Teorema do C
alculo que garante isto.

f (x2 )f (x1 )
x2 x1

f (x1 )f (x0 )
x1 x0

indicando qual e

CAPITULO 4. SPLINES

4.3

135

Quase-splines
Como anunciamos no incio, a partir dos anos 1950, comecamos a
descobrir que havia um metodo polinomial mais inteligente. Em
vez de procurarmos um polinomio de grau elevado, n passando
por n + 1 pontos dados, poderiamos procurar varios polinomios
de grau mais baixo. Isto e o que chamamos de polin
omios por
pedacos, uma polinomial. . Estas polinomiais sao quase-splines.
Vamos construtivamente mostrar que uma polinomial de grau tres
e a solucao otima e depois vamos definir o que sao splines.

4.3.1

Polinomiais de grau tr
es

Queremos resolver o problema de interpolar n + 1 pontos com a informac


ao
extra da taxa de variacao em cada um dos nos. Isto corresponde a um conjunto
de quatro informacoes sobre cada sub-intervalo considerado o que nos permite
determinar, associado a cada um dos intervalos, um polinomio de grau tres.
A solucao vai ser obtida iterativamente percorrendo o conjunto dos intervalos, vamos entao simplificar a notacao, considerando [a, b] um intervalo generico:
c1 = P (a), d1 = P (a)
c2 = P (b), d2 = P (b)

(4.101)
(4.102)

no intervalo [a, b] e sabemos, da aproximacao polinomial classica que estudamos


inicialmente, que estas quatro informacoes nos permitem determinar de forma
u
nica um polinomio do grau tres.
Temos as equacoes, (desenvolvendo o polinomio no ponto a)
P (x) = m0 + m1 (x a) + m2 (x a)2 + m3 (x a)3
P (a) = m0 = c1
P (x) = m1 + 2m2 (x a) + 3m3 (x a)2
P (a) = m1 = d1
P (b) = m0 + m1 (b a) + m2 (b a)2 + m3 (b a)3 = c2
P (b) = m1 + 2m2 (b a) + 3m3 (b a)2 = d2

(4.103)

que se reduz assim a duas equacoes nas incognitas ainda restantes m2 , m3 observando que sao conhecidos:
m0 = c1 , m1 = d1 , b a, c2 , d2


c1 + d1 (b a) + m2 (b a)2 + m3 (b a)3
d1 + 2m2 (b a) + 3m3 (b a)2

(4.104)

= c2
= d2

(4.105)

CAPITULO 4. SPLINES


136

3c1 + 3d1 (b a) + 3m2 (b a)2 + 3m3 (b a)3


d1 (b a) + 2m2 (b a)2 + 3m3 (b a)3

= 3c2
(4.106)
= d2 (b a)

3c1 + 2d1 (b a) + m2 (b a)2 = 3c2 d2 (b a)


m2 =

3c2 d2 (ba)(3c1 +2d1 (ba))


(ba)2

(4.107)

(4.108)

Nas (eq.106 ) igualamos os coeficientes de m3 depois subtraimos as duas equac


oes
para obter a (eq.107) de onde tiramos o valor de m2 .
Esta solucao e possvel porque os nos a, b sao diferentes e assim, calculado o
valor de m2 , ele pode ser substituido numa das equacoes (eq.106 ), por exemplo
em,
c1 + d1 (b a) + m2 (b a)2 + m3 (b a)3 = c2
o que vai nos permitir o calculo de m3 :
m3 =

c2 (c1 + d1 (b a) + m2 (b a)2 )
(b a)3

(4.109)

que tambem e possvel porque a 6= b. Observe que nao nos preocupamos em


explicitar os valores porque estas contas devem ser feitas dentro de um programa
que ira fazer os calculos finais.
Como esta solucao e u
nica, achamos assim o u
nico polinomio P do terceiro
grau que satisfaz `as quatro condicoes no intervalo [a, b].
Demonstramos assim:
Teorema 7 Existencia e unicidade da poligonal de grau tres
Dada uma partica
o
a = x0 < . . . < xn = b

(4.110)

de um intervalo [a, b] e uma lista de pares de valores


y 0 , d 0 , . . . , yk , d k , . . . , yn , d n

(4.111)

interpretados como valor no ponto, yk , e taxa de variaca


o no ponto, dk , existe
uma u
nica poligonal P = (P0 , . . . , Pk , . . . , Pn ) do terceiro grau tal que

P (xk ) = yk
P (xk ) = dk
(4.112)
P (xk+1 ) = yk+1 P (xk+1 ) = dk+1
com (desenvolvendo o polin
omio Pk no ponto xk )
Pk (x) = mk,0 + mk,1 (x xk ) + mk,2 (x xk )2 + mk,3 (x xk )3 (4.113)
mk,0 = Pk (xk ) = yk
mk,1 = Pk (xk ) = dk

(4.114)
(4.115)

sk = xk+1 xk 6= 0

(4.116)

mk,2 =

mk,3 =

3yk+1 sk dk+1 3yk 2dk sk


s2k

(4.117)

yk+1 (yk +dk sk +mk,2 s2k )


s3k

(4.118)

CAPITULO 4. SPLINES

137

O programa aproximacao calcula os coeficientes da poligonal em cada


um dos intervalos lancando os resultados no arquivo dados que voce pode ler
com um editor de textos. O programa lhe dira isto. Escolha a opcao (5) no
programa, mas antes edite o arquivo leitura onde os dados do sensor devem
estar gravados. O programa tem um pequeno texto explicativo em que estas
informacoes lhe serao apresentadas. Use a opcao (7) para isto, ou responda que
deseja ler a teoria, ao iniciar o programa.
Como a polinomial P concide com o polinomio Pk no intervalo [xk , xk+1 ],
entao P e contnua e diferenciavel em cada sub-intervalo. Como Pk+1 (xk+1 ) =

Pk (xk+1 ) e Pk+1
(xk+1 ) = Pk (xk+1 ) entao P e contnua e diferenciavel no intervalo [a, b]
Pk (xk+1 ) = 2mk,2
Pk+1 (xk+1 ) = 2mk+1,2

(4.119)
(4.120)
(4.121)

4.4

Valor m
edio integral

O tamanho da letra indica que o assunto desta seca


o
e mais difcil. Voc
e pode optar por
salt
a-lo se achar que a discuss
ao anterior sobre valor m
edio @ deixou convencid@.
Vamos precisar do valor m
edio integral em nossa construca
o dos splines e como este tipo
de valor m
edio
e muito importante e ser
a usado muito no captulo 0, vamos fazer aqui uma
revis
ao deste assunto de C
alculo.
Definimos:
Defini
c
ao 2 (Valor m
edio integral) Valor m
edio integral Se f for integr
avel no intervalo
[a, b] ent
ao

V alm ed(f )[a,b]

1
=
ba

Zb

f (x)dx

Os probabilistas fazem uso de um outro tipo de valor m


edio integral que
e uma generalizaca
o deste que acabamos de definir e para definir os splines vamos precisar desta generalizaca
o.
Considere uma funca
o positiva cuja integral seja 1. Um exemplo bem simples
e uma
funca
o como
[0.5,0.5]
(4.122)
a funca
o caracterstica do intervalo [0.5, 0.5], exatamente porque a medida do suporte,
[0.5, 0.5],
e 1. Demos um exemplo, mas vamos continuar pensando numa funca
o qualquer
positiva cuja integral seja 1.
Esta quest
ao do valor m
edio est
a longe de ser o
bvia. Temos que demonstr
a-la, provar que

e verdade.
Vale a pena discutir um t
opico muito importante que
e Valor m
edio integral.
Vamos comecar analisando qual
e o significado da integral
Z

g=1

(4.123)

CAPITULO 4. SPLINES

138

quando g for uma funca


o positiva24 , definida em um intervalo limitado [, ].
Integral no sentido25 de Riemann
e a
rea! quer dizer que podemos calcular aproximadaR
angulos
mente g se colocarmos uma malha fina no intervalo [, ] e considerarmos os sub-ret

que os sub-intervalos v
ao gerar no gr
afico de g. Assim produzimos a soma que chamamos de
soma de Riemann, e que voc
e deve ter visto no curso de C
alculo26 , veja o gr
afico na figura
(fig. 1), na p
agina ix. Uma soma de Riemann tem o seguinte aspecto:
n
X

g(xi )xi

(4.124)

i=0

e no caso de g, como sua integral vale 1, temos


n
X
i=0

g(xi )xi 1

(4.125)

em que27 todos os n
umeros que aparecem na soma s
ao positivos.
Defini
c
ao 3 Pesos
Uma colec
ao de n
umeros positivos, cuja soma
e 1 se chama uma coleca
o de pesos, ou
simplesmente pesos.
Famlias de pesos s
ao usadas para calcular m
edias aritm
eticas ponderadas, por exemplo,
a inflaca
o28
e uma m
edia aritm
etica ponderada.
No caso da funca
o g = [0.5,0.5] esta soma
e exatamente 1, mas observe que estamos
fazendo uma demonstraca
o e assim g
e uma funca
o qualquer satisfazendo duas propriedades:

e positiva;

sua integral
e 1.

Se agora colocarmos a funca


o f na soma de Riemann, teremos:
n
X

f (xi )g(xi )xi

(4.126)

i=0

e podemos interpretar esta soma como uma quase29 m


edia aritm
etica dos valores de f no
intervalo [, ] porque
xi [, ]
onde estamos calculando a integral.
Veja esta afirmaca
o de outra maneira: os valores

f (xi ); xi [, ]
podem ser interpretados como amostragem de f neste intervalo e a equaca
o (eq. 126)
e o
valor m
edio desta amostragem por que a soma dos n
umeros g(xi )xi
e quase 1.
Quanto mais fina for a malha, mas pr
oximo de 1 estar
a a soma na equaca
o (eq.125 )30 ,
portanto
e este o valor da integral, o valor m
edio de f no intervalo [, ], relativamente `
a
func
ao g.
Aqui temos dois fatores de precis
ao com que lidar:
24 um

n
ucleo, ou um pulso unit
ario
apenas integrais no sentido de Riemann, neste livro! e tem integral num sentido
diferente?
26 O cap
tulo 0 faz uma revis
ao r
apida deste assunto, visite-o agora se achar que precisa.
27 aproximadamente 1 porque
e uma aproximaca
o da integral que supusemos ser 1
28 Em que os governos colocam pesos onde lhe interessam para produzir os
ndices inflacionarios com que nos enganam
29 quase, porque a soma de Riemann,(eq. 125), n
ao
e 1, ela
e aproximadamente 1
30 e mais preciso o c
alculo da m
edia aritm
etica
25 usamos

CAPITULO 4. SPLINES

139

a densidade dos pontos da malha, quanto mais pontos forem tomados na amostragem,
mais preciso fica o levantamento de dados, mas tamb
em fica mais caro;
e o tamanho do intervalo [, ], a base da funca
o a medida da regi
ao de correca
o que
peso com que estamos fazendo a m
edia. Veja a ilustraca
o da regi
ao de correc
ao na
figura (fig. 4.13) p
agina 147. Quanto menor for a medida desta regi
ao, mais exato fica
a correc
ao do erro na funca
o,
a ci
encia vai consistir em obter o m
aximo de precis
ao com o mnimo de custo.
A funca
o utilizada para calcular o valor m
edio, influ
encia este valor m
edio. Como em
qualquer m
edia aritm
etica ponderada31 , a escolha dos pesos influ
encia o valor da m
edia, quer
dizer que tais m
edias s
ao viciadas32 , n
ao podemos ter uma resposta padr
ao sobre o valor
m
edio integral
Z
f (x)g(x)dx = V alMedg,[,] (f )
(4.127)

que chamamos de Valor m


edio integral de f relativo `
a g, no intervalo [, ].
Em geral as funco
es usadas para calcular valor m
edio, s
ao funco
es equilibradas em torno do
zero, o ponto central do gr
afico, e s
ao translatadas para uma certa posica
o, para al fazer o valor
m
edio da funca
o que interessa, como
e o caso de [0.5,0.5], que al
em do mais
e uniforme ao
longo do intervalo [0.5, 0.5] e consequentemente ela produz uma aut
entica m
edia aritmetica
de f no intervalo.
Quando a medida da regi
ao de correc
ao diminue, esta m
edia tende para o valor de f , no
ponto central da regi
ao de correc
ao, se ele existir.
Quando a funca
o f for contnua, este valor concide com algum valor de f no intervalo em
que a m
edia est
a sendo calculada33 . Se a funca
o for descontnua ele representa uma proposta
de correca
o da funca
o. Esta id
eia
e essencial em diversas a
reas hoje, sob a rubrica correc
ao
da informac
ao.
Veja na figura (fig. 4.13) p
agina 147, a ilustraca
o da regi
ao de correc
ao.
Esta quest
ao da m
edia, a sua depend
encia de uma funca
o-peso, est
a longe de ser o
bvia.
Mas se voc
e raciocinar um pouco, chegar
aa
` conclus
ao que deve ser assim. Por exemplo,
considere g, a funca
o relativamente a qual se quer calcular a m
edia, como tendo mais
a esquerda. Ent
ao a
a
rea a
` esquerda do ponto central a do intervalo. Tendenciosa `
m
edia estar
a mais influ
enciada pelos valores a
` esquerda; Veja a (fig. 4.15) p
agina 152.
considere agora g, a funca
o relativamente a qual se quer calcular a m
edia, como tendo
mais a
rea a
` direita do ponto central a do intervalo. Tendenciosa `
a direita. Ent
ao a
m
edia estar
a mais influ
enciada pelos valores a
` direita; Veja a (fig. 4.15) p
agina 152.
mas se agora, g for equilibrada, tiver a
reas iguais a
` direita e a
` esquerda do ponto central,
vamos encontrar a m
edia aritm
etica, o valor de f neste ponto central a, se ele existir;
e fica uma pergunta n
ao respondida, porque usamos uma variedade grande de funco
espeso, porque n
ao usamos sempre a mesma, uma func
ao equilibrada em torno de um
ponto central ? guarde esta pergunta no bolso...
este raciocnio deve conduz-l@ a aceitar que se g n
ao tiver inclinac
oes nem a
` direita, nem a
`
e o ponto
esquerda, ent
ao a m
edia calculada com ela corresponder
a ao valor f (a)34 em que a
central do intervalo.
Conseguimos assim demonstrar o teorema:
Teorema 8 do valor m
edio integral
Se g for uma func
ao positiva tal que
31 e

o valor m
edio integral
e uma m
edia ponderada
adjetivo vicidadas tem sentido t
ecnico, aqui, mas voc
e pode facilmente extrapolar o
sentido da frase para outros contextos menos t
ecnicos...como no c
alculo da inflaca
o. A inflaca
o

e poltica! os precos s
ao polticos! os juros s
ao polticos!
33 esta
e uma propriedade das funco
es contnuas
34 aqui tem um erro, veja observa
ca
o mais a frente
32 o

CAPITULO 4. SPLINES

140

g=1

(4.128)

ent
ao
V alMedg,[,] =

f (x)g(x)dx

(4.129)

e o valor m
edio integral de f relativamente a g no intervalo [, ]. E se g for equilibrada no
intervalo [, ] no sentido de que tenha a mesma
area a esquerda e
a direita do ponto central
a deste intervalo, ent
ao

a [, ] ; V alMedg,[,] =

f (x)g(x)dx = f (a)

(4.130)

Observa
c
ao 8 Um erro no teorema do valor m
edio
O teorema 8 tem um erro que
e preciso corrigir. Observe o gr
afico na figura (fig. 4.11).
A func
ao f n
ao est
a definida no ponto c
Quer dizer que n
ao podemos escrever

c [, ] ; V alMedg,[,] =

f (x)g(x)dx = f (c)

(4.131)

como est
a no teorema, mas sim
V alMedg,[,] =

f (x)g(x)dx

(4.132)

o acontece, no gr
ou seja, apenas dizer que
e o valor m
edio. E
afico (fig. 4.11), p
agina 144
em relac
ao ao ponto c em que a func
ao pode nem siquer estar definida.
Aproveitemos para ver que o valor m
edio serve para definir o valor f (c) que faltava para
f ou que tinha sido calculado de forma errada.
Este
e um m
etodo que os estatsticos usam frequentemente, e tamb
em muito usado nas
telecomunicac
oes, restaurac
oes de arquivos, recuperac
ao de dados.
Observa
c
ao 9 Evoluc
ao e correc
ao de um teorema
Quando redigimos o teorema 8 cometemos o erro de escrever o valor de f no ponto a
a volta do qual o valor m
edio est
a sendo calculado. Depois nos apercebemos do erro, mas
resolvemos deix
a-lo assim, com a correc
ao posterior, para que voc
e veja que os teoremas as
vezes nascem errados. Em geral eles sempre s
ao corrigidos, depois, mas por outra pessoa que
l
e o trabalho, n
ao pelo pr
oprio autor.
Acho que este erro torna mais f
acil a compreens
ao do teorema.

Exerccios 17 (Valor m
edio) Valor medio
1. Considere a funca
o f = [0.5,0.5] , a funca
o caracterstica do intervalo
[0.5, 0.5]. Prove que g (x) = f (x) tambem tem integral 1. Produza
alguns exemplos usando gnuplot.
2. Construa uma funca
o que seja contnua e positiva cuja integral seja 1.

CAPITULO 4. SPLINES

141

Solu
c
ao 9 Se uma funca
o positiva for contnua e diferenci
avel, digamos
f , e definida e integr
avel no intervalo [a, b] ent
ao podemos calcular
A=

Rb

f (x)dx

(4.133)

1
f (x)
A

(4.134)

g(x) =

o que resulta numa funca


o positiva, contnua, diferenci
avel cuja integral
sobre o intervalo [a, b] e 1.
Basta-nos, portanto construir uma funca
o qualquer e poderia ser
f (x) = 4 x2 ; x [2, 2]
R2
A = f (x)dx
g(x) =

|x| > 2
1
f (x)
|x| 2 A

(4.135)
(4.136)
(4.137)

3. Construa uma funca


o formada de tres segmentos de par
abola, que seja
contnua, diferenci
avel e positiva cuja integral seja 1.
Solu
c
ao 10 Considere a funca
o f (x) = 4 x2 cuja derivada nos extremos do intervalo [2, 2] s
ao, respectivamente, {4, 4}. Podemos construir
um par
abola que tenha derivada no ponto 4 o valor -2, por exemplo

f1 (x) = (x + 4)2 ; f1 (x) = 2(x + 4); f1 (2) = 4


portanto se somarmos:
h(x) = f (x) + 4
teremos

h(2) = f1 (2); h (2) = f1 (2)


Defina

x 4

x 2
x2
g(x) =

x4

x>4

0
f1 (x)
f (x) + 4
f2 (x) = (x 4)2
0

(4.138)

Esta funca
o se anula fora do intervalo [4, 4], por contruca
o e diferenci
avel
e sua integral vale

CAPITULO 4. SPLINES

142

R4

g(x)dx =

(4.139)

2
R

=
+

R2

f1 (x)dx +

(4.140)

(f (x) + 4)dx +

(4.141)

R4
+ f2 (x)dx

(4.142)

R2

2
R

f1 (x)dx =

R2

x2 dx =

(f (x) + 4)dx = 16
R4

g(x) =

(4.143)
32
3

(4.144)

8
3

(4.145)

48
3

(4.146)

f2 (x)dx =

16
3

8
3

3
Defina ent
ao F (x) = 48
g(x) e temos assim uma funca
o cuja integral e 1
sendo diferenci
avel na reta. O gr
afico de F pode ser vista na figura (4.10)
p
agina 143,

o f tiver integral 1 ent


ao
4. estoque de n
ucleos Mostre que se uma funca
g(x) = f (x) tambem tem integral 1.

4.5

Splines c
ubicos
Em muitas aplicacoes os quase-splines construidos na secao anterios sao suficientes oferecendo boa aproximacao. Mas em outras,
como exemplo em computacao grafica, em que e necessario mais
din
amica, os algoritmo tem que ser mais otimizado e o metodo de
aproximacao mais preciso. Para isto temos os splines c
ubicos que
construiremos aqui.

spline ou splines. Se voce consultar [28, Spline], voce


O nome do jogo! E
logo vai ver a indecisao sobre o nome, hora e usado spline e logo em seguida
splines. Vamos preferir a segunda forma que nos parece mais eufonica, mas n
ao
temos nenhuma razao especial pela preferencia a nao ser porque os splines s
ao

CAPITULO 4. SPLINES

143

10
F(x)
0
g(x)

-5

-10
-15

-10

Figura 4.10:

-5

10

15

Uma funca
o positiva cuja integral
e1

formados sempre de varios pedacos e talvez porisso devessemos usar o s ao


final.
Ha varios metodos para construir splines. O que vamos adotar e muito
poderoso, embora exija um pouco mais de base teorica. Ao mesmo tempo sua
aplicabilidade pode ser bastante simplificado, ao ponto de voce poder carregar
o motor dos splines num pen-drive, ou mesmo num disquete de 1.44 Mb, falei
num pen-drive porque os disquetes em geral representam mais trabalho do que
utilidade. Ate o final deste captulo esta questao ficara clara.
Defini
c
ao 4 Splines
Um n-splines e uma polinomial35 de grau n que e de classe C n1 , quer dizer
que tem n 1 derivadas contnuas.
35 N
ao precisa ser polinomial, no momento certo faremos esta observaca
o novamente. H
a
splines n
ao polinomiais.

CAPITULO 4. SPLINES

144

Voce esta vendo a razao porque criamos um o conceito de polinomial que


chamamos de quase-splines. Elas serviram para antecipar os splines e em alguns casos substitu-los porque dependem de menos teoria. As polinomiais que
construimos ate agora sao de grau tres e de classe C 1 , poristo nao sao splines, a
segunda derivada pode ser descontnua.
Exemplo 11 Splines
Uma poligonal contnua, isto e uma sucess
ao de segmentos de linha reta que
interligue n pontos, e uma polinomial de grau 1 e de classe C 0 , portanto um
1-splines
difcil construir manualmente um 2-splines, uma polinomial do segundo
E
grau que seja de classe C 1 . Voce pode e deve tentar construir usando os metodos
que apresentamos para construir os quase-splines afim de se convencer da dificuldade e melhor avaliar a pequena complicaca
o onde vamos mete-l@ agora.

4.5.1

Produto de convoluc
ao

Vamos definir uma operacao que ficou na geladeira por anos ate que os metodos
computacionais a viessem resgatar, a convoluca
o, ou melhor dizendo, o produto
de convoluca
o que e o seu nome original.
Vamos comecar com uma definicao geometrica errada, ilustrada36 na figura (fig. 4.11) pagina 144.
f

retngulo
mvel

Figura 4.11:

posio
original
do retngulo

Definica
o geom
etrica - produto de convoluca
o

No proximo paragrafo corrigiremos a definicao usando uma motivacao algebrica para adotar uma forma mais adequada de definir a operacao.
36 Voc
e

deve ter compreendido o poder do erro que aparece no coeficiente do segundo grau
do Polin
omio de Taylor no captulo 1

CAPITULO 4. SPLINES

145

Voce pode identificar, na figura (fig. 4.11), o grafico da funcao descontnua


f e varias copias do mesmo37 retangulo que sao translaco
es do grafico da func
ao
caracterstica, [0.5,0.5] , do intervalo [0.5, 0.5].
esta a forma de fazermos produto de convolucao entre duas func
E
oes.
Uma delas fica com o grafico fixo, a outra, tem seu grafico translatado
para um ponto a, Shapiro,[6], chama isto de media volante e logo voce vai
ver porque.
Neste ponto calculamos a integral do produto das duas funcoes, o resultado
e f [0.5,0.5](a), o valor do produto de convolucao no ponto a. Exerccio
(resolvido em seguida) escreva a equacao da translacao [0.5,0.5]a da
funcao [0.5,0.5] para o ponto a.
A cada novo deslocamento (translacao) do grafico de [0.5,0.5], o peso se
deslocando novamente, para um ponto b e nova integral corresponde ao
calculo de f [0.5,0.5] (b), o valor do produto de convolucao no ponto b.
Leitura produto de convolucao de f por [0.5,0.5] no ponto b, a expressao formal38 seria (errada, como ja @ advertimos)
Z

f (x)b (x)dx =

f (x)(x b)dx

(4.147)

Na express
ao da integral o exerccio proposto linhas acima ficou resolvido.
Sem d
uvida e difcil39 calcularmos f [0.5,0.5] (x) num ponto x qualquer
ou mesmo obtermos uma formula para este resultado.
Nosso objetivo e mostrar-lhe alguns exemplos do que significa f g para convence-l@ do valor do investimento pesado que vai fazer. Depois voce ver
a que
um programa de computador sera o encarregado de fazer o trabalho pesado,
nao se esqueca de que voce esta lendo um livro de Calculo Numerico Computacional. . . e que voce deve apresnder a escrever expressoes formais que um
computador possa ler e calcular.
E, finalmente, deixe-me dizer-lhe, nos avioes comerciais, a fuselagem, e feita
com este instrumento, e quase que todos os jogos eletronicos tem splines por
tras, portanto estamos diante de uma ferramenta que vale a pena ser entendida
e dominada.
Depois, passado o susto com a definicao geometrica, voce vera que o trabalho
ficara com os programas...mas, temos que entender como fazer, para podermos
escrever os programas.
37 Duas

das c
opias est
ao superpostas dando a impress
ao de que voc
e dois ret
angulos com
bases menores, mas
e uma ilus
ao de o
tica.
38 O autor escreveu os limites , propositadamente, para que voc
e se intimidasse, verifique
esta integral se limita ao intervalo [0.5 + b, 0.5 + b]
39 n
ao h
a porque escondermos a dificuldade, o difcil
e apenas difcil, n
ao impossvel, e
apenas exige mais trabalho para dominar, somente isto. Como escalar um morro
e difcil, e o
segredo
e saber e ter os meios...

CAPITULO 4. SPLINES

146

Vamos calcular o resultado da convolucao esbocada na figura (fig. 4.11),


geometricamente. A sucessao de figuras (fig. 4.12) pagina 146, (um filme...)
f

clculo de

clculo de
f*X(a)

posio inicial

f*X(b)

do retngulo

b>a

posio inicial
do retngulo

0.5+b

0.5+a
0.5 +a

0.5+b

c
0

clculo de

posio inicial

f*X(c)

do retngulo

c>b>a
0.5+c
0.5+c

Figura 4.12:

O significado geom
etrico de tr
es valores

lhe mostra o significado do produto de convolucao calculado em tres pontos


diferentes.
Observe que escolhemos uma funcao muito particular: [0.5,0.5]
Esta funcao tem integral 1 e temos a tendencia de chamar tais func
oes de
sinal, impulso unit
ario, n
ucleo. Vamos usar a palavra n
ucleo porque consideramos sinal outra coisa que nao ira aparecer neste livro. As funcoes deste tipo,
os n
ucleos, serao o instrumento que precisaremos quando fizermos produtos de
convoluca
o.
O produto das duas funcoes no ponto a e no ponto b vai produzir resultados
semelhantes. O quadradinho que representa a translacao de [0.5,0.5] para estes
pontos, fica inteiramente imerso dentro do grafico de f . E como o quadradinho

CAPITULO 4. SPLINES

147

tem area 1, a integral do produto vai nos dar o valor medio da integral de f no
intervalo de medida 1 (por causa da base do quadradinho) tendo como ponto
medio a translaca
o. Estamos discutindo:
a<b<c
;
f [0.5,0.5] (a), f [0.5,0.5](b), f [0.5,0.5] (c)

(4.148)
(4.149)

[0.5 + a, 0.5 + a] no caso de a


[0.5 + b, 0.5 + b] no caso de b
[0.5 + c, 0.5 + c] no caso de c
isto e, em qualquer caso, f [0.5,0.5] (x) e o valor medio de f no intervalo
[0.5 + x, 0.5 + x] porque a funcao caracterstica, [0.5,0.5] , e positiva e tem
integral 1.
Retornando `a f [0.5,0.5] , como [0.5,0.5] e uma funcao equilibrada em
torno do ponto central do intervalo [0.5, 0.5] entao
f [0.5,0.5] (x) = f (x)

(4.150)

quando este valor existir, e no caso do ponto c e um valor que fica entre os
ao na
extremos do salto que a funcao da no ponto c. Veja o grafico da convoluc
figura (fig. 4.13) pagina 147,
f

c
0

Regio de
correo

Figura 4.13:

Correca
o pelo valor m
edio numa vizinhanca de c

A figura (fig. 4.13) chama sua atencao para uma regiao do gr


afico em que a
funcao f esta sendo corrigida. Isto ocorre num intervalo de medida 1, (devido a
base do quadradinho utilizado). Nesta figura voce ve os graficos de duas funcoes,
a funcao f descontnua no ponto c e uma outra funcao f, contnua, que e igual
a f fora do intervalo de correcao.

CAPITULO 4. SPLINES

148

Esta, f, e a proposta de correca


o da funca
o descontnua, de que ja falamos
acima.
Podemos corrigir a equacao (eq. 150) escrevendo:
f [0.5,0.5] (x) = f(x)

(4.151)

A regi
ao de correca
o pode ter medida menor e alguns dos exerccios da lista
que segue vao lhe mostrar isto: a regi
ao de correca
o pode ser arbitrariamente
corrigida de modo que a funca
o f seja uma melhor aproximaca
o para f .
Exerccios 18 Media e n
ucleo
aficos das funco
es abaixo e descubra o que h
a de comum
1. n
ucleos Faca os gr
entre elas do ponto de vista da integral. Voce n
ao precisa fazer todos os
gr
aficos se descobrir a regra do jogo...
[0.5,0.5]
1
2 [1,1]
[0,1]
[1,0]

2[0.25,0.25]
1
4 [2,2]
2[0,0.5]
2[0.5,0]

3
1 1
2 [ 3 , 3 ]
1
10 [5,5]
3
2
2 [0, 3 ]
3
2
2 [ 3 ,0]

5[0.1,0.1]
1
20 [10,10]
1
20 [0,20]
1

20 [20,0]

2. Podemos classificar os n
ucleos definidos na quest
ao anterior como (1)
com tendencia `a esquerda, (2) com tendencia `a direita ou (3)equilibrados.
Descubra quais ficam em cada uma dessas classes.
3. Para cada um dos n
ucleos apresentados no primeiro exerccio, indique a
medida da respectiva regiao de correcao que lhe est
a associada.
4. media viciada O gr
afico seguinte representa f, f g em que g e um n
ucleo
tendencioso (`
a direita, ou a
` esquerda). Decida qual e a tendencia de g,
analisando o gr
afico Veja na figura (fig. 4.14) p
agina 148,
f

f*g

c
0
Clculo de mdia
com sinal tendencioso

Figura 4.14:

M
edia viciada

Defini
c
ao correta da convolu
c
ao
Esta e uma secao difcil, o que nao significa que nao seja para os comuns mortais.
preciso,
Aquilo que e difcil apenas exige mais esforco para ser adquirido. E

CAPITULO 4. SPLINES

149

entretanto, salientar que, na pratica do dia-a-dia, nao sera preciso estar com
todas estas contas presentes. Ao final voce vai encontrar a equacao de um
n
ucleo-splines c
ubico que podera registrar num arquivo, num pen-drive, e sair
com ele por a para usar quando precisar fazer convolucoes, e uma contribuic
ao
deste livro para sua vida pratica.
- forca uma parada do LaTeX
Vamos definir o produto de convolucao, e inicialmente escreveremos uma
definica
o errada, acompanhando as ideias geometricas que desenvolvemos anteriormente. Logo veremos, com um calculo algebrico, porque esta definic
ao n
ao
serve e assim chegaremos `a definica
o adequada da convolucao.
Na introducao geometrica que fizemos acima dissemos que o valor de f g
no ponto a era obtido
translatando a funcao g de a e
calculando a integral do produto de f por esta translatada
Precisamos de uma notacao adequada para escrever tudo isto:
a translatada de g por a vamos chamar de ga e assim
a transformacao translacao tem uma equacao curiosa:
x 7 ga (x) = g(x a)

(4.152)

de modo que se voce quiser translatar para direita, no sentido positivo do


ao g
eixo OX entao a > 0, por exemplo, g3 (x) = g(x 3) translata a func
de tres no sentido positivo de OX. Se g(0) = 0 entao g3 (3) = 0. Faca as
contas.
definicao errada da convolucao no ponto a e
a 7 f g(a) =

f (x)ga (x)dx

(4.153)

Observe que estamos calculando a integral sobre o conjunto mais amplo


possvel que esta equaca
em que f esteja definida, a reta R. E
o n
ao tenha
sentido portanto se impoe uma verificacao sobre quais as funcoes para as
quais podemos calcular f g.

es vale a
Vamos logo responder parcialmente esta questao: para que funco
express
ao (eq. 5 ) da convoluca
o. Veja que, se a integral
Z

f (x)dx

(4.154)

existir, e se g for a funcao caracterstica de um intervalo fechado, [, ],


entao

CAPITULO 4. SPLINES

150

f g(a) =
R

=
=

f (x)ga (x)dx =

(4.155)

f (x)g(x a)dx =

(4.156)

f (y + a)g(y)dy =

(4.157)

f (y + a)g(y)dy

(4.158)

e se f tiver integral finita sobre R entao qualquer translacao40 de f ter


a
integral finita sobre qualquer intervalo da reta. Isto mostra a u
ltima e
integral e finita para qualquer valor de a portanto f g esta bem definida
para qualquer que seja a R, quando g for uma funca
o caracterstica de
intervalo limitado.
Crtica da sucessao de equacoes Observe que a equacao (eq. 158 ) sugere
que a convolucao nao e comutativa. Aqueles que trabalharam com esta
operacao, anos atras, observaram que uma pequena modificacao definiria
uma operacao comutativa:
R

g(a x) dx =
| {z }
troca de sinal
y = a x = x = a y = dx = dy

f (a y)g(y)dy =

(f g)(a) =

f (x)

(4.159)

(4.160)
(4.161)

f (a y)g(y)dy =

(4.162)

g(y)f (a y)dy = (g f )(a)

(4.163)

Isto nos leva `a definicao adequada da convlucao


Defini
c
ao 5 Convoluca
o
f g(a) =

f (x)g(a x)dx

(4.164)

quando esta integral existir.


40 uma

propriedade da integral de Riemann, translaca


o n
ao alteram o valor da integral

CAPITULO 4. SPLINES

151

Analise do domnio de f g

Vamos retomar a sequencia de equacoes acima, agora com a definic


ao
correta da convolucao em que g e a funcao caracterstica do intervalo
[, ]

f g(a) =

f (x)g(a x)dx

(4.165)

se uma das funcoes for integravel na reta e a outra for limitada, esta
integral existe. Isto mostra que esta operacao tem sentido, e logo veremos
que ha uma infinidade de funcoes que podem ser os operandos do produto
de convoluca
o.
Demonstramos assim o teorema
Teorema 9 Domnio de validade da convoluca
o
A convoluca
o f g est
a bem definida se g for uma funca
o caracterstica
de um intervalo fechado e f tiver integral em qualquer intervalo fechado.
Exemplo 12 Domnio da convoluca
o
Exemplos de funco
es para as quais podemos calcular f g s
ao qualquer
funca
o contnua f se g for uma funca
o caracterstica de um intervalo
fechado.
Podemos calcular a convoluca
o de duas funco
es caracterstica de intervalos
fechados.
Nos voltaremos logo a esta questao, ampliando o conjunto de pares de
funcoes para os quais podemos calcular a convolucao.
A convolucao define uma nova funcao que nos estamos sugerindo que seja
uma aproximaca
o de f o que e inteiramente errado. Isto somente vai ser verdadeiro se a funcao g for um n
ucleo41 . Vamos discutir este detalhe logo a frente.

4.5.2

Fun
c
oes a suporte compacto

Vamos aqui entender o que controla a regi


ao de correca
o, ja algumas vezes
mencionada, e que estivemos todo tempo associando a base do quadradinho que
fica deslizando sobre o grafico da funcao.
Voce ja deve ter percebido que esta funcao que usamos para calcular medias
deve ter um aspecto do tipo que aparece na figura (fig. 4.15) pagina 152. Nos
casos destes exemplos graficos, existe um intervalo 0 [c, d] tal que, fora do
intervalo [c, d] a funcao e nula. Este intervalo se chama de suporte do n
ucleo.
Nao e preciso que o suporte seja um intervalo limitado.
41 ou

equivalente, um pulso unit


ario

CAPITULO 4. SPLINES

152

ncleo equilibrado

ncleo tendencioso direita

ncleo tendencioso esquerda

Figura 4.15:

N
ucleos ou pulsos unit
arios

Exemplo 13 N
ucleo tendo como suporte a reta
2
A funca
o f (x) = ex , chamada de gaussiana tem integral finita
2

g(x) =

1 f (x)
2

(4.167)

g(x)dx = 1

(4.168)

ex dx =

(4.166)

ucleo tendo por suporte a reta R.


e assim a funca
o g(x) = 12 f (x) e um n
Quer dizer que se usarmos g como n
ucleo para calcular uma convoluca
o f g
o resultado seria uma funca
o muito semelhante a f mas a regi
ao de correca
o
seria a reta inteira. Mesmo com este defeito, f g e uma boa aproximaca
o de
f.
Usar um n
ucleo cuja regiao de correcao se extenda ao espaco inteiro tem
significado: se dilue o erro ao longo do espaco todo.
Mas em geral nao usamos a gaussiana para fazer aproximacoes porque ela
introduziria outra complicacao. Procuramos n
ucleos parecidos com os gr
aficos
da figura (fig. 4.15) pagina 152, e vamos aqui ver como podemos construir tais
n
ucleos. Os intervalos fechados e limitados sao chamados intervalos compactos
da o ttulo desta secao, queremos n
ucleos com suporte compacto.

CAPITULO 4. SPLINES

153

Observa
c
ao 10 Domnio da convoluca
o
Podemos ampliar um pouco a resposta da quest
ao do domnio de definica
o
da convoluca
o, ou, para que tipos de funco
es podemos calcular a convoluca
o.
Onde acima usamos funca
o caracterstica, agora podemos dizer funcoes a suporte
compacto.
Nota
c
ao o suporte de f e designado42 por supp(f ).
Um exemplo simples mostra como podemos construir n
ucleos com suporte
compacto:
Exemplo 14 Um n
ucleo com suporte compacto
Considere f = [0.5,0.5] e vamos calcular f f .
Geometricamente podemos ver que se a translaca
o for maior do que 1 em
m
odulo, a convoluca
o se anula, porque os dois ret
angulos n
ao mais ter
ao superposica
o, ser
ao disjuntos. Faca um gr
afico para se verificar isto. Como consequencia temos
x
/ [1, 1] = f f (x) = 0
e portanto o supp(f f ) [1, 1]. Por outro lado, para qualquer translaca
o cujo
m
odulo seja menor do que 1, os dois ret
angulos ter
ao superposica
o e assim a
integral ser
a diferente de zero. Verifique isto geometricamente, faca um gr
afico.
Consequentemente supp(f f ) = [1, 1].
Vamos agora calcular f f , determinar sua equaca
o.
Prosseguiremos com o metodo geometrico. Observe que o par
ametro da
funca
o f g e a translaca
o aplicada a
` funca
o g
x 7 f f (x) =
f f (x) =
=

0.5
R

0.5

0.5
R

0.5

f (t)f (x t)dt

f (t)f (x t)dt

f (x t)dt

(4.169)
(4.170)
(4.171)

y = x t; dy = dt; t = 0.5 = y = x + 0.5; t = 1 = y = x 0.5


(4.172)
x0.5
x+0.5
R
R
f f (x) =
f (y)dy =
f (y)dy
(4.173)
x+0.5

x0.5

chegamos a
` equaca
o (eq. 170) porque f e a funca
o caracterstica do intervalo
[0.5, 0.5], logo, fora dele e nula, a
` equaca
o (eq. 171) porque f e 1 sobre o
intervalo [0.5, 0.5], na equaca
o (eq. 172) estamos preparando a mudanca de
vari
avel que ir
a na simplificar a an
alise na equaca
o (eq. 173). As hip
oteses,
42 duas

raz
oes para usar pp, sup
e para supremo, em ingl
es usamos supp para o suporte

CAPITULO 4. SPLINES

154

que temos que fazer para calcular a integral na equaca


o (eq. 173) s
ao

x + 0.5 < 0.5


f f (x) = 0

x+0.5

dy
x + 0.5 [0.5, 0.5] f f (x) =
0.5
0.5
R

(4.174)

x 0.5 [0.5, 0.5] f f (x) =


dy

x0.5

x 0.5 > 0.5


f f (x) = 0

Podemos melhorar as premissas no conjunto de equaco


es re-escrevendo-as como

x < 1
f f (x) = 0

x [1, 0] f f (x) = x + 0.5 (0.5) = x + 1


(4.175)
f f (x) = 0.5 (x 0.5) = 1 x
x [0, 1]

x>1
f f (x) = 0
e voce pode ver o gr
afico da convoluca
o na figura (fig. 4.16) p
agina 154.

Figura 4.16:

quadrado de convoluca
o da funca
o caracterstica

Observe! A convoluca
o de duas funco
es descontnuas, resultou numa funca
o
contnua, f f . A convoluca
o n
ao existe para ser calculada a
` m
ao, e o c
alculo
acima mostra que ele pode ser bastante complicado, em geral, com muitas equaco
es
e hip
oteses. Vamos ver isto no pr
oximo exemplo.
Mas o principal resultado deste exemplo e f f e um 1-splines. Estamos
assim nos aproximando do objetivo do captulo... e para melhorar o
animo,
no meio de tantas contas, vamos calcular f f f que podemos antecipar que
sera um 2-splines coisa que anteriormente dissemos que seria difcil de calcular
manualmente.
Exemplo 15 2-splines por convoluca
o
Queremos calcular f f f , e como o produto de convoluca
o e associativo,
temos f f f = f (f f ) = (f f ) f o que nos diz que vamos aproveitar o
resultado do exemplo anterior.
Preparando os c
alculos, temos

f (f f )(x) =
=

0.5
R

0.5

f (t)f f (x t)dt

f (t)(f f )(x t)dt

(4.176)
(4.177)

CAPITULO 4. SPLINES

155

y = x t; dy = dt; t = 0.5 = y = x + 0.5; t = 0.5 = y = x 0.5


(4.178)
x0.5
x+0.5
R
R
f (f f )(x) =
f f (y)dy =
f f (y)dy
(4.179)
x+0.5

x0.5

A raz
ao da equaca
o (eq. 177 ) e que o suporte de f e o intervalo [0.5, 0.5],
na equaca
o (eq. 178 ) estamos fazendo os c
alculos para mudanca de vari
avel, e
finamente, como x0.5 < x+0.5 invertemos os limites de integraca
o e trocamos
o sinal na equaca
o (eq. 179 ).
Agora recorremos a intuica
o gr
afica para agilizar o metodo. A funca
o f f
tem quatro fases (quatro equaco
es) e seu suporte e o intervalo [1, 1]
antes de 1;
no intervalo [1, 0]
no intervalo [0, 1]
depois de 1
que s
ao os intervalos em que a equaca
o de f f muda, e temos que interpretar
au
ltima integral em cada um desses casos, esta e a primeira an
alise

x + 0.5 < 1
x + 0.5 [1, 0]
x + 0.5 [0, 1]; x 0.5 [1, 0]

R0

x0.5

x 0.5 [0, 1]

f f (y)dy +
R1

x0.5

x 0.5 > 1

Re-escrevendo as equaco
es, temos:

x < 1.5

x [1.5, 0.5]

x [0.5, 0.5]; x 0.5 [1, 0]

x [0.5, 1.5]

x > 1.5

f f f (x) = 0
x+0.5
R
f f (y)dy
x+0.5
R
0

f f (y)dy

f f (y)dy

f f f (x) = 0

R0

(4.180)

f f f (x) = 0
x+0.5
R
(y + 1)dy
1

(y + 1)dy +

x0.5

x+0.5
R
0

R1

x0.5

(1 y)dy

(1 y)dy

f f f (x) = 0

(4.181)

CAPITULO 4. SPLINES

156

com a devida interpretaca


o de f f . Calculando as integrais temos:

x < 1.5
f f f (x) = 0

(x+ 23 )

x [1.5, 0.5]
2
3
x [0.5, 0.5]

x2
4

3
(x 2 )

x [0.5, 1.5]

x > 1.5
f f f (x) = 0

(4.182)

Para simplificar a notaca


o, vamos chamar g = f f f . Queremos verificar se
g e contnuamente deriv
avel, de clase C 1 : uma polinomial de grau 2 de classe
1
C .
Primeiro a continuidade, o que basta verificar os valores de cada uma das
equaco
es nos extremos dos intervalos onde elas est
ao definidas.
g(1.5) = 0 a
` direita e a
` esquerda !
(0.5+ 3 )2

2
g(0.5) =
= 0.5 a
` esquerda, e a
` direita g(0.5)+ =
2
3
(0.5)2 = 0.5 e as duas equaco
es concidem a
` direita e a
` esquerda
4
!

` esquerda, e a
` direita g(0.5)+ =
g(0.5) = 43 (0.5)2 = 0.5 a
0.5 as duas equaco
es concidem a
` direita e a
` esquerda !

(0.5 32 )2
2

g(1.5) = 0 a
` direita e a
` esquerda !
e provamos que g e contnua.
Verificando que a derivada e contnua.
g (1.5)+ =

2x+3
2 |1.5

= 0 concidindo a
` direita e a
` esquerda !

ncidindo a
`
g (0.5) = 2x+3
2 |0.5 = 1 g (0.5)+ = 2x|0.5 = 1 co
direita e a
` esquerda !

g (0.5) = 2x|0.5 = 1 g (0.5)+ =


ea
` esquerda !
g (1) =

2x3
2 |1.5

2x3
2 |0.5

= 1 concidindo a
` direita

= 0 concidindo a
` direita e a
` esquerda !

Verificamos assim que g e contnua e que g e tambem contnua, portanto g


e de classe C 1 sendo uma polinomial do segundo grau, portanto um 2 splines.

O gr
afico de g = f f f e formado de tres segmentos de parbola
tangentes
duas a duas no ponto (0.5, g(0.5)) e no ponto (0.5, g(0.5)). As par
abolas
externas sao tangentes ao eixo OX e voce pode ver o grafico de g, feito `
a m
ao,
na figura (fig. 4.17) pagina 166. Na mesma figura voce pode ver o grafico, feito
com Gnuplot, das tres parabolas, e usando os comandos do Gnuplot g(x)=
(x<-1.5)?0:x<-0.5?0.5*(x+3.0/2.0)**2:
x<0.5?0.75-x**2:x<1.5?0.5*(x-3.0/2.0)**2:0
set xrange [-1.5:1.5] plot g(x),0 voce pode obter o terceiro gr
afico
que tambem aparece na referida figura. Observe a barra invertida na linha em

CAPITULO 4. SPLINES

157

que se inicia a definicao de g(x) dentro do Gnuplot. Ela serve para lhe permitir
escrever uma formula que se expanda por mais de uma linha. Terminando a
linha com a barra invertida, evita que Gnuplot leia um fim de linha e assim
uma formula pode ser escrita em diversas linhas.
Observando, dos exemplos que duramente desenvolvemos, que ao fazer uma
convolucao a polinomial aumenta de um grau assim como a classe de continuidade.
Isto e verdade mas a demonstracao e muito difcil e vamos apenas enunciar
o resultado sem demonstra-lo, para uma demonstracao leia o artigo [21].
Teorema 10 N
ucleos n-splines
A enesima potencia de convoluca
o da funca
o caracterstica do intervalo
[0.5, 0.5] e um (n-1)-splines a suporte compacto, positivo, com a
rea 1. Portanto um n
ucleo (n-1)-splines.
Nas aplicacoes nos contentamos com 3-splines, os splines c
ubicos, que d
ao
ttulo a esta secao.
Exerccios 19 Splines a suporte compacto
ucleo 2-splines, construa um n
ucleo
1. splines c
ubico Partindo do exemplo do n
3-splines (splines c
ubico).
2. escala e n
ucleo
(a) Chame g ao 2-splines construido no exemplo (ex. 15). Considere a
seguinte operaca
o:
ga (x) = ag(ax)
e verifique a identidade
Z

ga (x)dx =

g(x)dx = 1

para todo n
umero real a 6= 0.
(b) Faca o gr
afico de g2 , g3 , g4 , g 31 sugest
ao use gnuplot para fazer estes
gr
aficos.
3. splines c
ubico - formato arbitr
ario
(a) Faca o gr
afico da funca
o

x < 4
x+8

[4,
1]
2

x [1, 0.5]
1

x [0.5, 1]
|2x|

x [1, 4]
2

(b) Amacie a funca


o cujo gr
afico foi feito no item anterior, multiplicandoa por convoluca
o, sucessivamente, pelos n
ucleos g2 , g3 , g4 e faca um
laudo do resultado.

CAPITULO 4. SPLINES

4.6

158

Solu
c
ao de alguns exercicios

1. (ex. 8) pagina 121


Analisando o maximo de |P | e de |P | no intervalo [a, a]; a > 0 em que
se encontram as razes, temos
|P (x)| = |x + a + x a| = 2|x| 2|a|

M ax(|P |) = 2|a|
M ax|P | = a2 2|a| == |a| 2

(4.183)
(4.184)
(4.185)

Se fizermos uma translacao neste grafico43 a equacao de P sera


P (x) = (x a)(x b)
em que a, b sao as duas raizes do polinomio. Da parte anterior do problema deduzimos que a distancia entre as razes e no maximo 4 para que
a desigualdade se de, portanto se |a b| 4
2. (ex. 9) pagina 121
O maximo modulo de P se da no ponto medio das razes ou nos extremos
do intervalo [1, 1]. Calculando estes tres valores encontramos
|P (1)| = 2 = |P (1)|; |P (0)| = 1
logo o modulo maximo de P e 2.
O modulo maximo da funcao do terceiro grau Pq, sobre o intervalo em que
ela tem razes, se da nas razes da derivada: 13 e vale, em modulo
r

1 1
( 1) =
3 3

12
<2
33

demonstrando o que desejavamos.


3. (ex. 10) pagina 121
4. Polinomio interpolando pontos no plano
5. (ex. 11g) pagina 122
P(x) =
P1(x)=
P2(x)=
P3(x)=
P4(x)=
P5(x)=
43 movimento

(x+3)*(x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-3)
(x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-3)
(x+3)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-3)
(x+3)*(x+2.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-3)
(x+3)*(x+2.5)*(x+1.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-3)
(x+3)*(x+2.5)*(x+1.5)*(x+0.5)*(x-1.5)*(x-2.5)*(x-3)
rgido, n
ao altera as proporco
es no gr
afico

CAPITULO 4. SPLINES

159

P6(x)= (x+3)*(x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-2.5)*(x-3)
P7(x)= (x+3)*(x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-3)
P8(x)= (x+3)*(x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)
dP(x)= P1(x)+ P2(x)+ P3(x)+ P4(x)+ P5(x)+ P6(x)+ P7(x)+ P8(x)
set xrange [-3:3]
plot P(x),dP(x),0
f(x) = P1(x)/dP(-3) + P2(x)/dP(-2.5) + P3(x)/dP(-1.5)+\
P4(x)/dP(-0.5)+P5(x)/dP(0.5) + P6(x)/dP(1.5) + P7(x)/dP(2.5)+\
P8(x)/dP(3)
plot f(x),0
g(x) = (x**2 - 9)*sin(2*x)
h(x) = g(-3)*P1(x)/dP(-3) + g(-2.5)*P2(x)/dP(-2.5)+\
g(-1.5)*P3(x)/dP(-1.5) + g(-0.5)*P4(x)/dP(-0.5)+\
g(0.5)*P5(x)/dP(0.5) + g(1.5)* P6(x)/dP(1.5)+\
g(2.5)*P7(x)/dP(2.5) + g(3)*P8(x)/dP(3)
plot h(x),g(x),0
P(x) = (x+7)*(x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-7)
P1(x)= (x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-7)
P2(x)= (x+7)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-7)
P3(x)= (x+7)*(x+2.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-7)
P4(x)= (x+7)*(x+2.5)*(x+1.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-7)
P5(x)= (x+7)*(x+2.5)*(x+1.5)*(x+0.5)*(x-1.5)*(x-2.5)*(x-7)
P6(x)= (x+7)*(x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-2.5)*(x-7)
P7(x)= (x+7)*(x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-7)
P8(x)= (x+7)*(x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)
dP(x)= P1(x)+ P2(x)+ P3(x)+ P4(x)+ P5(x)+ P6(x)+ P7(x)+ P8(x)
set xrange [-7:7]
plot P(x),dP(x),0
f(x) = P1(x)/dP(-7) + P2(x)/dP(-2.5) + P3(x)/dP(-1.5)+\
P4(x)/dP(-0.5)+P5(x)/dP(0.5) + P6(x)/dP(1.5) + P7(x)/dP(2.5) +\
P8(x)/dP(7)
plot f(x),0
g(x) = (x**2 - 9)*sin(2*x)
h(x) = g(-7)*P1(x)/dP(-7) + g(-2.5)*P2(x)/dP(-2.5)+\
g(-1.5)*P3(x)/dP(-1.5) + g(-0.5)*P4(x)/dP(-0.5)+\
g(0.5)*P5(x)/dP(0.5) + g(1.5)* P6(x)/dP(1.5)+\
g(2.5)*P7(x)/dP(2.5) + g(7)*P8(x)/dP(7)
plot h(x),g(x),0
6. (ex. 1) pagina 126
(a) Coloque no arquivo dados os pares de pontos (xk , yk ).
-3 0
-2.5

CAPITULO 4. SPLINES

160

-1.5 -1
-0.5 -2
0.5
-3
1.5
-1
2.5 2
3 0
observe que xk e yk ficam separados por espaco, e cada par fica em
uma u
nica linha. Depois, chame Gnuplot e execute
set pointsize 0.1 ## definir a expessura da linha
plot 0, "dados" with lines ## o nome do arquivo entre aspas
Se voce estiver lendo este arquivo eletronicamente (em pdf), cortar
e colar funciona com Gnuplot.
(b) Em cada intervalo a funcao f esta definida por uma equac
ao do
primeiro grau fk
y = b + m(x a) equacao da reta por (a, b);
fk (x) = yk + mk (x xk );
k+1 yk
; x [xk , xk+1 ]
mk = k = xyk+1
xk

(4.186)
(4.187)
(4.188)
(4.189)

Basta agora, para cada inteiro n, encontrar n [xk , xk+1 ]. Por


exemplo
n [xk , xk+1 ]

1 [0.5, 1.5] = [x4 , x5 ]


f4 (x) = y4 + m4 (x x4 )

(4.190)
(4.191)
(4.192)

f4 (x) = 3 + 2(x 0.5) ; f (1) = 3 + 2(1 0.5) = 2(4.193)


A definicao de f num algoritmo de computador e
float fl(float x)
{
float m,a1,b1,a2,b2;
if (x < -2.5)
{a1= -3; b1=0; a2=-2.5; b2=1;
m = (b2 - b1)/(a2 -a1);
return m*(x - a1) + b1;
}
if (x < -1.5)
{a1= -2.5; b1=1; a2=-1.5; b2=-1;
m = (b2 - b1)/(a2 -a1);
return m*(x - a1) + b1;
}
if (x < -0.5)

CAPITULO 4. SPLINES

161

{a1= -1.5; b1=-1; a2=-0.5; b2=-2;


m = (b2 - b1)/(a2 -a1);
return m*(x - a1) + b1;
}
if (x < 0.5)
{a1= -0.5; b1=-2; a2=0.5; b2=-3;
m = (b2 - b1)/(a2 -a1);
return m*(x - a1) + b1;
}
if (x < 1.5)
{a1= 0.5; b1=-3; a2=1.5; b2=-1;
m = (b2 - b1)/(a2 -a1);
return m*(x - a1) + b1;
}
if (x < 2.5)
{a1= 1.5; b1=-1; a2=2.5; b2=2;
m = (b2 - b1)/(a2 -a1);
return m*(x - a1) + b1;
}
if (x < 3)
{a1= 2.5; b1=2; a2=3; b2=0;
m = (b2 - b1)/(a2 -a1);
return m*(x - a1) + b1;
}
else
return(0.0);
}
7. (ex. 1) pagina 126
Sera possvel encontrar polinomios do terceiro grau em cada intervalo Ik =
[ak , ak+1 ] porque temos quatro dados em cada um deles:
fk (x) = a1,k + a2,k (x xk ) + a3,k (x xk )2 + a4,k (x xk )3
fk (xk ) = yk = a1,k

fk (xk ) = dk
fk (xk+1 ) = yk+1

fk (xk+1 ) = dk+1

a1,k + a2,k (x xk ) +

8. (ex. 2) pagina 126


A figura (fig. 4.18) pagina 167, mostra, comparativamente, a aproximac
ao
polinomial classica, de Lagrange com a aproximacao polinomial por pedacos.

CAPITULO 4. SPLINES

162

Neste exemplo escolhemos os pontos de precisao


x1 = 7, x2 = 5, x3 = 3.0, x4 = 1, x5 = 1, x6 = 3, x7 = 5, x8 = 7;
e estamos aproximando a funcao
h(x) = (x x 9) sin(x)
no intervalo [7, 7]. A escolha dos nos foi feita de forma a salientar a fragilidade da aproximacao polinomial de Lagrange uma vez que a dist
ancia
entre os dois primeiros nos e os dois u
ltimos nos e grande. Se a dist
ancia
entre os nos for pequena, e uniforme, a aproximacao polinomial de Lagrange tem um desempenho melhor, como se pode Veja na figura (fig.
4.19) pagina 168. em que usamos os nos
x1 = 3.0, x2 = 2.0, x3 = 1.0, x4 = 0.0, x5 = 1.0, x6 = 2.0, x7 = 3.0, x8 = 4.0
e estamos aproximando a funcao
h(x) = (x x 9) sin(x)
no intervalo [3, 4].
A aproximacao melhora na medida em que a malha ficar mais fina, e
consquentemete o polinomio de mais alto grau o que torna o metodo,
computacionalmente, ineficiente.
9. (ex. 2) pagina 157
(a)
R

ga (x)dx =

(4.200)

ag(ax)dx =

(4.201)

ag(ax)d(ax) =

(4.202)

1
a

R
a
g(ax)d(ax) =
a

R
a
g(y)d(y) =
a

g(y)d(y)

(b) Com Gnuplot defina


g(x)= (x<-1.5)?0:x<-0.5?0.5*(x+3.0/2.0)**2:
x<0.5?0.75-x**2:x<1.5?0.5*(x-3.0/2.0)**2:0

(4.203)
(4.204)
(4.205)

CAPITULO 4. SPLINES

163

a=2;b=3;c=4;
h1(x)=a*g(a*x);
h2(x)=b*g(b*x);
h3(x)=c*g(c*x);
plot g(x), h1(x),h2(x),h3(x),0
10. (ex. 3) pagina 157 Figura (fig. 4.20) pagina 168,
(a) Faca o grafico da funcao

x < 4
x+8

[4,
1]
2

x [1, 0.5]
1

x [0.5, 1]
|2x|

x [1, 4]
2

(b) Amacie a funcao cujo grafico foi feito no item anterior, multiplicandoa por convolucao, sucessivamente, pelos n
ucleos g2 , g3 , g4 e faca um
laudo do resultado.

4.7

Vocabul
ario

corre
ca
~o da informa
ca
~o, scilab
corre
c
ao da informa
c
ao

Vamos dar aqui um exemplo ilustrativo sobre a correcao da informac


ao.
Observe o seguinte texto:
Mituo isneterasstne
De aorcdo com uma pqsieusa de uma uinrvesriddae ignlsea, n
ao
ipomtra em qaul odrem as lrteas de uma plravaa etaso, a u
ncia
csioa iprotmatne e que a piremria e u
tmlia lrteas etejasm no lgaur
crteo. O rseto pdoe ser uma bcguana ttaol que vcoe pdoe anida
ler sem pobrlmea. Itso e poqrue nos nao lmeos cdaa lrtea isladoa,
mas a plravaa cmoo um tdoo.
Mutitu isneterassten
De aorcod com uma pqsieuas de uma uinrvesriddea ignlsae, n
ao
ipomtar em qaul odrem as lrtesa de uma plravaa etaso, a u
ncai
csioa iprotmaten e que a piremrai e u
tmlai lrtesa etejams no lgaru
crtoe. O rseto pdoe ser uma bcguaan ttalo que vcoe pdoe anida
ler sem pobrlmae. Itso e poqreu nos nao lmeos cdaa lrtea isladoa,
mas a plravaa cmoo um tdoo.

O texto explicou mal. A razao e outra, e um caso de correca


o da informaca
o que vou agora explicar.

CAPITULO 4. SPLINES

164

que ao lermos, nao lemos! Comparamos as palavras com as que temos em


E
nosso banco de dados e compomos a informacao usando uma amostragem
da informacao. Quem le devagar, de fato le. Quem le rapido, faz esta
amostragem e compoe a informacao.
Quem le rapido, nem siquer le palavras, le frases inteiras, e novamente,
n
ao le, analisa o conjunto das palavras, seleciona no banco de dados o que
da certo para colocar naquele conjunto, e percebe a informacao.
Claro, esta rapidez pode ter seus contra-pontos, e possvel rapidamente
adquirir o centro da ideia, porem perder detalhes. O leitor rapido pode
num relance compreender, do texto, que brigaram o homem e a mulher,
mas pode nao perceber que foi o seu irmao com a mulher dele... se
alguem lhe perguntar depois pelo conte
udo do texto, responderia:
- Brigaram!
e se o interlocutor insistisse na pergunta:
- Quem brigou, com quem?
responderia:
- Sei la!

A inmaforcao foi rbidecea, mas ptare dela se pdeeru pquore o ltoeir anapes
abvsoreu patre do prcaedido e paert do pratiedicvo na oracao. Se o astsuno de
fato lhe chssamae atcaeno, voriltaa e se ceicartifria de pater dos dados pedordis.
Qudano, num tetxo, a infaormcao for retipeda e abdaunnte, etsa leuitra r
adpia
e saftisatoria pourqe, com a amraostgem, o leoitr abrsove toda a inmaforc
ao
imtapornte. Qunado o tetxo e coincso, sorbio, teicnco, a letiura temrina sedno
mias letna poqrue a amotsragem se reevla impfereita, o letior obesrva que n
ao
esta cogunseindo coeemprnder e, natlmuraente, psasa a faezr uma amraostgem
mais fina, teirmna ledno. . .

A informacao foi recebida, mas parte dela se perdeu porque o leitor apenas
absorveu parte do predicado e parte do predicativo na oracao. Se o
assunto de fato lhe chamasse atencao, voltaria e se certificaria de parte
dos dados perdidos.
Quando, num texto, a informacao for repetida e abundante, esta leitura
rapida e satisfatoria porque, com a amostragem, o leitor absorve toda
a informacao importante. Quando o texto e conciso, sobrio, tecnico, a
leitura termina sendo mais lenta porque a amostragem se revela imperfeita,
o leitor observa que nao esta conseguindo compreender e, naturalmente,
passa a fazer uma amostragem mais fina, termina lendo. . .

Linear, computa scilab e um programa para resolver questoes de Algebra

cionalmente, distribuido sob GPL. E semelhante a um programa comercial

tambem dedicado `a Algebra


Linear. Pode ser obtido na internet, [23].

CAPITULO 4. SPLINES

165

CAPITULO 4. SPLINES

166

1
f1(x)
f2(x)
f3(x)
0

2
1.5

0.5

0.5

1.5

2spline a suporte compacto


0.8
g(x)
0
0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
1.5

0.5

Figura 4.17:

0.5

2-splines

1.5

CAPITULO 4. SPLINES

167

40
"polped"
"lagrange"
"precisao"
"XOY"

30

20

10

-10

-20

-30

-40
-8

-6

-4

Figura 4.18:

-2

Comparaca
o: polin
omio de Lagrange e splines

CAPITULO 4. SPLINES

168

8
"polped"
"lagrange"
"precisao"
"XOY"

-2

-4

-6

-8
-3

-2

-1

Figura 4.19: Comparacao: polinomio de Lagrange e splines - quando os nos ficam uniformente pr
oximos.
4
data1
data2

2
6

Figura 4.20:

Regularizaca
o por convoluca
o

Captulo 5

Integrac
ao aproximada
O objetivo deste captulo e o de apresentar-lhe dois metodos para
o calculo aproximado da integral
Zb

f (x)dx

Vou comecar com as somas de Riemann que, embora nao seja o


metodo conduzindo a melhor aproximacao, e o mais simples e e
usado em diversas situacoes em que se deseje rapidamente avaliar
a integral. Depois vou discutir uma variante da soma de Riemann
- regra do trapesio.
Embora o metodo nao seja eficiente e nos lhe vamos mostrar na
segunda parte do captulo um que e eficiente, as ideias basicas das
somas de Riemann estarao presentes posteriormente: particao,
varredura, malha.
Finalmente vou mostrar como podemos aplicar o assunto do
captulo 4 no calculo aproximado de integrais. Este metodo, sim,
e de alta precisao e muito otimizado.

possvel que o leitor, ou o professor, sinta a falta do metodo Simpson


E
entre os processos para o calculo aproximada da integral. De fato ele est
a sendo
omitido aqui uma vez que podemos mostrar coisa melhor que e o uso dos splines,
afinal nao seria somente o metodo de Simpson que estaria faltando, num livro
como este temos que escolher, selecionar material para que nao transform
a-lo
num tratado enciclopedico, alguns destes tratados estao na bibliografia. Se voce
fez um bom curso de Calculo, estudou integral no sentido de Riemann e portanto
as somas de Riemann. Parte do material deste captulo sera uma amena revis
ao
para voce, esperamos.
169

CAPITULO 5. INTEGRAL APROXIMADA

5.1

170

Integral no sentido de Riemann


Neste captulo discutimos a integral de forma intuitiva e geom
etrica fazendo,
inicialmente, uma revis
ao concentrada daquilo que se faz em C
alculo Diferencial e Integral mas voltados para o nosso objetivo que
e o c
alculo num
erico
de integrais.
Comecamos por descrever, com alguma simplicidade, o m
etodo de integraca
o,
atribuido ao matem
atico alem
ao, Bernard Riemann, as somas de Riemann,
como aproximaca
o para o c
alculo da integral e da derivaremos os m
etodos
tpicos desta disciplina que logo o leitor ver
a que
e uma aplicaca
o da aproximac
ao polinomial.

5.1.1

Integra
c
ao geom
etrica.

Vamos comecar calculando aproximadamente v


arias integrais para tornar mec
anico o uso
da soma de Riemann como m
etodo de aproximaca
o de integrais.
Neste livro a integral representa a a
rea alg
ebrica delimitada pelo gr
afico de uma funca
o f
entre dois pontos dados de seu domnio. Veja a interpretaca
o geom
etrica na figura (fig. 5.1)
p
agina 172.
Rb
rea
Esta
e a forma de se interpretar a integral no C
alculo: o smbolo f representa esta a
a

limitada pelo gr
afico de f e o eixo OX desde x = a at
e x = b.

A lista de exerccios deve ser entendida como um laboratorio para relembrar


conhecimentos que o aluno deveria ter, o que nem sempre e verdadeiro. Um
aluno que considere um exerccio trivial, simplesmente deve ignora-lo e passar
para o seguinte, apenas tendo o cuidado de ter a certeza de que nao fez um
julgamento apressado.
Exerccios 20 C
alculo aproximado da integral
1. Represente geometricamente as seguintes integrais:
R3
R3
R0
a)
4
b) 4
c) 4
d)
g)
j)

3
R3

2x

3
R10

3
R3

e)

2x + 3

h)

x+4

3
R3

m)

k)

x2 + 2x + 1

n)

0
R3

2x

2
R10
1
R3
0
R3
0

f)

2x 3

i)

x4

l)

1 x2

o)

R3

2x

0
3
R
3
R0

3
R0
3

3 2x
4x

x2 4

2. Calcule as integrais, que voce souber calcular, dentre as indicadas na


quest
ao anterior.
3. Calcule aproximadamente as integrais.
a)

R3

x2 + 2x + 1

b)

R3
0

1 x2

c)

R3

4 x2

CAPITULO 5. INTEGRAL APROXIMADA

171

Sugest
ao aproxime por falta ou por excesso as a
reas com ret
angulos, tri
angulos
ou trapesios, conforme for conveniente, e aumente a precis
ao dos resultados usando uma m
aquina de calcular ou um programa de computador.

5.1.2

Express
ao formal do c
alculo da integral

Nos ainda nao sabemos calcular as integrais:


R3

x2 + 2x + 1

(5.1)

R3

1 x2

(5.2)

x2 4

(5.3)

R3

e agora vamos ver como isto se faz, aproximadamente.

Area
aproximada usando ret
angulos
As integrais, (eq. 1), (eq. 2) e (eq. 3), representam as areas de regioes limitadas
por contornos nao retilneos.
Voce ja foi convidado, em exerccio anterior, a representar geometricamente
estas integrais.
Neste momento tudo que podemos fazer e calcular estas areas aproximadamente, este metodo esta representado na figura (fig. 5.1) pagina 172 e ser
a
discutido em detalhe mais abaixo, mas e assunto que voce pode encontrar discutido em profundidade nos cursos de Calculo.
Uma sada, para obter uma aproximacao de integrais como
Z3

x2 + 2x + 1

(5.4)

representando a a
rea de regi
oes com contornos curvilneos, consiste em subdividir a regiao que elas representam com ret
angulos, tri
angulos ou trapesios e
calcular a soma das areas destas figuras:
Veja na figura (fig. 5.1) pagina 172,
Voce logo deve se convencer de que nao ha ganho especial em trabalhar com
tantas figuras. Usando apenas retangulos podemos obter alta precisao, desde
que a base dos retangulos seja pequena, e este objetivo podera ser alcancado
com um programa de computador, nao com calculos manuais.
Veja, por exemplo, a area de um trapesio e a media aritmetica entre as
areas
de dois retangulos, um com a altura maxima do trapesio, e o outro com a altura
mnima do trapesio, supondo que o trapesio tenha duas alturas. Analise as
figuras (fig. 5.4), pagina 190.

CAPITULO 5. INTEGRAL APROXIMADA

172

a
Figura 5.1:

Trap
esios para aproximar a
rea

Isto mostra que o calculo da area usando trapesio pode ser obtido com a
media aritmetica dos calculos feitos usando, retangulos por excesso e ret
angulos
por falta.
Depois, um triangulo e apenas um tipo particular de trapesio...
Entao vamos nos concentrar no calculo com retangulos, para encontrar a
area aproximada das integrais e nos preocupar em obter este resultado com
precisao maxima diminuindo a base dos retangulos.
Se convenca do que foi dito fazendo alguns graficos.
Somas de Riemann
Para calcular aproximadamente

Rb

f podemos subdividir a regiao em tri


angulos,

retangulos ou trapesios, conforme a conveniencia ou de acordo com as possibilidades geometricas da figura. Mas ja observamos que nao se ganha muito com
este detalhe, muito mais se ganha na quantidade de subdivis
oes1 , e, naturalmente com o uso de um programa de computador.
Mas a principal razao de usarmos retangulos e a de que podemos obter
uma express
ao algebrica simples para a soma das area dos retangulos e depois
aplica-la num programa de computador.
A express
ao algebrica que se presta, facilmente, para utilizar num programa
e uma soma de Riemann.
As somas de Riemann usam exclusivamente retangulos. Para obter os ret
angulos,
se subdivide o intervalo [a, b] em n sub-intervalos, veja na figura (fig. 5.2) p
agina
173, a sugestao grafica de como fazer isto. as subdivisoes nao precisam ser irregulares, como e o caso da (fig. 5.2), elas podem ser os nos de uma partic
ao
ba
uniforme e assim satisfazer a uma progressao aritmetica de razao x = n .
1 em

outras palavras, ao usarmos subintervalos cada vez menores

CAPITULO 5. INTEGRAL APROXIMADA

173

b
a

[a,b]
Figura 5.2:

Soma de Riemann

Este valor x e tambem o tamanho, (medida), da base de cada um dos subintervalos.


Vamos adotar este caso particular de particao, chamada de partica
o uniforme, e o leitor pode consultar um livro de Calculo para verificar que se a
integral existir, o valor dela independe do tipo de partica
o que se escolher para
o C
alculo das somas de Riemann.
Os nos da particao (malha) sao:
a, a + x, a + 2x, a + 3x, a + kx, , a + (n 1)x = b x (5.5)
Aqui faremos mais uma simplificacao no metodo. Falamos anteriormente de
a
rea por excesso e a
rea por falta. Mas queremos calcular integrais automaticamente e assim nao desejamos analisar o grafico para escolher a area por excesso
ou por falta. Seguiremos assim o exemplo da figura (fig. 5.2) na qual voce pode
ver que alguns retangulos representam a area por excesso e outros por falta.

CAPITULO 5. INTEGRAL APROXIMADA

174

Convidamos a que voce faca um exerccio:

Exerccio 1 Area
por falta ou por excesso
1. Verificar que os quatro primeiros ret
angulos na (fig. 5.2) representam uma
aproximaca
o por excesso.
2. Verificar que os ret
angulos quinto e sexto na (fig. 5.2) representam uma
aproximaca
o por falta da a
rea.
3. Verificar que os ret
angulos, setimo, oitavo e nono, na (fig. 5.2) representam uma aproximaca
o por falta e que o decimo aproxima por excesso a
a
rea.
Se voce nao concordou com a veracidade das afirmacoes contidas nos exerccios
acima, e porque, talvez, voce nao tenha observado que ha alguns ret
angulos
com area nula (altura nula), volte a analisar os exerccios munido desta nova
informacao.
Vamos agora passar a express
ao formal da soma de Riemann.
Soma de Riemann
Considere agora a figura (fig. 5.2) pagina 173. Estipulamos um tamanho x
para a base dos retangulos e cobrimos a area algumas vezes por excesso, outras
vezes por falta. Para isto consideramos a progressao aritmetica
a + kx; k = 0, 1, ...

(5.6)

eou
ltimo retangulo ficou extrapolando o intervalo de integracao [a, b].
Para evitar que isto aconteca temos que
calcular x usando a medida do intervalo [a, b] e
um n
umero de divis
oes, um n
umero inteiro escolhido:
x =

ba
n

A progressao aritmetica obtida com esta razao x vai fazer de


b = a + nx,
ou
ltimo termo da p.a. de modo que o u
ltimo retangulo escolhido corresponde
ao subintervalo
[a + (n 1)x, a + nx] = [b x, b]
(5.7)
Existe uma notacao pratica que esconde a expressao dos termos da progressao aritmetica, mas que sabemos qual e, de forma implcita. Usamos
x0 = a = a + 0x;
xk = a + kx;
xn = b = a + nx;

(5.8)
(5.9)
(5.10)

CAPITULO 5. INTEGRAL APROXIMADA

175

Agora podemos escrever a express


ao da soma dos retangulos:
Zb
a

n1
X

f (xk )x =

n1
X

f (a + kx)x

(5.11)

k=0

k=0

a segunda formulacao e apropriada para programas de computacao, a primeira


e mais resumida e propria para escrever em textos de Matematica. Com este
calculo do x evitamos que haja um retangulo a mais ou a menos na cobertura
da area representada pela integral que e o defeito apresentado na (fig. 5.2).
Observe que o u
ltimo no nao e b, mas sim b x.
Para cada um dos subintervalos, consideraremos a altura
f (a + kx) = f (xk )
em que k varia desde 0 ate n 1 :
f (a), f (a + x), f (a + 2x), f (a + kx), , f (a + (n 1)x).

(5.12)

Quer dizer que os retangulos tem por area:


f (a)x, f (a + x)x, f (a + 2x)x, f (a + (n 1)x)x

(5.13)

A soma destas areas e o valor aproximado da integral, agora nao sabemos se


e por falta ou por execesso, mas, com certeza e um valor medio, entre o c
alculo
por excesso e o calculo por falta.
Experimente as funcoes
riemann(), riemann grafun()
no arquivo riemann.py. Digite
python riemann.py
depois de editar o arquivo. Vejas as u
ltimas linhas do arquivo riemann.py que
trazem instrucoes de como usar o programa. Nao se preocupe em entender
o programa, agora. Volte a ler o programa em outras ocasioes, ao longo do
captulo.
Defini
c
ao 6 Soma de Riemann
Considere o intervalo [a, b] e uma funca
o que seja integr
avel neste intervalo.
2
Definimos uma soma de Riemann, de ordem n , associada a uma partica
o
3
uniforme

2 ordem
3 J
a

x0 = a
..
.

(5.14)

xk = a + kx
..
.

(5.16)

xn1 = a + (n 1)x = b x
b = a + nx

(5.18)
(5.19)

(5.15)

(5.17)

n porque representa a soma de n parcelas


dissemos que as partico
es n
ao precisam ser uniforme, estamos fazendo uma escolha.

CAPITULO 5. INTEGRAL APROXIMADA

como
Sn (f ) =

n1
X

176

f (a + kx)x.

(5.20)

k=0

Observe que em todos os retangulos consideramos a altura dada pelo primeiro extremo do correspondente subintervalo. Quer dizer que, no intervalo
[xk , xk+1 ] = [a + kx, a + (k + 1)x]
a altura considerada e f (xk ).
Poderiamos ter usado o segundo extremo obtendo a formula
Sn (f ) =

n
X

f (a + kx)x.

(5.21)

k=1

que voce deve se convencer de que representa uma aproximaca


o equivalente da
integral. Dissemos equivalente, os valores nao sao iguais, faca as contas e veja.
Mas o erro entre as duas express
oes e pequeno, ou tende a ser pequeno, quando
a medida dos subintervalos decresce.
Exerccios 21 Soma de Riemann superior ou inferior
ao intuitiva das integrais superior e inferior e
Objetivo: adquirir uma vis
compreender a relaca
o
Sn (f ) Sn (f )
para uma mesma partica
o do intervalo [a, b] quando f for positiva.
Se os exerccios lhe parecerem claros, n
ao perca o seu tempo fazendo-os.
1. Divida o intervalo [3, 3] em 10 subintervalos iguais, represente geometricamente a aproximaca
o da a
rea
Z3

f (x) =

Z3

x2

usando sempre o m
aximo de f em cada sub-intervalo. Esta soma de Riemann assim obtida se chama soma superior de Riemann
S 10 (f )
e vale a desigualdade
Z3

f (x) S 10 (f )

Observe que escrevemos menor ou igual porque, por uma casualidade, se


pode obter uma igualdade. Se f for constante vale a igualdade.

CAPITULO 5. INTEGRAL APROXIMADA

177

2. Divida o intervalo [3, 3] em 20 subintervalos iguais, represente geometricamente a aproximaca


o da a
rea
Z3

f (x) =

Z3

x2

usando sempre o m
aximo de f em cada sub-intervalo. Esta soma de Riemann assim obtida se chama soma superior de Riemann
S 20 (f )
e valem as desigualdades
Z3

f (x) S 20 (f ) S 10 (f )

3. Tente uma demonstraca


o para a afirmaca
o: se duplicarmos a quantidade
de intervalos, usando particoes uniformes, se tem
S 2n (f ) S n (f )
em outras palavras, as somas superiores obtidas por subdivisao sucessiva
dos subintervalos, forma uma sucessao decrescente. Ela decresce para o
valor da integral
Zb
f (x)
a

sobre o intervalo [a, b].


4. Prove que, se f for uma funca
o crescente,
Sn (f ) =

n1
X

f (a + kx)x.

(5.22)

k=0

e uma aproximaca
o por falta da integral

Rb

f e

Sn (f ) =

n
X

f (a + kx)x.

(5.23)

k=1

e uma aproximaca
o por excesso da integral. Faca um gr
afico ilustrativo.
5. Prove que, se f for uma funca
o decrescente,
Sn (f ) =

n1
X
k=0

f (a + kx)x.

(5.24)

CAPITULO 5. INTEGRAL APROXIMADA

178
Rb

e uma aproximaca
o por excesso da integral

f e

Sn (f ) =

n
X

f (a + kx)x.

(5.25)

k=1

e uma aproximaca
o por falta da integral. Faca um gr
afico ilustrativo.
6. Use o programa riemann() para calcular, aproximadamdente, as integrais
R3

a)
c)

3
R3

i)

5 2x

2
R10
3
3
R
3

k)

R3

x2 2x + 3

f)

4xsen(x) + 3x2

h)
j)

sen(x)

l)

2x x2

3x2 2x

R3

3 2x

R3

d)

m)

R3

b)

3
R0

e)
g)

2x + 3

x2 cos(x) 2xsen(x) cos(x)

R3

2 2x2

0
R10

1
R3

3
R0

3
R3

n)

x2 cos(x) 2x 3

(x3 x2 x + 4)sen(x)
cos(x)
1 + x2 cos(x)

e compare o resultado usando o Teorema Fundamental do C


alculo, (em
alguns casos voce vai ter que usar integraca
o por partes).
Na proxima secao alguns calculos feitos com um programa em Python v
ao
ilustrar numericamente e graficamente o significado da soma de Riemann.

5.2

Integral no sentido de Riemann

Falamos diversas que as somas de Riemann eram aproximacoes da integral e


vamos agora ver como. A teoria que vamos apresentar e um pouco simplificada,
deixamos que voce leia uma teoria mais completa num livro de Calculo. Um
dos itens de nossa simplificacao reside em que vamos considerar apenas malhas
uniformes, este defeito e importante!
O metodo algortmico para calcular integrais e
Temos uma funcao

[a, b] R

que desejamos provar que e integravel;

CAPITULO 5. INTEGRAL APROXIMADA

179

Determinamos uma sucessao de malhas4 (particoes), k , no intervalo [a, b]


de modo que a sucessora de cada malha seja um refinamento5 da anterior
k+1 << k ;

(5.26)

a cada malha desta sucessao associamos uma soma de Riemann para f


obtendo assim uma sucessao de somas de Riemann
k 7 Sk (f );

(5.27)

Se qualquer sucessao de somas de Riemann, assim construda, tiver o


mesmo limite, este limite comum e
Zb

(5.28)

este e um dos metodos para definir n


umeros reais, um n
umero real e o limite
comum de uma classe de equivalencia de sucess
oes convergentes de n
umeros
racionais.
Podemos escrever uma definicao para funcao integravel a Riemann:
Defini
c
ao 7 integral no sentido de Riemann Seja
f

[a, b] R.
f e integr
avel no sentido de Riemann se qualquer sucess
ao de somas de Riemann
obtida por refinamentos arbitr
arios de uma partica
o de modo que a medida dos
subintervalos tendam a zero, definir um mesmo n
umero real.
Este u
nico n
umero real e
Zb
f.
a

Observa
c
ao 11 Partico
es uniformes
Observe que na definica
o n
ao fizemos menca
o a
`s partic
oes uniformes. Para
definir a integral precisamos de famlias arbitr
arias de partico
es.
Mas neste texto somente faremos uso de particoes uniformes. Para que voce
fique alerta, a funca
o
1
(5.29)
x
seria integr
avel se usarmos apenas particoes uniformes e na verdade esta funca
o
n
ao e integr
avel.
f

[1, 1] R; x 7

4 que

na linguagem da estatstica representa uma amostragem


linguagem da estatstica seria uma amostragem compatvel, ou compar
avel, com a
anterior
5 na

CAPITULO 5. INTEGRAL APROXIMADA

180

Entretanto, se a funca
o for integr
avel, usando apenas partico
es uniformes
podemos calcular a sua integral, este e o atalho que estamos usando aqui. Este
e um livro de C
alculo Numerico, em que calculamos numericamente aquilo que
voce aprendeu a calcular exatamente no curso de C
alculo Diferencial e Integral.
Exemplo 16 Programa riemann.py
Rode e leia o programa riemann.py. Ele produz alguns refinamentos de uma
partica
o inicial criando uma sucess
ao que converge para o valor da integral, se
este valor existir.
Experimente o programa com algumas das funco
es que est
ao definidas nele,
por exemplo inv(x) que igual a x1 quando x 6= 0. Experimente calcular sua
integral no intervalo [1, 1] para ver alguns elementos de uma sucess
ao que n
ao
parece ser convergente. Os n
umeros que surgem n
ao formam uma sucess
ao
que pareca ter limite.
Observe que um programa deste tipo n
ao prova nada! ele apenas serve como
exemplo e deve ser usado com este cuidado.
Para usar o programa, troque o nome da funca
o cuja integral voce deseja
dentro de uma das u
ltimas linhas do programa. Veja a observaca
o que indica
isto no pr
oprio programa. Use o programa para definir outras funco
es cujas
integrais voce deseja, observe a sintaxe da linguagem Python ao definir novas
funco
es.

5.2.1

Duas propriedades da integral

Nao vamos desenvolver aqui a teoria de integracao, ela e privativa do curso


de Calculo! Mostraremos entretanto uma propriedade da integral de Riemann
para ilustrar como as somas de Riemann sao um metodo efetivo de aproximac
ao.
Depois veremos que combinando as somas de Riemann com aproximac
ao polinomial, teremos algoritmos muito possantes para calcular integrais aproximadamente.
A propriedade: se f = h + g entao
Zb
a

f=

Zb

(h + g) =

Zb
a

h+

Zb

e de grande uso. Vamos ver sua demonstracao.


Suponhamos que f, g, h sejam funcoes integraveis e que f = h + g.
Para cada particao do intervalo [a, b] podemos escrever
f (xk ) = g(xk ) + h(xk );
n
P
Sn (f ) =
f (xk )xn ;

(5.31)

Sn (h) =

(5.32)

k=0
n
P

k=0

h(xk )xn ;

(5.30)

CAPITULO 5. INTEGRAL APROXIMADA

Sn (g) =

n
P

181

g(xk )xn ;

(5.33)

k=0

Sn (h + g) =

n
P

(h(xk ) + g(xk ))xn =

(5.34)

k=0
n
P

f (xk )xn = Sn (f )

(5.35)

k=0

o que nos mostra que os n


umeros
Zb

f;

Zb

h+g

(5.36)

sao iguais, porque


As equacoes (30)-(35) valem para qualquer que sejam as partic
oes escolhidas no intervalo de integracao;
Logo a a soma dos limites e igual ao limite da soma, e provamos assim
que a soma das integrais e igual a integral das somas.
facil usar uma pequena alteracao desta demonstracao para provar outra
E
propriedade tambem muito u
til:
Zb

Kf = K

Zb

(5.37)

se f for uma funcao integravel e K for uma constante qualquer.


Temos assim o exemplo
Z3

10x2 + 2x + 7 = 10

Z3

x2 + 2

Z3

x+

Z3

7.

(5.38)

Exerccios 22 Express
ao formal do c
alculo da integral
1. Escreva somas de Riemann, com 10 sub-intervalos, para aproximar cada
uma das integrais abaixo:
a)

R3
1

1
x

b)

R3

1
1+x2

c)

R3

2x+3
4+x2

2. Re-escreva as somas de Riemann aumentando a precis


ao, de modo que
os sub-intervalos tenha medida 0.1 Use uma calculadora ou computador e
calcule estas integrais.

CAPITULO 5. INTEGRAL APROXIMADA

182

3. O n
umero de Napier Descubra experimentalmente um ponto e R tal que
Ze

1
=1
x

(5.39)

Sugest
ao, use o programa riemann.py e calcule as integrais
Za

1
x

ate obter (uma aproximaca


o do) n
umero desejado.
4. Verifique que, das duas somas de Riemann abaixo, uma fornece uma aproximaca
o por falta e a outra por excesso da integral
Z1

x ;

n1
X
0

n
k2 1 X k2 1
;
n2 n 1 n2 n

(5.40)

identifique quem e quem. Use riemann() in riemann.py.


5. Verifique que, das duas somas de Riemann abaixo, uma fornece uma aproximaca
o por falta e a outra por excesso da integral
Z1

x ; pN; p>1 ;

n1
X
0

n
kp 1 X kp 1
;
np n
np n
1

(5.41)

identifique quem e quem . Use riemann() in riemann.py.


6. Verifique experimentalmente (somas de Riemann) que

R1
0

riemann() in riemann.py.

x2 =

1
.
3

Use

7. soma de RiemannProve a desigualdade:


n1
X

k <n

k=0

Z1

x <

n
X

k2

(5.42)

n
X

k3

(5.43)

k=1

8. soma de RiemannProve a desigualdade:


n1
X
k=0

k <n

Z1
0

x3 <

k=1

CAPITULO 5. INTEGRAL APROXIMADA

183

9. soma de RiemannProve a desigualdade:


a

Z
n1
n
a3 X 3
a3 X 3
3
k < x < 4
k
n4
n
k=0

(5.44)

k=1

10. soma de RiemannProve a desigualdade:


n1
X

k <n

p+1

k=0

Z1

xp <

n
X

kp

(5.45)

k=1

11. soma de RiemannProve a desigualdade:


a

Z
n1
n
a4 X 3
a4 X 3
3
k
<
x
<
k
n4
n4
k=0

(5.46)

k=1

12. soma de RiemannProve a desigualdade:


a

Z
n1
n
ap+1 X 3
ap+1 X p
p
k
<
x
<
k
np+1
np+1
k=0

(5.47)

k=1

13. Expresse como uma soma de a


reas de tri
angulos is
osceles, (ou de ret
angulos0
uma aproximaca
o para a a
rea do crculo de raio 1.

5.2.2

C
alculo num
erico da integral

Vamos calcular as areas dos retangulos limitados pelo gr


afico de
f (x) = x2 + 2x + 1
ao longo de uma particao do intervalo [3, 3].
Os dados contidos na tabela 5.1 na pagina 184, mostram a sada de dados
de um programa em Python para o calculo da integral do exerccio 3, com
x = 0.2.
O gr
afico 5.3, pagina 185, mostra os retangulos cujas areas se encontram
calculadas abaixo. O grafico foi feito com auxlio do Gnuplot.
A tabela 5.1 mostra os valores da integral ao longo dos sub-intervalos da
particao.
deltax = 0.2
Valor aproximado da integral 24.104801.
Repetindo os calculos com valores menores para o x temos o seguinte:

CAPITULO 5. INTEGRAL APROXIMADA

x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=
x=

-3
-2.8
-2.6
-2.4
-2.2
-2.0
-1.8
-1.6
-1.4
-1.2
-1.0
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
1.6
1.8
2.0
2.2
2.4
2.6
2.8

Sn(-3) =
Sn(-2.8) =
Sn(-2.6) =
Sn(-2.4) =
Sn(-2.2) =
Sn(-2.0) =
Sn(-1.8) =
Sn(-1.6) =
Sn(-1.4) =
Sn(-1.2) =
Sn(-1.0) =
Sn(-0.8) =
Sn(-0.6) =
Sn(-0.4) =
Sn(-0.2) =
Sn(0) =
Sn(0.2) =
Sn(0.4) =
Sn(0.6) =
Sn(0.8) =
Sn(1.0) =
Sn(1.2) =
Sn(1.4) =
Sn(1.6) =
Sn(1.8) =
Sn(2.0) =
Sn(2.2) =
Sn(2.4) =
Sn(2.6) =
Sn(2.8) =

0.7262867
1.3078534
1.7607801
2.1011468
2.3450335
2.5085202
2.6076869
2.6586136
2.6773803
2.680067
2.6827137
2.7013204
2.7518871
2.8504138
3.0129005
3.2553472
3.5937539
4.0441206
4.6224473
5.344734
6.2318207
7.2957874
8.5527141
10.0186808
11.7097675
13.6420542
15.8316209
18.2945476
21.0469143
24.104801

Tabela 5.1: Tabela de valores da integral de f (x) = x2 + 2x + 1


a
o
a
o
a
o

base de cada retangulo eh deltax = 0.12


valor da integral aproximado eh = 23.2944
base de cada retangulo eh deltax = 0.06
valor da integral aproximado eh = 23.6436
base de cada retangulo eh deltax = 0.006
valor da integral aproximado eh = 24.060036
O valor exato desta integral e:
Z3

x2 + 2x + 1 = 24

184

CAPITULO 5. INTEGRAL APROXIMADA

185

e um programa em Python para calcula-la, aproximadamente, e:


Exemplo 17 Um programa em Python para calcular integrais
## inicio do arquivo integral.py
def f(x):
return x*x ## func
ao f a ser integrada.

def integral(f,inicio,fim):
inicio = input(inicio do intervalo [a, b] > a =)
fim = input(fim do intervalo [a, b] > b =)
soma = 0
deltax = 0.0000001 ## a precis
ao do c
alculo.
while (inicio < f im):
soma = soma + f(inicio)
inicio = inicio + deltax
soma = soma*deltax
return soma

inicio = 0
fim = 1
print integral(f,inicio,fim)
## fim do arquivo integral.py

Rode este programa assim. Na linha de comandos do LinuX digite:


$ python integral.py
Voc
e pode alterar na definic
ao de f , veja no programa onde est
a def f(x), a equac
ao e
assim calcular outras integrais.
O programa pede os extremos do intervalo de integrac
ao.

16
data
14
12
10
8
6
4
2
0
-3

-2

Figura 5.3:

-1

ret
angulos da soma de Riemann para

R3

Observa
c
ao 12

Comentando o programa

x2 + 2x + 1

CAPITULO 5. INTEGRAL APROXIMADA

186

N
ao considere como ponto de honra entender um programa de computac
ao agora. O
autor deste livro levou quase 15 anos para conseguir entender os programas de computac
ao...
Use os programas, e aos poucos eles passar
ao a fazer parte de sua vida.
Existe uma regra com algumas excec
oes, em Unix (LinuX
e Unix). O smbolo # representa coment
ario e o programa ignora o que vier depois deste sinal at
e o final da linha.
Assim podemos inserir nos programas coment
arios para o outros que forem usar os programas. No programa voc
e pode encontrar o coment
ario a precis
ao do c
alculoao lado da
vari
avel deltax. Esta
e medida da base dos ret
angulos com a integral est
a sendo calculada.
Troque por valor menor se quiser ter mais precis
ao, mas ver
a que logo deixa de valer a pena,
porque a precis
ao m
axima da m
aquina ser
a atingida.
Entretanto se voc
e iniciar os c
aculos com valores maiores para deltax, ao substituir
valores menores, ver
a que c
alculo se torna mais preciso. Experimente iniciar com
deltax = 0.1

(5.48)

e depois o substitua sucessivamente por 0.01, 0.001, 0.0001 .


Se voc
e tiver executado a experi
encia, lhe ter
a aparecido ante os olhos a sucess
ao:
0.385, 0.32835, 0.3328335, 0.333383335, 0.333338333349, 0.333332833334
correspondentes a

R1

(5.49)

x2 calculada com este programa em que usamos

deltax {0.1, 0.01, 0.001, 0.0001, 0.00001, 0.000001}

(5.50)

Se voc
e for al
em mais um pouquinho ter
a a desgrad
avel surpreza de ver que a m
aquina
comeca se perder... mas
e bom que isto aconteca para que voc
e desmistifique a m
aquina.
N
os, e n
ao as m
aquinas, sabemos com contornar esta dificuldade para obter precis
oes ainda
maiores, mais isto n
ao cabe ser discutido aqui.
Na pr
oxima lista de exerccios vamos usar o que o programa nos ofereceu, (supondo que
voc
e tenha usado o programa, naturalmente).
Observe que a sucess
ao das somas de Riemann parece produzir uma sucess
ao de n
umeros
com um comportamento assint
otico previsvel.

Para uso no exerccio abaixo, use a seguinte versao do programa6 integral.py


Mais adiante vamos lhe apresentar uma outra alternativa computacional
usando uma maquina de calcular bem poderosa que pode estar instalada nos
computadores a que voce tiver acesso.
Observe que o programa abaixo nao se encontra no arquivo riemann.py.
Voce devera digita-lo e grava-lo em sua area de trabalho.
## inicio do arquivo integral.py
def f(x):
return x*x ## funcao f a ser integrada.

def integral(f,inicio,fim):
fim = 1
soma = 0
deltax = 0.1; ## precisao incial do calculo.
while deltax > 0.0000001:
soma = 0
6 Os

programas usados neste livro podem ser conseguidos via e-mail com o autor.

CAPITULO 5. INTEGRAL APROXIMADA

187

x = deltax
while (x < f im):
soma = soma + f(x)
x = x + deltax
soma = soma*deltax
print soma
deltax = deltax/2
return soma
print integral(f,inicio,fim)
## fim do arquivo integral.py

Esta versao difere da anterior nos seguintes pontos, agora iniciovale deltaxe fim=1, quer dizer que ele calcula
Z1

f (x).

(5.51)

Alem disto, o proprio programa sai dividindo sucessivamente deltaxpor dois,


voce tem apenas que sentar-se e olhar o resultado...
Para rodar este programa faca o seguinte:
Primeiro copie o texto do programa para um arquivo chamado integral.py.
Alternativa, arrume um disco com os programas com o autor do livro.
Digite, numa shell do LinuX,
python /home/seu-nome/calculo/integral.py
porque estamos supondo que voce esta trabalhando num diretorio chamado calculo em sua area de trabalho.
Qualquer d
uvida, contacte tarcisiomember.ams.org descrevendo cuidadosamente a dificuldade encontrada. Junte copia de eventuais mensagens de
erro.
Observa
c
ao 13 Calcular integrais aproximadamente
Qual pode ser o sentido de que eu o esteja conduzindo ao c
alculo aproximado
de integrais que voce sabe calcular exatamente?
Na verdade eu n
ao deveria estar me concentrando no c
alculo aproximado de
integrais que n
ao sabemos calcular exatamente?
A resposta para esta pergunta e simples: como voce sabe calcular exatamente
as integrais voce tambem pode comparar os resultados do c
alculo aproximado
com o c
alculo exata e assim ganhar seguranca sobre a precis
ao do calculo aproximado.
Inclusive os exerccios salientam este ponto ao pedir que voce calcule usando
o Teorema Fundamental do C
alculo as integrais calculadas aproximadamente.

CAPITULO 5. INTEGRAL APROXIMADA

188

Exerccios 23 C
alculo numerico da integral
Objetivo
1. Rode o programa integral.py com as integrais abaixo e decida em que
casos parece haver um comportamento assint
otico previsvel (limite).
R1
a) x3

b)

e)

R1

x4

R1
0

f)

R1
0

1
x

c)

R1

x+3

d)

x+1
x

g)

R1
0

R1
0

x
x+1

h)

R1
0

1
x2
x+1
x+2

2. Existem exatamente tres casos em que o comportamento assint


otico da
sucess
ao de Somas de Riemann fica indefinido. Tente encontrar uma explicaca
o.
3. Verifique que se, numa soma de Riemann para

Rb

f , os sub-intervalos tive-

ao a soma de Riemann e um multiplo


rem todos o mesmo tamanho ba
n ent
de b a por uma media de valores de f , indique que media e esta: (1)
aritmetica, (2) geometrica ou (3) aritmetica ponderada.
4. Usando o resultado do exerccio anterior, conclua que se

Rb

f existir, ent
ao

1
ba

Zb

f =M

(5.52)

e um valor medio de f . Tente justificar a raz


ao do artigo indefinido.
5. partica
o do intervalo A metodologia usada pelo programa integral.py
consiste em, sucessivamente, dividir os intervalos na metade para obter
uma nova coleca
o de sub-intervalos para a soma de Riemann seguinte.
Considere a soma de Riemann
n
X

f (a + kx)x

(5.53)

k=1

e escreva a express
ao da soma de Riemann em que x e a metade de
x = ba
n .
6. Suponha que os valores
V0 , V1 , , Vn1

(5.54)

s
ao os resultados das medidas da velocidade de um carro tomadas a intervalos regulares (iguais) do tempo t [a, b].
(a) Qual a velocidade media Vm ?

CAPITULO 5. INTEGRAL APROXIMADA

189

(b) Qual dist


ancia percorrida pelo veculo?
(c) Expresse este valores numa f
ormula usando a express
ao da integral.
7. Descubra, geometricamente, as soluco
es da equaca
o:
Zx
0

3t =

Zx
6

t3

(5.55)

8. Transforme numa equaca


o algebrica a equaca
o:
Zx
0

3t =

Zx
6

t3

(5.56)

9. Verifique quais das integrais abaixo e positiva:


2
R
R2
a) x + sen(x) b) x cos(x)
0

10. Faca tabelas de valores semelhantes a


` tabela 5.1 na p
agina 184, para as
integrais das funco
es
f (x) = x1 ; ; x [1, 10]
2

g(x) = ex ; ; x [3, 3]

(5.57)
(5.58)

No u
ltimo exerccio voce solicitado a fazer tabelas de valores para o c
alculo
das integrais para `as quais nao ha forma de calculo exato.
A integral da funcao f (x) =
logaritmo natural.

1
x

no intervalo [1, R] fornece os valores do


2

A integral da funcao g(x) = ex no intervalo [a, a] fornece os valores


da gaussiana.
Sao duas funcoes de grande importancia em aplicacoes e voce foi conduzido,
neste captulo, a saber fazer as tabelas das integrais destas funcoes.

5.3

Regra do trap
esio

Vamos fazer referencia a este metodo apenas para nao deixa-lo de fora, seu valor
e historico. Foi um metodo que teve importancia quando calculavamos aproximacoes manualmente. Ao mesmo tempo ele serve de exemplo de formulas que
se escrevem facilmente com Matematica e que e difcil traduzir num programa
de computador.
Fizemos um comentario, paginas acima, dizendo que a area de um trapesio
(ou de um triangulo) e a media aritmetica das areas de dois retangulos:

CAPITULO 5. INTEGRAL APROXIMADA

190

1. um cuja altura e a altura maior do trapesio;


2. outro cuja altura e a altura menor do trapesio;
Veja isto na figura (fig. 5.4) pagina 190,

Figura 5.4:

a
rea do trap
esio
e uma m
edia aritm
etica

Para demonstrar esta afirmacao, considere um trapesio com base B e alturas


2
H1 < H2 . Como e sabido, a area de um trapesio e B( H1 +H
)
2
2
)=
B( H1 +H
2

BH1 +BH2
2

(5.59)

BH1 e a area do retangulo de menor altura

(5.60)
(5.61)

BH2 e a area do retangulo de maior altura

(5.62)

CAPITULO 5. INTEGRAL APROXIMADA

191

e a figura (fig. 5.4) lhe mostra como, geometricamente, voce pode obter um
trapesio, a partir do retangulo menor, cortando um triangulo.
Em Matematica e facil escrever a soma de Riemann superior que fornece a
area por excesso associada a uma particao ([a, b]):
S n (f ) =

n1
X

f k x

(5.63)

k=0

ao h
a
em que f k representa o supremo de f no intervalo [xk , xk+1 ]. Mas n
programas de computador que consigam calcular supremos facilmente. De forma
analoga a soma de Riemann inferior se escreve
S n (f ) =

n1
X

f k x

(5.64)

k=0

em que f k representa o nfimo de f no intervalo [xk , xk+1 ]. A mesma observac


ao
se pode fazer sobre nfimos e programas de computador. A formula matem
atica
Rb
para calcular uma aproximacao, usando trapesios, de f sera a media aritmetica
a

de S n (f ), S n (f ) que e

n1
S n (f ) + S n (f ) X f k + f k
=
x
2
2

(5.65)

k=0

que nao e nada facil de produzir com um programa de computador. Esta f


ormula
foi muito utilizada nos tempos que em que calculavamos aproximacoes de integrais manualmente. Hoje perdeu o sentido porque uma soma de Riemann
calculada com um programa com valor muito pequeno para x nos dar
a aproximacoes que dificilmente conseguiriamos com a regra do trapesio.

5.4

Integral de func
oes polinomiais

Nos cursos de Calculo mostramos que


Zb
a

f (x)dx =

Zb
a

bn+1
an+1
xn+1 b
| =

= F (b) F (a)
x dx =
n+1 a n+1 n+1
n

que e a express
ao do Teorema Fundamental do C
alculo para as funcoes polinomiais. Vou agora usar este teorema para o calculo da integral das aproximac
oes
quase-splines de dados.

CAPITULO 5. INTEGRAL APROXIMADA

5.4.1

192

Apresentac
ao do m
etodo

No captulo 4 vimos que num levantamento de dados, por exemplo, com auxlio
de sensores, podemos recuperar de forma muito precisa a distribuicao de um determinado fenomeno usando apenas as informacoes obtidas sobre este fen
omeno
em pequena quantidade de nos de uma malha.
Na primeira parte deste captulo fiz uso de malhas, que chamei de partico
es
de um intervalo, sobre cujos nos calculei os valores de uma funcao, portanto
tambem um levantamento de dados, concluindo na construcao de somas de
Riemann como aproximacoes para a integral das funcoes.
Agora vou substituir a utilizacao dos sub-intervalos das particoes para neles
simular os valores de uma funcao usando um quase-spline e calcular a integral de
cada um desses pedacos de polin
omio em cima de cada sub-intervalo da partic
ao,
substituindo estes valores na express
ao das somas de Riemann. Estarei assim
re-utilizando o conceito de soma de Riemann para obter uma nova forma de
aproximacao da integral de uma funcao.
Veremos, na comparacao com casos particulares, em que sabemos calcular a
integral com precisao, que o resultado da aproximacao da integral usando este
metodo fornece uma grande aproximacao do valor da integral, validando, assim
o metodo.
Finalmente vou mostrar que os bons resultados nao correspondem a conncidencias obtidas com casos bem comportados, mas que a integral dos quasesplines correspondem a uma forma excelente de aproximacao quando a func
ao
tiver alguma classe de regularidade (ser contnua, por exemplo).
A conclusao sendo, portanto, que, como os dados amostrais sao supostos serem o resultado de medicoes de fenomenos regulares, em geral mais do que apenas contnuos, diferenciaveis tambem, entao a a modelagem com quase-splines
dos mesmo nos permite uma quantificacao muito boa dos dados no calculo da
quantidade total (integral), taxas de variacao (derivadas), valor medio (integral).

5.4.2

Integral de quase-splines

Vou usar, neste secao, o calculo da integral de uma funcao polinomial, automatizada, com um programa de computador.
Os quase-splines com que trabalhamos sao funcoes polin
omiais por pedacos,
de grau menor ou igual a tres. Simplificando inicialmente a notacao, vou designar por [a, b] um sub-intervalo tpico de uma malha considerarada num intervalo
I.
Entao o pedaco de polinomio, P , associado a este sub-intervalo tem por
equacao
P (x) = a0 + a0 (x a) + a2 (x a)2 + a3 (x a)3
e sua integral no intervalo [a, b] sera

(5.66)

CAPITULO 5. INTEGRAL APROXIMADA

A=

Rb

193

P (x)dx =

(5.67)

A=

ba
R

P (x + a)d(x + a)

(5.68)

3 ba
R
P

(5.69)

A=

ak xk dx

k=0 0
3
P

A=
A=

k=0
3
P

k=0

k+1

ak xk+1 |ba
0

(5.70)

k+1

ak (ba)
k+1

(5.71)

em que
na equacao (68) fiz a chamada mudanca de vari
avel para transformar o
intervalo de integracao de [a, b] para [0, b a];
na equacao (69) estou trocando a ordem dos smbolos de soma e integral
(distributividade da integral relativamente `a soma);
na equacao (70) apliquei o Teorema Fundamental do Calculo a cada um
dos mon
omios;
e na equacao (71) fiz a substituicao final usando a expressao simples obtida
em consequencia da mudanca de variavel.
Agora, se substituirmos a notacao do intervalo [a, b] por um sub-intervalo
tpico da malha, com as correspondentes expressoes para os pedacos de polinomio, teremos
[a, b] := [xi , xi+1 ]
3
P
k+1 x
x
A := Ai =
ai,k xk+1 |0 i+1 i

(5.72)
(5.73)

k=0

Rb
a

Rb
a

f (x)dx

f (x)dx

n1
P

3
P

i=0 k=0

n1
P

Ai

(5.74)

i=0

k+1

xi )
ai,k (xi+1k+1

(5.75)

em que
na equacao (72) substitui o intervalo [a, b] por um intervalo generico [xi , xi+1 ]
da particao (malha);
na equacao (73) escrevi a express
ao da integral pedacao de polin
omio Pi
no subintervalo [xi , xi+1 ];

CAPITULO 5. INTEGRAL APROXIMADA

194

na equacao (74) escrevi a aproximacao da integral de f como a soma das


integrais de cada um dos pedacos de polinomio Pi ;
e, finalmente, na equacao (75) escrevi a expressao da soma final que d
a
aproximacao da integral de f no intervalo [a, b].
Vemos assim que a integral de um quase-spline depende apenas da express
ao
da matriz dos coeficientes
ai,k

(5.76)

i,k = xi+1 xi

(5.77)

e das medidas
de cada um dos sub-intervalos da malha considerada. A informacao sobre o
fenomenos esta guardada nos coeficientes da matriz dos splines e em alguma
forma tambem na medida dos intervalos. Quando as malhas forem informes
esta medidas serao todas iguais a e ja vimos nas discussoes anteriores que
esta simplificacao em geral nao traz nenhuma distorcao significativa na an
alise
dos fenomenos. Vou sintetizar estes resultados em alguns teoremas para tornar
facil a referencia.
Teorema 11 Integral de quase-splines - partica
o n
ao uniforme
Considere uma aproximaca
o quase-spline de
f : [a, b] R

(5.78)

(ai,k ) i = 0 . . . n 1 ; k = 0 . . . 3

(5.79)

(i ) i = 0 . . . n 1

(5.80)

determinada pela matriz

e pela matriz

das medidas dos sub-intervalos de [a, b].


Zb
a

f (x)dx

n1
3
XX

ai,k

i=0 k=0

(i )k+1
k+1

(5.81)

se a particao for uniforme temos um resultado um pouco simplificado


Teorema 12 Integral de quase-splines - partica
o uniforme
Considere uma aproximaca
o quase-spline de
f : [a, b] R
determinada pela matriz

(5.82)

CAPITULO 5. INTEGRAL APROXIMADA

195

(ai,k ) i = 0 . . . n 1 ; k = 0 . . . 3

(5.83)

Zb

(5.84)

f (x)dx

n1
3
XX

ai,k

i=0 k=0

()k+1
k+1

em que e a medida comum a todos os sub-intervalos da malha considerada


em [a, b].
interessante registrar tambem com uma formula o valor medio de f e
E
vamos faze-lo nos dois casos.
Teorema 13 Valor medio aproximado de f - partica
o n
ao uniforme
Considere uma aproximaca
o quase-spline de
f : [a, b] R

(5.85)

(ai,k ) i = 0 . . . n 1 ; k = 0 . . . 3

(5.86)

(i ) i = 0 . . . n 1

(5.87)

determinada pela matriz

e pela matriz

das medidas dos sub-intervalos de [a, b]. O valor medio aproximado de f e


n1 3
1 XX
(i )k+1
ai,k
b a i=0
k+1

(5.88)

k=0

e quando a particao for uniforme temos a seguinte aproximacao do valor medio


Teorema 14 Valor medio aproximado de f - partica
o uniforme
Considere uma aproximaca
o quase-spline de
f : [a, b] R

(5.89)

(ai,k ) i = 0 . . . n 1 ; k = 0 . . . 3

(5.90)

determinada pela matriz

O valor medio aproximado de f e


n1 3
()k+1
1 XX
ai,k
b a i=0
k+1

(5.91)

k=0

em que e a medida comum a todos os sub-intervalos da malha considerada


em [a, b].

CAPITULO 5. INTEGRAL APROXIMADA

196

Exerccios 24 Integral de funco


es polinomiais
1. Considere a seguinte tabela de dados
xk
4
1
2
6

f (xk )
3
0
7
5

f (xk )
1
2
0
6

Calcule a a
rea da funca
o polinomial por pedacos, f , de grau 3 que ela
determina.
Solu
c
ao 11 Os coeficientes dos polin
omios7 s
ao
P1
P2
P3

[4.00, 1.00]
[1.00, 2.00]
[2.00, 6.00]

a0 , a1 , a2 , a3
a0 , a1 , a2 , a3
a0 , a1 , a2 , a3

3.0, 1.0, 0.33, 0.11


0.0, 2.0 1.0, 0.296296
7.0, 0.0, 0.75, 0.0

As integrais destes polin


omios s
ao (nos respectivos intervalos)
1
R

P1 = 5.24999925

(5.92)

P2 = 12.000006

(5.93)

R2

R6
2

R6

P3 = 12

(5.94)

f = 18.75

(5.95)

Veja o gr
afico da funca
o polinomial por pedacos, na figura (fig. 5.5) p
agina
197.
2. Calcule a quantidade do fen
omeno descrito pelos dados
xk
4
1
2
6

f (xk )
3
0
7
5

f (xk )
1
2
0
6

usando a regra do trapesio e compare com o resultado obtido usando aproximaca


o polinomial do terceiro grau.
7 os

coeficientes foram calculados com o programa ex0732.c

CAPITULO 5. INTEGRAL APROXIMADA

197

6
"dados"

-2

-4

-6

-8
-4

-3

-2

-1

Figura 5.5:

Gr
afico do polin
omio por pedacos

3. Um sensor obteve as seguintes medidas a intervalos iguais de tempo


3

3.2

3.5

4.7

5.1

5.2

5.21

5.22

5.223

5.2231

5.2232

Encontre um polin
omio por pedacos que descreva este fen
omeno e calcule
a quantidade total do fen
omeno (integral) e o valor medio do mesmo.
Solu
c
ao 12 Como temos medidas igualmente espacadas, (uma partica
o
uniforme) vamos selecionar um subconjunto destas medidas guardando
dois valores seguidos e desprezando tres valores seguidos. Com os valores
seguidos calcularemos a taxa de varica
o. De acordo com esta decis
ao, a
tabela de valores que temos e

CAPITULO 5. INTEGRAL APROXIMADA

xk
0
5
10

f (xk )
3
5
5.2231

198

f (xk )

3.23
1
5.15
1
5.22325.2231

Como selecionamos dois pontos seguidos e desprezamos os tres seguintes, e


razo
avel considerar que a dist
ancia entre os n
os seja 5 e assim escolhemos
{0, 5, 10} como o conjunto de n
os. Usando o programa ex0732.c para
calcular os coeficientes dos polin
omios, temos

P1 (x) = 3.0 + 0.2x + 0.14x2 0.02x3

(5.96)

P2 (x) = 5.0 + 0.1x 0.013248x2 + 0.000434x3

(5.97)

As integrais, em cada subintervalo, s


ao
R5

P1 = 20.208334

(5.98)

R10

P2 = 25.765875

(5.99)

e a quantidade do fen
omeno e 45.974209. O valor medio e 4.59742
A representaca
o gr
afica da modelagem deste fen
omeno pode ser vista na
figura (fig. 5.6) p
agina 198,
6
"dados"

0
0

Figura 5.6:

Modelagem com polin


omios por pedacos

10

CAPITULO 5. INTEGRAL APROXIMADA

199

Voce logo ira perceber que o calculo aproximado da integral usando splines e
uma generalizacao da soma de Riemann o que justifica que tenhamos comecado
o captulo usando um metodo atrazado e ineficiente.

5.5

Integral de quasi-splines

Um n-spline e uma funcao polinomial por pedacos, de grau n que e de classe8


C n1 .
Em outras palavras, se
f
[a, b] R
(5.100)
for um n-spline, entao
existe uma particao ([a, b]), uma famlia de subintervalos, (Ik )n1
k=0 e
uma famlia de polinomios (Pk )n1
k=0 de grau menor ou igual a n de tal
modo que
f |[xk ,xk+1 ] = Pk
f concide com o polinomio Pk sobre o intervalo [xk , [xk+1 ];
e f e de classe n 1.
Consequentemente a integral de um spline e uma soma de integrais de polinomios sobre o ndice que descreve a famlia de sub-intervalos associados ao
spline:
xk+1
Zb
n1
X Z
f=
Pk
(5.101)
a

k=0 x
k

Ha varias formas de apresentarmos splines, e um pouco disto foi visto no


captulo 4 quando tambem chamamos sua atencao de que aqui estamos usando
uma versao fraca de splines que chamamos de quasi-splines porque apenas exigimos a continuidade da derivada das funcoes polinomiais por pedacos. Os nossos
quasi-splines sao de classe C 1 .
Exerccios 25 Integral aproximada
1. Considere
2.
3.

8 que

tem n 1 derivadas contnuas

Captulo 6

Equa
c
oes diferenciais
ordin
arias
Vou apresentar alguns metodos que permitem, sobre
tudo, uma visualizacao da solucao aproximadas de
equacoes diferenciais de primeira ordem da forma
dy
= f (x, y)
dx
considerada uma condicao inicial (x0 , y0 ) e uma
regiao retangular da qual esta condicao inicial e um
ponto interior.

Resolver exatamente uma equacao diferencial e uma tarefa difcil mesmo nos
casos em que sabemos tudo1 , equaco
es diferenciais lineares.
Durante a segunda metade do seculo 20 foram desenvolvidos complemen desta fus
tos computacionais para metodos desenvolvidos ja no seculo 19. E
ao
dos metodos antigos, com os avancos computacionais que trataremos aqui para
mostrar como podemos resolver aproximadamente uma equacao diferencial ordinaria.
As equacoes diferenciais de ordem superior a um podem ser reduzidas, atraves
de sistema de equacoes `as equacoes de primeira ordem, e na parte final do
captulo mostrarei alguns exemplos desta tecnica. Entretanto o leitor n
ao deve
perder de vista uma verdade crucial, cada equaca
o diferencial e um novo problema, nao temos uma teoria universal para resolver estas equacoes e nem talvez
isto venha a existir no futuro. Por outro lado os metodos computacionais vem
se revelando cada vez mais eficazes em nos ajudar na construcao das soluc
oes
1 teoricamente sabemos tudo, mas sabemos que nem sempre conseguiremos encontrar as
soluco
es....

200

CAPITULO 6. E.D.O.

201

aproximadas mas continua sendo verdadeiro que os programas nao podem rodar
sozinhos, eles tem que ser monitorados, e o homem que resolve as equac
oes com
auxlio da maquina.
Uma equacao diferencial ordinaria e uma expressao da forma
F (x, y, y , . . . , y (n) ) = 0

(6.1)

em que as potencias da variavel y representam as sucessivas de y em relac


ao `
a
u
nica variavel livre x sendo porisso que estas equacoes se denominam ordin
arias,
o adjetivo indicando o caso univariado.
A variavel nesta equacao diferencial de fato e y, que e a incognita mas o
habito de chamar os parametros livres de variaveis persiste sendo um defeito que
nao nos incomoda e naturalmente vou continuar usando esta terminologia. Se a
incognita, numa equacao diferencial, tiver varias variaveis, a equacao se chama
equaca
o diferencial parcial e na express
ao da equacao intervem as derivadas
parciais da incognita relativamente `as variaveis.
Neste livro vou tratar apenas de equaco
es diferenciais ordin
arias. A maior
ordem de derivacao e a ordem da equacao.
Como ja observei, as equacoes de ordem superior a um podem ser transformadas num sistema de equacoes de primeira ordem por meios bastante engenhosos
e que dependem de cada equacao, esta e a razao pela qual se estuda de forma
intensiva as equacoes de primeira ordem. Outra razao importante e a de que,
se interpretada de forma aproximada, derivadas de ordem superior a 1 induzem nos calculo erros signficativos que e difcil de controlar. Isto se pode ver
facilmente numa listagem de quociente de diferencas de ordem 2, numa malha
suficientemente fina, em volta de pontos em que a funcao tenha uma oscilac
ao
muito intensa, como apresentei no primeiro captulo.
Entao vou me restringir nesta exposicao `as equacoes diferenciais do tipo da
equacao (1) de ordem 1
F (x, y, y ) = 0
(6.2)
Esta equacao, desde que satisfeitas as condicoes do Teorema da Func
ao
Implcita pode ser escrita na forma
y = f (x, y) = 0

(6.3)

exceto possivelmente em cima de algumas curvas onde a derivada parcial de F


relativamente a terceira variavel se anulasse portanto esta nova express
ao e em
geral facil de ser deduzida a partir da equacao (2) o que justifica que a grande
maioria dos textos parte diretamente de uma equacao na forma (3) deixando as
expressoes das equacoes (1), (2) no preambulo como uma forma adequada de
iniciar falando de equacoes diferenciais.
Entao sera a equacao (3) que eu vou tomar como modelo para uma equac
ao
diferencial ordinaria de primeira ordem neste captulo sendo esta uma express
ao
bastante geral como acabei de expor.
O meu objetivo aqui e apresentar metodos para resolver de forma aproximada as equacoes diferenciais e sobretudo apresentar este metodos no contexto
atual em que a computacao nos permite trabalhar.

CAPITULO 6. E.D.O.

202

Resolver uma equacao diferencial significa para nos encontrar uma soluc
ao
aproximada para um problema de valor inicial
y = f (x, y) ; y (x0 ) = f (x0 , y0 )

(6.4)

o ponto (x0 , y0 ) e comumente denominado condica


o inicial.
Por exemplo, certos autores ainda fazem referencia ao metodo passo a passo
em que podemos obter um sucessao de valores yk quando hoje podemos encontrar uma poligonal com um n
umero grande de lados sendo estes lados arbitrariamente pequenos representando uma aproximacao de alta precis
ao para
um problema de valor inicial. A mencao anterior e apenas aos vertices desta
poligonal.
Aqui vamos melhorar, como apoio computacional, os metodos tradicionais
de uma forma que logo vamos descrever.
Com frequencia a variavel livre usada e t quando se quer fazer referencia
a problemas din
amicos. Como esta notacao e puramente psicologica, eu vou
continuar usando x como parametro, mas vou me permitir a usar a linguagem
de equacoes dinamicas quando me parecer interessante.
Queremos obter uma poligonal a partir da condicao inicial (x0 , y0 ) para
frente, ou para tr
as, quando x I, um intervalo aberto I contendo x0 como o
indica a figura (fig. 6.1) pagina 202, em que uma curva, a solucao exata apa-

Figura 6.1:

Uma poligonal-soluca
o aproximada

rece passando por um ponto, a condica


o inicial, onde tambem se origina uma
poligonal, a solucao aproximada que nos interessa. A figura tambem ilustra um
item importante neste problema que o domnio de validade da solucao. A determinacao desta domnio e consequencia dos coeficientes variaveis da equac
ao
ou da propria funcao f (x, y). Por exemplo, a equacao
y =

x
y

(6.5)

CAPITULO 6. E.D.O.

203

que logo iremos usar como um exemplo, estabelece como domnio


= R2 {(x, y) R2 ; y = 0}

(6.6)

o que justifica plenamente um problema de instabilidade do algortmo de que


vamos tratar mais a frente.
Entretanto nos sabemos que esta restricao nao precisa existir, em particular
esta equacao e uma das equacoes mais elementares para ser resolvida conduzindo
pelo metodo das variaveis separaveis `a equacao de uma famlia de crculos de
centro na origem com validade em todo R2 .
Infelizmente nem sempre podemos fazer uma discussao simples assim num
problema particular.
O plano do trabalho que vamos desenvolver aqui e
O metodo de Euler que produz a poligonal de Euler; Um algoritmo computacional produz esta poligonal com uma precisao bastante grande em
vez de apenas construir os vertices;
O metodo de Taylor que e uma aplicacao dos polinomios de Taylor2 em
que uma funcao polinomial vai representar a solucao aproximada. Aqui
vamos usar o metodo de Taylor para fazer uma melhoria no metodo de
Euler produzindo uma funcao polinomial por pedacos, cada pedac
ao construido com o metodo de Taylor. Este metodo e comparavel ao metodo de
Runge-Kutta em muito exemplos.

6.1

O m
etodo de Euler

O metodo de Euler pode ser explicado de forma bem elementar. A figura (fig.
6.2) pagina 204, ilustra o metodo com uma construcao feita `a mao. O ponto
P na figura representa uma condica
o inicial onde desenhei um segmento de
reta tangente, uma aproximacao linear da curva num vizinhanca do ponto P . O
outro ponto do segmento, P1 e uma nova condicao inicial em que novo segmento
de reta tangente sera tracado e assim sucessivamente temos uma poligonal que
representa uma aproximacao da curva-solucao da equacao diferencial.
A curva apresentada na (fig. 6.2) e um crculo que se for centrada na origem
e uma solucao da equacao diferencial
y =

x
= f (x, y)
y

(6.7)

e eu escolhi este exemplo porque ele oferece um problema na implementac


ao do
algoritmo: os pontos com tangentes verticais, em cima do eixo OX, tornam o
programa instavel. O mesmo aconteceria com a equacao
y =
2 alguns

x
y

autores se referem indevidamente a


` s
erie de Taylor

(6.8)

CAPITULO 6. E.D.O.

204

P
P

mtodo de Euler
Figura 6.2:

O m
etodo de Euler - uma poligonal

cujas curvas-solucao sao hiperboles. Novamente o algoritmo perde estabilidade


possvel obter uma solucao que corte este eixo,
quando passa no eixo OX. E
mas em geral o programa se perde desenhando retas obliquas porque perto do
eixo, logo acima ou logo abaixo o coeficiente angular e muito alto e e difcil
escrever um algoritmo que supere este problema.
O algoritmo, como mostra a figura, consiste em substituir a solucao por uma
poligonal que parte da condica
o inicial dada, (x0 , y0 ), e que podemos descrever
com a seguinte sucessao de equacoes num processo indutivo. No conjunto de
equacoes abaixo, cada duas equacoes representa um passo no processo
(x0 , y0 ) f0 (x) = y0 + f (x0 , y0 )(x x0 )
x1 = x0 + x ; y1 = f0 (x1 )
..
.

(6.9)
(6.10)
(6.11)

CAPITULO 6. E.D.O.

(xk , yk ) fk (x) = yk + f (xk , yk )(x xk )


xk+1 = xk + x ; yk+1 = fk (xk )
..
.
(xn , yn ) fn (x) = yn + f (xn , yn )(x xn )
xn+1 = xn + x ; yn+1 = fn (xn )

205

(6.12)
(6.13)
(6.14)
(6.15)
(6.16)

eu escrevi a equacao da reta fk com a qual calculei yk+1 definindo antes xk+1 =
xk + x .
o primeiro lado da poligonal se originando na condicao inicial para a qual
se calcula a equacao da reta tangente ;
o segundo extremo deste segmento de reta tangente e uma nova condic
ao
inicial para determinar um novo lado da poligonal
e assim sucessivamente.
O programa euler.c implementa este algoritmo mas nao consegue resolver
a equacao do crculo se a condicao inicial estiver em cima do eixo OX. A figura
(fig. 6.3) pagina 206,
O trecho essencial do programa euler.c, escrito em C que implementa este
algoritmo e
data = abrearquivo("dados","e"); // (2)
enquanto( (x > InicioX)*(x < FimX)*(y > InicioY)*(y < FimY)*(k < n)
{
// (cos(theta), sin(theta)) = (a,b)
real m = atan(f(x,y));
real a=cos(m),b = sin(m); // b=sqrt(1 - a*a); // cosenos diretores
imprime_arq(data,"%f %f \n", x, y); // primeiro ponto da reta
x = x + a*salto; y = y + b*salto; // novo ponto da reta
imprime_arq(data,"%f %f \n", x, y);
k++; // contando os segmentos de reta da poligonal
imprime("...");
}
fecha_arquivo(data); // fecha o arquivo "dados"
que coloca no arquivo dadosapenas os vertices da poligonal. Depois posso
usar Gnuplot, um programa de domnio p
ublico, que completa os segmentos de
reta entre os pontos desenhando a poligonal. Eu chamo o Gnuplot diretamente
de dentro do programa de modo que o programa ja apresenta o gr
afico da
solucao aproximada deixando os dados registrados em arquivos o permite repetir
o gr
afico posteriormente, sem rodar o programa.
Alem de poder ver o grafico tenho assim os vertices da poligonal de Euler
disponveis para aplicacoes numericas. O leitor interessado pode me pedir c
opia
do programa por e-mail.

CAPITULO 6. E.D.O.

206

4
"dados"
"XOY"

-1

-2

-3

-4
-4

-3

-2

-1

Figura 6.3:
Exerccios 26
2.
3.

1.

soluca
o aproximada de y = yx

CAPITULO 6. E.D.O.

6.2

207

Polin
omio de Taylor: solu
c
ao aproximada
O metodo de Taylor pode ser visto como generalizacao do metodo de Euler e eu vou apresenta-lo
sob esta forma nesta exposicao. Fazendo assim, o
algoritmo computacional ja produzido par o metodo
de Euler pode ser facilmente alterado para produzir
o metodo de Taylor.

Quero resolver o problema de valor inicial


y = f (x, y) ; y (x0 ) = f (x0 , y0 )

(6.17)

num domnio R2 em que (x0 , y0 ) .


A suposicao de que seja um aberto nos deixa livre de preocupac
oes com
a fronteira onde eventualmente as derivadas parciais de f deixassem de existir.
Na construcao vamos ver quais sao as hipoteses necessarias para que o problema
possa ser resolvido.
A polinomio de Taylor de grau n produz uma funcao polinomial tangente ao
gr
afico de uma funcao tangenciando ate a ordem de derivacao correspondente
ao grau do polinomio.

6.2.1

Polin
omio de Taylor do segundo grau

A reta tangente e a express


ao do polinomio de Taylor de primeiro grau.
Podemos entao tomar a equacao
(x0 , y0 ) f0 (x) = y0 + f (x0 , y0 )(x x0 )

(6.18)

em que obtivemos uma funcao do primeiro grau cujo grafico e tangente ao gr


afico
da curva-solucao passando no ponto (x0 , y0 ) e queremos expandir mais um termo
para obter uma express
ao (polinomio) do segundo grau.
Para isto vamos formalmente expressar y = z, que o leitor vera novamente
quando numa equacao de ordem dois fizermos sua transformacao num sistema
de equacoes de primeira ordem, ao final do captulo, para escrever:

dz =
y =
y (x0 ) =

y = z = f (x, y)
y (x0 ) = A0

(6.19)
(6.20)

f (x,y)
x dx

(6.21)

dz
dx

f (x,y)
x

f (x,y)
|(x0 ,y0 )
x
y (x0 )

f (x,y)
y dy

f (x,y) dy
y
dx

(6.22)

f (x,y)
|(x0 ,y0 ) y (x0 )
y

= A1
f0 (x) = y0 + A0 (x x0 ) +

A1
(x
2

x0 )

(6.23)
(6.24)
(6.25)

CAPITULO 6. E.D.O.

208

f0 (x) = y0 + A0,0 (x x0 ) +

A0,1
2 (x

x0 ) 2

(6.26)

e a expressao do polinomio do segundo grau que substitui, na formula de Euler,


a equacao da reta tangente.
Posso agora retomar as equacoes que de forma iterativa me deram a poligonal
de Euler, para calcular construir uma sucessao de polinomios do segundo grau,
uma polinomial de segundo grau que aproxima a solucao do problema de valor
inicial
y = f (x, y) ; y (x0 ) = f (x0 , y0 )

(x0 , y0 ) f0 (x) = y0 + A0,0 (x x0 ) +

A0,1
(x
2

x1 = x0 + x ; y1 = f0 (x1 )
..
.

(6.27)

x0 ) 2

An,1
2 (x

xn+1 = xn + x ; yn+1 = fn (xn )

(6.29)
(6.30)

(xk , yk ) fk (x) = yk + Ak,0 (x x0 ) + 2k,1 (x x0 )2


xk+1 = xk + x ; yk+1 = fk (xk )
..
.
(xn , yn ) fn (x) = yn + An,0 (x x0 ) +

(6.28)

x0 ) 2

(6.31)
(6.32)
(6.33)
(6.34)
(6.35)

O programa taylor.c e uma simples consequencia do programa euler.c


apenas acrescentanodo as funcoes necessarias para calcular Ak,0 , Ak,1 , e naturalmente usando a nova express
ao de fk no calculo dos pontos para obter o
gr
afico.

6.2.2

Polin
omio de Taylor de grau n

Poderiamos ser tentados em prosseguir estes calculos em busca de um polin


omio
de Taylor de grau mais elevado. Como e facil de observar a partir do c
alculo
feito acima, as contas ficariam bem mais complicadas a cada nova ordem (grau
do polinomio).
A experiencia que temos com aproximacao nos indica que outro caminho
pode ser tomado para obter melhor aproximacao, por exemplo construir um
metodo hbrido, de Taylor, usando a mesma metologia acima.
Isto recairia na construcao de splines ou quase-splines.

Refer
encias Bibliogr
aficas
[1] DAzevedo, E.F. Romine, C. H. e Walker, D. W. Shared-Memory Emulation
is key to Billion-Atom Molecular Dynamics Simulation
- SIAM-News Vol 28 (5) - 1995
[2] Beazley, D. M. e Lomdahl, P. S. Large-Scale Molecular Dynamics on MPPs:
Part I
- SIAM-News Vol 28 (2) - 1995
[3] Borwein, Jon - nmbrth@listserv.nodak.edu 28/07/1997
www.cecm.sfu.ca/personal/jborwein/Kanada 50b.html
jborwein@@cecm.sfu.ca
[4] Claudio, D. M. e Marins, J.M.
C
alculo Numerico Computacional - 1994 editora atlas - 2a Edicao
[5] Sperandio, D. Mendes, J. T. e Silva, L.H.M C
alculo Numerico Prentice Hall
Brasil
[6] Shapiro, H. S Smothing and approximation of functions
Van Nostrand Reinhold Mathematical Studies - 24
[7] Franco, N.M.B. C
alculo Numerico Prentice Hall Brasil
[8] Daubechies, Ingrid, Ten lectures on wavelets
- SIAM - Philadelphia, PA - 1992
[9] Dieudone Calcul Infinitesimal
- 1968 - Collection Methodes - Herman - Paris.
[10] Eaton, John W. Octave - A high-level interactive language for numerical
computations
1996 ftp.che.utexas.edu/pub/octave/octave-M.N.tar.gz

209

REFERENCIAS
BIBLIOGRAFICAS

210

[11] Faculdade de Engenharia Mec


anica - Unicamp
http://www.fem.unicamp.br/ em313/paginas/person/lavoisie.htm
[12] Saunders, M e Birkhoff, G - Algebra
MacGraw-Hill - 1968
[13] gnuplot um programa para fazer grafico e alguns c
alculos
http://www.gnuplot.info
[14] A enciclopedia livre na Internet
http://www.widipedia.org
[15] Linz, P. A critique of numerical Analysis.
- Bull. of AMS vol 19 no. 2 1989 (407,416)
[16] Meyer, Y

Wavelets Algorithms and Applications

- SIAM - 1994
[17] Monagan e Neuenschwander
GRADIENT. Algortithmic Differentiation in Maple
Pre-Print - Symbolic Computation Group
Institut f
ur Wissenschftliches Rechnen
- ETH - Z
urich - Switzerland
[18] Praciano-Pereira, T. C
alculo numerico Computacional - Introduca
o a
` linguagem Pascal
- Editora da Universidade Estadual Vale do Acara
u - 2000
http://www.4shared.com/file/14206895/ae074651/pascal.html
[19] Praciano-Pereira, T.
C
alculo numerico Computacional - Edicao Eletronica
Laboratorio de Matematica Computacional - 2007
http://www.4shared.com/dir/1751707/4c187abc/sharing.html
[20] Praciano-Pereira, T Programas para C
alculo Numerico - programas.tgz
http://www.4shared.com/dir/2041165/e14cc331/programas.html
[21] Praciano-Pereira, T Splines por convoluca
o
http://www.4shared.com/file/17757661/3515d0b6/convspl02.html
[22] Rossum, Guido van A tutorial on Python
- guido@cnri.reston.va.us - ftp.python.org.

REFERENCIAS
BIBLIOGRAFICAS

211

[23] Scilab Group - SciLab - programa para simulaco


es numericas
INRIA - Unite de recherche de Rocquencourt - Projet Meta2 - scilab@inria.fr
- 1996
htt://www.scilab.org
[24] SIAM NEWS - The news journal of the Society of Industrial and Applied
Mathematics
- Philadelpphia, PA - USA
[25] Simmons, G.F.
Differential Equations with App. and Hist. Notes.
McGraw-Hill - Book Company - 1978
[26] An elementary proof of the Arithmetic-Geometric Inequality - Revista Vetor
- Univ. Federal do Rio - 2004 - Grande - Rio Grande - RS
[27] Jose Stalio Rodrigues do Santos e Praciano-Pereira, T.
Introduca
o a
` Matem
atica Universit
aria
Edicao Eletronica do Laboratorio de Matematica Computacional - Univ. Estadual Vale do Acara
u - Sobral - Ceara - 2005
http://www.4shared.com/file/12779601/ab687cc4/fundam2p.html
[28] Spline
A enciclopedia livre na Internet
http://pt.wikipedia.org/wiki/Spline
[29] A enciclopedia livre na Internet - Wikipedia
http://encyclopedia.thefreedictionary.com/

Indice Remissivo
1-spline, 133
2-spline, 133
aberto
software, 126
algebrica
computacao, vi
algortmica
derivada, 13, 112115
amostragem, 10, 102
antigo
moderno, 82
aproximacao, 4
Aquiles
paradoxo, 30
aritmetica
geometrica
desigualdade, 83
assintotico, comportamento, 177
babilonios, 83
algoritmo, 88
precisao, 82
barra invertida, 148
binaria
busca, 73
busca binaria, 28
calc, vi
C interpretado, 52
caracterstica
funcao, 133
crculo
desenhando, 4
compilar e rodar, 43
comportamento assintotico, 177
computacao

algebrica, vi
cientfica, vi
numerica, vi
constantes
especficas, 36
construcoes
area de, 36
contnuo, 127
continuidade, 129
contracao, 91
contradicao, 127
convexa
comb. linear, 121
convolucao
correcao, 143
def. geometrica, 133
domnio, 144
produto, 133
produto de, 133
correcao
informacao, 137
pela media, 8
cortes de Dedekind, 69
c
ubicos
splines, 132, 148
c
ubicos, splines, 132
Dedekind
cortes de, 69
derivada, 1
aproximada, 7
importancia, 7
derivada algortmica, 13, 112115
derivada zero, 61
desigualdade
aritmetico-geometrica, 83

212

INDICE REMISSIVO

213

diferenca
quociente, 10
diferenci
aveis
funcoes, 128
diferenciabilidade, 128

metodo da secante, 54
metodo de Euler, 195, 197
malha, 32, 35
figura plana, 35
multiplicidade
razes, 40
n
ucleos, 144
particao, 32
figura plana, 35
polin. por ped., 188, 189
raz
recursividade, 91, 92
raz
reta tangente, 63
raz da tangente, 64
Raz duma funcao, 29
raz quadrada, 87
razes
secantes, 48
Reta tangente, 20
secantes
razes, 48
sensor
mais antigo, 5
melhor geracao, 6
solucao
edo, 193
soma de Riemann, 164
tangencia
parabolico, 60
tangente
crculo, 2
taxa de variacao, 2
trapesio, 181
um-spline, 105
Valor medio, 130
valor medio, 139

equipe
trabalho, 127
erra
formula, 18
erro, 19, 127, 138
correcao, 138
Valor Medio, 138
especficas
constantes, 36
etica, 126
Euler, 112
metodo de, 194
poligonal, 194
figura
area, 80, 81
area aproximada, 163
rea, 79
2-spline, 157
aprox. polin. classica, 103
aproximacao, 125
Lagrange,splines, 158, 159
convolucao, 146
produto, 134
produto de, 135
convolucao
regularizacao, 159
dados amostrais, 18
derivada
interpretacao, 9
derivada zero, 61
grafico de f , 17
interpolacao, 108
linear, 7
nao linear, 8
intersecao
curvas, 77
Lagrange, polinomio, 114
maximo modulo, 104
media viciada, 140

fixo
ponto, 66, 73
ponto,teorema, 90
fixo ponto
teoremas, 90
florestas
area de, 36
gaussiana, 143

INDICE REMISSIVO

integral da, 143


GNU/Linux, vi
Gnuplot, 148
gnuplot, vi, 12, 89, 102
comandos, 16
GPL, vii, xii
gr
afico
Riemann,soma, 176
soma de Riemann, 176

214

iterada de T, 65

hipotetica
funcao, 126

Lagrange
interpolacao, 112, 121
metodo, 112
tutorial, 112
Landau
O grande de, 26
o pequeno de, 3
o pequeno de , 26
Linux, vi, xii, 127
loop infinito, 65

implcita
teorema da funcao, 22
impulso
unitario, 134
infinito, 127
loop, 65
informacao
correcao, 137
informacoes
excesso, 120
integravel
`a Riemann, 170
nao, 170
integral, 183
aprox. por falta, 173
aproximacao, 174176, 178
calculo numerico, 178
calculo, 161
Expressao formal, 169
python, 178
soma de Riemann, 167169
valor medio, 136, 138, 186
interpolacao
curva, 6
Lagrange, 112
linear, 104
nao linear, 7, 105, 109
poligonal, 121
polinomial classica, 111
interpolacao
linear, 7
intervalo
particao, 32

malha, 31, 124, 127, 164


laco, 36
multidimensional, 34, 35
problema, 37
uso, 35, 36
nos, 120
norma, 31
maximo
modulo, 104
teorema, 103
Maxima, xii
maxima, vi
media, 8
dados, recuperacao, 138
restauracoes, 138
telecomunicacoes, 138
medio
valor, 183
metodo
determinar razes
da secante, 62
da tangente, 62
microrganismos
quantidade de, 35
modelagem, 101
modelo, 126, 127
tipos de, 126
modelos
contnuos, 127
discretos, 127
moderno
antigo, 82
modulo maximo, 104

INDICE REMISSIVO

teorema, 103
monico
polinomio, 109
movimento
equacao, 19
multidimensional
malha, 34
MuPad, xii
n-splines, 133, 148
no
de uma malha, 112
nos, 164
malha, 120
n
ucleo, 134, 136
n-spline, 148
norma da malha, 31
Octave, xii
orbita
foguete, 4
oscilacao, 104
fenomenos com, 120
paradoxo, 127
de Aquiles, 30
particao, 31, 120, 127, 164
norma, 31
uniforme, 120
particao
nao uniforme, 120
pedacos
linear, 121, 122
polinomios, 124
pen-drive-splines, 140
pequeno
relativamente, 48
peso, 121
pesos, 136
pique
fenomeno com, 120
poligonal, 121
polinomio
de Lagrange, 121
polinomial, 130
aprox. classica, 102

215

aproximacao, 101, 102


de grau tres, 124
do terceiro grau, 123
interpolacao, 111
por pedacos, 102
splines, 102
poluicao
avaliacao de, 36
ponderada
media, 136
ponto fixo, 66, 73, 85, 88
teorema, 90
precisao
pontos, 120
pontos de, 120
produto de convolucao, 133
programa, 176, 178
fim de linha, 148
raizes01.c, 43
programas
integral.py, 178
python, 178
pulso unitario, 136
Python, 169
quantidade
fenomeno, 122
quasi-splines, 132, 190
integral, 185
raz quadrada, 83
raz
metodo
secante, 28
tangentes, 28
secante, 4850, 55, 56
tangente, 47
tipo secante, 47
tipo tangente, 47
razes
de funcoes, 28
separacao das, 39
raiz
tipo secante, 61, 62
tipo tangente, 61, 62
real

INDICE REMISSIVO

n
umero, 170
realidade
simulacao, 126
recursiva
sucessao, 66
recursivas
sucessoes, 88
sucesswoes, 88
recursividade, 28, 53, 66, 73
raz, 91, 92
Reduce, xii
Riemann
soma, 166, 173, 174
Riemann, soma, 162, 163
riemann.py, 173
rodar e compilar, 43
Runge-Kutta, 194
salto quantico, 128
Scilab, xii
scilab, vi
secante
metodo, 73
secantes
e tangentes, 4
seguranca
simulacao, 126
separacao
das razes, 39
sequencias
recursivas, 88
serie
termo geral, 98
Simpson
integral, 160
simulacao, 126
sinal, 134
soma de Riemann, 160, 162, 163, 166
splines, 101, 102, 130, 133,190
aplicacoes, 134
pen-drive, 140
splines c
ubicos, 132
sucessao, 128
sucessoes
recursivas, 88
suporte

216

notacao, 144
tangente
metodo, 73
parabola, 18, 19
tangentes
e secantes, 4
taxa de variacao, 183
Taylor
formula, 19, 23
formula multivariada, 21
polinomio, 194
teorema
modulo maximo, 103
tipos de razes, 47
translacao, 134
trapesio
regra do, 160
tutorial, 112
Lagrange, polinomio, 112
uniforme
particao, 120, 170
unitario
pulso, 136
unitario, impulso, 134
valor medio, 136, 138, 183
integral, 186
valor medio integral, 138
Vandermonde, 111, 112
variacao
taxa, 9
taxa de, 1, 183
variedade, 22, 27
varredura, 30, 127
viciada
media, 137
Waring, 112

Vous aimerez peut-être aussi