Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
de Matem
atica Computacional
Universidade Estadual Vale do Acara
u
Sobral - Ce
CALCULO
NUMERICO
COMPUTACIONAL.
Tarcisio Praciano-Pereira1
Universidade Estadual Vale do Acara
u
Sobral, 26 de janeiro de 2008
tarcisio@member.ams.org
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 . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10
18
21
26
26
2 Razes aproximadas
2.1 Razes por varredura . . . . . . . . . . . . . .
2.1.1 Metodo computacional b
asico . . . . .
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 n
ao funciona . . . .
2.5.3 A precisao do metodo . . . . . . . . .
2.6 Metodo da busca bin
aria . . . . . . . . . . . .
2.7 Encontrar razes, sum
ario . . . . . . . . . . .
2.8 Intersecao de graficos . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
28
29
30
37
44
44
47
49
57
62
63
64
65
70
74
77
3 Recursividade
3.1 exemplos . . . . . . . . . . . . . . . . . .
3.1.1 raz quadrada . . . . . . . . . . . .
3.2 Fundamentos da convergencia de iteradas
3.3 O algoritmo babibil
onio e convergente . .
3.4 Exerccios . . . . . . . . . . . . . . . . . .
3.5 Solucao de alguns exercicios . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
82
82
88
89
91
93
94
ii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
.
.
.
.
.
.
.
.
.
.
.
.
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 . . . . . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
101
102
105
115
124
126
127
129
135
135
137
142
144
151
158
163
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 . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
169
170
170
171
178
180
183
189
191
192
192
199
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
200
203
207
207
208
. . . . . .
. . . . . .
. . . . . .
que dois .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
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
. . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
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
3.1
3.2
3.3
Determinaca
o de 10 . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
87
91
92
4.1
4.2
A reta e o fen
omeno real
.
.
.
.
.
.
.
.
.
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
. . .
. . .
Aproximaca
o linear por pedacos - 1-spline .
interpolaca
o polinomial dos pontos . . . . .
Polin
omio de Lagrange . . . . . . . . . .
Aproximaca
o de uma funca
o . . . . . . . .
.
.
.
.
.
.
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 . . . .
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
Duas soluco
es do problema homog
eneo
O teorema do m
odulo m
aximo . . . .
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
. . . . . . . . . . . . . . . . . . . . . 103
. . . . . . . . . . . . . . . . . . . . . . . . 104
iv
.
.
.
.
.
.
Introduc
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 p
aginas na Internet podem mudar e o endereco do autor e mais est
avel, havendo dificuldade com algum link,
me envie um e-mail para tarcisio@member.ams.org, mas n
ao 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 Matem
atica 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.
Computaca
o algebrica que tenta, com razo
avel sucesso, substituir o c
alculo
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 ;
vi
e ha outros que sao francamente comerciais e nao vemos razao para cita-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 atencao,
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 entonacao da
voz. Para suprir um pouco deste teatro usaremos uma convencao tipografica:
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
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 sao 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 respons
avel 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 tens
ao criando uma serie temporal com estes dados;
(C
alculo Numerico e Estatstica)
3. Comparacao dos piques de tens
ao com valores maximais selecionados como
suportaveis. (C
alculo Numerico Engenharia eletrica)
4. Decisao, em tempo real, sobre conex
ao ou desconex
ao 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), p
agina 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 cord
ao fique preso pr
oximo a um conjunto
de mangas. Rodamos a pedra preza ao cord
ao ate que ela atinja uma velocidade angular razoavel. Quando a pedra, em seu caminho sobre o crculose
encontrar na posicao adequada, soltamos o cord
ao que ir
a acompanhar a pedra
se alojando entre as mangas. Usamos o coeficiente angular inst
aneo 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 mem
oria 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 avi
oes comerciais fazem algo parecido. Ao
partir o piloto humano coloca o avi
ao 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 din
amicos sobre diversos fen
omenos. Mas
nem sempre a natureza se conforma a` matem
atica como n
os gostariamos...
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. 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 diret
orio /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
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
os diremos
A reta tangente no ponto (a, f (a) tem um coeficiente angular m e n
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.
xii
m3 =
f (a3 )f (a)
a3 a
(1.4)
Aqui se quebrou
o cordo
Figura 1.1:
(1.1)
f (x1 )f (a)
f (a)
x1 a
f (x1 )f (a)
= m = f
= a (f )
x1 a
x
(1.5)
(1.6)
(1.7)
(1.8)
(1.9)
(1.10)
a+h
Au
ltima equacao, 10, e simplesmente a equacao da reta tangente:
(f(a+h)f(a))/h
Taxa de variao
Figura 1.2:
Taxa de variaca
o
f (a1 )f (a)
a1 a
f (a2 )f (a)
a2 a
(1.2)
(1.3)
y f (a) = f (a)(x a)
(1.11)
3
e a equacao de uma reta e o grafico da funcao nao precisa ser uma reta entao 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
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 s
ao 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
Dados amostrais
Posio da tesoura,
perpendicularmente,
ao raio do crculo
x
1
2
Figura 1.3:
x4
;
;
f (x13 )f (x12 )
x13 x12
f (x23 )f (x22 )
x23 x22
(1.12)
(1.13)
x
51
x
1
x4
52
53
x
1
i3
i2
Figura 1.4:
;
;
;
f (x33 )f (x32 )
x33 x32
f (x43 )f (x42 )
x43 x42
f (x53 )f (x52 )
x53 x52
(1.14)
(1.15)
(1.16)
s
ao curvas, poligonais, s
ao curvas, e tem curvas que n
ao retas...
2
Figura 1.5:
f (x32 )f (x31 )
x32 x31
f (x42 )f (x41 )
x42 x41
f (x52 )f (x51 )
x52 x51
x4
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...
f (a+x)f (a)
x
o f (x) = (x + 3) (x 4) e no ponto
1. micro medico
es Considere a funca
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
i2
Figura 1.6:
x4
f
i3
interpolaca
o n
ao linear
Figura 1.7:
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
x=a
1
2
1.5
x
0.001
0.001
0.001
10
|f (a) a (f )|
0.99884447020655558927
0.99945892356272536761
0.99976592143543602562
0.99991936316018971376
(a) Construa, gr
afica e algebricamente, a interpolacao linear dos dados.
ao linear da
(b) Construa, gr
afica e algebricamente, uma interpolacao n
amostragem com quatro dados obtidos pelo sensor em cada ponto.
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
1.2
(f ) (f )
=
2a (f ) = a+x x a
f (a+2x)f (a+x)
f (a+x)f (a)
(
x
x
(a+x)+f (a)
= f (a+2x)2f
2
x
(1.17)
=)/x
Quocientes de diferencas
de ordem superior
Se calcularmos a diferenca entre dois quocientes de diferencas sucessivos
2a (f ) =
a+x (f ) a (f )
x
(1.18)
(1.19)
Nao havendo d
uvida nos usaremos uma notacao mais simples para os quocientes
de diferenca de segunda ordem:
2 (f ) = 2a (f )
a (f )(1)
0.667
0.002
0.812
2.926
5.895
11
a
1
0
1
2
3
(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 equacao
(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
12
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)
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)
1. Equaca
o da reta que passa num ponto
a = 3
a=4
a = 0.5
a = 4
a = 2
a = 0.5
(a) te
orica Escreva a equaca
o da reta que passa no (a, b) e tem coeficiente
angular m.
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.
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.
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
14
15
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.
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
x1 = 2+4
=3=
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 )
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,
17
40
f(x)
df(x)
0
30
20
10
-10
-20
-30
-3
-2
-1
Figura 1.8:
grafico de f analisando f
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
Polin
omios de Taylor
(1.29)
(1.30)
8 esta
9 os
(1.33)
(1.34)
(1.35)
(1.36)
f (a)
2
(1.37)
P (a) = f (a) a2 =
f
ormula est
a errada!
coeficientes
e que s
ao as inc
ognitas deste problema....
19
Dados amostrais
y f (a) = f (a)(x a)
y = f (a) + f (a)(x a)
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)
(1.40)
(1.42)
20
Exerccios 3 Polin
omios de Taylor
(b) par
abola tangente Encontre a par
abola tangente ao gr
afico de f no
ponto (2, f (2)) e deduza como e o gr
afico de f nas vizinhancas
deste ponto.
solu
c
ao: altere derivada02.03.gnuplot
es10 obtidas
(c) Deduca
o do gr
afico de f Com base nas duas informaco
anteriormente, simule o gr
afico de f numa vizinhanca do intervalo
[1, 1].
f(x)
reta(x)
0
500
P (x) = a0 + a1 x + a2 x2 + a0 x3 + + an xn
400
300
(1.43)
Usando polin
omio de Taylor podemos desenvolver um polin
omio em qualquer outro ponto.
200
Desenvolva o polin
omio
100
100
(1.44)
no ponto x = 3 e faca os gr
aficos dos dois polin
omios com gnuplot.
Comente o resultado obtido.
200
300
21
Figura 1.10:
2
Reta tangente ao gr
afico de f
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 consideracao feita
anteriormente sobre erros nas aproximacoes de derivadas de ordem maior se
10 este exerc
cio 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]
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 v
arias vari
aveis
F (x, y, x) = d
(1.45)
F
F
F
dx +
dy +
dz = 0
x
y
z
(1.46)
(1.47)
linear tangente:
(1.48)
F
z
F
y
(y b) +
|(a, b, c) 6= 0 z c =
F
z
F
x
F
z
(z c) = 0
(x a)
F
y
F
z
(1.49)
(y b)
14
x
z = f (x, y) ; f
x = F ;
z
z
12 variedade
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)
f
y
e assim temos duas formulas que podemos adaptar para fazer aproximacoes
de funcoes com duas ou tres variaveis sendo imediato (basta considerar mais
derivadas parciais) estender estas formulas para um n
umero qualquer que se
precise de variaveis15
O smbolo := que utilizamos, apareceu com a linguagem de programacao
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.
Um polin
omio desenvolvido16 no ponto x = a.
F
F
F
(x a) +
(y b) +
(z c) = 0
x
y
z
F
x (x
23
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)
F (x, y, z) = d
13
(1.50)
a garantir que
(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.
omio de Taylor do terceiro grau no ponto x = a
solu
c
ao: polin
F
y
= F
z c = f
(x a) + f
(y b) ; c =
x
y
f
= f (a, b) + x (x a) + f
y (y b) ; c
(1.51)
f (a, b)
(1.52)
= f (a, b)
(1.53)
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
24
z c + A(x a) + B(y b) = 0
z = c A(x a) B(y b)
(1.56)
(1.57)
f
x (x
a) +
f
y (y
b)
(1.58)
(1.59)
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) + x (x a) + f
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
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)
(1.60)
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
1.5
1.6
26
Soluc
ao de alguns exercicios
27
Vocabul
ario
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 ha 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
gnuplot pode ser chamado de dentro de um programa, logicamente falando e o mesmo que j
a 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 ser
a discutido no captulo 0.
O proprio programa lhe dir
a que construiu um arquivo de comandos do
gnuplot que voce poder
a ler como um exemplo.
y
= K 6= 0
x=0 x
x = O(y) lim
y
x = o(y) lim = 0
x=0 x
(1.64)
(1.65)
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 (x) f (a)
f
=
(1.66)
x
xa
quando a funcao for diferenci
avel no ponto a com derivada diferente de
zero. Neste ponto a funcao tem uma tangente paralela a reta
x 7 Kx
(1.67)
29
Captulo 2
2.1
Razes aproximadas de
func
oes contnuas
|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.
Estamos interessados
nesta raz
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 matem
aticos importantes, busca bin
aria e
sucess
oes recursivas;
28
Figura 2.1:
Razes de f no intervalo [, ]
30
2.1.1
Um m
etodo computacional: varredura
Um metodo computacional b
asico, para resolver esta quest
ao, e v
arias 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 est
a o paradoxo):
.
x =
(2.1)
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 nos
se concentre em uma pequena sub-regiao.
(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)
31
(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)
32
desprezamos o primeiro n
o
(xk )nk=1
= x1 = + x, , xn =
x1 = + x, x2 = + 2x, ,
(2.13)
(2.14)
(2.15)
(2.16)
33
(2.22)
como ja descrevemos.
Esta expressao 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.
xn
x0
x1
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.
Partio do
intervalo I
Figura 2.2:
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.
Partica
o do intervalo I
Algumas vezes preferimos salientar que este processo criou uma colecao
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
c~
ao de I
Em Matematica gostamos de pensar que escolhemos uma coleca
o
arbitr
aria de pontos
x0 , x1 , x2 , . . . , xn1 , xn I
(2.21)
34
35
Figura 2.3:
(2.23)
(2.24)
1 1
;
n
2 1
;
n
(2.25)
(2.26)
(2.27)
36
x=
enquanto (x < )
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
amina. Sabendo que os microrganis1. Populaca
o de microrganismos numa l
mos 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.
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 c
alculo de integrais multivariadas ser
a 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 )
// (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:
37
x =
(1)
n
x=
enquanto (x < )
// (1)
// (2)
{
x = x + x
imprima(x)
}
// (3).
// (4)
2.1.2
38
[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 sugest
oes 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 vari
aveis
2. a logica que controla o laco
3. o teste para encontrar as razes aproximadas
4. a progress
ao aritmetica que define os n
os 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
39
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 nao 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
40
|y| < r
Figura 2.4:
V
arios representantes da u
nica raiz
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]
42
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
43
--> 0.029401
44
2.2
|f (x)| <
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
2.2.1
An
alise do programa raizes01.c
[1]
[1]
[2]
[3]
[4]
46
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
(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)
48
49
raz aproximada
obtida pelo mtodo
das secantes
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
x
1
x
raz impossvel
de se obter pelo
mtodo das secantes
Figura 2.5:
O m
etodo das secantes
(2.33)
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)
f (a)
m
(2.41)
4 N
ao 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()
50
x2 e o limite da sucessao sn
a0 = a; b0 = a0 + x;
m0 =
y f (a0 ) = m0 (x a0 )
y = f (a0 ) + m0 (x a0 )
y = 0 s0 a0 =
f (b0 ) f (a0 )
b0 a0
(a0 )
fm
0
(2.43)
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
(2.44)
(2.45)
a0 = a; b0 = b;
(2.51)
(2.46)
(2.47)
Se f (a0 )f (s0 ) 0
entao b1 = s0 ; a1 = a0 ;
(2.52)
(2.53)
senao b1 = b0 ; a1 = s0 ;
(2.54)
f (a0 )
m0
m1 =
(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, n
ao 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.
f (b1 )f (a1 )
b1 a1
(2.55)
y=0
y = r1 (x) = f (a1 ) + m1 (x a1 )
x = s1 = a1
f (a1 )
m1
an , bn , mn =
f (bn )f (an )
bn an
y = rn (x) = f (an ) + mn (x an )
x = sn = an
f (an )
mn
em dois sub-intervalos
5 n
ao
(2.49)
(2.57)
(2.58)
y=0
|f (sn)| <
[a0 , b0 ]
(2.56)
[a0 , s0 ] , [s0 , b0 ]
(2.50)
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.
(2.42)
51
(2.59)
(2.60)
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.
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;}
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;}
m3 = (f(b3)-f(a3))/(b3 - a3);
s3 = a3 - f(a3)/m3;
print s3;
-4.00014094678986900281
53
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
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)
Pascal a funca
o valor absoluto
e abs(), em C
e fabsf()
54
F
| f(a) | > epsilon
55
f troca de sinal em
[a,b]
Mtodo da secante
a+b
2
m = (f(b)f(a))/(ba)
r(x) = f(a) + m(x a)
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.
s a raz de r
Matem
atica do M
etodo da secante
a a raz
aproximada
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:
f(s)f(a)<=0
F
a=s
Figura 2.6:
Fluxograma - m
etodo da secante
(2.63)
x0 = b0 a0
(2.64)
y f (a0 ) = m0 (x a0 )
y = f (a0 ) + m0 (x a0 )
(2.66)
(2.67)
m0 =
[a, a + x] = [a0 , b0 ]
y = 0 s0 = a0
s0 = a0
f (a0 )
m0
(2.68)
f (a0 )
m0
(2.69)
(2.65)
(2.62)
f (b0 )f (a0 )
x0
(2.70)
(2.71)
(2.72)
56
57
)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)
f (a1 )
m1
(2.80)
f (an )
mn
(2.81)
f (bk ) f (ak )
f (ak )
, sk = ak
bk ak
mk
(2.82)
Algoritmo do M
etodo da secante II
y f (a) = m(x a)
(a)
y = 0 x a = fm
x=a
2.4
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
m=
(2.89)
(2.90)
f (a)
m
(2.83)
(2.84)
(2.85)
(2.86)
(2.87)
(2.88)
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
c~
ao 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
c~
ao 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
c~
ao 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
ao valores pr
oximos de 3
Estas razes representam todas a raiz x = -3 - s
que o programa captou. Achou tambem a raiz x = 2
Ra
z prov
avel da fun
c~
ao 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
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
c~
ao 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
c~
ao 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) =
(x + 3)(x + 3)(x 2). Se n
ao for selecione9 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
60
(2.91)
a+
O coeficiente angular da
reta tangente negativo
Figura 2.7:
O coeficiente angular da
reta tangente positivo
10 a,
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)
(2.92)
(2.93)
a+ s
ao notaco
es padr
ao em Matem
atica para representar pontos anterior e posterior
ao ponto a
O grafico 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
62
63
x2
x1
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.
A derivada se anula
no ponto x1 mas ele no
uma raiz
Figura 2.8:
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
f
raz aproximada
obtida por uma tangente
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:
A raz
exata
esta
Razes aproximadas
por retas tangentes
Figura 2.9:
Uma sequ
encia de retas tangentes...
64
65
afico de f no ponto
Iteramos o processo, tracando a reta tangente ao gr
(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)
2.5.2
E quando o m
etodo n
ao funciona ?
Mas vamos logo ver quando deixa de funcionar. Na figura (fig. 2.10) p
agina 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 ...
Figura 2.10:
Vemos que caimos num circulo vicioso. O programa que fizermos caira 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 altercao
no valor de A faz com que a sucessao dos zeros das retas tangentes convirja para
uma das razes.
2.5.3
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
66
67
f (sn1 )
= T n (s0 )
f (sn1 )
(2.103)
(2.104)
f (b)
f (b)
f (b)
f (b)
f (b)
f (b)
=0
(2.105)
(2.106)
(2.107)
(2.108)
(2.112)
|xn xn1 | = |T (xn1 ) T (xn2 )| =
(2.113)
= |T (xn2 )||xn1 xn2 | + o(|xn1 xn2 |)
(2.114)
f (x)
f (x)
(x)
| f (x)f
f (x)2 |
(2.115)
(2.116)
(2.117)
68
a = a - f(a)/df(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
Veja outra iteraca
o, em que usamos como ponto inicial x = 20
-20
-13.43755383290267011197
-9.05962558919570544190
-6.13716679398553077204
-4.18447916859825334681
-2.87926553135386543847
-2.01119102134060700997
-1.45135929223981982374
-1.13389377376757093773
-1.01570113608729869728
-1.00024268578025712329
-1.00000005888209635796
define principal(a,p)
{
if (p) {printf("%f \n",a);principal(T(a),p-1);}
}
f (x) = x3 + x2 + x + 1; f (1) = 0
69
(2.119)
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
70
que n
ao tem razes reais. Use um n
umero de pequeno de iteraco
es, 10 no
m
aximo.
2.6
71
Busca bin
aria
r = b a = b0 a0
Vamos estudar aqui o metodo busca bin
aria para determinacao de razes.
A busca bin
aria e um metodo matem
atico antigo, o matem
atico 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 sucess
ao 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 hip
otese for verdadeira
se hip
otese 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)
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 progressao
geometrica de razao 21 . Veja abaixo o poder decrescente de uma progressao
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 aproximacao
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 precisao.
72
Exemplo 5 C
alculo de uma raiz
Considere a funca
o
f (x) = x3 + x2 + x + 1
(2.128)
x
)
x2 + 1
(2.129)
73
(2.130)
74
1. o metodo da secante;
75
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;
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)
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)
2.7
O problema completo
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]
76
77
============= Tr^
es m
etodos ===========
Raiz prov
avel da fun
c~
ao 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 ========
2.8
Intersec
ao de gr
aficos
Discutimos at
e agora a soluca
o do problema
============= Tr^
es m
etodos ===========
Raiz prov
avel da fun
c~
ao 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 ========
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.
============= Tr^
es m
etodos ===========
Raiz prov
avel da fun
c~
ao 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 ========
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:
(2.135)
78
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)
Figura 2.11:
Interseca
o de curvas
(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)
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 regiao
limitada por elas e
Zb
| (f (x) g(x))dx|
a
80
81
g
15
f(x)
g(x)
0
10
Figura 2.12:
Regi
ao cuja a
rea queremos calcular
5
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.
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
4. As curvas
g(x) = (x2 + x 12)cos(
x
x
) ; f (x) = (x2 x 12) sin( )
2
2
40
60
80
100
10
(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
Figura 2.14:
a
rea limitada por duas curvas
10
CAPITULO 3. RECURSIVIDADE
83
ab
a+b
2
(3.1)
Dem :
Captulo 3
ab
Sucess
oes recursivas
ab
a+b
2
(3.2)
2
2
)2 = a +2ab+b
( a+b
2
4
4ab a2 + 2ab + b2
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 .
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 babil
onios 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 matem
atica).
< a;
Se a > 1 entao 1 < a < a e 1 < a+1
2
a+1
Se 0 < a < 1 entao 1 > a > a e 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
a=
1a
a+1
2
(3.6)
a+1
2
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.
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
Se x for menor do que a ent
a maior do a.
Se x for maior do que
a
a
x, ; x < a <
x
x
85
A sucess
ao (sn )n definida recursivamente por
o de a
x e uma
aproximaca
x> a
s0 = g(x)
sn = g(sn1 )
sn l = a
(3.23)
(3.24)
Dem :
CAPITULO 3. RECURSIVIDADE
a
x
a + x2
=
2x
(3.8)
cuja derivada e
(3.25)
A direita na equac
ao (25) temos
; g ( a) = 0
g e crescente x > a
x>a
g( a) = a g(x) > a
<x
x > a g(x) = x+a/x
2
x2 a
2x2
(3.9)
(3.10)
(3.11)
(3.26)
g(lim sn ) = g(l)
(3.27)
g(l) = l
(3.28)
(3.12)
(3.13)
(3.14)
hip
otese: a < sn = g(sn1 ) < sn1
lim sn+1 = l
e a esquerda na equac
ao (25) temos
(3.15)
(3.16)
(3.17)
(3.18)
(3.19)
(3.20)
(3.21)
(3.22)
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
x4 +10/x4
=
2
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
que n
os d
a 10 x25 < 0.0000004 =
4
107
(3.30)
CAPITULO 3. RECURSIVIDADE
86
CAPITULO 3. RECURSIVIDADE
87
12
1000.
f(x)
x
0
"data"
10
8
x0
x1
x2
x3
x4
x5
x6
x7
=1
= 500.5
= 251.249
= 127.6145
= 67.7253273
= 41.2454260
= 41.2454260
= 32.74526
x28
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
= (31.62278) = |1000.000
{z } 2149284
2
0
(3.31)
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 tr
as do metodo, e o que
passaremos a fazer.
a
1
2
0.2
0.2
aproximada
de 10
Figura 3.1:
;
;
;
;
;
;
;
;
;
;
;
Raz
Determinaca
o de
b
2
4
0.4
1
a+b
2
10
ab
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)
a
x4
a
1
2
20
200
O grafico (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
o f (sem combinar com seus colegas
1. Matem
atica Social Escolha uma funca
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 )
(x1 , x1 )
(x1 , f (x1 )) ; x2 = f (x1 )
(3.32)
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.
[a, b]
3.1.1
Um programa em C
a-lo em [20].
O programa se chama raizq graf.c e voce pode encontr
2 o 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
x + a/x
2
3.2
Fundamentos da converg
encia de iteradas
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)
(3.35)
(3.36)
(3.37)
(3.38)
(3.39)
n1
Y
k=0
(3.40)
(3.41)
(3.42)
|g (xk )||x1 x0 |
(3.43)
(3.44)
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
CAPITULO 3. RECURSIVIDADE
1
2
x+
a
)/2 =
x
2
a
x
(3.46)
a
2x2 .
g (x) = 0 = 1
a
= 0 = x = a
x2
(3.47)
(3.45)
Au
ltima parte da tese do Teorema e o resultado das contas que fizemos na
secao anterior, com o algoritmo dos babil
onios para a raz quadrada. Embora
Figura 3.2:
CAPITULO 3. RECURSIVIDADE
92
CAPITULO 3. RECURSIVIDADE
3.4
xo
Exerccios
Figura 3.3:
93
Nos dois tipos de graficos, (fig. 3.2) ou (fig. 3.3), vemos que o gr
a
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, ent
ao se x0 for grande, quer dizer
maior do que a, entao |g (x0 )| < 1.
Consideremos entao o intervalo I = [ a, ). Sobre I a hip
otese do (Teorema
4) e atendida porque como g(x) < x ent
ao 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
s0 = 0; s1 = 1
s0 = 1
s0 = 2; s1 = 1
s0 = 1; s1 = 1
s0 = 1
s0 = 3; s1 = 1
s0 = 1; s1 = 1
s0 = 1; s1 = 2
s0 = 2;
s0 = 1; s1 = 1
s0 = 1; s1 = 1
s0 = 3;
(3.54)
x1 = g(x0 ) = x0 +
x0 + xa0 > a
a
x0
a 2
) >a
x0
2
x0 + 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 ser
a grande, pertentecer
a
ao intervalo I e portanto a sucess
ao
(xn )n1 I
(3.53)
Sn+1 Sn = an ; S0 = 0
(3.55)
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)
CAPITULO 3. RECURSIVIDADE
3.5
94
CAPITULO 3. RECURSIVIDADE
Soluc
ao de alguns exercicios
0
1
2
3
4
5
6
7
8
9
10
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)
(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
}
(c)
95
CAPITULO 3. RECURSIVIDADE
96
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++;
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++;
}
}
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)
(e)
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)
CAPITULO 3. RECURSIVIDADE
98
CAPITULO 3. RECURSIVIDADE
99
10 1.5497677311665
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
2
k
6
1
(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
CAPITULO 3. RECURSIVIDADE
100
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
func
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
CAPITULO 4. SPLINES
103
Aproximac
ao polinomial cl
assica
Q
(c,d)
f(p)
f(x) = m (xa) + b
f(a) = b
P
f(c) = d
(a,b)
(4.1)
(4.2)
[a,c]
Figura 4.1:
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: sao
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 funcoes.
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, equacao (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. Ent
ao 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 cl
assica, 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 n
ao somente nisto, ela e
bastante exata, porem depende de uma grande quantidade de informacoes.
Veja mais uma comparacao gr
afica para ilustrar a imprecis
ao com que uma
pequena quantidade de informacoes nos deixa. Na figura (4.2) p
agina 104,
estamos apresentando uma formulacao gr
afica 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 reta e o fen
omeno real
105
(4.4)
4.1.1
An
alise de dois casos particulares
[a,c]
Figura 4.2:
CAPITULO 4. SPLINES
## 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
CAPITULO 4. SPLINES
107
P(x)
g(x)
0
3
I = [a3 1, a0 + 1]
2.5
1.5
1
M p(x),
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 polinomios
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.
0.5
0.5
1.5
Figura 4.3:
Mdulo mximo
pr imagem do
ponto de mdulo
mximo
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 dimens
ao deste espaco
vetorial. . .
Ao construir a solucao do problema:
fizemos o grafico de p, p = dp
odulo m
aximo de p . Existe
modulo maximo calculamos, visualmente, o m
um teorema que garante que o m
odulo m
aximo de um polin
omio ocorre na
o teorema
fronteira de um disco que contem este intervalo considerado. E
do m
odulo m
aximo e a figura (fig. 5) p
agina 120, e uma ilustracao do
teorema do m
odulo m
aximo estudado em vari
aveis complexas. A figura
justifica porque preferimos calcular visualmente o m
aximo da derivada;
usamos como coeficiente
1
; M = 470.0 ; M = max(|p (x)|)
M
O mdulo mximo
no plano complexo
Figura 4.4:
O teorema do m
odulo m
aximo
CAPITULO 4. SPLINES
108
Qualquer solucao P do problema homogeneo, somada de uma solucao particular, um polinomio, portanto um conjunto de coeficientes, e a solucao geral
CAPITULO 4. SPLINES
7
f(x)
0
6
-1
-2
-3
Figura 4.5:
que se encontra aqui [20, programas.tgz]. Edite este script e faca alguns
experimentos com polin
omios. Eis algumas sugest
oes:
Aproximaca
o linear por pedacos - 1-spline
(4.8)
(4.9)
(4.10)
(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
(4.6)
-1
Esta funca
o est
a definida por dois sementos de reta, um quando x < 0 e
outro quando x 0.
1. O gr
afico na figura (fig. 4.1) foi produzido com o script
splines01.01.gnuplot
-2
Solu
c
ao 2 Veja o gr
afico na figura (fig. 4.5) p
agina 109,
Exerccios 13 Interpolaca
o e oscilaca
o de um polin
omio
{(a0 , r), (a1, r), (a2, r), (a3, r), (a4, r)}
109
(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
(4.16)
(4.19)
(4.20)
(4.21)
(4.22)
(4.23)
a1
9 27 81
4 8
16 a2
=
4
8
16 a3
a4
25 125 625
(4.24)
3
2
2
5
!
!
3.
4.
111
!
!
-->a\b
ans =
CAPITULO 4. SPLINES
11
6
3
4
(4.17)
(4.18)
(4.25)
! - 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) =
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.
0.999989
a0 = 3; a1 = 0.6880952; a2 = 1.2678571;
a3 = 0.0154762; a4 = 0.0357143
(4.26)
(4.27)
-->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
CAPITULO 4. SPLINES
113
a1 + a2 + a3
3a1 + 9a2 + 27a3
5a1 + 25a2 + 125a3
f(x)
0
= 10
=4
=7
=8
(4.31)
[1 , 1 , 1 ;
3, 9, 27; 5,
25,
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
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
(4.28)
(4.29)
(4.30)
-->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
CAPITULO 4. SPLINES
115
(4.34)
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.
4.1.2
A soluc
ao geral do problema
(4.35)
(4.36)
es 0.6 e 1
resposta oscilaco
4 se
(4.33)
P (x0 ) =
P (x1 ) =
..
P (xn ) =
P (x0 )
..
=
P (xn1 )
P (x0 )
..
.
P (xn1 )
(4.37)
(4.38)
an1 xn1
0
an1 xn1
1
y0
..
.
yn1
= (4.39)
a 0 + a 0 x0 + +
=
y0
y0
y1
a 0 + a 0 x1 + +
=
y1
(4.40)
.. =
..
..
.
.
.
yn
a0 + a0 xn1 + + an1 xn1
n1 = yn1
n1
2
x0
1
x0
x0
a0
y0
a 1 y1
1
x1
x21
xn1
1
. = . (4.41)
...
...
...
...
.. ..
an1
yn1
1 xn1 x2n1 xn1
n1
CAPITULO 4. SPLINES
116
a0
a1
..
.
an1
y0
y1
..
.
yn1
(4.42)
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)
(4.44)
(4.45)
(4.46)
(4.47)
(4.49)
(4.50)
associados `a malha
(4.54)
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 ) = xx3
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 )
P (x)
P (x)
P (x)
; P2 (x) =
; P3 (x) =
x x1
x x2
x x3
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
(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` f
ormulas muito
difceis de expressar. Em vez disto vamos usar um metodo algortmico que vai
conduzir a uma formula mais simples para encontrar este polin
omio.
Os exerccios seguintes sao um tutorial para conduz-l@ a 7 entender o chamado metodo de Lagrange para determinacao deste u
nico polin
omio de grau n
que interpola os pontos
5 Alexandre
(4.51)
Verifique que
existe um u
nico polin
omio de grau menor ou igual a n passando pelos pontos
(x0 , y0 ) (xn1 , yn1 )
117
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}
CAPITULO 4. SPLINES
ent
ao
6 pontos
(a) Pj (xk ) = 0 se j 6= k
(4.59)
CAPITULO 4. SPLINES
118
(b) Pk (xk ) 6= 0
CAPITULO 4. SPLINES
119
ponto
(4.64)
(4.65)
(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
(b) O c
alculo da derivada P (xk ):
P (x) =
3
P
P1 (x) =
(4.61)
3
P
(4.62)
ent
ao P =
(4.63)
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.
k=1
dado k P (xk )
2P (x)
P (x)
P (x)
; P2 (x) =
; P3 (x) =
x x1
x x2
x x3
Pk (x)
Pj (xk )
j=1
P (xk ) = Pk (xk ) 6= 0
3
P
Pk .
k=1
n
X
Pk (x)
(4.69)
(4.70)
k=1
x1
P (x)
.
xxk
x2
x3
Figura 4.7:
Polin
omio de Lagrange
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
(4.71)
P (x)
xxn
(4.74)
..
.
Pn =
CAPITULO 4. SPLINES
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
(4.72)
(4.73)
(4.75)
(4.76)
(c) C
alculo de P (xj )
n
X
k=1
Pk (xj ) = Pj (xj ) 6= 0
(4.81)
ent
ao x = a tambem e raz de f .
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 .
{(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.
garante isto
e a continuidade
f (a) = 0
(4.79)
(4.80)
(4.77)
O gr
afico de P corta o eixo OX em todos os n
os se alternando com m
aximo
um gr
ou mnimos locais entre as razes. E
afico semelhante ao que voce
pode ver na figura (fig. 4.7) p
agina 118.
8 quem
(4.78)
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
intervalo que contem as razes9 [a, a]; a > 0 Prove que se |ba| 4 ent
ao
Pk (xj ) = 0 j 6= k.
P (xj ) =
k=1
Pk (xk ) 6= 0.
121
9a
condica
o a > 0 n
ao
e essencial, apenas facilita a apresentaca
o do problema.
CAPITULO 4. SPLINES
122
CAPITULO 4. SPLINES
123
i. Calcule P .
ii. Mostre que
uencia de n
os
11. polin
omio de Lagrange Considere a seq
xk {2.5, 1.5, 0.5, 2, 3} [3, 3]
P =
Pk .
k=0
(a) Calcule P .
P =
5
X
P (xj ) = Pj (xj )
Pk .
v. Defina
k=1
f (x) =
k=0
5
X
Pk (x)
P (xk )
f interpola os pontos
((xk , yk )nk=0 )
k=1
n
X
Pk (x)
P (xk )
k=0
Pj (xk ) = 0 = j 6= k
do plano.
(h) Considere uma sucess
ao (crescente) de n
os (xk )nk=0 de um intervalo
12
[a, b]. Seja P o polin
omio m
onico que tem estes n
os como razes. E
P (x)
defina Pk (x) = xx
. Verifique que
k
polin
omio f interpola os pontos
i.
P =
n
X
Pk
k=0
do plano.
ii.
Pj (xk ) = 0 = j 6= k
(g) polin
omio de Lagrange Considere uma seq
uencia de n
os
iii.
(xk )nk=0 [, ]
Pj (xj ) = P (xj )
Seja P o polin
omio m
onico11 que tem estes n
os como razes. E defina
P (x)
Pk (x) = xxk .
10 aquele
n
X
iv. f (x) =
n
P
k=0
Pk (x)
P (xk )
e um polin
omio de grau no m
aximo n. Calcu-
k=0
11 aquele
12 aquele
CAPITULO 4. SPLINES
4.1.3
124
Interpolac
ao polinomial de Lagrange
125
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)
(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)
g(x) =
(4.89)
P (xk )
k=0
a = x0 , b = xn1
13 salvo
CAPITULO 4. SPLINES
(4.82)
CAPITULO 4. SPLINES
4.2
126
CAPITULO 4. SPLINES
Func
oes polinomiais por pedacos
Ik =
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}
valor
yk
yk+1
taxa de variaca
o
dk
dk+1
Pk (xk ) = yk
Pk (xk+1 ) = yk+1
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 polinomio
por pedacos do16 terceiro grau, P , que represesente o fen
omeno no intervalo [3, 3] e faca o gr
afico.
4.2.1
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].
n
o
xk
xk+1
127
(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)
(4.92)
CAPITULO 4. SPLINES
128
CAPITULO 4. SPLINES
yn,1
yn,2
yn,3
dn =
t1
+
2
t2
t1
+
2
t2
x0 y0,1 d0
..
..
..
(4.95)
.
.
.
xn
yn,1
dn
x0
..
.
xn
y0
..
.
yn
d0
..
.
dn
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];
o que estamos chamando de uma po Polinomial de grau tres e esta funca
linomial 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:
..
.
2
3
yn dn Pn (x) = an,0 + an,1 (x xn ) + an,2 (x xn ) + an,3 (x xn )
(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
(4.96)
(4.98)
(4.97)
xn
no n
o xk : y k , d k
no n
o xk+1 : yk+1 , dk+1 ;
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 ];
(4.93)
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,1
y
y
y0,2
y0,2 y0,1
+ 0,3t 0,2
t1
t1 + t2
2
=
x
y
y
y
d
=
0,1
0,2
0,3
0
2
2
..
..
..
..
..
(4.94)
.
.
.
.
.
yn,3 yn,2
yn,2
yn,2 yn,1
yn,1
129
(4.100)
CAPITULO 4. SPLINES
130
CAPITULO 4. SPLINES
131
Au
nica forma de ter seguranca com simulaco
es e
grfico da aproximao
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;
"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 funcoes
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 poder
a ver os defeitos da aproximacao. Usando
o intervalo default do programa, voce ter
a uma vis
ao enganosa de perfeicao, 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
forma20 , 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
21 estamos
alg
ebrica
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 s
ao 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 s
ao 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), p
agina 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 polin
omios de grau elevado;
convergencia do algoritmo Os algoritmos definem sucess
oes. Estudamos
sucessoes no captulo tres. Uma sucess
ao e uma funcao definida no conjunto dos n
umeros naturais e tomando valores em um outro conjunto. Este
segundo conjunto determina a natureza das sucess
oes. Com frq
uencia,
neste livro, as sucessoes tem valores reais, e o que chamamos de sucess
oes
de n
umeros reais23 . Sucess
oes deste tipo definem n
umeros quando forem
convergentes, e o limite da sucess
ao. Entretanto, n
ao daremos enfase a`
convergencia de algoritmos neste livro, e isto e um defeito do livro, procure
compensar este defeito com literatura complementar.
alculo voce es o conceito de continuidade e utilizado seguidamente. No C
sencialmente 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
CAPITULO 4. SPLINES
134
xk
x0 = 5
x1 = 0
x2 = 6
yk
1
0
2
CAPITULO 4. SPLINES
4.3
dk
0
1
1
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.
f
4.3.1
Polinomiais de grau tr
es
1
b
a
Figura 4.9:
c1 = P (a), d1 = P (a)
c2 = P (b), d2 = P (b)
yk
f (5)
f (0)
f (6)
dk
f (5)
f (0)
f (6)
f (x2 )f (x1 )
x2 x1
f (x1 )f (x0 )
x1 x0
indicando qual e
(4.101)
(4.102)
(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
= 3c2
(4.106)
= d2 (b a)
(4.107)
(4.108)
CAPITULO 4. SPLINES
Pk (xk+1 ) e Pk+1
(xk+1 ) = Pk (xk+1 ) entao P e contnua e diferenciavel no intervalo [a, b]
(4.110)
(4.111)
(4.114)
(4.115)
sk = xk+1 xk 6= 0
(4.116)
mk,2 =
mk,3 =
(4.119)
(4.120)
(4.121)
Pk (xk+1 ) = 2mk,2
Pk+1 (xk+1 ) = 2mk+1,2
(4.109)
137
(4.117)
(4.118)
4.4
Valor m
edio integral
1
ba
Zb
f (x)dx
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
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
em
que27
g(xi )xi 1
(4.125)
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
31
qualquer m
edia aritm
etica ponderada , a escolha dos pesos influ
encia o valor da m
edia, quer
32
dizer que tais m
edias s
ao viciadas , 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)
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.
(4.126)
considere g, a funca
o relativamente a qual se quer calcular a m
edia, como tendo mais
a
rea a
` esquerda do ponto central a do intervalo. Tendenciosa `
a esquerda. Ent
ao a
m
edia estar
a mais influ
enciada pelos valores a
` esquerda; Veja a (fig. 4.15) p
agina 152.
n
X
i=0
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
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)
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
ent
ao
V alMedg,[,] =
A=
Rb
f (x)g(x)dx
(4.129)
g(x) =
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
ao
a deste intervalo, ent
a [, ] ; V alMedg,[,] =
1
f (x)
A
(4.134)
(4.130)
f (x) = 4 x2 ; x [2, 2]
R2
A = f (x)dx
f (x)g(x)dx = f (c)
(4.131)
como est
a no teorema, mas sim
V alMedg,[,] =
(4.133)
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)dx
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.
g(x) =
|x| > 2
1
|x| 2 A
f (x)
(4.135)
(4.136)
(4.137)
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
CAPITULO 4. SPLINES
143
10
R4
g(x)dx =
F(x)
0
g(x)
(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 =
g(x) =
16
3
32
3
(4.144)
8
3
(4.145)
48
3
(4.146)
f2 (x)dx =
(4.143)
0
(f (x) + 4)dx = 16
R4
8
3
-5
3
g(x) e temos assim uma funca
o cuja integral e 1
Defina ent
ao F (x) = 48
sendo diferenci
avel na reta. O gr
afico de F pode ser vista na figura (4.10)
p
agina 143,
4. estoque de n
ucleos Mostre que se uma funca
o f tiver integral 1 ent
ao
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 gr
afica, em que e necess
ario 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.
-10
-15
-10
Figura 4.10:
-5
10
15
Uma funca
o positiva cuja integral
e1
CAPITULO 4. SPLINES
144
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
f (x)b (x)dx =
f (x)(x b)dx
(4.147)
CAPITULO 4. SPLINES
146
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)
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
(4.150)
quando este valor existir, e no caso do ponto c e um valor que fica entre os
extremos do salto que a funcao da no ponto c. Veja o grafico da convolucao na
figura (fig. 4.13) pagina 147,
c
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
Regio de
correo
Figura 4.13:
Correca
o pelo valor m
edio numa vizinhanca de c
CAPITULO 4. SPLINES
148
(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]
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 contribuicao
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 definicao nao
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
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 regi
ao 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*g
f (x)ga (x)dx
(4.153)
c
0
Clculo de mdia
com sinal tendencioso
Figura 4.14:
(4.152)
M
edia viciada
Defini
c
ao correta da convolu
c
ao
Esta e uma secao difcil, o que n
ao significa que n
ao seja para os comuns mortais.
preciso,
Aquilo que e difcil apenas exige mais esforco para ser adquirido. E
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)
CAPITULO 4. SPLINES
150
CAPITULO 4. SPLINES
151
Analise do domnio de f g
f g(a) =
R
=
=
f (x)ga (x)dx =
(4.155)
f (x)g(x a)dx =
f (y + a)g(y)dy =
(4.156)
f g(a) =
(4.157)
f (y + a)g(y)dy
g(a x) dx =
| {z }
troca de sinal
y = a x = x = a y = dx = dy
R
f (a y)g(y)dy =
f (x)
(4.159)
(4.160)
f (a y)g(y)dy =
(4.162)
(4.163)
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
Defini
c
ao 5 Convoluca
o
f g(a) =
(4.161)
f (x)g(a x)dx
(4.164)
(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.
(4.158)
(f g)(a) =
f (x)g(a x)dx
Func
oes a suporte compacto
CAPITULO 4. SPLINES
152
N
ucleos ou pulsos unit
arios
g(x) =
1 f (x)
2
(4.167)
g(x)dx = 1
(4.168)
ex dx =
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
Exemplo 13 N
ucleo tendo como suporte a reta
2
A funca
o f (x) = ex , chamada de gaussiana tem integral finita
R
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.
ncleo equilibrado
Figura 4.15:
CAPITULO 4. SPLINES
x 7 f f (x) =
(4.166)
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)
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
x+0.5
dy
x + 0.5 [0.5, 0.5] f f (x) =
0.5
0.5
R
x0.5
CAPITULO 4. SPLINES
155
(4.174)
x < 1
f f (x) = 0
x>1
f f (x) = 0
e voce pode ver o gr
afico da convoluca
o na figura (fig. 4.16) p
agina 154.
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
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
(4.176)
(4.177)
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, 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 +
x+0.5
R
0
x0.5
R1
x0.5
(1 y)dy
(1 y)dy
f f f (x) = 0
(4.181)
CAPITULO 4. SPLINES
156
x < 1.5
f f f (x) = 0
(x+ 23 )
x [1.5, 0.5]
2
3
2
x [0.5, 0.5]
4 3x
(x
2)
x [0.5, 1.5]
x > 1.5
f f f (x) = 0
(4.182)
g(0.5) =
= 0.5 a
` esquerda, e a
` direita g(0.5) =
3
(0.5)2 = 0.5 e as duas equaco
es concidem a
` direita e a
` esquerda
4
!
g(0.5) = 34 (0.5)2 = 0.5 a
` esquerda, e a
` direita g(0.5)+ =
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 !
2x+3
2 |1.5
= 0 concidindo a
` direita e a
` esquerda !
2x+3
2 |0.5
g (0.5) =
direita e a
` esquerda !
2x3
2 |1.5
2x3
2 |0.5
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 dao
ttulo a esta secao.
Exerccios 19 Splines a suporte compacto
1. splines c
ubico Partindo do exemplo do n
ucleo 2-splines, construa um n
ucleo
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)
g (1.5)+ =
CAPITULO 4. SPLINES
= 1 concidindo a
` direita
= 0 concidindo a
` direita e a
` esquerda !
e verifique a identidade
Z
ga (x)dx =
g(x)dx = 1
para todo n
umero real a 6= 0.
ao use gnuplot para fazer estes
(b) Faca o gr
afico de g2 , g3 , g4 , g 31 sugest
gr
aficos.
3. splines c
ubico - formato arbitr
ario
(a) Faca o gr
afico da funca
o
x < 4
x+8
2
x [4, 1]
x [1, 0.5]
1
x [0.5, 1]
|2x|
x [1, 4]
2
CAPITULO 4. SPLINES
4.6
158
Soluc
ao de alguns exercicios
(4.183)
(4.184)
(4.185)
1 1
( 1) =
3 3
1
3
e vale, em m
odulo
12
<2
33
(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
CAPITULO 4. SPLINES
-1.5 -1
-0.5 -2
0.5
-3
1.5
-1
2.5 2
3 0
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);
(4.186)
(4.187)
(4.188)
(4.189)
(4.190)
(4.191)
(4.192)
161
}
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 ) +
CAPITULO 4. SPLINES
162
CAPITULO 4. SPLINES
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
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)
163
x < 4
x+8
2
x [4, 1]
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
c~
ao da informa
c~
ao, scilab
corre
c
ao da informa
c
ao
(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)
(4.203)
(4.204)
(4.205)
Mituo isneterasstne
De aorcdo com uma pqsieusa de uma uinrvesriddae ignlsea, nao
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, nao
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.
CAPITULO 4. SPLINES
164
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 inmaforcao
imtapornte. Qunado o tetxo e coincso, s
orbio, 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, s
obrio, tecnico, a
leitura termina sendo mais lenta porque a amostragem se revela imperfeita,
o leitor observa que nao est
a conseguindo compreender e, naturalmente,
passa a fazer uma amostragem mais fina, termina lendo. . .
oes de Algebra
Linear, computa scilab e um programa para resolver quest
semelhante a um programa comercial
cionalmente, distribuido sob GPL. E
CAPITULO 4. SPLINES
165
CAPITULO 4. SPLINES
166
CAPITULO 4. SPLINES
167
1
40
f1(x)
f2(x)
f3(x)
0
"polped"
"lagrange"
"precisao"
"XOY"
30
3
20
10
0
1
2
1.5
-10
1
0.5
0.5
1.5
-20
0.8
g(x)
0
0.7
-30
0.6
0.5
-40
-8
0.4
0.3
-4
Figura 4.18:
0.2
0.1
0
1.5
-6
0.5
Figura 4.17:
0.5
2-splines
1.5
-2
Comparaca
o: polin
omio de Lagrange e splines
CAPITULO 4. SPLINES
168
8
"polped"
"lagrange"
"precisao"
"XOY"
Captulo 5
4
Integrac
ao aproximada
-2
-4
Zb
-6
f (x)dx
-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
5.1
170
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
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.
R3
5.1.1
Integrac
ao geom
etrica.
limitada pelo gr
afico de f e o eixo OX desde x = a at
e x = b.
3
R3
2x
3
R10
3
R3
e)
2x + 3
h)
x+4
3
R3
m)
k)
x + 2x + 1
n)
0
R3
2
R10
1
R3
0
R3
0
2x
f)
2x 3
x4
1x
i)
l)
o)
R3
0
3
R
3
R0
3
R0
3
3 2x
4x
x2 4
x2 + 2x + 1
b)
R3
0
1 x2
c)
R3
1 x2
(5.2)
x2 4
(5.3)
R3
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 sera
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
x2 + 2x + 1
(5.4)
a)
(5.1)
Z3
2x
x2 + 2x + 1
R3
4 x2
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.
172
173
f
f
a
Figura 5.1:
Trap
esios para aproximar a
rea
a
Isto mostra que o calculo da area usando trapesio pode ser obtido com a
media aritmetica dos calculos feitos usando, ret
angulos por excesso e ret
angulos
por falta.
Depois, um triangulo e apenas um tipo particular de trapesio...
Entao vamos nos concentrar no c
alculo com ret
angulos, para encontrar a
area aproximada das integrais e nos preocupar em obter este resultado com
precisao maxima diminuindo a base dos ret
angulos.
Se convenca do que foi dito fazendo alguns gr
aficos.
[a,b]
Somas de Riemann
Para calcular aproximadamente
Rb
retangulos ou trapesios, conforme a conveniencia ou de acordo com as possibilidades geometricas da figura. Mas j
a observamos que n
ao 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 ret
angulos e a de que podemos obter
uma expressao algebrica simples para a soma das area dos ret
angulos e depois
aplica-la num programa de computador.
A expressao algebrica que se presta, facilmente, para utilizar num programa
e uma soma de Riemann.
As somas de Riemann usam exclusivamente ret
angulos. 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 subdivis
oes n
ao precisam ser irregulares, como e o caso da (fig. 5.2), elas podem ser os n
os de uma particao
.
uniforme e assim satisfazer a uma progress
ao aritmetica de razao x = ba
n
1 em
Figura 5.2:
Soma de Riemann
174
Exerccio 1 Area
por falta ou por excesso
Zb
n1
X
f (xk )x =
k=0
n1
X
f (a + kx)x
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 divisoes, um n
umero inteiro escolhido:
x =
ba
n
(5.12)
(5.11)
k=0
Soma de Riemann
a + kx; k = 0, 1, ...
175
(5.8)
(5.9)
(5.10)
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)
como
Sn (f ) =
n1
X
176
f (a + kx)x.
(5.20)
k=0
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
n
X
177
S 20 (f )
e valem as desigualdades
f (a + kx)x.
(5.21)
Z3
k=1
f (x) S 20 (f ) S 10 (f )
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
Sn (f ) =
n1
X
f (a + kx)x.
(5.22)
k=0
e uma aproximaca
o por falta da integral
Rb
f e
S 10 (f )
Sn (f ) =
e vale a desigualdade
Z3
n
X
f (a + kx)x.
(5.23)
k=1
f (x) S 10 (f )
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)
178
Rb
e uma aproximaca
o por excesso da integral
Sn (f ) =
f (a + kx)x.
k+1 << k ;
(5.25)
k=1
e uma aproximaca
o por falta da integral. Faca um gr
afico ilustrativo.
R3
c)
3
R3
i)
5 2x
k)
3
R3
4xsen(x) + 3x
j)
sen(x)
l)
m)
k 7 Sk (f );
2x x2
0
R10
Zb
3
R3
n)
(5.28)
(x3 x2 x + 4)sen(x)
cos(x)
Defini
c
ao 7 integral no sentido de Riemann Seja
1
R3
3
R0
(5.27)
2 2x2
h)
3x2 2x
R3
3
R3
f)
2
3 2x
R3
d)
x2 2x + 3
2
R10
3
3
R
R3
b)
3
R0
e)
g)
2x + 3
(5.26)
179
f e
n
X
x2 cos(x) 2x 3
1 + x2 cos(x)
[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
5.2
[a, b] R
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
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
Sn (g) =
Zb
a
f=
Zb
(h + g) =
Zb
a
h+
Zb
Sn (h + g) =
(5.34)
n
P
f (xk )xn = Sn (f )
(5.35)
k=0
f;
Zb
h+g
(5.36)
Kf = K
Zb
(5.37)
10x2 + 2x + 7 = 10
Z3
x2 + 2
Z3
x+
Z3
7.
(5.38)
(5.31)
h(xk )xn ;
(5.32)
k=0
k=0
a)
Sn (h) =
(5.33)
Exerccios 22 Express
ao formal do c
alculo da integral
k=0
n
P
n
P
g(xk )xn ;
k=0
n
P
181
(5.30)
R3
1
1
x
b)
R3
1
1+x2
c)
R3
2x+3
4+x2
182
3. O n
umero de Napier Descubra experimentalmente um ponto e R tal que
Ze
1
=1
x
Z
n1
n
a3 X 3
a3 X 3
k
<
k
x3 < 4
4
n
n
(5.39)
k=0
Sugest
ao, use o programa riemann.py e calcule as integrais
Za
1
x
n1
X
n
k 1 X k2 1
;
n2 n 1 n2 n
k=0
(5.40)
(5.41)
R1
0
k <n
k=0
Z1
x2 <
1
.
3
Use
n
X
k2
(5.42)
n
X
k3
(5.43)
k=1
k 3 < n4
Z1
0
x3 <
k=1
k=0
(5.47)
k=1
C
alculo num
erico da integral
(5.46)
k=1
Z
n1
n
ap+1 X 3
ap+1 X p
p
k
<
k
x
<
np+1
np+1
5.2.2
riemann() in riemann.py.
(5.45)
n
kp 1 X kp 1
;
p
n n
np n
1
kp
k=1
5. Verifique que, das duas somas de Riemann abaixo, uma fornece uma aproximaca
o por falta e a outra por excesso da integral
n1
X
n
X
xp ; p N ; p > 1 ;
xp <
Z
n1
n
a4 X 3
a4 X 3
k < x3 < 4
k
4
n
n
Z1
Z1
4. Verifique que, das duas somas de Riemann abaixo, uma fornece uma aproximaca
o por falta e a outra por excesso da integral
x2 ;
k p < np+1
k=0
n1
X
(5.44)
k=1
Z1
183
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 grafico 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:
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
184
185
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
16
data
14
12
10
a
o
a
o
a
o
8
6
4
2
0
-3
-2
-1
Figura 5.3:
ret
angulos da soma de Riemann para
R3
x + 2x + 1 = 24
Observa
c
ao 12
Comentando o programa
x2 + 2x + 1
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)
R1
(5.49)
(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.
def integral(f,inicio,fim):
fim = 1
soma = 0
deltax = 0.1; ## precisao incial do c
alculo.
while deltax > 0.0000001:
soma = 0
6 Os
programas usados neste livro podem ser conseguidos via e-mail com o autor.
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)
188
Exerccios 23 C
alculo numerico da integral
189
Objetivo
b)
e)
R1
x4
R1
0
f)
R1
0
1
x
c)
x+1
x
g)
R1
x+3
d)
R1
0
R1
0
x
x+1
h)
R1
0
1
x2
x+1
x+2
Rb
f , os sub-intervalos tive-
Rb
Zx
0
1
ba
f =M
3t =
Zx
6
t3
(5.55)
(5.52)
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
(5.53)
(5.56)
g(x) = ex ; ; x [3, 3]
f (a + kx)x
t3
f existir, ent
ao
n
X
Zb
Zx
3t =
(5.57)
(5.58)
No u
ltimo exerccio voce solicitado a fazer tabelas de valores para o calculo
das integrais para `as quais nao ha forma de calculo exato.
A integral da funcao f (x) =
logaritmo natural.
1
x
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 ?
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:
190
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
n1
X
f k x
(5.64)
k=0
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 formula
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 dara aproximacoes que dificilmente conseguiriamos com a regra do trapesio.
5.4
Figura 5.4:
Integral de func
oes polinomiais
a
rea do trap
esio
e uma m
edia aritm
etica
Zb
a
2
B( H1 +H
)
2
BH1 +BH2
2
(5.59)
(5.60)
(5.61)
(5.62)
f (x)dx =
Zb
a
xn dx =
bn+1
an+1
xn+1 b
| =
= F (b) F (a)
n+1 a n+1 n+1
5.4.1
192
193
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 n
os de uma malha.
Na primeira parte deste captulo fiz uso de malhas, que chamei de partico
es
de um intervalo, sobre cujos n
os 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 particao,
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 n
ao correspondem a conncidencias obtidas com casos bem comportados, mas que a integral dos quasesplines correspondem a uma forma excelente de aproximacao quando a funcao
tiver alguma classe de regularidade (ser contnua, por exemplo).
A conclusao sendo, portanto, que, como os dados amostrais s
ao supostos serem o resultado de medicoes de fen
omenos regulares, em geral mais do que apenas contnuos, diferenciaveis tambem, ent
ao a a modelagem com quase-splines
dos mesmo nos permite uma quantificacao muito boa dos dados no c
alculo da
quantidade total (integral), taxas de variacao (derivadas), valor medio (integral).
5.4.2
A=
(5.66)
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 monomios;
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
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 s
ao funcoes polinomiais 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 polin
omio, P , associado a este sub-intervalo tem por
equacao
Rb
(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 expressao da integral pedacao de polinomio Pi
no subintervalo [xi , xi+1 ];
194
(5.76)
e das medidas
i,k = xi+1 xi
(5.77)
195
(ai,k ) i = 0 . . . n 1 ; k = 0 . . . 3
(5.83)
Zb
(5.84)
f (x)dx
3
n1
XX
ai,k
i=0 k=0
()k+1
k+1
(5.85)
(ai,k ) i = 0 . . . n 1 ; k = 0 . . . 3
(5.86)
(i ) i = 0 . . . n 1
(5.87)
e pela matriz
(5.78)
(5.79)
(i ) i = 0 . . . n 1
(5.80)
(5.88)
k=0
e pela matriz
f (x)dx
3
n1
XX
ai,k
i=0 k=0
(i )k+1
k+1
(5.81)
f : [a, b] R
(5.89)
(ai,k ) i = 0 . . . n 1 ; k = 0 . . . 3
(5.90)
(5.82)
n1 3
1 XX
()k+1
ai,k
b a i=0
k+1
(5.91)
k=0
196
197
6
"dados"
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
-2
-4
P1 = 5.24999925
(5.92)
P2 = 12.000006
(5.93)
R2
-6
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
-8
-4
-3
-2
-1
Figura 5.5:
Gr
afico do polin
omio por pedacos
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
xk
0
5
10
f (xk )
3
5
5.2231
198
3.23
1
5.15
1
5.22325.2231
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.96)
(5.97)
5.5
Integral de quasi-splines
P1 = 20.208334
(5.98)
R10
199
f (xk )
R5
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"
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
1. Considere
1
2.
0
0
Figura 5.6:
10
3.
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 equacoes com
auxlio da maquina.
Uma equacao diferencial ordinaria e uma expressao da forma
F (x, y, y , . . . , y (n) ) = 0
Captulo 6
Equac
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 j
a 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 solucoes
1 teoricamente sabemos tudo, mas sabemos que nem sempre conseguiremos encontrar as
soluco
es....
200
(6.1)
(6.3)
CAPITULO 6. E.D.O.
202
(6.4)
CAPITULO 6. E.D.O.
203
(6.6)
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
Figura 6.1:
y =
Uma poligonal-soluca
o aproximada
(6.5)
x
= f (x, y)
y
(6.7)
x
y
(6.8)
CAPITULO 6. E.D.O.
204
CAPITULO 6. E.D.O.
P
P
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 .
mtodo de Euler
Figura 6.2:
O m
etodo de Euler - uma poligonal
(6.9)
(6.10)
(6.11)
CAPITULO 6. E.D.O.
206
CAPITULO 6. E.D.O.
6.2
4
"dados"
"XOY"
207
Polin
omio de Taylor: soluc
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.
(6.17)
-1
-2
-3
6.2.1
-4
-4
-3
-2
-1
Figura 6.3:
Exerccios 26
2.
3.
Polin
omio de Taylor do segundo grau
1.
soluca
o aproximada de y = yx
(6.18)
em que obtivemos uma funcao do primeiro grau cujo grafico e tangente ao grafico
da curva-solucao passando no ponto (x0 , y0 ) e queremos expandir mais um termo
para obter uma expressao (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:
y = z = f (x, y)
y (x0 ) = A0
dz =
y =
y (x0 ) =
f (x,y)
x dx
dz
dx
f (x,y)
x
f (x,y)
|(x0 ,y0 )
x
y (x0 )
(6.19)
(6.20)
f (x,y)
y dy
f (x,y) dy
y
dx
f (x,y)
|(x0 ,y0 ) y (x0 )
y
= A1
f0 (x) = y0 + A0 (x x0 ) +
A1
(x
2
x0 ) 2
(6.21)
(6.22)
(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)
A0,1
(x
2
x1 = x0 + x ; y1 = f0 (x1 )
..
.
(6.27)
x0 ) 2
An,1
2 (x
(6.28)
x0 ) 2
(6.31)
(6.32)
(6.33)
(6.34)
(6.35)
6.2.2
(6.29)
(6.30)
2
(xk , yk ) fk (x) = yk + Ak,0 (x x0 ) + k,1
2 (x x0 )
xk+1 = xk + x ; yk+1 = fk (xk )
..
.
Refer
encias Bibliogr
aficas
Polin
omio de Taylor de grau n
209
REFERENCIAS
BIBLIOGRAFICAS
210
- 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 Eletr
onica
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
INDICE REMISSIVO
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
import
ancia, 7
derivada algortmica, 13, 112115
derivada zero, 61
desigualdade
aritmetico-geometrica, 83
212
213
diferenca
quociente, 10
diferenciaveis
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
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
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
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
par
abola, 18, 19
tangentes
e secantes, 4
taxa de variacao, 183
Taylor
f
ormula, 19, 23
f
ormula multivariada, 21
polinomio, 194
teorema
m
odulo m
aximo, 103
tipos de razes, 47
translacao, 134
trapesio
regra do, 160
tutorial, 112
Lagrange, polin
omio, 112
uniforme
particao, 120, 170
unit
ario
pulso, 136
unit
ario, 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