Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
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 d