Apostila Maple 01

Embed Size (px)

Citation preview

UNIVERSIDADE FEDERAL DA PARA IBA CENTRO DE CIENCIAS EXATAS E DA NATUREZA DEPARTAMENTO DE MATEMATICA

Introducao a ` Computacao Algebrica com o MAPLE

Lenimar Nunes de [email protected] verso 0.0 02/fevereiro/2002 a

Sumrio aPrefcio a 1 Introduo ao Maple ca 1.1 Introduao . . . . . . . . . . . . . . . . . . . . . c 1.2 O menu principal . . . . . . . . . . . . . . . . . 1.3 A barra de ferramentas . . . . . . . . . . . . . . 1.4 Usando as telas de ajuda . . . . . . . . . . . . . 1.5 Usando as palhetas . . . . . . . . . . . . . . . . 1.6 Comentrios . . . . . . . . . . . . . . . . . . . . a 1.7 Operaoes aritmticas e tipos numricos bsicos c e e a 1.8 Constantes . . . . . . . . . . . . . . . . . . . . . 1.9 Variveis . . . . . . . . . . . . . . . . . . . . . . a 1.10 Atribuioes . . . . . . . . . . . . . . . . . . . . c 1.11 Avaliaao numrica . . . . . . . . . . . . . . . . c e 1.12 Expresses lgicas . . . . . . . . . . . . . . . . . o o 1.13 Funes matemticas . . . . . . . . . . . . . . . co a 1.13.1 Funoes bsicas . . . . . . . . . . . . . . c a 1.13.2 Funoes trigonomtricas e hiperblicas . c e o 1.14 Aspas e apstrofos . . . . . . . . . . . . . . . . o 1.15 Seqncias, conjuntos e listas . . . . . . . . . . ue 1.16 Concatenaao . . . . . . . . . . . . . . . . . . . c 1.17 Expresses previamente computadas . . . . . . o 1.18 Pacotes . . . . . . . . . . . . . . . . . . . . . . 2 Expresses algbricas, equaoes e funes o e c co 2.1 Substituiao . . . . . . . . . . . . . . . . . c 2.2 Simplicaao . . . . . . . . . . . . . . . . c 2.3 Expanso . . . . . . . . . . . . . . . . . . a 2.4 Fatoraao . . . . . . . . . . . . . . . . . . c 2.5 Equaoes e inequaoes . . . . . . . . . . . c c 2.6 Resoluao Numrica de Equaes . . . . . c e co 2.7 Soluoes inteiras para equaoes . . . . . . c c 2.8 Sistemas de equaes . . . . . . . . . . . . co 2.9 Funoes . . . . . . . . . . . . . . . . . . . c 2.9.1 Composio de funes . . . . . . . ca coi

v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2 3 4 4 6 6 7 7 7 9 10 11 12 12 12 13 16 17 18 19 19 20 25 27 30 34 35 36 39 42

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

ii

SUMARIO

2.9.2 O comando map . . . . . . . . . . 2.10 Polinmios . . . . . . . . . . . . . . . . . o 2.11 Outros comandos de simplicao . . . . ca 2.11.1 Racionalizao de denominadores ca 2.11.2 Convertendo expresses . . . . . o 2.11.3 Os comandos numer e denom . . .

. . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43 44 47 47 47 48 49 49 50 54 57 57 58 60 63 64 67 68 70 71 72 76 77 80 83 83 83 84 91 93 95 96 97 98 98 102 103 106 108 108 109 110 112

3 Vetores, Matrizes e Algebra Linear 3.1 O pacote LinearAlgebra . . . . . . . . . . 3.2 Vetores . . . . . . . . . . . . . . . . . . . . 3.3 Matrizes . . . . . . . . . . . . . . . . . . . 3.4 Matrizes Especiais . . . . . . . . . . . . . 3.5 Matrizes Inversas . . . . . . . . . . . . . . 3.6 Determinante, Trao e Matriz Transposta . c 3.7 Sistemas Lineares . . . . . . . . . . . . . . 3.8 Matrizes Escalonadas . . . . . . . . . . . . 3.9 Dependncia e Independncia Linear . . . e e 3.10 Bases . . . . . . . . . . . . . . . . . . . . . 3.11 Transformaes Lineares . . . . . . . . . . co 3.12 Ncleo de uma Transformaao Linear . . . u c 3.13 Polinmio Caracter o stico . . . . . . . . . . 3.14 Autovalores e Autovetores . . . . . . . . . 3.15 Polinmio Minimal . . . . . . . . . . . . . o 3.16 Forma Cannica de Jordan . . . . . . . . . o 3.17 Ortogonalizaao . . . . . . . . . . . . . . . c

4 Grcos a 4.1 Grcos de funoes y = f (x) . . . . . . . . . . . . . a c 4.1.1 Grcos simples . . . . . . . . . . . . . . . . a 4.1.2 Opoes do comando plot . . . . . . . . . . c 4.1.3 Construindo vrios grcos simultaneamente a a 4.2 Grcos denidos implicitamente . . . . . . . . . . a 4.3 Grcos de curvas parametrizadas . . . . . . . . . . a 4.4 Grcos em coordenadas polares . . . . . . . . . . . a 4.5 Grcos tridimensionais . . . . . . . . . . . . . . . a 4.5.1 Grcos de funes z = f (x, y) . . . . . . . a co 4.5.2 As opes do comando plot3d . . . . . . . co 4.5.3 Curvas de n vel . . . . . . . . . . . . . . . . 4.5.4 Grcos denidos implicitamente . . . . . . a 4.5.5 Grcos de superf a cies parametrizadas . . . 4.6 Outros grcos . . . . . . . . . . . . . . . . . . . . a 4.7 Animaoes . . . . . . . . . . . . . . . . . . . . . . . c 4.7.1 Animaoes bidimensionais . . . . . . . . . . c 4.7.2 Animaoes tridimensionais . . . . . . . . . . c 4.7.3 Outras animaes . . . . . . . . . . . . . . . co

SUMARIO

iii

4.8

Salvando grcos em diferentes formatos . . . . . . . . . . . . . . . . . . a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

113 115 115 115 117 118 119 120 122 122 125 126 128 130 132 132 134 136 138 140 140 142 143 147 147 150 151 152 154 156 157 157 159 160 162 166 166 169 171 172 173 174 175

5 Clculo Diferencial e Integral a 5.1 Limites . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 Limites de funoes f (x) . . . . . . . . . . . . c 5.1.2 Limites no innito . . . . . . . . . . . . . . . 5.1.3 Limites laterais . . . . . . . . . . . . . . . . . 5.1.4 Limites de funoes de vrias variveis . . . . . c a a 5.2 Funoes cont c nuas . . . . . . . . . . . . . . . . . . . . 5.3 Derivadas . . . . . . . . . . . . . . . . . . . . . . . . 5.3.1 Derivadas de funes de uma varivel . . . . . co a 5.3.2 Derivadas de ordem superior . . . . . . . . . . 5.3.3 Derivadas de funes de vrias variveis . . . co a a 5.3.4 O operador diferencial . . . . . . . . . . . . . 5.3.5 Derivadas de funes denidas implicitamente co 5.4 Integrais . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.1 Integrais de funes de uma varivel . . . . . co a 5.4.2 Integrais denidas e imprprias . . . . . . . . o 5.4.3 Integrais duplas e triplas . . . . . . . . . . . . 5.5 Gradiente, Divergente, Rotacional e Laplaciano . . . 5.6 Somatrios, produtrios, sries de potncias . . . . . o o e e 5.6.1 Somatrios . . . . . . . . . . . . . . . . . . . o 5.6.2 Produtrios . . . . . . . . . . . . . . . . . . . o 5.6.3 Sries de potncias . . . . . . . . . . . . . . . e e 6 Equaoes Diferenciais c 6.1 Equaoes Diferenciais Ordinrias . . . . . . c a 6.2 Problemas de Valor Inicial . . . . . . . . . . 6.3 Sistemas de Equaes Diferenciais . . . . . . co 6.4 Soluao em Sries de Potncias . . . . . . . c e e 6.5 Equaoes Diferenciais Parciais . . . . . . . . c 6.6 Grcos de soluoes de equaoes diferenciais a c c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7 Problemas de Clculo e de Geometria Anal a tica 7.1 Operaoes elementares com grcos de funes . . c a co 7.2 Teorema do Valor Mdio . . . . . . . . . . . . . . e 7.3 Problemas de mximos e m a nimos . . . . . . . . . 7.4 Somas de Riemann . . . . . . . . . . . . . . . . . 7.5 Regras de Integrao . . . . . . . . . . . . . . . . ca 7.5.1 Integraao por substituiao . . . . . . . . c c 7.5.2 Integraao por partes . . . . . . . . . . . . c 7.5.3 Fraes parciais . . . . . . . . . . . . . . . co 7.6 Clculo de reas . . . . . . . . . . . . . . . . . . . a a 7.7 Geometria Anal tica Plana . . . . . . . . . . . . . 7.7.1 Pontos e retas . . . . . . . . . . . . . . . . 7.7.2 Circunferncias . . . . . . . . . . . . . . . e

iv

SUMARIO

7.8

7.7.3 Cnicas . . . . . . . . . . . o Geometria Anal tica Tridimensional 7.8.1 Pontos, Retas e Planos . . . 7.8.2 Esferas . . . . . . . . . . . .

. . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

178 186 187 192 195 195 198 206 211 215 222 225 225 231 234 234 236 238 239 243

8 Nooes de programao com o Maple c ca 8.1 A declaraao condicional . . . . . . . c 8.2 Estruturas de repetiao . . . . . . . . c 8.3 Tipos pr-denidos . . . . . . . . . . e 8.4 Procedimentos . . . . . . . . . . . . . 8.5 Variveis locais e globais . . . . . . . a 8.6 Procedimentos recursivos . . . . . . .

9 Grupos, Transformadas Integrais, Funes Complexas co 9.1 Grupos de Permutaes . . . . . . . . . . . . . . . . . . . co 9.2 Sries de Fourier . . . . . . . . . . . . . . . . . . . . . . . e 9.3 Transformadas Integrais . . . . . . . . . . . . . . . . . . . 9.3.1 Transformadas de Laplace . . . . . . . . . . . . . . 9.3.2 Equaoes Diferenciais e a Transformada de Laplace c 9.3.3 Transformadas de Fourier . . . . . . . . . . . . . . 9.4 Funoes Complexas . . . . . . . . . . . . . . . . . . . . . . c A Os pacotes do Maple B Outros itens B.1 Salvando e recuperando expresses . . . . o B.2 Gerando expresses nos formatos de outros o B.3 Calculando o tempo gasto na execuao . . c B.4 Listagem de funoes dos pacotes do Maple c Referncias Bibliogrcas e a . . . . . . . programas . . . . . . . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

247 247 248 249 250 253

Prefcio aO Maple um programa de Computao Algbrica de uso geral que vem sendo desene ca e volvido desde 1981 na Universidade de Waterloo, no Canad. a Neste texto fazemos uma introduao geral a esse programa. Nosso principal objetivo c e abordar a maior parte dos assuntos vistos nos cursos bsicos das universidades: Clculo a a Diferencial e Integral, Clculo Vetorial, Algebra Linear e Geometria Anal a tica. Mas, abordamos assuntos mais avanados do que esses, como Grupos de Permutaes (no c co Cap tulo 9) e tambm assuntos mais elementares (como os do Cap e tulo 2). Os dois primeiros cap tulos apresentam brevemente o ambiente do Maple para o Windows da Microsoft e os conceitos bsicos necessrios ao entendimento dos demais. A a a dependncia entre os cap e tulos est representada no seguinte diagrama: a: vv vv vv vv vv v / Cap tulo 4 v: vv vv vv vv vv / Cap tulo 5 / Cap tulo 3 / Cap tulo 9

Cap tulo 1

/ Cap tulo 2

/ Cap tulo 7

/ Cap tulo 6

/ Cap tulo 8

H muito sobre Computaao Algbrica e sobre o Maple na Internet, conforme poa c e demos ver nos endereos www.SymbolicNet.org do Symbolic Mathematical Computation c Information Center e em www.mapleapps.com do Maple Aplication Center. Nosso agradecimento aos professores X, Y, Z e W que leram a verso 0.0 e apresentaa ram sugestes e correoes. o c

Joo Pessoa, 2 de fevereiro de 2002 a Lenimar Nunes de Andrade

v

Cap tulo 1

Introduo ao Maple caNeste cap tulo apresentamos brevemente o ambiente do Maple para o sistema operacional Windows e algumas de suas funes e comandos bsicos. Juntamente com o co a cap tulo 2, que complementa o que est sendo apresentado aqui, constitui a base para o a entendimento dos demais cap tulos.

1.1

Introduo ca

O Maple um programa de Computaao Algbrica de uso geral que possui inmeros e c e u recursos numricos e grcos, alm de tambm funcionar como uma linguagem de proe a e e gramao. Ele vem sendo desenvolvido desde 1981 pela canadense Waterloo Maple Inc. ca para vrios sistemas operacionais. Com ele, poss realizar clculos que contenham a e vel a s mbolos como , ou 2 sem a necessidade de fazer aproximaes numricas ou realico e 2 zar simplicaes e clculos com expresses algbricas como ax + bx + c ou x3 + log(x) co a o e sem ser preciso atribuir valores numricos `s variveis ou constantes. Devido a essas e a a propriedades, poss encontrar solues exatas para problemas prticos que envolvam e vel co a resoluo de equaoes, derivadas, integrais, clculo matricial, etc, tudo isso integrado a ca c a recursos que permitem visualizaao de dados ou objetos planos ou tridimensionais. c Na verso 7 para Windows, quando ele chamado, aparece uma tela como a da Figura a e 1.1. Funcionando de modo interativo, o usurio vai digitando comandos ao lado de um a aviso (prompt) cujo formato padro um sinal de maior. Assim que um comando digitado a e sem erros encerrado, o ncleo do programa o executa. e u Os comandos so digitados em um ambiente prprio chamado folha de trabalho a o (worksheet) que pode ser gravada em disco atravs da opao File/Save ou File/Save As do e c menu principal ou ser carregada do disco com a opao File/Open. c Cada comando digitado deve terminar com um ; (ponto e v rgula) ou com : (dois pontos), seguido de Enter. Se o comando terminar com ponto e v rgula, o resultado da sua execuo ser mostrado logo em seguida. Se terminar com dois pontos, o resultado no ca a a ser mostrado, podendo car guardado para uso posterior. A digitaao de um comando a c pode se estender por mais de uma linha. O Maple sens e vel ao tipo das letras, ou seja, ele diferencia letras minsculas das u respectivas letras maisculas. Por exemplo, x considerado diferente de X. u e1

2

CAP ITULO 1. INTRODUCAO AO MAPLE

Figura 1.1:

Exemplo 1.1 Ao lado do aviso do Maple digitamos o comando 3 + 5 + 1 e encerramos a linha com um ponto e vrgula. Ele calcula a soma e mostra imediatamente o resultado: > 3 + 5 + 1; 9 Se no for digitado ponto e vrgula e nem dois pontos no nal da linha, ento o Maple a a convenciona que o comando continua na linha seguinte. Aqui calculamos o valor de 1 + x + 3 + 4 5 + x 2 + 0 digitado em trs linhas: e > 1 + x + 3 > + 4 - 5 + x > - 2 + 0; 1 + 2x Se o comando for encerrado com dois pontos, ento o resultado obtido no mostrado a a e de imediato: > 6 + 3 - 2 + y:

1.2

O menu principal

Na apresentaao padro, na parte superior da tela aparece o menu principal, a barra c a de ferramentas e a barra de contexto (Figura 1.2). A barra de contexto alterada de e acordo com o que o programa estiver mostrando no momento.

1.3. A BARRA DE FERRAMENTAS

3

Figura 1.2:

O menu principal corresponde ` primeira linha da parte superior da tela (Figura 1.2) e a formado por vrios submenus: File, Edit, View, Insert, Format, Spreadsheet, Options, e a Window e Help. Para ter acesso a um item do menu, deve-se pressionar com o mouse em cima do item ou pressionar no teclado simultaneamente as teclas Alt e a letra que estiver sendo mostrada sublinhada no nome do item desejado. Por exemplo, para ter acesso ao primeiro item, o File, pressione com o mouse em cima dele ou pressione no teclado as teclas Alt e F simultaneamente (Figura 1.3).Figura 1.3:

1.3

A barra de ferramentas

As principais opes do menu principal tambm podem ser executadas pressionando-se co e os botes da barra de ferramentas. o Os quatro primeiros botes da barra de ferramentas correspondem o `s operaoes de folha de trabalho em branco, abrir uma folha j existente, salvar e a c a

4

CAP ITULO 1. INTRODUCAO AO MAPLE

imprimir a folha atual; os prximos botes correspondem `s operaes de recortar, copiar e colar; o o a co os prximos dois botes correspondem a desfazer e refazer a ultima correao o o c realizada; os prximos trs botes correspondem ao modo de execuao do Maple: ino e o c sere frmulas matemticas sem execut-las, insere texto e insere comando executvel; o a a a os prximos dois botes correspondem a no endentar ou endentar o texto o o a digitado. O par de setas leva para a anterior ou para a prxima conexo do texto. o a O boto STOP o boto que pra o que estiver sendo executado. a e a a Os trs botes com lupas correspondem ` ampliaao ou reduao (mais zoom e o a c c ou menos zoom) do que estiver sendo mostrado; os trs ultimos botes correspondem a mostrar caracteres no imprim e o a veis, redimensionamento de janela e boto de recomear (restart). a c

1.4

Usando as telas de ajuda

As telas de ajuda (help) do programa so a maneira mais completa de se obter ina formaes sobre ele (Figura 1.4). So cerca de 3000 pginas de informaoes. Pode-se ter co a a c acesso a elas atravs da opao Help do menu principal ou digitando-se ao lado do aviso e c do programa um interrogao e pressionar Enter. ca Para obter informaoes espec c cas sobre algum comando, basta digitar um interrogao seguido do nome do comando e pressionando-se Enter. Por exemplo, para obter ca informao espec ca ca sobre a funao trigonomtrica cosseno, basta digitar: c e > ?cos Em geral, as telas de ajuda contm uma descriao detalhada do comando, vrios e c a exemplos de uso e referncias a comandos relacionados. e

1.5

Usando as palhetas

Uma outra alternativa de entrada de dados atravs do uso de palhetas (palettes). O e e Maple possui quatro palhetas: uma com s mbolos, uma com vetores, uma com matrizes e outra com expresses (Figura 1.5). o

1.5. USANDO AS PALHETAS

5

Figura 1.4:

Figura 1.5:

O acesso a elas se d atravs da opao View/Palettes do menu principal. a e c

6

CAP ITULO 1. INTRODUCAO AO MAPLE

Usar uma palheta como preencher um formulrio em branco, basta ir escrevendo nos e a campos marcados com um %? que so mostrados, pressionando-se a tecla Tab para pular a para o campo seguinte ou Shift Tab para voltar ao campo anterior. Deve-se pressionar Enter no nal.

1.6

Comentrios a

Na linha de comando do Maple, tudo o que for digitado ` direita do s a mbolo # ser a considerado um comentrio. Os comentrios so ignorados na execuo do programa, a a a ca servindo s para orientaao do usurio. o c a Exemplo 1.2 Exemplo de comentrio na digitao da folha de trabalho: a ca > # Este um exemplo de comentrio, n~o considerado e a a e > # como um comando para ser executado.

1.7

Operaoes aritmticas e tipos numricos bsicos c e e a

As operaoes aritmticas adiao, subtraao, multiplicaao, diviso e potenciao so c e c c c a ca a representadas por +, , , / e , respectivamente. A prioridade no clculo das operaoes a mesma usada na Matemtica: primeiro o a c e a que estiver entre parnteses, depois as potenciaoes, depois as multiplicaoes e divises e e c c o por ultimo as adies e subtraes. co co Exemplo 1.3 Exemplicando o uso das operaes aritmticas bsicas. co e a EXPRESSAO 1 + 2*3 (1 + 2)*3 6 + 9/3 + 2 2/(1 + 2(3 - 5)*8) VALOR 7 9 11 2/3 EXPRESSAO 4*32 (4*3)2 (6 + 9)/(3 + 2) 32 - 23 VALOR 36 144 3 1

Cada objeto algbrico, numrico ou grco no Maple possui um tipo. O tipo uma e e a e espcie de fam do objeto, agrupando objetos de propriedades semelhantes. e lia Entre os tipos numricos bsicos podemos destacar o tipo inteiro (integer) e o tipo e a real com ponto utuante (float). Um nmero formado por uma seqncia de algarismos u ue sem espaos em branco e sem ponto entre eles considerado do tipo inteiro. Um nmero c e u com ponto decimal utuante considerado do tipo real. Por exemplo, 144 considerado e e inteiro, enquanto que 144.00 considerado real. e importante observar a diferena entre reais e inteiros porque o programa calcula E c imediatamente as expresses que contiverem nmeros reais, mas mantm em forma inero u e cial (sem calcular) algumas expresses que envolvam exclusivamente nmeros inteiros. o u Por exemplo 2/3 (diviso de inteiros) mantido em forma de fraao, mas 2.0/3.0 (diviso a e c a de reais) aproximado imediatamente para 0, 6666666667, onde ele aparecer. e

1.8. CONSTANTES

7

1.8

Constantes

Algumas constantes pr-denidas so Pi (o famoso = 3, 14159 . . . ), gamma e a ( = 0, 57721 . . . ) e I (unidade imaginria). Mas, cuidado para no usar pi no lugar a a de Pi e nem i no lugar de I porque no so a mesma coisa. a a Tambm so consideradas constantes true e false (verdadeiro e falso) e infinity, e a representando o innito. A base do logaritmo natural (e = 2, 71828 . . . ) deve ser usada como sendo exp(1).

1.9

Variveis a

Uma varivel um lugar na memria identicado por um nome e serve para guardar a e o valores. Esse nome pode ser formado por letras minsculas ou maisculas, algarismos e u u o caracter sublinhado. O nome da varivel no pode comear com um algarismo. a a c So exemplos de nomes de variveis vlidos: x, y2, var11, T este, v inicial. a a a So exemplos de nomes invlidos: x#, 2y, var.11, vinicial. a a

1.10

Atribuies co

Um valor pode ser atribu a uma varivel com um comando varivel := valor. Por do a a exemplo, x := 2 atribui o valor 2 ` varivel x. Cuidado para no confundir com a a a a igualdade x = 2 que compara x com 2. A atribuiao x := f (x) redene o valor da varivel x como sendo o valor da funao f c a c calculado no valor anterior de x. Por exemplo, uma atribuiao como x := x + 1 faz com c que o valor da varivel x seja substitu pelo valor que o x j tinha acrescentado de 1. a do a Ao digitar o nome de uma varivel ` direita do aviso do Maple (o sinal de maior), a a seguido de um ponto e v rgula, em muitos casos faz o programa mostrar o seu valor. Exemplo 1.4 Inicialmente denimos o valor de x como sendo 2. > x := 2; x := 2 > x; # mostra o valor de x 2 Agora, acrescentamos 1 ao valor de x: > x := x + 1; x := 3 Comparamos o x com 4 (o x continua valendo 3): > x = 4;

8

CAP ITULO 1. INTRODUCAO AO MAPLE

3=4 Essa ultima igualdade deve ser entendida como uma expresso lgica a qual o Maple a o atribui um valor f alse (falso). Podemos fazer vrias atribuies simultaneamente. Para isso, basta listar as variveis a co a separadas por v rgulas e atribu -las uma lista de valores tambm separados por v e rgulas. Por exemplo, para atribuir simultaneamente os valores 1, 2, 3 `s variveis a, b, c, respeca a tivamente, basta digitar o comando de atribuiao: a, b, c := 1, 2, 3 . c Para fazer com que o programa esquea o valor de uma varivel x, deve-se fazer uma c a atribuia: x := x ou usar um comando unassign( x ). E poss usar o unassign c o vel com vrias variveis: unassign( var1 , var2 , var3 , . . . ). a a Para fazer com que o programa esquea tudo o que foi atribu anteriormente, c do basta usar um comando restart. Exemplo 1.5 Neste exemplo, limpamos inicialmente a lista de variveis do Maple a com um restart. Depois fazemos uma atribuio mltipla de valores a quatro variveis ca u a x, y, teste1 e teste2. > restart; # equivale a pressionar o restart da barra de ferramentas > x, y, teste1, teste2 := -1, -2, a, b; x, y, teste1, teste2 := 1, 2, a, b Agora, conferimos o valor atribudo a cada varivel, uma por uma: a > x; 1 > y; 2 > teste1; a > teste2; b Limpamos as variveis teste1 e teste2: a > unassign(teste1, teste2); > teste1; teste1 > teste2; teste2 E, nalmente, limpamos os valores de x e y:

1.11. AVALIACAO NUMERICA

9

> x, y := x, y; x, y := x, y > x; x > y; y

1.11

Avaliao numrica ca e

A avaliaao numrica de uma expresso X feita com o comando evalf(X). O Maple c e a e usa como padro uma quantidade de 10 casas decimais, mas poss obter resultado a e vel com qualquer quantidade de casas decimais, bastando para isso fazer o seguinte: usar o evalf na forma evalf(X, n). Isso mostra X com n casas decimais. usar um comando do tipo Digits := n. A partir da todos os clculos numricos , a e so mostrados com n casas decimais. Digits uma varivel pr-denida do proa e a e grama que controla a quantidade de casas decimais utilizadas. Exemplo 1.6 Neste exemplo mostramos os valores de e 2 com vrias casas decimais. a

> Digits; 10 > Pi; > evalf(Pi); 3.141592654 > sqrt(2);

2

> evalf(sqrt(2)); 1.414213562 Uma atribuio Digits := 30 faz com que os resultados passem a ser mostrados com ca um novo padro de 30 casas decimais. a > Digits := 30; Digits := 30 > evalf(Pi); 3.14159265358979323846264338328

10

CAP ITULO 1. INTRODUCAO AO MAPLE

> evalf(sqrt(2)); 1.41421356237309504880168872421 Mas, com o evalf podes-e escolher a quantidade de casas decimais (diferente do padro, possivelmente) com o qual determinado resultado mostrado: a e > evalf(sqrt(2), 60); 1.41421356237309504880168872420969807856967187537694807317668 E, nalmente, o valor de com duzentas decimais! Obeserve que o Maple coloca uma barra invertida no nal de uma linha para indicar que ela continua na prxima. o > evalf(Pi, 200); 3.141592653589793238462643383279502884197169399375105820974944592307816\ 40628620899862803482534211706798214808651328230664709384460955058223\ 17253594081284811174502841027019385211055596446229489549303820

1.12

Expresses lgicas o o

Uma expresso lgica, avaliada em true ou f alse (verdadeiro ou falso), contm opea o e radores relacionais e operadores lgicos. o Os operadores relacionais so = (igual), < (menor), > (maior), = (maior ou igual) e (diferente) e os operadores lgicos so not (no), and (e), or o a a (ou), xor (ou exclusivo) e implies (implica). A ordem decrescente de prioridade na avaliaao de uma expresso lgica : c a o e 1. =, =, 2. not 3. and 4. or 5. xor 6. implies Alm de true e f alse, uma operao lgica tambm pode retornar um valor F AIL e ca o e para indicar que houve algum tipo de falha no clculo do valor da expresso. a a Uma expresso lgica pode ser calculada com um comando evalb(expresso) ou a o a is(expresso), conforme mostramos a seguir. a Exemplo 1.7 Avaliando algumas expresses lgicas com os comandos evalb ou is. o o > evalb(1 < 2); true

1.13. FUNCOES MATEMATICAS

11

> evalb(1 < 2 and 2 = 3); f alse > evalb(4 = 5 or 3 = 3); true Algumas expresses formadas por constantes e operadores lgicos podem ser avaliadas o o sem ser necessrio usar evalb ou outro comando: a > 4 < 3 implies 4 = 9; true > 1 < 2 xor 3 9; f alse > 3 < 4 implies 4 = 9; f alse O comando is `s vezes mais eciente do que o evalb, conforme mostramos a seguir. a e O is desenvolve e simplica uma expresso algbrica, coisa que o evalb no faz. a e a > evalb( a^2 - b^2 = (a + b)*(a - b)); f alse > is(a^2 - b^2 = (a + b)*(a - b)); true Exemplo 1.8 Exemplicando o uso das operaes lgicas bsicas. Foi usado um coco o a mando evalb(expresso) para calcular o valor lgico de cada expresso. a o a EXPRESSAO VALOR 1 # Cauchy", o problema pode ser facilmente resolvido > int(1/x, x=-3..4, CauchyPrincipalValue); 2 ln(2) ln(3) Exemplo 5.48 O Maple tem conhecimento de integrais imprprias famosas cujos clculos o a normalmente no so acessveis a quem estiver iniciando o estudo do Clculo. Mostramos a a a a seguir dois representantes ilustres dessa famlia de integrais. > exp(-x^2), x=-infinity..infinity: Int(%)=int(%);

ex dx =

2

> sin(x)/x, x=0..infinity: Int(%)=int(%); 0

sin(x) 1 dx = x 2

Exemplo 5.49 E muito comum encontrarmos uma integral denida que no pode ser a calculada de forma exata. Nesses casos, ela pode ser calculada numericamente de forma aproximada. Para isso, basta aplicar ` integral um comando evalf. a > int( root[3](x^5 + 1), x=2..7); # n~o pode ser calculada de forma exata a7 2

(x5 + 1) 3 dx

1

> evalf(%);

# obtm uma aproxima~o numrica para a integral dada e ca e 64.88537023

Exemplo 5.50 O Maple sabe como derivar funes denidas por integrais, mesmo que co as integrais no possam ser calculadas de forma exata, como as que so mostradas neste a a exemplo. > F := x -> Int((1 + 1/t)^t, t=1..x);x

F := x 1

1 (1 + )t dt t

> diff(F(x), x); 1 (1 + )x x

136

CAP ITULO 5. CALCULO DIFERENCIAL E INTEGRAL

> F(2); # N~o consegue calcular exatamente ... a2 1

1 (1 + )t dt t

> evalf(F(2)); # ... mas calcula aproximadamente 2.142945126 > G := x -> Int(sin(t*cos(t)), t = -x^2..exp(-3*x));e(3x)

G := x x2

sin(t cos(t))dt

> D(G)(x); 3e(3x) sin(e(3x) cos(e(3x) )) 2x sin(x2 cos(x2 )) 5.4.3 Integrais duplas e triplas

O pacote student possui dois comandos na forma inercial que so uteis no clculos de a a integrais mltiplas iteradas. O value aplicado a essas formas inerciais permite calcular u seus valores. A forma inercial da integral dupla de uma funo de duas variveis denida por uma ca a expresso algbrica f (x, y) nas variveis x, y : a e a e Doubleint(f(x, y), x=a..b, y=c..d), onde a..b e c..d denotam a variao do x e do y, respectivamente. Essa forma inercial ca e equivalente a Int(Int(f(x, y), x=a..b), y=c..d). Os intervalos de integraao podem depender das variveis e a ordem da integraao c a c pode ser permutada em alguns casos. Exemplo 5.51 Calculemos a integral dupla de x + y com y x 3y e 1 y 2. > with(student): > Doubleint(x + y, x=y..3*y, y=1..2): %=value(%);2 1 y 3y

x + y dx dy = 14 > # O Doubleint anterior equivalente a: e > Int(Int(x + y, x=y..3*y), y=1..2): %=value(%);2 1 y 3y

x + y dx dy = 14 Exemplo 5.52 Calculemos a integral dupla de f (x, y, z) = x + 2y + 3 com 0 y 4 x2 e 2 x 2. > Doubleint(x + 2*y + 3, y=0..4-x^2, x=-2..2): %=value(%);

5.4. INTEGRAIS2 2 0 4x2

137

x + 2y + 3 dy dx =

992 15

Exemplo 5.53 Integrais duplas em coordenadas polares tambm podem ser calculadas e com o Doubleint. Neste exemplo calculamos a integral dupla de sin() com 0 cos() e 0 . > Doubleint(rho*sin(theta), rho=0..cos(theta), theta=0..Pi): > % = value(%); 0 0 cos()

d d =

1 3

A forma inercial da integral tripla de uma funao de trs variveis denida por uma c e a expresso algbrica f (x, y, z) nas variveis x, y, z dada por: a e a e Tripleint(f(x, y, z), x=a..b, y=c..d, z=e..f), onde a..b, c..d e e..f denotam a variao do x, y e do z, respectivamente. O Tripleint ca e equivalente a trs comandos Int encaixados: e Int(Int(Int(f(x, y, z), x=a..b), y=c..d), z=e..f). Exemplo 5.54 Calculemos a integral tripla de f (x, y, z) = z com 0 z 2 y x 6 2y e 0 y 2. > with(student): > Tripleint(z, z=0..sqrt(4-y^2), x=2-y..6-2*y, y=0..2): %=value(%); 2 62y 4y 2 26 z dz dx dy = 3 0 2y 0 > # O Tripleint anterior equivalente a: e > Int(Int(Int(z, z=0..sqrt(4-y^2)), x=2-y..6-2*y), y=0..2): %=value(%); 2 62y 2 4y 26 z dz dx dy = 3 0 2y 0 Exemplo 5.55 Integrais triplas em coordenadas esfricas ou cil e ndricas podem ser calculadas sem maiores diculdades. Aqui, calculamos a integral tripla de com 0 z 2 , 0 2 cos() e 0 /2. > Tripleint(rho, z=0..rho^2, rho=0..2*cos(theta), theta=0..Pi/2): > % = value(%);1 2

4 y2,

2 cos() 0 0

2

dz d d =

0

3 4

138

CAP ITULO 5. CALCULO DIFERENCIAL E INTEGRAL

5.5

Gradiente, Divergente, Rotacional e Laplaciano

O gradiente, o divergente, o rotacional e o laplaciano podem ser calculados com os comandos grad, diverge, curl e laplacian do pacote linalg. A sintaxe deles so parecidas entre si: nome do comando seguido da funo e da lista a ca de variveis. No caso do divergente e do rotacional a funao deve ser uma funao vetorial. a c c Exemplo 5.56 Neste exemplo as denies desses operadores podem ser recordadas. co > with(linalg): # Ignore a advert^ncia bobinha a seguir e

W arning, the protected names norm and trace have been redef ined and unprotected > F := [f(x,y,z), g(x,y,z), h(x,y,z)]: > v := [x, y, z]: # lista de variveis a > > curl(F, v); # rotacional de F f (x, y, z) y f (x, y, z) , z f (x, y, z) x > diverge(F, v); # divergente de F f (x, y, z) + x g(x, y, z) + y h(x, y, z) z f (x, y, z) z f (x, y, z) y f (x, y, z) , x

> grad(f(x,y,z), v); # gradiente de f f (x, y, z), f (x, y, z), f (x, y, z) x y z > laplacian(f(x,y,z), v); # laplaciano de f 2 f (x, y, z) + x2 2 f (x, y, z) + y 2 2 f (x, y, z) z 2

Exemplo 5.57 Neste exemplo calculado o gradiente de x3 + y 4 9z 2 nas variveis e a x, y, z e o gradiente de rset nas variveis r, s, t. a > grad(x^3 + y^4 - 9*z^2, [x,y,z]); 3x2 , 4y 3 , 18z > F := r*s^2*exp(t): var := [r, s, t]: > grad(F, var); s2 et , 2rset , rs2 et Exemplo 5.58 Um exemplo simples de clculo de laplaciano a

5.5. GRADIENTE, DIVERGENTE, ROTACIONAL E LAPLACIANO

139

> laplacian(x^4 + y^4 + z^4, [x,y,z]); 12x2 + 12y 2 + 12z 2 Exemplo 5.59 Consideremos a funo vetorial f (u, v, w) = (eu cos(v), eu sin(v), ln(w)) ca e calculemos seus rotacional e divergente. > f := [exp(u)*cos(v), exp(u)*sin(v), ln(w)]: > X := [u, v, w]: # lista de variveis a > curl(f, X); # rotacional de f [0, 0, 2eu sin(v)] > diverge(f, X); # divergente de f 2eu cos(v) + 1 w

Exemplo 5.60 Neste exemplo calculamos o rotacional e o divergente da funo vetorial ca 3 F (x, y, z) = (y, x cos(z), xyz). > F := [y, x^3*cos(z), x*y*z]: var := [x, y, z]: > RF := curl(F, var); # rotacional de F RF := xz + x3 sin(z), yz, 3x2 cos(z) 1 > diverge(F, var); # divergente de F xy > diverge(RF, var); # divergente do rotacional de F 0 Exemplo 5.61 Agora vamos ver como ca o clculo desses operadores nos sistemas de a coordenadas cilndricas e esfricas. Os comandos so semelhantes ao do caso do sistema e a de coordenadas cartesianas, com a unica diferena de acrescentar um terceiro parmetro c a do tipo coords = cylindrical ou coords = esferical. > > > > > with(linalg): # gradiente em coordenadas cilndricas f := r^2*cos(theta)*z^3: v := [r, theta, z]: grad(f, v, coords=cylindrical); 2r cos()z 3 , r sin()z 3 , 3r2 cos()z 2 > > # laplaciano em coordenadas cilndricas > f := z*cos(theta): v := [r, theta, z]: > laplacian(f, v, coords=cylindrical);

140

CAP ITULO 5. CALCULO DIFERENCIAL E INTEGRAL

z cos() r2

> > # divergente em coordenadas esfricas e > G := vector([r, sin(theta), cos(phi)]): > diverge(G, v, coords=spherical);

v := vector([r, theta, phi]):

3r sin() + 2 sin() cos() sin() r sin()

5.65.6.1

Somatrios, produtrios, sries de potncias o o e eSomatrios o

Um somatrio pode ser calculado pelo Maple com um comando sum(f(n), n=a..b) que o admite dois parmetros: um com o termo geral f (n) do somatrio dependendo de um a o inteiro n e outro parmetro com o intervalo de variao da varivel no formato n = a..b a ca a signicando que a n b. A forma inercial Sum(f(n), n=a..b) possui a mesma sintaxe e pode ser calculada aplicando-lhe um comando value. Exemplo 5.62 A soma da progresso geomtrica cujo termo geral an = 2n , com n a e e variando de 1 a k calculada com o comando: e > sum(2^n, n = 1..k); 2(k+1) 2 De modo semelhante, a soma da progresso aritmtica cujo termo geral an = 4n + 7 a e e com n variando de 1 a k calculada por: e > sum(4*n + 7, n = 1..k); 2(n + 1)2 + 5n 2 Podemos ter uma soma de uma quantidade innita de termos, como mostrado a seguir onde calculamos a soma de uma progresso geomtrica innita cujo termo geral (3/5)n : a e e > sum((3/5)^n, n=0..infinity); 5 2 Exemplo 5.63 Com o uso da forma inercial Sum podemos escrever frmulas ou seno tenas completas, que dispensam enunciados. c > Sum(a[n], n=1..10) = sum(a[n], n=1..10);10

an = a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10n=1

> Sum(x^n/n!, n=0..6) = sum(x^n/n!, n=0..6);

5.6. SOMATORIOS, PRODUTORIOS, SERIES DE POTENCIAS6

141

n=0

1 1 1 1 5 1 6 xn = 1 + x + x2 + x3 + x4 + x + x n! 2 6 24 120 720

> Limit(Sum(x^n/n!, n=0..k), k=infinity) = exp(x);k k

lim

n=0

xn = ex n!

Em alguns casos o uso de apstrofos recomendado para evitar que sejam feitas subso e tituies indesejveis, por exemplo, quando variveis com mesmos nomes tiverem sido co a a usadas anteriormente. Exemplo 5.64 O Maple conhece o valor da soma de vrias sries innitas, como por a e p exemplo as somas das p-sries (cujo termo geral an = 1/n ) com p par e p 48. Neste e e 1 1 1 exemplo, calculamos a soma 1 + + + + 4 + que, surpreendentemente, e 16 81 n 4 uma expresso onde aparece . a > Sum(1/k^4, k = 1..infinity): %=value(%);

k=1

1 1 4 = 4 k 90

Calculando a soma parcial $P$ dos $20$ primeiros termos da srie: e \begin{verbatim} > P := sum(1/k^4, k = 1..20); 3178468114001972330616643665140369 2936813615588238080381960232960000 > P := evalf(P); # substitui P pelo seu valor decimal P := P := 1.082284588 Note que P uma aproximao para a soma da srie, cujo valor na notao decimal e ca e ca mostrado a seguir: e > Pi^4/90: % = evalf(%); 1 4 = 1.082323234 90 Sendo P uma aproximao para a soma da srie, a raiz quarta de 90P uma aproca e e ximao para o o valor de Pi: ca > root[4](90*P); 3.141564610 Exemplo 5.65 Seguem diversos clculos de somas de sries, alguns so bem conhecidos. a e a > Sum(1/n!, n=0..infinity): %=value(%);

142

CAP ITULO 5. CALCULO DIFERENCIAL E INTEGRAL

n=0

1 = e n!

> Sum(k^2, k=1..n): %=value(%);n

k2 =k=1

1 1 1 1 (n + 1)3 (n + 1)2 + n + 3 2 6 6

> Sum(k^5, k = 1..n): %=value(%);n

k5 =k=1

1 1 5 1 (n + 1)6 (n + 1)5 + (n + 1)4 (n + 1)2 6 2 12 12

> Sum( 1/n, n=1..infinity): %=value(%); # srie harm^nica e o 1 = n

n=1

> Sum (1/(3*n+7), n=2..infinity): %=value(%);

n=2

1 = 3n + 7

> Sum ((-1)^n/(3*n + 7), n=2..infinity): %=value(%);

n=2

(1)n 111 1 1 = + 3 + ln(2) 3n + 7 140 9 3

5.6.2

Produtrios o

O clculo de produtrios feito com o comando product, cujo sintaxe semelhante ` a o e e a do comando sum. Esse comando tambm possui uma forma inercial chamada Product. e Exemplo 5.66 Utilizamos a forma inercial combinada com o value para calcular trs e produtos. > Product( a[k], k=1..8): %=value(%);8

ak = a1 a2 a3 a4 a5 a6 a7 a8k=1

> Product( 2^n, n=0..100):

% = ifactor(value(%));100

2n = (2)5050n=0

> Product( (1+1/n^2), n=1..infinity): %=value(%);

1+n=1

1 n2

=

sinh()

5.6. SOMATORIOS, PRODUTORIOS, SERIES DE POTENCIAS

143

5.6.3

Sries de potncias e e

O Maple possui muitos comandos para serem utilizados com sries de potncias. e e Vamos inicialmente citar um dos mais simples: o que obtm desenvolvimento em srie e e de Taylor de uma funao. c A sintaxe desse comando taylor(f(x), x=a, n) ou series(f(x), x=a, n) onde e f (x) uma expresso algbrica na varivel x, a o ponto em torno do qual ser feito e a e a e a o desenvolvimento em srie (ou seja, os termos da srie so potncias de (x a)) e n e e a e corresponde ` ordem. a Exemplo 5.67 Neste exemplo, obtemos desenvolvimentos de Taylor da funo sen (x) ca em srie de potncias de x e de (x 1). Depois, convertemos as sries obtidas para e e e polinmios com um comando convert(srie, polynom). o e > S1 := taylor( sin(x), x=0, 10); 1 1 5 1 7 1 S1 := x x3 + x x + x9 + O(x10 ) 6 120 5040 362880 > S2 := taylor( sin(x), x = 1, 4); 1 1 sin(1)(x 1)2 cos(1)(x 1)3 + O((x 1)4 ) 2 6 A notao O(f (x a)) representa uma funo que tende a 0 mais rapidamente do ca ca O(f (x a)) que f (x a) quando x a, ou seja, signica que lim = 0. Por exemplo, o xa f (x a) O(x10 ) O(x10 ) utilizado anteriormente signica que lim = 0. x0 x10 S2 := sin(1) + cos(1)(x 1) > P1 := convert(S1, polynom); # converte S1 para polin^mio o 1 1 5 1 7 1 P 1 := x x3 + x x + x9 6 120 5040 362880 > P2 := convert(S2, polynom); # converte S2 para polin^mio o 1 1 sin(1)(x 1)2 cos(1)(x 1)3 2 6 Depois da converso para polinmio, diversas operaes podem ser feitas como clculo a o co a de derivadas, integrais, construo de grcos, etc. Aqui, transformamos P 1 em uma ca a funo f e calculamos f (/6) que uma aproximao para sen (/6). ca e ca P 2 := sin(1) + cos(1)(x 1) > f := unapply(P1, x); 1 1 5 1 7 1 f := x x x3 + x x + x9 6 120 5040 362880 > evalf( f(Pi/6) ); .5000000003 O pacote powseries possui vrios comandos para manipulaao de sries de potncias. a c e e

144

CAP ITULO 5. CALCULO DIFERENCIAL E INTEGRAL

> with(powseries); [compose, evalpow, inverse, multconst, multiply, negative, powadd, powcos, powcreate, powdi, powexp, powint, powlog, powpoly, powsin, powsolve, powsqrt, quotient, reversion, subtract, template, tpsform] Normalmente, as sries obtidas com esses comandos no so mostradas automaticae a a mente. Para ver uma expresso truncada da srie, devemos usar um comando a e tpsform(f, varivel, ordem) onde f est relacionado com os coecientes da srie. a a e Nesse pacote, uma srie cujos coecientes do termo geral so denidos por igualdade(s) e a do tipo f (n) = expr denida com um comando powcreate(f(n) = expr). Depois disso, e o f pode ser passado como parmetros para comandos que executam operaes com as a co sries. e Exemplo 5.68 Aqui criamos uma srie S1 cujo termo geral an = 1/n!. Depois, usamos e e S1 para construir uma srie S2 cujos valores nos pontos do seu dom e nio correspondem aos inversos multiplicativo dos de S1 . > with(powseries): > powcreate(a(n) = 1/n!): > tpsform(a, x, 6); 1 1 1 5 1 + x + x2 + x3 + 1/24x4 + x + O(x6 ) 2 6 120 > b := inverse(a): > tpsform(b, x, 6); 1 1 1 1 5 1 x + x2 x3 + x4 x + O(x6 ) 2 6 24 120 Agora, vamos multiplicar as sries com coecientes denidos por a e b. Note que o e resultado a srie constante igual a 1. e e > c := multiply(a, b): > tpsform(c, x, 6); 1 + O(x6 ) Exemplo 5.69 Neste exemplo denimos duas sries cujos coecientes dos termos gerais e so an e bn , duas seqncias denidas recursivamente por an = an1 + an2 , a0 = a1 = 1 a ue 1 e bn = 1 + , b0 = 1. Depois, somamos as sries obtidas, integramos a primeira e e bn1 derivamos a segunda termo a termo. > > > > > > with(powseries): # Defini~o da srie 1 cujo termo geral a(n) ca e e powcreate(a(n) = a(n-2) + a(n-1), a(0)=1, a(1)=1): # Defini~o da srie 2 cujo termo geral b(n) ca e e

5.6. SOMATORIOS, PRODUTORIOS, SERIES DE POTENCIAS

145

> powcreate(b(n)=1 + 1/b(n-1), b(0)=1): > > tpsform(a, x, 7); # mostra termos da srie 1 e 1 + x + 2x2 + 3x3 + 5x4 + 8x5 + 13x6 + O(x7 ) > tpsform(b, x, 7); # mostra termos da srie 2 e 3 5 8 13 21 1 + 2x + x2 + x3 + x4 + x5 + x6 + O(x7 ) 2 3 5 8 13 > s := powadd(a, b): # soma das sries 1 e 2 e > tpsform(s, x, 7); 7 14 33 77 190 6 2 + 3x + x2 + x3 + x4 + x5 + x + O(x7 ) 2 3 5 8 13 > d := powdiff(b); # derivada da srie 2 e d := proc(powparm) . . . end proc > tpsform(d, x, 7); 32 3 65 4 126 5 34 6 x + x + x + x + O(x7 ) 5 8 13 3 > i := powint(a); # integral da srie 1 e 2 + 3x + 5x2 + i := proc(powparm) . . . end proc > tpsform(i, x, 7); 1 2 3 4 x + x2 + x3 + x4 + x5 + x6 + O(x7 ) 2 3 4 3 Exemplo 5.70 O pacote powseries possui comandos para a construo de sries de ca e potncias de vrias funes bsicas como logaritmo, raiz quadrada, seno, cosseno, etc. e a co a Aqui, Construmos as sries do seno e da exponencial (de base e) e efetuamos algumas e operaes aritmticas com essas sries. co e e > with(powseries): > SENO := powsin(x): # srie para sen(x) e > tpsform(SENO, x, 8); 1 5 1 7 1 x x + O(x8 ) x x3 + 6 120 5040 > EXPO := powexp(x): # srie para exp(x) e > tpsform(EXPO, x, 8); 1 1 1 5 1 6 1 7 1 x + x + x + O(x8 ) 1 + x + x2 + x3 + x4 + 2 6 24 120 720 5040 > COMP := compose(EXPO, SENO): # srie para a composta exp(sen(x)) e > tpsform(COMP, x, 8);

146

CAP ITULO 5. CALCULO DIFERENCIAL E INTEGRAL

1 1 1 1 6 1 1 + x + x2 x4 x5 x + x7 + O(x8 ) 2 8 15 240 90 > MULT := multiply(EXPO, SENO): # srie para sen(x) exp(x) e > tpsform(MULT, x, 8); 1 1 1 1 7 x + x2 + x3 x5 x6 x + O(x8 ) 3 30 90 630 > QUOC := quotient(SENO, EXPO): # srie para sen(x)/exp(x) e > tpsform(QUOC, x, 8); 1 1 1 1 7 x x2 + x3 x5 + x6 x + O(x8 ) 3 30 90 630

Cap tulo 6

Equaes Diferenciais coO Maple possui vrios algoritmos implementados em forma de comandos que servem a para resolver equaoes e sistemas de equaes diferenciais, sejam elas ordinrias ou parc co a ciais. Neste cap tulo, damos apenas uma pequena amostra da resoluo desse tipo de proca blema. Introduzimos brevemente alguns comandos dos pacotes DEtools (que tem mais de 100 comandos) e PDEtools. As soluoes de equaoes diferenciais (ou sistemas) podem ser obtidas usando mtodos c c e numricos, mas no abordaremos esses mtodos neste cap e a e tulo.

6.1

Equaes Diferenciais Ordinrias co a

O comando bsico para resoluao de Equaes Diferenciais Ordinrias (EDO) o a c co a e dsolve. Ele pode ser usado de vrias maneiras: a dsolve(EDO) Resolve a EDO fornecida como parmetro. a dsolve(EDO, y(x), opes) Calcula y(x) na EDO fornecida como primeiro parmetro. co a Opcionalmente pode denir o mtodo de resoluao que pode ser implicit, explicit, pae c rametric, useInt, quadrature, linear, homogeneous, separable, Bernoulli, Abel, entre outros. dsolve({EDO, CI}, y(x), opes) Calcula y(x) na EDO, usando as condioes iniciais co c CI e opoes fornecidas. c dsolve({sistema, condioes}, {funes}, opes) Determina as funes que so c co co co a solues do sistema de EDO usando condioes iniciais e opes fornecidas. co c co Uma EDO pode ser denida com o operador diferencial D ou com o comando diff. Por exemplo, a equao ca y 3y + y 5y = cos(x) pode ser fornecida na forma diff(y(x), x$3) - 3*diff(y(x), x$2) + diff(y(x), x) - 5*y(x) = cos(x) ou na forma147

148

CAP ITULO 6. EQUACOES DIFERENCIAIS

(D@@3)(y)(x) - 3*(D@@2)(y)(x) + D(y)(x) - 5*y(x) = cos(x) As constantes reais arbitrrias que aparecem aps a resoluo das equaoes so denoa o ca c a tadas pelo Maple por C1, C2, C3, . . . Exemplo 6.1 Vamos resolver a equao diferencial de primeira ordem linear y + y = y 2 ca escrevendo-a inicialemente com o operador diferencial D. A funo y deve ser escrita ca acompanhada de uma varivel, como em y(x). a > eq1 := D(y)(x) + y(x) = y(x)^2; eq1 := D(y)(x) + y(x) = y(x)2 dsolve(eq1); # resolve a EDO definida em eq1 y(x) = 1 1 + ex C1 Escrevendo a mesma equao com o comando diff: ca > eq2 := diff(y(x), x) + y(x) = y(x)^2; eq2 := > dsolve(eq2); y(x) + y(x) = y(x)2 x

# resolve a EDO definida em eq2 y(x) =

1 1 + ex C1 Obtendo soluao escrita na forma de integral: c > dsolve(eq1, useInt); y(x) = ex 1 1 x dx + C1 e

Obtendo agora soluo na forma impl ca cita: > dsolve(eq1, implicit); 1 1 ex C1 = 0 y(x) Os comandos odeadvisor(equao) e intfactor(equao) do pacote DEtools clasca ca sica e calcula um fator integrante para a equaao diferencial fornecida como parmetro, c a respectivamente. Exemplo 6.2 Consideremos a equao diferencial linear homognea de quarta ordem ca e com coecientes constantes y + 8y + 24y + 32y + 16y = 0. Vamos resolv-la com o e dsolve e classic-la com o odeadvisor. a > eq3 := diff(y(x), x$4) + 8*diff(y(x), x$3) + 24*diff(y(x), x$2) + > 32*diff(y(x), x) + 16*y(x) = 0;

6.1. EQUACOES DIFERENCIAIS ORDINARIAS

149

eq3 :=

4 y(x) + 8 x4

3 y(x) + 24 x3

2 y(x) + 32 x2

y(x) + 16y(x) = 0 x

> dsolve(eq3); y(x) = C1e(2x) + C2e(2x) x + C3e(2x) x2 + C4e(2x) x3 > with(DEtools): odeadvisor(eq3); [[ high order, missing x]] A classicao mostrada indica que a equao dada de ordem superior (higher order) ca ca e com coecientes constantes (missing x). Exemplo 6.3 Vamos obter um fator integrante, resolver e classicar a equao ca 3yx2 y = 3 . x 2y 4 > with(DEtools): > eq4 := D(y)(x) = 3*y(x)*x^2/(x^3 + 2*y(x)^4); eq4 := D(y)(x) = 3 y(x)x2 x3 + 2y(x)4

> intfactor(eq4); # obtm fator integrante e x3 + 2y(x)4 y(x)2 > dsolve(eq4); ln(x) C1 4 ln 9 y(x) x3/4 + 4 3x3 2y(x)4 ln 9 x3 =0

Note que a soluo fornecida est na forma impl ca a cita. > odeadvisor(eq4); # classifica a equaao c~ [[ homogeneous, classG], rational] Para informaes sobre as classicaao das equaoes, digite co c c > ?odeadvisor,types O comando declare do pacote PDEtools simplica as notaoes de derivada que apac recem nas equaoes diferenciais, deixando a apresentao da equaao mais prxima do c ca c o formato usual. Exemplo 6.4 Neste exemplo, escrevemos algumas EDOs dadas no formato usual. > with(PDEtools): > declare(y(x), prime=x); y(x) will now be displayed as y derivatives with respect to: x of functions of one variable will now be displayed with

150

CAP ITULO 6. EQUACOES DIFERENCIAIS

> diff(y(x), x$4) - 10*diff(y(x), x$2) + 9 = 0; y 10y + 9 = 0

> diff(y(x), x$4) + 8*diff(y(x), x$3) + 24*diff(y(x), x$2) + > 32*diff(y(x), x) + 16*y(x) = 0; y + 8y + 24y + 32y + 16y = 0

> diff(y(x), x) = 2*x*y(x) - x; y = 2xy x Para testar se uma soluo encontrada est correta, podemos substitu diretamente ca a -la na equaao e observar a igualdade obtida. Outra maneira, mais fcil, usar um comando c a e odetest(soluo, equao). Se esse comando retornar uma resposta igual a zero, ento ca ca a a soluao encontrada realmente uma soluao da equaao dada. c e c c Exemplo 6.5 Vamos resolver a equao linear de primeira ordem y = 2xy x. ca eq5 := diff(y(x),x) = 2*x*y(x) - x; eq5 := > sol := dsolve(eq5); 1 2 + e(x ) C1 2 Agora vamos substituir a resposta obtida na equao dada e simplicar: ca sol := y(x) = > subs(sol, eq5); x > simplify(%); 2xe(x > odetest(sol, eq1);2)

y(x) = 2xy(x) x x

1 2 + e(x ) C1 2

1 2 = 2x( + e(x ) C1) x 22)

C1 = 2xe(x

C1

# retorna 0 se sol for realmente uma soluao c~ 0

6.2

Problemas de Valor Inicial

Valores iniciais das solues de EDO podem ser fornecidas juntamente com a prpria co o equao. A equaao e as condioes iniciais devem formar um conjunto a ser fornecido ca c c como primeiro parmetro do dsolve. a Exemplo 6.6 Determine a soluo de y + 4y + 13y = 2t + 3e2t cos(3t), y(0) = 0, ca y (0) = 1.

6.3. SISTEMAS DE EQUACOES DIFERENCIAIS

151

> pvi := {diff(y(t), t$2) + 4*diff(y(t), t) + 13*y(t) = 2*t + > 3*exp(-2*t)* cos(3*t), y(0) = 0, D(y)(0) = -1}; pvi := 2 y(t) + 4 t2 y(t) + 13y(t) = 2t + 3e(2t) cos(3t), t y(0) = 0, D(y)(0) = 1

> solucao := dsolve({pvi}); solucao := y(t) = 179 (2t) 121 (2t) e sin(3t) e cos(3t)+ 507 1014 1 (48e(2t) + 507 sin(3t)t + 156te(2t) + 169 cos(3t))e(2t) 1014

> combine(solucao); y(t) = 179 (2t) 8 (2t) 8 1 2 e sin(3t) + e cos(3t) + e(2t) sin(3t)t + t 507 169 169 2 13

Exemplo 6.7 Vamos resolver o problema de valor inicial y (4) 10y + 9 = 0, y(0) = y (0) = y (0) = y (0) = 0 e usar a resposta para denir uma funo F (x). ca eq := (D@@4)(y)(x)- 10*(D@@2)(y)(x) + 9 = 0; eq := (D(4) )(y)(x) 10(D(2) )(y)(x) + 9 = 0 cond := y(0) = 0, D(y)(0) = 0, (D@@2)(y)(0) = 0, (D@@3)(y)(0) = 0; cond := y(0) = 0, D(y)(0) = 0, (D(2) )(y)(0) = 0, (D(3) )(y)(0) = 0 > sol := dsolve({eq, cond}); 9 (10x) 9 (10x) 9 9 e e + x2 + 200 200 20 100 > F := unapply(rhs(sol), x); 9 (10x) 9 (10x) 9 9 F := x e e + x2 + 200 200 20 100 sol := y(x) =

6.3

Sistemas de Equaes Diferenciais co

Sistemas de equaes diferenciais podem ser resolvido de maneira semelhante ` reco a soluo de uma unica EDO, bastando para isso escrever todas as equaoes envolvidas em ca c um unico conjunto e fornec-lo como primeiro parmetro do dsolve. Se houver condies e a co iniciais, elas devem ser anexadas a esse conjunto tambm. e Exemplo 6.8 Consideremos o sistema f (x) = f (x) + g(x) g (x) = 3f (x) g(x) Vamos formar um conjunto com essas equaes e resolv-lo com o dsolve. co e

152

CAP ITULO 6. EQUACOES DIFERENCIAIS

> sis1 := D(f)(x) = f(x) + g(x), D(g)(x) = 3*f(x) - g(x); sis1 := D(f )(x) = f (x) + g(x), D(g)(x) = 3f (x) g(x) > dsolve({sis1}); {g(x) = 3 C1e(2x) + C2e(2x) , f (x) = C1e(2x) + C2e(2x) } Exemplo 6.9 Resolver o sistema y (t) + x (t) = cos(t) x (t) y(t) = sen (t) com as condies iniciais y(0) = 1, y (0) = 1, x(0) = 1, x (0) = 0. co > sis2 := diff(y(t), t$2) + diff(x(t), t) = cos(t), diff(x(t), t$2) - y(t) = sin(t); 2 y(t) + t2 x(t) t = cos(t), 2 x(t) y(t) = sin(t) t2

sis2 := > ini2 :=

y(0) = -1, D(y)(0) = -1, x(0) = 1, D(x)(0) = 0; ini2 := x(0) = 1, y(0) = 1, D(y)(0) = 1, D(x)(0) = 0

> dsolve({sis2, ini2}); {y(t) = cos(t) sin(t), x(t) = cos(t)}

6.4

Soluo em Sries de Potncias ca e e

H duas maneiras de se obter a soluo de uma equaao diferencial em srie de a ca c e potncias: usando o comando dsolve ou o comando powsolve do pacote powseries. e Para obter sries de potncias com o dsolve, basta acrescentar uma opao series ou e e c type=series como terceiro parmetro: a dsolve({equao, condies}, funo, series) ca co ca Um comando do tipo Order = n obtm desenvolvimento em srie (feito posteriore e mente) at ordem n. e Para obtermos sries de potncias de (x a) , devemos fornecer as condioes inicie e c ais denidas em a (y(a), y (a), y (a), . . . ). Tambm podem ser resolvidos dessa forma e sistemas de equaes diferenciais. co A desvantagem no uso do comando dsolve que ele no fornece o termo geral da srie e a e apresentada como soluao da EDO dada. c Exemplo 6.10 > EDO := (D@@3)(y)(x) - x*D(y)(x) = x^2 + exp(x); EDO := (D(3) )(y)(x) xD(y)(x) = x2 + ex > cond1 := y(1)=0, D(y)(1)=0, (D@@2)(y)(1) = 0;

6.4. SOLUCAO EM SERIES DE POTENCIAS

153

cond1 := y(1) = 0, D(y)(1) = 0, (D(2) )(y)(1) = 0 > dsolve({EDO, cond1}, y(x), series); 1 1 1 1 1 1 1 1 y(x) = ( + e)(x1)3 +( + e)(x1)4 +( + e)(x1)5 +( + e)(x1)6 + 6 6 12 24 40 60 144 144 11 1 1 1 + e (x 1)7 + ( + e)(x 1)8 + O((x 1)9 ) 5040 720 2016 2520 Exemplo 6.11 Obter a soluo em srie de potncias de y xy = x2 ex com as ca e e condies iniciais y(0) = 0, y (0) = 1, y (0) = 3. co > EDO := (D@@3)(y)(x) - x*D(y)(x) = x^2 + exp(x): > Order:=9: > cond2 := y(0)=0, D(y)(0)=1, (D@@2)(y)(0) = -3; cond2 := y(0) = 0, D(y)(0) = 1, (D(2) )(y)(0) = 3 > dsolve({EDO, cond2}, y(x), series); 3 1 1 1 1 6 1 7 1 8 y(x) = x x2 + x3 + x4 x5 + x + x x + O(x9 ) 2 6 12 40 180 560 2880 O pacote powseries possui o comando powsolve para resolver EDO em sries de e potncias: e powsolve(equao) ou powsolve({equao, condies}) ca ca co As sries obtidas podem ser mostradas com o comando tpsform(srie, varivel, ordem) e e a ou fornecidas como parmetros para outros comandos desse pacote (veja seo 5.6.3). a ca Devem ser observados os seguintes itens: A equaao fornecida ao powsolve deve ser denida com o comando diff. c Se houver condies iniciais, elas devem ser calculadas em 0 (y(0), y (0), y (0), etc.) co e denidas com o operador diferencial D. O termo geral pode ser mostrado se for usado um comando da forma a(_k) = X(_k) onde X deve ser o nome da srie (primeiro parmetro do tpsform). e a

Exemplo 6.12 Vamos obter a soluo da Equao de Legendre ca ca (1 x2 )y 2xy + n(n + 1)y = 0 em srie de potncias. e e > restart; > legendre := (1-x^2)*diff(y(x),x$2) - 2*x*diff(y(x),x) + n*(n+1)*y(x)=0; legendre := (1 x2 ) 2 y(x) 2x x2 y(x) + n(n + 1)y(x) = 0 x

154

CAP ITULO 6. EQUACOES DIFERENCIAIS

> with(powseries): > solucao := powsolve(legendre): > tpsform(solucao, x, 6); 1 1 1 C0 + C1x C0(n2 + n)x2 C1(n2 + n 2)x3 + C0(n2 + n)(n2 + n 6)x4 + 2 6 24 1 C1(n2 + n 2)(n2 + n 12)x5 + O(x6 ) 120 Para obter o termo geral da srie obtida: e > a(_k) = solucao(_k); a( k) = a( k 2)(n2 + n + 3 k 2 k 2 ) k( k 1)

Exemplo 6.13 Resolver o problema de valor inicial y xy = 0, y(0) = 1, y (0) = 1 obtendo o desenvolvimento da soluo em srie de potncias e o seu termo geral. ca e e > EDO := diff(y(x),x$2) - x*y(x) = 0; EDO := > CI := y(0)=1, D(y)(0)=1; CI := y(0) = 1, D(y)(0) = 1 > with(powseries): > sol := powsolve({EDO, CI}): > tpsform(sol,x,10); 1 1 1 6 1 7 1 1 + x + x3 + x4 + x + x + x9 + O(x10 ) 6 12 180 504 12960 > a(_k) = sol(_k); a( k) = a( k 3) k( k 1) 2 y(x) xy(x) = 0 x2

6.5

Equaoes Diferenciais Parciais c

Diversos tipos de Equaoes Diferenciais Parciais podem ser resolvidas com o comando c pdsolve(equaao, op~es). Na deniao da equao, podemos usar o diff o operador c~ co c ca diferencial D. Nas solues apresentadas pelo pdsolve, as constantes arbitrrias so denotadas por co a a C1, C2, . . . , c1 , c2 , . . . e as funes arbitrrias por F 1, F 2, . . . co a Exemplo 6.14 Iniciamos resolvendo a equao x ca f (x, y) y f (x, y) = 0. y x

> edp1 := x*D[2](f)(x,y)-y*D[1](f)(x,y) = 0;

6.5. EQUACOES DIFERENCIAIS PARCIAIS

155

edp1 := xD[2](f )(x, y) yD[1](f )(x, y) = 0 > pdsolve(edp2); f (x, y) = F 1(x2 + y 2 ) Exemplo 6.15 Usamos o declare do pacote PDEtools para indicar em forma de ndices as derivadas que aparecem na equao da onda utt = c2 uxx . ca with(PDEtools): declare(u(x, t)); u(x, t) will now be displayed as u > edp2 := diff(u(x, t), t$2) = c^2*diff(u(x, t), x$2); edp2 := ut,t = c2 ux,x > pdsolve(edp2); u = F 1(ct + x) + F 2(ct x) > undeclare(u); u(x, t) will now be displayed *as is* Exemplo 6.16 A equao do calor pode ser resolvida acrescentando-se uma opo ca ca HINT=* ao comando pdsolve para ele usar separao de variveis e uma opo build ca a ca para ele resolver qualquer EDO que aparea na resoluo. c ca > edp3 := diff(u(x, t), t) - k*diff(u(x, t), x$2) = 0; 2 edp3 := u(x, t) k u(x, t) = 0 t x2 > sol := pdsolve(edp3, u(x, t), HINT=*, build); sol := u(x, t) = C3e(k c1 t) C1e( Fazendo as constantes iguais a 1, obtemos: c1 x)

+

C3e(k c1 t) C2 e( c1 x

> S := eval(rhs(sol), {_C1 = 1, _C2 = 1, _C3 = 1, k = 1, _c[1] = 1}); et S := et ex + x e Exemplo 6.17 Para encerrar, resolvemos a equao de Laplace no caso bidimensional. ca edp4 := diff(f(x, y), x$2) + diff(f(x, y), y$2) = 0; 2 2 edp4 := f (x, y) + f (x, y) = 0 x2 y 2 > pdsolve(edp4); f (x, y) = F 1(y + Ix) + F 2(y Ix) > pdsolve(edp4, f(x, y), HINT=*, build); f (x, y) = e( c1 x)

C1 C3 sin(

c1 y) + e

( c1 x)

C1 C4 cos(

C2 C3 sin( c1 y) c1 y) + e( c1 x) C2 C4 cos( c1 )y) + e( c1 x)

156

CAP ITULO 6. EQUACOES DIFERENCIAIS

6.6

Grcos de solues de equaoes diferenciais a co c

O pacote DEtools possui um comando DEplot para construao de grcos de solues c a co de EDO, at mesmo em casos em que o dsolve no consiga resolver a equaao de forma e a c exata: DEplot(EDO, y(x), x=a..b, [[condies]], y=c..d, opes) co co Exemplo 6.18 Construir o grco da soluo de y + 4y = sen 2 (2x) com as condies a ca co iniciais y() = 0 e y () = 0. > > > > > with(DEtools): edo := diff(y(x), x$2) + 4*y(x) = (sin(2*x))^2: ini := y(Pi) = 0, D(y)(Pi) = 0: opcoes := linecolor=red, stepsize=0.02: DEplot(edo, y(x), x=-2..2, [[ini]], y=0..0.4, opcoes);

Veja o grco na Figura 6.1. aFigura 6.1:

0.4

0.3

y(x)

0.2

0.1

2

1

1 x

2

Outra opao usar o comando odeplot(soluo, opes) do pacote plots. Ele c e ca co constri o grco da soluao retornada por um dsolve, conforme exemplicamos a seguir. o a c Nesses casos, recomendvel que o dsolve tenha um parmetro opcional numeric. e a a > > > > > with(plots): edo := diff(y(x), x$2) + 4*y(x) = (sin(2*x))^2: ini := y(Pi) = 0, D(y)(Pi) = 0: p := dsolve({edo, ini}, y(x), numeric): odeplot(p, x=-2..2, y=0..0.4);

O grco assim obtido semelhante ao da Figura 6.1. a e

Cap tulo 7

Problemas de Clculo e de a Geometria Anal ticaInmeros problemas de Clculo Diferencial e Integral e de Geometria Anal u a tica podem ser resolvidos com o aux do Maple. Praticamente todo tipo de problema pode ter uma lio participao maior ou menor desse tipo de programa na sua resoluao. O que mostramos ca c neste cap tulo apenas uma pequena amostra dessa variedade de problemas. e O pacote student possui comandos que podem ser uteis na resoluo de problemas ca passo a passo. Neste cap tulo, vrios exemplos utilizam os comandos desse pacote: a > with(student); [D, Di, Doubleint, Int, Limit, Lineint, Product, Sum, Tripleint, changevar, completesquare, distance, equate, integrand, intercept, intparts, leftbox, leftsum, makeproc, middlebox, middlesum, midpoint, powsubs, rightbox, rightsum, showtangent, simpson, slope, summand, trapezoid]

7.1

Operaoes elementares com grcos de funes c a co

Conhecido o grco de uma funo f (x), podemos construir a partir dele vrios outros a ca a grcos atravs de operaoes de translaao, reexo, ampliaao e reduao. O Maple a e c c a c c util para observar esse tipo de operaao ao construir o grco de f (x) e o grco e c a a transformado em um mesmo sistema de eixos, conforme exemplicamos a seguir com uma funao polinomial f (x). c > f := x -> x^3 - x; f := x x3 x Exemplo 7.1 O grco de f (x) o grco de f (x) virado de cabea para baixo, ou a e a c seja, reetido com relao ao eixo Ox (Figura 7.1). ca > plot([f(x), -f(x)], x=-2..2, y=-2..2, thickness=[0, 3], > color=[red, blue]);157

158

CAP ITULO 7. PROBLEMAS DE CALCULO E DE GEOMETRIA ANAL ITICA

Figura 7.1:

2

y

1

2

1

0

1 x

2

1

2

Exemplo 7.2 Ao somar uma constante positiva k ` varivel x, o grco desloca-se k a a a unidades para a esquerda (Figura 7.2). > plot([f(x), f(x + 1)], x=-3..2, y=-2..2, thickness=[0, 3], > color=[red, blue]);Figura 7.2:

2

1

y

3

2 x

1

0

1

2

1

2

Exemplo 7.3 Uma operao do tipo kf (x/k) causa uma ampliao ou reduo no grco ca ca ca a de f (x) (Figura 7.3). > plot([f(x), 2*f(x/2)], x=-3..3, y=-2..2, thickness=[0, 3],

7.2. TEOREMA DO VALOR MEDIO

159

>Figura 7.3:

color=[red, blue]);

2

y

1

3

2

1

0

1 x

2

3

1

2

Outras grcos que podem ser constru a dos so os de |f (x)|, f (|x|), f (x) + k, f (x) k, a f (x k), f (x), kf (x) e f (kx) onde k > 0.

7.2

Teorema do Valor Mdio e

Um dos mais importantes teoremas do Clculo o Teorema do Valor Mdio que arma a e e que se uma funo cont ca e nua em um intervalo fechado [a, b] e derivvel no seu interior, a ento existe um ponto c do seu interior tal que a f (c) = f (b) f (a) . ba

Geometricamente, isso signica que poss construir uma reta tangente ao grco de e vel a f em (c, f (c)) que seja paralela ` reta que passa pelos pontos (a, f (a)) e (b, f (b)). a Exemplo 7.4 Consideremos a funo f (x) = x + sen x no intervalo [1, 3]. Vamos deca terminar inicialmente um c que satisfaa o do Teorema do Valor Mdio. O clculo desse c e a c em geral s pode ser feito numericamente de forma aproximada. o > > > > a := 1.0: b := 3.0: f := x -> x + sin(x): m := (f(b) - f(a))/(b - a): eq := D(f)(c) = m; eq := 1 + cos(c) = .6498245115 > c := fsolve(eq);

160

CAP ITULO 7. PROBLEMAS DE CALCULO E DE GEOMETRIA ANAL ITICA

c := 1.928554775 Agora, construmos o grco de f , da reta y = f (a) + m(x a) que passa por (a, f (a)) a e por (b, f (b)) e da sua paralela y = f (c) + m(x c) que passa por (c, f (c)). > > > > > > > > fa := f(a): fb := f(b): fc := f(c): opcao := x=a..b, xtickmarks=[a, b, c], ytickmarks=[fa,fb,fc], labels=[ , ]: graf1 := plot(f(x), opcao, thickness=2, color=blue, title = "Exemplificando o Teorema do Valor Mdio"): e graf2 := plot(f(a) + (x - a)*m, opcao): graf3 := plot(f(c) + (x - c)*m, opcao): plots[display](graf1, graf2, graf3);

Figura 7.4:

Exemplificando o Teorema do Valor Medio

3.14112

2.86524

1.84147 1 1.92855 3

7.3

Problemas de mximos e m a nimos

Os problemas que consistem no clculo de mximos ou m a a nimos de funes so muitos co a freqentes e podem ser aplicados a muitas situaoes de natureza prtica. Nesta seao u c a c resolvemos passo a passo alguns problemas desse tipo (Exemplo 7.7) e de forma direta (Exemplo 7.5), usando comandos do pacote student. Os comandos maximize(f(x), x=a..b) e minimize(f(x), x=a..b) do pacote student calculam o valor mximo e o valor m a nimo de f (x) no intervalo [a, b], respectivamente. Se for acrescentado um terceiro parmetro igual a location, ento, alm do valor mximo a a e a ou m nimo, mostrado tambm os pontos do dom e e nio onde eles ocorrem. Exemplo 7.5 Calcular os mximos e m a nimos locais da funo y = x3 24x + 40 no ca intervalo [3, 3].

7.3. PROBLEMAS DE MAXIMOS E M INIMOS

161

> with(student): > y := x^3 - 24*x + 40; y := x3 24x + 40 > maximize(y, x=-3..3, location); 40 + 32 2, { {x = 2 2}, 40 + 32 2 } > minimize(y, x=-3..3, location); 40 32 2, { {x = 2 2}, 40 32 2 } Exemplo 7.6 Calcular os mximos locais da funo seno no intervalo [10, 10] com a ca suas respectivas localizaes: co > with(student): maximize(sin(x), x=-10..10, location); 5 1 3 1, { {x = }, 1 , {x = }, 1 , {x = }, 1 } 2 2 2 Agora calculando os mnimos locais da funo cos(x) + cacos(2x) 2

no intervalo [6, 6]:

> minimize( cos(x) + cos(2*x)/2, x=-6..6, location); 3 4 3 2 3 4 3 2 3 , { {x = }, , {x = }, , {x = }, , {x = }, } 4 3 4 3 4 3 4 3 4 Observe agora que se no for fornecido o parmetro opcional location ao comando a a minimize, ento mostrado apenas o valor m a e nimo, sem a localizao do mesmo no ca domnio da funo. ca > minimize(cos(x) + cos(2*x)/2, x=-6..6); Exemplo 7.7 Seja f (x) = locais de f . 3 4

2x . Vamos determinar passo a passo mximos ou m a nimos 1 + x2

> f := x -> 2*x/(1 + x^2); x 1 + x2 Inicialmente determinamos os pontos crticos de f . Para isso, resolvemos a equao ca f (x) = 0. Denominamos a e b as razes encontradas e escolhemos a < b. f := x 2 > s := solve(D(f)(x) = 0); # poderia ser simplesmente solve(D(f)(x)) s := 1, 1 > a := s[1]; b := s[2];

162

CAP ITULO 7. PROBLEMAS DE CALCULO E DE GEOMETRIA ANAL ITICA

a := 1 b := 1 Agora, calculamos f (a), f (a), f (b) e f (b). > f(a) = (D@@2)(f)(a), f(a) = f(a); f (a) = 1, f (a) = 1 > f(b) = (D@@2)(f)(b), f(b) = f(b); f (b) = 1, f (b) = 1 Como f (a) > 0 chegamos ` concluso de que a = 1 um ponto de m a a e nimo local. Como f (b) < 0, temos que b = 1 um mximo local. e a Para encerrar este exemplo, construmos grco de f (Figura 7.5) para visualizar os a extremos locais da funo. ca > plot(f(x), x = -4..4);Figura 7.5:

1

0.5

4

3

2

1

0

1

2 x

3

4

0.5

1

7.4

Somas de Riemann

Consideremos uma funao f : [a, b] R e uma subdiviso do intervalo [a, b] em c a n partes [xi1 , xi ], i = 1, 2, , n tais que a = x0 < x1 < x2 < < xn = b. Sejam xi = xi xi1 o comprimento e ci um ponto qualquer do i-simo subintervalo. A en

soma f (c1 )x1 + f (c2 )x2 + f (cn )xn =i=1

f (ci )xi chamada soma de Riemann. e

Quando f positiva em [a, b], n e os comprimentos xi 0, para todo i, ento a e a

7.4. SOMAS DE RIEMANN

163

soma de Riemann tende ` rea da regio delimitada pelo grco de y = f (x) e pelo eixo aa a a dos x Essa rea numericamente igual ` integral de f (x) no intervalo [a, b]. a e a O pacote student possui 6 funoes relacionadas com as somas de Riemann de uma c funo f (x) em o intervalo [a, b]: ca leftsum(f(x), x=a..b, n) Forma inercial da soma de Riemann com n subintervalos de comprimentos iguais e escolhe cada ci como sendo a extremidade esquerda de cada subintervalo. leftbox(f(x), x=a..b, n) Constri um grco relacionado com o leftsum. o a middlesum(f(x), x=a..b, n) Forma inercial da soma de Riemann com n subintervalos de comprimentos iguais e escolhe cada ci como sendo o ponto mdio de cada e subintervalo. middlebox(f(x), x=a..b, n) Constri um grco relacionado com o middlesum. o a rightsum(f(x), x=a..b, n) Forma inercial da soma de Riemann com n subintervalos de comprimentos iguais e escolhe cada ci como sendo a extremidade direita de cada subintervalo. rightbox(f(x), x=a..b, n) Constri um grco relacionado com o rightsum. o a Exemplo 7.8 Seja f : [1, 3] R denida por f (x) = 1/x. Inicialmente, constru mos o grco e calculamos o valor da soma de Riemann de f com 10 subintervalos, escolhendo a o ponto mdio em cada subintervalo. Observe que o resultado obtido prximo do valor e e o da rea cujo valor exato ln(3). a e > with(student): > middlebox(1/x, x=1..3, 10);Figura 7.6:

1

0.8

0.6

0.4

0.2

0

1

1.2

1.4

1.6

1.8

2 x

2.2

2.4

2.6

2.8

3

164

CAP ITULO 7. PROBLEMAS DE CALCULO E DE GEOMETRIA ANAL ITICA

> s := middlesum(1/x, x=1..3, 10); 9

s := > value(s);

1 1 5 i=0 11 1 + i 10 5 159708887504 145568097675

> evalf(s); 1.097142094 > ln(3) = ln(3.0); ln(3) = 1.098612289 Se aumentarmos a quantidade de subintervalos para 100, a soma obtida ca ainda mais prxima de ln(3). o > s2 := middlesum(1/x, x=1..3, 100): > evalf(s2); 1.098597475 > middlebox(1/x, x=1..3, 100);Figura 7.7:

1

0.8

0.6

0.4

0.2

0

1

1.2

1.4

1.6

1.8

2 x

2.2

2.4

2.6

2.8

3

Quando n o limite da soma de Riemann com n subintervalos igual a ln(3), ou e seja, igual ` integral de 1/x no intervalo [1, 3] : e a

7.4. SOMAS DE RIEMANN

165

> Limit(middlesum(1/x, x=1..3, n), n=infinity);n1

1 1+ n2(i+1/2) n

n

lim 2 i=0

> S := value(%); S := ln(3) Exemplo 7.9 Ainda com relao ` funo f (x) = 1/x no intervalo [1, 3], denimos ca a ca e constru mos o grco de uma soma de Riemann dessa funo com 10 subintervalos, a ca escolhendo a extremidade direita de cada subintervalo. O grco o da Figura 7.8. a e > rightbox(1/x, x=1..3, 10);

Figura 7.8:

1

0.8

0.6

0.4

0.2

0

1

1.2

1.4

1.6

1.8

2 x

2.2

2.4

2.6

2.8

3

> rightsum(1/x, x=1..3, 10); 1 5 i=1 > evalf(%); 1.03489566010

1 1+ i 5 1

166

CAP ITULO 7. PROBLEMAS DE CALCULO E DE GEOMETRIA ANAL ITICA

7.5

Regras de Integrao ca

As regras de integraao costumam fazer parte dos cursos introdutrios de Clculo. E c o a comum encontrarmos problemas trabalhosos, com muitos clculos, envolvendo tais regras. a Nesta seo resolvemos passo a passo algumas integrais usando regras bsicas como inca a tegrao por substituio, integraao por partes e integrao de funoes racionais atravs ca ca c ca c e da separaao em fraoes parciais. c c 7.5.1 Integrao por substituio ca ca

O pacote student traz o comando changevar(f(x) = u, I, u) que faz a mudana de c recomendvel que a integral esteja na sua forma varivel x para u em uma integral I. E a a inercial, para no ser calculada de imediato. a Exemplo 7.10 Seja G = (3x2 2)ex 2x+1 dx. Vamos calcul-la usando a mudana de a c varivel u = x3 2x + 1. Neste caso, o clculo du = f (x)dx feito automaticamente. a a e > with(student): > G := Int((3*x^2 - 2)*exp(x^3 - 2*x + 1), x); G := (3x2 2)e(x3 2x+1) 3

dx

> G1 := changevar(x^3 - 2*x + 1 = u, G, u); G1 := > G2 := value(G1) + C; G2 := eu + C A integral est calculada na varivel u e agora basta usar o comando subs para subsa a tituir u por x. > G = subs(u = x^3 - 2*x + 1, G2); (3x2 2)e(x3 2x+1)

eu du

dx = e(x

3 2x+1)

+C

Fica calculada assim, passo a passo, a integral G dada. E claro que o C que foi acrescentado no nal dos clculos representa uma constante real qualquer. a Exemplo 7.11 Neste exemplo, calculamos x(x + 1)2002 dx. Essa integral interessante e porque o Maple no consegue calcul-la sozinho, sem ajuda do usurio. Ele tenta a a a desenvolver o binmio e, com isso, termina encontrando algum problema de falta de o memria. Mas, se algum recomend-lo fazer a substituio x + 1 = u, ele conclui o o e a ca clculo imediatamente. a > H := Int( x*(x + 1)^2002, x); H := x(x + 1)2002 dx

7.5. REGRAS DE INTEGRACAO

167

> H1 := changevar(x + 1 = u, H, u); H1 := > H2 := value(H1) + C; H2 := > H = subs(u = x + 1, H2); x(x + 1)2002 dx = onde C uma constante qualquer. e Exemplo 7.12 O sucesso da integrao por substituio depende da escolha correta da ca ca mudana de varivel. Uma boa mudana de varivel deve simplicar a integral. Neste c a c a cos(x) exemplo calculamos a integral dx. Inicialmente, fazemos uma mudana c 1 + sen (x) inadequada cos(x) = u para ver o que acontece. > J := Int(cos(x)/sqrt(1 + sin(x)), x); J := > changevar(cos(x) = u, J, u); 1+ du 1 u2 1 u2 u cos(x) 1 + sin(x) dx 1 1 (x + 1)2004 (x + 1)2003 + C 2004 2003 1 2004 1 2003 u u +C 2004 2003 (1 + u)u2002 du

Observando o resultado mostrado vemos que a integral obtida ca mais complicada do que a integral dada. Por isso, desistimos dessa mudana de varivel e tentamos usar c a outra: sen(x) = u. > changevar(sin(x) = u, J, u); 1 du 1+u

Agora, sim, a integral cou simplicada ao ponto de poder ser calculada diretamente (com um comando value). > value(%); 2 1+u Usamos o comando subs para voltar ` varivel x inicial: a a > J = subs(u = sin(x), %);

168

CAP ITULO 7. PROBLEMAS DE CALCULO E DE GEOMETRIA ANAL ITICA

cos(x) 1 + sin(x)

dx = 2

1 + sin(x)

Agora, derivando ambos os membros da igualdade anterior para conferir se os clculos a foram feitos corretamente. > diff(%, x); cos(x) 1 + sin(x) = cos(x) 1 + sin(x) x2

Exemplo 7.13 Vamos calcular a integral da funo racional ca

x . Como o po+ 7x + 13 linmio do 2 grau que aparece no denominador no tem ra o a zes reais, iniciamos fazendo um completamento de quadrado do mesmo. Fazemos isso apelando para o comando completesquare do pacote student.

> with(student): > K := Int(x/(x^2 + 7*x + 13), x); x dx + 7x + 13 Substitumos o denominador pelo completamento de quadrado dele mesmo: K := x2 > subs(x^2 + 7*x + 13 = completesquare(x^2 + 7*x + 13), K); x (x +7 2 ) 2

+

3 4

dx

Observando o quadrado completado no denominador camos sabendo qual a substi3 7 tuio de varivel a ser utilizada: x + = ca a t 2 4 > changevar(x + 7/2 = sqrt(3/4)*t, %, t); 7 1 ( 2 + 1 3t) 3 2 dt 3 2 2 t +3 4 4 Simplicamos e expandimos o ultimo resultado mostrado, at obtermos integrais que e sejam suciente simples para poderem ser calculadas diretamente. > simplify(%); 1 3 3 > expand(%); > value(%); 7 3 3 1 dt + t2 + 1 t dt t2 + 1 7 + 3t dt t2 + 1

7.5. REGRAS DE INTEGRACAO

169

7 1 3 arctan(t) + ln(t2 + 1) 3 2 4 3 x+ 7 2 para voltarmos ` varivel original. a a

Finalmente, substitumos t =

> subs(t = sqrt(4/3)*(x + 7/2), %); 7 2 7 1 4 7 3 arctan( 3(x + )) + ln( (x + )2 + 1) 3 3 2 2 3 2 7 1 1 4 28 52 3 arctan( 3(2x + 7) + ln( x2 + x + ) 3 3 2 3 3 3

> K = normal(%); K = 7.5.2

Integrao por partes ca

O pacote student possui o comando intparts(I, u)) que calcula a integral I por partes, considerando o segundo parmetro como sendo a funao u da frmula da intea c o grao por partes udv = uv vdu. ca O critrio da escolha da funao u deve ser o de que a integral obtida aps a aplicaao e c o c da frmula seja mais simples de calcular do que a integral original. Uma m escolha dessa o a funo leva a resultados desastrosos. ca Exemplo 7.14 Neste exemplo, o Maple mostra uma variao da frmula da integrao ca o ca por partes. > with(student): > Int(U(x)*Diff(V(x), x), x) = intparts(Int(U(x)*Diff(V(x), x), x), U(x)); U (x) V (x)dx = U (x)V (x) x U (x) V (x)dx x

Exemplo 7.15 Seja F = x3 ln xdx. Se quisermos usar integrao por partes, temos ca 3 pelo menos duas opes para a escolha da funo u: u = x ou u = ln x. Testamos co ca inicialmente u = ln x. > F := Int(x^3*ln(x), x); F := > intparts(F, ln(x)); 1 ln(x)x4 4 1 3 x dx 4 x3 ln(x)dx

A nova integral obtida mais simples do que a integral dada originalmente. Logo, u = ln x e foi uma boa escolha. Calculamos agora a integral diretamente: > value(%);

170

CAP ITULO 7. PROBLEMAS DE CALCULO E DE GEOMETRIA ANAL ITICA

1 1 ln(x)x4 x4 4 16 Veja agora o que aconteceria se no clculo de F tivssemos escolhido u = x3 : a e > intparts(F, x^3); x3 (x ln(x) x) 3x2 (x ln(x) x)dx

Observe que a integral obtida mais complicada do que a original. e Exemplo 7.16 Agora vamos calcular x2 cos xdx. Podemos escolher u = x2 ou u = cos x. Inicialmente, vamos escolher u = cos x: > G := Int(x^2*cos(x), x); G := > intparts(G, cos(x)); 1 1 cos(x)x3 sin(x)x3 dx 3 3 Vemos que a integral complica. Logo, u = cos x uma m escolha. e a Agora, escolhamos u = x2 : > G0 := intparts(G, x^2); G0 := x2 sin(x) 2x sin(x)dx x2 cos(x)dx

A integral obtida mais simples do que a original, portanto foi feita uma boa escolha e da funo u. No entanto, ainda no uma integral to simples, deve ser usada integrao ca a e a ca por partes novamente para ela poder ser calculada. > G1 := op(1, G0); G2 := op(2, G0); G1 := x2 sin(x) G2 := > G2 := intparts(G2, 2*x); G2 := 2x cos(x) + 2 cos(x)dx 2x sin(x)dx

A integral assim obtida pode ser calculada diretamente: > G2 := value(G2); G2 := 2x cos(x) 2 sin(x) > G = G1 + G2; x2 cos(x)dx = x2 sin(x) + 2x cos(x) 2 sin(x)

7.5. REGRAS DE INTEGRACAO

171

7.5.3

Fraoes parciais c

Com a opo parfrac, o comando convert(R(x), parfrac, x) pode ser usado para ca escrever a funao racional R(x) como soma de fraoes parciais na varivel x, fornecida c c a como terceiro parmetro. a Exemplo 7.17 Vamos escrever as funes racionais co somas de fraes parciais. co > F1 := (x+3)/(x^3 + 8*x^2 + 7*x); F 1 := > convert(F1, parfrac, x); 31 2 1 1 1 7 x 21 x + 7 3 x + 1 > 1/(x^2 - 5*x + 6) = convert( 1/(x^2 - 5*x + 6), parfrac, x); x2 1 1 1 = + 5x + 6 x2 x3 x3 x+3 + 8x2 + 7x x3 x+3 1 e 2 como 2 + 7x + 8x x 5x + 6

Exemplo 7.18 Neste exemplo calculamos a integral P = 10x5 + 43x4 9x3 + 138x2 331x 189 dx (x2 + 9)(x2 + 3x 10)2

usando o mtodo da separao em fraes parciais. e ca co > P := Int((10*x^5 + 43*x^4 - 9*x^3 + 138*x^2 - 331*x - 189)/ > ((x^2 + 9)*(x^2 + 3*x - 10)^2), x); P := > with(student): > R := integrand(P); R := 10x5 + 43x4 9x3 + 138x2 331x 189 (x2 + 9)(x2 + 3x 10)2 10x5 + 43x4 9x3 + 138x2 331x 189 dx (x2 + 9)(x2 + 3x 10)2

> R := convert(R, parfrac, x); 5 1 3 2x 1 + + + + 2 2 2 (x + 5) x + 5 (x 2) x2 x +9 Concluda a separao em fraes parciais, calculamos as integrais de cada frao ca co ca assim obtida. R := > intR := Int(R, x); R := 5 1 3 2x 1 + + + + 2 dx 2 2 (x + 5) x + 5 (x 2) x2 x +9

172

CAP ITULO 7. PROBLEMAS DE CALCULO E DE GEOMETRIA ANAL ITICA

> expand(intR); 1 dx + 5 (x + 5)2 > P = value(%); P = 1 1 + 5 ln(x + 5) + 3 ln(x 2) + ln(x2 + 9) x+5 x2 1 dx + x+5 1 dx + (x 2)2 1 dx + x2 3 dx + 2 x2 x dx x2 + 9

7.6

Clculo de reas a a

Uma das aplicaao da integral denida ao clculo da rea de regies do plano delic e a a o mitadas por grcos de funoes. A resoluo desse tipo de problema requer que sejam a c ca determinados os pontos de interseao dos grcos (um caso para usar um comando solve c a ou fsolve) e que sejam conhecidas as posies relativas das curvas envolvidas, ou seja, co qual a curva que aparece em cima e qual a que aparece na parte de baixo da regio. Isso a pode ser decidido facilmente observando-se os grcos constru a dos em um mesmo sistema de eixos coordenados (com um comando plot). Exemplo 7.19 Queremos calcular a rea delimitada pelos grcos de f (x) = x/2 + 1 e a a por g(x) = (2 + x)(1 x). > f := x/2 + 1; g := (2 + x)*(1 - x); f := 1/2x + 1 g := (2 + x)(1 x)Figura 7.9:

2

1.5

1

0.5

2

1.5

1 x

0.5

0.5

Determinamos os pontos de interseo dos grcos: ca a

7.7. GEOMETRIA ANAL ITICA PLANA

173

> S := solve(f = g); S := > b := S[1]; a := S[2]; b := 1/2 a := 2 Temos assim que os grcos interceptam-se nos pontos a = 2 e b = 1/2 do dom a nio comum a essas funes. co Construmos os grcos de f e de g no intervalo [a, b]. O resultado mostrado na a e Figura 7.9. > plot([f, g], x=a..b, thickness=2); Na Figura 7.9, vemos que o grco da funo g aparece acima do da f . Logo a integral a ca a ser calculada a da diferena gf no intervalo [a, b], que corresponde ao valor numrico e c e A da rea desejada. a > A = int(g - f, x = a..b); A= 125 48 1 , 2 2

7.7

Geometria Anal tica Plana

O Maple possui um interessante pacote chamado geometry com mais de 100 comandos relacionados com itens de geometria euclidiana plana. > with(geometry); [ Apollonius, Appolonius, AreCollinear, AreConcurrent, AreConcyclic, AreConjugate, AreHarmonic, AreOrthogonal, AreParallel, ArePerpendicular, AreSimilar, AreTangent, CircleOfSimilitude, CrossProduct, CrossRatio, DenedAs, Equation, EulerCircle, EulerLine, ExteriorAngle, ExternalBisector, FindAngle, GergonnePoint, GlideReection, HorizontalCoord, HorizontalName, InteriorAngle, IsEquilateral, IsOnCircle, IsOnLine, IsRightTriangle, MajorAxis, MakeSquare, MinorAxis, NagelPoint, OnSegment, ParallelLine, PedalTriangle, PerpenBisector, PerpendicularLine, Polar, Pole, RadicalAxis, RadicalCenter, RegularPolygon, RegularStarPolygon, SensedMagnitude, SimsonLine, SpiralRotation, StretchReection, StretchRotation, TangentLine, VerticalCoord, VerticalName, altitude, apothem, area, asymptotes, bisector, center, centroid, circle, circumcircle, conic, convexhull, coordinates, detail, diagonal, diameter, dilatation, directrix, distance, draw, dsegment, ellipse, excircle, expansion, foci, focus, form, homology, homothety, hyperbola, incircle, inradius, intersection, inversion, line, medial, median, method, midpoint, orthocenter, parabola, perimeter, point, powerpc, projection, radius, randpoint, reciprocation, reection, rotation, segment, sides, similitude, slope, square, stretch, tangentpc, translation, triangle, vertex, vertices ]

174

CAP ITULO 7. PROBLEMAS DE CALCULO E DE GEOMETRIA ANAL ITICA

7.7.1

Pontos e retas

No pacote geometry um ponto P = (a, b) denido na forma point(P, a, b). Depois e de usado um comando point, o ponto assim denido pode ser fornecido como parmetro a de outros comandos. Uma reta L pode ser denida de duas maneiras com um comando line: Com sua equao e a lista de variveis: line(L, equao, [variveis]) ca a ca a Com dois de seus pontos A, B e as variveis: line(L, [A, B], [variveis]) a a

A lista de variveis opcional. Se ela no for denida logo, o programa perguntar por a e a a ela quando for preciso. Entre as muitas funoes do pacote geometry que exigem os objetos point ou line c como parmetros, vamos citar algumas: a coordinates(P) Coordenadas do ponto P Equation(L) Equao da reta L ca slope(L) Declividade da reta L detail(P) Informaoes detalhadas sobre o ponto P c detail(L) Informaoes detalhadas sobre a reta L c distance(P, Q) Distncia entre os pontos P e Q a distance(P, L) Distncia entre o ponto P e a reta L a PerpendicularLine(L2, P, L1) Dene a reta L2 que passa pelo ponto P e perpendie cular ` reta L1 a ParallelLine(L3, Q, L4) Dene a reta L3 que passa pelo ponto Q e paralela ` reta e a L4 draw(O) Desenha o objeto O draw([O1, O2, ...]) Desenha uma lista de objetos O1, O2, ... Exemplo 7.20 Vamos denir um ponto P = (5, 6) e mostrar suas coordenadas com um comando coordinates. > with(geometry): > point(P, 5, -6); P > coordinates(P); [5, 6] Agora, denimos a reta r1 que passa pelos pontos A = (1, 1) e B = (3, 2), calculamos sua equao e declividade. ca

7.7. GEOMETRIA ANAL ITICA PLANA

175

> line(r1, [point(A, 1, 1), point(B, -3, 2)], [x, y]); r1 > Equation(r1); 5 x 4y = 0 > slope(r1); # declividade de r1 1 4 Denimos a reta r2 que passa por P e perpendicular a r1, calculamos sua declividade e e equao. ca > PerpendicularLine(r2, P, r1); r2 > slope(r2); # declividade de r2 4 > Equation(r2); 26 4x + y = 0 Denimos a reta r3 que passa por P e paralela a r1 e calculamos sua equao. e ca > ParallelLine(r3, P, r1); r3 > Equation(r3); 19 x 4y = 0 Calculamos a distncia do ponto P ` reta r1. a a > distance(P, r1); 24 17 17 7.7.2 Circunferncias e

Uma circunferncia C pode ser denida usando-se o comando circle de uma das e quatro maneiras mostradas a seguir: Com trs pontos P , Q e R e lista de variveis: circ(C, [P, Q, R], [variveis]) e a a Com dois de seus pontos P e Q diametralmente opostos e a lista de variveis: a circ(C, [P, Q], [variveis]) a Com sua equaao e a lista de variveis: circle(C, equao, [variveis]) c a ca a Com o centro O e o raio r: circ(C, [O, r], [variveis]) a

176

CAP ITULO 7. PROBLEMAS DE CALCULO E DE GEOMETRIA ANAL ITICA

A lista de variveis opcional. Tem tambm um quarto parmetro opcional com o a e e a nome do centro da circunferncia que deve ser escrito na seguinte forma: e centername = NomeCentro. Citemos algumas das funoes do pacote geometry relacionadas com o comando circle: c center(C) Centro da circunferncia C e radius(C) Raio da circunferncia C e area(C) Area do c rculo C Equation(C) Equaao da circunferncia C c e detail(C) Informaes detalhadas sobre a circunferncia C co e Exemplo 7.21 Neste exemplo denida uma circunferncia C1 de centro O1 = (1, 7) e e e raio 4 sem a lista de variveis. O Maple pergunta pela lista na hora de mostrar sua a equao. ca > with(geometry): > circle(C1, [point(O1, -1, 7), 4]); C1 > Equation(C1); enter name of the horizontal axis> m; enter name of the vertical axis> n; m2 + 34 + n2 + 2m 14n = 0 Equivalentemente, essa mesma circunferncia poderia ter sido denida na forma: e > point(O1, -1, 7); > circle(C1, [O1, 4], [m, n]): Depois de denida, podemos obter alguns dados sobre C1. > radius(C1); 4 > center(C1); O1 > coordinates(center(C1)); [1, 7] > area(C1); 16

7.7. GEOMETRIA ANAL ITICA PLANA

177

Se a lista de variveis [var1, var2] de um determinado objeto grco no tiver sido a a a denida, ela pode ser denida com os seguintes comandos: EnvHorizontalName = var1 e EnvHorizontalName = var2. Exemplo 7.22 Neste exemplo denimos uma circunferncia C2 de raio 2 e centro e O2 = (3, 4/5) e usamos algumas funes relacionadas. co > _EnvHorizontalName := x: _EnvVerticalName := y: > circle(C2, [point(O2, 3, -4/5), sqrt(2)]): > eq := Equation(C2); eq := x2 + > area(C2); 2 > detail(C2); name of the object: C2 form of the object: circle2d name of the center: O2 coordinates of the center: [3, -4/5] radius of the circle: 2(1/2) equation of the circle: x2+191/25+y2-6*x+8/5*y = 0 Agora usamos o comando completesquare do pacote student para completar o quadrado da varivel x na equao da circunferncia: a ca e > with(student): completesquare(eq, x); 34 8 + y2 + y = 0 25 5 E agora completamos o quadrado da varivel y: a (x 3)2 > completesquare(%, y); 4 (y + )2 2 + (x 3)2 = 0 5 Somamos 2 aos dois membros da equao (equivale a passar o 2 para o segundo memca bro) > 2 + lhs(%) = 2 + rhs(%); 4 (y + )2 + (x 3)2 = 2 5 Obtivemos assim a equao da circunferncia C2 escrita em um formato usual. ca e Exemplo 7.23 Seja C3 a circunferncia cuja equao x2 +y 2 3x+7y 1 = 0. Calcule e ca e as coordenadas do seu centro e o seu raio. 191 8 + y 2 6x + y = 0 25 5

178