calculo num´ erico´ computacional. · 2.4 va´rios representantes da u´nica raiz ... 4.8...

229
C ´ ALCULO NUM ´ ERICO COMPUTACIONAL. Tarcisio Praciano-Pereira 1 Universidade Estadual Vale do Acara´ u Sobral, 26 de janeiro de 2008 1 [email protected]

Upload: dokhuong

Post on 26-Aug-2018

242 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CALCULO NUMERICO

COMPUTACIONAL.

Tarcisio Praciano-Pereira1

Universidade Estadual Vale do Acarau

Sobral, 26 de janeiro de 2008

[email protected]

Page 2: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

Edicoes Lab. de Matematica ComputacionalUniversidade Estadual Vale do AcarauSobral - Ce

copyleft by Tarcisio Praciano Pereira

Praciano-Pereira, TarcisioP496c Calculo Numerico Computacional. Sobral: UeVA, Sobral, 26 de janeiro de2008 133.p Bibliografia ISBN:85-87906-05-4 1 - Linguagem - Computacao -C/C++ 2 - Calculo Numerico. I. Tıtulo CDD515.1

Page 3: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

Sumario

1 A derivada aproximada 11.1 derivada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Quocientes de diferencas

de ordem superior . . . . . . . . . . . . . . . . . . . . . . . . . . 101.3 Polinomios de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . 181.4 Derivadas parciais . . . . . . . . . . . . . . . . . . . . . . . . . . 211.5 Solucao de alguns exercicios . . . . . . . . . . . . . . . . . . . . 261.6 Vocabulario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2 Raızes aproximadas 282.1 Raızes por varredura . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.1.1 Metodo computacional basico . . . . . . . . . . . . . . . . 302.1.2 Busca de raızes por varredura . . . . . . . . . . . . . . . . 37

2.2 A troca de sinal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442.2.1 Analise de um programa . . . . . . . . . . . . . . . . . . . 44

2.3 Raız do tipo secante . . . . . . . . . . . . . . . . . . . . . . . . . 472.3.1 Metodo da secante . . . . . . . . . . . . . . . . . . . . . . 49

2.4 Quando a derivada e zero . . . . . . . . . . . . . . . . . . . . . . 572.5 O metodo da tangente . . . . . . . . . . . . . . . . . . . . . . . . 62

2.5.1 Como funciona o metodo da tangente . . . . . . . . . . . 632.5.2 Quando o metodo nao funciona . . . . . . . . . . . . . . . 642.5.3 A precisao do metodo . . . . . . . . . . . . . . . . . . . . 65

2.6 Metodo da busca binaria . . . . . . . . . . . . . . . . . . . . . . . 702.7 Encontrar raızes, sumario . . . . . . . . . . . . . . . . . . . . . . 742.8 Intersecao de graficos . . . . . . . . . . . . . . . . . . . . . . . . . 77

3 Recursividade 823.1 exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

3.1.1 raız quadrada . . . . . . . . . . . . . . . . . . . . . . . . . 883.2 Fundamentos da convergencia de iteradas . . . . . . . . . . . . . 893.3 O algoritmo babibilonio e convergente . . . . . . . . . . . . . . . 913.4 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933.5 Solucao de alguns exercicios . . . . . . . . . . . . . . . . . . . . 94

ii

Page 4: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

4 Splines 1014.1 Aproximacao polinomial classica . . . . . . . . . . . . . . . . . . 102

4.1.1 Analise de dois casos particulares . . . . . . . . . . . . . . 1054.1.2 A solucao geral do problema . . . . . . . . . . . . . . . . 1154.1.3 Interpolacao polinomial de Lagrange . . . . . . . . . . . 124

4.2 Funcoes polinomiais por pedacos . . . . . . . . . . . . . . . . . . 1264.2.1 sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274.2.2 aproximacao . . . . . . . . . . . . . . . . . . . . . . . . . 129

4.3 Quase-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1354.3.1 polinomiais . . . . . . . . . . . . . . . . . . . . . . . . . . 135

4.4 Valor medio integral . . . . . . . . . . . . . . . . . . . . . . . . . 1374.5 Splines cubicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

4.5.1 convolucao . . . . . . . . . . . . . . . . . . . . . . . . . . 1444.5.2 suporte compacto . . . . . . . . . . . . . . . . . . . . . . . 151

4.6 Solucao de alguns exercicios . . . . . . . . . . . . . . . . . . . . 1584.7 Vocabulario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

5 Integral aproximada 1695.1 soma de Riemann . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

5.1.1 Integracao geometrica. . . . . . . . . . . . . . . . . . . . . 1705.1.2 Somas de Riemann . . . . . . . . . . . . . . . . . . . . . . 171

5.2 Integral no sentido de Riemann . . . . . . . . . . . . . . . . . . . 1785.2.1 propriedades da integral . . . . . . . . . . . . . . . . . . . 1805.2.2 Calculo “numerico” da integral . . . . . . . . . . . . . . . 183

5.3 trapesio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1895.4 polinomios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

5.4.1 Apresentacao do metodo . . . . . . . . . . . . . . . . . . . 1925.4.2 Integral num sub-intervalo . . . . . . . . . . . . . . . . . . 192

5.5 quasi-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

6 E.D.O. 2006.1 Metodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . 2036.2 Metodo de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

6.2.1 segundo grau . . . . . . . . . . . . . . . . . . . . . . . . . 2076.2.2 grau maior do que dois . . . . . . . . . . . . . . . . . . . . 208

Indice Remissivo Alfabetico 211

Bibliografia 211

iii

Page 5: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

Lista de Figuras

1 Retangulos para aproximar uma integral . . . . . . . . . . . . . . . . . ix3 Uma aproximacao spline de uma curva. . . . . . . . . . . . . . . . . . xi

1.1 A pedra, quando o cordao se rompe . . . . . . . . . . . . . . . . . . . 21.2 Taxa de variacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Dados obtidos com um sensor . . . . . . . . . . . . . . . . . . . . . . 51.4 Dados obtidos por um sensor mais preciso . . . . . . . . . . . . . . . . 61.5 Curva que interpola os dados . . . . . . . . . . . . . . . . . . . . . . 71.6 interpolacao nao linear . . . . . . . . . . . . . . . . . . . . . . . . . 81.7 Qual pode ser o grafico de f ? . . . . . . . . . . . . . . . . . . . . . . 91.8 grafico de f analisando f ′ . . . . . . . . . . . . . . . . . . . . . . . . 171.9 Dados amostrais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.10 Reta tangente ao grafico de f . . . . . . . . . . . . . . . . . . . . . . 20

2.1 Raızes de f no intervalo [α, β] . . . . . . . . . . . . . . . . . . . . . . 292.2 Particao do intervalo I . . . . . . . . . . . . . . . . . . . . . . . . . 322.3 Malha sobre uma regiao do plano . . . . . . . . . . . . . . . . . . . . 352.4 Varios representantes da unica raiz . . . . . . . . . . . . . . . . . . . 402.5 O metodo das secantes . . . . . . . . . . . . . . . . . . . . . . . . . 482.6 Fluxograma - metodo da secante . . . . . . . . . . . . . . . . . . . . . 542.7 Num ponto de tangencia, tipo parabolico . . . . . . . . . . . . . . . . . 602.8 Quando a derivada e zero . . . . . . . . . . . . . . . . . . . . . . . . 622.9 Uma sequencia de retas tangentes... . . . . . . . . . . . . . . . . . . . 632.10 Duas tangentes se reproduzindo indefinidamente . . . . . . . . . . . . . 652.11 Intersecao de curvas . . . . . . . . . . . . . . . . . . . . . . . . . . . 782.12 Regiao cuja area queremos calcular . . . . . . . . . . . . . . . . . . . 802.13 area limitada por duas parabolas . . . . . . . . . . . . . . . . . . . . 812.14 area limitada por duas curvas . . . . . . . . . . . . . . . . . . . . . . 81

3.1 Determinacao de√

10 . . . . . . . . . . . . . . . . . . . . . . . . . . 873.2 Ponto inicial menor do que

√a . . . . . . . . . . . . . . . . . . . . . 91

3.3 Ponto inicial maior do que√

a . . . . . . . . . . . . . . . . . . . . . . 92

4.1 Uma reta interpola dois pontos . . . . . . . . . . . . . . . . . . . . . 1034.2 A reta e o fenomeno real . . . . . . . . . . . . . . . . . . . . . . . . 104

iv

Page 6: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

4.3 Duas solucoes do problema homogeneo . . . . . . . . . . . . . . . . . . 1064.4 O teorema do modulo maximo . . . . . . . . . . . . . . . . . . . . . . 1074.5 Aproximacao linear por pedacos - 1-spline . . . . . . . . . . . . . . . . 1094.6 interpolacao polinomial dos pontos . . . . . . . . . . . . . . . . . . . . 1124.7 Polinomio de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . 1184.8 Aproximacao de uma funcao . . . . . . . . . . . . . . . . . . . . . . . 1304.9 Derivada, tangente e Teorema do Valor medio . . . . . . . . . . . . . . 1344.10 Uma funcao positiva cuja integral e 1 . . . . . . . . . . . . . . . . . . 1434.11 Definicao geometrica - produto de convolucao . . . . . . . . . . . . . . 1444.12 O significado geometrico de tres valores . . . . . . . . . . . . . . . . . 1464.13 Correcao pelo valor medio numa vizinhanca de c . . . . . . . . . . . . . 1474.14 Media viciada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1484.15 Nucleos ou pulsos unitarios . . . . . . . . . . . . . . . . . . . . . . . 1524.16 quadrado de convolucao da funcao caracterıstica . . . . . . . . . . . . . 1544.17 2-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1664.18 Comparacao: polinomio de Lagrange e splines . . . . . . . . . . . . . . 1674.19 Comparacao: polinomio de Lagrange e splines - quando os nos ficam unifor-

mente proximos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1684.20 Regularizacao por convolucao . . . . . . . . . . . . . . . . . . . . . . 168

5.1 Trapesios para aproximar area . . . . . . . . . . . . . . . . . . . . . . 1725.2 Soma de Riemann . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

5.3 retangulos da soma de Riemann para3R

−3

x2 + 2x + 1 . . . . . . . . . . . 185

5.4 area do trapesio e uma media aritmetica . . . . . . . . . . . . . . . . . 1905.5 Grafico do polinomio por pedacos . . . . . . . . . . . . . . . . . . . . 1975.6 Modelagem com polinomios por pedacos . . . . . . . . . . . . . . . . . 198

6.1 Uma poligonal-solucao aproximada . . . . . . . . . . . . . . . . . . . 2026.2 O metodo de Euler - uma poligonal . . . . . . . . . . . . . . . . . . . 2046.3 solucao aproximada de y′ = −x

y. . . . . . . . . . . . . . . . . . . . . 206

v

Page 7: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

Introducao

Faca apenas uma leitura superficial desta introducao como primeira leitura.Volte a le-la depois mais algumas vezes ate que ela lhe pareca mais clara. Noinıcio sera difıcil entende-la por completo, porque ela fala de assuntos que seraoobjeto do trabalho do livro. Mas, ainda assim, o seu lugar e aqui mesmo, noinıcio....

O autor deste livro sente responsabilidade com @ leitor@ e quer disponibi-lizar material complementar que incluir no texto o deixaria demasiado longo.Para isto ha uma pagina na Internet em que o material complementar do livropode ser encontrado, entretanto os links para paginas na Internet podem mu-dar e o endereco do autor e mais estavel, havendo dificuldade com algum link,me envie um e-mail para [email protected], mas nao se esqueca de queeu nao posso lhe dar cursos particulares via e-mail, use este recurso de formacuidadosa.

Ha duas areas muito produtivas e com objetivos e metodos diferentes em quese utiliza o computador para fazer Matematica ou para aplicar Matematica:

• Matematica aplicada e computacional, e a terminologia brasileira, que aindase chama de computacao cientıfica; Um ramo da matematica aplicada ecomputacional e analise numerica que e onde se encontra a nossa disci-plina, o calculo numerico.

O nosso trabalho se enquadra, portanto, nesta area, computacao cientıficae neste caso os programas que usamos como auxiliares, neste livro saoscilab, gnuplot, calc, e algumas linguagens de programacao como C,

C++, Python. Todos estes itens podem ser, em geral, encontrados nasdistribuicoes Linux.

• Computacao algebrica que tenta, com razoavel sucesso, substituir o calculoaproximado pelo calculo formal. Representantes deste trabalho sao

– Maxima um pacote de computacao algebrica de domınio publico queem geral e encontrado nas distribuicoes de GNU/Linux ;

– Pari um pacote de computacao algebrica voltado para Algebra, dedomınio publico;

– MuPad um pacote de computacao algebrica publicado por um grupode matematicos da Universidade Paderborne (Alemanha) que e dis-tribuido com uma licenca amigavel para usuarios individuais, masnormalmente vendido;

– Maple um pacote de computacao algebrica publicado por um grupode universidades do Canada e Estados Unidos, que e vendido por umpreco nao muito acessıvel;

– Reduce que e semelhantes ao MuPad, do ponto de vista de distribuicao;

vi

Page 8: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

e ha outros que sao francamente comerciais e nao vemos razao para cita-losaqui. A sintaxe usada no Maxima, MuPad, Maple e muito semelhantes,de modo que quem ja usou algum deles, facilmente migra para outro, enaturalmente, sugerimos que se migre para Maxima que e distribuido sobGPL.

Metodologia de comunicacaoO texto e completado com observacoes de dois tipos. Um dos tipos se chama

claramente “observacao”, o outro sao as notas de rodape.Voce deve ler as observacoes na ordem em que elas aparecerem, mas sem lhes

dar muita importancia numa primeira leitura. Em geral elas sao apresentadascom letra pequena, para salientar o fato de que voce lhe deve dar pouca atencao,numa primeira leitura.

Para lhe permitir uma busca mais acurada de informacoes, o livro tem umındice remissivo alfabetico, ao final, em que todos os conceitos que surgem nasobservacoes se encontram indexados, de forma que voce podera facilmente re-tornar a eles quando achar necessario. Tambem se encontram indexadas todasas palavras-chave do texto.

Quando falamos usamos encenacao para completar o sentido das palavrasusadas no discurso: mexemos as maos, o corpo e alteramos a entonacao davoz. Para suprir um pouco deste teatro usaremos uma convencao tipografica:texto em italico representa material que voce deve olhar com cuidado, possivel-mente nao esta definido ainda e estamos usando a concepcao intuitiva do termo.Quando usarmos texto tipografico estaremos fazendo referencia a um termotecnico ja definido anteriormente ou considerado bem conhecido como tal. Aspalavras da linguagem C serao escritas no estilo tipografico. Quan-do usar-mos letra pequena estamos lhe querendo dizer que o assunto e polemico e que hamuito mais coisa para ser dito do que estamos conseguindo dizer naquele mo-mento. Usamos texto sublinhado para chamar sua atencao de um detalhe quepoderia passar desapercebido, tem o mesmo sentido texto em negrito.

O que e Calculo NumericoAcima dissemos que este livro e sobre Calculo Numerico e queremos agora

dizer-lhe qual e o planejamento do nosso trabalho, porque ha muitas formas dedesenvolver esta disciplina e nos vamos escolher uma que nao precisa ser melhordo que qualquer outra, apenas traduz a nossa preferencia. Se voce gostar donosso trabalho, insistiremos em que leia outros autores para completar a suavisao.

• De uma forma simplificada e repetir o Calculo Diferencial e Integral cal-culando, aproximadamente, aquilo que e obtido formalmente na outradisciplina;

• Resolver, numericamente, algumas questoes que o Calculo consegue ape-nas mostrar que tem solucao; Por exemplo;

– determinacoes de valores, numeros, raizes de equacoes para os quaiso calculo formal pode ser longo ou muito complexo, isto e feito aquino capıtulo 0.

vii

Page 9: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

– criacao de modelos semi-formais para representar dados de um fenomeno,este e o objeto do capıtulo 0 mas o capıtulo 0 tambem representa esteitem.

– calculo de algumas integrais para as quais nao existem formulas, estee objeto do capıtulo 0.

– solucoes aproximadas de equacoes diferenciais, isto e feito aqui, muitomoderadamente, no capıtulo 0, e somente uma introducao.

• Associar uma linguagem de programacao, ou pacotes computacionais pararealizar 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 atepoderiamos questionar a validade de uma introducao como esta.

A ideia de tentar explicar o que faremos tem sentido ainda assim, porqueem parte estamos falando de topicos que os leitores deste livro ja estudaram,no Calculo Diferencial e Integral e cujos aspectos esta disciplina ira desenvolvercom outro objetivo. Mas estamos nos referindo a itens novos tambem e a razaoe lhe oferecer um plano do trabalho.

Suas perguntas, entretanto, podem fornecer ao expositor “ganchos” valiososna 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 notexto.

Raızes de uma funcaoEste e o assunto do capıtulo 0.Para a determinacao das raızes de uma funcao vamos fazer uso de progra-

mas que apresentaremos resumidamente no texto. Os programas se encontramdisponıveis em endereco citado na biliografia.

A busca de raızes e um assunto que nao e diretamente discutido nos Cursosde Calculo.

Calculo de integraisO calculo de integrais e um dos itens mais importantes do Calculo Diferencial

e Integral. Sua importancia supera a propria conceituacao da integral, comocaculo de area ou volume.

A integral e um metodo que se insere em outras definicoes, um exemplo bemsimples disto sao os conceitos qualificados com “quantidade de”, como e o casode

• quantidade de movimento;

• quantidade de exposicao a irradiacao;

• numero de moleculas ou virus em determinado vetor.

Aqui ha duas versoes do problema:

• ha integrais que nao sabemos calcular formalmente,

viii

Page 10: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

• ou, mesmo sabendo, o calculo formal e muito complexo ou longo paracertas aplicacoes, como nas telecomunicacoes, por exemplo.

e o resultado e que se torna mais pratico calcular estas integrais aproximada-mente.

Um dos instrumentos para o calculo aproximado de integrais e a Soma deRiemann. Como instrumento, esta longe de ser o melhor, mas os metodosmelhores usam-na como metodo auxiliar. Porisso comecaremos por discutı-la.

Veja na figura (fig. 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: Retangulos para aproximar uma integral

Nela voce pode ver o domınio de integracao subdividido em diversos inter-valos e um retangulo associado a cada um destes sub-intervalos.

A soma das areas dos retangulos e uma aproximacao para a integral desejada.Que precisamos para fazer este calculo ? Quais sao as tecnicas envolvidas nocalculo de uma integral usando Somas de Riemann ?

• Uma colecao de retangulos, devidamente dimensionados, representam umaarea que aproxima a area de uma determinada funcao.

• Um programa de computador permite o calculo rapido de somas e portantocria as condicoes para que usemos retangulos com bases ınfimas o que nosconduz a uma grande aproximacao.

Analise e controle de variacaoUm exemplo tıpico, e bem atual, e o da qualidade da corrente eletrica que

uma determinada instituicao, um hospital, por exemplo, recebe da rede publica(manipulada por empresas privadas...) Veja o grafico na figura (fig. ??),

Como se poderia tratar este problema ? Qual e o problema ? quais sao asferramentas ?

Surpreendemente, ha uma superposicao de tecnicas a serem usadas aqui eno problema que discutimos anteriormente. Mas ha tecnicas novas tambem.Vamos rapidamente analisar o que precisamos.

Deixando de lado a coleta de dados, que deveria ser feita por uma placaapropriada instalada em um computador, vamos resolver o problema a partir

ix

Page 11: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

dos dados colhidos. Estamos indicando ao lado de cada uma das etapas odepartamento cientıfico responsavel pela mesma. Chamamos isto de divisao dotrabalho.

1. Leitura e digitalizacao de dados analogicos recebidos da placa coletora dedados (a digitalizacao pode ser trabalho da placa); (Computacao, Enge-nharia Eletrica )

2. Calculo da variacao da tensao criando uma serie temporal com estes dados;(Calculo Numerico e Estatıstica)

3. Comparacao dos piques de tensao com valores maximais selecionados comosuportaveis. (Calculo Numerico Engenharia eletrica)

4. Decisao, em tempo real, sobre conexao ou desconexao de aparelhos, comdesvio para nobreakes ou outro tipo de alimentacao de seguranca. (Com-putacao e Engenharia Eletrica);

5. O calculo de uma integral faz o registro do consumo da energia eletricarecebida... (quantidade de energia que passou pela placa controladora),calcula medias, desvios. (Calculo Numerico

Tangente, derivadas.Para que servem.Examine a figura (fig. 1.1), pagina 2. Tangentes e derivada servem pelo

menos para colher mangas maduras de arvores. Mas podemos, partindo desteexemplo, atingir um uso mais sofisticado. Como poderiamos colher mangasmaduras usando derivada ? Indiretamente, e claro.

A figura (fig. 1.1) sugere alguma coisa. Queremos lancar uma pedra, amar-rada a um cordao, de modo que o cordao fique preso proximo a um conjuntode mangas. Rodamos a pedra preza ao cordao ate que ela atinja uma veloci-dade angular razoavel. Quando a pedra, em seu caminho sobre o “cırculo”seencontrar na posicao adequada, soltamos o cordao que ira acompanhar a pedrase alojando entre as mangas. Usamos o coeficiente angular instaneo da pedrapercorrendo o ‘cırculo”para escolher a direcao certa.

O mecanismo e o mesmo quando um computador vai dirigir a trajetoria deum foguete. Com as informacoes guardadas na memoria do computador sobre omapa da Terra em sua orbita, o computador calcula a cada milesimo de segundoqual deve ser o coeficiente angular relativo do eixo do foguete e desta forma vaicorrigindo a rota que levara a nave ao seu destino.

O piloto automatico dos grandes avioes comerciais fazem algo parecido. Aopartir o piloto humano coloca o aviao na direcao do aeroporto de destino. Opiloto automatico vai medindo o erros de rota impostos pelo fluxo do ar e cal-culando a direcao para corrigir o erro.

Aproximacao polinomial de curvasAs funcoes nos fornecem dados dinamicos sobre diversos fenomenos. Mas

nem sempre a natureza se conforma a matematica como nos gostariamos...

x

Page 12: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

A solucao e fazermos aproximacoes para os fenomenos naturais. Ha diversostipos de aproximacoes vamos analisar uma delas aqui, splines.

Splines sao uma melhora consideravel dos polinomios de Taylor. Precisare-mos deste assunto de Calculo para desenvolver esta forma de aproximacao queuma aproximacao polinomial por pedacos. A figura (fig. 3) ilustra este tipo deaproximacao usando polinomios do primeiro grau o que resulta numa poligonal.

O objetivo do cursoDiscutir 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 aproximacao spline de uma curva.

do Calculo Diferencial eIntegral de modo a en-contrar solucoes aproxi-madas para este proble-mas.

Questionar a validadedestas aproximacoes.

Criar a sensacao deque a solucao exata podeser um mito.

Linguagem de programacaoVimos que metodos com-

putacionais sao essenci-ais para desenvolvermos as aproximacoes.

Os alunos, seja do curso de Computacao, ou do curso de Matematica oudas Engenharias, ja deveriam conhecer uma linguagem de programacao, a estaaltura.

Infelizmente isto raramente e verdade.Mas achamos que e preciso forcar a barra, como temos feito com os nossos

alunos de Calculo Numerico, com resultados positivos: ao final do segundo mesde aula a maioria deles ja sabe fazer programas e inclusive planejar um pequenopacote, claro, isto pressupoe que eles tenham acesso a computadores.

Na metologia que temos empregado os programas crescem de nıvel de modoque, se o aluno se empenhar em entende-los, ficara gradualmente no nıvel dosmesmos.

Nas duas ou tres primeiras semanas temos mantido a preocupacao de explicardetalhadamente os programas.

Mas aos poucos vamos deixando que o leitor comece a voar sozinho...obviamente,na companhia de um bom livro sobre uma linguagem de programacao, e tambemsob a hipotese de que ele ira encontrar sempre um “hacker”a sua volta no la-boratorio de computacao de modo a lhe tirar algumas duvidas (e lhe implantarmais uma dezena...).

Vamos adotar a linguagem C, mas ninguem deve se sentir obrigado a nosacompanhar nesta escolha. Use o que houver a sua mao, aquilo que ficar maisfacil, mas que os alunos aprendam a programar.

As linguagens de programacao de um certo tipo todas se parecem de for-mas que quando apresentarmos um programa em C facilmente ele podera sertransformado para a linguagem preferida do leitor.

xi

Page 13: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

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 quealgumas pessoas possam fazer... quem sabe um pouco mais, aprendeu pergun-tando aos outros. Pergunte! incomode inclusive o professor! use o seu enderecoeletronico para tirar suas duvidas, mas nao se esqueca de que sera o seu esforcopessoal que sera decisivo.

Procure economizar a paciencia dos outros, tente descobrir voce sozinhocomo fazer as coisas. Este e seguramente o melhor aprendizado: quando vocemesmo descobre.

Estamos convencido de que o uso de computacao no ensino de Matematicaenriquece fortemente a experiencia do aluno porque permite introduzir umadinamica que giz e quadro na conseguem mais gerar ante uma nova mentalidadegrafica que esta presente em nos todos.

Isto vale para qualquer outra profissao e nos nao tentariamos convencer osalunos de computacao desta verdade.

Vamos listar algumas linguagens de programacao parecidas com C

1. Pascal, e voce certamente vai encontrar [18] na biblioteca que lhe podeconduzir a dominar esta linguagem.

2. Python, e uma linguagem de domınio publico que se encontra disponıvelem todo sistema Gnu/Linux. Nestes sistemas voce encontra um tutorialsobre esta linguagem no diretorio /usr/doc/python/tutorial.

3. Java, praticamente de domınio publico, se encontra disponıvel em todosistema Gnu/Linux

4. Computacao Algebrica.

• Domınio publico ou relativamente livres MuPad, Reduce, Maxima

• Comerciais - nao aconselhamos! Maple, Derive

5. Calculo Numerico, domınio publico SciLab Octave

6. Calculo Numerico, comercial MatLab. Scilab, Octave fazem tudo queMatLab faz.

Os programas distribuidos sob o GPL, General Public License, sao de exce-lente qualidade. Ninguem mais precisa, hoje, pagar, para ter um computadorfuncionando, alem do preco da maquina... Este livro, todos os programas que oacompanham, todo o trabalho de pesquisa do autor, se desenvolve inteiramentecom programas de domınio publico rodando em ambiente Linux.

xii

Page 14: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

Capıtulo 1

A derivada aproximada

A taxa de variacao de f e uma das informacoes mais importantesque podemos ter sobre um fenomeno descrito por f . O CalculoDiferencial e Integral define a derivada, usando o limite da taxade variacao ou a taxa de variacao instantaneaA taxa de variacao e definida por um quociente de diferencas eesta e a definicao basica que iremos usar neste capıtulo.

1.1 Quociente de diferencas

Uma funcao f e diferenciavel se em cada ponto do domınio o graficograf(f) tiver uma reta tangenteA reta tangente no ponto (a, f(a) tem um coeficiente angular m e nos diremosque f ′(a) = m. A funcao derivada, f ′ e uma outra funcao que descreve asderivadas de f e portanto as taxas de variacao instantaneas de f . No Calculodizemos que a derivada define a reta tangente ao grafico, aqui preferimosinverter a forma de falar porque vamos criar modelos, funcoes, a partir dedados amostrais e a taxa de variacao sera frequentemente um desses dadosamostrais.

Este primeiro capıtulo e dedicado a uma revisao do Calculo Diferencial eIntegral e de programacao como um alerta daquilo que voce precisa saber para

o desenvolvimento dos demais capıtulos.

Observe a figura (fig. 1.1) em que estamos simulando o que acontece comuma pedra que alguem esteja rodando presa a um cordao e que, num certomomento, o cordao (provavelmente podre) se rompa. A pedra “memoriza” oultimo coeficiente angular que o seu movimento tinha sobre o cırculo e segueem movimento uniforme nao acelerado1 pela reta tangente.

Assim o coeficiente angular da reta tangente e o coeficiente angular ins-tantaneo da trajetoria da pedra no cırculo.

1falso, obviamente, porque a aceleracao da gravidade esta presente

1

Page 15: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 2

Aqui se quebrou o cordão

Ao se quebrar o cordão, a pedra sai pela tangente

Figura 1.1: A pedra, quando o cordao se rompe

Se f representar a parte da equacao do cırculo onde vemos a pedra aindapresa ao cordao, e t1 for o valor do parametro no ponto em que o cordao serompeu, entao

f ′(t1) e a derivada de f no ponto (t1, f(t1))) (1.1)

Para dizer o mesmo que dissemos acima, o professor de Calculo consideraa seguinte figura (fig. 1.2) em que podemos ver uma reta tangente e tres retas

a a+h

(f(a+h)−f(a))/h

Taxa de variação

Tangente e uma sucessão de secantes

Figura 1.2: Taxa de variacao

secantes. As retas secantes sao aproximacoes da tangente.Na figura (fig. 1.2) estao indicados apenas dois valores para o parametro

a, a + h mas temos alı as secantes correspondentes a tres valores: a1, a2, a3 e oo calculo do coeficiente angular, das secantes, e feito assim:

m1 = f(a1)−f(a)a1−a (1.2)

m2 = f(a2)−f(a)a2−a

(1.3)

Page 16: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 3

m3 = f(a3)−f(a)a3−a (1.4)

Quanto mais proximo estiver ai de a mas preciso sera o valor do coeficienteangular da secante, relativamente ao desejado coeficiente angular da tangente.

Veja mais abaixo onde estamos explicando um metodo pratico para cortarum cırculo em um folha de papel como um exemplo do que e aproximacao.

O coeficiente angular da tangente e o limite das taxas de variacao. Comonem sempre podemos calcular o limite, seja recortando cırculos em papel (oucolocando foguetes em orbita), muita vezes temos que nos contentar com o coefi-ciente angular de uma reta secante, tentando minimizar o erro disto decorrente,ou tentando corrigir o erro ao longo do processo.

Relembrando a equacao da reta tangente

f(x1)−f(a)x1−a ≈ f ′(a) (1.5)

f(x1)−f(a)x1−a

= m = ∆f∆x

= ∆a(f) (1.6)

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

f(x) − f(a) = f ′(a)(x − a) + o(x − a) (1.8)

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 equacoes.

• A equacao 7 representa a relacao entre os lados de um triangulo sobre areta secante que passa nos pontos (a, f(a)), (x1, y1).

• As equacoes 8 e 9 sao equivalentes, representam a aproximacao que areta tangente fornece para os valores de f . Na equacao 8 o erro estarepresentado com a notacao o(x − a), o “o pequeno de Landau”2

• Na equacao 8 estamos indicando com o termo corretor o(x − a) que aequacao da reta fornece o valor de f(x) com este erro: o(x − a)

• A ultima equacao, 10, e simplesmente a equacao da reta tangente:

y − b = m(x − a) ; b = f(a), m = f ′(a)

Escrevemos a equacao 8 com o termo corretor, o(x − a) porque a expressao

y − f(a) = f ′(a)(x − a) (1.11)

e a equacao de uma reta e o grafico da funcao nao precisa ser uma reta3entao aigualdade representada pela reta esta errada e e isto que estamos representandocom o termo de correcao o(x − a). E uma forma pratica de indicar que existeum erro sem precisar entrar no detalhe do valor do erro.

2A notacao dos “o s de Landau” nos ajudam a falar de aproximacao de uma forma praticaescondendo a precisao, veja mais a respeito no ındice remissivo

3compare as equacoes 8 e 10

Page 17: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 4

Observacao 1 Porque falar em “aproximacao”Falaremos seguidamente de “aproximacao”, neste livro. Podemos dizer que

Calculo Numerico faz de forma aproximada o que o Calculo Diferencial e Inte-gral diz que faz exatamente.

Porque falar que as secantes sao aproximacoes da tangente?Veja a seguinte experiencia que voce certamente ja fez4.Suponha que voce deseje recortar um cırculo em papel. A geometria nos

ensina que as tangentes a um cırculo sao perpendiculares ao raio. Assim, se

Posição da tesoura, perpendicularmente, ao raio do círculo

quisermos recortar um cırculo em papel, devemos marcar o centro e ir mantendoa tesoura a distancia constante do centro e sempre perpendicular a uma reta(imaginaria...) que parte do centro.

Mas, quando voce aciona a tesoura, voce corta um “pequeno” segmento dereta, que dizer que voce esta na verdade recortando um polıgono com um numerode lados tao grande que lhe parece que o resultado e um cırculo.

Voce nao esta “cortando” tangentes, mas sim secantes. Mas voce queria quefossem tangentes.

O resultado e uma aproximacao e voce, em geral, ficara satisfeito com ela.Mas nao e apenas uma situacao tao simples quanto recortar cırculos em papel

que nos interessam. Ha situacoes bem mais importantes, como como colocarum satelite em orbita para tornar possıvel as comunicacacoes. O metodo e bemparecido com o da construcao de cırculos em papel com tesoura. No capıtulofinal, quando discutirmos equacoes diferenciais, estaremos mostrando como eparecido, recortar cırculos em papel, e colocar um foquete em orbita em que umcomputador, substituindo a tesoura, estara corrigindo a trajetoria do foquetee fazendo-o percorrer “pequenos segmentos de reta” de algumas centenas dekilometros. Corrigindo assim a trajetoria para que o foguete atinja uma orbita(elıptica ) desejada. Portanto, para aprender a colocar foguetes em orbita noultimo capıtulo, va logo treinando com papel, tesoura e cırculos...

O Calculo Diferencial e Integral algumas vezes deixa uma sensacao de quederivadas e integrais podem ser sempre calculadas exatamente. O Calculo tem asua funcao e aqui nos temos a nossa de corrigir o otimismo do Calculo. Vejamos

4e se nao tiver feito, use a primeira oportunidade para executar a experiencia que estamosaqui relatando...

Page 18: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 5

no seguinte exemplo como podemos usar “derivadas aproximadas” como a unicaopcao disponıvel.

Exemplo 1 Sensor e levantamento de dadosVeja na figura (fig. 1.3) pagina 5,

x xx x x 54321

Dados amostrais

Figura 1.3: Dados obtidos com um sensor

Lendo a figura podemos dizer, sobre o fenomeno descrito, que

• houve um descrescimento de x1 para x2;

• de x2 em diante o fenomeno apenas cresceu;

• houve um crescimento consideravel entre x3 para x4;

• o crescimento entre x4 para x5 foi relativamente reduzido.

Mas esta impresao visual poderia ser tornada efetiva se usassemos um sensorde geracao mais recente que fosse capaz de fazer micro medicoes ao redor de cadaponto, veja na figura (fig. 1.4) pagina 6,

Na figura (fig. 1.4) estamos indicando que, em cada um dos pontos que osensor mediu, ele tambem fez tres medicoes a pequenos intervalos de tempo.

Estas “micro-medicoes” nos permitem calcular a taxa de variacao do fenomenoem cada um dos pontos:

f(x12)−f(x11)x12−x11

; f(x13)−f(x12)x13−x12

(1.12)

f(x22)−f(x21)x22−x21

; f(x23)−f(x22)x23−x22

(1.13)

Page 19: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 6

x xx x x 54321

medidas em cada umdos pontos:

i1 i3x x x

x x x51 52 53

i2

foram tomadas três medidas

Dados amostrais refinados

Figura 1.4: Dados obtidos por um sensor mais preciso

f(x32)−f(x31)x32−x31

; f(x33)−f(x32)x33−x32

(1.14)

f(x42)−f(x41)x42−x41

; f(x43)−f(x42)x43−x42

(1.15)

f(x52)−f(x51)x52−x51

; f(x53)−f(x52)x53−x52

(1.16)

Alem de sabermos o valor no ponto, podemos calcular a “derivada aproximada”da funcao que descreve o fenomeno.

O Calculo nos ensina que tudo pode ser descrito por alguma funcao, e isto ecertıssimo, apenas nem sempre as funcoes tem equacoes algebricas que possamosderivar. Algumas vezes tudo que sabemos sobre estas funcoes sao valores colidospor um sistema de amostragem, como as figuras que acabamos de comentarindicam.

Para terminar o exemplo, vejamos mais duas figuras. A figura (fig. 1.5)pagina 7, nos apresenta uma interpolacao linear dos dados, quer dizer, tudoque sabiamos eram os valores obtidos em cada ponto, e os segmentos de retaalı desenhados nos sugerem qual poderia ser o valor do fenomeno em pontosintermediarios entre aqueles em que foram tomados medidas.

Veja agora na proxima figura, (fig. 1.6) pagina 8, em que, usando as ta-xas de variacao obtidas em cada um dos pontos, pudemos tracar uma curvanao poligonal5interpolante descrevendo melhor o que acontece nos pontos inter-mediarios.

5retas, sao curvas, poligonais, sao curvas, e tem curvas que nao retas...

Page 20: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 7

x xx x x 54321

Interpolação linear dos dados

Figura 1.5: Curva que interpola os dados

Vamos ver como fazer isto no capıtulo 0, esta curvas interpolantes seraopedacos de polinomios.

Agora, com as taxas de variacao podemos descrever melhor o fenomeno me-dido. Lendo o grafico contido na figura (fig. 1.6), podemos dizer

• Ha um ponto de mınimo do fenomeno entre os pontos x1 e x2;

• o crescimento abrupto que parecia acontecer entre x3 e x4 de fato acontecenum pequeno pedaco deste intervalo, a partir do ponto medio.

• tambem houve um crescimento abrupto proximo do ponto x5.

Observe que a interpolacao linear nao nos permitia tecer nenhuma dessas consi-deracoes. Sem o conhecimento da taxa de variacao em cada um dos pontos, tudoque podemos fazer e uma interpolacao linear que descreve um comportamentouniforme entre os pontos em que as medicoes foram feitas.

Este exemplo nos mostra uma situacao bem concreta do dia-a-dia em que aderivada formal seria inutil6. A derivada tem que ser obtida aproximadamentea partir de algumas medicoes finas tomadas em alguns pontos escolhidos.

O exemplo tambem nos mostra a importancia da derivada como informacaocomplementar.

6mas se voce estiver deduzindo que o estudo do Calculo e inutil, engana-se. Precisamosde teorias formais, para produzir a tecnica e as aproximacoes, mas isto e uma historia maislonga, envolva o professor nesta discussao...

Page 21: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 8

x xx x x 54321

medidas em cada umdos pontos:

i1 i3x x x

i2

foram tomadas três

Interpolação não linear dos dados

Figura 1.6: interpolacao nao linear

E o qual seria a taxa de variacao a ser considerada em cada um dos pontos?Temos tres medidas, logo duas taxas de variacao.

Aqui entra em cena uma decisao tıpica de quem cria modelos para fenomenos.A media e uma melhor opcao, ela corrige possıveis erros de medidas. Umbom sensor tomaria nao tres medicoes mas certamente uma dezena de micro-medicoes o que permitiria uma boa media.

Voltaremos a discutir interpolacao mais a frente.Resumindo,

• ∆a(f) = ∆f∆x representa o coeficiente angular de uma reta secante que

desejamos que seja uma aproximacao da reta tangente;

• f ′(a) e o coeficiente angular da reta tangente ao grafico de f no ponto(a, f(a)).

• Usaremos, quando a tecnica nos permitir, o valor medio de uma colecaode taxas de variacao, obtidas com micro medicoes, para representar (apro-ximar) f ′(a).

Nos exercıcios seguintes, voce sera solicitado a calcular a derivada aproxi-mada de funcoes cuja derivada voce sabe calcular exatamente. Desta forma vocepodera comprender melhor a derivada aproximada, comparando-a em casos emque temos a derivada exata disponıvel.

Page 22: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 9

Exercıcios 1 Derivada aproximada

Notacao ∆a(f) = f(a+∆x)−f(a)∆x

1. micro medicoes Considere a funcao f(x) = (x + 3) ∗ (x − 4) e no pontox = 3 considere as “micro-medicoes”

(3, f(3)), (3.01, f(3.01)), (3.02, f(3.02)).

Calcule ∆3(f) = f(3.01)−f(3)0.01 e ∆3.01(f) = f(3.02)−f(3.01)

0.01 e a media aritmetica∆3(f)+∆3.01(f)

2. Compare o resultado com f ′(3)

2. micro medicoes Repita a questao anterior com o ponto x = 4 com ∆x =0.001

3. Sabendo que f(−1) = 3, f ′(−1) = −1 qual dos graficos na figura (fig. 1.7)pagina 9, corresponde ao grafico de f . Justifique sua resposta.

−1

f

−1

f

Figura 1.7: Qual pode ser o grafico de f ?

4. Calcule ∆a(f) = ∆f∆x com f(x) = x2 + 3x + 2 no ponto x = a e com os

valores de ∆x indicados

x = a ∆x ∆x ∆x1 0.1 0.01 0.0012 0.1 0.01 0.0011.5 0.1 0.01 0.001

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

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

Page 23: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 10

x = a ∆x |f ′(a) − ∆a(f)|1 0.0012 0.0011.5 0.001

6. A seguinte listagem de valores foi obtido por um sensor para os valores de∆a(f) = ∆f

∆xna vizinhanca de um ponto. Calcule a derivada media.

0.99884447020655558927

0.99945892356272536761

0.99976592143543602562

0.99991936316018971376

7. Um sensor apresenta a seguinte saıda de dados em que o primeiro valore f(a) e os quatro seguintes sao ∆a(f) = ∆f

∆x na proximidades do pontox=a.

(a) Construa, grafica e algebricamente, a interpolacao linear dos dados.

(b) Construa, grafica e algebricamente, uma interpolacao nao linear daamostragem 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 30 −0.002 −0.001 −0.000 −0.000 -51 −0.812 −0.774 −0.755 −0.746 -72 −2.926 −2.861 −2.828 −2.812 -143 −5.895 −5.816 −5.776 −5.756 -20

8. Faca um programa que liste os valores de ∆a(f) de de f ′(a) para algunsvalores de um um intervalo. Use um while() para controlar uma lista devalores.

solucao derivadas.c, [20].

1.2 Quocientes de diferencas

de ordem superior

Se calcularmos a diferenca entre dois quocientes de diferencas sucessivos

∆2a(f) =

∆a+∆x(f) − ∆a(f)

∆x

estaremos obtendo uma aproximacao da segunda derivada.Este e um quociente de diferencas de segunda ordem.

Como nao podemos calcular a derivada formal, em nossos programas decalculo numerico, resta-nos a tentativa com os quocientes de diferencas. Aqui

Page 24: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 11

vamos discutir os quocientes de diferenca de segunda ordem

∆2a(f) =

∆a+∆x(f)−∆a(f)∆x = (1.17)

( f(a+2∗∆x)−f(a+∆x)∆x

− f(a+∆x)−f(a)∆x

=)/∆x (1.18)

= f(a+2∗∆x)−2∗f(a+∆x)+f(a)∆x2 (1.19)

Nao havendo duvida7nos usaremos uma notacao mais simples para os quocientesde diferenca de segunda ordem:

∆2(f) = ∆2a(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 muitocuidado com os resultados porque a precisao cai.

Veja seguinte listagem obtida com a funcao:

f(x) = (1 − x2)sin(x/4)

Usamos um programa feito em calc que tem uma sintaxe semelhante a dalinguagem 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 oprograma para ganhar mais experiencia. Nao tema extragar os programas, elesestarao na pagina a sua diposicao quando voce cometer erros e nao souber comocorrigı-los, aprenda, tranquilamente, a alterar os programas.

O programa derivada02.calc produz uma saıda de dados pronta para usarem um texto com LATEX. Experimente a versao derivada03.calc que produzo resultado no terminal.

As funcoes d2f() e ddf() sao idendticas.ddf() calcula o quociente de primeira ordem da funcao df(), que calcula o

quociente de primeira ordem de f(), corresponde a equacao (17), d2f() calculadiretamente o quociente de segunda ordem usando f(), corresponde a equacao(19).

Intervalo [0, 10], passo 1, Delta = 0.000001

x d2f ddf exata0 -0.000001520000 -0.000001520000 -0.51 -1.463721700812 -1.463721700812 -1.4637203402202 -2.624124797793 -2.624124797793 -2.1853326315563 -3.217524857357 -3.217524857357 -2.4858358777834 -3.055271491335 -3.055271491335 -2.2448186860295 -2.051102544324 -2.051102544324 -1.4204593968646 -0.237390644956 -0.237390644956 -0.0605498958497 2.231711106131 2.231711106131 1.6969701694728 5.090941230838 5.090941230838 3.6344245289379 7.987785378986 7.987785378986 5.475087704277

7∆(f), um quociente de diferencas, e ∆f = f(x2) − f(x1), uma diferenca, como ∆x =x2 − x1

Page 25: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 12

Podemos ver nesta listagem erros da ordem de 300% no calculo aproximadoda derivada segunda, e o caso quando x = 6 ou de 3289% quando x = 0 o quemostra que nao podemos confiar em calculos aproximados da segunda derivadausando quocientes de diferenca. Mas veremos no capıtulo 0 que conseguimosmodelar com boa precisao dados discretos (obtidos com sensores) usando ape-nas aproximacoes da primeira derivada, esta sim, calculada com quociente dediferencas.

No capıtulo 0 vamos usar do quociente de segunda ordem, apenas o nume-rador, quando estudarmos o problema,

f(x) = 0

veremos que assim e possıvel contornar o problema deste erro, ao evitar o quo-ciente, No momento certo voltaremos a discutir esta questao.

Exercıcios 2 Revisao de Calculo e computacaoobjetivo adquirir familiaridade com questoes de Calculo e de computacao,

necessarias ao Calculo Numerico Computacional. Conscientemente, ignore asquestoes que voce domina, o objetivo nao e perder tempo, mas ao mesmo tempo,aprofunde e procure outras questoes parecidas com as que voce nao dominar paraaumentar a sua pratica.

O programa gnuplot e um pacote computacional para fazer graficos, temtambem uma versao que roda em windows que pode ser encontrada aqui, [13].

Nas revisoes de programacao, voce pode usar em programas em Pascal, [18],mas os programas que associados a este livro, que estao aqui, [20], foram escritosem C ou em calc.

Voce quiser rodar programas em Pascal existe um compilador, gpc, paraLinux.

1. Equacao da reta que passa num ponto

(a) teorica Escreva a equacao da reta que passa no (a, b) e tem coeficienteangular m.

(b) aplicacao Escreva as equacoes das retas que passam no (a, b) como coeficiente angular indicado, em cada item abaixo. Faca graficosprocurando ser preciso. Voce pode usar gnuplot ou xfig para fazerestes graficos, mas deve indicar por escrito como fez.

no ponto coef. angular(a, b) m(−1, 3) −3(−1, 3) −1

no ponto coef. angular(a, b) m(−1, 3) 1(−1, 3) 2

(c) teorica Escreva a equacao da reta que passa nos pontos (a1, b1), (a2, b2).

(d) aplicacao Escreva as equacoes das retas que passam nos pontos in-dicados em cada um dos itens abaixo. Para cada caso faca graficosprecisos. Voce pode usar gnuplot ou xfig para fazer estes graficos,mas deve indicar por escrito como fez.

Page 26: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 13

P1 P1

(a1, b1) (a2, b2)(−1, 3) (1,−3)(−1, 3) (3, 3)

P1 P1

(a1, b1) (a2, b2)(1,−3) (−3, 1)(1, 3) (−2, 5)

2. teoria Reta tangente ao grafico de uma funcao Formula de Taylor. A de-rivada de uma funcao nos fornece o coeficiente angular instantaneo damesma no ponto:

f ′(a) e o coeficiente angular instantaneo de f em (a, f(a))

(a) teorica Formula de Taylor - equacao da reta Escreva a equacao dareta que passa no (a, f(a)) e e tangente ao grafico da funcao nesteponto. Observe que voce deseja a equacao da reta que passa no ponto(a, f(a)), com coeficiente angular f ′(a). Faca um grafico genericomostrando o que acontece.

(b) Aplicacao - derivada algorıtmica Derivar algortmicamente significa, para

este exercıcio, evitar de fazer todas as contas, represente as contas, nao as faca

totalmente, deixe que a linguagem de programacao calcule por voce. Para cadaitem abaixo faca o grafico da funcao e da reta tangente no ponto(a, f(a)) indicado. Voce pode usar gnuplot ou xfig para fazer estesgraficos, mas deve indicar por escrito como fez.

f(x) = (x + 3)(x − 4) a = −3f(x) = (x + 3)(x − 4) a = 4f(x) = (x + 3)(x − 4) a = 0.5f(x) = sin(x)(x + 1) a = −4f(x) = sin(x)(x − 1)(x − 5) a = −2f(x) = cos(x)(x + 3)(x − 4) a = 0.5

3. Altere o programa ex01.c para imprimir alguns numeros. Voce encontraeste programa aqui, [20, programas.tgz].

4. Altere o programa ex01.c para que ele escreva quatro termos de umaprogressao artimetica cujo primeiro termo seja 3 a raao 4.

solucao: ex02.c

5. Faca um programa que escreva de 0 a 10, use um while().

solucao: ex03.c

6. Altere ex03.c para escrever os 10 termos de uma progressao aritmeticade razao 3.

solucao: ex04.c

7. Altere ex04.c para escrever os 10 termos de uma progressao geometricade razao 2.

solucao: ex05.c

Page 27: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 14

8. Altere ex05.c para escrever os 100 termos de uma progressao geometricade razao 1.0005, os “juros da simploria cadernete de poupanca”.

solucao: ex06.c

9. Altere o programa ex06.c colocando um if() dentro do while() controlandoum contador para permitir a visualizacao do sagrado capital sendo trans-formado na poupanca.

solucao: ex07.c

10. Escreva um programa que

(a) Produza uma progressao artimetica de razao 0.5, primeiro termo 3 eo numero de termos 10;

solucao: altere ex04.c

(b) Produza uma progressao artimetica de razao 5, primeiro termo -3 eo numero de termos 10;

solucao: altere ex04.c

(c) uma progressao geometrica de razao 7% com primeiro termo 1000e com 12 termos. Obtenha outra cuja razao seja 0.5%. Uma delas(qual ?) mostra como cresce sua dıvida se voce usar cheque especialou cartao de credito.

solucao: altere ex07.c

11. Derivada aproximada O quociente

∆f

∆x=

f(a + ∆x) − f(a)

∆x≈ f ′(a) (1.21)

e uma aproximacao do valor da derivada de f no ponto x = a quando∆x for pequeno. Os proximos itens servem para que voce desenvolva asua intuicao com respeito a esta aproximacao, faca graficos bem feitosque permitam voce se convencer do seu significado, a precisao com queos graficos serao feitos e parte essencial da questao, um grafico mal feitonao lhe indicara nada, use papel quadriculado (ou milimetrado). Se voceusar gnuplot, ele lhe permite um zoom usando o botao direito do ratinhoe voce podera ver assim o detalhe entre as duas retas.

(a) Considere f(x) = x2 − 2x − 3 e encontre a reta tangente ao graficode f no ponto (−1, f(−1)). Faca o grafico.

solucao: derivada02 01.gnuplot, [20].

(b) Use ∆x = 0.2, calcule o valor aproximado da derivada com este erro,e obtenha a equacao da reta “tangente” no ponto (−1, f(−1)). Facao grafico.

solucao: derivada02 02.gnuplot

Page 28: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 15

(c) Use ∆x = 0.05, calcule o valor aproximado da derivada com esteerro, e obtenha a equacao da reta “tangente” no ponto (−1, f(−1)).Faca o grafico.

solucao: altere derivada02 02.gnuplot

(d) Com f(x) = x2 − 2x − 3 e encontre a reta tangente ao grafico de fno ponto (−3, f(−3)). Complete o grafico anterior.

solucao: altere derivada02 02.gnuplot

(e) Use ∆x = 0.2, calcule o valor aproximado da derivada com esteerro, e obtenha a equacao da reta “tangente” no ponto (−3, f(−3)).Complete os graficos anteriores.

solucao: altere derivada02 02.gnuplot

(f) Use ∆x = 0.05, calcule o valor aproximado da derivada com esteerro, e obtenha a equacao da reta “tangente” no ponto (−3, f(−3)).Complete os graficos anteriores.

solucao: altere derivada02 02.gnuplot

12. Faca um programa que imprima a derivada aproximada, por quociente dediferencas, do item anterior. Aprenda a usar funcao, em C,

solucao: derivadas.c

13. Para f(x) = x2 − 9

(a) Encontre as retas tangentes ao grafico de f nos pontos

(−4, f(−4)), (−3, f(−3)), (0, f(0))

Faca os graficos.

solucao: altere derivada02 02.gnuplot

(b) Use ∆x = 0.05, calcule o valor aproximado da derivada com esteerro, e obtenha a equacao da reta “tangente” nos pontos

(−4, f(−4)), (−3, f(−3)), (0, f(0))

Complete os graficos anteriores.

solucao: altere derivada02 02.gnuplot

14. Significado da derivada Considere a funcao f(x) = x3 − 3x2 − 9x + 2

(a) Calcule a derivada f ′.

(b) Encontre as raızes de f ′ e deduza os pontos extremos relativos f

(c) objetivo: Algumas vezes e mais facil fazer o grafico de f ′ que o graficode f . Deduza um esboco do grafico de f do grafico usando o graficoda derivada.

Page 29: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 16

Solucao 1 A derivada da funcao f(x) = x3−3x2−9x+2 e uma funcaodo segundo grau, cujos zeros sabemos calcular.

f(x) = x3 − 3x2 − 9x + 2 (1.22)

f ′(x) = 3x2 − 6x − 9 = 0 = x2 − 2x − 3 (1.23)

x = 2±√

4+122 (1.24)

x1 = 2+42

= 3 = (1.25)

x2 = −1 = (1.26)

As raızes, x1, x2 da derivada sao pontos de extremos de f , neste caso comcerteza porque sao zeros isolados de um polinomio.

Temos duas maneiras de determinar se sao maximo ou mınimos. Umaconsiste em calcular a segunda derivada e verificar o sinal. Outra consisteem verificar a variacao em volta do ponto.

Vamos usar o teste da segunda derivada. Lembrando a formula de Taylor,a segunda derivada representa a concavidade da funcao e portanto mos-tra uma parabola que lhe e semelhante no ponto. Se f ′(xi) for positiva,entao f neste ponto “lembra” uma parabola com com o vertice para baixo,passando por um mınimo. Se for negativa passara por um maximo.

ponto 2a. derivada no ponto diagnostico valor no pontof ′′(x1) 12 passa por um mınimo f(x1) = −25f ′′(x2) -12 passa por um maximo f(x2) = 7

O esboco grafico de f pode ser visto na figura (1.8) pagina 17,

Comandos do gnuplot usados na resolucao desta questao

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

Page 30: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 17

-30

-20

-10

0

10

20

30

40

-3 -2 -1 0 1 2 3 4 5

f(x)df(x)

0

Figura 1.8: grafico de f analisando f ′

15. Modelo Encontre a equacao de uma reta (um tipo de modelo) que melhorrepresente os dados da tabela na figura (1.9) pagina 18. Justifique suasolucao;

Calcule o valor deste modelo no ponto x = 2. Calcule o valor medioque estes dados representam usando a reta como modelo, e admita que ointervalo de observacoes e [−10, 10].

solucao: calcule o valor medio das taxas de variacao e use este valor paraa equacao da reta.

16. Teste do modelo Faca o grafico do conjunto de pontos da tabela (1.9) e dareta que voce encontrou para modelar os dados com gnuplot e verifiqueassim se o modelo esta adequado. Justifique a sua conclusao.

Page 31: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 18

−10 −28.6 −6 −15.4 −2 −2.2 0 4.4 3 11.7 7 22.5 9 27.9

Figura 1.9: Dados amostrais

1.3 Polinomios de Taylor

Estudamos a equacao da reta tangente ao grafico de f no ponto (a, f(a)) e naverdade quando comecamos a estudar esta questao o nosso exemplo, na figura(fig. 1.1), pagina 2, nos dizia que nao era a “reta tangente” que nos deveriainteressar e sim a parabola tangente. Vamos agora ver como podemos obteruma parabola tangente ao grafico graf(f) no ponto (a, f(a)).

O metodo se parece com o que ja usamos para a reta tangente, foi porissomesmo que comecamos com este caso mais simples. Revendo o caso da retatangente,

y − f(a) = f ′(a)(x − a) (1.27)

y = f(a) + f ′(a)(x − a) (1.28)

seriamos facilmente conduzidos ao erro de imaginar que a equacao da parabolatangente 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 formula correta, vamos inicialmente considerar um polinomiodo segundo grau

P (x) = a0 + a1(x − a) + a2(x − a)2 (1.31)

desenvolvido no ponto x = a e vamos impor as condicoes que nos interessam,para encontrar9 os coeficientes

a0, a1, a2 (1.32)

P (a) = f(a) ⇒ a0 = f(a) (1.33)

P ′(x) = a1 + 2a2(x − a) (1.34)

P ′(a) = f ′(a) ⇒ a1 = f ′(a) (1.35)

P ′′(x) = 2a2 (1.36)

P ′′(a) = f ′′(a) ⇒ a2 = f ′′(a)2 (1.37)

8esta formula esta errada!9os coeficientes e que sao as incognitas deste problema....

Page 32: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 19

Na equacao (33) estamos impondo a condicao de que o polinomio P passeno ponto (a, f(a)). Na equacao (34) calculamos a derivada do polinomio Ppara impor a condicao, na equacao (35), que o polinomio P tivesse a mesmaderivada que f no ponto (a, f(a)). Derivamos, na equacao (36), o polinomio Ppara impor na equacao (37) que o polinomio tivesse a mesma derivada segunda(curvatura) que a funcao f tem no ponto (a, f(a)).

Vemos assim que a formula correta para a equacao da parabola tangente aografico graf(f) no ponto (a, f(a)) e

y = P (x) = f(a) + f ′(a)(x − a) +f ′′(a)

2(x − a)2 (1.38)

Compare a equacao errada 33 com a equacao correta 38 e veja que a diferencase encontra no metodo do calculo para o coeficiente do segundo grau:

a2 =f ′′(a)

2

Este exemplo tambem lhe mostra a razao pela qual a equacao do movimentoacelerado (caso da gravidade) e

v = s0 + v0(t − a) +g

2(t − a)2 (1.39)

em que t = a e o ponto considerado como inıcio do movimento.Nos cursos de Calculo este topico aparece sob o nome de formula de Taylor

e vai bem alem na construcao de um polinomio de grau n tangente ao graficode f no ponto (a, f(a)). A metodologia para obter esta formula e exatamente amesma que apresentamos acima, entretanto partindo do polinomio

P (x) = a0 + a1(x − a) + . . . + an(x − a)n (1.40)

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

an =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 x2, x, x0.Fizemos mencao ao erro existente entre a equacao da reta tangente ao

graf(f) e os valores de f numa vizinhanca do ponto de tangencia, chamando-ode o(x − a).

Aqui usaremos a mesma notacao, porem o erro e, teoricamente, menor.Infelizmente, quando passarmos aos calculos numericos este erro tende a

ser bem maior, desta maneira ha que ser prudente com o uso da aproximacaopolinomial do grau elevado. O fato e que em geral nos damos muito bem comas aproximacoes do primeiro grau. No capıtulo 0 vamos ver que o grau idealpara as aproximacoes polinomiais e o terceiro grau.

Page 33: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 20

Aqui voce pode observar a crıtica diferenca entre o calculo feito manual-mente (e formalmente) e os calculos automaticos. Podemos atingir precisoesmuito maiores com o calculo manual, mas possivelmente com um grande lapsode tempo, nao esquecendo que nele estamos sujeitos a erros diversos. No en-tanto, no calculo automatico os computadores incluem outros tipos de erroscom a inevitavel aproximacao com que tem que trabalhar. A conclusao, nosa repetiremos com frequencia, e temos que fazer os calculos com programas decomputador, mas temos que monitorar os resultados e saber analisa-los critica-mente para tirar o bom proveito que eles nos podem trazer.

No penultimo capıtulo 0 iremos estudar aproximacao polinomial quandonecessitaremos que voce tenha uma boa pratica com do uso do polinomio deTaylor e de programacao, eis uma boa razao para lhe oferecermos logo umalista de exercıcios.

Exercıcios 3 Polinomios de Taylor

1. Reta tangente ao grafico de uma funcao Formula de Taylor. A derivadade uma funcao nos fornece o coeficiente angular instantaneo da mesma noponto:

f ′(a) e o coeficiente angular instantaneo de f em (a, f(a))

Veja na figura (fig. 1.10),

−300

−200

−100

0

100

200

300

400

500

600

−4 −2 0 2 4

f(x)reta(x)

0

Figura 1.10: Reta tangente ao grafico de f

(a) Considere f(x) = x2−2x−3 calcule f ′(−2) e encontre a reta tangenteao grafico de f no ponto (−2, f(−2)).

solucao: altere derivada02.02.gnuplot, voce o encontra aqui, [?]

(b) Considere f(x) = x2 − 9 calcule f ′(−4) e encontre a reta tangenteao grafico de f no ponto (−4, f(−4)).

solucao: altere derivada02.02.gnuplot

Page 34: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 21

(c) Escreva a expressao da reta tangente ao grafico de uma funcao qual-quer, f no ponto (a, f(a)). Observe que voce deseja a equacao dareta que passa no onto (a, f(a)), com coeficiente angular f ′(a).

solucao: altere derivada02.02.gnuplot

2. Analise do grafico de f

(a) parabola tangente Encontre a parabola tangente ao grafico de

f(x) = (1 − x2)sin(x/4)

no ponto (−4, f(−4)) e deduza como e o grafico de f nas vizinhancasdeste ponto.

solucao: altere derivada02.03.gnuplot

(b) parabola tangente Encontre a parabola tangente ao grafico de f noponto (−2, f(−2)) e deduza como e o grafico de f nas vizinhancasdeste ponto.

solucao: altere derivada02.03.gnuplot

(c) Deducao do grafico de f Com base nas duas informacoes10 obtidasanteriormente, simule o grafico de f numa vizinhanca do intervalo[−1, 1].

3. Polinomio desenvolvido em um ponto A expressao usual dos polinomios edesenvolvida no ponto x = 0

P (x) = a0 + a1x + a2x2 + a0x

3 + · · ·+ anxn (1.43)

Usando polinomio de Taylor podemos desenvolver um polinomio em qual-quer outro ponto.

Desenvolva o polinomio

P (x) = 3 − x + 2x2 − 3x3 + 5x4 (1.44)

no ponto x = −3 e faca os graficos dos dois polinomios com gnuplot.Comente o resultado obtido.

solucao:11num terminal, rode calc < poltay2.calc

1.4 Derivadas parciais

Vamos generalizar a formula de Taylor para o caso multivariado. Aqui a res-tricao sera mais forte, nao passaremos do primeiro grau e a consideracao feitaanteriormente sobre erros nas aproximacoes de derivadas de ordem maior se

10este exercıcio tem o defeito de sugerir que podemos fazer uma simulacao destas em qual-quer intervalo sabendo o que acontece nos extremos. Isto e falso!

11Todos os programas do livro se encontram aqui, [20]

Page 35: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 22

aplica, fora que a otencao de dados amostrais com taxas de variacao parcialmaior do que um e bem mais difıcil de ser obtida.

Se considerarmos uma expressao dependendo de varias variaveis

F (x, y, x) = d (1.45)

e lhe aplicarmos derivacao implıcita, vamos obter um modelo que nos permitirachegar a equacao de um objeto linear tangente:

dw = dF (x, y, z) =∂F

∂xdx +

∂F

∂ydy +

∂F

∂zdz = 0 (1.46)

Vamos agora admitir a hipotese de que conhecemos um ponto

P = (a, b, c)

onde passa a variedade12.

F (x, y, z) = d

Uma outra forma de dizermos a mesma coisa e

P = (a, b, c)

e uma solucao da equacao (45). Nesta forma de falar a hipotese e que existeuma solucao para esta equacao, que e P .

Se substituirmos, neste modelo,

dx := x − a ; dy := y − b ; dz := z − c (1.47)

vem a equacao da variedade13 linear tangente:

∂F

∂x(x − a) +

∂F

∂y(y − b) +

∂F

∂z(z − c) = 0 (1.48)

Podemos explicitar z nesta expressao

∂F∂x (x − a) + ∂F

∂y (y − b) + ∂F∂z (z − c) = 0 (1.49)

∂F∂z |(a, b, c) 6= 0 ⇒ z − c = −

∂F∂x∂F∂z

(x − a) −∂F∂y∂F∂z

(y − b) (1.50)

o que nos conduz, com auxılio do Teorema da Funcao Implıcita14 a garantir queexiste uma funcao

z = f(x, y) ; ∂f∂x = −

∂F∂x∂F∂z

; ∂f∂y = −

∂F∂y∂F∂z

(1.51)

z − c = ∂f∂x

(x − a) + ∂f∂y

(y − b) ; c = f(a, b) (1.52)

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

∂y (y − b) ; c = f(a, b) (1.53)

12variedade e o conceito que nos livra da prisao tridimensional veja no ındice remissivo maisinformacoes a respeito neste caso esta e variedade de dimensao dois, uma superfıcie

13esta variedade tangente e um plano, planos sao variedades lineares de dimensao dois14voce encontra este teorema em qualquer bom livro de Calculo. Estamos tambem admi-

tindo a hipotese de a derivada parcial que aparece no denominador seja diferente de zero

Page 36: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 23

e assim temos duas formulas que podemos adaptar para fazer aproximacoesde funcoes com duas ou tres variaveis sendo imediato (basta considerar maisderivadas parciais) estender estas formulas para um numero qualquer que seprecise de variaveis15

O sımbolo := que utilizamos, apareceu com a linguagem de programacaoPascal para evitar a confusao com a igualdade matematica. Queremos dizerque os dois objetos que se encontram de cada lado do sımbolo “:=” tem naturezadistinta, mas que e possıvel fazer uma deducao de um, a partir do outro.

Observe que a equacao (53 ) e a formula de Taylor multivariada, de grau 1para a funcao = f(x, y).

Existe tambem uma formula de Taylor multivariada de grau 2, de grau3, etc... mas em geral nao passamos da formula do primeiro grau, devido asimprecisoes que o calculo numerico joga nas derivadas de ordem superior.

Exercıcios 4 Polinomio de TaylorVoce deve usar gnuplot para obter todos os graficos, mas deve apresentar

toda a justificacao das equacoes que usar.O comando do gnuplot para fazer graficos de funcoes de duas variaveis e

splot f(x,y)

1. Teorica - polinomio do segundo grau tangente Expanda as equacoes (53),(44) para encontrar aw equacoes de uma parabola (polinomio do segundograu) tangente ao grafico de f memorizando tambem a curvatura (segundaderivada)

y = A + B(x − a) + C(x − a)2 (1.54)

Um polinomio desenvolvido16 no ponto x = a.

solucao: polinomio de Taylor do segundo grau no ponto x = a

2. Teorica - polinomio do terceiro grau tangente Expanda as equacoes (53),(44) para obter as condicoes que facam de

P (x) = A + B(x − a) + C(x − a)2 + D(x − a)3 (1.55)

um polinomio do terceiro grau, tangente ao grafico de f no ponto (a, f(a)).

Descreva as equacoes para determinarmos os coeficientes A, B, C, D.

solucao: polinomio de Taylor do terceiro grau no ponto x = a

3. Formula de Taylor

(a) Ache o desenvolvimento de Taylor para f(x) = sen(x) no ponto x = 0de ordem 7 (grau 7) (um polinomio de grau 7).

15os problemas economicos lidam com espacos de dimensao de alguns milhares, o que jus-tifica a grande dificuldade no planejamento economico, por outro lado justifica trabalharmoscom dimensoes altas.

16novamente, um polinomio desenvolvidono ponto x = a

Page 37: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 24

(b) Ache o desenvolvimento de Taylor para g(x) = cos(x) no ponto x = 0de ordem 8 (grau 8), (um polinomio de grau 8). Analise porque adiferenca de grau entre esta questao e anterior.

solucao: derivada02 ex02.calc

(c) Calcule a derivada de g(x) + if(x), com os polinomios encontradosno item anterior. Sera que o resultado poderia ser interpretado comosendo

(g(x) + if(x))′ = i(g(x) + if(x))

4. Aplicacoes

(a) Calcule o valor aproximado de sen(0.1) usando a formula de Taylorde ordem 7. Compare o resultado, indicando o erro ocorrido usandouma calculadora.

solucao: derivada02 ex02.calc

(b) Calcule o valor aproximado de cos(0.1). Compare o resultado, indi-cando o erro ocorrido usando uma calculadora.

solucao: derivada02 ex02.calc

5. Derivadas parciais introducao teorica A equacao de plano que passa noponto (a, b, c) e por comparacao com a equacao 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 equacao (57).

resposta: A, B

(b) Justifique a afirmacao seguinte usando os conceitos “tangente”, “co-eficiente angular” dentro de uma pequena redacao. Se o plano cujaequacao esta em (56), for tangente ao grafico de uma funcao no ponto(a, b, f(a, b)) entao a equacao do plano seria, atualizando os valoresde c, A, B na equacoes (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 funcaoz = f(x, y) (1.60)

que seja derivavel numa vizinhanca do ponto (a, b, f(a, b)). Entaoela tem um plano tangente no ponto (a, b, f(a, b)), semelhante aocaso da funcao univariada com a reta tangente. Identifique entre asequacoes abaixo a equacao do plano tangente ao grafico de f no ponto(a, b, f(a, b)) e justifique sua escolha.

Page 38: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 25

z − a = f(a, b) ∗ (x − a) + ∂f∂y (y − b) (1.61)

∂f∂z

z − a = f(a, b) ∗ (x − a) + ∂f∂y

(y − b) (1.62)

z − a = f(a, b) ∗ (x − a) + ∂f∂x (x − a) + ∂f

∂y (y − b) (1.63)

solucao: z = −5 + 2(x − 1) + 3(y − 2); f(1.1, 2.1)− 4.5

(d) Sabendo que as taxas de variacao parciais de z = f(x, y) no ponto(1, 2) sao

∂f

∂x= 2;

∂f

∂y= 3

e que f(1, 2) = −5

i. Escreva a equacao do plano tangente ao grafico de f no ponto(1, 2, f(1, 2))

ii. calcule aproximadamente

f(1.1, 2.1)

(e) Formula de Taylor multivariada de grau 1 Observe que a equacao doplano tangente pode ser escrita de forma semelhante a equacao dareta tangente. Encontre as semelhancas e escreva a formula de Taylormultivariada de grau 1. Voce vai precisar de um produto de matrizes(estas matrizes se chamam de gradiente ou Jacobiana).

6. Polinomio Esta e uma variante do metodo polinomio de Taylor. Podemosencontrar um polinomio que memoriza as informacoes de uma funcao deforma parecida com o polinomio de Taylor, mas usando informacoes emdois pontos. Encontre um polinomio P desenvolvido no ponto x = a talque

• P (a) = f(a); P ′(a) = f ′(a)

• P (b) = f(b); P ′(b) = f ′(b)

em que [a, b] e um intervalo em que f esta definida e e derivavel. Sugestao:escreva a expressao de um polinomio desenvolvido no ponto x = a.

7. Aplicacao Encontre um polinomio tal que

a) P (−3) = 3 P ′(−3) = −1P (3) = 1 P ′(3) = 1

b) P (−3) = −3 P ′(−3) = 1P (3) = −3 P ′(3) = 1

Faca os graficos destes polinomios usando gnuplot

Page 39: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 26

1.5 Solucao de alguns exercicios

1.6 Vocabulario

gnuplot, Landau, variedade

Nesta secao vamos incluir alguns conceitos que epreciso discutir mas cujo desenvolvimento dentro dotexto seria prejudicial. Mesmo assim sera uma pe-quena amostra de cada assunto.

• gnuplot e um programa para fazer graficos, uma especie de maquinade calcular eletronica com capacidade para fazer graficos, que roda numterminal do computador, com alguma habilidade sintatica. Voce podeescrever pequenos algoritmos no terminal do gnuplot ou com um editorde textos e chamar gnuplot para ler e executar o algoritmo.

gnuplot pode ser chamado de dentro de um programa, logicamente fa-lando e o mesmo que ja dissemos acima a respeito de chamar gnuplot nalinha de comandos passando-lhe um arquivo: isto pode ser feito de dentrode um programa e inclusive o programa pode construir o arquivo de co-mandos do gnuplot, veja, por exemplo raizq graf.c, rode apenas, estee um programa relativamente avancado que sera discutido no capıtulo 0.O proprio programa lhe dira que construiu um arquivo de comandos dognuplot que voce podera ler como um exemplo.

• Landau Para representar que uma variavel tem uma relacao multiplica-tiva com outra, usamos uma das notacoes

x = O(y) ≡ limx=0

y

x= K 6= 0 (1.64)

x = o(y) ≡ limx=0

y

x= 0 (1.65)

No primeiro caso, equacao (64), o significado e que para valores cada vezmenores de x as variaveis x, y se encontram numa proporcao e podemosdizer que sao comparaveis.

Este e o caso∆f

∆x=

f(x) − f(a)

x − a(1.66)

quando a funcao for diferenciavel no ponto a com derivada diferente dezero. Neste ponto a funcao tem uma tangente paralela a reta

x 7→ Kx (1.67)

Page 40: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 1. A DERIVADA APROXIMADA 27

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

No segundo caso, equacao (65), a variavel y e infinitamente menor do quea variavel x, e o caso em que a funcao derivavel f tangencia o eixo dos X ,a derivada e nula, portanto ∆f e infinitamente pequeno relativamente a∆x.

Esta linguagem, infinitamente pequeno, traduzida com a palavra infi-nitesimo, gerou uma confusao e um mito grande durante toda a primeirametade do seculo 20 em que varios autores procuraram apresentar infi-nitesimos como um tipo de numero.

Observe o salto violento que existe entre as duas notacoes, nao ha nadaentre elas. A melhor forma de entender a notacao de Landau, que foi umatentativa de evitar os infinitesimos, e usa-la para aos poucos compreenderquando usar uma ou a outra, e talvez admitir o que Courant dizia, que olimite se encontra no limiar da Matematica superior. . .

Se voce quiser ver alguma coisa experimental nesta linha, considere y =f(x) e compare

– x com f(x) quando x ∈ V(0), uma vizinhanca de zero, e o casodo o pequeno de Landau, faca um programa que liste x, f(x) com xdecrescendo para zero.

– x−a com f(x)−f(a) quando x ∈ V(a), uma vizinhanca de um pontoa 6= zero, e o caso do O grande de Landau, faca um programa queliste x−a, f(x)− f(a) com x−a decrescendo para zero, voce vai verque neste caso K = f ′(a).

• Variedade e uma palavra que nos livra da prisao tridimensional em quea geometria do mundo fısica em que vivemos nos confina.

Diremos variedade de dimensao 1 para fazer referencia as curvas, umareta, um cırculo sao variedades de dimensao 1.

Diremos variedade de dimensao 0 para fazer referencia aos pontos.

As superfıcies sao as variedades de dimensao 2, como um plano que e umavariedade linear de dimensao 2.

Depois da dimensao 2 a geometria nao tem mais palavras e nos conti-nuamos a denominar os objetos de variedades lineares ou nao-linearesacrescentando a dimensao que eles tenham. Podemos entao falar de umavariedade linear de dimensao 4 que seria uma generalizacao dos planos oudas retas.

Enfim, agora nao temos mais as limitacoes da geometria.

Page 41: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

Capıtulo 2

Raızes aproximadas de

funcoes contınuas

Neste capıtulo vou estudar o problema determinacao das raızes de uma funcao: queremosdescobrir quando f(x) = 0. Este e um velho problema e a justificacao de sua inclusao nocurrıculo se deve a que ele e ilustrativo de tecnicas importantes que tem valor por sı proprias,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 discussao, e “atual” no sentido que nos naosabemos resolve-lo.Resolver esta equacao computacionalmente, e bastante difıcil, e iremos, no momento apropri-ado, indicar quais os problemas envolvidos. A saıda, computacional, e resolver a desigualdade

|f(x)| < ǫ

para um valor adequado para ǫ. Veremos que isto e insuficiente e irrealista, apesar de sernaturalmente a saıda matematica.Iremos salientar como os metodos computacionais, associados a estas antigas metodologias,as tornam mais ageis.

O plano do trabalho e:

• mostrar e exemplificar o problema;

• apresentar uma primeira solucao computacional, simples, ingenua mesmo,usando varredura eliminando parte do problema;

• mostrar uma solucao mais efetiva;

• apresentar os metodos, metodo da secante e o metodo da tangente e imergirestes metodos em metodos computacionais;

• vamos estudar dois metodos matematicos importantes, busca binaria esucessoes recursivas;

28

Page 42: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 29

• apresentar ao final o problema completo, mas, obviamente, nao, a solucao.

E interessante observar que a primeira parte, a solucao ingenua e simplesfara parte integrante da solucao final. Tambem faremos uma afirmacao: esteproblema, a determinacao das raızes, nos ensina uma licao, que os humanos saocompanheiros dos computadores na busca de solucoes. . .

2.1 Raızes de uma funcao por varredura

Queremos determinar todos os pontos a tal que

f(a) = 0 ; a ∈ [α, β]

isto e, todas as raızes de f no intervalo [α, β].Veja a figura (fig. 2.1) que mostra uma funcao que tem diversas raızes, mas

apenas uma no intervalo que nos interessa.

f

Estamos interessados nesta raíz

Figura 2.1: Raızes de f no intervalo [α, β]

Claro, e voce deveria comecar se perguntando: e porque nos interessaria umdeteminado intervalo, e nao o conjunto mais amplo em que uma funcao tivesseraızes ?

A resposta para esta pergunta, absolutamente logica, e que existem conjun-tos que sao os domınios naturais para uma funcao dentro de um problema emque ela aparece. Neste caso seria uma perda tempo procurarmos propriedadesdesta funcao num conjunto mais amplo.

Page 43: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 30

Uma outra forma de responder, seria, quando definimos uma funcao, ne-cessariamente estipulamos um domınio de validade para a mesma.

Sera neste domınio que iremos procurar as raızes da funcao.

2.1.1 Um metodo computacional: varredura

Um metodo computacional basico, para resolver esta questao, e varias outrasque 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 segundoenquanto que a tartaruga corre a 0.1 metro por segundo, mas a tartaruga partede um ponto mais avancado, a 0.9 m mais a frente.

O paradoxo estabelece que Aquiles somente pode atingir a tataruga depoisde percorrer o espaco percorrido por esta (e aqui esta o paradoxo):

• Aquiles parte do ponto 0 e a tartaruga parte do ponto 0.9;

• quando Achile atingir o ponto 0.9 a tartaruga ja nao esta mais la;

• nova corrida comeca, agora com Aquiles no ponto 0.9 e a tartaruga noponto 0.91 e quando ele atingir o ponto 0.91 a tartaruga ja nao esta maisla . . . e assim nova corrida comeca, [14, logica, Stanford].

Podemos inventar outra forma equivalente deste paradoxo com uma tarta-ruga que aos poucos fosse ficando cansada com a corrida.

A tartaruga comeca uma corrida e no primeiro dia corre a metade do per-curso oficial, no segundo dia corre a metade do que ficou faltando e assim,sucessivamente, segue correndo sempre a metade do que estiver faltando nosdias seguintes. Serve para ilustrar que nunca a tartaruga terminaria a corrida...

Aqui vamos usar a ideia para convence-lo de que por menor que for o passo,nao sera possıvel percorrer todos os pontos de um intervalo.

Em vez de falar em percorrer, coisa impossıvel, vamos falar em varrer. Aqui-les pode varrer o espaco a sua frente e passara pela tartaruga em algum ponto nocaminho, mas pode sempre acontecer, dependo do passo escolhido, que nuncaAquiles encontre a tartaruga.

E nao ha nenhum paradoxo nesta questao, assim como o paradoxo de Aquilesnada mais e do que uma forma enganosa de colocar a questao. Nao existenenhum paradoxo de Aquiles.

Problema 1 Nunca encontrar o zero de fEste e o problema basico, sem nenhum paradoxo, e simplesmente pouco

provavel que encontremos x tal que f(x) = 0.

Para fazer uma varredura de uma regiao vamos colocar uma malha de nossobre esta regiao.

Pense numa rede de pesca, mas nos interessam apenas os nos da rede . . .A regiao Ω (pode ser uma regiao da reta, do plano ou do espaco), e quere-

mos escolher um conjunto de nos, definindo a malha, associada a esta regiao.Existe um conceito vizinho a este denominado de particao.

Page 44: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 31

Malha associada a um intervalo

Vamos comecar com o caso unidimensional.Acompanhe a descricao do metodo com a figura (fig. 2.2) pagina 32.

1. Malha uniforme associada a um intervalo I = [α, β]

(a) A precisao da malha - a norma

Considere um intervalo I = [α, β]

A medida deste intervalo e

m([α, β]) = β − α

e a dividimos por um inteiro n que representa a precisao com quefaremos os calculos.

A norma da malha1 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 malhasnao sao uniformes porque serve para controlar a distribuicao quase-uniforme dos nos, impedindo que uma grande de quantidade de nosse concentre em uma pequena sub-regiao.

(b) nos da malha Podemos agora definir os nos como os elementos deuma progressao aritmetica

α = x0, x1, · · · , xn = β (2.2)

x0 = α, (2.3)

x1 = α + ∆x, (2.4)

x2 = α + 2∆x, · · · , (2.5)

xk = α + k∆x, · · · , (2.6)

· · · , xn−1 = α + (n − 1)∆x, (2.7)

xn = α + n∆x = β (2.8)

Em geral desprezamos um dos extremos, deste conjunto de nos,

• desprezamos o ultimo no

(xk)n−1k=0 = x0, x1, · · · , xn−1 = β − ∆x (2.9)

x0 = α, x1 = α + ∆x, x2 = α + 2∆x, · · · , (2.10)

xk = α + k∆x, · · · , (2.11)

xn−1 = α + (n − 1)∆x (2.12)

ou

1ou norma da particao

Page 45: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 32

• desprezamos o primeiro no

(xk)nk=1 = x1 = α + ∆x, · · · , xn = β (2.13)

x1 = α + ∆x, x2 = α + 2∆x, · · · , (2.14)

xk = α + k∆x, · · · , xn−1 = α + (n − 1)∆x, (2.15)

xn = α + n∆x = β (2.16)

Veja na figura (fig. 2.2) pagina 32,

x

x

0

n

1x

Ik

intervalo I

Partição do

Figura 2.2: Particao do intervalo I

Algumas vezes preferimos salientar que este processo criou uma colecaode sub-intervalos

I0 = [x0, x1), (2.17)

I1 = [x1, x2), . . . , (2.18)

In−1 = [xn−1, xn] (2.19)

I0 ∪ I1 ∪ · · · ∪ In−1 = I (2.20)

cuja uni~ao e o intervalo I sendo estes sub-intervalo disjuntos. Estacolecao de sub-intervalos e o que chamamos uma partic~ao de I

Em Matematica gostamos de pensar que “escolhemos uma colecaoarbitraria de pontos”

x0, x1, x2, . . . , xn−1, xn ∈ I (2.21)

Page 46: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 33

mas, para tornar computacional uma particao e preciso estabeleceruma equacao, para o elemento generico coisa que os computadoresentendem.

Se a sucessao (xk)nk=1 formar uma progressao aritmetica, dizemos que

temos uma malha uniforme (ou uma particao uniforme). Esta sera anossa preferencia neste livro: particoes uniformes.

Usamos, entao, ∆x como a razao de uma progressao aritmetica cujoprimeiro termo e x0 = α

xk = α + k∆x (2.22)

como ja descrevemos.

Esta expressao aparecera com frequencia neste livro.

Observacao 2 Aprendendo a ler ou a programar

O programa raizes01.c, [20, programas.tgz], e um implementacao destemetodo, mas ele faz um pouco mais do que isto, procura algumas raızes.Leia o programa sem stress.

E lendo programas que a gente aprende a programar, assim como e lendoos autores classicos que a gente aprende a escrever.

Mas nem aprendemos a escrever apenas lendo como nao aprenderemosa programar apenas lendo programas. E preciso aprender a alterar osprogramas.

Nao tenha medo de faze-lo. Nao se preocupe com estragar o programa, ooriginal se encontrara, sempre, a sua disposicao na pagina ou no CD.

2. Malha nao uniforme Vamos descrever o que seria construir uma malhanao uniforme, mas nao faremos nenhum uso para este tipo de malha nestelivro, imediatamente.

A construcao de malhas uniformes conduz a selecao de uma razao comoa que se encontra na equacao (1), e de uma progressao aritmetica que seencontra na sucessao de equacoes que iniciando em (2), ou do conjunto deintervalos, todos com mesma medida que apresentamos nas equacoes quecomecam com (17).

No capıtulo 0 e no capıtulo 0 vamos usar malhas nao uniformes, elas apare-cerem naturalmente quando pensamos em aplicacoes do tipo coleta de da-dos feitas por sensores distribuidos ao longo do percurso de um fenomeno.Neste momento seria artificial dividir este percurso em partes iguais, es-tabelecendo um passo ∆x porque tais caminhos tem pontos crıticos quemerecem atencao especial onde havera uma concentracao de sensores. Umexemplo tıpico seria a analise do trafego numa rodovia em que eventoscomo curvas, cidades ou vilarejos, acidentes geograficos exigiriam um le-vantamento especial de dados.

Page 47: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 34

A resposta para este tipo de necessidade vem com um arquivo de dadosem que os nos estao definidos pela posicao dos sensores.

A esta altura do texto e tambem um pouco artificial esta discussao quepreferimos relegar para o momento certo, apenas declarando aqui teremosnecessidade de malhas nao uniformes. Se o leitor precisar de imediata-mente ver este ponto, recorra aos capıtulos 0 ou 0 ou procure no ındiceremissivo ao final do livro.

Descrevemos assim malhas unidimensionais. Vamos descrever, na proximaseccao, como construir malhas bidimensionais.

Malhas bidimensionais

1. Malha associada a uma regiao do plano Selecionar malhas para regioes dedimensao maior que 1 geralmente e mais trabalhoso. No caso unidimen-sional nao ha muitas escolhas mas nos casos pluridimensionais ha variosproblemas a serem considerados.

Analise um caso simples, representado pela figura (fig. 2.3) pagina 35, eacompanhe com a figura, as definicoes que faremos.

Comecaremos supondo que se trata de uma regiao Ω limitada.

Quer dizer que existem quatro numeros reais: α1, α2, β1, β2 tal que Ω eum 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, define um conjunto de nos no plano, uma malha no plano;

• temos que selecionar um sub-conjunto desta malha que fique no in-terior de Ω, veja a figura (fig. 2.3).

Se Ω for definido por uma expressao algebrica, pode ser simples a selecaoautomatica dos nos que esteja no seu interior.

Frequentemente este e um outro problema a ser resolvido, mas este livrovai lhe apresentar, no capıtulo 0 uma tecnica, aproximacao polinomial,que pode fornecer a equacao algebrica determinando o contorno de umafigura como (fig. 2.3) a partir de uma coleta de dados como uma fotografiaaerea, por exemplo, ou um conjunto de medicoes tomadas no proprio local.

Veja na figura (fig. 2.3), um domınio, Ω, do plano, em que colocamos umamalha e fizemos a selecao dos pontos da malha que se encontram dentrodo domınio.

Page 48: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 35

região do plano Malha sobre uma

α

α

1

2β1

Figura 2.3: Malha sobre uma regiao do plano

Um elemento generico da malha tem por equacao

xi,j = (xi, yj) ; i = 0, . . . , n − 1 ; j = 0, . . . , n − 1

em que estamos ignorando os pontos que se encontram na ultima linha damalha (tanto na horizontal como na vertical).

Se usarmos o mesmo metodo da progressao aritmetica, que ja usamos commalhas sobre um intervalo, (eq.1) teremos

xi,j = (α1 + i∆x1, α2 + j∆x2); (2.25)

∆x1 = β1−α1

n ; (2.26)

∆x2 = β2−α1

n ; (2.27)

Tambem podiamos considerar numeros de pontos diferentes na horizontale na vertical, neste caso, usariamos as variaveis n, m para designar estasquantidade e nos denominadores, das fracoes nas equacoes (26), (27).

Estamos usando a hipotese de que e possıvel selecionar os pontos comuma decisao algebrica, realmente isto pode ser complicado de fazer e naoconhecemos um algoritmo generico para tratar deste caso, mas os metodosdo capıtulo 0 podem resolver esta questao.

Neste livro usaremos malhas em dimensao maior do que um apenas no calculode integrais multivariadas no capıtulo 0. E entretanto conveniente, pelo menos

Page 49: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 36

mostrar ao leitor, onde ele pode fazer uso de malhas multidimensionais e umapista de como encontrar a solucao para os problemas envolvidos.

Tais situacoes podem ser facilmente encontradas como aplicacoes do calculoaproximado de integrais.

Exemplo 2 Uso de malhas multidimensionais

1. Populacao de microrganismos numa lamina. Sabendo que os microrganis-mos a serem estudados sao capazes de um certo tipo de reacao, e possıvelpinta-los com uma solucao quımica que fara com que eles respondam areacao quımica com um comprimento de onda, que habitualmente chama-mos de cor. Cada um dos pontos da figura (2.3) pode ser descrito comoaquele que o sensor captou como estando na faixa de comprimento de ondaque identifique a presenca dos microrganismos que interessa.

Depois podemos contar a quantidade de microrganismos calculando a areada regiao que eles ocupam. O biologo deve, experimentalmente, descobriruma constante especıfica que permita transformar esta area na quantidademicrorganismos presentes na lamina.

2. Fotografia de satelite de regiao urbana. A figura (2.3) pode representaruma regiao fotografada por um satelite e novamente, via comprimento deonda, se pode detectar intensidade construcoes urbanas, florestas etc...Neste caso a fotografia pode ser feita sob emissao de uma onda com umacomprimento particular, ver [14, onda], objetivando obter um determinadoresultado: florestas, construcoes urbanas, determinados tipos de poluicao.

Novamente o calculo da area da regiao determinada vai permitir uma ava-liacao da regiao urbana, da floresta, ou da quantidade de poluicao que seestiver observando. Aqui tambem constantes especıficas permitem a trans-formacao da area nas quantidades que seja deseja determinar.

No capıtulo 0 vamos estudar o calculo aproximado das integrais.

Estes exemplos sao bastante genericos e mostram a amplitude do uso deintegrais multivariadas.

Estas aplicacoes fogem ao planejamento deste livro mas se o leitor preci-sar, encontrara aqui meios para fazer estas aplicacoes, se puder contar cominformacoes sobre as constantes mencionadas nos exemplos, na literatura espe-cializada.

Pelo menos um metodo para calculo de integrais multivariadas sera visto nocapıtulo 0.

Malhas num programa de computador

Dentro de um programa de computador, podemos implementar a progressaoaritmetica definida na (eq.1 )

Page 50: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 37

x = α // (1)enquanto (x < β) // (2)

x = x + ∆x // (3).

1. o ponto inicial

2. a logica que controla o laco

3. a progressao aritmetica que define os nos da malha

Este pequeno programa nao faz nada, visıvel ! Seria preciso um “comando”para guardar, num arquivo, no disco, os elementos da progressao aritmetica oufaze-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 variaveis

2. a logica que controla o laco

3. a progressao aritmetica que define os nos da malha

4. o comando para imprimir na tela os elementos da progressao aritmetica

O caso de malhas multidimensionais, num programa, consiste em encadeiarlacos semelhantes a estes que apresentamos acima para o caso unidimensional,nao tem segredo, outro, que dominar a definicao do domınio, e como ja dissemoseste pode ser um problema especial: considere um lado dentro de uma regiao,ele pode representar um buraco em que voce nao deseja ou nao podera obterinformacoes. Mas o tal lago pode representar informacoes preciosas num estudode reacoes climaticas da mesma regiao. . .

2.1.2 Procura de raızes por varredura

Temos as ferramentas para fazer a nossa primeira pesquisa de raızes de umafuncao. Vamos discutir uma solucao simples e intuitiva do problema.

Vamos varrer um intervalo [α, β] procurando quando os valores de f sejammenores que um erro escolhido. Pela discussao feita acima sobre o chamadoparadoxo de Aquiles, nao vale a pena procurar quando f(x) = 0, porque aprobabilidade de que Aquiles encontre a tartaruga, e a mesma de encontremosx tal que f(x) = 0, e muito pequena praticamente nula.

Page 51: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 38

Como no caso de Aquiles, e melhor procurar saber quando tivermos passadopela 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 nao pode oferecer-lhe tecnicas de programacao, sem fugir dos seusobjetivos, mas algumas sugestoes podem ser encontradas aqui. Uma delas ebasica: construa programas que executem tarefas especıficas e bem restritas,depois cole os programas para produzir um algorimo mais complexo, quandotiver certeza de que todas as etapas anteriores foram bem testadas.

Outra forma de fazer programas eficientes consiste em partir de um programacomo este que esta acima e ir acrescentando ao programas novas rotinas. Mesmoneste caso vale a observacao anterior: teste as rotinas separadamente antes deincluı-las no programa.

Esta metodologia se presta para o trabalho em equipe.Descricao das etapas do programa

1. valores iniciais para as variaveis

2. a logica que controla o laco

3. o teste para encontrar as raızes aproximadas

4. a progressao aritmetica que define os nos da malha

Exemplo 3 Procura de raızesTodos os exemplos apresentados aqui foram executados com programa

raizes01.c

que pode ser obtido aqui,[20, programas.tgz], ou no CD que acompanha estelivro. Em seguida lhe apresentamos uma lista de exercıcios em que voce seraconvidado a usar o programa para repetir estes exemplos e construir outros paramelhorar a sua compreensao do assunto.

1. Raiz de f(x) = x2 no intervalo [−1, 1]

Rodamos um programa que implementa o algoritmo acima. O programasolicita os pontos inicial e final do intervalo de busca, e pede a norma damalha, depois o programa usa a propria norma da malha no teste

|f(x)| < ǫ = ∆x

Page 52: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 39

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

a = -1 b = 1

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

> Forneca-me o passo delta da malha para a busca:

> Sugestao 0.01 < delta < 0.5

delta = 0.1

> Precisao da malha 0.100000

=================================================

> Aperte <enter> para continuar

Raiz provavel da funcao no intervalo

[-0.100000,0.000000]

valor de f no ponto -0.100000 --> 0.010000

valor de f no ponto 0.000000 --> 0.000000

Raiz provavel da funcao no intervalo

[0.000000,0.100000]

valor de f no ponto 0.000000 --> 0.000000

valor de f no ponto 0.100000 --> 0.010000

O programa acha dois intervalos onde ha valores aproximados para a raizda funcao, e escreve o valor de f em cada extremo do intervalo:

• [−0.1, 0]

• [0, 0.1]

Aqui voce ja pode ver uma dificuldade na determinacao de raızes 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 raız, x = 0.

Este e o problema intitulado separacao das raızes . O nome nao e dosmelhores porque, como voce ve, acima, nao ha duas raızes e sim uma unicaque foi apresentada como aparecendo em dois intervalos consecutivos.

A figura (fig. 2.4) pagina 40, pretende ilustrar o problema descrito noexemplo. Uma malha muito fina levara o programa a encontrar variospontos que satisfazem a desigualdade.

Este e um dos principais problemas em Calculo Numerico: nos nao sabe-mos fazer programas que possam funcionar sozinhos.

Temos que monitorar o resultado dos programas e selecionar, dentre aspossibilidades por eles encontradas, quais sao interessantes. Este mesmoprograma poderia nao encontrar nenhuma raız no intervalao indicado, seusarmos um valor muito pequeno para ǫ. Veja o resultado se modificarmoso programa com ∆x 6= ǫ

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

a = -1 b = 1

Page 53: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 40

f

|y| < r

Figura 2.4: Varios 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 nao 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 verificou se nos extremos |f(x)| < ǫ;

• os testes falharam nos extremos em todos os casos porque somenteno 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:

Page 54: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 41

a = -1 b = 1

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

Forneca-me o passo delta da malha para a busca:

Sugestao 0.01 < delta < 0.5

delta = 0.1

Precisao da malha: 0.100000

Forneca-me o erro epsilon :

Sugestao 0.01 < epsilon < 0.5

0.001

Erro : 0.001000

=================================================

Aperte <enter> para continuar

Raiz provavel da funcao no intervalo

[0.000000,0.100000]

valor de f no ponto 0.000000 --> 0.000000

valor de f no ponto 0.100000 --> 0.010000

O programa analisou os intervalos

[−1,−0.9], [−0.9,−0.8], . . . , [−0.1, 0], [0, 0.1]

e achou uma raiz no intervalo [0, 0.1]. Se o programa tivesse testado osdois extremos de cada intervalo, teria achado tambem uma raız no inter-valo [−0.1, 0].

2. raızes de f(x) = x5 + x4 + x3 + x2 + x + 1 em [−3, 3]

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

a = -3 b = 3

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

Forneca-me o passo delta da malha para a busca:

Sugestao 0.01 < delta < 0.5

delta = 0.01

Precisao da malha: 0.010000

Forneca-me o erro epsilon :

Sugestao 0.01 < epsilon < 0.5

0.1

Erro : 0.100000

=================================================

Aperte <enter> para continuar

Raiz provavel da funcao no intervalo

[-1.030002,-1.020002]

valor de f no ponto -1.030002 --> -0.095599

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

Raiz provavel da funcao no intervalo

[-1.020002,-1.010002]

Page 55: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 42

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

valor de f no ponto -1.010002 --> -0.030613

Raiz provavel da funcao no intervalo

[-1.010002,-1.000002]

valor de f no ponto -1.010002 --> -0.030613

valor de f no ponto -1.000002 --> -0.000006

Raiz provavel da funcao no intervalo

[-1.000002,-0.990002]

valor de f no ponto -1.000002 --> -0.000006

valor de f no ponto -0.990002 --> 0.029401

Raiz provavel da funcao no intervalo

[-0.990002,-0.980002]

valor de f no ponto -0.990002 --> 0.029401

valor de f no ponto -0.980002 --> 0.057650

Raiz provavel da funcao no intervalo

[-0.980002,-0.970002]

valor de f no ponto -0.980002 --> 0.057650

valor de f no ponto -0.970002 --> 0.084781

Raiz provavel da funcao no intervalo

[-0.970002,-0.960002]

valor de f no ponto -0.970002 --> 0.084781

valor de f no ponto -0.960002 --> 0.110833

Esta funcao tem uma unica raız, no ponto x = −1 e o programa encontrouvarios intervalos em que o valor de |f(x)| < ǫ. Rodando o programanovamente, 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

Page 56: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 43

valor de f no ponto -0.990002 --> 0.029401

O programa conseguiu isolar um unico intervalo com uma raız aproximada.

Os exemplos acima mostram as dificuldades que temos para resolver o pro-blema de encontrar as raızes de uma funcao usando varreduras. Depois veremosque, com tecnicas mais refinadas, poderemos evitar estes erros.

Porem os programas podem ainda, deixar de encontrar raızes, mesmo queelas existam o que nos obriga a monitorar o funcionamento dos programas paradirigir a busca a partir dos resultados indicados.

Exercıcios 5 Procurando raızes com varreduras

1. Leia o programa raizes01.c. Logo no inıcio o programa traz instrucoesde como compilar e rodar um programa.

2. Voce pode repetir as experiencias registradas aqui rodando o programaraizes01.c. A funcao cujas raızes estao sendo procuradas, esta definidadentro do programa, ao final. Troque a equacao para executar os seus ex-perimentos e depois compile e rode o programa. Dentro do programa, noinıcio ha instrucoes de como compilar e rodar o programa.

3. Rode raizes01.c com f(x) = x2 no intervalo [−3.2, 3] com passo 0.3e erro maximo 0.001. O programa vai dizer-lhe que nenhuma raiz foiencontrada. Analise por que ?

4. Rode raizes01.c com f(x) = x2 no intervalo [−3, 3] com passo 0.3 e erromaximo 0.001. Agora o programa vai encontrar um intervalo onde ha umaraiz.

5. Rode raizes01.c com f(x) = x no intervalo [−3.2, 3] com passo 0.3 e erromaximo 0.05. O programa vai dizer-lhe que nenhuma raiz foi encontrada.Analise por que ?

6. Rode raizes01.c com f(x) = x2 no intervalo [−3, 3] com passo 0.05 eerro maximo 0.01. O programa vai encontrar varios sub-intervalos ondeha raızes.

Nos exercıcios, a busca de raızes, com uma mesma funcao um programaproduz diversos resultados. A figura (2.4) oferece uma boa descricao geometricapara este problema:

• uma malha com passo muito fino e com erro (modulo maximo) relativa-mente muito grande, apresenta varios nos em que a desigualdade e verifi-cada;

• se o erro, (modulo maximo) for relativamente muito pequeno nenhum dosnos da malha vai satisfazer a desigualdade.

Page 57: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 44

Observe que usei o adverbio “relativamente” para qualificar os adjetivosgrande ou pequeno porque as grandezas sao relativas a algum referencial. Vocetalvez precise de fazer algumas experiencias com o programa raizes01.c paracompreender o problema descrito nesta secao.

Na proxima secao vamos encontrar uma saıda para esta dificuldade.

2.2 Raızes analisando a troca de sinal

Acima analisamos a busca de raızes apenas testando quando o valor de f(x)fosse pequeno:

|f(x)| < ǫ (2.29)

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

2.2.1 Analise do programa raizes01.c

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

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

a = -3.2

b = 3

Sua busca de raizes no intervalo [ -3.2.000000 , 3.000000 ]

Forneca-me o passo delta da malha para a busca:

Sugestao 0.01 < delta < 0.5

delta = 0.3

Precisao da malha: 0.30000

Forneca-me o erro epsilon :

Sugestao 0.01 < epsilon < 0.5

0.001

Erro : 0.001000

=================================================

Aperte <enter> para continuar

Nenhuma raiz foi encontrada no intervalo dado !

Rode, novamente, o programa, com passo mais fino...

O programa nao encontrou|f(x)| < 0.001

no intervalo considerado.Em vez de procurar por um valor pequeno de |f(x)| e portanto depender da

relatividade do tamanho que se vai procurar, vamos verificar quando a funcaotroca de sinal.

Page 58: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 45

Este metodo nos livra do relativismo2. Quando uma funcao contınua trocarde sinal em um intervalo, neste intervalo ha um ponto (pelo menos) em que afuncao vai se anular.

Se introduzirmos esta pequena melhora no programa ele ira encontrar umaraiz 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 variaveis

2. a logica que controla o laco

3. o teste para encontrar as raızes aproximadas tanto a verifica se modulo def e pequeno:

|f(x)| < ǫ

como tambem verifica se f troca de sinal no intervalo:

f(x)f(x + ∆x) ≤ 0

O operador logico ou “pesca” se uma destas condicoes for satisfeita.

4. a progressao aritmetica que define os nos da malha

Veja o resultado deste programa “mais especializado”:

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

a = -3 b = 3

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

Forneca-me o passo delta da malha para a busca:

Sugestao 0.01 < delta < 0.5

delta = 0.15

Precisao da malha: 0.150000

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

Page 59: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 46

Forneca-me o erro epsilon :

Sugestao 0.01 < epsilon < 0.5

0.001000

Erro : 0.001000

=================================================

Aperte <enter> para continuar

Raiz provavel da funcao no intervalo

[-0.150000,0.000000]

valor de f no ponto -0.150000 --> -0.150000

valor de f no ponto 0.000000 --> 0.000000

Raiz provavel da funcao no intervalo

[0.000000,0.150000]

valor de f no ponto 0.000000 --> 0.000000

valor de f no ponto 0.150000 --> 0.150000

O programa achou dois intervalos, num deles a funcao troca de sinal, no outroa funcao e pequena. Veja outro exemplo:

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

a = -2

b = 2

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

Forneca-me o passo delta da malha para a busca:

Sugestao 0.01 < delta < 0.5

delta = 0.15

Precisao da malha: 0.150000

Forneca-me o erro epsilon :

Sugestao 0.01 < epsilon < 0.5

0.01

Erro : 0.010000

=================================================

Aperte <enter> para continuar

Raiz provavel da funcao no intervalo

[-0.050000,0.100000]

valor de f no ponto -0.050000 --> -0.050000

valor de f no ponto 0.100000 --> 0.100000

Bastou que trocassemos os pontos inicial e final do intervalo de busca paraque o programa identificasse um unico intervalo onde ha raız da funcao. Moni-torando o programa conseguimos obter um resultado preciso.

Se voce nao souber programar, ou nao tiver acesso a um computador, setudo que voce tiver for uma maquina de calcular, o algoritmo analisando atroca de sinal e o ideal. Depois de verificar num intervalo “grande” que f troca

Page 60: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 47

de sinal, voce pode refinar sua pesquisa em sub-intervalos deste ate encontrarum pequeno intervalo onde se encontra a raız.

Exercıcios 6 Explorando raizes011.c

1. Leia o programa raizes011.c. Logo no inıcio o programa traz instrucoesde como compilar e rodar um programa.

2. Leia o programa raizes011.c. Leia o comentario (10) que lhe explica queo problema tem dados pre-definidos que voce pode aproveitar na primeiravez que rodar o programa.

3. Leia o comentario (30) e elimine o teste do modulo maximo. Verifiqueque alguma raiz pode ser perdida, dependendo da equacao que voce estiverusando. Experimente varios tipos de equacoes. Leia o comentario (50).

4. Altere o programa a vontade, deve haver uma copia em disco para voceretornar a versao original... faca suas experiencias.

2.3 Raız do tipo secante

Falamos na troca de sinal para encontrar raızes de funcoes. A forma classica e o metododas secantes que vamos estudar mais a frente. Como preparacao para os metodos classicosvou fazer uma analise dos tipos de raızes que irei classificar como do tipo secante e do tipotangente. Primeiro vamos discutir as raızes do tipo secante.

Vamos nos aprofundar na analise de quando uma funcao se anula. Saodesafios interessantes que temos pela frente. Os graficos podem ter curvas eneste caso encontrar as raızes exige mais domınio do assunto.

Observe o que nos diz a figura (fig. 2.5) pagina 48,O grafico da funcao f “corta” o eixo OX em dois pontos.

• Raız por tangencia Uma desta raızes e do tipo “tangente”, veja o grafico,(fig. 2.5).

O grafico de f tangencia o eixo OX , no ponto x1 e corta o eixo OX noponto x2.

– x1 e um ponto de tangencia, uma raiz em que

f ′(x1) = 0. (2.30)

e nao seria possıvel obter esta raız pelo metodo das secantes nesteponto porque neste ponto (nesta raız) f nao troca de sinal. Aparen-temente a unica forma de encontrar esta raız e usando o teste

|f(x)| < ǫ (2.31)

Num ponto de tangencia, como x1, o grafico pode ser comparadocom o grafico de uma parabola em que ∆f << ∆x. O sımbolo <<

Page 61: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 48

f

Esta raíz é possívelde se determinar pelo

método das secantes raíz aproximada

obtida pelo método

das secantes

método das secantesde se obter peloraíz impossível

x1

x2

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 zero3. A

derivada e zero. Vou tratar deste caso na proxima secao. Vamosver que existe outra maneira de encontrar esta raiz sem ser com adesigualdade

|f(x)| < ǫ (2.32)

que ja sabemos que e problematica porque depende de valor “relati-vamente pequenos”, coisas com que programas nao podem lidar deforma efetiva.

– Raız por secancia o ponto x2 e um ponto de secancia do grafico como eixo OX e vou me especializar neste caso agora.

A outra raız e do tipo “secante”, o grafico graf(f) corta o eixo OX deforma semelhante a uma reta, neste ponto (nesta raız) f troca de sinal.Aqui o teste

|f(x)| < ǫ (2.33)

funciona mal porque e difıcil comparar o tamanho de |f(x)| com o tamanhode ∆x e desta forma fica difıcil definir um erro ǫ adequado.

3ou, como ainda se diz, “quando ∆x tender a zero”

Page 62: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 49

E hora de observar que igualdades e desigualdades sao sempre difıceis deserem obtidas com programas, e a razao esta descrita acima, a dificuldadede comparar tamanhos.

E mais simples e pratico usarmos o teste da troca de sinal

f(x)f(x + ∆x) ≤ 0 (2.34)

porque se o zero x2 ∈ [x, x+∆x] entao f tera sinais diferentes nos extremosdo intervalo.

2.3.1 Metodo da secante

O chamado metodo da secante consiste em substituir o grafico de f , num inter-valo em que haja troca de sinal, pela reta secante obtida com os valores de fnos extremos do intervalo.

Notacao: Vamos designar por [a, a+ ∆x] um intervalo que descobrimos4 emque f troca de sinal.

Veja o grafico (fig. 2.5), pagina 48, e observe o ponto x2. Na figura estousalientando que a raiz da equacao do primeiro grau que representa a reta secante,e uma aproximacao da raiz de f .

Queremos obter a raiz da funcao do primeiro grau cujo grafico passa nopontos

(a, f(a)), (a + ∆x, f(a + ∆x)) (2.35)

entao precisamos da equacao da reta que passa por estes dois pontos. Relem-brando a equacao da reta que passa num ponto com coeficiente angular m dadochegamos a equacao que nos interessa:

m = f(a+∆x)−f(a)a+∆x−a

= f(a+∆x)−f(a)∆x

= ∆af∆x

(2.36)

y − f(a) = m(x − a) (2.37)

fazendo y = 0 em y − f(a) = m(x − a) (2.38)

y = 0 ⇒ x − a = −f(a)m (2.39)

s0 = a − f(a)m

(2.40)

a raız aproximada que estamos procurando e

s0 = a − f(a)

m(2.41)

4Nao se esqueca de que chegamos ate aqui dentro de um programa que fez uma var-redura apenas testando troca de sinal e agora vamos entrar numa sub-rotina chamadaprocura raiz secante()

Page 63: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 50

Nao se perca com a mudanca de notacao.Chegamos aqui, olhe a figura (fig. 2.5), pagina 48, porque sabemos que existeum ponto designado por x2 que e a raiz exata que gostariamos de encontrar.Resolvemos uma equacao do primeiro grau para encontrar a raız da reta secantee estamos chamando s0 ao primeiro ponto de uma sucessao de pontos queesperamos que convirjam para a raız

sn → x2 (2.42)

x2 e o limite da sucessao sn

Ao iterarmos este processo vamos criar a sucessao (sn) referida acima. Pre-cisamos re-escrever as equacoes acima alterando a notacao de forma a sermosconduzidos a uma expressao (matematica) adequada. Depois vou transformaras equacoes matematicas no algoritmo computacional que e muito mais simples,e se voce preferir (nao deve) pode saltar direto para o algoritmo computacional.

Repetindo (e alterando a notacao) temos:

a0 = a; b0 = a0 + ∆x; m0 =f(b0) − f(a0)

b0 − a0(2.43)

y − f(a0) = m0(x − a0) (2.44)

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

y = 0 ⇒ s0 − a0 = −f(a0)m0

(2.46)

(2.47)

uma raız aproximada inicial

s0 = a0 −f(a0)

m0(2.48)

a unica modificacao foi que designamos por m0 o coeficiente angular da retasecante no intervalo onde (o programa) detectou a troca de sinal, e usamos a0, b0

para representar os extremos do intervalo inicial, porque isto vai uniformizar anotacao.

Leia com calma e vera que e verdade, nao foi para complicar, foi para tornarmais claro (padronizar).

Porque agora vamos considerar um segundo intervalo, um sub-intervalo desteprimeiro.

Veja a construcao do algoritmo.

• O ponto s0 associado ao coeficiente angular m0, divide o intervalo

[a0, b0]

em dois sub-intervalos[a0, s0] , [s0, b0] (2.49)

Page 64: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 51

• certamente ha uma troca de sinal em um destes intervalos porque haviatroca de sinal no intervalo primitivo

[a0, b0]; (2.50)

ProblemaPode haver mais de uma troca de sinal e isto pode representar um compli-cador para o algoritmo, o programa pode simplesmente se perder em buscasindefinidas... Logo diremos como podemos controlar este problema.Mas vamos supor a situacao mais benignaa e para depois procurar melhoresalgoritmos.

ae a tecnica que estamos utilizando, montamos a teoria usando os casos simples, depoisiremos testa-la e procurar algoritmos mais robustos

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

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

da sucessao:

a0 = a; b0 = b; (2.51)

Se f(a0)f(s0) ≤ 0 (2.52)

entao b1 = s0; a1 = a0; (2.53)

senao b1 = b0; a1 = s0; (2.54)

m1 = f(b1)−f(a1)b1−a1

(2.55)

y = r1(x) = f(a1) + m1(x − a1)y=0⇒ (2.56)

⇒ x = s1 = a1 − f(a1)m1

(2.57)

• iteramos este processo para encontrar

an, bn, mn = f(bn)−f(an)bn−an

(2.58)

y = rn(x) = f(an) + mn(x − an)y=0⇒ (2.59)

⇒ x = sn = an − f(an)mn

(2.60)

ate que o teste|f(sn)| < ǫ

em que ǫ e a precisao com que desejamos calcular a raız.

5nao “tracamos” nada, apenas calculamos a raız da equacao do primeiro grau

Page 65: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 52

Observacao 3 Voce pode fazer isto com calc

A linguagem de programacao calc e injustamente chamada de C interpre-tado, e uma outra linguagem de programacao que tem uma precisao infinita,coisa que C nao tem. Mas se parece com C e pode servir para fazer prototiposde programas em C.

Veja uma sessao para obter a sucessao de raızes de uma funcao. Depoisque voce rodar o script do calc, volte e releia as contas matematicas que vaoda equacao (51) ate a equacao (60) a respeito das quais voce, provavelmente,pensou que o autor estava complicando, para ver que e, exatamente, o que amaquina 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

Page 66: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES 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 notacao matematica tem que passar por pelas quatro sucessoes

(an)n, (bn)n, (mn)n, (sn)n

que irao definir os novos sub-intervalos que iremos encontrar.A notacao computacional nos permite calcular as raızes, com um programa,

e a notacao matematica nos permite provar que ela existe.Sao duas coisas distintas e somente podemos rodar programas se pudermos

provar que eles chegarao em algum resultado. O contrario e inocuo.No capıtulo 0 vamos discutir melhor os metodos matematicos que determi-

nam as raızes dentro de um quadro mais geral. Todos os metodos que estamosusando aqui sao recursivos e o o capıtulo 0 vai discutir recursividade. Claro,voce pode, e deve, chegar ate o o capıtulo 0 agora para entender melhor o queestamos fazendo e comecar a ler sobre este outro assunto. O livro esta departa-mentalizado por uma questao de organizacao, mas voce nao precisa ficar presoa estas paredes.

Vou transformar o metodo matematico no algoritmo computacional, atemesmo porque voce podera rodar o algoritmo e isto lhe servira de motivacaopara entender melhor o metodo matematico.

O algoritmo do metodo da secante I

Comece analisando a figura (2.6) pagina 54, que e um fluxograma, um planeja-mento visual que fazemos antes de escrever um programa.

No centro da figura (2.6) voce pode observar um caminho, indicado pelasseta que sai do “diamante” que representa o teste de parada do programa

|f(a)| > epsilon (2.61)

que e uma mistura de Matematica e computacao.Numa linguagem de computacao deveria6 estar

(abs(f(a)) > epsilon)

Tambem nao aparecem sn porque numa linguagem de programacao os valoresse encontram em memorias cujos enderecos estao associados a variaveis, e e istoque o programador deve ver os nomes das variaveis (e nao o endereco onde osdados estao guardados).

6em Pascal a funcao valor absoluto e abs(), em C e fabsf()

Page 67: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 54

s é a raíz de r

[a,b]f troca de sinal em

| f(a) | > epsilon

VF

a é a raízaproximada

com erro epsilon

Método da secante

m = (f(b)−f(a))/(b−a)

r(x) = f(a) + m(x − a)

f(s)f(a)<=0V

F

b=s

a=s

Figura 2.6: Fluxograma - metodo da secante

• Entramos no algoritmo quando descobrimos que ha uma troca de sinal nointervalo [a, b] e calculamos, sucessivamente, m, r(x), s.

• Somos levados agora ao teste que vai decidir em que intervalo ha novatroca de sinal

f(s)f(a) <= 0 (2.62)

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

– O teste resultando em verdadeiro o programa vai colocar o valor sna memoria apontada pela variavel b.

– Se o teste resultar em falso o programa vai colocar o valor s namemoria apontada pela variavel a.

Neste escolha a variavel que nao foi usada fica com o seu valor primitivo.

• Este novo intervalo continua sendo designado por [a, b] e se o teste deparada do algoritmo, na equacao (62), resultar em verdadeiro novo ciclovai ser efetuado. Se for falso significa que a precisao esperada ja foiatingida e portanto o algoritmo para.

Page 68: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 55

• O programa escolhe quem vai ser indicada como raız aproximada, se e a,ou s ou b, ou como em alguns dos nossos programas

a + b

2

pura questao de gosto do programador. Se o programador for mais exi-gente aplicaria o teste da (62) a estes quatro candidatos para escolheraquele que ofereca uma precisao maior.

Matematica do Metodo da secante

Vamos repetir de forma suscinta, tanto os calculos matematicos como o algo-ritmo computacional nesta secao e na proxima.

Para construir a formulacao matematica do metodo, vou mais uma vez re-tomar a sequencia de equacoes em que calculei a raiz, alterando novamente anotacao. Repetindo (e alterando a notacao) temos:

[a, a + ∆x] = [a0, b0] (2.63)

∆x0 = b0 − a0 (2.64)

m0 = f(b0)−f(a0)∆x0

(2.65)

y − f(a0) = m0(x − a0) (2.66)

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

y = 0 ⇒ s0 = a0 − f(a0)m0

(2.68)

a primeira versao da raız aproximada que achamos foi

s0 = a0 −f(a0)

m0(2.69)

Agora determinamos em qual dos sub-intervalos ha troca de sinal (se houvernos dois7, o programa tera que se lembrar disto para fazer nova busca no outrointerval):

f(a0)f(s0) ≤ 0 ; f(s0)f(b0) ≤ 0 (2.70)

Vou simplificar a redacao sob a suposicao de que apenas um destes produtose negativo (mas fica claro que e uma simplificacao e que o programa tem que irem busca da outra possibilidade).

se (f(a0)f(s0) ≤ 0)[a1, b1] = [a0, s0] (2.71)

senao [a1, b1] = [s0, b0] (2.72)

7observe que isto significa que ha mais de uma raiz no intervalo

Page 69: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 56

o que nos levara a definir m1 e s1

[a1, b1] (2.73)

∆x1 = b1 − a1 (2.74)

m1 = f(b1)−f(a1)∆x1

(2.75)

y − f(a1) = m1(x − a1) (2.76)

−f(a1) = m1(x1 − a1) (2.77)

s1 = a1 − f(a1)m1

(2.78)

(2.79)

achamos assim a segunda versao da raız aproximada

s1 = a1 −f(a1)

m1(2.80)

Podemos provar, usando inducao finita, que

sn = an − f(an)

mn(2.81)

definindo as quatro sucessoes,

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

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

mk(2.82)

Algoritmo do Metodo da secante II

A notacao computacional e mais simples. Vamos usar a mesma tecnica, copiandoa equacao e alterando a notacao. Repetindo (e alterando a notacao) temos.

Simplesmente chamamos de [a, b] o intervalo onde foi detectada a troca desinal

[a, b] e o intervalo onde ha troca de sinal (2.83)

m = f(b)−f(a)b−a

(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 raız aproximada que estamos procurando, no primeiro passo e

x = a − f(a)

m(2.88)

e agora tomamos a decisao sobre a nova troca de sinal

Page 70: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES 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 laco com as variaveis tendo assumido os novos valores. Serapreciso um condicional para que o processo pare. Isto pode ser feito de duasmaneiras:

• com um contador estipulando-se o numero maximo de iteracoes;

• testando em cada passo a precisao da raiz aproximada obtida.

O programas raizes013.c faz isto, rode e leia o programa.

2.4 A raiz num ponto de tangencia

Vamos agora estudar como podemos descobrir a raiz quando ela for um ponto em que afuncao tangencia o eixo OX. O metodo consiste em usar a troca de sinal da derivada. Voucomecar mostrando alguns exemplos graficos para ilustrar as dificuldades e como podemossair delas.

Para lhe dar uma visao da necessidade de um pouco mais de teoria, comeceresolvendo os exercıcios seguintes sobre os quais eu farei comentarios em seguida.

A figura (fig. 2.5) pagina 48 e a referencia para as experiencias que vamoscomecar fazendo, nela ha uma raiz num ponto de tangencia do grafico com oeixo OX e o objetivo e produzir um programa que consiga descobrir esta raiz.

Exercıcios 7 Usando raizes011.c

1. Edite o programa raizes011.c e escolha a funcao

f(x) = (x + 3)(x + 3)(x − 2)

que pode estar desligada (com o sımbolo de comentario) na versao quevoce tiver do programa. Depois compile e rode o programa com os valorespre-definidos que ele tem (de “enter” em todas as perguntas do programa).Analise o resultado.

2. Rode novamente o programa usando os valores pre-determinados, entre-tanto responda com o valor 0.1 para a precisao ǫ (quando o programasolicitar o valor da variavel epsilon). Observe que o resultado ficou di-ferente.

3. Rode novamente o programa usando os valores pre-determinados, mas es-colha um valor grande para a norma da particao. Sugestao ∆x = 1.

Comentando os resultados do programa nas experiencias que voce fez usandoos valores pre-deteminados no programa.

Page 71: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 58

• Quando ǫ = ∆x o programa encontrou diversas raızes que na verdade re-presentam a mesma raiz exata x = −3. Veja uma replica dos resultadosdo programa captados8 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 raızes no intervalo [-5.000000 , 5.000000]

Precis~ao da malha: 0.100000

Erro (modulo maximo): 0.100000

=================================================

Aperte <enter> para continuar

Raız 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

Raız 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

Raız 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 raızes representam todas a raiz x = -3 - sao valores proximos de −3que o programa captou. Achou tambem a raiz x = 2

Raız 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 exercıcio que voce usasse 0.1 o programaachou uma representacao para cada uma das raızes existentes:

8o editor de textos joe, permite que voce rode programa dentro dele e consequentementepode captar os resultados do programa

Page 72: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES 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 raızes no intervalo [-5.000000 , 5.000000]

Precis~ao da malha: 0.300000

Erro (modulo maximo): 0.100000

=================================================

Aperte <enter> para continuar

Raız 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

Raız 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

Exercıcios 8 Experiencias com raizes012.c

1. Leia o programa raizes012.c e verifique se a funcao escolhida e f(x) =(x + 3)(x + 3)(x − 2). Se nao for selecione9 esta funcao cujo grafico esemelhante ao da figura (fig. 2.5).

2. Leia o programa raizes012.c. Ele e uma alteracao de raizes011.c.Leia tambem os comentarios dentro do programa. Compile e rode o pro-grama usando os valores predefinidos no programa. O programa escolhe,ele mesmo, o valor da precisao ǫ, verifique isto. Veja o comentario (41)do programa, veja como foi calculado ǫ.

3. O programa, como os valores pre-definidos, encontrou as raızes −3, 2.Teste o programa com valores diferntes para a norma da malha.

4. Rode raizes012.c alterando a equacao de f para f(x) = (x − 1)2(1 +7(x + 1)2). Observe que esta equacao ja se encontra no programa, masdesligada por um comentario. Basta liga-la.

9voce pode “ligar ou desligar” uma expressao colocando ou apagando o sımbolo de co-mentario // na frente, nao precisa apagar

Page 73: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 60

5. Teste o programa com outras equacoes e nestes casos altere o intervalo debusca. Isto pode ser feito dentro do programa ou respondendo as perguntasque o programa fizer.

Vamos entender o metodo utilizado no programa raizes012.c. Num pontode tangencia com o eixo OX a derivada troca de sinal e podemos nos aproveitardisto para encontrar a raiz evitando a perigosa comparacao

|f(x)| < ǫ. (2.91)

Analise a figura (fig. 2.7), pagina 60. Vamos tirar algumas informacoes destafigura.

• No ponto a temos uma raız do tipo tangente,

• e marcamos dois pontos, a−, a+, anterior e posterior10, ao ponto a,

• fizemos os graficos das retas tangentes em (a−, f(a−)), e (a+, f(a+)).

f

a

a− a+

reta tangente é positivo

O coeficiente angular da reta tangente é negativo

O coeficiente angular da

Figura 2.7: Num ponto de tangencia, tipo parabolico

• Voce pode ver que antes e depois do ponto de tangencia, o coeficienteangular da reta tangente tem sinais diferentes:

sinal(∆a−(f)) 6= sinal(∆a+(f)) (2.92)

sinal(∆f∆x |a−) 6= sinal(∆f

∆x |a+) (2.93)

10a−, a+ sao notacoes padrao em Matematica para representar pontos anterior e posteriorao ponto a

Page 74: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 61

• Como ∆x > 0 entao11 podemos comparar apenas os numeradores12. Ana-lisaremos apenas os produtos dos numeradores, o produto de dois valoressucessivos de f ao longo da varredura. Estamos evitando os quocientes:

f ′(a) ∗ f ′(a + ∆) < 0 (2.94)

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

Se for uma tangencia do tipo “ponto de inflexao” o programa continuarafazendo o teste de troca de sinal de f .

Caracterizamos estes dois tipos de raızes, veja a figura (fig. 2.5), como

• raiz tangente, e o que acontece no ponto x1 em que o grafico da funcaotangencia o eixo OX ;

• raiz secante, e o que acontece no ponto x2 em que o grafico da funcaocorta o eixo OX . Fica incluıda, aqui o caso de tangente com ponto deinflexao.

• raiz tangente - num ponto de inflexao vamos trata-lo como um ponto desecancia porque nele a funcao troca de sinal.

Vamos agora observar o que acontece no grafico representado na figura (fig.2.8) pagina 62,

Neste grafico a figura nos mostra dois pontos em que a derivada se anula,mas apenas o ponto x2 e o que nos interessa.

Entao foi preciso incluir no programa raizes012.c um teste complementarao teste de troca de sinal da derivada.

Tanto em x1, como em x2, na (fig. 2.8), a derivada troca de sinal. Masapenas em x2 a funcao e pequena.

Este e o resultado do exercıcio em que lhe foi pedido que rodasse o programacom a funcao

f(x) = (x − 1)2(1 + 7(x + 1)2).

O grafico desta funcao se assemelha ao grafico na figura (fig. 2.8). Voce podeobter este grafico usando Gnuplot, nao se esqueca de usar o comando

set xrange [-4:3]

para instruir Gnuplot a considerar o grafico sobre o intervalo [−4, 3] afim de quevoce consiga ver alguma coisa interessante. Se voce nao fizer isto ele vai usar ointervalo padrao, [−10, 10].

Vimos assim o metodo para “separar” estas duas situacoes dentro de umaanalise automatica (dentro de um programa). O algoritmo ira fazer os dois testesem cada ponto da varredura, ira aceitar o ponto x2 como uma raiz aproximadae descartar o ponto x1. Estamos nos referindo ainda a figura (fig. 2.8).

Observe que terminamos por voltar a usar a desigualdade, agora apenas emuma forma complementar. Assim ela funciona.

11∆x nao precisa ser positivo, mas tradicionalmente consideramos assim para que o seuvalor coıncida com o comprimento do intervalo considerado

12aqui voce tem a tecnica prometida no capıtulo das derivadas, em vez de usarmos derivada,estamos usando derivada aproximada

Page 75: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 62

x x1 2

A derivada se anulano ponto x mas ele não1é uma raiz

Aqui a derivada se anula

e é também uma raiz

Figura 2.8: Quando a derivada e zero

Exercıcios 9 1. Leia o programa raizes013.c e identifique onde o pro-grama verifica a troca de sinal de f e da derivada.

2. Rode o programa com cada uma das tres funcoes definidas no programa.Com os dados pre definidos os resultados nao sao muito bons, aumente aprecisao da malha em experiencias sucessivas.

3. Defina novas funcoes para testar o programa.

2.5 O metodo da tangente

Vamos estudar o metodo da tangente para determinacao aproximada da raız de uma funcao.Evite confundir-se, nas secoes anteriores falamos de “raiz (do tipo) tangente”, sao as raızesmultiplas, em que o graf(f) e tangente ao eixo OX. Agora vamos discutir o metodo datangente para determinar raızes.E natural observar, pese o trocadilho, que o metodo da tangente serve para encontrar raızes(do tipo) tangente. . .Sao duas coisas diferentes os tipos como classificamos as raizes, tangente, secantes e osmetodos classicos, com estes nomes, para determinar raızes, metodo da tangente, que vamosestudar agora e metodo da secante que usamos rapidamente na secao anterior. Comecaremospor mostrar as limitacoes do metodo. A crıtica se encontra no contexto, ao iniciarmos ocapıtulo chamamos sua atencao para a dificuldade de resolver o problema que nos ocupaaqui, estamos apenas ressaltando, em cada momento as dificuldades que aparecem.

O plano do trabalho:

Page 76: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 63

• Comecaremos mostrando um exemplo em que o metodo funciona,

• depois um exemplo em que ele nao pode funcionar.

• Vamos transformar o metodo em um programa de computador e encontraralgumas raızes. Voce podera rodar o programa e experimentar o resultado.

• Finalmente vamos discutir em que condicoes (hipoteses) o metodo da tan-gente pode ser aplicado e um programa de computador em que ele e usadointensivamente junto com o metodo da secante.

2.5.1 Como funciona o metodo da tangente

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

f

raíz exata

raíz aproximada obtida por uma tangente

A raíz exata

é esta

Raízes aproximadaspor retas tangentes

f

Figura 2.9: Uma sequencia de retas tangentes...

Page 77: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 64

Com uma sequencia de retas tangentes vamos encontrar uma sequencia depontos x0, x1, . . . que se aproximam de uma raız, a sequencia converge para araız da funcao f .

Descricao do metodo:

• Ponto inicial Escolhemos um ponto inicial x0 e nele tracamos uma retatangente ao grafico de f ;

• Ponto inicial o metodo somente se aplica em raızes do tipo secante oudo tipo tangente portanto temos que encontrar um intervalo em que hajatroca de sinal de f ou de f ′. O ponto inicial a0 e um dos extremos desteintervalo de troca de sinal;

• Segundo ponto Escrevemos a equacao da reta tangente em (a0, f(a0)) ecuja raiz encontramos, este e o ponto s0 da sucessao;

• Iteramos o processo, tracando a reta tangente ao grafico de f no ponto(s0, f(s0)), resolvendo a nova equacao do primeiro grau correspondente aesta nova reta tangente encontrando assim s2, s3, . . . , sn

• A sucessao (sn)n>0 converge para uma raiz de f

sn → s a raız exata (2.95)

f(sn) → f(s) = 0 (2.96)

f(sn) ≈ 0 (2.97)

e sn e uma raiz aproximada de f .

No “algoritmo”, que acabamos de descrever, usamos a expressao “escolhemosum ponto inicial”. Estamos fazendo uso de uns do metodos mais “controversiais”da Matematica, a “escolha”. Controversial porque funciona e tambem porqueenvolve uma dos problemas abertos da Matematica, o axioma da escolha.

Como escolher um elemento proximo 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 figura (fig. 2.10) pagina 65,

• Consideramos a reta tangente no (A, f(A)); A raiz da reta tangente em Ae B;

• Esta reta tangente tem como raiz o ponto x = B

• Consideramos entao a reta tangente no ponto (B, f(B)) corta o eixo OXno ponto x = A e a raiz da reta tangente em B e A ...

Page 78: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES 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 indefinidamente

Vemos que caimos num circulo vicioso. O programa que fizermos caira emloop infinito.

Obviamente este e um exemplo raro de acontecer, ele apenas mostra queo risco existe e uma intervencao do usuario do programa pode prevenir contraeste acontecimento com uma troca do ponto inicial. No intervalo que a figura(2.10) exibe o problema, podemos escolher um ponto inicial diferente de A ouB para evitar o ciclo vicioso.

E preciso incluir no programa um teto de operacoes que ao ser atingido semsucesso o programa sugira ao usuario alterar um pouco um dos extremos dointervalo inicial. Voce pode ver na figura (fig. 2.10) pagina 65 que uma altercaono valor de A faz com que a sucessao dos zeros das retas tangentes convirja parauma das raızes.

2.5.3 Funciona com precisao, se funcionar

• Considere o ponto a escolhido para tracarmos a reta tangente por (a, f(a))

• A equacao da reta tangente sendo

a0 = a = s0 (2.98)

y − f(a0) = f ′(a0)(x − a0) (2.99)

y = 0 ⇒ s0 = a0 − f(a0)f ′(a0)

= T (a0) = T (s0) (2.100)

s1 = s0 − f(s0)f ′(s0)

= T (s0) s2 = s1 −f(s1)

f ′(s1)= T (s1) = T (T (s0(2.101)

(2.102)

Page 79: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 66

• podemos ver que a lei de formacao dos elementos da sucessao e

sn = sn−1 −f(sn−1)

f ′(sn−1)= Tn(s0) (2.103)

em que na equacao (103) a “potencia” aplicada no operador T representarepeticao do operador aplicado no ponto inicial. Seria interessante fazeruma primeira leitura do capıtulo 0, se voce ainda nao tiver feito isto, parareconhecer que estamos lidando com expressoes recursivas.

Assim,

– cada nova raız da funcao do primeiro grau tangente, se expressa sem-pre da mesma maneira usando a anterior,

– a “potencia” da “transformacao” T , indica o numero de vezes queela foi aplicada ao ponto inicial a, funcao de funcao.

– E o que chamamos de iteracoes de T . Na equacao (eq. 103) se estaindicando que calculamos a terceira iterada de T .

• Falta-nos provar que a sucessao assim obtida se aproxima da raız exata,ou tem algum limite.

Este e um exemplo de recursividade, semelhante ao que vamos usar no calculode raızes, na busca binaria. .

Vamos discutir recursividade no capıtulo 0.O metodo Matematico para obter demonstracoes passa pela abstracao das

expressoes. Suponhamos que a sucessao produzida pelas iteradas de T sejaconvergente (tenha limite) e chamemos este limite de b.

Como T e uma funcao contınua em qualquer intervalo em que a derivada def nao se anule, (vamos admitir esta hipotese) temos

xn+1 = T (xn) −→ b (2.104)

como T e contınua 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 ′(b) 6= 0 entao f(b) = 0 (2.107)

ou seja, a hipotese de que a sucessao seja convergente nos conduz a que o limiteseja uma raız de f .

Uma consequencia dos calculos acima e que

T (b) = b. (2.108)

Quando isto acontece dizemos que o ponto b e um ponto fixo da funcao TVamos obter uma condicao suficiente para que T tenha um ponto fixo.

Comecando por relembrar a aproximacao linear dada pela derivada, da qualextrairemos a condicao que desejamos.

Page 80: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 67

T (b) − T (a) = T ′(a)(b − a) + o(b − a) (2.109)

|x2 − x1| = |T (x1) − T (x0)| = |T ′(x0)||x1 − x0| + o(|x1 − x0|) (2.110)

|x3 − x2| = |T (x2) − T (x1)| = |T ′(x1)||x2 − x1| + o(|x2 − x1|) (2.111)

· · · (2.112)

|xn − xn−1| = |T (xn−1) − T (xn−2)| = (2.113)

= |T ′(xn−2)||xn−1 − xn−2| + o(|xn−1 − xn−2|) (2.114)

Na (eq. 109) aplicamos a formula de aproximacao linear pela derivada.Na (eq. 110) voltamos a usar a mesma aproximacao, mas agora, e sucessiva-

mente, nas seguintes, estamos aplicando aos elementos que foram sendo obtidospela iteracao do metodo das tangentes.

Como queremos que a sucessao seja convergente, e portanto que a distanciaentre dois novos pontos seja cada vez menor, vamos impor uma semelhanca comas series geometricas.

Vemos que a cada dois novos pares de pontos da sucessao surge como multi-plicador T ′(a) em que a e um dos pontos anteriores. Basta-nos que a derivadade T seja menor do que 1 para a comparacao com as series geometricas tenhasucesso.

Esta e a hipotese que precisamos.Derivando T quando f for um polinomio de grau maior do que 2, temos

T (x) = x − f(x)f ′(x) (2.115)

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

(2.117)

A fracao racional que aparece como derivada de T tem polinomios de mesmograu no denominador e no denominador: 2n − 2 em que n e o grau de f comtermos lider igual

n(n − 1)a2nx2n−2 ; n2a2

nx2n−2 (2.118)

respectivamente, no numerador e no denominador. Portanto, exceto no pontosem que o denominador se anule e numa vizinhanca destes pontos, a derivadae menor do que 1 em modulo o que fara que com que o metodo da tangenteproduza iteradas que convirjam para uma raız, se alguma houver.

Demonstramos assim

Teorema 1 Metodo da tangenteSe f for uma funcao polinomial de grau maior do que 2, as iteradas de

T (x) = x − f(x)f ′(x) convergem para uma raız de f

Infelizmente nao podemos aplicar o metodo arbitrariamente. Ele tem que sermonitorado, ja vimos um exemplo grafico mostrando que nem sempre o metodofunciona.

Page 81: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 68

Exemplo 4 Iteradas do metodo da tangenteDentro do Gnuplot voce pode executar a sequencia de comandos abaixo. O

resultado sera o grafico das sucessivas retas tangentes cujas raızes se aproximamda raız x = −1 de

f(x) = x3 + x2 + x + 1

set xrange [-3:3]

f(x) = x**3 + x**2 + x + 1

df(x) = 3*x**2 + 2*x + 1

a = -2.0

reta(x) = f(a) + df(a)*(x-a)

plot reta(x),f(x),0

pause -2

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

plot reta(x),f(x),0

pause -2

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

plot reta(x),f(x),0

pause -2

a = a - f(a)/df(a) // 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 iteracoes, sao:

-2

-1.44444444444444444444

-1.13057124921531701193

-1.01497995228090965490

-1.00022106301976068486

-1.00000004885805680258

onde vemos o valor −1.00000004885805680258 para raız aproximada de

f(x) = x3 + x2 + x + 1; f(−1) = 0 (2.119)

Veja outra iteracao, em que usamos como ponto inicial x = −20

Page 82: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 69

-20

-13.43755383290267011197

-9.05962558919570544190

-6.13716679398553077204

-4.18447916859825334681

-2.87926553135386543847

-2.01119102134060700997

-1.45135929223981982374

-1.13389377376757093773

-1.01570113608729869728

-1.00024268578025712329

-1.00000005888209635796

e vemos que novamente o algoritmo produz uma sucessao convergindo para araiz x = −1. Estas duas sequencias foram obtidas com calc e o programae o seguinte em que uma funcao recursiva, principal() esta se chamando asi propria enquanto o parametro p for estritamente positivo. Quando p = 0 oprocesso para. Copie esta sequencia em um arquivo, por exemplo, raizes.calce depois chame

calc < raizes.calc

e voce podera repetir a experiencia feita acima. Troque a equacao da funcaopara calcular raızes de outras funcoes.

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 penultima linha se encontra o comando que bota o programa para rodar:principal(-2,10). O primeiro parametro, “a = −2” e o ponto inicial, e osegundo parametro, “p = 10” e o numero de iteracoes que desejarmos.

Troque a equacao de f e de sua derivada df e repita a experiencia com outrafuncao. Logo no primeiro passo voce vera se o processo conduz, ou nao a algumaraız.

Experimentef(x) = x2 + 1

Page 83: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 70

que nao tem raızes reais. Use um numero de pequeno de iteracoes, 10 nomaximo.

2.6 Busca binaria

Vamos estudar aqui o metodo busca binaria para determinacao de raızes.

A busca binaria e um metodo matematico antigo, o matematico Dedekindo utilizou para definir numeros reais, os chamados cortes de Dedekind, queconsistem em dividir a reta racional em duas semi-retas, numa “se encontra oponto”13 (numero real desejado) e assim sucessivamente vai sendo dividido oconjunto Q dos numero racionais ate se obter uma aproximacao desejada de umnumero real (ou uma sucessao convergente).

Vamos usar esta ideia para produzir uma sucessao de raızes aproximadasconvergindo para uma raiz de f .

Precisamos encontrar um intervalo em que f troque sinal e o processo emuito semelhante ao do metodo da reta secante.

Descricao matematica do metodo:

• Suponha que que no intervalo [a, b] = [a0, b0]

Hipotese 1 Existencia de raız em um subintervalo

– f troque de sinal,

– ou f ′ troque de sinal, e f seja pequena.

Este intervalo pode ser obtido com uma varredura que pare quando umadestas duas condicoes for satisfeita.

• Selecione o ponto medio do intervalo

s0 =b0 − a0

2(2.120)

e repita o teste 1 para descobrir em qual das duas metades esta a raızprocurada e defina

[a0, s0] = [a1, b1] se hipotese for verdadeira[s0, b0] = [a1, b1] se hipotese for verdadeira

(2.121)

s1 = b1−a1

2(2.122)

13eta erro logico... se o ponto estivesse aı nao seria uma reta racional...

Page 84: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 71

• Itere o processo para obter o proximo intervalo;

O resultado deste processo e uma sucessao de intervalos cuja medida serasempre a metade do anterior, tendo partido de um intervalo de medida

r = b − a = b0 − a0

b − a = b0 − a0 = r (2.123)

m([a0, b0]) = r (2.124)

m([a1, b1]) = r2

(2.125)

... (2.126)

m([an, bn]) = r2n → 0 (2.127)

sendo esta uma convergencia muito rapida porque e dominada por progressaogeometrica de razao 1

2 . Veja abaixo o poder decrescente de uma progressaogeometrica num calculo executado por calc

C-style arbitrary precision calculator (version 2.11.10.1)

Calc is open software. For license details type: help copyright

[Type "exit" to exit, or "help" for help.]

; define f(n,r) return r*power(1/2, n);

f(n,r) defined

; r = 3

; k = 10

; for(n=0; n<= k; n++) printf("%d --> %f \n", n, f(n,r));

0 --> 3

1 --> 1.5

2 --> 0.75

3 --> 0.375

4 --> 0.1875

5 --> 0.09375

6 --> 0.046875

7 --> 0.0234375

8 --> 0.01171875

9 --> 0.005859375

10 --> 0.0029296875

;

na decima iterada, partindo de um intervalo de medida tres ja estamos comum intervalo de medida 0.0029296875 e portanto ja teriamos uma aproximacaoda raiz com esta precisao. Como em geral vamos procurar mudancas de sinalusando intervalos de medida 0.1 na decima iterada ja teriamos um intervalo me-dindo 0.00009765625 consequentemente nos oferecendo a raiz com esta precisao.

Page 85: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 72

Exemplo 5 Calculo de uma raizConsidere a funcao

f(x) = x3 + x2 + x + 1 (2.128)

que tem uma unica raiz no ponto x = 1, veja isto fazendo o grafico desta funcaocom Gnuplot. Coloque set xrange [-2:2] para obter um grafico mais nıtido.

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 calculo usamos um intervalo de medida 0.2 e a buscabinaria encontrou a raiz com 3 iteracoes. Nao acredite que buscas binariasencontrem raızes exatas... este e um resultado muito bom. Use as definicoesexpostas acima, em Calc para construir outros exemplos.

Exemplo 6 As raızes de (x − 3)2(x + 3)sin( xx2+1 )

O programa raizes014.c procura raızes usando busca binaria nos pontos desecancia e analisa a troca de sinal da derivada nos pontos de tangencia. Veja oresultado do programa procurando as raızes de

f(x) = (x − 3)2(x + 3)sin(x

x2 + 1) (2.129)

no intervalo [−10, 10] em que ha tres raızes:

Raizes aproximadas - metodos da secante e tangente

Page 86: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 73

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

a = -10.000000

b = 10.000000

Forneca-me o passo da malha para a busca:

Sugestao 0.01 < delta < 0.5

delta = 0.050000

busca de raizes no intervalo [-10.000000, 10.000000]

Precisao da malha 0.050000

=================================================

Aperte <enter> para continuar

Raiz, por busca 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 tangencia, provavel, da func~ao no intervalo

[2.950018, 3.000018]

valor de f no ponto 2.975019 --> 0.001109

Encontrei 3 intervalos onde h’a raizes

este resultados foram captados pelo editor Joe dentro do qual eu rodei umaversao compilada do programa raizes014.c.

Observacao 4 Ponto fixo e busca binariaNeste capıtulo estudamos o problema

f(x) = 0 (2.130)

“resolver uma equacoes”.Fomos omissos em nao dizer que tudo que fizemos vale para funcoes polino-

miais. Na verdade sabemos que vale para funcoes nao polinomiais tambem, mascom algumas restricoes. Por exemplo, a demonstracao que fizemos do metododas tangentes usou que a funcao, cujas raızes procuravamos, era polinomial.

Sem duvida sabemos um pouco mais sobre o assunto do que antes de iniciaro capıtulo, sobre tudo sabemos que nao e facil resolver-se uma equacao. Alge-bricamente, as equacoes polinomiais somente podem ser resolvidas com radicaisate o grau quatro. Mesmo as equacoes do grau tres e quatro oferecem razoaveisdificuldade para que as resolvamos usando as formulas algebricas. Com um pro-grama de computador, e com um monitoramento adequado do mesmo podemosir bem mais longe.

Como dissemos no inıcio do capıtulo, o nosso objetivo era tomar o problemade resolucao de equacoes como motivacao para o estudo de algumas tecnicasmatematicas e seus correspondentes algoritmos computacionais.

Estudamos assim os metodos classicos para determinacao de raızes,

Page 87: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 74

1. o metodo da secante;

2. o metodo da tangente;

aos quais associamos a tecnica computacional varredura.Tambem estudamos dois metodos matematicos (e a correspondente imple-

mentacao computacional)

1. busca binaria;

2. sucessoes recursivas;

3. ponto fixo.

O metodo do ponto fixo e muito mais profundo do que nos foi possıvel dis-cutir aqui. Tudo que fizemos foi partir da hipotese de convergencia e usando acontinuuidade de uma funcao fomos conduzidos a que o limite satisfaz a equacao

T (b) = b (2.131)

Um ponto de T satisfazendo esta equacao, se chama ponto fixo .Os pontos fixos sempre aparecem nas iteradas de uma funcao e sempre usa-

mos esta propriedade para resolver equacoes. Relembre aqui o que ja dissemosno inıcio do capıtulo, estamos usando o problema para estudarmos tecnicas quetem valor por si propria.

Esta e uma delas, construir iteradas para encontrar pontos fixos que saosolucoes de equacoes.

Esta tecnica e usada largamente na construcao de solucoes aproximadas deequacoes diferenciais. Nos dedicaremos, ao final do livro, um capıtulo a in-troducao deste assunto, onde voltaremos a usar o metodo do ponto fixo pararesolver estas equacoes.

2.7 O problema completo

O tıtulo e audacioso, problemas completos dificilmente existem. O que vou fazere juntar os pedacos, as discussoes feitas nas secoes anteriores, numa discussaofinal e apresentar-lhe um programa que faz todas estas analises conjuntamente.

O problema de busca de raızes, na forma como o estudamos aqui, separa asraızes em dois tipos,

• raızes do tipo tangente, que na verdade se classificam algebricamente comoraızes multiplas porque, numa vizinhanca da raiz a funcao pode ser fato-rada como

f(x) = (x − a)ng(x) ; g(a) 6= 0 (2.132)

Page 88: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 75

em que n e o ındice de multiplicidade da raiz e um numero par. Se n forpar serao estas raızes que estou classificando aqui como do tipo tangente,nao ha troca de sinal em alguma vizinhanca da raiz;

• raızes do tipo secante podemos usar a notacao do item anterior e dizer que

f(x) = (x − a)ng(x) ; g(a) 6= 0 (2.133)

com n impar. Neste caso ha troca de sinal da funcao em alguma vizinhancada raiz e podemos usar os metodos classicos:

– busca de raızes pelo metodo da secante;

– busca de raızes pelo metodo da tangente;

– busca binaria. Este metodo, a busca binaria, pode ser usado quandoa multiplicadade da raiz for par, mas eu nao usei este metodo noprograma.

O programa raizes015.c faz isto salientando qual foi o metodo que eleescolheu em cada raiz.

Testamos o programa com diversas funcoes com bons resultados, mas lheentregamos tambem o codigo fonte no modo habitual de programacao aberta.Se voce melhorar o programa, distribua a melhor versao nao se esquecendo denos enviar uma copia, poruqe o conhecimento e universal, e de todos.

Veja o resultado do programa captado pelo editor Joe com pequenas al-teracoes feitas por mim. Leia e rode o programa para fazer suas experiencias.A funcao selecionada dentro do programa e

f(x) = (x + 3.4)4(x + 3)2(x + 2)3(x − 1)2(x − 3)sen(x

x2 + 1(2.134)

que nao chega a ser uma funcao realmente maldosa. Bastaria acrescentar umtermo como sen(3x) para deixar o programa instavel. Esta instabilidade podeser resolvida com uma mudanca de variaveis, entretanto, como eu ja disse di-versas vezes, nao ha programa que possa funcionar sozinho, eles tem que sermonitorados.

O programa conseguiu encontrar todas as raızes quando usei o passo 0.0001com passo maior ele perde alguma das raızes.

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]

Page 89: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 76

Precisao da malha 0.000100

=================================================

==== Quando a derivada troca de sinal - tangencia =====

Raiz, por tangencia, 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 - tangencia =====

Raiz, por tangencia, 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 =====

============= Tres 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 ========

============= Tres 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 - tangencia =====

Raiz, por tangencia, 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 =====

Page 90: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 77

============= Tres 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 h’a raizes

2.8 Intersecao de graficos

Discutimos ate agora a solucao do problema

f(x) = 0

mas e muito mais frequente precisarmos de resolver o problema

f(x) = g(x)

em que f, g sao duas funcoes dadas. Evidentemente que este problema sereduz ao anterior, entretanto ha tecnicas especıficas para resolver o segundoproblema que vamos discutir nesta secao.

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 nao e um novo problema que estamos estu-dando.

Mas as peculiaridades em que o problema f(x) = g(x) se encontra, ou asaplicacoes que podem ser modeladas por este problema justificam que nos lhedemos uma atencao diferenciada como logo voce ira ver.

Vamos comecar lendo o grafico na figura (fig. 2.11) pagina 78.Este e um caso interessante que descreve uma gama de problemas do tipo

f(x) = g(x) ou f(x) ≥ g(x) (2.135)

Analisando o grafico vemos:

• Temos um intervalo [a, b]

• f(a) = g(a) e f(b) = g(b)

• f ′(a) > g′(a) e f ′(b) < g′(b)

• ∃ c ; c ∈ (a, b) ; f ′(c) = g′(c)

Page 91: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 78

f

g

f´(a) > g´(a)

f´(a) < g´(a)

f´(c) < g´(c)

a

c

b

Figura 2.11: Intersecao de curvas

ou seja, temos duas funcoes e algum ponto do domınio as derivadas delas sealternam em tamanho.

Se por um momento aceitarmos a linguagem mecanica14diremos que podehaver um momento em que o grafico de g passe o grafico de f porque a derivadarepresenta 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 pontosSabemos 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)

entao e possıvel encontrar outra solucao 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 ′ decresce muito rapidamente, e possıvel que haja outra solucao para oproblema f(x) = g(x) quando x > 0.

14que usualmente rejeitamos, tal como “tende” para limite

Page 92: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 79

Vamos analisar o que nos diz o Teorema do Valor medio para derivadas, seem algum ponto f ′(x) = 1

f ′(x) = 2e−x = 1 ⇒ e−x = 12 ⇒ (2.140)

⇒ ex = 2 ⇒ x = ln(2) (2.141)

(2.142)

Temos que procurar uma raız a a partir de x = ln(2) ≈ 0.69314718 o quefaremos 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 nao e amedia aritmetica entre os pontos a, b que resolvem o problema, mas se encontrarazoavelmente proximo do ponto medio.

Em outras palavras, 2ln(2) e uma aproximacao da raız.

Uma aplicacao desta questao a determinacao da area entre duas curvas.Neste caso nao queremos encontrar todas as solucoes do problema f(x) = g(x).Desejamos encontrar aquelas que ficam nos extremos de um intervalo que e aprojecao, no eixo OX da regiao cuja area desejamos calcular.

Um caso comum e que voce pode ver no grafico (fig. 2.12)

graf(f)∩ graf(g) = (a, f(a)), (b, f(b))as duas curvas se cortam em exatamente dois pontos. O valor da area da regiaolimitada por elas e

|b∫

a

(f(x)− g(x))dx|

e temos que encontrar as duas raızes do problema f(x) = g(x).O calculo, com grande acuracidade de raızes somente pode ser feito com

auxılio de programas de computador, entretanto, a determinacao “grosseira”

Page 93: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES APROXIMADAS 80

f

g

ab

Figura 2.12: Regiao cuja area queremos calcular

de um intervalo onde haja raız15pode ser feito com auxılio de uma maquinade calcular eletronica e isto e o que se espera na lista de exercıcios a seguirproposta.

Exercıcios 10 Raizes de funcoes

1. Considere f(x) = x5 + x2 − 4

(a) Mostre que f ′ tem apenas duas raızes, x0 < x1.

(b) Prove, sem fazer calculos numricos que f(x0) > f(x1)

(c) Prove fazendo algum calculo numrico que 0 > f(x0) > f(x1)

(d) Prove que f tem uma unica raız real e determine um intervalo ondeesta raız se encontra Resposta f(0) < 0, f(2) > 0

2. Encontre um intervalo contendo exatamente uma raız de

f(x) = x − 10000sen(x)

3. Calcule a area da regiao limitada pelos graficos das parabolas, figura

y = x2 − x − 12 ; y = −x2 − x + 12

(fig. 2.13) pagina 81,

4. As curvas

g(x) = (x2 + x − 12)cos(x

2π) ; f(x) = (x2 − x − 12) ∗ sin(

x

2π)

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

y = x2 − x − 12 ; y = −x2 − x + 12

(fig. 2.14) pagina 81,

Encontre os dois pontos mais distantes (ignore o ponto medio) e calcule aarea indicada na figura.

15ou no plural, a determinacao dos intervalos onde haja raızes

Page 94: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 2. RAIZES 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 parabolas

−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

Page 95: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

Capıtulo 3

Sucessoes recursivas

Os babilonios conheciam um metodo pratico, ver [?], para calcular raızesquadradadas, que vamos usar como introducao para o assunto deste capıtuloporque e um algoritmo recursivo.

Recursividade e um metodo em que uma funcao f “chama” a si propria.

A recursividade e conhecida e usada em Matematica ha milenios, como o

algoritmo do calculo de razes quadradas, mas recentemente (desde 1970), com

LISP, vem sendo usada em programas de computador produzindo algoritmos

bastante otimizados.

3.1 Babilonios e raız quadrada

Vamos usar o algoritmo dos babilonios para calcular raızes qua-dradas como motivacao para o assunto deste capıtulo.Uma sequencia e recursiva se for definida em funcao dos seusproprios termos: xn = f(xn−1, . . . , x1) em que f e uma expressaolegal (computacional ou matematica).

Escolhemos o algoritmo dos babilonios para servir de introducao (e mo-tivacao) para o assunto deste capıtulo por duas razoes:

• pela sua antiguidade provavel de mais de 4.000 anos e assim nos educamosno respeito dos antigos e do antigo contra o mito de que o moderno e quebom;

• pela sua alta precisao, com auxılio de uma maquina de calcular commemoria, com algumas iteradas, quatro ou cinco, voce obtem uma raizquadrado com boa precisao.

Uma primeira aproximacao para√

a vem da desigualdade entre a mediaaritmetica e a media geometrica:

82

Page 96: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 3. RECURSIVIDADE 83

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

√ab ≤ a + b

2(3.1)

Dem :√

ab ≤ a+b2

(3.2)

ab ≤ ( a+b2

)2 = a2+2ab+b2

4(3.3)

4ab ≤ a2 + 2ab + b2 (3.4)

0 ≤ a2 − 2ab + b2 = (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 numero qualquer de termos, ver [26], mas aquie suficiente o caso da media entre dois numero positivos, mais exatamente 1, aem que a e o numero positivo cuja raız quadrada desejamos.

• Se a > 1 entao 1 <√

a < a e 1 < a+12

< a;

• Se 0 < a < 1 entao 1 >√

a > a e 1 > a+12 > a;

portanto os numeros1 + a

2,√

a

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

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

acomo consequencia da desigualdade aritmetico-geometrica

√a =

√1 · a ≤ a + 1

2(3.6)

assim√

a ≈ a+12

Exemplo 8 Raiz quadrada de 10

√10 ≤ 10 + 1

2= 5.5

Podemos ver neste exemplo como a estimativa fornecida pela desigualdadearitmetico-geometrica e de baixa classe. Mas os babilonios ha mais de 4.000anos souberam iterar esta estimativa obtendo um algoritmo que fornece a raızquadrada com grande precisao depois de alguns passos.

Uma observacao simples conduz ao algoritmo dos babilonios.Se tivermos1 uma estimativa inicial, digamos, x, para a raız quadrada

√a

entao, ax

e outra aproximacao:

a

x≈ a√

a=

√a (3.7)

1e temos, que e a media com a unidade

Page 97: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 3. RECURSIVIDADE 84

• Se x for maior do que√

a entao ax sera menor do

√a.

• Se x for menor do que√

a entao ax sera maior do

√a.

• Quer dizer que temos duas aproximacoes, (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.

Definimos (definiram os babilonios)

g(x) =x + a

x

2=

a + x2

2x(3.8)

cuja derivada e

g′(x) = x2−a2x2 ; g′(

√a) = 0 (3.9)

g′(x) > 0 ⇐ x >√

a (3.10)

g e crescente x >√

a (3.11)

g(√

a) =√

ax>

√a⇒ g(x) >

√a (3.12)

x >√

a ⇒ g(x) = x+a/x2 < x (3.13)

x >√

a ⇒ g(g(x)) < g(x) (3.14)

Com estas propriedades podemos deduzir (possivelmente nao foi assim queos babilonios provaram)

uma primeira aproximacao s0 = x >√

x (3.15)√

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

g(√

a) =√

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

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

... (3.19)

hipotese:√

a < sn = g(sn−1) < sn−1 (3.20)

g(√

a) =√

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

(3.22)

e assim provamos por inducao parte do Teorema

Teorema 3 algoritmo dos babilonios

Page 98: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 3. RECURSIVIDADE 85

A sucessao (sn)n definida recursivamente por

x e uma aproximacao de√

ax >

√a

s0 = g(x)sn = g(sn−1)

(3.23)

e decrescente e limitada por√

a logo converge para um limite

sn → l =√

a (3.24)

Dem :Falta prova apenas a ultima afirmacao do teorema, que o limite e exatamente

√a.

Para isto observemos que g e contınua, portanto preserva limite o que significa que

limn

g(sn) = g(limn

sn) (3.25)

A direita na equacao (25) temos

limn

sn+1 = l (3.26)

e a esquerda na equacao (25) temos

g(limn

sn) = g(l) (3.27)

o que nos leva

g(l) = l (3.28)

Substituindo na equacao de g, (8), temos

g(l) =l2 + a

2l= l ⇒ l2 + a = 2l2 ⇒ l =

√a (3.29)

q.e.d .

Definicao 1 Ponto fixoQuando uma funcao g satisfizer a equacao (28), dizemos que o valor l e um

ponto fixo de g.

A sucessao seguinte de equacoes mostra como eles faziam:

x0 = 1 x1 = x0+10/x0

2x1 = 5.5

x1 = 5.5 x2 = x1+10/x1

2 x2 = 3.6590909

x2 = 3.6590909 x3 = x2+10/x2

2x3 = 3.196005

x3 = 3.196005 x4 = x3+10/x3

2 x4 = 3.162455

x4 = 3.162455 x5 = x4+10/x4

2 x5 = 3.1622776

e usando x5 como aproximacao de√

10 temos

x25 = (3.1622776)2 = 9.999999

︸ ︷︷ ︸61946176 (3.30)

que nos da 10 − x25 < 0.0000004 = 4

107

Page 99: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 3. RECURSIVIDADE 86

Vejamos mais um exemplo, calculando a raız√

1000.

Exemplo 9 A raız de 1000

x0 = 1 x1 = x0+1000/x0

2 x1 = 500.5

x1 = 500.5 x2 = x1+1000/x1

2x2 = 251.249

x2 = 251.249 x3 = x2+1000/x2

2 x3 = 127.6145

x3 = 127.6145 x4 = x3+1000/x3

2x4 = 67.7253273

x4 = 67.7253273 x5 = x4+1000/x4

2 x5 = 41.2454260

x5 = 41.2454260 x6 = x5+1000/x5

2x6 = 32.74526

x6 = 41.2454260 x7 = x6+1000/x6

2 x7 = 32.74526

x7 = 32.74526 x8 = x7+1000/x7

2x8 = 31.62278

x28 = (31.62278)2 = 1000.000

︸ ︷︷ ︸2149284 (3.31)

Os exemplos sao eloquentes, mostram que um “povo primitivo”, como osbabilonios, usavam um metodo ha mais de 4.000 anos que continua hoje im-batıvel...

Nos nao temos nada melhor, para calcular raızes quadradas, a nao sermaquinas 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 tecladodo micro, oito vezes. E tudo que podemos fazer para melhorar o algoritmo dosbabilonios.

Resta-nos agora entender o que se encontra por tras do metodo, e o quepassaremos a fazer.

Exercıcios 11 Medias e raızes

1. Calcule as medias aritmeticas e geometricas dos pares de numeros

Page 100: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 3. RECURSIVIDADE 87

Raíz aproximadade 10

0

2

4

6

8

10

12

1 2 3 4 5 6 7 8

f(x)x0

"data"

Figura 3.1: Determinacao de√

10

a b a+b2

√ab

1 22 40.2 0.40.2 1

2. Calcule a media aritmetica ponderada dos objetos dados considerando ospesos indicados

a1, a2, a3 p1, p2, p3

3∑

i=1

piai

1, 2, 3 0.1, 0.2, 0.71, 2, 3 0.4, 0.3, 0.31, 2, 3 1

3 , 13 , 1

3

1, 2, 3 16 , 1

3 , 12

(1, 2), (2, 1), (1, 1) 16 , 1

3 , 12

3. Calcule, aproximadamente, as raızes quadradas dos numeros indicados,usando o metodo dos babilonios, ate a quarta iterada, e indique o errocometido:

a x4√

a1220200

O grafico (fig. 3.1), mostra a realizacao do algoritmo dos babilonios (pararaız quadrada de 10). Nele podemos ver a funcao identidade e grafico de

g(x) =x + 10/x

2

Page 101: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 3. RECURSIVIDADE 88

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

(√

10, g(√

10)).

Voce pode repetir este processo inclusive com outras raızes quadradas usandoo programa em C que apresentamos logo a seguir.

Exercıcios 12 Sequencias recursivas

1. Matematica Social Escolha uma funcao f (sem combinar com seus colegasde trabalho) tal que graf(f) e o o grafico da primeira bissetriz y = x secortem no primeiro quadrante e que2 hipergraf(f) seja convexo.

Considere x0 > 0 escolhido arbitrariamente (sem combinar com seus co-legas de trabalho) e construa graficamente a sucessao de pontos no plano(n nao menor do que 4)

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

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

(3.32)

e agora compare o seu resultado com o dos seus colegas de trabalho paratirar uma conclusao.

2. Verifique (geometricamente) que a funcao f(x) = ln(x) nao pode definiruma sucessao recursiva xn+1 = f(xn) convergente. Justifique.

3. Verifique quais das funcoes seguintes produz uma sucessao recursiva con-vergente, e em que regiao isto se da (se der). Sugestao faca um graficocontendo graf(f), graf(y = x).

f [a, b] .a)f(x) = x + 3c)f(x) = x2

e)f(x) = x2 − 9

Os exercıos acima estao longe de esclarecer a importancia ou os metodoscomo tratar sucessoes recursivas que e um vasto topico dentro do qual se en-contra o algoritmo dos babilonios.

3.1.1 Um programa em C

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

2o hipergrafico de f e o conjunto dos pontos (x, y) tal que y ≥ f(x) - e o conjunto limitadoinferiormente pelo graf(f)

Page 102: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 3. RECURSIVIDADE 89

Os modulos do programa sao, a funcao

g(x, a) =x + a/x

2

em que deixamos a como parametro de formas que uma pequena alteracao noprograma permite que ele rode na linha de comandos.

A funcao principal, main(), que e obrigatoria em todo programa em C ouC + + e que puxa o script do teatro.

Alguns comandos colocados na funcao principal para criar o arquivo “data”onde se encontram as linhas que Gnuplot ira tracar.

Um arquivo que chamamos “transfere” e que contem os comando de Gnuplote que serao chamados internamente pelo programa uma vez que quem vai fazertudo e o programa em C.

O programa contem comentarios para ajuda-lo a compreender o que ele, faz,mas voce deve ler os arquivos “data” e “transfere” que o programa cria, paracompreende-lo melhor. E, finalmente, escreva um e-mail ao autor, com suasduvidas, ou consulte um hacker em computacao a sua volta, eles sao, em geral,benignos.

O comando para compilar o programa egcc -Wall -oprog -lm programa.c

em que programa.c e o nome do arquivo onde voce guardou o texto acima, e gcce o nome do compilador C que acompanha qualquer distribuicao Linux. Com-pilado o programa voce o pode rodar (executar) o executavel, prog, digitandonuma shell do Linux

./progno diretorio onde se encontra o programa gravado.

O programa descrito acima constroi qualquer exemplo de raız quadrada quevoce desejar, implementando o metodo dos babilonios. Ele cria dois arqui-vos: data e transfere. Se voce apenas quiser rever3o grafico, digite numa shell(Linux) gnuplot transfere

e voce voltara a ver o grafico recem feito com o programa. Ou, simplesmente,rode novamente4o programa com os mesmos dados. O programa fara, automa-ticamente, o caso

√2 se voce apenas der, “enter”, como resposta a todas as

perguntas. Movendo o cursor, sobre a tela grafica do Gnuplot, voce pode vero valor aproximado da raız escolhida. Nao espere conseguir grande precisao,nesta visualizacao.

3.2 Fundamentos da convergencia de iteradas

Exemplificamos, com o algoritmo dos babilonios da raız quadrada, que um tipode sucessao, que designamos por recursivas eram convergentes. Tambem javimos que o metodo das tangentes e gerado por uma funcao recursiva:

3enquanto voce nao der “enter”, o grafico ficara presente na tela4se voce tiver problemas com o programa, ou nao rodar Linux em seu computador, solicite

uma versao do programa, ao autor, indicando qual o sistema que roda em seu computador

Page 103: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 3. RECURSIVIDADE 90

g(x) = x − f(x)

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

Desejamos agora demonstrar os fatos, descobrir em que condicoes podemosgarantir que uma sucessao

xn+1 = g(xn) (3.34)

seja convergente. Vamos usar a aproximacao linear

g(b)− g(a) = g′(a)(x − a) + o(|x − a|) (3.35)

x2 − x1 = g(x1) − g(x0) = g′(x0)(x1 − x0) + o(|x1 − x0|) (3.36)

|x2 − x1| = |g(x1) − g(x0)| ≤ |g′(x0)| · |x1 − x0| (3.37)

· · · (3.38)

|xn+1 − xn| = |g(xn) − g(xn−1)| ≤ |g′(xn−1)| · |xn − xn−1| (3.39)

Estes calculos nos mostram que precisamos da hipotese de que g seja dife-renciavel e que em uma vizinhanca do ponto inicial x0 o modulo da derivadaseja menor do que 1. Se isto acontecer podemos deduzir das equacoes acima:

|x2 − x1| = |g(x1) − g(x0)| ≤ |g′(x0)| · |x1 − x0| (3.40)

|x3 − x2| =≤ |g′(x1)| · |x2 − x1| ≤ |g′(x1)||g′(x0)| · |x1 − x0| (3.41)

· · · (3.42)

|xn+1 − xn| ≤n−1∏

k=0

|g′(xk)||x1 − x0| (3.43)

Considerando os fatores na equacao (eq. 43) seja

r = max(|g′(x0)|, . . . , |g′(xk)|, . . . , |g′(xn−1)|) < 1 (3.44)

podemos deduzir da (eq. 43)

|xn+1 − xn| ≤ rn|x1 − x0| (3.45)

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

Teorema 4 Teorema do ponto fixoSe uma sucessao recursiva xn+1 = g(xn) em que g e uma funcao diferenciavel

e tal que exista um domınio [a, b] a cujo interior pertenca o ponto x0 e que|g′| < r < 1 em [a, b] entao a sucessao recursiva xn+1 = g(xn) converge paraum ponto a de forma mais rapida que uma sucessao geometrica de razao r e oponto a = lim

nxn e um ponto fixo de g

A ultima parte da tese do Teorema e o resultado das contas que fizemos nasecao anterior, com o algoritmo dos babilonios para a raız quadrada. Embora

Page 104: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 3. RECURSIVIDADE 91

o ponto fixo no caso daquele algoritmo tenha sido obtido num caso especial defuncao contınua, o arqumento aqui seria o mesmo.

Ha varios teoremas do ponto fixo, nos demonstramos acima um caso parti-cular e bem simples que atende as nossas necessidades aqui. Mas o estudiosode analise ira encontrar mais a frente outras formulacoes deste teorema quandovera, entretanto, que a questao gira em torno das mesma ideias, poder garantirque a funcao g que define uma certa sucessao recursiva funcione como um freiointerno da sucessao. Tais funcao satisfazem a desigualdade

|g(a)− g(b)| < |a − b|

portanto elas contraem a imagem e poristo se chamam de contracoes. Quandoa derivada for menor do que 1 em modulo temos uma contracao, e foi isto queusamos na demonstracao do teorema-4.

3.3 O algoritmo babibilonio e convergente

Para terminar o projeto, queremos mostrar que o algoritmo babibilonio pararaızes quadradas satisfaz as hipotses do teorema do ponto fixo, e portanto con-verge.

Vimos que o algoritmo depende da funcao

g(x) = (x +a

x)/2 =

x + ax

2(3.46)

cuja derivada e g′(x) = 12 − a

2x2 .

g′(x) = 0 =⇒ 1 − a

x2= 0 =⇒ x = ±

√a (3.47)

quer dizer que, para x > 0 o grafico conjunto de g e da primeira bissetriz e daforma (fig. 3.2) ou da forma (fig. 3.3)

a

x 0

g

Figura 3.2: Ponto inicial menor do que√

a

Page 105: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 3. RECURSIVIDADE 92

a

g

x o

Figura 3.3: Ponto inicial maior do que√

a

Nos dois tipos de graficos, (fig. 3.2) ou (fig. 3.3), vemos que o grafico de gcorta a primeira bissetriz na imagem do ponto fixo sobre o graf(g), (

√a,√

a).Como g e assıntota a funcao

y =x

2

e no ponto (√

a,√

a) a derivada de g e zero, entao se x0 for “grande”, quer dizer“maior do que

√a”, entao |g′(x0)| < 1.

Consideremos entao o intervalo I = [√

a,∞). Sobre I a hipotese do (Teorema4) e atendida porque como g(x) < x entao g(g(x)) < g(x) e portanto xn ∈ I, oque termina a demonstracao se escolhermos x0 >

√a.

Mas podemos considerar um ponto inicial x0 “pequeno”, isto e, menor doque

√a. Mas neste caso

x1 = g(x0) = x0 + ax0

(3.48)

x0 + ax0

>√

a (3.49)

(x0 + ax0

)2 > a (3.50)

x20 + 2a + ( a

x0)2 > a (3.51)

x20 + a + ( a

x0)2 > 0 (3.52)

provando que x1 ∈ I portanto, se escolhermos um ponto inicial “pequeno” o se-gundo ponto da sucessao obtida pelas iteracoes de g sera “grande”, pertenteceraao intervalo I e portanto a sucessao

(xn)n≥1 ⊂ I (3.53)

satisfaz ao (Teorema 4).Provamos assim que o algoritmo dos babilonios para razız quadrada converge

e muito rapido.

Teorema 5 Algoritmo babilonio para raız quadrada

A funcao g(x) = x+a/x2 define uma sucessao recursiva a partir de um ponto

qualquer x0 >√

a3 sendo o seu ponto fixo

√a.

Page 106: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 3. RECURSIVIDADE 93

3.4 Exercıcios

1. Escreva os 5 primeiros termos das seguintes sucessoes definidas recursiva-mente

a)sn = sn−1 + sn−2 s0 = 0; s1 = 1c)sn = 1 + sn−1 s0 = 1e)sn = nsn−1 s0 = 2; s1 = 1

b)sn = sn−1 + sn−2 s0 = 1; s1 = 1d)sn = 1 + sn−1 s0 = −1f)sn = nsn−1 s0 = 3; s1 = 1

2. Escreva o loop em pseudo linguagem de programacao5que calcula cadauma das sucessoes

a)sn+1 = sn + sn−1 s0 = 1; s1 = 1c)sn+1 = snsn−1 s0 = 1; s1 = 2e)sn+1 = snsn−1 s0 = 2;

b)sn+1 = sn/sn−1 s0 = 1; s1 = 1d)sn+1 = (n + 1)sn s0 = 1; s1 = 1f)sn+1 = nsn s0 = 3;

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

Sn+1 − Sn = an; S0 = 0 (3.54)

em que a sucessao a = (an)n∈N e dada.

4. Escreva a equacao de Sn sabendo que

Sn+1 − Sn = an; S0 = 0 (3.55)

em que a sucessao a = (an)n∈N e dada

Sn+1 an

a)Sn+1 1c)Sn+1 ne)Sn+1 n2

Sn+1 an

b) Sn+11n

d) Sn+11

n2

f) Sn+1 n3

5. Sequencia de Fibonacci6

A sequencia de Fibonacci e definida, recursivamente, como

s0 = 1 (3.56)

s1 = 1 (3.57)

n > 1sn = sn−1 + sn−2 (3.58)

Calcule alguns termos de s e escreva o loop que calcule s Resposta eexatamente um dos exercıcios anteriores.

5chamamos de pseudo linguagem de programacao uma sequencia de “comandos” que po-deriam pertencer a uma determinada linguagem de programacao, aquilo que e habitual fazerem cursos introdutorios de programacao com o nome de “algoritmo”

Page 107: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 3. RECURSIVIDADE 94

3.5 Solucao de alguns exercicios

1. (ex. 1) pagina 93

(a)

sn = sn−1 + sn−2 ; s0 = 0; s1 = 1 (3.59)

s2 = 1; s3 = 2; s4 = 3; s5 = 5; (3.60)

(b)

sn = sn−1 + sn−2; s0 = 1; s1 = 1 (3.61)

s2 = 2; s3 = 3; s4 = 5; s5 = 8 (3.62)

(c)

sn = 1 + sn−1; s0 = 1 (3.63)

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

(d)

sn = 1 + sn−1; s0 = −1 (3.65)

s1 = 0; s2 = 1; s3 = 2; s4 = 3; s5 = 4 (3.66)

(e)

sn = nsn−1; s0 = 2; s1 = 1 (3.67)

s2 = 2; s3 = 6; s4 = 24; s5 = 120 (3.68)

(f)

sn = nsn−1; s0 = 3; s1 = 1 (3.69)

s2 = 2; s3 = 6; s4 = 24; s5 = 120; (3.70)

2. (ex. 2) pagina 93

(a) entrada de dados: n;

int S=0, a0=1, a1=1,contador=2;

if (n ==0 ) return(a0);

if (n == 1) return(a1);

while(contador <=n)

S = a0 + a1;

a0 = a1;

a1 = S;

contador++; // contador = contador + 1

Page 108: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 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)

Page 109: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 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;

Page 110: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 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

Page 111: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 3. RECURSIVIDADE 98

3. (ex. 3) pagina 93

S0 = 0 =⇒ S1 = S0 + a0 = a0 (3.71)

S2 = S1 + a1 = S0 + a0 + a1 (3.72)

S2 = a0 + a1 (3.73)

S3 = S2 + a2 = a0 + a1 + a2 (3.74)

· · · (3.75)

Sn+1 = Sn + an = a0 + a1 + a2 + · · ·+ an (3.76)

Sn+1 =n∑

k=0

ak (3.77)

4. (ex. 4) pagina 93

(a) Sn+1 =n∑

k=0

1 = n + 1

(b) Sn+1 =n∑

k=1

1k

1 1.000000

2 1.500000

3 1.833333

4 2.083333

5 2.283334

6 2.450000

7 2.592857

8 2.717857

9 2.828969

10 2.928968

Sn+1 ≈ ln(n) para grandes valores de n.

ln(100000) ≈ 11.51292546497022842009;100000∑

k=1

1k ≈ 12.090851

(c)n∑

k=1

k = (1+n)n2

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

Page 112: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 3. RECURSIVIDADE 99

10 1.5497677311665

double S=0; // inicilizando soma

double a0=1.0;

int contador=1;

printf("%d %lf \n ",0,a0);

if (n == 0 )printf("%d %lf \n ",0,a0); return(a0);

while(contador <=n)

S = S + a0; // s(n+1)

printf("%d %2.13lf \n",contador, S);

contador++; // contador = contador + 1

a0 = (double) 1/(contador*contador); // s(n-1)

n∑

1

1

k2≈ π2

6

para grandes valores de n. Com n = 35000S35000 = 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 tipon∑

k=0

P (k) em que P e um polinomio a coeficientes

inteiros, podem ser calculadas exatamente usando-se um polinomio Qde grau uma unidade superior ao de P porque estas somas se reduzem

Page 113: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 3. RECURSIVIDADE 100

a uma expressao da forma Q(n + 1) − Q(0), ver [27, inducao finita].

neste caso a formula exata en∑

k=1

k2 = 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

k2 = (1 + 2 · · ·n)2 = (n(n+1)2

)2

Page 114: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

Capıtulo 4

Aproximacao polinomial de

funcoes

Este capıtulo vai lhe apresentar o objetivo deste livro: a modela-gem matematica usando aproximacao polinomial.Primeiro consideraremos o metodo intuitivo, um polinomio degrau n interpolando n pontos do plano, depois vamos otimizareste metodo o que nos vai conduzir ao chamado metodo de La-grange. E o que chamamos de metodo classico e que foi utilizadoate 1950.Com o metodo classico, que consiste em fazer passar um po-linomio pelos pontos conhecidos de uma funcao, para obter-se umaboa aproximacao e preciso que a densidade da malha seja muitogrande e consequentemente o grau do polinomio muito alto. Asconsequencias computacionais sao graves com esta metologia, maso metodo e excelente para epoca em que foi construidoa,como oprograma que acompanha o livro bem o mostra.Aos poucos, a partir dos anos 50, no seculo passado, foi surgindoum metodo sugerido por autores da decada de 40 que se constitueem considerar varios polinomios, um para cada intervalo da malha.E o que chamamos polinomios por pedacos, ou uma polinomial efinalmente vieram os splines, e os metodos finitos que muito separecem: ambos sao polinomiais.A parte final deste capıtulo faz a construcao dos splines por con-volucao.

aLagrange, (1736-1813)

101

Page 115: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 102

4.1 Aproximacao polinomial classica

Comecaremos pela aproximacao polinomial classica, na verdade com um unicoobjetivo em mente, mostrar que ela exige uma amostragem muito grande dofenomeno para que se possa obter uma boa aproximacao e, consequentemente,nao e pratica (computacional). Ela servira como motivacao para o assuntodas ultimas secoes, aproximacao polinomial por pedacos e finalmente para ossplines.

Nesta primeira secao vamos apresentar o problema um pouco de formahistorica mas com o objetivo de encaminha-lo para um uso intenso de doisprogramas, gnuplot e scilab.

O gnuplot ja vem sendo usado no livro desde o primeiro capıtulo, aquivoce vai ter a possibilidade de usa-lo como uma maquina de calcular. scilab,[23], e um pacote computacional distribuido gratuitamente pelo instituto francesINRIA que se dedica aos experimentos numericos computacionais em varioscampos da ciencia sendo scilab um dos projetos deste instituto. scilab, entreoutras coisas, resolve sistemas de equacoes lineares de grande porte. Nestesentido vou usar, inicialmente, a aproximacao polinomial como uma motivacaopara aumentar a sua experiencia com estes dois programas.

A ideia intuitiva, e ingenua1, para aproximacao polinomial ou interpolacaopolinomial de n pontos

(x0, y0) · · · (xn−1, yn−1) (4.1)

consiste em encontrar-se um polinomio

P (x) = a0 + a1x + · · ·+ amxm

tal queP (xk) = yk; k ∈ 0, · · ·n − 1 (4.2)

Como as incognitas do problema sao os coeficientes de P e como temos ncondicoes, vemos que P deve ter no mınimo2 n coeficientes: um polinomio degrau n − 1.

Vamos comecar do comeco, com o caso mais simples, um polinomio do pri-meiro grau.

A figura (4.1) pagina 103, mostra a solucao deste problema quando tivermosdois pontos,

P = (a, b) ; Q = (c, d)

1Veremos, mais adiante, que existe uma solucao, a chamada de Lagrange, que nao e nemingenua e nem intuitiva.

2Com grau maior, ha mais coeficientes aumentando o grau de liberdade da solucao epermitindo uma maior selecao entre as solucoes.

Page 116: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 103

P

Q

(a,b)

(c,d)

a c

[a,c]

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

f(a) = b

f(c) = d

p

f(p)

Figura 4.1: Uma reta interpola dois pontos

precisamos de um polinomio a ser determinado por dois coeficientes:

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

c − a; c 6= a (4.3)

Como ja vimos em varias ocasioes neste livro, e interessante escrever o po-linomio desenvolvido em dos pontos porque teremos de graca um dos coeficientesquando impusermos a condicao f(a) = b na equacao (3) temos o valor de b aordenada de um dos pontos que determina a reta.

Claro, e preciso vermos claro quais sao as condicoes do problema, mesmoque isto tenha sido dito acima, uma pequena repeticao torna-se didatica: “saodados dois pontos e queremos saber qual e o polinomio que interpola estes doispontos”. Encontrar um polinomio significa encontrar os seus coeficientes.

O nosso objetivo aqui nao e geometrico e sim funcional, desejamos funcoes.No caso da reta, figura (4.1) estamos entendendo que foram feitas duas medidas,uma no ponto x = a com intensidade y = b e outra no ponto x = c comintensidade y = d resultando nos dois pontos P = (a, b), Q = (c, d) e a reta queaparece na figura e a uma aproximacao do que acontece no intervalo [a, c].

Se todas as informacoes que tivermos forem estas (muito pobre o conjuntode informacoes) a unica modelagem do fenomeno e o segmento de reta que passanos dois pontos, na figura (4.1).

Se considerarmos um ponto p ∈ [a, c] o valor do fenomeno neste ponto, obtidocomo interpolacao (linear) e o valor da funcao do primeiro grau, equacao (3),calculada no ponto p. Pontos calculados em cima de retas sao medias aritmetica

Page 117: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 104

ponderadas dos valores que determinam esta reta, isto e a melhor que coisa quepodemos obter com esta quantidae (pobre) de informacoes.

Em geral se quer obter mais informacoes, mas obviamente existe um custoassociado a quantidade de informacoes: mais pessoas levantando dados, maistempo de busca, mais tempo de processamento. Entao precisamos de metodosmais eficientes para conseguir o melhor resultado com uma quantidade menorde informacoes, este e o objetivo deste capıtulo, desenvolver um metodo nospermita interpolar as informacoes conhecidas para calcular mais informacoes apartir das (poucas) informacoes obtidas.

Nesta primeira secao estamos apresentando a solucao classica, que se origi-nou no seculo 18, uma antiguidade digna de museu, mas que vale a pena pelomenos conhecer porque e magnifica considerando os parcos meios que Euler eLagrange e outros tinham para chegar nesta solucao, e nao somente nisto, ela ebastante exata, porem depende de uma grande quantidade de informacoes.

Veja mais uma comparacao grafica para ilustrar a imprecisao com que umapequena quantidade de informacoes nos deixa. Na figura (4.2) pagina 104,estamos apresentando uma formulacao grafica de um pretenso fenomeno real

P

Q

(a,b)

(c,d)

a c

[a,c]

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

f(a) = b

f(c) = d

p

o valor obtido por interpolação linear para x=p

o fenômeno "real"

O erro no pontox = p

Figura 4.2: A reta e o fenomeno real

associado a reta que que interpola o fenomeno a partir, apenas, das informacoescoletadas nos extremos do intervalo. Voce pode ver neste grafico que a retanada tem a ver com o fenomeno modelado, porque a quantidade de informacoescoletadas e muito pequena.

Observe que se, tudo que soubermos for os valores nos pontos x = a e x = c,nao teremos nenhuma condicao de avaliar o erro ocorrido ao considerar a media

Page 118: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 105

aritmetica f(p) como um valor aproximado do fenomeno no ponto x = p.O grafico na figura (4.2) e apenas uma ilustracao, e um grafico feito a mao.Certamente nao lhe estamos dizendo nada de extraordinario, o que desejamos

e conscientiza-lo para a necessidade de um trabalho maior em que pretendemosmete-lo agora: resolver um grande sistema de equacoes lineares. Felizmentetemos bons programas para resolver sistemas de equacoes lineares e a praticacom usa-los lhe sera util em muitas situacoes.

Uma solucao para este problema, quando tivermos um levantamento de da-dos com n informacoes, pode ser obtida com um sistema de n equacoes nas nincoognitas representadas pelos coeficientes de P

P (x) = a0 + a1x + · · · + an−1xn−1 (4.4)

um polinomio de grau n − 1, como no caso da reta, duas informacoes, saointerpoladas com um polinomio de grau 1, n informacoes serao interpoladascom um polinomio de grau n − 1.

Vamos comecar brincando um pouco com varias interpolacoes polinomiaistendo como objetivo mostrar-lhe que gnuplot e um excelente instrumento paratestes porque lhe permite somar polinomios ou multiplica-los por constantes eportanto pesquisar saıdas para um problema para o qual voce ainda nao tenhaum modelo adequado.

gnuplot e uma maquina de calcular com potencialidades bem elevadas e eisto que lhe queremos mostrar, inicialmente.

4.1.1 Analise de dois casos particulares

Interpolando pontos sobre o eixo OX

No primeiro caso considerarmos o caso em que yk = 0 para todo k, pode-mos facilmente ver que ha muitas solucoes para este problema e assim discutira existencia de uma solucao otima. Veja na figura (fig. 4.3) pagina 106, asmultiplas solucoes, para o problema particular, construidas com gnuplot

Esta modelagem com gnuplot foi produzida com o seguinte script que podeser encontrado aqui, [20, programas.tgz].

## splines01.01.gnuplot e o nome do arquivo

a0=5;a1=2;a2=-2;a3=-4

p(x) = (x - a0)*(x-a1)*(x-a2)*(x-a3)

dp(x) = (x-a0)*(x-a1)*(x-a2) + (x-a0)*(x-a1)*(x-a3) +\

(x -a0)*(x-a2)*(x-a3) + (x-a1)*(x-a2)*(x-a3)

set xrange [a3-1:a0+1]

plot p(x),dp(x),0

pause -2

M = 470.0 ## modulo maximo da derivada (visualmente)

P(x) = (1/M)*p(x)

dP(x)=(1/M)*dp(x)

plot P(x), dP(x),0

Page 119: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 106

−1.5

−1

−0.5

0

0.5

1

1.5

2

2.5

3

3.5

−4 −2 0 2 4 6

P(x)g(x)

0

Figura 4.3: Duas solucoes do problema homogeneo

pause -2

plot P(x),dP(x),0,p(x),dp(x)

pause -2

g1(x) = 2*P(x)

g2(x) = 3*P(x)

plot P(x), g1(x), g2(x),0

pause -2

#set terminal fig color big portrait

#set output "splines01_03.fig

Neste caso particular, quando estivermos interpolando pontos de um inter-valo contido em R, qualquer multiplo de uma solucao e tambem uma solucao,e a soma de duas solucoes e tambem uma solucao produzindo um espaco ve-torial de solucoes e voce pode se divertir procurando a dimensao deste espacovetorial. . .

Ao construir a solucao do problema:

• fizemos o grafico de p, p′ = dp

• modulo maximo calculamos, visualmente, o modulo maximo de p′. Existeum teorema que garante que o modulo maximo de um polinomio ocorre nafronteira de um disco que contem este intervalo considerado. E o teoremado modulo maximo e a figura (fig. 5) pagina 120, e uma ilustracao doteorema do modulo maximo estudado em variaveis complexas. A figurajustifica porque preferimos calcular visualmente o maximo da derivada;

• usamos como coeficiente

1

M; M = 470.0 ; M = max(|p′(x)|)

Page 120: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 107

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

I = [a3 − 1, a0 + 1]

• redefinimos o polinomio, P (x) = 1M p(x), portanto reduzimos a oscilacao3

do polinomio P no intervalo I.

• O modulo maximo vem do plano complexo que o melhor lugar para es-tudarmos polinomios (mas tambem um pouco mais complicado), a figura(5) mostra o que significa o modulo maximo quando estudamos polinomioscom variaveis complexas. Esta e a ultima mencao as variaveis complexasneste livro para o caso de voce querer saber onde e que se pode obterinformacoes mais completas sobre o uso do modulo maximo.

Módulo máximo

O módulo máximo

no plano complexo

pré imagem doponto de módulo

máximo

Figura 4.4: O teorema do modulo maximo

Esta analise sugere a existencia de uma solucao otima. Vamos ver que existeuma solucao unica para o problema que e tambem, em um certo sentido, otima.

Os exercıcios seguintes devem conduzı-lo a uma compreensao da oscilacaodos polinomios interpolantes associada a densidade da malha representada pe-los pontos a serem interpolados. O objetivo dos exercıcios e o de lhe ofereceruma oportunidade de fazer calculos, portanto faca experiencias com gnuplot

e scilab mas nao despreze as expressoes formais sem as quais nao e possıvelescreverem-se os programas.

Quanto mais densa a malha, menor a oscilacao no interior do intervalo emque se encontram os pontos (nos) da malha. Os exercıcios vai convida-lo a usarscilab, um pacote para fazer Algebra Linear, [23].

Quando os valores dados estao fora de OX

No segundo caso consideramos yk = r uma constante r ∈ R,.Aqui nos ajuda a solucao dos sistemas lineares dos quais sabemos que a

solucao geral de um sistema (e o caso agora) e a solucao geral do caso homogeneo(o primeiro caso que estudamos) mais uma solucao particular do caso geral.

3Observe que para reduzir a oscilacao do polinomio fomos buscar o modulo maximo daderivada

Page 121: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 108

Qualquer solucao P do problema homogeneo, somada de uma solucao par-ticular, um polinomio, portanto um conjunto de coeficientes, e a solucao geraldeste problema nao homogeneo. Vem da Algebra Linear, porque o problemase reduz a procura dos coeficientes sendo portanto um equacao matricial. Umexemplo particular esta no exercıcio (3) na pagina 109.

Nao e possıvel obter todas as solucoes do problema nao homogeneo semconsiderar o caso homogeneo foi poristo que dividimos a questao em dois casos.

Esta formulacao e importante se estivermos trabalhando com sistemas su-perdeterminados onde existe uma infinidade de solucoes (uma infinidade depolinomios).

Se quisermos encontrar o (unico) polinomio de grau n − 1 que interpola npontos dados, a solucao e unica, e se trata simplesmente de resolver um sistemade equacoes determinado como mostra o exercıcio (3) na pagina 109.

Nao vamos voltar mais a esta questao neste livro, isto e uma decisao deotimizar esforcos, o nosso objetivo sao os splines, quer dizer polinomios porpedacos. Se o leitor precisar de modelar com polinomios, o que foi dito acima esuficiente para guia-lo na complementacao do que ainda precisar.

Exercıcios 13 Interpolacao e oscilacao de um polinomio

1. O grafico na figura (fig. 4.1) foi produzido com o scriptsplines01.01.gnuplot

que se encontra aqui [20, programas.tgz]. Edite este script e faca algunsexperimentos com polinomios. Eis algumas sugestoes:

• encontre uma famılia de polinomios que que interpolem os pontos

(a0, r), (a1, r), (a2, r), (a3, r), (a4, r) (4.5)

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

• Construa um polinomio que passa em dois pontos escolhidos com umaoscilacao especificada.

solucao: splines01.02.gnuplot, [20, programas.tgz].

• Mais difıcil: construa um polinomio com oscilacao especificada quepasse em alguns pontos escolhidos. Voce vai precisar de resolver umsistema de equacoes. . .

2. interpolacao linear Tudo que sabemos sobre um fenomeno f medido sobreo intervalo [a, b] sao os valores do fenomeno nos pontos a, b, c:

[a, b] = [−3, 5] ; f(−3) = 7; c = 0f(c) = −2; f(5) = 1 (4.6)

Interpole,linearmente, estas informacoes estimando qual poderia ser ovalor de f nos pontos

−2, 0, 2 (4.7)

Faca um grafico ilustrativo.

Page 122: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 109

-2

-1

0

1

2

3

4

5

6

7

-3 -2 -1 0 1 2 3 4 5

f(x)0

Figura 4.5: Aproximacao linear por pedacos - 1-spline

Solucao 2 Veja o grafico na figura (fig. 4.5) pagina 109,

Esta funcao esta definida por dois sementos de reta, um quando x < 0 eoutro quando x ≥ 0.

x = −2 ⇒ (x < 0)f(x) = 7 − (9/3)(x + 3); f(−2) = 4 (4.8)

x = 0 ⇒ (x ≥ 0)f(x) = −2 + (3/5) ∗ x; f(0) = −2 (4.9)

x = 2 ⇒ (x ≥ 0)f(x) = −2 + (3/5) ∗ x; f(2) = −0.8 (4.10)

————————————————

3. interpolacao n~ao linear Temos as informacoes f(xk) sobre f definida nointervalo [a, b]:

[a, b] = [−3, 5]; x0 = −3; x1 = −2; x2 = 0; x3 = 2; x4 = 5 (4.11)

f(−3) = 7; f(−2) = 3; f(0) = −3; f(2) = 0; f(5) = 1 (4.12)

Encontre um polinomio do quarto grau

P (x) = a0 + a1x + a2x2 + a3x

3 + a4x4 (4.13)

tal queP (xk) = f(xk) (4.14)

interpolando nao linearmente as informacoes contidas na (eq. 12). Useesta interpolacao para obter uma estimativa dos valores de f nos pontos

−1, 1, 3 (4.15)

Faca um grafico ilustrativo.

Page 123: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 110

Solucao 3 As informacoes que temos nos permitem montar a tabela

xk -3 -2 0 2 5yk 7 3 -3 0 1

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

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

P (−2) = a0 = −3 (4.18)

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

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

−3a1 + 9a2 − 27a3 + 81a4 = 11 (4.21)

−2a1 + 4a2 − 8a3 + 16a4 = 6 (4.22)

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

5a1 + 25a2 + 125a3 + 625a4 = 4 (4.24)

−3 9 −27 81−2 4 −8 162 4 8 165 25 125 625

a1

a2

a3

a4

=

11634

(4.25)

Vamos primeiro usar scilab para resolver o sistema de equacoes depoisvamos mostrar uma outra forma de resolver o problema associado com oque fizemos no capıtulo 1, usando a ideia (nao o conceito) de polinomiode Taylor. Com scilab resolvemos qualquer sistema de equacoes portantonao precisamos de tecnicas mais avancadas 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. !

Page 124: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 111

! 3. !

! 4. !

-->a\b

ans =

! - 0.6880952 !

! 1.2678571 !

! - 0.0154762 !

! - 0.0357143 !

-->function y = f(x)

-->y =-3 -0.6880952*x + 1.2678571*x*x - 0.0154762*x*x*x - 0.0357143*x*x*x*x

-->endfunction

-->f(0) = - 3.

-->f(-3) = 7.9999986

-->f(-2) = 2.9999996

-->f(2) = - 0.0000004

-->f(5) = 0.999989

a0 = −3; a1 = −0.6880952; a2 = 1.2678571; (4.26)

a3 = −0.0154762; a4 = −0.0357143 (4.27)

Observe o erro apreciavel no calculo de f(−3) = 7.9999986 cometidousando scilab. O erro nao e do scilab mas do metodo, uma interpolacaopolinomial de grau 4 das quatro informacoes obtidas de uma tabela.

Devemos ainda calcular, usando a interpolacao polinomial, os valores def(−1), f(1), f(3), com scilab

-->f(-1) = - 1.0642858

-->f(1) = - 2.4714286

-->f(3) = 3.0357126

Veja o grafico deste polinomio, feito com scilab na figura (fig. 4.6) pagina112,

Page 125: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 112

−4

−2

0

2

4

6

8

−3 −2 −1 0 1 2 3 4 5

f(x)0

Figura 4.6: interpolacao polinomial dos pontos

————————————————

Outra solucao, de acordo com o que desenvolvemos no capıtulo 1, vamosdesenvolver o polinomio no ponto x = −3

f(x) = a0 + a1(x + 3) + a2(x + 3)2 + a3(x + 3)3 (4.28)

a0 = −7 (4.29)

f(−2) = −7 + a1 + a2 + a3 = 3f(0) = −7 + 3a1 + 9a2 + 27a3 = −3f(2) = −7 + 5a1 + 25a2 + 125a3 = 0f(5) = −7 + 8a1 + 64a2 + 512a3 = 1

(4.30)

Page 126: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 113

a1 + a2 + a3 = 103a1 + 9a2 + 27a3 = 4

5a1 + 25a2 + 125a3 = 78a1 + 64a2 + 512a3 = 8

(4.31)

Resolvendo este sistema de equacoes com scilab temos

a = [1 , 1 , 1 ; 3, 9, 27; 5, 25, 125; 8, 64, 512]

b = [10; 4; 7; 8]

c = a\b

function y = f(x)

y = -7 + c(1)*(x+3) + c(2)*(x+3)**2 + c(3)*(x+3)**3;

return y;

endfunction

-->f(-3)

ans =

- 7.

-->f(-2)

ans =

- 1.2993631

-->f(0)

ans =

1.0127389

-->f(2)

ans =

- 2.0063694

-->f(5)

ans =

1.2866242

em que obtivemos precisao apenas para f(−3).

Este dois exemplos nos mostram as dificuldades de obter uma interpolacaoconfiavel com polinomios de grau alto determinado pelo numero de in-formacoes. Aqui foram polinomios de grau pequeno porque tambem temospoucas informacoes.

4. Faca uma pequena dissertacao descrevendo quem e f e P na questao(ex.3). Use em sua redacao algumas das palavras: interpolacao, linear,estimativa, aproximacao, modelo.

Page 127: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 114

5. interpolacao nao linear Calcule o polinomio monico4 p que interpola ospontos

(−7.5, 0), (−2.5, 0), (2.5, 0), (7.5, 0)

6. Calcule o modulo maximo M de p no intervalo [−3, 4] e defina P (x) =p(x)M

. Calcule Maxx∈[−3,4]P (x) resposta oscilacao = 0.6

7. interpolacao nao linear Refaca a questao considerando os pontos

(−7.5, 0), (−1, 0), (1, 0), (7.5, 0)

.

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

p(x)=(x-x0)*(x-x1)*(x-x2)*(x-x3)

dp(x)=(x-x0)*(x-x1)*(x-x2)+(x-x0)*(x-x1)*(x-x3)+(x-x0)*(x-x2)*(x-x3)+\

(x-x1)*(x-x2)*(x-x3)

set xrange [x0:x3]

## quando a particao nao for uniforme altere a etiqueta

set title "uniforme" ## altere esta etiqueta para "nao uniforme"

plot p(x),dp(x),0

pause -2

M=1/1470.0 ## calcule este valor e substitua aqui

P(x) = M*(x-x0)*(x-x1)*(x-x2)*(x-x3)

dP(x) = M*((x-x0)*(x-x1)*(x-x2)+(x-x0)*(x-x1)*(x-x3)+(x-x0)*(x-x2)*(x-x3

(x-x1)*(x-x2)*(x-x3))

plot P(x),dP(x),0

pause -2

8. Comparando as questoes (ex. 5) e (ex. 7), verifique que, se os nos for-marem uma particao uniforme, a oscilacao de P e da derivada P ′ dopolinomio que interpola os pontos e diferente. Identifique em que caso aoscilacao e menor, sobre o intervalo determinado pelos pontos a sereminterpolados.

resposta oscilacoes 0.6 e 1

Interpolando pontos do plano

Nos exemplos desenvolvidos, mostramos como interpolar n pontos seleciona-dos num intervalo [a, b] contido em R. Tambem mostramos a baixa precisaoque existe neste metodo ingenuo de interpolar justificando assim que devemosprocurar metodos mais eficientes.

O nosso objetivo entretanto e, considerada uma colecao de nos sobre umintervalo [a, b]

a = x0 < x1 < · · · < xn−1 < xn−1 = b (4.32)

4se chama polinomio monico aquele cujo coeficiente do termos de maior grau e 1

Page 128: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 115

e um correspondente conjunto de valores

y0, y1, . . . , yn−1 (4.33)

como poderiamos interpolar, polinomialmente, os pontos

(x0, y0), (x1, y1), . . . , (xn−1, yn−1) (4.34)

ou ainda, encontrar um polinomio P cujo grafico passe por estes pontos. Noexemplo anterior fizemos isto quando yk = 0 para todo k.

Da mesma forma como

• dois pontos determinam uma reta, um polinomio de grau 1, porque os doispontos determinam os dois coeficientes da reta que passa por estes pontos,

• tambem n pontos determinam um polinomio de grau n−1, os n coeficientesdo polinomio, que os interpola.

Um segmento de reta, um polinomio de grau 1, e a forma de interpolar dois pontos.A forma eficiente de interpolar n pontos deve ser um polinomio de grau n − 1.

4.1.2 A solucao geral do problema

Resolver o problema geral de interpolacao polinomial classica

(x0, y0) · · · (xn−1, yn−1) (4.35)

consiste em encontrar um polinomio P de grau n tal que

P (xk) = yk; k ∈ 0, · · ·n − 1. (4.36)

seremos conduzidos a resolver um sistema de n equacoes cujas incognitas sao oscoeficientes de um polinomio do grau n − 1

a0, a1, · · · , an−1 (4.37)

P (x) = a0 + a1x + · · · + an−1xn−1 (4.38)

P (x0)...

P (xn−1)

=

y0

...yn−1

= (4.39)

P (x0) = y0

P (x1) = y1

......

P (xn) = yn

=

a0 + a0x0 + · · ·+ an−1xn−10 = y0

a0 + a0x1 + · · ·+ an−1xn−11 = y1

......

a0 + a0xn−1 + · · · + an−1xn−1n−1 = yn−1

(4.40)

P (x0)...

P (xn−1)

=

1 x0 x20 · · · xn−1

0

1 x1 x21 · · · xn−1

1...

......

...1 xn−1 x2

n−1 · · · xn−1n−1

a0

a1

...an−1

=

y0

y1

...yn−1

(4.41)

Page 129: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 116

A

a0

a1

...an−1

=

y0

y1

...yn−1

(4.42)

Este e um sistema muito especial cuja matriz A e uma matriz de Vandermonde5esabemos, da Algebra Linear que o valor do seu determinante e obtido peloproduto das diferencas entre os seus elementos caracterısticos

x0, x1, x2, · · · , xn−1 (4.43)

(x0 − x1) · · · (x0 − xn−1)(x1 − x2) · · · (x1 − xn−1) · · · (4.44)

· · · (xk − xk+1) · · · (xk − xn−1) · · · (xn−2 − xn−1) = (4.45)

= Πi>j(xi − xj) = V an((xi)n−1i=0 ) = D (4.46)

em que V an((xi)n−1i=0 ) representa o determinante da matriz de Vandermonde,

de ordem n, ver [12, pagina 301] ou [29, Vandermonde], cujos elementos carac-terısticos estao listados entre parenteses como parametros.

Este produto e diferente de zero, porque os nos 6 sao todos diferentes (naoteria sentido haver nos repetidos). Consequentemente a solucao do sistemaexiste e unica. Isto demonstra o teorema

Teorema 6 da interpolacao polinomial de LagrangeDada uma particao de um intervalo [a, b] com n nos,

a = x0, . . . , xn−1 = b (4.47)

existe um unico polinomio de grau menor ou igual a n passando pelos pontos

(x0, y0) · · · (xn−1, yn−1) (4.48)

O unico polinomio identificado no (teorema 6) pode ser calculado a partir dosistema de equacoes descrito acima, mas este metodo conduz a formulas muitodifıceis de expressar. Em vez disto vamos usar um metodo algorıtmico que vaiconduzir a uma formula mais simples para encontrar este polinomio.

Os exercıcios seguintes sao um tutorial para conduzı-l@ a 7 entender o cha-mado metodo de Lagrange para determinacao deste unico polinomio de grau nque interpola os pontos

(x0, y0), (x1, y1), . . . , (xn−1, yn−1) (4.49)

associados a malhaa = x0 < x1 < · · · < xn−1 = b (4.50)

sobre o intervalo [a, b].

5Alexandre Vandermonde, matematico frances (1735-1796).6pontos da malha de precisao7mas descoberto por Edward Waring (1736-1798) e por Leonard Euler (1707-1783)

Page 130: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 117

Exercıcios 14 Tutorial sobre polinomio de LagrangeEstes exercıcios vao conduzı-lo a entender o que e um polinomio de inter-

polacao de Lagrange. Os exercıcios marcados com asterisco podem ser ignora-dos, porque nao serao usados em nenhum local do livro.

1. derivada algoritmica Considere

P (x) = (x − x1)(x − x2)(x − x3) (4.51)

Verifique que

P ′(x) = (x − x1)(x − x2) + (x − x1)(x − x3) + (x − x2)(x − x3) =(4.52)

P ′(x) = P1(x) + P2(x) + P3(x) (4.53)

em que (notacao)

P1(x) =P (x)

x − x1; P2(x) =

P (x)

x − x2; P3(x) =

P (x)

x − x3(4.54)

Solucao 4 Usando a derivada do produto: (uv)′ = u′v + uv′ que podeser usada com um produto de qualquer quantidade termos, e observandoque a derivada de que cada fator e 1, temos

P ′(x) = (x − x2)(x − x3) + (x − x1)(x − x3) + (x − x1)(x − x2)

uma soma de produtos em que, sucessivamente, cada um dos fatores ori-ginais foi eliminado (trocado por 1). E razoavel designarmos

P1(x) = (x − x2)(x − x3) = P (x)x−x1

; (4.55)

P2(x) = (x − x1)(x − x3) = P (x)x−x2

; (4.56)

P3(x) = (x − x1)(x − x2) = P (x)x−x3

(4.57)

e desta formaP ′(x) = P1(x) + P2(x) + P3(x) (4.58)

em que Pk e o polinomio sem o fator (x − xk) ou ainda e o quocienteP (x)x−xk

.

Vamos usar esta notacao no proximo exercıcio.————————————————

2. Verifique que se

P (x) = (x − x1)(x − x2)(x − x3) (4.59)

entao

(a) Pj(xk) = 0 se j 6= k

Page 131: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 118

(b) Pk(xk) 6= 0

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

Esboce o grafico de P e tente uma justificativa geometrica para o fato deque a derivada de P e diferente de zero se as raızes forem distintas.

Solucao 5 (a) Pj tem todos os fatores (x − xk) exceto (x − xj) logoPj(xk) = 0 se j 6= k.

Como (x−xj) nao e fator de Pj entao Pj(xj) 6= 0. Vemos assim queo valor de Pj(xk) e

Pj(xk) = 0 ⇐ j 6= kPj(xk) 6= 0 ⇐ j = k

(4.60)

(b) O calculo da derivada P ′(xk):

P ′(x) =3∑

k=1

Pk(x) (4.61)

dado k P ′(xk)3∑

j=1

Pj(xk) (4.62)

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

porque todos os termos em que j 6= k se tem Pk(xj) = 0. PortantoP ′ e diferente de zero em todos os nos e o seu valor e Pk(xk) em xk.

Veja o esboco grafico de P na figura (fig. 4.7) pagina 118, As retas

x1 x2

x3

P

Figura 4.7: Polinomio de Lagrange

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

Page 132: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 119

ponto

m1 = P ′(x1) e coeficiente angular em x1 (4.64)

m2 = P ′(x2) e coeficiente angular em x2 (4.65)

m3 = P ′(x3) e coeficiente angular em x3 (4.66)

(4.67)

————————————————

3. Verifique que se

P (x) = (x − x1)2(x − x2)(x − x3) (4.68)

entao P ′(x1) = 0.

Verifique que definindo

P1(x) =2P (x)

x − x1; P2(x) =

P (x)

x − x2; P3(x) =

P (x)

x − x3

entao P ′ =3∑

k=1

Pk.

Esboce o grafico de P e tente uma justificativa geometrica do valor zeroou diferente de zero das derivadas. Tente elaborar uma uma teoria geralsobre o assunto, comparando este caso com o anterior.

4. derivada algoritmica Considere o polinomio de grau n

P (x) = Πnk=1(x − xk) (4.69)

(a) Verifique que

P ′(x) =

n∑

k=1

Pk(x) (4.70)

em que, para cada k, Pk(x) = P (x)x−xk

.

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

(c) Prove que se P for um polinomio definido pela equacao (eq. 69) e asraizes xk todas distintas, entao P ′(xk) 6= 0 para todo k = 1 . . . n, ovalor da derivada, em todos os nos, e diferente de zero.

(d) Faca um esboco grafico de P e escreva uma pequena redacao justifi-cando, com uma argumentacao geometrica, porque P ′(xk) 6= 0.

Solucao 6 (a) E uma generalizacao dos exercıcios anteriores, agora te-mos um produto de n monomios, todos tendo por derivada 1. Quandoaplicarmos a derivada do produto teremos uma soma de n novos pro-dutos, cada com n − 1 termos em cada um dos quais aparentementedividimos P por cada um dos fatores, sucessivamente:

Page 133: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 120

P1 = P (x)x−x1

(4.71)

P2 = P (x)x−x2

(4.72)

... (4.73)

Pn = P (x)x−xn

(4.74)

P ′(x) = P1(x) + P2(x) + · · · + Pn(x) (4.75)

P ′(x) =n∑

k=1

Pk(x) (4.76)

(b) Valor de Pk(xj).

Para cada k, o polinomio Pk(x) e um produto de n − 1 termos emque o fator (x − xk) nao esta presente, logo

Pk(xk) 6= 0.

Por outro lado todos os fatores (x − xj) com j 6= k estao presentesem Pk(x) e assim

Pk(xj) = 0 ⇐ j 6= k.

(c) Calculo de P ′(xj)

P ′(xj) =n∑

k=1

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

O grafico de P corta o eixo OX em todos os nos se alternando com maximoou mınimos locais entre as raızes. E um grafico semelhante ao que vocepode ver na figura (fig. 4.7) pagina 118.

————————————————

5. * Verifique (tente uma demonstracao) se P for dado pela equacao (eq. 69)com todos os xk distintos, entao as raizes de P e P ′ “se entrelacam” (temuma) raız de P ′ entre duas raizes de P . Escreva um teorema descrevendointeiramente esta situacao.

Solucao 7 Como as raızes sao todas distintas, (nao ha raızes multiplas)entao as raızes de P ′ sao todas distintas das raızes de P .

Como entre duas raızes de P este polinomio tera um maximo ou ummınimo8 local, entao P ′ tem uma raız entre duas raızes de P .

————————————————

8quem garante isto e a continuidade

Page 134: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 121

6. * Por que a teoria do item anterior falha se houver raizes multiplas em(eq. 69) ?

Solucao 8 Porque quando houver uma raız multipla, ela tambem seraraiz da derivada. Suponhamos que x = a seja uma raız com multiplicidaden > 1 entao

f(x) = (x − a)ng(x) (4.78)

f ′(x) = n(x − a)n−1g(x) + (x − a)ng′(x) = (4.79)

f ′(x) = (x − a)[n(x − a)n−2g(x) + (x − a)n−1g′(x)] (4.80)

f ′(a) = 0 (4.81)

entao x = a tambem e raız de f ′.

————————————————

7. * A hipotese essencial na teoria do exercıcio (exer. 5) e que P e umafuncao contınua e P ′ tambem e contınua. Generalize o (exer. 5 ) comestas duas hipoteses, para uma funcao f que e contınua e continuamentediferenciavel.

8. *oscilacao da derivada(1) Considere P (x) = x2−a2. Encontre uma condicao

para que o maximo da derivada P ′ seja maior do que o maximo de P nointervalo que contem as raızes9[−a, a]; a > 0 Prove que se |b−a| ≤ 4 entao

|(x − a)(x − b)| ≤ |2x − a − b| =⇒ x ∈ [a, b]

Sugestao: nada muda no tamanho (desigualdades) quando os graficos fo-rem transladados...

9. *oscilacao da derivada(2) Verifique que para P (x) = x(x2 − 1) o maximo

da derivada P ′ e maior do que o maximo de P no intervalo que contemas raızes [−1, 1]

10. Polinomio interpolando pontos no plano

(a) Considere a sequencia de nos

−2.5,−1.5, 0.5, 2, 3 ⊂ [−3, 3]

e encontre P com estas raızes e calculo o modulo maximo, M , de P ′.

(b) Solucao otima Calcule os coeficientes de Q = P/M

(c) Considere os pontos do plano

(−2.5, 0), (−1.5, 2), (−0.5, 3), (0.5, 3), (1.5, 1), (2.5,−2)

e calcule um polinomio que interpole este pontos usando o polinomioQ. Faca os graficos.

9a condicao a > 0 nao e essencial, apenas facilita a apresentacao do problema.

Page 135: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 122

11. polinomio de Lagrange Considere a sequencia de nos

xk ∈ −2.5,−1.5, 0.5, 2, 3 ⊂ [−3, 3]

do intervalo [−3, 3]. Seja P o polinomio monico10que tem estes nos como

raızes. E defina Pk(x) = P (x)x−xk

.

(a) Calcule P ′.

(b) Mostre que

P ′ =

5∑

k=1

Pk.

(c) Mostre quePj(xk) = 0 =⇒ j 6= k

(d) Mostre queP ′(xj) = Pj(xj)

(e) Defina

f(x) =

5∑

k=1

Pk(x)

P ′(xk)

Verifique que f e um polinomio de grau no maximo 5. Calculandoseus valores sobre os nos, verifique sua equacao.

(f) Considere a seguinte sucessao de dados yk ∈ 4, 1,−2,−5, 7 e re-

defina f(x) =5∑

k=1

ykPk(x)P ′(xk) . Mostre que f(yk) = yk e que, portanto, o

polinomio f interpola os pontos

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

do plano.

(g) polinomio de Lagrange Considere uma sequencia de nos

(xk)nk=0 ⊂ [α, β]

Seja P o polinomio monico11que tem estes nos como raızes. E defina

Pk(x) = P (x)x−xk

.

10aquele cujo coeficiente do termo de maior grau e 1, obtido com os produtos

(x − x1) · · · (x − x5).

11aquele cujo coeficiente do termo de maior grau e 1, obtido com os produtos

(x − x1) · · · (x − x8).

Page 136: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 123

i. Calcule P ′.

ii. Mostre que

P ′ =

n∑

k=0

Pk.

iii. Mostre quePj(xk) = 0 =⇒ j 6= k

iv. Mostre queP ′(xj) = Pj(xj)

v. Defina

f(x) =

n∑

k=0

Pk(x)

P ′(xk)

Verifique que f e um polinomio de grau no maximo n. Calcu-lando seus valores sobre os nos, verifique sua equacao.

vi. Considere uma sucessao de dados (yk)nk=0 e redefina f(x) =

n∑

k=0

ykPk(x)P ′(xk)

. Mostre que f(yk) = yk e que, portanto, o polinomio

f interpola os pontos

((xk, yk)nk=0)

do plano.

(h) Considere uma sucessao (crescente) de nos (xk)nk=0 de um intervalo

[a, b]. Seja P o polinomio monico12que tem estes nos como raızes. E

defina Pk(x) = P (x)x−xk

. Verifique que

i.

P ′ =n∑

k=0

Pk

ii.Pj(xk) = 0 =⇒ j 6= k

iii.Pj(xj) = P ′(xj)

iv. f(x) =n∑

k=0

Pk(x)P ′(xk)

e um polinomio de grau no maximo n. Calcu-

lando seus valores sobre os nos, verifique sua equacao.

v. Polinomio de Lagrange Considere uma sucessao de dados (yk)nk=0

e redefina f(x) =n∑

k=0

ykPk(x)P ′(xk)

. Mostre que f(yk) = yk

12aquele cujo coeficiente do termo de maior grau e 1, obtido com os produtos

(x − x0) · · · (x − xn).

Page 137: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 124

4.1.3 Interpolacao polinomial de Lagrange

Se voce tiver feito o tutorial sobre polinomio de Lagrange esta secao representaapenas 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 grafico deum polinomio de grau menor13 ou igual a 1. Isto e dois pontos sao interpoladospor um polinomio de grau menor que dois. Tres pontos sao interpolados poruma parabola ou uma reta, novamente o grau e menor do que a quantidade depontos.

Assim, se quisermos interpolar n+1 pontos, deveremos obter um polinomiode grau no maximo n cujos n + 1 coeficientes ficam unicamente determinadospelos n + 1 pontos dados. Alias, o fato de havermos encontrado uma multitudede solucoes e um indicativo da fraqueza do metodo. Por outro lado, observeque o adjetivo “fraqueza” e enganoso uma vez que na verdade a nossa conclusaodeveria ser a de que existe excesso de informacoes e este excesso de informacoespode ser algumas vezes usado para obter melhor solucao em outro contexto.Guarde este comentario para uso posterior.

Vamos fazer um resumo do metodo, devido a Lagrange14 para construir umpolinomio de grau menor ou igual a n − 1 interpolando n pontos

(x0, y0), · · · (xn−1, yn−1) ; x0 < x1 < · · · < xn−1

dados.O metodo de Lagrange representa uma alternativa, usando a derivada, para

limitar a oscilacao do polinomio de interpolacao.Como habitual, chamamos os pontos x0, . . . , xn−1 ∈ I = [a, b] de nos de

uma malha que consideramos no intervalo I. Como sempre,

a = x0, b = xn−1

sao os extremos do intervalo considerado.Estes nos que definem uma particao do intervalo I sao chamados de pon-

tos de precisao porque neles conhecemos exatamente a funcao que esta sendoestudada, por exemplo, eles sao os pontos em que estao colocados os sensoresque mediram algum fenomeno. Se estivermos aproximando alguma funcao g, afuncao aproximante f que sera construida por algum dos metodos que estuda-remos neste capıtulo, conıncidira com g nestes pontos: f(xk) = g(xk).

A particao nao precisa ser uniforme, embora seja pratico, nas implementacoescomputacionais, considerar particoes uniformes porque simplifica a construcaodo algoritmo. Voce ira encontrar, entre os nossos programas, um meio para tra-balhar com particoes nao uniformes, que podem ser uteis em alguns contextos,como na analise de de fenomenos com alta oscilacao, ou piques.

Portanto a medida dos intervalos Ik = [xk, xk+1] nao precisa ser a mesma.Comecamos considerando o polinomio

Q(x) = (x − x0) · · · (x − xn−1) (4.82)

13salvo no caso em que os pontos estejam sobre uma paralela ao eixo OY ...14mas descoberto por Edward Waring (1736-1798) e por Leonard Euler (1707-1783)

Page 138: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 125

de grau n + 1 cuja derivada e obtida pela regra do produto, acompanhe asequencia de operacoes que lhe devem ser familiares, como consequencia deexercıcios anteriores:

Pk(x) = P (x)x−xk

um polinomio de grau n (4.83)

P ′(x) =n−1∑

k=0

Pk(x) (4.84)

Pk(xk) = P ′(xk) (4.85)

Pk(xj) = 0 ⇐==⇒ j 6= k (4.86)

f(x) =n−1∑

k=0

Pk(x)P ′(xk)

(4.87)

f(xk) =n−1∑

k=0

Pk(xk)P ′(xk) = Pk(xk)

P ′(xk) = P ′(xk)P ′(xk) = 1 (4.88)

como f e uma combinacao de polinomios de grau n entao e um polinomio cujograu e no maximo n. Como os valores deste polinomio nos n + 1 nos sao aunidade, podemos concluir que f e constante igual a 1. As experiencias feitascom gnuplot na lista de exercıcios acima ja evidenciou estes fatos.

Quer dizer que a expressaon−1∑

k=0

Pk(xk)P ′(xk) e uma combinacao linear convexa

(uma soma de pesos), para todos os valores de x no intervalo [a, b]. Se portantoescolhermos uma colecao de n + 1 valores, cada um deles associados a um dosnos podemos definir:

g(x) =

n−1∑

k=0

ykPk(x)

P ′(xk)(4.89)

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

g(xk) = yk

o que nos da um polinomio de grau n passando por n + 1 pontos escolhidos nointervalo [a, b].

O polinomio de grau n, equacao (89), e o polinomio de interpolacao deLagrange.

Page 139: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 126

4.2 Funcoes polinomiais por pedacos

A forma mais simples de interpolar uma colecao de pontos do plano consiste em liga-los porsegmentos de reta: a poligonal cujos vertices sao os pontos dados. Aqui vamos considerarum caso particular em que os pontos dados representam valores de uma funcao hipoteticadefina em um intervalo [α, β], os valores obtidos pelas medicoes de um sensor ao longo de umintervalo do tempo. Nestas condicoes as abcissas destes pontos sao uma sequencia crescentede pontos do intervalo [α, β],

α = a0 < a1 < · · · < an = β

e a poligonal mencionada acima e uma funcao linear por pedacos, caso particular do nossoobjetivo. Vamos generalizar o caso das poligonais nesta secao construindo os quase-splines,que sao funcoes polinomiais por pedacos do terceiro grau cuja derivada e contınua.

Nesta secao vamos fazer a construcao teorica das funcoes polinomiais porpedacos que ja aparecerem em varios exercıcios e que portanto voce ja estapraticamente familiarizado com este instrumento. Aqui a linguagem sera maisformal apenas.

Alguns itens da lista de exercıcios seguinte servem apenas para relembra-lode algumas tecnicas, do Calculo Diferencial e Integral e da Geometria Analıticaque precisaremos na continuacao. Aquilo que lhe parecer trivial voce deve,simplesmente, saltar.

Exercıcios 15 Polinomios por pedacos

1. Funcao linear por pedacos

(a) Considere a sequencia de nos

xk ∈ −3,−2.5,−1.5,−0.5, 0.5, 1.5, 2.5, 3 ⊂ [−3, 3]

e a sequencia de valores correspondente

yk ∈ 0, 1,−1,−2,−3,−1, 2, 0

Construa, (faca o grafico) da poligonal que interpola os pontos (xk, yk).

(b) Chame f a funcao cujo grafico foi feito no item anterior e calcule osseus valores nos pontos inteiros do intervalo [−3, 3].

2. Considere a seguinte melhoria nos dados do item anterior: para cada noda malha, o sensor calculou a taxa de variacao

dk ∈ 1, 0,−2,−1, 0, 1, 0,−1

e consequentemente, em cada intervalo Ik = [ak, ak+1] temos quatro in-formacoes:

Page 140: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 127

Ik =

no valor taxa de variacao

xk yk dk

xk+1 yk+1 dk+1

Encontre, para cada intervalo Ik, o polinomio

Pk(x) = ak,0 + ak,0(x − xk) + ak,0(x − xk)2 + ak,0(x − xk)3

que15 pode ser obtido considerando os valores nos extremos de Ik, yk, yk+1

e as taxas de variacao nestes pontos, dk, dk+1, quer dizer que

Pk(xk) = yk P ′k(xk) = dk

Pk(xk+1) = yk+1 P ′k(xk+1) = dk+1

3. Calcule a quantidade do fenomeno descrito no exercıcio (ex. 2 ), pordefinicao a quantidade de um fenomeno e a integral da funcao que o des-creve.

4. Considere a seguinte tabela de dados (obtidos por um sensor)

xk yk dk

−5 7 −31 3 17 5 −2

em que xk sao os nos da malha e yk, dk sao, respectivamente o valor me-dido e a taxa de variacao calculada em cada no. Encontre um polinomiopor pedacos do16 terceiro grau, P , que represesente o fenomeno no inter-valo [−3, 3] e faca o grafico.

4.2.1 Um sensor mais inteligente

Retomando a linguagem e a notacao que usamos na discussao do polinomio deLagrange, quando tivermos uma malha

a = x0, . . . , xn = b (4.90)

definindo uma particao de um intervalo [a, b], o problema tıpico que desejamosresolver consiste em criar um modelo para um fenomeno cujos valores

y0, . . . , yn (4.91)

sao conhecidos (medidos) sobre os nos. Anteriormente usamos a linguagem“desejamos encontrar um polinomio que passe pelos n + 1 pontos”

(x0, y0) · · · (xn, yn) (4.92)

15dizemos que este polinomio esta desenvolvido no ponto xk16chamos este tipo de funcao de “uma polinomial do terceiro grau”

Page 141: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 128

agora diremos que desejamos encontrar uma polinomial, uma funcao polinomialpor pedacos que passe pelos pontos na equacao (92).

Uma situacao pratica que este problema descreve, consiste de uma serie desensores colocados ao longo de uma via por onde passe o fenomeno que desejamosmedir, como um oleoduto e a pressao arterial do fluido que nele passe, ou avelocidade e a intensidade do trafego em uma estrada, enfim, qualquer eventoque possa ser medido controlado por um parametro que pertence a um intervalo.

Este e o significado de yk, a medida tomada no no xk, examine os exercicios(ex. 2) e (ex. 3), pagina 127.

Vamos considerar um sensor de melhor qualidade, capaz de nao somentemedir a intensidade do fenomenos em cada no xk mas tambem calcular-lhe ataxa de variacao neste ponto. Assim a base de dados que temos e

(x0, y0, d0) · · · (xn, yn, dn) (4.93)

em que yk e a intensidade do fenomeno em cada no xk e dn e a taxa de variacaoem cada no.

Exemplo 10 SensorVamos mostrar com um pequeno exemplo que a situacao descrita acima e

explorada no exercıcio 1, do sensor que tambem mede taxas de variacao, erealista.

Considere um sensor colocado em uma local estrategico para medir um fenome-no que executa as medicoes a intervalos determinados, a cada minuto, por exem-plo. Mas, ao “disparar o medidor, em vez de fazer uma unica medida, faz tresmedicoes, por exemplo, a cada mili-segundo.

**aqui pagina 24A base de dados assim levantada fica descrita pela matriz

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

∆t1+

y0,3−y0,2∆t2

2 =∆y0,1∆t1

+∆y0,2∆t2

2...

......

......

xn yn,1 yn,2 yn,3 dn =yn,2−yn,1

∆t1+

yn,3−yn,2∆t2

2 =∆yn,1∆t1

+∆yn,2∆t2

2

(4.94)

em que dk e o valor medio das duas taxas de variacao que pudemos calcularusando as tres medidas finas obtidas em cada no.

Simplificando, desta matriz de dados vamos fazer uso apenas da submatriz

x0 y0,1 d0

......

...xn yn,1 dn

(4.95)

e vamos simplificar a notacao

x0 y0 d0

......

...xn yn dn

(4.96)

Page 142: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 129

“esquecendo” o metodo como obtivemos as derivadas aproximadas e mesmo ig-noraremos na continuacao que se tratam de “derivadas aproximadas”. Diremosque dk e a derivada no ponto xn quer dizer que temos 2(n + 1)informacoesprocessadas17 pelo sensor:

• Quatro informacoes em cada sub-intervalo [xk, xk+1]. Temos

no no xk : yk, dk (4.97)

no no xk+1 : yk+1, dk+1; (4.98)

• Polinomios por pedacos. Em cada sub-intervalo podemos calcular umpolinomio de grau tres que modela o fenomeno no intervalo [xk, xk+1];

Pk(x) = ak,0 + ak,0(x − xk) + ak,0(x − xk)2 + ak,0(x − xk)3

Examine, novamente, os exercicios (ex. 2) e (ex. 3), pagina 127.

• Malha com n + 1 nos, com os n + 1 pontos, incluindo os extremos do in-tervalo, determinammos n subintervalos, temos n polinomios de grau tresque irao modelar o fenomeno no intervalo [a, b];

• Polinomial de grau tres e esta funcao que estamos chamando de uma po-linomial de grau tres que usaremos como modelo para os fenomenos queestamos estudando. A polinomial tambem chamada de funcao polinomialpor pedacos.

Podemos resumir estes dados na tabela:

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

3

......

......

xn yn dn Pn(x) = an,0 + an,1(x − xn) + an,2(x − xn)2 + an,3(x − xn)3

(4.99)Ha varias formas de resolver o exercıcio 1. Leia a solucao dos exercıcios ao

final do capıtulo, nos vamos usa-la como metodo de trabalho. Rode os nossosprogramas usando-os como exemplos dinamicos18 do texto.

4.2.2 Aproximacao de funcoes

Analise o grafico (fig. 4.8) pagina 130,Este grafico (fig. 4.8), pode ser reproduzido e inclusive impresso em papel,

usando o programa19 aproximacao que pode ser encontrado em [20, progra-mas.tgz] No grafico voce pode ver uma funcao do tipo

f(x) = P (x)sen(ax + b) (4.100)

17Houve uma quantidade bem maior de informacoes coletadas, depois de coletadas foramprocessadas, ou pelo sensor ou por um programa num computador resultando em 2(n + 1)informacoes.

18simplesmente rodar os programas nao o vai levar a adquirir conhecimento...19escolha, no programa, a opcao (3)

Page 143: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 130

gráfico da função

gráfico da aproximação

−60

−40

−20

0

20

40

60

−10 −5 0 5 10

Aproximação de uma função

"polped""precisao"

"XOY"

Figura 4.8: Aproximacao de uma funcao

obtida pelo produto de uma funcao polinomial por uma senoide. Tais funcoessao bons exemplos de modelos com grandes oscilacoes e portanto que oferecemdificuldades para serem aproximadas. Rodando o programa com intervalos gran-des, por exemplo [−30, 30] voce podera ver os defeitos da aproximacao. Usandoo intervalo default do programa, voce tera uma visao enganosa de perfeicao, mase este o objetivo do programa, permitir que voce manipule o exemplo o que naoe possıvel fazer com uma figura como (fig. 4.8).

Observacao 5 Simulacao da realidadePrimeiro que tudo e preciso observar que nao temos nenhuma funcao para

aproximar. O nosso objetivo e o de resolver problemas do tipo exemplificadopelo (ex. 3), pagina 127 em que uma massa de dados e obtida, de algumaforma20, representando um certo fenomeno que desejamos estudar. No casodos programas educacionais que fizemos, e interessante supor que exista umafuncao f dada, por uma equacao “algebrica”21, como

f(x) = P (x)sen(ax + b),

porque podemos exibir graficos que mostrem as perfeicoes ou as fraquezas dometodo. Nada poderiamos ilustrar apenas apresentando o modelo.

Falaremos com frequencia de uma funcao hipotetica que estamos tentandoaproximar, e essa funcao seria a equacao do fenomeno. Ora, a Natureza e muitorebelde para ser equacionada e e porisso que precisamos de modelos matematicospara simular a Natureza, e, naturalmente, sempre estar conscientes de que umaparte, possivelmente significativa, da realidade se perdeu em sua idealizacao pelomodelo.

20em geral com auxılio de sensores21estamos usando “algebrico” de forma larga, seno nao e evidentemente uma funcao

algebrica

Page 144: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 131

A unica forma de ter seguranca com simulacoes e

• Rodar diversas vezes o modelo. Rode o programa aproximacao com inter-valos bem diferentes, para entender o que estamos dizendo;

• cada vez que o modelo for rodado, fazer uma nova entrada de dados expe-rimentais;

• acompanhar estatisticamente a dispersao entre os dados obtidos com omodelo e os levantamentos de dados do fenomenos estudado;

• somente aceitar o modelo quando resultados independentes tiverem umadispersao estatıstica baixa.

Modelos sao aproximacoes da realidade construidas por seres humanos quepodem perder de vista um aspecto muito importante do problema no qual voceestiver aplicando o modelo. Eis a razao da importancia de entendamos os mo-delos por dentro e os possamos modificar, este e um ponto central na questaosoftware aberto.

Obviamente que existe um custo a ser considerado e, infelizmente, este custopode ser alguma vezes sobreposto a questoes como seguranca, aqui entra a etica...

Base teorica dos modelos

Ha varios tipos de modelos e este assunto sozinho ocupa varios volumes naliteratura, portanto o leitor deve ficar consciente de que aqui seguiremos porum atalho em busca de um tipo de modelo de nossa escolha. Na bibligrafia vocepodera encontrar mais dados para prosseguir num aprofundamento, se este foro seu desejo.

Numa classificacao um pouco simples consideraremos dois tipos de modelos:

• discretos em que o conjunto sobre os quais as funcoes estiverem defini-das tenha um numero finito de valores. Teoria dos jogos por exemplousa este tipo de modelos, a analise combinatoria, ou mais amplamente acombinatoria, e uma base teorica para tais modelos;

• contınuos em que as funcoes envolvidas tem como domınios subconjuntosdos numeros reais. As funcoes contınuas e diferenciaveis sao a peca centralnestes modelos com todas as tecnicas, integral e derivada, do CalculoDiferencial e Integral.

Os modelos de que trataremos neste livro sao do segundo tipo, os contınuos.

Observacao 6 Contradicao dos modelos contınuosMelhor do que contradicao seria possivelmente usar a palavra paradoxo. Aqui

e preciso chamar sua atencao para uma contradicao com a qual e preciso con-viver.

Todo o nosso trabalho se encontra intimamente ligado com programas decomputador, enfim com computadores. Ora, tudo em um computador e finito,

Page 145: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 132

quer dizer que estaremos modelando o infinito (contınuo)22com um modelo dis-creto, o computador.

Uma das consequencias mais funestas desta contradicao e que surge um itemomnipresente em nossos trabalhos, o erro, que temos que, permanentemente,levar em conta. Aqui e preciso ter uma atitude sempre realista de verificacaosistematica dos modelos em suas aplicacoes. Mas o objetivo desta observacaonao e o de sugerir o receio e sim o de observar que o cuidado sempre deveestar presente e um metodo pratico para enfrentar esta questao e o trabalho emequipes.

Os elementos da teoria sao os seguintes:

• da computacao vem uma tecnica que estamos usando deste o primeirocapıtulo, varredura;

• na Matematica, esta tecnica computacional de varreduras, assume o as-pecto de malha, ou particao de um determinado conjunto. Estes doisconceitos matematicos sao equivalentes, malha,particao, embora algumasvezes nao seja trivial a passagem de um para o outro. Neste livro sem-pre usaremos malhas associadas a um conjunto de pontos que determinam“retangulos” (nos casos multidimensionais) ou “sub-intervalos” (nos casosunidimensionais). Veja as figuras (fig. 2.2), pagina 32 e (fig. 2.3), pagina35.

Um exemplo, no caso unidimensional e o que voce tem no (ex. 3), pagina127, em um conjunto de nos escolhidos em um intervalo determina amalha. Associada a esta malha temos uma famılia de polinomios do grautres, uma polinomial do grau tres e assim escapamos do alto custo com-putacional que e trabalhar com polinomios de grau elevado;

• convergencia do algoritmo Os algoritmos definem sucessoes. Estudamossucessoes no capıtulo tres. Uma sucessao e uma funcao definida no con-junto dos numeros naturais e tomando valores em um outro conjunto. Estesegundo conjunto determina a natureza das sucessoes. Com frquencia,neste livro, as sucessoes tem valores reais, e o que chamamos de sucessoesde numeros reais23. Sucessoes deste tipo definem numeros quando foremconvergentes, e o limite da sucessao. Entretanto, nao daremos enfase aconvergencia de algoritmos neste livro, e isto e um defeito do livro, procurecompensar este defeito com literatura complementar.

• o conceito de continuidade e utilizado seguidamente. No Calculo voce es-sencialmente estudou que se a diferenca

|∆x| = |x2 − x1|22com frequencia a palavra contınuo e tomada como sinonimo de infınito mas os dois con-

ceitos sao distintos23em geral numeros racionais, sobretudo porque os nossos programas de computador so-

mente podem lidar com numeros racionais

Page 146: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 133

for pequena, entao a diferenca

∆f = f(x2) − f(x1)

tambem sera pequena quando a funcao f for contınua. Este e um pontoessencial e que se encontrara em jogo a todo momento. Vamos sempresupor que os fenomenos sao contınuos. Lavoisier dizia, veja [11], que “naNatureza nada se cria e nada se perde, tudo se transforma que se podetraduzir grosseiramente por a Natureza nao da saltos, modificado pelaCiencia Quantica para “a natureza da saltos, porem pequenos.

E a continuidade que usamos quando afirmamos que ao refinarmos umamalha reduzimos o erro cometido.

As funcoes diferenciaveis sao apenas funcoes mais profundamente contınuas.A derivada e uma ordem superior de continuidade.

E com base nestes tres conceitos

• malha ou particao e sua realizacao computacional, a varredura;

• convergencia de sucessoes;

• continuidade dos fenomenos a hipotetica equacao que governaria um feno-meno das ciencias naturais ou humanas, e uma funcao contınua e mesmodiferenciavel,

que vamos construir os modelos e provar que eles conseguem nos dar uma apro-ximacao satisfatoria da realidade.

A proxima lista de exercıcios tem por objetivo recıclar os seus conhecimentosde Calculo dentro do nosso objetivo.

Observacao 7 A admiravel eficiencia dos modelos matematicosOu, em outras palavras, modelos contınuos para um Universo esponjoso.Os saltos quanticos nao alteram ou impedem o uso da continuidade nos mo-

delos embora eles tenham que ser levados em conta num momento apropriado...Na verdade o Universo e esponjoso e nao existe, na vida real, a continui-

dade dos modelos matematicos. Mas os modelos, mesmo sendo, como sao, umarealidade virtual, nos permitem analisar a realidade fısica muito bem, desde quesaibamos usa-los adequadamente. O nosso objetivo e mostrar-lhe isto aqui.

Exercıcios 16 Continuidade e diferenciabilidadeSe um exercıcio lhe parecer obvio, nao o faca, nao perca tempo, mas seja

honesto consigo proprio: se um exercıcio lhe parecer pouco claro, crie umavariante do mesmo e faca os dois, o exercıcio e a variante.

1. continuidade Construa uma polinomial do terceiro grau P usando os dadosda tabela abaixo. Prove, usando P0(x1) = P1(x1), que P e continua. Proveque P tambem e diferenciavel.

Page 147: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 134

xk yk dk

x0 = −5 1 0x1 = 0 0 −1x2 = 6 2 1

2. Considere a figura (fig. 4.9) pagina 134. Justifique a existencia de pontos

no intervalo de definicao nos quais f ′(ζ) = f(b)−f(a)b−a . Identifique ζ, a, b e

o teorema do Calculo que governa esta afirmacao.

a b

f

1

Figura 4.9: Derivada, tangente e Teorema do Valor medio

3. Considere uma funcao contınua e diferenciavel, f , definida no intervalo[−5, 6] e a poligonal do terceiro grau P definida pela tabela seguinte:

xk yk dk

x0 = −5 f(−5) f ′(−5)x1 = 0 f(0) f ′(0)x2 = 6 f(6) f ′(6)

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

e um ponto x1,1 ∈ [x1, x2] tal que P ′(x1,1) = f(x2)−f(x1)x2−x1

indicando qual eo Teorema do Calculo que garante isto.

Page 148: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 135

4.3 Quase-splines

Como anunciamos no inıcio, a partir dos anos 1950, comecamos adescobrir que havia um metodo polinomial mais inteligente. Emvez de procurarmos um polinomio de grau elevado, n passandopor n + 1 pontos dados, poderiamos procurar varios polinomiosde grau mais baixo. Isto e o que chamamos de polinomios porpedacos, uma polinomial. . Estas polinomiais sao quase-splines.Vamos construtivamente mostrar que uma polinomial de grau trese a solucao otima e depois vamos definir o que sao splines.

4.3.1 Polinomiais de grau tres

Queremos resolver o problema de interpolar n + 1 pontos com a informacaoextra da taxa de variacao em cada um dos nos. Isto corresponde a um conjuntode quatro informacoes sobre cada sub-intervalo considerado o que nos permitedeterminar, associado a cada um dos intervalos, um polinomio de grau tres.

A solucao vai ser obtida iterativamente percorrendo o conjunto dos interva-los, vamos entao simplificar a notacao, considerando [a, b] um intervalo generico:

c1 = P (a), d1 = P (a)′ (4.101)

c2 = P (b), d2 = P (b)′ (4.102)

no intervalo [a, b] e sabemos, da aproximacao polinomial classica que estudamosinicialmente, que estas quatro informacoes nos permitem determinar de formaunica um polinomio do grau tres.

Temos as equacoes, (desenvolvendo o polinomio no ponto a)

P (x) = m0 + m1(x − a) + m2(x − a)2 + m3(x − a)3

P (a) = m0 = c1

P ′(x) = m1 + 2m2(x − a) + 3m3(x − a)2

P ′(a) = m1 = d1

P (b) = m0 + m1(b − a) + m2(b − a)2 + m3(b − a)3 = c2

P ′(b) = m1 + 2m2(b − a) + 3m3(b − a)2 = d2

(4.103)

que se reduz assim a duas equacoes nas incognitas ainda restantes m2, m3 ob-servando que sao conhecidos:

m0 = c1, m1 = d1, b − a, c2, d2 (4.104)

c1 + d1(b − a) + m2(b − a)2 + m3(b − a)3 = c2

d1 + 2m2(b − a) + 3m3(b − a)2 = d2(4.105)

Page 149: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 136

3c1 + 3d1(b − a) + 3m2(b − a)2 + 3m3(b − a)3 = 3c2

d1(b − a) + 2m2(b − a)2 + 3m3(b − a)3 = d2(b − a)(4.106)

3c1 + 2d1(b − a) + m2(b − a)2 = 3c2 − d2(b − a) (4.107)

m2 = 3c2−d2(b−a)−(3c1+2d1(b−a))(b−a)2

(4.108)

Nas (eq.106 ) igualamos os coeficientes de m3 depois subtraimos as duas equacoespara obter a (eq.107) de onde tiramos o valor de m2.

Esta solucao e possıvel porque os nos a, b sao diferentes e assim, calculado ovalor de m2, ele pode ser substituido numa das equacoes (eq.106 ), por exemploem,

c1 + d1(b − a) + m2(b − a)2 + m3(b − a)3 = c2

o que vai nos permitir o calculo de m3:

m3 =c2 − (c1 + d1(b − a) + m2(b − a)2)

(b − a)3(4.109)

que tambem e possıvel porque a 6= b. Observe que nao nos preocupamos emexplicitar os valores porque estas contas devem ser feitas dentro de um programaque ira fazer os calculos finais.

Como esta solucao e unica, achamos assim o unico polinomio P do terceirograu que satisfaz as quatro condicoes no intervalo [a, b].

Demonstramos assim:

Teorema 7 Existencia e unicidade da poligonal de grau tresDada uma particao

a = x0 < . . . < xn = b (4.110)

de um intervalo [a, b] e uma lista de pares de valores

y0, d0, . . . , yk, dk, . . . , yn, dn (4.111)

interpretados como valor no ponto, yk, e taxa de variacao no ponto, dk, existeuma unica poligonal P = (P0, . . . , Pk, . . . , Pn) do terceiro grau tal que

P (xk) = yk P ′(xk) = dk

P (xk+1) = yk+1 P ′(xk+1) = dk+1(4.112)

com (desenvolvendo o polinomio Pk no ponto xk)

Pk(x) = mk,0 + mk,1(x − xk) + mk,2(x − xk)2 + mk,3(x − xk)3 (4.113)

mk,0 = Pk(xk) = yk (4.114)

mk,1 = P ′k(xk) = dk (4.115)

sk = xk+1 − xk 6= 0 (4.116)

mk,2 =3yk+1−skdk+1−3yk−2dksk

s2k

(4.117)

mk,3 =yk+1−(yk+dksk+mk,2s2

k)

s3k

(4.118)

Page 150: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 137

O programa “aproximacao” calcula os coeficientes da poligonal em cadaum dos intervalos lancando os resultados no arquivo “dados” que voce pode lercom um editor de textos. O programa lhe dira isto. Escolha a opcao (5) noprograma, mas antes edite o arquivo leitura onde os dados do sensor devemestar gravados. O programa tem um pequeno texto explicativo em que estasinformacoes lhe serao apresentadas. Use a opcao (7) para isto, ou responda quedeseja ler a teoria, ao iniciar o programa.

Como a polinomial P coıncide com o polinomio Pk no intervalo [xk, xk+1],entao P e contınua e diferenciavel em cada sub-intervalo. Como Pk+1(xk+1) =Pk(xk+1) e P ′

k+1(xk+1) = P ′k(xk+1) entao P e contınua e diferenciavel no inter-

valo [a, b]

Pk(xk+1)′′ = 2mk,2 (4.119)

Pk+1(xk+1)′′ = 2mk+1,2 (4.120)

(4.121)

4.4 Valor medio integral

O tamanho da letra indica que o assunto desta secao e mais difıcil. Voce pode optar porsalta-lo se achar que a discussao anterior sobre valor medio @ deixou convencid@.

Vamos precisar do valor medio integral em nossa construcao dos splines e como este tipode valor medio e muito importante e sera usado muito no capıtulo 0, vamos fazer aqui umarevisao deste assunto de Calculo.

Definimos:

Definicao 2 (Valor medio integral) Valor medio integral Se f for integravel no intervalo[a, b] entao

V almed(f)[a,b] =1

b − a

bZ

a

f(x)dx

Os probabilistas fazem uso de um outro tipo de valor medio integral que e uma genera-lizacao deste que acabamos de definir e para definir os splines vamos precisar desta genera-lizacao.

Considere uma funcao positiva cuja integral seja 1. Um exemplo bem simples e umafuncao como

χ[−0.5,0.5] (4.122)

a funcao caracterıstica 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 funcao qualquerpositiva cuja integral seja 1.

Esta questao do valor medio esta longe de ser obvia. Temos que demonstra-la, provar quee verdade.

Vale a pena discutir um topico muito importante que e Valor medio integral.Vamos comecar analisando qual e o significado da integral

βZ

α

g = 1 (4.123)

Page 151: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 138

quando g for uma funcao positiva24, definida em um intervalo limitado [α, β].Integral no sentido25 de Riemann e area! quer dizer que podemos calcular aproximada-

menteβR

α

g se colocarmos uma malha fina no intervalo [α, β] e considerarmos os sub-retangulos

que os sub-intervalos vao gerar no grafico de g. Assim produzimos a soma que chamamos desoma de Riemann, e que voce deve ter visto no curso de Calculo26, veja o grafico na figura(fig. 1), na pagina ix. Uma soma de Riemann tem o seguinte aspecto:

nX

i=0

g(xi)∆xi (4.124)

e no caso de g, como sua integral vale 1, temos

nX

i=0

g(xi)∆xi ≈ 1 (4.125)

em que27 todos os numeros que aparecem na soma sao positivos.

Definicao 3 PesosUma colecao de numeros positivos, cuja soma e 1 se chama uma colecao de pesos, ou

simplesmente pesos.

Famılias de pesos sao usadas para calcular medias aritmeticas ponderadas, por exemplo,a inflacao28e uma media aritmetica ponderada.

No caso da funcao g = χ[−0.5,0.5] esta soma e exatamente 1, mas observe que estamosfazendo uma demonstracao e assim g e uma funcao qualquer satisfazendo duas propriedades:

• e positiva;

• sua integral e 1.

Se agora colocarmos a funcao f na soma de Riemann, teremos:

nX

i=0

f(xi)g(xi)∆xi (4.126)

e podemos interpretar esta soma como uma quase29 media aritmetica dos valores de f nointervalo [α, β] porque

xi ∈ [α, β]

onde estamos calculando a integral.Veja esta afirmacao de outra maneira: os valores

f(xi); xi ∈ [α, β]

podem ser interpretados como amostragem de f neste intervalo e a equacao (eq. 126) e ovalor medio desta amostragem por que a soma dos numeros g(xi)∆xi e quase 1.

Quanto mais fina for a malha, mas proximo de 1 estara a soma na equacao (eq.125 )30,portanto e este o valor da integral, “o valor medio de f no intervalo [α, β], relativamente afuncao g”.

Aqui temos dois fatores de precisao com que lidar:

24um nucleo, ou um pulso unitario25usamos apenas integrais no sentido de Riemann, neste livro! e tem integral num sentido

diferente?26O capıtulo 0 faz uma revisao rapida deste assunto, visite-o agora se achar que precisa.27aproximadamente 1 porque e uma aproximacao da integral que supusemos ser 128Em que os governos colocam pesos onde lhe interessam para produzir os ındices inflacio-

narios com que nos enganam29quase, porque a soma de Riemann,(eq. 125), nao e 1, ela e aproximadamente 130e mais preciso o calculo da media aritmetica

Page 152: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 139

• a densidade dos pontos da malha, quanto mais pontos forem tomados na amostragem,mais preciso fica o levantamento de dados, mas tambem fica mais caro;

• a medida da regiao de correcao que e o tamanho do intervalo [α, β], a “base” da funcao-peso com que estamos fazendo a media. Veja a ilustracao da regiao de correcao nafigura (fig. 4.13) pagina 147. Quanto menor for a medida desta regiao, mais exato ficaa correcao do erro na funcao,

a “ciencia” vai consistir em obter o maximo de precisao com o mınimo de custo.A funcao utilizada para calcular o valor medio, influencia este valor medio. Como em

qualquer media aritmetica ponderada31, a escolha dos pesos influencia o valor da media, querdizer que tais medias sao viciadas32, nao podemos ter uma resposta padrao sobre o valormedio integral

βZ

α

f(x)g(x)dx = V alMedg,[α,β](f) (4.127)

que chamamos de Valor medio integral de f relativo a g, no intervalo [α, β].Em geral as funcoes usadas para calcular valor medio, sao funcoes equilibradas em torno do

zero, o ponto central do grafico, e sao translatadas para uma certa posicao, para alı fazer o valormedio da funcao que interessa, como e o caso de χ[−0.5,0.5], que alem do mais e uniforme aolongo do intervalo [−0.5, 0.5] e consequentemente ela produz uma autentica media aritmeticade f no intervalo.

Quando a medida da regiao de correcao diminue, esta media tende para o valor de f , noponto central da regiao de correcao, se ele existir.

Quando a funcao f for contınua, este valor coıncide com algum valor de f no intervalo emque a media esta sendo calculada33. Se a funcao for descontınua ele representa uma propostade correcao da funcao. Esta ideia e essencial em diversas areas hoje, sob a rubrica correcaoda informacao.

Veja na figura (fig. 4.13) pagina 147, a ilustracao da regiao de correcao.Esta questao da media, a sua dependencia de uma funcao-peso, esta longe de ser obvia.

Mas se voce raciocinar um pouco, chegara a conclusao que deve ser assim. Por exemplo,

• considere g, a funcao relativamente a qual se quer calcular a media, como tendo maisarea a esquerda do ponto central a do intervalo. Tendenciosa a esquerda. Entao amedia estara mais influenciada pelos valores a esquerda; Veja a (fig. 4.15) pagina 152.

• considere agora g, a funcao relativamente a qual se quer calcular a media, como tendomais area a direita do ponto central a do intervalo. Tendenciosa a direita. Entao amedia estara mais influenciada pelos valores a direita; Veja a (fig. 4.15) pagina 152.

• mas se agora, g for equilibrada, tiver areas iguais a direita e a esquerda do ponto central,vamos encontrar a media aritmetica, o valor de f neste ponto central a, se ele existir;

• e fica uma pergunta nao respondida, porque usamos uma variedade grande de funcoes-peso, porque nao usamos sempre a mesma, uma funcao equilibrada em torno de umponto central ? guarde esta pergunta no bolso...

este raciocınio deve conduzı-l@ a aceitar que se g nao tiver inclinacoes nem a direita, nem aesquerda, entao a media calculada com ela correspondera ao valor f(a)34 em que a e o pontocentral do intervalo.

Conseguimos assim “demonstrar” o teorema:

Teorema 8 do valor medio integralSe g for uma funcao positiva tal que

31e o valor medio integral e uma media ponderada32o adjetivo vicidadas tem sentido tecnico, aqui, mas voce pode facilmente extrapolar o

sentido da frase para outros contextos menos tecnicos...como no calculo da inflacao. A inflacaoe polıtica! os precos sao polıticos! os juros sao polıticos!

33esta e uma propriedade das funcoes contınuas34aqui tem um erro, veja observacao mais a frente

Page 153: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 140

βZ

α

g = 1 (4.128)

entao

V alMedg,[α,β] =

βZ

α

f(x)g(x)dx (4.129)

e o valor medio integral de f relativamente a g no intervalo [α, β]. E se g for equilibrada nointervalo [α, β] no sentido de que tenha a mesma area a esquerda e a direita do ponto centrala deste intervalo, entao

a ∈ [α, β] ; V alMedg,[α,β] =

βZ

α

f(x)g(x)dx = f(a) (4.130)

Observacao 8 Um erro no teorema do valor medioO teorema 8 tem um erro que e preciso corrigir. Observe o grafico na figura (fig. 4.11).

A funcao f nao esta definida no ponto c

Quer dizer que nao podemos escrever

c ∈ [α, β] ; V alMedg,[α,β] =

βZ

α

f(x)g(x)dx = f(c) (4.131)

como esta no teorema, mas sim

V alMedg,[α,β] =

βZ

α

f(x)g(x)dx (4.132)

ou seja, apenas dizer que e o valor medio. E o acontece, no grafico (fig. 4.11), pagina 144em relacao ao ponto c em que a funcao pode nem siquer estar definida.

Aproveitemos para ver que o valor medio serve para definir o valor f(c) que faltava paraf ou que tinha sido calculado de forma errada.

Este e um metodo que os estatısticos usam frequentemente, e tambem muito usado nastelecomunicacoes, restauracoes de arquivos, recuperacao de dados.

Observacao 9 Evolucao e correcao de um teoremaQuando redigimos o teorema 8 cometemos o erro de escrever o valor de f no ponto a

a volta do qual o valor medio esta sendo calculado. Depois nos apercebemos do erro, masresolvemos deixa-lo assim, com a correcao posterior, para que voce veja que os teoremas asvezes nascem errados. Em geral eles sempre sao corrigidos, depois, mas por outra pessoa quele o trabalho, nao pelo proprio autor.

Acho que este erro torna mais facil a compreensao do teorema.

Exercıcios 17 (Valor medio) Valor medio

1. Considere a funcao f = χ[−0.5,0.5], a funcao caracterıstica do intervalo[−0.5, 0.5]. Prove que gα(x) = αf(αx) tambem tem integral 1. Produzaalguns exemplos usando gnuplot.

2. Construa uma funcao que seja contınua e positiva cuja integral seja 1.

Page 154: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 141

Solucao 9 Se uma funcao positiva for contınua e diferenciavel, digamosf , e definida e integravel no intervalo [a, b] entao podemos calcular

A =b∫

a

f(x)dx (4.133)

g(x) = 1A

f(x) (4.134)

o que resulta numa funcao positiva, contınua, diferenciavel cuja integralsobre o intervalo [a, b] e 1.

Basta-nos, portanto construir uma funcao qualquer e poderia ser

f(x) = 4 − x2 ; x ∈ [−2, 2] (4.135)

A =2∫

−2

f(x)dx (4.136)

g(x) =

|x| > 2 ⇒ 0|x| ≤ 2 1

Af(x)

(4.137)

3. Construa uma funcao formada de tres segmentos de parabola, que sejacontınua, diferenciavel e positiva cuja integral seja 1.

Solucao 10 Considere a funcao f(x) = 4 − x2 cuja derivada nos extre-mos do intervalo [−2, 2] sao, respectivamente, 4,−4. Podemos construirum parabola que tenha derivada no ponto −4 o valor -2, por exemplo

f1(x) = (x + 4)2 ; f′

1(x) = 2(x + 4); f1(−2) = 4

portanto se somarmos:

h(x) = f(x) + 4

teremosh(−2) = f1(−2); h′(−2) = f

1(−2)

Defina

g(x) =

x ≤ −4 0x ≤ −2 f1(x)x ≤ 2 f(x) + 4x ≤ 4 f2(x) = (x − 4)2

x > 4 0

(4.138)

Esta funcao se anula fora do intervalo [−4, 4], por contrucao e diferenciavele sua integral vale

Page 155: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 142

4∫

−4

g(x)dx = (4.139)

=−2∫

−4

f1(x)dx + (4.140)

+2∫

−2

(f(x) + 4)dx + (4.141)

+4∫

2

f2(x)dx (4.142)

−2∫

−4

f1(x)dx =2∫

0

x2dx = 83 (4.143)

2∫

−2

(f(x) + 4)dx = 16 − 163 = 32

3 (4.144)

4∫

2

f2(x)dx = 83

(4.145)

∞∫

−∞g(x) = 48

3 (4.146)

Defina entao F (x) = 348

g(x) e temos assim uma funcao cuja integral e 1sendo diferenciavel na reta. O grafico de F pode ser vista na figura (4.10)pagina 143,

4. estoque de nucleos Mostre que se uma funcao f tiver integral 1 entaog(x) = αf(αx) tambem tem integral 1.

4.5 Splines cubicos

Em muitas aplicacoes os quase-splines construidos na secao ante-rios sao suficientes oferecendo boa aproximacao. Mas em outras,como exemplo em computacao grafica, em que e necessario maisdinamica, os algoritmo tem que ser mais otimizado e o metodo deaproximacao mais preciso. Para isto temos os splines cubicos queconstruiremos aqui.

O nome do jogo! E spline ou splines. Se voce consultar [28, Spline], vocelogo vai ver a indecisao sobre o nome, hora e usado spline e logo em seguidasplines. Vamos preferir a segunda forma que nos parece mais eufonica, mas naotemos nenhuma razao especial pela preferencia a nao ser porque os splines sao

Page 156: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 143

-10

-5

0

5

10

-15 -10 -5 0 5 10 15

F(x)0

g(x)

Figura 4.10: Uma funcao positiva cuja integral e 1

formados sempre de varios pedacos e talvez porisso devessemos usar o “s” aofinal.

Ha varios metodos para construir splines. O que vamos adotar e muitopoderoso, embora exija um pouco mais de base teorica. Ao mesmo tempo suaaplicabilidade pode ser bastante simplificado, ao ponto de voce poder carregaro “motor” dos splines num pen-drive, ou mesmo num disquete de 1.44 Mb, faleinum pen-drive porque os disquetes em geral representam mais trabalho do queutilidade. Ate o final deste capıtulo esta questao ficara clara.

Definicao 4 SplinesUm n-splines e uma polinomial35 de grau n que e de classe Cn−1, quer dizer

que tem n − 1 derivadas contınuas.

35Nao precisa ser “polinomial”, no momento certo faremos esta observacao novamente. Hasplines nao polinomiais.

Page 157: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 144

Voce esta vendo a razao porque criamos um o conceito de polinomial quechamamos de quase-splines. Elas serviram para antecipar os splines e em al-guns casos substituı-los porque dependem de menos teoria. As polinomiais queconstruimos ate agora sao de grau tres e de classe C1, poristo nao sao splines, asegunda derivada pode ser descontınua.

Exemplo 11 SplinesUma poligonal contınua, isto e uma sucessao de segmentos de linha reta que

interligue n pontos, e uma polinomial de grau 1 e de classe C0, portanto um1-splines

E difıcil construir manualmente um 2-splines, uma polinomial do segundograu que seja de classe C1. Voce pode e deve tentar construir usando os metodosque apresentamos para construir os quase-splines afim de se convencer da difi-culdade e melhor avaliar a pequena complicacao onde vamos mete-l@ agora.

4.5.1 Produto de convolucao

Vamos definir uma operacao que ficou na geladeira por anos ate que os metodoscomputacionais a viessem resgatar, a convolucao, ou melhor dizendo, o produtode convolucao que e o seu nome original.

Vamos comecar com uma “definicao geometrica” errada, ilustrada36 na fi-gura (fig. 4.11) pagina 144.

f

móvelretângulo posição

originaldo retângulo

0

Figura 4.11: Definicao geometrica - produto de convolucao

No proximo paragrafo corrigiremos a definicao usando uma motivacao algebri-ca para adotar uma forma mais adequada de definir a operacao.

36Voce deve ter compreendido o poder do erro que aparece no coeficiente do segundo graudo Polinomio de Taylor no capıtulo 1

Page 158: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 145

Voce pode identificar, na figura (fig. 4.11), o grafico da funcao descontınuaf e varias copias do mesmo37 retangulo que sao translacoes do grafico da funcaocaracterıstica, χ[−0.5,0.5], do intervalo [−0.5, 0.5].

E esta a forma de fazermos produto de convolucao entre duas funcoes.

• Uma delas fica com o grafico fixo, a outra, tem seu grafico translatadopara um ponto a, Shapiro,[6], chama isto de media volante e logo voce vaiver porque.

• Neste ponto calculamos a integral do produto das duas funcoes, o resultadoe f ∗χ[−0.5,0.5](a), o valor do produto de convolucao no ponto a. Exercıcio(resolvido em seguida) escreva a equacao da translacao χ[−0.5,0.5]a dafuncao χ[−0.5,0.5] para o ponto a.

• A cada novo deslocamento (translacao) do grafico de χ[−0.5,0.5], o peso sedeslocando novamente, para um ponto b e nova integral corresponde aocalculo de f ∗ χ[−0.5,0.5](b), o valor do produto de convolucao no ponto b.

• Leitura “produto de convolucao de f por χ[−0.5,0.5] no ponto b”, a ex-pressao formal38 seria (errada, como ja @ advertimos)

∞∫

−∞

f(x)χb(x)dx =

∞∫

−∞

f(x)χ(x − b)dx (4.147)

Na expressao da integral o exercıcio proposto linhas acima ficou resolvido.

Sem duvida e difıcil39 calcularmos f ∗ χ[−0.5,0.5](x) num ponto x qualquerou mesmo obtermos uma formula para este resultado.

Nosso objetivo e mostrar-lhe alguns exemplos do que significa f ∗g para con-vence-l@ do valor do investimento pesado que vai fazer. Depois voce vera queum programa de computador sera o encarregado de fazer o trabalho pesado,nao se esqueca de que voce esta lendo um livro de Calculo Numerico Com-putacional. . . e que voce deve apresnder a escrever expressoes formais que umcomputador possa ler e calcular.

E, finalmente, deixe-me dizer-lhe, nos avioes comerciais, a fuselagem, e feitacom este instrumento, e quase que todos os jogos eletronicos tem splines portras, portanto estamos diante de uma ferramenta que vale a pena ser entendidae dominada.

Depois, passado o susto com a definicao geometrica, voce vera que o trabalhoficara com os programas...mas, temos que entender como fazer, para podermosescrever os programas.

37Duas das copias estao superpostas dando a impressao de que voce dois retangulos combases menores, mas e uma ilusao de otica.

38O autor escreveu os limites ±∞, propositadamente, para que voce se intimidasse, verifiqueesta integral se limita ao intervalo [−0.5 + b, 0.5 + b]

39nao ha porque escondermos a dificuldade, o “difıcil” e apenas difıcil, nao impossıvel, eapenas exige mais trabalho para dominar, somente isto. Como escalar um morro e difıcil, e osegredo e saber e ter os meios...

Page 159: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 146

Vamos calcular o resultado da convolucao esbocada na figura (fig. 4.11),geometricamente. A sucessao de figuras (fig. 4.12) pagina 146, (um filme...)

f

0

posição inicial

do retângulof*X(a)cálculo de

a

−0.5 +a0.5+a

f

0

posição inicial

do retângulo

cálculo de

f*X(b)

b > a

b

−0.5+b

0.5+b

f

0

posição inicial

do retângulo

cálculo de

f*X(c)

c > b > a

c

−0.5+c

0.5+c

Figura 4.12: O significado geometrico de tres valores

lhe mostra o significado do produto de convolucao calculado em tres pontosdiferentes.

Observe que escolhemos uma funcao muito particular: χ[−0.5,0.5]

Esta funcao tem integral 1 e temos a tendencia de chamar tais funcoes desinal, impulso unitario, nucleo. Vamos usar a palavra nucleo porque considera-mos sinal outra coisa que nao ira aparecer neste livro. As funcoes deste tipo,os nucleos, serao o instrumento que precisaremos quando fizermos produtos deconvolucao.

O produto das duas funcoes no ponto a e no ponto b vai produzir resultadossemelhantes. O quadradinho que representa a translacao de χ[−0.5,0.5] para estespontos, fica inteiramente imerso dentro do grafico de f . E como o quadradinho

Page 160: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 147

tem area 1, a integral do produto vai nos dar o valor medio da integral de f nointervalo de medida 1 (por causa da base do quadradinho) tendo como pontomedio a translacao. Estamos discutindo:

a < b < c ; (4.148)

f ∗ χ[−0.5,0.5](a), f ∗ χ[−0.5,0.5](b), f ∗ χ[−0.5,0.5](c) (4.149)

• [−0.5 + a, 0.5 + a] no caso de a

• [−0.5 + b, 0.5 + b] no caso de b

• [−0.5 + c, 0.5 + c] no caso de c

isto e, em qualquer caso, f ∗ χ[−0.5,0.5](x) e o valor medio de f no intervalo[−0.5 + x, 0.5 + x] porque a funcao caracterıstica, χ[−0.5,0.5], e positiva e temintegral 1.

Retornando a f ∗ χ[−0.5,0.5], como χ[−0.5,0.5] e uma funcao equilibrada emtorno do ponto central do intervalo [−0.5, 0.5] entao

f ∗ χ[−0.5,0.5](x) = f(x) (4.150)

quando este valor existir, e no caso do ponto c e um valor que fica entre osextremos do salto que a funcao da no ponto c. Veja o grafico da convolucao nafigura (fig. 4.13) pagina 147,

f

0c

Região de

correção

Figura 4.13: Correcao pelo valor medio numa vizinhanca de c

A figura (fig. 4.13) chama sua atencao para uma regiao do grafico em que afuncao f esta sendo corrigida. Isto ocorre num intervalo de medida 1, (devido abase do quadradinho utilizado). Nesta figura voce ve os graficos de duas funcoes,a funcao f descontınua no ponto c e uma outra funcao f , contınua, que e iguala f fora do intervalo de correcao.

Page 161: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 148

Esta, f , e a proposta de correcao da funcao descontınua, de que ja falamosacima.

Podemos corrigir a equacao (eq. 150) escrevendo:

f ∗ χ[−0.5,0.5](x) = f(x) (4.151)

A regiao de correcao pode ter medida menor e alguns dos exercıcios da listaque segue vao lhe mostrar isto: a regiao de correcao pode ser arbitrariamentecorrigida de modo que a funcao f seja uma melhor aproximacao para f .

Exercıcios 18 Media e nucleo

1. nucleos Faca os graficos das funcoes abaixo e descubra o que ha de comumentre elas do ponto de vista da integral. Voce nao precisa fazer todos osgraficos se descobrir a regra do jogo...

χ[−0.5,0.5] 2χ[−0.25,0.25]32χ[− 1

3, 13] 5χ[−0.1,0.1]

12χ[−1,1]

14χ[−2,2]

110χ[−5,5]

120χ[−10,10]

χ[0,1] 2χ[0,0.5]32χ[0, 2

3]

120χ[0,20]

χ[−1,0] 2χ[0.5,0]32χ[− 2

3,0]

120

χ[−20,0]

2. Podemos classificar os nucleos definidos na questao anterior como (1)com tendencia a esquerda, (2) com tendencia a direita ou (3)equilibrados.Descubra quais ficam em cada uma dessas classes.

3. Para cada um dos nucleos apresentados no primeiro exercıcio, indique amedida da respectiva regiao de correcao que lhe esta associada.

4. media viciada O grafico 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 grafico Veja na figura (fig. 4.14) pagina 148,

f

0c

Cálculo de média

com sinal tendencioso

f*g

Figura 4.14: Media viciada

Definicao correta da convolucao

Esta e uma secao difıcil, o que nao significa que nao seja para os comuns mortais.Aquilo que e difıcil apenas exige mais esforco para ser adquirido. E preciso,

Page 162: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 149

entretanto, salientar que, na pratica do dia-a-dia, nao sera preciso estar comtodas estas contas presentes. Ao final voce vai encontrar a equacao de umnucleo-splines cubico que podera registrar num arquivo, num pen-drive, e saircom ele por aı para usar quando precisar fazer convolucoes, e uma contribuicaodeste livro para sua vida pratica.

¡- forca uma parada do LaTeXVamos definir o produto de convolucao, e inicialmente escreveremos uma

definicao errada, acompanhando as ideias geometricas que desenvolvemos ante-riormente. Logo veremos, com um calculo algebrico, porque esta definicao naoserve e assim chegaremos a definicao adequada da convolucao.

Na introducao geometrica que fizemos acima dissemos que o valor de f ∗ gno ponto a era obtido

• translatando a funcao g de a e

• calculando a integral do produto de f por esta translatada

Precisamos de uma notacao adequada para escrever tudo isto:

• a translatada de g por a vamos chamar de ga e assim

• a “transformacao” translacao tem uma equacao curiosa:

x 7→ ga(x) = g(x − a) (4.152)

de modo que se voce quiser translatar para direita, no sentido positivo doeixo OX entao a > 0, por exemplo, g3(x) = g(x− 3) translata a funcao gde tres no sentido positivo de OX . Se g(0) = 0 entao g3(3) = 0. Faca ascontas.

• definicao errada da convolucao no ponto a e

a 7→ f ∗ g(a) =

∞∫

−∞

f(x)ga(x)dx (4.153)

Observe que estamos calculando a integral sobre o conjunto mais amploem que f esteja definida, a reta R. E possıvel que esta equacao nao tenhasentido portanto se impoe uma verificacao sobre quais as funcoes para asquais podemos calcular f ∗ g.

Vamos logo responder parcialmente esta questao: para que funcoes vale aexpressao (eq. 5 ) da convolucao. Veja que, se a integral

∞∫

−∞

f(x)dx (4.154)

existir, e se g for a funcao caracterıstica de um intervalo fechado, [α, β],entao

Page 163: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 150

f ∗ g(a) =∞∫

−∞f(x)ga(x)dx = (4.155)

=∞∫

−∞f(x)g(x− a)dx = (4.156)

=∞∫

−∞f(y + a)g(y)dy = (4.157)

=β∫

α

f(y + a)g(y)dy (4.158)

e se f tiver integral finita sobre R entao qualquer translacao40 de f teraintegral finita sobre qualquer intervalo da reta. Isto mostra a ultima eintegral e finita para qualquer valor de a portanto f ∗ g esta bem definidapara qualquer que seja a ∈ R, quando g for uma funcao caracterıstica deintervalo limitado.

• Crıtica da sucessao de equacoes Observe que a equacao (eq. 158 ) sugereque a convolucao nao e comutativa. Aqueles que trabalharam com estaoperacao, anos atras, observaram que uma pequena modificacao definiriauma operacao comutativa:

(f ∗ g)(a) =∞∫

−∞f(x) g(a− x)

︸ ︷︷ ︸

troca de sinal

dx = (4.159)

y = a − x =⇒ x = a − y =⇒ dx = −dy (4.160)

−−∞∫

∞f(a − y)g(y)dy = (4.161)

∞∫

−∞f(a − y)g(y)dy = (4.162)

∞∫

−∞g(y)f(a− y)dy = (g ∗ f)(a) (4.163)

Isto nos leva a definicao adequada da convlucao

Definicao 5 Convolucao

f ∗ g(a) =

∞∫

−∞

f(x)g(a− x)dx (4.164)

quando esta integral existir.

40uma propriedade da integral de Riemann, translacao nao alteram o valor da integral

Page 164: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 151

• Analise do domınio de f ∗ g

Vamos retomar a sequencia de equacoes acima, agora com a definicaocorreta da convolucao em que g e a funcao caracterıstica do intervalo[α, β]

f ∗ g(a) =

∞∫

−∞

f(x)g(a− x)dx (4.165)

se uma das funcoes for integravel na reta e a outra for limitada, estaintegral existe. Isto mostra que esta operacao tem sentido, e logo veremosque ha uma infinidade de funcoes que podem ser os operandos do produtode convolucao.

Demonstramos assim o teorema

Teorema 9 Domınio de validade da convolucao

A convolucao f ∗ g esta bem definida se g for uma funcao caracterısticade um intervalo fechado e f tiver integral em qualquer intervalo fechado.

Exemplo 12 Domınio da convolucao

Exemplos de funcoes para as quais podemos calcular f ∗ g sao qualquerfuncao contınua f se g for uma funcao caracterıstica de um intervalofechado.

Podemos calcular a convolucao de duas funcoes caracterıstica de intervalosfechados.

Nos voltaremos logo a esta questao, ampliando o conjunto de pares defuncoes para os quais podemos calcular a convolucao.

A convolucao define uma nova funcao que nos estamos sugerindo que sejauma aproximacao de f o que e inteiramente errado. Isto somente vai ser verda-deiro se a funcao g for um nucleo41. Vamos discutir este detalhe logo a frente.

4.5.2 Funcoes a suporte compacto

Vamos aqui entender o que controla a regiao de correcao, ja algumas vezesmencionada, e que estivemos todo tempo associando a base do quadradinho quefica deslizando sobre o grafico da funcao.

Voce ja deve ter percebido que esta funcao que usamos para calcular mediasdeve ter um aspecto do tipo que aparece na figura (fig. 4.15) pagina 152. Noscasos destes exemplos graficos, existe um intervalo 0 ∈ [c, d] tal que, fora dointervalo [c, d] a funcao e nula. Este intervalo se chama de suporte do nucleo.

Nao e preciso que o suporte seja um intervalo limitado.

41ou equivalente, um pulso unitario

Page 165: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 152

núcleo equilibrado

núcleo tendencioso à esquerda

núcleo tendencioso à direita

Figura 4.15: Nucleos ou pulsos unitarios

Exemplo 13 Nucleo tendo como suporte a retaA funcao f(x) = e−x2

, chamada de gaussiana tem integral finita

∞∫

−∞e−x2

dx =√

2 (4.166)

g(x) = 1√2f(x) (4.167)

∞∫

−∞g(x)dx = 1 (4.168)

e assim a funcao g(x) = 1√2f(x) e um nucleo tendo por suporte a reta R.

Quer dizer que se usarmos g como nucleo para calcular uma convolucao f ∗ go resultado seria uma funcao muito semelhante a f mas a regiao de correcaoseria a reta inteira. Mesmo com este defeito, f ∗ g e uma boa aproximacao def .

Usar um nucleo cuja regiao de correcao se extenda ao espaco inteiro temsignificado: se dilue o erro ao longo do espaco todo.

Mas em geral nao usamos a gaussiana para fazer aproximacoes porque elaintroduziria outra complicacao. Procuramos nucleos parecidos com os graficosda figura (fig. 4.15) pagina 152, e vamos aqui ver como podemos construir taisnucleos. Os intervalos fechados e limitados sao chamados intervalos compactosdaı o tıtulo desta secao, queremos nucleos com suporte compacto.

Page 166: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 153

Observacao 10 Domınio da convolucaoPodemos ampliar um pouco a resposta da questao do domınio de definicao

da convolucao, ou, para que tipos de funcoes podemos calcular a convolucao.Onde acima usamos funcao caracterstica, agora podemos dizer funcoes a suportecompacto.

Notacao o suporte de f e designado42 por supp(f).Um exemplo simples mostra como podemos construir nucleos com suporte

compacto:

Exemplo 14 Um nucleo com suporte compactoConsidere f = χ[−0.5,0.5] e vamos calcular f ∗ f .Geometricamente podemos ver que se a translacao for maior do que 1 em

modulo, a convolucao se anula, porque os dois retangulos nao mais terao su-perposicao, serao disjuntos. Faca um grafico para se verificar isto. Como con-sequencia temos

x /∈ [−1, 1] =⇒ f ∗ f(x) = 0

e portanto o supp(f ∗f) ⊂ [−1, 1]. Por outro lado, para qualquer translacao cujomodulo seja menor do que 1, os dois retangulos terao superposicao e assim aintegral sera diferente de zero. Verifique isto geometricamente, faca um grafico.Consequentemente supp(f ∗ f) = [−1, 1].

Vamos agora calcular f ∗ f , determinar sua equacao.Prosseguiremos com o metodo geometrico. Observe que o parametro da

funcao f ∗ g e a translacao aplicada a funcao g

x 7→ f ∗ f(x) =∞∫

−∞f(t)f(x − t)dt (4.169)

f ∗ f(x) =0.5∫

−0.5

f(t)f(x− t)dt (4.170)

=0.5∫

−0.5

f(x − t)dt (4.171)

y = x − t; dy = −dt; t = −0.5 =⇒ y = x + 0.5; t = 1 =⇒ y = x − 0.5(4.172)

f ∗ f(x) = −x−0.5∫

x+0.5

f(y)dy =x+0.5∫

x−0.5

f(y)dy (4.173)

chegamos a equacao (eq. 170) porque f e a funcao caracterıstica do intervalo[−0.5, 0.5], logo, fora dele e nula, a equacao (eq. 171) porque f e 1 sobre ointervalo [−0.5, 0.5], na equacao (eq. 172) estamos preparando a “mudanca devariavel” que ira na simplificar a analise na equacao (eq. 173). As hipoteses,

42duas razoes para usar “pp”, sup e para supremo, em ingles usamos supp para o suporte

Page 167: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 154

que temos que fazer para calcular a integral na equacao (eq. 173) sao

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∫

x−0.5

dy

x − 0.5 > 0.5 f ∗ f(x) = 0

(4.174)

Podemos melhorar as premissas no conjunto de equacoes re-escrevendo-as como

x < −1 f ∗ f(x) = 0x ∈ [−1, 0] f ∗ f(x) = x + 0.5 − (−0.5) = x + 1x ∈ [0, 1] f ∗ f(x) = 0.5 − (x − 0.5) = 1 − x

x > 1 f ∗ f(x) = 0

(4.175)

e voce pode ver o grafico da convolucao na figura (fig. 4.16) pagina 154.

0−1 1

Figura 4.16: quadrado de convolucao da funcao caracterıstica

Observe! A convolucao de duas funcoes descontınuas, resultou numa funcaocontınua, f ∗ f . A convolucao nao existe para ser calculada a mao, e o calculoacima mostra que ele pode ser bastante complicado, em geral, com muitas equacoese hipoteses. Vamos ver isto no proximo exemplo.

Mas o principal resultado deste exemplo e f ∗ f e um 1-splines. Estamosassim nos aproximando do objetivo do capıtulo... e para melhorar o animo,no meio de tantas contas, vamos calcular f ∗ f ∗ f que podemos antecipar quesera um 2-splines coisa que anteriormente dissemos que seria difıcil de calcularmanualmente.

Exemplo 15 2-splines por convolucaoQueremos calcular f ∗ f ∗ f , e como o produto de convolucao e associativo,

temos f ∗ f ∗ f = f ∗ (f ∗ f) = (f ∗ f) ∗ f o que nos diz que vamos aproveitar oresultado do exemplo anterior.

Preparando os calculos, temos

f ∗ (f ∗ f)(x) =∞∫

−∞f(t)f ∗ f(x − t)dt (4.176)

=0.5∫

−0.5

f(t)(f ∗ f)(x − t)dt (4.177)

Page 168: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 155

y = x − t; dy = −dt; t = −0.5 =⇒ y = x + 0.5; t = 0.5 =⇒ y = x − 0.5(4.178)

f ∗ (f ∗ f)(x) = −x−0.5∫

x+0.5

f ∗ f(y)dy =x+0.5∫

x−0.5

f ∗ f(y)dy (4.179)

A razao da equacao (eq. 177 ) e que o suporte de f e o intervalo [−0.5, 0.5],na equacao (eq. 178 ) estamos fazendo os calculos para mudanca de variavel, efinamente, como x−0.5 < x+0.5 invertemos os limites de integracao e trocamoso sinal na equacao (eq. 179 ).

Agora recorremos a intuicao grafica para agilizar o metodo. A funcao f ∗ ftem quatro fases (quatro equacoes) e seu suporte e o intervalo [−1, 1]

• antes de −1;

• no intervalo [−1, 0]

• no intervalo [0, 1]

• depois de 1

que sao os intervalos em que a equacao de f ∗ f muda, e temos que interpretara ultima integral em cada um desses casos, esta e a primeira analise

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∫

x−0.5

f ∗ f(y)dy +x+0.5∫

0

f ∗ f(y)dy

x − 0.5 ∈ [0, 1]1∫

x−0.5

f ∗ f(y)dy

x − 0.5 > 1 f ∗ f ∗ f(x) = 0(4.180)

Re-escrevendo as equacoes, 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∫

x−0.5

(y + 1)dy +x+0.5∫

0

(1 − y)dy

x ∈ [0.5, 1.5]1∫

x−0.5

(1 − y)dy

x > 1.5 f ∗ f ∗ f(x) = 0

(4.181)

Page 169: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 156

com a devida interpretacao de f ∗ f . Calculando as integrais temos:

x < −1.5 f ∗ f ∗ f(x) = 0

x ∈ [−1.5,−0.5](x+ 3

2)

2x ∈ [−0.5, 0.5] 3

4 − x2

x ∈ [0.5, 1.5](x− 3

2)

2x > 1.5 f ∗ f ∗ f(x) = 0

(4.182)

Para simplificar a notacao, vamos chamar g = f ∗ f ∗ f . Queremos verificar seg e contınuamente derivavel, de clase C1: uma polinomial de grau 2 de classeC1.

• Primeiro a continuidade, o que basta verificar os valores de cada uma dasequacoes nos extremos dos intervalos onde elas estao definidas.

– 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)+ =34−(−0.5)2 = 0.5 e as duas equacoes coıncidem a direita e a esquerda

!

– g(0.5)− = 34−(0.5)2 = 0.5 a esquerda, e a direita g(0.5)+ =

(0.5− 32)2

2 =0.5 as duas equacoes coıncidem a direita e a esquerda !

– g(1.5) = 0 a direita e a esquerda !

e provamos que g e contınua.

Verificando que a derivada e contınua.

• g′(−1.5)+ = 2x+32 |−1.5 = 0 coıncidindo a direita e a esquerda !

• g′(−0.5)− = 2x+32 |−0.5 = 1 g′(−0.5)+ = −2x|−0.5 = 1 coıncidindo a

direita e a esquerda !

• g′(0.5)− = −2x|0.5 = −1 g′(0.5)+ = 2x−32 |0.5 = −1 coıncidindo a direita

e a esquerda !

• g′(1)− = 2x−32 |1.5 = 0 coıncidindo a direita e a esquerda !

Verificamos assim que g e contınua e que g′ e tambem contınua, portanto ge de classe C1 sendo uma polinomial do segundo grau, portanto um 2− splines.

O grafico de g = f ∗ f ∗ f e formado de tres segmentos de parbola tangentesduas a duas no ponto (−0.5, g(−0.5)) e no ponto (0.5, g(0.5)). As parabolasexternas sao tangentes ao eixo OX e voce pode ver o grafico de g, feito a mao,na figura (fig. 4.17) pagina 166. Na mesma figura voce pode ver o grafico, feitocom 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 graficoque tambem aparece na referida figura. Observe a “barra invertida” na linha em

Page 170: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 157

que se inicia a definicao de g(x) dentro do Gnuplot. Ela serve para lhe permitirescrever uma formula que se expanda por mais de uma linha. Terminando alinha com a “barra invertida”, evita que Gnuplot leia um fim de linha e assimuma formula pode ser escrita em diversas linhas.

Observando, dos exemplos que duramente desenvolvemos, que ao fazer umaconvolucao a polinomial aumenta de um grau assim como a classe de continui-dade.

Isto e verdade mas a demonstracao e muito difıcil e vamos apenas enunciaro resultado sem demonstra-lo, para uma demonstracao leia o artigo [21].

Teorema 10 Nucleos n-splinesA enesima potencia de convolucao da funcao caracterıstica do intervalo

[−0.5, 0.5] e um (n-1)-splines a suporte compacto, positivo, com area 1. Por-tanto um nucleo (n-1)-splines.

Nas aplicacoes nos contentamos com 3-splines, os splines cubicos, que daotıtulo a esta secao.

Exercıcios 19 Splines a suporte compacto

1. splines cubico Partindo do exemplo do nucleo 2-splines, construa um nucleo3-splines (splines cubico).

2. escala e nucleo

(a) Chame g ao 2-splines construido no exemplo (ex. 15). Considere aseguinte operacao:

ga(x) = ag(ax)

e verifique a identidade

∞∫

−∞

ga(x)dx =

∞∫

−∞

g(x)dx = 1

para todo numero real a 6= 0.

(b) Faca o grafico de g2, g3, g4, g 13

sugestao use gnuplot para fazer estesgraficos.

3. splines cubico - formato arbitrario

(a) Faca o grafico da funcao

x < −4 x + 8x ∈ [−4,−1] −2

x ∈ [−1,−0.5] 1x ∈ [−0.5, 1] |2x|

x ∈ [1, 4] 2

(b) Amacie a funcao cujo grafico foi feito no item anterior, multiplicando-a por convolucao, sucessivamente, pelos nucleos g2, g3, g4 e faca umlaudo do resultado.

Page 171: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 158

4.6 Solucao de alguns exercicios

1. (ex. 8) pagina 121

Analisando o maximo de |P | e de |P ′| no intervalo [−a, a]; a > 0 em quese encontram as raızes, temos

|P ′(x)| = |x + a + x − a| = 2|x| ≤ 2|a| (4.183)

Max(|P ′|) = 2|a| (4.184)

Max|P | = a2 ≤ 2|a| =⇒⇐= |a| ≤ 2 (4.185)

Se fizermos uma translacao neste grafico43a equacao 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 raızes e no maximo 4 para quea desigualdade se de, portanto se |a − b| ≤ 4

2. (ex. 9) pagina 121

O maximo modulo de P ′ se da no ponto medio das raızes ou nos extremosdo intervalo [−1, 1]. Calculando estes tres valores encontramos

|P ′(−1)| = 2 = |P ′(1)|; |P ′(0)| = 1

logo o modulo maximo de P ′ e 2.

O modulo maximo da funcao do terceiro grau P , sobre o intervalo em que

ela tem raızes, se da nas raızes da derivada: ±√

13 e vale, em modulo

1

3(1

3− 1) =

1

3

2

3< 2

demonstrando o que desejavamos.

3. (ex. 10) pagina 121

4. Polinomio interpolando pontos no plano

5. (ex. 11g) pagina 122

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)

43movimento rıgido, nao altera as proporcoes no grafico

Page 172: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 159

P6(x)= (x+3)*(x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-2.5)*(x-3)

P7(x)= (x+3)*(x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-3)

P8(x)= (x+3)*(x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)

dP(x)= P1(x)+ P2(x)+ P3(x)+ P4(x)+ P5(x)+ P6(x)+ P7(x)+ P8(x)

set xrange [-3:3]

plot P(x),dP(x),0

f(x) = P1(x)/dP(-3) + P2(x)/dP(-2.5) + P3(x)/dP(-1.5)+\

P4(x)/dP(-0.5)+P5(x)/dP(0.5) + P6(x)/dP(1.5) + P7(x)/dP(2.5)+\

P8(x)/dP(3)

plot f(x),0

g(x) = (x**2 - 9)*sin(2*x)

h(x) = g(-3)*P1(x)/dP(-3) + g(-2.5)*P2(x)/dP(-2.5)+\

g(-1.5)*P3(x)/dP(-1.5) + g(-0.5)*P4(x)/dP(-0.5)+\

g(0.5)*P5(x)/dP(0.5) + g(1.5)* P6(x)/dP(1.5)+\

g(2.5)*P7(x)/dP(2.5) + g(3)*P8(x)/dP(3)

plot h(x),g(x),0

P(x) = (x+7)*(x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-7)

P1(x)= (x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-7)

P2(x)= (x+7)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-7)

P3(x)= (x+7)*(x+2.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-7)

P4(x)= (x+7)*(x+2.5)*(x+1.5)*(x-0.5)*(x-1.5)*(x-2.5)*(x-7)

P5(x)= (x+7)*(x+2.5)*(x+1.5)*(x+0.5)*(x-1.5)*(x-2.5)*(x-7)

P6(x)= (x+7)*(x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-2.5)*(x-7)

P7(x)= (x+7)*(x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-7)

P8(x)= (x+7)*(x+2.5)*(x+1.5)*(x+0.5)*(x-0.5)*(x-1.5)*(x-2.5)

dP(x)= P1(x)+ P2(x)+ P3(x)+ P4(x)+ P5(x)+ P6(x)+ P7(x)+ P8(x)

set xrange [-7:7]

plot P(x),dP(x),0

f(x) = P1(x)/dP(-7) + P2(x)/dP(-2.5) + P3(x)/dP(-1.5)+\

P4(x)/dP(-0.5)+P5(x)/dP(0.5) + P6(x)/dP(1.5) + P7(x)/dP(2.5) +\

P8(x)/dP(7)

plot f(x),0

g(x) = (x**2 - 9)*sin(2*x)

h(x) = g(-7)*P1(x)/dP(-7) + g(-2.5)*P2(x)/dP(-2.5)+\

g(-1.5)*P3(x)/dP(-1.5) + g(-0.5)*P4(x)/dP(-0.5)+\

g(0.5)*P5(x)/dP(0.5) + g(1.5)* P6(x)/dP(1.5)+\

g(2.5)*P7(x)/dP(2.5) + g(7)*P8(x)/dP(7)

plot h(x),g(x),0

6. (ex. 1) pagina 126

(a) Coloque no arquivo “dados” os pares de pontos (xk, yk).

-3 0

-2.5 1

Page 173: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 160

-1.5 -1

-0.5 -2

0.5 -3

1.5 -1

2.5 2

3 0

observe que xk e yk ficam separados por espaco, e cada par fica emuma unica linha. Depois, chame Gnuplot e execute

set pointsize 0.1 ## definir a expessura da linha

plot 0, "dados" with lines ## o nome do arquivo entre aspas

Se voce estiver lendo este arquivo eletronicamente (em pdf), “cortare colar” funciona com Gnuplot.

(b) Em cada intervalo a funcao f esta definida por uma equacao doprimeiro grau fk

y = b + m(x − a) equacao da reta por (a, b); (4.186)

fk(x) = yk + mk(x − xk); (4.187)

mk = ∆k = yk+1−yk

xk+1−xk; x ∈ [xk, xk+1] (4.188)

(4.189)

Basta agora, para cada inteiro n, encontrar n ∈ [xk, xk+1]. Porexemplo

n ∈ [xk, xk+1] (4.190)

1 ∈ [0.5, 1.5] = [x4, x5] (4.191)

f4(x) = y4 + m4(x − x4) (4.192)

f4(x) = −3 + 2(x − 0.5) ; f(1) = −3 + 2(1 − 0.5) = −2(4.193)

A definicao de f num algoritmo de computador e

float fl(float x)

float m,a1,b1,a2,b2;

if (x < -2.5)

a1= -3; b1=0; a2=-2.5; b2=1;

m = (b2 - b1)/(a2 -a1);

return m*(x - a1) + b1;

if (x < -1.5)

a1= -2.5; b1=1; a2=-1.5; b2=-1;

m = (b2 - b1)/(a2 -a1);

return m*(x - a1) + b1;

if (x < -0.5)

Page 174: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 161

a1= -1.5; b1=-1; a2=-0.5; b2=-2;

m = (b2 - b1)/(a2 -a1);

return m*(x - a1) + b1;

if (x < 0.5)

a1= -0.5; b1=-2; a2=0.5; b2=-3;

m = (b2 - b1)/(a2 -a1);

return m*(x - a1) + b1;

if (x < 1.5)

a1= 0.5; b1=-3; a2=1.5; b2=-1;

m = (b2 - b1)/(a2 -a1);

return m*(x - a1) + b1;

if (x < 2.5)

a1= 1.5; b1=-1; a2=2.5; b2=2;

m = (b2 - b1)/(a2 -a1);

return m*(x - a1) + b1;

if (x < 3)

a1= 2.5; b1=2; a2=3; b2=0;

m = (b2 - b1)/(a2 -a1);

return m*(x - a1) + b1;

else

return(0.0);

7. (ex. 1) pagina 126

Sera possıvel encontrar polinomios do terceiro grau em cada intervalo Ik =[ak, ak+1] porque temos quatro dados em cada um deles:

fk(x) = a1,k + a2,k(x − xk) + a3,k(x − xk)2 + a4,k(x − xk)3

fk(xk) = yk = a1,k

a1,k + a2,k(x − xk) +

f′

k(xk) = dk

fk(xk+1) = yk+1

f′

k(xk+1) = dk+1

8. (ex. 2) pagina 126

A figura (fig. 4.18) pagina 167, mostra, comparativamente, a aproximacaopolinomial classica, de Lagrange com a aproximacao polinomial por pedacos.

Page 175: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 162

Neste exemplo escolhemos os pontos de precisao

x1 = −7, x2 = −5, x3 = −3.0, x4 = −1, x5 = 1, x6 = 3, x7 = 5, x8 = 7;

e estamos aproximando a funcao

h(x) = (x ∗ x − 9) ∗ sin(x)

no intervalo [−7, 7]. A escolha dos nos foi feita de forma a salientar a fra-gilidade da aproximacao polinomial de Lagrange uma vez que a distanciaentre os dois primeiros nos e os dois ultimos nos e grande. Se a distanciaentre os nos for pequena, e uniforme, a aproximacao polinomial de La-grange tem um desempenho melhor, como se pode Veja na figura (fig.4.19) pagina 168. em que usamos os nos

x1 = −3.0, x2 = −2.0, x3 = −1.0, x4 = 0.0, x5 = 1.0, x6 = 2.0, x7 = 3.0, x8 = 4.0

e estamos aproximando a funcao

h(x) = (x ∗ x − 9) ∗ sin(x)

no intervalo [−3, 4].

A aproximacao melhora na medida em que a malha ficar mais fina, econsquentemete o polinomio de mais alto grau o que torna o metodo,computacionalmente, ineficiente.

9. (ex. 2) pagina 157

(a)

∞∫

−∞ga(x)dx = (4.200)

∞∫

−∞ag(ax)dx = (4.201)

1a

∞∫

−∞ag(ax)d(ax) = (4.202)

aa

∞∫

−∞g(ax)d(ax) = (4.203)

aa

∞∫

−∞g(y)d(y) = (4.204)

∞∫

−∞g(y)d(y) (4.205)

(b) Com Gnuplot defina

g(x)= (x<-1.5)?0:x<-0.5?0.5*(x+3.0/2.0)**2:

x<0.5?0.75-x**2:x<1.5?0.5*(x-3.0/2.0)**2:0

Page 176: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 163

a=2;b=3;c=4;

h1(x)=a*g(a*x);

h2(x)=b*g(b*x);

h3(x)=c*g(c*x);

plot g(x), h1(x),h2(x),h3(x),0

10. (ex. 3) pagina 157 Figura (fig. 4.20) pagina 168,

(a) Faca o grafico da funcao

x < −4 x + 8x ∈ [−4,−1] −2

x ∈ [−1,−0.5] 1x ∈ [−0.5, 1] |2x|

x ∈ [1, 4] 2

(b) Amacie a funcao cujo grafico foi feito no item anterior, multiplicando-a por convolucao, sucessivamente, pelos nucleos g2, g3, g4 e faca umlaudo do resultado.

4.7 Vocabulario

correc~ao da informac~ao, scilab

• correcao da informacao

Vamos dar aqui um exemplo ilustrativo sobre a correcao da informacao.

Observe o seguinte texto:

Mituo isneterasstneDe aorcdo com uma pqsieusa de uma uinrvesriddae ignlsea, naoipomtra em qaul odrem as lrteas de uma plravaa etaso, a unciacsioa iprotmatne e que a piremria e utmlia lrteas etejasm no lgaurcrteo. O rseto pdoe ser uma bcguana ttaol que vcoe pdoe anidaler sem pobrlmea. Itso e poqrue nos nao lmeos cdaa lrtea isladoa,mas a plravaa cmoo um tdoo.Mutitu isneterasstenDe aorcod com uma pqsieuas de uma uinrvesriddea ignlsae, naoipomtar em qaul odrem as lrtesa de uma plravaa etaso, a uncaicsioa iprotmaten e que a piremrai e utmlai lrtesa etejams no lgarucrtoe. O rseto pdoe ser uma bcguaan ttalo que vcoe pdoe anidaler sem pobrlmae. Itso e poqreu nos nao lmeos cdaa lrtea isladoa,mas a plravaa cmoo um tdoo.

O texto explicou mal. A razao e outra, e um caso de correcao da in-formacao que vou agora explicar.

Page 177: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 164

E que ao lermos, nao lemos! Comparamos as palavras com as que temos emnosso banco de dados e compomos a informacao usando uma amostragemda informacao. Quem le devagar, de fato le. Quem le rapido, faz estaamostragem e compoe a informacao.

Quem le rapido, nem siquer le palavras, le frases inteiras, e novamente,nao le, analisa o conjunto das palavras, seleciona no banco de dados o queda certo para colocar naquele conjunto, e percebe a informacao.

Claro, esta rapidez pode ter seus contra-pontos, e possıvel rapidamenteadquirir o centro da ideia, porem perder detalhes. O leitor rapido podenum relance compreender, do texto, que “brigaram o homem e a mulher”,mas pode nao perceber que foi o “seu irmao com a mulher dele”... sealguem lhe perguntar depois pelo conteudo do texto, responderia:

- Brigaram!

e se o interlocutor insistisse na pergunta:

- Quem brigou, com quem?

responderia:

- Sei la!

A inmaforcao foi rbidecea, mas ptare dela se pdeeru pquore o ltoeir anapesabvsoreu patre do prcaedido e paert do pratiedicvo na oracao. Se o astsuno defato lhe chssamae atcaeno, voriltaa e se ceicartifria de pater dos dados pedordis.Qudano, num tetxo, a infaormcao for retipeda e abdaunnte, etsa leuitra radpiae saftisatoria pourqe, com a amraostgem, o leoitr abrsove toda a inmaforcaoimtapornte. Qunado o tetxo e coincso, sorbio, teicnco, a letiura temrina sednomias letna poqrue a amotsragem se reevla impfereita, o letior obesrva que naoesta cogunseindo coeemprnder e, natlmuraente, psasa a faezr uma amraostgemmais fina, teirmna ledno. . .

A informacao foi recebida, mas parte dela se perdeu porque o leitor apenasabsorveu parte do predicado e parte do predicativo na oracao. Se oassunto de fato lhe chamasse atencao, voltaria e se certificaria de partedos dados perdidos.

Quando, num texto, a informacao for repetida e abundante, esta leiturarapida e satisfatoria porque, com a amostragem, o leitor absorve todaa informacao importante. Quando o texto e conciso, sobrio, tecnico, aleitura termina sendo mais lenta porque a amostragem se revela imperfeita,o leitor observa que nao esta conseguindo compreender e, naturalmente,passa a fazer uma amostragem mais fina, termina lendo. . .

• scilab e um programa para resolver questoes de Algebra Linear, computa-cionalmente, distribuido sob GPL. E semelhante a um programa comercialtambem dedicado a Algebra Linear. Pode ser obtido na internet, [23].

Page 178: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 165

Page 179: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 166

0−1 1

−2

−1

0

1

2

3

4

5

−1.5 −1 −0.5 0 0.5 1 1.5

f1(x)f2(x)f3(x)

0

2−spline a suporte compacto

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

−1.5 −1 −0.5 0 0.5 1 1.5

g(x)0

Figura 4.17: 2-splines

Page 180: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 167

-40

-30

-20

-10

0

10

20

30

40

-8 -6 -4 -2 0 2 4 6 8

"polped""lagrange""precisao"

"XOY"

Figura 4.18: Comparacao: polinomio de Lagrange e splines

Page 181: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 4. SPLINES 168

-8

-6

-4

-2

0

2

4

6

8

-3 -2 -1 0 1 2 3 4

"polped""lagrange""precisao"

"XOY"

Figura 4.19: Comparacao: polinomio de Lagrange e splines - quando os nos ficam unifor-mente proximos.

−2

−1

0

1

2

3

4

−6 −4 −2 0 2 4 6

’data1’’data2’

Figura 4.20: Regularizacao por convolucao

Page 182: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

Capıtulo 5

Integracao aproximada

O objetivo deste capıtulo e o de apresentar-lhe dois metodos parao calculo aproximado da integral

b∫

a

f(x)dx

Vou comecar com as somas de Riemann que, embora nao seja ometodo conduzindo a melhor aproximacao, e o mais simples e eusado em diversas situacoes em que se deseje rapidamente avaliara integral. Depois vou discutir uma variante da soma de Riemann- regra do trapesio.Embora o metodo nao seja eficiente e nos lhe vamos mostrar nasegunda parte do capıtulo um que e eficiente, as ideias basicas dassomas de Riemann estarao presentes posteriormente: particao,varredura, malha.Finalmente vou mostrar como podemos aplicar o assunto docapıtulo 4 no calculo aproximado de integrais. Este metodo, sim,e de alta precisao e muito otimizado.

E possıvel que o leitor, ou o professor, sinta a falta do metodo Simpsonentre os processos para o calculo aproximada da integral. De fato ele esta sendoomitido aqui uma vez que podemos mostrar coisa melhor que e o uso dos splines,afinal nao seria somente o metodo de Simpson que estaria faltando, num livrocomo este temos que escolher, selecionar material para que nao transforma-lonum tratado enciclopedico, alguns destes tratados estao na bibliografia. Se vocefez um bom curso de Calculo, estudou integral no sentido de Riemann e portantoas somas de Riemann. Parte do material deste capıtulo sera uma amena revisaopara voce, esperamos.

169

Page 183: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 170

5.1 Integral no sentido de Riemann

Neste capıtulo discutimos a integral de forma intuitiva e geometrica fazendo,inicialmente, uma revisao concentrada daquilo que se faz em Calculo Diferen-cial e Integral mas voltados para o nosso objetivo que e o calculo numericode integrais.

Comecamos por descrever, com alguma simplicidade, o metodo de integracao,

atribuido ao matematico alemao, Bernard Riemann, as somas de Riemann,

como aproximacao para o calculo da integral e daı derivaremos os metodos

tıpicos desta disciplina que logo o leitor vera que e uma aplicacao da apro-

ximacao polinomial.

5.1.1 Integracao geometrica.

Vamos comecar calculando aproximadamente varias integrais para tornar “mecanico” o usoda “soma de Riemann” como metodo de aproximacao de integrais.

Neste livro a integral representa a area algebrica delimitada pelo grafico de uma funcao f

entre dois pontos dados de seu domınio. Veja a interpretacao geometrica na figura (fig. 5.1)pagina 172.

Esta e a forma de se interpretar a integral no Calculo: o sımbolob

R

a

f representa esta area

limitada pelo grafico de f e o eixo OX desde x = a ate x = b.

A lista de exercıcios deve ser entendida como um laboratorio para relembrarconhecimentos que o aluno deveria ter, o que nem sempre e verdadeiro. Umaluno que considere um exercıcio trivial, simplesmente deve ignora-lo e passarpara o seguinte, apenas tendo o cuidado de ter a certeza de que nao fez umjulgamento apressado.

Exercıcios 20 Calculo aproximado da integral

1. Represente geometricamente as seguintes integrais:

a)3∫

−3

4 b)3∫

0

4 c)0∫

3

4

d)3∫

−3

2x e)3∫

−2

2x f)3∫

0

2x

g)10∫

−3

2x + 3 h)10∫

−1

2x − 3 i)−3∫

3

3 − 2x

j)3∫

−3

x + 4 k)3∫

0

x − 4 l)0∫

−3

4 − x

m)3∫

−3

x2 + 2x + 1 n)3∫

0

1 − x2 o)0∫

3

x2 − 4

2. Calcule as integrais, que voce souber calcular, dentre as indicadas naquestao anterior.

3. Calcule aproximadamente as integrais.

a)3∫

−3

x2 + 2x + 1 b)3∫

0

1 − x2 c)3∫

−3

4 − x2

Page 184: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 171

Sugestao aproxime por falta ou por excesso as areas com retangulos, triangulosou trapesios, conforme for conveniente, e aumente a precisao dos resulta-dos usando uma maquina de calcular ou um programa de computador.

5.1.2 Expressao formal do calculo da integral

Nos ainda nao sabemos calcular as integrais:

3∫

−3

x2 + 2x + 1 (5.1)

3∫

0

1 − x2 (5.2)

3∫

−3

x2 − 4 (5.3)

e agora vamos ver como isto se faz, aproximadamente.

Area aproximada usando retangulos

As integrais, (eq. 1), (eq. 2) e (eq. 3), representam as areas de regioes limitadaspor contornos nao retilıneos.

Voce ja foi convidado, em exercıcio anterior, a representar geometricamenteestas integrais.

Neste momento tudo que podemos fazer e calcular estas areas aproxima-damente, este metodo esta representado na figura (fig. 5.1) pagina 172 e seradiscutido em detalhe mais abaixo, mas e assunto que voce pode encontrar dis-cutido em profundidade nos cursos de Calculo.

Uma saıda, para obter uma aproximacao de integrais como

3∫

−3

x2 + 2x + 1 (5.4)

representando a area de regioes com contornos curvilıneos, consiste em subdi-vidir a regiao que elas representam com retangulos, triangulos ou trapesios ecalcular a soma das areas destas figuras:

Veja na figura (fig. 5.1) pagina 172,Voce logo deve se convencer de que nao ha ganho especial em trabalhar com

tantas figuras. Usando apenas retangulos podemos obter alta precisao, desdeque a base dos retangulos seja pequena, e este objetivo podera ser alcancadocom um programa de computador, nao com calculos manuais.

Veja, por exemplo, a area de um trapesio e a media aritmetica entre as areasde dois retangulos, um com a altura maxima do trapesio, e o outro com a alturamınima do trapesio, supondo que o trapesio tenha duas alturas. Analise asfiguras (fig. 5.4), pagina 190.

Page 185: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 172

f

a b

Figura 5.1: Trapesios para aproximar area

Isto mostra que o calculo da area usando trapesio pode ser obtido com amedia aritmetica dos calculos feitos usando, retangulos por excesso e retangulospor falta.

Depois, um triangulo e apenas um tipo particular de trapesio...Entao vamos nos concentrar no calculo com retangulos, para encontrar a

area aproximada das integrais e nos preocupar em obter este resultado comprecisao maxima diminuindo a base dos retangulos.

Se convenca do que foi dito fazendo alguns graficos.

Somas de Riemann

Para calcular aproximadamenteb∫

a

f podemos subdividir a regiao em triangulos,

retangulos ou trapesios, conforme a conveniencia ou de acordo com as possibi-lidades geometricas da figura. Mas ja observamos que nao se ganha muito comeste detalhe, muito mais se ganha na quantidade de subdivisoes1, e, natural-mente com o uso de um programa de computador.

Mas a principal razao de usarmos retangulos e a de que podemos obteruma expressao algebrica simples para a soma das area dos retangulos e depoisaplica-la num programa de computador.

A expressao algebrica que se presta, facilmente, para utilizar num programae uma soma de Riemann.

As somas de Riemann usam exclusivamente retangulos. Para obter os retangulos,se subdivide o intervalo [a, b] em n sub-intervalos, veja na figura (fig. 5.2) pagina173, a sugestao grafica de como fazer isto. as subdivisoes nao precisam ser ir-regulares, como e o caso da (fig. 5.2), elas podem ser os nos de uma particaouniforme e assim satisfazer a uma progressao aritmetica de razao ∆x = b−a

n.

1em outras palavras, ao usarmos subintervalos cada vez menores

Page 186: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 173

a

b

[a,b]

f

Figura 5.2: Soma de Riemann

Este valor ∆x e tambem o tamanho, (medida), da base de cada um dos subin-tervalos.

Vamos adotar este caso particular de particao, chamada de particao uni-forme, e o leitor pode consultar um livro de Calculo para verificar que se aintegral existir, o valor dela independe do tipo de particao que se escolher parao Calculo das somas de Riemann.

Os nos da particao (malha) sao:

a, a + ∆x, a + 2∆x, a + 3∆x, · · ·a + k∆x, · · · , a + (n − 1)∆x = b − ∆x (5.5)

Aqui faremos mais uma simplificacao no metodo. Falamos anteriormente dearea por excesso e area por falta. Mas queremos calcular integrais automatica-mente e assim nao desejamos analisar o grafico para escolher a area por excessoou por falta. Seguiremos assim o exemplo da figura (fig. 5.2) na qual voce podever que alguns retangulos representam a area por excesso e outros por falta.

Page 187: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 174

Convidamos a que voce faca um exercıcio:

Exercıcio 1 Area por falta ou por excesso

1. Verificar que os quatro primeiros retangulos na (fig. 5.2) representam umaaproximacao por excesso.

2. Verificar que os retangulos quinto e sexto na (fig. 5.2) representam umaaproximacao por falta da area.

3. Verificar que os retangulos, setimo, oitavo e nono, na (fig. 5.2) represen-tam uma aproximacao por falta e que o decimo aproxima por excesso aarea.

Se voce nao concordou com a veracidade das afirmacoes contidas nos exercıciosacima, e porque, talvez, voce nao tenha observado que ha alguns retanguloscom area nula (altura nula), volte a analisar os exercıcios munido desta novainformacao.

Vamos agora passar a expressao formal da soma de Riemann.

Soma de Riemann

Considere agora a figura (fig. 5.2) pagina 173. Estipulamos um tamanho ∆xpara a base dos retangulos e cobrimos a area algumas vezes por excesso, outrasvezes por falta. Para isto consideramos a progressao aritmetica

a + k∆x; k = 0, 1, ... (5.6)

e o ultimo retangulo ficou extrapolando o intervalo de integracao [a, b].Para evitar que isto aconteca temos que

• calcular ∆x usando a medida do intervalo [a, b] e

• um numero de divisoes, um numero inteiro escolhido:

∆x =b − a

n

A progressao aritmetica obtida com esta razao ∆x vai fazer de

b = a + n∆x,

o ultimo termo da p.a. de modo que o ultimo retangulo escolhido correspondeao subintervalo

[a + (n − 1)∆x, a + n∆x] = [b − ∆x, b] (5.7)

Existe uma notacao pratica que esconde a expressao dos termos da pro-gressao aritmetica, mas que sabemos qual e, de forma implıcita. Usamos

x0 = a = a + 0∆x; (5.8)

xk = a + k∆x; (5.9)

xn = b = a + n∆x; (5.10)

Page 188: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 175

Agora podemos escrever a expressao da soma dos retangulos:

b∫

a

f ≈n−1∑

k=0

f(xk)∆x =n−1∑

k=0

f(a + k∆x)∆x (5.11)

a segunda formulacao e apropriada para programas de computacao, a primeirae mais resumida e propria para escrever em textos de Matematica. Com estecalculo do ∆x evitamos que haja um retangulo a mais ou a menos na coberturada area representada pela integral que e o defeito apresentado na (fig. 5.2).

Observe que o ultimo “no” nao e b, mas sim ‘b − ∆x”.Para cada um dos subintervalos, consideraremos a altura

f(a + k∆x) = f(xk)

em que k varia desde 0 ate n − 1 :

f(a), f(a + ∆x), f(a + 2∆x), · · ·f(a + k∆x), · · · , f(a + (n − 1)∆x). (5.12)

Quer dizer que os retangulos tem por area:

f(a)∆x, f(a + ∆x)∆x, f(a + 2∆x)∆x, · · ·f(a + (n − 1)∆x)∆x (5.13)

A soma destas areas e o valor aproximado da integral, agora nao sabemos see por falta ou por execesso, mas, com certeza e um valor medio, entre o calculopor excesso e o calculo por falta.

Experimente as funcoesriemann(), riemann grafun()

no arquivo riemann.py. Digitepython riemann.py

depois de editar o arquivo. Vejas as ultimas linhas do arquivo riemann.py quetrazem instrucoes de como usar o programa. Nao se preocupe em entendero programa, agora. Volte a ler o programa em outras ocasioes, ao longo docapıtulo.

Definicao 6 Soma de RiemannConsidere o intervalo [a, b] e uma funcao que seja integravel neste intervalo.Definimos uma soma de Riemann, de ordem n2, associada a uma particao

uniforme3

x0 = a (5.14)

... (5.15)

xk = a + k∆x (5.16)

... (5.17)

xn−1 = a + (n − 1)∆x = b − ∆x (5.18)

b = a + n∆x (5.19)

2ordem n porque representa a soma de n parcelas3Ja dissemos que as particoes nao precisam ser uniforme, estamos fazendo uma escolha.

Page 189: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 176

como

Sn(f) =n−1∑

k=0

f(a + k∆x)∆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

[xk, xk+1] = [a + k∆x, a + (k + 1)∆x]

a altura considerada e f(xk).Poderiamos ter usado o segundo extremo obtendo a formula

Sn(f) =n∑

k=1

f(a + k∆x)∆x. (5.21)

que voce deve se convencer de que representa uma aproximacao equivalente daintegral . Dissemos equivalente, os valores nao sao iguais, faca as contas e veja.Mas o erro entre as duas expressoes e pequeno, ou tende a ser pequeno, quandoa medida dos subintervalos decresce.

Exercıcios 21 Soma de Riemann superior ou inferiorObjetivo: adquirir uma visao intuitiva das integrais superior e inferior e

compreender a relacaoSn(f) ≥ Sn(f)

para uma mesma particao do intervalo [a, b] quando f for positiva.Se os exercıcios lhe parecerem claros, nao perca o seu tempo fazendo-os.

1. Divida o intervalo [−3, 3] em 10 subintervalos iguais, represente geome-tricamente a aproximacao da area

3∫

−3

f(x) =

3∫

−3

x2

usando sempre o maximo de f em cada sub-intervalo. Esta soma de Rie-mann assim obtida se chama soma superior de Riemann

S10(f)

e vale a desigualdade3∫

−3

f(x) ≤ S10(f)

Observe que escrevemos ‘menor ou igual” porque, por uma casualidade, sepode obter uma igualdade. Se f for constante vale a igualdade.

Page 190: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 177

2. Divida o intervalo [−3, 3] em 20 subintervalos iguais, represente geome-tricamente a aproximacao da area

3∫

−3

f(x) =

3∫

−3

x2

usando sempre o maximo de f em cada sub-intervalo. Esta soma de Rie-mann assim obtida se chama soma superior de Riemann

S20(f)

e valem as desigualdades

3∫

−3

f(x) ≤ S20(f) ≤ S10(f)

3. Tente uma demonstracao para a afirmacao: “ se duplicarmos a quantidadede intervalos, usando particoes uniformes, se tem

≤ S2n(f) ≤ Sn(f)

em outras palavras, as somas superiores obtidas por subdivisao sucessivados subintervalos, forma uma sucessao decrescente. Ela decresce para ovalor da integral

b∫

a

f(x)

sobre o intervalo [a, b].

4. Prove que, se f for uma funcao crescente,

Sn(f) =

n−1∑

k=0

f(a + k∆x)∆x. (5.22)

e uma aproximacao por falta da integralb∫

a

f e

Sn(f) =

n∑

k=1

f(a + k∆x)∆x. (5.23)

e uma aproximacao por excesso da integral. Faca um grafico ilustrativo.

5. Prove que, se f for uma funcao decrescente,

Sn(f) =n−1∑

k=0

f(a + k∆x)∆x. (5.24)

Page 191: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 178

e uma aproximacao por excesso da integralb∫

a

f e

Sn(f) =

n∑

k=1

f(a + k∆x)∆x. (5.25)

e uma aproximacao por falta da integral. Faca um grafico 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 − x2

e)3∫

−2

x2 − 2x + 3 f)3∫

0

2 − 2x2

g)10∫

−3

4xsen(x) + 3x2 h)10∫

−1

x2cos(x) − 2x − 3

i)−3∫

3

3x2 − 2x j)3∫

−3

(x3 − x2 − x + 4)sen(x)

k)3∫

0

sen(x) l)0∫

−3

cos(x)

m)3∫

−3

x2cos(x) − 2xsen(x) − cos(x) n)3∫

0

1 + x2cos(x)

e compare o resultado usando o Teorema Fundamental do Calculo, (emalguns casos voce vai ter que usar integracao por partes).

Na proxima secao alguns calculos feitos com um programa em Python vaoilustrar numericamente e graficamente o significado da soma de Riemann.

5.2 Integral no sentido de Riemann

Falamos diversas que as somas de Riemann eram aproximacoes da integral evamos agora ver como. A teoria que vamos apresentar e um pouco simplificada,deixamos que voce leia uma teoria mais completa num livro de Calculo. Umdos itens de nossa simplificacao reside em que vamos considerar apenas malhasuniformes, este defeito e importante!

O metodo algorıtmico para calcular integrais e

• Temos uma funcao

[a, b]f→ R

que desejamos “provar que e integravel”;

Page 192: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 179

• Determinamos uma sucessao de malhas4 (particoes), Πk, no intervalo [a, b]de modo que a sucessora de cada malha seja um refinamento5 da anterior

Πk+1 << Πk; (5.26)

• a cada malha desta sucessao associamos uma soma de Riemann para fobtendo assim uma sucessao de somas de Riemann

Πk 7→ Sk(f); (5.27)

• Se qualquer sucessao de somas de Riemann, assim construıda, tiver omesmo limite, este limite comum e

b∫

a

f (5.28)

este e um dos metodos para definir numeros reais, um numero real e o limitecomum de uma classe de equivalencia de sucessoes convergentes de numerosracionais.

Podemos escrever uma definicao para funcao integravel a Riemann:

Definicao 7 integral no sentido de Riemann Seja

[a, b]f→ R.

f e integravel no sentido de Riemann se qualquer sucessao de somas de Riemannobtida por refinamentos arbitrarios de uma particao de modo que a medida dossubintervalos tendam a zero, definir um mesmo numero real.

Este unico numero real eb∫

a

f.

Observacao 11 Particoes uniformesObserve que na definicao nao fizemos mencao as particoes uniformes. Para

definir a integral precisamos de famılias arbitrarias de particoes.Mas neste texto somente faremos uso de particoes uniformes. Para que voce

fique alerta, a funcao

[−1, 1]f→ R; x 7→ 1

x(5.29)

seria integravel se usarmos apenas particoes uniformes e na verdade esta funcaonao e integravel.

4que na linguagem da estatıstica representa uma amostragem5na linguagem da estatıstica seria uma amostragem compatıvel, ou comparavel, com a

anterior

Page 193: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 180

Entretanto, se a funcao for integravel, usando apenas particoes uniformespodemos calcular a sua integral, este e o atalho que estamos usando aqui. Estee um livro de Calculo Numerico, em que calculamos numericamente aquilo quevoce aprendeu a calcular exatamente no curso de Calculo Diferencial e Integral.

Exemplo 16 Programa riemann.py

Rode e leia o programa riemann.py. Ele produz alguns refinamentos de umaparticao inicial criando uma sucessao que converge para o valor da integral, seeste valor existir.

Experimente o programa com algumas das funcoes que estao definidas nele,por exemplo inv(x) que igual a 1

xquando x 6= 0. Experimente calcular sua

integral no intervalo [−1, 1] para ver alguns elementos de uma sucessao que nao‘parece” ser convergente. Os numeros que surgem nao formam uma sucessaoque pareca ter limite.

Observe que um programa deste tipo nao prova nada! ele apenas serve comoexemplo e deve ser usado com este cuidado.

Para usar o programa, troque o nome da funcao cuja integral voce desejadentro de uma das ultimas linhas do programa. Veja a observacao que indicaisto no proprio programa. Use o programa para definir outras funcoes cujasintegrais voce deseja, observe a sintaxe da linguagem Python ao definir novasfuncoes.

5.2.1 Duas propriedades da integral

Nao vamos desenvolver aqui a teoria de integracao, ela e privativa do cursode Calculo! Mostraremos entretanto uma propriedade da integral de Riemannpara ilustrar como as somas de Riemann sao um metodo efetivo de aproximacao.Depois veremos que combinando as somas de Riemann com aproximacao poli-nomial, teremos algoritmos muito possantes para calcular integrais aproxima-damente.

A propriedade: se f = h + g entao

b∫

a

f =

b∫

a

(h + g) =

b∫

a

h +

b∫

a

g

e de grande uso. Vamos ver sua demonstracao.Suponhamos que f, g, h sejam funcoes integraveis e que f = h + g.Para cada particao do intervalo [a, b] podemos escrever

f(xk) = g(xk) + h(xk); (5.30)

Sn(f) =n∑

k=0

f(xk)∆xn; (5.31)

Sn(h) =n∑

k=0

h(xk)∆xn; (5.32)

Page 194: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 181

Sn(g) =n∑

k=0

g(xk)∆xn; (5.33)

Sn(h + g) =n∑

k=0

(h(xk) + g(xk))∆xn = (5.34)

n∑

k=0

f(xk)∆xn = Sn(f) (5.35)

o que nos mostra que os numeros

b∫

a

f ;

b∫

a

h + g (5.36)

sao iguais, porque

• As equacoes (30)-(35) valem para qualquer que sejam as particoes esco-lhidas no intervalo de integracao;

• Logo a a soma dos limites e igual ao limite da soma, e provamos assimque a soma das integrais e igual a integral das somas.

E facil usar uma pequena alteracao desta demonstracao para provar outrapropriedade tambem muito util:

b∫

a

Kf = K

b∫

a

f (5.37)

se f for uma funcao integravel e K for uma constante qualquer.Temos assim o exemplo

3∫

−3

10x2 + 2x + 7 = 10

3∫

−3

x2 + 2

3∫

−3

x +

3∫

−3

7. (5.38)

Exercıcios 22 Expressao formal do calculo da integral

1. Escreva somas de Riemann, com 10 sub-intervalos, para aproximar cadauma das integrais abaixo:

a)3∫

1

1x b)

3∫

−3

11+x2 c)

3∫

−3

2x+34+x2

2. Re-escreva as somas de Riemann aumentando a precisao, de modo queos sub-intervalos tenha medida 0.1 Use uma calculadora ou computador ecalcule estas integrais.

Page 195: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 182

3. O numero de Napier Descubra experimentalmente um ponto e ∈ R tal que

e∫

1

1

x= 1 (5.39)

Sugestao, use o programa riemann.py e calcule as integrais

a∫

1

1

x

ate obter (uma aproximacao do) numero desejado.

4. Verifique que, das duas somas de Riemann abaixo, uma fornece uma apro-ximacao por falta e a outra por excesso da integral

1∫

0

x2 ;n−1∑

0

k2

n2

1

n;

n∑

1

k2

n2

1

n(5.40)

identifique quem e quem. Use riemann() in riemann.py.

5. Verifique que, das duas somas de Riemann abaixo, uma fornece uma apro-ximacao por falta e a outra por excesso da integral

1∫

0

xp ; p ∈ N ; p > 1 ;n−1∑

0

kp

np

1

n;

n∑

1

kp

np

1

n(5.41)

identifique quem e quem . Use riemann() in riemann.py.

6. Verifique experimentalmente (somas de Riemann) que1∫

0

x2 = 13. Use

riemann() in riemann.py.

7. soma de RiemannProve a desigualdade:

n−1∑

k=0

k2 < n3

1∫

0

x2 <

n∑

k=1

k2 (5.42)

8. soma de RiemannProve a desigualdade:

n−1∑

k=0

k3 < n4

1∫

0

x3 <n∑

k=1

k3 (5.43)

Page 196: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 183

9. soma de RiemannProve a desigualdade:

a3

n4

n−1∑

k=0

k3 <

a∫

0

x3 <a3

n4

n∑

k=1

k3 (5.44)

10. soma de RiemannProve a desigualdade:

n−1∑

k=0

kp < np+1

1∫

0

xp <n∑

k=1

kp (5.45)

11. soma de RiemannProve a desigualdade:

a4

n4

n−1∑

k=0

k3 <

a∫

0

x3 <a4

n4

n∑

k=1

k3 (5.46)

12. soma de RiemannProve a desigualdade:

ap+1

np+1

n−1∑

k=0

kp <

a∫

0

xp <ap+1

np+1

n∑

k=1

k3 (5.47)

13. Expresse como uma soma de areas de triangulos isosceles, (ou de retangulos0uma aproximacao para a area do cırculo de raio 1.

5.2.2 Calculo “numerico” da integral

Vamos calcular as areas dos retangulos limitados pelo grafico de

f(x) = x2 + 2x + 1

ao longo de uma particao do intervalo [−3, 3].Os dados contidos na tabela 5.1 na pagina 184, mostram a saıda de dados

de um programa em Python para o calculo da integral do exercıcio 3, com∆x = 0.2.

O grafico 5.3, pagina 185, mostra os retangulos cujas areas se encontramcalculadas abaixo. O grafico foi feito com auxılio do Gnuplot.

A tabela 5.1 mostra os valores da integral ao longo dos sub-intervalos daparticao.

deltax = 0.2Valor aproximado da integral 24.104801.Repetindo os calculos com valores menores para o ∆x temos o seguinte:

Page 197: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 184

x= -3 Sn(-3) = 0.7262867x= -2.8 Sn(-2.8) = 1.3078534x= -2.6 Sn(-2.6) = 1.7607801x= -2.4 Sn(-2.4) = 2.1011468x= -2.2 Sn(-2.2) = 2.3450335x= -2.0 Sn(-2.0) = 2.5085202x= -1.8 Sn(-1.8) = 2.6076869x= -1.6 Sn(-1.6) = 2.6586136x= -1.4 Sn(-1.4) = 2.6773803x= -1.2 Sn(-1.2) = 2.680067x= -1.0 Sn(-1.0) = 2.6827137x= -0.8 Sn(-0.8) = 2.7013204x= -0.6 Sn(-0.6) = 2.7518871x= -0.4 Sn(-0.4) = 2.8504138x= -0.2 Sn(-0.2) = 3.0129005x= 0 Sn(0) = 3.2553472x= 0.2 Sn(0.2) = 3.5937539x= 0.4 Sn(0.4) = 4.0441206x= 0.6 Sn(0.6) = 4.6224473x= 0.8 Sn(0.8) = 5.344734x= 1.0 Sn(1.0) = 6.2318207x= 1.2 Sn(1.2) = 7.2957874x= 1.4 Sn(1.4) = 8.5527141x= 1.6 Sn(1.6) = 10.0186808x= 1.8 Sn(1.8) = 11.7097675x= 2.0 Sn(2.0) = 13.6420542x= 2.2 Sn(2.2) = 15.8316209x= 2.4 Sn(2.4) = 18.2945476x= 2.6 Sn(2.6) = 21.0469143x= 2.8 Sn(2.8) = 24.104801

Tabela 5.1: Tabela de valores da integral de f(x) = x2 + 2x + 1

a base de cada retangulo eh deltax = 0.12

o valor da integral aproximado eh = 23.2944

a base de cada retangulo eh deltax = 0.06

o valor da integral aproximado eh = 23.6436

a base de cada retangulo eh deltax = 0.006

o valor da integral aproximado eh = 24.060036

O valor exato desta integral e:

3∫

−3

x2 + 2x + 1 = 24

Page 198: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 185

e um programa em Python para calcula-la, aproximadamente, e:

Exemplo 17 Um programa em Python para calcular integrais## inicio do arquivo integral.py

def f(x):return x*x ## funcao f a ser integrada.

def integral(f,inicio,fim):inicio = input(‘inicio do intervalo [a, b] −− > a =”)fim = input(‘fim do intervalo [a, b] −− > b =”)soma = 0deltax = 0.0000001 ## a precisao do calculo.while (inicio < fim):

soma = soma + f(inicio)inicio = inicio + deltax

soma = soma*deltaxreturn soma

inicio = 0fim = 1print integral(f,inicio,fim)## fim do arquivo integral.py

Rode este programa assim. Na linha de comandos do LinuX digite:$ python integral.py

Voce pode alterar na definicao de f , veja no programa onde esta “def f(x)”, a equacao eassim calcular outras integrais.

O programa pede os extremos do intervalo de integracao.

0

2

4

6

8

10

12

14

16

-3 -2 -1 0 1 2 3 4

’data’

Figura 5.3: retangulos da soma de Riemann para3R

−3

x2 + 2x + 1

Observacao 12 Comentando o programa

Page 199: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 186

Nao considere como ponto de honra entender um programa de computacao agora. Oautor deste livro levou quase 15 anos para conseguir entender os programas de computacao...Use os programas, e aos poucos eles passarao a fazer parte de sua vida.

Existe uma regra com algumas excecoes, em Unix (LinuX e Unix). O sımbolo # repre-senta comentario e o programa ignora o que vier depois deste sinal ate o final da linha.

Assim podemos inserir nos programas comentarios para o outros que forem usar os pro-gramas. No programa voce pode encontrar o comentario “a precisao do calculo”ao lado davariavel “deltax”. Esta e medida da base dos retangulos com a integral esta sendo calculada.Troque por valor menor se quiser ter mais precisao, mas vera que logo deixa de valer a pena,porque a precisao maxima da maquina sera atingida.

Entretanto se voce iniciar os caculos com valores maiores para “deltax”, ao substituirvalores menores, vera que calculo se torna mais preciso. Experimente iniciar com

deltax = 0.1 (5.48)

e depois o substitua sucessivamente por 0.01, 0.001, 0.0001 · · · .Se voce tiver executado a experiencia, lhe tera aparecido ante os olhos a sucessao:

0.385, 0.32835, 0.3328335, 0.333383335, 0.333338333349, 0.333332833334 (5.49)

correspondentes a1R

0

x2 calculada com este programa em que usamos

deltax ∈ 0.1, 0.01, 0.001, 0.0001, 0.00001, 0.000001 (5.50)

Se voce for alem mais um pouquinho tera a desgradavel surpreza de ver que a maquinacomeca se perder... mas e bom que isto aconteca para que voce desmistifique a maquina.Nos, e nao as maquinas, sabemos com contornar esta dificuldade para obter precisoes aindamaiores, mais isto nao cabe ser discutido aqui.

Na proxima lista de exercıcios vamos usar o que o programa nos ofereceu, (supondo quevoce tenha usado o programa, naturalmente).

Observe que a sucessao das somas de Riemann parece produzir uma sucessao de numeroscom um comportamento assintotico previsıvel.

Para uso no exercıcio abaixo, use a seguinte versao do programa6 integral.py

Mais adiante vamos lhe apresentar uma outra alternativa computacionalusando uma “maquina de calcular” bem poderosa que pode estar instalada noscomputadores a que voce tiver acesso.

Observe que o programa abaixo nao se encontra no arquivo riemann.py.Voce devera digita-lo e grava-lo em sua area de trabalho.

## inicio do arquivo integral.py

def f(x):return x*x ## funcao f a ser integrada.

def integral(f,inicio,fim):fim = 1soma = 0deltax = 0.1; ## precisao incial do calculo.while deltax > 0.0000001:

soma = 0

6Os programas usados neste livro podem ser conseguidos via e-mail com o autor.

Page 200: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 187

x = deltaxwhile (x < fim):

soma = soma + f(x)x = x + deltax

soma = soma*deltaxprint somadeltax = deltax/2

return soma

print integral(f,inicio,fim)## fim do arquivo integral.py

Esta versao difere da anterior nos seguintes pontos, agora ‘inicio”vale “del-tax”e “fim=1”, quer dizer que ele calcula

1∫

0

f(x). (5.51)

Alem disto, o proprio programa sai dividindo sucessivamente ‘deltax”por dois,voce tem apenas que sentar-se e olhar o resultado...

Para rodar este programa faca o seguinte:

• Primeiro copie o texto do programa para um arquivo chamado integral.py.Alternativa, arrume um disco com os programas com o autor do livro.

• Digite, numa “shell” do LinuX,‘python /home/seu-nome/calculo/integral.py”

porque estamos supondo que voce esta trabalhando num diretorio cha-mado “calculo” em sua area de trabalho.

• Qualquer duvida, contacte tarcisiomember.ams.org descrevendo cuidado-samente a dificuldade encontrada. Junte copia de eventuais mensagens deerro.

Observacao 13 Calcular integrais aproximadamenteQual pode ser o sentido de que eu o esteja conduzindo ao calculo aproximado

de integrais que voce sabe calcular exatamente?Na verdade eu nao deveria estar me concentrando no calculo aproximado de

integrais que nao sabemos calcular exatamente?A resposta para esta pergunta e simples: como voce sabe calcular exatamente

as integrais voce tambem pode comparar os resultados do calculo aproximadocom o calculo exata e assim ganhar seguranca sobre a precisao do calculo apro-ximado.

Inclusive os exercıcios salientam este ponto ao pedir que voce calcule usandoo Teorema Fundamental do Calculo as integrais calculadas aproximadamente.

Page 201: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 188

Exercıcios 23 Calculo “numerico” da integral

Objetivo

1. Rode o programa integral.py com as integrais abaixo e decida em quecasos parece haver um comportamento assintotico previsıvel (limite).

a)1R

0

x3 b)1∫

0

1x

c)1∫

0

x + 3 d)1∫

0

1x2

e)1∫

0

x4 f)1∫

0

x+1x

g)1∫

0

xx+1

h)1∫

0

x+1x+2

2. Existem exatamente tres casos em que o comportamento assintotico dasucessao de Somas de Riemann fica indefinido. Tente encontrar uma ex-plicacao.

3. Verifique que se, numa soma de Riemann parab∫

a

f , os sub-intervalos tive-

rem todos o mesmo tamanho b−an entao a soma de Riemann e um multiplo

de b − a por uma media de valores de f , indique que media e esta: (1)aritmetica, (2) geometrica ou (3) aritmetica ponderada.

4. Usando o resultado do exercıcio anterior, conclua que seb∫

a

f existir, entao

1

b − a

b∫

a

f = M (5.52)

e um valor medio de f . Tente justificar a razao do “artigo indefinido”.

5. particao do intervalo A metodologia usada pelo programa integral.py

consiste em, sucessivamente, dividir os intervalos na metade para obteruma nova colecao de sub-intervalos para a soma de Riemann seguinte.Considere a soma de Riemann

n∑

k=1

f(a + k∆x)∆x (5.53)

e escreva a expressao da soma de Riemann em que ∆x′ e a metade de∆x = b−a

n .

6. Suponha que os valoresV0, V1, · · · , Vn−1 (5.54)

sao 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 Vm ?

Page 202: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 189

(b) Qual distancia percorrida pelo veıculo?

(c) Expresse este valores numa formula usando a expressao da integral.

7. Descubra, geometricamente, as solucoes da equacao:

x∫

0

3 − t =

x∫

6

t − 3 (5.55)

8. Transforme numa equacao algebrica a equacao:

x∫

0

3 − t =

x∫

6

t − 3 (5.56)

9. Verifique quais das integrais abaixo e positiva:

a)2π∫

0

x + sen(x) b)2∫

0

x − cos(x)

10. Faca tabelas de valores semelhantes a tabela 5.1 na pagina 184, para asintegrais das funcoes

f(x) = 1x ; ; x ∈ [1, 10] (5.57)

g(x) = e−x2

; ; x ∈ [−3, 3] (5.58)

No ultimo exercıcio voce solicitado a fazer tabelas de valores para o calculodas integrais para as quais nao ha forma de calculo exato.

• A integral da funcao f(x) = 1x

no intervalo [1, R] fornece os valores dologaritmo natural.

• A integral da funcao g(x) = e−x2

no intervalo [−a, a] fornece os valoresda gaussiana.

Sao duas funcoes de grande importancia em aplicacoes e voce foi conduzido,neste capıtulo, a saber fazer as tabelas das integrais destas funcoes.

5.3 Regra do trapesio

Vamos fazer referencia a este metodo apenas para nao deixa-lo de fora, seu valore historico. Foi um metodo que teve importancia quando calculavamos apro-ximacoes manualmente. Ao mesmo tempo ele serve de exemplo de formulas quese escrevem facilmente com Matematica e que e difıcil traduzir num programade computador.

Fizemos um comentario, paginas acima, dizendo que a area de um trapesio(ou de um triangulo) e a media aritmetica das areas de dois retangulos:

Page 203: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 190

1. um cuja altura e a altura maior do trapesio;

2. outro cuja altura e a altura menor do trapesio;

Veja isto na figura (fig. 5.4) pagina 190,

Figura 5.4: area do trapesio e uma media aritmetica

Para demonstrar esta afirmacao, considere um trapesio com base B e alturasH1 < H2. Como e sabido, a area de um trapesio e B(H1+H2

2)

B(H1+H2

2) = BH1+BH2

2= (5.59)

BH1 e a area do retangulo de menor altura (5.60)

(5.61)

BH2 e a area do retangulo de maior altura (5.62)

Page 204: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 191

e a figura (fig. 5.4) lhe mostra como, geometricamente, voce pode obter umtrapesio, a partir do retangulo menor, cortando um triangulo.

Em Matematica e facil escrever a soma de Riemann superior que fornece aarea por excesso associada a uma particao Π([a, b]):

Sn(f) =n−1∑

k=0

fk∆x (5.63)

em que fk representa o supremo de f no intervalo [xk, xk+1]. Mas nao haprogramas de computador que consigam calcular supremos facilmente. De formaanaloga a soma de Riemann inferior se escreve

Sn(f) =n−1∑

k=0

fk∆x (5.64)

em que fk

representa o ınfimo de f no intervalo [xk, xk+1]. A mesma observacaose pode fazer sobre ınfimos e programas de computador. A formula matematica

para calcular uma aproximacao, usando trapesios, deb∫

a

f sera a media aritmetica

de Sn(f), Sn(f) que e

Sn(f) + Sn(f)

2=

n−1∑

k=0

fk + fk

2∆x (5.65)

que nao e nada facil de produzir com um programa de computador. Esta formulafoi muito utilizada nos tempos que em que calculavamos aproximacoes de in-tegrais manualmente. Hoje perdeu o sentido porque uma soma de Riemanncalculada com um programa com valor muito pequeno para ∆x nos dara apro-ximacoes que dificilmente conseguiriamos com a regra do trapesio.

5.4 Integral de funcoes polinomiais

Nos cursos de Calculo mostramos que

b∫

a

f(x)dx =

b∫

a

xndx =xn+1

n + 1|ba =

bn+1

n + 1− an+1

n + 1= F (b) − F (a)

que e a expressao do Teorema Fundamental do Calculo para as funcoes polino-miais. Vou agora usar este teorema para o calculo da integral das aproximacoesquase-splines de dados.

Page 205: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 192

5.4.1 Apresentacao do metodo

No capıtulo 4 vimos que num levantamento de dados, por exemplo, com auxıliode sensores, podemos recuperar de forma muito precisa a distribuicao de um de-terminado fenomeno usando apenas as informacoes obtidas sobre este fenomenoem pequena quantidade de nos de uma malha.

Na primeira parte deste capıtulo fiz uso de malhas, que chamei de particoesde um intervalo, sobre cujos nos calculei os valores de uma funcao, portantotambem um levantamento de dados, concluindo na construcao de somas deRiemann como aproximacoes para a integral das funcoes.

Agora vou substituir a utilizacao dos sub-intervalos das particoes para nelessimular os valores de uma funcao usando um quase-spline e calcular a integral decada um desses pedacos de polinomio em cima de cada sub-intervalo da particao,substituindo estes valores na expressao das somas de Riemann. Estarei assimre-utilizando o conceito de soma de Riemann para obter uma nova forma deaproximacao da integral de uma funcao.

Veremos, na comparacao com casos particulares, em que sabemos calcular aintegral com precisao, que o resultado da aproximacao da integral usando estemetodo fornece uma grande aproximacao do valor da integral, validando, assimo metodo.

Finalmente vou mostrar que os bons resultados nao correspondem a conınci-dencias obtidas com casos bem comportados, mas que a integral dos quase-splines correspondem a uma forma excelente de aproximacao quando a funcaotiver alguma classe de regularidade (ser contınua, por exemplo).

A conclusao sendo, portanto, que, como os dados amostrais sao supostos se-rem o resultado de medicoes de fenomenos regulares, em geral mais do que ape-nas contınuos, diferenciaveis tambem, entao a a modelagem com quase-splinesdos mesmo nos permite uma quantificacao muito boa dos dados no calculo daquantidade total (integral), taxas de variacao (derivadas), valor medio (inte-gral).

5.4.2 Integral de quase-splines

Vou usar, neste secao, o calculo da integral de uma funcao polinomial, automa-tizada, com um programa de computador.

Os quase-splines com que trabalhamos sao funcoes polinomiais por pedacos,de grau menor ou igual a tres. Simplificando inicialmente a notacao, vou desig-nar por [a, b] um sub-intervalo tıpico de uma malha considerarada num intervaloI.

Entao o pedaco de polinomio, P , associado a este sub-intervalo tem porequacao

P (x) = a0 + a0(x − a) + a2(x − a)2 + a3(x − a)3 (5.66)

e sua integral no intervalo [a, b] sera

Page 206: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 193

A =b∫

a

P (x)dx = (5.67)

A =b−a∫

0

P (x + a)d(x + a) (5.68)

A =3∑

k=0

b−a∫

0

akxkdx (5.69)

A =3∑

k=0

akxk+1

k+1 |b−a0 (5.70)

A =3∑

k=0

ak(b−a)k+1

k+1 (5.71)

em que

• na equacao (68) fiz a chamada mudanca de variavel para transformar ointervalo de integracao de [a, b] para [0, b− a];

• na equacao (69) estou trocando a ordem dos sımbolos de soma e integral(distributividade da integral relativamente a soma);

• na equacao (70) apliquei o Teorema Fundamental do Calculo a cada umdos monomios;

• e na equacao (71) fiz a substituicao final usando a expressao simples obtidaem consequencia da mudanca de variavel.

Agora, se substituirmos a notacao do intervalo [a, b] por um sub-intervalotıpico da malha, com as correspondentes expressoes para os pedacos de po-linomio, teremos

[a, b] := [xi, xi+1] (5.72)

A := Ai =3∑

k=0

ai,kxk+1

k+1 |xi+1−xi

0 (5.73)

b∫

a

f(x)dx ≈n−1∑

i=0

Ai (5.74)

b∫

a

f(x)dx ≈n−1∑

i=0

3∑

k=0

ai,k(xi+1−xi)

k+1

k+1 (5.75)

em que

• na equacao (72) substitui o intervalo [a, b] por um intervalo generico [xi, xi+1]da particao (malha);

• na equacao (73) escrevi a expressao da integral pedacao de polinomio Pi

no subintervalo [xi, xi+1];

Page 207: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 194

• na equacao (74) escrevi a aproximacao da integral de f como a soma dasintegrais de cada um dos pedacos de polinomio Pi ;

• e, finalmente, na equacao (75) escrevi a expressao da soma final que daaproximacao da integral de f no intervalo [a, b].

Vemos assim que a integral de um quase-spline depende apenas da expressaoda matriz dos coeficientes

ai,k (5.76)

e das medidas∆i,k = xi+1 − xi (5.77)

de cada um dos sub-intervalos da malha considerada. A informacao sobre ofenomenos esta guardada nos coeficientes da matriz dos splines e em algumaforma tambem na medida dos intervalos. Quando as malhas forem informesesta medidas serao todas iguais a ∆ e ja vimos nas discussoes anteriores queesta simplificacao em geral nao traz nenhuma distorcao significativa na analisedos fenomenos. Vou sintetizar estes resultados em alguns teoremas para tornarfacil a referencia.

Teorema 11 Integral de quase-splines - particao nao uniformeConsidere uma aproximacao quase-spline de

f : [a, b] −→ R (5.78)

determinada pela matriz

(ai,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 ≈n−1∑

i=0

3∑

k=0

ai,k(∆i)

k+1

k + 1(5.81)

se a particao for uniforme temos um resultado um pouco simplificado

Teorema 12 Integral de quase-splines - particao uniformeConsidere uma aproximacao quase-spline de

f : [a, b] −→ R (5.82)

determinada pela matriz

Page 208: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 195

(ai,k) i = 0 . . . n − 1 ; k = 0 . . .3 (5.83)

b∫

a

f(x)dx ≈n−1∑

i=0

3∑

k=0

ai,k(∆)k+1

k + 1(5.84)

em que ∆ e a medida comum a todos os sub-intervalos da malha consideradaem [a, b].

E interessante registrar tambem com uma formula o valor medio de f evamos faze-lo nos dois casos.

Teorema 13 Valor medio aproximado de f - particao nao uniformeConsidere uma aproximacao quase-spline de

f : [a, b] −→ R (5.85)

determinada pela matriz

(ai,k) i = 0 . . . n − 1 ; k = 0 . . .3 (5.86)

e pela matriz

(∆i) i = 0 . . . n − 1 (5.87)

das medidas dos sub-intervalos de [a, b]. O valor medio aproximado de f e

1

b − a

n−1∑

i=0

3∑

k=0

ai,k(∆i)

k+1

k + 1(5.88)

e quando a particao for uniforme temos a seguinte aproximacao do valor medio

Teorema 14 Valor medio aproximado de f - particao uniformeConsidere uma aproximacao quase-spline de

f : [a, b] −→ R (5.89)

determinada pela matriz

(ai,k) i = 0 . . . n − 1 ; k = 0 . . .3 (5.90)

O valor medio aproximado de f e

1

b − a

n−1∑

i=0

3∑

k=0

ai,k(∆)k+1

k + 1(5.91)

em que ∆ e a medida comum a todos os sub-intervalos da malha consideradaem [a, b].

Page 209: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 196

Exercıcios 24 Integral de funcoes polinomiais

1. Considere a seguinte tabela de dados

xk f(xk) f ′(xk)−4 3 −1−1 0 −22 −7 06 5 6

Calcule a area da funcao polinomial por pedacos, f , de grau 3 que eladetermina.

Solucao 11 Os coeficientes dos polinomios7 sao

P1 [−4.00,−1.00] a0, a1, a2, a3 3.0,−1.0, 0.33,−0.11P2 [−1.00, 2.00] a0, a1, a2, a3 0.0,−2.0− 1.0, 0.296296P3 [2.00, 6.00] a0, a1, a2, a3 −7.0, 0.0, 0.75, 0.0

As integrais destes polinomios sao (nos respectivos intervalos)

−1∫

−4

P1 = 5.24999925 (5.92)

2∫

−1

P2 = −12.000006 (5.93)

6∫

2

P3 = −12 (5.94)

6∫

−4

f = −18.75 (5.95)

Veja o grafico da funcao polinomial por pedacos, na figura (fig. 5.5) pagina197.

2. Calcule a quantidade do fenomeno descrito pelos dados

xk f(xk) f ′(xk)−4 3 −1−1 0 −22 −7 06 5 6

usando a regra do trapesio e compare com o resultado obtido usando apro-ximacao polinomial do terceiro grau.

7os coeficientes foram calculados com o programa ex0732.c

Page 210: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 197

-8

-6

-4

-2

0

2

4

6

-4 -3 -2 -1 0 1 2 3 4 5 6

"dados"

Figura 5.5: Grafico do polinomio por pedacos

3. Um sensor obteve as seguintes medidas a intervalos iguais de tempo

3 3.2 3.5 4 4.7 5 5.1 5.2 5.21 5.22 5.223 5.2231 5.2232

Encontre um polinomio por pedacos que descreva este fenomeno e calculea quantidade total do fenomeno (integral) e o valor medio do mesmo.

Solucao 12 Como temos medidas igualmente espacadas, (uma particaouniforme) vamos selecionar um subconjunto destas medidas guardandodois valores seguidos e desprezando tres valores seguidos. Com os valoresseguidos calcularemos a taxa de varicao. De acordo com esta decisao, atabela de valores que temos e

Page 211: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 198

xk f(xk) f ′(xk)0 3 3.2−3

1

5 5 5.1−51

10 5.2231 5.2232−5.2231

Como selecionamos dois pontos seguidos e desprezamos os tres seguintes, erazoavel considerar que a distancia entre os nos seja 5 e assim escolhemos0, 5, 10 como o conjunto de nos. Usando o programa ex0732.c paracalcular os coeficientes dos polinomios, temos

P1(x) = 3.0 + 0.2x + 0.14x2 − 0.02x3 (5.96)

P2(x) = 5.0 + 0.1x − 0.013248x2 + 0.000434x3 (5.97)

As integrais, em cada subintervalo, sao

5∫

0

P1 = 20.208334 (5.98)

10∫

5

P2 = 25.765875 (5.99)

e a quantidade do fenomeno e 45.974209. O valor medio e 4.59742

A representacao grafica da modelagem deste fenomeno pode ser vista nafigura (fig. 5.6) pagina 198,

0

1

2

3

4

5

6

0 1 2 3 4 5 6 7 8 9 10

"dados"

Figura 5.6: Modelagem com polinomios por pedacos

Page 212: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 5. INTEGRAL APROXIMADA 199

Voce logo ira perceber que o calculo aproximado da integral usando splines euma generalizacao da soma de Riemann o que justifica que tenhamos comecadoo capıtulo usando um metodo atrazado e ineficiente.

5.5 Integral de quasi-splines

Um n-spline e uma funcao polinomial por pedacos, de grau n que e de classe8

Cn−1.Em outras palavras, se

[a, b]f−→ R (5.100)

for um n-spline, entao

• existe uma particao Π([a, b]), uma famılia de subintervalos, (Ik)n−1k=0 e

• uma famılia de polinomios (Pk)n−1k=0 de grau menor ou igual a n de tal

modo quef |[xk,xk+1] = Pk

f coıncide com o polinomio Pk sobre o intervalo [xk, [xk+1];

• e f e de classe n − 1.

Consequentemente a integral de um spline e uma soma de integrais de po-linomios sobre o ındice que descreve a famılia de sub-intervalos associados aospline:

b∫

a

f =

n−1∑

k=0

xk+1∫

xk

Pk (5.101)

Ha varias formas de apresentarmos splines, e um pouco disto foi visto nocapıtulo 4 quando tambem chamamos sua atencao de que aqui estamos usandouma versao fraca de splines que chamamos de quasi-splines porque apenas exigi-mos a continuidade da derivada das funcoes polinomiais por pedacos. Os nossosquasi-splines sao de classe C1.

Exercıcios 25 Integral aproximada

1. Considere

2.

3.

8que tem n − 1 derivadas contınuas

Page 213: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

Capıtulo 6

Equacoes diferenciais

ordinarias

Vou apresentar alguns metodos que permitem, sobretudo, uma visualizacao da solucao aproximadas deequacoes diferenciais de primeira ordem da forma

dy

dx= f(x, y)

considerada uma condicao inicial (x0, y0) e umaregiao retangular da qual esta condicao inicial e umponto interior.

Resolver exatamente uma equacao diferencial e uma tarefa difıcil mesmo noscasos em que sabemos tudo1, equacoes diferenciais lineares.

Durante a segunda metade do seculo 20 foram desenvolvidos complemen-tos computacionais para metodos desenvolvidos ja no seculo 19. E desta fusaodos metodos antigos, com os avancos computacionais que trataremos aqui paramostrar como podemos resolver aproximadamente uma equacao diferencial or-dinaria.

As equacoes diferenciais de ordem superior a um podem ser reduzidas, atravesde sistema de equacoes as equacoes de primeira ordem, e na parte final docapıtulo mostrarei alguns exemplos desta tecnica. Entretanto o leitor nao deveperder de vista uma verdade crucial, cada equacao diferencial e um novo pro-blema, nao temos uma teoria universal para resolver estas equacoes e nem talvezisto venha a existir no futuro. Por outro lado os metodos computacionais vemse revelando cada vez mais eficazes em nos ajudar na construcao das solucoes

1teoricamente sabemos tudo, mas sabemos que nem sempre conseguiremos encontrar assolucoes....

200

Page 214: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 6. E.D.O. 201

aproximadas mas continua sendo verdadeiro que os programas nao podem rodarsozinhos, eles tem que ser monitorados, e o homem que resolve as equacoes comauxılio da maquina.

Uma equacao diferencial ordinaria e uma expressao da forma

F (x, y, y′, . . . , y(n)) = 0 (6.1)

em que as “potencias” da variavel y representam as sucessivas de y em relacao aunica variavel livre x sendo porisso que estas equacoes se denominam ordinarias,o adjetivo indicando o caso univariado.

A variavel nesta equacao diferencial de fato e y, que e a incognita mas ohabito de chamar os parametros livres de variaveis persiste sendo um defeito quenao nos incomoda e naturalmente vou continuar usando esta terminologia. Se aincognita, numa equacao diferencial, tiver varias variaveis, a equacao se chamaequacao diferencial parcial e na expressao da equacao intervem as derivadasparciais da incognita relativamente as variaveis.

Neste livro vou tratar apenas de equacoes diferenciais ordinarias. A maiorordem de derivacao e a ordem da equacao.

Como ja observei, as equacoes de ordem superior a um podem ser transforma-das num sistema de equacoes de primeira ordem por meios bastante engenhosose que dependem de cada equacao, esta e a razao pela qual se estuda de formaintensiva as equacoes 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 signficativos que e difıcil de controlar. Isto se pode verfacilmente numa listagem de quociente de diferencas de ordem 2, numa malhasuficientemente fina, em volta de pontos em que a funcao tenha uma oscilacaomuito intensa, como apresentei no primeiro capıtulo.

Entao vou me restringir nesta exposicao as equacoes diferenciais do tipo daequacao (1) de ordem 1

F (x, y, y′) = 0 (6.2)

Esta equacao, desde que satisfeitas as condicoes do Teorema da FuncaoImplıcita pode ser escrita na forma

y′ = f(x, y) = 0 (6.3)

exceto possivelmente em cima de algumas curvas onde a derivada parcial de Frelativamente a terceira variavel se anulasse portanto esta nova expressao e emgeral facil de ser deduzida a partir da equacao (2) o que justifica que a grandemaioria dos textos parte diretamente de uma equacao na forma (3) deixando asexpressoes das equacoes (1), (2) no preambulo como uma forma adequada deiniciar falando de equacoes diferenciais.

Entao sera a equacao (3) que eu vou tomar como modelo para uma equacaodiferencial ordinaria de primeira ordem neste capıtulo sendo esta uma expressaobastante geral como acabei de expor.

O meu objetivo aqui e apresentar metodos para resolver de forma aproxi-mada as equacoes diferenciais e sobretudo apresentar este metodos no contextoatual em que a computacao nos permite trabalhar.

Page 215: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 6. E.D.O. 202

Resolver uma equacao diferencial significa para nos encontrar uma solucaoaproximada para um problema de valor inicial

y′ = f(x, y) ; y′(x0) = f(x0, y0) (6.4)

o ponto (x0, y0) e comumente denominado condicao inicial.Por exemplo, certos autores ainda fazem referencia ao metodo passo a passo

em que podemos obter um sucessao de valores yk quando hoje podemos en-contrar uma poligonal com um numero grande de lados sendo estes lados ar-bitrariamente pequenos representando uma aproximacao de alta precisao paraum problema de valor inicial. A mencao anterior e apenas aos vertices destapoligonal.

Aqui vamos melhorar, como apoio computacional, os metodos tradicionaisde uma forma que logo vamos descrever.

Com frequencia a variavel livre usada e t quando se quer fazer referenciaa problemas dinamicos. Como esta notacao e puramente psicologica, eu voucontinuar usando x como parametro, mas vou me permitir a usar a linguagemde equacoes dinamicas quando me parecer interessante.

Queremos obter uma poligonal a partir da condicao inicial (x0, y0) parafrente, ou para tras, quando x ∈ I, um intervalo aberto I contendo x0 como oindica a figura (fig. 6.1) pagina 202, em que uma curva, a solucao “exata” apa-

Figura 6.1: Uma poligonal-solucao aproximada

rece passando por um ponto, a condicao inicial, onde tambem se origina umapoligonal, a solucao aproximada que nos interessa. A figura tambem ilustra umitem importante neste problema que o domınio Ω de validade da solucao. A de-terminacao desta domınio e consequencia dos coeficientes variaveis da equacaoou da propria funcao f(x, y). Por exemplo, a equacao

y′ = −x

y(6.5)

Page 216: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 6. E.D.O. 203

que logo iremos usar como um exemplo, estabelece como domınio

Ω = R2 − (x, y) ∈ R2 ; y = 0 (6.6)

o que justifica plenamente um problema de instabilidade do algorıtmo de quevamos tratar mais a frente.

Entretanto nos sabemos que esta restricao nao precisa existir, em particularesta equacao e uma das equacoes mais elementares para ser resolvida conduzindopelo metodo das “variaveis” separaveis a equacao de uma famılia de cırculos decentro na origem com validade em todo R2.

Infelizmente nem sempre podemos fazer uma discussao simples assim numproblema particular.

O plano do trabalho que vamos desenvolver aqui e

• O metodo de Euler que produz a poligonal de Euler; Um algoritmo com-putacional produz esta poligonal com uma precisao bastante grande emvez de apenas construir os vertices;

• O metodo de Taylor que e uma aplicacao dos polinomios de Taylor2 emque uma funcao polinomial vai representar a solucao aproximada. Aquivamos usar o metodo de Taylor para fazer uma melhoria no metodo deEuler produzindo uma funcao polinomial por pedacos, cada pedacao cons-truido com o metodo de Taylor. Este metodo e comparavel ao metodo deRunge-Kutta em muito exemplos.

6.1 O metodo de Euler

O metodo de Euler pode ser explicado de forma bem elementar. A figura (fig.6.2) pagina 204, ilustra o metodo com uma construcao feita a mao. O pontoP na figura representa uma condicao inicial onde desenhei um segmento dereta tangente, uma aproximacao linear da curva num vizinhanca do ponto P . Ooutro ponto do segmento, P1 e uma nova condicao inicial em que novo segmentode reta tangente sera tracado e assim sucessivamente temos uma poligonal querepresenta uma aproximacao da curva-solucao da equacao diferencial.

A curva apresentada na (fig. 6.2) e um cırculo que se for centrada na origeme uma solucao da equacao diferencial

y′ = −x

y= f(x, y) (6.7)

e eu escolhi este exemplo porque ele oferece um problema na implementacao doalgoritmo: os pontos com tangentes verticais, em cima do eixo OX , tornam oprograma instavel. O mesmo aconteceria com a equacao

y′ =x

y(6.8)

2alguns autores se referem indevidamente a serie de Taylor

Page 217: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 6. E.D.O. 204

método de Euler

P

P

P

P

1

2

3

Figura 6.2: O metodo de Euler - uma poligonal

cujas curvas-solucao sao hiperboles. Novamente o algoritmo perde estabilidadequando passa no eixo OX . E possıvel obter uma solucao que corte este eixo,mas em geral o programa se perde desenhando retas obliquas porque perto doeixo, logo acima ou logo abaixo o coeficiente angular e muito alto e e difıcilescrever um algoritmo que supere este problema.

O algoritmo, como mostra a figura, consiste em substituir a solucao por umapoligonal que parte da condicao inicial dada, (x0, y0), e que podemos descrevercom a seguinte sucessao de equacoes num processo indutivo. No conjunto deequacoes abaixo, cada duas equacoes representa um passo no processo

(x0, y0) ⇒ f0(x) = y0 + f(x0, y0)(x − x0) (6.9)

x1 = x0 + ∆x ; y1 = f0(x1) (6.10)

... (6.11)

Page 218: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 6. E.D.O. 205

(xk, yk) ⇒ fk(x) = yk + f(xk, yk)(x − xk) (6.12)

xk+1 = xk + ∆x ; yk+1 = fk(xk) (6.13)

... (6.14)

(xn, yn) ⇒ fn(x) = yn + f(xn, yn)(x − xn) (6.15)

xn+1 = xn + ∆x ; yn+1 = fn(xn) (6.16)

eu escrevi a equacao da reta fk com a qual calculei yk+1 definindo antes xk+1 =xk + ∆x .

• o primeiro lado da poligonal se originando na condicao inicial para a qualse calcula a equacao da reta tangente ;

• o segundo extremo deste segmento de reta tangente e uma nova condicaoinicial para determinar um novo lado da poligonal

e assim sucessivamente.O programa euler.c implementa este algoritmo mas nao consegue resolver

a equacao do cırculo se a condicao inicial estiver em cima do eixo OX . A figura(fig. 6.3) pagina 206,

O trecho essencial do programa euler.c, escrito em C que implementa estealgoritmo e

data = abrearquivo("dados","e"); // (2)

enquanto( (x > InicioX)*(x < FimX)*(y > InicioY)*(y < FimY)*(k < n) )

// (cos(theta), sin(theta)) = (a,b)

real m = atan(f(x,y));

real a=cos(m),b = sin(m); // b=sqrt(1 - a*a); // cosenos diretores

imprime_arq(data,"%f %f \n", x, y); // primeiro ponto da reta

x = x + a*salto; y = y + b*salto; // novo ponto da reta

imprime_arq(data,"%f %f \n", x, y);

k++; // contando os segmentos de reta da poligonal

imprime("...");

fecha_arquivo(data); // fecha o arquivo "dados"

que coloca no arquivo ”dados”apenas os vertices da poligonal. Depois possousar Gnuplot, um programa de domınio publico, que completa os segmentos dereta entre os pontos desenhando a poligonal. Eu chamo o Gnuplot diretamentede dentro do programa de modo que o programa ja apresenta o grafico dasolucao aproximada deixando os dados registrados em arquivos o permite repetiro grafico posteriormente, sem rodar o programa.

Alem de poder ver o grafico tenho assim os vertices da poligonal de Eulerdisponıveis para aplicacoes numericas. O leitor interessado pode me pedir copiado programa por e-mail.

Page 219: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 6. E.D.O. 206

-4

-3

-2

-1

0

1

2

3

4

-4 -3 -2 -1 0 1 2 3 4 5

"dados""XOY"

Figura 6.3: solucao aproximada de y′ = −xy

Exercıcios 26 1.

2.

3.

Page 220: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 6. E.D.O. 207

6.2 Polinomio de Taylor: solucao aproximada

O metodo de Taylor pode ser visto como genera-lizacao do metodo de Euler e eu vou apresenta-losob esta forma nesta exposicao. Fazendo assim, oalgoritmo computacional ja produzido par o metodode Euler pode ser facilmente alterado para produziro metodo de Taylor.

Quero resolver o problema de valor inicial

y′ = f(x, y) ; y′(x0) = f(x0, y0) (6.17)

num domınio Ω ⊂ R2 em que (x0, y0) ∈ Ω.A suposicao de que Ω seja um aberto nos deixa livre de preocupacoes com

a fronteira onde eventualmente as derivadas parciais de f deixassem de existir.Na construcao vamos ver quais sao as hipoteses necessarias para que o problemapossa ser resolvido.

A polinomio de Taylor de grau n produz uma funcao polinomial tangente aografico de uma funcao tangenciando ate a ordem de derivacao correspondenteao 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 equacao

(x0, y0) ⇒ f0(x) = y0 + f(x0, y0)(x − x0) (6.18)

em que obtivemos uma funcao do primeiro grau cujo grafico e tangente ao graficoda curva-solucao passando no ponto (x0, y0) e queremos expandir mais um termopara obter uma expressao (polinomio) do segundo grau.

Para isto vamos formalmente expressar y′ = z, que o leitor vera novamentequando numa equacao de ordem dois fizermos sua transformacao num sistemade equacoes de primeira ordem, ao final do capıtulo, para escrever:

y′ = z = f(x, y) (6.19)

y′(x0) = A0 (6.20)

dz = ∂f(x,y)∂x dx + ∂f(x,y)

∂y dy (6.21)

y′′ = dzdx = ∂f(x,y)

∂x + ∂f(x,y)∂y

dydx (6.22)

y′′(x0) = ∂f(x,y)∂x

|(x0,y0) + ∂f(x,y)∂y

|(x0,y0)y′(x0) (6.23)

y′′(x0) = A1 (6.24)

f0(x) = y0 + A0(x − x0) + A1

2(x − x0)

2 (6.25)

Page 221: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

CAPITULO 6. E.D.O. 208

f0(x) = y0 + A0,0(x − x0) +A0,1

2 (x − x0)2 (6.26)

e a expressao do polinomio do segundo grau que substitui, na formula de Euler,a equacao da reta tangente.

Posso agora retomar as equacoes que de forma iterativa me deram a poligonalde Euler, para calcular construir uma sucessao de polinomios do segundo grau,uma polinomial de segundo grau que aproxima a solucao do problema de valorinicial

y′ = f(x, y) ; y′(x0) = f(x0, y0) (6.27)

(x0, y0) ⇒ f0(x) = y0 + A0,0(x − x0) +A0,1

2(x − x0)

2 (6.28)

x1 = x0 + ∆x ; y1 = f0(x1) (6.29)

... (6.30)

(xk, yk) ⇒ fk(x) = yk + Ak,0(x − x0) +Ak,1

2 (x − x0)2 (6.31)

xk+1 = xk + ∆x ; yk+1 = fk(xk) (6.32)

... (6.33)

(xn, yn) ⇒ fn(x) = yn + An,0(x − x0) +An,1

2 (x − x0)2 (6.34)

xn+1 = xn + ∆x ; yn+1 = fn(xn) (6.35)

O programa taylor.c e uma simples consequencia do programa euler.c

apenas acrescentanodo as funcoes necessarias para calcular Ak,0, Ak,1, e natu-ralmente usando a nova expressao de fk no calculo dos pontos para obter ografico.

6.2.2 Polinomio de Taylor de grau n

Poderiamos ser tentados em prosseguir estes calculos em busca de um polinomiode Taylor de grau mais elevado. Como e facil de observar a partir do calculofeito acima, as contas ficariam bem mais complicadas a cada nova ordem (graudo polinomio).

A experiencia que temos com aproximacao nos indica que outro caminhopode ser tomado para obter melhor aproximacao, por exemplo construir ummetodo hıbrido, de Taylor, usando a mesma metologia acima.

Isto recairia na construcao de splines ou quase-splines.

Page 222: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

Referencias Bibliograficas

[1] D’Azevedo, E.F. Romine, C. H. e Walker, D. W. Shared-Memory Emulationis 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 - [email protected] 28/07/1997

www.cecm.sfu.ca/personal/jborwein/Kanada 50b.htmljborwein@@cecm.sfu.ca

[4] Claudio, D. M. e Marins, J.M.Calculo Numerico Computacional - 1994 editora atlas - 2a Edicao

[5] Sperandio, D. Mendes, J. T. e Silva, L.H.M Calculo Numerico Prentice HallBrasil

[6] Shapiro, H. S Smothing and approximation of functions

Van Nostrand Reinhold Mathematical Studies - 24

[7] Franco, N.M.B. Calculo Numerico Prentice Hall Brasil

[8] Daubechies, Ingrid, Ten lectures on wavelets

- SIAM - Philadelphia, PA - 1992

[9] Dieudone Calcul Infinitesimal

- 1968 - Collection Methodes - Herman - Paris.

[10] Eaton, John W. Octave - A high-level interactive language for numericalcomputations

1996 ftp.che.utexas.edu/pub/octave/octave-M.N.tar.gz

209

Page 223: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

REFERENCIAS BIBLIOGRAFICAS 210

[11] Faculdade de Engenharia Mecanica - Unicamp

http://www.fem.unicamp.br/ em313/paginas/person/lavoisie.htm

[12] Saunders, M e Birkhoff, G - Algebra

MacGraw-Hill - 1968

[13] gnuplot um programa para fazer grafico e alguns calculos

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 NeuenschwanderGRADIENT. Algortithmic Differentiation in Maple

Pre-Print - Symbolic Computation GroupInstitut fur Wissenschftliches Rechnen- ETH - Zurich - Switzerland

[18] Praciano-Pereira, T. Calculo numerico Computacional - Introducao a lin-guagem Pascal- Editora da Universidade Estadual Vale do Acarau - 2000

http://www.4shared.com/file/14206895/ae074651/pascal.html

[19] Praciano-Pereira, T.

Calculo numerico Computacional - Edicao EletronicaLaboratorio de Matematica Computacional - 2007

http://www.4shared.com/dir/1751707/4c187abc/sharing.html

[20] Praciano-Pereira, T Programas para Calculo Numerico - programas.tgz

http://www.4shared.com/dir/2041165/e14cc331/programas.html

[21] Praciano-Pereira, T Splines por convolucao

http://www.4shared.com/file/17757661/3515d0b6/convspl02.html

[22] Rossum, Guido van A tutorial on Python

- [email protected] - ftp.python.org.

Page 224: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

REFERENCIAS BIBLIOGRAFICAS 211

[23] Scilab Group - SciLab - programa para simulacoes numericas

INRIA - Unite de recherche de Rocquencourt - Projet Meta2 - [email protected] 1996

htt://www.scilab.org

[24] SIAM NEWS - The news journal of the Society of Industrial and AppliedMathematics

- Philadelpphia, PA - USA

[25] Simmons, G.F.Differential Equations with App. and Hist. Notes.

McGraw-Hill - Book Company - 1978

[26] An elementary proof of the Arithmetic-Geometric Inequality - Revista Vetor- Univ. Federal do Rio - 2004 - Grande - Rio Grande - RS

[27] Jose Stalio Rodrigues do Santos e Praciano-Pereira, T.

Introducao a Matematica Universitaria

Edicao Eletronica do Laboratorio de Matematica Computacional - Univ. Es-tadual Vale do Acarau - Sobral - Ceara - 2005

http://www.4shared.com/file/12779601/ab687cc4/fundam2p.html

[28] Spline

A enciclopedia livre na Internet

http://pt.wikipedia.org/wiki/Spline

[29] A enciclopedia livre na Internet - Wikipedia

http://encyclopedia.thefreedictionary.com/

Page 225: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

Indice Remissivo

1-spline, 1332-spline, 133

abertosoftware, 126

algebricacomputacao, vi

algorıtmicaderivada, 13, 112–115

amostragem, 10, 102antigo

moderno, 82aproximacao, 4Aquiles

paradoxo, 30aritmetica

geometricadesigualdade, 83

assintotico, comportamento, 177

babilonios, 83algoritmo, 88precisao, 82

barra invertida, 148binaria

busca, 73busca binaria, 28

calc, viC interpretado, 52

caracterısticafuncao, 133

cırculodesenhando, 4

compilar e rodar, 43comportamento assintotico, 177computacao

algebrica, vicientıfica, vinumerica, vi

constantesespecıficas, 36

construcoesarea de, 36

contınuo, 127continuidade, 129contracao, 91contradicao, 127convexa

comb. linear, 121convolucao

correcao, 143def. geometrica, 133domınio, 144produto, 133produto de, 133

correcaoinformacao, 137pela media, 8

cortes de Dedekind, 69cubicos

splines, 132, 148cubicos, splines, 132

Dedekindcortes de, 69

derivada, 1aproximada, 7importancia, 7

derivada algorıtmica, 13, 112–115derivada zero, 61desigualdade

aritmetico-geometrica, 83

212

Page 226: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

INDICE REMISSIVO 213

diferencaquociente, 10

diferenciaveisfuncoes, 128

diferenciabilidade, 128

equipetrabalho, 127

erraformula, 18

erro, 19, 127, 138correcao, 138Valor Medio, 138

especıficasconstantes, 36

etica, 126Euler, 112

metodo de, 194poligonal, 194

figuraarea, 80, 81area aproximada, 163rea, 792-spline, 157aprox. polin. classica, 103aproximacao, 125

Lagrange,splines, 158, 159convolucao, 146

produto, 134produto de, 135

convolucaoregularizacao, 159

dados amostrais, 18derivada

interpretacao, 9derivada zero, 61grafico de f , 17interpolacao, 108

linear, 7nao linear, 8

intersecaocurvas, 77

Lagrange, polinomio, 114maximo modulo, 104media viciada, 140

metodo da secante, 54metodo de Euler, 195, 197malha, 32, 35

figura plana, 35multiplicidade

raızes, 40nucleos, 144particao, 32

figura plana, 35polin. por ped., 188, 189raz

recursividade, 91, 92raız

reta tangente, 63raız da tangente, 64Raız duma funcao, 29raız quadrada, 87raızes

secantes, 48Reta tangente, 20secantes

raızes, 48sensor

mais antigo, 5melhor geracao, 6

solucaoedo, 193

soma de Riemann, 164tangencia

parabolico, 60tangente

cırculo, 2taxa de variacao, 2trapesio, 181um-spline, 105Valor medio, 130valor medio, 139

fixoponto, 66, 73ponto,teorema, 90

fixo pontoteoremas, 90

florestasarea de, 36

gaussiana, 143

Page 227: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

INDICE REMISSIVO 214

integral da, 143GNU/Linux, viGnuplot, 148gnuplot, vi, 12, 89, 102

comandos, 16GPL, vii, xiigrafico

Riemann,soma, 176soma de Riemann, 176

hipoteticafuncao, 126

implıcitateorema da funcao, 22

impulsounitario, 134

infinito, 127loop, 65

informacaocorrecao, 137

informacoesexcesso, 120

integravela Riemann, 170nao, 170

integral, 183aprox. por falta, 173aproximacao, 174–176, 178calculo numerico, 178calculo, 161Expressao formal, 169python, 178soma de Riemann, 167–169valor medio, 136, 138, 186

interpolacaocurva, 6Lagrange, 112linear, 104nao linear, 7, 105, 109poligonal, 121polinomial classica, 111

interpolacaolinear, 7

intervaloparticao, 32

iterada de T, 65

Lagrangeinterpolacao, 112, 121metodo, 112tutorial, 112

LandauO grande de, 26o pequeno de, 3o pequeno de , 26

Linux, vi, xii, 127loop infinito, 65

malha, 31, 124, 127, 164laco, 36multidimensional, 34, 35

problema, 37uso, 35, 36

nos, 120norma, 31

maximomodulo, 104teorema, 103

Maxima, xiimaxima, vimedia, 8

dados, recuperacao, 138restauracoes, 138telecomunicacoes, 138

mediovalor, 183

metododeterminar raızes

da secante, 62da tangente, 62

microrganismosquantidade de, 35

modelagem, 101modelo, 126, 127

tipos de, 126modelos

contınuos, 127discretos, 127

modernoantigo, 82

modulo maximo, 104

Page 228: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

INDICE REMISSIVO 215

teorema, 103monico

polinomio, 109movimento

equacao, 19multidimensional

malha, 34MuPad, xii

n-splines, 133, 148no

de uma malha, 112nos, 164

malha, 120nucleo, 134, 136

n-spline, 148norma da malha, 31

Octave, xiiorbita

foguete, 4oscilacao, 104

fenomenos com, 120

paradoxo, 127de Aquiles, 30

particao, 31, 120, 127, 164norma, 31uniforme, 120

particaonao uniforme, 120

pedacoslinear, 121, 122polinomios, 124

pen-drive-splines, 140pequeno

relativamente, 48peso, 121pesos, 136pique

fenomeno com, 120poligonal, 121polinomio

de Lagrange, 121polinomial, 130

aprox. classica, 102

aproximacao, 101, 102de grau tres, 124do terceiro grau, 123interpolacao, 111por pedacos, 102splines, 102

poluicaoavaliacao de, 36

ponderadamedia, 136

ponto fixo, 66, 73, 85, 88teorema, 90

precisaopontos, 120pontos de, 120

produto de convolucao, 133programa, 176, 178

fim de linha, 148raizes01.c, 43

programasintegral.py, 178python, 178

pulso unitario, 136Python, 169

quantidadefenomeno, 122

quasi-splines, 132, 190integral, 185

raz quadrada, 83raız

metodosecante, 28tangentes, 28

secante, 48–50, 55, 56tangente, 47tipo secante, 47tipo tangente, 47

raızesde funcoes, 28separacao das, 39

raiztipo secante, 61, 62tipo tangente, 61, 62

real

Page 229: CALCULO NUM´ ERICO´ COMPUTACIONAL. · 2.4 Va´rios representantes da u´nica raiz ... 4.8 Aproximac¸a˜o de uma func¸a˜o ... o calculo formal pode ser longo ou

INDICE REMISSIVO 216

numero, 170realidade

simulacao, 126recursiva

sucessao, 66recursivas

sucessoes, 88sucesswoes, 88

recursividade, 28, 53, 66, 73raız, 91, 92

Reduce, xiiRiemann

soma, 166, 173, 174Riemann, soma, 162, 163riemann.py, 173rodar e compilar, 43Runge-Kutta, 194

salto quantico, 128Scilab, xiiscilab, visecante

metodo, 73secantes

e tangentes, 4seguranca

simulacao, 126separacao

das raızes, 39sequencias

recursivas, 88serie

termo geral, 98Simpson

integral, 160simulacao, 126sinal, 134soma de Riemann, 160, 162, 163, 166splines, 101, 102, 130, 133,190

aplicacoes, 134pen-drive, 140

splines cubicos, 132sucessao, 128sucessoes

recursivas, 88suporte

notacao, 144

tangentemetodo, 73parabola, 18, 19

tangentese secantes, 4

taxa de variacao, 183Taylor

formula, 19, 23formula multivariada, 21polinomio, 194

teoremamodulo maximo, 103

tipos de raızes, 47translacao, 134trapesio

regra do, 160tutorial, 112

Lagrange, polinomio, 112

uniformeparticao, 120, 170

unitariopulso, 136

unitario, impulso, 134

valor medio, 136, 138, 183integral, 186

valor medio integral, 138Vandermonde, 111, 112variacao

taxa, 9taxa de, 1, 183

variedade, 22, 27varredura, 30, 127viciada

media, 137

Waring, 112