PROGRAMANDO A HP Prime ˜ ES) (COM APLICAC ¸O Gentil, o iconoclasta
Boa Vista-RR Edi¸c˜ao do autor 2018
c 2018 Gentil Lopes da Silva Copyright
Todos os direitos reservados ao autor Site do autor → docente.ufrr.br/gentil.silva email → gentil.iconoclasta@gmail.com
Editora¸ c˜ ao eletrˆ onica e Diagrama¸ c˜ ao: Gentil Lopes da Silva Capa: Adriano J. P. Nascimento
Ficha Catalogr´ afica S586d
Silva, Gentil Lopes da Programando a HP Prime : com aplica¸ c~ oes Gentil Lopes da Silva.Manaus/Boa Vista: Editora Uirapuru/Autor, 2018. x, 357 p. il. 16x23 cm [e-book] [Pseud^ onimo: Gentil, o iconoclasta] ISBN 978-85-63979-17-9 1. Computa¸ c~ ao. 2. Matem´ atica. 3. Programa¸ c~ ao. 4. Gentil, o iconoclasta. I. T´ ıtulo. CDU: 519.682
(Ficha catalogr´afica elaborada por Bibliotec´ aria Zina Pinheiro CRB 11/611)
2
Pref´ acio “A motiva¸c˜ ao para escrever o presente livro foi tripla. Em 1996 eu me encontrava na UFSC quando fui solicitado, pelos alunos da f´ısica e engenharia, a ministrar um curso de programa¸c˜ao da HP ; quando, na ocasi˜ ao, tive a oportunidade de escrever uma apostila ‘Programando a HP 48’ para conduzir o curso. Em 2009 encontro-me na UFRR ministrando a disciplina C´ alculo Num´erico, na qual decidi adotar a HP 50g . Reescrevi a apostila adaptando-a para a HP 50g e postei uma vers˜ ao em minha homepage. Num per´ıodo de dois anos aproximadamente recebi email’s de v´arias partes do Brasil de usu´arios do meu trabalho − devo admitir que a apostila fez bastante sucesso. Isto me motivou a transformar o referido trabalho no presente livro. Este trabalho foi escrito tomando por base ‘a velha apostila’, sua adapta¸c˜ao e o Guia do Usu´ ario-HP. No que diz respeito ` a eficiˆencia da maioria dos alunos em utilizar os recursos dispon´ıveis na calculadora − pelo que tenho observado − ´e a mesma de um propriet´ario de uma possante ferrari que, no entanto, se desloca em um monociclo.” (Extra´ıdo do pref´ acio do livro “Programando a HP 50g ”) De todas as calculadoras da fam´ılia HP a HP Prime ´e a de programa¸c˜ao mais f´acil; depois de mais de 20 anos trabalhando com estas calculadoras ainda hoje fico pasmo com a potˆencia de c´alculo destes − por assim dizer − computadores de bolso, agora incluindo-se a computa¸c˜ao alg´ebrica. Apenas para exemplificar, f´ormulas n˜ ao muito simples de serem manipuladas na m˜ ao, aqui s˜ ao programadas em um u ´ nica linha!, por exemplo esta
7→
∆m f (n) =
m X
(−1)k
k=0
m k
f (n − k + m)
Muitos dos programas que constam neste livro ocupam no m´ aximo uma tela da HP Prime , como esta acima. Para aqueles que desejam “apenas” aprender a programar a HP Prime o cap´ıtulo 1 deste livro ´e mais do que suficiente; no cap´ıtulo 2 temos alguns temas matem´ aticos in´editos − por mim desenvolvidos (sou “compositor”) − e mais programa¸c˜ ao; o cap´ıtulo 3 ´e para os alunos do C´ alculo Num´erico. ´ E com grata satisfa¸c˜ ao que deixo aqui consignado meus agradecimentos ao meu (ex-) aluno Adriano J. P. Nascimento que com grande competˆencia, boa vontade e desprendimento produziu as capas da maioria dos meus livros, e ainda se incumbiu da divulga¸c˜ao dos mesmos, a ele minha gratid˜ ao!. Gentil, o iconoclasta/Boa Vista-RR, 02.03.2018 3
Foto-Ariovaldo(p. 109)
Caro prof. Gentil, boa tarde. Sou professor do curso de engenharia el´etrica da Universidade S˜ ao Francisco, Campinas/SP. Gostaria de pedir a sua autoriza¸c˜ao para usar, como base para um curso de programa¸c˜ ao de calculadoras cient´ıficas HP, a sua apostila. Desde j´a, independentemente da sua autoriza¸c˜ao, agrade¸co a sua aten¸c˜ao e fa¸co elogios a sua apostila e site. Abra¸co fraterno. Luiz Carlos de Freitas J´ unior Professor do Curso de Engenharia El´etrica/Campus Campinas Professor Gentil, Chamo-me Cleber e sou acadˆemico do Curso de Engenharia Qu´ımica da Universidade Federal do Paran´ a. Estou escrevendo para parabeniz´ a-lo pela sua obra “Programando a HP 50g ”. Esse livro ´e fant´astico! Tem me ajudado muito. [. . . ] O seu livro fez toda a diferen¸ca no caminho que percorri para adentrar no fant´ astico mundo da programa¸c˜ao. [. . . ] (p. 110) Cleber Pertel Ol´ a, ˆ Sou Angelo Polloto aluno de Engenharia Eletrˆonica da UTFPR (Univ. Tecnol´ ogica Federal do Paran´ a)− Campos Toledo. Li uma parte do seu trabalho ensinando a programar na HP 50g . Sou muito grato por vocˆe tˆe-lo publicado j´a que o mesmo me ajudou, e ajudar´ a muito, durante a minha gradua¸c˜ao. Pe¸co-lhe gentilmente se posso recomend´a-lo para amigos da Universidade. Grato pela aten¸c˜ ao 4
Sum´ario
1 Programando a HP Prime 1.1 Introdu¸c˜ ao ` a programa¸c˜ ao da HP Prime 1.1.1 Programa¸c˜ ao num´erica . . . . . . 1.1.2 Como executar um programa . . 1.1.3 Programa¸c˜ ao alg´ebrica . . . . . . 1.2 Express˜oes e Fun¸c˜ oes . . . . . . . . . . . 1.3 Listas e Matrizes . . . . . . . . . . . . . 1.3.1 Listas . . . . . . . . . . . . . . . 1.3.2 O comando MAKELIST . . . . . . 1.3.3 Matrizes . . . . . . . . . . . . . . 1.3.4 O comando MAKEMAT . . . . . . . 1.3.5 Comandos u ´ teis para matrizes . 1.4 Somat´ orios e produt´ orios . . . . . . . . ´ 1.5 Algebra . . . . . . . . . . . . . . . . . . Subrotinas . . . . . . . . . . . . . . . . 1.6 Estruturas de Programa¸ca˜o . . . . . . . 1.6.1 Estruturas c´ıclicas . . . . . . . . 1.6.2 Estruturas condicionais . . . . . • Tra¸cando gr´ aficos . . . . . . . . 1.7 Operadores l´ ogicos relacionais . . . . . . 1.8 Algumas fun¸c˜ oes especiais . . . . . . . . 1.8.1 A fun¸c˜ ao apply . . . . . . . . . . 1.8.2 A fun¸c˜ ao REPLACE . . . . . . . 1.8.3 A fun¸c˜ ao Map . . . . . . . . . . 1.8.4 A fun¸c˜ ao Zip . . . . . . . . . . . 1.8.5 A fun¸c˜ ao remove . . . . . . . . . 1.8.6 A fun¸c˜ ao solve . . . . . . . . . . • Tabela-Resumo . . . . . . . . . . . . 1.9 Polinˆ omios . . . . . . . . . . . . . . . . 1.10 N´ umero inteiro . . . . . . . . . . . . . . 5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7 . 8 . 10 . 15 . 20 . 25 . 34 . 34 . 36 . 41 . 44 . 46 . 52 . 58 . 62 . 63 . 64 . 74 . 77 . 79 . 83 . 83 . 84 . 88 . 89 . 90 . 91 . 93 . 95 . 103
2 Aplica¸ co ˜es - Mix 2.1 C´ alculo de combina¸c˜oes . . . . . . . . . . . . . . . . . . . . 2.2 Desenvolvimento N -´ario . . . . . . . . . . . . . . . . . . . . 2.3 Progress˜ ao aritm´etica bidimensional . . . . . . . . . . . . . 2.3.1 F´ormula do termo geral de uma PA-2D . . . . . . . 2.3.2 Soma dos termos de uma PA-2D . . . . . . . . . . . 2.3.3 Lineariza¸c˜ao de sequˆencias duplas . . . . . . . . . . 2.4 Progress˜ ao aritm´etica tridimensional . . . . . . . . . . . . . 2.4.1 F´ormula do termo geral de uma PA-3D . . . . . . . 2.4.2 Soma dos termos de uma PA-3D . . . . . . . . . . . 2.4.3 Lineariza¸c˜ao de sequˆencias triplas . . . . . . . . . . 2.5 Progress˜ ao aritm´etica de ordem m . . . . . . . . . . . . . . 2.5.1 F´ormula do termo geral de uma P.A.m . . . . . . . 2.5.2 Soma dos termos de uma P.A.m . . . . . . . . . . . 2.5.3 Diferen¸cas de ordem m . . . . . . . . . . . . . . . . 2.6 Progress˜ ao geom´etrica de ordem m . . . . . . . . . . . . . . 2.6.1 F´ormula do termo geral de uma P.G.m . . . . . . . 2.6.2 Produto dos termos de uma P.G.m . . . . . . . . . . 2.6.3 Quocientes de ordem m . . . . . . . . . . . . . . . . 2.6.4 Uma aplica¸c˜ao das P.G.m : C´ alculo de combina¸c˜oes 2.7 Um pequeno interregno cultural . . . . . . . . . . . . . . . . 2.8 A Curva de Peano e o Cubo Hiperm´ agico . . . . . . . . . . 2.8.1 A curva de Peano no cubo . . . . . . . . . . . . . . . 2.8.2 O cubo hiperm´ agico . . . . . . . . . . . . . . . . . . 2.9 C´ alculo da taxa de juros . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
111 112 115 119 123 128 132 146 152 161 163 169 171 182 186 191 192 200 201 208 212 218 242 246 250
3 Aplica¸ co ˜es ao C´ alculo Num´ erico 3.1 Interpola¸c˜ ao . . . . . . . . . . . . . . . . . 3.1.1 Interpola¸c˜ao de Lagrange . . . . . 3.1.2 Interpola¸c˜ao de Newton . . . . . . 3.1.3 Interpola¸c˜ao de Gregory-Newton . 3.2 Integra¸c˜ ao . . . . . . . . . . . . . . . . . . 3.2.1 Regra dos trap´ezios generalizada . 3.2.2 Primeira regra de Simpson . . . . 3.2.3 Segunda regra de Simpson . . . . . 3.2.4 Quadratura gaussiana . . . . . . . 3.2.5 Integral dupla . . . . . . . . . . . . 3.3 Equa¸c˜ oes Diferenciais Ordin´arias . . . . . • F´ormula de Taylor . . . . . . . . . 3.3.1 Problema de valor inicial (PVI) . . 3.3.2 M´etodo de Euler . . . . . . . . . . 3.3.3 M´etodo de Taylor de ordem p = 2 3.3.4 M´etodos de Runge-Kutta . . . . .
. . . . . . . . . . . . . . . .
269 270 275 283 291 301 302 305 307 309 321 328 329 338 341 346 348
6
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
Cap´ıtulo
1
Programando a HP Prime A despeito da cr´ıtica de Laplace, a vis˜ ao de Leibniz, pela qual o mundo ´e criado a partir dos 0’s e 1’s, recusa-se a sair de cena. De fato, ela come¸cou a inspirar alguns f´ısicos contemporˆ aneos, que provavelmente nunca ouviram falar de Leibniz. (Gregory Chaitin/Metamat!)
Introdu¸ c˜ ao: Uma diferen¸ ca (evolu¸ ca ~o) abissal! Como eu conhe¸co − apenas parcialmente, observo − o poder de c´alculo num´erico e alg´ebrico da HP Prime gostaria apenas de registrar nesta introdu¸c˜ao que fico deveras embasbacado (pasmo, estupefato) com o seguinte aspecto da evolu¸c˜ ao computacional humana:
Leibnitz (1646-1716)
Pascal (1623-1662)
7
− HP Prime (2013)
1.1
Introdu¸ c˜ ao ` a programa¸ c˜ ao da HP Prime
A calculadora gr´ afica HP Prime ´e uma potente e sofisticada ferramenta computacional, n˜ ao apenas num´erica como, ademais, alg´ebrica − e tamb´em gr´ afica. A seguir a legenda do teclado∗
→
→
A calculadora ´e um universo praticamente inesgot´ avel, apresentaremos aqui material suficiente para iniciar o leitor no fascinante universo da programa¸c˜ ao, daremos os primeiros passos na programa¸ c~ ao num´ erica e alg´ ebrica; muitos outros programas s˜ ao apresentados no desenvolver do presente livro − do cap´ıtulo 1 em diante. A HP Prime utiliza uma linguagem de proc˜ ao da HP grama¸c˜ ao pr´ opria conhecida como “linguagem de programa¸ Prime ”: Uma potente e sofisticada linguagem de programa¸ca ˜o. A base da calculadora ´e a vista de In´ıcio ( ), aqui podemos realizar todos os c´ alculos num´ ericos. Os c´ alculos simb´ olicos (ou alg´ ebricos) ), a ser exemplificado oportunamente. s˜ ao realizados na vista do CAS ( Escrevi um livro sobre programa¸c˜ao da calculadora HP 50g no qual adotei o modo pilha (RPN− Reverse Polish Notation), na HP Prime o modo RPN foi praticamente banido, j´a que n˜ ao podemos utiliz´ a-lo em programa¸c˜ao, sendo assim adotaremos em todo este livro o modo alg´ ebrico. ∗
Retirado do manual “Guia de consulta r´ apida”.
8
Inicialmente, coloque sua calculadora no modo de entrada alg´ ebrico
7−→ Nota: Enfatizamos que do in´ıcio ao fim deste livro a calculadora estar´ a fixada (configurada) no modo de entrada alg´ ebrico. Pois bem, voltando ` a Vista de In´ıcio (
) destacamos
→ Linha de entrada
Linha de entrada
A linha de entrada (de dados) no modo alg´ebrico ´e “unidimensional” teremos a tela da direita. (em uma linha); ap´ os pressionar
9
1.1.1
Programa¸c˜ ao num´ erica
Programar a calculadora significa introduzir em sua mem´ oria (RAM− Random Access Memory − mem´ oria de acesso aleat´orio) uma s´erie de instru¸c˜ oes e comandos para que ela os execute sequˆencialmente, cumprindo alguma tarefa espec´ıfica. Por exemplo, resolver uma equa¸c˜ao, multiplicar ou dividir polinˆ omios, imprimir textos, elaborar um gr´ afico, construir tabelas trigonom´etricas, etc. Para tanto ´e necess´ario que as instru¸c˜oes e os comandos sejam digitados no padr˜ao sint´ atico da linguagem da calculadora e dispostos sequˆencialmente na ordem em que devem ser executados. A fim de que a execu¸c˜ao seja perfeita e apresente os resultados objetivados com precis˜ao, n˜ ao basta atender ´ preciso que o programa n˜ estes requisitos. E ao contenha erros de l´ogica, cuja detec¸c˜ ao n˜ ao ´e feita pela calculadora, que est´ a preparada para apontar somente erros de sintaxe. Os recursos de programa¸c˜ao postos `a nossa disposi¸c˜ao pela calculadora HP Prime s˜ ao excepcionalmente valiosos e variados e a melhor forma de conhecˆe-los, entender sua finalidade e alcance e fix´a-los em nossa mem´ oria ´e atrav´es da pr´ atica. Embora mencionada como uma calculadora por causa de seu formato compacto similar aos dispositivos de c´alculo manuais t´ıpicos, a HP Prime deve ser vista como um sofisticado computador program´avel/gr´ afico. Antes de se iniciar a programa¸c˜ao de determinado problema ´e importante que se tenha bem claro em mente quais s˜ ao os dados de entrada e quais s˜ ao os dados de sa´ıda; por exemplo: ao quadr´ atica ax2 + bx + c = 0. 1o ) Resolver a equa¸c˜ √ −b ± b2 − 4ac x= 2a Temos:
a b c
r1 r2
REQ
Onde: − Dados de entrada: a, b e c. − Dados de sa´ıda: r1 e r2 (s˜ ao as ra´ızes).
− REQ: Vari´ avel que ir´ a armazenar o programa (e que ser´ a referenciada sempre que o programa for executado). 10
Observa¸ c˜ ao: o nome REQ ´e apenas um exemplo, o nome poderia ser um outro, a seu crit´erio. A bem da verdade existem algumas restri¸c˜oes na escolha do nome de uma vari´ avel. O modo mais pr´ atico ´e tentar um nome, caso a calculadora reclame (erro) mude-o. 2o ) Calcular o n−´esimo termo de uma progress˜ao aritm´etica: an = a1 + (n − 1)r Temos a1 r n
an
PA
Onde: − Dados de entrada: O primeiro termo a1 ; a raz˜ ao r da P.A. e a posi¸c˜ao n do termo que desejamos encontrar. − Dados de sa´ıda: O n−´esimo termo an .
− PA: Vari´ avel que ir´ a armazenar o programa (e que ser´ a referenciada sempre que o programa for executado). ormula para a soma dos n primeiros termos de uma pro3o ) Obter uma f´ gress˜ao aritm´etica: n(n − 1) r S n = n a1 + 2 Temos a1 FSPA
S(n) = n a1 +
r
n(n−1) r 2
Onde: − Dados de entrada: O primeiro termo a1 e a raz˜ ao r da P.A.. − Dados de sa´ıda: A fun¸c˜ ao soma dos termos, S(n).
− FSPA: Vari´ avel que ir´ a armazenar o programa (e que ser´ a referenciada sempre que o programa for executado).
11
Nosso primeiro programa Inicialmente vamos fazer um programa para calcular as ra´ızes de uma equa¸c˜ ao do 2 o grau √ √ −b − b2 − 4 a c −b + b2 − 4 a c e r2 = r1 = 2a 2a Entre na ´ area de programa¸c˜ao digitando as teclas
A calculadora exibir´ a a seguinte tela (esquerda):
↑ Estamos no Cat´ alogo de programas. Pressione a tecla virtual New, para um novo programa. A tela do centro ser´ a exibida. Escolha um nome para o programa − No caso escolhemos o nome REQ (Resolu¸c˜ao Equa¸c˜ao Quadr´atica). Pressione OK, a tela da direita ser´ a exibida. ao marcamos a caixa CAS. Nota: Na programa¸c˜ ao num´erica n˜ Pressionando OK novamente, a seguinte tela ser´ a exibida ↓Aqui
EXPORT (exportar), a vari´ avel (programa) que estamos criando na Vista de In´ıcio ´e automaticamente definida como uma vari´ avel global (ver p. seguinte). Dentro dos parenteses digite os dados de entrada do programa, separados por v´ırgula − como na tela do centro. Pois bem, ap´ os digite a primeira raiz, como na tela da direita. 12
Adendo: Declaramos as vari´ aveis r1 e r2 como sendo locais, s˜ ao vari´ aveis utilizadas exclusivamente numa determinada fun¸c˜ao. A utiliza¸c˜ao de vari´ aveis locais permite-lhe declarar e utilizar vari´ aveis que n˜ ao ir˜ ao afetar o resto da calculadora. Ao contr´ ario, uma vari´ avel dita global, ´e globalmente vis´ıvel − vis´ıvel onde quer que se esteja na calculadora. O comando
:=
´e de atribui¸ c˜ ao. Atribui um valor a uma vari´ avel. Ademais, existe uma outra forma de se armazenar (Sto) um valor em uma vari´ avel, por exemplo, 3 ◮ a. A sintaxe ´e Value◮Var; ou seja, o valor `a esquerda ´e armazenado na vari´ avel `a direita. Este operador pode ser acessado na tecla
As linhas em um programa na HP Prime s˜ ao separadas por ponto e v´ırgula; ou ainda, ao t´ermino de uma instru¸c˜ao, e ao iniciar a digita¸c˜ao da seguinte, separe-as por ; Por oportuno, vamos copiar o que j´a foi digitado na tela a seguir
r1 =
−b +
r2 =
−b −
√
b2 − 4 a c 2a
√
b2 − 4 a c 2a
para digitar a segunda raiz. Posicione o cursor no in´ıcio da linha a ser copiada, assim:
7→
ap´ os digite a sequˆencia de teclas do centro, acima. A tela da direita ser´ a exibida.
13
Posicione o cursor no final da linha a ser copiada, assim:
↑
↑
Ao clicar na tecla virtual End a linha a ser copiada ´e marcada, como na tela do centro. Ap´os clique na tecla virtual Copy. Na tela da direita j´a posicionamos o cursor onde a linha ser´ a copiada, fa¸ca isto. Pois bem, estando na tela a seguir
↑ digite a sequˆencia de teclas do centro (Colar). A tela da direita ser´ a exibida, com a linha a ser copiada marcada. Ap´os clique na tecla virtual Ok, a tela a seguir ser´ a exibida
↑
Fa¸ca as altera¸c˜ oes constantes na tela do centro. Ap´os concluir a digita¸c˜ao clique na tecla virtual Check para verificar se h´ a algum erro de sintaxe. para retornar ao cat´alogo de programas, Pressione em seguida OK e onde consta o programa que acabamos de construir.
14
1.1.2
Como executar um programa
Temos mais de uma alternativa para executar um programa, iremos apresentar apenas a que utilizaremos at´e o final deste livro. Executaremos o programa diretamente da vista de in´ıcio, primando a tecla
estamos na vista de in´ıcio, tela do centro. Nota: quando eu esque¸co o nome do programa, os dados de entrada e a ordem destes dados, costumo tirar um print da tela, como na tela da direita acima. Pois bem, vamos executar o programa para a seguinte equa¸c˜ ao do 2 o grau x2 − 7 x + 10 = 0 Digite na linha de entrada o nome do programa e, entre parenteses, os dados requeridos pelo programa − observe a ordem −, como na tela a seguir
7−→ Ap´os, pressione e teremos a tela da direita, com o resultado desejado. A seguir fazemos mais uma simula¸c˜ao x2 + 1 = 0 a = 1, b = 0, c = 1 ∆ = b2 − 4 a c
←−
∆ = −4 < 0 Observe a configura¸c˜ ao na Vista de In´ıcio, tela `a direita. 15
Vejamos mais um exemplo de programa¸c˜ao num´erica. Vamos fazer um programa para calcular o n-´esimo termo de uma progress˜ ao aritm´etica, a partir da f´ormula do termo geral an = a1 + (n − 1) r Entre novamente na ´ area de programa¸c˜ao
↑ Pedindo um novo programa, agora escolhemos o nome PA. Ap´os pressionar OK estamos na tela a seguir
completamos como na tela do centro. Na tela da direita executamos o programa − a partir da vista de in´ıcio −, para a progress˜ao aritm´etica a seguir 1
3
5
7
9
11
13 |{z}
15
17
...
n=7
Confira na f´ormula an = a1 + (n − 1) r
a7 = 1 + (7 − 1) · 2 = 13 Como nosso u ´ ltimo exemplo de programa¸c˜ao num´erica, vamos programar a f´ormula n(n − 1) r S n = n a1 + 2 da soma dos n primeiros termos de uma P.A.
16
Entre novamente na ´ area de programa¸c˜ao
↑ Vamos fazer diferente, ao inv´es de pedir um novo programa, vamos pegar um “atalho”, salvaremos o programa anterior (PA) com um novo nome. Clicando na tecla virtual assinalada (More) temos a tela da direita. Clicando em Save estaremos na tela a seguir, onde salvamos o programa PA com o novo nome de STPA
Ao clicar OK estaremos na tela do centro. Fazemos as altera¸c˜oes conforme tela da direita. Na tela a seguir executamos o programa para a mesma P.A. do exemplo anterior.
Sn = n a1 +
n(n−1) r 2
S6 = 6 · 1 +
6 (6−1)·2 2
= 36
Portanto, a soma dos seis primeiros termos da P.A. ´e 36, confira 1|
3
5
{z 7
S6 = 36
9
11} 17
13
15
17
...
As duas f´ormulas seguintes s˜ ao bastante u ´ teis em An´alise Real. Exemplo: O maior de dois n´ umeros. A seguinte f´ormula matem´ atica max{ a, b } =
a + b + |a − b| 2
nos fornece o maior de dois n´ umeros. Por exemplo max{ 2, 5 } =
2 + 5 + |2 − 5| =5 2
Exemplo: O menor de dois n´ umeros. A seguinte f´ormula matem´ atica min{ a, b } =
a + b − |a − b| 2
nos fornece o menor de dois n´ umeros. Por exemplo min{ −1, 0 } =
−1 + 0 − | − 1 − 0| = −1 2
Nas duas primeiras telas a seguir programamos estas f´ormulas
Na tela da direita temos algumas simula¸c˜oes (exemplos). ∗
∗
Algumas fun¸c˜ oes para n´ umeros reais
18
∗ (p. 38)
Adendo Para mais detalhes sobre algumas fun¸c˜oes para n´ umeros proceda assim: assinale a fun¸c˜ ao desejada − por exemplo, Floor (ch~ ao, piso):
Ap´os assinalar a fun¸c˜ ao de interesse pressione a tecla Help, na tela do centro temos uma explana¸c˜ ao e exemplos da fun¸c˜ao. Se necess´ario configure sua calculadora no idioma portuguˆes. Vejamos mais um exemplo, desta vez no menu Aritm´ etica:
↑
Ademais, pe¸ca para ver a outra p´ agina do menu, como indicado pela seta. Por oportuno, a tela a seguir mostra como podemos acessar v´arios caracteres u ´ teis
Por exemplo, na tela do centro assinalamos o cavalo do xadrez, ap´ os pressionar OK o caracter aparece na linha de entrada, e pode ser manipulado como uma vari´ avel (apenas na Vista do CAS, como veremos logo mais). 19
1.1.3
Programa¸c˜ ao alg´ ebrica
Na programa¸c˜ ao alg´ebrica, que ser´ a bastante utilizada ao longo de todo este livro, al´em de n´ umeros podemos ter f´ormulas na sa´ıda de um programa. Estes programas pertencem `a vista do CAS − Computer Algebra System ´ (Sistema de Algebra Computacional).
Modo CAS Aproximado e Exato No modo CAS existe uma importante configura¸c˜ao, acesse assim
←− Ademais, pe¸ca isto
Aqui
Se Exact estiver marcado as opera¸c˜oes simb´ olicas ser˜ ao calculadas como express˜ oes alg´ebricas, caso contr´ ario como num´ericas. Ou ainda, com Exact ativo (marcado) as constantes ser˜ ao tratadas simbolicamente, caso contr´ ario, numericamente (i.e., aproximadas por seus valores num´ericos). Por exemplo, na tela a seguir
entramos com as respectivas constantes com Exact ativo, na tela do centro desativamos Exact e entramos novamente com as mesmas constantes. Pois bem, vamos iniciar a programa¸c˜ao alg´ebrica por um programa bem simples. Antes, volte a tivar Exact.
20
Nosso primeiro programa alg´ ebrico Como motiva¸c˜ ao para o nosso primeiro programa alg´ebrico reconsidere o programa REQ visto na p´ agina 15, o qual resolve a equa¸c˜ao a x2 + b x + c = 0. Nas duas telas a seguir resolvemos duas equa¸c˜oes quadr´ aticas
x2 − x −
3 4
x2 − 2 = 0
=0
Gostariamos que no primeiro caso o programa nos devolvesse as ra´ızes na forma de fra¸c˜ ao e, na tela da direita, o valor exato, e n˜ ao aproximado. Esta ´e uma tarefa para a programa¸c˜ao alg´ebrica. Entre na ´ area de programa¸c˜ ao digitando as teclas ladora exibir´ a a seguinte tela
, a calcu-
pressione a tecla virtual New, para um novo programa. Na tela do centro nomeamos nosso novo programa, REQ E, e marcamos a caixa CAS; ap´ os pressionar OK teremos a tela direita. O programa ´e como na tela a seguir ւ
Este programa ser´ a executado a partir da Vista do CAS. Pressione a tecla . Na tela do centro resolvemos as duas equa¸c˜oes do in´ıcio desta p´ agina. Na tela da direita, acima, mostramos como acessar alguns caracteres u ´ teis, incluindo algumas letras gregas. 21
Exemplo: Considere a f´ormula do termo geral de uma P.A.:
an = a1 + (n − 1) r Faremos um programa onde entraremos com o primeiro termo a1 e a raz˜ ao r e na sa´ıda teremos a f´ormula do termo geral − e n˜ ao um termo em particular, como anteriormente. O programa ´e como na tela a seguir 7→
Na tela da direita executamos o programa para a seguinte progress˜ao aritm´etica 1
3
5
7
9
11
13
15
17
...
onde, a1 = 1 e r = 2. Confira an = a1 + (n − 1) r an = 1 + (n − 1) · 2 = 2 n − 1 Nota: Caso seu programa n˜ ao tenha saido com o resultado desejado ´e poss´ıvel que tenha algum valor previamente armazenado na vari´ avel n; por exemplo, na tela a seguir armazenamos 2 nesta vari´ avel
→
→
ao executar novamente o programa obtivemos um n´ umero e n˜ ao uma express˜ ao alg´ebrica. Para saber se existe um valor armazenado em uma vari´ avel basta digit´ a-la na linha de entrada e d´ a Enter, como na tela da direita (no caso da vari´ avel ser n, evidentemente). Caso exista algum n´ umero armazenado na vari´ avel este ser´ a mostrado. Na p´ agina seguinte mostramos como resolver este − eventual − problema. 22
Como resetar uma vari´ avel
Adendo: avel CAS, acesse a mem´ oria da calculaPara resetar (deletar) uma vari´ dora a partir das teclas:
Em seguida selecione CAS Vars
7−→
7−→
7−→
pe¸ca para ver as vari´ aveis do CAS; selecione a que deseja deletar, clique na tecla virtual Delete.
A bem da verdade, existe um m´etodo alternativo para se resetar algumas vari´ aveis: Escreva o comando purge com a vari´ avel entre parenteses. Por exemplo, na tela a seguir
armazenamos um valor na vari´ avel n, para deletar este valor escreva na linha de entrada como na tela do centro. Ao d´ a Enter, na tela da direita a calculadora mostra o valor que se encontrava armazenado na vari´ avel n, esta encontra-se agora resetada. Por exemplo, ao digitar n na linha de entrada e d´ a Enter esta aparecer´a “limpa”. Podemos resetar v´arias vari´ aveis simultaneamente, separe-as por v´ırgula no comando purge. 23
Exemplo: Vamos ver mais um exemplo de programa¸c˜ao alg´ebrica. A partir da f´ormula n(n − 1) r S n = n a1 + (1.1) 2 da soma dos n primeiros termos de uma P.A. vamos elaborar um programa que sair´ a com esta f´ormula para uma dada P.A.. Entre novamente na a´rea de programa¸c˜ao
Pressionando New escolhemos o nome FSPA, digitamos como na tela da direita. Ap´os Check, o programa n˜ ao cont´em erros. Vamos execut´a-lo, a partir da vista do CAS, para a P.A. 1
3
5
7
9
11
13
15
17
...
onde, a1 = 1 e r = 2. Pressione a tecla
→ na linha de entrada digite o nome do programa e, entre parenteses, os dados e teremos a tela da requeridos pelo programa. Ap´os, pressione direita (acima). Da tela ` a direita temos que Sn = n2 ´e a f´ormula para a soma dos n primeiros termos da P.A. do exemplo dado. Vamos confirmar a sa´ıda do programa, a partir da f´ormula (1.1) Sn = n · 1 +
n(n − 1) 2 = n2 2 24
1.2
Express˜ oes e Fun¸ c˜ oes
Na HP Prime existe uma importante distin¸c˜ao a ser feita: express˜ ao e fun¸ c˜ ao. Para os exemplos seguintes antes execute purge(x, y). Na tela a seguir criamos uma express˜ ao e mostramos como avali´a-la para um dado valor da vari´ avel
Na tela do centro criamos uma express˜ ao de duas vari´ aveis e a avaliamos para x = 1 e y = −1. O comando subst substitui uma vari´ avel (ou mais) em uma express˜ ao por um dado valor. Na tela da direita mostramos outra alternativa para se avaliar uma express˜ ao: atribua antes os valores das vari´ aveis, depois entre com a express˜ ao. Uma fun¸ c˜ ao para a HP Prime possui um ou mais argumentos entre parenteses, separados por v´ırgula. A tela a seguir mostra como definimos a fun¸c˜ao f (x) = x2 + 2 x + 1
Ap´os Enter teremos a tela do centro; `a direita avaliamos esta fun¸c˜ao para x = 1. A prop´osito, um programa ´e visto como sendo uma fun¸c˜ao. A seguir definimos a fun¸c˜ ao de duas vari´ aveis f (x, y) = 2 x3 + 4 y − 1
Ap´os Enter teremos a tela do centro; `a direita avaliamos esta fun¸c˜ao para x = 1 e y = −1. 25
Um pequeno interregno cultural Pergunte ao seu professor de matem´ atica quanto vale “o quadrado de uma torre do xadrez mais trˆes vezes um telefone adicionados `a raiz quadrada da torre dividida pelo telefone”. − quanto vale esta singela opera¸c˜ao? Se por acaso ele n˜ ao souber a HP Prime sabe; sen˜ ao vejamos, inicialmente definimos a seguinte fun¸c˜ao de duas vari´ aveis
ao d´ a Enter teremos a tela do centro, acima. Na tela da direita temos uma das (infinitas) respostas poss´ıveis para o desafio proposto!
. . . e George Boole tinha toda raz˜ ao “Mais importante at´e que sua l´ogica matem´ atica era a concep¸c˜ao que Boole tinha da pr´ opria matem´ atica. Na Introdu¸c˜ao a sua An´ alise Matem´ atica da L´ ogica o autor faz obje¸c˜oes `a concep¸c˜ao ent˜ao corrente da matem´ atica como ciˆencia da grandeza e do n´ umero (defini¸c˜ao ainda adotada em alguns dicion´ arios inferiores). Defendendo uma vis˜ao mais ampla, Boole escrevia: Poder´ıamos com justi¸ca tomar como caracter´ıstica definitiva de um verdadeiro C´ alculo, que ´e um m´etodo que se ap´ oia no uso de S´ımbolos, cujas leis de combina¸ca ˜o s˜ ao conhecidas e gerais, e cujos resultados ad´ com base nesse princ´ıpio geral mitem uma interpreta¸ca ˜o consistente . . . E que eu pretendo estabelecer o C´ alculo da L´ ogica, e que reinvindico para ele um lugar entre as formas reconhecidas da An´ alise Matem´ atica. ´ A Algebra de Peacock de 1830 tinha sugerido que os s´ımbolos para objetos na ´ algebra n˜ ao precisam indicar n´ umeros, e De Morgan arg¨ uia que as interpreta¸c˜ oes dos s´ımbolos para opera¸c˜oes eram tamb´em arbitr´arias; Boole levou o formalismo ` a sua conclus˜ao. A matem´ atica j´a n˜ ao estava limitada a quest˜ oes de n´ umero e grandeza cont´ınua. Aqui pela primeira vez est´ a claramente expressa a id´eia de que a caracter´ıstica essencial da matem´ atica ´e n˜ ao tanto seu conte´ udo quanto sua forma. Se qualquer t´opico ´e apresentado de tal modo que consiste de s´ımbolos e regras precisas de opera¸c˜ao sobre esses s´ımbolos, sujeitas apenas `a exigˆencia de consistˆencia interna, tal t´opico ´e parte da matem´ atica.” (Carl B. Boyer/Hist´ oria da Matem´ atica)
26
Adendo Matem´ atica: Esta “ciˆencia vazia” que − espantosamente − se aplica a todas as contingˆencias fenomenol´ ogicas, apesar de ser um puro formalismo reflexivo. O objetivo deste adendo ´e exemplificar o sentido da seguinte afirma¸c˜ao: ´ “A Algebra de Peacock de 1830 tinha sugerido que os s´ımbolos para objetos na ´ algebra n˜ ao precisam indicar n´ umeros, e De Morgan arg¨ uia que as interpreta¸c˜ oes dos s´ımbolos para opera¸c˜oes eram tamb´em arbitr´arias.” Com efeito, consideremos a seguinte express˜ ao simb´ olica: “Uma torre mais duas vezes um cavalo menos trˆes vezes uma tesoura” como vemos em destaque na tela a seguir
Esta express˜ ao, por si s´ o, n˜ ao faz o menor sentido, ou ainda, ´e vazia de significado e, por isto mesmo, ela ´e potencialmente infinita, isto ´e, pode comportar infinitas interpreta¸c˜ oes. Por exemplo na tela da direita atribuimos o n´ umero 4 ` a torre, o n´ umero 5 ao cavalo e o n´ umero 8 `a tesoura; nestas condi¸c˜oes a express˜ ao torna-se igual ao n´ umero −10.
Mas podemos fazer diferente, vamos atribuir matrizes a estes trˆes objetos, como na tela a seguir
as opera¸c˜ oes agora tamb´em s˜ ao diferentes, o resultado ´e uma matriz. Vejamos ainda uma terceira alternativa; na tela da direita os objetos agora s˜ ao polinˆ omios, de igual modo, agora as opera¸c˜oes s˜ ao entre polinˆ omios, o resultado da express˜ ao ´e um polinˆ omio. Em resumo: somos n´ os mesmos que escolhemos o que a express˜ ao deve significar; podemos generalizar e afirmar: “assim se d´ a com os infinitos significados que atribuimos ao mundo”. 27
Da natureza da matem´ atica “A caracter´ıstica essencial da matem´ atica ´e n˜ ao tanto seu conte´ udo quanto sua forma. Se qualquer t´ opico ´e apresentado de tal modo que consiste de s´ımbolos e regras precisas de opera¸ca ˜o sobre esses s´ımbolos, sujeitas apenas ` a exigˆencia de consistˆencia interna, tal t´ opico ´e parte da matem´ atica.” (Carl B. Boyer/Hist´ oria da Matem´ atica) Por exemplo, na tela a seguir consideramos um conjunto G com quatro s´ımbolos arbitr´arios
Na tela do centro escolhemos um s´ımbolo − tamb´em arbitr´ario − para uma opera¸c˜ ao que denominaremos de “multiplica¸c˜ao”. Na tela da direita temos como definimos a t´abua de multiplica¸c˜ao. Na tela a seguir mostramos o produto da estrela multiplicada pela tesoura
Esta opera¸c˜ ao possui elemento neutro, a torre. Cada elemento possui um inverso multiplicativo, por exemplo, o inverso da estrela ´e a tesoura. Ademais, a nossa multiplica¸c˜ao ´e associativa, veja um exemplo:
Isto e ´ matem´ atica! (G, ⋆) = grupo
28
Progress˜ ao aritm´ etica peri´ odica Nosso objetivo agora ´e mostrar que ´e mais pr´ atico − do ponto de vista c˜ ao, ao inv´es de uma express˜ ao. operacional − sair com uma fun¸
O que estamos chamando de uma progress˜ao aritm´etica peri´odica (PAP) ´e uma sequˆencia do tipo: a1
a2
a1 + r
a2 + r
a1 + 2r
a2 + 2r
a1 + 3r
a2 + 3r
...
onde s˜ ao dados a1 , a2 e r. A f´ormula do termo geral destas sequˆencias ´e a1 + n−1 ımpar; 2 r, n ´ an = a2 + n−2 2 r, n par. Se quisermos a equa¸c˜ ao acima em apenas uma senten¸ca fica assim:
an =
1 − (−1)n 1 + (−1)n 2n − 3 − (−1)n a1 + a2 + r 2 2 4
Exemplo: Encontre uma f´ormula para o n-´esimo termo da sequˆencia 3
3
6
6
9
9
12
12
15
15
...
Solu¸ c˜ ao: Trata-se de uma PAP na qual a1 = a2 = 3 e r = 3. Substituindo estes valores na equa¸c˜ ao acima temos an =
1 + (−1)n 2n − 3 − (−1)n 1 − (−1)n ·3+ ·3+ ·3 2 2 4
simplificando 3 2n − (−1)n + 1 (1.2) an = 4 Na tela a seguir programamos a f´ormula do termo geral de uma PAP
←− na tela do centro resolvemos o exemplo dado, ou seja, entrando com a1 = a2 = r = 3 a calculadora nos devolve a f´ormula do termo geral da respectiva PAP.
29
Na tela a seguir calculamos esta fun¸ c˜ ao para quatro valores de n
Confira na sequˆencia 3
3
6
6
9
9
12
12
15
15
...
Mais uma vez observe que n˜ ao precisamos “tomar nota da f´ormula”. Exemplo: Encontre uma f´ormula para o n-´esimo termo da sequˆencia −1
2
2
−1
2
−1
2
−1
...
Solu¸ c˜ ao: Trata-se de uma PAP na qual a1 = 2, a2 = −1 e r = 0. Substituindo estes valores no programa temos
a(n) =
1 − 3 · (−1)n 2
Na tela da direita calculamos an para quatro valores de n. A f´ormula para a soma dos termos de uma PAP ´e esta
Sn =
2 n − (−1)n + 1 2 n + (−1)n − 1 2 n2 − 4 n − (−1)n + 1 a + a + r 1 2 22 22 23
30
Na tela a seguir programamos esta f´ormula
na tela da direita executamos o programa para a seguinte PAP 3
3
6
6
9
9
12
12
15
15
...
Em seguida observei que o resultado n˜ ao estava de acordo com o esperado. No programa existe um erro; neste caso ´e f´acil detect´ a-lo, no entanto decidi deixar assim mesmo para ter a oportunidade de ensinar uma alternativa para se detectar um erro no caso de uma eventual express˜ ao alg´ebrica mais complicada. Pois bem, copie (Copy) toda a express˜ ao, como na tela a seguir
ap´ os, no CAS Settings pe¸ca nenhuma simplifica¸c˜ao, ap´ os v´a para a Vista do CAS e cole (Paste) na linha de entrada a express˜ ao copiada, como na tela da direita, acima. Ap´os Enter estaremos na tela a seguir
Clique na primeira express˜ ao e pe¸ca para ver (Show); comparando com a f´ormula original Sn =
2 n + (−1)n − 1 2 n2 − 4 n − (−1)n + 1 2 n − (−1)n + 1 a + a + r 1 2 22 22 23 31
nos damos conta de que o erro encontra-se na terceira parcela
aqui
corrigimos conforme tela do centro. Voltando a configura¸ca˜o do CAS para simplifica¸c˜ ao m´ axima, executando novamente o programa obtivemos a tela da direita, acima. Na tela a seguir calculamos a fun¸c˜ao de saida para dois valores de n
S(n) =
6 n2 + 12 n − 3 (−1)n + 3 8
Confira:
e
3 |
3 {z 6
6}
9
9
12
12
15
15
...
S(4)=18
3 |
3
6
{z 9
9
12
12}
15
15
...
6
S(8)=60
32
Exemplo: Quantos termos devem ser somados, a partir do primeiro termo, na seguinte PAP para que a soma seja 15? 2
−1
−1
2
−1
2
−1
2
...
Na tela a seguir encontramos a f´ormula para a soma dos termos desta sequˆencia
S(n) =
2 n − 3 (−1)n + 3 = 15 4
Por enquanto, deixamos este problema como exerc´ıcio ao leitor, oportunamente vamos ver como resolver equa¸c˜oes como esta pela HP Prime .
Desafio: Por oportuno, vamos deixar um outro desafio ao leitor: Considere novamente a sequˆencia 3
3
6
6
9
9
12
12
15
15
...
queremos, por exemplo, encontrar a posi¸c˜ao ocupada pelo termo 12 nesta sequˆencia. Considerando a f´ormula (1.2) deduzida anteriormente (p. 29), resolva a seguinte equa¸c˜ ao 6 n − 3 (−1)n + 3 = 12 4 Claro, por simples inspe¸c˜ ao o conjunto solu¸c˜ao desta equa¸c˜ao ´e { 7, 8 }; mas, e se pedirmos, por exemplo, a posi¸c˜ao de um outro termo?. Digo, se j´a estiver ao seu alcance fa¸ca um programa que recebe um termo e se caso o termo esteja na sequˆencia o programa sai com a sua posi¸c˜ao, caso contr´ ario ele diz que o termo n˜ ao encontra-se na sequˆencia. Um outro desafio ´e: com respeito a sequˆencia 2
−1
2
−1
2
−1
2
−1
...
fa¸ca um programa que recebe um dado valor da soma (dos termos desta sequˆencia) e o programa nos devolve n, isto ´e, quantos termos devem ser somados para que se obtenha a soma dada; caso exista solu¸c˜ao, se n˜ ao o programa deve avisar que um tal valor da soma ´e “esp´ urio”.
33
1.3
Listas e Matrizes
Com o objetivo de aumentar ainda mais nosso poder (potˆencia) de programa¸c˜ ao ´e que incluimos nesta sec¸c˜ao dois importantes recursos para programa¸c˜ ao: listas e matrizes.
1.3.1
Listas
Uma lista ´e constituida de objetos (n´ umeros, letras, matrizes, etc.) entre chaves e separados por v´ırgula. Uma lista ´e o que comumente conhecemos por conjunto, na matem´ atica. Exemplo de lista: { 1, 5, a, { b, c } } Lista ´e um recurso muito importante para manipula¸c˜ao de objetos. Criando listas As listas podem ser criadas a partir da linha de entrada, veja:
Nota: Antes de digitar a lista: purge(a,b,c)
Ap´os, pressione
para obter a tela da direita.
Importante: Estamos na vista do CAS; para que a letra a, por exemplo, apare¸ca como elemento da lista nesta letra n˜ ao deve constar nenhum valor previamente armazenado, deve estar resetada. Veja adendo, p´ agina 23. A mesma observa¸c˜ ao vale para as demais letras, obviamente. As listas podem ser armazenadas (guardadas) em uma vari´ avel. Por exemplo, escreva L1:= na linha de entrada, clique sobre a lista, como na tela a seguir
agora clique em Copy para obter uma c´opia; ap´ os Enter teremos a tela da direita, agora a lista encontra-se armazenada na vari´ avel L1. 34
Acessando os elementos de uma lista Podemos ter acesso aos elementos de uma lista digitando o nome da lista e a posi¸c˜ ao do elemento entre parenteses. Por exemplo, considere a lista anterior (tela esquerda a seguir)
na tela da direita acessamos cada um dos elementos da lista.
Pedindo o comprimento e a dimens˜ ao de uma lista Existem dois comandos, SIZE e DIM, que nos d˜ ao o comprimento e a dimens˜ao de uma lista, respectivamente. Por exemplo, na tela a seguir criamos uma lista e a guardamos na vari´ avel L2
na tela do centro pedimos o comprimento da lista (n´ umero de elementos, como na matem´ atica) e na tela da direita sua dimens˜ao. Nas telas a seguir
mostramos como acessar os dados desta lista. 35
1.3.2
O comando MAKELIST
Um importante comando em programa¸c˜ao ´e MAKELIST, cuja sintaxe ´e vista a seguir MAKELIST (express˜ ao, vari´ avel, inicio, fim, incremento) Cria uma lista a partir da express˜ ao `a medida que a vari´ avel assume valores do in´ıcio ao fim, tendo em conta o incremento. Exemplo: Nas telas a seguir vemos trˆes exemplos
Nota: Na vista do CAS digite o comando MAKELIST − na linha de entrada − em letras mai´ usculas, caso contr´ ario pode dar problemas. Parti¸ c˜ ao de um intervalo Para obter uma parti¸c˜ao (regular) do intervalo num´erico [ a, b ] em N subintervalos de mesmo comprimento h, fazemos h = b−a N , no que resulta xn = x0 + n h,
[ a = x0
x1 h
x2
n = 0, 1, 2, . . . , N.
...
xn−1
h
] xn = b
x
h
Por exemplo, para x ∈ [ a, b ] = [ 0, 1 ] e N = 4 subintervalos, temos h=
1−0 1 b−a = = = 0. 25 N 4 4
A discretiza¸c˜ ao do intevalo fica: p x0 = 0
p x1 =
(n = 0, 1, 2, 3, 4)
p 1 4
x2 =
p 1 2
36
x3 =
p 3 4
x4 = 1
x
Utilizando o comando MAKELIST vamos elaborar um programa que recebe a, b e N , e sai com uma lista contendo a parti¸c˜ao do intervalo [ a, b ]. O programa ´e como a seguir
Na tela da direita temos uma simula¸c˜ao, confira geometricamente p
p
x0 = 0
x1 =
p 1 4
x2 =
p 1 2
x3 =
x
p 3 4
x4 = 1
Amostragem de uma fun¸ c˜ ao nos pontos de uma parti¸c˜ ao y
f yn
p
s
.. . y1
p
s
p
y0
0
s
p x0 = a
p x1
p
···
x2
p
x
xn = b
O programa a seguir usa o comando MAKELIST para amostrar uma fun¸c˜ao nos pontos de uma parti¸c˜ ao do intervalo [ a, b ] 2
1
−1
0
1
Na tela do centro amostramos a fun¸c˜ao f (x) = x2 + 1 no intervalo [ 0, 1 ], com h = (1 − 0)/4 = 0.25. 37
O menu Math/List Menus Toolbox Os menus Toolbox ( ) (Caixa de ferramentas) s˜ ao uma cole¸c˜ ao de menus que oferecem fun¸c˜oes e comandos u ´ teis em matem´ atica e programa¸c˜ ao. Na figura a seguir vemos os menus
→ De momento o que nos interessa ´e o (sub)menu List, para isto prima a tecla “caixa de ferramentas”. Digite a tecla virtual assinalada acima (Math). Em seguida des¸ca at´e o item 6 (List), como na tela a seguir
Selecionando este item comparecem v´arios comandos para se operar com listas, veja tela da direita. Os menus Matem´atica, CAS e Cat´ alogo (Catlg) oferecem mais de 400 fun¸c˜ oes e comandos. ∗
∗
38
∗
Nas telas a seguir, temos algumas simula¸c˜oes
MAKELIST gera uma lista, como j´a vimos; SORT classifica os elementos de uma lista na ordem crescente; REVERSE reverte a ordem da lista; CONCAT concatena duas listas; POS nos d´ a a posi¸c˜ao de um elemento que est´ a numa lista. Na tela a seguir
SIZE nos d´ a o comprimento de uma lista, como j´a vimos; ∆LIST cria uma nova lista composta pelas primeiras diferen¸cas de uma lista; isto ´e, as diferen¸cas entre elementos consecutivos na lista. A nova lista tem um elemento P a menos queQa lista original; LIST calcula a soma de todos os elementos numa lista; LIST calcula o produto de todos os elementos numa lista. Na tela da direita DIFFERENCE apresenta a lista de elementos n˜ ao comuns de duas listas; UNION apresenta a uni˜ ao das listas como um vetor; INTERSECT apresenta a intersec¸c˜ ao de duas listas como um vetor∗ . Observei que ), a uni˜ ao e a intersec¸c˜ao de duas listas ´e uma lista, na vista de in´ıcio, ( como deve ser. ∗ ∗ ∗
∗
Logo mais veremos o que ´e um vetor para a HP Prime .
39
Um Belo Desafio! − A quem interessar possa. Introdu¸ c˜ ao: 12
Considere a sequˆencia dos quadrados dos naturais
22
32
42
52
62
72
...
No diagrama a seguir 1
4
9
16
25
36
49
...
3
5
7
9
11
13
...
2
2
2
2
2
...
produzimos duas diferen¸ cas entre os termos da sequˆencia dos quadrados dos naturais. Considere a sequˆencia dos cubos dos n´ umeros naturais 13
23
33
43
53
63
73
...
No diagrama a seguir 1
8
27
64
125
216
343
7
19
37
61
91
127
...
12
18
24
30
36
...
6
6
6
6
...
...
es diferen¸ cas entre os termos da sequˆencia dos cubos dos produzimos trˆ n´ umeros naturais. A calculadora HP Prime possui uma fun¸c˜ao ∆List que produz a diferen¸ca entre os termos de uma lista
Desafio: Considere a sequˆencia dos naturais `a m-´esima potˆencia: 1m
2m
3m
4m
5m
6m
7m
...
prove que m diferen¸cas entre os termos desta sequˆencia resulta sempre numa constante igual a m! . Gentil, o iconoclasta gentil.iconoclasta@gmail.com
Boa vista-RR/06.08.2016
40
1.3.3
Matrizes
Uma das potˆencias da HP Prime ´e o trato com matrizes, tanto num´ericas quanto simb´ olicas. Por exemplo, veja
Podemos at´e multiplicar duas matrizes simb´ olicas, como aparece na tela da direita. Reiteramos: Estamos na vista do CAS; para que a letra a, por exemplo, apare¸ca como elemento da matriz nesta letra n˜ ao deve constar nenhum valor previamente armazenado, deve estar resetada. Veja adendo, p´ agina 23. Criando matrizes As matrizes podem ser criadas a partir da linha de entrada, veja como criamos as telas anteriores, respectivamente
Em cada caso ap´ os primar teremos as (respectivas) matrizes expostas no in´ıcio. Um computador foi apenas programado, ele n˜ ao sabe o que diz!
Assim acontece com muitos seres humanos! − foram apenas programados; seus discursos podem at´e envolver alguma “l´ogica”, mas no final n˜ ao significam nada!. Eva mordeu uma ma¸c˜a . . . por isso toda a humanidade se ferrou! Este discurso n˜ ao faz mais sentido que a opera¸c˜ao . . . pasm´em!.
41
Da mesma forma que fizemos com as listas, podemos guardar uma matriz em uma vari´ avel. Por exemplo, considere a matriz na tela esquerda a seguir
escreva o nome da matriz na linha de entrada e clique na matriz (tela do centro), pe¸ca uma c´ opia (Copy), ap´ os Enter teremos a tela da direita, com a matriz j´a armazenada na vari´ avel MT1.
Acessando os elementos de uma matriz Podemos ter acesso aos elementos de uma matriz digitando o nome da matriz e a posi¸c˜ ao do elemento entre parenteses − exatamente como na matem´ atica. Por exemplo, considere a matriz anterior, na tela a seguir pedimos alguns elementos
na tela do centro pedimos a soma dos elementos da segunda linha, na tela da direita pedimos o produto dos elementos da terceira coluna. ∗
∗
42
∗
C´ alculo de Matrizes com Elementos Alg´ ebricos Um estudante de engenharia civil (Liercio Feital) me escreveu com a seguinte d´ uvida∗ : Como fazer um programa para gerar matrizes tipo: # " 12E/L 10E/2L 8E/L
5E
“onde eu entraria com os valores E = 10 e L = 2, o programa mostraria a matriz resultante”: # " 60 25 40 50
Antes do programa vejamos como resolver este problema diretamente na vista do CAS, na tela a seguir
→ criamos uma vari´ avel − na verdade uma fun¸c˜ao − de dois parˆ ametros (E e teremos a tela da direita. MLF pode ser vista como uma L), ap´ os fun¸c˜ao de duas vari´ aveis. Na tela a seguir
fazemos uma simula¸c˜ ao, isto ´e, digitamos na linha de entrada MLF(10,2), teremos o resultado. Na tela da direita, temos o programa ap´ os equivalente. ∗
Ainda na HP 50g .
43
Pedindo as dimens˜ oes de uma matriz Um importante comando em programa¸c˜ao ´e DIM, que nos devolve o tamanho de uma matriz, na tela a seguir
temos uma matriz de ordem {2, 3}; na tela da direita armazenamos uma matriz na vari´ avel MTZ, depois pedimos a dimens˜ao da matriz.
1.3.4
O comando MAKEMAT
Um importante comando em programa¸c˜ao ´e MAKEMAT, cuja sintaxe ´e vista a seguir MAKEMAT (express˜ ao, linhas, colunas) Cria uma matriz com a dimens˜ao linhas × colunas, utilizando a express˜ ao para calcular cada elemento. Se a express˜ ao cont´em as vari´ aveis I e J, ent˜ao, o c´ alculo para cada elemento substitui o n´ umero de linha atual para I e o n´ umero da coluna atual para J. A seguir vemos dois exemplos
na tela da esquerda construimos uma matriz 2 × 2 com termo geral dado por aij = j − i2 ; na tela da direita construimos uma matriz 3 × 4 com termo geral dado por aij = i − 2 j. Devemos usar letras mai´ usculas na express˜ ao da matriz, o i min´ usculo ´e reservado para a unidade complexa. Nota: Na vista do CAS (a que estamos trabalhando) digite o comando − na linha de entrada − em letras mai´ usculas: MAKEMAT.
44
A prop´osito, vejamos um exemplo um pouco mais sofisticado. A matriz a seguir
aij = ( −1 )
i−1 j−1 2
serve para o c´ alculo de combina¸co˜es, como pode ser visto na referˆencia [6]. O s´ımbolo ⌊ x ⌋ representa a fun¸ca˜o m´ aximo inteiro (que n˜ ao supera x), ou fun¸c˜ao piso. Na HP Prime ´e denotada por FLOOR, na tela a seguir vemos alguns exemplos
Na tela da direita construimos a matriz aij , 4 × 2, dada pela equa¸c˜ao acima. Na tela a seguir usando a equa¸c˜ ao aij construimos uma fun¸c˜ao de duas vari´ aveis (programa): m, n´ umero de linhas e n, n´ umero de colunas.
Nas telas do centro e direita temos duas simula¸c˜oes. Observe que os programas na HP Prime resultam bastante compactos − simples, enxutos, est´eticos. Perguntamos se em outras linguagens de programa¸c˜ ao obter´ıamos este mesmo n´ıvel de simplifica¸c˜ao (?).
45
1.3.5
Comandos u ´ teis para matrizes
Veremos alguns comandos que podem ser u ´ teis no trato com matrizes. ADDCOL Sintaxe: ADDCOL(matrixname, vector, column number) Este comando insere os valores no vector numa nova coluna, inserida umero de valores no antes de column number na matriz especificada. O n´ vetor deve ser igual ao n´ umero de linhas na matriz. Exemplos
ADDROW Sintaxe: ADDROW(matrixname, vector, row number) Este comando insere os valores no vector numa nova linha, inserida antes de row number na matriz especificada. O n´ umero de valores no vetor deve ser igual ao n´ umero de colunas na matriz. Exemplos
DELCOL Sintaxe: DELCOL(name, column number) Elimina a coluna column number do nome da matriz. Exemplos
46
DELROW Sintaxe: DELROW(name, row number) Elimina a linha row number do nome da matriz. Exemplos
REDIM Sintaxe: REDIM(name, tamanho) Redimensiona a matriz (nome) ou vetor especificados de acordo com o tamanho. Para uma matriz, o tamanho ´e uma lista de dois n´ umeros inteiros { n1, n2 }. Para um vetor, o tamanho ´e um n´ umero inteiro n. Os valores existentes na matriz s˜ ao conservados. Os valores de preenchimento ser˜ ao 0.
SCALE Sintaxe: SCALE(name, value, row number) Multiplica a linha row number especificada da matriz especificada pelo value. Exemplos
47
SCALEADD Sintaxe: SCALEADD(name, value, row1, row2) Multiplica a row1 especificada da matriz (name) pelo value e, em seguida, adiciona este resultado `a segunda row2 especificada da matriz (name) e substitui row1 pelo resultado. Para exemplificar este comando iniciemos com a matriz 1 2 0 1 1 −1 1 4
2
A seguir aplicamos as seguintes opera¸c˜oes nas linhas desta matriz
1 2
0
1 1 −1 1 4 2
L2 −L1 L3 −L1
1
2
0
0 −1 −1 0 2 2
A sequˆencia na HP ´e como a seguir
48
L3 + 2L2
1
2
0
0 −1 −1 0 0 0
SUB Sintaxe: SUB(name1,name2, start, end) Extrai um sub-objeto − parte de uma lista, de uma matriz ou de um gr´ afico (name2) − e guarda-o em nome1. In´ıcio e fim s˜ ao, cada um, especificados atrav´es de uma lista com dois n´ umeros para uma matriz, um n´ umero para um vetor ou lista ou um par ordenado (X, Y ) para gr´ aficos. Exemplos
REPLACE Sintaxe: REPLACE(nome, in´ıcio, objeto) Substitui parte de uma matriz ou vetor guardados em nome por um objeto a partir da posi¸c˜ ao in´ıcio. In´ıcio para uma matriz ´e uma lista que cont´em dois n´ umeros. Para um vetor, ´e um u ´ nico n´ umero. REPLACE tamb´em funciona com listas, gr´ aficos e strings. Exemplos
Nota: O exemplo da tela da direita funcionou apenas na Vista de in´ıcio.
49
SWAPCOL Sintaxe: SWAPCOL(name, column1, column2) Troca a coluna1 e a coluna2 da matriz especificada (nome).
SWAPROW Sintaxe: SWAPROW(name, row1, row2) Troca a linha1 e a linha2 na matriz especificada (nome).
50
Vetores Vetor na HP Prime ´e uma matriz unidimensional (uma linha), por exemplo [ −1, 2, 5, 7 ]
´ importante fazer distin¸c˜ E ao entre um vetor e uma matriz de uma u ´ nica linha na hora de acessar um elemento. Por exemplo, na tela a seguir
criamos uma matriz unidimensional e um vetor, com os mesmos elementos. Na tela do centro tentamos acessar o quarto elemento da matriz com apenas um ´ındice, veja no que deu. Na tela da direita acessamos corretamente o quarto elemento da matriz; ademais, tentamos acessar o quarto elemento do vetor a partir de dois ´ındices, a calculadora n˜ ao reclamou (erro), no entanto, forneceu o valor errado!, em seguida acessamos corretamente o quarto elemento do vetor. ∗
∗
∗
Importante: H´a de se observar que um mesmo comando devolve objetos distintos, na vista de In´ıcio e na vista do CAS, por exemplo: m:=SIZE([2, 1, 1, −1, 3]) ⇒ m := { 5 }, Na vista de In´ıcio. m:=SIZE([2, 1, 1, −1, 3]) ⇒ m := 5,
Na vista do CAS.
Do ponto de vista cognitivo, a evolu¸ca ˜o tamb´em avan¸ca no chamamento ou na cria¸ca ˜o de “sentido”, de significa¸ca ˜o, ou, em outras palavras, de novos conceitos e novas formas de inteligibilidade. Criar, portanto, n˜ ao ´e apenas produzir novas formas, mas sobretudo criar compreens˜ ao e entendimento. Novas figuras mentais, conceituais; novas formas e maneiras de existir, de expressar-se, de perceber e perceber-se, de sentir e de sentir-se. (A Potˆencia do Nada, p. 178)
51
1.4
Somat´ orios e produt´ orios
Somat´ orios Um outro importante recurso para programa¸c˜ao ´e o somat´ orio. Acesse o somat´ orio primando a tecla
A sintaxe do somat´ orio ´e X (express˜ ao, vari´ avel, in´ıcio, fim)
Por exemplo, observe a equivalˆencia
X (express˜ ao, vari´ avel, in´ıcio, fim)
⇐⇒
5 X
k2
k=1
Ou ainda X (k ∧ 2, k, 1, 5) | {z }
⇐⇒
na HP Prime
5 X
k2
k=1
Por exemplo, digitando na linha de entrada
pressionando
teremos o resultado na tela da direita. Isto ´e 5 X
k2 = 12 + 22 + 32 + 42 + 52 = 55
k=1
52
Somat´ orio e resultados alg´ ebricos Nota: Para os exemplos que se seguem, certifique-se de que a vari´ avel n est´ a resetada − adendo, p. 23.
O somat´ orio produz at´e resultados alg´ebricos, digitando na linha de entrada k variando de 1 a n
pressionando
teremos o resultado na tela da direita. Portanto n X
k2 =
k=1
2n3 + 3n2 + n 6
Caso se queira o resultado fatorado, escreva factor() na linha de entrada, clique na express˜ ao e pe¸ca uma c´opia
pressionando
teremos o resultado na tela da direita. Portanto n X
k=1
k2 =
n (n + 1) (2 n + 1) 6
53
Podemos at´e criar fun¸c˜oes envolvendo somat´ orios; por exemplo, digitando na linha de entrada X f (m, n) := (k ∧ m, k, 1, n)
temos uma fun¸c˜ ao de duas vari´ aveis 1 |1
21
2 |1
22
31 {z 41 51 6 X f (1, 6)= k1 = 21 k=1
f (2, 5)=
3{z2 5 X
42 k2 = 55
k=1
5}2
61}
62
Na tela vemos duas simula¸c˜oes. Somat´ orio e s´ eries Podemos at´e somar algumas s´eries, por exemplo, considere a progress˜ao geom´etrica infinita 1 1 1 1 , , , , ... 2 4 8 16 na tela a seguir digitamos a soma dos termos desta P.G.
na tela do centro temos o resultado, portanto ∞
X 1 1 1 1 1 + + + + ... = = 1 2 4 8 16 2k k=1
54
Produt´ orios O produt´ orio ´e acessado de modo semelhante ao somat´ orio, ver tela na p´ agina 52; a sintaxe ´e a mesma. Aqui vamos t˜ ao somente ilustrar como podemos explorar a computa¸c˜ao alg´ebrica (CAS) para obter f´ormulas que n˜ ao encontram-se nos livros did´ aticos de matem´ atica. Por exemplo, os livros sobre progress˜ao aritm´etica n˜ ao trazem uma f´ormula para o produto dos seus termos. A partir da f´ormula do termo geral an = a1 + (n − 1) r vamos encontrar uma f´ormula para o produto dos n primeiros termos Pn = a1 · a2 · a3 · . . . · an =
n Y
k=1
ak =
n Y
k=1
a1 + (k − 1) r
Como dissemos nenhum autor de livro did´ atico nos apresenta uma tal f´ormula, a HP Prime poder´ a nos fornecer uma, veja como ´e f´acil: digitando como na tela da esquerda
←− dando Enter a f´ormula ´e como na tela do centro!. Nota: Reset todas as vari´ aveis envolvidas. Observe que podemos at´e nos d´ a ao luxo de n˜ ao anotar nada, para isto ˜o produto, Pt(a1 , r); assim, escreva na linha de entrada basta criar uma fun¸ca Pt(a1 , r) e clique sobre a express˜ ao, como na tela a seguir
pe¸ca uma c´ opia (Copy), ao d´ a Enter na tela da direita j´a temos a fun¸c˜ao!. Nota: Poderiamos ter criado uma fun¸c˜ao de trˆes vari´ aveis, incluindo n, preferimos assim para ilustrar como a partir desta f´ormula podemos deduzir v´arias outras como corol´ ario. 55
Exemplo: Encontre uma f´ormula para o produto a seguir 1 · 2 · 3 · ··· · n Solu¸ c˜ ao: Aqui temos o produto dos n primeiros termos da P.A. em que a1 = 1 e r = 1; substituindo na f´ormula Pt(a1 , r), resulta
1 · 2 · 3 · · · · · n = n!
Exemplo: Encontre uma f´ormula para o produto a seguir 2 · 4 · 6 · ... · 2n Solu¸ c˜ ao: Aqui temos o produto dos n primeiros termos da P.A. em que a1 = 2 e r = 2; substituindo na f´ormula Pt(a1 , r), resulta
2 · 4 · 6 · . . . · 2 n = 2n · n!
Exemplo: Encontre uma f´ormula para o produto dos n primeiros ´ımpares 1 · 3 · 5 · ... · 2n − 1 Solu¸ c˜ ao: Aqui temos o produto dos n primeiros termos da P.A. em que a1 = 1 e r = 2; substituindo na f´ormula Pt(a1 , r), resulta
Na tela do centro criamos uma nova fun¸c˜ao, FPI(n), na tela da direita fazemos alguns testes . . . tudo isto contribuindo para a preserva¸c˜ao do meio ambiente!, digo, sem usar um u ´ nico l´apis para anota¸c˜oes!. 56
A seguir reescrevemos a f´ormula para o produto dos termos de uma P.A. h a1 + (n − 1) r a1 − r i−1 n Pn = ! ·r !· r r Para o produto dos ´ımpares, temos 2n 2 n − 1 ! 1 · 3 · 5 · ... · 2n − 1 = √ 2 π Ao calcularmos, por exemplo, P (1) pela f´ormula acima, temos 2n 2 n − 1 P (n) = √ ! 2 π 2 1 21 2 · 1 − 1 != √ ! P (1) = √ 2 π π 2
A fun¸c˜ ao Gamma A fun¸c˜ ao gama − denotadad por Γ − ´e uma fun¸c˜ao matem´ atica que generaliza o fatorial de um n´ umero natural. A HP Prime disponibiliza esta fun¸c˜ao Γ(x)
x
Exemplos:
Vale a seguinte identidade
x! = Γ(x + 1) 57
1.5
´ Algebra
Menu CAS Nas telas a seguir mostramos como acessar alguns comandos para manipula¸c˜ oes alg´ebricas.
Vejamos alguns comandos. 1) Simplificar Apresenta uma express˜ ao simplificada. simplify(Expr) 2) Colecionar Recolhe termos semelhantes numa express˜ ao polinomial (ou numa lista de express˜ oes polinomiais). Decomp˜ oe os resultados, consoante as defini¸c˜oes CAS. collect(Poly)
ou
collect({Poly1, Poly2,..., Polyn})
Exemplos:
58
3) Expandir Apresenta uma express˜ ao expandida. expand(Expr) 4) Decompor Apresenta um polinˆ omio decomposto (fatorado). factor(Poly) Exemplos:
Nota: Para estes exemplos a configura¸c˜ao CAS da sua calculadora deve ser como na tela da direita. 5) Substitue Substitui um valor por uma vari´ avel numa express˜ ao. subst(Expr,Var=valor) 6) Fra¸ c˜ ao parcial Realiza a decomposi¸c˜ ao de uma fra¸c˜ao em fra¸c˜oes parciais. partfrac(RatFrac) Exemplos:
59
Mudando a configura¸c˜ao da Vista de In´ıcio e do CAS como nas telas a seguir
aqui
−→
na tela da direita repetimos os dois exemplos anteriores, ou seja, agora temos a decomposi¸c˜ ao sobre os Complexos.
Extra¸ c˜ ao 7) Numerador Numerador simplificado. Para os n´ umeros inteiros a e b, apresenta o numerador da fra¸c˜ ao a/b ap´ os a simplifica¸c˜ao. numer(a/b) 8) Denominador Denominador simplificado. Para os n´ umeros inteiros a e b, apresenta o denominador da fra¸c˜ ao a/b ap´ os a simplifica¸c˜ao. denom(a/b) Exemplos:
60
9) Lado esquerdo Apresenta o lado esquerdo de uma equa¸c˜ao ou a extremidade esquerda de um intervalo. left(Expr1=Expr2)
ou
left(Real1..Real2)
10) Lado direito Apresenta o lado direito de uma equa¸c˜ao ou a extremidade direita de um intervalo. right(Expr1=Expr2)
ou
right(Real1..Real2)
Exemplos:
Uma aplica¸c˜ ao interessante destes comandos ´e que podemos extrair a base e o expoente em uma potˆencia de expoente fracion´ario, como na tela da direita. Funciona at´e mesmo com potˆencias alg´ebricas, veja:
Na tela da direita mostramos como fatorar o expoente do numerador da seguinte fra¸c˜ ao 2 2x −1 x3 − 1 Ent˜ao 2 2x −1 2(x−1)(x+1) = x3 − 1 x3 − 1
61
Subrotinas Um recurso (ou t´ecnica) bastante utilizado em programa¸ca˜o ´e o que se chama de subrotina, que consiste na possibilidade de um programa ser acessado por um outro. Uma situa¸c˜ ao em que ´e recomend´avel o uso de subrotina ´e quando temos um conjunto de instru¸c˜oes que ´e utilizado em diversas partes de um programa e para que n˜ ao seja reescrito diversas vezes, ´e colocado em um programa ` a parte onde o primeiro programa (podemos cham´ a-lo de principal) acessa o segundo (subrotina). Podemos resumir a ideia no seguinte diagrama:
P.P.
Subrotina
Aten¸ c˜ ao!: Os dados requeridos pelo programa subrotina s˜ ao passados pelo programa principal. Oportunamente estaremos exemplificando este conceito.
62
1.6
Estruturas de Programa¸c˜ ao
Introdu¸ c˜ ao Uma estrutura de programa¸ c˜ ao permite a um programa tomar uma decis˜ ao sobre como ele deve ser executado, dependendo das condi¸c˜oes dadas ou dos valores de argumentos em particular. Um uso cuidadoso e inteligente destas estruturas torna poss´ıvel a cria¸c˜ao de programas com extraordin´ aria flexibilidade. Diriamos que a programa¸c˜ ao propriamente dita come¸ca aqui com estruturas de programa¸c˜ ao, pois o que fizemos anteriormente foi praticamente a programa¸c˜ ao de f´ormulas apenas. Estas estruturas que iremos estudar s˜ ao comuns a v´arias linguagens de programa¸c˜ ao, como por exemplo, PASCAL, FORTRAN, C++ , MATLAB, etc. Quero dizer: vocˆe entendendo-as neste contexto, tamb´em estar´ a apto a execut´a-las em qualquer outra linguagem em que estas se fa¸cam presentes; da´ı a importˆ ancia de entendˆe-las nesta aqui, isto ´e, na HP Prime .
Estruturas de programa¸c˜ ao As estruturas que iremos estudar s˜ ao as seguintes:
• Estruturas c´ıclicas :
• Estruturas condicionais :
FOR
FOR - STEP
WHILE - REPEAT - END
IF - THEN - END
IF - THEN - ELSE - END
Existem outras estruturas, mas estas s˜ ao suficientes para os nossos prop´ ositos.
63
1.6.1
Estruturas c´ıclicas
FOR Apenas para exemplificar o uso desta estrutura vamos construir um programa para calcular a soma dos N primeiros n´ umeros Naturais. Isto ´e, queremos o valor de: N X
i=1
i = 1 + 2 + 3 + ··· + N
Devemos fornecer ao programa o valor de N (at´e onde queremos que o mesmo some) e este deve nos devolver o valor da soma correspondente. Vamos iniciar o programa de acordo com a tela a seguir
↑ Nota: Via de regra iniciamos a vari´ avel que vai acumular a soma com o valor 0. Para inserir a estrutura FOR no programa pressione a tecla virtual assinalada (Tmplt); des¸ca at´e o item 3Loop; v´a para a direita. Estamos na tela da direita acima. Agora pressione ; ap´ os, teremos a tela a seguir
complete o programa conforme tela da direita. Ademais, por uma quest˜ao de legibilidade coloque o END na mesma vertical do FOR, ´e o que chamamos de identa¸ca ˜o. Podemos executar o programa diretamente da vista do CAS.
64
Estando na vista do CAS digite o nome do programa e, entre parenteses, os dados requeridos pelo programa; como, por exemplo, na tela a seguir
→ Isto significa que 5 X
I = 1 + 2 + 3 + 4 + 5 = 15
I =1
Como funciona a estrutura FOR FOR contador FROM in´ıcio TO fim DO cl´ ausula c´ıclica Loop END
Esta estrutura executa uma por¸c˜ao do programa por um n´ umero definido de vezes usando o conte´ udo de uma vari´ avel local como contador, a qual pode ser usada dentro do loop para c´alculos ou outros prop´ositos. No final ao o contador ´e do loop o contador ´e testado se j´a atingiu o fim, caso n˜ incrementado de uma unidade e a cla´ usula c´ıclica ´e executada mais uma vez; este processo se repete at´e que o contador atinja o fim, quando ent˜ao o loop ´e abandonado. No programa ao lado temos: I: contador, 1: in´ıcio do contador, N: fim do contador, S:= S+I: cl´ ausula c´ıclica. Neste caso o contador est´ a sendo utilizado dentro do loop. No caso deste programa a vari´ avel S ´e inicializada com 0, e, a cada ciclo, S ´e atualizada adicionando-se o valor de I ao seu valor anterior.
65
FOR-STEP Esta estrutura funciona de modo semelhante a anterior (FOR) exceto que a vari´ avel de controle pode ser incrementada de um valor diferente da unidade.
FOR - END’s concatenados O que chamamos de concatena¸c˜ao de FOR - END’s ´e o mesmo que encaixe (ou aninhamento) de FOR - END’s que, dependendo do programa, pode tomar diversas configura¸c˜oes. Por exemplo, assim: FOR FOR
a)
b)
FOR FOR FOR
FOR FOR
c)
END END END
END END
END FOR END END
Dentre muitas outras aplica¸c˜oes a concatena¸c˜ao ´e u ´ til para se trabalhar com matrizes. Vejamos o seguinte exemplo: (U.E.LONDRINA - 84) Dada a matriz A = ( amn )2×2 onde amn = 2n−m , a soma de todos os elementos que comp˜ oe a matriz A2 ´e igual a: a ) 81/4
b ) 10
c)9
d ) 25/4
e) − 6
Motivados pelo desafio acima vamos fazer um programa para construir uma matriz (quadrada de ordem N ) e que, em particular (N = 2) tenhamos a matriz do problema anterior. O programa consta da tela a seguir
na tela da direita temos duas simula¸c˜oes. Observe que o programa foi elaborado na vista de in´ıcio − e n˜ ao na vista do CAS. Observe que temos uma concatena¸c˜ao tipo a ). O primeiro FOR (ou ainda, o primeiro la¸co) fixa a linha e o segundo varia as colunas, de modo que a matriz vai sendo construida linha a linha e de cima para baixo. Para obter a resposta da quest˜ao do vestibular, clique na primeira matriz (tela anterior), pe¸ca uma c´opia para a linha de entrada, eleve ao quadrado e some os elementos. 66
O programa anterior foi feito apenas para ilustrar a concatena¸c˜ao de FOR - END’s, no entanto, na tela da esquerda a seguir criamos − na vista do CAS − um programa equivalente
Na tela da direita temos uma simula¸c˜ao para N = 3. Digamos que vocˆe queira os elementos da matriz n˜ ao na forma de fra¸c˜ao, mas aproximados (approx) com trˆes decimais; o caminho ´e este
Aqui
Executamos novamente o programa, como na tela da direita.
67
Exerc´ıcios Nota: Alguns dos exerc´ıcio a seguir devem, preferencialmente, ser implementados com a estrutura “FOR”. 1) Fa¸ca um programa para sair com os N primeiros termos de uma P.A. (progress˜ ao aritm´etica), de dois modos distintos: ( a ) em uma lista ( b ) em um vetor. 2) Fa¸ca um programa para calcular o produto dos N primeiros termos de uma P.A. 3) Fa¸ca um programa para calcular a soma dos N primeiros termos de uma P.G. n X i2 . 4) Fa¸ca um programa para calcular o seguinte somat´ orio: i=1
5) Seja a sequˆencia 1,
1,
−1,
−1,
1,
1,
−1,
−1,
1,
1,
−1,
−1,
...
cuja f´ormula do termo geral e do produto s˜ ao, respectivamente an = (−1)
(n−1)(n−2) 2
e Pn = (−1)
n(n−1)(n−2) 6
Fa¸ca um programa para sair com um vetor contendo os N primeiros termos desta sequˆencia e mais ainda o produto destes N primeiros termos. n X im ; onde m e n s˜ ao 6) Fa¸ca um programa para calcular o somat´ orio: i=1
valores arbitr´arios que devem ser fornecidos ao programa. 7) Fa¸ca um programa para calcular a soma, 1 · 2 + 2 · 3 + 3 · 4 + · · · + n · (n + 1)
8) Fa¸ca um programa para calcular o produto interno canˆ onico de dois vetors, assim: [ a1
a2 . . . an ] · [ b1
b2 . . . bn ] = a1 · b1 + a2 · b2 + · · · + an · bn
9) Fa¸ca um programa para sair com um vetor contendo os N primeiros termos de uma P.A., usando a f´ormula de recorrˆencia (defini¸c˜ao) de uma P.A.: a1 = a a
n
= an−1 + r, n ≥ 2.
68
10) Fa¸ca um programa para sair com um vetor contendo os N primeiros termos de uma P.G., usando a f´ormula de recorrˆencia (defini¸c˜ao) de uma P.G.: a1 = a a
= an−1 · q, n ≥ 2.
n
11) Fa¸ca um programa para sair (em lista ou vetor) com os N primeiros termos das seguintes sequˆencias : ( i ) a1 = 4; an = (−1)n · an−1 . ( ii ) a1 = −2; an = (an−1 )2 .
12) (U.F.CE -81) Os termos da sucess˜ao a1 , a2 , . . . , an , est˜ ao relacionados pela f´ormula an+1 = 1 + 2 · an , onde n = 1, 2, 3, . . .. Se a1 = 0, ent˜ao a6 ´e: a ) 25
b ) 27
c ) 29
d ) 31
13) (PUC-SP - 81) Na sequˆencia (a1 , a2 , . . .) tem-se: a1 = 1 e an+1 =
2 + a2n 2an
Qual dos n´ umeros abaixo est´ a mais pr´ oximo de a3 ? √ √ d) 3 a)1 b)2 c) 2
√ e) 5
Nota: Lembramos que nestes exerc´ıcios queremos que vocˆe fa¸ca um pouco mais do que o exerc´ıcio pede. Queremos que vocˆe fa¸ca um programa para listar os n primeiros termos das sequˆencias dadas. 14) (U.F.BA. - 81) sejam as sequˆencias a1 =4 e a = 1 + a2 n+1 n
Se P = an · bn , tem-se: a) P < 0
b) 0 ≤ P < 1
b1 b
c) 1 ≤ P < 2
=5
n+1
=
1 1+bn
d) 2 ≤ P < 3
e) P ≥ 3
15) (U.F.PR. - 80) Seja f uma fun¸c˜ao tal que f (1) = 2 e f (x+1) = f (x)−1, para todo valor real de x. Ent˜ ao f (100) ´e igual a: a ) − 99
b ) − 97
c ) 96
d ) 98
e ) 100
Nota: Aqui o leitor dever´ a fazer um programa para fornecer f (N ) onde N > 1 ´e um um n´ umero natural. 69
16) (PUC - SP - 85) Na sequˆencia (a0 , a1 , a2 , . . .) onde a0 = 1 e an+1 = an + n, para todo n ∈ N, a soma dos 7 primeiros termos ´e a ) 41
b ) 42
c ) 43
d ) 63
e ) 64
Nota: O leitor dever´ a sempre resolver os problemas de forma generalizada. Por exemplo, aqui fa¸ca um programa para calcular a soma dos N primeiros termos da sequˆencia . 17) (PUC - SP - 70) Sendo f : R → R definida por f (x) = 2x + 3, ent˜ao f (1) + f (2) + f (3) + · · · + f (25) ´e igual a: a ) 725
b ) 753
c ) 653
d ) 1375
e ) 400
18) No c´ alculo num´erico de integrais I=
Z
b
f (x) dx a
A primeira regra de Simpson generalizada estabelece que, Rx
n x0
f (x) dx ∼ =
h 3
[ f (x0 ) + 4f (x1 ) + 2f (x2 ) + 4f (x3 ) + ··· +2f (xn−2 ) + 4f (xn−1 ) + f (xn ) ]
Fa¸ca um programa que calcule a seguinte integral Z 1 x2 dx I= 0
O programa deve receber n. Depois calcule o valor exato da integral e compare com os resultados do programa para alguns valores de n. Sugest~ ao: Inicialmente determine uma f´ormula para gerar os coeficientes num´ericos em destaque na express˜ ao: 1f (x0 ) + 4f (x1 ) + 2f (x2 ) + 4f (x3 ) + · · · + 2f (xn−2 ) + 4f (xn−1 ) + 1f (xn ) 19) Programe a f´ormula para o produto dos termos de uma P.A. de primeiro termo a1 e raz˜ ao r
n
Pn = a1 r ·
(a1 + n r) (a1 + n r)
70
1 r a1 r
!
!
WHILE - REPEAT - END Esta ´e uma outra estrutura c´ıclica bastante utilizada. Para exemplificar o uso desta estrutura vamos resolver o seguinte problema: (UNESP - 84) Seja Sn = 211 + 212 + · · · + 21n , n um n´ umero natural diferente de zero. O menor n´ umero n tal que Sn > 0, 99 ´e: a) 5
b) 6
c) 7
d) 8
e) 9
A ideia aqui ´e variar n (a partir de 1) e ir somando os termos o resultado da soma seja maior que 0, 99. Veja alguns exemplos, n
Sn
1
1 2
= 0, 5
2
1 2
+
1 22
= 0, 75
3
1 2
+
1 22
+
...
1 23
1 2n
at´e que
= 0, 875
........................
Vamos fazer melhor: o programa vai receber como entrada um n´ umero L (0 < L < 1) que, em particular, pode ser L = 0, 99. Vamos iniciar o programa de acordo com a tela a seguir (Vista de in´ıcio)
Para inserir a estrutura WHILE, v´a para a tela da direita acima. Agora ; ap´ os, complete como na tela a seguir pressione
Na tela da direita temos duas simula¸c˜oes do programa. 71
Exemplo: Digitando na linha de entrada (vista do CAS) SUN(n) := criamos uma fun¸c˜ ao de n, esta Sn =
P
(1/2 ∧ k, k, 1, n)
1 1 1 + 2 + ··· + n 1 2 2 2
As telas a seguir
mostram Sn para alguns valores de n. Para os valores aparecerem como na tela acima em deve estar desmarcada (tela da direita).
a caixa Exact
Como funciona a estrutura WHILE WHILE cla´ usula de teste Loop DO comandos END
Esta estrutura executa uma por¸c˜ao do programa (comandos) enquanto a cla´ usula de teste for verdadeira. No programa ao lado temos: cla´ usula de teste: S ≤ L. comandos: n:=n+1; S:=S+1/2 ∧ n. O loop s´ o ´e abandonado quando S for tal que S>L.
72
Exerc´ıcios 20) Determine n tal que
Pn
i=1
2i = 4088.
21) Resolva o problema anterior utilizando a f´ormula para a soma dos tera ·q n −a mos de uma P.G.: Sn = 1 q−1 1 . 22) Resolva a quest˜ ao da UNESP (p. 71) utilizando a f´ormula para a soma dos termos de uma P.G. 23) Elabore um programa onde entramos com o primeiro termo e a raz˜ ao de uma P.A., e ainda com um n´ umero L (maior ou igual ao primeiro termo), e o programa saia com n, a quantidade m´ axima de termos que podemos somar para que a soma n˜ ao ulrapasse L. 24) Encontre o valor de k de modo que: 30 k X X
(−2i + 3j) = 300
j=1 i=1
25) Quantos termos devem ser somados na sequˆencia , 2
−1
2
−1
−1
2
−1
2
2
−1
...
3
...
a partir do primeiro termo, para que a soma seja 15? Dado: Sn = [ 2n − 3 · (−1)n + 3 ] · 14 .
26) Quantos termos devem ser somados na sequˆencia , −1
−1
3
−1
3
−1
3
−1
3
a partir do primeiro termo, para que a soma seja 13? Dado: Sn = (−1)n + n − 1.
27) Fa¸ca um programa que que recebe n e sai com o n-´esimo termo da sequˆencia 0
1
2
0
1
2
0
1
2
...
28) Fa¸ca um programa que que recebe n e sai com a soma dos n primeiros termos da sequˆencia do exerc´ıcio anterior. 29) A soma dos dos n primeiros termos da sequˆencia 3
3
6
6
9
9
12
´e
12
15
15
...
6n2 + 12n − 3(−1)n + 3 8 Inicialmente resolva a equa¸c˜ ao S(n) = 60, na m˜ ao mesmo. Fa¸ca um programa onde dado um inteiro m > 0 ele resolva a equa¸c˜ao S(n) = m, caso n˜ ao haja solu¸c˜ ao o programa deve dizer. Sn =
73
1.6.2
Estruturas condicionais
IF - THEN - END Para exemplificar o uso desta estrutura vamos construir um programa que nos diz se um dado n´ umero ´e par ou n˜ ao. Faremos este programa de dois modos distintos, para ilustrar dois comandos da HP Prime : FP e MOD. O comando FP nos devolve a parte fracion´ aria de um n´ umero, na tela a seguir temos alguns exemplos (desmarque a caixa Exact)
Nota: O duplo sinal = = ´e de compara¸c˜ao. Na tela do centro temos o programa. Na tela da direita como acessamos a estrutura IF - THEN - END. A estrutura IF - THEN - END executa uma sequˆencia de comandos somente se o teste ´e verdadeiro. A palavra IF inicia a cl´ausula-de-teste, a qual deixa o resultado do teste (0 ou 1). THEN remove este resultado. Se o valor ´e 1, a cl´ ausula verdadeira ´e executada. Caso contr´ ario, a execu¸c˜ao do programa prossegue com a instru¸c˜ao seguinte a END. umero inteiro a O comando MOD nos devolve o resto da divis˜ao de um n´ por um n´ umero inteiro b. A seguir temos dois exemplos 5 1
2 2
20 6 2 3 տ 20 MOD 6
տ 5 MOD 2
Na tela a seguir temos os dois exemplos acima; o segundo programa consta na tela do centro a seguir
Na tela da direita temos duas simula¸c˜oes deste programa. 74
IF - THEN - ELSE - END Esta estrutura condicional ´e bem mais interessante e u ´ til que a anterior. Para exemplific´ a-la faremos um programa para sair com os N primeiros termos da sequˆencia n se n ´e par; , 2 an = n + 1 , se n ´e ´ımpar. 2 Inicie o programa como a seguir (Vista de In´ıcio)
complete-o como na tela do centro. Na tela da direita temos duas simula¸c˜oes do programa. Vejamos mais um exemplo de aplica¸c˜ao desta estrutura. (PUC- SP - 76) Se A ´e uma matriz 3 por 2 definida pela lei 1, se i = j; aij = 2 i , se i = 6 j.
Ent˜ao A se escreve: 1 1 1 1 1 1 1 1 9 1 4 9 e) 4 1 a) b) 4 1 c) 1 4 d) 1 4 9 1 1 9 6 6 9 9 9 9
Vamos resolver este problema para uma matriz de dimens˜ao gen´erica M × N . O programa ´e como a seguir
na tela da direita temos trˆes simula¸c˜oes. 75
Como funciona a estrutura IF - THEN - ELSE - END IF cla´ usula-de-teste THEN cla´ usula-verdadeira Estrutura ELSE cla´ usula-falsa END Esta estrutura executa uma sequˆencia de comandos se o teste resultar verdadeiro e outra, caso seja falso. A palavra IF inicia a cl´ausula-de-teste, a qual sai com o resultado (0 ou 1). THEN verifica este resultado. Se o valor ´e 1, a cl´ausula-verdadeira ´e executada; caso contr´ ario, a cl´ausula-falsa ´e executada. Ap´os ter executado a cl´ ausula apropriada, o programa prossegue com a instru¸c˜ao seguinte `a END. No programa ao lado temos: cla´ usula de teste: FP(n/2)==0 cla´ usula verdadeira: TS(n):=n/2 cla´ usula falsa: TS(n):=(n+1)/2
76
Tra¸cando gr´ aficos com IF - THEN - ELSE - END Vamos exemplificar como esta estrutura pode ser utilizada para construir gr´ aficos de fun¸c˜ oes definidas por v´arias senten¸cas. Inicialmente considere a fun¸ca˜o f : R → R dada por se x < −1; −x, f (x) = x2 − 1, se x ≥ −1.
Na tela a seguir programamos esta fun¸c˜ao
na tela da direita simulamos alguns exemplos. Ao atribuir o nome f ao programa caso esta vari´ avel esteja ocupada ent˜ao purge(f ) ´e uma sugest˜ao. Pois bem, nosso objetivo agora ´e plotar o gr´ afico desta fun¸c˜ao. Inicialo que vai nos levar para a seguinte tela mente prima a tecla
→
↑ em seguida clique no aplicativo assinalado (Function), o que nos leva para a tela da direita. Clique na tecla virtual Edit
77
escreva na linha de entrada f (X) (este X deve ser mai´ usculo); ap´ os clicar em OK estaremos na tela da direita
→
↑
Agora vamos dimensionar os eixos para plotagem, para isto clique em
vamos para a seguinte tela (configura¸c˜ao na minha calculadora)
configurando como na tela do centro, ap´ os clique em teremos a tela da direita. Como mais um exemplo, para o gr´ afico da fun¸c˜ao dada por −x − π2 , se x < − π2 ; g(x) = | cos 2 x |, se − π2 ≤ x < π2 ; x − π2 , se x ≥ π2 . o programa fica assim
78
1.7
Operadores l´ ogicos relacionais
Um outro recurso − n˜ ao menos importante − que a programa¸c˜ao nos oferece s˜ ao os operadores l´ ogicos booleanos: OR, AND, XOR, NOT, etc., estes operadores est˜ ao definidos pelas respectivas tabelas-verdade:
p
q
p OR q
p
q
p AND q
p
q
p XOR q
p
p¯
V V F F
V F V F
V V V F
V V F F
V F V F
V F F F
V V F F
V F V F
F V V F
V F
F V
Ou ainda, na forma em que a HP Prime entende e opera:
p
q
p OR q
p
q
1 1 0 0
1 0 1 0
1 1 1 0
1 1 0 0
1 0 1 0
p AND q 1 0 0 0
p
q
p XOR q
p
p¯
1 1 0 0
1 0 1 0
0 1 1 0
1 0
0 1
Estes operadores booleanos s˜ ao acessados assim:
Na tela da direita mostramos como acessar outros s´ımbolos u ´ teis, como, por exemplo, as letras gregas. A seguir fazemos um exemplo.
79
Vejamos um exemplo de aplica¸c˜ao destes operadores: (CESGRANRIO - 76) Seja H o conjunto { n ∈ N : 2 ≤ n ≤ 40 }, n m´ ultiplo de 2, n n˜ ao m´ ultiplo de 3. O n´ umero de elementos de H ´e: a ) 12
b ) 14
c) 7
d ) 13
e) 6
Observe, na defini¸c˜ ao do conjunto em quest˜ao: n ´e m´ ultiplo de 2 e n n˜ ao ´e m´ ultiplo de 3. Aqui temos uma tarefa para o operador l´ogico AND. Vamos fazer melhor, faremos um programa que recebe dois n´ umeros naturais M e N (N < M ) e devolve todos os m´ ultiplos de 2, e n˜ ao de 3, entre N e M ; na tela a seguir temos o programa:
Na tela da direita temos a solu¸c˜ao da quest˜ao do vestibular. O programa seguinte sai com os m´ ultiplos de 2 ou 3 entre N e M .
Na tela da direita uma simula¸c˜ao, aqui reproduzida: [ 2, 3, 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 26, 27, 28, 30, 32, 33, 34, 36, 38, 39, 40 ]
80
Exerc´ıcios 30) (F. SANTANA - 83) Dadas as matrizes A = ( aij )2 , tal que 1 + i, se i = j; aij = 0, se i 6= j. e B = ( Bij )2 , tal que bij = 2i − 3j, ent˜ao A + B ´e igual a: a)
−1 4 −1 −2
b)
1 −4 −1 −2
c)
−1 4 1 2
d)
1 −4 1 2
e)
1 4 1 2
31) Fazer um programa para sair com a matriz identidade de ordem N : 1, se i = j; aij = 0, se i = 6 j.
32) (U. MACK. - 80) Dada a matriz A = ( aij )2 tal que sen π2 j, se i = j; aij = cos πj, se i 6= j. Ent˜ao A2 ´e a matriz:
a)
−1 −1 1 0
b)
0 −1 1 1
c)
−1 1 0 1
d)
0 1 −1 1
e)
0 1 −1 −1
33) (UFRS - 83) A = ( aij ) ´e uma matriz de ordem 2 × 2 com aij = 2−i se i = j e aij = 0 se i 6= j. A inversa de A ´e: # " 1 # " 1 2 0 0 0 − 2 0 −2 0 2 2 b) c) d) e) a) 1 1 1 0 4 0 −4 0 4 0 −4 0 22 34) (FCM STA CASA - 81) Seja 1 aij = k −1
a matriz A = ( aij ), de ordem 3, tal que se i < j; se i = j e k ∈ R; se i > j.
Se o determinante de A ´e igual a zero, ent˜ao k pertence ao conjunto: a ) k ∈ { −3, 1, 3 } √ √ d ) k ∈ { − 3, 3 }
b ) k ∈ { −2, 1, 2 }
e ) k ∈ { −1/3, 1/3 } 81
c ) k ∈ { 0, 1/3, 1/2 }
35) (U. MACK - 80 ) Seja a fun¸c˜ao f : R → R definida por |x| + 3 se |x| ≤ 2; f (x) = |x − 3| se |x| > 2
O valor de f (f (f (. . . f (0) . . .))), a ) ´e 0
b ) pode ser 1
c ) ´e 3
d ) pode ser 3
e ) ´e imposs´ıvel de calcular.
Neste exerc´ıcio fa¸ca um programa onde entra-se com N e o mesmo sai com uma lista com as N composi¸c˜oes de f em 0. Exemplo, Se N = 1 ent˜ao f (f (0)) Se N = 2 ent˜ao f (f (f (0))), etc. 36) (PUC CAMP. - 80) Considerando N = { 0, 1, 2, 3, . . .} e, ainda, A = { x ∈ N/
24 = n, x ∈ N } x
B = { x ∈ N/ 3x + 4 < 2x + 9 } podemos afirmar que, a ) A ∪ B tem 8 elementos
d ) A ∩ B possui 4 elementos
b) A∪ B = A b ) n.d.a.
c) A ∩ B = A
37) (ITA - 66) Quantos n´ umeros inteiros existem, de 1000 a 10000, n˜ ao divis´ıveis nem por cinco nem por sete? 38) (UFRN - 84) O n´ umero de m´ ultiplos de sete entre 50 e 150 ´e: a)9
b ) 12
c ) 14
d ) 16
e ) 23
39) (CESCEA - 75) Quantos n´ umeros ´ımpares h´ a entre 14 e 192? a ) 88
b ) 89
c ) 87
d ) 86
e ) 90
40) (FGV - 81) A soma dos n´ umeros naturais n˜ ao superiores a 1000, n˜ ao divis´ıveis por 7, ´e: a ) 429429
b ) 500500
c ) 500500/7
d ) 999999/7
e ) n.d.a.
41) (CESGRANRIO - 84) A soma dos n´ umeros naturais menores que 100 e que divididos por 5 deixam resto 2 ´e: a ) 996
b ) 976
c ) 990
82
d ) 991
e ) 998
1.8
Algumas fun¸ c˜ oes especiais
Neste t´ opico vamos arrolar mais algumas fun¸c˜oes da HP Prime que julgamos relevantes no contexto da programa¸c˜ao.
1.8.1
A fun¸c˜ ao apply
Aplica um vetor (ou lista) − do dom´ınio de uma fun¸c˜ao − no c´alculo dos valores da fun¸c˜ ao Sintaxe apply ( Var → f(Var),
vetor)
Por exemplo
Na tela da direita mostramos como acessar a setinha − ver p. 79.
No lugar do vetor pode ser uma lista. Nas telas a seguir utilizamos esta fun¸c˜ao para calcular duas “tabelas trigonom´etricas”, do seno e do cosseno:
Nota: Sua calculadora deve estar fixada no modo Exact, p. 20. As tabelas trigonom´etricas constantes nos livros n˜ ao trazem alguns “arcosπ metade”, como, por exemplo, 15o = 12 , na HP Prime ´e f´acil, veja:
83
1.8.2
A fun¸ c˜ ao REPLACE
Esta ´e uma fun¸c˜ ao important´ıssima, ser´ a utilizada em diversos programas at´e o final deste livro. REPLACE Substitui parte de uma matriz ou vetor guardados em nome por um objeto a partir da posi¸c˜ao in´ıcio. In´ıcio para uma matriz ´e uma lista que cont´em dois n´ umeros. Para um vetor, ´e um u ´ nico n´ umero. REPLACE tamb´em funciona com listas, gr´ aficos e strings. Sintaxe REPLACE(nome, in´ ıcio, objeto) Nas telas a seguir, vemos dois exemplos. Lembrete: N˜ao esque¸ca de resetar as letras, se necess´ario.
Observe mais duas substitui¸c˜oes
84
Tabela trigonom´ etrica Como mais uma aplica¸c˜ ao da fun¸c˜ao REPLACE vamos montar uma tabela trigonom´etrica do seno. Considere novamente a tela a seguir
`a direita criamos uma matriz, que vai ser a tabela ao final. A seguir, criamos uma matriz que cont´em os valores do dom´ınio
`a direita calculamos o seno para esta matriz. A seguir, crie uma vari´ avel VC, clique em cima do u ´ ltimo vetor (matriz) e guarde uma c´ opia nesta vari´ avel
na tela da direita substituimos a primeira coluna da matriz MTR pelo transposto do vetor VD.
85
Este u ´ ltimo resultado salvamos em MTR
na tela da direita substituimos em MTR o transposto do vetor VC. A seguir salvamos esta u ´ ltima matriz em MTR
na tela da direita colocamos uma “legenda” na tabela. Opcionalmente, podemos ver a tabela na horizontal, tomando o transposto, assim
Clique em cima da tabela e pe¸ca para ver (Show)
86
Vamos encimar a tabela com grau, no lugar de radiano. Para isto salvamos a tabela em uma nova vari´ avel. Digite na linha de entrada como a seguir
Apenas a t´ıtulo de curiosidade, veja como nos “tempos primitivos” calculavaπ . Vamos partir da f´ormula se, por exemplo, o seno de 15o = 12 sen
a 2
=
r
1 − cos a 2
Substituindo nesta f´ormula a = 30o , obtemos 30o r 1 − cos 30o = sen 2 2
Ent˜ao
Simplificando
sen 15o =
s
1− 2
√
3 2
√ 2− 3 sen 15 = 2 Na tela a seguir, pedimos para a HP Prime calcular o seno de 15o o
p
mude sua calculadora para grau (Degrees) na tela da direita pedimos para simplificar o resultado obtido pela f´ormula − para efeito de compara¸c˜ao. 87
1.8.3
A fun¸ c˜ ao Map
Segundo o manual (da HP Prime ): Existem duas utiliza¸c˜oes para esta fun¸c˜ao, nas quais o segundo argumento ´e sempre um mapeamento de uma vari´ avel para uma express˜ ao. Se a express˜ ao for uma fun¸ca˜o da vari´ avel, a fun¸c˜ao ´e aplicada a cada elemento do vetor ou matriz (o primeiro argumento) e ´e apresentado o vetor ou matriz resultante. Se a express˜ ao for um teste booleano, cada elemento do vetor ou matriz ´e testado e os resultados s˜ ao apresentados como um vetor ou matriz. Cada teste apresenta 0 (falha) ou 1 (aprova¸c˜ao). Sintaxe map ( Matrix, Var → Fun¸ c~ ao) Ou map ( Matrix, Var → Teste) Em seguida o manual fornece os dois exemplos seguintes
Na tela da direita acrescentei mais um exemplo. O manual n˜ ao fornece nenhum exemplo de um caso onde o primeiro argumento da map seja uma matriz; fiz algumas tentativas, no entanto, pelas respostas, n˜ ao encontrei uma “l´ ogica”, um padr˜ao. Por exemplo, na tela a seguir
apliquei a fun¸c˜ ao x → 2 x `a matriz de entrada, o resultado foi o esperado: cada elemento da matriz ´e multiplicado por 2. Quando apliquei a fun¸c˜ao 88
x → x−1, eu esperava que cada elemento da matriz fosse subtraido de 1, isto aconteceu apenas com os elementos da terceira coluna. Na matriz da direita temos duas outras simula¸c˜ oes, apenas a segunda me ´e intelig´ıvel; de formas que a explica¸c˜ ao do manual para mim ficou um tanto quanto nebulosa; cansado de tentar encontrar uma l´ogica decidi criar a minha pr´ opria fun¸c˜ao “map”, isto ´e, uma que atenda ao enunciado “Se a express˜ ao for uma fun¸ca ˜o da vari´ avel, a fun¸ca ˜o ´e aplicada a cada elemento da matriz (o primeiro argumento) e ´e apresentado a matriz resultante.” A fun¸c˜ ao que criei tem a seguinte: Sintaxe mapii ( Matrix, Var → express~ ao) ei-la:
`a direita temos duas simula¸c˜ oes.
1.8.4
A fun¸c˜ ao Zip
Aplica uma fun¸c˜ ao bivariada aos elementos de duas listas ou vetores e apresenta os resultados num vetor. Sem o valor predefinido, o comprimento do vetor ´e o m´ınimo dos comprimentos das duas listas. Com o valor predefinido, a lista mais curta ´e preenchida com o valor predefinido. Sintaxe: zip(‘function’ , List1, List2, Default)
89
1.8.5
A fun¸ c˜ ao remove
Dado um vetor ou lista, remove as ocorrˆencias de Valor ou remove os valores que tornam o Teste verdadeiro e apresenta o vetor ou lista resultante. Sintaxe: remove(Value, List) ou remove(Test, List) Veja os dois exemplos seguintes
Aqui cabe uma pergunta: e se quisermos eliminar na lista do exemplo os x tais que x ≤ −2 e x ≥ 2 ?. Basta concatenar remove, assim:
90
1.8.6
A fun¸c˜ ao solve
A fun¸c˜ ao solve − e outras que nos interessam − pode ser acessada na caixa de ferramentas, assim:
Ademais, escolha a configura¸c˜ ao da tela `a direita. Solve: Apresenta uma lista das solu¸c˜oes (reais e complexas) de uma equa¸c˜ao polinomial ou de um conjunto de equa¸c˜oes polinomiais. Sintaxe: solve(Eq,[Var])
ou
solve(Eq1, Eq2,. . . , [Var])
Nas telas a seguir, temos alguns exemplos
Como um outro exemplo, na tela a seguir pedimos para resolver a equa¸c˜ao quadr´ atica, a x2 + b x + c = 0
Na tela da direita criamos uma fun¸c˜ao (programa) para resolver uma equa¸c˜ao quadr´ atica, vemos uma simula¸c˜ ao. 91
Aplica¸ co ˜es da fun¸ c˜ ao Solve Na p´ agina 33, propomos a resolu¸c˜ao da seguinte equa¸c˜ao
S(n) =
2 n − 3 (−1)n + 3 = 15 4
Ao tentar resolver esta equa¸c˜ao com a aplica¸c˜ao solve, a calculadora n˜ ao consegue. Superamos este obst´ aculo criando uma nova fun¸c˜ao (programa) a qual denominamos gsolve, como na tela a seguir:
Na tela do centro resolvemos a equa¸c˜ao proposta. Na tela da direita resolvemos o problema proposto na p´ agina 33 para encontrar a posi¸c˜ao do termo 12 na seguinte sequˆencia 3
3
6
6
9
9
12
12
15
15
...
que consiste em resolver a equa¸c˜ao 6 n − 3 (−1)n + 3 = 12 4 Na tela a seguir temos um programa que recebe um termo k, caso ele esteja na sequˆencia acima o programa nos devolve sua posi¸c˜ao, caso contr´ ario ele avisa que n˜ ao encontra-se
Nas telas do centro e direita temos algumas simula¸c˜oes. 92
Tabela-Resumo Comando
Sintaxe
p.
MAKELIST
MAKELIST (express˜ ao, vari´ avel, inicio, fim, incremento)
36
MAKEMAT (express˜ ao, linhas, colunas) P Somat´ orio (express˜ ao, vari´ avel, in´ıcio, fim)
52
FOR
FOR contador FROM in´ıcio TO fim DO cla´ usula c´ıclica END
65
FOR-STEP
FOR variavel FROM in´ıcio TO fim STEP h DO cla´ usula c´ıclica END
66
WHILE
WHILE cla´ usula de teste
72
IF-THEN
usula de teste IF cla´
THEN comandos END
74
IF-THENELSE-END
IF cla´ usula de teste
THEN cla´ usula verdadeira ELSE cla´ usula falsa
76
MAKEMAT
DO comandos END
44
END apply
apply ( Var → f(Var),
map
map ( Matrix, Var → Fun¸ c~ ao)
88
REPLACE
REPLACE(nome, in´ ıcio, objeto)
84
Zip
zip(‘function’ , List1, List2, Default)
89
remove
remove(Test, List)
90
solve
solve(Eq, Var)
91
vetor)
93
83
Um Belo Desafio! - II − A quem interessar possa. Introdu¸ c˜ ao: 12
Considere a sequˆencia dos quadrados dos naturais
22
32
42
52
62
72
...
No diagrama a seguir 1
4
9
16
25
36
49
...
3
5
7
9
11
13
...
2
2
2
2
2
...
produzimos duas diferen¸ cas entre os termos da primeira sequˆencia. Considere a sequˆencia dos cubos dos n´ umeros naturais 13
23
33
43
53
63
73
...
No diagrama a seguir 1
8
27
64
125
216
343
7
19
37
61
91
127
...
12
18
24
30
36
...
6
6
6
6
...
...
produzimos trˆ es diferen¸ cas entre os termos da primeira sequˆencia.
Desafio: Considere a sequˆencia dos naturais `a m-´esima potˆencia: a(n) = nm , onde m ´e um natural arbitrariamente fixado. Fa¸ca um programa onde entramos com m e j e o mesmo saia com uma f´ormula para a sequˆencia que corresponde ` a diferen¸ca de ordem j da sequˆencia a(n) = nm . Nota: Resolvemos este Desafio na HP Prime . Na tela da esquerda fazemos duas simula¸c˜ oes para o primeiro diagrama acima, a(n) = n2 . Na tela do centro fazemos duas simula¸c˜oes para o segundo diagrama acima, a(n) = n3 . Na tela da direita, a partir da f´ormula dada geramos os 10 primeiros termos das respectivas sequˆencias.
Gentil, o iconoclasta gentil.iconoclasta@gmail.com
Boa vista-RR/07.08.2016
94
1.9
Polinˆ omios
Coeficientes Dado um polinˆ omio em x, apresenta um vetor que cont´em os coeficientes. Se o polinˆ omio estiver numa vari´ avel que n˜ ao x, ent˜ao, declare a vari´ avel como o segundo argumento. Com um n´ umero inteiro como terceiro argumento opcional, apresenta o coeficiente do polinˆ omio cujo grau coincide com o n´ umero inteiro. Sintaxe: coeff(Poly, [Var], [Integer]) Exemplos:
p(x) = x2 + 0 x − 2
p(y) = y 2 + 0 y − 2
Divisores Dado um polinˆ omio, apresenta um vetor que cont´em os divisores do polinˆ omio. Sintaxe: divis(Poli) ou divis(Poli1, Poli2,...) Exemplos:
95
Lista de fatores Apresenta um vetor com os fatores primos de um polinˆ omio ou uma lista de polinˆ omios, com cada fator seguido pela respectiva multiplicidade. Sintaxe: factors(Poly) ou factors(Poly1, Poly2,...) Exemplos:
MDC Apresenta o m´ aximo divisor comum a dois ou mais polin´ omios. Sintaxe: gcd(Poli1,Poli2...) Exemplos:
MMC Apresenta o m´ınimo m´ ultiplo comum a dois ou mais polinˆ omios. Sintaxe: lcm(Poli1, Poli2,...) Exemplos:
96
Polinˆ omio – Criar Poli. → Coef.
Dado um polinˆ omio, apresenta um vetor que cont´em os coeficientes do polinˆ omio. Com uma vari´ avel como segundo argumento, apresenta os coeficientes de um polinˆ omio relativamente `a vari´ avel. Com uma lista de vari´ aveis como segundo argumento, apresenta o formato interno do polinˆ omio. Sintaxe: symb2poly(Expr,[Var]) ou symb2poly(Expr, Var1, Var2,...) Exemplos:
Coef. → Poli.
Com um vetor como argumento, apresenta um polinˆ omio em x com coeficientes (por ordem descendente) obtidos a partir do vetor do argumento. Com uma vari´ avel como segundo argumento, apresenta um polinˆ omio semelhante nessa vari´ avel. Sintaxe: poly2symb(Vetor, [Var]) Exemplos:
97
Ra´ızes → Coef.
Apresenta um vetor que cont´em os coeficientes (por ordem decrescente) do polinˆ omio de uma u ´ nica vari´ avel, cujas ra´ızes s˜ ao especificadas no vetor do argumento. Sintaxe: pcoeff(Lista) Exemplos:
→
p(x) = x2 − 1
p(x) = x2 − 2
Na u ´ ltima linha da tela da direita observamos que podemos concatenar (compor) estes comandos.
Ra´ızes → Poli.
Assume um vetor como argumento. O vetor cont´em cada raiz ou polo de uma fun¸c˜ ao racional. Cada raiz ou polo ´e seguido pela respetiva ordem, tendo os polos uma ordem negativa. Apresenta a fun¸c˜ao racional em x que possui as ra´ızes e polos (com as respetivas ordens) especificados no vetor do argumento. Sintaxe: fcoeff(Vetor) em que em que Vetor tem a forma [Root1, Order1, Root2, Order2...]).
Exemplo:
98
Incluimos a tela da direita para facilitar o entendimento deste comando. Calculamos as ra´ızes do numerador (da fun¸c˜ao racional) e o fatoramos. No vetor do argumento, [1, 2, 0, 1, 3, −1] temos que 1 ´e ra´ız do numerador, com multiplicidade 2; 0 ´e ra´ız do numerador, com multiplicidade 1 e, como ´e f´acil ver, 3 ´e ra´ız do denominador (por isto chama-se p´ olo da fun¸c˜ ao racional) com multiplicidade 1.
´ Polinˆ omio – Algebra Quociente. Apresenta um vetor que cont´em os coeficientes do quociente euclidiano de dois polin´ omios. Os polin´ omios podem ser escritos como uma lista de coeficientes ou em forma simb´ olica. Sintaxe: quo(List1, List2, [Var]) ou quo(Poli1, Poli2, [Var])
Resto. Apresenta um vetor que cont´em os coeficientes do resto do quociente euclidiano de dois polinˆ omios. Os polinˆ omios podem ser escritos como uma lista de coeficientes ou em forma simb´ olica. Sintaxe: rem(List1, List2, [Var]) ou rem(Poli1, Poli2, [Var]) Antes de exemplificar na Calculadora, vejamos um exemplo, “na m˜ ao”; vamos dividir os dois polinˆ omios a seguir, x4 + 2x3 + 3x2 + 4x
e
− x2 + 2x
Veja como fica, x4 + 2x3 + 3x2 + 4x
−x2 + 2x
−x2 − 4x − 11 ← (quociente)
−x4 + 2x2 4x3 + 3x2 + 4x
+ :
−4x3 + 8x2 11x2 + 4x
+ :
−11x2 + 22x + :
26x
← (resto) 99
Na HP Prime fica assim
Na tela da direita temos um outro exemplo.
Grau. Apresenta o grau de um polinˆ omio. Sintaxe: degree(Poli) Exemplos:
Coef. MDC. Apresenta o m´ aximo divisor comum (MDC) dos coeficientes de um polin´ omio. Sintaxe: content(Poli,[Var]) Exemplos:
100
ratnormal Reescreve uma express˜ ao como uma fra¸c˜ao racional irredut´ıvel. Sintaxe: ratnormal(Expr)
Fra¸c˜ ao parcial Realiza a decomposi¸c˜ ao de uma fra¸c˜ao em fra¸c˜oes parciais. Sintaxe: partfrac(RatFrac) Exemplos:
Adendo polar− point
Dados o raio e o ˆ angulo de um ponto na forma polar, apresenta o ponto com as coordenadas retangulares na forma complexa. Sintaxe: polar− point(Radius, Angle)
rectangular− coordinate
Dado um vetor que cont´em as coordenadas polares de um ponto, apresenta um vetor que cont´em as coordenadas retangulares do ponto. Sintaxe: retangular− coordinate(vector) Exemplos:
101
Zeros Com uma express˜ ao como argumento, apresenta os zeros da express˜ ao, ou seja, as solu¸c˜ oes quando a express˜ ao ´e definida como igual a zero.
Resolver complexa Apresenta uma lista das solu¸c˜oes complexas de uma equa¸c˜ao polinomial ou de um conjunto de equa¸c˜oes polinomiais. Independentemente da configura¸c˜ ao do CAS.
Zeros de complexa Com uma express˜ ao como argumento, apresenta um vetor que cont´em os zeros de complexa da express˜ ao, ou seja, as solu¸c˜oes quando a express˜ ao ´e definida como igual a zero.
Nota: Esteja atento para a diferen¸ca entre equa¸c˜ao e express˜ ao.
102
1.10
N´ umero inteiro
Divisores Apresenta a lista de divisores de um n´ umero inteiro ou uma lista de n´ umeros inteiros. Sintaxe: idivis(Integer) ou idivis({Intgr1, Intgr2,...}) Exemplos:
Fatores Apresenta a decomposi¸c˜ ao dos fatores primos de um n´ umero inteiro. Sintaxe: ifactor(Integer) Exemplos:
103
Nota: Em alguns casos, ifactor pode falhar. Nestes casos, ir´ a dar o produto de -1 e o oposto da entrada. O-1 indica que a decomposi¸ca˜o falhou.
Lista de fatores Apresenta um vetor com os fatores primos de um n´ umero inteiro ou uma lista de n´ umeros inteiros, com cada fator seguido pela respetiva multiplicidade. Sintaxe: ifactors(Integer) ou ifactors({Intei1, Intei2,...}) Exemplo:
MDC Apresenta o m´ aximo divisor comum a dois ou mais n´ umeros inteiros. Sintaxe: gcd(Intei1, Intei2,...) Exemplo:
104
MMC Apresenta o m´ınimo m´ ultiplo comum a dois ou mais n´ umeros inteiros. Sintaxe: lcm(Intei1, Intei2,...) Exemplo:
N´ umero inteiro – Primo Testa se ´ e Primo Testa se um determinado n´ umero inteiro ´e ou n˜ ao um n´ umero primo. Sintaxe: isPrime(Integer) Exemplos:
N-´ esimo Primo Apresenta o n-´esimo n´ umero primo. Sintaxe: isPrime(Integer) Exemplo:
105
Primo seguinte Apresenta o primo ou pseudo-primo seguinte ap´ os um n´ umero inteiro. Sintaxe: nextprime(Integer) Exemplo:
Primo anterior Apresenta o n´ umero primo ou pseudo-primo mais pr´ oximo de, mas inferior a, um n´ umero inteiro. Sintaxe: prevprime(Integer) Exemplo:
106
N´ umero-Divis˜ ao Quociente Apresenta o quociente inteiro da divis˜ao euclidiana de dois n´ umeros inteiros. Sintaxe: iquo(Intei1, Intei2) Exemplo:
63
23
17
2 ← (quociente)
Resto Apresenta o resto inteiro da divis˜ao euclidiana de dois n´ umeros inteiros. Sintaxe: irem(Intei1, Intei2) Exemplo:
23
63 17
107
տ
2 ← (quociente) (resto)
an MOD p Para os trˆes n´ umeros inteiros a, n e p, apresenta an m´ odulo p em [0, p−1]. Sintaxe: powmod(a, n, p,[Expr],[Var]) Exemplo:
52
13
42
3
12
1 ← (quociente)
1
5 ← (quociente)
տ
(resto)
տ
(resto)
Resto chinˆ es Teorema do Resto Chinˆes de n´ umeros inteiros para duas equa¸c˜oes. Pega em dois vetores de n´ umeros inteiros, [a, p] e [b, q], e apresenta um vetor de dois n´ umeros inteiros, [r, n], de modo que x ≡ r mod n. Neste caso, x ´e tal que x ≡ a mod p e x ≡ b mod q; tamb´em n = p ∗ q. Sintaxe:
ichinrem([a,p],[b,q]) Exemplo:
108
∗
∗
Gentil, bom dia!
∗ (email: 11/06/2012)
Aproveitei esses feriados estendidos em SP e li bem seu livro. Pratiquei todos os exerc´ıcios propostos e pratiquei todos os programas. Foi muito bom mesmo. Aprendi muito! [. . .] N˜ ao sou matem´ atico, sou engenheiro mecˆ anico formado em 1975. Na minha ´epoca de faculdade, n˜ ao havia calculadoras ainda. Tudo era feito na r´egua de c´ alculo ou no l´ apis e borracha. A minha Aristo tenho at´e hoje. [. . .] Apesar de eu j´ a me encontrar no fim da linha (fim de carreira - 60 anos), ainda tenho disposi¸ca ˜o para aprender. Pedir ao Ariovaldo (Siqueira) para que me enviasse uma foto da sua r´egua para que eu pudesse mostr´a-la aos meus alunos. Ele respondeu: Em anexo encontra-se para sua aprecia¸ca ˜o o seu pedido. Tenho duas r´eguas de c´ alculo, a Aristo e a Sterling Slide Rule. Na ´epoca eu fazia tudo com elas em engenharia, ambas eu comprei em 1970 e as usei at´e 1978. Depois aposentei as duas e comprei minha primeira Texas.
Foto-Ariovaldo
109
Gentil Lopes <gentil.silva@gmail.com>
Livro HP50g 1 mensagem
Cleber Pertel <cleber.pertel@uol.com.br> 9 de maio de 2013 22:11 Para: gentil.silva@gmail.com Professor Gentil, Chamo-me Cleber e sou acadˆemico do curso de Engenharia Qu´ımica da Universidade Federal do Paran´ a. Estou escrevendo para o senhor para parabeniz´ a-lo pela sua obra “Programando a HP - 50g”. Esse livro ´e fant´astico! Tem me ajudado muito. Confesso que quando necessitei comprar a referida calculadora, senti-me extremamente ignorante. Tinha a ferrari, mas me sentia andando num monociclo. O seu livro fez toda a diferen¸ca no caminho que percorri para adentrar no fant´astico mundo da programa¸c˜ao. Embora meus passos ainda sejam mod´estos, tornaram-se firmes gra¸cas `a sua preciosa ajuda. Embora n˜ ao seja seu aluno fisicamente, sinto-me tal e qual, pois o senhor, atrav´es do seu livro, tornou-se indispens´ avel em minha vida acadˆemica, da mesma forma que os mestres que possuo na universidade. Infelizmente n˜ ao estamos pr´ oximos, pois eu gostaria muito de um aut´ ografo seu, mas, de qualquer forma, receba com estas palavras meu carinho e gratid˜ ao por uma obra t˜ ao rica que, humildemente, fala aos iniciantes (categoria na qual estou inclu´ıdo) e, mais do que isso, nos abre as portas do interesse e da curiosidade para adentrar nesse mundo ´ımpar que o seu livro conduz-nos os primeiros passos, quando estes ainda s˜ ao vacilantes. Que Deus o aben¸coe! Um forte abra¸co, com votos de paz, Cleber Pertel
110
Cap´ıtulo
2
Aplica¸c˜oes - Mix At´e ent˜ ao a ciˆencia se caracterizara por duas abordagens. “Aqueles que trataram de ciˆencia foram ou homens de experimento ou homens de dogma. Os homens de experimento s˜ ao como a formiga; apenas colhem e usam; os raciocinadores assemelham-se a aranhas, que fazem teias com sua pr´ opria substˆ ancia. Mas a abelha adota o meio-termo; colhe seu material das flores do jardim e do campo, mas o transforma e digere por um poder que lhe ´e pr´ oprio.” ( Paul Strathern/“O sonho de Mendeleiev”)
Introdu¸ c˜ ao Como se sabe, no universo da m´ usica existem os compositores e os int´erpretes, na ciˆencia, e em particular na matem´ atica, acontece o mesmo; na matem´ atica sou int´erprete e compositor, j´a perdi as contas do n´ umero de f´ormulas que demonstrei (construi) na matem´ atica, dentre elas uma que os matem´ aticos tentaram por muito tempo (p. 184) − f´ormulas brotam da minha mente aos borbot˜ oes!. Neste cap´ıtulo veremos algumas f´ormulas de minha lavra, concomitantemente com mais aplica¸c˜ oes para a HP Prime . O leitor eventualmente interessado nas demonstra¸c˜ oes matem´ aticas dever´ a consultar nosso livro citado na referˆencia [6]. Apenas a t´ıtulo de informa¸c˜ ao, trabalho com a fam´ılia de calculadoras HP h´ a muitos anos (h´ a mais de 20), escrevi um livro sobre programa¸c˜ao da HP 50g e at´e hoje ainda me surpreendo com a potˆencia de c´alculo destes computadores de bolso; a potˆencia se refere n˜ ao apenas a c´alculos num´ericos mas, sobretudo, alg´ebricos. Pois bem, desta vez fiquei pasmo por ter resolvido um desafio matem´ atico que comparece na se¸c˜ao 2.3 “sem pegar no l´apis”, apenas via manipula¸c˜ oes alg´ebricas na pr´ opria calculadora (sem “anotar nada”, reitero); com o objetivo de provar que a HP Prime supera muitas das outras linguagens de programa¸c˜ao − como creio − deixo aqui o desafio aos estudantes de Ciˆencia da Computa¸ca ˜o, ou a quem interessar possa, que o resolvam (p. 139) na linguagem de suas preferˆencias!. 111
2.1
C´ alculo de combina¸ c˜ oes
Introdu¸c˜ ao: A conhecida f´ormula da an´ alise combinat´ oria n n! = r (n − r)! r! nos fornece o n´ umero de combina¸c˜oes dos n elementos de um conjunto, tomados r a r. Mas esta f´ormula n˜ ao nos fornece as tais combina¸c˜oes. O nosso objetivo nesta se¸ca˜o ´e exibir uma f´ormula que tem precisamente esta finalidade. A matriz a seguir nos fornece todas as combina¸c˜oes poss´ıveis para um conjunto com quatro elementos { a1 ,
a4 }
a2 ,
a3 ,
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
{
}
{ a1 }
{ a2 }
{ a1 , a2 } { a3 }
{ a1 , a3 }
{ a2 , a3 }
{ a1 , a2 , a3 } { a4 }
{ a1 , a4 }
{ a2 , a4 }
{ a1 , a2 , a4 }
{ a3 , a4 }
{ a1 , a3 , a4 }
{ a2 , a3 , a4 }
{ a1 , a2 , a3 , a4 }
Onde convencionamos que onde ocorre 1 o elemento entra na combina¸c˜ao, onde ocorre 0 o elemento n˜ ao entra na combina¸c˜ao. Esta matriz pode facilmente ser generalizada para um conjunto com um n´ umero arbitr´ario de elementos, digamos n. Lembramos que o s´ımbolo ⌊ x ⌋ representa a fun¸c˜ao m´ aximo inteiro (que n˜ ao supera x), ou fun¸c˜ ao piso. Na HP Prime ´e denotada por FLOOR.
112
Uma f´ ormula para a matriz de combina¸c˜ oes Em nosso livro citado na referˆencia [6] demonstramos a seguinte f´ormula para a matriz de combina¸c˜ oes
k j i−1 ´e par; 0, se j−1 2 aij = k j i−1 1, se ´e ´ımpar. j−1 2
Na tela a seguir programamos esta matriz, entramos com n e o programa sai com a respectiva matriz de combina¸c˜oes
nas duas outras telas temos duas simula¸c˜oes. Nas telas a seguir temos um (´ unico) programa que recebe um conjunto e sai com o conjunto das partes (conjunto de todos os subconjuntos)
Nota: Lembramos que um conjunto com n elementos possui 2n subconjuntos.
113
Nas telas a seguir
temos duas simula¸c˜ oes do programa; na tela da esquerda entramos com o conjunto { a, b, c } e na tela da direita com o conjunto { a1 , a2 , a3 , a4 } .
Nota: N˜ao esquecer de resetar as letras (p. 23) − se necess´ario. Ademais, evite incluir a letra e em um conjunto, esta letra ´e reservada para a base do logaritmo neperiano. Nas telas a seguir
entramos com um conjunto e r, o programa sai com todas as combina¸c˜oes dos elementos do conjunto tomados r a r. Observe que o programa anterior (MTXC1) ´e utilizado. Na tela da direita vemos uma simula¸c˜ao para o conjunto { a1 , a2 , a3 , a4 } e r = 3.
114
2.2
Desenvolvimento N -´ ario
Matriz Bin´ aria Sabe-se que dados dois inteiros a e N , com a ≥ 0 e N > 1, existem (e s˜ ao u ´ nicos) inteiros c0 , c1 , . . . , cn ; de tal modo que a = c0 + c1 · N + c2 · N 2 + · · · + cn · N n com 0 ≤ ci < a (i = 0, 1, . . . , n). A express˜ ao anterior ´e chamada expans˜ ao N -´aria do inteiro a. O sistema de numera¸c˜ ao de base 2 obt´em-se escolhendo um conjunto com dois s´ımbolos: S = { 0, 1 }. Na matriz seguinte temos a expans˜ ao bin´ aria dos inteiros 0, 1, 2, . . . , 15. 20 21 22 23
=⇒
20 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
21 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
22 23 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1
0 = 0·20 + 0·21 + 0·22 + 0·23 1 = 1·20 + 0·21 + 0·22 + 0·23 2 = 0·20 + 1·21 + 0·22 + 0·23 3 = 1·20 + 1·21 + 0·22 + 0·23 4 = 0·20 + 0·21 + 1·22 + 0·23 5 = 1·20 + 0·21 + 1·22 + 0·23 6 = 0·20 + 1·21 + 1·22 + 0·23 7 = 1·20 + 1·21 + 1·22 + 0·23 8 = 0·20 + 0·21 + 0·22 + 1·23 9 = 1·20 + 0·21 + 0·22 + 1·23 10 = 0·20 + 1·21 + 0·22 + 1·23 11 = 1·20 + 1·21 + 0·22 + 1·23 12 = 0·20 + 0·21 + 1·22 + 1·23 13 = 1·20 + 0·21 + 1·22 + 1·23 14 = 0·20 + 1·21 + 1·22 + 1·23 15 = 1·20 + 1·21 + 1·22 + 1·23
Em nosso livro [6] demonstramos a seguinte f´ormula
anj =
j n k j n k − 2 j j+1 2 2
que nos fornece o desenvolvimento bin´ ario de um inteiro positivo n.
115
Para programar a matriz bin´ aria necessitaremos da varia¸c˜ao de j. Observe que se n 1 n n · j = j+1 < 1 ⇒ anj = 0. ⇒ j < 1 2 2 2 2 Portanto, devemos considerar apenas os valores de j, satifazendo a desigualdade n j ⇐⇒ 2 ≤ n. Isto ´e, j = 0, 1, 2, . . . , ⌊log2n ⌋. j ≥ 1 2 Exemplo: Encontre a expans˜ ao bin´ aria de 20. Solu¸ c˜ ao: ⌊log20 ⌋ = 4. Para j = 0, 1, 2, 3, 4; obtemos 2 j=0
⇒ a20,0 = ⌊ 200 ⌋ − 2⌊
20 20+1
⌋ = 20 − 2 · 10 = 0
j=1
⇒ a20,1 = ⌊ 201 ⌋ − 2⌊
20 21+1
⌋ = 10 − 2 · 5
=0
j=2
⇒ a20,2 = ⌊ 202 ⌋ − 2⌊
20 22+1
⌋=5−2·2
=1
j=3
⇒ a20,3 = ⌊ 203 ⌋ − 2⌊
20 23+1
⌋=2−2·1
=0
j=4
⇒ a20,4 = ⌊ 204 ⌋ − 2⌊
20 24+1
⌋=1−2·0
= 1.
2
2
2
2
2
Logo, 20 = (0 0 1 0 1)2 . Ou ainda 20 = 0 · 20 + 0 · 21 + 1 · 22 + 0 · 23 + 1 · 24 Na tela a seguir programamos a matriz bin´ aria
na tela da direita temos algumas simula¸c˜oes.
116
Matriz Tern´ aria O sistema de numera¸c˜ ao de base 3 obt´em-se escolhendo um conjunto com trˆes s´ımbolos: S = { 0, 1, 2 }. Na matriz seguinte temos a expans˜ ao dos inteiros 0, 1, 2, . . . , 26, na base 3.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
30 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2
31 0 0 0 1 1 1 2 2 2 0 0 0 1 1 1 2 2 2 0 0 0 1 1 1 2 2 2
32 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2
0 = 0 · 30 + 0 · 31 + 0 · 32 1 = 1 · 30 + 0 · 31 + 0 · 32 2 = 2 · 30 + 0 · 31 + 0 · 32 3 = 0 · 30 + 1 · 31 + 0 · 32 4 = 1 · 30 + 1 · 31 + 0 · 32 5 = 2 · 30 + 1 · 31 + 0 · 32 6 = 0 · 30 + 2 · 31 + 0 · 32 7 = 1 · 30 + 2 · 31 + 0 · 32 8 = 2 · 30 + 2 · 31 + 0 · 32 9 = 0 · 30 + 0 · 31 + 1 · 32
10 = 1 · 30 + 0 · 31 + 1 · 32 11 = 2 · 30 + 0 · 31 + 1 · 32 12 = 0 · 30 + 1 · 31 + 1 · 32 13 = 1 · 30 + 1 · 31 + 1 · 32 14 = 2 · 30 + 1 · 31 + 1 · 32 15 = 0 · 30 + 2 · 31 + 1 · 32 16 = 1 · 30 + 2 · 31 + 1 · 32 17 = 2 · 30 + 2 · 31 + 1 · 32 18 = 0 · 30 + 0 · 31 + 2 · 32 19 = 1 · 30 + 0 · 31 + 2 · 32 20 = 2 · 30 + 0 · 31 + 2 · 32 21 = 0 · 30 + 1 · 31 + 2 · 32 22 = 1 · 30 + 1 · 31 + 2 · 32 23 = 2 · 30 + 1 · 31 + 2 · 32 24 = 0 · 30 + 2 · 31 + 2 · 32 25 = 1 · 30 + 2 · 31 + 2 · 32 26 = 2 · 30 + 2 · 31 + 2 · 32
Uma f´ormula para a matriz tern´ aria ´e dada a seguir
anj =
j n k j n k − 3 3j 3j+1 117
O sistema de numera¸c˜ao de base N > 1 obt´em-se escolhendo um conjunto com N s´ımbolos: S = { s0 , s1 , . . . , sN−1 }. No sistema de base 10 usualmente toma-se S = { 0, 1, 2, . . . , 9 }. Se N ≤ 10, utilizam-se os s´ımbolos 0, 1, 2, . . . , 9 e se N > 10 utilizam-se os s´ımbolos 0, 1, 2, . . . , 9 e se introduzem s´ımbolos adicionais para representar 10, . . . , N − 1. Por exemplo, o sistema de numera¸c˜ao hexadecimal (base 16), largamente utilizado em eletrˆ onica digital, usa 16 s´ımbolos: S = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F } A f´ormula a seguir generaliza as matrizes bin´ aria e tern´ aria para uma base N qualquer j n k j n k − N anj = Nj N j+1 Onde (fixado n), j = 0, 1, 2, . . . , ⌊logNn ⌋. Exemplo: Obter o desenvolvimento de 538 na base hexadecimal. Solu¸ c˜ ao: Para N = 16, temos ⌊log16538 ⌋ = 2. Ent˜ao, j 538 k j 538 k a538, j = − 16 , j = 0, 1, 2. 16j 16j+1 Temos j = 0 ⇒ a538, 0 = ⌊ 5380 ⌋ − 16⌊
538 160+1
⌋ = 538 − 16 · 33 = 10
j = 1 ⇒ a538, 1 = ⌊ 5381 ⌋ − 16⌊
538 161+1
⌋ = 33 − 16 · 2
=1
j = 2 ⇒ a538, 2 = ⌊ 5382 ⌋ − 16⌊
538 162+1
⌋ = 2 − 16 · 0
=2
16 16 16
Como 10 ≡ A, resulta, 538 = (A 1 2)16 . Na tela a seguir programamos a matriz N -´aria
na tela da direita algumas simula¸c˜oes na base N = 3 e N = 16. Nota: Deduzi a matriz N -´aria em abril/1999 (Ver [6]).
118
2.3
Progress˜ ao aritm´ etica bidimensional
Nesta se¸c˜ ao estudaremos as Progress˜ oes Aritm´eticas Bidimensionais − uma generaliza¸c˜ ao das progress˜ oes aritm´eticas − que nos possibilitar´a algumas aplica¸c˜ oes interessantes, bem como novas aplica¸c˜oes na HP Prime . Adotaremos N = { 1, 2, 3, . . . }
No¸c˜ oes iniciais: sequˆ encias duplas Uma sequˆencia dupla ´e uma aplica¸c˜ao do tipo: a(m, n) : N × N → R Em uma sequˆencia dupla qualquer, cada elemento ´e indicado por aij . O ´ındice i indica a linha e o ´ındice j a coluna `as quais o elemento pertence. Com a conven¸c˜ ao de que as linhas sejam numeradas de cima para baixo e as colunas da esquerda para a direita, temos: a11
a12
a13
a14
...
a21
a22
a23
a24
...
a31
a32
a33
a34
...
a41
a42
a43
a44
...
............................ Exemplos de sequˆencias duplas: a) Seja a sequˆencia a : N × N → R dada por aij = (−1)i+j . Segundo a conven¸c˜ ao feita, temos: 1
−1
1
−1
1
...
−1
1
−1
1
−1
...
1
−1
1
−1
1
...
−1
1
−1
1
−1
...
1
−1
1
−1
1
...
..................................
119
b) Seja a sequˆencia a : N × N → R dada por 1, se i − j = 1; aij = −1, se i − j = −1; 0, nos demais casos.
segundo a conven¸c˜ ao feita, temos:
0
−1
0
0
0
...
1
0
−1
0
0
...
0
1
0
−1
0
...
0
0
1
0
−1
...
0
0
0
1
0
...
.................................
− Uma sequˆencia dupla limitada em linhas ´e a que possui um n´ umero finito M de linhas; uma sequˆencia dupla limitada em colunas ´e a que possui um n´ umero finito N de colunas; uma sequˆencia dupla limitada em linhas e colunas − ou simplesmente limitada − ´e a que possui M linhas e N colunas, assim: a11
a12
a13
...
a1N
a21
a22
a23
...
a2N
a31
a32
a33
...
a3N
............................... aM 1
aM 2
aM 3
...
aM N
− Uma sequˆencia dupla quadrada de ordem N ´e aquela em que M = N , isto ´e, uma sequˆencia com igual n´ umero de linhas e colunas.
120
Vamos agora definir um tipo especial de sequˆencia dupla: Defini¸ c˜ ao 1. Chama-se progress˜ ao aritm´etica bidimensional ( PA-2D) uma sequˆencia dupla dada pela seguinte f´ormula de recorrˆencia: a11 = a a1j = a1(j−1) + r1 , j ≥ 2; aij = a(i−1)j + r2 , i ≥ 2, j ≥ 1. Onde: a11 = a, r1 e r2 s˜ ao constantes dadas. Vejamos a ideia que est´ a por tr´ as desta defini¸c˜ao. Inicialmente s˜ ao dados: a11 •
r1
r2 Agora construimos a progress˜ ao aritm´etica da linha 1, assim: a11 •
r1 •
•
•
• ...
r2 Agora podemos descer com “com passos de r2 ” por qualquer coluna, assim:
r2
r1
a11 •
•
•
•
• ...
•
•
•
•
• ...
•
•
•
•
• ...
•
•
•
•
• ...
··························· · ·
121
Exemplos: (a) a11 = 1, r1 = 2 e r2 = 1. Temos a seguinte PA-2D: 1
3
5
7
9
...
2
4
6
8
10
...
3
5
7
9
11
...
4
6
8
10
12
...
5
7
11
13
14
...
............................. (b) a11 = 5, r1 = −1 e r2 = 1. Temos a seguinte PA-2D: 5
4
3
2
1
...
6
5
4
3
2
...
7
6
5
4
3
...
8
7
6
5
4
...
9
8
7
6
5
...
..........................
Nota¸ c˜ ao: Adotaremos a seguinte simbologia para uma PA-2D: a11
r1
r2
As PA-2D dos dois exemplos anteriores s˜ ao representadas por 1
5
2
1
1
122
−1
2.3.1
F´ ormula do termo geral de uma PA-2D
N˜ao seria razo´ avel − nem mesmo sensato − recorrermos `a defini¸c˜ao para encontrar um termo qualquer de uma PA-2D. A seguir damos uma f´ormula que nos d´ a acesso direto a qualquer termo de uma PA-2D. Teorema 1 (F´ormula do termo geral de uma PA-2D). Na PA-2D em que o primeiro termo ´e a11 , a raz˜ ao das linhas ´e r1 e a raz˜ ao das colunas ´e r2 o (i, j)-termo ´e: aij = a11 + (j − 1) r1 + (i − 1) r2 Exemplo: Calcule os termos a41 , a14 e a33 da seguinte PA-2D: 5
6
7
8
9
...
4
5
6
7
8
...
3
4
5
6
7
...
2
3
4
5
6
...
1
2
3
4
5
...
..........................
Solu¸ c˜ ao: Do diagrama tiramos: a11 = 5, r1 = 1 e r2 = −1. Ent˜ao aij = a11 + (j − 1) r1 + (i − 1) r2 = 5 + (j − 1) 1 + (i − 1) (−1) = −i + j + 5 Logo a41 = −4 + 1 + 5 = 2, a14 = −1 + 4 + 5 = 8, a33 = −3 + 3 + 5 = 5.
123
F´ ormula do termo geral na HP Prime O que me faz entusiasta da calculadora HP Prime − al´em da computa¸c˜ao alg´ebrica − ´e a possibilidade de se fazer programas extremamente compactos, veja por exemplo a f´ormula do termo geral de uma PA-2D em apenas uma u ´nica linha!: aij = a11 + (j − 1) r1 + (i − 1) r2
Neste programa entramos com a11 r1 e r2 e obtemos a PA-2D de ordem 6 × 6. Na tela da direita temos a PA-2D do exemplo anterior. Propriedades numa PA-2D Decorrem da f´ormula do termo geral de uma PA-2D aij = a11 + (j − 1) r1 + (i − 1) r2 as seguintes propriedades:
(Exerc´ıcio)
P1) Qualquer linha ou coluna em uma PA-2D resulta em progress˜ao aritm´etica. P2) Dado qualquer “retˆ angulo” em uma PA-2D a soma de dois v´ertices opostos ´e igual ` a soma dos outros dois v´ertices:
ai
1 j1
+ ai
2 j2
= ai
1 j2
+ ai
2 j1
Veja um exemplo: 5
6
7
8
9
...
a22
4
5
6
7
8
...
5
6
7
3
4
5
6
7
...
5
6
2
3
4
5
6
...
4 a32
1
2
3
4
5
...
a24
a34
a22 + a34 = a24 + a32
.......................... 124
Duas consequˆencias imediatas desta propriedade s˜ ao: Em qualquer PA-2D , qualquer termo ´e a soma do primeiro termo de sua linha com o primeiro termo de sua coluna menos o primeiro termo da PA-2D . 1a )
aij = ai1 + a1j − a11 Exemplo: 5
6
7
8
9
...
4
5
6
7
8
...
3
4
5
6
7
...
2
3
4
5
6
...
1
2
3
4
5
...
a34 = a31 + a14 − a11 6= 3 + 8 − 5
.......................... 2 a ) Em uma PA-2D vale ainda:
aij = a(i−1)j + ai(j−1) − a(i−1)(j−1) Exemplo: 5
6
7
8
9
...
4
5
6
7
8
...
3
4
5
6
7
...
2
3
4
5
6
...
1
2
3
4
5
...
a34 = a(3−1)4 + a3(4−1) − a(3−1)(4−1)
a34 = a24 + a33 − a23 6= 7 + 5 − 6
..........................
125
Observe o mˆes de janeiro de 2017:
1
1
7
temos na matriz acima uma PA-2D onde a11 = 1, r1 = 1 e r2 = 7. Confira as propriedades anteriores. Nos telefones de teclas, e tamb´em ha HP Prime, podemos discernir uma PA-2D:
A prop´osito, em projeto de computadores existe a necessidade de se conhecer o valor de uma tecla em fun¸c˜ao de sua posi¸c˜ao no teclado.
aij = 3i + j − 3
126
P3) Os elementos da diagonal principal de uma PA-2D quadrada est˜ ao em P.A. de primeiro termo a11 e raz˜ ao r1 + r2 . Confira esta propriedade nas seguintes PA-2D: −1
1
3
5
7
...
1
3
5
7
9
...
3
5
7
9
11
...
5
7
9
11
13
...
7
9
11
13
15
...
...............................
P4) Os elementos da diagonal secund´aria de uma PA-2D quadrada de ordem N est˜ ao em P.A. de primeiro termo a1N e raz˜ ao r2 − r1 . Confira esta propriedade nas seguintes PA-2D:
−1
1
3
5
7
1
3
5
7
9
3
5
7
9
11
5
7
9
11
13
7
9
11
13
15
N = 3, a13 = 9 N = 3, a13 = 3 ւ
127
2.3.2
Soma dos termos de uma PA-2D
Vamos exibir uma f´ormula para calcular a soma Si×j dos i×j “primeiros” termos de uma PA-2D. Teorema 2 (Soma dos termos de uma PA-2D). Em uma PA-2D a soma Si×j dos i × j termos iniciais vale Si×j =
[ 2a11 + (j − 1) r1 + (i − 1) r2 ] i × j 2
Corol´ ario 1. Em toda PA-2D tem-se:
Si×j =
(a11 + aij ) i × j 2
Exemplos: (a) Calcule S2×3 para a PA-2D: 5
6
7
8
9
...
4
5
6
7
8
...
3
4
5
6
7
...
2
3
4
5
6
...
1
2
3
4
5
...
5
1
−1
..........................
Solu¸ c˜ ao: Basta substituir os dados da PA-2D na f´ormula acima: S2×3 =
[ 2 · 5 + (3 − 1) 1 + (2 − 1) (−1) ] 2 × 3 = 33 2
128
Utilizando a propriedade P2: ai
1 j1
(p. 124)
+ ai
2 j2
= ai
1 j2
+ ai
2 j1
a11 + aij = a1j + ai1 e a equa¸c˜ ao Si×j =
(a11 + aij ) i × j 2
Si×j =
(ai1 + a1j ) i × j 2
podemos escrever:
Isto ´e, em uma PA-2D , a soma dos n´ umeros dentro de um “retˆ angulo” de dimen˜oes i × j, ´e o semiproduto da soma dos n´ umeros de quaisquer dois v´ertices opostos pela “´ area do retˆ angulo”. Observe isto nas PA-2D seguintes:
S2×3 =
(1 + 6) 2 × 3 = 21 2
S3×2 =
(7 + 2) 3 × 2 = 27 2
S2×6 =
(1 + 13) 2 × 6 = 84 2
S2×3 =
(4 + 3) 2 × 3 = 21 2
S3×2 =
(1 + 8) 3 × 2 = 27 2
S2×6 =
(8 + 6) 2 × 6 = 84 2
Observe que como as linhas e as colunas em uma PA-2D est˜ ao em P.A., nas “propriedades da soma” n˜ ao ´e necess´ario que o v´ertice superior esquerdo do retˆ angulo esteja fixo em a11 . Por exemplo, na figura ao lado,
S2×3 =
(4 + 9) 2×3 2
129
= 39
Exemplo: Calcule o somat´ orio duplo abaixo: 10 X 5 X
j=1 i=1
(3 i + 2 j − 1)
Solu¸ c˜ ao: Fa¸camos aij = 3 i + 2 j − 1. Vamos usar a equa¸c˜ao Si×j =
(a11 + aij ) i × j 2
Ent˜ ao, a11 = 3 · 1 + 2 · 1 − 1 = 4 e a5, 10 = 3 · 5 + 2 · 10 − 1 = 34 Logo, S5×10 =
(4 + 34) 5 × 10 = 950 2
Portanto, 5 10 X X
j=1 i=1
(3 i + 2 j − 1) = 950
Generalizando este exemplo, temos: m n X X
(a i + b j + c) =
j=1 i=1
[ (m + 1) a + (n + 1) b + 2 c ] m × n 2
(c) Determine a soma de todos os inteiros que figuram na tabela abaixo: 1
2
3
...
n
2
3
4
...
n+1
3
4
5
...
n+2
.......................................... n
n+1
n+2
...
n + (n − 1)
Solu¸ c˜ ao: O leitor n˜ ao ter´ a dificuldades em perceber que a soma pedida ´e equivalente ` a soma dos n × n termos da seguinte PA-2D: a11 = 1, r1 = 1 e r2 = 1. Ent˜ ao: Sn×n =
[ 2 · 1 + (n − 1) 1 + (n − 1) 1 ] n × n = n3 2 130
Uma outra propriedade de uma PA-2D est´ a na seguinte proposi¸c˜ao: Proposi¸ c˜ ao 1. Considere uma PA-2D em que a11 , r1 e r2 s˜ ao inteiros. Se i e j s˜ ao ambos ´ımpares, ent˜ ao a11 + aij = ai1 + a1j ´e par. Veja dois exemplos: 5
6
7
8
9
...
5
6
7
8
9
...
4
5
6
7
8
...
4
5
6
7
8
...
3
4
5
6
7
...
3
4
5
6
7
...
2
3
4
5
6
...
2
3
4
5
6
...
1
2
3
4
5
...
1
2
3
4
5
...
..........................
..........................
Observe que a contrapositiva da proposi¸c˜ao acima ´e: Se a11 + aij = ai1 + a1j ´e ´ımpar ent˜ao i ou j ´e par. Exemplos: 5
6
7
8
9
...
5
6
7
8
9
...
4
5
6
7
8
...
4
5
6
7
8
...
3
4
5
6
7
...
3
4
5
6
7
...
2
3
4
5
6
...
2
3
4
5
6
...
1
2
3
4
5
...
1
2
3
4
5
...
..........................
..........................
Observe que esta propriedade ´e menos trivial − menos imediata − que as anteriores.
131
2.3.3
Lineariza¸c˜ ao de sequˆ encias duplas
Nesta se¸c˜ ao exibiremos o conceito de lineariza¸ c˜ ao de uma sequˆencia dupla, o qual aumentar´ a substancialmente o espectro de aplica¸c˜oes das progress˜oes aritm´eticas 2D. O que chamaremos de lineariza¸ca ˜o de uma sequˆencia dupla − limitada em colunas − ´e o procedimento de transform´a-la em uma sequˆencia simples (an ), colocando as linhas uma ap´ os a outra. Nota: Sempre que falarmos em lineariza¸c˜ao de uma sequˆencia dupla, fica subentendido que a mesma tem N colunas. Exemplo: Linearizar a sequˆencia dupla abaixo: a11
a12
a13
a21
a22
a23
a31
a32
a33
................ Solu¸ c˜ ao: Basta escrever uma linha ap´ os a outra, assim: a11
a12
a13
a21
a22
a23
a31
a32
a33
...
Equa¸ co ˜es de lineariza¸ c˜ ao No estudo da lineariza¸c˜ao de uma sequˆencia dupla surgem dois problemas a serem resolvidos: ao (i, j) de um termo qualquer na sequˆencia dupla , deter1 o ) Dada a posi¸c˜ minar sua posi¸c˜ ao n na sequˆencia linearizada; e, inversamente: 2 o ) Dada a posi¸c˜ ao n de um termo na sequˆencia linearizada, determinar sua localiza¸c˜ ao (i, j) na sequˆencia dupla . Para a solu¸c˜ ao do primeiro problema temos n = aij = N (i − 1) + j Para a solu¸c˜ ao do segundo problema temos n−1 i= N +1
j = n − N n−1 N 132
Exemplo: Linearizando-se uma sequˆencia dupla com cinco colunas, qual a nova posi¸c˜ ao ocupada pelos termos a32 , a24 , a35 e a21 ? Solu¸ c˜ ao: Para N = 5, utilizando a f´ormula n = aij = N (i − 1) + j temos: n = 5(i − 1) + j, logo a32
⇒
n = 5(3 − 1) + 2 = 12
a24
⇒
n = 5(2 − 1) + 4 = 9
a35
⇒
n = 5(3 − 1) + 5 = 15
a21
⇒
n = 5(2 − 1) + 1 = 6
Confira a11
a12
a13
a14
a15
a21
a22
a23
a24
a25
a31
a32
a33
a34
a35
a41
a42
a43
a44
a45
.................................. O programa seguinte recebe uma matriz e utiliza a f´ormula n = aij = N (i − 1) + j para transfer´ı-la para um vetor
Na tela da direita vemos um exemplo de aplica¸c˜ao do programa.
133
Exemplo: Para a PA-2D seguinte 1
1
−1 calcular os termos a7 , a11 e a14 (sequˆencia linearizada), com N = 5. Solu¸ c˜ ao: Com N = 5, temos: n−1 +1 i= 5
j = n − 5 n−1 5
Ent˜ ao n=7
⇒
i=
n = 11
⇒
i=
n = 14
⇒
i=
7−1 5
11−1 5
14−1 5
j = 7 − 5 7−1 =2 5
+ 1 = 2,
j = 11 − 5 11−1 =1 5
+ 1 = 3,
j = 14 − 5 14−1 =4 5
+ 1 = 3,
Na f´ormula do termo geral, temos
aij = a11 + (j − 1) r1 + (i − 1) r2 = 1 + (j − 1) 1 + (i − 1) (−1) = −i + j + 1 Portanto
a22 = −2 + 2 + 1 = 1 a31 = −3 + 1 + 1 = −1 a34 = −3 + 4 + 1 = 2
Confira 1
2
3
4
5
0
1
2
3
4
−1
0
1
2
3
−2
−1
0
1
2
............................. 134
Soma em uma sequˆ encia linearizada Agora vamos exibir uma f´ormula para a soma Sn dos n termos iniciais de uma sequˆencia linearizada, conhecidos a1 , r1 , r2 e N .
Sn =
[ 2a1 + (N −1) r1 + (i−2) r2 ] (i−1)×N 2
+ j(a1 + (i − 1) r2 ) +
j(j−1) r1 2
Exemplo: Calcule a soma dos n primeiros termos da sequˆencia 1
1
2
2
3
3
4
4
...
Solu¸ c˜ ao: A sequˆencia em quest˜ ao pode ser vista como a lineariza¸c˜ao da seguinte PA-2D: 1
1
2
2
3
3
4
4
a11 = 1
r1 = 0
N =2 r2 = 1
...... Sendo assim, temos:
Sn =
[ 2a1 + (N −1) r1 + (i−2) r2 ] (i−1)×N 2
Sn =
[ 2·1 + (2−1) 0 + (i−2) 1 ] (i−1)×2 2
+ j(a1 + (i − 1) r2 ) +
+ j(1 + (i − 1) 1) +
j(j−1) r1 2
j(j−1) 0 2
Simplificando Sn = i (i − 1) + j i Substituindo j = n − N (i − 1) i = n−1 + 1 N
⇒
e simplificando, chegamos a
j = n − 2(i − 1) i = n−1 + 1 2
n − 1 2 n−1 +n − Sn = (n − 1) 2 2 135
Na tela a seguir programamos a equa¸c˜ao
Sn =
[ 2a1 + (N −1) r1 + (i−2) r2 ] (i−1)×N 2
+ j(a1 + (i − 1) r2 ) +
j(j−1) r1 2
Na tela da direita temos o exemplo anterior. Como valorizar seus conhecimentos matem´ aticos Exemplo: Calcule a soma dos n primeiros termos da sequˆencia dos naturais 1
2
3
4
5
6
7
8
...
Solu¸ c˜ ao: Escolhendo um N arbitr´ario, digamos N = 3, a sequˆencia em quest˜ ao pode ser vista como a lineariza¸c˜ao da seguinte PA-2D:
1
2
3
4
5
6
7
8
9
10
11
12
a11 = 1
r1 = 1
N =3 r2 = 3
.............. Portanto, a soma dos n primeiros n´ umeros naturais − via lineariza¸c˜ao de sequˆencias duplas − vale Sn =
n (n + 1) 2
136
Exemplo: Encontre as f´ormulas do termo geral e da Soma para a sequˆencia 0
1
2
0
1
2
0
1
2
...
Solu¸ c˜ ao: A sequˆencia em quest˜ ao pode ser vista como a lineariza¸c˜ao da seguinte PA-2D: 0
1
2
0
1
2
0
1
2
0
1
2
a11 = 0
r1 = 1
N =3 r2 = 0
.......... Temos: a(n) = aij = a11 + (j − 1) r1 + (i − 1) r2 = 0 + (j − 1) 1 + (i − 1) 0 = j − 1 Substituindo j = n − N (i − 1) i = n−1 + 1 N
⇒
temos
Portanto
j = n − 3(i − 1) i = n−1 + 1 3
n−1 a(n) = n − 3(i − 1) − 1 = n − 3 −1 3 n−1 a(n) = n − 1 − 3 3
Na tela a seguir programamos este exemplo, confira na tela do centro
137
Na u ´ ltima tela acima obtemos a soma dos termos da sequˆencia, vale n−1 2 + n2 − n (9 − 6n) + 9 n−1 3 3 Sn = 2 Na tela a seguir fizemos uma ligeira altera¸c˜ao no programa da f´ormula do termo geral
Agora o programa sai com a fun¸c˜ao e n˜ ao com a express˜ ao do termo geral, na tela da direita usamos o comando MAKELIST para, a partir da f´ormula do termo geral, gerar os termos da sequˆencia do exemplo, confira 0
1
2
0
1
2
0
1
2
...
Na tela a seguir fizemos uma ligeira altera¸c˜ao no programa da soma
Agora o programa sai com a fun¸c˜ao e n˜ ao com a express˜ ao da soma, na tela da direita calculamos alguns exemplos de soma dos n primeiros termos da sequˆencia acima. Observamos na tela direita que ST(3) = 3 e ST(9) = 9, o que nos sugere elaborar o seguinte desafio ao leitor: Desafio: Para que valores de n teremos Sn = n para a sequˆencia (?): 0
1
2
0
1
2
0
Ou melhor, para a sequˆencia acima teremos
Sn = n
⇐⇒
Prove matematicamente sua conclus˜ao!
138
n =?
1
2
...
Um Singelo Desafio Condidere a seguinte sequˆencia: 0
1
2
0
1
2
0
1
2
...
ou seja, a tripla 0, 1, 2 se repete indefinidamente. Considere a sequˆencia Sn da soma dos termos desta sequˆencia, por exemplo: S1 = 0,
S2 = 1,
S3 = 3,
S4 = 3,
S5 = 4,
S6 = 6,
S7 = 6.
como ´e f´acil ver. Desafio: Para que valores de n teremos Sn = n para a sequˆencia em ques-
t˜ao?. Ou melhor, para a sequˆencia acima teremos
Sn = n
⇐⇒
n =?
Prove matematicamente sua solu¸ c˜ ao, n˜ ao aceitamos “argumentos heur´ısticos”.
Nota: Resolvi este desafio com o aux´ılio da calculadora HP Prime; desconfio que a HP Prime ´e superior a muitas das outras linguagens de programa¸c˜ao, para confirmar (ou n˜ ao) minha suspeita deixo este desafio aos estudantes de Ciˆencia da Computa¸c˜ ao, que podem pedir aux´ılio de qualquer linguagem de suas preferˆencias. Ademais, observe a dupla seta ⇐⇒ .
Boa Sorte!
Boa Vista-RR/23.02.2018 gentil.iconoclasta@gmail.com
139
Exemplo: Considere a sequˆencia dos n´ umeros naturais. Retire desta sequˆencia todos os m´ ultiplos de p (p ≥ 2, natural arbitrariamente fixado). Encontre para a sequˆencia resultante: (a) Uma f´ormula para o termo geral; (b) Uma f´ormula para a soma dos n primeiros termos. Solu¸ c˜ ao: Inicialmente temos N:
1
2
3
4
5
6
7
8
...
Se p = 2 teremos a sequˆencia dos ´ımpares. Consideremos p > 2. Neste caso, temos: 2 ... p −1
1
p
p+1
p + 2 . . . 2p − 1
2p
2p + 1 . . .
Claramente esta sequˆencia pode ser arranjada no seguinte quadro: 1
2
...
p−1
p+1
p+2
...
2p − 1
2p + 1
2p + 2
...
3p − 1
............................................. que nada mais ´e que a seguinte PA-2D limitada em colunas: a11 = 1
r1 = 1
N =p−1 r2 = p
Logo a(n) = aij = a11 + (j − 1) r1 + (i − 1) r2 = 1 + (j − 1) 1 + (i − 1) p = j + (i − 1) p 140
Substituindo i = n−1 +1 N
i = n−1 p−1 + 1
⇒
j = n − N (i − 1)
j = n − (p − 1)(i − 1)
simplificando, chegamos a
an = n +
j
n−1 p−1
k ←−assim
Pois bem, para a soma dos termos, temos:
Sn =
[ 2a1 + (N −1) r1 + (i−2) r2 ] (i−1)×N 2
Sn =
+ j(a1 + (i − 1) r2 ) +
[ 2·1 + ((p−1)−1) 1 + (i−2) p ] (i−1)×(p−1) 2
+ j (1 + (i − 1) p) +
j(j−1) r1 2
j(j−1) 1 2
Simplificando, temos: j n − 1 k2 p(p − 1) jn−1 k j(j + 1) Sn = + + pj p−1 2 p−1 2 n−1 Substituindo j = n − (p − 1) p−1 , obtemos: n(n + 1) p − 1 j n − 1 k2 p − 1 − 2n j n − 1 k Sn = − − 2 2 p−1 2 p−1 N˜ao parece cr´ıvel, mas podemos encontrar Sn pela calculadora, veja:
n2 + 2n
j
n−1 p−1
k
+n−p
j
n−1 p−1
k2
−p
j
n−1 p−1
k
+
j
n−1 p−1
k2
+
j
n−1 p−1
k
2 At´e por inspe¸c˜ ao direta vemos que os dois resultados s˜ ao equivalentes.
141
Apˆ endice: Para n˜ ao perder de vista, deixamos registrado aqui como resolvemos o desafio da p´ agina 139. Pois bem, tendo em conta que para a sequˆencia 0
1
2
0
1
2
0
1
2
...
temos Sn =
n−1 3
2 (9 − 6n) + 9 n−1 + n2 − n 3 2
desejamos resolver a equa¸c˜ao Sn = n, ou ainda n−1 n − 1 2 (9 − 6n) + 9 + n2 − 3 n = 0 3 3
Vamos necessitar do seguinte conceito: Parti¸ c˜ ao dos naturais Para os seguintes subconjuntos de N: N1 = {1, 3, 5, 7, . . .},
n = 2k − 1,
k = 1, 2, 3, . . .
N2 = {2, 4, 6, 8, . . .},
n = 2k,
k = 1, 2, 3, . . .
temos N1 ∪ N2 = N e N1 ∩ N2 = ∅. Por esta raz˜ ao dizemos que os conjuntos N1 e N2 formam uma parti¸c˜ao de N. Isto ´e, todo natural pertence a um e somente um destes conjuntos. Os trˆes seguintes subconjuntos de N: N1 = { 1, 4, 7, 10, . . .},
n = 3k − 2,
k = 1, 2, 3, . . .
N2 = { 2, 5, 8, 11, . . .},
n = 3k − 1,
k = 1, 2, 3, . . .
N3 = { 3, 6, 9, 12, . . .},
n = 3k,
k = 1, 2, 3, . . .
formam uma outra parti¸c˜ao de N. Para resolver o desafio utilizaremos esta u ´ ltima parti¸c˜ao; ademais, poderiamos fazˆe-lo “na m˜ ao”, no entanto, utilizaremos os recursos da calculadora, a t´ıtulo de exemplo. Antes
142
Listaremos agora algumas propriedades da fun¸c˜ao maior inteiro: Proposi¸ c˜ ao 2. Se x e y s˜ ao n´ umeros reais, ent˜ao: (i) ⌊x⌋ ≤ x < ⌊x⌋ + 1. (ii) x ≤ y
⇒
⌊x⌋ ≤ ⌊y⌋.
(iii) ⌊x + m⌋ = ⌊x⌋ + m, para todo m ∈ Z. (iv) ⌊x⌋ + ⌊y⌋ ≤ ⌊x + y⌋ ≤ ⌊x⌋ + ⌊y⌋ + 1. x (v) ⌊x⌋ m = m , para todo m ∈ Z. (vi) 0 ≤ ⌊x⌋ − 2 x2 ≤ 1.
Pois bem, iniciamos digitando a express˜ ao correspondente ao lado esquerdo da equa¸c˜ ao n−1 n − 1 2 (9 − 6n) + 9 + n2 − 3 n = 0 3 3
isto ´e feito na tela a seguir
salvamos a express˜ ao na vari´ avel SD, para efeitos de manipula¸c˜ao alg´ebrica. Considerando a parti¸c˜ ao a seguir N1 = { 1, 4, 7, 10, . . .},
n = 3k − 2,
k = 1, 2, 3, . . .
N2 = { 2, 5, 8, 11, . . .},
n = 3k − 1,
k = 1, 2, 3, . . .
N3 = { 3, 6, 9, 12, . . .},
n = 3k,
k = 1, 2, 3, . . .
na tela do centro pedimos para substuituir na express˜ ao SD n = 3k − 2. Na tela da direita temos o resultado. Observe que a calculadora n˜ ao simplifica − e com raz˜ ao − a express˜ ao ⌊−1 + k⌋ = FLOOR(−1 + k) mas n´ os sabemos tratar-se de um n´ umero inteiro. Utilizaremos a propriedade ⌊x + m⌋ = ⌊x⌋ + m, 143
para todo
m∈Z
Vamos colaborar com a calculadora na simplifica¸c˜ao da express˜ ao da u ´ ltima tela acima, para isto pediremos que ela fa¸ca a seguinte substitui¸c˜ao FLOOR(−1 + k) = −1 + k Observe a linha de entrada na tela a seguir
com o cursor posicionado antes da v´ırgula pedimos uma c´opia da express˜ ao, o resultado ´e a tela da direita. Isto significa que o valor da express˜ ao
para
n − 1 2 n−1 (9 − 6n) + 9 + n2 − 3 n 3 3 n = 3k − 2
(k = 1, 2, 3, . . .)
N1 = { 1, 4, 7, 10, . . .}
´e −2. Portanto, para todos os naturais do conjunto N1 , temos n−1 n − 1 2 (9 − 6n) + 9 + n2 − 3 n = −2 6= 0 3 3
Vejamos as duas outras possibilidades. Na tela a seguir vamos substituir n = 3k − 2 por n = 3k − 1
a segunda das possibilidades em N1 = { 1, 4, 7, 10, . . .},
n = 3k − 2,
k = 1, 2, 3, . . .
N2 = { 2, 5, 8, 11, . . .},
n = 3k − 1,
k = 1, 2, 3, . . .
N3 = { 3, 6, 9, 12, . . .},
n = 3k,
k = 1, 2, 3, . . .
144
O resultado ´e a tela do centro acima. Vamos colaborar com a calculadora na simplifica¸c˜ ao da express˜ ao da u ´ ltima tela acima, para isto pediremos que ela fa¸ca a seguinte substitui¸c˜ ao 3k − 2 3k − 2 = FLOOR =k 3 3 O resultado ´e como na tela a seguir
Portanto, para todos os naturais do conjunto N2 , temos n−1 n − 1 2 + n2 − 3 n = 4 6= 0 (9 − 6n) + 9 3 3 Na tela do centro e da direita temos o mesmo procedimento para a terceira alternativa a seguir N1 = { 1, 4, 7, 10, . . .},
n = 3k − 2,
k = 1, 2, 3, . . .
N2 = { 2, 5, 8, 11, . . .},
n = 3k − 1,
k = 1, 2, 3, . . .
N3 = { 3, 6, 9, 12, . . .},
n = 3k,
k = 1, 2, 3, . . .
Portanto, para todos os naturais do conjunto N3 , temos n − 1 2 n−1 + n2 − 3 n = 0 (9 − 6n) + 9 3 3 Esta ´e a solu¸c˜ ao do desafio: n ´e m´ ultiplo de 3. Na tela a seguir executamos novamente o programa da soma
na tela da direita listamos os 20 primeiros valores da soma, obtendo 12 , 12, 13, 15, 15, 16, 18, 18, 19 } 9 , 9, 10, |{z} 6 , 6, 7, |{z} { 0, 1, |{z} 3 , 3, 4, |{z} S3
S6
S12
S9
145
2.4
Progress˜ ao aritm´ etica tridimensional
Uma sequˆencia tripla ´e uma aplica¸c˜ao do tipo: a(m, n, p) : N × N × N → R Em uma sequˆencia tripla qualquer, cada elemento ´e indicado por aijk . O ´ındice i indica a linha, o ´ındice j a coluna e o ´ındice k a cota (altura) `as quais o elemento pertence. Com a conven¸c˜ao de que as linhas sejam numeradas de cima para baixo, as colunas da esquerda para a direita e as cotas de baixo para cima, temos: a113
a123
a213
a133
a223 a112
a233 a122
a313
a132
a323
a333
a212
a222 a111
a232 a121
a131 k
a312
a322
a332
a211
a221
a231 j
a311
a321
i
a331
Veja esta figura de uma outra perspectiva: a113
a123
a213
a223
a313
a233
a323
a333
a112
a122
a212
a132
a222
a312
a232
a322
a332
a111
a121
a211
a311
a133
a131
a221
a321
a231
a331
146
Em uma sequˆencia tripla temos alguns planos a definir: • Plano-linha: ´e todo plano em que i = m (m ∈ N fixado); • Plano-coluna: ´e todo plano em que j = n (n ∈ N fixado); • Plano-cota: ´e todo plano em que k = p (p ∈ N fixado).
− Plano-linha
− Plano-coluna
− Plano-cota
Em uma sequˆencia tripla de base quadrada definimos: • Plano-diagonal principal (P.D.P.): ´e o plano em que i = j; • Plano-diagonal secund´ario (P.D.S.): ´e o plano em que i + j = N + 1.
− Plano P.D.P.
− Plano P.D.S.
147
Vamos agora definir um tipo especial de sequˆencia tripla: Defini¸ c˜ ao 2. Chama-se progress˜ao aritm´etica tridimensional (PA-3D) uma sequˆencia tripla dada pela seguinte f´ormula de recorrˆencia: a111 = a a1j1 = a + r1 , j ≥ 2; 1(j−1)1 i ≥ 2, j ≥ 1.
aij1 = a(i−1)j1 + r2 , aijk = aij(k−1) + r3 ,
i ≥ 1, j ≥ 1, k ≥ 2.
Onde: a111 = a, r1 , r2 e r3 s˜ ao constantes dadas.
a113
a123
a213
a133
a223 a112
a313
a233 a122
a323 a212
a132 a333
a222 a111
a232 a121
a131 z
a312
a322 a211
a332 a221
a231 y
a311
a321
x
a331
Observe como se d´ a a dinˆ amica desta constru¸c˜ao,
r3
k
r1
j i
aijk = aij(k−1) + r3
r2
a111
a1j1 = a1(j−1)1 + r1
aij1 = a(i−1)j1 + r2
148
Vejamos a ideia que est´ a por tr´ as desta defini¸c˜ao. Inicialmente s˜ ao dados: r3 • a111
r1
r2 Agora construimos a progress˜ ao aritm´etica da linha 1, assim: r3
k
r1
• a111
a1j1 = a1(j−1)1 + r1
j i
r2 Isto ´e, a111
a121
a131
a partir daqui podemos construir qualquer coluna, assim: a111
a121
r1 ...
a131 ...
a211 ...
a311 r2
aij1 = a(i−1)j1 + r2
... ..
.
..
.
..
.
..
.
a partir daqui podemos construir qualquer cota, assim: .. .
.. .
.. .
.. .
.. . .. . .. .
r3
a111 a211
a121
a131
... ...
a311 r2
r1 ...
... ..
.
..
.
..
.
..
.
149
aijk = aij(k−1) + r3
r1 ...
Exemplos: (a) A seguir temos uma PA-3D em que a111 = 4, r1 = 2, r2 = 3 e r3 = 1. 6
8
9
10
11
13
5
7
12
14
9 16
8
10
12
4
6
11
13
8 15
7
9
10
11
12
14
(b) A seguir temos uma PA-3D com a111 = −1, r1 = 1, r2 = 3 e r3 = 2. 5
6
8
9
11 14
12
15
16
10
11 14
11
9
8
9
7
3
1 4
7 10
r3 = 2
10
0
6
4
13
−1
5
3 6
12
2
12 15
5 8
6 9
2
4
10
5 8
1
7
14
17
7
13
8 11
4
6 9
10 13
3
12
7
2 5
8 11
150
−1
r2 = 3
r1 = 1
Por uma quest˜ ao de curiosidade observe que todos os planos (plano-linha, plano-coluna ou plano-cota) resultam em em uma PA-2D. Por exemplo, para o plano k = 1, temos aij1 = a11 + (j − 1) r1 + (i − 1) r2 = −1 + (j − 1) 1 + (i − 1) 3 Isto ´e, a f´ormula do termo geral do plano k = 1 ´e aij1 = 3i + j − 5. Para o plano k = 2, temos aij2 = a11 + (j − 1) r1 + (i − 1) r2 = 1 + (j − 1) 1 + (i − 1) 3 Isto ´e, a f´ormula do termo geral do plano k = 2 ´e aij2 = 3i + j − 3. Veja
1
2
4
5
7 11
12
8
0 3
6 9
10 13
−1
5
1 4
7 10
aij2 = 3i + j − 3
7
9
2
4
6
8
10
3
2 5
8 11
Isto pode ser provado (Exerc´ıcio).
151
aij1 = 3i + j − 5
2.4.1
F´ ormula do termo geral de uma PA-3D
Teorema 3 (F´ormula do termo geral de uma PA-3D). Na PA-3D em que o primeiro termo ´e a111 , a raz˜ ao das linhas ´e r1 , a raz˜ ao das colunas ´e r2 e a raz˜ ao das cotas ´e r3 o (i, j, k)-termo ´e: aijk = a111 + (j − 1) r1 + (i − 1) r2 + (k − 1) r3 Exemplo: Calcule os termos a222 , a323 e a343 da PA-3D em que a111 = −1, r1 = 1, r2 = 3 e r3 = 2. Solu¸ c˜ ao: Substituindo os dados na f´ormula do termo geral, temos aijk = −1 + (j − 1) 1 + (i − 1) 3 + (k − 1) 2 Simplificando aijk = 3i + j + 2k − 7 Sendo assim, temos a222 = 5,
a323 = 10,
a344 = 14
Confira no diagrama a seguir 5
6
8
9
11 14
12
15
9
16
7
8
r3 = 2
10 13
3
1 4
7 10
4 7
0
6 9
3
9
−1
5
12
6
12
2
9
2
5
11
6
15
↓
8
10
14
8
14 1
11
5
11
13
8
17
7
↓
4
↓
4
10
12
10 13
3 6
7
2 5
8 11
152
−1
r2 = 3
r1 = 1
Exemplo: Obter a PA-3D em que a131 = 3, a123 = 8, a234 = 14, e a333 = 13. Solu¸ c˜ ao: Para obter a PA-3D ´e necess´ario encontrar a111 , r1 , r2 e r3 . Ent˜ao a131 = 3
⇒ a111 + (3 − 1) r1 + (1 − 1) r2 + (1 − 1) r3 = 3
a123 = 8
⇒ a111 + (2 − 1) r1 + (1 − 1) r2 + (3 − 1) r3 = 8
a234 = 14 ⇒ a111 + (3 − 1) r1 + (2 − 1) r2 + (4 − 1) r3 = 14 a333 = 13 ⇒ a111 + (3 − 1) r1 + (3 − 1) r2 + (3 − 1) r3 = 13 Simplificando temos o seguinte sistema linear
1 2 0 0
1 1 0 2 1 2 1 3 1 2 2 2
a111
r 1 r2 r3
3
8 = 14 13
Resolvendo este sistema, encontramos 10
11
12 14 16
17
18 8
9 11
10 12
7 9
r3 = 3
11
↓
1
3
5 7
9
7 9
2 4
6 8
6
13
1
7
12
8
12
3
10
14
10
11
9
5
6
5
19 ւ
16
4
10
17
13
15
13 15
11
↓
14
8
14
16
7
13
↓
13 15
12
4
r2 = 2
6 8
10
153
r1 = 1
(FUVEST-SP) Os n´ umeros inteiros positivos s˜ ao dispostos em “quadrados” da seguinte maneira: 1
2
3
10
11
12
19
4
5
6
13
14
15
7
8
9
16
17
18
·· ··
··
·· ··
··
·· ··
···
O n´ umero 500 se encontra em um desses “quadrados”. A “linha” e a “coluna” em que o n´ umero 500 se encontra s˜ ao, respectivamente: a) 2 e 2
b) 3 e 3
c) 2 e 3
d) 3 e 2
e) 3 e 1
Solu¸ c˜ ao: Podemos considerar os quadrados como planos em uma PA-3D: 19 22 25
20 23
26
16
11 14 18
1
2 5
8
12 15
17
4 7
24 27
10 13
21
r3 = 9 3
1
r1 = 1
r2 = 3
6 9
Neste caso, temos aijk = a111 + (j − 1) r1 + (i − 1) r2 + (k − 1) r3 = 1 + (j − 1) 1 + (i − 1) 3 + (k − 1) 9 Logo, aijk = 3i + j + 9k − 12. Fazendo 3i + j + 9k − 12 = 500
⇒
k=
512 − (3i + j) 9
Observe que 1 ≤ i ≤ 3 e 1 ≤ j ≤ 3. A u ´ nica combina¸c˜ao de i e j que produz k inteiro ´e i = j = 2. Para estes valores descobrimos ainda que o n´ umero 500 se encontra no “quadrado” (plano) de n´ umero k = 56. 154
Concatena¸c˜ ao da fun¸ c˜ ao map Vamos considerar a fun¸c˜ ao map vista na p´ agina 88. O interessante ´e que “concatenando” esta fun¸c˜ ao podemos trabalhar com fun¸co˜es de duas ou mais vari´ aveis. Exemplo: Consideremos a seguinte PA-2D 5
6
7
8
9
...
4
5
6
7
8
...
3
4
5
6
7
...
2
3
4
5
6
...
1
2
3
4
5
...
.......................... cuja f´ormula do termo geral ´e, aij = −i + j + 5. Digitando a tela a seguir
dando Enter teremos a tela do centro. Aplicamos novamente a fun¸c˜ao map ao resultado anterior, s´ o que agora j varia, como na tela da direita. Dando Enter teremos a tela a seguir
agora basta tomar a transposta (comando transpose) da matriz anterior e teremos a tela da direita, que ´e a PA-2D acima.
155
Concatenando duas vezes a fun¸c˜ao map podemos obter uma matriz 3D; por exemplo, considerando o programa seguinte (duas primeiras telas)
aijk = a111 + (j − 1) r1 + (i − 1) r2 + (k − 1) r3 Na tela da direita temos uma simula¸c˜ao para a PA-3D da quest˜ao da FUVEST (p. 154). Nota: duplicamos os ´ındices no programa por que estava dando problema.
19 22 25
20 23
26
16
11 14 18
1
2 5
8
12 15
17
4 7
24 27
10 13
21
3 6
9
aijk = 3i + j + 9k − 12
Na primeira tela acima salvamos a matriz 3D na vari´ avel FUV, na tela abaixo mostramos como podemos acessar individualmente os elementos desta matriz, ou ent˜ ao, cada linha e cada plano da matriz.
156
Na figura seguinte adaptamos o programa anterior para sair com quatro planos de uma PA-3D 5
6
8
9
11 14
12
15
16
10
11
7
8
8
10 13
3
1 4
7 10
4 7
0
6 9
3
9
â&#x2C6;&#x2019;1
5
12
6
12
2
9
2 5
11
6
15
1
10
5 8
14
4
11
17
7
13
8
14
4
6 9
10 13
3
12
7
2 5
8 11
Na tela da direita fizemos uma simula¸cË&#x153;ao para a PA-3D da esquerda. Caso se queira ver a PA-3D plano a plano basta digitar o plano desejado, por exemplo, veja:
Ainda conseguimos introduzir uma melhoria no programa anterior.
157
O programa seguinte 10
11
12 14 16
13 15
17
18
12
13
8
9
9 11
2
3 5
7 9
7
13
4 6
8
6
10 12
3
7
14
8
1
5
12
5 7
11
10
16
4
10
9 11
15
6
15
19
10
14
13
17
8
9 11
14 16
7
13
12
4 6
8 10
sai com uma PA-3D plano a plano, em uma lista.
Propriedades numa PA-3D Decorrem da f´ormula do termo geral de uma PA-3D aijk = a111 + (j − 1) r1 + (i − 1) r2 + (k − 1) r3 as seguintes propriedades:
(exerc´ıcio)
P1) Qualquer plano (linha, coluna ou plano cota) em uma PA-3D resulta em progress˜ ao aritm´etica plana.
− Plano-linha
− Plano-coluna
158
− Plano-cota
P2) Em uma PA-3D o plano cota k = p est´ a em PA-2D de primeiro termo a11p e raz˜ oes r1 e r2 .
10
11
12 14 16
13 15
17
18
12
13
8
9
7
9 11
2
3 5
7 9
7
13
4 6
8
r2 6
10 12
3
a11p r1
14
8
1
5
12
5 7
11
10
16
4
10
9 11
15
6
15
19
10
14
13
17
8
9 11
14 16
7
13
12
4 6
− Plano-cota
8 10
P3) Em uma PA-3D de base quadrada o plano diagonal principal est´ a em PA-2D de primeiro termo a111 e raz˜ oes r1 + r2 e r3 .
r3 a111
r1 + r2
− Plano P.D.P. 159
P4) Em uma PA-3D de base quadrada o plano diagonal secund´ario est´ a em PA-2D de primeiro termo a1N1 e raz˜ oes r2 − r1 e r3 .
r3
r1 r2 −
a1N1
− Plano P.D.S.
P5) Dado qualquer “paralelep´ıpedo” em uma PA-3D, a soma dos termos das arestas verticais opostas de um dos planos diagonais ´e igual a soma dos termos das arestas verticais opostas do outro plano diagonal. Veja um exemplo: 6
8
9
11 5
12
14
11
13
8
13
↓
16
12
10
15 9
11
↑12
11
↑
15 9
12
14
12 6
7
9
13
11
16 10
4
10
13 7
8
↓
10
14
14
No paralelep´ıpedo em destaque na figura da direita, temos: (11 + 16) + (10 + 15) + (9 + 14) = (12 + 11) + (13 + 12) + (14 + 13)
Esta propriedade ´e decorrˆencia da propriedade P2 das PA-2D (p. 124) e do fato de que todo plano-cota ´e uma PA-2D.
160
2.4.2
Soma dos termos de uma PA-3D
Vamos exibir uma f´ormula para calcular a soma Si×j×k dos i × j × k “primeiros” termos de uma PA-3D. Teorema 4 (Soma dos termos de uma PA-3D). Em uma PA-3D a soma Si×j×k dos i × j × k termos iniciais vale Si×j××k =
[ 2a111 + (j − 1) r1 + (i − 1) r2 + (k − 1) r3 ] i × j × k 2
Corol´ ario 2. Em toda PA-3D tem-se:
Si×j×k =
(a111 + aijk ) i × j × k 2
Exemplo: Calcule o somat´ orio triplo abaixo: 3 2 X 2 X X
k=1 j =1 i=1
(3 i + j + 9 k − 12)
Solu¸ c˜ ao: Fa¸camos aijk = 3 i + j + 9 k − 12. Vamos usar a equa¸c˜ao Si×j×k =
(a111 + aijk ) i × j × k 2
Ent˜ao a111 = 3 · 1 + 1 + 9 · 1 − 12 = 1 e a322 = 3 · 3 + 2 + 9 · 2 − 12 = 17 Logo (1 + 17) 3 × 2 × 2 = 108 2 Generalizando o resultado anterior, para: S3×2×2 =
S =
p X m n X X
(a i + b j + c k + d)
k=1 j =1 i=1
temos S =
[ (m + 1) a + (n + 1) b + (p + 1) c + 2d ] m × n × n × p 2 161
Exemplo: Calcule S2×2×3 para a PA-3D dada por a111 = 4, r1 = 2, r2 = 3 e r3 = 1. Solu¸ c˜ ao: Calcularemos de dois modos, temos:
Si×j×k =
[ 2a111 + (j − 1) r1 + (i − 1) r2 + (k − 1) r3 ] i × j × k 2
S2×2×3 =
[ 2 · 4 + (2 − 1) 2 + (2 − 1) 3 + (3 − 1) 1 ] 2 × 2 × 3 = 90 2
Na outra alternativa, temos: Si×j×k =
(a111 + aijk ) i × j × k 2
S2×2×3 =
(4 + a223 ) 2 × 2 × 3 2
Na f´ormula do termo geral temos aijk = a111 + (j − 1) r1 + (i − 1) r2 + (k − 1) r3 a223 = 4 + (2 − 1) 2 + (2 − 1) 3 + (3 − 1) 1 = 11 Substituindo, obtemos S2×2×3 = 90. Ao calcularmos S2×2×3 estamos somando, simultaneamente, todos os n´ umeros dentro do “volume” 2 × 2 × 3. No caso do exemplo em quest˜ao, observe geometricamente:
6
8
10
S2×2×3 9
11 5
12
14 8
10
9
16
13
7
8
8
15 9
12
11 5
12 6
7
8
9
10 4
11
6
13 7
7
14
162
10 4
11
6
9
2.4.3
Lineariza¸c˜ ao de sequˆ encias triplas
A exemplo do que foi feito para as sequˆencias duplas, tamb´em ´e de interesse linearizar uma sequˆencia tripla. O que chamamos de lineariza¸ c˜ ao de uma sequˆencia tripla, limitada em linhas e colunas, ´e o procedimento de transform´a-la em uma sequˆencia simples (an ), colocando as linhas plano a plano, uma ap´ os a outra. Nota: Sempre que falarmos em lineariza¸c˜ao de uma sequˆencia tripla fica subentendido que a mesma tem M linhas e N colunas (ordem M × N × ∞). Exemplo: Linearizar a sequˆencia tripla abaixo (M = N = 3): a113
a123
a213
a133
a223 a112
a233 a122
a313
a323
a132 a333
a212
a222 a111
a232 a121
a312
a322
a131 a332
a211
a221
a311
a231
a321
a331
Solu¸ c˜ ao: Basta escrever uma linha ap´ os a outra, assim: a111
a121
a131
a211
a221
a231
a311
a321
a331
...
a112
a122
a132
a212
a222
a232
a312
a322
a332
...
a113
a123
a133
a213
a223
a233
a313
a323
a333
...
Observe o leitor que a segunda linha no diagrama acima vem logo ap´ os a primeira, e a terceira logo ap´ os a segunda.
163
Equa¸ co ˜es de lineariza¸ c˜ ao No estudo da lineariza¸c˜ao de uma sequˆencia tripla surgem dois problemas a serem resolvidos: ao (i, j, k) de um termo qualquer na sequˆencia tripla de1 o ) Dada a posi¸c˜ terminar sua posi¸c˜ ao n na sequˆencia linearizada; e, inversamente: 2 o ) Dada a posi¸c˜ ao n de um termo na sequˆencia linearizada, determinar sua localiza¸c˜ ao (i, j, k) na sequˆencia tripla. A solu¸c˜ ao do primeiro problema acima ´e:
n = aijk = N (i − 1) + j + M N (k − 1) A solu¸c˜ ao para o segundo problema ´e:
j k n−1 k = +1 MN k j P −1 + 1, i = N j = P − N (i − 1)
onde P = n − M N (k − 1)
164
Exemplo: Linearizando-se uma sequˆencia tripla de ordem 4 × 4 × ∞, qual a nova posi¸c˜ ao ocupada pelos termos a222 , a323 e a344 ?. Solu¸ c˜ ao: Para M = N = 4, temos n = N (i − 1) + j + M N (k − 1) = 4(i − 1) + j + 4 · 4 (k − 1) Simplificando n = 4 i + j + 16 k − 20 Logo a222
⇒ n = 4 · 2 + 2 + 16 · 2 − 20 = 22
a323
⇒ n = 4 · 3 + 2 + 16 · 3 − 20 = 42
a344
⇒ n = 4 · 3 + 4 + 16 · 4 − 20 = 60
Interprete estes resultados para a sequˆencia tripla a seguir: 5
6
8
9
11 14
12
15
9
16
8
r3 = 2
10 13
3
1 4
7 10
4 7
0
6 9
3
9
−1
5
12
6
12
2
9
2
5
11
6
15
↓
8
10
8
14 1
7
5
11
13
14
17
7
↓
4
↓
8 11
4
10
12
10 13
3 6
7
2 5
8 11
165
−1
r2 = 3
r1 = 1
Exemplo: Considere a sequˆencia dos n´ umeros ´ımpares 1
3
5
7
9
11
13
15
17
...
armazenando esta sequˆencia em uma PA-3D de ordem 3 × 3 × ∞ encontre a nova posi¸c˜ ao ocupada pelos ´ımpares 13, 27 e 51. Solu¸ c˜ ao: Substituindo M = N = 3 nas equa¸c˜oes da lineariza¸c˜ao, temos: j k n−1 k = +1 3·3 j k i = P 3−1 + 1, j = P − 3(i − 1)
onde P = n − 3 · 3(k − 1)
Necessitamos encontrar a posi¸c˜ao n de cada um dos termos na sequˆencia dada por an = 2n − 1. Ent˜ao 13 ⇒ 13 = 2n − 1 ⇒ n = 7; 27 ⇒ 27 = 2n − 1 ⇒ n = 14; 51 ⇒ 51 = 2n − 1 ⇒ n = 26 Sendo assim, temos k j 7−1 +1 k = 9 j k P −1 n=7 ⇒ i = + 1, 3 j = P − 3(i − 1) k j 14−1 +1 k = 9 k j P −1 n = 14 ⇒ + 1, i = 3 j = P − 3(i − 1) j k 26−1 k = +1 9 k j P −1 n = 26 ⇒ + 1, i = 3 j = P − 3(i − 1)
onde P = 7 − 9(k − 1)
onde P = 14 − 9(k − 1)
onde P = 26 − 9(k − 1)
166
k=1 ⇒ i=3 j=1
⇒
k=2 i=2
j=2
k=3 ⇒ i=3 j=2
Ent˜ ao, os ´ımpares 13, 27 e 51 ocupar˜ao na PA-3D as seguintes posi¸c˜oes (i, j, k) = (3, 1, 1); 37 43 49
39 45
51
31
21
↑
1 7 13
23 29
35 3
9 15
41 47
27 33
(i, j, k) = (3, 2, 3)
53
↑ 19 25
(i, j, k) = (2, 2, 2);
5 11
17
↑ Aproveitamos o espa¸co sobrando na figura acima para fornecer um programa que implementa as equa¸c˜ oes da lineariza¸c˜ao; na tela inferior resolvemos o exemplo em quest˜ ao. Exemplo: Como mais um exemplo de aplica¸c˜ao das equa¸c˜oes de linearizac¸˜ao, podemos resolver a quest˜ ao da FUVEST-SP, p. 154. Naquela quest˜ao temos: M = N = 3 e n = 500. j k n−1 k = +1 MN k j P −1 + 1, onde P = n − M N (k − 1) i = N j = P − N (i − 1)
Ent˜ao k j 500−1 + 1 = 56 k = 3·3 k j 5−1 + 1 = 2, i = 3 j = 5 − 3(2 − 1) = 2
onde P = 500 − 3 · 3(56 − 1) = 5
167
Soma em uma sequˆ encia linearizada Agora exibiremos uma f´ormula para a soma Sn dos n termos iniciais de uma sequˆencia linearizada (oriunda de uma PA-3D), conhecidos a1 , r1 , r2 , r3 , M e N .
← plano k
r3 r1
a1
r2
M N
Temos SM ×N×(k−1) =
S(i−1)×N k =
[ 2a111 + (N −1) r1 + (M −1) r2 + (k−2) r3 ] M ×N ×(k−1) 2
[ 2a11k + (N −1) r1 + (i−2) r2 ] (i−1)×N 2
Sijk = jai1k +
j(j−1) r1 2
Sendo
S(n) = SM ×N×(k−1) + S(i−1)×Nk + Sijk F´ormula esta facilmente program´avel. Nota: Na referˆencia [6] mostramos mais aplica¸c˜oes deste tema.
168
2.5
Progress˜ ao aritm´ etica de ordem m
Este foi mais um dos temas que desenvolvemos. Aqui comparecem v´arias f´ormulas in´editas. Existem pelo ao menos duas formas de se definir o que s˜ ao progress˜ oes aritm´ eticas de ordem m, aqui nesta se¸c˜ao vamos optar por uma delas. Inicialmente consideremos a sequˆencia dos cubos dos n´ umeros naturais: 13
23
33
43
53
63
...
216
...
Ou ainda 1
8
27
64
125
Fa¸camos sucessivas diferen¸cas entre os termos consecutivos desta sequˆencia para obter a seguinte sequˆencia: 7
19
37
61
91
...
Procedamos da mesma forma em rela¸c˜ao a sequˆencia acima, para obter: 12
18
24
30
...
E ainda mais uma u ´ ltima diferen¸ca: 6
6
6
...
Obtivemos uma sequˆencia constante. Vamos resumir isto em um s´ o diagrama, assim: 1
8
27
64
125
216
...
7
19
37
61
91
...
∆1 an
12
18
24
30
...
∆ 2 an
6
6
6
...
∆ 3 an
Onde anotamos: ∆m an = m - ´esima diferen¸ca da sequˆencia an .
169
∆0 an
Agora estamos em condi¸c˜oes de estabelecer a seguinte: Defini¸ c˜ ao 3 (Progress˜ ao aritm´etica de ordem m). Uma sequˆencia (an ) ´e uma progress˜ ao aritm´etica de ordem m se e somente se ∆m an = constante 6= 0 Usaremos da seguinte nota¸c˜ao:
P.A.m para uma progress˜ ao aritm´etica de ordem m (m = 0, 1, 2, . . .). Uma P.A.0 ´e qualquer sequˆencia constante, com a exigˆencia de que esta constante seja diferente de 0. Observe as duas primeiras diferen¸cas dos quadrado dos n´ umeros naturais 1
4
9
16
25
...
3
5
7
9
...
P.A.1
2
2
2
...
P.A.0
P.A.2
Ou ainda 1
8
27
64
125
216
...
7
19
37
61
91
...
P.A.2
12
18
24
30
...
P.A.1
6
6
6
...
P.A.0
P.A.3
Observe que a rigor − isto ´e, matematicamente falando − os diagramas acima n˜ ao provam que a sequˆencia an = n2 dos quadrados dos naturais, ou a sequˆencia an = n3 dos cubos dos naturais s˜ ao progress˜oes aritm´eticas de ordem 2 ou 3, respectivamente. Oportunamente veremos como atrav´es da HP Prime podemos provar isto!
170
2.5.1
F´ ormula do termo geral de uma P.A.m
A f´ormula do termo geral de uma progress˜ao aritm´etica vale an = a1 + (n − 1) r Vamos exibir uma f´ormula que generaliza a f´ormula acima para uma P.A. de ordem m qualquer. Antes faremos uma conven¸c˜ao: necessitaremos de dois ´ındices para localizar um termo qualquer nestas sequˆencias, um que se refira ao pr´ oprio termo e, outro, que se refira `a ordem da sequˆencia. Sendo assim, convencionamos:
anm = n - ´esimo termo da P.A. de ordem m. Por exemplo, observe a disposi¸c˜ao dos ´ındices no diagrama a seguir a13
a23
a33
a43
a53
a63
...
a12
a22
a32
a42
a52
...
P.A.2
a11
a21
a31
a41
...
P.A.1
a10
a20
a30
...
P.A.0
P.A.3
Nota: Em toda esta se¸c˜ ao consideraremos n ∈ N = { 1, 2, 3, . . . }
e
m ∈ N ∪ { 0 },
a menos que o contr´ ario seja explicitado. Teorema 5 (F´ormula do termo geral de uma P.A.m ). Em uma P.A.m o n − ´esimo termo vale
anm =
m X n−1 j
j=0
171
a1(m−j)
Observe na f´ormula do termo geral anm =
m X n−1
j =0
j
a1(m−j)
que para calcular o n-´esimo termo de uma P.A.m necessitaremos conhecer, a priori, o primeiro termo de todas as sequˆencias anteriores, ´e o que nos diz o coeficiente a1(m−j) (j = 0, 1, . . . , m) No caso particular de uma P.A.3 , por exemplo, isto implica em que para conhecermos qualquer termo do retˆ angulo em destaque na horizontal a13
a23
a33
a43
a53
a63
...
a12
a22
a32
a42
a52
...
P.A.2
a11
a21
a31
a41
a10
a20
a30
...
P.A.3
P.A.1
P.A.0
...
deveremos conhecer os termos em destaque na vertical − como se observa na equa¸c˜ ao de an3 , veja: an3 = a13 + (n − 1) a12 +
(n − 1)(n − 2)(n − 3) (n − 1)(n − 2) a11 + a10 2 6
Algoritmo Vamos sugerir um algoritmo para se obter os termos a1(m−j) ,
para j = 0, 1, . . . , m.
Dada a P.A.m (m ≥ 1) fazemos diferen¸cas sucessivas entre termos consecutivos das P.A.s de ordem m, m − 1, . . . , 1 e tomamos o primeiro termo de cada uma destas diferen¸cas. Oportunamente faremos um programa para implementar tal algoritmo. Nota: Oportunamente faremos com que a HP Prime nos forne¸ca a f´ormula do termo geral de uma P.A. de ordem qualquer − mas antes faremos na m˜ ao, para exemplificar os detalhes.
172
Exemplo: (a) Encontre a f´ormula do termo geral da seguinte P.A.2 : 1
3
6
10
15
21
...
Solu¸ c˜ ao: Substituindo m = 2 na f´ormula do termo geral, obtemos: an2 =
2 X n−1 j
j=0
=
a1(2−j)
n−1 n−1 n−1 a1(2−0) + a1(2−1) + a1(2−2) 0 1 2
Simplificando, obtemos: an2 = a12 + (n − 1)a11 +
(n − 1)(n − 2) a10 2
(2.1)
Esta ´e a f´ormula do termo geral de uma P.A.2 . Para encontrar os coeficientes a11 e a10 aplicamos o algoritmo, assim:
1 2 1
3 − −
3 1
−
6
10
15
4
5
...
1
...
...
Ou ainda a12 → 1
3
6
10
15
a11 → 2
3
4
5
...
a10 → 1
1
1
...
...
Substituindo estes resultados na equa¸c˜ao (2.1) e simplificando, obtemos: an2 =
n(n + 1) 2
173
(UFRGS 04) Considere a disposi¸c˜ao de n´ umeros abaixo. 1 2
3
4 7
5 8
11
6 9
12
13
10 14
15
····································· O primeiro elemento da quadrag´esima linha ´e a) 777
b) 778
d) 780
e) 781
c) 779
Solu¸ c˜ ao: Vamos obter a f´ormula do termo geral da sequˆencia 1
2
4
7
11
16
...
Aplicando o algoritmo, resulta a12 → 1
2
4
7
11
a11 → 1
2
3
4
5
a10 → 1
1
1
1
...
16
...
...
A sequˆencia em quest˜ao ´e uma P.A.2 ; logo, substituindo estes dados na equa¸c˜ ao (n − 1)(n − 2) an2 = a12 + (n − 1)a11 + a10 2 temos (n − 1)(n − 2) 1 an2 = 1 + (n − 1) 1 + 2 Simplificando n2 − n + 2 an2 = 2 Ent˜ ao 402 − 40 + 2 a40,2 = = 781 2
174
Um dos teoremas mais importantes ´e dado a seguir. Teorema 6 (Teorema da Unifica¸c˜ao). A f´ormula do termo geral de uma P.A.m ´e um polinˆ omio de grau m e, reciprocamente. Observe que o “reciprocamente” do teorema significa que toda sequˆencia que tem como f´ormula do termo geral um polinˆ omio de grau m ´e uma P.A.m − da´ı o nome de teorema da unifica¸c˜ao. Perceba que isto n˜ ao ´e pouco; por exemplo, a sequˆencia (an ) dada por m an = n (m natural arbitrariamente fixado) ´e uma P.A.m e, por conta disto, oportunamente obteremos uma f´ormula geral e n˜ ao recursiva para a soma de potˆencias dos n primeiros n´ umeros naturais. Esta ser´ a uma f´ormula in´edita.
P.A.m em fun¸c˜ ao dos seus pr´ oprios termos Observe a f´ormula do termo geral de uma P.A.m ,
anm =
m X n−1
j=0
j
a1(m−j) | {z } ↑
o termo assinalado nos diz que para se obter um termo qualquer da P.A.m deveremos conhecer o primeiro termo das progress˜oes de ordens inferiores − como j´a haviamos mencionado antes (p. 172). Em nosso entendimento isto ´e um incˆ omodo, por exemplo, se quisermos escrever um programa computacional para encontrar este n-´esimo termo − com resultado num´erico ou simb´ olico. A f´ormula seguinte resolve nosso problema: Teorema 7 (Gentil). Em uma P.A.m ´e v´alida a seguinte identidade:
a1(m−j) =
j X
j (−1)k a(1−k+j)m k
k=0
a1(m−j) ,
para j = 0, 1, . . . , m.
175
Exemplo: Escrever a P.A.2 em fun¸c˜ao dos seus pr´ oprios termos. Solu¸ c˜ ao: Substituindo m = 2 na equa¸c˜ao j X
a1(m−j) =
(−1)k
k=0
temos a1(2−j) =
j X
j a(1−k+j)m k
j (−1) a(1−k+j)2 , k k
j = 1, 2.
k=0
Ent˜ ao j=1
⇒
1 X
a11 =
(−1)k
k=0
1 a(1−k+1)2 = 1 · a22 − 1 · a12 k
e j=2
⇒
a10 =
2 X
2 (−1) a(1−k+2)2 = 1 · a32 − 2 · a22 + a12 k k
k=0
Portanto an2 = a12 + (n − 1) a11 +
(n − 1)(n − 2) a10 2
= a12 + (n − 1)(a22 − a12 ) +
(n − 1)(n − 2) (a32 − 2 · a22 + a12 ) 2
1 1 1 1 1
1 2
3 4
1 3
6
1 4
1
1 5 10 10 5 1 ···································· · · • Tri^ angulo Aritm´ etico de Pascal 176
P.A.m em fun¸c˜ ao dos seus pr´ oprios termos na HP Prime Na tela a seguir
(REPLACE, p. 84)
temos o programa que implementa a f´ormula a1(m−j) =
j X
j (−1) a(1−k+j)m k k
k=0
Neste programa entramos com os m + 1 primeiros termos de uma P.A.m e na saida teremos a1(m−j) ,
para j = 0, 1, . . . , m.
que s˜ ao os termos apontados na f´ormula do termo geral a seguir
anm =
m X n−1 j
j=0
a1(m−j) | {z } ↑
Na tela da direita (acima) exemplificamos para a sequˆencia dos cubos
1
8
27
64
125
216
...
7
19
37
61
91
...
P.A.2
12
18
24
30
...
P.A.1
6
6
6
...
P.A.0
177
P.A.3
A f´ ormula do termo geral na HP Prime Com o programa anterior temos condi¸c˜oes de construir um programa para implementar a f´ormula do termo geral de uma P.A.m anm =
m X n−1 j
j =0
a1(m−j)
isto ´e, desejamos construir um programa no qual entramos com os termos a1(m−j) ,
para j = 0, 1, . . . , m.
e na saida teremos a f´ormula alg´ebrica da P.A.m correspondente. Antes, vejamos alguns detalhes; por exemplo, considere a f´ormula do termo geral de uma P.A.2 an2 = a12 + (n − 1)a11 +
(n − 1)(n − 2) a10 2
Considere a seguinte P.A.2
a12 → 1
4
9
16
25
a11 → 3
5
7
9
...
a10 → 2
2
2
...
...
Substituindo na f´ormula acima, temos an2 = 1 + (n − 1) 3 + ↑ ↑ j=0 j=1
(n − 1)(n − 2) 2 2 ↑ j=2
Quando j = 0 deveremos usar o terceiro termo do vetor [2, 3, 1], quando j = 1 deveremos usar o segundo termo e quando j = 2 deveremos usar o primeiro termo. Tendo esta observa¸c˜ao em conta o programa fica assim
178
Na tela a seguir assinalamos a f´ormula de saida
e montamos uma lista com os 10 primeiros termos da sequˆencia do exemplo. Vejamos mais um exemplo de aplica¸c˜ao do programa, vamos obter a f´ormula do termo geral da P.A.2 seguinte a12 → 1
3
6
10
15
a11 → 2
3
4
5
...
a10 → 1
1
1
...
...
Entrando com os dados no programa obtemos a tela seguinte
Confira com a solu¸c˜ ao dada na p´ agina 173. A prop´osito, com este programa podemos obter uma f´ormula polinomial para quantos n´ umeros primos desejarmos, por exemplo para os cinco primeiros a14 →
2
3
5
7
a13 →
1
2
2
4
a12 →
1
0
2
a11 → −1
2
a10 →
11
3 179
Propriedade fundamental de uma P.A.m Em uma progress˜ ao aritm´etica a diferen¸ca entre dois termos consecutivos quaisquer ´e constante e igual `a pr´ opria raz˜ ao, isto ´e an+1 − an = r Este fato ´e uma decorrˆencia imediata da pr´ opria defini¸ca˜o. Pois bem, perguntamos se existiria uma rela¸c˜ao equivalente para uma P.A.m (?). A resposta encontra-se no seguinte Teorema 8 (Propriedade Fundamental das P.A.m ). m + 1 termos consecutivos de uma P.A.m est˜ ao relacionados pela seguinte identidade:
m X
(−1)k
k=0
m k
a(n−k+m)m = a10
Nota: A rela¸c˜ ao acima se aplica a toda sequˆencia (an ) que tem como f´ormula do termo geral um polinˆ omio de grau m. Exerc´ıcio: Mostre que a10 = m! am onde am ´e o coeficiente de nm no polinˆ omio p(n) de grau m. Exemplo: (a) Trˆes termos consecutivos de uma P.A.2 satisfazem 2 X
2 (−1) a(n−k+2)2 = a10 k k
k=0
Isto ´e 2 2 2 1 2 (−1) a(n−0+2)2 + (−1) a(n−1+2)2 + (−1) a(n−2+2)2 = a10 0 1 2 0
Simplificando 1 a(n+2)2 − 2 a(n+1)2 + 1 an2 = a10 Ou ainda, abandonando o segundo ´ındice 1 an+2 − 2 an+1 + 1 an = a10 180
Exemplo: Seja a sequˆencia (an ) dada por an = n3 . Mostre que a seguinte identidade se verifica: 3 X 3 k (−1) a(n−k+3) = 3! k k=0
Solu¸ c˜ ao: Temos 3 X
3 3 3 0 1 (−1) a(n−k+3) = (−1) a(n−0+3) + (−1) a(n−1+3) k 0 1 k
k=0
3 3 3 + (−1) a(n−2+3) + (−1) a(n−3+3) 2 3 2
Simplificando a express˜ ao ` a direita obtemos 3 X
3 (−1) a(n−k+3) = 1 (n + 3)3 − 3 (n + 2)3 + 3 (n + 1)3 − 1 n3 = 6 k k
k=0
Apenas a t´ıtulo de curiosidade, veja que interessante, na calculadora HP Prime
3 X
3 (−1) (n − k + 3)3 k {z } |k = 0 k
Digitando esta express˜ao
primando esta tecla obtemos este resultado
purge(n)
181
2.5.2
Soma dos termos de uma P.A.m
Para uma progress˜ ao aritm´etica temos a seguinte f´ormula para a soma dos seus n primeiros termos S n = n a1 +
n(n − 1) r 2
Esta f´ormula ´e generalizada no seguinte Teorema 9 (Soma dos termos de uma P.A.m ). Em uma P.A.m a soma Snm dos n termos iniciais vale
Snm
m X n a = j + 1 1(m−j) j=0
Exemplo: Considere a sequˆencia dada por an = n2 , dos quadrados dos naturais. Encontre uma f´ormula para a soma dos seus n primeiros termos. Solu¸ c˜ ao: Pelo teorema da unifica¸c˜ao (p. 175), a sequˆencia dada ´e uma P.A.2 Ent˜ ao 2 X n n n n a1(2−j) = a12 + Sn2 = a11 + a10 j+1 1 2 3 j=0
Do diagrama seguinte
(Algoritmo, p. 172)
a12 → 1
4
a11 → 3
5
9
a10 → 2 Obtemos Sn2 Simplificando, obtemos
n n n = 1+ 3+ 2 1 2 3
12 + 22 + 32 + · · · + n2 =
n(2n + 1)(n + 1) 6
Resultado este j´a conhecido por outros m´etodos.
182
A f´ ormula da soma na HP Prime Comparando a f´ormula da soma Snm
m X n a = j + 1 1(m−j) j=0
com a f´ormula do termo geral
anm =
m X n−1 j
j=0
a1(m−j)
modificamos o programa a seguir
como na tela do centro. Na tela da direita simulamos o exemplo anterior. Exemplo: Os n´ umeros triangulares n(n + 1) ... 2 est˜ ao em P.A.2 . Encontre uma f´ormula para a soma de seus termos. 1
3
6
10
15
...
Solu¸ c˜ ao: Temos Sn2
2 X n n n n a1(2−j) = a12 + = a11 + a10 j+1 1 2 3 j =0
Do diagrama seguinte a12 → 1
3
a11 → 2
3
6
a10 → 1 Obtemos Sn2 Simplificando, obtemos
n n n = 1+ 2+ 1 1 2 3 Sn =
n(n + 1)(n + 2) 6 183
Uma f´ ormula in´ edita “Gostei da sua f´ ormula” Carlos Gustavo T. de A. Moreira (Gugu/IMPA) Durante muitos anos − possivelmente s´eculos − os matem´ aticos estiveram ` a procura de uma f´ormula para a soma de potˆencias dos n´ umeros naturais, ningu´em teve ˆexito, coube a mim materializar esta aspira¸c˜ao. Teorema 10 (Gentil/1997). Sendo m um n´ umero natural arbitrariamente fixado, ´e v´alida a seguinte identidade:
m
1
m
+2
m
+3
Onde: a(m−j) =
+ ··· + n j X
k=0
m
m X n = a(m−j) j+1 j=0
j (−1) (1 − k + j)m k k
Prova: Ver referˆencia [6].
Vejamos um exemplo de aplica¸c˜ao desta f´ormula (m = 3): 13 + 23 + 33 + · · · + n3 =
3 X n a j + 1 (3−j) j=0
n n n n = a3 + a2 + a1 + a 1 2 3 4 0 Onde: a(3−j) =
j X k=0
j 3 (−1) (1 − k + j) ; k k
( j = 0, 1, 2, 3. )
Substituindo e simplificando chegamos a 13 + 23 + 33 + · · · + n3 =
n2 (n + 1)2 4
Nota: Com o uso da HP Prime a manipula¸c˜ao − num´erica ou alg´ebrica − desta f´ormula fica extremamente simplificada.
184
− A f´ ormula in´ edita na HP Prime Nas telas a seguir
1m
+
2m
a(m−j) =
+
3m
j X
k=0
+ ··· +
nm
m X n = a(m−j) j+1 j=0
j (−1)k (1 − k + j)m k
temos os programas que implementam a f´ormula da direita. O segundo programa, CFI, ´e subrotina do primeiro e calcula a(m−j) , repassando para FINED, que sai com a soma 1m + 2m + 3m + · · · + nm na forma alg´ebrica, isto ´e, como fun¸c˜ao de n. Nas telas a seguir temos dois exemplos de simula¸c˜ ao do programa (purge(n))
7−→ Jacques Bernoulli − e nenhum seu contemporˆ aneo − jamais sonhou com esta possibilidade (desenvolvimento). A bem da verdade, n˜ ao precisamos ir muito longe, mesmo ap´ os deduzir esta f´ormula − por volta do ano de 1991 − jamais sonhei que isto um dia seria poss´ıvel.
185
2.5.3
Diferen¸cas de ordem m
A no¸c˜ ao de operador Operador ´e um s´ımbolo que, anteposto a fun¸c˜oes, indica abreviadamente as transforma¸c˜ oes que devem sofrer essas fun¸c˜oes. Usando a terminologia de sistema um operador pode ser entendido como uma caixa. No lado esquerdo, a seta representa a fun¸c˜ao que entra na caixa, e no lado direito, a seta representa a fun¸c˜ ao correspondente que sai da caixa, ap´ os ter sido operada ou transformada, segundo uma lei matem´ atica. Representando um operador gen´erico por T , temos a seguinte figura f
T
Tf
Desde j´a enfatizamos a importˆ ancia de se ter bem claro que f e T f s˜ ao as fun¸c˜ oes de entrada e sa´ıda, respectivamente; enquanto que f (x) e T f (x) s˜ ao valores num´ericos destas fun¸c˜oes. O caso em que estaremos interessados no presente contexto ´e aquele em que o dom´ınio e o contradom´ınio de um operador ´e o conjunto R∞ = (a1 , a2 , a3 , . . . , an , . . .) : ai ∈ R
de sequˆencias de n´ umeros reais. Isto ´e, definiremos operadores que transformam sequˆencias de n´ umeros reais em sequˆencias de n´ umeros reais. Defini¸ c˜ ao 4. Dada uma sequˆencia f : N → R definimos a Diferen¸ ca de ordem m de f pela seguinte f´ormula de recorrˆencia: ∆0 f (n) = f (n),
∆m f (n) = ∆m−1 f (n + 1) − ∆m−1 f (n), m ≥ 1, n ≥ 1.
Observe que ∆m ´e um operador de R∞ em R∞ . Por exemplo, para m = 1, temos f
∆
∆f
Onde ∆1 f (n) = ∆1−1 f (n + 1) − ∆1−1 f (n) 186
Ou ainda ∆ f (n) = ∆0 f (n + 1) − ∆0 f (n) Isto ´e ∆ f (n) = f (n + 1) − f (n)
(2.2)
Para m = 2, temos f
∆2
∆2 f
Temos ∆2 f (n) = ∆ f (n + 1) − ∆ f (n) Utilizando a equa¸c˜ ao (2.2), resulta ∆2 f (n) = ∆ f (n + 1) − ∆ f (n) = [ f (n + 2) − f (n + 1) ] − [ f (n + 1) − f (n) ] = f (n + 2) − 2 f (n + 1) + f (n) Exemplo: Mostre que a diferen¸ca de ordem 1 (ou Primeira Diferen¸ca) de uma P.A.1 resulta em uma P.A.0 . Isto ´e, mostre a seguinte identidade ∆ an1 = an0 Solu¸ c˜ ao: Temos, an1 = a11 + (n − 1)a10 . Ent˜ao: ∆ an1 = a(n+1)1 − an1 = [ a11 + (n + 1) − 1 a10 ] − [ a11 + (n − 1)a10 ] = a10 = an0
187
Exemplo: Mostre que a diferen¸ca de ordem 1 de uma P.A.2 resulta em uma P.A.1 e que a diferen¸ca de ordem 2 resulta em uma P.A.0 . Isto ´e, mostre as seguintes identidades (ii) ∆2 an2 = an0
(i) ∆ an2 = an1 Solu¸ c˜ ao: (i) Temos an2 = a12 + (n − 1)a11 +
(n − 1)(n − 2) a10 2
Ent˜ ao: ∆ an2 = a(n+1)2 − an2 i (n + 1) − 1 (n + 1) − 2) a10 = a12 + (n + 1) − 1 a11 + 2 h
i h (n − 1)(n − 2) a10 − a12 + (n − 1)a11 + 2
= a11 + (n − 1)a10 = an1 (ii) Temos
∆2 an2 = a(n+2)2 − 2 a(n+1)2 + an2 = a10 = an0 Os c´ alculos ficam por conta do leitor. A f´ormula seguinte
an(m−j) = ∆j anm =
j X
j a(n−k+j)m (−1)k k
k=0
nos fornece a P.A. de ordem m − j (j = 1, 2, . . . , m) a partir da P.A.m . Recorrer ` a defini¸c˜ ao 4 (p. 186) para o c´alculo da m-´esima diferen¸ca ´e enfadonho. A f´ormula seguinte nos fornece a m-´esima diferen¸ca sem recursividade.
188
Teorema 11 (m-´esima Diferen¸ca). Dada uma sequˆencia f (n) para todo n´ umero m, natural arbitrariamente fixado, a seguinte identidade se verifica:
∆m f (n) =
m X
(−1)k
k=0
m k
f (n − k + m)
Exemplos: (a) Para m = 1, a primeira diferen¸ca resulta: 1
∆ f (n) =
1 X
1 (−1) f (n − k + 1) k k
k=0
1 1 1 = (−1) f (n − 0 + 1) + (−1) f (n − 1 + 1) 0 1 0
= f (n + 1) − f (n) (b) Para m = 2, a segunda diferen¸ca resulta: ∆2 f (n) =
2 X
(−1)k
k=0
= (−1)0
2 f (n − k + 2) k
2 0 f (n
− 0 + 2) + (−1)1
2 1 f (n −
1 + 2) + (−1)2
2 2 f (n
− 2 + 2)
= 1 · f (n + 2) − 2 · f (n + 1) + 1 · f (n) Na tela a seguir programamos a f´ormula para ∆m f (n)
←− purge(f, n)
189
Considermos a defini¸c˜ao de uma P.A.m dada na p´ agina 170 Defini¸ c˜ ao (Progress˜ ao aritm´ etica de ordem m) Uma sequˆencia (an ) ´e uma progress˜ao aritm´etica de ordem m se e somente se ∆m an = constante 6= 0 Reconsideremos o diagrama dos cubos dos naturais que consta na p. 170 1
8
27
64
125
216
...
7
19
37
61
91
...
∆1
12
18
24
30
...
∆2
6
6
6
...
∆3
∆0
naquela ocasi˜ ao afirmamos que, a rigor, este diagrama n˜ ao prova − pela defini¸c˜ ao − que a sequˆencia dada por an = n3 ´e uma P.A.3 . Vejamos como efetivar esta prova utilizando a HP Prime , faremos isto atrav´es dum programa ultra curto. O programa que consta na tela a seguir recebe a express˜ ao de uma fun¸c˜ ao f (n) e a ordem m da diferen¸ca desejada
a prova encontra-se na tela do centro . . . Pasm´em!. Na tela da direita fazemos mais algumas simula¸c˜ oes do programa. Observe que a prova “feita na m˜ ao” foi aquela do exemplo que consta na p´ agina 181, cujo resumo ´e dado a seguir 3 X
3 (−1) a(n−k+3) = 1 (n + 3)3 − 3 (n + 2)3 + 3 (n + 1)3 − 1 n3 = 6 k k
k=0
190
2.6
Progress˜ ao geom´ etrica de ordem m
Antes de definir as progress˜ oes geom´etricas de ordem m vamos, a t´ıtulo de esclarecimento, dar dois exemplos de tais sequˆencias , deixando a prova para momento oportuno. Qualquer progress˜ ao geom´etrica serve como exemplo de uma progress˜ao geom´etrica de ordem um; Um exemplo de uma progress˜ ao geom´etrica de ordem dois ´e dado pela sequˆencia a seguir: 1
−1
1
−1
1
−1
1
−1
...
Um outro exemplo ´e dado pela sequˆencia seguinte: 22
1
43
84
165
2n(n−1)
...
...
O que estas sequˆencias tˆem em comum ´e o fato de os quocientes sucessivos entre seus termos consecutivos resultar em uma sequˆencia constante, veja: 1
1
−1
−1
1
1
...
1
−1
1
−1
1
...
∆1
−1
−1
−1
−1
...
∆2
1
22
43
84
165
326
...
22
24
26
28
210
...
∆1
22
22
22
22
...
∆2
∆0
Ainda ∆0
Estamos convencionando:
∆m an = m − ´esimo quociente da sequˆencia an
191
Agora estamos em condi¸c˜oes de estabelecer a seguinte: Defini¸ c˜ ao 5 (Progress˜ ao Geom´etrica de ordem m). Uma sequˆencia (an ) ´e uma progress˜ ao geom´etrica de ordem m, se, e somente se ∆m an = constante 6= 1 Usaremos da seguinte nota¸c˜ao:
P.G.m para uma progress˜ ao geom´etrica de ordem m (m = 0, 1, 2, . . .). Uma P.G.0 ´e qualquer sequˆencia constante, com a exigˆencia de que esta constante seja diferente de 1.
2.6.1
F´ ormula do termo geral de uma P.G.m
A f´ormula do termo geral de uma progress˜ao geom´etrica vale an = a1 · q n−1 Vamos exibir uma f´ormula que generaliza a f´ormula acima para uma P.G. de ordem m qualquer. Antes necessitaremos de uma conven¸c˜ao: necessitaremos de dois ´ındices para localizar um termo qualquer nestas sequˆencias, um que se refira ao pr´ oprio termo e, outro, que se refira `a ordem da sequˆencia. Sendo assim, convencionamos:
anm = n - ´esimo termo da P.A. de ordem m. Por exemplo, observe a disposi¸c˜ao dos ´ındices no diagrama a seguir a13
a23
a33
a43
a53
a63
...
a12
a22
a32
a42
a52
...
P.G.2
a11
a21
a31
a41
...
P.G.1
a10
a20
a30
...
P.G.0
192
P.G.3
Teorema 12 (F´ormula do termo geral de uma P.G.m ). Em uma P.G.m o n − ´esimo termo vale:
m Y ( n−1 j ) = a1(m−j)
anm
j=0
Observe que para calcular o n-´esimo termo de uma P.G.m necessitaremos conhecer, a priori, o primeiro termo de todas as sequˆencias anteriores, ´e o que nos diz o coeficiente a1(m−j)
(j = 0, 1, . . . , m)
Algoritmo Vamos sugerir um algoritmo para se obter os termos a1(m−j) ,
para j = 0, 1, . . . , m.
Dada a P.G.m (m ≥ 1) fazemos sucessivos quocientes entre termos consecutivos das P.G.s de ordem m, m − 1, . . . , 1 e tomamos o primeiro termo de cada um destes quocientes. Exemplo: Encontre a f´ormula do termo geral da seguinte∗ P.G.2 : 1
1
−1
−1
1
−1
1
−1
...
Solu¸ c˜ ao: Substituindo m = 2 na f´ormula do termo geral, obtemos: an2
2 Y ( n−1 j ) a1(2−j) = j=0
Simplificando, obtemos: ( n−1 ( n−1 ( n−1 0 ) 1 ) 2 ) an2 = a12 × a11 × a10 Para encontrar os coeficientes a11 e a10 aplicamos o algoritmo, assim: 1 1 −1 ∗
1 ÷ ÷
−1
÷
−1
−1
−1
1
1
−1
...
−1
...
No momento oportuno provaremos que de fato trata-se de uma P.G.2 .
193
...
Ou ainda a12 →
1
1
−1
−1
1
...
a11 →
1
−1
1
−1
...
P.G.1
a10 → −1
−1
−1
...
P.G.0
P.G.2
Substituindo estes resultados na equa¸c˜ao ( n−1 ( n−1 ( n−1 0 ) 1 ) 2 ) an2 = a12 × a11 × a10 e simplificando, obtemos:
an2
( n−1 2 ) = (−1)
P.G.m em fun¸c˜ ao dos seus pr´ oprios termos Na determina¸c˜ ao do n-´esimo termo de uma P.G.m existe um certo incˆ omodo em ter que recorrer ao primeiro termo das progress˜oes de ordens anteriores; al´em do que, se quisermos escrever um programa computacional para encontrar este n-´esimo termo isto ser´ a uma complica¸c˜ao adicional. A f´ormula seguinte nos permite obter uma P.G.m em fun¸c˜ao apenas de seus pr´ oprios termos. Teorema 13. Em uma P.G.m ´e v´alida a seguinte identidade:
a1(m−j) =
j Y
(−1)k
( kj )
a(1−k+j)m
k=0 a1(m−j) ,
para j = 0, 1, . . . , m.
194
P.G.m em fun¸c˜ ao dos seus pr´ oprios termos na HP Prime Na tela a seguir
(REPLACE, p. 84)
temos o programa que implementa a f´ormula a1(m−j) =
j Y
j (−1)k ( ) k a(1−k+j)m
k=0
Neste programa entramos com os m + 1 primeiros termos de uma P.G.m e na saida teremos a1(m−j) ,
para j = 0, 1, . . . , m.
que s˜ ao os termos apontados na f´ormula do termo geral a seguir
anm
m ( n−1 Y j ) = a1(m−j) {z } | j=0 ↑
Na tela da direita (acima) exemplificamos para a sequˆencia a12 →
1
1
−1
−1
1
...
a11 →
1
−1
1
−1
...
P.G.1
a10 → −1
−1
−1
...
P.G.0
195
P.G.2
Vejamos mais uma simula¸c˜ao do programa, para a sequˆencia a seguir 1
22
43
84
165
326
...
22
24
26
28
210
...
∆1
22
22
22
22
...
∆2
∆0
obtemos
A f´ ormula do termo geral na HP Prime Com o programa anterior temos condi¸c˜oes de construir um programa para implementar a f´ormula do termo geral de uma P.G.m
anm
m Y ( n−1 j ) a1(m−j) = j=0
Observe que os nosso programas s˜ ao extremamente compactos, est´eticamente agrad´ aveis, procuramos − sempre que poss´ıvel − ocupar uma u ´ nica tela!
196
O programa fica assim
Na tela da direita simulamos a sequˆencia a12 →
1
1
−1
−1
1
...
a11 →
1
−1
1
−1
...
P.G.1
a10 → −1
−1
−1
...
P.G.0
P.G.2
Na tela a seguir assinalamos a f´ormula de saida
e montamos uma lista com os 10 primeiros termos da sequˆencia do exemplo. Vamos tentar simplificar o expoente na f´ormula do termo geral, considere a tela a seguir
ap´ os assinalar a f´ormula escreva right na linha de entrada (p. 61), pe¸ca uma c´opia da f´ormula, o expoente nos ´e devolvido j´a na forma simplificada,
197
continuamos nas trˆes telas a seguir, onde montamos uma fun¸c˜ao, a2(n), a partir do expoente simplificado
na tela da direita listamos os 10 primeiros termos da P.G.2 . Vejamos mais um exemplo de aplica¸c˜ao do programa, vamos obter a f´ormula do termo geral da P.G.2 seguinte 1
22
43
84
165
326
...
22
24
26
28
210
...
P.G.1
22
22
22
22
...
P.G.0
P.G.2
Entrando com os dados no programa obtemos a tela seguinte
na tela do centro simplificamos o expoente, na tela da direita montamos uma f´ormula do termo geral
a(n) = 4
n2 −n 2
e listamos os 6 primeiros termos da P.G.2 .
198
Propriedade fundamental de uma P.G.m Em uma progress˜ ao geom´etrica o quociente entre dois termos consecutivos quaisquer ´e constante e igual ` a pr´ opria raz˜ ao, isto ´e an+1 / an = q Este fato ´e uma decorrˆencia imediata da pr´ opria defini¸c˜ao. Pois bem, perguntamos se existiria uma rela¸c˜ ao equivalente para uma P.G.m (?). A resposta encontra-se no seguinte Teorema 14 (Propriedade Fundamental das P.G.m ). m + 1 termos consecutivos de uma P.G.m , (anm ), est˜ ao relacionados pela seguinte identidade:
m Y
(−1)k
( mk )
a(n−k+m)m = a10
k=0 Exemplo: Trˆes termos consecutivos de uma P.G.2 satisfazem a seguinte rela¸c˜ao
2 Y
(−1)k
( k2 )
a(n−k+2)2 = a10
k=0 Isto ´e
(−1)0 ( 2 (−1)1 ( 2 (−1)2 ( 2 0) 1) 2) a(n−0+2)2 · a(n−1+2)2 · a(n−2+2)2 = a10
Simplificando
1
1
−2
a(n+2)2 · a(n+1)2 · an2 = a10 Ou ainda, abandonando o segundo ´ındice −2
an+2 · an+1 · an = a10 = q
199
2.6.2
Produto dos termos de uma P.G.m
Para uma progress˜ ao geom´etrica temos a seguinte f´ormula para o produto dos seus n primeiros termos Pn = an1 · q
n(n−1) 2
Este resultado ´e generalizado no seguinte: Teorema 15 (Produto dos termos de uma P.G.m ). Em uma P.G.m o produto Pnm dos n termos iniciais vale
Pnm
m n Y ( j+1 ) a1(m−j) = j=0
Exemplo: Encontre o produto dos n termos iniciais da seguinte P.G.2 : 1
−1
1
−1
1
−1
1
−1
...
Solu¸ c˜ ao: Substituindo m = 2 na f´ormula acima, obtemos: Pn2 =
2 n Y ( j+1 ) a1(2−j)
j =0
Simplificando, obtemos: ( n1 ) ( n2 ) ( n3 ) Pn2 = a12 · a11 · a10 Do algoritmo retiramos os coeficientes, assim: a12 →
1
1
−1
−1
1
...
a11 →
1
−1
1
−1
...
P.G.1
a10 → −1
−1
−1
...
P.G.0
P.G.2
Substituindo estes resultados na equa¸c˜ao precedente e simplificando: ( n3 ) Pn2 = (−1) Deixamos como exerc´ıcio a programa¸c˜ao da f´ormula do produto. 200
2.6.3
Quocientes de ordem m
Aqui estaremos definindo um novo operador, podemos dizer que ´e o dual do operador ∆m definido na p´ agina 186, dentre outras utilidades este operador nos permitir´a demonstrar se uma dada sequˆencia ´e (ou n˜ ao) uma P.G.m Defini¸ c˜ ao 6 (Quociente de ordem m). Dada uma sequˆencia f : N → R (f (n) 6= 0, ∀ n ∈ N) definimos o Quociente de ordem m de f pela seguinte f´ormula de recorrˆencia: ∆0 f (n) = f (n),
∆m f (n) = ∆m−1 f (n + 1) / ∆m−1 f (n), m ≥ 1, n ≥ 1.
∞ Observe que ∆m ´e um operador de R∞ ∗ em R∗ . Por exemplo, para m = 1, temos
f
∆f
∆
Onde ∆1 f (n) = ∆1−1 f (n + 1) / ∆1−1 f (n) Ou ainda ∆ f (n) = ∆0 f (n + 1) / ∆0 f (n) Isto ´e ∆ f (n) = f (n + 1) / f (n) Para m = 2, temos f
∆2 f
∆2
Onde ∆2 f (n) = ∆ f (n + 1) / ∆ f (n) = [ f (n + 2) / f (n + 1) ] = f (n + 2) ×
.
f (n + 1) 201
[ f (n + 1) / f (n) ]
−2
× f (n)
Exemplos: (a) Mostre que o Quociente de ordem 1 (ou Primeiro Quociente) de uma P.G.1 resulta em uma P.G.0 . Isto ´e, mostre a seguinte identidade ∆ an1 = an0 n−1
Solu¸ c˜ ao: Temos, an1 = a11 × a10 . Ent˜ao: ∆ an1 = a(n+1)1 / an1 (n+1)−1
= [ a11 × a10 = a10 = an0
]
.
n−1
[ a11 × a10 ]
(b) Mostre que o Primeiro Quociente de uma P.G.2 resulta em uma P.G.1 e que o Segundo Quociente resulta em uma P.G.0 . Isto ´e, mostre as seguintes identidades (ii) ∆2 an2 = an0
(i) ∆ an2 = an1 Solu¸ c˜ ao: (i) Temos n−1
(n−1)(n−2) 2
an2 = a12 × a11 × a10 Ent˜ ao:
∆ an2 = a(n+1)2 / an2 Isto ´e (n+1)−1
∆ an2 = a12 × a11
((n+1)−1)((n+1)−2) 2
× a10
Fazendo as devidas simplifica¸c˜oes, obtemos:
.
n−1
(n−1)(n−2) 2
a12 × a11 × a10
n−1
∆ an2 = a11 × a10 (ii) Temos,
∆2 an2 = a(n+2)2 × a(n+1)2 = a10 = an0
−2
× an2
Os c´ alculos ficam por conta do leitor. Recorrer ` a defini¸c˜ ao 6 (p. 201) para o c´alculo do m-´esimo Quociente ´e um tanto quanto enfadonho. A f´ormula seguinte nos fornece o m-´esimo Quociente sem recursividade. 202
Teorema 16 (m-´esimo Quociente). Para todo n´ umero m, natural arbitrariamente fixado, a seguinte identidade se verifica:
∆m f (n)
m Y
=
(−1)k
( mk )
f(n−k+m)
k=0 Exemplo: O Terceiro Quociente vale: ∆3 f (n) =
3 Y
3 (−1)k ( k ) f(n−k+3)
k=0
Desenvolvendo, temos (−1)0 ( 3 (−1)1 ( 3 (−1)2 ( 3 (−1)3 ( 3 0) 1) 2) 3) ∆3 f (n) = f(n−0+3) × f(n−1+3) × f(n−2+3) × f(n−3+3)
Ou ainda ∆3 f (n) = [ f (n + 3) ]1 · [ f (n + 2) ]−3 · [ f (n + 1) ]3 · [ f (n) ]−1 De outro modo ∆3 f (n) =
f (n + 3) [ f (n + 1) ]3 [ f (n + 2) ]3 f (n)
Apenas a t´ıtulo de curiosidade, observe que os coeficientes 1, 3, 3, 1 encontram-se na terceira linha do tri^ angulo aritm´ etico de Pascal, veja: 1 1 1 1 1
1 2
3 4
1 3
6
1 4
1
1 5 10 10 5 1 ···································· · ·
203
Quocientes de ordem m na HP Prime Na tela a seguir
∆m f (n)
=
m Y
(−1)k
( mk )
f(n−k+m)
k=0
temos um programa que expande a f´ormula da direita. Por exemplo, na tela
purge(f, n)
rodamos o programa para m = 3. Considermos a defini¸c˜ao de uma P.G.m dada na p´ agina 192 (Progress˜ ao Geom´ etrica de ordem m:) Uma sequˆencia (an ) ´e uma progress˜ ao geom´etrica de ordem m, se, e somente se ∆m an = constante 6= 1 Reconsideremos o diagrama a seguir dado, na p´ agina 198 1
22
43
84
165
326
...
22
24
26
28
210
...
P.G.1
22
22
22
22
...
P.G.0
P.G.2
A rigor, este diagrama n˜ ao prova que a sequˆencia a seguir ´e uma P.G.2 a(n) = 4 204
n2 −n 2
O programa a seguir, dentre outras utilidades, nos permite provar se uma dada sequˆencia ´e (ou n˜ ao) uma P.G.m
Este programa calcula ∆m f (n). Na tela do centro calculamos o primeiro quociente da sequˆencia a(n) = 4
n2 −n 2
na tela da direita encontramos o segundo quociente, o que prova − pela defini¸c˜ao − que a(n) ´e uma P.G.2 . Vejamos mais um exemplo de aplica¸c˜ao do programa anterior com o intuito de evidenciar uma situa¸c˜ ao bizarra apresentada pela calculadora. Reconsidere o diagrama que comparece na p´ agina 194 a12 →
1
1
−1
−1
1
...
a11 →
1
−1
1
−1
...
P.G.1
a10 → −1
−1
−1
...
P.G.0
onde
P.G.2
( n−1 2 ) an2 = (−1)
nas telas a seguir temos o primeiro e o segundo quocientes desta sequˆencia
O que sucedeu? O que acontece ´e que a resposta envolve n´ umeros comple2 xos, provavelmente devido a que i = −1. N˜ao obstante, n˜ ao devemos nos intimidar com isto, ainda aqui devemos confiar na calculadora. 205
Ainda assim podemos trabalhar com estas bizarras criaturas sem precisar pegar no l´ apis para anot´ a-las, por exemplo, na tela a seguir
geramos uma lista a partir da express˜ ao assinalada, de igual modo na tela da direita geramos uma outra lista a partir da express˜ ao assinalada, o que concorda como o diagrama a12 →
1
1
−1
−1
1
...
a11 →
1
−1
1
−1
...
P.G.1
a10 → −1
−1
−1
...
P.G.0
P.G.2
pelo ao menos at´e aonde a vista alcan¸ca! A f´ormula seguinte
an(m−j) =
∆j
anm =
j Y
(−1)k
( kj )
a(n−k+j)m
k=0
nos fornece a P.G. de ordem m − j (j = 1, 2, . . . , m) a partir da P.G.m . Exemplo: Obter an1 a partir da sequˆencia
( n−1 2 ) an2 = (−1) Solu¸ c˜ ao: (m = 2, j = 1). Temos: 1 Y
an(2−1) =
1 (−1)k ( k ) a(n−k+1)2
k=0
Ent˜ ao Isto ´e
(−1)0 ( 1 (−1)1 ( 1 0) 1) an1 = a(n−0+1)2 × a(n−1+1)2 1
−1
an1 = a(n+1)2 × an2
Portanto 1
an1 = (−1)
) ( (n+1)−1 2
−1
× (−1) 206
( n−1 2 )
n−1
= (−1)
Resumo comparativo de f´ ormulas das P.A.m e P.G.m
anm =
m X n−1 j
j=0
a1(m−j) =
j X
(−1)k
k=0
m X
(−1)k
k=0
Snm =
m k
a1(m−j)
anm =
j a(1−k+j)m k
a1(m−j) =
m Y
a(n−k+m)m = a10
k=0
j X
k=0
a(m−j) =
k=0
pp. 175, 194.
(−1)k ( m k ) a(n−k+m)m = a10
Pnm =
pp. 180, 199.
m k
(−1)k
m n Y ) ( j+1 a1(m−j)
pp. 182, 200.
j=0
f (n − k + m)
j a(n−k+j)m k
1m + 2m + 3m + · · · + nm = j X
j (−1)k ( ) k a(1−k+j)m
k=0
(−1)k
an(m−j) = ∆j anm =
j Y
k=0
j=0
m X
pp. 171, 193.
j =0
m X n a j + 1 1(m−j)
∆m f (n) =
m Y ( n−1 j ) a1(m−j)
∆m f (n) =
m (−1)k ( k ) f(n−k+m)
pp. 189, 203.
k=0
an(m−j) = ∆j anm =
j Y
j (−1)k ( k ) a(n−k+j)m
pp. 188, 206.
k=0
m X n a(m−j) j+1
j =0
j (−1)k (1 − k + j)m , k
m Y
j = 0, 1, . . . , m.
207
p. 184.
Uma aplica¸c˜ ao das P.G.m : C´ alculo de combina¸c˜ oes
2.6.4
Introdu¸c˜ ao: A conhecida f´ormula da an´ alise combinat´ oria n n! = (n − r)! r! r nos fornece o n´ umero de combina¸c˜oes dos n elementos de um conjunto, tomados r a r. Mas esta f´ormula n˜ ao nos fornece as tais combina¸c˜oes. O nosso objetivo nesta se¸c˜ ao ´e estabelecer uma f´ormula que tem precisamente esta finalidade. Certa feita, desenvolvendo um trabalho de matem´ atica deparei-me com a necessidade de calcular algumas combina¸c˜oes, teria que desenvolver um programa computacional com esta finalidade. Por onde come¸car? Do meu curso de eletrˆ onica digital sabia que tabelas como, por exemplo, esta a seguir A
B
C
D
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
¯ B ¯ C D → A ¯ B C ¯ D → A
se prestam para encontrarmos todas as combina¸c˜oes poss´ıveis de vari´ aveis (digitais). Fiz algumas tentativas para encontrar uma f´ormula que gerasse estas tabelas, todas fracassaram. Foi quando me veio a ideia de substituir 0 por −1, assim:
208
1
1
1
1
−1
1
1
1
1
−1
1
1
−1
−1
1
1
1
1
−1
1
−1
1
−1
1
1
−1
−1
1
−1
−1
−1
1
1
1
1
−1
−1
1
1
−1
1
−1
1
−1
−1
−1
1
−1
1
1
−1
−1
−1
1
−1
−1
1
−1
−1
−1
−1
−1
−1
−1
At´e ent˜ ao eu j´a contava com o desenvolvimento das progress˜oes geom´etricas de ordem m. Pois bem, observe que os termos da coluna um (j = 1) est˜ ao em P.G.1 , onde an1 = (−1)n−1 . Os termos da coluna dois (j = 2), ( n−1 2 ) est˜ ao em P.G.2 , onde an2 = (−1) . Vamos mostrar que os termos da coluna trˆes (j = 3) est˜ ao em P.G.4 , assim: 1
1
1
1
−1
−1
−1
...
1
1
1
−1
1
1
...
∆1
1
1
−1
−1
1
...
∆2
1
−1
1
−1
...
∆3
−1
−1
−1
...
∆4
Deste diagrama, tiramos (primeira coluna de cima para baixo): a14 = 1, a13 = 1, a12 = 1, a11 = 1, a10 = −1. Substituindo em an4 =
4 Y ( n−1 j ) a1(4−j)
j=0
209
∆0
Ou ainda, em ( n−1 ( n−1 ( n−1 ( n−1 ( n−1 0 ) 1 ) 2 ) 3 ) 4 ) an4 = a14 × a13 × a12 × a11 × a10 Obtemos para a sequˆencia da coluna j = 3, ( n−1 4 ) an4 = (−1) Visando a uma generaliza¸c˜ao, escrevemos: − Coluna j = 1, temos:
n−1
n−1
an1 = (−1)
( 1−1 ) ( n−1 1 ) = (−1) = (−1) 2
− Coluna j = 2, temos: an2
n−1
( 2−1 ) ( n−1 2 ) = (−1) = (−1) 2
− Coluna j = 3, temos: an3
n−1
( 3−1 ) ( n−1 4 ) = (−1) = (−1) 2
Agora fica f´acil generalizar: o n-´esimo termo na sequˆencia ´e o i-´esimo termo na matriz. Sendo assim, temos: i−1
( j−1 ) aij = (−1) 2 Onde, para j = 1, 2, . . . , n e i = 1, 2, . . . , 2n , teremos a matriz (tabela) da p´ agina 209. Claro que tudo isto n˜ ao passa de uma dedu¸c˜ao emp´ırica − indu¸c˜ao vulgar −, contudo na referˆencia [6] damos uma prova de nossas afirma¸c˜oes. Deixamos como exerc´ıcio, a quem interessar possa, provar que os termos j−1 da coluna j da matriz aij acima est˜ ao em P.G.2 A prop´osito, terminamos por encontrar uma f´ormula que gera a matriz agina 208, esta: digital da p´
aij =
1,
0,
se
i−1 2j−1
se
i−1 j−1 2
210
´e par; ´e ´ımpar.
Nota: A bem da verdade, para obter a matriz que comparece em eletrˆ onica digital precisamos “inverter” a matriz da esquerda a seguir A
B
C
D
A
B
C
D
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
obtendo a matriz da direita. A f´ormula para gerar a matriz digital ´e:
aij =
1,
0,
se
i−1 N−j 2
se
i−1 N−j 2
´e par;
´e ´ımpar.
onde N ´e o n´ umero de vari´ aveis l´ ogicas. Para N = 4 teremos a matriz da direita, acima. A prop´osito, a quem interessar possa, deixamos um outro desafio: provar que a sequˆencia a seguir
an = ( −1 ) j−1
´e uma P.G. de ordem 2
n−1 j−1 2
, para todo j arbitrariamente fixado.
211
2.7
Um pequeno interregno cultural
Abaixo Euclides! S´ o se ouve falar das revolu¸c˜oes causadas na f´ısica pela teoria da relatividade de Einstein e pela f´ısica quˆantica
no entanto, os leigos desconhecem que na matem´ atica tamb´em houve uma revolu¸c˜ ao de igual magnitude e importˆ ancia, falamos do advento das geometrias n˜ ao euclidianas no s´eculo XIX
A prop´osito foi de uma destas novas geometrias (n˜ ao euclidianas) que Einstein se utilizou para levantar o edif´ıcio te´orico de sua relatividade geral. Al´em da importˆ ancia em si destas geometrias elas deram uma grande contribui¸c˜ ao ` a filosofia da matem´ atica (e n˜ ao matem´ atica), `a compreens˜ao da natureza da matem´ atica. De fato, a cren¸ca de milˆenios de que a matem´ atica oferece verdades eternas foi esmagada. Essa inesperada rebeli˜ ao intelectual foi causada pela emergˆencia de novos tipos de geometrias, atualmente conhecidas como geometrias n~ ao euclidianas. [. . . ] O ilustre fil´ osofo alem˜ ao Immanuel Kant (1724-1804) nem sempre concordou com Hume, mas tamb´em exaltava a geometria euclidiana a um status de certeza absoluta e validade inquestion´ avel. (Mario Livio/Deus ´e Matem´ atico?)
212
Distˆ ancias n˜ ao euclidianas Quando o esp´ırito se apresenta `a cultura cient´ıfica, nunca ´e jovem. Ali´as ´e bem velho, porque tem a idade de seus preconceitos. Aceder `a ciˆencia ´e rejuvenescer espiritualmente, ´ e aceitar uma brusca muta¸ c˜ ao que contradiz o passado. (Gaston Bachelard/grifo nosso)
No bojo das geometrias n˜ ao euclidianas sugiram as assim denominadas distˆ ancias n˜ ao euclidianas. Aqui estaremos exibindo uma delas e mostrando que quase nada est´ a imune ` a programa¸c˜ao na HP Prime . Medindo distˆ ancias Dados dois pontos em um plano, como a seguir A
•
B
•
a matem´ atica admite n˜ ao apenas uma mas v´arias maneiras de se medir a distˆ ancia entre estes dois pontos. Apenas para contextualizar tentaremos convencer o leitor de que surgem de maneira natural diferentes modos de se medir a distˆ ancia entre estes pontos. De outro modo: em matem´ atica (e tamb´em na f´ısica) n˜ ao existe uma u ´ nica maneira de se medir distˆ ancias. Em outras palavras, a r´egua vendida em nossas livrarias, ou as trenas vendidas em nosso com´ercio, n˜ ao s˜ ao os u ´ nicos instrumentos de medida. Vejamos um exemplo trivial do nosso dia a dia: o t´ axi. Suponhamos que algu´em queira se deslocar (em um t´axi) do ponto A ao ponto B − separados por uma esquina − e que o ponto B esteja a uma distˆ ancia de quatro unidades para a direita e trˆes unidades abaixo do ponto A, assim: A
A
•
4
•
5
•B
3
•B
213
Pois bem, existem duas distˆ ancias entre os pontos A e B: a que ´e seguida pelo taxista, 4 + 3 = 7; e a que seria mais econˆ omica para o passageiro (“em linha reta”): 5. Se o leitor refletir um pouco se dar´ a conta de que vez ou outra, mesmo numa simples caminhada, teremos que optar (por uma quest˜ao de conveniˆencia) por uma ou outra destas duas distˆ ancias − como por exemplo, ao “cortar caminho”. Resumindo, entre os pontos A e B no plano a seguir
A
A
B
B
− Distˆancia usual (euclidiana)
− Distˆancia do t´axi
mostramos dois modos de medir a distˆ ancia entre os mesmos. Na verdade, podemos ter muitas alternativas para medir a distˆ ancia entre dois pontos em um conjunto qualquer.
A distˆ ancia quˆ antica Considere o intervalo unit´ ario [ 0, 1 [ e a seguinte aplica¸c˜ao d : [ 0, 1 [ × [ 0, 1 [ −→ R definida por
d(x, y) = min |x − y|, 1 − |x − y|
min signfica m´ınimo, min{ a, b } significa o menor dos n´ umeros a e b; na tela a seguir mostramos como acessar esta fun¸c˜ao na HP Prime
Na tela do centro mostramos como definir a fun¸ca ˜o distˆ ancia quˆ antica, dando Enter teremos a tela da direita. 214
Como funciona a distˆ ancia quˆantica? Funciona de modo bem simples, n˜ ao ´e necess´ario nenhum manual de instru¸c˜ao, veja: dados dois pontos x e y, ambos no intervalo [ 0, 1 [, entre chaves obteremos dois valores, escolhemos o menor deles como sendo a distˆ ancia entre os pontos x e y. Por exemplo d(0; 0, 4) = min |0 − 0, 4|, 1 − |0 − 0, 4| = min 0, 4; 0, 6 = 0, 4 d(0; 0, 6) = min |0 − 0, 6|, 1 − |0 − 0, 6| = min 0, 6; 0, 4 = 0, 4 d(0; 0, 8) = min |0 − 0, 8|, 1 − |0 − 0, 8| = min 0, 8; 0, 2 = 0, 2
(Nota: distˆ ancia ou m´ etrica, d´ a no mesmo). Na HP Prime fica assim
Observe a localiza¸c˜ ao geom´etrica destes pontos: t 0, 4
0
q1 2
t
t
0, 6
0, 8
1
Por oportuno, observe que d (0; 0, 4) = d (0; 0, 6) > d (0; 0, 8). ´ isto mesmo que o leitor testemunha!: os dois primeiros pontos (0, 4 e 0, 6) E est˜ ao a uma mesma distˆ ancia da origem, e, como se n˜ ao bastasse, o terceiro ponto (0, 8) est´ a mais pr´ oximo da origem que os dois primeiros . . . pasm´em! Poder´ıamos, com inteira raz˜ ao, cham´ a-la de “m´etrica maluca” ou at´e, quem sabe, “m´etrica hipermaluca”. No entanto, vejamos o que o eminente fil´ osofo tem a nos dizer a este respeito: Tudo isso, que a ` primeira vista parece excesso de irraz˜ ao, na verdade ´e o efeito da finura e da extens˜ ao do esp´ırito humano e o m´etodo para encontrar verdades at´e ent˜ ao desconhecidas. (Voltaire)
215
A r´ egua quˆ antica A partir da f´ormula que define a distˆ ancia quˆantica
d(x, y) = min |x − y|, 1 − |x − y|
derivamos a equa¸c˜ ao
d (x, 0) =
x,
se 0 ≤ x ≤ 21 ;
1 − x,
se
1 2
≤ x < 1.
que nos d´ a a distˆ ancia de um ponto x ∈ [ 0, 1 [ `a origem d (x, 0)
a partir da qual constru´ımos a r´egua quˆantica, assim:
0
0,1
0,2
0,3
0,4
0,5
0,4
0,3
0,2
0,1
0
Esta r´egua serve para medir a distˆ ancia entre um ponto qualquer do intervalo num´erico [ 0, 1 [ para a origem. Veja dois exemplos
0
p
p
0,1
0,2
p✉ 0,3
p
p
p
0,4
0,5
0,6
↓
0
p✉ 0,7
p
p
0,8
0,9
↓
1 2
p
1
1
ր
Origem 0
0,1
0,2
0,3
0,4
216
0,5
0,4
0,3
0,2
0,1
0
Qu^ antica
Usual
Na figura a seguir colocamos as duas r´eguas − usual (ou euclidiana) e quˆantica − lado a lado para efeitos de compara¸c˜ao, veja:
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
0
0,1
0,2
0,3
0,4
0,5
0,4
0,3
0,2
0,1
0
Observe que a r´egua quˆantica coincide com a r´egua usual s´o at´e a metade, a partir da´ı as duas diferem radicalmente. Na p´ agina 215 mostramos as seguintes rela¸c˜oes: d (0; 0, 4) = d (0; 0, 6) > d (0; 0, 8). Vejamos isto diretamente na r´egua quˆantica: 0
p
p
p
p
p
p
p
p
p
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
A
1 2
t
p
B
0,4
0,5
0,4
0
C
t
1
1
t
ր
Origem 0
0,1
0,2
0,3
0,3
0,2
0,1
0
Temos dA = 0, 4 , dB = 0, 4
e
dC = 0, 2.
De outro modo dA = 0, 4 = dB
e
dC = 0, 2 < dA
Em palavras: Contrariando a r´egua euclidiana, a r´egua quˆ antica nos diz que os pontos A e B, na figura acima, est˜ ao a uma mesma distˆ ancia da origem, e, “o que ´e pior”, ela nos diz que o ponto C est´ a mais pr´ oximo da origem que o ponto A . . . pasm´em! Nota: Um estudo mais detalhado e rigoroso deste tema − a quem interessar possa − encontra-se em nosso livro [7], onde mostramos algumas aplica¸c˜oes da r´egua quˆantica ` a f´ısica quˆantica. 217
2.8
A Curva de Peano e o Cubo Hiperm´ agico
A curva de Peano O s´eculo XIX se iniciou com a descoberta de que curvas e fun¸c˜oes n˜ ao precisavam ser do tipo bem comportado − o que at´e ent˜ao se acreditava. Peano∗ em 1890 mostrou at´e que ponto a matem´ atica podia insultar o senso comum quando publica a sua famosa e bizarra curva cobrindo totalmente a superf´ıcie de um quadrado. A curva de Peano hoje possui aplica¸c˜oes em compress˜ao de imagens digitais. Para o que segue consideramos I = [ 0, 1 ] o intervalo num´erico unit´ ario. M = I × I, quadrado unit´ ario, d a distˆ ancia euclidiana. Defini¸ c˜ ao 7 (Curva de Peano). Chama-se curva de Peano num espa¸co m´etrico (M, d) a uma aplica¸c˜ao cont´ınua χ : I → M tal que χ I = M .
Uma sobreje¸ca ˜o cont´ınua. Existem na literatura v´arias formas de se construir uma curva de Peano, a que apresentaremos aqui ´e in´edita − foi o que denominamos “Curva de Peano simplificada”. Pois bem, iremos construir a seguinte curva de Peano:
2 3
p
1 2
χ
1 3
s
p
z s
p
1
1
0
0
p
p
1 3
2 3
1
A bem da verdade, aqui neste livro iremos deixar de lado os aspectos topol´ ogicos† da curva, o leitor interessado na constru¸c˜ao completa dever´ a consultar a referˆencia [7]. Ademais, s˜ ao duas − ou melhor trˆes − as raz˜ oes para que eu decidisse incluir este t´opico neste livro sobre programa¸c˜ao da HP Prime. Primeira, para exemplificar como funciona a curva de Peano utilizamos muita programa¸c˜ao na HP Prime; segunda, aproveito para divulgar um trabalho meu, j´a que deliberadamente n˜ ao escrevo artigos de divulga¸c˜ao (escrevo livros); terceira, todo este conte´ udo j´a encontrava-se pronto em um outro livro meu, s´ o fiz as devidas adapta¸c˜oes. ∗
Giuseppe Peano (1858 − 1932), natural de Cuneo, It´ alia, foi professor da Academia Militar de Turin, com grandes contribui¸c˜ oes ` a Matem´ atica. Seu nome ´e lembrado hoje em conex˜ ao com os axiomas de Peano dos quais dependem tantas constru¸c˜ oes rigorosas da ´ algebra e da an´ alise. † S˜ ao os aspectos que envolvem a no¸c˜ ao de distˆ ancia e continuidade.
218
Nosso objetivo agora ser´ a construir a aplica¸c˜ao χ 1
1
χ
s
p
1 2
2 3
p
z s
p
1 3
0
0
p
p
1 3
2 3
1
Perguntamos: como transferir um ponto do intervalo para o quadrado?
Pr´ e-requisitos Desenvolvimento bin´ ario Iremos necessitar do desenvolvimento na base bin´ aria de um n´ umero real do intervalo [ 0, 1 ]. Se 0 ≤ x ≤ 1, a express˜ ao x = 0, x1 x2 . . . xn . . . de x na base 2 significa que x=
x1 x x + 22 + · · · + nn + · · · 2 2 2
por exemplo
3 0 1 1 0 0 0 = 1 + 2 + 3 + 4 + 5 + 6 + ··· 8 2 2 2 2 2 2 Desde j´a evidenciaremos um importante detalhe: do ponto de vista de convergˆencia de s´eries, tamb´em temos
1 0 1 1 1 0 3 = 1 + 2 + 3 + 4 + 5 + 6 + ··· 8 2 2 2 2 2 2
Deveremos fazer uma escolha: que sequˆencia bin´ aria ser´ a a representa¸ c˜ ao bin´ aria∗ da fra¸c˜ ao 38 ? Esolheremos a primeira sequˆencia, a qual chamaremos de Verdadeira codifica¸c˜ao; em fun¸c˜ao desta escolha a segunda sequˆencia, isto ´e, 0 1 0 1 1 1 . . ., ser´ a chamada de Falsa codifica¸c˜ao, ou pseudo 3 codifica¸c˜ ao da fra¸c˜ ao 8 . ∗
c˜ ao bin´ aria, gosto mais deste u ´ ltimo termo. Representa¸c˜ ao bin´ aria ou codifica¸
219
Algoritmo Como obter a representa¸c˜ao bin´ aria de x ∈ [ 0, 1 ]? Iremos fornecer um algoritmo. Inicialmente vejamos um exemplo: Obter o desenvolvimento bin´ ario de x = 1/3 com uma precis˜ao ε = 0, 01. Solu¸ c˜ ao: Inicialmente calculamos n0 e depois m, assim 1 m = ⌊2n0 · x⌋ n0 = log2ε , Nota: ⌊ x ⌋ ´e o maior inteiro que n˜ ao supera x. Fun¸c˜ao piso.
Ent˜ ao
1 n0 = log = 21. =6 ⇒ m= 2 · 3 Agora desenvolvemos o inteiro m = 21 na base bin´ aria: 1 0,01 2
6
21 = 1 · 24 + 0 · 23 + 1 · 22 + 0 · 21 + 1 · 20
Dividindo a equa¸c˜ ao anterior por q = 2n0 = 26 , temos 21 1 0 1 0 1 6 = 2 + 3 + 4 + 5 + 2 2 2 2 2 26 1 0 1 0 1 0 = 1 + 2 + 3 + 4 + 5 + 6 2 2 2 2 2 2 Conclus˜ao: (010101)2 ´e o desenvolvimento bin´ ario de x = 1/3 com erro menor que um cent´esimo. Observe que
21 1
6 − = 0, 005208 . . . < ε. 3 2 Para que possamos “automatizar” todo o processo anterior fornecemos a seguinte f´ormula:
xn =
1, 0,
se se
m
n −n 2 0
m
n0 − n
2
´e ´ımpar; (n = 1, 2, . . . , n0 ) ´e par.
Exemplo: Considere o exemplo anterior em que n0 = 6 e m = 21. Ent˜ao: m 21 = n=1 ⇒ = 0 ⇒ x1 = 0 n0 − n 6−1 2
2
n=2 ⇒
m
n −n 2 0
=
21 26−2
=1
⇒ x2 = 1
.................................................. m 21 = = 21 ⇒ x6 = 1 n=6 ⇒ n0 − n 6−6 2
2
220
Alternativamente, podemos escrever a f´ormula anterior sob a seguinte nota¸c˜ao:
xn = mod
j
m n0 − n
2
k
,2
Leia-se: xn = resto da divis˜ao de
(n = 1, 2, . . . , n0 )
j
m n0 − n
2
k
por 2.
O programa a seguir
nos devolve a representa¸c˜ ao bin´ aria de um x ∈ [ 0, 1 [ com uma precis˜ao ε. Na tela do centro temos os desenvolvimentos bin´ arios de x=
1 , 3
ε = 0.01
e
ε = 0.001
e na tela da direita temos os desenvolvimentos bin´ arios de 1 x= √ , 2
ε = 0.01
221
e
ε = 0.001
Demultiplexa¸c˜ ao e Multiplexa¸c˜ ao Estas s˜ ao duas opera¸c˜oes com sequˆecias bin´ arias, muito utilizadas em inform´ atica, vejamos do que se trata. Demultiplexa¸ c˜ ao Dada uma sequˆencia de digitos x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 . . . a opera¸c˜ ao de demultiplexa¸ c˜ ao consiste em separ´a-la nas subsequˆencias de ´ındices ´ımpares e pares, assim:
x1 x3 x5 x7 x9 . . . x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 . . . x2 x4 x6 x8 x10 . . .
Apenas a t´ıtulo de informa¸c˜ao, na eletrˆ onica digital existe um circuito eletrˆ onico (Chip) que realiza a demultiplexa¸c˜ ao de uma sequˆencia bin´ aria. Na tela a seguir
mostramos um programa que realiza a demultiplexa¸c˜ao de uma sequˆencia; na tela do centro temos um exemplo; na tela da direita obtivemos o desenvolvimento bin´ ario da fra¸c˜ao 53 e ap´ os sua demultiplexa¸c˜ao. Nota: A sequˆencia a ser demultiplexada deve ser fornecida em uma lista, a sa´ıda ´e uma matriz de duas linhas.
222
Multiplexa¸ c˜ ao Dadas duas sequˆencias (xn ) e (yn ) x = x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 . . . y = y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 . . . a opera¸c˜ ao de multiplexa¸ c˜ ao consiste em entrela¸c´a-las, assim:
x1 x2 x3 x4 x5 x6 x7 x8 . . . x1 y 1 x2 y 2 x3 y 3 x4 y 4 . . .
y1 y2 y3 y4 y5 y6 y7 y8 . . .
Apenas a t´ıtulo de informa¸c˜ ao, na eletrˆ onica digital existe um circuito eletrˆ onico (Chip) que realiza as duas opera¸c˜oes: multiplexa¸c˜ ao e demultiplexa¸c˜ao de sequˆencias bin´ arias.
Na tela ao lado mostramos um programa que realiza a multiplexa¸c˜ao de duas sequˆencias.
A seguir vemos uma simula¸c˜ ao do programa:
101010 ... 10011100... 011000 ...
Nota: As sequˆencias a serem multiplexadas devem devem constar em duas linhas de uma matriz, a sequˆencia resultante ´e fornecida em uma lista. 223
Pois bem, vamos retomar a constru¸c˜ao da curva de peano χ
2 3
1 3
s
p
1 2
χ
p
z s
p
1
1
0
0
p
p
1 3
2 3
A curva de Peano se resume no quadro a seguir
B
1
z
Ψ
{ 0, 1 }N
η
1
(ver p. 225)
1
ξ
s(x, y)
s η2
s
0
s
η1
0
{ 0, 1 }N
1
• Curva de Peano simplificada A composi¸c˜ ao destas v´arias transforma¸c˜oes ´e a transforma¸c˜ao procurada. Resumindo, temos 1
2 3
p
1 2
χ
1 3
s
p
z s
p
1
0
0
p
p
1 3
2 3
1
onde χ : I −→ I × I ´e tal que
z 7−→ (x, y)
χ = ξ ◦ η ◦ Ψ ⇒ χ(z) = ξ ◦ η ◦ Ψ (z) = ξ ◦ η Ψ(z) = ξ η(Ψ(z)) 224
η
Ψ
Os programas acima implementam as respectivas fun¸c˜oes.
B
1
Ψ
{ 0, 1 }N
η
ξ
1
s(x, y)
s z
η2
s
s
0
η1
{ 0, 1 }N
0
1
• Curva de Peano simplificada Vejamos qual o papel de cada uma destas transforma¸c˜oes: • Ψ recebe um ponto do intervalo [ 0, 1 ] e nos devolve sua representa¸c˜ao bin´ aria: B 1
Ψ : [ 0, 1 ] −→ B
xr
Ψ
r(xn )
x 7−→ (xn ) 0
O seguinte produto cartesiano: { 0, 1 }N = { 0, 1 } × { 0, 1 } × { 0, 1 } × · · · ´e o conjunto das sequˆencias infinitas de 0 s e 1 s. B (conjunto das codificaao tˆem todos os termos ¸co ˜es) ´e o subconjunto de {0, 1}N cujos elementos n˜ ∗ iguais a 1, a partir de alguma posi¸c˜ao . Por exemplo: 0101010101... ∈ B ∗
e
1 0 1 0 1 0 0 1 1 1 1 1 . . . 6∈ B
Com a u ´ nica exce¸c˜ ao feita para a sequˆencia 1 1 1 1 . . . a qual incluimos neste conjunto.
225
• A aplica¸c˜ ao (η) ´e definida assim: B
η: B (xn )
N
✿
N
{0, 1} × {0, 1} η1 (xn ), η2 (xn )
{0, 1}N
η
q (η
1 ,η2 )
(xn ) q N
{0, 1}
Onde ηi : B −→ {0, 1}N (i = 1, 2) s˜ ao dadas por η1 (xn ) = η1 (x1 x2 x3 . . .) = x1 x3 x5 . . .
η2 (xn ) = η2 (x1 x2 x3 . . .) = x2 x4 x6 . . . Isto ´e, η1 toma de xn sua subsequˆencia de ´ındices ´ımpares e η2 toma de xn sua subsequˆ encia de ´ındices pares, ou seja, a aplica¸c˜ao η demultiplexa a sequˆencia xn . • A aplica¸c˜ ao ξ ´e definida assim: N
N
ξ : {0, 1} × {0, 1} (xn ), (yn )
onde
(x, y) =
∞ X x
n n
n=1
∞ X y n n
2 n=1
ξ
N
{0, 1}
(yn )
2
,
I×I (x, y)
1
✒ r
(xn )
(1,1)
r (x, y)
{0, 1}N
0
1
Ou seja, a aplica¸c˜ ao ξ toma um par de sequˆencias bin´ arias e converte para sua representa¸c˜ ao decimal. Informamos ao leitor que esta contru¸c˜ao da curva de Peano ´e uma das mais simples; ademais, estamos deixando de fora os aspectos topol´ogicos. A seguir damos alguns exemplos com o objetivo de clarear o que vimos anteriormente. 226
Exemplo: 1) Calcule a imagem, por χ, de z = 0.8.
B
1
Ψ
{ 0, 1 }N
η
1
ξ
s(x, y)
s
zs
η2
s
0
η1
0
{ 0, 1 }N
1
Solu¸ c˜ ao: Desenvolvendo 0.8 na base 2, temos 0.8 = 1 1 0 0 1 1 0 0 1 1 0 0 1 1 . . . ent˜ao Ψ(0.8) = 1 1 0 0 1 1 0 0 1 1 0 0 1 1 . . .. Aplicamos η `a sequˆencia anterior:
11001100110011...
↓Ψ
1 0 1 0 1 0 1 01 . . .
η1 η2
101010101...
↑
η
Temos η1 , η2 ∈ {0, 1}N × {0, 1}N . Agora aplicamos ξ ao ponto η1 , η2 : ξ (η1 , η2 ) = (x, y), onde x=y=
Portanto χ(0.8) =
1
0
. A geometria do exemplo fica
2 3
p
1 3
ξ
s
p
χ
p
1
0.8 s 1 2
2 2 3, 3
0 1 0 2 1 1 + 2 + 3 + 4 + ··· = 3 2 2 2 2
0
p
p
1 3
2 3
227
1
Exemplo: Quais pontos do intervalo chegam no ponto
1 1 4, 2
Solu¸ c˜ ao: Iniciamos com a curva de Peano,
B
1
Ψ
{ 0, 1 }N
η
ξ
?
1
s(x, y)
s η2
zs
0
s
η1
{ 0, 1 }N
0
1
da figura a seguir
{ 0, 1 }N
(a, b) s
1 4 1 2
s
( 41 , 12 )
{ 0, 1 }N
concluimos que a e b s˜ ao sequˆencias que devem convergir para 1/4 e 1/2, respectivamente. Tendo em conta que 1 2
= 10000...
1 4
= 01000...
1 2
= 01111...
1 4
= 00111...
Interregno: Estas igualdades devem ser entendidas no sentido de convergˆencia e n˜ ao de codifica¸c˜ao (representa¸c˜oes). Se bem que as duas primeiras s˜ ao tamb´em codifica¸c˜ oes − por pertencerem a B. Nota: Consulte em nosso livro [7] o item “O Mito das Ambiguidades nas Representa¸ co ˜es Decimais”.
228
Pois bem, temos as seguintes possibilidades para o par (a, b): 1 4
1 2
↓
↓
(0 1 0 0 0 . . . , 1 0 0 0 0 . . .) (0 1 0 0 0 . . . , 0 1 1 1 1 . . .) (0 0 1 1 1 . . . , 1 0 0 0 0 . . .) (0 0 1 1 1 . . . , 0 1 1 1 1 . . .)
(Multiplexa duas sequ^ encias)
Multiplexando cada um destes pares de sequˆencias, obtemos: 010000 ... 01100000...
100000 ... 010000 ...
00110101...
011111 ... 001111 ...
01001010...
100000 ... 001111 ...
00011111...
011111 ...
6∈ B
Au ´ ltima sequˆencia n˜ ao pertence ao conjunto das codifica¸c˜oes − pode ser ignorada. Convertendo as outras trˆes para decimal, obtemos: 3 01100000... = , 8
00110101... =
10 , 48
01001010... =
7 24
Portanto estes s˜ ao os trˆes pontos do intervalo que ser˜ ao guardados na posi¸c˜ao 14 , 12 do quadrado. Isto ´e, χ
3 8
=χ
10 48
=χ
7 1 1 = , 24 4 2
Ou ainda, uniformizando os denominadores 10 14 18 1 1 =χ =χ = , χ 48 48 48 4 2 229
Imaginando o intervalo como sendo uma das arestas do quadrado, temos
)=χ( 14 )=χ( 18 χ( 10 )=( 14 , 21 ) 48 48 48
s( 1 , 1 ) 4
2
χ
sss Observe que um outro modo de interpretar χ ´e que ela transfere os pontos da aresta do quadrado, para o pr´ oprio quadrado, de modo que toda a superf´ıcie do quadrado ´e coberta e, como se n˜ ao bastasse, podemos ter at´e trˆes pontos da aresta transferidos para uma mesma posi¸c˜ao do quadrado. ∗
∗
∗
)=( 14 , 21 ) )=χ( 14 )=χ( 18 χ( 10 48 48 48
s( 1 , 1 ) 4
2
χ
sss
10 48
=
14 48 18 48
5 24
= 0.208 . . .
=
7 24
= 0.292 . . .
=
3 8
10 48
= 0.375
230
ր ↑ տ 18 14 48
48
Encontrar os pontos do intervalo que s˜ ao levados no ponto 21 , 34 . Solu¸ c˜ ao: Da experiˆencia adquirida no exemplo anterior, podemos escrever: VV : (1 0 0 0 0 . . . , 1 1 0 0 0 . . .) −→ 1 1 0 1 0 0 0 0 0 . . . VF : (1 0 0 0 0 . . . , 1 0 1 1 1 . . .) −→ 1 1 0 0 0 1 0 1 0 . . . 1 3 , → 2 4 FV : (0 1 1 1 1 . . . , 1 1 0 0 0 . . .) −→ 0 1 1 1 1 0 1 0 1 . . . FF : (0 1 1 1 1 . . . , 1 0 1 1 1 . . .) −→ 0 1 1 0 1 1 1 1 1 . . . 6∈ B
Onde: V significa a verdadeira codifica¸c˜ao (da fra¸c˜ao) em bin´ ario e F a falsa (apenas no sentido de convergˆencia). As sequˆencias ap´ os cada seta foram obtidas pela multiplexa¸c˜ao das sequˆencias em cada par ordenado. Sendo assim temos:
39 48
(1 0 0 0 0..., 1 1 0 0 0...)
Ψ
η
concluimos que λ
=
1 3 2, 4
{ 0, 1 }N
ξ
. Da alternativa seguinte { 0, 1 }N ( 21 , 34 )
1 1 0 0 0 1 0 1 0...
ր 0
39 48 B
1 37 48
( 21 , 34 )
1 1 0 1 0 0 0 0 0...
ր 0
{ 0, 1 }N
B
1
(1 0 0 0 0..., 1 0 1 1 1...)
Ψ
η
concluimos que λ
37 48
=
1 3 2, 4
{ 0, 1 }N
. Da alternativa seguinte { 0, 1 }N
B
1
ξ
( 21 , 34 )
0 1 1 1 1 0 1 0 1... 23 48
0
(0 1 1 1 1..., 1 1 0 0 0...)
Ψ
concluimos que λ
η 23 48
=
1 3 2, 4
{ 0, 1 }N
. 231
ξ
A multiplexa¸c˜ ao na u ´ ltima alternativa ( FF ) n˜ ao resulta em B, portanto n˜ ao ´e considerada. Resumindo, temos
3 (1 2, 4)
s
)=( 21 , 43 ) λ( 23 )=λ( 37 )=λ( 39 48 48 48
χ
s
ss
Seja (x, y) um ponto do quadrado. Com um pouco de reflex˜ao o leitor chegar´ a` as seguintes conclus˜oes: 1a ) Se ambas as coordenadas, x e y, forem fra¸c˜oes di´ adicas∗ ent˜ao, neste ponto s˜ ao colocados trˆes pontos da aresta do quadrado. De outro modo: a curva passa trˆes vezes por pontos com ambas as coordenadas fra¸c˜oes di´ adicas; ao forem fra¸c˜oes di´ adicas ent˜ao, neste 2a ) Se ambas as coordenadas, x e y, n˜ ponto ´e colocado apenas um ponto da aresta do quadrado. De outro modo: a curva passa uma u ´ nica vez em pontos com ambas as coordenadas n˜ ao di´ adicas; 3a ) Se apenas uma das coordenadas, x ou y, ´e uma fra¸c˜ao di´ adica ent˜ao, neste ponto ´e colocado dois pontos da aresta do quadrado. De outro modo: a curva passa duas vezes em pontos com apenas uma coordenada fra¸c˜ao di´ adica; Uma quarta propriedade, menos evidente, ´e a que segue 4a ) O conjunto dos pontos duplos e triplos ´e infinito enumer´ avel e denso no quadrado. Infinito enumer´avel significa que podemos “cont´ a-los ”, assim como contamos os Naturais: N : 1,
2,
3,
4,
5, . . .
Denso significa que: fixado qualquer ponto no quadrado; arbitrariamente pr´ oximo − ou t˜ ao pr´ oximo quanto se queira − deste ponto fixado existir´a um ponto duplo ou triplo.
∗ Uma fra¸c˜ ao di´ adica ´e aquela cujo numerador ´e um n´ umero inteiro e cujo denominador ´e uma potˆencia de 2.
232
O quadrado hiperm´ agico O exorcismo do fantasma das ambiguidades ([7]) nos permitiu definir e construir uma esp´ecie de “volta” da curva de Peano. Defini¸ c˜ ao 8 (Quadrado hiperm´ agico). Chama-se quadrado hiperm´ agico num espa¸co m´etrico M, d uma aplica¸c˜ao ϕ : M → I cont´ınua e injetiva.
A curva de Peano ´e uma aplica¸c˜ao χ : I → M cont´ınua, sobrejetora e n˜ ao injetora; o quadrado hiperm´ agico ´e uma aplica¸c˜ao ϕ : M → I cont´ınua, injetora e n˜ ao sobrejetora. O que h´ a de paradoxal no quadrado hiperm´ agico ´e que conseguimos guardar (armazenar) injetivamente todos os pontos do quadrado no intervalo unit´ ario e ainda sobra espa¸co. Imaginando o intervalo como sendo uma das arestas do quadrado, ϕ guarda o quadrado em uma de suas arestas, sem sobrepor um ponto a outro e, “o que ´e pior”, ainda sobra espa¸co na aresta!. − como estaremos mostrando oportunamente. Pois bem, o quadrado hiperm´ agico resume-se na composi¸c˜ao das aplica¸c˜oes mostradas na figura a seguir:
B B
(1,1)
1
ν
µ y
s
0
x
1
r
σ
r
1
B
rz
0
• Quadrado hiperm´ agico
µ
ν
233
σ
• µ ´e a seguinte aplica¸c˜ ao µ : I × I −→ B × B (x, y) 7−→ (xn ), (yn ) B B
(1,1)
1
ν
µ y
s
0
x
1
r
σ
r
1
rz
0
B
• A aplica¸c˜ ao ν executa uma multiplexagem das sequˆencias (xn ) e (yn ). • Definimos a aplica¸c˜ ao σ como σ = Ψ−1 .
(p. 225)
Resumindo o quadrado hiperm´ agico temos (1,1)
1
ϕ
r
0
1
rz
0
1
onde ϕ : I × I −→ I ´e tal que
(x, y) 7−→ z
ϕ = σ ◦ ν ◦ µ ⇒ ϕ(x, y) = σ ◦ ν ◦ µ (x, y) = (σ ◦ ν) µ(x, y) = σ ν µ(x, y)
Vejamos agora, atrav´es de exemplos, como essa transforma¸c˜ao atua.
234
Exemplos: 1) Como um primeiro exemplo, vamos transferir o centro do quadrado para 1 1 o intervalo. O centro do quadrado ´e dado pelo par ordenado 2 , 2 . B B
(1,1)
1
ν
µ y
s
0
x
1
r
σ
r
1
rz
0
B
Solu¸ c˜ ao: A transforma¸c˜ ao µ obt´em a representa¸c˜ao bin´ aria de um ponto do quadrado (codifica-o), ou seja µ
1 1 = (1 0 0 0 0 0 . . . , 1 0 0 0 0 0 . . .) , 2 2
A transforma¸c˜ ao ν faz uma multiplexa¸ca ˜o destas duas sequˆencias, veja: 100000 ... ν
11000000...
100000 ...
A transforma¸c˜ ao σ converte esta u ´ ltima sequˆencia em um n´ umero do intervalo (decodifica), assim: 3 1 1 0 0 0 σ(1 1 0 0 0 0 0 0 . . .) = 1 + 2 + 3 + 4 + 5 + · · · = 4 2 2 2 2 2 3 1 1 Finalmente, ϕ 2 , 2 = 4 . Vamos resumir o que aconteceu: B
B
s 11000...
1
µ y
0
s1
(
x
1 2, 2
1000...
ν
s
1
σ
s3 4
) 1
1000...
235
B
0
2) Como mais um exemplo, vamos transferir o ponto
1 1 3, 3
para o intervalo.
B (1,1)
1
ν
B
µ y
s
0
x
1
r
σ
r
1
rz
0
B
Solu¸ c˜ ao: Aplicando a transforma¸c˜ao µ a este ponto obtemos 1 1 µ , = (0 1 0 1 0 1 0 1 0 . . . , 0 1 0 1 0 1 0 1 0 . . .) 3 3 Aplicando ν a este ponto obtemos:
010101010... ν
001100110011...
010101010...
Entregando esta u ´ ltima sequˆencia a σ, obtemos 0 0 1 1 0 0 1 1 + ··· 1 + 2 + 3 + 4 + 5 + 6 + 7 + 2 2 2 2 2 2 2 28 1 1 1 1 1 1 = + 7 + 11 + · · · + + 8 + 12 + · · · 23 2 2 24 2 2
σ(0 0 1 1 0 0 1 1 0 0 1 1 . . .) =
=
Portanto ϕ
1 1 3, 3
2 1 1 + = 15 15 5
= 51 . Geometricamente, temos B B
s 00110011...
1
µ
0101...
ν
s
1
σ
y
s
( 31 , 13 )
s1
5
0
x
1
0101...
236
B
0
Imagem real e imagem virtual Dentro do contexto de desenvolvimento do quadrado hiperm´ agico surgiu a necessidade de considerarmos o que vamos chamar de “imagem virtual de um ponto” − que s˜ ao pontos do intervalo que n˜ ao s˜ ao imagens por ϕ de pontos do quadrado, mas que, no entanto, s˜ ao “geradas” por estes, num sentido a ser exemplificado a seguir. Inicialmente consideremos, por exemplo, a sequˆencia a(k) dada assim a(k) = 0 0 1 0 1 0 1 0 1 0 1 0 . . . Essa sequˆencia pertence a B. A multiplexagem a seguir
0111111... 0000000...
001010101010... ∈ B
mostra que a sequˆencia a(k) n˜ ao ´e imagem, por ν, de nenhum ponto do espa¸co B × B, observe B 00101010...
B 01111... 6∈ B
µ
0
ν
σ σ(a(k)) =
00000...
1
1
sa(k)
1
B
0
1 6
Logo, nenhum ponto de B × B chega na sequˆencia a(k). Isso implica dizer que a imagem, por σ, de a(k), n˜ ao ser´ a ocupada por nenhum ponto do quadrado. Digo, σ a(k) , n˜ ao ser´ a imagem, por ϕ, de nenhum ponto do quadrado. Este ´e um exemplo do que vamos definir logo mais como sendo uma “imagem virtual”. Para encontr´ a-la, calculamos: σ(0 0 1 0 1 0 1 0 1 0 1 0 . . .) =
=
0 1 0 1 0 1 0 0 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + ··· 2 2 2 2 2 2 2 2 1 1 1 1 3 + 5 + 7 + ··· = 6 2 2 2
237
A partir do quadrado hiperm´ agico a seguir
B
y
0
x
σ
r
1
B
rz
0
µ s
1
r
(1,1)
1
ν
B
bije¸ca˜o
definimos: Defini¸ c˜ ao 9 (Imagem real e imagem virtual). As imagens de pontos de B, por σ, dividem-se em reais e virtuais; um ponto de B gera uma imagem real se ele ao ser demultiplexado suas sequˆencias componentes pertencem a B × B, caso contr´ ario dizemos que este ponto gera uma imagem virtual.
238
Exemplo: Vamos considerar o ponto
1 1 4, 2
Como visto anteriormente, temos
, do quadrado.
1 4
1 2
↓
↓
V V : (0 1 0 0 0 . . . , 1 0 0 0 0 . . .) V F : (0 1 0 0 0 . . . , 0 1 1 1 1 . . .) F V : (0 0 1 1 1 . . . , 1 0 0 0 0 . . .) F F : (0 0 1 1 1 . . . , 0 1 1 1 1 . . .) Multiplexando cada um destes pares de sequˆencias, obtemos: V :
010000 ...
V :
100000 ...
V :
010000 ...
F :
011111 ...
F :
001111 ...
V :
100000 ...
F :
001111 ...
F :
011111 ...
01100000...
gera imagem real
00110101...
gera imagem virtual
01001010...
gera imagem virtual
00011111...
6∈ B
Volvendo ao exemplo dado na p´ agina 228: 3 01100000... = , 8
00110101... =
Ent˜ao ϕ
1 1 3 , = 4 2 8
os outros dois pontos s˜ ao imagens virtuais.
239
10 , 48
01001010... =
7 24
Imaginando o intervalo como sendo uma das arestas do quadrado, temos, 18 ϕ( 14 , 21 )= 38 = 48
ponto
10 48
buraco
s( 1 , 1 ) 4
2
ϕ 14 48
buraco
s
Nota: Aqui estamos usando buraco como sinˆ onimo de imagem virtual (“vazio”). Observe que um outro modo de interpretar ϕ ´e que ela transfere todos os pontos do quadrado para uma de suas arestas, sem sobrepor um ponto a outro e, “o que ´e pior”, ainda sobram lugares vazios na aresta . . . Pasm´em!. ∗
∗
∗
Repetimos aqui − para efeito de compara¸c˜ao − a figura da p´ agina 230:
)=χ( 14 )=χ( 18 χ( 10 )=( 14 , 21 ) 48 48 48
s( 1 , 1 ) 4
2
χ
sss
10 48
=
14 48 18 48
5 24
= 0.208 . . .
=
7 24
= 0.292 . . .
=
3 8
10 48
= 0.375
240
ր ↑ տ 18 14 48
48
De uma outra perspectiva:
s( 1 , 1 ) 4
s( 1 , 1 )
2
4
2
ϕ
χ
sss
s
χ B
1
z
Ψ
{ 0, 1 }N
η
1
ξ
s(x, y)
s η2
s
s
0
η1
0
{ 0, 1 }N
1
B B
(1,1)
1
ν
µ y
s
0
x
1
r
σ
r
1
rz
0
B
ϕ A pergunta que colocamos ´e: ao guardarmos um ponto do quadrado na aresta, teremos como recuperar este ponto? Ou ainda
ϕ s (x, y)
χ sz
?s (x, y)
A resposta ´e pela afirmativa, observe que σ = Ψ−1 e que, ao demultiplexarmos uma sequˆencia de B obtemos uma sequˆencia de B × B e, ademais, µ ´e uma bije¸c˜ ao. Para um exemplo, veja a figura no topo desta p´ agina.
241
2.8.1
A curva de Peano no cubo
De modo inteiramente an´ alogo, podemos construir uma curva de Peano χ entre o intervalo unit´ ario e o cubo unit´ ario [ 0, 1 ]3 , assim:
η3 B
1
Ψ p
1
{ 0, 1 }N
s
η2
s
0
1
{ 0, 1 }N
η1 0
ξ
s
η
{ 0, 1 }N
1
• Curva de Peano no Cubo Nesta figura η faz uma demultiplexagem de uma sequˆencia xn ∈ B. Isto ´e, η toma uma sequˆencia xn e a separa em trˆes subsequˆencias, η (xn ) = η1 (xn ), η2 (xn ), η3 (xn ) Ent˜ ao podemos tomar:
η1 ( x1 x2 x3 . . . ) = x1 x4 x7 x10 . . . η2 ( x1 x2 x3 . . . ) = x2 x5 x8 x11 . . . η3 ( x1 x2 x3 . . . ) = x3 x6 x9 x12 . . . Veja, x1 x4 x7 x10 . . . x1 x2 x3 x4 x5 . . .
x2 x5 x8 x11 . . . x3 x6 x9 x12 . . .
η
Ψ
Os programas acima implementam as respectivas fun¸c˜oes. 242
Exemplos: 1) Calcule a imagem, por χ, de p = 0.5.
η3 B
1
Ψ p
1
{ 0, 1 }N
ξ
s
η
s
η2
s η1
0
0
1
{ 0, 1 }N
{ 0, 1 }N
1
Solu¸ c˜ ao: Desenvolvendo 0.5 na base 2, temos 1 0 0 0 0 . . . = 12 . Ent˜ao Ψ(0.5) = 1 0 0 0 0 0 0 . . .. Agora aplicamos η `a sequˆencia anterior: η1 (1 0 0 0 0 0 0 0 0 . . .) = 1 0 0 0 0 0 0 . . .
η
η2 (1 0 0 0 0 0 0 0 0 . . .) = 0 0 0 0 0 0 0 . . . η3 (1 0 0 0 0 0 0 0 0 . . .) = 0 0 0 0 0 0 0 . . .
Agora aplicamos ξ ao ponto η1 , η2 , η3 , ent˜ao ξ (η1 , η2 , η3 ) = (x, y, z), obtendo λ 12 = 21 , 0, 0 . 2) Calcule a imagem, por χ, de p = 2/3.
Solu¸ c˜ ao: Desenvolvendo 2/3 na base 2, obtemos
2 3
= 1 0 1 0 1 0 1 0 1 0 . . ..
Ent˜ao Ψ(2/3) = 1 0 1 0 1 0 1 0 1 0 . . .. Aplicamos η `a sequˆencia anterior: η1 (1 0 1 0 1 0 1 0 1 . . .) = 1 0 1 0 1 0 1 . . . η2 (1 0 1 0 1 0 1 0 1 . . .) = 0 1 0 1 0 1 0 . . .
η
η3 (1 0 1 0 1 0 1 0 1 . . .) = 1 0 1 0 1 0 1 . . . Agora aplicamos ξ ao ponto η1 , η2 , η3 , ent˜ao, ξ (η1 , η2 , η3 ) = (x, y, z), obtendo χ 23 = 23 , 13 , 23 . Graficamente, temos 1
1 z 1 2
s s
χ y
1 x
0 1
243
3) Encontre todos os pontos do intervalo que s˜ ao transferidos, por χ, para o centro do cubo. Isto ´e, resolva, para p, a equa¸c˜ao χ(p) = 21 , 12 , 12 . Solu¸ c˜ ao: Temos as seguintes alternativas:
1 1 1 2, 2, 2
→
VVV : (1 0 0 0..., 1 0 0 0..., 1 0 0 0...)→ 1 1 1 0 0 0 0 0 0... =
49 56
VVF : (1 0 0 0..., 1 0 0 0..., 0 1 1 1... )→ 1 1 0 0 0 1 0 0 1... =
43 56
VFV : (1 0 0 0..., 0 1 1 1..., 1 0 0 0... )→ 1 0 1 0 1 0 0 1 0... =
37 56
VFF : (1 0 0 0..., 0 1 1 1..., 0 1 1 1... )→ 1 0 0 0 1 1 0 1 1... =
31 56
FVV : (0 1 1 1..., 1 0 0 0..., 1 0 0 0... )→ 0 1 1 1 0 0 1 0 0... =
25 56
FVF : (0 1 1 1..., 1 0 0 0..., 0 1 1 1... )→ 0 1 0 1 0 1 1 0 1... =
19 56
FFV : (0 1 1 1..., 0 1 1 1..., 1 0 0 0... )→ 0 0 1 1 1 0 1 1 0... =
13 56
FFF : (0 1 1 1..., 0 1 1 1..., 0 1 1 1... )→ 0 0 0 1 1 1 1 1 1... =
7 56
Nota: As sequˆencias ap´ os a seta foram obtidas via multiplexa¸c˜ao das trˆes sequˆencias ` a esquerda. Os digitos na cor vermelha, em cada sequˆencia, representam o per´ıodo; isto ´e, s˜ ao os trˆes digitos que se repetem em seguida. Para ilustrar a finalidade do diagrama acima consideremos, por exemplo, a segunda das combina¸c˜oes (VVF), assim:
η3 B
1 43 56
1
{ 0, 1 }N
s
Ψ
s
ξ
s
η
↑
η2
1 1 0 0 0 1 0 0 1... η1 0
0
1
{ 0, 1 }N
{ 0, 1 }N
1
(1 0 0 0..., 1 0 0 0..., 0 1 1 1... )
Deste diagrama concluimos que, χ
43 56
=
1 1 1 2, 2, 2
.
Das combina¸c˜ oes anteriores apenas uma (FFF) n˜ ao pertence a B, portanto n˜ ao ´e oriunda da codifica¸c˜ao de nenhum ponto do intervalo [ 0, 1 ], sendo assim temos: χ
43 37 31 25 19 13 1 1 1 49 =χ =χ =χ =χ =χ =χ = , , 56 56 56 56 56 56 56 2 2 2 244
Podemos imaginar o intervalo unit´ ario como sendo uma das arestas do cubo unit´ ario. Na figura seguinte plotamos os sete pontos da aresta que s˜ ao transferidos para o centro do cubo
χ
z x y
Observe que em duas dimens˜oes (quadrado) trˆes pontos da aresta s˜ ao transferidos para o centro do quadrado. Em trˆes dimens˜oes (cubo) sete pontos da aresta s˜ ao transferidos para o centro do cubo. Seja (x, y, z) um ponto do cubo. Com um pouco de reflex˜ao o leitor chegar´ a` as seguintes conclus˜oes: adicas ent˜ao, neste ponto 1a ) Se as trˆes coordenadas, x, y e z, forem fra¸c˜oes di´ s˜ ao colocados sete pontos da aresta do cubo (digo, do intervalo unit´ ario). a adicas ent˜ ao, neste ponto 2 ) Se apenas duas coordenadas forem fra¸c˜oes di´ s˜ ao colocados quatro pontos da aresta do cubo. 3a ) Se apenas uma coordenada for fra¸c˜ao di´ adica ent˜ao, neste ponto s˜ ao colocados dois pontos da aresta do cubo. 4a ) Se nenhuma das coordenadas ´e di´ adica ent˜ao, neste ponto ´e colocado um u ´ nico ponto da aresta do quadrado. 5a ) O conjunto dos pontos m´ ultiplos ´e infinito enumer´avel e denso no cubo. As telas a seguir referem-se ` a figura da p´ agina 244.
Ψ
η
245
ξ
2.8.2
O cubo hiperm´ agico
A exemplo do que foi feito para o quadrado tamb´em podemos transferir todos os pontos do cubo para uma de suas arestas. Sendo que esta transforma¸c˜ ao cumpre as mesmas condi¸c˜oes que a do quadrado: ´e cont´ınua, injetiva e n˜ ao sobrejetiva. B
1
B
η3
µ 0
1
sp
s
ν s
σ
η2
1
B
0
η1 B 1
• Cubo hiperm´ agico Chamaremos de γ a composta de todas estas transforma¸c˜oes. Exemplos: 1) Calcule γ 0, 0, 21 . Solu¸ c˜ ao: Temos µ 0, 0,
1 2
= 1 0 0 0 0 0 0 0 . . .. Logo,
1 = (0 0 0 0 0 0 . . . , 0 0 0 0 0 0 . . . , 1 0 0 0 0 0 . . .) 2
Agora aplicamos ν ao ponto anterior. Observa¸ c˜ ao: Dadas trˆes sequˆencias xn , yn e zn , ν faz uma multiplexagem das mesmas, isto ´e x1 x2 x3 x4 . . . y1 y2 y3 y4 . . .
x1 y1 z1 x2 y2 z2 x3 y3 z3 x4 y4 z4 . . .
z1 z2 z3 z4 . . .
ν
Portanto 000000 ... 000000 ...
001000000 ...
100000 ...
246
Temos ν(0 0 0 0 0 0 . . . , 0 0 0 0 0 0 . . . 1 0 0 0 0 0 . . .) = 0 0 1 0 0 0 0 . . . Agora, aplicamos σ ` a sequˆencia anterior, obtendo 0 0 1 0 0 0 1 σ(0 0 1 0 0 0 0 0 0 . . .) = 1 + 2 + 3 + 4 + 5 + 6 + · · · = 8 2 2 2 2 2 2 1 1 Portanto, γ 0, 0, 2 = 8 . 2) Calcule γ 21 , 12 , 12 .
Solu¸ c˜ ao: Temos 12 = 1 0 0 0 0 0 0 0 . . .. Logo 1 1 1 = (1 0 0 0 0 0 . . . , 1 0 0 0 0 0 . . . , 1 0 0 0 0 0 . . .) µ , , 2 2 2 Agora aplicamos ν ao ponto anterior, obtendo ν (1 0 0 0 0 0 . . . , 1 0 0 0 0 0 . . . , 1 0 0 0 0 0 . . .) = 1 1 1 0 0 0 0 0 0 . . .
- Agora aplicamos, ` a sequˆencia anterior, σ. Ent˜ao, 1 1 1 0 0 1 1 1 7 σ 111000000... = 1 + 2 + 3 + 4 + 5 + ··· = + + = . 2 4 8 8 2 2 2 2 2 7 1 1 1 Portanto, γ 2 , 2 , 2 = 8 . Graficamente, temos 1 1
s7
z
8
γ y
0
1
x
s1 8
0 1
Deste exemplo e do exemplo 3 (p. 244) concluimos que o centro do cubo vai para o ponto 7/8 e gera seis buracos na aresta do cubo (ou no intervalo unit´ ario). Observe que paradoxal: A exemplo do que ocorreu no quadrado aqui tamb´em conseguimos, por γ, transferir o cubo para uma de suas arestas, com a “agravante” de que agora “mais” buracos ser˜ ao gerados na aresta. 2 Por exemplo um ponto (x, y) ∈ [ 0, 1 [ com ambas as coordenadas di´ adicas gera dois buracos na aresta do quadrado; por outro lado um ponto (x, y, z) ∈ [ 0, 1 [3 com duas coordenadas di´ adicas gera quatro buracos na aresta do cubo e com trˆes coordenadas di´ adicas gera seis buracos. Resumindo: estamos transferindo para a aresta um “volume” maior de pontos enquanto o n´ umero de lugares vazios na aresta aumenta. Naturalmente que, o que foi feito para o quadrado e o cubo, se estende sem dificuldade ao “hipercubo”. 247
Buracos na aresta do cubo: O centro do cubo vai, por γ, para o ponto 7/8 ∈ [ 0, 1 ] e “gera” seis buracos (imagens virtuais) no intervalo. Veja isto no diagrama:
1 1 1 2, 2, 2
→
VVV : (1 0 0 0..., 1 0 0 0..., 1 0 0 0...)→ 1 1 1 0 0 0 0 0 0... =
49 56
VVF : (1 0 0 0..., 1 0 0 0..., 0 1 1 1... )→ 1 1 0 0 0 1 0 0 1... =
43 56
VFV : (1 0 0 0..., 0 1 1 1..., 1 0 0 0... )→ 1 0 1 0 1 0 0 1 0... =
37 56
VFF : (1 0 0 0..., 0 1 1 1..., 0 1 1 1... )→ 1 0 0 0 1 1 0 1 1... =
31 56
FVV : (0 1 1 1..., 1 0 0 0..., 1 0 0 0... )→ 0 1 1 1 0 0 1 0 0... =
25 56
FVF : (0 1 1 1..., 1 0 0 0..., 0 1 1 1... )→ 0 1 0 1 0 1 1 0 1... =
19 56
FFV : (0 1 1 1..., 0 1 1 1..., 1 0 0 0... )→ 0 0 1 1 1 0 1 1 0... =
13 56
FFF : (0 1 1 1..., 0 1 1 1..., 0 1 1 1... )→ 0 0 0 1 1 1 1 1 1... =
7 56
Por exemplo, a pseudo codifica¸ca ˜o V V F “gera” um buraco no espa¸co B3 e este, por sua vez, gera um buraco em B: 1 1 0 0 0 1 0 0 1 . . ., que, por sua vez, gera um outro buraco em [ 0, 1 [: 43/56.
B
1
B
1 43 56
η3
µ 0
ν
σ
η2
1
0
B η1 B
1 (1 0 0 0 ..., 1 0 0 0 ..., 0 1 1 1 ...)
Ψ
ν
248
σ
Nos seis pontos seguintes: 43/56 = 0, 7679; 37/56 = 0, 6607; 31/56 = 0, 5536; 25/56 = 0, 4464; 19/56 = 0, 3393; 13/56 = 0, 2321. localizam-se os buracos na aresta do cubo (ou no intervalo unit´ ario),veja:
γ
z
χ
x y
Na figura da esquerda plotamos a imagem do centro do cubo, bem como os buracos “reservados” na aresta − pelo centro. Na figura da direita repetimos, para efeitos de compara¸c˜ ao, a figura da p´ agina 245.
χ η3 B
1
Ψ p
1
{ 0, 1 }N
ξ
s
η
s
η2
s η1
0
0
{ 0, 1 }N
1
B
1
B
η3
µ
1
{ 0, 1 }N
ν
1
sp
s
σ
s 0
η2
1
B η1 B
1
γ 249
0
2.9
C´ alculo da taxa de juros
Polinˆ omios e Matem´ atica Financeira Introdu¸c˜ ao
× Veremos que, mesmo em casos onde se deve ter um n´ umero como sa´ıda de um programa a programa¸c˜ao alg´ebrica pode facilitar bastante; apenas para contextualizar, vejamos um importante exemplo da matem´ atica financeira: “Um congelador no valor de $ 950, 00 a vista ´e vendido em 12 pagamentos mensais e sem entrada no valor de $ 100, 00 cada. Qual a taxa de juros cobrada pela loja?” Ao tentar resolver esse problema nos deparamos com a seguinte equa¸c˜ao: 100 i(1 + i)12 = (1 + i)12 − 1 950
Como isolar i (taxa) nesta equa¸c˜ao? O sentimento generalizado nos livros de matem´ atica financeira ´e que n˜ ao ´e poss´ıvel isolar a taxa nesta equa¸c˜ao. Por exemplo∗ , “Se ´e poss´ıvel uma f´ormula especial para o c´alculo de n, tal n˜ ao acontece para o c´ alculo de i, quando se conhecem P V , P M T e n. O c´alculo de i s´ o ´e poss´ıvel por aproxima¸c˜oes sucessivas. Calcula-se o valor de P V com v´arias taxas at´e que se consigam valores pr´ oximos do valor dado para P V . Em seguida, com o aux´ılio da regra de trˆes, faz-se uma interpola¸c˜ao para determinar a taxa correspondente a esse valor dado.” Este ´e um m´etodo tosco de resolu¸c˜ao − comparado com o que aqui vamos apresentar. Vamos mostrar que ´e poss´ıvel sim obter “uma f´ ormula especial para o c´ alculo de i”. Veremos como, atrav´es da computa¸c˜ao alg´ebrica, obter uma f´ormula para o c´ alculo da taxa e sem aproxima¸c˜oes − num sentido a ser esclarecido oportunamente. ∗
Veras, Lilia Ladeira. Matem´ atica Financeira 6. ed. S˜ ao Paulo: Atlas, 2009.
250
C´ alculo de presta¸c˜ oes Quando compramos um artigo a prazo efetuamos geralmente seu pagamento em uma s´erie de presta¸c˜ oes igualmente espa¸cadas no tempo. Essa s´erie de presta¸c˜ oes ´e equivalente a um pagamento u ´ nico, que seria o pagamento `a vista. A f´ormula − deduzida nos livros de matem´ atica financeira − a ser utilizada ´e a seguinte:
V = P ·
1 − ( 1 + i )−n i
(2.3)
Essa f´ormula nos fornece o valor `a V ista de uma compra feita em n parcelas iguais a P quando embutida uma taxa de juros de valor i. Vamos passar esta f´ormula para a linguagem da calculadora financeira HP 12C , temos
V =P ·
1−( 1+i )−n i
P V = P MT ·
1−( 1+i )−n i
Onde: P V = Valor Presente e P M T = Pagamento = Presta¸c˜oes.
S´ eries postecipadas e antecipadas Nos pagamentos peri´ odicos, os pagamentos podem ser feitos no in´ıcio do per´ıodo de capitaliza¸c˜ ao, quando s˜ ao chamados de antecipados, ou no final do per´ıodo, quando s˜ ao chamados de postecipados. Por exemplo, os sal´ arios, por serem pagos no fim do mˆes, s˜ ao rendas postecipadas; as mensalidades escolares, por sua vez, s˜ ao rendas antecipadas. P
P
P
P
···
p
p
p
p
0
1
2
3
···
− Antecipados
P
P
p
p
p
p
0
1
2
3
− Postecipados
251
··· ···
Temos a seguinte f´ormula:
PMT = PV ·
i(1 + i)n−1 (1 + i)m (1 + i)n − 1
como uma generaliza¸c˜ ao da f´ormula (2.3) (p. 251). Quando m = 0 temos as s´eries antecipadas e m = 1 as s´eries postecipadas. Obviamente que a f´ormula acima contempla outras possibilidades. Por exemplo, se a primeira parcela for paga no final do segundo per´ıodo (ou in´ıcio do terceiro) (m = 2): P
P
P
p
p
p
p
p
0
1
2
3
4
··· − Postecipados, m = 2
···
C´ alculo da taxa de juros Reconsideremos o seguinte problema: Um congelador no valor de $ 950, 00 a vista ´e vendido em 12 pagamentos mensais e sem entrada no valor de $ 100, 00 cada. Qual a taxa de juros cobrada pela loja? Substituindo os dados na f´ormula a seguir, temos: PMT = PV · temos 100 = 950 · Ou ainda
i(1 + i)n−1 (1 + i)m (1 + i)n − 1
i(1 + i)12−1 (1 + i)1 (1 + i)12 − 1
i(1 + i)12 10 = 12 (1 + i) − 1 95
Para isolar i nesta equa¸c˜ao iremos iniciar com o binˆ omio de Newton: (a + b)n =
n X n k=0
k
an−k b k
Tomando nesta equa¸c˜ ao a = 1 e b = i, resulta: n
(1 + i ) =
n X n k=0
252
k
ik
Vejamos um caso particular desta equa¸c˜ao: 3 X 3 k 3 0 3 1 3 2 3 3 (1 + i) = i = i + i + i + i k 0 1 2 3 3
k=0
= 1 + 3i + 3i2 + i3
Resulta um polinˆ omio do terceiro grau em i. Polinˆ omios ´e uma das especialidades da HP Prime , como j´a vimos. Apenas para pegar intimidade com o somat´ orio, n
(1 + x ) =
n X n k=0
k
xk
vamos criar uma fun¸c˜ ao na HP Prime , como na tela a seguir
ap´ os , teremos a tela da direita, onde vemos duas simula¸c˜oes. Lembramos que todas as vari´ aveis envolvidas (n, k, x) devem estar resetadas. Lembramos que a letra i ´e reservada para a unidade imagin´ aria. Ademais, observe o seguinte
←−
Vamos manipular alg´ebricamente a f´ormula PMT = PV ·
i(1 + i)n−1 (1 + i)m (1 + i)n − 1
para obter: (1 + i)n − 1 − i(1 + i)n+m−1 · P V /P M T = 0 253
Ou ainda, tendo em conta n
(1 + x ) =
n X n
k
k=0
xk
temos n X n k=0
k
k
i −1−i·
n+m−1 X k=0
n+m−1 k
i k · P V /P M T = 0
Sendo n X n k=0
k
e n+m−1 X k=0
n+m−1 k
n n n 1 0 i + ··· + in i = i + 1 n 0 | {z } k
=1
k
i =
n+m−1 0
0
i + ··· +
n+m−1 n+m−1
i n+m−1
Observe que temos uma diferen¸ca entre dois polinˆ omios em i: n X n
|k=1
k {z
p1 (i)
k
i − P V /P M T · }
|
n+m−1 X k=0
{z
n+m−1 k
p2 (i)
i k+1 = 0 }
Para o pr´ oximo programa fixe a seguinte configura¸c˜ao em sua calculadora (Vista de in´ıcio e Vista do CAS):
254
O programa seguinte calcula a taxa de juros
de acordo com a f´ormula
PMT = PV ·
i(1 + i)n−1 (1 + i)m (1 + i)n − 1
Problema: Um congelador no valor de $ 950, 00 a vista ´e vendido em 12 pagamentos mensais iguais e sem entrada no valor de $ 100, 00 cada. Qual a taxa de juros cobrada pela loja? O diagrama de fluxo de caixa da opera¸c˜ao ´e visto a seguir: PV
PMT
PMT
p
p
p
p
p
p
p
p
p
p
p
p
p
0
1
2
3
4
5
6
7
8
9
10
11
12
Solu¸ c˜ ao: Entrando no programa anterior com os dados: P V = 950,
P M T = 100,
n = 12,
m = 1 (sem entrada)
o programa nos devolve a seguinte lista:
{ −178.6066 0.0000 3.7909 }
Ou seja: o polinˆ omio resultante do problema em quest˜ao possui trˆes ra´ızes reais. A que nos interessa ´e: i = 3.7909. 255
Vamos modificar o programa anterior para sair apenas com a taxa que nos interessa, isto ´e, entre 0 e 100. Tentando resolver este problema de “forma compacta” (e elegante) ´e que fui levado a uma nova e interessante fun¸c˜ao da Calculadora, ei-la: remove Dado um vetor ou lista, remove as ocorrˆencias de Valor ou remove os valores que tornam o Teste verdadeiro e apresenta o vetor ou lista resultante. Sintaxe: remove(Value, List) ou remove(Test, List) Antes dos exemplos, volte sua calculadora para as configura¸c˜oes
−→ −→
Veja os dois exemplos seguintes
Aqui cabe uma pergunta: e se quisermos eliminar na lista do exemplo os x tais que x ≤ −2 e x ≥ 2 ?. Basta concatenar remove, assim:
Pois bem, agora volte a sua Calculadora para a configura¸c˜ao anterior aos exemplos (p. 254). 256
Ent˜ ao, o programa para o c´ alculo da taxa de juros modificado, fica assim:
Na tela da direita recalculamos o problema do congelador. Vejamos mais dois exemplos. Problema: Uma loja de decora¸c˜ oes anuncia a venda de um objeto de arte por $ 600, 00 a vista ou em 1 + 8 (isto ´e, com uma entrada e oito parcelas mensais) de $ 80, 00 cada. Qual a taxa de juros cobrada pela loja? Solu¸ c˜ ao: O diagrama de fluxo de caixa da opera¸c˜ao ´e visto a seguir: PMT
p 0
PMT = $ 80, 00
p
p
p
p
p
p
p
p
1
2
3
4
5
6
7
8
PV = $ 600, 00
Entrando no programa com os dados: P V = 600,
P M T = 80,
n = 9,
o programa nos devolve: i = 4.8598 (a.m.).
257
m = 0 (com entrada)
Problema: Um aparelho de som ´e anunciado com um pre¸co a vista de $ 1200, 00 ou em trˆes parcelas mensais iguais a $ 500, 00. Calcule a taxa de juros cobrada pela loja, supondo que a primeira parcela seja paga: a) b)
no ato; 30 dias ap´ os a compra.
Solu¸ c˜ ao: a) n = 3, b) n = 3,
Entrando no programa com os m = 0, o programa nos devolve: Entrando no programa com os m = 1, o programa nos devolve:
dados: P V i = 27.4659 dados: P V i = 12.0444
= 1200, P M T = 500, (a.m.). = 1200, P M T = 500, (a.m.).
Conclus˜ ao: Pela “dedu¸c˜ao” do programa podemos dizer que o valor da taxa de juro ´e um valor “l´ ogicamente exato”, embora, eventualmente, possa n˜ ao ser num´ericamente exato, uma vez que no c´alculo das ra´ızes do polinˆ omio, pela HP Prime , introduz-se aproxima¸c˜oes nos algoritmos num´ericos. Este programa pode ser visto, efetivamente, como uma f´ormula para o c´ alculo da taxa de juros; ´e uma fun¸c˜ao (f´ormula) de quatro vari´ aveis. Contrariando a afirmativa da autora citada na p´ agina 250: “Se ´e poss´ıvel uma f´ormula especial para o c´alculo de n, tal n˜ ao acontece para o c´ alculo de i, quando se conhecem P V , P M T e n. O c´alculo de i s´ o ´e poss´ıvel por aproxima¸c˜oes sucessivas. Calcula-se o valor de P V com v´arias taxas at´e que se consigam valores pr´ oximos do valor dado para P V . Em seguida, com o aux´ılio da regra de trˆes, faz-se uma interpola¸c˜ao para determinar a taxa correspondente a esse valor dado.”
258
Capitaliza¸c˜ ao composta em per´ıodos fracion´ arios Os exemplos apresentados at´e agora − com respectivos fluxos de caixa − foram para transa¸c˜ oes financeiras em que os juros come¸cam a acumular no in´ıcio do primeiro per´ıodo de pagamento regular. No entanto, muitas vezes os juros come¸cam a acumular antes do in´ıcio do primeiro per´ıodo de pagamento regular − pode ser o caso de um empr´estimo banc´ ario, por exemplo. O per´ıodo referido, durante o qual os juros come¸cam a acumular antes da data do primeiro pagamento, ´e denominado per´ıodo fracion´ ario. PMT PV
···
n
p0
p1
p2
Antecipado
p3
Per´ıodo fracion´ario
PMT PV
···
n
p0
p1
p2
Postecipado
p3
Per´ıodo fracion´ario
Consideremos o seguinte problema: Um empr´estimo de $ 3 950 por 42 meses para comprar um carro come¸ca a acumular juros 13 dias antes do in´ıcio do primeiro per´ıodo de pagamento. Pagamentos de $ 120 s˜ ao feitos no final de cada mˆes. Calcule a taxa de juros do financiamento considerando os dias extras. Solu¸ c˜ ao: O diagrama de fluxo de caixa ´e visto a seguir: PV= $ 3 950
PMT
PMT= $ 120
··· n
p0
p1
p2
p 42
p3
13 dias
O n´ umero de per´ıodos que devemos utilizar no exemplo ´e: n = 42 +
13 = 42. 43 30
259
Substituindo os dados do problema na f´ormula
PMT = PV ·
120 = 3950 ·
i(1 + i)n−1 (1 + i)m (1 + i)n − 1
i(1 + i)42. 43−1 (1 + i)1 (1 + i)42. 43 − 1
Simplificando ligeiramente, temos i(1 + i)42. 43 =
120 (1 + i)42. 43 − 1 3950
E n˜ ao podemos aplicar a f´ormula do binˆ omio de Newton para desenvolver o binˆ omio acima posto que o expoente n˜ ao ´e um n´ umero natural. O desenvolvimento matem´ atico que se segue ´e com vistas a construir um algoritmo (programa) para resolver problemas do gˆenero. Antes precisamos generalizar o coeficiente binomial, assim: Defini¸ c˜ ao 10. Se m for qualquer n´ umero real e k um n´ umero natural, ent˜ ao definimos o coeficiente binomial, assim: se k = 0; 1, m = k m(m − 1)(m − 2) · · · m − (k − 1) , se k ≥ 1. k! Por exemplo, a ) Calcule
4 2 .
Solu¸ c˜ ao: Sendo m = 4 e k = 2, temos, m − (k − 1) = 4 − 1, ent˜ao 4·3 4 4(4 − 1) = =6 = 2! 2 2 b ) Calcule 4.35 . Solu¸ c˜ ao: Sendo m = 4, 5 e k = 3, temos, m − (k − 1) = 4, 5 − 2, ent˜ao 4. 5 4. 5 (4. 5 − 1)(4. 5 − 2) 4. 5 · 3. 5 · 2. 5 = = = 6. 5625 3 3! 6
260
c ) Calcule
−4 2 .
Solu¸ c˜ ao: Sendo m = −4 e k = 2, temos, m − (k − 1) = −4 − 1, ent˜ao −4 −4(−4 − 1) −4 · (−5) = = = 10 2 2! 2 A HP possui uma fun¸c˜ ao, COMB, que calcula combina¸c˜oes COMB(m, k), no entanto se m n˜ ao for inteiro ou se for negativo a calculadora acusar´a um erro. Vamos contornar esta limita¸c˜ao. . . Espere! Isto foi o que escrevi no meu livro sobre a programa¸c˜ao da calculadora HP 50g, na PRIME, neste momento, observei que ela calcula sim o “binomial generalizado”, como na defini¸c˜ ao 10, acima. Isto facilita nossa vida, veja:
−→
Retomando, iremos necessitar da s´erie binomial (estudada no C´ alculo), ei-la: m(m − 1) · · · m − (k − 1) k m(m − 1) 2 x + ··· + x + ··· 1 + mx + 2! k! Pode-se provar, que se m n˜ ao for um n´ umero Natural, ent˜ao a s´erie binomial converge para (1 + x)m para |x| < 1. Sendo assim, m(m − 1) · · · m − (k − 1) k m(m − 1) 2 m x +···+ x +··· (1+x) = 1 + mx + 2! k! Tendo em conta nossa extens˜ ao do coeficiente binomial, temos: +∞ X m m (1 + x) = xk k k=0
Esta identidade vale se m n˜ ao ´e um n´ umero natural. Na verdade ´e o caso que nos interessa agora, uma vez que para m natural j´a tratamos anteriormente. A t´ıtulo de exemplo, vamos substituir x por i e m por −n para obter: ∞ X −n k −n (1 + i) = i (2.4) k k=0
261
Vejamos dois casos particulares: ∞ X −2 k −2 0 −2 1 −2 2 −2 (1 + i) = i = i + i + i + ··· k 0 1 2 k=0
= 1 + −2i + 3i2 + · · ·
e −3
(1 + i)
∞ X −3 k −3 0 −3 1 −3 2 = i = i + i + i + ··· k 0 1 2 k=0
= 1 + −3i + 6i2 + · · ·
Na tela a seguir definimos na linha de entrada uma fun¸c˜ao de duas vari´ aveis
na tela do centro algumas simula¸c˜oes, configura¸c˜ao do CAS como na tela da direita. Vamos manipular alg´ebricamente a f´ormula, PMT = PV · para obter:
i(1 + i)n−1 (1 + i)m (1 + i)n − 1
(1 + i)n − 1 − i(1 + i)n+m−1 · P V /P M T = 0 Considerando que n n˜ ao ´e um n´ umero Natural, podemos escrever: +∞ +∞ X X n+m−1 k n k i · P V /P M T = 0 i −1−i k k k=0
k=0
Ou ainda,
+∞ X n k=0
k
k
i − 1 − P V /P M T · i
+∞ X n+m−1 k=0
k
ik = 0
O programa para esta f´ormula muda muito pouco em rela¸c˜ao ao programa da p. 257. Devemos estabelecer um limite N para o somat´ orio (N = 10 no programa a seguir). 262
A seguir temos o novo programa que implementa a equa¸c˜ao +∞ X n k=0
k
k
i − 1 − P V /P M T · i
+∞ X n+m−1 k
k=0
ik = 0
Este ´e o programa que calcula a taxa de juros para capitaliza¸c˜ao composta, incluindo per´ıodos fracion´ arios. Entrando no programa com os dados: P V = 3950,
P M T = 120,
(p. 259)
n = 42.43,
m = 1 (postecipada)
o programa nos devolve a seguinte taxa: i = 1.2279 (a.m.). Nota: A sua calculadora deve estar na configura¸c˜ao da p´ agina 254. Vejamos mais um exemplo: Um empr´estimo de $ 4 500 por 36 meses come¸ca a acumular juros 15 dias antes do in´ıcio do primeiro per´ıodo de pagamento. Pagamentos de $ 157, 03 s˜ ao feitos no in´ıcio de cada mˆes. Calcule a taxa de juros do financiamento considerando os dias extras. Solu¸ c˜ ao: O diagrama de fluxo de caixa ´e visto a seguir: PV= $ 4 500
PMT
PMT= $ 157, 03
··· n
p0
p1
p2
p 35
p3
15 dias
O n´ umero de per´ıodos que devemos utilizar no exemplo ´e: n = 36 +
15 30
= 36. 5
PV=4500 PMT=157.03 n=36.5 m=0
263
Apˆ endice: Algoritmo para plotar pontos no espa¸co Interregno cultural: Precisamente no ano de 1988 senti a necessidade de fazer um programa computacional para tra¸car o gr´ afico de superf´ıcies z = f (x, y). Na ´epoca n˜ ao existiam os potentes softwares alg´ebricos existentes hoje e que tra¸cam gr´ aficos com a maior facilidade. Inicialmente, para desenvolver meu programa consultei dois ou trˆes livros sobre computa¸c˜ ao gr´ afica, entretanto achei os algoritmos − constantes nestes livros − um tanto quanto complicados para serem implementados; foi quando decidi criar meu pr´ oprio algoritmo.
Dedu¸c˜ ao do meu algoritmo Ap´os alguns instantes de reflex˜ao me coloquei o seguinte problema: Como plotar um ponto (x, y, z), do espa¸co tridimensional, em uma superf´ıcie bidimensional (a tela do computador ou uma folha de papel, por exemplo)? Para resolver meu problema devo construir a seguinte transforma¸c˜ao T : R3 → R2 z
z
t (x, y, z)
t (X, Y )
y
y
x
Observe que o ponto a ser plotado ´e “o mesmo” nas duas figuras. Digo, para plotar o ponto de coordenadas (x, y, z) “no espa¸co” basta plotar o ponto de coordenadas (X, Y ) no plano − de modo que esta plotagem nos dˆe a ilus˜ ao de que o ponto encontra-se no espa¸co, entenderam? Pois bem, s´ o nos resta agora relacionar as “coordenadas virtuais” X e Y com as coordenadas reais x, y e z. Isto pode ser feito a partir das figuras z z
t (X, Y )
` θ
t (X, Y ) ≡ (x, y, z) y
y x
x
264
` θ
տ
Nota: θ ´e um ˆ angulo entre o eixo x e o eixo z (negativo). O nosso interesse estar´ a centrado na figura da direita. Desta figura destacamos o seguinte triˆ angulo (ver seta): y−X ⊡ z−Y
θ a
sen θ =
y−X x
⇒ X = y − x · sen θ
cos θ =
z−Y x
⇒ Y = z − x · cos θ
x
Ent˜ ao, o “menor algoritmo do mundo” para o tra¸cado de superf´ıcies, ´e: (x, y, z) ≡ (X, Y ) = ( y − x · sen θ, z − x · cos θ )
(2.5)
Aplica¸c˜ oes do algoritmo Por exemplo, as figuras 3D na se¸c˜ao das progress˜oes aritm´eticas tridimensionais (p. 146) foram produzidas com este algoritmo. Tamb´em as figuras 3D na subse¸c˜ ao 2.8.1 (p. 242).
Morte e ressurrei¸c˜ ao de um algoritmo Alguns anos depois da concep¸c˜ao do meu algoritmo surgem os poderosos softwares computacionais para o tra¸cado de gr´ aficos (inclusive superf´ıcies), devo confessar que, com muito pesar, vislumbrei a morte de meu rebento. Entretanto, alguns anos depois as circustˆancias me levaram a utilizar o processador de texto LATEX 2ε e neste existe um ambiente (picture) para o tra¸cado de figuras que trabalha com as coordenadas cartesianas bidimensionais (X, Y ). Somente ent˜ ao me dei conta de que a finalidade principal de meu algoritmo n˜ ao estava no tra¸cado de superf´ıcies mas sim em plotar um ponto no espa¸co R3 e, em fun¸c˜ao disto, o mesmo se revelaria de grande utilidade dentro do ambiente de figuras do referido processador de texto. Por exemplo, os seguintes paralelepipedos foram tra¸cados com o algoritmo (2.5).
265
Nosso algoritmo pode ser visto como uma transforma¸c˜ao linear Y = F (X) = A X onde "
X Y
#
=
"
−sen θ 1 0
− cos θ 0 1
#
x y z
Observe que G(0, y, z) = ( y − 0 · sen θ, z − 0 · cos θ ) = (y, z). Ou seja, os pontos do plano yoz s˜ ao “invariantes”. Observe como o algoritmo transforma as coordenadas reais, (x, y, z), de um paralelepipedo em coordenadas “virtuais” (X, Y ): G (x, y, z) −→ (X, Y )
G (x, y, z) −→ (X, Y )
(0, 0, 0) −→ (0, 0)
(1, 0, 0) −→ (−0.6428, −0.7660)
(0, 1, 0) −→ (1, 0)
(1, 1, 0) −→ (0.3572, −0.7660)
(0, 1, 1) −→ (1, 1)
(1, 1, 1) −→ (0.3572, 0.2340)
(0, 0, 1) −→ (0, 1)
(1, 0, 1) −→ (−0.6428, 0.2340)
z
(0, 0, 1) (1, 0, 1)
(1, 0, 0)
r r
r
(0, 1)
r(0, 1, 1)
r
r
Y
G : R3 → R2
r
(0, 1, 0)
r
y
r(1, 1)
r r r
r(1, 1, 0)
r
↑
x
r
(1, 0)
X
r(0.3572, −0.7660)
(−0.6428, −0.7660)
Nesta figura fixamos θ = 40o e arredondamos as cordenadas em (X, Y ) para quatro casas decimais.
266
Uma diferen¸ ca (evolu¸ ca ~o) abissal!
O Absoluto cont´em todo o experienci´avel. Mas sem o experimentador eles s˜ ao como nada. Aquilo que faz a experiˆencia poss´ıvel ´e o Absoluto. Aquilo que a faz atual ´e o Ser. (Sri Nisargadatta Maharaj)
267
A primeira edi¸c˜ ao do livro [6] chegou `as m˜ aos de um ilustre matem´ atico brasileiro, Prof. Ubiratan D’Amb´ osio, que me escreveu o seguinte email. O endere¸co gentil@dmat.ufrr.br foi recusado. Gostaria que ele recebesse esse e-mail. De fato, gostei muito do livro. Um Abra¸co, Ubiratan −−−−− Original Message −−−−− From: Ubiratan D, Ambr´ osio <ubi@usp.br> To: Gentil Lopes da Silva Sent: Saturday, November 06, 2004 10:46 AM Subject: Obrigado pelo livro Caro Gentil Muito obrigado pelo livro que vocˆe mandou pelo Chateau. Est´a muito bom, interessante e cheio de provoca¸c˜oes. D´a oportunidade para os estudantes se iniciarem em pesquisas. Vocˆe fala que o livro destina-se a alunos de 2o e 3o graus. Eu diria que ´e tamb´em para a p´ os. Aritm´etica continua sendo grande fonte de problemas de pesquisa que podem ser trabalhados com relativamente pouco da complicada linguagem, nota¸c˜oes e resultados que caracterizam muitas ´areas da matem´ atica. S˜ ao formula¸c˜oes simples que podem ser trabalhados com pouca t´ecnica, exigindo imagina¸c˜ao e criatividade. Vou recomendar aos meus alunos. Mas tive um problema. Nos sites das livrarias, o livro n˜ ao existe. E nem est´ a no site da Thesaurus. Recomendar um livro implica dizer como adquirir. O que vocˆe diz? Siga em frente com suas id´eias. As suas reflex˜oes iniciais, a sua escolha de ep´ıgrafes, e a pr´ opria capa, s˜ ao uma grande contribui¸c˜ao para um novo pensar na urgente renova¸c˜ ao da educa¸c˜ ao em todos os n´ıveis. A sua trajet´oria desde seus estudos, lecionando em condi¸c˜oes prec´ arias, e com as dificuldades para publicar o livro ´e um exemplo, muit´ıssimo frequente, do processo (certamente intencional) de desencorajar o florescimento dos criativos, e abrir o espa¸co para os executores de id´eias de outros. ´ Uma curiosidade: vocˆe sabia que o Edouard Lucas, que vocˆe cita na p´ agina 393, ´e quem fez a revis˜ao t´ecnica para a publica¸c˜ao p´ ostuma do livro “M´elanges de Calcul Int´egral”, de Joaquim Gomes de Souza, o Souzinha, em 1882? O livro havia sido recusado por in´ umeras editoras enquanto ele estava vivo. Muito obrigado. Um abra¸co, Ubiratan Nota: Como o Prof. Ubiratan n˜ ao estava conseguindo acessar o meu antigo email (gentil@dmat.ufrr.br) ele enviou seu email a um seu ex-aluno (saudoso Chateaubriand), colega meu, que me repassou. 268
Cap´ıtulo
3
Aplica¸c˜oes ao C´alculo Num´erico A matem´atica ´e um campo demasiadamente ´arduo e in´ospito para agradar ` aqueles a quem n˜ ao oferece grandes recompensas. Recompensas que s˜ao da mesma ´ındole que as do artista. . . . Acrescenta ainda que ´e no ato de criar que o matem´atico encontra sua culminˆancia e que “nenhuma quantidade de trabalho ou corre¸ca˜o t´ecnica pode substituir este momento de cria¸ca˜o na vida de um matem´atico, poeta ou m´ usico”. (Norbert Wiener)
Introdu¸ c˜ ao Apenas lembramos que este n˜ ao ´e um livro de C´ alculo Num´erico, mas de Programa¸ca ˜o da HP Prime ; caso seja do interesse do leitor as demonstra¸c˜oes das v´arias f´ormulas que comparecem neste cap´ıtulo podem ser encontradas nas referˆencias, nosso objetivo prec´ıpuo ser´ a programar estas f´ormulas na calculadora. Ademais, o leitor ter´ a oportunidade de observar que os nossos programas resultar˜ao simples, compactos e est´eticos. Uma observa¸c˜ ao que julgamos de alguma relevˆancia ´e a de que o nome “C´ alculo Num´erico” remonta a uma ´epoca na qual nem se sonhava com a possibilidade do advento da computa¸c˜ao alg´ebrica, raz˜ ao porque acreditamos que um nome mais apropriado a esta disciplina − atualmente − seja “C´ alculo Num´erico e Alg´ebrico”, como teremos ocasi˜ ao de observar em v´arios dos programas que aqui comparecem, a come¸car do pr´ oximo t´opico: Interpola¸c˜ ao.
269
3.1
Interpola¸c˜ ao
Introdu¸c˜ ao: Em muitas situa¸c˜ oes de interesse necessitamos aproximar uma fun¸c˜ao de “aspecto complicado”, como por exemplo∗ , C(θ) = 3θ −3
Z
θ 0
x3 dx ex − 1
por uma outra fun¸c˜ ao mais simples de manipular. A integral a seguir† Z 1r 1 + (k2 − 1)x2 dx 1 − x2 0 ´e conhecida como integral el´ıtica, para 0 < k < 1 ´e imposs´ıvel encontrar explicitamente uma primitiva da fun¸c˜ao r 1 + (k2 − 1)x2 f (x) = 1 − x2 Ainda em outras situa¸c˜oes, dispomos apenas de um conjunto de dados tabelados − colhidos “no campo” −, como por exemplo, os dados a seguir x
0
3
y
2, 38
7, 78
6
9
11, 43 13, 57
12
15
18
21
24
27
30
15, 79
12, 78
10, 31
6, 88
4, 44
2, 98
1, 35
para o c´ alculo da abscissa x ¯ do centro de gravidade de uma placa, dado pela f´ormula, Z b xy dx x ¯ = Za b y dx a
Em situa¸c˜ oes tais como estas − e em muitas outras − necessitaremos do importante conceito de
∗
Esta ´e conhecida como fun¸c˜ ao de Debye, encontrada em Termodinˆ amica Estat´ıstica no c´ alculo do calor espec´ıfico a volume constante de certas substˆ ancias. † Que representa a quarta parte do per´ımetro da elipse de semieixo maior 1 e semieixo menor k.
270
Interpola¸ c˜ ao Polinomial Considere uma fun¸c˜ ao f (x) conhecida (ou “amostrada”) em n + 1 pontos distintos: x0 , x1 , . . . , xn , de um intervalo [ a, b ] contido em seu dom´ınio. Tomemos a seguinte nota¸c˜ ao yi = f (xi ), i = 0, 1, . . . , n; como no gr´ afico a seguir, y
f yn
p
s
.. . y1
p
s
p
y0
0
s
p x0 = a
p x1
p x2
···
p
x
xn = b
Interpolar por um polinˆ omio a fun¸c˜ao f − com x0 , x1 , . . . , xn ∈ [ a, b ], n + 1 pontos distintos − significa determinar um polinˆ omio P (x), de grau menor ou igual a n, que coincida com f em todos estes pontos, isto ´e, tal que: P (xi ) = f (xi ) = yi ,
para i = 0, 1, . . . , n.
Geometricamente, temos y
yn
p
s
.. . y1
p
s
p
y0
s
f
···
s
P 0
p x0 = a
p x1
p x2
···
p
x
xn = b
O teorema a seguir afirma a existˆencia e unicidade do polinˆ omio interpolante.
271
Teorema 17 (Existˆencia e unicidade). Seja f (x) definida em x0 , x1 , . . . , xn , (n + 1) pontos distintos de um intervalo [ a, b ], ent˜ ao existe um u ´nico polinˆ omio P (x) de grau menor ou igual a n de modo que P (xi ) = f (xi ) = yi ,
para i = 0, 1, . . . , n.
(3.1)
Prova: Considere o polinˆ omio P (x), de grau n, da forma P (x) = an xn + an−1 xn−1 + · · · + a1 x + a0 Vamos provar que existem (e s˜ ao u ´ nicos) os coeficientes an , an−1 , . . . , a1 , a0 , tais que P (x) satisfaz as condi¸c˜oes dadas em (3.1), isto ´e an xn0 + an−1 x0n−1 + · · · + a1 x0 + a0 = y0 |{z} | {z }
⇒
i=0
f (x0 )
P (x0 )
an xn1 + an−1 x1n−1 + · · · + a1 x1 + a0 = y1 |{z} {z } |
⇒
i=1
f (x1 )
P (x1 )
............................................................
⇒
i=n
an xnn + an−1 xnn−1 + · · · + a1 xn + a0 = yn |{z} {z } |
f (xn )
P (xn )
Sendo assim, temos:
a xn + an−1 x0n−1 + · · · + a1 x0 + a0 = y0 n 0 n−1 + · · · + a x + a = y a xn + a n 1 n−1 x1 1 1 0 1
Ou ainda
············································· an xnn + an−1 xnn−1 + · · · + a1 xn + a0 = yn
xn
xn−1
· · · x0 1 0 0 xn xn−1 · · · x 1 1 1 1 ...................... xnn xnn−1 · · · xn 1
an
an−1 .... a1 a0
272
y0
y 1 = .... yn−1 yn
No que resulta em um sistema de equa¸c˜oes lineares da forma AX = B, onde A ´e a matriz dada por: n x0 x0n−1 · · · x0 1 xn xn−1 · · · x 1 1 1 1 A= ...................... xnn xnn−1 · · ·
xn
1
O determinante da matriz A ´e conhecido como Y determinante das potˆencias ou de Vandermonde e, ´e dado por: det A = (xi − xj ). i<j
Como, por hip´ otese, os pontos xi , i = 0, 1, . . . , n, s˜ ao distintos dois a dois, segue que detA 6= 0, donde concluimos que o sistema linear possui uma u ´nica solu¸c˜ ao. Isto ´e, os coeficientes do polinˆ omio em (an , an−1 , . . . , a1 , a0 ) s˜ ao u ´ nicos e podem ser calculados pela resolu¸c˜ao deste sistema; sendo assim demonstramos que o polinˆ omio P (x) existe e ´e u ´ nico. Considera¸ co ˜es sobre erros Pela constru¸c˜ ao do polinˆ omio interpolante P (x) dada no teorema 17 temos que este coincide com a fun¸c˜ao f (x) em todos os pontos x0 , x1 , . . . , xn , fora destes pontos certamente estaremos cometendo um erro porquanto, ´e de se esperar que P (¯ x) 6= f (¯ x) para x ¯ 6= xi , i = 0, 1, . . . , n. Definimos o erro cometido na aproxima¸c˜ao por E(¯ x) = f (¯ x) − P (¯ x),
onde x ¯ ∈ [ a, b ].
Geometricamente fica assim: y
yn
p
s
.. .
s
s
p
y0
0
p
E(¯ x) = f (¯ x) − P (¯ x)
P
s
x0 = a
f
···
p
p
x ¯
xn = b
273
x
Teorema 18 (Erro na interpola¸c˜ao). Seja f (x) uma fun¸ca ˜o definida em x0 , x1 , . . . , xn , (n + 1) pontos distintos de um intervalo [ a, b ] e (n + 1) vezes diferenci´ avel. Se P (x) interpola f (x) nestes pontos, ent˜ ao o erro cometido E(x) ´e dado por:
E(x) = f (x) − P (x) =
n Y
(x − xi )
i=0
(n + 1)!
f (n+1) (ξ)
(3.2)
onde ξ ∈ [ x0 , xn ].
Prova: Veja, por exemplo, [4]. Observe que quando x = xi , i = 0, 1, . . . , n, o erro cometido ´e nulo, como era de se esperar. Limitante superior para o erro A existˆencia do ponto ξ que comparece em (3.2) ´e garantida pelo Teorema de Rolle do C´ alculo∗ , no entanto n˜ ao existe uma regra para encontrarmos este ponto o que tem como consequˆencia a impossibilidade de calcularmos o erro cometido, no entanto podemos determinar uma estimativa superior, como segue: “modulando” a equa¸c˜ao (3.2), temos n n
Y
Y
(x − x ) (x − x )
i i
f (n+1) (ξ) = i = 0(n+1)! M |E(x)|= i = 0(n+1)! |f (n+1) (ξ)| ≤ i = 0(n+1)!
0nde estamos convencionando que M = max f (n+1) (x) : x ∈ [ x0 , xn ] . n Y
(x − xi )
A existˆencia do m´ aximo ´e assegurada pelo Teorema de Weierstrass† dado a seguir:
Teorema 19 (Weierstrass). Toda fun¸ca ˜o cont´ınua f : [ a, b ] −→ R ´e limitada e assume valores m´ aximo e m´ınimo. Sabemos do C´ alculo que diferenciabilidade implica em continuidade, da´ı a exigˆencia no enunciado do teorema 18 de que f seja (n + 1) vezes diferenci´ avel. Lembramos que a HP Prime calcula derivadas de qualquer ordem − o que pode facilitar no c´ alculo de M , como estaremos mostrando oportunamente. Ademais, observe que somente podemos calcular uma estimativa para o erro quando dispomos da express˜ ao anal´ıtica da fun¸c˜ao f ; nos casos em ∗
Se a fun¸c˜ ao f ´e cont´ınua no intervalo [ a, b ] e diferenci´ avel no intervalo ] a, b [ e f (a) = f (b), ent˜ ao existe um ξ ∈ ] a, b [ tal que f ′ (ξ) = 0. † Karl Weierstrass (1815 − 1897) foi durante muitos anos professor em Berlim, e exerceu profunda influˆencia no desenvolvimento da An´ alise. Sempre insistindo em demonstra¸c˜ oes rigorosas, elaborou, mas n˜ ao publicou, uma introdu¸c˜ ao ao sistema de n´ umeros reais. Deu tamb´em importantes contribui¸c˜ oes ` a An´ alise Real e Complexa, ` as equa¸c˜ oes diferenciais e ao c´ alculo das varia¸c˜ oes.
274
que temos apenas a fun¸c˜ ao tabelada em um n´ umero finito de pontos n˜ ao podemos estimar o erro. A prova do teorema 17 (p. 272) ´e construtiva no sentido de que nos mostra como obter o polinˆ omio interpolat´orio, no entanto existem outras t´ecnicas − computacionalmente mais eficientes − para o c´alculo do polinˆ omio. Observe que qualquer que seja a t´ecnica escolhida obteremos sempre o mesmo polinˆ omio interpolador uma vez que o j´a citado teorema nos garante um u ´ nico polinˆ omio. Na sequˆencia estudaremos trˆes das mencionadas t´ecnicas: Lagrange, Newton e Gregory-Newton
3.1.1
Interpola¸c˜ ao de Lagrange
Seja f (x) definida em x0 , x1 , . . . , xn , (n + 1) pontos distintos de um intervalo [ a, b ] e yi = f (xi ), i = 0, 1, . . . , n; a f´ormula de Lagrange para o polinˆ omio interpolador de grau menor ou igual a n ´e dada assim: Pn (x) =
n X
i=0
yi ·
n Y (x − xj ) (xi − xj ) j=0
(3.3)
j 6= i
Para demonstra¸c˜ ao desta f´ormula, veja, por exemplo, [2]. Vamos abrir esta f´ormula tomando n = 3, por exemplo. Ent˜ao, para i = 0, 1, 2, 3; expandindo apenas o somat´ orio,temos P3 (x) = y0 ·
3 3 3 Y Y Y (x − xj ) (x − xj ) (x − xj ) + y1 · + y2 · + (x0 − xj ) (x1 − xj ) (x2 − xj ) j= 0 j= 0 j= 0 j6=0
j6=1
j6=2
+ y3 ·
3 Y (x − xj ) (x3 − xj ) j= 0 j6=3
Agora, expandindo todos os produt´ orios, temos P3 (x) = y0 ·
(x − x1 )(x − x2 )(x − x3 ) + (x0 − x1 )(x0 − x2 )(x0 − x3 )
+ y1 ·
(x − x0 )(x − x2 )(x − x3 ) + (x1 − x0 )(x1 − x2 )(x1 − x3 )
+ y2 ·
(x − x0 )(x − x1 )(x − x3 ) + (x2 − x0 )(x2 − x1 )(x2 − x3 )
+ y3 ·
(x − x0 )(x − x1 )(x − x2 ) (x3 − x0 )(x3 − x1 )(x3 − x2 ) 275
Implementa¸ c˜ ao do polinˆ omio interpolador de Lagrange O programa seguinte recebe como dados de entrada dois vetores, um contendo os xi (i = 0, 1, . . . n) e o outro contendo os yi (i = 0, 1, . . . n), e sai com o polinˆ omio de Lagrange dado pela f´ormula (3.3): (Nota, p. 280)
Pn (x) =
n X
i=0
yi ·
n Y (x − xj ) (x i − xj ) j=0 j 6= i
Vamos fazer um teste com trˆes exemplos. 1o ) Encontre uma lei alg´ebrica para a tabela abaixo xi
yi
0
0. 0
−0. 5
1
0. 1
0. 0
i
2
0. 3
0. 2
3
0. 5
1. 0
Neste caso entramos com os vetores: [ 0, 0.1, 0.3, 0.5 ]
e
[ −0.5, 0, 0.2, 1 ]
Antes de executar o programa configure na sua calculadora a vista do CAS como na tela a seguir
Na tela do centro temos uma simula¸c˜ao − observe que antes resetamos a vari´ avel x (p. 23). Na tela da direita pedimos para expandir o polinˆ omio, obtemos 91 1 125 3 x − 30 x2 + x− 3 12 2 276
Vamos editar o programa para sair n˜ ao com a express˜ ao do polinˆ omio, mas com uma fun¸ca ˜o polinomial, assim
←− aqui
Au ´ nica altera¸c˜ ao feita est´ a indicada pela seta. Executando novamente o programa obtemos a tela a seguir
Agora temos na saida a fun¸c˜ ao polinomial plg(x) =
91 1 125 3 x − 30 x2 + x− 3 12 2
Na tela da direita confirmamos os pontos da tabela que originou o polinˆ omio. Confira: i
xi
yi
0
0. 0
−0. 5
1
0. 1
0. 0
2
0. 3
0. 2
3
0. 5
1. 0
277
2o ) Encontre o polinˆ omio de Lagrange para a tabela abaixo xi
i
yi
0
0. 0
0. 000
1
0. 2
2. 008
2
0. 4
4. 064
3
0. 5
5. 125
Neste caso entramos com os vetores: [ 0, 0.2, 0.4, 0.5 ]
e
[ 0, 2.008, 4.064, 5.125 ]
para obter a seguinte fun¸c˜ao polinomial plg(x) = x3 + 10 x Na tela da direita confirmamos os pontos da tabela que originou o polinˆ omio. 3o ) Com este exemplo vejamos como a HP Prime pode nos auxiliar no c´alculo da estimativa do erro. Considere a fun¸cao f dada por f (x) = sen x, amostrada nos pontos da tabela abaixo:
xi
0
f (xi )
0
π 4 √
2 2
π 2
1
Determine o polinˆ omio interpolador de Lagrange, avalie f limitante superior para o erro.
278
3π 8
e um
Entrando com os dados da tabela
o programa nos devolve a seguinte fun¸c˜ao polinomial √ ! √ ! 8−8 2 2 −2 + 4 plg(x) = x x2 + 2 π π na tela do centro pedimos apenas o lado direito desta equa¸c˜ao (p. 61). Na tela da direita temos (calculadora fixada em 4 decimais) 3 π 3 (√2 + 1) 3 π ≈ plg = ≈ 0. 9053 f 8 8 8 Vejamos agora uma estimativa para o erro segundo o algoritmo (p. 274)
|E(x)| ≤
n
Y
(x − xi )
i=0
(n + 1)! (n+1)
Onde: M = max f (x) : x ∈ [ a, b ] .
M
Adaptando ao nosso problema em particular (n = 2), temos
|E(x)| ≤
2
Y
(x − x )
i
i=0
(2 + 1)! (3)
Onde: M = max f (x) : x ∈ [ a, b ] .
M
Isto ´e
|(x − x0 )(x − x1 )(x − x2 )| M 3! Desejamos uma estimativa do erro no ponto de abscissa x = p. 273). Substituindo todos os pontos, temos
3π 3π π 3π π
E 3 π ≤ |( 8 − 0)( 8 − 4 )( 8 − 2 )| M
8
6 |E(x)| ≤
Logo
3
E 3 π ≤ π M
8
1024 279
3π 8
(ver fig.
A prop´osito, fa¸camos um programa para o c´alculo do produt´ orio coeficiente de M , na desigualdade a seguir n
Y
(x − xi )
|E(x)| ≤
i=0
(n + 1)!
M
Nota: Antes faremos uma importante observa¸c˜ao. Nos livros de C´ alculo Num´erico os ´ındices s˜ ao contados a partir do 0, na HP Prime a partir do 1, por exemplo π π Livros C.N. : 0 , , |{z} 4 |{z} 2 |{z} x0 x1 x2 ←− n = 2 HP Prime :
0 , |{z} x1
π π , 4 |{z} 2 |{z} x2 x3 ←− n = 3
Na hora de programar devemos levar em conta este detalhe. Pois bem, o programa a seguir calcula o coeficiente de M , na desigualdade acima∗
Na tela da direita temos a simula¸c˜ao do nosso exemplo. Agora precisamos calcular M = max onde
n
o
f (3) (x) : x ∈ [ a, b ]
π [ a, b ] = 0, 2 Vamos necessitar da terceira derivada de f . Nota: Neste caso a terceira derivada de f ´e imediata, no entanto, faremos pela HP Prime para servir de exemplo a eventualmente uma outra fun¸c˜ao mais complicada. f (x) = sen x
∗
e
Para acessar o produt´ orio e ver sua sintaxe, p´ agina 52.
280
A seguir como acessamos a derivada
Na tela da direita resetamos a vari´ avel x para definir f , em seguida mostramos duas alternativas para calcular a terceira derivada. Sendo assim, temos f ′′′ (x) = − cos x ∴ |f ′′′ (x)| = cos x
Portanto, o m´ aximo valor que f (3) (x) assume no intervalo 0, π ´e 1. 2
Retomando a desigualdade
3
E 3 π ≤ π M
8
1024
Logo
3
E 3 π ≤ π · 1 ≈ 0. 03028
8
1024
Portanto, um limitante superior para o erro ´e
E 3 π ≤ 0. 03028
8
Para efeito de compara¸c˜ ao na tela a seguir rodamos novamente o programa PIL
na tela do centro definimos a fun¸c˜ao f (x) = sen x e mostramos como obter a fun¸c˜ao Erro(x) = ∆(x) = f (x) − plg(x), na tela da direita calculamos esta fun¸c˜ ao no ponto x = 38π , obtendo ∆
3π 3π 3π =f − plg = 0. 01855 8 8 8 281
Para completar nossa an´ alise, na tela a seguir colocamos a trˆes fun¸c˜oes na a ´rea de plotagem
[−2 π, 2 π] → π 4
→
Na tela da direita dimensionamos os eixos para plotagem. Na tela a seguir plotamos as duas primeiras fun¸c˜oes, f (x) e plg(x)
∆(x) →
sen x ↑ 3π 8
↑π 2
plg(x)
na tela do centro apenas rotulamos o gr´ afico `a esquerda e na tela da direita incluimos a fun¸c˜ ao erro, ∆(x) = f (x) − plg(x).
282
3.1.2
Interpola¸c˜ ao de Newton
Conceito de Diferen¸ca Dividida Nesta se¸c˜ ao estudaremos uma f´ormula, alternativa `a de Lagrange, para a constru¸c˜ ao do polinˆ omio interpolat´orio − a f´ormula de Newton − que far´a uso das diferen¸cas divididas. Seja f (x) uma fun¸c˜ ao cont´ınua, (n + 1) vezes diferenci´ avel e definida em x0 , x1 , . . . , xn , (n + 1) pontos distintos do intervalo [ a, b ]. Defini¸ c˜ ao 11 (Diferen¸ca dividida de ordem zero). Definimos diferen¸ca dividida de ordem zero de uma fun¸c˜ao f (x) definida nos pontos xi , i = 0, 1, . . . , n por: ∆0 f (xi ) = f (xi ) = yi
i = 0, 1, . . . , n.
A diferen¸ca dividida de primeira ordem ´e definida em fun¸ca˜o da diferen¸ca dividida de ordem zero, assim: ∆ yi = f [ xi , xi+1 ] =
∆0 yi+1 − ∆0 yi xi+1 − xi
Nota: f [ · ] ´e uma outra nota¸c˜ ao para diferen¸ca dividida.
As diferen¸cas divididas de ordens superiores s˜ ao definidas recursivamente, como segue: Defini¸ c˜ ao 12 (Diferen¸ca dividida de ordem n). Definimos diferen¸ca dividida de ordem n de uma fun¸c˜ ao f (x) definida nos pontos xi , i = 0, 1, . . . , n por: ∆n yi = f [ xi , xi+1 , . . . , xi+n ] =
f [ xi+1 , xi+2 , . . . , xi+n ] − f [ xi , xi+1 , . . . , xi+n−1 ] xi+n − xi
=
∆n−1 yi+1 − ∆n−1 yi xi+n − xi
Podemos dispor as diferen¸cas divididas em uma tabela, observando que as diferen¸cas de ordem 1 s˜ ao calculadas a partir das diferen¸cas de ordem zero, as diferen¸cas de ordem 2, a partir das diferen¸cas de ordem 1 e, assim sucessivamente, veja:
283
i
xi
Ordem 0
0
x0
f [x0 ]
1
x1
f [x1 ]
Ordem 2
Ordem 1
Ordem 3
f [x0 , x1 ] f [x0 , x1 , x2 ] f [x1 , x2 ] x2
2
f [x2 ]
f [x0 , x1 , x2 , x3 ] f [x1 , x2 , x3 ]
f [x2 , x3 ] 3
x3
f [x3 ]
As diferen¸cas sendo calculadas assim: f [x0 , x1 ] = e
f [x2 ] − f [x1 ] f [x3 ] − f [x2 ] f [x1 ] − f [x0 ] , f [x1 , x2 ] = , f [x2 , x3 ] = x1 − x0 x2 − x1 x3 − x2
f [x0 , x1 , x2 ] =
f [x1 , x2 ] − f [x0 , x1 ] f [x2 , x3 ] − f [x1 , x2 ] , f [x1 , x2 , x3 ] = x2 − x0 x3 − x1
ainda f [x0 , x1 , x2 , x3 ] =
f [x1 , x2 , x3 ] − f [x0 , x1 , x2 ] x3 − x0
Veja se a figura seguinte ajuda a divisar um padr˜ao no c´alculo das diferen¸cas acima:
i
xi
Ordem 0
0
x0
f [x0 ]
Ordem 2
Ordem 1
Ordem 3
f [x0 , x1 ] 1
x1
f [x1 ]
f [x0 , x1 , x2 ] f [x1 , x2 ]
2
x2
f [x2 ]
f [x0 , x1 , x2 , x3 ] f [x1 , x2 , x3 ]
f [x2 , x3 ] 3
x3
f [x3 ]
284
Exemplo: Construir a tabela de diferen¸cas divididas da fun¸c˜ao f dada por f (x) = 1/x para os pontos x0 = 1, x1 = 2, x2 = 4 e x3 = 5. Solu¸ c˜ ao: Diferen¸cas divididas de ordem zero:
f [x0 ] = f (x0 ) = f (1) = 1 f [x1 ] = f (x1 ) = f (2) = 1/2 f [x2 ] = f (x0 ) = f (4) = 1/4 f [x3 ] = f (x1 ) = f (5) = 1/5
Isto ´e suficiente para construirmos a tabela − conforme algoritmo dado anteriormente:
i
xi
0
1
1
2
1 2
1 2 3
4 5
Ordem 0
1 4 1 5
Ordem 1 1 −1 2
2−1 1 1 − 4 2
4−2
1 1 − 5 4
5−4
Ordem 3
Ordem 2
= − 12
− 18 −(− 21 ) 4−1
= − 81
1 −(− 81 ) − 20
5−2
1 = − 20
285
=
1 8
=
1 40
1 −1 40 8
5−1
1 = − 40
Teorema 20. Seja f (x) uma fun¸c˜ao cont´ınua, (n + 1) vezes diferenci´ avel no intervalo [ a, b ]. Sejam x0 , x1 , . . . , xn , (n + 1) pontos distintos de [ a, b ]. Nestas condi¸c˜ oes temos:
∆n y0 = f [ x0 , x1 , . . . , xn ] =
n X
j= 0
f (xj ) n Y
k= 0 k6=j
(3.4)
(xj − xk )
Prova: Veja [4].
A t´ıtulo de ilustra¸c˜ ao, vamos abrir esta f´ormula para n = 3, por exemplo: ∆3 y0 = f [ x0 , x1 , x2 , x3 ] =
3 X
j= 0
f (xj ) 3 Y
k= 0 k6=j
(xj − xk )
Ent˜ ao ∆3 y0 =
f (x0 ) 3 Y
k= 0 k6=0
(x0 − xk )
+
f (x1 ) 3 Y
k= 0 k6=1
+
(x1 − xk )
f (x2 ) 3 Y
k= 0 k6=2
(x2 − xk )
+
f (x3 ) 3 Y
k= 0 k6=3
(x3 − xk )
Ou ainda ∆3 y0 =
+
y0 y1 + + (x0 − x1 )(x0 − x2 )(x0 − x3 ) (x1 − x0 )(x1 − x2 )(x1 − x3 ) y2 y3 + (x2 − x0 )(x2 − x1 )(x2 − x3 ) (x3 − x0 )(x3 − x1 )(x3 − x2 )
286
O programa a seguir implementa a f´ormula (3.4).
∆n y0 =
n X
j= 0
(p. 286)
f (xj ) n Y
k= 0 k6=j
(xj − xk )
Armazene o programa acima na vari´ avel DDYO, pois ser´ a utilizado subsequentemente como subrotina de um outro programa. Para implementar a f´ormula de Newton posteriormente, iremos necessitar das seguintes diferen¸cas: ∆1 y0 , ∆2 y0 , ∆3 y0 , . . . , ∆n y0
(3.5)
Para encontrar cada uma destas diferen¸cas iremos necessitar dos seguintes vetores de pontos: [ x0 , x1 ] ⇒ ∆1 y0
[ x0 , x1 , x2 ] ⇒ ∆2 y0
[ x0 , x1 , x2 , x3 ] ⇒ ∆3 y0 .............................. Al´em do vetor correspondente [ yi ], claro. O programa seguinte recebe os vetores [ xi ] e [ yi ] e sai com um vetor contendo todas as diferen¸cas divididas em (3.5).
Armazene o programa acima na vari´ avel DDTO − ser´ a uma subrotina. Na p´ agina seguinte temos uma simula¸c˜ao deste programa. 287
Por exemplo, para a tabela a seguir:
i
xi
yi
∆2 yi ∆3 yi ∆4 yi
∆ yi
0
0. 00
1. 000 10. 010
1. 300
10. 000
10. 000
1
0. 10
2. 001 10. 400
7. 300
20. 000
−−
2
0. 30
4. 081 14. 050
25. 300
−−
−−
3
0. 60
8. 296 31. 760
−−
−−
−−
4
1. 00
−−
−−
−−
21. 000
−−
Entrando com os vetores: [ 0. 00 0. 10 0. 30 0. 60 1. 00 ] → x [ 1. 000 2. 001 4. 081 8. 296 21. 000 ] → y Recebemos de volta o vetor:
(Calculadora fixada em 3 decimais)
[ 10. 010 1. 300 10.000 10.000 ]
que ´e o vetor em destaque na tabela acima.
F´ ormula de Newton A f´ormula de Newton para o polinˆ omio interpolador ´e dada assim:
Pn (x) = y0 +
n X
∆i y0
i= 1
i−1 Y
j= 0
(x − xj )
Para demonstra¸c˜ ao desta f´ormula, veja por exemplo [2].
288
(3.6)
A t´ıtulo de ilustra¸c˜ ao vamos abrir a f´ormula
Pn (x) = y0 +
n X
∆i y0
i−1 Y
j= 0
i= 1
(x − xj )
para n = 3, por exemplo: P3 (x) = y0 +
3 X
i
∆ y0
i= 1
i−1 Y
j= 0
(x − xj )
Ou ainda P3 (x) = y0 + ∆1 y0
1−1 Y
j= 0
2−1 Y
(x − xj ) + ∆2 y0
j= 0
(x − xj ) + ∆3 y0
3−1 Y
j= 0
(x − xj )
Ent˜ao P3 (x) = y0 + ∆ y0 (x−x0 ) + ∆2 y0 (x−x0 )(x−x1 ) + ∆3 y0 (x−x0 )(x−x1 )(x−x2 ) O programa seguinte implementa a f´ormula de Newton; recebe os vetores [ xi ] e [ yi ] e sai com o polinˆ omio dado por (3.6).
Pn (x) = y0 +
n X
i
∆ y0
i−1 Y
j= 0
i= 1
(x − xj )
A seguir o fluxograma da implementa¸c˜ao do algoritmo de Newton :
Newton [ xi ], [ yi ]
Equa¸ca˜o (3.6) (p. 288)
X, Y Subrotina DDYO
[ xk ], [ yk ]
Eq. (3.4), p. 286
∆k y0
289
Pn (x)
[ ∆1 y0 , . . . , ∆n y0 ] Subrotina DDTO
Exemplo: Para a tabela a seguir: x
3
0
9
4
y
−2
15
5
3
687
47
O programa devolve o seguinte polinˆ omio: x3 − 5 · x + 3.
J´ a para esta outra tabela: x y
−2
1
2
4
5
16
−2
−4
−2
2
o programa devolve o seguinte polinˆ omio: x2 − 5 · x + 2. Veja:
290
3.1.3
Interpola¸c˜ ao de Gregory-Newton
Conceito de Diferen¸ca Finita Considere, por exemplo, a sequˆencia dos cubos dos naturais 13
23
33
43
53
63
...
aplicando o operador ∆ (Diferen¸ca), obtemos f (n) : 1
8
27
64
125
216
∆ f (n) : 7
19
37
61
91
...
...
onde a sequˆencia ∆ f ´e obtida tomando-se diferen¸cas sucessivas entre termos consecutivos da sequˆencia f . A calculadora j´a faz esta diferen¸ca atrav´es do comando ∆LIST conforme vimos na p´ agina 39, por exemplo, na tela a seguir
armazenamos em uma vari´ avel por nome LST a sequˆencia dos cubos, na tela do centro aplicamos nesta lista o operador ∆LIST. Podemos aplicar este operador sucessivamente , por exemplo, assim f (n) :
1
8
27
64
125
216
∆ f (n) :
7
19
37
61
91
...
∆2 f (n) : 12
18
24
30
...
como na tela da direita acima.
291
...
Na referˆencia [6] demonstramos a seguinte f´ormula
m
∆ f (n) =
m X
k
(−1)
k=0
m k
f (n − k + m)
que nos fornece a m-´esima diferen¸ca, sem recursividade. O programa a seguir recebe uma sequˆencia e a ordem m da diferen¸ca que se deseja
na tela do centro temos duas simula¸c˜oes. Na tela da direita geramos duas listas a partir das f´ormulas constantes na tela do centro. No diagrama seguinte f (n) :
1
8
27
64
125
216
∆ f (n) :
7
19
37
61
91
...
∆2 f (n) : 12
18
24
30
...
temos: ∆ f (n) = 3 n2 + 3 n + 1 ∆2 f (n) = 6 n + 6 Formalizando as Diferen¸cas Finitas, temos: I) de ordem zero:
∆0 y i = y i
II) de primeira ordem:
∆ yi = yi+1 − yi
III) de segunda ordem: IV) de ordem n:
∆2 yi = ∆ yi+1 − ∆ yi
∆n yi = ∆n−1 yi+1 − ∆n−1 yi 292
...
De momento nos interessa o caso em que a sequˆencia de pontos ´e dada numa tabela, por exemplo i
xi
yi
0
3. 5
9. 82
1
4. 0
10. 91
2
4. 5
12. 05
3
5. 0
13. 14
4
5. 5
16. 19
Vejamos um algoritmo para encontrarmos todas as diferen¸cas finitas: iniciamos com os dados yi na horizontal, assim: 9. 82
10. 91
12. 05
13. 14
16. 19
Em seguida vamos fazendo diferen¸cas sucessivas entre termos consecutivos, at´e obtermos um u ´ nico n´ umero, veja: 9. 82 1. 09 0. 05 −0. 10
10. 91 − − −
1. 14 − 0. 05
12. 05 − − −
1. 09
13. 14 − −
−
16. 19 : ∆0 yi
3. 05 : ∆1 yi
1. 96 : ∆2 yi
2. 01 : ∆3 yi
−
2. 11 : ∆4 yi Estas diferen¸cas podem ser alocadas em uma tabela assim: ∆2 y i ∆3 y i ∆4 y i
i
xi
yi
∆ yi
0
3. 5
9. 82
1. 09
0. 05
−0. 10
2. 11
1
4. 0
10. 91
1. 14
−0. 05
2. 01
−−
2
4. 5
12. 05
1. 09
1. 96
−−
−−
3
5. 0
13. 14
3. 05
−−
−−
−−
4
5. 5
16. 19
−−
−−
−−
−−
O nosso objetivo agora ser´ a “automatizar” o c´alculo destas diferen¸cas finitas − as quais ser˜ ao utilizadas oportunamente na obten¸c˜ao do polinˆ omio interpolante de Gregory-Newton. 293
Vamos por partes − devagar − a f´ormula m X
m
∆ f (n) =
k
(−1)
k=0
m k
f (n − k + m)
para m = 1 resulta
(3.7)
(denotando a posi¸ca˜o n por i) 1
∆ y(i) =
1 X k=0
1 (−1) y(i − k + 1) k k
Na tela a seguir programamos esta f´ormula
Na tela da direita temos uma simula¸c˜ao, confira na tabela a seguir i
xi
0 1 2
∆2 y i ∆3 y i ∆4 y i
yi
∆ yi
3. 5
9. 82
1. 09
0. 05
−0. 10
4. 0
10. 91
1. 14
−0, 05
2. 01
−−
4. 5
12. 05
1. 09
1. 96
−−
−−
2. 11
3
5. 0
13. 14
3. 05
−−
−−
−−
4
5. 5
16. 19
−−
−−
−−
−−
Observe que a f´ormula (3.7) pode ser vista como uma matriz que calcula todas as diferen¸cas finitas; como, por exemplo, a matriz vista a seguir: 9. 82
10. 91
12. 05
1. 09
1. 14
1. 09
0. 05
− 0. 05
−0. 10
13. 14
16. 19 : ∆0 yi
3. 05 : ∆1 yi
1. 96 : ∆2 yi
2. 01 : ∆3 yi
2. 11 : ∆4 yi
294
Na f´ormula m
∆ f (i) =
m X
k
(−1)
k=0
m k
f (i − k + m)
temos a seguinte varia¸c˜ ao para os ´ındices: m = 0, 1, 2, 3, . . .
e
i = 1, 2, 3, . . .
(m linha, i coluna), veja: (m, i)
m
i (0, 1)
(0, 2)
(0, 3)
(0, 4) · · ·
∆0 y i
(1, 1)
(1, 2)
(1, 3)
(1, 4) · · ·
∆1 y i
(2, 1)
(2, 2)
(2, 3)
(2, 4) · · ·
∆2 y i
(3, 1)
(3, 2)
(3, 3)
(3, 4) · · ·
∆3 y i
.......................................... Nos valendo desta observa¸c˜ ao, construimos o programa a seguir que recebe o vetor [ yi ] e sai com uma lista cujos elementos s˜ ao vetores contendo todas as diferen¸cas finitas. (Ver importante observa¸ca˜o, p. 280)
Observe que N ´e o n´ umero de pontos no vetor [ yi ]. O primeiro la¸co FOR
m
FROM
1
TO
N −1
DO
calcula as diferen¸cas ∆1 , ∆2 , . . . , ∆N −1 . O segundo la¸co FOR
I
FROM
1
TO
calcula, em cada diferen¸ca, todos os termos.
295
N −m
DO
Para o caso da tabela i
xi
0
3. 5
∆2 y i ∆3 y i ∆4 y i
yi
∆ yi
9. 82
1. 09
0. 05
−0. 10
2. 11
1
4. 0
10. 91
1. 14
−0, 05
2. 01
−−
2
4. 5
12. 05
1. 09
1. 96
−−
−−
3
5. 0
13. 14
3. 05
−−
−−
−−
4
5. 5
16. 19
−−
−−
−−
−−
entrando com o vetor [ 9. 82 10. 91 12. 05 13. 14 16. 19 ] recebemos de volta a lista: { [ 1. 09 1. 14 1. 09 3. 05 ] [ 0. 05
− 0. 05 1. 96 ] [ −0. 01 2. 01 ] [ 2. 11 ] }
Na qual temos: { [ 1. 09 1. 14 1. 09 3. 05 ] [ 0. 05 | {z } |
− 0. 05 1. 96 ] [ −0. 01 2. 01 ] [ 2. 11 ] } {z } | {z } | {z } ∆ 2 yi
∆ yi
F´ ormula de Gregory-Newton
∆ 3 yi
∆ 4 yi
No caso em que os n´ os da interpola¸c˜ao x0 , x1 , . . . , xn s˜ ao igualmente espa¸cados∗ inicialmente procedemos a uma mudan¸ca de vari´ avel, assim: z=
x − x0 , h
ou ainda x = x0 + zh
Observe a correspondˆencia entre os ´ındices nas duas vari´ aveis:
p
x1
x2
h
p
x0
h
h
···
p
p
xn−1
x
xn
h=1
0
p
p
1
2
···
p
p
n−1
n
z
Os pontos x0 , x1 , . . . , xn , com espa¸camento h, possuem uma correspondˆencia u ´ nica (bije¸c˜ ao) com os pontos 0, 1, . . . , n, com espa¸camento h = 1, o que acarreta simplicidade nos c´alculos − e na programa¸c˜ao. ∗
Isto ´e, xi+1 − xi = h, para i = 0, 1, 2, . . . , n, sendo h uma constante.
296
Com esta mudan¸ca de vari´ avel o polinˆ omio de Newton (p. 288) Pn (x) = y0 +
n X
∆i y0
i= 1
i−1 Y
j= 0
(x − xj )
toma a seguinte forma: Pn (x) = y0 + z ·
∆ y0 ∆2 y 0 ∆n y 0 + z(z −1)· + · · · + z(z −1) . . . (z −(n−1))· 1! 2! n!
Para a dedu¸c˜ ao desta f´ormula, veja, por exemplo, [2]. A f´ormula anterior pode ser reescrita de forma compacta, assim: Pn (x) = y0 +
i−1 n Y X
i= 1 j=0
(z − j) ·
∆i y 0 i!
Observe que vamos necessitar apenas do primeiro termo de todas as diferen¸cas finitas; por exemplo, veja isto no caso da tabela a seguir i
xi
yi
∆2 y i ∆3 y i ∆4 y i
∆ yi
0
3. 5
9. 82
1. 09
0. 05
−0. 10
1
4. 0
10. 91
1. 14
−0. 05
2. 01
2. 11 −−
2
4. 5
12. 05
1. 09
1. 96
−−
−−
3
5. 0
13. 14
3. 05
−−
−−
−−
4
5. 5
16. 19
−−
−−
−−
−−
Isto significa que podemos fixar i = 1 na f´ormula m
∆ f (i) =
m X
k
(−1)
k=0
m k
m y1−k+m k
f (i − k + m)
(3.8)
obtendo portanto m
∆ y1 =
m X
k
(−1)
k=0
Nota: Lembramos que o ´ındice i na f´ormula (3.8) ´e contado a partir de 1 (i = 1, 2, 3, . . .), (p. 295), enquanto nas tabelas do C´ alculo Num´erico (como a tabela anterior) ´e contado a partir de 0 (i = 0, 1, 2, . . .).
297
O programa a seguir recebe o vetor [ yi ] e sai com um vetor contendo o primeiro termo de todas as diferen¸cas, segundo a f´ormula m X m k m ∆ y1 = (−1) y1−k+m (3.9) k k=0
Na tela da direita temos uma simula¸c˜ao para a tabela a seguir i
xi
0
3. 5
∆2 y i ∆3 y i ∆4 y i
yi
∆ yi
9. 82
1. 09
0. 05
−0. 10
2. 11
1
4. 0
10. 91
1. 14
−0. 05
2. 01
−−
2
4. 5
12. 05
1. 09
1. 96
−−
−−
3
5. 0
13. 14
3. 05
−−
−−
−−
4
5. 5
16. 19
−−
−−
−−
−−
Para o c´ alculo do polinˆ omio de Gregory-Newton, os livros de C´ alculo Num´erico, calculam todas as diferen¸cas finitas (como na tabela acima); ora, mas isto n˜ ao ´e necess´ario uma vez que s´ o utilizamos o primeiro termo de todas as diferen¸cas e, estes, podem ser calculados pela f´ormula (3.9). Isto significa, no caso a seguir 9. 82
10. 91
12. 05
1. 09
1. 14
1. 09
0. 05
− 0. 05
−0. 10
13. 14
16. 19 : ∆0 yi
3. 05 : ∆1 yi
1. 96 : ∆2 yi
2. 01 : ∆3 yi
2. 11 : ∆4 yi que para encontrarmos os termos em destaque na vertical, s´ o necessitamos dos termos yi − em destaque na horizontal. 298
O programa a seguir recebe o vetor [ yi ], o primeiro termo xi , isto ´e, x0 , e o passo h; e sai com o polinˆ omio de Gregory-Newton Pn (x) = y0 + z ·
∆ y0 ∆2 y 0 ∆n y 0 + z(z −1)· + · · · + z(z −1) . . . (z −(n−1))· 1! 2! n!
Na tela do centro fizemos uma simula¸c˜ao para a tabela abaixo ∆2 y i ∆3 y i ∆4 y i
i
xi
yi
∆ yi
0
3. 5
9. 82
1. 09
0. 05
−0. 10 2. 01
−−
−−
−−
1
4. 0
10. 91
1. 14
−0. 05
2
4. 5
12. 05
1. 09
1. 96
2. 11
3
5. 0
13. 14
3. 05
−−
−−
−−
4
5. 5
16. 19
−−
−−
−−
−−
Na tela da direita aplicamos ao resultado o comando expand obtendo ao final o polinˆ omio 211 4 −3607 3 91961 2 −257639 45509 ·x + ·x + ·x + ·x + 150 150 600 600 100 Vejamos mais dois exemplos: i
xi
yi
0
0
1. 00
1
1
1. 50
2
2
2. 20
3
3
3. 10
4
4
4. 60
−1 3 17 2 18 1 · x4 + ·x + ·x + ·x + 1 60 10 60 60 299
i
xi
yi
0
1
5
1
4
9
2
7
18
3
10
32
Limitante superior para o erro para pontos equidistantes Nas mesmas condi¸c˜ oes (hip´ oteses) do teorema 18 (p. 274) temos o seguinte atalho para o c´ alculo de um limitante superior para o erro, para pontos equidistantes: ([4], p. 137) |E(x)| ≤ onde,
hn+1 M 4(n + 1)
n
o
(n+1)
M = max f (x) : x ∈ [ x0 , xn ]
Compare este resultado com o seguinte:
|E(x)| ≤
n
Y
(x − xi )
i=0
(n + 1)!
Onde: M = max f (n+1) (x) : x ∈ [ a, b ] .
300
M
3.2
Integra¸ c˜ ao
Introdu¸c˜ ao: Nesta se¸c˜ ao implementaremos as principais regras de integra¸c˜ao num´erica − as quais constam nos livros de C´ alculo Num´erico. Para a dedu¸c˜ao das f´ormulas consulte um dos livros de nossas referˆencias. No c´ alculo num´erico de integrais Z I=
b
f (x) dx
a
efetuamos uma parti¸ca ˜o do intervalo [ a, b ] em n subintervalos e “amostramos” a fun¸c˜ ao f no pontos desta parti¸c˜ao, assim: yn−1 y3
y0 y2
yn−2
y1
x0 = a
yn
y4
p
p
x1
x2
p
x3
p
x4
p
···
xn−2
p
xn−1
xn = b
Onde: y0 = f (x0 ), y1 = f (x1 ), y2 = f (x2 ), . . . , yn−1 = f (xn−1 ), yn = f (xn )
f (x)
h
0
a = x0
...
h
x1
x2
h
xn−1
xn = b
x
C´ alculos aproximados da integral I acima podem ser obtidos a partir da integra¸c˜ ao do polinˆ omio interpolador da fun¸c˜ao f (x), em pontos equidistantes do intervalo [ a, b ]. Este processo ´e conhecido como f´ormulas de quadratura de Newton-Cotes. Existem tamb´em outras f´ormulas aproximadas para integra¸c˜ ao num´erica como veremos a seguir. 301
3.2.1
Regra dos trap´ ezios generalizada
Na regra dos trap´ezios em cada subintervalo da parti¸c˜ao o gr´ afico da fun¸c˜ ao ´e aproximado por segmentos de reta.
f (x)
h
0
a = x0
...
h
x1
x2
h
xn−1
xn = b
x
A f´ormula para a regra dos trap´ezios generalizada ´e como a seguir: Z
xn
x0
h f (x) dx ∼ = [ f (x0 ) + 2f (x1 ) + 2f (x2 ) + · · · + 2f (xn−1 ) + f (xn ) ] 2
Erro: Et = −
h2 (x − x0 ) f (2) (ξ) , 12 n
ξ ∈ [ x0 , xn ]
Limitante superior para o erro: O ponto ξ no intervalo [ a, b ] n˜ ao tem como ser determinado, raz˜ ao porque o erro n˜ ao pode ser calculado com precis˜ao, no entanto, podemos calcular um limitante superior para o erro: |Et | ≤
o n
h2
(xn − x0 ) max f (2) (x) : x0 ≤ x ≤ xn 12
302
Implementa¸c˜ ao da regra dos trap´ ezios generalizada O programa seguinte
recebe n (o n´ umero de subintervalos) e sai com um vetor contendo os coeficientes num´ericos em destaque na express˜ ao: 1f (x0 ) + 2f (x1 ) + 2f (x2 ) + · · · + 2f (xn−1 ) + 1f (xn ) que comparece na f´ormula Z xn h f (x) dx ∼ = [ f (x0 ) + 2f (x1 ) + 2f (x2 ) + · · · + 2f (xn−1 ) + f (xn ) ] 2 x0 Na tela da direita temos alguns exemplos. A seguir o programa que implementa a regra dos trap´ezios
→
Configurando a vista do CAS como na tela do centro, na tela da direita vemos uma simula¸c˜ ao para a seguinte integral Z 4 √ √ x dx ∴ f (x) = x 1
para n = 6 subintervalos.
303
Limitante superior para o erro Vamos calcular um limitante superior para o erro, segundo a desigualdade:
o n
h2
(2)
|Et | â&#x2030;¤ (xn â&#x2C6;&#x2019; x0 ) max f (x) : x0 â&#x2030;¤ x â&#x2030;¤ xn 12 Para este caso particular, temos: h = (b â&#x2C6;&#x2019; a)/n = (4 â&#x2C6;&#x2019; 1)/6 = 0.5. Substituindo os valores j´a dispon´Ĺveis, obtemos: |Et | â&#x2030;¤ Ou ainda
n
o 0.52
(4 â&#x2C6;&#x2019; 1) max f (2) (x) : 1 â&#x2030;¤ x â&#x2030;¤ 4 12
n
o
(2)
|Et | â&#x2030;¤ 0.0625 ¡ max f (x) : 1 â&#x2030;¤ x â&#x2030;¤ 4
Na tela a seguir definimos duas fun¸cË&#x153;oes â&#x2C6;&#x161; e f (x) = x
(3.10)
g(x) = f â&#x20AC;˛â&#x20AC;˛ (x)
Na tela da direita plotamos o gr´ afico de |g| no intervalo [ 1, 4 ]; g(x) ´e decrescente neste intervalo, o m´ aximo que a fun¸cË&#x153;ao g assume ocorre no extremo esquerdo, isto ´e: â&#x2C6;&#x161; â&#x2C6;&#x161;
n
o x 1
(2)
: x â&#x2C6;&#x2C6; [ 1, 4 ] = = 0.25 max f (x) : x â&#x2C6;&#x2C6; [ 1, 4 ] = max 2 4¡x 4 ¡ 12 Substituindo este valor na desigualdade (3.10), temos: |Et | â&#x2030;¤ 0.0625 ¡ 0.25 = 0.0156
304
3.2.2
Primeira regra de Simpson
A primeira regra de Simpson generalizada − ou regra 1/3 de Simpson − estabelece que R xn x0
f (x) dx ∼ =
h 3
[ f (x0 ) + 4f (x1 ) + 2f (x2 ) + 4f (x3 ) + · · · + 2f (xn−2 ) + 4f (xn−1 ) + f (xn ) ]
Onde n ´e um n´ umero par de subintervalos. O erro ´e dado por: Et = −
h4 (x − x0 ) f (4) (ξ) , 180 n
ξ ∈ [ x0 , xn ]
Ou, alternativamente, tendo em conta que h = Et = −
(xn − x0 )5 (4) f (ξ) , 180 n4
xn −x0 n
ξ ∈ [ x0 , xn ]
Limitante superior para o erro: Como ξ ∈ [ x0 , xn ] n˜ ao ´e conhecido, podemos, no entanto, calcular um limitante superior para o erro: |Et | ≤
o n
h4
(xn − x0 ) max f (4) (x) : x0 ≤ x ≤ xn 180
Implementa¸ c˜ ao da regra de Simpson generalizada
Inicialmente vamos determinar uma f´ormula para gerar os coeficientes num´ericos em destaque na express˜ ao: 1f (x0 ) + 4f (x1 ) + 2f (x2 ) + 4f (x3 ) + · · · + 2f (xn−2 ) + 4f (xn−1 ) + 1f (xn ) Uma f´ormula para o termo geral desta sequˆencia ´e: 1, se I = 0 ou I = n; aI = 3 − (−1)I , se 1 ≤ I ≤ n − 1
O programa seguinte calcula estes coeficientes
305
A regra de Simpson generalizada R xn x0
f (x) dx ∼ =
h 3
[ f (x0 ) + 4f (x1 ) + 2f (x2 ) + 4f (x3 ) + · · · + 2f (xn−2 ) + 4f (xn−1 ) + f (xn ) ]
est´ a implementada pelo seguinte programa:
Na tela do centro fazemos uma simula¸c˜ao para a integral Z 1 1 1 dx ∴ f (x) = , a = 0, b = 1, n = 8. 2 1 + x2 0 1+x Na tela da direita comparamos nosso resultado com o valor da integral dado pela calculadora. Exemplo: Na tela a seguir fazemos uma simula¸c˜ao para a integral Z 3 (x ex + 1) dx ∴ f (x) = x ex + 1, a = 0, b = 3, n = 2, 4, 6. 0
para n = 2, n = 4 e n = 6 subintervalos
Na tela da direita comparamos os respectivos erros tomando como referˆencia a integral encontrada pela calculadora.
306
3.2.3
Segunda regra de Simpson
A segunda regra de Simpson generalizada − ou regra 3/8 de Simpson − estabelece que R xn x0
f (x) dx ∼ =
3h 8
[ y0 + 3y1 + 3y2 + 2y3 + 3y4 + 3y5 + 2y6 + · · · + 3yn−2 + 3yn−1 + yn ]
ultiplo de 3 e h = (b − a)/n. O erro ´e dado por Onde n ´e um m´ Et = −
h4 (x − x0 ) f (4) (ξ) , 80 n
ξ ∈ [ x0 , xn ]
Antes de implementar a regra de 3/8 de Simpson generalizada vamos fazer um programa para gerar a sequˆencia dos coeficientes: I:0
1
2
3
4
5
6
...
n−2
n−1
n
aI : 1
3
3
2
3
3
2
...
3
3
1
Esta sequˆencia ´e gerada com o seguinte programa:
O programa da segunda regra de Simpsom muda muito pouco em rala¸c˜ao ao programa da primeira regra (RSG, p. 306), salve aquele programa com um novo nome, RSG2, assim
Na tela do centro fizemos as (poucas) altera¸c˜oes necess´arias. Na tela da direita fazemos uma simula¸c˜ ao para a integral Z 4 p p ln(x3 + (ex +1)) dx ∴ f (x) = ln(x3 + (ex +1)), a = 1, b = 4, n = 9. 1
307
Na tela a seguir exibimos o valor dado pela calculadora
Na tela da direita observamos que com n = 18 obtemos o mesmo valor da calculadora (com 4 decimais). Exemplo: Calcule o valor aproximado da integral Z 7 ln (x + 9) dx 1
usando a regra 3/8 de Simpson para 3, 6 e 9 subintervalos; ademais, encontre os respectivos erros â&#x2C6;&#x2019; comparado com o resultado da calculadora. Solu¸ cË&#x153; ao: Na tela a seguir temos as integrais pedidas
Na tela da direita, os respectivos erros.
308
3.2.4
Quadratura gaussiana
A f´ormula de quadratura de Gauss, ou simplesmente quadratura gaussiana, ´e mais uma alternativa que se conta para o c´alculo num´erico de integrais: Z b f (x) dx I= a
Este m´etodo fornece um resultado bem mais preciso que os anteriores − embora s´ o possa ser aplicado quando se conhece a fun¸c˜ao dada por f (x); n˜ ao se aplica a partir de pontos definidos por experimentos (tabelados). Inicialmente, o intervalo de integra¸c˜ao [ a, b ] deve ser “transladado” para o intervalo [ −1, 1 ]; isto se consegue atrav´es de uma mudan¸ca de vari´ avel, fornecida pela seguinte bije¸c˜ ao: x(t)
x−a =
−1 p
[
(−1, a)
(1, b)
[
b
b−a 1−(−1)
a
p1
0
t
Encontrando a equa¸c˜ ao da reta por dois pontos, temos: 1 1 x = (b − a) t + (b + a) ⇒ dx = 2 2 Expressando t em fun¸c˜ ao de x, temos x = a, 2x − (b + a) ⇒ t= x = b, b−a
1 (b − a) dt 2 t = −1; t = 1.
Por outro lado, temos
f (x) = f
1 1 (b − a) t + (b + a) 2 2
portanto f (x) dx = f
1 1 (b − a) t + (b + a) 2 2
1 (b − a) dt 2
Sendo assim, temos: I=
Z
b
f (x) dx =
a
Z
1
−1
309
F (t) dt
(t − (−1))
Onde:
1 1 1 (b − a) t + (b + a) F (t) = (b − a) · f 2 2 2 A prop´osito, o programa a seguir recebe f (x) e sai com F (t)
Na tela do centro temos um exemplo com f (x) = 3 ex
e
[ a, b ] = [ 1, 3 ]
portanto F (t) = 3 et+2 Na tela da direita temos um exemplo com f (x) = e−x
2 /2
e
portanto
[ a, b ] = [ −2, 2 ] 2
F (t) = 2 e−2 t
Retomando, A f´ormula de Gauss para n + 1 pontos ´e da forma: Z 1 F (t) dt = A0 F (t0 ) + A1 F (t1 ) + · · · + An F (tn ) I= −1
onde os coeficientes Ai e os pontos ti (i = 0, 1, . . . , n) s˜ ao inc´ ognitas a serem determinadas. Observe que temos 2n + 2 inc´ ognitas: A0 , A1 , . . . , An ; t0 , t1 , . . . , tn . Escolheremos os coeficientes Ai e os pontos ti de tal forma que a f´ormula forne¸ca um valor exato da integral para polinˆ omios de graus ≤ 2n + 1. Vamos por partes, para dois pontos, a f´ormula de Gauss ´e: Z 1 F (t) dt = A0 F (t0 ) + A1 F (t1 ) I= −1
Neste caso os parˆ ametros A0 , A1 , t0 , t1 , devem ser determinados de modo que esta f´ormula seja exata para polinˆ omios de graus ≤ 2 · 1 + 1 = 3.
310
Sendo assim, basta exigir que seja exata para os polinˆ omios∗ F0 (t) = 1, F1 (t) = t, F2 (t) = t2 , F3 (t) = t3 .
(3.11)
tendo em vista que qualquer outro polinˆ omio de grau ≤ 3 pode ser escrito como: (combina¸ca˜o linear) P3 (t) = a0 + a1 t + a2 t2 + a3 t3 = a0 F (t0 ) + a1 F (t1 ) + a2 F (t2 ) + a3 F (t3 ) Sendo assim, se a f´ormula Z 1 Fk (t) dt = A0 Fk (t0 ) + A1 Fk (t1 ),
k = 0, 1, 2, 3
−1
´e exata para estes polinˆ omios, ent˜ ao teremos: Z 1 P3 (t) dt = A0 P3 (t0 ) + A1 P3 (t1 )
(prove isto)
−1
Ou seja, a f´ormula tamb´em ´e exata para P3 (t). Portanto, considerando os polinˆ omios dados em (3.11) as quatro inc´ ognitas A0 , A1 , t0 , t1 podem ser encontradas por: Z 1 tk dt = A0 tk0 + A1 tk1 , k = 0, 1, 2, 3. −1
Desdobrando, temos:
k=0 ⇒
Z
k=1 ⇒
Z
k=2 ⇒
Z
k=3 ⇒
Z
1 −1 1 −1 1 −1 1 −1
t0 dt = A0 t00 + A1 t01 t1 dt = A0 t10 + A1 t11 t2 dt = A0 t20 + A1 t21 t3 dt = A0 t30 + A1 t31
Resolvendo as integrais obtemos o seguinte sistema de equa¸c˜oes n˜ ao-lineares: A0 + A1 = 2 A0 t0 + A1 t1 = 0 A0 t20 + A1 t21 = 2/3 A0 t30 + A1 t31 = 0 ∗ ´ S˜ ao os polinˆ omios da base canˆ onica: B = { 1, t, t2 , t3 }, na linguagem da Algebra Linear.
311
Resolvendo este sistema obtemos A0 = A1 = 1
(exerc´ıcio)
1 1 t0 = − √ , t1 = √ 3 3
e
Substituindo na f´ormula de Gauss para dois pontos Z 1 F (t) dt = A0 F (t0 ) + A1 F (t1 ) I= −1
obtemos IG =
Z
1 −1
√
3 F (t) dt = F − +F 3
√
3 3
(3.12)
Esta f´ormula ´e exata para polinˆ omios de grau ≤ 3, por constru¸c˜ao.
Exemplo: Calcular, Z 2 utilizando a quadratura gaussiana para dois pontos, o 2 e−x /2 dx. valor da integral −2
Solu¸ c˜ ao: Inicialmente procedemos `a mudan¸ca de vari´ avel. Do enunciado 2 retiramos: a = −2, b = 2 e f (x) = e−x /2 . Substituindo em F (t), temos: 1 1 1 (b − a) t + (b + a) F (t) = (b − a) · f 2 2 2 1 1 1 = 2 − (−2) · f 2 − (−2) t + 2 + (−2) 2 2 2
Sendo assim:
2 /2
F (t) = 2 f (2 t) = 2 e−(2 t) Logo
√
√ 3 2 3 = 2 e−2 (− 3 ) F − 3 Substituindo em (3.12) resulta
;
F
2
= 2 e−2 t √
√ 3 2 3 = 2 e−2 ( 3 ) 3
IG = 4 e−2/3 = 2.0537 O programa a seguir implementa a f´ormula (3.12)
Na telas do centro e direita temos dois exemplos. 312
O erro para o algoritmo de Gauss ´e dado por: En =
22n+1 (n!)4
(2n) (ξ), 3 · F (2n + 1) · (2n)!
−1 < ξ < 1.
Se tentarmos obter a f´ormula de Gauss para trˆes pontos Z 1 I= F (t) dt = A0 F (t0 ) + A1 F (t1 ) + A3 F (t3 ) −1
teremos um sistema n˜ ao-linear com seis inc´ ognitas: A0 , A1 , A3 ; t0 , t1 , t3 : A0 + A0 + A0 = 2 A0 t0 + A1 t1 + A2 t2 = 0 A t2 + A t2 + A t2 = 2/3 0
0
1
1
2
2
A0 t30 + A1 t31 + A2 t32 = 0 A0 t40 + A1 t41 + A2 t42 = 2/5 A0 t50 + A1 t51 + A2 t52 = 0
de dif´ıcil resolu¸c˜ ao, convenhamos. Existem livros∗ que apresentam a f´ormula para a quadratura gaussiana com at´e n = 2 (3 pontos): r ! r ! Z 1 3 3 8 5 5 + F (0) + F F (t) dt = F − I= 9 5 9 9 5 −1 outros livros costumam tabelar valores das constantes Ai e ti para um certo n´ umero de pontos. Por exemplo, na p´ agina seguinte apresentamos uma tabela para n = 7 (8 pontos). A seguir programamos a f´ormula anterior e simulamos um exemplo
na tela da direita temos, para efeito de compara¸c˜ao, o valor da calculadora. ∗
Como, por exemplo, [4].
313
Existem livros que trazem algumas tabelas tais como n
i
ti
1
1; 0
±0. 57735027
1
2
0; 1
±0. 77459667
5/9
0
8/9
±0. 86113631
0. 34785484
2 3
4
0; 1 2; 3
±0. 33998104
0. 65214516
0; 1
±0. 90617985
0. 23692688
2; 3 4 5
0; 1 2; 3
6
±0. 53846931
0. 47862868
0
0. 53888889
±0. 93246951
0. 17132450
±0. 66120939
0. 36076158
4; 5
±0. 23861919
0. 46791394
0; 1
±0. 94910791
0. 12948496
2; 3 4; 5 6 7
Ai
0; 1 2; 3 4; 5 6; 7
±0. 74153119
0. 27970540
±0. 40584515
0. 38183006
0
0. 41795918
±0. 96028986
0. 10122854
±0. 79666648
±0. 52553242
±0. 18343464
0. 22238104 0. 31370664 0. 36268378
Por exemplo, como vimos, para n = 1 (dois pontos) A0 = A1 = 1,
1 t0 = − √ = −0.57735027, 3
314
(p. 312)
1 t1 = √ = 0.57735027 3
Existem v´arios inconvenientes em se trabalhar com tabelas como a da p´ agina anterior∗ , em raz˜ ao disto vamos envidar esfor¸cos para programa a f´ormula da quadratura gaussiana Z 1 F (t) dt = A0 F (t0 ) + A1 F (t1 ) + · · · + An F (tn ) I= −1
para um n arbitr´ario de pontos e sem utilizar tabelas. Iniciamos com os polinˆ omios ortogonais, definidos a seguir: Defini¸ c˜ ao 13 (Conjunto ortogonal). Um conjunto de polinˆ omios P = pn (x) : n = 0, 1, 2, . . . ,
(onde n ´e o grau do polinˆ omio) ´e dito ortogonal em rela¸ca ˜o ` a fun¸ca ˜o peso ω(x), num intervalo [ a, b ] se: Z
b
ω(x) pm (x) pn (x) dx = 0 a
para m 6= n
Existem v´arios conjuntos de polinˆ omios ortogonais − como, p. ex. polinˆ omios de Hermite, de Laguerre e de Legendre −, dependendo da escolha da fun¸c˜ ao peso ω(x). Quando ω(x) = 1 e o intervalo de integra¸c˜ao [ a, b ] ´e o intervalo [ −1, 1 ], os polinˆ omios s˜ ao chamados polinˆ omios de Legendre − dispon´ıveis na HP Prime . O seguinte teorema ´e de importˆ ancia decisiva para o algoritmo de Gauss. Teorema 21. Fixado arbitrariamente um natural n, o pontos ti para a quadratura gaussiana ´e a i−´esima raiz (zero) do polinˆ omio de Legendre de ordem n: pn (t). Os coeficientes Ai , s˜ ao obtidos pela f´ormula: Ai =
(1 −
t2 ) i
2 · [ p′n (ti ) ]2
(3.13)
onde p′n (ti ) ´e o valor da derivada de pn (t) avaliada no ponto ti . Prova: [5].
O nosso objetivo agora ser´ a implementar (programar) a quadratura gaussiana. Posto o nosso problema vejamos agora alguns recursos que a calculadora nos disponibiliza para resolvˆe-lo.
∗ Por exemplo, o livro citado na referˆencia [2] ao elaborar o programa da quadratura gaussiana digita a tabela dentro do programa (p. 526).
315
Os polinˆ omios de Legendre podem ser acessados na calculadora a partir da caixa de ferramentas, assim:
Aqui
←−
Por exemplo, vimos, para n = 1 (dois pontos) que √ √ 1 1 3 3 A0 = A1 = 1, t0 = − √ = − , t1 = √ = 3 3 3 3 e para n = 2 (3 pontos): I=
Z
(p. 313)
1
F (t) dt = −1
(p. 312)
5 F 9
r ! 8 5 3 + F (0) + F − 5 9 9
r ! 3 5
Segundo o teorema 21 (p. 315) temos que “Fixado um natural n, o ponto ti para a quadratura gaussiana ´e a i−´esima raiz (zero) do polinˆ omio de Legendre de ordem n”. Nas telas podemos confirmar os dados anteriores
com a ressalva de que na calculadora ´e n + 1 no lugar de n. Agora s´ o nos resta encontrar os coeficientes Ai dados pela f´ormula: Ai = onde
p′
n
(1 −
2 [ p′n (ti ) ]2
t2 ) · i
(ti ) ´e o valor da derivada de pn (t) avaliada no ponto ti .
316
Na tela a seguir
programamos a f´ormula Ai = onde
p′
n
(1 −
t2 ) i
2 · [ p′n (ti ) ]2
(ti ) ´e o valor da derivada de pn (t) avaliada no ponto ti .
Nas telas do centro e direita confirmamos os Ai que aparecem em √ √ 1 1 3 3 A0 = A1 = 1, t0 = − √ = − , t1 = √ = | {z } 3 3 3 3 Aqui
e
I=
Z
1
−1
5 F (t) dt = F 9
r ! 8 5 3 + F (0) + F − 5 9 9
r ! 3 5
Observe que em cada caso ao digitarmos t na linha de entrada teremos uma lista com os respectivos coeficientes ti , veja:
Ap´os todo este esfor¸co − e ainda n˜ ao terminamos − fazemos quest˜ao de confirmar alguns dados constantes na tabela da p´ agina 314, fazemos isto na p´ agina seguinte:
317
Nas telas a seguir
confirmamos as linhas n = 1 e n = 2 na tabela a seguir n
i
ti
1
1; 0
±0. 57735027
1
2
0; 1
±0. 77459667
5/9
0
8/9
±0. 86113631
0. 34785484
2 3
0; 1 2; 3
Ai
±0. 33998104
Nas telas a seguir
confirmamos a linha n = 3 na tabela acima.
318
0. 65214516
Programando a f´ ormula da quadratura gaussiana Creio que j´a dispomos das principais ferramentas para implementar a quadratura gaussiana. Na tela a seguir temos o programa que faz isto
no centro e ` a direita temos duas simula¸c˜oes. Nota: A instru¸c˜ ao QGL(n) assinalada a seguir
−→
tem por objetivo gerar as listas dos coeficientes Ai e ti , como vemos na tela da direita. Como mais um exemplo de aplica¸c˜ao do programa, vamos calcular a integral Z 4 log x + x2 dx (x + 3)2 2 Nas duas primeiras telas a seguir
calculamos a integral para n = 2 e n = 3, respectivamente. Na tela da direita temos o valor dado pela calculadora. Observe que com apenas n = 3 (4 pontos) j´a obtemos o valor da calculadora. 319
No quadro a seguir
R. Trap´ ezios
Simpson 1/3
Q. Gaussiana
HP Prime
Simpson 3/8
Trap´ ezios Simpson 1/3 Simpson 3/8 Gauss
↑ erros
comparamos o valor da integral Z 4 2
log x + x2 dx (x + 3)2
em todas as t´ecnicas vistas (com n = 6), na u ´ ltima tela temos os erros cometidos − tomando-se o valor da calculadora como referˆencia.
320
3.2.5
Integral dupla
Seja o problema de calcular a integral dupla a seguir: Z Z I= f (x, y) dx dy D
onde D ´e o retˆ angulo delimitado por: a≤x≤b c≤y≤d O teorema seguinte afirma que o c´alculo da integral dupla de uma fun¸c˜ao cont´ınua ´e realizado por meio de uma integral iterada, e em qualquer ordem. Teorema 22 (Fubini). Se f : [ a, b ] × [ c, d ] → R ´e uma fun¸c˜ao cont´ınua, ent˜ao Z Z
f (x, y) dA = [ a, b ]×[ c, d ]
Z bh Z
d
i
f (x, y) dy dx =
c
a
Z
c
dh
Z
a
b
i f (x, y) dx dy
Veremos que as regras apresentadas anteriormente podem ser usadas no presente contexto. Inicialmente fazemos uma parti¸c˜ao do retˆ angulo anterior em nx subintervalos em [ a, b ] e em ny subintervalos em [ c, d ], assim: y
p
yn = d
p
yn−1
.. .
.. .
(xi , yj )
p
yj
.. .
···
.. .
s
···
p
y1
p
y0 = c
p
x0 = a
p
x1
p
x2
···
p
xi
···
p
xn−1
p
x
xn = b
Na verdade o n que comparece no eixo x ´e nx e o n que comparece no eixo y ´e ny (n˜ ao s˜ ao necessariamente iguais).
321
Pois bem, supondo f cont´ınua podemos utilizar o teorema de Fubini e escrever Z d Z Z Z b f (x, y) dy dx I= f (x, y) dx dy = D
Chamando
Rd c
c
a
f (x, y) dy de G(x), isto ´e G(x) =
podemos escrever: I=
Z
Z
d
f (x, y) dy
(3.14)
c
b
G(x) dx
a
Para resolver esta integral simples aplicaremos a segunda regra de Simpson R xn x0
f (x) dx ∼ =
3h 8
[ y0 + 3y1 + 3y2 + 2y3 + 3y4 + 3y5 + 2y6 + · · · + 3yn−2 + 3yn−1 + yn ]
Ent˜ ao I=
3h G(x0 ) + 3G(x1 ) + 3G(x2 ) + 2G(x3 ) + 3G(x4 ) + 3G(x5 ) + 2G(x6 ) 8 · · · + 3G(xn−2 ) + 3G(xn−1 ) + G(xn ) (3.15)
Da equa¸c˜ ao (3.14), temos: G(xi ) =
Z
d
c
f (xi , y) dy ;
(i = 0, 1, 2, . . . , nx)
(3.16)
Para cada i fixo, devemos calcular a integral da fun¸c˜ao (de uma u ´ nica vari´ avel) f (xi , y) no intervalo [ c, d ]. y
p
yn = d
p
yn−1
.. .
.. .
(xi , yj )
p
yj
.. .
···
.. .
s
···
p
y1
p
y0 = c
p
x0 = a
p
x1
p
x2
···
322
p
xi
···
p
xn−1
p xn = b
x
Para resolver esta integral em y G(xi ) =
Z
d c
f (xi , y) dy ;
(i = 0, 1, 2, . . . , nx)
utilizaremos a primeira regra de Simpson: R xn x0
f (x) dx ∼ =
h 3
[ f (x0 ) + 4f (x1 ) + 2f (x2 ) + 4f (x3 ) + · · · + 2f (xn−2 ) + 4f (xn−1 ) + f (xn ) ]
Ent˜ao G(xi ) =
h f (xi , y0 ) + 4f (xi , y1 ) + 2f (xi , y2 ) + 4f (xi , y3 ) + 2f (xi , y4 ) 3 + · · · + 2f (xi , yn−2 ) + 4f (xi , yn−1 ) + f (xi , yn )
Observe que temos nx + 1 desta equa¸c˜oes; ademais, observe que como estamos particionando o intervalo [ c, d ] em ny subintervalos y
p
yn = d
p
yn−1
.. .
.. .
(xi , yj )
p
yj
.. .
···
.. .
s
···
p
y1
p
y0 = c
p
x0 = a
p
x1
p
x2
···
a rigor temos G(xi ) =
p
xi
···
p
xn−1
p
x
xn = b
(i = 0, 1, 2, . . . , nx)
h f (xi , y0 ) + 4f (xi , y1 ) + 2f (xi , y2 ) + 4f (xi , y3 ) + 2f (xi , y4 ) 3 + · · · + 2f (xi , yny−2 ) + 4f (xi , yny−1 ) + f (xi , yny )
323
Pois bem, substituindo G(xi ) =
(i = 0, 1, 2, . . . , nx)
h f (xi , y0 ) + 4f (xi , y1 ) + 2f (xi , y2 ) + 4f (xi , y3 ) + 2f (xi , y4 ) 3 + · · · + 2f (xi , yny−2 ) + 4f (xi , yny−1 ) + f (xi , yny )
nesta equa¸c˜ ao I=
(eq. (3.15), p. 322)
3h G(x0 ) + 3G(x1 ) + 3G(x2 ) + 2G(x3 ) + 3G(x4 ) + 3G(x5 ) + 2G(x6 ) 8 · · · + 3G(xn−2 ) + 3G(xn−1 ) + G(xn )
e tendo em conta que G(xi ) =
obtemos: I= 3hx 8
hy 3
h f (xi , y0 ) + 4f (xi , y1 ) + 2f (xi , y2 ) + 4f (xi , y3 ) + 2f (xi , y4 ) 3 + · · · + 2f (xi , yn−2 ) + 4f (xi , yn−1 ) + f (xi , yn )
F (x0 , y0 ) + 4F (x0 , y1 ) + 2F (x0 , y2 ) + 4F (x0 , y3 ) + ···+ 4F (x0 , yn−1 ) + F (x0 , yn )
+ 3· hy F (x1 , y0 ) + 4F (x1 , y1 ) + 2F (x1 , y2 ) + 4F (x1 , y3 ) + ···+ 4F (x1 , yn−1 ) + F (x1 , yn ) 3 F (x2 , y0 ) + 4F (x2 , y1 ) + 2F (x2 , y2 ) + 4F (x2 , y3 ) +···+ 4F (x2 , yn−1 ) + F (x2 , yn ) + 3· hy 3 + 2· hy F (x3 , y0 ) + 4F (x3 , y1 ) + 2F (x3 , y2 ) + 4F (x3 , y3 )+···+ 4F (x3 , yn−1 ) + F (x3 , yn ) 3 F (x4 , y0 ) + 4F (x4 , y1 ) + 2F (x4 , y2 ) + 4F (x4 , y3 )+···+ 4F (x4 , yn−1 ) + F (x4 , yn ) + 3· hy 3 + 3· hy F (x5 , y0 ) + 4F (x5 , y1 ) + 2F (x5 , y2 ) + 4F (x5 , y3 )+···+ 4F (x5 , yn−1 ) + F (x5 , yn ) 3 F (x6 , y0 ) + 4F (x6 , y1 ) + 2F (x6 , y2 ) + 4F (x6 , y3 )+···+ 4F (x6 , yn−1 ) + F (x6 , yn ) + 2· hy 3
····································································· hy
+ 3·
3
F (xn−2 , y0 ) + 4F (xn−2 , y1 ) + 2F (xn−2 , y2 ) + 4F (xn−2 , y3 )+···+ F (xn−2 , yn )
+ 3· hy F (xn−1 , y0 ) + 4F (xn−1 , y1 ) + 2F (xn−1 , y2 ) + 4F (xn−1 , y3 )+···+ F (xn−1 , yn ) 3 +
hy 3
F (xn , y0 ) + 4F (xn , y1 ) + 2F (xn , y2 ) + 4F (xn , y3 )+···+ 4F (xn , yn−1 ) + F (xn , yn )
324
Arrumando a casa obtemos: hy
I= 3hx · 8
1· F (x0 , y0 ) + 4F (x0 , y1 ) + 2F (x0 , y2 ) + 4F (x0 , y3 ) + ···+ 4F (x0 , yn−1 ) + F (x0 , yn )
3
+ 3· F (x1 , y0 ) + 4F (x1 , y1 ) + 2F (x1 , y2 ) + 4F (x1 , y3 ) + ···+ 4F (x1 , yn−1 ) + F (x1 , yn )
+ 3· F (x2 , y0 ) + 4F (x2 , y1 ) + 2F (x2 , y2 ) + 4F (x2 , y3 ) +···+ 4F (x2 , yn−1 ) + F (x2 , yn ) + 2· F (x3 , y0 ) + 4F (x3 , y1 ) + 2F (x3 , y2 ) + 4F (x3 , y3 )+···+ 4F (x3 , yn−1 ) + F (x3 , yn ) + 3· F (x4 , y0 ) + 4F (x4 , y1 ) + 2F (x4 , y2 ) + 4F (x4 , y3 )+···+ 4F (x4 , yn−1 ) + F (x4 , yn ) + 3· F (x5 , y0 ) + 4F (x5 , y1 ) + 2F (x5 , y2 ) + 4F (x5 , y3 )+···+ 4F (x5 , yn−1 ) + F (x5 , yn ) + 2· F (x6 , y0 ) + 4F (x6 , y1 ) + 2F (x6 , y2 ) + 4F (x6 , y3 )+···+ 4F (x6 , yn−1 ) + F (x6 , yn )
·····································································
+ 3· F (xn−2 , y0 ) + 4F (xn−2 , y1 ) + 2F (xn−2 , y2 ) + 4F (xn−2 , y3 )+···+ F (xn−2 , yn ) + 3· F (xn−1 , y0 ) + 4F (xn−1 , y1 ) + 2F (xn−1 , y2 ) + 4F (xn−1 , y3 )+···+ F (xn−1 , yn )
+ 1· F (xn , y0 ) + 4F (xn , y1 ) + 2F (xn , y2 ) + 4F (xn , y3 )+···+ 4F (xn , yn−1 ) + F (xn , yn )
Na matriz acima podemos obervar − pelos ´ındices de yj − que temos ny + 1 parcelas em cada linha e − pelos ´ındices de xi − observamos que temos nx + 1 linhas. Para programar esta equa¸c˜ ao vamos antes fazer um programa que calcule uma matriz com os valores da fun¸c˜ao em todos os v´ertices da malha de parti¸c˜ao, isto ´e F (xi , yj ) ; (i = 0, 1, 2, . . . , nx), (j = 0, 1, 2, . . . , ny)
Ou ainda
F (x0 , y0 )
F (x0 , y1 )
F (x0 , y2 )
...
F (x , y ) F (x , y ) F (x , y ) . . . 1 0 1 1 1 2 ... ... ... ... F (xnx , y0 ) F (xnx , y1 ) F (xnx , y2 ) . . .
325
F (x0 , yny )
F (x1 , yny ) ... F (xnx , yny )
O programa a seguir calcula a matriz anterior
Nota: Ver concatena¸c˜ ao da fun¸c˜ao map, p. 155. Na tela da direita temos uma simula¸c˜ao para a seguinte integral dupla I=
Z
0
π/2 Z 0,4
(y 2 + y) cos x dy dx
0
onde f (x, y) = (y 2 + y) cos x
e
0 ≤ y ≤ 0, 4
D:
0 ≤ x ≤ π/2
Recebemos na saida do programa a seguinte matriz:
0.0000
0.1100
0.2400
0.3900
0.5600
0.0000 0.0000 0.0000
0.0953
0.2078
0.3377
0.0550
0.1200
0.1950
0.0000
0.0000
0.0000
0.4850 0.2800 0.0000
− Na figura a seguir plotamos (esquerda) a malha da parti¸c˜ao e, na figura da direita, os valores f (xi , yj ) de acordo com a matriz anterior, assim: f (x, y)
r
0 π 6 π 3 π 2
x
r
f (x, y)
0,1 r 0,2 r 0,3 r 0,4 r
r
r
r
r
r
r
r
r
r
r
r
r
r
y π 6
r π 3 π 2
x
326
y
r
r
r
r r
r
r
r
Finalmente, para o programa que calcula a integral dupla podemos salvar o programa anterior com outro nome, digamos, I− Dupla, e completar como na tela a seguir
Na tela da direita temos uma simula¸c˜ao para a seguinte integral dupla I=
Z
0
π/2 Z 0,4
(y 2 + y) cos x dy dx
(3.17)
0
Nota: No programa acima CPRS ´e programa que calcula os coeficientes da primeira regra de Simpson (p. 305), lembramos que n (no caso ny) deve ser m´ ultiplo de 2; por outro lado, CSRS ´e programa que calcula os coeficientes da segunda regra de Simpson (p. 307), lembramos que n (no caso nx) deve ser m´ ultiplo de 3. Na tela a seguir mostramos a sintaxe para o c´alculo da integral dupla pela calculadora
na tela do centro calculamos a integral dada em (3.17), na tela da direita pedimos uma aprroxima¸ca ˜o com quatro decimais, para efeito de compara¸c˜ao. Nas telas a seguir vemos mais um exemplo
327
3.3
Equa¸c˜ oes Diferenciais Ordin´ arias
Introdu¸c˜ ao: Nesta se¸c˜ ao implementaremos as principais regras para a resolu¸c˜ao num´erica de equa¸c˜ oes diferenciais ordin´arias− as quais constam nos livros de C´ alculo Num´erico. Antes, veremos alguns resultados do C´ alculo que ser˜ ao necess´arios posteriormente.
Regra da Cadeia Para Derivadas Teorema 23 (Regra da Cadeia de Duas Vari´ aveis). Se x = x(t) e y = y(t) forem diferenci´ a veis em t e se z = f (x, y) for diferenci´ avel no ponto (x, y) = x(t), y(t) , ent˜ ao z = f (x(t), y(t)) ´e diferenci´ avel em t e dz ∂z dx ∂z dy = + dt ∂x dt ∂y dt
onde as derivadas ordin´arias s˜ ao calculadas em t e as derivadas parciais em (x, y).
Deriva¸ c˜ ao impl´ıcita Considere o caso especial em que z = f (x, y) ´e uma fun¸c˜ao de x e y e y ´e uma fun¸c˜ ao diferenci´ avel de x. Ent˜ao a equa¸c˜ao anterior passa a ser: ∂f dx ∂f dy ∂f ∂f dy dz = + = + dx ∂x dx ∂y dx ∂x ∂y dx
(3.18)
Nota: O material a seguir − F´ormula de Taylor − foi retirado de um outro livro nosso ([7]), aqui fazemos apenas um resumo, para mais detalhes e provas dos teoremas sugerimos, a quem interessar possa, a citada referˆencia.
328
F´ ormula de Taylor Os polinˆ omios est˜ ao entre as fun¸c˜oes mais simples que se estudam na An´alise. S˜ ao adequados para c´ alculos computacionais porque os seus valores s˜ ao obtidos pela efetiva¸c˜ ao dum n´ umero finito de multiplica¸c˜oes e adi¸c˜oes. P (x) = a0 + a1 x + a2 x2 + a3 x3 + · · · + an xn Muitas fun¸c˜ oes que surgem nas aplica¸c˜oes da Matem´atica a outras ´areas da ciˆencia n˜ ao s˜ ao fun¸c˜ oes polinomiais. Nesta se¸c˜ao mostraremos como aproximar uma fun¸c˜ ao por polinˆ omios; se a diferen¸ca entre uma fun¸c˜ao e sua aproxima¸c˜ ao polinomial ´e suficientemente pequena, ent˜ao podemos, com vistas `as aplica¸c˜ oes pr´ aticas, operar com o polinˆ omio em vez de o fazer com a fun¸c˜ao original. Ademais, e n˜ ao menos importante, os circuitos aritm´eticos dos computadores realizam apenas a opera¸ca ˜o de adi¸ca ˜o (as outras opera¸co ˜es podem ser implementadas a partir de circuitos somadores). Como ent˜ ao realizar c´ alculos mais complicados?. Vamos iniciar por passos, vejamos o caso mais simples.
Polinˆ omio de Taylor de Ordem 1 Seja f uma fun¸c˜ ao deriv´ avel em x0 e seja T dada por T (x) = f (x0 ) + f ′ (x0 ) (x − x0 ) O gr´ afico de T ´e a reta tangente ao gr´ afico de f no ponto x0 , f (x0 ) . y
x0 , f (x0 )
f
⇓
f (x) T
f (x0 )
T (x) − f (x0 ) = f ′ (x0 ) (x − x0 )
s
x0
x
x
329
Para cada x ∈ Df (dom´ınio da fun¸c˜ao), seja E(x) o erro que se comete na aproxima¸c˜ ao de f (x) por T (x), assim: E(x) = f (x) − T (x),
x ∈ Df
Ou ainda E(x) = f (x) − f (x0 ) + f ′ (x0 ) (x − x0 ) ,
x ∈ Df
Geometricamente, temos
y
x0 , f (x0 ) ⇓
f (x)
T (x) − f (x0 ) = f ′ (x0 ) (x − x0 )
E(x) T (x)
E(x) = f (x) − T (x) f (x0 )
s
E(x) = f (x) − f (x0 ) − f ′ (x0 ) (x − x0 )
f x0
T
x
x
O polinˆ omio P (x) = f (x0 ) + f ′ (x0 ) (x − x0 ) omio de Taylor de ordem 1 de f em torno de x0 . denomina-se polinˆ O pr´ oximo teorema fornece-nos uma express˜ ao para o erro E(x) = f (x) − f (x0 ) + f ′ (x0 ) (x − x0 ) , x ∈ Df em termos da segunda derivada de f .
Teorema 24. Seja f deriv´avel at´e 2.a ordem no intervalo I e sejam x0 , x ∈ I. Ent˜ ao, existe pelo ao menos um ponto c¯ no intervalo aberto ] x0 , x [ ( ou ] x, x0 [ ) tal que f (x) = f (x0 ) + f ′ (x0 ) (x − x0 ) +
f ′′ (¯ c) (x − x0 )2 2
Comparando com
temos
E(x) = f (x) − f (x0 ) + f ′ (x0 ) (x − x0 ) ,
f ′′ (¯ c) (x − x0 )2 2 para algum c¯ no intervalo aberto ] x0 , x [ ( ou ] x, x0 [ ). E(x) =
330
x ∈ Df
Polinˆ omio de Taylor de Ordem 2 O polinˆ omio de Taylor de ordem 2 de f em torno de x0 ´e dado por P (x) = f (x0 ) + f ′ (x0 )(x − x0 ) +
f ′′ (x0 ) (x − x0 )2 2
Vamos mostrar, atrav´es de um exemplo, que o polinˆ omio de Taylor de ordem 2 aproxima melhor f do que o polinˆ omio de Taylor de ordem 1. Exemplo: Seja f (x) = ex . Determine os polinˆ omios de Taylor de ordem 1 e 2, de f em torno de x0 = 0. Esboce os gr´ aficos de f e dos polinˆ omios. Solu¸ c˜ ao: Indiquemos por P1 e P2 os polinˆ omios pedidos. Ent˜ao P1 (x) = f (x0 ) + f ′ (x0 )(x − x0 ) e P2 (x) = f (x0 ) + f ′ (x0 )(x − x0 ) +
f ′′ (x0 ) (x − x0 )2 2
Temos f (x) = ex ,
f ′ (x) = ex ,
f ′′ (x) = ex
logo, f (0) = f ′ (0) = f ′′ (0) = 1. Fazendo as substitui¸c˜oes devidas, temos P1 (x) = f (x0 ) + f ′ (x0 )(x − x0 ) = f (0) + f ′ (0)(x − 0) = 1 + x e P2 (x) = f (x0 ) + f ′ (x0 )(x − x0 ) + = f (0) + f ′ (0)(x − 0)
ex
P2 P1
P2
f ′′ (x0 ) (x − x0 )2 2 f ′′ (0) 1 (x − 0)2 = 1 + x + x2 2 2
+
f (x) = ex P1 (x) = 1 + x
ex
P2 (x) = 1 + x + 12 x2 P1
331
Deixamos como exerc´ıcio ao leitor a an´ alise das seguintes tabelas:
0+ ← x
x → 0−
onde Erro1(x) = |f (x) − P1 (x)|
Erro2(x) = |f (x) − P2 (x)|
e
Seja P2 o polinˆ omio de Taylor de ordem 2 de f numa vizinhan¸ca de x0 . Para cada x em Df seja E(x) o erro cometido na aproxima¸c˜ao de f (x) por P2 (x). Por exemplo
y
x0 , f (x0 ) = (1, ln 1) = (1, 0) f (x) = ln x
f f (x)
P2 (x) = x − 1 − 21 (x − 1)2
E(x)
P (x)
s
x0
x
x
E(x) = f (x) − P2 (x)
P2
Assim, para todo x ∈ Df , temos f (x) = f (x0 ) + f ′ (x0 )(x − x0 ) +
f ′′ (x0 ) (x − x0 )2 + E(x) 2
De outro modo E(x) = f (x) −
f ′′ (x0 ) f (x0 ) + f (x0 )(x − x0 ) + (x − x0 )2 2 ′
O pr´ oximo teorema fornece-nos uma express˜ ao para o erro E(x) em termos da terceira derivada de f . 332
Teorema 25. Seja f deriv´ avel at´e 3.a ordem no intervalo I e sejam x0 , x ∈ I. Ent˜ao, existe pelo ao menos um ponto c¯ no intervalo aberto ] x0 , x [ ( ou ] x, x0 [ ) tal que f (x) = f (x0 ) + f ′ (x0 )(x − x0 ) +
f ′′ (x0 ) f ′′′ (¯ c) (x − x0 )2 + (x − x0 )3 2 3!
Comparando com a equa¸c˜ ao f ′′ (x0 ) 2 ′ (x − x0 ) E(x) = f (x) − f (x0 ) + f (x0 )(x − x0 ) + 2 temos
f ′′′ (¯ c) (x − x0 )3 3! para algum c¯ no intervalo aberto ] x0 , x [. E(x) =
Limitante para o erro: Seja f deriv´avel at´e 3.a ordem no intervalo I e seja x0 ∈ I. Suponha que existe M > 0 tal que |f ′′′ (x)| ≤ M para todo x ∈ I, ent˜ao para todo x em I se verifica |f (x) − P (x)| ≤
M |x − x0 |3 3!
onde P (x) ´e o polinˆ omio de Taylor de ordem 2 de f em torno de x0 , isto ´e P (x) = f (x0 ) + f ′ (x0 ) (x − x0 ) + ∗
∗
f ′′ (x0 ) (x − x0 )2 2 ∗
Taylor Devolve a expans˜ ao da s´erie de Taylor de uma express˜ ao num ponto ou no infinito (por predefini¸c˜ ao, em x = 0 e com ordem relativa=5). S´ıntaxe taylor(Expr, [Var=Value], [Order])
333
Exemplo: Vamos calcular − para efeitos de compara¸c˜ao − os polinˆ omios 1 de Taylor P1 e P2 para a fun¸c˜ao f dada por f (x) = no intervalo 1−x |x| < 1 e em torno de x0 = 0.
Solu¸ c˜ ao: Temos
P1 (x) = f (x0 ) + f ′ (x0 ) (x − x0 ) e P2 (x) = f (x0 ) + f ′ (x0 )(x − x0 ) +
f ′′ (x0 ) (x − x0 )2 2
Temos f (x) =
1 , 1−x
f ′ (x) =
1 , (1 − x)2
f ′′ (x) =
2 (1 − x)3
ainda f ′ (0) = 1,
f (x0 ) = f (0) = 1,
f ′′ (0) = 2
Sendo assim, temos P1 (x) = f (x0 ) + f ′ (x0 ) (x − x0 ) = 1 + 1 (x − 0) = 1 + x e P2 (x) = f (x0 ) + f ′ (x0 )(x − x0 ) + = 1 + 1(x − 0) +
f ′′ (x0 ) (x − x0 )2 2
2 (x − 0)2 = 1 + x + x2 2
A seguir temos a representa¸c˜ao geom´etrica de f , P1 e P2 .
y f
P2
f (x) = P1
1 1−x
P1 (x) = 1 + x s
P1 (x) = 1 + x + x2 ¬−1
¬1
x
334
Nas tabelas a seguir comparamos os erros quando aproximamos f por P1 e por P2 − em pontos numa vizinha¸ca de x0 = 0.
↑
↑
onde e1(x) = |f (x) − P1 (x)|
e2(x) = |f (x) − P2 (x)|
e
e1 Na u ´ ltima linha da tabela exibimos o quociente entre os dois erros. Por e2 exemplo, observe que no ponto x = −0.05 temos e1 = 20 · e2, e no ponto x = 0.025 temos e1 = 40 · e2. ∗
∗
∗
Taylor do quociente Apresenta o polin´ omio de Taylor de grau n para o quociente de dois polinˆ omios. S´ıntaxe divpc(Poly1,Poly2,Integer)
335
Polinˆ omio de Taylor de Ordem n Seja f deriv´ avel at´e a ordem n no intervalo I e seja x0 ∈ I. O polinˆ omio P (x) = f (x0 ) + f ′ (x0 )(x − x0 ) +
f ′′ (x0 ) f (n) (x0 ) (x − x0 )2 + · · · + (x − x0 )n 2! n!
denomina-se polinˆ omio de Taylor, de ordem n, de f em torno de x0 . O polinˆ omio de Taylor, de ordem n, de f em torno de x0 ´e o u ´ nico polinˆ omio de grau no m´ aximo n que aproxima localmente f em torno de x0 de modo que o erro E(x) tenda a zero mais rapidamente que (x − x0 )n , quando x → x0 . (Verifique).
O polinˆ omio de Taylor, de ordem n, de f em torno de x0 = 0 denomina-se tamb´em polinˆ omio de Maclaurin, de ordem n, de f . Exemplo: Determine os polinˆ omios de Taylor de ordem 1 at´e a ordem 4, de f (x) = ex em torno de x0 = 0. Plote os gr´ aficos. Solu¸ c˜ ao: Observe que calculando o polinˆ omio de Taylor de ordem 4 obtemos todo os anteriores. Temos P4 (x) = f (0)+f ′ (0)(x−0)+ Ent˜ ao
f ′′′ (0) f (4) (0) f ′′ (0) (x−0)2 + (x−0)3 + (x−0)4 2! 3! 4!
f (x) = ex
⇒
f (0) = 1
f ′ (x) = ex
⇒
f ′ (0) = 1
f ′′ (x) = ex
⇒
f ′′ (0) = 1
f ′′′ (x) = ex
⇒
f ′′′ (0) = 1
f (4) (x) = ex
⇒
f (4) (0) = 1
336
Substituindo, resulta P4 (x) = 1 + x +
1 1 1 2 x + x3 + x4 2 3! 4!
y
y f
f
P2 (x) = 1+x+ 12 x2
P1 (x) = 1+x
s
s x
0
x
0
y
y f
P3 (x) = 1+x+ 21
1 x2 + 3!
f x3 1 3 1 4 P4 (x) = 1+x+ 21 x2 + 3! x + 4! x
s
s x
0
0
x
Nota: Os polinˆ omios de Taylor v˜ao colando cada vez mais no gr´ afico de f a` medida que n aumenta. Teorema 26 (F´ormula de Taylor com resto de Lagrange). Seja I = [ a, b ] e seja f : I → R tal que f e suas derivadas f ′ , f ′′ , . . . , f (n) existam e sejam cont´ınuas em I, e f (n+1) exista em ] a, b [. Seja x0 ∈ I um ponto fixado. Dado x em I, x 6= x0 existe um ponto c entre x e x0 tal que f (x) = f (x0 ) + f ′ (x0 )(x − x0 ) + + ··· +
f ′′ (x0 ) (x − x0 )2 2!
f (n) (x0 ) f (n+1) (c) (x − x0 )n + (x − x0 )n+1 n! (n + 1)!
337
Defini¸ c˜ ao 14. Uma equa¸c˜ao diferencial ordin´aria de ordem n ´e uma equa¸c˜ao da seguinte forma F x, y(x), y ′ (x), y ′′ (x), . . . , y (n) (x) = 0 onde constam a fun¸c˜ ao inc´ ognita y = y(x) e suas derivadas at´e a ordem n.
Exemplos: A seguir vemos algumas equa¸c˜oes diferenciais ordin´arias, onde: y′ = a)
d2 y dy , y ′′ = 2 , . . . dx dx
dy = 2x + 3, de ordem 1; dx
b) y
d2 y dy + 3x = x − 2, de ordem 2; 2 dx dx
d2 θ g + sen θ = 0. 2 dt L Esta equa¸c˜ ao, de ordem 2, e n˜ ao linear − devido a presen¸ca do termo sen θ − modela a oscila¸c˜ao de um pˆendulo.
c)
d)
d3 y d2 y dy d4 y + 3+ 2+ + y = 1, de ordem 4. 4 dx dx dx dx
3.3.1
Problema de valor inicial (PVI)
Defini¸ c˜ ao 15. Um problema de Valor Inicial (PVI) de primeira ordem consiste de uma equa¸c˜ ao diferencial y ′ = f (x, y), x ≥ x0 , e uma condi¸c˜ao inicial y(x0 ) = y0 , onde y0 ´e um valor dado, chamado de valor inicial. Resumimos da seguinte forma: ( PV I :
y ′ = f (x, y) y(x0 ) = y0
(3.19)
N˜ao ´e poss´ıvel, em geral, encontrar a solu¸c˜ao anal´ıtica y = y(x) do PVI por manipula¸c˜ ao simb´ olica da equa¸c˜ao diferencial, da´ı a necessidade de m´etodos num´ericos como os que ser˜ ao aqui desenvolvidos. Para resolver numericamente um PVI devemos inicialmente discretizar o intervalo [ a, b ]: a = x0 < x1 < x2 < · · · < xn−1 < xn = b Ao conjunto acima denomina-se uma parti¸ca ˜o do intevalo [ a, b ]. 338
Para obter uma parti¸c˜ ao (regular) do intervalo [ a, b ] em N subintervalos de mesmo comprimento, fazemos h = b−a N , no que resulta xn = x0 + n h,
[ a = x0
x1 h
...
x2
n = 0, 1, 2, . . . , N.
xn−1
h
x
] xn = b
h
Importante: Convenciona-se usar a nota¸c˜ao y(xn ) (n = 0, 1, 2, . . .) para indicar a solu¸c˜ ao exata do PVI nos pontos da parti¸c˜ao, graficamente: f (x) y(x)
y(xn ) y(x0 )
h
0
a = x0
...
h
x1
x2
h
xn−1
x
xn = b
Por outro lado a nota¸c˜ ao yn (x) ´e reservada para a solu¸c˜ao num´erica aproximada do PVI.
f (x)
ւ
y(xn )
y(x)
solu¸ca˜o exata
←− yn (x) solu¸ca˜o aproximada
y(x0 ) = y0
... 0
a = x0
x1
x2
xn−1
xn = b
x
A solu¸c˜ ao num´erica yn (x) ´e a fun¸cao linear por partes, cujo gr´ afico ´e uma poligonal com v´etices nos pontos (xn , yn ), onde yn ser´ a calculado utilizandose algum dos m´etodos num´ericos que ser˜ ao dados logo mais. 339
´ um resultado da An´alise Matem´atica que dada qualquer fun¸c˜ao Nota: E cont´ınua em um intervalo fechado [ a, b ] esta fun¸c˜ao pode ser aproximada − com qualquer precis˜ao que se deseje − por uma “fun¸c˜ao poligonal”. De outro modo: dada qualquer f , cont´ınua em um intervalo [ a, b ], existe uma poligonal g arbitrariamene pr´ oxima de f no seguinte sentido: d(f, g) = max |f (x) − g(x)| : x ∈ [ a, b ] < ε
onde ε > 0 ´e qualquer precis˜ao arbitrariamene fixada. d(f, g) ´e a distˆ ancia entre as fun¸c˜ oes f e g. Erro local: o erro local, cometido nas aproxima¸c˜oes em cada ponto da parti¸c˜ ao, ´e a diferen¸ca entre o valor exato da solu¸c˜ao da equa¸c˜ao diferencial e o valor num´erico aproximado, isto ´e: e(xn ) = y(xn ) − yn ,
n = 0, 1, 2, . . . , N.
(3.20)
Observe a “geometria do erro” no gr´ afico anterior.
M´ etodos baseados em s´ erie de Taylor Vamos adaptar os resultados da s´erie de Taylor, vista anteriormente, aos nossos prop´ositos. Considere f uma fun¸c˜ao cont´ınua e, ademais, suponhamos que todas as suas derivadas existam no ponto x = x0 = xn . A s´erie de Taylor nas vizinhan¸cas do ponto x0 = xn ´e reescrita como∗ f (x) = f (xn ) + f ′ (xn )(x − xn ) +
f ′′ (xn ) (x − xn )2 2!
+ ··· +
f (k) (xn ) (x − xn )k + · · · k!
Vamos truncar o desenvolvimento da s´erie de Taylor no p-´esimo termo, e, por um “abuso de nota¸c˜ao”, vamos continuar usando o sinal de igualdade, assim: f (x) = f (xn ) + f ′ (xn )(x − xn ) +
f (p) (xn ) f ′′ (xn ) (x − xn )2 + · · · + (x − xn )p 2! p!
Vamos agora considerar nesta express˜ ao x = xn+1 = xn + h, ou ainda, x − xn = h, ent˜ ao: f (xn+1 ) = f (xn ) + f ′ (xn ) h +
f (p) (xn ) p f ′′ (xn ) 2 h + ··· + h 2! p!
(3.21)
∗ H´ a um teorema do C´ alculo que afirma que a igualdade em quest˜ ao ´e verdadeira em um ponto x se e somente se lim Rn (x) = 0. Portanto, estamos admitindo que este seja n → +∞ o caso.
340
Vamos reconsiderar o PVI: (
y ′ = f (x, y) y(x0 ) = y0
Admitindo como hip´ otese que a solu¸c˜ao y(x) do PVI tenha derivadas cont´ınuas para todo x ∈ [ a, b ], ent˜ao substituindo em (3.21), temos y(xn+1 ) = y(xn ) + y ′ (xn ) h +
y ′′ (xn ) 2 y (p) (xn ) p h + ··· + h 2! p!
Usando a nota¸c˜ ao, d yn ∼ f (xn , yn ), . . . = y(xn ), yn′ = f (xn , yn ), yn′′ = dx Observe, yn ∼ = y(xn ) ⇒ yn+1 ∼ = y(xn+1 ), ent˜ao yn+1 = yn + yn′ h +
yn′′ 2 y (p) h + · · · + n hp 2! p!
Ou, reconfigurando a nota¸c˜ ao: yn+1 = yn + h yn′ +
hp (p) h2 ′′ yn + · · · + y 2! p! n
(3.22)
que ´e o m´ etodo de Taylor de ordem p.
3.3.2
M´ etodo de Euler
O m´etodo de Euler para a solu¸c˜ao aproximada do PVI consiste no desenvolvimento da s´erie de Taylor para p = 1: yn+1 = yn + h yn′ como yn′ = f (xn , yn ), resulta:
(3.23) (M´etodo de Euler)
yn+1 = yn + h f (xn , yn ) ,
(n = 0, 1, 2, . . .)
Interpreta¸ c˜ ao Geom´ etrica: O m´etodo de Euler, desenvolvido por volta de 1768, ´e tamb´em conhecido como o m´ etodo da reta tangente. Vamos considerar como poder´ıamos aproximar a solu¸c˜ao y = y(x) do PVI (3.19) (p. 338) pr´ oximo de x = x0 . Sabemos que o gr´ afico da solu¸c˜ao (p. 339) cont´em o ponto (x0 , y0 ) e, da equa¸c˜ao diferencial (do PVI), sabemos, tamb´em, que a inclina¸c˜ao da reta tangente ao gr´ afico nesse ponto ´e y ′ = f (x0 , y0 ). Sendo assim, podemos 341
escrever uma equa¸c˜ ao para a reta tangente `a curva solu¸c˜ao em (x0 , y0 ), isto ´e: y = y0 + f (x0 , y0 )(x − x0 )
f (x)
reta tangente - solu¸ca˜o aproximada: yn (x)
y1 y(x1 ) y0
y(x)
solu¸ca˜o exata
0
x0
x
x1
A reta tangente ´e uma boa aproxima¸c˜ao para a curva solu¸c˜ao em um intervalo suficientemente pequeno. Se x1 estiver suficientemente pr´ oximo de x0 , podemos aproximar y(x1 ) pelo valor obtido substituindo-se x = x1 na equa¸c˜ ao da reta tangente no ponto x = x0 ; isto ´e, y1 = y0 + f (x0 , y0 )(x1 − x0 ) Para prosseguir, podemos tentar repetir o procedimento. Infelizmente, n˜ ao conhecemos o valor y(x1 ) da solu¸c˜ao em x1 . O melhor que podemos fazer ´e usar o valor aproximado dado acima, y1 , em seu lugar. Encontramos, ent˜ ao, a reta passando no ponto (x1 , y1 ) com coeficiente angular f (x1 , y1 ), isto ´e, y = y1 + f (x1 , y1 )(x − x1 ) Para aproximar y(x) no pr´ oximo ponto x2 , usamos esta u ´ ltima equa¸c˜ao, obtendo: y2 = y1 + f (x1 , y1 )(x2 − x1 ) Continuando este processo (algoritmo), usamos o valor de y calculado em cada etapa para determinar o coeficiente angular para a aproxima¸c˜ao seguinte. Generalizando os passos anteriores obtemos uma express˜ ao geral para yn+1 assim: yn+1 = yn + f (xn , yn )(xn+1 − xn ) fazendo xn+1 − xn = h, obtemos: yn+1 = yn + h f (xn , yn ) , 342
(n = 0, 1, 2, . . .)
Algoritmo Dado o PVI: (
y ′ = f (x, y) y(x0 ) = y0
podem ser adotados os seguintes passos para sua resolu¸c˜ao: 1) Declare: (i) A fun¸c˜ ao f (x, y); (ii) condi¸c˜ oes iniciais: y(x0 ) = y0 ; (iii) intervalo [ a, b ], onde a = x0 ; (iv) n´ umero de subintervalos N e calcule h = 2) Para n = 0, 1, . . . , N − 1, fa¸ca:
b−a N ;
Calcule:
in´ıcio xn+1 = xn + h yn+1 = yn + h f (xn , yn ) fim Exemplo: Calcule, pelo m´etodo de Euler, a solu¸c˜ao aproximada do seguinte PVI: ( y ′ = f (x, y) = y − x y(x0 ) = y(0) = 2
para x ∈ [ a, b ] = [ 0, 1 ] e N = 4 subintervalos. Solu¸ c˜ ao: Inicialmente temos: h=
b−a 1−0 1 = = = 0. 25 N 4 4
A discretiza¸c˜ ao do intevalo fica: p
p
x0 = 0
x1 =
(n = 0, 1, 2, 3, 4)
p 1 4
x2 =
p 1 2
x3 =
p 3 4
x
x4 = 1
O m´etodo de Euler consiste no algoritmo: yn+1 = yn + h f (xn , yn ) Sendo f (x, y) = y − x, temos f (xn , yn ) = yn − xn , sendo assim resulta: yn+1 = yn + 0. 25 (yn − xn ) = − 0. 25 xn + 1. 25 yn 343
Ent˜ ao: n = 0 ⇒ y1 = −0. 25 x0 + 1. 25 y0 = −0. 25 · 0 + 1. 25 · 2 = 2. 5000 n = 1 ⇒ y2 = −0. 25 x1 + 1. 25 y1 = −0. 25 · 0.25 + 1. 25 · 2. 5 = 3. 0625 n = 2 ⇒ y3 = −0. 25 x2 + 1. 25 y2 = −0. 25 · 0.50 + 1. 25 · 3. 0625 = 3. 7031 n = 3 ⇒ y4 = −0. 25 x3 + 1. 25 y3 = −0. 25 · 0.75 + 1. 25 · 3. 7031 = 4. 4414 Observe a geometria: y4 y2
y1
y0
p
p
x0 = 0
x1 =
y3
p 1 4
x2 =
p 1 2
x3 =
p 3 4
x
x4 = 1
Apenas para efeitos de compara¸c˜ao, a solu¸c˜ao anal´ıtica (exata) da equa¸c˜ ao diferencial proposta ´e: y(x) = ex + x + 1. No gr´ afico fica assim: y
y
y(x)
p
p
2
1
1
yn (x)
p
p
2
p
p
p1
0
−1
y(x)
4.7183
p
4.7183
x
p
−1
p1
0
x
A tabela a seguir exibe a solu¸c˜ao exata − calculada nos pontos da parti¸c˜ ao −, a solu¸c˜ ao encontrada pelo m´etodo de Euler e o erro local. n
xi
0
0. 00
Sol. exata y(xn )
Sol. aprox. yn
Erro = y(xn ) − yn
2. 0
2. 0
0. 0
1
0. 25
2. 5340
2. 5000
0. 0340
2
0. 50
3. 1487
3. 0625
0. 0862
3
0. 75
3. 8670
3. 7031
0. 1639
4
1. 00
4. 7183
4. 4414
0. 2769
344
A seguir temos o programa que implementar o m´etodo de Euler
Nota: A fun¸c˜ ao REPLACE encontra-se na p´ agina 84. Na tela direita temos a simula¸c˜ao do exemplo visto anteriormente, compare n
xi
Sol. exata y(xn )
Sol. aprox. yn
Erro = y(xn ) − yn
0
0. 00
2. 0
2. 0
0. 0
1
0. 25
2. 5340
2. 5000
0. 0340
2
0. 50
3. 1487
3. 0625
0. 0862
3
0. 75
3. 8670
3. 7031
0. 1639
4
1. 00
4. 7183
4. 4414
0. 2769
Nas tela a seguir
temos um outro exemplo, alteramos a fun¸c˜ao para f (x, y) = x − y + 2 na tela da direita rodamos o programa para [ a, b, ] = [ 0, 1 ], N = 10 e y0 = 2. Na saida temos [ 2., 2., 2.01, 2.029, 2.0561, 2.0905, 2.1314, 2.1783, 2.2305, 2.2874, 2.3487 ]
345
3.3.3
M´ etodo de Taylor de ordem p = 2
Truncando o desenvolvimento da solu¸c˜ao y(xn ) do PVI, em s´erie de Taylor, na ordem p = 2, obtemos um outro m´etodo ainda mais preciso que o de Euler: (eq. (3.22), p. 341) yn+1 = yn + h yn′ +
h2 ′′ y 2! n
(3.24)
No PVI (
y ′ = f (x, y) y(x0 ) = y0
(3.25)
fa¸camos a seguinte mudan¸ca de nota¸c˜ao: z = y ′ = f (x, y). Sendo z = f (x, y) uma fun¸c˜ao de x e y e y ´e uma fun¸c˜ao x, isto ´e, y = y(x), podemos usar a f´ormula (3.18): (p. 328) ∂f ∂f dy dz = + dx ∂x ∂y dx para obter:
d ′ ∂f ∂f dy (y ) = + = fx + fy y ′ dx ∂x ∂y dx
Ou ainda: yn′′ = fx (xn , yn ) + fy (xn , yn ) yn′ Sendo que de (3.25), temos: fornecem:
y′
n
(3.26)
= f (xn , yn ). Estes resultados em (3.24) nos
yn+1 = yn + h f (xn , yn ) +
h2 [ f (x , y ) + fy (xn , yn ) f (xn , yn ) ] 2! x n n
Exemplo: Calcule, pelo m´etodo de Taylor de ordem p = 2, a solu¸c˜ao aproximada do seguinte PVI: ( y ′ = f (x, y) = x − y + 2 y(x0 ) = y(0) = 2
para x ∈ [ a, b ] = [ 0, 1 ] e N = 5 subintervalos. Solu¸ c˜ ao: Inicialmente temos: h=
b−a 1−0 1 = = = 0. 2 N 5 5
Para f (x, y) = x − y + 2, temos: fx (x, y) = 1 e fy (x, y) = −1. Portanto: f (x, y) = x − y + 2
fx (x, y) = 1
fy (x, y) = −1
⇒
f (xn , yn ) = xn − yn + 2
⇒
fx (xn , yn ) = 1
⇒
fy (xn , yn ) = −1 346
Substituindo estes resultados na equa¸c˜ao deduzida anteriormente, temos: yn+1 = yn + h f (xn , yn ) +
h2 [ f (x , y ) + fy (xn , yn ) f (xn , yn ) ] 2! x n n
yn+1 = yn + h (xn − yn + 2) +
h2 [ 1 + (−1) · (xn − yn + 2) ] 2!
Substituindo o valor de h = 0.2 e simplificando, obtemos: yn+1 = 0.18 xn + 0.82 yn + 0.38 Ent˜ao, para n = 0, 1, 2, 3, 4, obtemos: y1 = 0.18 x0 + 0.82 y0 + 0.38 = 0.18 · 0 + 0.82 · 2 + 0.38 = 2.0200 y2 = 0.18 x1 + 0.82 y1 + 0.38 = 0.18 · 0.2 + 0.82 · 2.0200 + 0.38 = 2.0724 y3 = 0.18 x2 + 0.82 y2 + 0.38 = 0.18 · 0.4 + 0.82 · 2.0724 + 0.38 = 2.1514 y4 = 0.18 x3 + 0.82 y3 + 0.38 = 0.18 · 0.6 + 0.82 · 2.1514 + 0.38 = 2.2521 y5 = 0.18 x4 + 0.82 y4 + 0.38 = 0.18 · 0.8 + 0.82 · 2.2521 + 0.38 = 2.3707 O programa a seguir implementa o m´etodo de Taylor de ordem p = 2:
Na tela da direita resolvemos o exemplo anterior. Vejamos mais um exemplo de aplica¸c˜ao do programa. Exemplo: Calcule, pelo m´etodo de Taylor de ordem p = 2, a solu¸c˜ao aproximada do seguinte PVI: 2y + (x + 1)3 y ′ = f (x, y) = x+1 y(x0 ) = y(0) = 3
para x ∈ [ a, b ] = [ 0, 1 ] e h = 0.2.
347
Solu¸ c˜ ao: Temos N = b−a = (1 − 0)/0.2 = 5. Alteramos o in´ıcio do h programa anterior para que possamos entrar com a fun¸c˜ao, assim
Na tela da direita resolvemos o exemplo, o programa nos devolve o seguinte vetor: [ 3.0000 4.6200 6.7779 9.5976 13.2222 17.8141 ] A solu¸c˜ ao exata do PVI ´e dada por: y(x) = Por exemplo, y(1) =
3.3.4
1 2
1 [ (x + 1)4 + 5(x + 1)2 ] 2
[ (1 + 1)4 + 5(1 + 1)2 ] = 18.
M´ etodos de Runge-Kutta
Se tentarmos prosseguir no m´etodo de taylor de ordem p (p. 341) surgem alguns incovenientes computacionais; por exemplo, deveremos tratar simultˆ aneamente com v´arias fun¸c˜oes − f e suas derivadas −, o que aumenta significativamente o espa¸co ocupado na mem´ oria do computador. Apenas para contextualizar, se, por teimosia, formos considerar a potˆencia seguinte (p = 3), al´em da equa¸c˜ ao (3.26) (p. 346), teremos ainda que considerar yn′′′ = fxx + 2fxy f + f 2 fyy + fy fx + fy2 f (x , y ) n
n
que, convenhamos, at´e para a HP Prime torna-se oneroso.
Estaremos agora considerando uma outra classe de m´etodos para a resolu¸c˜ ao do PVI: M´etodos de Runge-Kutta∗ . Esses m´etodos possuem precis˜ao equivalentes aos m´etodos de Taylor com a vantagem de que evitam a necessidade do c´ alculo de derivadas de ordem elevada.
∗
Carl David Tolm´e Runge (1856-1927) e Wilhelm Kutta (1867-1944).
348
M´ etodo de Runge-Kutta de ordem 1 O m´etodo de Runge-Kutta mais simples ´e o de primeira ordem dado por: yn+1 = yn + h k1 ,
k1 = f (xn , yn )
Ora, mas este m´etodo nada mais ´e que o de Euler dado `a p. 341.
M´ etodo de Runge-Kutta de ordem 2 Este m´etodo consiste no seguinte algoritmo∗ : y = yn + h2 (k1 + k2 ) n+1 k1 = f (xn , yn ) k2 = f (xn + h, yn + h k1 )
o qual tamb´em ´e conhecido como m´ etodo de Euler aperfei¸ coado. O programa seguinte implementa o m´etodo em quest˜ao
Na tela da direita resolvemos o seguinte Exemplo: Usando o m´etodo de Euler aperfei¸coado, calcule a solu¸c˜ao do PVI dado por: ( y ′ = f (x, y) = x − y + 2 y(x0 ) = y(0) = 2
para x ∈ [ a, b ] = [ 0, 1 ] e N = 5 subintervalos.
∗ Para a dedu¸c˜ ao (ou justificativa) deste, e dos m´etodos seguintes, o leitor poder´ a consultar alguma das obras listadas nas referˆencias.
349
M´ etodo de Euler modificado Um outro m´etodo de Runge-Kutta tamb´em bastante utilizado ´e: yn+1 = yn + h f xn + h2 , yn + h2 k1
k1 = f (xn , yn )
o qual ´e conhecido como m´etodo de Euler modificado. O programa a seguir implementa este m´etodo
Nota: Observe que, diferentemente dos programas anteriores, agora esta˜o e n˜ ao como express˜ ao (p. 25) − tanto faz. mos definindo f como fun¸ca Na tela da direita resolvemos o
Exemplo: Usando o m´etodo de Euler modificado, calcule a solu¸c˜ao do PVI dado por: ( y ′ = f (x, y) = x − y + 2 y(x0 ) = y(0) = 2
para x ∈ [ a, b ] = [ 0, 1 ] e N = 5 subintervalos.
Utilizando a solu¸c˜ ao exata, y(x) = e−x + x + 1, construimos a seguinte tabela − comparando os diversos m´etodos. n
xi
Sol. exata
Euler
Euler modificado
Euler
0
0. 0
2. 0
2. 0
2. 0
2. 0
2. 0
1
0. 2
2. 0187
2. 0000
2. 0200
2. 0200
2. 0200
2
0. 4
2. 0703
2. 0400
2. 0724
2. 0724
2. 0724
3
0. 6
2. 1488
2. 1120
2. 1514
2. 1514
2. 1514
4
0. 8
2. 2493
2. 2096
2. 2521
2. 2521
2. 2521
5
1. 0
2. 3679
2. 3277
2. 3707
2. 3707
2. 3707
aperfei¸coado
Taylor
ordem 2
Inferimos que os m´etodos Euler modificado, Euler aperfei¸coado e Taylor de ordem 2 nos fornecem os mesmos resultados; comparando com a solu¸c˜ao exata vemos que estes trˆes m´etodos s˜ ao superiores ao de Euler (Taylor de ordem 1), como era de se esperar.
350
M´ etodo de Runge-Kutta de ordem 3 Este m´etodo consiste no seguinte algoritmo: yn+1 = yn + h9 (2k1 + 3k2 + 4k3 ) k1 = f (xn , yn )
k2 = f (xn + 12 h, yn +
1 2 hk1 )
k3 = f (xn + 34 h, yn +
3 4 hk2 )
O programa seguinte implementa o m´etodo em quest˜ao
Na tela da direita resolvemos o Exemplo: Usando o m´etodo de Runge-Kutta de ordem 3, calcule a solu¸ca˜o do PVI dado por: ( y ′ = f (x, y) = x − y + 2 y(x0 ) = y(0) = 2
para x ∈ [ a, b ] = [ 0, 1 ] e N = 5 subintervalos.
351
M´ etodo de Runge-Kutta de ordem 4 Dentre os m´etodos de Runge-Kutta o mais popular ´e o de ordem 4, dado a seguir: y = yn + h6 (k1 + 2k2 + 2k3 + k4 ) n+1 k1 = f (xn , yn ) k2 = f (xn + 12 h, yn + 21 h k1 ) k3 = f (xn + 12 h, yn + 21 h k2 ) k4 = f (xn + h, yn + hk3 ) Este m´etodo ´e muito difundido nas rotinas de c´alculo de computadores. O programa seguinte implementa o m´etodo em quest˜ao
Na tela da direita resolvemos o Exemplo: Usando o m´etodo de Runge-Kutta de ordem 4, calcule a solu¸c˜ao do PVI dado por: ( y ′ = f (x, y) = x − y + 2 y(x0 ) = y(0) = 2
para x ∈ [ a, b ] = [ 0, 1 ] e N = 5 subintervalos.
352
Utilizando a solu¸c˜ ao exata, y(x) = e−x + x + 1, construimos a seguinte tabela − comparando alguns m´etodos, incluindo os dois u ´ ltimos de Runge-Kutta.
n
xi
Sol. exata
Euler modificado
ordem 2
Taylor
Runge-Kutta Runge-Kutta
ordem 3
0
0. 0
2. 0
2. 0
2. 0
2. 0
ordem 4 2. 0
1
0. 2
2. 0187
2. 0200
2. 0200
2. 0187
2. 0187
2
0. 4
2. 0703
2. 0724
2. 0724
2. 0702
2. 0703
3
0. 6
2. 1488
2. 2514
2. 1514
2. 1487
2. 1488
4
0. 8
2. 2493
2. 2521
2. 2521
2. 2492
2. 2493
5
1. 0
2. 3679
2. 3707
2. 3707
2. 3677
2. 3679
A melhor precis˜ao foi obtida com o Runge-Kutta de ordem 4 que coincide com a solu¸c˜ ao exata − com quatro casas decimais.
Vejamos mais um exemplo de aplica¸c˜ao do programa. Exemplo: Usando o m´etodo de Runge-Kutta de ordem 4, calcule a solu¸ca˜o do PVI dado por: 2y + (x + 1)3 y ′ = f (x, y) = x+1 y(x0 ) = y(0) = 3
para x ∈ [ a, b ] = [ 0, 1 ] e h = 0.2.
Solu¸ c˜ ao: (Re)declarando a fun¸c˜ ao no in´ıcio do programa, assim
executando o programa com os dados do problema teremos na saida a tela da direita: [ 3.0000 4.6365 6.8203 9.6759 13.3476 17.9984 ]
353
Considerando a solu¸cË&#x153;ao exata
y(x) =
1 2
[ (x + 1)4 + 5(x + 1)2 ]
temos: yn (x) : [ 3.0000 4.6365 6.8203 9.6759 13.3476 17.9984 ] y(x) : [ 3.0000 4.6368 6.8208 9.6768 13.3488 18.0000 ]
Compare com Taylor (p = 2) (que envolve derivadas): yn (x) : [ 3.0000 4.6200 6.7779 9.5976 13.2222 17.8141 ] y(x) : [ 3.0000 4.6368 6.8208 9.6768 13.3488 18.0000 ]
354
(p. 347)
Referˆencias Bibliogr´aficas
[1] Manual: Calculadora Gr´ afica HP Prime. [2] Barroso, Leˆ onidas C. et alii. C´ alculo Num´erico (com aplica¸co ˜es), 2a edi¸c˜ao. S˜ ao Paulo: editora HARBRA ltda, 1987. [3] Ruggiero, M´arcia A. Gomes & Lopes, Vera L´ ucia da Rocha. C´ alculo ao Paulo: Num´erico: aspectos te´ oricos e computacionais, 2a edi¸c˜ao. S˜ Pearson Makron Books, 1996. [4] Arenales, Selma & Darezzo, Artur. C´ alculo Num´erico: Aprendizagem com Apoio de Software. S˜ ao Paulo: Thomson Learning, 2008. [5] Cl´ audio, Dalc´ıdio Moraes & Marins, Jussara Maria. C´ alculo Num´erico ao Paulo: Atlas, 1994. Computacional: teoria e pr´ atica, 2a edi¸c˜ao. S˜ [6] Silva, Gentil Lopes. Novas Sequˆencias Aritm´eticas e Geom´etricas (Com programa¸ca ˜o na HP Prime ). 2 a Edi¸c˜ao, 2016. Publica¸c˜ao Eletrˆonica. [7] Silva, Gentil Lopes. An´ alise Real (com espa¸cos m´etricos). 1 a Edi¸c˜ao, 2017. Publica¸c˜ ao Eletrˆonica.
355
´Indice Remissivo
´ Algebra abstrata, Boyer, 26 A curva de Peano, 218 A M´etrica Quˆ antica, 214 A potˆencia do Nada cria¸c˜ ao de sentido, 51 A r´egua quˆantica, 216 Algoritmo, plota ponto no R3 , 264 Binˆ omio de Newton, 252 Boole, 26
PVI, 338 Taylor p = 2, 346 Email Ariovaldo, 109 Email Cleber, 110 Email Ubi, 268 Eva mordeu a ma¸c˜a, 41 F´ormula de Taylor, 329 F´ormula in´edita, 184 Fun¸c˜ao Max, 18 Fun¸c˜ao Min, 18
Gaston Bachelard Chaitin, 7 Brusca Muta¸c˜ao, 213 Combina¸c˜ oes, 112, 208 Gentil Concatenando map, 155 Algoritmo bin´ ario, 220 Cubo hiperm´ agico, 246 F´ o rmula bin´ a ria, 221 Curva de Peano no cubo, 242, 243, F´ormula in´edita, 184 249 George, Boole, 26 Defini¸c˜ ao Gr´ aficos, 77 Curva de Peano, 218 Gregory Chaitin, 7 quadrado hiperm´ agico, 233 HP PRIME Demultiplexa¸c˜ ao, 222 Adendo (Resetar), 23 Desafios apply, 83 Um Belo Desafio, 40 Binˆomio de Newton, 253 -II, 94 Caixa de Ferramentas, 38 Desafios (Solve), solu¸c˜ oes, 92 Comandos matrizes, 46 Desenvolvimento N -´ ario, 115 FOR, 64, 65 Diferen¸ca dividida, 283 FOR-STEP, 66 Diferen¸ca Finita, 291 Fra¸c˜ao irredut´ıvel (limite), 101 E.D.O. Fra¸c˜ao parcial, 101 IF - THEN - ELSE - END, 75, M´etodo de Euler, 341 76 M´etodos de Runge-Kutta, 348 356
Lineariza¸c˜ao de sequˆencias triplas, 163
IF - THEN - END, 74 Listas, 34 MAKELIST, 36 MAKEMAT, 44 map, 88 mapii, 89 Matem´atica Financeira, 250 Matrizes, 41 Menus Toolbox, 38 N´ umero inteiro, 103 Polar-Complexo, 101 Polar-Retangular, 101 Polinˆ omio de Taylor, 333, 335 Polinˆ omios, 95 remove, 90, 256 REPLACE, 84 Resetar vari´ avel, 23 SIZE (distintos), 51 Solve, 91 Somat´ orios e produt´ orios, 52 Tabela seno, 85 Tabela-Resumo, 93 Vetores, 51 WHILE, 71, 72 Zip, 89
M´etrica Quˆ antica, 214 Maharaj, 267 Matriz N -´aria, 118 Matriz Bin´aria, 115 Matriz digital, 211 Matriz Tern´ aria, 117 Multiplexa¸c˜ao, 223 Norbert Wiener, 269 Peacock, 26 Plotando gr´ aficos, 77 Polinˆ omio de Taylor de Ordem n, 336 Produt´ orios, 55 Produto dos termos P.A., 70 Produto termos P.A., 55 Quadrado hiperm´ agico, 233 R´egua quˆantica, 216, 217 R´eguas de C´ alculo, 267 Regra da Cadeia, 328 Resolver complexa, 102 Runge-Kutta, 348
Imagem real e imagem virtual, 237, 238 Imagem virtual, 238 Integra¸c˜ ao Dupla, 321 Primeira regra de Simpson, 305 Quadratura gaussiana, 309 Regra dos trap´ezios, 302 Segunda regra de Simpson, 307 Interpola¸c˜ ao De Gregory-Newton, 291 De Lagrange, 275 De Newton, 283 F´ormula de Gregory-Newton, 297 F´ormula de Newton, 288 polinomial, 271
Sequˆencias duplas, 119 Subrotinas, 62 Um pequeno interregno cultural, 212 Voltaire, 215 Zeros, 102 Zeros de complexa, 102
Lineariza¸c˜ ao de sequˆencias duplas, 132 357