Академический Документы
Профессиональный Документы
Культура Документы
ALCULO NUM
ERICO
COMPUTACIONAL.
Tarcisio Praciano-Pereira
1
Universidade Estadual Vale do Acara u
Sobral, 3 de setembro de 2007
1
tarcisio@member.ams.org
Edi coes Lab. de Matematica Computacional
Universidade Estadual Vale do Acara u
Sobral - Ce
copyleft by Tarcisio Praciano Pereira
Praciano-Pereira, Tarcisio
P496c C alculo Numerico Computacional. Sobral: UeVA, Sobral, 3 de setembro de
2007 133.p Bibliograa ISBN:85-87906-05-4 1 - Linguagem - Computa c ao -
C/C++ 2 - C alculo Numerico. I. Ttulo CDD
515.1
1 A derivada aproximada 1
1.1 derivada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Quocientes de diferen cas
de ordem superior . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 Polinomios de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4 Derivadas parciais . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.5 Vocabulario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2 Razes aproximadas 25
2.1 Razes de uma fun cao por varredura . . . . . . . . . . . . . . . . 26
2.1.1 Um metodo computacional: varredura . . . . . . . . . . . 27
2.1.2 Procura de razes por varredura . . . . . . . . . . . . . . . 34
2.2 A troca de sinal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.2.1 An alise do programa raizes01.c . . . . . . . . . . . . . . 41
2.3 secantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.3.1 metodo da secante . . . . . . . . . . . . . . . . . . . . . . 46
2.4 derivada zero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.5 encontrar razes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.5.1 Como funciona o metodo das tangentes . . . . . . . . . . 60
2.5.2 E quando o metodo nao funciona ? . . . . . . . . . . . . . 61
2.5.3 Funciona com precisao, se funcionar . . . . . . . . . . . . 62
2.6 encontrar razes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.7 encontrar razes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.8 Interse cao de gr acos . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.9 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
2.10 Solu cao de alguns exercicios . . . . . . . . . . . . . . . . . . . . 78
3 Recursividade 79
3.1 exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.1.1 raz quadrada . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.2 Fundamentos da convergencia de iteradas . . . . . . . . . . . . . 86
3.3 O algoritmo babibil onio e convergente . . . . . . . . . . . . . . . 88
3.4 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.5 Solu cao de alguns exercicios . . . . . . . . . . . . . . . . . . . . 90
4 Splines 98
4.1 Aproxima cao polinomial classica . . . . . . . . . . . . . . . . . . 99
4.1.1 An alise de dois casos particulares . . . . . . . . . . . . . . 99
4.1.2 A solu cao geral do problema . . . . . . . . . . . . . . . . 108
4.1.3 Interpola cao polinomial de Langrange . . . . . . . . . . . 116
4.2 Fun coes polinomiais por peda cos . . . . . . . . . . . . . . . . . . 118
4.2.1 sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.2.2 aproxima cao . . . . . . . . . . . . . . . . . . . . . . . . . 122
4.3 Quasi-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
4.3.1 polinomiais . . . . . . . . . . . . . . . . . . . . . . . . . . 127
4.4 Splines c ubicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
ii
4.4.1 convolu cao . . . . . . . . . . . . . . . . . . . . . . . . . . 130
4.4.2 suporte compacto . . . . . . . . . . . . . . . . . . . . . . . 140
4.4.3 Corre cao da informa cao . . . . . . . . . . . . . . . . . . . 146
4.5 Solu cao de alguns exercicios . . . . . . . . . . . . . . . . . . . . 148
4.6 Vocabulario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
5 Integral aproximada 157
5.1 soma de Riemann . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.1.1 Integra cao geometrica. . . . . . . . . . . . . . . . . . . . . 158
5.1.2 Somas de Riemann . . . . . . . . . . . . . . . . . . . . . . 159
5.2 Integral no sentido de Riemann . . . . . . . . . . . . . . . . . . . 166
5.2.1 propriedades da integral . . . . . . . . . . . . . . . . . . . 168
5.2.2 C alculo numerico da integral . . . . . . . . . . . . . . . 171
5.3 trapesio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
5.4 polinomios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
5.4.1 Apresenta cao do metodo . . . . . . . . . . . . . . . . . . . 180
5.4.2 Integral num sub-intervalo . . . . . . . . . . . . . . . . . . 180
5.5 quasi-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
6 E.D.O. 188
6.1 Metodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
6.2 Metodo de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
6.2.1 segundo grau . . . . . . . . . . . . . . . . . . . . . . . . . 195
6.2.2 grau maior do que dois . . . . . . . . . . . . . . . . . . . . 196
. . . . . . . . . . . . . . . . . . . . . . . . 17
1.9 Dados amostrais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.10 Reta tangente ao gr aco de f . . . . . . . . . . . . . . . . . . . . . . 20
2.1 Razes de f no intervalo [, ] . . . . . . . . . . . . . . . . . . . . . . 29
2.2 Parti c ao do intervalo I . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3 Malha sobre uma regi ao do plano . . . . . . . . . . . . . . . . . . . . 35
2.4 V arios representantes da unica raiz . . . . . . . . . . . . . . . . . . . 40
2.5 O metodo das secantes . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.6 Fluxograma - metodo da secante . . . . . . . . . . . . . . . . . . . . . 54
2.7 Num ponto de tangencia, tipo parab olico . . . . . . . . . . . . . . . . . 60
2.8 Quando a derivada e zero . . . . . . . . . . . . . . . . . . . . . . . . 62
2.9 Uma sequencia de retas tangentes... . . . . . . . . . . . . . . . . . . . 63
2.10 Duas tangentes se reproduzindo indenidamente . . . . . . . . . . . . . 65
2.11 Interse c ao de curvas . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
2.12 Regi ao cuja area queremos calcular . . . . . . . . . . . . . . . . . . . 80
2.13 area limitada por duas par abolas . . . . . . . . . . . . . . . . . . . . 81
2.14 area limitada por duas curvas . . . . . . . . . . . . . . . . . . . . . . 81
3.1 Determina c ao de
10 . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.2 Ponto inicial menor do que
a . . . . . . . . . . . . . . . . . . . . . 91
3.3 Ponto inicial maior do que
a . . . . . . . . . . . . . . . . . . . . . . 92
4.1 Duas solu c oes do problema homogeneo . . . . . . . . . . . . . . . . . . 103
4.2 O teorema do m odulo m aximo . . . . . . . . . . . . . . . . . . . . . . 104
iv
4.3 Aproxima c ao linear por peda cos - 1-spline . . . . . . . . . . . . . . . . 106
4.4 interpola c ao polinomial dos pontos . . . . . . . . . . . . . . . . . . . . 109
4.5 Polin omio de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . 115
4.6 Aproxima c ao de uma fun c ao . . . . . . . . . . . . . . . . . . . . . . . 126
4.7 Derivada, tangente e Teorema do Valor medio . . . . . . . . . . . . . . 131
4.8 Uma fun c ao positiva cuja integral e 1 . . . . . . . . . . . . . . . . . . 139
4.9 Deni c ao geometrica - produto de convolu c ao . . . . . . . . . . . . . . 141
4.10 O signicado geometrico de tres valores . . . . . . . . . . . . . . . . . 143
4.11 Corre c ao pelo valor medio numa vizinhan ca de c . . . . . . . . . . . . . 144
4.12 Media viciada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
4.13 N ucleos ou pulsos unit arios . . . . . . . . . . . . . . . . . . . . . . . 148
4.14 quadrado de convolu c ao da fun c ao caracterstica . . . . . . . . . . . . . 150
4.15 2-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
4.16 Compara c ao: polin omio de Lagrange e splines . . . . . . . . . . . . . . 163
4.17 Compara c ao: polin omio de Lagrange e splines - quando os n os cam unifor-
mente pr oximos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
4.18 Regulariza c ao por convolu c ao . . . . . . . . . . . . . . . . . . . . . . 164
5.1 Trapesios para aproximar area . . . . . . . . . . . . . . . . . . . . . . 168
5.2 Soma de Riemann . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
5.3 ret angulos da soma de Riemann para
3
R
3
x
2
+ 2x + 1 . . . . . . . . . . . 181
5.4 area do trapesio e uma media aritmetica . . . . . . . . . . . . . . . . . 186
5.5 Gr aco do polin omio por peda cos . . . . . . . . . . . . . . . . . . . . 193
5.6 Modelagem com polin omios por peda cos . . . . . . . . . . . . . . . . . 194
6.1 Uma poligonal-solu c ao aproximada . . . . . . . . . . . . . . . . . . . 198
6.2 O metodo de Euler - uma poligonal . . . . . . . . . . . . . . . . . . . 200
6.3 solu c ao aproximada de y
=
x
y
. . . . . . . . . . . . . . . . . . . . . 202
v
Introducao
Fa ca apenas uma leitura supercial desta introdu cao como primeira leitura.
Volte a le-la depois mais algumas vezes ate que ela lhe pare ca mais clara. No
incio ser a difcil entende-la por completo, porque ela fala de assuntos que serao
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 disponibi-
lizar material complementar que incluir no texto o deixaria demasiado longo.
Para isto h a uma p agina na Internet em que o material complementar do livro
pode ser encontrado, entretanto os links para paginas na Internet podem mu-
dar e o endere co do autor e mais estavel, havendo diculdade com algum link,
me envie um e-mail para tarcisio@member.ams.org, mas nao se esque ca de que
eu n ao posso lhe dar cursos particulares via e-mail, use este recurso de forma
cuidadosa.
Ha duas areas muito produtivas e com objetivos e metodos diferentes em que
se utiliza o computador para fazer Matematica ou para aplicar Matematica:
Matem atica aplicada e computacional, e a terminologia brasileira, que ainda
se chama de computac ao cientca; Um ramo da matem atica aplicada e
computacional e an alise numerica que e onde se encontra a nossa disci-
plina, o c alculo numerico.
O nosso trabalho se enquadra, portanto, nesta area, computa c ao cientca
e neste caso os programas que usamos como auxiliares, neste livro sao
scilab, gnuplot, calc, e algumas linguagens de programa cao como C,
C++, Python. Todos estes itens podem ser, em geral, encontrados nas
distribui coes Linux.
Computac ao algebrica que tenta, com razoavel sucesso, substituir o c alculo
aproximado pelo c alculo formal. Representantes deste trabalho sao
Maxima um pacote de computa cao algebrica de domnio p ublico que
em geral e encontrado nas distribui coes de GNU/Linux ;
Pari um pacote de computa cao algebrica voltado para
Algebra, de
domnio p ublico;
MuPad um pacote de computa cao algebrica publicado por um grupo
de matem aticos da Universidade Paderborne (Alemanha) que e dis-
tribuido com uma licen ca amigavel para usuarios individuais, mas
normalmente vendido;
Maple um pacote de computa cao algebrica publicado por um grupo
de universidades do Canada e Estados Unidos, que e vendido por um
pre co n ao muito acessvel;
Reduce que e semelhantes ao MuPad, do ponto de vista de distribui cao;
vi
e h a outros que sao francamente comerciais e n ao vemos razao para cit a-los
aqui. A sintaxe usada no Maxima, MuPad, Maple e muito semelhantes,
de modo que quem j a usou algum deles, facilmente migra para outro, e
naturalmente, sugerimos que se migre para Maxima que e distribuido sob
GPL.
Metodologia de comunica cao
O texto e completado com observa coes de dois tipos. Um dos tipos se chama
claramente observa cao, o outro sao as notas de rodape.
Voce deve ler as observa coes 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 aten cao,
numa primeira leitura.
Para lhe permitir uma busca mais acurada de informa coes, o livro tem um
ndice remissivo alfabetico, ao nal, em que todos os conceitos que surgem nas
observa coes se encontram indexados, de forma que voce podera facilmente re-
tornar a eles quando achar necessario. Tambem se encontram indexadas todas
as palavras-chave do texto.
Quando falamos usamos encena cao para completar o sentido das palavras
usadas no discurso: mexemos as m aos, o corpo e alteramos a entona cao da
voz. Para suprir um pouco deste teatro usaremos uma conven cao tipograca:
texto em it alico representa material que voce deve olhar com cuidado, possivel-
mente n ao est a denido ainda e estamos usando a concep cao intuitiva do termo.
Quando usarmos texto tipografico estaremos fazendo referencia a um termo
tecnico j a denido anteriormente ou considerado bem conhecido como tal. As
palavras da linguagem C ser ao escritas no estilo tipografico. Quan-do usar-
mos 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 mo-
mento. Usamos texto sublinhado para chamar sua aten cao de um detalhe que
poderia passar desapercebido, tem o mesmo sentido texto em negrito.
O que e C alculo Numerico
Acima dissemos que este livro e sobre C alculo Numerico e queremos agora
dizer-lhe qual e o planejamento do nosso trabalho, porque h a muitas formas de
desenvolver esta disciplina e n os 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 simplicada e repetir o C alculo Diferencial e Integral cal-
culando, aproximadamente, aquilo que e obtido formalmente na outra
disciplina;
Resolver, numericamente, algumas quest oes que o C alculo consegue ape-
nas mostrar que tem solu cao; Por exemplo;
determina coes de valores, n umeros, raizes de equa coes para os quais
o calculo formal pode ser longo ou muito complexo, isto e feito aqui
no captulo 0.
vii
cria cao de modelos semi-formais para representar dados de um fenomeno,
este e o objeto do captulo 0 mas o captulo 0 tambem representa este
item.
calculo de algumas integrais para as quais nao existem formulas, este
e objeto do captulo 0.
solu coes aproximadas de equa coes diferenciais, isto e feito aqui, muito
moderadamente, no captulo 0, e somente uma introdu cao.
Associar uma linguagem de programa cao, ou pacotes computacionais para
realizar o projeto acima descrito.
Vamos discutir detalhadamente cada um dos topicos que levantamos an-
teriormente.
E preciso lembrar que nao e facil explicar o desconhecido e ate
poderiamos questionar a validade de uma introdu cao como esta.
A ideia de tentar explicar o que faremos tem sentido ainda assim, porque
em parte estamos falando de topicos que os leitores deste livro ja estudaram,
no C alculo Diferencial e Integral e cujos aspectos esta disciplina ira desenvolver
com outro objetivo. Mas estamos nos referindo a itens novos tambem e a razao
e lhe oferecer um plano do trabalho.
Suas perguntas, entretanto, podem fornecer ao expositor ganchos valiosos
na tentativa de deixar as coisas mais claras. O autor tambem se sentira agra-
decido se os leitores tiverem a bondade de lhe mostrar o que nao gostaram no
texto.
Razes de uma fun cao
Este e o assunto do captulo 0.
Para a determina cao das razes de uma fun cao vamos fazer uso de progra-
mas que apresentaremos resumidamente no texto. Os programas se encontram
disponveis em endere co citado na biliograa.
A busca de razes e um assunto que nao e diretamente discutido nos Cursos
de C alculo.
C alculo de integrais
O c alculo de integrais e um dos itens mais importantes do Calculo Diferencial
e Integral. Sua importancia supera a propria conceitua cao da integral, como
caculo de area ou volume.
A integral e um metodo que se insere em outras deni coes, um exemplo bem
simples disto sao os conceitos qualicados com quantidade de, como e o caso
de
quantidade de movimento;
quantidade de exposi cao ` a irradia cao;
n umero de moleculas ou virus em determinado vetor.
Aqui h a duas vers oes do problema:
h a integrais que n ao sabemos calcular formalmente,
viii
ou, mesmo sabendo, o calculo formal e muito complexo ou longo para
certas aplica coes, como nas telecomunica coes, por exemplo.
e o resultado e que se torna mais pr atico calcular estas integrais aproximada-
mente.
Um dos instrumentos para o calculo aproximado de integrais e a Soma de
Riemann. Como instrumento, est a longe de ser o melhor, mas os metodos
melhores usam-na como metodo auxiliar. Porisso come caremos por discut-la.
Veja na gura (g. 1), o que e uma soma de Riemann.
-2
0
2
4
6
8
10
-3 -2 -1 0 1 2 3
Soma de Riemann para f; passo=0.2
data
Figura 1: Ret angulos para aproximar uma integral
Nela voce pode ver o domnio de integra cao subdividido em diversos inter-
valos e um retangulo associado a cada um destes sub-intervalos.
A soma das areas dos retangulos e uma aproxima cao 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 cole cao de retangulos, devidamente dimensionados, representam uma
area que aproxima a area de uma determinada fun cao.
Um programa de computador permite o calculo rapido de somas e portanto
cria as condi coes para que usemos retangulos com bases nmas o que nos
conduz a uma grande aproxima cao.
An alise e controle de varia cao
Um exemplo tpico, e bem atual, e o da qualidade da corrente eletrica que
uma determinada institui cao, um hospital, por exemplo, recebe da rede p ublica
(manipulada por empresas privadas...) Veja o gr aco na gura (g. ??),
Como se poderia tratar este problema ? Qual e o problema ? quais sao as
ferramentas ?
Surpreendemente, h a uma superposi cao de tecnicas a serem usadas aqui e
no problema que discutimos anteriormente. Mas h a 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 cientco responsavel pela mesma. Chamamos isto de divis ao do
trabalho.
1. Leitura e digitaliza cao de dados analogicos recebidos da placa coletora de
dados (a digitaliza cao pode ser trabalho da placa); (Computa c ao, Enge-
nharia Eletrica )
2. C alculo da varia cao da tens ao criando uma serie temporal com estes dados;
(C alculo Numerico e Estatstica)
3. Compara cao dos piques de tensao com valores maximais selecionados como
suportaveis. (C alculo Numerico Engenharia eletrica)
4. Decisao, em tempo real, sobre conexao ou desconexao de aparelhos, com
desvio para nobreakes ou outro tipo de alimenta cao de seguran ca. (Com-
putac ao 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 gura (g. 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 sosticado. Como poderiamos colher mangas
maduras usando derivada ? Indiretamente, e claro.
A gura (g. 1.1) sugere alguma coisa. Queremos lan car uma pedra, amar-
rada a um cord ao, de modo que o cordao que preso proximo a um conjunto
de mangas. Rodamos a pedra preza ao cordao ate que ela atinja uma veloci-
dade angular razo avel. Quando a pedra, em seu caminho sobre o crculose
encontrar na posi cao adequada, soltamos o cordao que ir a acompanhar a pedra
se alojando entre as mangas. Usamos o coeciente angular instaneo da pedra
percorrendo o crculopara escolher a dire cao certa.
O mecanismo e o mesmo quando um computador vai dirigir a trajetoria de
um foguete. Com as informa coes guardadas na memoria do computador sobre o
mapa da Terra em sua orbita, o computador calcula a cada milesimo de segundo
qual deve ser o coeciente angular relativo do eixo do foguete e desta forma vai
corrigindo a rota que levara a nave ao seu destino.
O pil oto autom atico dos grandes avioes comerciais fazem algo parecido. Ao
partir o pil oto humano coloca o aviao na dire cao do aeroporto de destino. O
piloto autom atico vai medindo o erros de rota impostos pelo uxo do ar e cal-
culando a dire cao para corrigir o erro.
Aproxima cao polinomial de curvas
As fun coes nos fornecem dados dinamicos sobre diversos fenomenos. Mas
nem sempre a natureza se conforma `a matematica como nos gostariamos...
x
A solu cao e fazermos aproxima coes para os fen omenos naturais. Ha diversos
tipos de aproxima coes vamos analisar uma delas aqui, splines.
Splines sao uma melhora consideravel dos polinomios de Taylor. Precisare-
mos deste assunto de C alculo para desenvolver esta forma de aproxima cao que
uma aproxima cao polinomial por peda cos. A gura (g. 3) ilustra este tipo de
aproxima cao usando polinomios do primeiro grau o que resulta numa poligonal.
O objetivo do curso
Discutir os problemas
-20
0
20
40
60
80
100
120
140
160
180
-20 -15 -10 -5 0 5 10 15 20
data
Figura 3: Uma aproxima c ao spline de uma curva.
do C alculo Diferencial e
Integral de modo a en-
contrar solu coes aproxi-
madas para este proble-
mas.
Questionar a validade
destas aproxima coes.
Criar a sensa cao de
que a solu cao exata pode
ser um mito.
Linguagem de programa cao
Vimos que metodos com-
putacionais sao essenci-
ais para desenvolvermos as aproxima coes.
Os alunos, seja do curso de Computa cao, ou do curso de Matematica ou
das Engenharias, j a deveriam conhecer uma linguagem de programa cao, a esta
altura.
Infelizmente isto raramente e verdade.
Mas achamos que e preciso for car a barra, como temos feito com os nossos
alunos de C alculo Numerico, com resultados positivos: ao nal do segundo mes
de aula a maioria deles j a sabe fazer programas e inclusive planejar um pequeno
pacote, claro, isto pressup oe que eles tenham acesso a computadores.
Na metologia que temos empregado os programas crescem de nvel de modo
que, se o aluno se empenhar em entende-los, car a gradualmente no nvel dos
mesmos.
Nas duas ou tres primeiras semanas temos mantido a preocupacao de explicar
detalhadamente os programas.
Mas aos poucos vamos deixando que o leitor comece a voar sozinho...obviamente,
na companhia de um bom livro sobre uma linguagem de programa cao, e tambem
sob a hipotese de que ele ir a encontrar sempre um hackera sua volta no la-
borat orio de computa cao de modo a lhe tirar algumas d uvidas (e lhe implantar
mais uma dezena...).
Vamos adotar a linguagem C, mas ninguem deve se sentir obrigado a nos
acompanhar nesta escolha. Use o que houver ` a sua m ao, aquilo que car mais
f acil, mas que os alunos aprendam a programar.
As linguagens de programa cao de um certo tipo todas se parecem de for-
mas que quando apresentarmos um programa em C facilmente ele podera ser
transformado para a linguagem preferida do leitor.
xi
Como e que se aprende uma linguagem ?
Primeiro que tudo metendo a cara, depois perguntando muito a quem ja sabe
um pouco mais, e sem dar muita importancia ao semblante de incomodado que
algumas pessoas possam fazer... quem sabe um pouco mais, aprendeu pergun-
tando aos outros. Pergunte! incomode inclusive o professor! use o seu endere co
eletr onico para tirar suas d uvidas, mas nao se esque ca de que sera o seu esfor co
pessoal que ser a decisivo.
Procure economizar a paciencia dos outros, tente descobrir voce sozinho
como fazer as coisas. Este e seguramente o melhor aprendizado: quando voce
mesmo descobre.
Estamos convencido de que o uso de computa cao no ensino de Matematica
enriquece fortemente a experiencia do aluno porque permite introduzir uma
dinamica que giz e quadro n a conseguem mais gerar ante uma nova mentalidade
gr aca que est a presente em n os todos.
Isto vale para qualquer outra prossao e nos nao tentariamos convencer os
alunos de computa cao desta verdade.
Vamos listar algumas linguagens de programa cao parecidas com C
1. Pascal, e voce certamente vai encontrar [18] na biblioteca que lhe pode
conduzir a dominar esta linguagem.
2. Python, e uma linguagem de domnio p ublico que se encontra disponvel
em todo sistema Gnu/Linux. Nestes sistemas voce encontra um tutorial
sobre esta linguagem no diret orio /usr/doc/python/tutorial.
3. Java, praticamente de domnio p ublico, se encontra disponvel em todo
sistema Gnu/Linux
4. Computa cao Algebrica.
Domnio p ublico ou relativamente livres MuPad, Reduce, Maxima
Comerciais - n ao aconselhamos! Maple, Derive
5. C alculo Numerico, domnio publico SciLab Octave
6. C alculo Numerico, comercial MatLab. Scilab, Octave fazem tudo que
MatLab faz.
Os programas distribuidos sob o GPL, General Public License, sao de exce-
lente qualidade. Ninguem mais precisa, hoje, pagar, para ter um computador
funcionando, alem do pre co da m aquina... Este livro, todos os programas que o
acompanham, todo o trabalho de pesquisa do autor, se desenvolve inteiramente
com programas de domnio p ublico rodando em ambiente Linux.
xii
Captulo 1
A derivada aproximada
A taxa de varia cao de f e uma das informa coes mais importantes
que podemos ter sobre um fen omeno descrito por f. O C alculo
Diferencial e Integral dene a derivada, usando o limite da taxa
de varia cao ou a taxa de variac ao instant anea
A taxa de varia cao e denida por um quociente de diferen cas e
esta e a deni cao b asica que iremos usar neste captulo.
1.1 Quociente de diferen cas
Uma fun c ao f e diferenci avel se em cada ponto do domnio o gr aco
graf(f) tiver uma reta tangente
A reta tangente no ponto (a, f(a) tem um coeciente angular m e n os diremos
que f
(t
1
) e a derivada de f no ponto (t
1
, f(t
1
))) (1.1)
Para dizer o mesmo que dissemos acima, o professor de Calculo considera
a seguinte gura (g. 1.2) em que podemos ver uma reta tangente e tres retas
a a+h
(f(a+h)f(a))/h
Taxa de variao
Tangente e uma sucesso de secantes
Figura 1.2: Taxa de varia c ao
secantes. As retas secantes sao aproxima c oes da tangente.
Na gura (g. 1.2) est ao indicados apenas dois valores para o parametro
a, a + h mas temos al as secantes correspondentes a tres valores: a
1
, a
2
, a
3
e o
o calculo do coeciente angular, das secantes, e feito assim:
m
1
=
f(a1)f(a)
a1a
(1.2)
m
2
=
f(a2)f(a)
a2a
(1.3)
CAP
(a) (1.5)
f(x1)f(a)
x1a
= m =
f
x
=
a
(f) (1.6)
y
1
y
0
= f(x
1
) f(a) = m(x
1
a) (1.7)
f(x) f(a) = f
(a)(x a) (1.9)
y f(a) = f
(a)(x a) (1.10)
Vamos parar um pouquinho nas ultimas equa coes.
A equa cao 7 representa a rela cao entre os lados de um triangulo sobre a
reta secante que passa nos pontos (a, f(a)), (x
1
, y
1
).
As equa coes 8 e 9 sao equivalentes, representam a aproxima cao que a
reta tangente fornece para os valores de f. Na equa cao 8 o erro est a
representado com a nota cao o(x a), o o pequeno de Landau
2
Na equa cao 8 estamos indicando com o termo corretor o(x a) que a
equa cao da reta fornece o valor de f(x) com este erro: o(x a)
A ultima equa cao, 10, e simplesmente a equa cao da reta tangente:
y b = m(x a) ; b = f(a), m = f
(a)
Escrevemos a equa cao 8 com o termo corretor, o(x a) porque a expressao
y f(a) = f
(a)(x a) (1.11)
e a equa cao de uma reta e o gr aco da fun cao n ao precisa ser uma reta
3
entao a
igualdade representada pela reta est a errada e e isto que estamos representando
com o termo de corre cao o(x a).
E uma forma pr atica de indicar que existe
um erro sem precisar entrar no detalhe do valor do erro.
2
A nota c ao dos o s de Landau nos ajudam a falar de aproximac ao de uma forma pr atica
escondendo a precis ao, veja mais a respeito no ndice remissivo
3
compare as equa c oes 8 e 10
CAP
(a).
Nos exerccios seguintes, voce sera solicitado a calcular a derivada aproxi-
mada de fun coes cuja derivada voce sabe calcular exatamente. Desta forma voce
podera comprender melhor a derivada aproximada, comparando-a em casos em
que temos a derivada exata disponvel.
CAP
(3)
2. micro medi c oes Repita a quest ao anterior com o ponto x = 4 com x =
0.001
3. Sabendo que f(1) = 3, f
(a)
a
(f)| =
|f
(a)
f
x
|
x=a
| com f(x) = x
2
+ 3x + 2.
CAP
(a)
a
(f)|
1 0.001
2 0.001
1.5 0.001
6. A seguinte listagem de valores foi obtido por um sensor para os valores de
a
(f) =
f
x
na vizinhanca de um ponto. Calcule a derivada media.
0.99884447020655558927
0.99945892356272536761
0.99976592143543602562
0.99991936316018971376
7. Um sensor apresenta a seguinte sada de dados em que o primeiro valor
e f(a) e os quatro seguintes s ao
a
(f) =
f
x
na proximidades do ponto
x=a.
(a) Construa, gr aca e algebricamente, a interpola cao linear dos dados.
(b) Construa, gr aca e algebricamente, uma interpola cao nao linear da
amostragem com quatro dados obtidos pelo sensor em cada ponto.
a
a
(f)(1)
a
(f)(2)
a
(f)(3)
a
(f)(4) f(a)
1 0.667 0.701 0.719 0.728 3
0 0.002 0.001 0.000 0.000 -5
1 0.812 0.774 0.755 0.746 -7
2 2.926 2.861 2.828 2.812 -14
3 5.895 5.816 5.776 5.756 -20
8. Faca um programa que liste os valores de
a
(f) de de f
2
a
(f) =
a+x(f) a(f)
x
estaremos obtendo uma aproxima c ao da segunda derivada.
Este e um quociente de diferen cas de segunda ordem.
Como n ao podemos calcular a derivada formal, em nossos programas de
c alculo numerico, resta-nos a tentativa com os quocientes de diferen cas. Aqui
CAP
2
a
(f) =
a+x(f)a(f)
x
= (1.17)
(
f(a+2x)f(a+x)
x
f(a+x)f(a)
x
=)/x (1.18)
=
f(a+2x)2f(a+x)+f(a)
x
2
(1.19)
Nao havendo d uvida
7
n os usaremos uma nota cao mais simples para os quocientes
de diferen ca de segunda ordem:
2
(f) =
2
a
(f) (1.20)
Enquanto que os quocientes de diferencas de primeira ordem sao razoavel-
mente 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 fun cao:
f(x) = (1 x
2
)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
estar ao na p agina ` a sua diposi cao quando voce cometer erros e n ao 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 L
A
T
E
X. Experimente a vers ao derivada03.calc que produz
o resultado no terminal.
As fun coes d2f() e ddf() sao idendticas.
ddf() calcula o quociente de primeira ordem da fun cao df(), que calcula o
quociente de primeira ordem de f(), corresponde a equa cao (17), d2f() calcula
diretamente o quociente de segunda ordem usando f(), corresponde a equa cao
(19).
Intervalo [0, 10], passo 1, Delta = 0.000001
x d2f ddf exata
0 -0.000001520000 -0.000001520000 -0.5
1 -1.463721700812 -1.463721700812 -1.463720340220
2 -2.624124797793 -2.624124797793 -2.185332631556
3 -3.217524857357 -3.217524857357 -2.485835877783
4 -3.055271491335 -3.055271491335 -2.244818686029
5 -2.051102544324 -2.051102544324 -1.420459396864
6 -0.237390644956 -0.237390644956 -0.060549895849
7 2.231711106131 2.231711106131 1.696970169472
8 5.090941230838 5.090941230838 3.634424528937
9 7.987785378986 7.987785378986 5.475087704277
7
(f), um quociente de diferen cas, e f = f(x2) f(x1), uma diferen ca, como x =
x2 x1
CAP
(a) (1.21)
e uma aproxima cao do valor da derivada de f no ponto x = a quando
x for pequeno. Os pr oximos itens servem para que voce desenvolva a
sua intui cao com respeito a esta aproxima cao, fa ca gr acos bem feitos
que permitam voce se convencer do seu signicado, a precis ao com que
os gr acos ser ao feitos e parte essencial da quest ao, um gr aco mal feito
n ao lhe indicar a nada, use papel quadriculado (ou milimetrado). Se voce
usar gnuplot, ele lhe permite um zoom usando o bot ao direito do ratinho
e voce poder a ver assim o detalhe entre as duas retas.
(a) Considere f(x) = x
2
2x 3 e encontre a reta tangente ao gr aco
de f no ponto (1, f(1)). Fa ca o gr aco.
solu cao: derivada02 01.gnuplot, [20].
(b) Use x = 0.2, calcule o valor aproximado da derivada com este erro,
e obtenha a equac ao da reta tangente no ponto (1, f(1)). Fa ca
o gr aco.
solu cao: derivada02 02.gnuplot
CAP
.
(b) Encontre as razes de f
que o gr aco
de f. Deduza um esbo co do gr aco de f do gr aco usando o gr aco
da derivada.
CAP
(x) = 3x
2
6x 9 = 0 = x
2
2x 3 (1.23)
x =
2
4+12
2
(1.24)
x
1
=
2+4
2
= 3 = (1.25)
x
2
= 1 = (1.26)
As razes, x
1
, x
2
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 vericar o sinal. Outra consiste
em vericar a variac ao em volta do ponto.
Vamos usar o teste da segunda derivada. Lembrando a f ormula de Taylor,
a segunda derivada representa a concavidade da fun c ao e portanto mos-
tra uma par abola que lhe e semelhante no ponto. Se f
(x
i
) 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 2a. derivada no ponto diagn ostico valor no ponto
f
(x
1
) 12 passa por um mnimo f(x
1
) = 25
f
(x
2
) -12 passa por um m aximo f(x
2
) = 7
O esboco gr aco de f pode ser visto na gura (1.8) p agina 17,
Comandos do gnuplot usados na resolu c ao desta quest ao
f(x) = x**3 - 3*x**2 - 9*x + 2
df(x) = 3*x**2 - 6*x - 9 ## x**2 - 2*x - 3 = 0
a1 = (2 + sqrt(4+12))/2.0
a2 = (2 - sqrt(4+12))/2.0
print df(a1)
print df(a2)
plot df(x),0
ddf(x) = 6*x - 6
print ddf(a1)
print ddf(a2)
set xrange [a2-2:a1+2]
plot f(x),df(x),0
plot f(x),df(x),0
set terminal post enhanced portrait
set output derivada_funcao01.eps
plot f(x),df(x),0
CAP
15. Modelo Encontre a equa c ao de uma reta (um tipo de modelo) que melhor
represente os dados da tabela na gura (1.9) p agina 18. Justique sua
solu c ao;
Calcule o valor deste modelo no ponto x = 2. Calcule o valor medio
que estes dados representam usando a reta como modelo, e admita que o
intervalo de observa c oes e [10, 10].
solu cao: calcule o valor medio das taxas de variac ao e use este valor para
a equa c ao da reta.
16. Teste do modelo Fa ca o gr aco do conjunto de pontos da tabela (1.9) e da
reta que voce encontrou para modelar os dados com gnuplot e verique
assim se o modelo est a adequado. Justique a sua conclus ao.
CAP
(a)(x a) (1.27)
y = f(a) +f
(a)(x a) (1.28)
seriamos facilmente conduzidos ao erro de imaginar que a equa cao da parabola
tangente seria (esta errado)
8
y f(a) = f
(a)(x a) +f
(a)(x a)
2
(1.29)
y = f(a) +f
(a)(x a) +f
(a)(x a)
2
(1.30)
Para encontrar a f ormula correta, vamos inicialmente considerar um polinomio
do segundo grau
P(x) = a
0
+a
1
(x a) +a
2
(x a)
2
(1.31)
desenvolvido no ponto x = a e vamos impor as condi coes que nos interessam,
para encontrar
9
os coecientes
a
0
, a
1
, a
2
(1.32)
P(a) = f(a) a
0
= f(a) (1.33)
P
(x) = a
1
+ 2a
2
(x a) (1.34)
P
(a) = f
(a) a
1
= f
(a) (1.35)
P
(x) = 2a
2
(1.36)
P
(a) = f
(a) a
2
=
f
(a)
2
(1.37)
8
esta f ormula est a errada!
9
os coecientes e que s ao as inc ognitas deste problema....
CAP
(a)(x a) +
f
(a)
2
(x a)
2
(1.38)
Compare a equa cao errada 33 com a equa cao correta 38 e veja que a diferen ca
se encontra no metodo do calculo para o coeciente do segundo grau:
a
2
=
f
(a)
2
Este exemplo tambem lhe mostra a razao pela qual a equa cao do movimento
acelerado (caso da gravidade) e
v = s
0
+v
0
(t a) +
g
2
(t a)
2
(1.39)
em que t = a e o ponto considerado como incio do movimento.
Nos cursos de C alculo este topico aparece sob o nome de f ormula de Taylor
e vai bem alem na constru cao de um polinomio de grau n tangente ao gr aco
de f no ponto (a, f(a)). A metodologia para obter esta f ormula e exatamente a
mesma que apresentamos acima, entretanto partindo do polinomio
P(x) = a
0
+a
1
(x a) + . . . +a
n
(x a)
n
(1.40)
ao qual se imp oem, sucessivamente, as condi coes de tangencia. A conclus ao e
que
a
n
=
f
(n)
(a)
n!
(1.41)
e a voce deve observar que
2 = 2!, 1 = 1!, 1 = 0! (1.42)
sao os denominadores dos termos em x
2
, x, x
0
.
Fizemos men cao ao erro existente entre a equa cao da reta tangente ao
graf(f) e os valores de f numa vizinhan ca do ponto de tangencia, chamando-o
de o(x a).
Aqui usaremos a mesma nota cao, porem o erro e, teoricamente, menor.
Infelizmente, quando passarmos aos calculos numericos este erro tende a
ser bem maior, desta maneira h a que ser prudente com o uso da aproxima cao
polinomial do grau elevado. O fato e que em geral nos damos muito bem com
as aproxima coes do primeiro grau. No captulo 0 vamos ver que o grau ideal
para as aproxima coes polinomiais e o terceiro grau.
CAP
(a).
solu cao: altere derivada02.02.gnuplot
2. An alise do gr aco de f
(a) par abola tangente Encontre a par abola tangente ao gr aco de
f(x) = (1 x
2
)sin(x/4)
no ponto (4, f(4)) e deduza como e o gr aco de f nas vizinhan cas
deste ponto.
solu cao: altere derivada02.03.gnuplot
(b) par abola tangente Encontre a par abola tangente ao gr aco de f no
ponto (2, f(2)) e deduza como e o gr aco de f nas vizinhan cas
deste ponto.
solu cao: altere derivada02.03.gnuplot
(c) Dedu c ao do gr aco de f Com base nas duas informac oes
10
obtidas
anteriormente, simule o gr aco de f numa vizinhan ca do intervalo
[1, 1].
3. Polin omio desenvolvido em um ponto A express ao usual dos polin omios e
desenvolvida no ponto x = 0
P(x) = a
0
+a
1
x +a
2
x
2
+a
0
x
3
+ +a
n
x
n
(1.43)
Usando polin omio de Taylor podemos desenvolver um polin omio em qual-
quer outro ponto.
Desenvolva o polin omio
P(x) = 3 x + 2x
2
3x
3
+ 5x
4
(1.44)
no ponto x = 3 e fa ca os gr acos dos dois polin omios com gnuplot.
Comente o resultado obtido.
solu cao:
11
num terminal, rode calc < poltay2.calc
1.4 Derivadas parciais
Vamos generalizar a f ormula de Taylor para o caso multivariado. Aqui a res-
tri cao ser a mais forte, n ao passaremos do primeiro grau e a considera cao feita
anteriormente sobre erros nas aproxima coes de derivadas de ordem maior se
10
este exerccio tem o defeito de sugerir que podemos fazer uma simula c ao destas em qual-
quer intervalo sabendo o que acontece nos extremos. Isto e falso!
11
Todos os programas do livro se encontram aqui, [20]
CAP
= i(g(x) +if(x))
4. Aplicac oes
(a) Calcule o valor aproximado de sen(0.1) usando a f ormula de Taylor
de ordem 7. Compare o resultado, indicando o erro ocorrido usando
uma calculadora.
solu cao: derivada02 ex02.calc
(b) Calcule o valor aproximado de cos(0.1). Compare o resultado, indi-
cando o erro ocorrido usando uma calculadora.
solu cao: derivada02 ex02.calc
5. Derivadas parciais introduc ao te orica A equa c ao de plano que passa no
ponto (a, b, c) e por comparac ao com a equa c ao da reta
z c +A(x a) +B(y b) = 0 (1.56)
z = c A(x a) B(y b) (1.57)
(a) Calcule as derivadas parciais de z = f(x, y) na equa c ao (57).
resposta: A, B
(b) Justique a armac ao seguinte usando os conceitos tangente, co-
eciente angular dentro de uma pequena reda c ao. Se o plano cuja
equa cao est a em (56), for tangente ao graco de uma fun cao no ponto
(a, b, f(a, b)) entao a equa cao do plano seria, atualizando os valores
de c, A, B na equa coes (56), (57):
z f(a, b) +A(x a) +B(y b) = 0 (1.58)
z = f(a, b) +
f
x
(x a) +
f
y
(y b) (1.59)
(c) Considere uma func ao
z = f(x, y) (1.60)
que seja deriv avel numa vizinhan ca do ponto (a, b, f(a, b)). Ent ao
ela tem um plano tangente no ponto (a, b, f(a, b)), semelhante ao
caso da func ao univariada com a reta tangente. Identique entre as
equac oes abaixo a equac ao do plano tangente ao gr aco de f no ponto
(a, b, f(a, b)) e justique sua escolha.
CAP
(a) = f
(a)
P(b) = f(b); P
(b) = f
(b)
em que [a, b] e um intervalo em que f est a denida e e deriv avel. Sugest ao:
escreva a express ao de um polin omio desenvolvido no ponto x = a.
7. Aplica c ao Encontre um polin omio tal que
a) P(3) = 3 P
(3) = 1
P(3) = 1 P
(3) = 1
b) P(3) = 3 P
(3) = 1
P(3) = 3 P
(3) = 1
Fa ca os gr acos destes polin omios usando gnuplot
CAP
(a).
Variedade e uma palavra que nos livra da prisao tridimensional em que
a geometria do mundo fsica em que vivemos nos conna.
Diremos variedade de dimens ao 1 para fazer referencia as curvas, uma
reta, um crculo sao variedades de dimens ao 1.
Diremos variedade de dimens ao 0 para fazer referencia aos pontos.
As superfcies sao as variedades de dimens ao 2, como um plano que e uma
variedade linear de dimens ao 2.
Depois da dimens ao 2 a geometria n ao tem mais palavras e nos conti-
nuamos a denominar os objetos de variedades lineares ou n ao-lineares
acrescentando a dimens ao que eles tenham. Podemos entao falar de uma
variedade linear de dimens ao 4 que seria uma generaliza cao dos planos ou
das retas.
Enm, agora n ao temos mais as limita coes da geometria.
Captulo 2
Razes aproximadas de
funcoes contnuas
Neste captulo vou estudar o problema determinacao das razes de uma funcao: queremos
descobrir quando f(x) = 0. Este e um velho problema e a justica c ao de sua inclus ao no
currculo se deve a que ele e ilustrativo de tecnicas importantes que tem valor por s pr oprias,
como o metodo da tangente, a procura binaria, e o metodo da secante e a recursividade.
O problema e velho e atual, como veremos na discuss ao, e atual no sentido que n os n ao
sabemos resolve-lo.
Resolver esta equa c ao computacionalmente, e bastante difcil, e iremos, no momento apropri-
ado, indicar quais os problemas envolvidos. A sada, computacional, e resolver a desigualdade
|f(x)| <
para um valor adequado para . Veremos que isto e insuciente e irrealista, apesar de ser
naturalmente a sada matem atica.
Iremos salientar como os metodos computacionais, associados a estas antigas metodologias,
as tornam mais ageis.
O plano do trabalho e:
mostrar e exemplicar o problema;
apresentar uma primeira solu cao computacional, simples, ingenua mesmo,
usando varredura eliminando parte do problema;
mostrar uma solu cao mais efetiva;
apresentar os metodos, metodo da secante e o metodo da tangente e imergir
estes metodos em metodos computacionais;
vamos estudar dois metodos matematicos importantes, busca bin aria e
sucess oes recursivas;
28
CAP
ITULO 2. RA
IZES APROXIMADAS 29
apresentar ao nal o problema completo, mas, obviamente, n ao, a solu c ao.
ITULO 2. RA
IZES APROXIMADAS 30
Uma outra forma de responder, seria, quando denimos uma fun c ao, ne-
cess ariamente estipulamos um domnio de validade para a mesma.
Sera neste domnio que iremos procurar as razes da fun cao.
2.1.1 Um metodo computacional: varredura
Um metodo computacional b asico, para resolver esta questao, e varias outras
que voce vai encontrar neste livro, e varredura.
Existe um paradoxo muito conhecido, de Zenon, resolvido por Aristoteles,
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 avan cado, a 0.9 m mais a frente.
O paradoxo estabelece que Aquiles somente pode atingir a tataruga depois
de percorrer o espa co percorrido por esta (e aqui esta o paradoxo):
Aquiles parte do ponto 0 e a tartaruga parte do ponto 0.9;
quando Achile atingir o ponto 0.9 a tartaruga ja nao esta mais la;
nova corrida come ca, agora com Aquiles no ponto 0.9 e a tartaruga no
ponto 0.91 e quando ele atingir o ponto 0.91 a tartaruga ja n ao esta mais
la . . . e assim nova corrida come ca, [14, logica, Stanford].
Podemos inventar outra forma equivalente deste paradoxo com uma tarta-
ruga que aos poucos fosse cando cansada com a corrida.
A tartaruga come ca uma corrida e no primeiro dia corre a metade do per-
curso ocial, no segundo dia corre a metade do que cou faltando e assim,
sucessivamente, segue correndo sempre a metade do que estiver faltando nos
dias seguintes. Serve para ilustrar que nunca a tartaruga terminaria a corrida...
Aqui vamos usar a ideia para convence-lo de que por menor que for o passo,
n ao ser a possvel percorrer todos os pontos de um intervalo.
Em vez de falar em percorrer, coisa impossvel, vamos falar em varrer. Aqui-
les pode varrer o espa co a sua frente e passar a pela tartaruga em algum ponto no
caminho, mas pode sempre acontecer, dependo do passo escolhido, que nunca
Aquiles encontre a tartaruga.
E n ao h a nenhum paradoxo nesta questao, assim como o paradoxo de Aquiles
nada mais e do que uma forma enganosa de colocar a questao. Nao existe
nenhum paradoxo de Aquiles.
Problema 1 Nunca encontrar o zero de f
Este e o problema b asico, sem nenhum paradoxo, e simplesmente pouco
prov avel que encontremos x tal que f(x) = 0.
Para fazer uma varredura de uma regiao vamos colocar uma malha de nos
sobre esta regiao.
Pense numa rede de pesca, mas nos interessam apenas os nos da rede . . .
A regiao (pode ser uma regiao da reta, do plano ou do espa co), e quere-
mos escolher um conjunto de nos, denindo a malha, associada a esta regiao.
Existe um conceito vizinho a este denominado de parti c ao.
CAP
ITULO 2. RA
IZES APROXIMADAS 31
Malha associada a um intervalo
Vamos come car com o caso unidimensional.
Acompanhe a descri cao do metodo com a gura (g. 2.2) p agina 32.
1. Malha uniforme associada a um intervalo I = [, ]
(a) A precisao da malha - a norma
Considere um intervalo I = [, ]
A medida deste intervalo e
m([, ]) =
e a dividimos por um inteiro n que representa a precisao com que
faremos os calculos.
A norma da malha
1
e
x =
n
. (2.1)
Quando a malha for uniforme este conceito perde sentido, e a me-
dida de qualquer sub-intervalo. Ele e importante quando as malhas
n ao sao uniformes porque serve para controlar a distribui cao quase-
uniforme dos n os, impedindo que uma grande de quantidade de n os
se concentre em uma pequena sub-regiao.
(b) n os da malha Podemos agora denir os nos como os elementos de
uma progress ao aritmetica
= x
0
, x
1
, , x
n
= (2.2)
x
0
= , (2.3)
x
1
= + x, (2.4)
x
2
= + 2x, , (2.5)
x
k
= +kx, , (2.6)
, x
n1
= + (n 1)x, (2.7)
x
n
= +nx = (2.8)
Em geral desprezamos um dos extremos, deste conjunto de n os,
desprezamos o ultimo n o
(x
k
)
n1
k=0
= x
0
, x
1
, , x
n1
= x (2.9)
x
0
= , x
1
= + x, x
2
= + 2x, , (2.10)
x
k
= +kx, , (2.11)
x
n1
= + (n 1)x (2.12)
ou
1
ou norma da parti c ao
CAP
ITULO 2. RA
IZES APROXIMADAS 32
desprezamos o primeiro no
(x
k
)
n
k=1
= x
1
= + x, , x
n
= (2.13)
x
1
= + x, x
2
= + 2x, , (2.14)
x
k
= +kx, , x
n1
= + (n 1)x, (2.15)
x
n
= +nx = (2.16)
Veja na gura (g. 2.2) pagina 32,
x
x
0
n
1
x
I
k
intervalo I
Partio do
Figura 2.2: Parti c ao do intervalo I
Algumas vezes preferimos salientar que este processo criou uma cole cao
de sub-intervalos
I
0
= [x
0
, x
1
), (2.17)
I
1
= [x
1
, x
2
), . . . , (2.18)
I
n1
= [x
n1
, x
n
] (2.19)
I
0
I
1
I
n1
= I (2.20)
cuja uni~ao e o intervalo I sendo estes sub-intervalo disjuntos. Esta
cole cao de sub-intervalos e o que chamamos uma partic~ao de I
Em Matematica gostamos de pensar que escolhemos uma cole c ao
arbitr aria de pontos
x
0
, x
1
, x
2
, . . . , x
n1
, x
n
I (2.21)
CAP
ITULO 2. RA
IZES APROXIMADAS 33
mas, para tornar computacional uma parti cao e preciso estabelecer
uma equa cao, para o elemento generico coisa que os computadores
entendem.
Se a sucess ao (x
k
)
n
k=1
formar uma progress ao aritmetica, dizemos que
temos uma malha uniforme (ou uma parti cao uniforme). Esta ser a a
nossa preferencia neste livro: parti coes uniformes.
Usamos, entao, x como a razao de uma progress ao aritmetica cujo
primeiro termo e x
0
=
x
k
= +kx (2.22)
como j a descrevemos.
Esta expressao aparecera com frequencia neste livro.
Observa cao 2 Aprendendo a ler ou a programar
O programa raizes01.c, [20, programas.tgz], e um implementa c ao deste
metodo, mas ele faz um pouco mais do que isto, procura algumas razes.
Leia o programa sem stress.
ITULO 2. RA
IZES APROXIMADAS 34
A resposta para este tipo de necessidade vem com um arquivo de dados
em que os n os est ao denidos pela posi cao dos sensores.
A esta altura do texto e tambem um pouco articial esta discussao que
preferimos relegar para o momento certo, apenas declarando aqui teremos
necessidade de malhas n ao uniformes. Se o leitor precisar de imediata-
mente ver este ponto, recorra aos captulos 0 ou 0 ou procure no ndice
remissivo ao nal do livro.
Descrevemos assim malhas unidimensionais. Vamos descrever, na proxima
sec cao, como construir malhas bidimensionais.
Malhas bidimensionais
1. Malha associada a uma regiao do plano Selecionar malhas para regioes de
dimens ao maior que 1 geralmente e mais trabalhoso. No caso unidimen-
sional n ao h a muitas escolhas mas nos casos pluridimensionais ha varios
problemas a serem considerados.
Analise um caso simples, representado pela gura (g. 2.3) pagina 35, e
acompanhe com a gura, as deni coes que faremos.
Come caremos supondo que se trata de uma regiao limitada.
Quer dizer que existem quatro n umeros reais:
1
,
2
,
1
,
2
tal que e
um subconjunto do produto cartesiano de dois intervalos:
[
1
,
1
] x [
1
,
1
] (2.23)
e entao criamos uma malha em cada um dos intervalos:
x =
1
1
n
; y =
2
2
n
(2.24)
Agora o produto cartesiano dos dois conjuntos de nos em cada inter-
valo, dene um conjunto de n os no plano, uma malha no plano;
temos que selecionar um sub-conjunto desta malha que que no in-
terior de , veja a gura (g. 2.3).
Se for denido por uma expressao algebrica, pode ser simples a sele cao
autom atica dos n os que esteja no seu interior.
Frequentemente este e um outro problema a ser resolvido, mas este livro
vai lhe apresentar, no captulo 0 uma tecnica, aproxima cao polinomial,
que pode fornecer a equa cao algebrica determinando o contorno de uma
gura como (g. 2.3) a partir de uma coleta de dados como uma fotograa
aerea, por exemplo, ou um conjunto de medi coes tomadas no proprio local.
Veja na gura (g. 2.3), um domnio, , do plano, em que colocamos uma
malha e zemos a sele cao dos pontos da malha que se encontram dentro
do domnio.
CAP
ITULO 2. RA
IZES APROXIMADAS 35
regio do plano
Malha sobre uma
1
2
1
2
ITULO 2. RA
IZES APROXIMADAS 36
mostrar ao leitor, onde ele pode fazer uso de malhas multidimensionais e uma
pista de como encontrar a solu cao para os problemas envolvidos.
Tais situa coes podem ser facilmente encontradas como aplica coes do calculo
aproximado de integrais.
Exemplo 2 Uso de malhas multidimensionais
1. Populac ao de microrganismos numa lamina. Sabendo que os microrganis-
mos a serem estudados s ao capazes de um certo tipo de rea c ao, e possvel
pint a-los com uma soluc ao qumica que far a com que eles respondam a
reac ao qumica com um comprimento de onda, que habitualmente chama-
mos de cor. Cada um dos pontos da gura (2.3) pode ser descrito como
aquele que o sensor captou como estando na faixa de comprimento de onda
que identique a presenca dos microrganismos que interessa.
Depois podemos contar a quantidade de microrganismos calculando a area
da regi ao que eles ocupam. O bi ologo deve, experimentalmente, descobrir
uma constante especca que permita transformar esta area na quantidade
microrganismos presentes na l amina.
2. Fotograa de satelite de regi ao urbana. A gura (2.3) pode representar
uma regi ao fotografada por um satelite e novamente, via comprimento de
onda, se pode detectar intensidade constru c oes urbanas, orestas etc...
Neste caso a fotograa pode ser feita sob emiss ao de uma onda com uma
comprimento particular, ver [14, onda], objetivando obter um determinado
resultado: orestas, construc oes urbanas, determinados tipos de poluic ao.
Novamente o c alculo da area da regi ao determinada vai permitir uma ava-
liac ao da regi ao urbana, da oresta, ou da quantidade de poluic ao que se
estiver observando. Aqui tambem constantes especcas permitem a trans-
formac ao da area 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 aplica coes fogem ao planejamento deste livro mas se o leitor preci-
sar, encontrar a aqui meios para fazer estas aplica coes, se puder contar com
informa coes sobre as constantes mencionadas nos exemplos, na literatura espe-
cializada.
Pelo menos um metodo para calculo de integrais multivariadas sera visto no
captulo 0.
Malhas num programa de computador
Dentro de um programa de computador, podemos implementar a progress ao
aritmetica denida na (eq.1 )
CAP
ITULO 2. RA
IZES APROXIMADAS 37
x = // (1)
enquanto (x < ) // (2)
{
x = x + x // (3).
}
1. o ponto inicial
2. a logica que controla o la co
3. a progress ao aritmetica que dene os n os 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:
x =
n
(1)
x = // (1)
enquanto (x < ) // (2)
{
x = x + x // (3).
imprima(x) // (4)
}
1. dando valores iniciais as vari aveis
2. a logica que controla o la co
3. a progress ao aritmetica que dene os n os da malha
4. o comando para imprimir na tela os elementos da progress ao aritmetica
O caso de malhas multidimensionais, num programa, consiste em encadeiar
la cos semelhantes a estes que apresentamos acima para o caso unidimensional,
n ao tem segredo, outro, que dominar a deni cao do domnio, e como j a dissemos
este pode ser um problema especial: considere um lado dentro de uma regiao,
ele pode representar um buraco em que voce n ao deseja ou n ao podera obter
informa coes. Mas o tal lago pode representar informa coes preciosas num estudo
de rea coes clim aticas da mesma regiao. . .
2.1.2 Procura de razes por varredura
Temos as ferramentas para fazer a nossa primeira pesquisa de razes de uma
fun cao. Vamos discutir uma solu cao simples e intuitiva do problema.
Vamos varrer um intervalo [, ] procurando quando os valores de f sejam
menores que um erro escolhido. Pela discussao feita acima sobre o chamado
paradoxo de Aquiles, n ao vale a pena procurar quando f(x) = 0, porque a
probabilidade de que Aquiles encontre a tartaruga, e a mesma de encontremos
x tal que f(x) = 0, e muito pequena praticamente nula.
CAP
ITULO 2. RA
IZES APROXIMADAS 38
Como no caso de Aquiles, e melhor procurar saber quando tivermos passado
pela tartaruga:
|f(x)| > (2.28)
Um primeiro programa seria:
x =
n
[1]
x = [1]
enquanto (x < ) [2]
{
se (|f(x)| < ) escreva x, f(x); [3]
x = x + x [4]
}
Este livro n ao pode oferecer-lhe tecnicas de programa cao, sem fugir dos seus
objetivos, mas algumas sugestoes podem ser encontradas aqui. Uma delas e
b asica: construa programas que executem tarefas especcas 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 ecientes consiste em partir de um programa
como este que est a acima e ir acrescentando ao programas novas rotinas. Mesmo
neste caso vale a observa cao anterior: teste as rotinas separadamente antes de
inclu-las no programa.
Esta metodologia se presta para o trabalho em equipe.
Descri cao das etapas do programa
1. valores iniciais para as vari aveis
2. a logica que controla o la co
3. o teste para encontrar as razes aproximadas
4. a progress ao aritmetica que dene os nos da malha
Exemplo 3 Procura de razes
Todos os exemplos apresentados aqui foram executados com programa
raizes01.c
que pode ser obtido aqui,[20, programas.tgz], ou no CD que acompanha este
livro. Em seguida lhe apresentamos uma lista de exerccios em que voce ser a
convidado a usar o programa para repetir estes exemplos e construir outros para
melhorar a sua compreens ao do assunto.
1. Raiz de f(x) = x
2
no intervalo [1, 1]
Rodamos um programa que implementa o algoritmo acima. O programa
solicita os pontos inicial e nal 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
CAP
ITULO 2. RA
IZES APROXIMADAS 39
> Forneca-me o intervalo [a,b] para busca de raizes:
a = -1 b = 1
> Sua busca de raizes no intervalo [ -1.000000 , 1.000000 ]
> Forneca-me o passo delta da malha para a busca:
> Sugestao 0.01 < delta < 0.5
delta = 0.1
> Precisao da malha 0.100000
=================================================
> Aperte <enter> para continuar
Raiz provavel da funcao no intervalo
[-0.100000,0.000000]
valor de f no ponto -0.100000 --> 0.010000
valor de f no ponto 0.000000 --> 0.000000
Raiz provavel da funcao no intervalo
[0.000000,0.100000]
valor de f no ponto 0.000000 --> 0.000000
valor de f no ponto 0.100000 --> 0.010000
O programa acha dois intervalos onde h a valores aproximados para a raiz
da fun c ao, e escreve o valor de f em cada extremo do intervalo:
[0.1, 0]
[0, 0.1]
Aqui voce j a pode ver uma diculdade na determinac ao de razes aproxi-
madas, 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 separa cao das razes . O nome n ao e dos
melhores porque, como voce ve, acima, n ao h a duas razes e sim uma unica
que foi apresentada como aparecendo em dois intervalos consecutivos.
A gura (g. 2.4) p agina 40, pretende ilustrar o problema descrito no
exemplo. Uma malha muito na levar a o programa a encontrar v arios
pontos que satisfazem a desigualdade.
Este e um dos principais problemas em C alculo Numerico: n os n ao sabe-
mos 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 modicarmos
o programa com x =
Forneca-me o intervalo [a,b] para busca de raizes:
a = -1 b = 1
CAP
ITULO 2. RA
IZES APROXIMADAS 40
f
|y| < r
Figura 2.4: V arios representantes da unica raiz
Sua busca de raizes no intervalo [ -1.000000 , 1.000000 ]
Forneca-me o passo delta da malha para a busca:
Sugestao 0.01 < delta < 0.5
delta = 0.3
Precisao da malha: 0.300000
Forneca-me o erro epsilon :
Sugestao 0.01 < epsilon < 0.5
0.001
Erro : 0.001000
=================================================
Aperte <enter> para continuar
Nenhuma raiz foi encontrada no intervalo dado !
Rode, novamente, o programa, com passo mais fino...
Desta vez o programa n ao conseguiu encontrar nenhuma raiz, observe por-
que.
Como escolhemos x = 0.3 ele analisou os intervalos
[1, 0, 7], [0.7, 0.4], [0.4, 0.1], [0.1, 0.2], ...
e em cada um deles vericou se nos extremos |f(x)| < ;
os testes falharam nos extremos em todos os casos porque somente
no interior do intervalo [0.1, 0.2] e que poderia ter dado certo.
Veja o resultado se agora rodarmos o programa com x = 0.1
Forneca-me o intervalo [a,b] para busca de raizes:
CAP
ITULO 2. RA
IZES APROXIMADAS 41
a = -1 b = 1
Sua busca de raizes no intervalo [ -1.000000 , 1.000000 ]
Forneca-me o passo delta da malha para a busca:
Sugestao 0.01 < delta < 0.5
delta = 0.1
Precisao da malha: 0.100000
Forneca-me o erro epsilon :
Sugestao 0.01 < epsilon < 0.5
0.001
Erro : 0.001000
=================================================
Aperte <enter> para continuar
Raiz provavel da funcao no intervalo
[0.000000,0.100000]
valor de f no ponto 0.000000 --> 0.000000
valor de f no ponto 0.100000 --> 0.010000
O programa analisou os intervalos
[1, 0.9], [0.9, 0.8], . . . , [0.1, 0], [0, 0.1]
e achou uma raiz no intervalo [0, 0.1]. Se o programa tivesse testado os
dois extremos de cada intervalo, teria achado tambem uma raz no inter-
valo [0.1, 0].
2. razes de f(x) = x
5
+x
4
+x
3
+x
2
+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]
CAP
ITULO 2. RA
IZES APROXIMADAS 42
valor de f no ponto -1.020002 --> -0.062463
valor de f no ponto -1.010002 --> -0.030613
Raiz provavel da funcao no intervalo
[-1.010002,-1.000002]
valor de f no ponto -1.010002 --> -0.030613
valor de f no ponto -1.000002 --> -0.000006
Raiz provavel da funcao no intervalo
[-1.000002,-0.990002]
valor de f no ponto -1.000002 --> -0.000006
valor de f no ponto -0.990002 --> 0.029401
Raiz provavel da funcao no intervalo
[-0.990002,-0.980002]
valor de f no ponto -0.990002 --> 0.029401
valor de f no ponto -0.980002 --> 0.057650
Raiz provavel da funcao no intervalo
[-0.980002,-0.970002]
valor de f no ponto -0.980002 --> 0.057650
valor de f no ponto -0.970002 --> 0.084781
Raiz provavel da funcao no intervalo
[-0.970002,-0.960002]
valor de f no ponto -0.970002 --> 0.084781
valor de f no ponto -0.960002 --> 0.110833
Esta func ao tem uma unica 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
CAP
ITULO 2. RA
IZES APROXIMADAS 43
valor de f no ponto -0.990002 --> 0.029401
O programa conseguiu isolar um unico intervalo com uma raz aproximada.
Os exemplos acima mostram as diculdades que temos para resolver o pro-
blema de encontrar as razes de uma fun cao usando varreduras. Depois veremos
que, com tecnicas mais renadas, poderemos evitar estes erros.
Porem os programas podem ainda, deixar de encontrar razes, mesmo que
elas existam o que nos obriga a monitorar o funcionamento dos programas para
dirigir a busca a partir dos resultados indicados.
Exerccios 5 Procurando razes com varreduras
1. Leia o programa raizes01.c. Logo no incio o programa traz instru c oes
de como compilar e rodar um programa.
2. Voce pode repetir as experiencias registradas aqui rodando o programa
raizes01.c. A fun c ao cujas razes est ao sendo procuradas, est a denida
dentro do programa, ao nal. Troque a equa c ao para executar os seus ex-
perimentos e depois compile e rode o programa. Dentro do programa, no
incio h a instru c oes de como compilar e rodar o programa.
3. Rode raizes01.c com f(x) = x
2
no intervalo [3.2, 3] com passo 0.3
e erro m aximo 0.001. O programa vai dizer-lhe que nenhuma raiz foi
encontrada. Analise por que ?
4. Rode raizes01.c com f(x) = x
2
no intervalo [3, 3] com passo 0.3 e erro
m aximo 0.001. Agora o programa vai encontrar um intervalo onde h a uma
raiz.
5. Rode raizes01.c com f(x) = x no intervalo [3.2, 3] com passo 0.3 e erro
m aximo 0.05. O programa vai dizer-lhe que nenhuma raiz foi encontrada.
Analise por que ?
6. Rode raizes01.c com f(x) = x
2
no intervalo [3, 3] com passo 0.05 e
erro m aximo 0.01. O programa vai encontrar v arios sub-intervalos onde
h a razes.
Nos exerccios, a busca de razes, com uma mesma fun cao um programa
produz diversos resultados. A gura (2.4) oferece uma boa descri cao geometrica
para este problema:
uma malha com passo muito no e com erro (modulo m aximo) relativa-
mente muito grande, apresenta v arios n os em que a desigualdade e veri-
cada;
se o erro, (modulo m aximo) for relativamente muito pequeno nenhum dos
n os da malha vai satisfazer a desigualdade.
CAP
ITULO 2. RA
IZES APROXIMADAS 44
Observe que usei o adverbio relativamente para qualicar os adjetivos
grande ou pequeno porque as grandezas sao relativas a algum referencial. Voce
talvez precise de fazer algumas experiencias com o programa raizes01.c para
compreender o problema descrito nesta se cao.
Na pr oxima se cao vamos encontrar uma sada para esta diculdade.
2.2 Razes analisando a troca de sinal
Acima analisamos a busca de razes apenas testando quando o valor de f(x)
fosse pequeno:
|f(x)| < (2.29)
Vamos mostrar, como um exemplo, que isto pode ser insuciente.
2.2.1 Analise do programa raizes01.c
Veja o que acontece com a fun cao f(x) = x ao rodarmos o programa raizes01.c.
Forneca-me o intervalo [a,b] para busca de raizes:
a = -3.2
b = 3
Sua busca de raizes no intervalo [ -3.2.000000 , 3.000000 ]
Forneca-me o passo delta da malha para a busca:
Sugestao 0.01 < delta < 0.5
delta = 0.3
Precisao da malha: 0.30000
Forneca-me o erro epsilon :
Sugestao 0.01 < epsilon < 0.5
0.001
Erro : 0.001000
=================================================
Aperte <enter> para continuar
Nenhuma raiz foi encontrada no intervalo dado !
Rode, novamente, o programa, com passo mais fino...
O programa n ao encontrou
|f(x)| < 0.001
no intervalo considerado.
Em vez de procurar por um valor pequeno de |f(x)| e portanto depender da
relatividade do tamanho que se vai procurar, vamos vericar quando a fun cao
troca de sinal.
CAP
ITULO 2. RA
IZES APROXIMADAS 45
Este metodo nos livra do relativismo
2
. Quando uma fun cao contnua trocar
de sinal em um intervalo, neste intervalo h a um ponto (pelo menos) em que a
fun cao vai se anular.
Se introduzirmos esta pequena melhora no programa ele ir a encontrar uma
raiz aproximada com os mesmo dados (x, ).
Vamos incluir o teste
f(x) f(x + x) 0
que descobre quando f troca de sinal dentro de um intervalo.
O programa
x =
n
[1]
x = [1]
enquanto (x < ) [2]
{
se (|f(x)| < ) ou (f(x)f(x + x) 0 )
{escreva x, f(x)}; [3]
x = x + x [4]
}
Comentando as etapas do programa
1. valores iniciais para as vari aveis
2. a logica que controla o la co
3. o teste para encontrar as razes aproximadas tanto a verica se m odulo de
f e pequeno:
|f(x)| <
como tambem verica se f troca de sinal no intervalo:
f(x)f(x + x) 0
O operador logico ou pesca se uma destas condi coes for satisfeita.
4. a progress ao aritmetica que dene os n os da malha
Veja o resultado deste programa mais especializado:
Forneca-me o intervalo [a,b] para busca de raizes:
a = -3 b = 3
Sua busca de raizes no intervalo [ -3.000000 , 3.000000 ]
Forneca-me o passo delta da malha para a busca:
Sugestao 0.01 < delta < 0.5
delta = 0.15
Precisao da malha: 0.150000
2
tamanho e um conceito relativo, depende de um referencial...
CAP
ITULO 2. RA
IZES APROXIMADAS 46
Forneca-me o erro epsilon :
Sugestao 0.01 < epsilon < 0.5
0.001000
Erro : 0.001000
=================================================
Aperte <enter> para continuar
Raiz provavel da funcao no intervalo
[-0.150000,0.000000]
valor de f no ponto -0.150000 --> -0.150000
valor de f no ponto 0.000000 --> 0.000000
Raiz provavel da funcao no intervalo
[0.000000,0.150000]
valor de f no ponto 0.000000 --> 0.000000
valor de f no ponto 0.150000 --> 0.150000
O programa achou dois intervalos, num deles a fun cao troca de sinal, no outro
a fun cao e pequena. Veja outro exemplo:
Forneca-me o intervalo [a,b] para busca de raizes:
a = -2
b = 2
Sua busca de raizes no intervalo [ -2.000000 , 2.000000 ]
Forneca-me o passo delta da malha para a busca:
Sugestao 0.01 < delta < 0.5
delta = 0.15
Precisao da malha: 0.150000
Forneca-me o erro epsilon :
Sugestao 0.01 < epsilon < 0.5
0.01
Erro : 0.010000
=================================================
Aperte <enter> para continuar
Raiz provavel da funcao no intervalo
[-0.050000,0.100000]
valor de f no ponto -0.050000 --> -0.050000
valor de f no ponto 0.100000 --> 0.100000
Bastou que trocassemos os pontos inicial e nal do intervalo de busca para
que o programa identicasse um unico intervalo onde ha raz da fun cao. Moni-
torando o programa conseguimos obter um resultado preciso.
Se voce n ao souber programar, ou nao tiver acesso a um computador, se
tudo que voce tiver for uma m aquina de calcular, o algoritmo analisando a
troca de sinal e o ideal. Depois de vericar num intervalo grande que f troca
CAP
ITULO 2. RA
IZES APROXIMADAS 47
de sinal, voce pode renar 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 instru c oes
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-denidos que voce pode aproveitar na primeira
vez que rodar o programa.
3. Leia o coment ario (30) e elimine o teste do m odulo m aximo. Verique
que alguma raiz pode ser perdida, dependendo da equa c ao que voce estiver
usando. Experimente v arios tipos de equa c oes. 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... fa ca suas experiencias.
2.3 Raiz do tipo secantes
Falamos na troca de sinal para encontrar razes de fun c oes. A forma classica
e o metodo das secantes que vamos estudar mais a frente. Como prepara c ao
para os metodos cl assicos vou fazer uma an alise dos tipos de razes que irei
classicar como do tipo secante e do tipo tangente. Primeiro vamos discutir
as razes do tipo secante.
Vamos nos aprofundar na an alise de quando uma fun cao se anula. S ao
desaos interessantes que temos pela frente. Os gr acos podem ter curvas e
neste caso encontrar as razes exige mais domnio do assunto.
Observe o que nos diz a gura (g. 2.5) p agina 48,
O gr aco da fun cao f corta o eixo OX em dois pontos.
Raz por tangencia Uma desta razes e do tipo tangente, veja o gr aco,
(g. 2.5).
O gr aco de f tangencia o eixo OX, no ponto x
1
e corta o eixo OX no
ponto x
2
.
x
1
e um ponto de tangencia, uma raiz em que
f
(x
1
) = 0. (2.30)
e n ao seria possvel obter esta raz pelo metodo das secantes neste
ponto porque neste ponto (nesta raz) f n ao troca de sinal. Aparen-
temente a unica forma de encontrar esta raz e usando o teste
|f(x)| < (2.31)
Num ponto de tangencia, como x
1
, o gr aco pode ser comparado
com o gr aco de uma parabola em que f << x. O smbolo <<
CAP
ITULO 2. RA
IZES APROXIMADAS 48
f
Esta raz possvel
de se determinar pelo
mtodo das secantes
raz aproximada
obtida pelo mtodo
das secantes
mtodo das secantes
de se obter pelo
raz impossvel
x
1
x
2
Figura 2.5: O metodo das secantes
se le muito menor do que. A tal ponto f << x que o quociente
x1
(f) =
f
x
tem limite zero, quando x representar o zero
3
. A
derivada e zero. Vou tratar deste caso na proxima se cao. Vamos
ver que existe outra maneira de encontrar esta raiz sem ser com a
desigualdade
|f(x)| < (2.32)
que j a sabemos que e problematica porque depende de valor relati-
vamente pequenos, coisas com que programas nao podem lidar de
forma efetiva.
Raz por sec ancia o ponto x
2
e um ponto de secancia do graco com
o eixo OX e vou me especializar neste caso agora.
A outra raz e do tipo secante, o graco graf(f) corta o eixo OX de
forma semelhante a uma reta, neste ponto (nesta raz) f troca de sinal.
Aqui o teste
|f(x)| < (2.33)
funciona mal porque e difcil comparar o tamanho de |f(x)| com o tamanho
de x e desta forma ca difcil denir um erro adequado.
3
ou, como ainda se diz, quando x tender a zero
CAP
ITULO 2. RA
IZES APROXIMADAS 49
ITULO 2. RA
IZES APROXIMADAS 50
Nao se perca com a mudan ca de nota cao.
Chegamos aqui, olhe a gura (g. 2.5), pagina 48, porque sabemos que existe
um ponto designado por x
2
que e a raiz exata que gostariamos de encontrar.
Resolvemos uma equa cao do primeiro grau para encontrar a raz da reta secante
e estamos chamando s
0
ao primeiro ponto de uma sucessao de pontos que
esperamos que convirjam para a raz
s
n
x
2
(2.42)
x
2
e o limite da sucess ao s
n
Ao iterarmos este processo vamos criar a sucessao (s
n
) referida acima. Pre-
cisamos re-escrever as equa coes acima alterando a nota cao de forma a sermos
conduzidos a uma expressao (matematica) adequada. Depois vou transformar
as equa coes matem aticas no algoritmo computacional que e muito mais simples,
e se voce preferir (n ao deve) pode saltar direto para o algoritmo computacional.
Repetindo (e alterando a nota cao) temos:
a
0
= a; b
0
= a
0
+ x; m
0
=
f(b
0
) f(a
0
)
b
0
a
0
(2.43)
y f(a
0
) = m
0
(x a
0
) (2.44)
y = f(a
0
) +m
0
(x a
0
) (2.45)
y = 0 s
0
a
0
=
f(a0)
m0
(2.46)
(2.47)
uma raz aproximada inicial
s
0
= a
0
f(a
0
)
m
0
(2.48)
a unica modica cao foi que designamos por m
0
o coeciente angular da reta
secante no intervalo onde (o programa) detectou a troca de sinal, e usamos a
0
, b
0
para representar os extremos do intervalo inicial, porque isto vai uniformizar a
nota cao.
Leia com calma e ver a que e verdade, nao foi para complicar, foi para tornar
mais claro (padronizar).
Porque agora vamos considerar um segundo intervalo, um sub-intervalo deste
primeiro.
Veja a constru cao do algoritmo.
O ponto s
0
associado ao coeciente angular m
0
, divide o intervalo
[a
0
, b
0
]
em dois sub-intervalos
[a
0
, s
0
] , [s
0
, b
0
] (2.49)
CAP
ITULO 2. RA
IZES APROXIMADAS 51
certamente h a uma troca de sinal em um destes intervalos porque havia
troca de sinal no intervalo primitivo
[a
0
, b
0
]; (2.50)
Problema
Pode haver mais de uma troca de sinal e isto pode representar um compli-
cador para o algoritmo, o programa pode simplesmente se perder em buscas
indenidas... Logo diremos como podemos controlar este problema.
Mas vamos supor a situa cao mais benigna
a
e para depois procurar melhores
algoritmos.
a
e a tecnica que estamos utilizando, montamos a teoria usando os casos simples, depois
iremos test a-la e procurar algoritmos mais robustos
Testamos a troca de sinal e no intervalo onde ela se vericar, tra camos
5
nova reta secante usando os extremos para determinar agora o ponto s
2
da sucess ao:
a
0
= a; b
0
= b; (2.51)
Se f(a
0
)f(s
0
) 0 (2.52)
entao b
1
= s
0
; a
1
= a
0
; (2.53)
senao b
1
= b
0
; a
1
= s
0
; (2.54)
m
1
=
f(b1)f(a1)
b1a1
(2.55)
y = r
1
(x) = f(a
1
) +m
1
(x a
1
)
y=0
(2.56)
x = s
1
= a
1
f(a1)
m1
(2.57)
iteramos este processo para encontrar
a
n
, b
n
, m
n
=
f(bn)f(an)
bnan
(2.58)
y = r
n
(x) = f(a
n
) +m
n
(x a
n
)
y=0
(2.59)
x = s
n
= a
n
f(an)
mn
(2.60)
ate que o teste
|f(s
n
)| <
em que e a precisao com que desejamos calcular a raz.
5
n ao tra camos nada, apenas calculamos a raz da equa cao do primeiro grau
CAP
ITULO 2. RA
IZES APROXIMADAS 52
Observa cao 3 Voce pode fazer isto com calc
A linguagem de programac ao calc e injustamente chamada de C interpre-
tado, e uma outra linguagem de programa c ao que tem uma precis ao innita,
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 fun c ao. Depois
que voce rodar o script do calc, volte e releia as contas matem aticas que v ao
da equac ao (51) ate a equac ao (60) a respeito das quais voce, provavelmente,
pensou que o autor estava complicando, para ver que e, exatamente, o que a
m aquina precisa para pensar corretamente e lhe dar os resultados certos.
define f(x) {return sin(1 +x/4)*(x+1)}
x = -10
delta = 0.7
while (f(x)*f(x+delta) >= 0){
x = x + delta;
print x,;
}
print x-delta, x ;
## o resultado e o intervalo [-5.1 ,-4.4]
a0 = -5.1;
b0 = -4.4;
m0 = (f(b0)-f(a0))/(b0 - a0);
s0 = a0 - f(a0)/m0;
print s0;
-4.09298252718108963004
if (f(a0)*f(s0) <= 0 ) { b1 = s0; a1 = a0;} else {a1 = s0; b1 = b0;};
m1 = (f(b1)-f(a1))/(b1 - a1);
s1 = a1 - f(a1)/m1;
print s1;
-4.01048304495901701641
if (f(a1)*f(s1) <= 0 ) { b2 = s1; a2 = a1;} else {a2 = s1; b2 = b1;};
m2 = (f(b2)-f(a2))/(b2 - a2);
s2 = a2 - f(a2)/m2;
print s2;
-4.00121371137763323854
if (f(a2)*f(s2) <= 0 ) { b3 = s2; a3 = a2;} else {a3 = s2; b3 = b2;};
m3 = (f(b3)-f(a3))/(b3 - a3);
s3 = a3 - f(a3)/m3;
print s3;
-4.00014094678986900281
CAP
ITULO 2. RA
IZES APROXIMADAS 53
if (f(a3)*f(s3) <= 0 ) { b4 = s3; a4 = a3;} else {a4 = s3; b4 = b3;};
m4 = (f(b4)-f(a4))/(b4 - a4);
s4 = a4 - f(a4)/m4;
print s4;
-4.00001637370536391669
A nota cao matem atica tem que passar por pelas quatro sucess oes
(a
n
)
n
, (b
n
)
n
, (m
n
)
n
, (s
n
)
n
que ir ao denir os novos sub-intervalos que iremos encontrar.
A nota cao computacional nos permite calcular as razes, com um programa,
e a nota cao matem atica nos permite provar que ela existe.
S ao duas coisas distintas e somente podemos rodar programas se pudermos
provar que eles chegarao em algum resultado. O contr ario e in ocuo.
No captulo 0 vamos discutir melhor os metodos matem aticos que determi-
nam as razes dentro de um quadro mais geral. Todos os metodos que estamos
usando aqui sao recursivos e o o captulo 0 vai discutir recursividade. Claro,
voce pode, e deve, chegar ate o o captulo 0 agora para entender melhor o que
estamos fazendo e come car a ler sobre este outro assunto. O livro est a departa-
mentalizado por uma quest ao de organiza cao, mas voce nao precisa car preso
a estas paredes.
Vou transformar o metodo matem atico no algoritmo computacional, ate
mesmo porque voce podera rodar o algoritmo e isto lhe servir a de motiva cao
para entender melhor o metodo matem atico.
O algoritmo do metodo da secante
Comece analisando a gura (2.6) p agina 54, que e um uxograma, um planeja-
mento visual que fazemos antes de escrever um programa.
No centro da gura (2.6) voce pode observar um caminho, indicado pelas
seta que sai do diamante que representa o teste de parada do programa
|f(a)| > epsilon (2.61)
que e uma mistura de Matematica e computa cao.
Numa linguagem de computa cao deveria
6
estar
(abs(f(a)) > epsilon)
Tambem n ao aparecem s
n
porque numa linguagem de programa cao os valores
se encontram em mem orias cujos endere cos est ao associados a vari aveis, e e isto
que o programador deve ver os nomes das vari aveis (e n ao o endere co onde os
dados est ao guardados).
6
em Pascal a fun c ao valor absoluto e abs(), em C e fabsf()
CAP
ITULO 2. RA
IZES APROXIMADAS 54
s a raz de r
[a,b]
f troca de sinal em
| f(a) | > epsilon
V F
a a raz
aproximada
com erro epsilon
Mtodo da secante
m = (f(b)f(a))/(ba)
r(x) = f(a) + m(x a)
f(s)f(a)<=0
V
F
b=s
a=s
Figura 2.6: Fluxograma - metodo da secante
Entramos no algoritmo quando descobrimos que ha uma troca de sinal no
intervalo [a, b] e calculamos, sucessivamente, m, r(x), s.
Somos levados agora ao teste que vai decidir em que intervalo ha nova
troca de sinal
f(s)f(a) <= 0 (2.62)
Um novo intervalo, onde se verica a troca de sinal, e calculado:
O teste resultando em verdadeiro o programa vai colocar o valor s
na mem oria apontada pela variavel b.
Se o teste resultar em falso o programa vai colocar o valor s na
mem oria apontada pela variavel a.
Neste escolha a vari avel que nao foi usada ca com o seu valor primitivo.
Este novo intervalo continua sendo designado por [a, b] e se o teste de
parada do algoritmo, na equa cao (62), resultar em verdadeiro novo ciclo
vai ser efetuado. Se for falso signica que a precisao esperada ja foi
atingida e portanto o algoritmo para.
CAP
ITULO 2. RA
IZES APROXIMADAS 55
O programa escolhe quem vai ser indicada como raz aproximada, se e a,
ou s ou b, ou como em alguns dos nossos programas
a +b
2
pura quest ao de gosto do programador. Se o programador for mais exi-
gente aplicaria o teste da (62) a estes quatro candidatos para escolher
aquele que ofere ca uma precisao maior.
Matematica do Metodo da secante
Vamos repetir de forma suscinta, tanto os calculos matem aticos como o algo-
ritmo computacional nesta se cao e na pr oxima.
Para construir a formula cao matem atica do metodo, vou mais uma vez re-
tomar a sequencia de equa coes em que calculei a raiz, alterando novamente a
nota cao. Repetindo (e alterando a nota cao) temos:
[a, a + x] = [a
0
, b
0
] (2.63)
x
0
= b
0
a
0
(2.64)
m
0
=
f(b0)f(a0)
x0
(2.65)
y f(a
0
) = m
0
(x a
0
) (2.66)
y = f(a
0
) +m
0
(x a
0
) (2.67)
y = 0 s
0
= a
0
f(a0)
m0
(2.68)
a primeira vers ao da raz aproximada que achamos foi
s
0
= a
0
f(a
0
)
m
0
(2.69)
Agora determinamos em qual dos sub-intervalos h a troca de sinal (se houver
nos dois
7
, o programa tera que se lembrar disto para fazer nova busca no outro
interval):
f(a
0
)f(s
0
) 0 ; f(s
0
)f(b
0
) 0 (2.70)
Vou simplicar a reda cao sob a suposi cao de que apenas um destes produtos
e negativo (mas ca claro que e uma simplica cao e que o programa tem que ir
em busca da outra possibilidade).
se (f(a
0
)f(s
0
) 0)[a
1
, b
1
] = [a
0
, s
0
] (2.71)
senao [a
1
, b
1
] = [s
0
, b
0
] (2.72)
7
observe que isto signica que h a mais de uma raiz no intervalo
CAP
ITULO 2. RA
IZES APROXIMADAS 56
o que nos levar a a denir m
1
e s
1
[a
1
, b
1
] (2.73)
x
1
= b
1
a
1
(2.74)
m
1
=
f(b1)f(a1)
x1
(2.75)
y f(a
1
) = m
1
(x a
1
) (2.76)
f(a
1
) = m
1
(x
1
a
1
) (2.77)
s
1
= a
1
f(a1)
m1
(2.78)
(2.79)
achamos assim a segunda vers ao da raz aproximada
s
1
= a
1
f(a
1
)
m
1
(2.80)
Podemos provar, usando indu cao nita, que
s
n
= a
n
f(a
n
)
m
n
(2.81)
denindo as quatro sucess oes,
a
k
, b
k
, m
k
=
f(b
k
) f(a
k
)
b
k
a
k
, s
k
= a
k
f(a
k
)
m
k
(2.82)
Algoritmo do Metodo da secante
A nota cao computacional e mais simples. Vamos usar a mesma tecnica, copiando
a equa cao e alterando a nota cao. Repetindo (e alterando a nota cao) temos.
Simplesmente chamamos de [a, b] o intervalo onde foi detectada a troca de
sinal
[a, b] e o intervalo onde ha troca de sinal (2.83)
m =
f(b)f(a)
ba
(2.84)
y f(a) = m(x a) (2.85)
y = 0 x a =
f(a)
m
(2.86)
x = a
f(a)
m
(2.87)
a raz aproximada que estamos procurando, no primeiro passo e
x = a
f(a)
m
(2.88)
e agora tomamos a decis ao sobre a nova troca de sinal
CAP
ITULO 2. RA
IZES APROXIMADAS 57
f(a)f(x) 0 [a, b] = [a, x] (2.89)
f(x)f(b) 0 [a, b] = [x, b] (2.90)
e seguimos no la co com as vari aveis tendo assumido os novos valores. Sera
preciso um condicional para que o processo pare. Isto pode ser feito de duas
maneiras:
com um contador estipulando-se o n umero m aximo de itera coes;
testando em cada passo a precisao da raiz aproximada obtida.
O programas raizes013.c faz isto e mais a frente vamos oferecer-lhe uma
lista de exerccios voltada para fazer experimentos com o programa.
2.4 A raiz num ponto de tangencia
Vamos agora estudar como podemos descobrir a raiz quando ela for um ponto em que a
fun c ao tangencia o eixo OX. O metodo consiste em usar a troca de sinal da derivada. Vou
come car mostrando alguns exemplos gr acos para ilustrar as diculdades 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 gura (g. 2.5) p agina 48 e a referencia para as experiencias que vamos
come car fazendo, nela h a uma raiz num ponto de tangencia do gr aco com o
eixo OX e o objetivo e produzir um programa que consiga descobrir esta raiz.
Exerccios 7 Usando raizes011.c
1. Edite o programa raizes011.c e escolha a fun c ao
f(x) = (x + 3)(x + 3)(x 2)
que pode estar desligada (com o smbolo de coment ario) na vers ao que
voce tiver do programa. Depois compile e rode o programa com os valores
pre-denidos que ele tem (de enter em todas as perguntas do programa).
Analise o resultado.
2. Rode novamente o programa usando os valores pre-determinados, entre-
tanto responda com o valor 0.1 para a precis ao (quando o programa
solicitar o valor da vari avel epsilon). Observe que o resultado cou di-
ferente.
3. Rode novamente o programa usando os valores pre-determinados, mas es-
colha um valor grande para a norma da parti c ao. Sugest ao x = 1.
CAP
ITULO 2. RA
IZES APROXIMADAS 58
Comentando os resultados do programa nas experiencias que voce fez usando
os valores pre-deteminados no programa.
Quando = x o programa encontrou diversas razes que na verdade re-
presentam a mesma raiz exata x = 3. Veja uma replica dos resultados
do programa captados
8
por um editor de textos:
Forneca-me o intervalo [a,b] para busca de raizes:
a =
b =
Forneca-me o passo delta da malha para a busca:
Sugest~ao 0.01 < delta < 0.5
delta =
Forneca-me o erro epsilon (modulo maximo) :
Sugest~ao 0.01 < epsilon < 0.5
epsilon =
Sua busca de razes no intervalo [-5.000000 , 5.000000]
Precis~ao da malha: 0.100000
Erro (modulo maximo): 0.100000
=================================================
Aperte <enter> para continuar
Raz provavel da func~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
Raz provavel da func~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
Raz provavel da func~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
Estas razes representam todas a raiz x = -3 - sao valores proximos de 3
que o programa captou. Achou tambem a raiz x = 2
Raz provavel da func~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 representa cao para cada uma das razes existentes:
8
o editor de textos joe, permite que voce rode programa dentro dele e consequentemente
pode captar os resultados do programa
CAP
ITULO 2. RA
IZES APROXIMADAS 59
Forneca-me o intervalo [a,b] para busca de raizes:
a =
b =
Forneca-me o passo delta da malha para a busca:
Sugest~ao 0.01 < delta < 0.5
delta = 0.3
Forneca-me o erro epsilon (modulo maximo) :
Sugest~ao 0.01 < epsilon < 0.5
epsilon = 0.1
Sua busca de razes no intervalo [-5.000000 , 5.000000]
Precis~ao da malha: 0.300000
Erro (modulo maximo): 0.100000
=================================================
Aperte <enter> para continuar
Raz provavel da func~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
Raz provavel da func~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 verique se a fun c ao escolhida e f(x) =
(x + 3)(x + 3)(x 2). Se n ao for selecione
9
esta fun c ao cujo gr aco e
semelhante ao da gura (g. 2.5).
2. Leia o programa raizes012.c. Ele e uma altera c ao de raizes011.c.
Leia tambem os coment arios dentro do programa. Compile e rode o pro-
grama usando os valores predenidos no programa. O programa escolhe,
ele mesmo, o valor da precis ao , verique isto. Veja o coment ario (41)
do programa, veja como foi calculado .
3. O programa, como os valores pre-denidos, encontrou as razes 3, 2.
Teste o programa com valores diferntes para a norma da malha.
4. Rode raizes012.c alterando a equa c ao de f para f(x) = (x 1)
2
(1 +
7(x + 1)
2
). Observe que esta equa c ao 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 co-
ment ario // na frente, n ao precisa apagar
CAP
ITULO 2. RA
IZES APROXIMADAS 60
5. Teste o programa com outras equa c oes e nestes casos altere o intervalo de
busca. Isto pode ser feito dentro do programa ou respondendo ` as perguntas
que o programa zer.
Vamos entender o metodo utilizado no programa raizes012.c. Num ponto
de tangencia com o eixo OX a derivada troca de sinal e podemos nos aproveitar
disto para encontrar a raiz evitando a perigosa compara cao
|f(x)| < . (2.91)
Analise a gura (g. 2.7), p agina 60. Vamos tirar algumas informa coes desta
gura.
No ponto a temos uma raz do tipo tangente,
e marcamos dois pontos, a, a+, anterior e posterior
10
, ao ponto a,
zemos os gr acos das retas tangentes em (a, f(a)), e (a+, f(a+)).
f
a
a
a+
reta tangente positivo
O coeficiente angular da
reta tangente negativo
O coeficiente angular da
Figura 2.7: Num ponto de tangencia, tipo parab olico
Voce pode ver que antes e depois do ponto de tangencia, o coeciente
angular da reta tangente tem sinais diferentes:
sinal(
a
(f)) = sinal(
a+
(f)) (2.92)
sinal(
f
x
|
a
) = sinal(
f
x
|
a+
) (2.93)
10
a, a+ s ao nota c oes padr ao em Matem atica para representar pontos anterior e posterior
ao ponto a
CAP
ITULO 2. RA
IZES APROXIMADAS 61
Como x > 0 entao
11
podemos comparar apenas os numeradores
12
. Ana-
lisaremos apenas os produtos dos n umeradores, o produto de dois valores
sucessivos de f ao longo da varredura. Estamos evitando os quocientes:
f
(a) f
(a + ) < 0 (2.94)
para vericar se e um ponto de tangencia de tipo parabolico.
Se for uma tangencia do tipo ponto de inex ao o programa continuara
fazendo o teste de troca de sinal de f.
Caracterizamos estes dois tipos de razes, veja a gura (g. 2.5), como
raiz tangente, e o que acontece no ponto x
1
em que o gr aco da fun cao
tangencia o eixo OX;
raiz secante, e o que acontece no ponto x
2
em que o gr aco da fun cao
corta o eixo OX. Fica includa, aqui o caso de tangente com ponto de
inex ao.
raiz tangente - num ponto de inex ao vamos trat a-lo como um ponto de
sec ancia porque nele a fun cao troca de sinal.
Vamos agora observar o que acontece no gr aco representado na gura (g.
2.8) p agina 62,
Neste gr aco a gura nos mostra dois pontos em que a derivada se anula,
mas apenas o ponto x
2
e o que nos interessa.
Entao foi preciso incluir no programa raizes012.c um teste complementar
ao teste de troca de sinal da derivada.
Tanto em x
1
, como em x
2
, na (g. 2.8), a derivada troca de sinal. Mas
apenas em x
2
a fun cao e pequena.
Este e o resultado do exerccio em que lhe foi pedido que rodasse o programa
com a fun cao
f(x) = (x 1)
2
(1 + 7(x + 1)
2
).
O gr aco desta fun cao se assemelha ao gr aco na gura (g. 2.8). Voce pode
obter este gr aco usando Gnuplot, n ao se esque ca de usar o comando
set xrange [-4:3]
para instruir Gnuplot a considerar o gr aco sobre o intervalo [4, 3] am de que
voce consiga ver alguma coisa interessante. Se voce n ao zer isto ele vai usar o
intervalo padr ao, [10, 10].
Vimos assim o metodo para separar estas duas situa coes dentro de uma
an alise autom atica (dentro de um programa). O algoritmo ir a fazer os dois testes
em cada ponto da varredura, ir a aceitar o ponto x
2
como uma raiz aproximada
e descartar o ponto x
1
. Estamos nos referindo ainda ` a gura (g. 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 voce tem a tecnica prometida no captulo das derivadas, em vez de usarmos derivada,
estamos usando derivada aproximada
CAP
ITULO 2. RA
IZES APROXIMADAS 62
x
x
1
2
A derivada se anula
no ponto x mas ele no
1
uma raiz
Aqui a derivada se anula
e tambm uma raiz
Figura 2.8: Quando a derivada e zero
Exerccios 9 1. Leia o programa raizes013.c e identique onde o pro-
grama verica a troca de sinal de f e da derivada.
2. Rode o programa com cada uma das tres fun c oes denidas no programa.
Com os dados pre denidos os resultados n ao s ao muito bons, aumente a
precis ao da malha em experiencias sucessivas.
3. Dena novas func oes para testar o programa.
2.5 O metodo da tangente
Vamos estudar o metodo da tangente para determina c ao aproximada da raz de uma fun c ao.
Evite confundir-se, nas se c oes 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 metodo da
tangente para determinar razes.
E natural observar, pese o trocadilho, que o metodo da tangente serve para encontrar razes
(do tipo) tangente. . .
S ao duas coisas diferentes os tipos como classicamos as raizes, tangente, secantes e os
metodos cl assicos, com estes nomes, para determinar razes, metodo da tangente, que vamos
estudar agora e metodo da secante que usamos rapidamente na se c ao anterior. Come caremos
por mostrar as limita c oes do metodo. A crtica se encontra no contexto, ao iniciarmos o
captulo chamamos sua aten c ao para a diculdade de resolver o problema que nos ocupa
aqui, estamos apenas ressaltando, em cada momento as diculdades que aparecem.
O plano do trabalho:
CAP
ITULO 2. RA
IZES APROXIMADAS 63
Come caremos mostrando um exemplo em que o metodo funciona,
depois um exemplo em que ele n ao pode funcionar.
Vamos transformar o metodo em um programa de computador e encontrar
algumas razes. Voce podera rodar o programa e experimentar o resultado.
Finalmente vamos discutir em que condi coes (hip oteses) o metodo da tan-
gente pode ser aplicado e um programa de computador em que ele e usado
intensivamente junto com o metodo da secante.
2.5.1 Como funciona o metodo das tangentes
Veja as guras (g. 2.9) p agina 63 que nos mostram como funciona o metodo.
f
raz exata
raz aproximada
obtida por uma tangente
A raz
exata
esta
Razes aproximadas
por retas tangentes
f
Figura 2.9: Uma sequencia de retas tangentes...
CAP
ITULO 2. RA
IZES APROXIMADAS 64
Com uma sequencia de retas tangentes vamos encontrar uma sequencia de
pontos x
0
, x
1
, . . . que se aproximam de uma raz, a sequencia converge para a
raz da fun cao f.
Descri cao do metodo:
Ponto inicial Escolhemos um ponto inicial x
0
e nele tra camos uma reta
tangente ao gr aco de f;
Ponto inicial o metodo somente se aplica em razes do tipo secante ou
do tipo tangente portanto temos que encontrar um intervalo em que haja
troca de sinal de f ou de f
. O ponto inicial a
0
e um dos extremos deste
intervalo de troca de sinal;
Segundo ponto Escrevemos a equa cao da reta tangente em (a
0
, f(a
0
)) e
cuja raiz encontramos, este e o ponto s
0
da sucessao;
Iteramos o processo, tra cando a reta tangente ao graco de f no ponto
(s
0
, f(s
0
)), resolvendo a nova equa cao do primeiro grau correspondente a
esta nova reta tangente encontrando assim s
2
, s
3
, . . . , s
n
A sucess ao (s
n
)
n>0
converge para uma raiz de f
s
n
s a raz exata (2.95)
f(s
n
) f(s) = 0 (2.96)
f(s
n
) 0 (2.97)
e s
n
e uma raiz aproximada de f.
No algoritmo, que acabamos de descrever, usamos a expressao escolhemos
um ponto inicial. Estamos fazendo uso de uns do metodos mais controversiais
da Matematica, a escolha. Controversial porque funciona e tambem porque
envolve uma dos problemas abertos da Matematica, o axioma da escolha.
Como escolher um elemento pr oximo de um ponto desconhecido ? Em algu-
mas circunstancias podemos provar que o metodo funciona.
2.5.2 E quando o metodo nao funciona ?
Mas vamos logo ver quando deixa de funcionar. Na gura (g. 2.10) pagina 65,
Consideramos a reta tangente no (A, f(A)); A raiz da reta tangente em A
e B;
Esta reta tangente tem como raiz o ponto x = B
Consideramos entao a reta tangente no ponto (B, f(B)) corta o eixo OX
no ponto x = A e a raiz da reta tangente em B e A ...
CAP
ITULO 2. RA
IZES APROXIMADAS 65
f
A B
A raiz da reta tangente em A B
a raiz da reta tangente em B A ...
Figura 2.10: Duas tangentes se reproduzindo indenidamente
Vemos que caimos num circulo vicioso. O programa que zermos caira em
loop innito.
Obviamente este e um exemplo raro de acontecer, ele apenas mostra que
o risco existe e uma interven cao do usuario do programa pode prevenir contra
este acontecimento com uma troca do ponto inicial. No intervalo que a gura
(2.10) exibe o problema, podemos escolher um ponto inicial diferente de A ou
B para evitar o ciclo vicioso.
E preciso incluir no programa um teto de opera coes que ao ser atingido sem
sucesso o programa sugira ao usuario alterar um pouco um dos extremos do
intervalo inicial. Voce pode ver na gura (g. 2.10) p agina 65 que uma alter cao
no valor de A faz com que a sucess ao dos zeros das retas tangentes convirja para
uma das razes.
2.5.3 Funciona com precisao, se funcionar
Considere o ponto a escolhido para tra carmos a reta tangente por (a, f(a))
A equa cao da reta tangente sendo
a
0
= a = s
0
(2.98)
y f(a
0
) = f
(a
0
)(x a
0
) (2.99)
y = 0 s
0
= a
0
f(a0)
f
(a0)
= T(a
0
) = T(s
0
) (2.100)
s
1
= s
0
f(s0)
f
(s0)
= T(s
0
) s
2
= s
1
f(s
1
)
f
(s
1
)
= T(s
1
) = T(T(s
0
)) (2.101)
(2.102)
CAP
ITULO 2. RA
IZES APROXIMADAS 66
podemos ver que a lei de forma c ao dos elementos da sucessao e
s
n
= s
n1
f(s
n1
)
f
(s
n1
)
= T
n
(s
0
) (2.103)
em que na equa cao (103) a potencia aplicada no operador T representa
repeti cao do operador aplicado no ponto inicial. Seria interessante fazer
uma primeira leitura do captulo 0, se voce ainda nao tiver feito isto, para
reconhecer que estamos lidando com expressoes recursivas.
Assim,
cada nova raz da fun cao do primeiro grau tangente, se expressa sem-
pre da mesma maneira usando a anterior,
a potencia da transforma cao T, indica o n umero de vezes que
ela foi aplicada ao ponto inicial a, fun c ao de fun c ao.
E o que chamamos de itera c oes de T. Na equa cao (eq. 103) se esta
indicando que calculamos a terceira iterada de T.
Falta-nos provar que a sucessao assim obtida se aproxima da raz exata,
ou tem algum limite.
Este e um exemplo de recursividade, semelhante ao que vamos usar no calculo
de razes, na busca binaria. .
Vamos discutir recursividade no captulo 0.
O metodo Matematico para obter demonstra coes passa pela abstra c ao das
expressoes. Suponhamos que a sucessao produzida pelas iteradas de T seja
convergente (tenha limite) e chamemos este limite de b.
Como T e uma fun cao contnua em qualquer intervalo em que a derivada de
f n ao se anule, (vamos admitir esta hipotese) temos
x
n+1
= T(x
n
) b (2.104)
como T e contnua T(b) = b = b
f(b)
f
(b)
(2.105)
b = b
f(b)
f
(b)
f(b)
f
(b)
= 0 (2.106)
como por hipotese f
ITULO 2. RA
IZES APROXIMADAS 67
T(b) T(a) = T
(x
0
)||x
1
x
0
| +o(|x
1
x
0
|) (2.110)
|x
3
x
2
| = |T(x
2
) T(x
1
)| = |T
(x
1
)||x
2
x
1
| +o(|x
2
x
1
|) (2.111)
(2.112)
|x
n
x
n1
| = |T(x
n1
) T(x
n2
)| = (2.113)
= |T
(x
n2
)||x
n1
x
n2
| +o(|x
n1
x
n2
|) (2.114)
Na (eq. 109) aplicamos a f ormula de aproxima cao linear pela derivada.
Na (eq. 110) voltamos a usar a mesma aproxima cao, mas agora, e sucessiva-
mente, nas seguintes, estamos aplicando aos elementos que foram sendo obtidos
pela itera cao do metodo das tangentes.
Como queremos que a sucess ao seja convergente, e portanto que a distancia
entre dois novos pontos seja cada vez menor, vamos impor uma semelhan ca com
as series geometricas.
Vemos que a cada dois novos pares de pontos da sucess ao surge como multi-
plicador T
(x)
(2.115)
|T
(x)| = |
f(x)f
(x)
f
(x)
2
| (2.116)
(2.117)
A fra cao racional que aparece como derivada de T tem polinomios de mesmo
grau no denominador e no denominador: 2n 2 em que n e o grau de f com
termos lider igual
n(n 1)a
2
n
x
2n2
; n
2
a
2
n
x
2n2
(2.118)
respectivamente, no numerador e no denominador. Portanto, exceto no pontos
em que o denominador se anule e numa vizinhan ca destes pontos, a derivada
e menor do que 1 em m odulo o que far a que com que o metodo da tangente
produza iteradas que convirjam para uma raz, se alguma houver.
Demonstramos assim
Teorema 1 Metodo da tangente
Se f for uma fun c ao polinomial de grau maior do que 2, as iteradas de
T(x) = x
f(x)
f
(x)
convergem para uma raz de f
Infelizmente n ao podemos aplicar o metodo arbitrariamente. Ele tem que ser
monitorado, j a vimos um exemplo gr aco mostrando que nem sempre o metodo
funciona.
CAP
ITULO 2. RA
IZES APROXIMADAS 68
Exemplo 4 Iteradas do metodo da tangente
Dentro do Gnuplot voce pode executar a sequencia de comandos abaixo. O
resultado ser a o gr aco das sucessivas retas tangentes cujas razes se aproximam
da raz x = 1 de
f(x) = x
3
+ x
2
+x + 1
set xrange [-3:3]
f(x) = x**3 + x**2 + x + 1
df(x) = 3*x**2 + 2*x + 1
a = -2.0
reta(x) = f(a) + df(a)*(x-a)
plot reta(x),f(x),0
pause -2
a = a - f(a)/df(a) // calculo de novo valor para a
plot reta(x),f(x),0
pause -2
a = a - f(a)/df(a) // calculo de novo valor para a
plot reta(x),f(x),0
pause -2
a = a - f(a)/df(a) // calculo de novo valor para a
plot reta(x),f(x),0
pause -2
a = a - f(a)/df(a) // calculo de novo valor para a
plot reta(x),f(x),0
pause -2
a = a - f(a)/df(a) // calculo de novo valor para a
plot reta(x),f(x),0
pause -2
Os valores de a para seis iterac oes, s ao:
-2
-1.44444444444444444444
-1.13057124921531701193
-1.01497995228090965490
-1.00022106301976068486
-1.00000004885805680258
onde vemos o valor 1.00000004885805680258 para raz aproximada de
f(x) = x
3
+x
2
+x + 1; f(1) = 0 (2.119)
Veja outra iterac ao, em que usamos como ponto inicial x = 20
CAP
ITULO 2. RA
IZES APROXIMADAS 69
-20
-13.43755383290267011197
-9.05962558919570544190
-6.13716679398553077204
-4.18447916859825334681
-2.87926553135386543847
-2.01119102134060700997
-1.45135929223981982374
-1.13389377376757093773
-1.01570113608729869728
-1.00024268578025712329
-1.00000005888209635796
e vemos que novamente o algoritmo produz uma sucess ao convergindo para a
raiz x = 1. Estas duas sequencias foram obtidas com calc e o programa
e o seguinte em que uma fun c ao recursiva, principal() est a se chamando a
si pr opria enquanto o par ametro p for estritamente positivo. Quando p = 0 o
processo para. Copie esta sequencia em um arquivo, por exemplo, raizes.calc
e depois chame
calc < raizes.calc
e voce poder a repetir a experiencia feita acima. Troque a equa c ao da fun c ao
para calcular razes de outras fun c oes.
define principal(a,p)
{
if (p) {printf("%f \n",a);principal(T(a),p-1);}
}
define f(x){return x**3 +x**2 +x +1;}
define df(x){return 3*x**2 + 2*x + 1;}
define T(x) {return x - f(x)/df(x);}
principal(-2,10);
quit;
Na pen ultima linha se encontra o comando que bota o programa para rodar:
principal(-2,10). O primeiro par ametro, a = 2 e o ponto inicial, e o
segundo par ametro, p = 10 e o n umero de itera c oes que desejarmos.
Troque a equa c ao de f e de sua derivada df e repita a experiencia com outra
fun c ao. Logo no primeiro passo voce ver a se o processo conduz, ou n ao a alguma
raz.
Experimente
f(x) = x
2
+ 1
CAP
ITULO 2. RA
IZES APROXIMADAS 70
que n ao tem razes reais. Use um n umero de pequeno de itera c oes, 10 no
m aximo.
2.6 Busca binaria
Vamos estudar aqui o metodo busca binaria para determina cao de razes.
A busca bin aria e um metodo matematico antigo, o matematico Dedekind
o utilizou para denir n umeros reais, os chamados cortes de Dedekind, que
consistem em dividir a reta racional em duas semi-retas, numa se encontra o
ponto
13
(n umero real desejado) e assim sucessivamente vai sendo dividido o
conjunto Q dos n umero racionais ate se obter uma aproxima cao desejada de um
n umero real (ou uma sucess ao convergente).
Vamos usar esta ideia para produzir uma sucessao de razes aproximadas
convergindo para uma raiz de f.
Precisamos encontrar um intervalo em que f troque sinal e o processo e
muito semelhante ao do metodo da reta secante.
Descri cao matem atica do metodo:
Suponha que que no intervalo [a, b] = [a
0
, b
0
]
Hipotese 1 Existencia de raz em um subintervalo
f troque de sinal,
ou f
ITULO 2. RA
IZES APROXIMADAS 71
Itere o processo para obter o pr oximo intervalo;
O resultado deste processo e uma sucess ao de intervalos cuja medida ser a
sempre a metade do anterior, tendo partido de um intervalo de medida
r = b a = b
0
a
0
b a = b
0
a
0
= r (2.123)
m([a
0
, b
0
]) = r (2.124)
m([a
1
, b
1
]) =
r
2
(2.125)
.
.
. (2.126)
m([a
n
, b
n
]) =
r
2
n
0 (2.127)
sendo esta uma convergencia muito rapida porque e dominada por progress ao
geometrica de razao
1
2
. Veja abaixo o poder decrescente de uma progress ao
geometrica num calculo executado por calc
C-style arbitrary precision calculator (version 2.11.10.1)
Calc is open software. For license details type: help copyright
[Type "exit" to exit, or "help" for help.]
; define f(n,r) {return r*power(1/2, n);}
f(n,r) defined
; r = 3
; k = 10
; for(n=0; n<= k; n++) {printf("%d --> %f \n", n, f(n,r));}
0 --> 3
1 --> 1.5
2 --> 0.75
3 --> 0.375
4 --> 0.1875
5 --> 0.09375
6 --> 0.046875
7 --> 0.0234375
8 --> 0.01171875
9 --> 0.005859375
10 --> 0.0029296875
;
na decima iterada, partindo de um intervalo de medida tres j a estamos com
um intervalo de medida 0.0029296875 e portanto j a teriamos uma aproxima cao
da raiz com esta precisao. Como em geral vamos procurar mudan cas de sinal
usando intervalos de medida 0.1 na decima iterada j a teriamos um intervalo me-
dindo 0.00009765625 consequentemente nos oferecendo a raiz com esta precisao.
CAP
ITULO 2. RA
IZES APROXIMADAS 72
Exemplo 5 C alculo de uma raiz
Considere a func ao
f(x) = x
3
+ x
2
+x + 1 (2.128)
que tem uma unica raiz no ponto x = 1, veja isto fazendo o gr aco desta fun c ao
com Gnuplot. Coloque set xrange [-2:2] para obter um gr aco mais ntido.
Vou chamar Calc
C-style arbitrary precision calculator (version 2.11.10.1)
Calc is open software. For license details type: help copyright
[Type "exit" to exit, or "help" for help.]
define f(x) {return power(x,3) + power(x,2) + x + 1}
f(x) defined
define busca_binaria(a,b,n){
local x = (a+b)/2;
if (n==0) {printf("%f \n",x); return x;}
else
if (f(a)*f(x) ==0) return x;
else if (f(a)*f(x) < 0) busca_binaria(a,(a+b)/2,n-1);
else busca_binaria((a+b)/2,b,n-1);}
busca_binaria(a,b,n) defined
; busca_binaria(-3,3,10);
-0.9990234375
; busca_binaria(-3,3,20);
-0.99999904632568359375
busca_binaria(-1.1,-0.9,3)
-1
quit;
observe que no ultimo c alculo usamos um intervalo de medida 0.2 e a busca
bin aria encontrou a raiz com 3 itera c oes. N ao acredite que buscas bin arias
encontrem razes exatas... este e um resultado muito bom. Use as deni c oes
expostas acima, em Calc para construir outros exemplos.
Exemplo 6 As razes de (x 3)
2
(x + 3)sin(
x
x
2
+1
)
O programa raizes014.c procura razes usando busca bin aria nos pontos de
sec ancia e analisa a troca de sinal da derivada nos pontos de tangencia. Veja o
resultado do programa procurando as razes de
f(x) = (x 3)
2
(x + 3)sin(
x
x
2
+ 1
) (2.129)
no intervalo [10, 10] em que h a tres razes:
Raizes aproximadas - metodos da secante e tangente
CAP
ITULO 2. RA
IZES APROXIMADAS 73
Forneca-me o intervalo [a,b] para busca de raizes:
a = -10.000000
b = 10.000000
Forneca-me o passo da malha para a busca:
Sugestao 0.01 < delta < 0.5
delta = 0.050000
busca de raizes no intervalo [-10.000000, 10.000000]
Precisao da malha 0.050000
=================================================
Aperte <enter> para continuar
Raiz, por busca binaria, provavel, da func~ao no intervalo
[-3.049978, -2.999978]
valor de f no ponto -10.728836 --> 134.416962
Raiz, por busca binaria, provavel, da func~ao no intervalo
[-0.049980, 0.000020]
valor de f no ponto 27.644634 --> 672.242493
Raiz, por tang^encia, provavel, da func~ao no intervalo
[2.950018, 3.000018]
valor de f no ponto 2.975019 --> 0.001109
Encontrei 3 intervalos onde ha raizes
este resultados foram captados pelo editor Joe dentro do qual eu rodei uma
vers ao compilada do programa raizes014.c.
Observa cao 4 Ponto xo e busca bin aria
Neste captulo estudamos o problema
f(x) = 0 (2.130)
resolver uma equa coes.
Fomos omissos em n ao dizer que tudo que zemos vale para fun c oes polino-
miais. Na verdade sabemos que vale para fun c oes n ao polinomiais tambem, mas
com algumas restri c oes. Por exemplo, a demonstra c ao que zemos do metodo
das tangentes usou que a fun c ao, cujas razes procuravamos, era polinomial.
Sem d uvida sabemos um pouco mais sobre o assunto do que antes de iniciar
o captulo, sobre tudo sabemos que n ao e f acil resolver-se uma equa c ao. Alge-
bricamente, as equa c oes polinomiais somente podem ser resolvidas com radicais
ate o grau quatro. Mesmo as equa c oes do grau tres e quatro oferecem razo aveis
diculdade para que as resolvamos usando as f ormulas algebricas. Com um pro-
grama de computador, e com um monitoramento adequado do mesmo podemos
ir bem mais longe.
Como dissemos no incio do captulo, o nosso objetivo era tomar o problema
de resolu c ao de equa c oes como motiva c ao para o estudo de algumas tecnicas
matem aticas e seus correspondentes algoritmos computacionais.
Estudamos assim os metodos cl assicos para determinac ao de razes,
CAP
ITULO 2. RA
IZES APROXIMADAS 74
1. o metodo da secante;
2. o metodo da tangente;
aos quais associamos a tecnica computacional varredura.
Tambem estudamos dois metodos matem aticos (e a correspondente imple-
mentac ao computacional)
1. busca bin aria;
2. sucess oes recursivas;
3. ponto xo.
O metodo do ponto xo e muito mais profundo do que nos foi possvel dis-
cutir aqui. Tudo que zemos foi partir da hip otese de convergencia e usando a
continuuidade de uma func ao fomos conduzidos a que o limite satisfaz ` a equa c ao
T(b) = b (2.131)
Um ponto de T satisfazendo esta equa c ao, se chama ponto xo .
Os pontos xos sempre aparecem nas iteradas de uma fun c ao e sempre usa-
mos esta propriedade para resolver equa c oes. Relembre aqui o que j a dissemos
no incio do captulo, estamos usando o problema para estudarmos tecnicas que
tem valor por si pr opria.
Esta e uma delas, construir iteradas para encontrar pontos xos que s ao
soluc oes de equac oes.
Esta tecnica e usada largamente na constru c ao de solu c oes aproximadas de
equac oes diferenciais. N os dedicaremos, ao nal do livro, um captulo ` a in-
troduc ao deste assunto, onde voltaremos a usar o metodo do ponto xo para
resolver estas equac oes.
2.7 O problema completo
O ttulo e audacioso, problemas completos dicilmente existem. O que vou fazer
e juntar os peda cos, as discussoes feitas nas se coes anteriores, numa discussao
nal e apresentar-lhe um programa que faz todas estas analises conjuntamente.
O problema de busca de razes, na forma como o estudamos aqui, separa as
razes em dois tipos,
razes do tipo tangente, que na verdade se classicam algebricamente como
razes m ultiplas porque, numa vizinhan ca da raiz a fun cao pode ser fato-
rada como
f(x) = (x a)
n
g(x) ; g(a) = 0 (2.132)
CAP
ITULO 2. RA
IZES APROXIMADAS 75
em que n e o ndice de multiplicidade da raiz e um n umero par. Se n for
par ser ao estas razes que estou classicando aqui como do tipo tangente,
n ao h a troca de sinal em alguma vizinhan ca da raiz;
razes do tipo secante podemos usar a nota cao do item anterior e dizer que
f(x) = (x a)
n
g(x) ; g(a) = 0 (2.133)
comn impar. Neste caso h a troca de sinal da fun cao em alguma vizinhan ca
da raiz e podemos usar os metodos cl assicos:
busca de razes pelo metodo da secante;
busca de razes pelo metodo da tangente;
busca bin aria. Este metodo, a busca binaria, pode ser usado quando
a multiplicadade da raiz for par, mas eu n ao usei este metodo no
programa.
O programa raizes015.c faz isto salientando qual foi o metodo que ele
escolheu em cada raiz.
Testamos o programa com diversas fun coes com bons resultados, mas lhe
entregamos tambem o c odigo fonte no modo habitual de programa cao aberta.
Se voce melhorar o programa, distribua a melhor vers ao n ao 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 al-
tera coes feitas por mim. Leia e rode o programa para fazer suas experiencias.
A fun cao selecionada dentro do programa e
f(x) = (x + 3.4)
4
(x + 3)
2
(x + 2)
3
(x 1)
2
(x 3)sen(
x
x
2
+ 1
(2.134)
que n ao chega a ser uma fun cao realmente maldosa. Bastaria acrescentar um
termo como sen(3x) para deixar o programa instavel. Esta instabilidade pode
ser resolvida com uma mudan ca de vari aveis, entretanto, como eu j a disse di-
versas vezes, n ao h a 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]
CAP
ITULO 2. RA
IZES APROXIMADAS 76
Precisao da malha 0.000100
=================================================
==== Quando a derivada troca de sinal - tang^encia =====
Raiz, por tang^encia, provavel, da func~ao no intervalo
[-3.400079, -3.399979]
valor de f no ponto -3.400029 --> -0.000000
==== fim do caso troca de sinal da derivada =====
==== Quando a derivada troca de sinal - tang^encia =====
Raiz, por tang^encia, provavel, da func~ao no intervalo
[-3.000090, -2.999990]
valor de f no ponto -3.000040 --> -0.000000
==== fim do caso troca de sinal da derivada =====
============= Tr^es metodos ===========
Raiz provavel da func~ao no intervalo [-2.000017, -1.999917]
========1o metodo: por busca binaria =======
valor de f no ponto -2.000000 --> 0.000000
========2o metodo: pelo metodo da secante =========
valor de f no ponto -2.000012 --> -0.000000
========3o metodo: pelo metodo da tangente ========
valor de f no ponto -1.999998 --> 0.000000
======== fim do caso troca de sinal ========
============= Tr^es metodos ===========
Raiz provavel da func~ao no intervalo [-0.000097, 0.000003]
========1o metodo: por busca binaria =======
valor de f no ponto -0.000000 --> 0.000984
========2o metodo: pelo metodo da secante =========
valor de f no ponto -0.000000 --> 0.000000
========3o metodo: pelo metodo da tangente ========
valor de f no ponto 0.000000 --> -0.000250
======== fim do caso troca de sinal ========
==== Quando a derivada troca de sinal - tang^encia =====
Raiz, por tang^encia, provavel, da func~ao no intervalo
[0.999956, 1.000056]
valor de f no ponto 1.000006 --> -0.000006
==== fim do caso troca de sinal da derivada =====
CAP
ITULO 2. RA
IZES APROXIMADAS 77
============= Tr^es metodos ===========
Raiz provavel da func~ao no intervalo [2.999995, 3.000095]
========1o metodo: por busca binaria =======
valor de f no ponto 3.000000 --> 0.000000
========2o metodo: pelo metodo da secante =========
valor de f no ponto 3.000000 --> 0.000000
========3o metodo: pelo metodo da tangente ========
valor de f no ponto 3.000000 --> 0.000000
======== fim do caso troca de sinal ========
Encontrei 6 intervalos onde ha raizes
2.8 Interse cao de gracos
Discutimos ate agora a solu c ao do problema
f(x) = 0
mas e muito mais frequente precisarmos de resolver o problema
f(x) = g(x)
em que f, g s ao duas fun c oes dadas. Evidentemente que este problema se
reduz ao anterior, entretanto h a tecnicas especcas para resolver o segundo
problema que vamos discutir nesta se c ao.
Uma expressao da forma f(x) = g(x) pode ser escrita como
h(x) = f(x) g(x) = 0 h(x) = 0
e portanto podemos dizer que este n ao e um novo problema que estamos estu-
dando.
Mas as peculiaridades em que o problema f(x) = g(x) se encontra, ou as
aplica coes que podem ser modeladas por este problema justicam que nos lhe
demos uma aten cao diferenciada como logo voce ir a ver.
Vamos come car lendo o gr aco na gura (g. 2.11) p agina 78.
Este e um caso interessante que descreve uma gama de problemas do tipo
f(x) = g(x) ou f(x) g(x) (2.135)
Analisando o gr aco vemos:
Temos um intervalo [a, b]
f(a) = g(a) e f(b) = g(b)
f
(a) > g
(a) e f
(b) < g
(b)
c ; c (a, b) ; f
(c) = g
(c)
CAP
ITULO 2. RA
IZES APROXIMADAS 78
f
g
f(a) > g(a)
f(a) < g(a)
f(c) < g(c)
a
c
b
Figura 2.11: Interse c ao de curvas
ou seja, temos duas fun coes e algum ponto do domnio as derivadas delas se
alternam em tamanho.
Se por um momento aceitarmos a linguagem mecanica
14
diremos que pode
haver um momento em que o gr aco de g passe o graco de f porque a derivada
representa a taxa de crescimento.
Pelo teorema do valor medio tem que haver um ponto no interior do intervalo,
c (a, b), tal que neste ponto as derivadas se igualem.
Vejamos uma classe de problemas que podemos resolver com estes dados.
Exemplo 7 Conhecemos tudo sobre um dos pontos
Sabemos que
f(a) = g(a)
f
(a) > g
(a)
e podemos provar que a partir de um certo valor x = b
f
(x) < g
(x) (2.136)
ent ao e possvel encontrar outra solu c ao b > a para o problema f(x) = g(x)
Cosidere
g(x) = x (2.137)
f(x) = 2(1 e
x
) ; f
(x) = 2e
x
0 quando x cresce (2.138)
f(0) = g(0) = 0 ; f
(0) = 2 > g
(0) = 1 (2.139)
Como f
ITULO 2. RA
IZES APROXIMADAS 79
Vamos analisar o que nos diz o Teorema do Valor medio para derivadas, se
em algum ponto f
(x) = 1
f
(x) = 2e
x
= 1 e
x
=
1
2
(2.140)
e
x
= 2 x = ln(2) (2.141)
(2.142)
Temos que procurar uma raz a a partir de x = ln(2) 0.69314718 o que
faremos usando um dos nossos programas:
a = 0.69314718
b = 10
Sua busca de raizes no intervalo [ 0.693147 , 10.000000 ]
Forneca-me o passo delta da malha para a busca:
Sugestao 0.01 < delta < 0.5
delta = 0.001
Precisao da malha 0.001000
=================================================
Aperte <enter> para continuar
Procurando raizes do tipo secante
Raiz, por secancia, provavel, da funcao no intervalo
[1.593147,1.594147]
valor de f no ponto 1.593647 com 13 iteracoes --> 0.000014
Observe somente o detalhe que ponto medio do Teorema do Valor medio n ao e a
media aritmetica entre os pontos a, b que resolvem o problema, mas se encontra
razoavelmente pr oximo do ponto medio.
Em outras palavras, 2ln(2) e uma aproxima c ao da raz.
Uma aplica cao desta quest ao a determina cao da area entre duas curvas.
Neste caso n ao queremos encontrar todas as solu coes do problema f(x) = g(x).
Desejamos encontrar aquelas que cam nos extremos de um intervalo que e a
proje cao, no eixo OX da regiao cuja area desejamos calcular.
Um caso comum e que voce pode ver no gr aco (g. 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
|
b
_
a
(f(x) g(x))dx|
e temos que encontrar as duas razes do problema f(x) = g(x).
O calculo, com grande acuracidade de razes somente pode ser feito com
auxlio de programas de computador, entretanto, a determina cao grosseira
CAP
ITULO 2. RA
IZES APROXIMADAS 80
f
g
a
b
Figura 2.12: Regi ao cuja area queremos calcular
de um intervalo onde haja raz
15
pode ser feito com auxlio de uma maquina
de calcular eletr onica e isto e o que se espera na lista de exerccios a seguir
proposta.
Exerccios 10 Raizes de func oes
1. Considere f(x) = x
5
+x
2
4
(a) Mostre que f
ITULO 2. RA
IZES APROXIMADAS 81
15
10
5
0
5
10
15
4 3 2 1 0 1 2 3 4
f(x)
g(x)
0
Figura 2.13: area limitada por duas par abolas
100
80
60
40
20
0
20
40
60
80
100
10 5 0 5 10
f(x)
g(x)
0
Figura 2.14: area limitada por duas curvas
Captulo 3
Sucessoes recursivas
Os babil onios conheciam um metodo pr atico, ver [?], para c alcular razes
quadradadas, que vamos usar como introdu c ao para o assunto deste captulo
porque e um algoritmo recursivo.
Recursividade e um metodo em que uma fun c ao f chama a si pr opria.
A recursividade e conhecida e usada em Matem atica h a milenios, como o
algoritmo do c alculo de razes quadradas, mas recentemente (desde 1970), com
LISP, vem sendo usada em programas de computador produzindo algoritmos
bastante otimizados.
3.1 Babilonios e raz quadrada
Vamos usar o algoritmo dos babilonios para calcular razes qua-
dradas como motiva cao para o assunto deste captulo.
Uma sequencia e recursiva se for denida em fun cao dos seus
pr oprios termos: x
n
= f(x
n1
, . . . , x
1
) em que f e uma expressao
legal (computacional ou matematica).
Escolhemos o algoritmo dos babilonios para servir de introdu cao (e mo-
tiva cao) para o assunto deste captulo por duas razoes:
pela sua antiguidade prov avel de mais de 4.000 anos e assim nos educamos
no respeito dos antigos e do antigo contra o mito de que o moderno e que
bom;
pela sua alta precisao, com auxlio de uma maquina de calcular com
mem oria, com algumas iteradas, quatro ou cinco, voce obtem uma raiz
quadrado com boa precisao.
Uma primeira aproxima cao para
a vem da desigualdade entre a media
aritmetica e a media geometrica:
82
CAP
ITULO 3. RECURSIVIDADE 83
Teorema 2 Desigualdade aritmetico-geometrica Se a, b > 0 temos
ab
a +b
2
(3.1)
Dem :
ab
a+b
2
(3.2)
ab (
a+b
2
)
2
=
a
2
+2ab+b
2
4
(3.3)
4ab a
2
+ 2ab + b
2
(3.4)
0 a
2
2ab + b
2
= (a b)
2
(3.5)
e como a ultima equacao e verdadeira e as anteriores sao equivalentes algebricas dela, entao
a primeira e verdadeira. q.e.d .
Este teorema vale para um n umero qualquer de termos, ver [26], mas aqui
e suciente o caso da media entre dois n umero positivos, mais exatamente 1, a
em que a e o n umero positivo cuja raz quadrada desejamos.
Se a > 1 entao 1 <
a < a e 1 <
a+1
2
< a;
Se 0 < a < 1 entao 1 >
a > a e 1 >
a+1
2
> a;
portanto os n umeros
1 +a
2
,
a
se encontram ambos entre 1 e a ate porque ambos sao a media entre 1, a, um a
media aritmetica, o outro a media geometica, pelo teorema (2).
Assim temos uma estimativa inicial, e de muito baixa precisao, para
a
como consequencia da desigualdade aritmetico-geometrica
a =
1 a
a + 1
2
(3.6)
assim
a
a+1
2
Exemplo 8 Raiz quadrada de 10
10
10 + 1
2
= 5.5
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 observa c ao simples conduz ao algoritmo dos babil onios.
Se tivermos
1
uma estimativa inicial, digamos, x, para a raz quadrada
a
ent ao,
a
x
e outra aproxima c ao:
a
x
a
a
=
a (3.7)
1
e temos, que e a media com a unidade
CAP
ITULO 3. RECURSIVIDADE 84
Se x for maior do que
a ent ao
a
x
ser a menor do
a.
Se x for menor do que
a ent ao
a
x
ser a maior do
a.
Quer dizer que temos duas aproxima c oes, (no segundo caso)
x,
a
x
; x <
a <
a
x
uma menor e outra maior do que
a logo ` a media das duas que vai ser,
melhor do que uma delas.
Denimos (deniram os babil onios)
g(x) =
x +
a
x
2
=
a +x
2
2x
(3.8)
cuja derivada e
g
(x) =
x
2
a
2x
2
; g
a) = 0 (3.9)
g
a) =
a
x>
a
g(x) >
a (3.12)
x >
a g(x) =
x+a/x
2
< x (3.13)
x >
a g(g(x)) < g(x) (3.14)
Com estas propriedades podemos deduzir (possivelmente n ao foi assim que
os babil onios provaram)
uma primeira aproxima c ao s
0
= x >
x (3.15)
a < s
1
= g(s
0
) < s
0
(3.16)
g(
a) =
a < g(s
1
) = s
2
< s
1
(3.17)
a < g(s
1
) = s
2
< s
1
< s
0
(3.18)
.
.
. (3.19)
hip otese:
a < s
n
= g(s
n1
) < s
n1
(3.20)
g(
a) =
a < g(s
n
) = s
n+1
< s
n
(3.21)
(3.22)
e assim provamos por induc ao parte do Teorema
Teorema 3 algoritmo dos babil onios
CAP
ITULO 3. RECURSIVIDADE 85
A sucess ao (s
n
)
n
denida recursivamente por
_
_
x e uma aproxima c ao de
a
x >
a
s
0
= g(x)
s
n
= g(s
n1
)
(3.23)
e decrescente e limitada por
a logo converge para um limite
s
n
l =
a (3.24)
Dem :
Falta prova apenas a ultima armacao do teorema, que o limite e exatamente
a.
Para isto observemos que g e contnua, portanto preserva limite o que signica que
lim
n
g(sn) = g(lim
n
sn) (3.25)
A direita na equacao (25) temos
lim
n
sn+1 = l (3.26)
e a esquerda na equacao (25) temos
g(lim
n
sn) = g(l) (3.27)
o que nos leva
g(l) = l (3.28)
Substituindo na equacao de g, (8), temos
g(l) =
l
2
+ a
2l
= l l
2
+ a = 2l
2
l =
a (3.29)
q.e.d .
Deni cao 1 Ponto xo
Quando uma fun cao g satiszer a equa c ao (28), dizemos que o valor l e um
ponto xo de g.
A sucess ao seguinte de equa c oes mostra como eles faziam:
x
0
= 1 x
1
=
x0+10/x0
2
x
1
= 5.5
x
1
= 5.5 x
2
=
x1+10/x1
2
x
2
= 3.6590909
x
2
= 3.6590909 x
3
=
x2+10/x2
2
x
3
= 3.196005
x
3
= 3.196005 x
4
=
x3+10/x3
2
x
4
= 3.162455
x
4
= 3.162455 x
5
=
x4+10/x4
2
x
5
= 3.1622776
e usando x
5
como aproxima c ao de
10 temos
x
2
5
= (3.1622776)
2
= 9.999999
. .
61946176 (3.30)
que n os d a 10 x
2
5
< 0.0000004 =
4
10
7
CAP
ITULO 3. RECURSIVIDADE 86
Vejamos mais um exemplo, calculando a raz
1000.
Exemplo 9 A raz de 1000
x
0
= 1 x
1
=
x0+1000/x0
2
x
1
= 500.5
x
1
= 500.5 x
2
=
x1+1000/x1
2
x
2
= 251.249
x
2
= 251.249 x
3
=
x2+1000/x2
2
x
3
= 127.6145
x
3
= 127.6145 x
4
=
x3+1000/x3
2
x
4
= 67.7253273
x
4
= 67.7253273 x
5
=
x4+1000/x4
2
x
5
= 41.2454260
x
5
= 41.2454260 x
6
=
x5+1000/x5
2
x
6
= 32.74526
x
6
= 41.2454260 x
7
=
x6+1000/x6
2
x
7
= 32.74526
x
7
= 32.74526 x
8
=
x7+1000/x7
2
x
8
= 31.62278
x
2
8
= (31.62278)
2
= 1000.000
. .
2149284 (3.31)
Os exemplos sao eloquentes, mostram que um povo primitivo, como os
babil onios, usavam um metodo h a mais de 4.000 anos que continua hoje im-
batvel...
Nos n ao temos nada melhor, para calcular razes quadradas, a nao ser
m aquinas com recursos formais. Por exemplo, o calculo acima, feito em Calc
tem o seguinte aspecto:
; y=1
; y=(y+1000/y)/2
; y=(y+1000/y)/2
; y=(y+1000/y)/2
; y=(y+1000/y)/2
; y=(y+1000/y)/2
; y=(y+1000/y)/2
; y=(y+1000/y)/2
; y=(y+1000/y)/2
; y=(y+1000/y)/2
; y
~31.62277660168433424334
; y**2
~1000.00000000003421099649
em que, tudo que precisamos, fazer foi apertar a seta para cima no teclado
do micro, oito vezes.
E tudo que podemos fazer para melhorar o algoritmo dos
babil onios.
Resta-nos agora entender o que se encontra por tras do metodo, e o que
passaremos a fazer.
Exerccios 11 Medias e razes
1. Calcule as medias aritmeticas e geometricas dos pares de n umeros
CAP
ITULO 3. RECURSIVIDADE 87
Raz aproximada
de 10
0
2
4
6
8
10
12
1 2 3 4 5 6 7 8
f(x)
x
0
"data"
Figura 3.1: Determina c ao de
10
a b
a+b
2
ab
1 2
2 4
0.2 0.4
0.2 1
2. Calcule a media aritmetica ponderada dos objetos dados considerando os
pesos indicados
a
1
, a
2
, a
3
p
1
, p
2
, p
3
3
i=1
p
i
a
i
1, 2, 3 0.1, 0.2, 0.7
1, 2, 3 0.4, 0.3, 0.3
1, 2, 3
1
3
,
1
3
,
1
3
1, 2, 3
1
6
,
1
3
,
1
2
(1, 2), (2, 1), (1, 1)
1
6
,
1
3
,
1
2
3. Calcule, aproximadamente, as razes quadradas dos n umeros indicados,
usando o metodo dos babil onios, ate a quarta iterada, e indique o erro
cometido:
a x
4
a
1
2
20
200
O gr aco (g. 3.1), mostra a realiza cao do algoritmo dos babil onios (para
raz quadrada de 10). Nele podemos ver a fun cao identidade e gr aco de
g(x) =
x + 10/x
2
CAP
ITULO 3. RECURSIVIDADE 88
com a sucess ao de pontos que vai sendo obtida com a iteradas de g para obter
a sucess ao recursiva (x
n
)
n
cujo limite e o ponto xo
(
10, g(
10)).
Voce pode repetir este processo inclusive com outras razes quadradas usando
o programa em C que apresentamos logo a seguir.
Exerccios 12 Sequencias recursivas
1. Matem atica Social Escolha uma fun c ao f (sem combinar com seus colegas
de trabalho) tal que graf(f) e o o gr aco da primeira bissetriz y = x se
cortem no primeiro quadrante e que
2
hipergraf(f) seja convexo.
Considere x
0
> 0 escolhido arbitrariamente (sem combinar com seus co-
legas de trabalho) e construa gracamente a sucess ao de pontos no plano
(n n ao menor do que 4)
_
_
(x
0
, x
0
) (x
0
, f(x
0
)) ; x
1
= f(x
0
)
(x
1
, x
1
) (x
1
, f(x
1
)) ; x
2
= f(x
1
)
(x
n
, x
n
) (x
n
, f(x
n
)) ; x
n+1
= f(x
n
)
(3.32)
e agora compare o seu resultado com o dos seus colegas de trabalho para
tirar uma conclus ao.
2. Verique (geometricamente) que a fun c ao f(x) = ln(x) n ao pode denir
uma sucess ao recursiva x
n+1
= f(x
n
) convergente. Justique.
3. Verique quais das func oes seguintes produz uma sucess ao recursiva con-
vergente, e em que regi ao isto se d a (se der). Sugest ao fa ca um gr aco
contendo graf(f), graf(y = x).
f [a, b] .
a)f(x) = x + 3
c)f(x) = x
2
e)f(x) = x
2
9
Os exercos acima est ao longe de esclarecer a importancia ou os metodos
como tratar sucess oes recursivas que e um vasto topico dentro do qual se en-
contra o algoritmo dos babil onios.
3.1.1 Um programa em C
O programa se chama raizq graf.c e voce pode encontra-lo em [20].
2
o hipergr aco de f e o conjunto dos pontos (x, y) tal que y f(x) - e o conjunto limitado
inferiormente pelo graf(f)
CAP
ITULO 3. RECURSIVIDADE 89
Os m odulos do programa sao, a fun cao
g(x, a) =
x +a/x
2
em que deixamos a como parametro de formas que uma pequena altera cao no
programa permite que ele rode na linha de comandos.
A fun cao principal, main(), que e obrigat oria em todo programa em C ou
C + + e que puxa o script do teatro.
Alguns comandos colocados na fun cao principal para criar o arquivo data
onde se encontram as linhas que Gnuplot ir a tra car.
Um arquivo que chamamos transfere e que contemos comando de Gnuplot
e que ser ao chamados internamente pelo programa uma vez que quem vai fazer
tudo e o programa em C.
O programa contem comentarios para ajud a-lo a compreender o que ele, faz,
mas voce deve ler os arquivos data e transfere que o programa cria, para
compreende-lo melhor. E, nalmente, escreva um e-mail ao autor, com suas
d uvidas, ou consulte um hacker em computa cao a sua volta, eles sao, em geral,
benignos.
O comando para compilar o programa e
gcc -Wall -oprog -lm programa.c
em que programa.c e o nome do arquivo onde voce guardou o texto acima, e gcc
e o nome do compilador C que acompanha qualquer distribui cao Linux. Com-
pilado o programa voce o pode rodar (executar) o executavel, prog, digitando
numa shell do Linux
./prog
no diret orio onde se encontra o programa gravado.
O programa descrito acima constroi qualquer exemplo de raz quadrada que
voce desejar, implementando o metodo dos babilonios. Ele cria dois arqui-
vos: data e transfere. Se voce apenas quiser rever
3
o gr aco, digite numa shell
(Linux) gnuplot transfere
e voce voltar a a ver o gr aco recem feito com o programa. Ou, simplesmente,
rode novamente
4
o programa com os mesmos dados. O programa far a, automa-
ticamente, o caso
ITULO 3. RECURSIVIDADE 90
g(x) = x
f(x)
f
(x)
; x
n+1
= g(x
n
) (3.33)
Desejamos agora demonstrar os fatos, descobrir em que condi coes podemos
garantir que uma sucess ao
x
n+1
= g(x
n
) (3.34)
seja convergente. Vamos usar a aproxima cao linear
g(b) g(a) = g
(x
0
)(x
1
x
0
) +o(|x
1
x
0
|) (3.36)
|x
2
x
1
| = |g(x
1
) g(x
0
)| |g
(x
0
)| |x
1
x
0
| (3.37)
(3.38)
|x
n+1
x
n
| = |g(x
n
) g(x
n1
)| |g
(x
n1
)| |x
n
x
n1
| (3.39)
Estes calculos nos mostram que precisamos da hipotese de que g seja dife-
renci avel e que em uma vizinhan ca do ponto inicial x
0
o modulo da derivada
seja menor do que 1. Se isto acontecer podemos deduzir das equa coes acima:
|x
2
x
1
| = |g(x
1
) g(x
0
)| |g
(x
0
)| |x
1
x
0
| (3.40)
|x
3
x
2
| = |g
(x
1
)| |x
2
x
1
| |g
(x
1
)||g
(x
0
)| |x
1
x
0
| (3.41)
(3.42)
|x
n+1
x
n
|
n1
k=0
|g
(x
k
)||x
1
x
0
| (3.43)
Considerando os fatores na equa cao (eq. 43) seja
r = max(|g
(x
0
)|, . . . , |g
(x
k
)|, . . . , |g
(x
n1
)|) < 1 (3.44)
podemos deduzir da (eq. 43)
|x
n+1
x
n
| r
n
|x
1
x
0
| (3.45)
e assim comparar a sucess ao (x
n
) com uma sucessao geometrica convergente.
Demonstramos assim o Teorema
Teorema 4 Teorema do ponto xo
Se uma sucess ao recursiva x
n+1
= g(x
n
) em que g e uma fun c ao diferenci avel
e tal que exista um domnio [a, b] a cujo interior perten ca o ponto x
0
e que
|g
ITULO 3. RECURSIVIDADE 91
o ponto xo no caso daquele algoritmo tenha sido obtido num caso especial de
fun cao contnua, o arqumento aqui seria o mesmo.
Ha v arios teoremas do ponto xo, n os demonstramos acima um caso parti-
cular e bem simples que atende ` as nossas necessidades aqui. Mas o estudioso
de an alise ir a encontrar mais a frente outras formula coes deste teorema quando
ver a, entretanto, que a quest ao gira em torno das mesma ideias, poder garantir
que a fun cao g que dene uma certa sucess ao recursiva funcione como um freio
interno da sucess ao. Tais fun cao satisfazem ` a desigualdade
|g(a) g(b)| < |a b|
portanto elas contraem a imagem e poristo se chamam de contra coes. Quando
a derivada for menor do que 1 em m odulo temos uma contra cao, e foi isto que
usamos na demonstra cao do teorema-4.
3.3 O algoritmo babibilonio e convergente
Para terminar o projeto, queremos mostrar que o algoritmo babibil onio para
razes quadradas satisfaz ` as hipotses do teorema do ponto xo, e portanto con-
verge.
Vimos que o algoritmo depende da fun cao
g(x) = (x +
a
x
)/2 =
x +
a
x
2
(3.46)
cuja derivada e g
(x) =
1
2
a
2x
2
.
g
(x) = 0 = 1
a
x
2
= 0 = x =
a (3.47)
quer dizer que, para x > 0 o gr aco conjunto de g e da primeira bissetriz e da
forma (g. 3.2) ou da forma (g. 3.3)
a
x
0
g
Figura 3.2: Ponto inicial menor do que
a
CAP
ITULO 3. RECURSIVIDADE 92
a
g
x
o
Figura 3.3: Ponto inicial maior do que
a
Nos dois tipos de gr acos, (g. 3.2) ou (g. 3.3), vemos que o graco de g
corta a primeira bissetriz na imagem do ponto xo sobre o graf(g), (
a,
a).
Como g e assntota ` a fun cao
y =
x
2
e no ponto (
a,
(x
0
)| < 1.
Consideremos entao o intervalo I = [
ITULO 3. RECURSIVIDADE 93
3.4 Exerccios
1. Escreva os 5 primeiros termos das seguintes sucess oes denidas recursiva-
mente
a)s
n
= s
n1
+s
n2
s
0
= 0; s
1
= 1
c)s
n
= 1 +s
n1
s
0
= 1
e)s
n
= ns
n1
s
0
= 2; s
1
= 1
b)s
n
= s
n1
+s
n2
s
0
= 1; s
1
= 1
d)s
n
= 1 +s
n1
s
0
= 1
f)s
n
= ns
n1
s
0
= 3; s
1
= 1
2. Escreva o loop em pseudo linguagem de programa c ao
5
que calcula cada
uma das sucess oes
a)s
n+1
= s
n
+s
n1
s
0
= 1; s
1
= 1
c)s
n+1
= s
n
s
n1
s
0
= 1; s
1
= 2
e)s
n+1
= s
n
s
n1
s
0
= 2;
b)s
n+1
= s
n
/s
n1
s
0
= 1; s
1
= 1
d)s
n+1
= (n + 1)s
n
s
0
= 1; s
1
= 1
f)s
n+1
= ns
n
s
0
= 3;
3. serie, termos geral Escreva a equa cao de S
n
sabendo que
S
n+1
S
n
= a
n
; S
0
= 0 (3.54)
em que a sucess ao a = (a
n
)
nN
e dada.
4. Escreva a equa cao de S
n
sabendo que
S
n+1
S
n
= a
n
; S
0
= 0 (3.55)
em que a sucess ao a = (a
n
)
nN
e dada
S
n+1
a
n
a)S
n+1
1
c)S
n+1
n
e)S
n+1
n
2
S
n+1
a
n
b) S
n+1
1
n
d) S
n+1
1
n
2
f) S
n+1
n
3
5. Seq uencia de Fibonacci
6
A seq uencia de Fibonacci e denida, recursivamente, como
s
0
= 1 (3.56)
s
1
= 1 (3.57)
n > 1s
n
= s
n1
+s
n2
(3.58)
Calcule alguns termos de s e escreva o loop que calcule s Resposta e
exatamente um dos exerccios anteriores.
5
chamamos de pseudo linguagem de programa c ao uma sequencia de comandos que po-
deriam pertencer a uma determinada linguagem de programa c ao, aquilo que e habitual fazer
em cursos introdut orios de programa c ao com o nome de algoritmo
CAP
ITULO 3. RECURSIVIDADE 94
3.5 Solu cao de alguns exercicios
1. (ex. 1) p agina 93
(a)
s
n
= s
n1
+s
n2
; s
0
= 0; s
1
= 1 (3.59)
s
2
= 1; s
3
= 2; s
4
= 3; s
5
= 5; (3.60)
(b)
s
n
= s
n1
+s
n2
; s
0
= 1; s
1
= 1 (3.61)
s
2
= 2; s
3
= 3; s
4
= 5; s
5
= 8 (3.62)
(c)
s
n
= 1 +s
n1
; s
0
= 1 (3.63)
s
1
= 2; s
2
= 3; s
3
= 4; s
4
= 5; s
5
= 6 (3.64)
(d)
s
n
= 1 +s
n1
; s
0
= 1 (3.65)
s
1
= 0; s
2
= 1; s
3
= 2; s
4
= 3; s
5
= 4 (3.66)
(e)
s
n
= ns
n1
; s
0
= 2; s
1
= 1 (3.67)
s
2
= 2; s
3
= 6; s
4
= 24; s
5
= 120 (3.68)
(f)
s
n
= ns
n1
; s
0
= 3; s
1
= 1 (3.69)
s
2
= 2; s
3
= 6; s
4
= 24; s
5
= 120; (3.70)
2. (ex. 2) p agina 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
}
CAP
ITULO 3. RECURSIVIDADE 95
return(S); // saida de dados do programa
0 1
1 1
2 2
3 3
4 5
5 8
6 13
7 21
8 34
9 55
10 89
(b) float S=1; // produto e divisoes, inicio 1
float a0=2.0, a1=1.0;
int contador=2;
printf("%d %f \n %d %f \n",0,a0,1, a1);
if (n == 0 ) return(a0);
if (n == 1 ) return(a1);
while(contador <=n)
{
S = a1/a0; // s(n+1)
printf("%d %f \n",contador, S);
a0 = a1; // s(n-1)
a1 = S; // s(n)
contador++;
}
0 2.000000
1 1.000000
2 0.500000
3 0.500000
4 1.000000
5 2.000000
6 2.000000
7 1.000000
8 0.500000
9 0.500000
10 1.000000
(c) float S=1; // produto e divisoes, inicio 1
float a0=1.0, a1=2.0;
int contador=2;
printf("%d %f \n %d %f ",0,a0,1,a1);
if (n == 0 ){printf("%d %f \n ",0,a0); return(a0);}
if (n == 1 ){printf("%d %f \n ",1,a1); return(a1);}
while(contador <=n)
{
CAP
ITULO 3. RECURSIVIDADE 96
S = a1*a0; // s(n+1)
printf("%d %f \n",contador, S);
a0 = a1; // s(n-1)
a1 = S; // s(n)
contador++;
}
0 1.000000
1 2.000000 2 2.000000
3 4.000000
4 8.000000
5 32.000000
6 256.000000
7 8192.000000
8 2097152.000000
9 17179869184.000000
10 36028797018963968.000000
(d) float S=1; // produto e divisoes, inicio 1
float a0=1.0, a1=1.0;
int contador=2;
printf("%d %f \n %d %f \n ",0,a0,1,a1);
if (n == 0 ){printf("%d %f \n ",0,a0); return(a0);}
if (n == 1 ){printf("%d %f \n ",1,a1); return(a1);}
while(contador <=n)
{
S = contador*a1; // s(n+1)
printf("%d %f \n",contador, S);
a1 = S; // s(n)
contador++;
}
0 1.000000
1 1.000000
2 2.000000
3 6.000000
4 24.000000
5 120.000000
6 720.000000
7 5040.000000
8 40320.000000
9 362880.000000
10 3628800.000000
(e) float S=1; // produto e divisoes, inicio 1
float a0=2.0;
int contador=1;
CAP
ITULO 3. RECURSIVIDADE 97
printf("%d %f \n ",0,a0);
if (n == 0 ){printf("%d %f \n ",0,a0); return(a0);}
while(contador <=n)
{
S = contador*a0; // s(n+1)
printf("%d %f \n",contador, S);
a0 = S; // s(n)
contador++;
}
0 2.000000
1 2.000000
2 4.000000
3 12.000000
4 48.000000
5 240.000000
6 1440.000000
7 10080.000000
8 80640.000000
9 725760.000000
10 7257600.000000
(f) float S=1; // produto e divisoes, inicio 1
float a0=3.0;
int contador=1;
printf("%d %f \n ",0,a0);
if (n == 0 ){printf("%d %f \n ",0,a0); return(a0);}
while(contador <=n)
{
S = (contador-1)*a0; // s(n+1)
printf("%d %f \n",contador, S);
a0 = S; // s(n)
contador++;
}
0 3.000000
1 0.000000
2 0.000000
3 0.000000
4 0.000000
5 0.000000
6 0.000000
7 0.000000
8 0.000000
9 0.000000
10 0.000000
CAP
ITULO 3. RECURSIVIDADE 98
3. (ex. 3) p agina 93
S
0
= 0 = S
1
= S
0
+a
0
= a
0
(3.71)
S
2
= S
1
+a
1
= S
0
+a
0
+a
1
(3.72)
S
2
= a
0
+a
1
(3.73)
S
3
= S
2
+a
2
= a
0
+a
1
+a
2
(3.74)
(3.75)
S
n+1
= S
n
+a
n
= a
0
+a
1
+a
2
+ +a
n
(3.76)
S
n+1
=
n
k=0
a
k
(3.77)
4. (ex. 4) p agina 93
(a) S
n+1
=
n
k=0
1 = n + 1
(b) S
n+1
=
n
k=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
S
n+1
ln(n) para grandes valores de n.
ln(100000) 11.51292546497022842009;
100000
k=1
1
k
12.090851
(c)
n
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
CAP
ITULO 3. RECURSIVIDADE 99
10 1.5497677311665
double S=0; // inicilizando soma
double a0=1.0;
int contador=1;
printf("%d %lf \n ",0,a0);
if (n == 0 ){printf("%d %lf \n ",0,a0); return(a0);}
while(contador <=n)
{
S = S + a0; // s(n+1)
printf("%d %2.13lf \n",contador, S);
contador++; // contador = contador + 1
a0 = (double) 1/(contador*contador); // s(n-1)
}
n
1
1
k
2
2
6
para grandes valores de n. Com n = 35000S
35000
= 1.6449054958278
e
2
6
1.64493406684822643649
(d) 1 1.000000
2 5.000000
3 14.000000
4 30.000000
5 55.000000
6 91.000000
7 140.000000
8 204.000000
9 285.000000
10 385.000000
float S=0; // inicializa uma soma
float a1=1.0;
int contador=1;
printf("%d %f \n",1, a1);
if (n == 1 ) return(a1);
while(contador <=n)
{
S = S + a1; // s(n+1)
printf("%d %f \n",contador, S);
contador++; // contador = contador + 1
a1 = contador*contador;
}
As somas do tipo
n
k=0
P(k) em que P e um polinomio a coecientes
inteiros, podem ser calculadas exatamente usando-se um polinomio Q
de grau uma unidade superior ao de P porque estas somas se reduzem
CAP
k=1
k
2
=
n(n+1)(2n+1)
6
= Q(n); Q(10) =
385
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
k=1
k
2
= (1 + 2 n)
2
= (
n(n+1)
2
)
2
Captulo 4
Aproximacao polinomial de
funcoes
Este captulo vai lhe apresentar o objetivo deste livro: a modela-
gem matem atica usando aproxima cao 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-
grange.
E o que chamamos de metodo cl assico e que foi utilizado
ate 1950.
Com o metodo cl assico, que consiste em fazer passar um po-
lin omio pelos pontos conhecidos de uma fun cao, para obter-se uma
boa aproxima cao 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 construido
a
,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 v arios polinomios, um para cada intervalo da malha.
= dp
m odulo m aximo calculamos, visualmente, o modulo maximo de p
. Existe
um teorema que garante que o modulo maximo de um polinomio ocorre na
fronteira de um disco que contem este intervalo considerado.
E o teorema
do m odulo m aximo e a gura (g. 4.2) pagina 104, e uma ilustra cao do
teorema do m odulo m aximo estudado em variaveis complexas. A gura
justica porque preferimos calcular visualmente o maximo da derivada;
usamos como coeciente
1
M
; M = 470.0 ; M = max(|p
(x)|)
que e o valor do m odulo m aximo da derivada de p no intervalo I = [a3
1, a0 + 1];
redenimos o polinomio, P(x) =
1
M
p(x), portanto reduzimos a oscila c ao
2
do polinomio P no intervalo I.
Se y
k
= r uma constante r R, qualquer solu cao P do problema ho-
mogeneo, somada de r, e uma solu cao deste problema nao homogeneo.
Lembra a solu cao de um sistema linear e de fato e uma questao de
Algebra
Linear. Veja que n ao e possvel obter todas as solu coes do problema n ao
homogeneo sem considerar o caso homogeneo.
Mdulo mximo
O mdulo mximo
no plano complexo
pr imagem do
ponto de mdulo
mximo
Figura 4.2: O teorema do m odulo m aximo
Esta an alise sugere a existencia de uma solu cao otima. Vamos ver que existe
uma solu cao unica para o problema que e tambem, em um certo sentido, otima.
Os exerccios seguintes devem conduz-lo a uma compreensao da oscila c ao
dos polinomios interpolantes associada a densidade da malha representada pelos
2
Observe que para reduzir a oscila c ao do polin omio fomos buscar o m odulo m aximo da
derivada
CAP
CAP
_
3 9 27 81
2 4 8 16
2 4 8 16
5 25 125 625
_
_
_
_
_
_
a
1
a
2
a
3
a
4
_
_
_
_
=
_
_
_
_
11
6
3
4
_
_
_
_
(4.24)
Vamos primeiro usar scilab para resolver o sistema de equa c oes depois
vamos mostrar uma outra forma de resolver o problema associado com o
que zemos no captulo 1, usando a ideia (n ao o conceito) de polinomio
de Taylor. Com scilab resolvemos qualquer sistema de equa c oes portanto
n ao precisamos de tecnicas mais avan cadas de calculos manuais (que mos-
traremos depois).
a = [-3 , 9 , -27 , 81 ;
-2 , 4 , -8, 16 ;
2 , 4 , 8 , 16 ;
5 , 25 , 125 , 625]
a =
! - 3. 9. - 27. 81. !
! - 2. 4. - 8. 16. !
! 2. 4. 8. 16. !
! 5. 25. 125. 625. !
-->b=[11 ; 6 ;3 ;4]
b =
! 11. !
! 6. !
! 3. !
! 4. !
-->a\b
ans =
! - 0.6880952 !
! 1.2678571 !
! - 0.0154762 !
CAP
_
f(2) = 7 +a
1
+a
2
+a
3
= 3
f(0) = 7 + 3a
1
+ 9a
2
+ 27a
3
= 3
f(2) = 7 + 5a
1
+ 25a
2
+ 125a
3
= 0
f(5) = 7 + 8a
1
+ 64a
2
+ 512a
3
= 1
(4.29)
_
_
a
1
+a
2
+a
3
= 10
3a
1
+ 9a
2
+ 27a
3
= 4
5a
1
+ 25a
2
+ 125a
3
= 7
8a
1
+ 64a
2
+ 512a
3
= 8
(4.30)
Resolvendo este sistema de equa c oes com scilab temos
a = [1 , 1 , 1 ; 3, 9, 27; 5, 25, 125; 8, 64, 512]
CAP
do
polin omio que interpola os pontos e diferente. Identique em que caso a
oscila c ao e menor, sobre o intervalo determinado pelos pontos a serem
interpolados.
resposta oscila c oes 0.6 e 1
Interpolando pontos do plano
Nos exemplos desenvolvidos, mostramos como interpolar n + 1 pontos selecio-
nados num intervalo [a, b] contido em R. Tambem mostramos a baixa precisao
que existe neste metodo ingenuo de interpolar justicando assim que devemos
procurar metodos mais ecientes.
O nosso objetivo entretanto e, considerada uma cole cao de n os sobre um
intervalo [a, b]
a = x
0
< x
1
< < x
n1
< x
n
= b (4.31)
e um correspondente conjunto de valores
{y
0
, y
1
, . . . , y
n1
, y
n
} (4.32)
como poderiamos interpolar, polinomialmente, os pontos
{(x
0
, y
0
), (x
1
, y
1
), . . . , (x
n
, y
n
)} (4.33)
ou ainda, encontrar um polinomio P cujo gr aco passe por estes pontos. No
exemplo anterior zemos isto quando y
k
= 0 para todo k.
Da mesma forma como
dois pontos determinam uma reta, um polinomio de grau 1, porque os dois
pontos determinam os dois coecientes da reta que passa por estes pontos,
CAP
_
P(x
0
)
.
.
.
P(x
n
)
_
_ =
_
_
y
0
.
.
.
y
n
_
_ = (4.38)
_
_
P(x
0
) = y
0
P(x
1
) = y
1
.
.
.
.
.
.
P(x
n
) = y
n
=
_
_
a
0
+a
0
x
0
+ +a
n
x
n
0
= y
0
a
0
+a
0
x
1
+ +a
n
x
n
1
= y
1
.
.
.
.
.
.
a
0
+a
0
x
n
+ +a
n
x
n
n
= y
n
(4.39)
_
_
P(x
0
)
.
.
.
P(x
n
)
_
_ =
_
_
1 x
0
x
2
0
x
n
0
1 x
1
x
2
1
x
n
1
.
.
.
.
.
.
.
.
.
.
.
.
1 x
n
x
2
n
x
n
n
_
_
_
_
a
0
a
1
.
.
.
a
n
_
_
=
_
_
y
0
y
1
.
.
.
y
n
_
_
(4.40)
A
_
_
a
0
a
1
.
.
.
a
n
_
_
=
_
_
y
0
y
1
.
.
.
y
n
_
_
(4.41)
Este e um sistema muito especial cuja matriz Ae uma matriz de Vandermonde
4
e
sabemos, da
Algebra Linear que o valor do seu determinante e obtido pelo
produto das diferen cas entre os seus elementos caractersticos
x
0
, x
1
, x
2
, , x
n
(4.42)
4
Alexandre Vandermonde, matem atico frances (1735-1796).
CAP
(x) = (x x
1
)(x x
2
) + (x x
1
)(x x
3
) + (x x
2
)(x x
3
) = (4.51)
P
(x) = P
1
(x) +P
2
(x) +P
3
(x) (4.52)
5
pontos da malha de precis ao
6
mas descoberto por Edward Waring (1736-1798) e por Leonard Euler (1707-1783)
CAP
= u
v + uv
que pode
ser usada com um produto de qualquer quantidade termos, e observando
que a derivada de que cada fator e 1, temos
P
(x) = (x x
2
)(x x
3
) + (x x
1
)(x x
3
) + (x x
1
)(x x
2
)
uma soma de produtos em que, sucessivamente, cada um dos fatores ori-
ginais foi eliminado (trocado por 1).
E razo avel designarmos
P
1
(x) = (x x
2
)(x x
3
) =
P(x)
xx1
; (4.54)
P
2
(x) = (x x
1
)(x x
3
) =
P(x)
xx2
; (4.55)
P
3
(x) = (x x
1
)(x x
2
) =
P(x)
xx3
(4.56)
e desta forma
P
(x) = P
1
(x) +P
2
(x) +P
3
(x) (4.57)
em que P
k
e o polin omio sem o fator (x x
k
) ou ainda e o quociente
P(x)
xxk
.
Vamos usar esta notac ao no pr oximo exerccio.
2. Verique que se
P(x) = (x x
1
)(x x
2
)(x x
3
) (4.58)
ent ao
(a) P
j
(x
k
) = 0 se j = k
(b) P
k
(x
k
) = 0
(c) Para todo k P
(x
k
) = 0
Esboce o gr aco de P e tente uma justicativa geometrica para o fato de
que a derivada de P e diferente de zero se as razes forem distintas.
Solu cao 5 (a) P
j
tem todos os fatores (x x
k
) exceto (x x
j
) logo
P
j
(x
k
) = 0 se j = k.
Como (xx
j
) n ao e fator de P
j
ent ao P
j
(x
j
) = 0. Vemos assim que
o valor de P
j
(x
k
) e
_
P
j
(x
k
) = 0 j = k
P
j
(x
k
) = 0 j = k
(4.59)
CAP
(x
k
):
P
(x) =
3
k=1
P
k
(x) (4.60)
dado k P
(x
k
)
3
j=1
P
j
(x
k
) (4.61)
P
(x
k
) = P
k
(x
k
) = 0 (4.62)
porque todos os termos em que j = k se tem P
k
(x
j
) = 0. Portanto
P
(x
1
) e coeciente angular em x
1
(4.63)
m
2
= P
(x
2
) e coeciente angular em x
2
(4.64)
m
3
= P
(x
3
) e coeciente angular em x
3
(4.65)
(4.66)
3. Verique que se
P(x) = (x x
1
)
2
(x x
2
)(x x
3
) (4.67)
ent ao P
(x
1
) = 0.
Verique que denindo
P
1
(x) =
2P(x)
x x
1
; P
2
(x) =
P(x)
x x
2
; P
3
(x) =
P(x)
x x
3
CAP
=
3
k=1
P
k
.
Esboce o gr aco de P e tente uma justicativa geometrica do valor zero
ou diferente de zero das derivadas. Tente elaborar uma uma teoria geral
sobre o assunto, comparando este caso com o anterior.
4. derivada algoritmica Considere o polin omio de grau n
P(x) =
n
k=1
(x x
k
) (4.68)
(a) Verique que
P
(x) =
n
k=1
P
k
(x) (4.69)
em que, para cada k, P
k
(x) =
P(x)
xxk
.
(b) Encontre uma lei que descreva os valores P
k
(x
j
)
(c) Prove que se P for um polin omio denido pela equa c ao (eq. 68) e as
raizes x
k
todas distintas, ent ao P
(x
k
) = 0 para todo k = 1 . . . n, o
valor da derivada, em todos os n os, e diferente de zero.
(d) Faca um esboco gr aco de P e escreva uma pequena reda c ao justi-
cando, com uma argumenta c ao geometrica, porque P
(x
k
) = 0.
Solu cao 6 (a)
E uma generaliza c ao dos exerccios anteriores, agora te-
mos um produto de n mon omios, todos tendo por derivada 1. Quando
aplicarmos a derivada do produto teremos uma soma de n novos pro-
dutos, cada com n 1 termos em cada um dos quais aparentemente
dividimos P por cada um dos fatores, sucessivamente:
P
1
=
P(x)
xx1
(4.70)
P
2
=
P(x)
xx2
(4.71)
.
.
. (4.72)
P
n
=
P(x)
xxn
(4.73)
P
(x) = P
1
(x) +P
2
(x) + +P
n
(x) (4.74)
P
(x) =
n
k=1
P
k
(x) (4.75)
(b) Valor de P
k
(x
j
).
Para cada k, o polin omio P
k
(x) e um produto de n 1 termos em
que o fator (x x
k
) n ao est a presente, logo
P
k
(x
k
) = 0.
CAP
(x
j
)
P
(x
j
) =
n
k=1
P
k
(x
j
) = P
j
(x
j
) = 0 (4.76)
O gr aco de P corta o eixo OX em todos os n os se alternando com m aximo
ou mnimos locais entre as razes.
E um gr aco semelhante ao que voce
pode ver na gura (g. 4.5) p agina 115.
5. * Verique (tente uma demonstra c ao) se P for dado pela equa c ao (eq. 68)
com todos os x
k
distintos, ent ao as raizes de P e P
(x) = n(x a)
n1
g(x) + (x a)
n
g
(x) = (4.78)
f
(x) = (x a)[n(x a)
n2
g(x) + (x a)
n1
g
(x)] (4.79)
f
(a) = 0 (4.80)
ent ao x = a tambem e raz de f
7
quem garante isto e a continuidade
CAP
.
(b) Soluc ao otima Calcule os coecientes de Q = P/M
(c) Considere os pontos do plano
{(2.5, 0), (1.5, 2), (0.5, 3), (0.5, 3), (1.5, 1), (2.5, 2)}
e calcule um polin omio que interpole este pontos usando o polin omio
Q. Faca os gr acos.
11. polin omio de Lagrange Considere a seq uencia de n os
x
k
{2.5, 1.5, 0.5, 2, 3} [3, 3]
do intervalo [3, 3]. Seja P o polin omio m onico
9
que tem estes n os como
razes. E dena P
k
(x) =
P(x)
xxk
.
(a) Calcule P
.
(b) Mostre que
P
=
5
k=1
P
k
.
8
a condi c ao a > 0 n ao e essencial, apenas facilita a apresenta c ao do problema.
9
aquele cujo coeciente do termo de maior grau e 1, obtido com os produtos
(x x1) (x x5).
CAP
(x
j
) = P
j
(x
j
)
(e) Dena
f(x) =
5
k=1
P
k
(x)
P
(x
k
)
Verique que f e um polin omio de grau no m aximo 5. Calculando
seus valores sobre os n os, verique sua equa c ao.
(f ) Considere a seguinte sucess ao de dados y
k
{4, 1, 2, 5, 7} e re-
dena f(x) =
5
k=1
ykPk(x)
P
(xk)
. Mostre que f(y
k
) = y
k
e que, portanto, o
polin omio f interpola os pontos
(2.5, 4), (1.5, 1), (0.5, 2)(2, 5), (3, 7)
do plano.
(g) polin omio de Lagrange Considere uma seq uencia de n os
(x
k
)
n
k=0
[, ]
Seja P o polin omio m onico
10
que tem estes n os como razes. E dena
P
k
(x) =
P(x)
xxk
.
i. Calcule P
.
ii. Mostre que
P
=
n
k=0
P
k
.
iii. Mostre que
P
j
(x
k
) = 0 = j = k
iv. Mostre que
P
(x
j
) = P
j
(x
j
)
v. Dena
f(x) =
n
k=0
P
k
(x)
P
(x
k
)
Verique que f e um polin omio de grau no m aximo n. Calcu-
lando seus valores sobre os n os, verique sua equa c ao.
10
aquele cujo coeciente do termo de maior grau e 1, obtido com os produtos
(x x1) (x x8).
CAP
k=0
ykPk(x)
P
(xk)
. Mostre que f(y
k
) = y
k
e que, portanto, o polin omio
f interpola os pontos
((x
k
, y
k
)
n
k=0
)
do plano.
(h) Considere uma sucess ao (crescente) de n os (x
k
)
n
k=0
de um intervalo
[a, b]. Seja P o polin omio m onico
11
que tem estes n os como razes. E
dena P
k
(x) =
P(x)
xxk
. Verique que
i.
P
=
n
k=0
P
k
ii.
P
j
(x
k
) = 0 = j = k
iii.
P
j
(x
j
) = P
(x
j
)
iv. f(x) =
n
k=0
Pk(x)
P
(xk)
e um polin omio de grau no m aximo n. Calcu-
lando seus valores sobre os n os, verique sua equa c ao.
v. Polin omio de Lagrange Considere uma sucess ao de dados (y
k
)
n
k=0
e redena f(x) =
n
k=0
ykPk(x)
P
(xk)
. Mostre que f(y
k
) = y
k
4.1.3 Interpolacao polinomial de Lagrange
Se voce tiver feito o tutorial sobre polin omio de Lagrange esta se cao representa
apenas um resumo do que foi feito no tutorial e possivelmente pode ser pulada.
Considere dois pontos no plano, eles determinam uma reta que e o graco de
um polinomio de grau menor
12
ou igual a 1. Isto e dois pontos sao interpolados
por um polinomio de grau menor que dois. Tres pontos sao interpolados por
uma parabola ou uma reta, novamente o grau e menor do que a quantidade de
pontos.
Assim, se quisermos interpolar n+1 pontos, deveremos obter um polinomio
de grau no m aximo n cujos n + 1 coecientes cam unicamente determinados
pelos n +1 pontos dados. Ali as, o fato de havermos encontrado uma multitude
de solu coes e um indicativo da fraqueza do metodo. Por outro lado, observe
que o adjetivo fraqueza e enganoso uma vez que na verdade a nossa conclusao
11
aquele cujo coeciente do termo de maior grau e 1, obtido com os produtos
(x x0) (x xn).
12
salvo no caso em que os pontos estejam sobre uma paralela ao eixo OY ...
CAP
(x) =
n
k=0
P
k
(x) (4.83)
P
k
(x
k
) = P
(x
k
) (4.84)
P
k
(x
j
) = 0 == j = k (4.85)
f(x) =
n
k=0
Pk(x)
P
(xk)
(4.86)
f(x
k
) =
n
k=0
Pk(xk)
P
(xk)
=
Pk(xk)
P
(xk)
=
P
(xk)
P
(xk)
= 1 (4.87)
13
mas descoberto por Edward Waring (1736-1798) e por Leonard Euler (1707-1783)
CAP
k=0
Pk(xk)
P
(xk)
e uma combina cao linear convexa
(uma soma de pesos), para todos os valores de x no intervalo [a, b]. Se portanto
escolhermos uma cole cao de n + 1 valores, cada um deles associados a um dos
n os podemos denir:
g(x) =
n
k=0
y
k
P
k
(x)
P
(x
k
)
(4.88)
e como o valor da soma, em cada n o era 1, agora
g(x
k
) = y
k
o que nos d a um polinomio de grau n passando por n + 1 pontos escolhidos no
intervalo [a, b].
O polinomio de grau n, equa cao (88), e o polinomio de interpola cao de
Lagrange.
4.2 Fun coes polinomiais por pedacos
A forma mais simples de interpolar uma cole c ao de pontos do plano consiste em lig a-los por
segmentos de reta: a poligonal cujos vertices s ao os pontos dados. Aqui vamos considerar
um caso particular em que os pontos dados representam valores de uma fun c ao hipotetica
dena em um intervalo [, ], os valores obtidos pelas medi c oes de um sensor ao longo de um
intervalo do tempo. Nestas condi c oes as abcissas destes pontos s ao uma sequencia crescente
de pontos do intervalo [, ],
{ = a0 < a1 < < an = }
e a poligonal mencionada acima e uma funcao linear por pedacos, caso particular do nosso
objetivo. Vamos generalizar o caso das poligonais nesta sec ao construindo os quase-splines,
que s ao fun c oes polin omiais por peda cos do terceiro grau cuja derivada e contnua.
Nesta se cao vamos fazer a constru cao teorica das fun coes polinomiais por
peda cos que j a aparecerem em v arios exerccios e que portanto voce ja esta
praticamente familiarizado com este instrumento. Aqui a linguagem sera mais
formal apenas.
Alguns itens da lista de exerccios seguinte servem apenas para relembra-lo
de algumas tecnicas, do C alculo Diferencial e Integral e da Geometria Analtica
que precisaremos na continua cao. Aquilo que lhe parecer trivial voce deve,
simplesmente, saltar.
Exerccios 15 Polin omios por peda cos
CAP
k
(x
k
) = d
k
P
k
(x
k+1
) = y
k+1
P
k
(x
k+1
) = d
k+1
3. Calcule a quantidade do fen omeno descrito no exerccio (ex. 2 ), por
deni c ao a quantidade de um fen omeno e a integral da func ao que o des-
creve.
4. Considere a seguinte tabela de dados (obtidos por um sensor)
x
k
y
k
d
k
5 7 3
1 3 1
7 5 2
14
dizemos que este polin omio est a desenvolvido no ponto x
k
CAP
_
x
0
y
0,1
y
0,2
y
0,3
d
0
=
y
0,2
y
0,1
t
1
+
y
0,3
y
0,2
t
2
2
=
y
0,1
t
1
+
y
0,2
t
2
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
x
n
y
n,1
y
n,2
y
n,3
d
n
=
y
n,2
y
n,1
t
1
+
y
n,3
y
n,2
t
2
2
=
y
n,1
t
1
+
y
n,2
t
2
2
_
_
(4.93)
em que d
k
e o valor medio das duas taxas de variac ao que pudemos calcular
usando as tres medidas nas obtidas em cada n o.
Simplicando, desta matriz de dados vamos fazer uso apenas da submatriz
_
_
x
0
y
0,1
d
0
.
.
.
.
.
.
.
.
.
x
n
y
n,1
d
n
_
_ (4.94)
e vamos simplicar a notac ao
_
_
x
0
y
0
d
0
.
.
.
.
.
.
.
.
.
x
n
y
n
d
n
_
_ (4.95)
esquecendo o metodo como obtivemos as derivadas aproximadas e mesmo ig-
noraremos na continuac ao que se tratam de derivadas aproximadas. Diremos
que d
k
e a derivada no ponto x
n
quer dizer que temos 2(n + 1)informac oes
processadas
16
pelo sensor:
Quatro informac oes em cada sub-intervalo [x
k
, x
k+1
]. Temos
no n o x
k
: y
k
, d
k
(4.96)
no n o x
k+1
: y
k+1
, d
k+1
; (4.97)
Polin^omios por pedacos. Em cada sub-intervalo podemos calcular um
polin omio de grau tres que modela o fen omeno no intervalo [x
k
, x
k+1
];
P
k
(x) = a
k,0
+a
k,0
(x x
k
) +a
k,0
(x x
k
)
2
+a
k,0
(x x
k
)
3
Examine, novamente, os exercicios (ex. 2) e (ex. 3), p agina 123.
Malha com n + 1 n os, com os n + 1 pontos, incluindo os extremos do in-
tervalo, determinammos n subintervalos, temos n polin omios de grau tres
que ir ao modelar o fen omeno no intervalo [a, b];
16
Houve uma quantidade bem maior de informa c oes coletadas, depois de coletadas foram
processadas, ou pelo sensor ou por um programa num computador resultando em 2(n + 1)
informa c oes.
CAP
_
x
0
y
0
d
0
P
0
(x) = a
0,0
+a
0,1
(x x
0
) +a
0,2
(x x
0
)
2
+a
0,3
(x x
0
)
3
.
.
.
.
.
.
.
.
.
.
.
.
x
n
y
n
d
n
P
n
(x) = a
n,0
+a
n,1
(x x
n
) +a
n,2
(x x
n
)
2
+a
n,3
(x x
n
)
3
_
_
(4.98)
H a v arias formas de resolver o exerccio 1. Leia a solu c ao dos exerccios ao
nal do captulo, n os vamos us a-la como metodo de trabalho. Rode os nossos
programas usando-os como exemplos din amicos
17
do texto.
4.2.2 Aproximacao de funcoes
Analise o gr aco (g. 4.6) p agina 126,
grfico da funo
grfico da aproximao
60
40
20
0
20
40
60
10 5 0 5 10
Aproximao de uma funo
"polped"
"precisao"
"XOY"
Figura 4.6: Aproxima c ao de uma fun c ao
Este gr aco (g. 4.6), pode ser reproduzido e inclusive impresso em papel,
usando o programa
18
aproximacao que pode ser encontrado em [20, progra-
mas.tgz] No gr aco voce pode ver uma fun cao do tipo
f(x) = P(x)sen(ax +b) (4.99)
obtida pelo produto de uma fun cao polinomial por uma senoide. Tais fun coes
sao bons exemplos de modelos com grandes oscila coes e portanto que oferecem
17
simplesmente rodar os programas n ao o vai levar a adquirir conhecimento...
18
escolha, no programa, a op c ao (3)
CAP
() =
f(b)f(a)
ba
. Identique , a, b e
o teorema do C alculo que governa esta arma c ao.
3. Considere uma func ao contnua e diferenci avel, f, denida no intervalo
[5, 6] e a poligonal do terceiro grau P denida pela tabela seguinte:
x
k
y
k
d
k
x
0
= 5 f(5) f
(5)
x
1
= 0 f(0) f
(0)
x
2
= 6 f(6) f
(6)
Mostre que existe um ponto x
0,1
[x
0
, x
1
] tal que P
(x
0,1
) =
f(x1)f(x0)
x1x0
e um ponto x
1,1
[x
1
, x
2
] tal que P
(x
1,1
) =
f(x2)f(x1)
x2x1
indicando qual e
o Teorema do C alculo que garante isto.
CAP
(4.100)
c
2
= P(b), d
2
= P(b)
(4.101)
no intervalo [a, b] e sabemos, da aproxima cao polinomial cl assica que estudamos
inicialmente, que estas quatro informa coes nos permitem determinar de forma
unica um polinomio do grau tres.
CAP
(x) = m
1
+ 2m
2
(x a) + 3m
3
(x a)
2
P
(a) = m
1
= d
1
P(b) = m
0
+m
1
(b a) +m
2
(b a)
2
+m
3
(b a)
3
= c
2
P
(b) = m
1
+ 2m
2
(b a) + 3m
3
(b a)
2
= d
2
(4.102)
que se reduz assim a duas equa coes nas incognitas ainda restantes m
2
, m
3
ob-
servando que sao conhecidos:
m
0
= c
1
, m
1
= d
1
, b a, c
2
, d
2
(4.103)
_
c
1
+d
1
(b a) +m
2
(b a)
2
+m
3
(b a)
3
= c
2
d
1
+ 2m
2
(b a) + 3m
3
(b a)
2
= d
2
(4.104)
_
3c
1
+ 3d
1
(b a) + 3m
2
(b a)
2
+ 3m
3
(b a)
3
= 3c
2
d
1
(b a) + 2m
2
(b a)
2
+ 3m
3
(b a)
3
= d
2
(b a)
(4.105)
3c
1
+ 2d
1
(b a) +m
2
(b a)
2
= 3c
2
d
2
(b a) (4.106)
m
2
=
3c2d2(ba)(3c1+2d1(ba))
(ba)
2
(4.107)
Nas (eq.105 ) igualamos os coecientes de m
3
depois subtraimos as duas equa coes
para obter a (eq.106) de onde tiramos o valor de m
2
.
Esta solu cao e possvel porque os nos a, b sao diferentes e assim, calculado o
valor de m
2
, ele pode ser substituido numa das equa coes (eq.105 ), por exemplo
em,
c
1
+d
1
(b a) +m
2
(b a)
2
+m
3
(b a)
3
= c
2
o que vai nos permitir o calculo de m
3
:
m
3
=
c
2
(c
1
+d
1
(b a) +m
2
(b a)
2
)
(b a)
3
(4.108)
que tambem e possvel porque a = b. Observe que nao nos preocupamos em
explicitar os valores porque estas contas devem ser feitas dentro de um programa
que ir a fazer os calculos nais.
Como esta solu cao e unica, achamos assim o unico polinomio P do terceiro
grau que satisfaz ` as quatro condi coes no intervalo [a, b].
Demonstramos assim:
Teorema 7 Existencia e unicidade da poligonal de grau tres
Dada uma partic ao
a = x
0
< . . . < x
n
= b (4.109)
de um intervalo [a, b] e uma lista de pares de valores
y
0
, d
0
, . . . , y
k
, d
k
, . . . , y
n
, d
n
(4.110)
CAP
(x
k
) = d
k
P(x
k+1
) = y
k+1
P
(x
k+1
) = d
k+1
(4.111)
com (desenvolvendo o polin omio P
k
no ponto x
k
)
P
k
(x) = m
k,0
+m
k,1
(x x
k
) +m
k,2
(x x
k
)
2
+m
k,3
(x x
k
)
3
(4.112)
m
k,0
= P
k
(x
k
) = y
k
(4.113)
m
k,1
= P
k
(x
k
) = d
k
(4.114)
s
k
= x
k+1
x
k
= 0 (4.115)
m
k,2
=
3yk+1skdk+13yk2dksk
s
2
k
(4.116)
m
k,3
=
yk+1(yk+dksk+mk,2s
2
k
)
s
3
k
(4.117)
O programa aproximacao calcula os coecientes da poligonal em cada
um dos intervalos lan cando os resultados no arquivo dados que voce pode ler
com um editor de textos. O programa lhe dira isto. Escolha a op cao (5) no
programa, mas antes edite o arquivo leitura onde os dados do sensor devem
estar gravados. O programa tem um pequeno texto explicativo em que estas
informa coes lhe ser ao apresentadas. Use a op cao (7) para isto, ou responda que
deseja ler a teoria, ao iniciar o programa.
Como a polinomial P concide com o polinomio P
k
no intervalo [x
k
, x
k+1
],
entao P e contnua e diferenci avel em cada sub-intervalo. Como P
k+1
(x
k+1
) =
P
k
(x
k+1
) e P
k+1
(x
k+1
) = P
k
(x
k+1
) entao P e contnua e diferenci avel no inter-
valo [a, b]
P
k
(x
k+1
)
= 2m
k,2
(4.118)
P
k+1
(x
k+1
)
= 2m
k+1,2
(4.119)
(4.120)
4.4 Valor medio integral
O tamanho da letra indica que o assunto desta se c ao e mais difcil. Voce pode optar por
salt a-lo se achar que a discuss ao anterior sobre valor medio @ deixou convencid@.
Vamos precisar do valor medio integral em nossa constru c ao dos splines e como este tipo
de valor medio e muito importante e ser a usado muito no captulo 0, vamos fazer aqui uma
revis ao deste assunto de C alculo.
Denimos:
Deni cao 2 (Valor medio integral) Valor medio integral Se f for integravel no intervalo
[a, b] entao
V almed(f)
[a,b]
=
1
b a
b
Z
a
f(x)dx
CAP
[0.5,0.5]
(4.121)
a fun c ao caracterstica do intervalo [0.5, 0.5], exatamente porque a medida do suporte,
[0.5, 0.5], e 1. Demos um exemplo, mas vamos continuar pensando numa fun c ao qualquer
positiva cuja integral seja 1.
Esta quest ao do valor medio est a longe de ser obvia. Temos que demonstr a-la, provar que
e verdade.
Vale a pena discutir um t opico muito importante que e Valor medio integral.
Vamos come car analisando qual e o signicado da integral
g = 1 (4.122)
quando g for uma fun c ao positiva
23
, denida em um intervalo limitado [, ].
Integral no sentido
24
de Riemann e area! quer dizer que podemos calcular aproximada-
mente
f(x)g(x)dx = V alMed
g,[,]
(f) (4.126)
que chamamos de Valor medio integral de f relativo `a g, no intervalo [, ].
Em geral as fun c oes usadas para calcular valor medio, s ao fun c oes equilibradas em torno do
zero, o ponto central do gr aco, e s ao translatadas para uma certa posi c ao, para al fazer o valor
medio da fun c ao que interessa, como e o caso de
[0.5,0.5]
, que alem do mais e uniforme ao
longo do intervalo [0.5, 0.5] e consequentemente ela produz uma autentica media aritmetica
de f no intervalo.
Quando a medida da regiao de correcao diminue, esta media tende para o valor de f, no
ponto central da regiao de correcao, se ele existir.
Quando a fun c ao f for contnua, este valor concide com algum valor de f no intervalo em
que a media est a sendo calculada
32
. Se a fun c ao for descontnua ele representa uma proposta
de corre c ao da fun c ao. Esta ideia e essencial em diversas areas hoje, sob a rubrica correcao
da informacao.
Veja na gura (g. 4.11) p agina 144, a ilustra c ao da regiao de correcao.
Esta quest ao da media, a sua dependencia de uma fun c ao-peso, est a longe de ser obvia.
Mas se voce raciocinar um pouco, chegar a ` a conclus ao que deve ser assim. Por exemplo,
28
quase, porque a soma de Riemann,(eq. 124), n ao e 1, ela e aproximadamente 1
29
e mais preciso o c alculo da media aritmetica
30
e o valor medio integral e uma media ponderada
31
o adjetivo vicidadas tem sentido tecnico, aqui, mas voce pode facilmente extrapolar o
sentido da frase para outros contextos menos tecnicos...como no c alculo da ina c ao. A ina c ao
e poltica! os pre cos s ao polticos! os juros s ao polticos!
32
esta e uma propriedade das fun c oes contnuas
CAP
g = 1 (4.127)
entao
V alMed
g,[,]
=
f(x)g(x)dx (4.128)
e o valor medio integral de f relativamente a g no intervalo [, ]. E se g for equilibrada no
intervalo [, ] no sentido de que tenha a mesma area a esquerda e a direita do ponto central
a deste intervalo, entao
a [, ] ; V alMed
g,[,]
=
f(x)g(x)dx (4.131)
ou seja, apenas dizer que e o valor medio.
E o acontece, no graco (g. 4.9), pagina 141 em
relacao ao ponto c em que a funcao pode nem siquer estar denida.
Aproveitemos para ver que o valor medio serve para denir o valor f(c) que faltava para
f ou que tinha sido calculado de forma errada.
Este e um metodo que os estatsticos usam frequentemente, e tambem muito usado nas
telecomunicacoes, restauracoes de arquivos, recuperacao de dados.
33
aqui tem um erro, veja observa c ao mais a frente
CAP
1
(x) = 2(x + 4); f
1
(2) = 4
portanto se somarmos:
h(x) = f(x) + 4
teremos
h(2) = f
1
(2); h
(2) = f
1
(2)
CAP
_
x 4 0
x 2 f
1
(x)
x 2 f(x) + 4
x 4 f
2
(x) = (x 4)
2
x > 4 0
(4.137)
Esta func ao se anula fora do intervalo [4, 4], por contru c ao e diferenci avel
e sua integral vale
4
_
4
g(x)dx = (4.138)
=
2
_
4
f
1
(x)dx + (4.139)
+
2
_
2
(f(x) + 4)dx + (4.140)
+
4
_
2
f
2
(x)dx (4.141)
2
_
4
f
1
(x)dx =
2
_
0
x
2
dx =
8
3
(4.142)
2
_
2
(f(x) + 4)dx = 16
16
3
=
32
3
(4.143)
4
_
2
f
2
(x)dx =
8
3
(4.144)
g(x) =
48
3
(4.145)
Dena ent ao F(x) =
3
48
g(x) e temos assim uma fun c ao cuja integral e 1
sendo diferenci avel na reta. O gr aco de F pode ser vista na gura (4.8)
p agina 139,
4. estoque de n ucleos Mostre que se uma fun c ao f tiver integral 1 ent ao
g(x) = f(x) tambem tem integral 1.
CAP
E esta a forma de fazermos produto de convolu cao entre duas fun coes.
Uma delas ca com o gr aco xo, a outra, tem seu gr aco translatado
para um ponto a, Shapiro,[6], chama isto de media volante e logo voce vai
ver porque.
Neste ponto calculamos a integral do produto das duas fun c oes, o resultado
e f
[0.5,0.5]
(a), o valor do produto de convolu cao no ponto a. Exerccio
(resolvido em seguida) escreva a equa cao da transla cao
[0.5,0.5]a
da
fun cao
[0.5,0.5]
para o ponto a.
A cada novo deslocamento (transla cao) do gr aco de
[0.5,0.5]
, o peso se
deslocando novamente, para um ponto b e nova integral corresponde ao
calculo de f
[0.5,0.5]
(b), o valor do produto de convolu cao no ponto b.
Leitura produto de convolu cao de f por
[0.5,0.5]
no ponto b, a ex-
press ao formal
37
seria (errada, como j a @ advertimos)
f(x)
b
(x)dx =
[0.5,0.5]
2
[0.25,0.25]
3
2
[
1
3
,
1
3
]
5
[0.1,0.1]
1
2
[1,1]
1
4
[2,2]
1
10
[5,5]
1
20
[10,10]
[0,1]
2
[0,0.5]
3
2
[0,
2
3
]
1
20
[0,20]
[1,0]
2
[0.5,0]
3
2
[
2
3
,0]
1
20
[20,0]
2. Podemos classicar os n ucleos denidos na quest ao anterior como (1)
com tendencia ` a esquerda, (2) com tendencia `a direita ou (3)equilibrados.
Descubra quais cam em cada uma dessas classes.
3. Para cada um dos n ucleos apresentados no primeiro exerccio, indique a
medida da respectiva regiao de corre cao que lhe est a associada.
4. media viciada O gr aco seguinte representa f, f g em que g e um nucleo
tendencioso (` a direita, ou ` a esquerda). Decida qual e a tendencia de g,
analisando o gr aco Veja na gura (g. 4.12) p agina 145,
Deni cao correta da convolu cao
Esta e uma se cao difcil, o que n ao signica que nao seja para os comuns mortais.
Aquilo que e difcil apenas exige mais esfor co para ser adquirido.
E preciso,
CAP
f(x)g
a
(x)dx (4.152)
Observe que estamos calculando a integral sobre o conjunto mais amplo
em que f esteja denida, a reta R.
E possvel que esta equa c ao n ao tenha
CAP
f(x)dx (4.153)
existir, e se g for a fun cao caracterstica de um intervalo fechado, [, ],
entao
f g(a) =
f(x)g
a
(x)dx = (4.154)
=
f(x) g(a x)
. .
troca de sinal
dx = (4.158)
y = a x = x = a y = dx = dy (4.159)
e
x
2
dx =
2 (4.165)
g(x) =
1
2
f(x) (4.166)
g(x)dx = 1 (4.167)
e assim a func ao g(x) =
1
2
f(x) e um n ucleo tendo por suporte a reta R.
Quer dizer que se usarmos g como n ucleo para calcular uma convolu c ao f g
CAP
_
x + 0.5 < 0.5 f f(x) = 0
x + 0.5 [0.5, 0.5] f f(x) =
x+0.5
_
0.5
dy
x 0.5 [0.5, 0.5] f f(x) =
0.5
_
x0.5
dy
x 0.5 > 0.5 f f(x) = 0
(4.173)
Podemos melhorar as premissas no conjunto de equa c oes re-escrevendo-as como
_
_
x < 1 f f(x) = 0
x [1, 0] f f(x) = x + 0.5 (0.5) = x + 1
x [0, 1] f f(x) = 0.5 (x 0.5) = 1 x
x > 1 f f(x) = 0
(4.174)
e voce pode ver o gr aco da convolu c ao na gura (g. 4.14) p agina 150.
0
1
1
Figura 4.14: quadrado de convolu c ao da fun c ao caracterstica
Observe! A convoluc ao de duas fun c oes descontnuas, resultou numa fun c ao
contnua, f f. A convoluc ao n ao existe para ser calculada ` a m ao, e o c alculo
acima mostra que ele pode ser bastante complicado, em geral, com muitas equa c oes
e hip oteses. Vamos ver isto no pr oximo exemplo.
Mas o principal resultado deste exemplo e f f e um 1-splines. Estamos
assim nos aproximando do objetivo do captulo... e para melhorar o animo,
no meio de tantas contas, vamos calcular f f f que podemos antecipar que
ser a um 2-splines coisa que anteriormente dissemos que seria difcil de calcular
manualmente.
Exemplo 15 2-splines por convolu c ao
Queremos calcular f f f, e como o produto de convolu c ao e associativo,
temos f f f = f (f f) = (f f) f o que nos diz que vamos aproveitar o
resultado do exemplo anterior.
CAP
_
x + 0.5 < 1 f f f(x) = 0
x + 0.5 [1, 0]
x+0.5
_
1
f f(y)dy
x + 0.5 [0, 1]; x 0.5 [1, 0]
0
_
x0.5
f f(y)dy +
x+0.5
_
0
f f(y)dy
x 0.5 [0, 1]
1
_
x0.5
f f(y)dy
x 0.5 > 1 f f f(x) = 0
(4.179)
Re-escrevendo as equa c oes, temos:
_
_
x < 1.5 f f f(x) = 0
x [1.5, 0.5]
x+0.5
_
1
(y + 1)dy
x [0.5, 0.5]; x 0.5 [1, 0]
0
_
x0.5
(y + 1)dy +
x+0.5
_
0
(1 y)dy
x [0.5, 1.5]
1
_
x0.5
(1 y)dy
x > 1.5 f f f(x) = 0
(4.180)
CAP
_
x < 1.5 f f f(x) = 0
x [1.5, 0.5]
(x+
3
2
)
2
x [0.5, 0.5]
3
4
x
2
x [0.5, 1.5]
(x
3
2
)
2
x > 1.5 f f f(x) = 0
(4.181)
Para simplicar a notac ao, vamos chamar g = f f f. Queremos vericar se
g e contnuamente deriv avel, de clase C
1
: uma polinomial de grau 2 de classe
C
1
.
Primeiro a continuidade, o que basta vericar os valores de cada uma das
equac oes nos extremos dos intervalos onde elas est ao denidas.
g(1.5) = 0 ` a direita e ` a esquerda !
g(0.5)
=
(0.5+
3
2
)
2
2
= 0.5 ` a esquerda, e ` a direita g(0.5)
+
=
3
4
(0.5)
2
= 0.5 e as duas equa c oes concidem ` a direita e ` a esquerda
!
g(0.5)
=
3
4
(0.5)
2
= 0.5 ` a esquerda, e ` a direita g(0.5)
+
=
(0.5
3
2
)
2
2
=
0.5 as duas equac oes concidem ` a direita e ` a esquerda !
g(1.5) = 0 ` a direita e ` a esquerda !
e provamos que g e contnua.
Vericando que a derivada e contnua.
g
(1.5)
+
=
2x+3
2
|
1.5
= 0 concidindo ` a direita e ` a esquerda !
g
(0.5)
=
2x+3
2
|
0.5
= 1 g
(0.5)
+
= 2x|
0.5
= 1 concidindo ` a
direita e ` a esquerda !
g
(0.5)
= 2x|
0.5
= 1 g
(0.5)
+
=
2x3
2
|
0.5
= 1 concidindo ` a direita
e ` a esquerda !
g
(1)
=
2x3
2
|
1.5
= 0 concidindo ` a direita e ` a esquerda !
Vericamos assim que g e contnua e que g
bola tangentes
duas a duas no ponto (0.5, g(0.5)) e no ponto (0.5, g(0.5)). As parabolas
externas sao tangentes ao eixo OX e voce pode ver o graco de g, feito `a mao,
na gura (g. 4.15) p agina 162. Na mesma gura voce pode ver o graco, feito
com Gnuplot, das tres parabolas, e usando os comandos do Gnuplot g(x)=
(x<-1.5)?0:x<-0.5?0.5*(x+3.0/2.0)**2:
x<0.5?0.75-x**2:x<1.5?0.5*(x-3.0/2.0)**2:0
set xrange [-1.5:1.5] plot g(x),0 voce pode obter o terceiro graco
que tambem aparece na referida gura. Observe a barra invertida na linha em
CAP
g
a
(x)dx =
g(x)dx = 1
para todo n umero real a = 0.
(b) Fa ca o gr aco de g
2
, g
3
, g
4
, g1
3
sugest ao use gnuplot para fazer estes
gr acos.
3. splines c ubico - formato arbitr ario
(a) Fa ca o gr aco da fun c ao
_
_
x < 4 x + 8
x [4, 1] 2
x [1, 0.5] 1
x [0.5, 1] |2x|
x [1, 4] 2
(b) Amacie a fun c ao cujo gr aco foi feito no item anterior, multiplicando-
a por convolu c ao, sucessivamente, pelos n ucleos g
2
, g
3
, g
4
e fa ca um
laudo do resultado.
CAP
|) = 2|a| (4.183)
Max|P| = a
2
2|a| == |a| 2 (4.184)
Se zermos uma transla cao neste graco
42
a equa cao de P sera
P(x) = (x a)(x b)
em que a, b sao as duas raizes do polinomio. Da parte anterior do pro-
blema deduzimos que a distancia entre as razes e no maximo 4 para que
a desigualdade se de, portanto se |a b| 4
2. (ex. 9) p agina 118
O m aximo m odulo de P
(1)| = 2 = |P
(1)|; |P
(0)| = 1
logo o m odulo m aximo de P
e 2.
O m odulo m aximo da fun cao do terceiro grau P, sobre o intervalo em que
ela tem razes, se d a nas razes da derivada:
_
1
3
e vale, em modulo
_
1
3
(
1
3
1) =
_
1
3
2
3
< 2
demonstrando o que desejavamos.
3. (ex. 10) p agina 118
4. Polinomio interpolando pontos no plano
5. (ex. 11g) p agina 119
P(x) = (x+3)*(x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-3)
P1(x)= (x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-3)
P2(x)= (x+3)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-3)
P3(x)= (x+3)*(x+2.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-3)
P4(x)= (x+3)*(x+2.5)*(x+1.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-3)
P5(x)= (x+3)*(x+2.5)*(x+1.5)*(x+0.5)*(x-1.5)*(x-2.5)*(x-3)
42
movimento rgido, n ao altera as propor c oes no gr aco
CAP
k
(x
k
) = d
k
f
k
(x
k+1
) = y
k+1
f
k
(x
k+1
) = d
k+1
8. (ex. 2) p agina 123
A gura (g. 4.16) p agina 163, mostra, comparativamente, a aproxima cao
polinomial cl assica, de Lagrange com a aproxima cao polinomial por peda cos.
CAP
g
a
(x)dx = (4.199)
ag(ax)dx = (4.200)
1
a
ag(ax)d(ax) = (4.201)
a
a
g(ax)d(ax) = (4.202)
a
a
g(y)d(y) = (4.203)
g(y)d(y) (4.204)
(b) Com Gnuplot dena
g(x)= (x<-1.5)?0:x<-0.5?0.5*(x+3.0/2.0)**2:
x<0.5?0.75-x**2:x<1.5?0.5*(x-3.0/2.0)**2:0
CAP
_
x < 4 x + 8
x [4, 1] 2
x [1, 0.5] 1
x [0.5, 1] |2x|
x [1, 4] 2
(b) Amacie a fun cao cujo gr aco foi feito no item anterior, multiplicando-
a por convolu cao, sucessivamente, pelos n ucleos g
2
, g
3
, g
4
e fa ca um
laudo do resultado.
4.7 Vocabulario
correc~ao da informac~ao, scilab
corre cao da informa cao
Vamos dar aqui um exemplo ilustrativo sobre a corre cao da informa cao.
Observe o seguinte texto:
Mituo isneterasstne
De aorcdo com uma pqsieusa de uma uinrvesriddae ignlsea, n ao
ipomtra em qaul odrem as lrteas de uma plravaa et aso, a uncia
csioa iprotmatne e que a piremria e utmlia lrteas etejasm no lgaur
crteo. O rseto pdoe ser uma b cguana ttaol que vcoe pdoe anida
ler sem pobrlmea. Itso e poqrue n os n ao lmeos cdaa lrtea isladoa,
mas a plravaa cmoo um tdoo.
Mutitu isneterassten
De aorcod com uma pqsieuas de uma uinrvesriddea ignlsae, n ao
ipomtar em qaul odrem as lrtesa de uma plravaa et aso, a uncai
csioa iprotmaten e que a piremrai e utmlai lrtesa etejams no lgaru
crtoe. O rseto pdoe ser uma b cguaan ttalo que vcoe pdoe anida
ler sem pobrlmae. Itso e poqreu n os n ao lmeos cdaa lrtea isladoa,
mas a plravaa cmoo um tdoo.
O texto explicou mal. A razao e outra, e um caso de corre c ao da in-
forma c ao que vou agora explicar.
CAP
CAP
k=0
f(x
k
)x =
n1
k=0
f(a +kx)x (5.11)
a segunda formula cao e apropriada para programas de computa cao, a primeira
e mais resumida e pr opria para escrever em textos de Matematica. Com este
calculo do x evitamos que haja um retangulo a mais ou a menos na cobertura
da area representada pela integral que e o defeito apresentado na (g. 5.2).
Observe que o ultimo n o n ao e b, mas sim b x.
Para cada um dos subintervalos, consideraremos a altura
f(a +kx) = f(x
k
)
em que k varia desde 0 ate n 1 :
f(a), f(a + x), f(a + 2x), f(a +kx), , f(a + (n 1)x). (5.12)
Quer dizer que os retangulos tem por area:
f(a)x, f(a + x)x, f(a + 2x)x, f(a + (n 1)x)x (5.13)
A soma destas areas e o valor aproximado da integral, agora n ao sabemos se
e por falta ou por execesso, mas, com certeza e um valor medio, entre o calculo
por excesso e o calculo por falta.
Experimente as fun coes
riemann(), riemann grafun()
no arquivo riemann.py. Digite
python riemann.py
depois de editar o arquivo. Vejas as ultimas linhas do arquivo riemann.py que
trazem instru coes de como usar o programa. Nao se preocupe em entender
o programa, agora. Volte a ler o programa em outras ocasioes, ao longo do
captulo.
Deni cao 6 Soma de Riemann
Considere o intervalo [a, b] e uma fun c ao que seja integr avel neste intervalo.
Denimos uma soma de Riemann, de ordem n
2
, associada a uma parti c ao
uniforme
3
x
0
= a (5.14)
.
.
. (5.15)
x
k
= a +kx (5.16)
.
.
. (5.17)
x
n1
= a + (n 1)x = b x (5.18)
b = a +nx (5.19)
2
ordem n porque representa a soma de n parcelas
3
J a dissemos que as parti c oes n ao precisam ser uniforme, estamos fazendo uma escolha.
CAP
k=0
f(a +kx)x. (5.20)
Observe que em todos os retangulos consideramos a altura dada pelo pri-
meiro extremo do correspondente subintervalo. Quer dizer que, no intervalo
[x
k
, x
k+1
] = [a +kx, a + (k + 1)x]
a altura considerada e f(x
k
).
Poderiamos ter usado o segundo extremo obtendo a formula
S
n
(f) =
n
k=1
f(a +kx)x. (5.21)
que voce deve se convencer de que representa uma aproxima c ao equivalente da
integral . Dissemos equivalente, os valores nao sao iguais, fa ca as contas e veja.
Mas o erro entre as duas expressoes e pequeno, ou tende a ser pequeno, quando
a medida dos subintervalos decresce.
Exerccios 21 Soma de Riemann superior ou inferior
Objetivo: adquirir uma vis ao intuitiva das integrais superior e inferior e
compreender a relac ao
S
n
(f) S
n
(f)
para uma mesma partic ao do intervalo [a, b] quando f for positiva.
Se os exerccios lhe parecerem claros, n ao perca o seu tempo fazendo-os.
1. Divida o intervalo [3, 3] em 10 subintervalos iguais, represente geome-
tricamente a aproximac ao da area
3
_
3
f(x) =
3
_
3
x
2
usando sempre o m aximo de f em cada sub-intervalo. Esta soma de Rie-
mann assim obtida se chama soma superior de Riemann
S
10
(f)
e vale a desigualdade
3
_
3
f(x) S
10
(f)
Observe que escrevemos menor ou igual porque, por uma casualidade, se
pode obter uma igualdade. Se f for constante vale a igualdade.
CAP
k=0
f(a +kx)x. (5.22)
e uma aproxima c ao por falta da integral
b
_
a
f e
S
n
(f) =
n
k=1
f(a +kx)x. (5.23)
e uma aproxima c ao por excesso da integral. Fa ca um gr aco ilustrativo.
5. Prove que, se f for uma fun c ao decrescente,
S
n
(f) =
n1
k=0
f(a +kx)x. (5.24)
CAP
k=1
f(a +kx)x. (5.25)
e uma aproximac ao por falta da integral. Fa ca um gr aco ilustrativo.
6. Use o programa riemann() para calcular, aproximadamdente, as integrais
a)
3
_
3
2x + 3 b)
3
_
0
3 2x
c)
0
_
3
5 2x d)
3
_
3
2x x
2
e)
3
_
2
x
2
2x + 3 f )
3
_
0
2 2x
2
g)
10
_
3
4xsen(x) + 3x
2
h)
10
_
1
x
2
cos(x) 2x 3
i)
3
_
3
3x
2
2x j)
3
_
3
(x
3
x
2
x + 4)sen(x)
k)
3
_
0
sen(x) l)
0
_
3
cos(x)
m)
3
_
3
x
2
cos(x) 2xsen(x) cos(x) n)
3
_
0
1 +x
2
cos(x)
e compare o resultado usando o Teorema Fundamental do C alculo, (em
alguns casos voce vai ter que usar integra c ao por partes).
Na proxima se cao alguns calculos feitos com um programa em Python vao
ilustrar numericamente e gracamente o signicado da soma de Riemann.
5.2 Integral no sentido de Riemann
Falamos diversas que as somas de Riemann eram aproxima coes da integral e
vamos agora ver como. A teoria que vamos apresentar e um pouco simplicada,
deixamos que voce leia uma teoria mais completa num livro de Calculo. Um
dos itens de nossa simplica cao reside em que vamos considerar apenas malhas
uniformes, este defeito e importante!
O metodo algortmico para calcular integrais e
Temos uma fun cao
[a, b]
f
R
que desejamos provar que e integravel;
CAP
k+1
<<
k
; (5.26)
a cada malha desta sucess ao associamos uma soma de Riemann para f
obtendo assim uma sucess ao de somas de Riemann
k
S
k
(f); (5.27)
Se qualquer sucess ao de somas de Riemann, assim construda, tiver o
mesmo limite, este limite comum e
b
_
a
f (5.28)
este e um dos metodos para denir n umeros reais, um n umero real e o limite
comum de uma classe de equivalencia de sucess oes convergentes de n umeros
racionais.
Podemos escrever uma deni cao para fun cao integr avel a Riemann:
Deni cao 7 integral no sentido de Riemann Seja
[a, b]
f
R.
f e integr avel no sentido de Riemann se qualquer sucess ao de somas de Riemann
obtida por renamentos arbitr arios de uma parti c ao de modo que a medida dos
subintervalos tendam a zero, denir um mesmo n umero real.
Este unico n umero real e
b
_
a
f.
Observa cao 11 Parti c oes uniformes
Observe que na deni c ao n ao zemos menc ao ` as parti coes uniformes. Para
denir a integral precisamos de famlias arbitr arias de parti c oes.
Mas neste texto somente faremos uso de parti coes uniformes. Para que voce
que alerta, a fun c ao
[1, 1]
f
R; x
1
x
(5.29)
seria integr avel se usarmos apenas parti coes uniformes e na verdade esta fun c ao
n ao e integr avel.
4
que na linguagem da estatstica representa uma amostragem
5
na linguagem da estatstica seria uma amostragem compatvel, ou compar avel, com a
anterior
CAP
k=0
f(x
k
)x
n
; (5.31)
S
n
(h) =
n
k=0
h(x
k
)x
n
; (5.32)
CAP
k=0
g(x
k
)x
n
; (5.33)
S
n
(h +g) =
n
k=0
(h(x
k
) +g(x
k
))x
n
= (5.34)
n
k=0
f(x
k
)x
n
= S
n
(f) (5.35)
o que nos mostra que os n umeros
b
_
a
f;
b
_
a
h +g (5.36)
sao iguais, porque
As equa coes (30)-(35) valem para qualquer que sejam as parti coes esco-
lhidas no intervalo de integra cao;
Logo a a soma dos limites e igual ao limite da soma, e provamos assim
que a soma das integrais e igual a integral das somas.
E f acil usar uma pequena altera cao desta demonstra cao para provar outra
propriedade tambem muito util:
b
_
a
Kf = K
b
_
a
f (5.37)
se f for uma fun cao integr avel e K for uma constante qualquer.
Temos assim o exemplo
3
_
3
10x
2
+ 2x + 7 = 10
3
_
3
x
2
+ 2
3
_
3
x +
3
_
3
7. (5.38)
Exerccios 22 Express ao formal do c alculo da integral
1. Escreva somas de Riemann, com 10 sub-intervalos, para aproximar cada
uma das integrais abaixo:
a)
3
_
1
1
x
b)
3
_
3
1
1+x
2
c)
3
_
3
2x+3
4+x
2
2. Re-escreva as somas de Riemann aumentando a precis ao, de modo que
os sub-intervalos tenha medida 0.1 Use uma calculadora ou computador e
calcule estas integrais.
CAP
0
k
2
n
2
1
n
;
n
1
k
2
n
2
1
n
(5.40)
identique quem e quem. Use riemann() in riemann.py.
5. Verique que, das duas somas de Riemann abaixo, uma fornece uma apro-
ximac ao por falta e a outra por excesso da integral
1
_
0
x
p
; p N ; p > 1 ;
n1
0
k
p
n
p
1
n
;
n
1
k
p
n
p
1
n
(5.41)
identique quem e quem . Use riemann() in riemann.py.
6. Verique experimentalmente (somas de Riemann) que
1
_
0
x
2
=
1
3
. Use
riemann() in riemann.py.
7. soma de RiemannProve a desigualdade:
n1
k=0
k
2
< n
3
1
_
0
x
2
<
n
k=1
k
2
(5.42)
8. soma de RiemannProve a desigualdade:
n1
k=0
k
3
< n
4
1
_
0
x
3
<
n
k=1
k
3
(5.43)
CAP
k=0
k
3
<
a
_
0
x
3
<
a
3
n
4
n
k=1
k
3
(5.44)
10. soma de RiemannProve a desigualdade:
n1
k=0
k
p
< n
p+1
1
_
0
x
p
<
n
k=1
k
p
(5.45)
11. soma de RiemannProve a desigualdade:
a
4
n
4
n1
k=0
k
3
<
a
_
0
x
3
<
a
4
n
4
n
k=1
k
3
(5.46)
12. soma de RiemannProve a desigualdade:
a
p+1
n
p+1
n1
k=0
k
p
<
a
_
0
x
p
<
a
p+1
n
p+1
n
k=1
k
3
(5.47)
13. Expresse como uma soma de areas de tri angulos is osceles, (ou de ret angulos0
uma aproxima c ao para a area do crculo de raio 1.
5.2.2 Calculo numerico da integral
Vamos calcular as areas dos retangulos limitados pelo graco de
f(x) = x
2
+ 2x + 1
ao longo de uma parti cao do intervalo [3, 3].
Os dados contidos na tabela 5.1 na p agina 180, mostram a sada de dados
de um programa em Python para o calculo da integral do exerccio 3, com
x = 0.2.
O gr aco 5.3, p agina 181, mostra os retangulos cujas areas se encontram
calculadas abaixo. O gr aco foi feito com auxlio do Gnuplot.
A tabela 5.1 mostra os valores da integral ao longo dos sub-intervalos da
parti cao.
deltax = 0.2
Valor aproximado da integral 24.104801.
Repetindo os calculos com valores menores para o x temos o seguinte:
CAP
k=1
f(a +kx)x (5.53)
e escreva a express ao da soma de Riemann em que x
e a metade de
x =
ba
n
.
6. Suponha que os valores
V
0
, V
1
, , V
n1
(5.54)
s ao os resultados das medidas da velocidade de um carro tomadas a inter-
valos regulares (iguais) do tempo t [a, b].
(a) Qual a velocidade media V
m
?
CAP
k=0
f
k
x (5.63)
em que f
k
representa o supremo de f no intervalo [x
k
, x
k+1
]. Mas n ao h a
programas de computador que consigam calcular supremos facilmente. De forma
an aloga a soma de Riemann inferior se escreve
S
n
(f) =
n1
k=0
f
k
x (5.64)
em que f
k
representa o nmo de f no intervalo [x
k
, x
k+1
]. A mesma observa cao
se pode fazer sobre nmos e programas de computador. A f ormula matem atica
para calcular uma aproxima cao, usando trapesios, de
b
_
a
f ser a a media aritmetica
de S
n
(f), S
n
(f) que e
S
n
(f) +S
n
(f)
2
=
n1
k=0
f
k
+f
k
2
x (5.65)
que n ao e nada f acil de produzir com um programa de computador. Esta f ormula
foi muito utilizada nos tempos que em que calculavamos aproxima coes de in-
tegrais manualmente. Hoje perdeu o sentido porque uma soma de Riemann
calculada com um programa com valor muito pequeno para x nos dara apro-
xima coes que dicilmente conseguiriamos com a regra do trapesio.
5.4 Integral de fun coes polinomiais
Nos cursos de C alculo mostramos que
b
_
a
f(x)dx =
b
_
a
x
n
dx =
x
n+1
n + 1
|
b
a
=
b
n+1
n + 1
a
n+1
n + 1
= F(b) F(a)
que e a expressao do Teorema Fundamental do C alculo para as fun coes polino-
miais. Vou agora usar este teorema para o calculo da integral das aproxima coes
quase-splines de dados.
CAP
k=0
ba
_
0
a
k
x
k
dx (5.69)
A =
3
k=0
a
k
x
k+1
k+1
|
ba
0
(5.70)
A =
3
k=0
a
k
(ba)
k+1
k+1
(5.71)
em que
na equa cao (68) z a chamada mudan ca de vari avel para transformar o
intervalo de integra cao de [a, b] para [0, b a];
na equa cao (69) estou trocando a ordem dos smbolos de soma e integral
(distributividade da integral relativamente ` a soma);
na equa cao (70) apliquei o Teorema Fundamental do C alculo a cada um
dos mon omios;
e na equa cao (71) z a substitui cao nal usando a expressao simples obtida
em consequencia da mudan ca de vari avel.
Agora, se substituirmos a nota cao do intervalo [a, b] por um sub-intervalo
tpico da malha, com as correspondentes expressoes para os peda cos de po-
lin omio, teremos
[a, b] := [x
i
, x
i+1
] (5.72)
A := A
i
=
3
k=0
a
i,k
x
k+1
k+1
|
xi+1xi
0
(5.73)
b
_
a
f(x)dx
n1
i=0
A
i
(5.74)
b
_
a
f(x)dx
n1
i=0
3
k=0
a
i,k
(xi+1xi)
k+1
k+1
(5.75)
em que
na equa cao (72) substitui o intervalo [a, b] por um intervalo generico [x
i
, x
i+1
]
da parti cao (malha);
na equa cao (73) escrevi a expressao da integral peda cao de polinomio P
i
no subintervalo [x
i
, x
i+1
];
CAP
i,k
= x
i+1
x
i
(5.77)
de cada um dos sub-intervalos da malha considerada. A informa cao sobre o
fenomenos est a guardada nos coecientes da matriz dos splines e em alguma
forma tambem na medida dos intervalos. Quando as malhas forem informes
esta medidas ser ao todas iguais a e ja vimos nas discussoes anteriores que
esta simplica cao em geral n ao traz nenhuma distor cao signicativa na analise
dos fen omenos. Vou sintetizar estes resultados em alguns teoremas para tornar
f acil a referencia.
Teorema 11 Integral de quase-splines - parti c ao n ao uniforme
Considere uma aproximac ao quase-spline de
f : [a, b] R (5.78)
determinada pela matriz
(a
i,k
) i = 0 . . . n 1 ; k = 0 . . . 3 (5.79)
e pela matriz
(
i
) i = 0 . . . n 1 (5.80)
das medidas dos sub-intervalos de [a, b].
b
_
a
f(x)dx
n1
i=0
3
k=0
a
i,k
(
i
)
k+1
k + 1
(5.81)
se a parti cao for uniforme temos um resultado um pouco simplicado
Teorema 12 Integral de quase-splines - parti c ao uniforme
Considere uma aproximac ao quase-spline de
f : [a, b] R (5.82)
determinada pela matriz
CAP
i=0
3
k=0
a
i,k
()
k+1
k + 1
(5.84)
em que e a medida comum a todos os sub-intervalos da malha considerada
em [a, b].
i=0
3
k=0
a
i,k
(
i
)
k+1
k + 1
(5.88)
e quando a parti cao for uniforme temos a seguinte aproxima cao do valor medio
Teorema 14 Valor medio aproximado de f - parti c ao uniforme
Considere uma aproxima c ao quase-spline de
f : [a, b] R (5.89)
determinada pela matriz
(a
i,k
) i = 0 . . . n 1 ; k = 0 . . . 3 (5.90)
O valor medio aproximado de f e
1
b a
n1
i=0
3
k=0
a
i,k
()
k+1
k + 1
(5.91)
em que e a medida comum a todos os sub-intervalos da malha considerada
em [a, b].
CAP
(x
k
)
4 3 1
1 0 2
2 7 0
6 5 6
Calcule a area da func ao polinomial por peda cos, f, de grau 3 que ela
determina.
Solu cao 11 Os coecientes dos polin omios
7
s ao
P
1
[4.00, 1.00] a
0
, a
1
, a
2
, a
3
3.0, 1.0, 0.33, 0.11
P
2
[1.00, 2.00] a
0
, a
1
, a
2
, a
3
0.0, 2.0 1.0, 0.296296
P
3
[2.00, 6.00] a
0
, a
1
, a
2
, a
3
7.0, 0.0, 0.75, 0.0
As integrais destes polin omios s ao (nos respectivos intervalos)
1
_
4
P
1
= 5.24999925 (5.92)
2
_
1
P
2
= 12.000006 (5.93)
6
_
2
P
3
= 12 (5.94)
6
_
4
f = 18.75 (5.95)
Veja o gr aco da func ao polinomial por peda cos, na gura (g. 5.5) p agina
193.
2. Calcule a quantidade do fen omeno descrito pelos dados
x
k
f(x
k
) f
(x
k
)
4 3 1
1 0 2
2 7 0
6 5 6
usando a regra do trapesio e compare com o resultado obtido usando apro-
ximac ao polinomial do terceiro grau.
7
os coecientes foram calculados com o programa ex0732.c
CAP
(x
k
)
0 3
3.23
1
5 5
5.15
1
10 5.2231
5.22325.2231
Como selecionamos dois pontos seguidos e desprezamos os tres seguintes, e
razo avel considerar que a dist ancia entre os n os seja 5 e assim escolhemos
{0, 5, 10} como o conjunto de n os. Usando o programa ex0732.c para
calcular os coecientes dos polin omios, temos
P
1
(x) = 3.0 + 0.2x + 0.14x
2
0.02x
3
(5.96)
P
2
(x) = 5.0 + 0.1x 0.013248x
2
+ 0.000434x
3
(5.97)
As integrais, em cada subintervalo, s ao
5
_
0
P
1
= 20.208334 (5.98)
10
_
5
P
2
= 25.765875 (5.99)
e a quantidade do fen omeno e 45.974209. O valor medio e 4.59742
A representac ao gr aca da modelagem deste fen omeno pode ser vista na
gura (g. 5.6) p agina 194,
0
1
2
3
4
5
6
0 1 2 3 4 5 6 7 8 9 10
"dados"
Figura 5.6: Modelagem com polin omios por peda cos
CAP
k=0
xk+1
_
xk
P
k
(5.101)
Ha v arias formas de apresentarmos splines, e um pouco disto foi visto no
captulo 4 quando tambem chamamos sua aten cao de que aqui estamos usando
uma vers ao fraca de splines que chamamos de quasi-splines porque apenas exigi-
mos a continuidade da derivada das fun coes polinomiais por peda cos. Os nossos
quasi-splines sao de classe C
1
.
Exerccios 25 Integral aproximada
1. Considere
2.
3.
8
que tem n 1 derivadas contnuas
Captulo 6
Equacoes diferenciais
ordinarias
Vou apresentar alguns metodos que permitem, sobre
tudo, uma visualiza cao da solu cao aproximadas de
equa coes diferenciais de primeira ordem da forma
dy
dx
= f(x, y)
considerada uma condi cao inicial (x
0
, y
0
) e uma
regiao retangular da qual esta condi cao inicial e um
ponto interior.
Resolver exatamente uma equa cao diferencial e uma tarefa difcil mesmo nos
casos em que sabemos tudo
1
, equac oes diferenciais lineares.
Durante a segunda metade do seculo 20 foram desenvolvidos complemen-
tos computacionais para metodos desenvolvidos ja no seculo 19.
E desta fusao
dos metodos antigos, com os avan cos computacionais que trataremos aqui para
mostrar como podemos resolver aproximadamente uma equa cao diferencial or-
dinaria.
As equa coes diferenciais de ordem superior a um podem ser reduzidas, atraves
de sistema de equa coes ` as equa coes de primeira ordem, e na parte nal do
captulo mostrarei alguns exemplos desta tecnica. Entretanto o leitor nao deve
perder de vista uma verdade crucial, cada equa c ao diferencial e um novo pro-
blema, n ao temos uma teoria universal para resolver estas equa coes e nem talvez
isto venha a existir no futuro. Por outro lado os metodos computacionais vem
se revelando cada vez mais ecazes em nos ajudar na constru cao das solu coes
1
teoricamente sabemos tudo, mas sabemos que nem sempre conseguiremos encontrar as
solu c oes....
196
CAP
, . . . , y
(n)
) = 0 (6.1)
em que as potencias da vari avel y representam as sucessivas de y em rela cao ` a
unica vari avel livre x sendo porisso que estas equa coes se denominam ordin arias,
o adjetivo indicando o caso univariado.
A vari avel nesta equa cao diferencial de fato e y, que e a incognita mas o
h abito de chamar os parametros livres de vari aveis persiste sendo um defeito que
n ao nos incomoda e naturalmente vou continuar usando esta terminologia. Se a
incognita, numa equa cao diferencial, tiver v arias vari aveis, a equa cao se chama
equa c ao diferencial parcial e na expressao da equa cao intervem as derivadas
parciais da incognita relativamente ` as vari aveis.
Neste livro vou tratar apenas de equa c oes diferenciais ordin arias. A maior
ordem de deriva cao e a ordem da equa cao.
Como j a observei, as equa coes de ordem superior a um podem ser transforma-
das num sistema de equa coes de primeira ordem por meios bastante engenhosos
e que dependem de cada equa cao, esta e a razao pela qual se estuda de forma
intensiva as equa coes de primeira ordem. Outra razao importante e a de que,
se interpretada de forma aproximada, derivadas de ordem superior a 1 indu-
zem nos calculo erros signcativos que e difcil de controlar. Isto se pode ver
facilmente numa listagem de quociente de diferencas de ordem 2, numa malha
sucientemente na, em volta de pontos em que a fun cao tenha uma oscila cao
muito intensa, como apresentei no primeiro captulo.
Entao vou me restringir nesta exposi cao ` as equa coes diferenciais do tipo da
equa cao (1) de ordem 1
F(x, y, y
) = 0 (6.2)
Esta equa cao, desde que satisfeitas as condi coes do Teorema da Fun cao
Implcita pode ser escrita na forma
y
= f(x, y) = 0 (6.3)
exceto possivelmente em cima de algumas curvas onde a derivada parcial de F
relativamente a terceira vari avel se anulasse portanto esta nova expressao e em
geral f acil de ser deduzida a partir da equa cao (2) o que justica que a grande
maioria dos textos parte diretamente de uma equa cao na forma (3) deixando as
expressoes das equa coes (1), (2) no preambulo como uma forma adequada de
iniciar falando de equa coes diferenciais.
Entao ser a a equa cao (3) que eu vou tomar como modelo para uma equa cao
diferencial ordinaria de primeira ordem neste captulo sendo esta uma expressao
bastante geral como acabei de expor.
O meu objetivo aqui e apresentar metodos para resolver de forma aproxi-
mada as equa coes diferenciais e sobretudo apresentar este metodos no contexto
atual em que a computa cao nos permite trabalhar.
CAP
= f(x, y) ; y
(x
0
) = f(x
0
, y
0
) (6.4)
o ponto (x
0
, y
0
) e comumente denominado condi c ao inicial.
Por exemplo, certos autores ainda fazem referencia ao metodo passo a passo
em que podemos obter um sucess ao de valores y
k
quando hoje podemos en-
contrar uma poligonal com um n umero grande de lados sendo estes lados ar-
bitrariamente pequenos representando uma aproxima cao de alta precisao para
um problema de valor inicial. A men cao anterior e apenas aos vertices desta
poligonal.
Aqui vamos melhorar, como apoio computacional, os metodos tradicionais
de uma forma que logo vamos descrever.
Com frequencia a vari avel livre usada e t quando se quer fazer referencia
a problemas din amicos. Como esta nota cao e puramente psicologica, eu vou
continuar usando x como parametro, mas vou me permitir a usar a linguagem
de equa coes dinamicas quando me parecer interessante.
Queremos obter uma poligonal a partir da condi cao inicial (x
0
, y
0
) para
frente, ou para tr as, quando x I, um intervalo aberto I contendo x
0
como o
indica a gura (g. 6.1) p agina 198, em que uma curva, a solu cao exata apa-
Figura 6.1: Uma poligonal-solu c ao aproximada
rece passando por um ponto, a condi c ao inicial, onde tambem se origina uma
poligonal, a solu cao aproximada que nos interessa. A gura tambem ilustra um
item importante neste problema que o domnio de validade da solu cao. A de-
termina cao desta domnio e consequencia dos coecientes variaveis da equa cao
ou da pr opria fun cao f(x, y). Por exemplo, a equa cao
y
=
x
y
(6.5)
CAP
=
x
y
= f(x, y) (6.7)
e eu escolhi este exemplo porque ele oferece um problema na implementa cao do
algoritmo: os pontos com tangentes verticais, em cima do eixo OX, tornam o
programa instavel. O mesmo aconteceria com a equa cao
y
=
x
y
(6.8)
2
alguns autores se referem indevidamente ` a serie de Taylor
CAP
=
x
y
Exerccios 26 1.
2.
3.
CAP
= f(x, y) ; y
(x
0
) = f(x
0
, y
0
) (6.17)
num domnio R
2
em que (x
0
, y
0
) .
A suposi cao de que seja um aberto nos deixa livre de preocupa coes com
a fronteira onde eventualmente as derivadas parciais de f deixassem de existir.
Na constru cao vamos ver quais sao as hipoteses necessarias para que o problema
possa ser resolvido.
A polinomio de Taylor de grau n produz uma fun cao polinomial tangente ao
gr aco de uma fun cao tangenciando ate a ordem de deriva cao correspondente
ao grau do polinomio.
6.2.1 Polinomio de Taylor do segundo grau
A reta tangente e a expressao do polinomio de Taylor de primeiro grau.
Podemos entao tomar a equa cao
(x
0
, y
0
) f
0
(x) = y
0
+f(x
0
, y
0
)(x x
0
) (6.18)
em que obtivemos uma fun cao do primeiro grau cujo gr aco e tangente ao gr aco
da curva-solu cao passando no ponto (x
0
, y
0
) e queremos expandir mais um termo
para obter uma expressao (polinomio) do segundo grau.
Para isto vamos formalmente expressar y
= z = f(x, y) (6.19)
y
(x
0
) = A
0
(6.20)
dz =
f(x,y)
x
dx +
f(x,y)
y
dy (6.21)
y
=
dz
dx
=
f(x,y)
x
+
f(x,y)
y
dy
dx
(6.22)
y
(x
0
) =
f(x,y)
x
|
(x0,y0)
+
f(x,y)
y
|
(x0,y0)
y
(x
0
) (6.23)
y
(x
0
) = A
1
(6.24)
f
0
(x) = y
0
+A
0
(x x
0
) +
A1
2
(x x
0
)
2
(6.25)
CAP
= f(x, y) ; y
(x
0
) = f(x
0
, y
0
) (6.27)
(x
0
, y
0
) f
0
(x) = y
0
+A
0,0
(x x
0
) +
A0,1
2
(x x
0
)
2
(6.28)
x
1
= x
0
+ x ; y
1
= f
0
(x
1
) (6.29)
.
.
. (6.30)
(x
k
, y
k
) f
k
(x) = y
k
+A
k,0
(x x
0
) +
Ak,1
2
(x x
0
)
2
(6.31)
x
k+1
= x
k
+ x ; y
k+1
= f
k
(x
k
) (6.32)
.
.
. (6.33)
(x
n
, y
n
) f
n
(x) = y
n
+A
n,0
(x x
0
) +
An,1
2
(x x
0
)
2
(6.34)
x
n+1
= x
n
+ x ; y
n+1
= f
n
(x
n
) (6.35)
O programa taylor.c e uma simples consequencia do programa euler.c
apenas acrescentanodo as fun coes necessarias para calcular A
k,0
, A
k,1
, e natu-
ralmente usando a nova expressao de f
k
no calculo dos pontos para obter o
gr aco.
6.2.2 Polinomio de Taylor de grau n
Poderiamos ser tentados em prosseguir estes calculos em busca de um polin omio
de Taylor de grau mais elevado. Como e facil de observar a partir do c alculo
feito acima, as contas cariam bem mais complicadas a cada nova ordem (grau
do polinomio).
A experiencia que temos com aproxima cao nos indica que outro caminho
pode ser tomado para obter melhor aproxima cao, por exemplo construir um
metodo hbrido, de Taylor, usando a mesma metologia acima.
Isto recairia na constru cao de splines ou quase-splines.
Referencias Bibliogracas
[1] DAzevedo, E.F. Romine, C. H. e Walker, D. W. Shared-Memory Emulation
is key to Billion-Atom Molecular Dynamics Simulation
- SIAM-News Vol 28 (5) - 1995
[2] Beazley, D. M. e Lomdahl, P. S. Large-Scale Molecular Dynamics on MPPs:
Part I
- SIAM-News Vol 28 (2) - 1995
[3] Borwein, Jon - nmbrth@listserv.nodak.edu 28/07/1997
www.cecm.sfu.ca/personal/jborwein/Kanada 50b.html
jborwein@@cecm.sfu.ca
[4] Cl audio, D. M. e Marins, J.M.
C alculo Numerico Computacional - 1994 editora atlas - 2a Edi cao
[5] Sper andio, D. Mendes, J. T. e Silva, L.H.M C alculo Numerico Prentice Hall
Brasil
[6] Shapiro, H. S Smothing and approximation of functions
Van Nostrand Reinhold Mathematical Studies - 24
[7] Franco, N.M.B. C alculo Numerico Prentice Hall Brasil
[8] Daubechies, Ingrid, Ten lectures on wavelets
- SIAM - Philadelphia, PA - 1992
[9] Dieudone Calcul Innitesimal
- 1968 - Collection Methodes - Herman - Paris.
[10] Eaton, John W. Octave - A high-level interactive language for numerical
computations
1996 ftp.che.utexas.edu/pub/octave/octave-M.N.tar.gz
205
REFER
ENCIAS BIBLIOGR
AFICAS 206
[11] Faculdade de Engenharia Mec anica - Unicamp
http://www.fem.unicamp.br/ em313/paginas/person/lavoisie.htm
[12] Saunders, M e Birkho, G - Algebra
MacGraw-Hill - 1968
[13] gnuplot um programa para fazer graco e alguns c alculos
http://www.gnuplot.info
[14] A enciclopedia livre na Internet
http://www.widipedia.org
[15] Linz, P. A critique of numerical Analysis.
- Bull. of AMS vol 19 no. 2 1989 (407,416)
[16] Meyer, Y Wavelets Algorithms and Applications
- SIAM - 1994
[17] Monagan e Neuenschwander
GRADIENT. Algortithmic Dierentiation in Maple
Pre-Print - Symbolic Computation Group
Institut f ur Wissenschftliches Rechnen
- ETH - Z urich - Switzerland
[18] Praciano-Pereira, T. C alculo numerico Computacional - Introdu c ao ` a lin-
guagem Pascal
- Editora da Universidade Estadual Vale do Acara u - 2000
http://www.4shared.com/le/14206895/ae074651/pascal.html
[19] C alculo numerico Computacional - Edi cao Eletronica
Laborat orio de Matematica Computacional - 2007
http://www.4shared.com/dir/1751707/4c187abc/sharing.html
[20] Praciano-Pereira, T Programas para C alculo Numerico - programas.tgz
http://www.4shared.com/dir/2041165/e14cc331/programas.html
[21] Praciano-Pereira, T Splines por convolu c ao
http://www.4shared.com/le/17757661/3515d0b6/convspl02.html
[22] Rossum, Guido van A tutorial on Python
- guido@cnri.reston.va.us - ftp.python.org.
[23] Scilab Group - SciLab - programa para simulac oes numericas
INRIA - Unite de recherche de Rocquencourt - Projet Meta2 - scilab@inria.fr
- 1996
htt://www.scilab.org
REFER
ENCIAS BIBLIOGR
AFICAS 207
[24] SIAM NEWS - The news journal of the Society of Industrial and Applied
Mathematics
- Philadelpphia, PA - USA
[25] Simmons, G.F.
Dierential Equations with App. and Hist. Notes.
McGraw-Hill - Book Company - 1978
[26] An elementary proof of the Arithmetic-Geometric Inequality - Revista Vetor
- Univ. Federal do Rio - 2004 - Grande - Rio Grande - RS
[27] Jose St alio Rodrigues do Santos e Praciano-Pereira, T.
Introdu c ao ` a Matem atica Universit aria
Edi cao Eletr onica do Laborat orio de Matematica Computacional - Univ. Es-
tadual Vale do Acara u - Sobral - Cear a - 2005
http://www.4shared.com/le/12779601/ab687cc4/fundam2p.html
[28] Spline
A enciclopedia livre na Internet
http://pt.wikipedia.org/wiki/Spline
[29] A enciclopedia livre na Internet - Wikipedia
http://encyclopedia.thefreedictionary.com/
Indice Remissivo
1-spline, 133
2-spline, 133
aberto
software, 126
algebrica
computa cao, vi
algortmica
derivada, 13, 112115
amostragem, 10, 102
antigo
moderno, 82
aproxima cao, 4
Aquiles
paradoxo, 30
aritmetica
geometrica
desigualdade, 83
assintotico, comportamento, 177
babil onios, 83
algoritmo, 88
precisao, 82
barra invertida, 148
binaria
busca, 73
busca binaria, 28
calc, vi
C interpretado, 52
caracterstica
fun cao, 133
crculo
desenhando, 4
compilar e rodar, 43
comportamento assintotico, 177
computa cao
algebrica, vi
cientca, vi
numerica, vi
constantes
especcas, 36
constru coes
area de, 36
contnuo, 127
continuidade, 129
contra cao, 91
contradi cao, 127
convexa
comb. linear, 121
convolu cao
corre cao, 143
def. geometrica, 133
domnio, 144
produto, 133
produto de, 133
corre cao
informa cao, 137
pela media, 8
cortes de Dedekind, 69
c ubicos
splines, 132, 148
c ubicos, splines, 132
Dedekind
cortes de, 69
derivada, 1
aproximada, 7
importancia, 7
derivada algortmica, 13, 112115
derivada zero, 61
desigualdade
aritmetico-geometrica, 83
208