Sunteți pe pagina 1din 122

MINISTRIO DA EDUCAO

UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN - UTFPR



CAMPUS PATO BRANCO

ENGENHARIAS
















AULAS DE MATEMTICA NO MAPLE









PROF. M. Sc. JOS DONIZETTI DE LIMA
UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN
PR
2
Objetivo:

- Evidenciar a necessidades e importncia de softwares computacionais desenvolvidos na era da
informativa como elemento facilitador do processo de ensino-aprendizagem da Matemtica.
- Utilizao propriamente dita do software.
- Enfatizar que o software deve desempenhar o papel de coadjuvante do processo de aprendizado da
Matemtica.

Justificativas:

- O Maple possibilita ampla variedade de aplicaes, relativa simplicidade de uso e atualizao
peridica em novas verses, o que permite projetar-lhe uma permanncia relativamente longa no
cenrio acadmico.
- O Maple um pacote muito potente em termos de computao algbrica e numrica de uma ampla
gama de assuntos relacionados do aprendizado e ao uso dos recursos matemticos, visualizados
como fins em si mesmos ou como ferramenta de trabalho em outras reas do conhecimento
(engenharia, fsica, etc...).

Notas:

- MAPLE a marca registrada do software produzido por Walterloo University, Canad.
- Ser considerado que o usurio j tenha algum conhecimento de utilizao de software em
ambiente Windows.
- O Maple exige uma maior intimidade do usurio com a Matemtica e com o Sistema Operacional
Windows.

Ementa:

O ensino de Clculo Diferencial e Integral (CDI) a ferramenta bsica e imprescindvel tanto na
formao dos futuros profissionais, como em diversas atividades da pesquisa universitria,
principalmente nos estudos de Fsica, Matemtica, Biologia, Engenharias, tecnologias, etc. Em seu
ensino temos vrios tpicos, que merecem destaque devido s suas aplicaes potenciais, tais como
clculo de rea, volume e comprimento de arco, e que podem ser mais bem assimilados se lanarmos
mo a sua visualizao de representaes especiais e das solues obtidas com auxlio de softwares
matemticos. Sendo assim, nesta apostila, pretendemos explorar, utilizando o software Maple, os
seguintes tpicos:

1) Noes bsicas de Matemtica:
- Expresses numricas.
- Expresses algbricas.
- Polinmios.
- Grficos bidimensionais e tridimensionais.
- Funes, funes compostas, etc.
- Resoluo de equaes e inequaes.

2) Assuntos propriamente de Clculo Diferencial e Integral (CDI)
- Limites e continuidades.
- Derivadas e integrais.
- Grficos bidimensionais em coordenadas especiais: polar, paramtrica, implcitas, etc.
- Grficos tridimensionais com coordenadas cilndricas, esfricas, paramtricas, implcitas, etc.
- Aplicaes: Clculo de comprimento de arco, rea de uma regio limitada, rea e volume de um
slido, slidos de revoluo, entre outras.

Observao: Nesta apostila, no ensinamos Matemtica, mas explicamos a utilizao do software
Maple. Apenas para uma breve reviso do conceito matemtico, apresentamos os conceitos
envolvidos e na medida do possvel utilizamos o software para verificar algumas propriedades
importantes do tpico que est se analisando no momento.
3
3) Usando o Maple como uma Linguagem de Programao
- Introduo ao Maple
- Noes de programao
- A declarao condicional
- Estruturas de repetio
- Tipos pr-definidos
- Procedimentos
- Variveis locais e globais
- Procedimentos recursivos
- Exemplos

1. O QUE COMPUTAO ALGBRICA? Adaptado de LENIMAR, 2002

A computao, em suas vrias modalidades e conseqncias, tem produzido significativas
transformaes culturais, econmicas e sociais de modo que impossvel imaginar as sociedades
modernas sem uma efetiva participao do computador.

O verbo computar tem sido historicamente utilizado significando fazer clculos com nmeros. A
Computao Numrica envolve no s as quatro operaes aritmticas bsicas, mas tambm clculos
de valores de funes matemticas e operaes mais sofisticadas como clculo das razes de um
polinmio ou dos autovalores de uma matriz. Nesse tipo de computao, tanto os dados iniciais quanto
os resultados finais so nmeros.

Apesar de atender s necessidades do usurio em muitas situaes, os clculos feitos numericamente
em geral no so exatos. Por exemplo, a simples diviso de 1 por 3 em notao decimal
aproximadamente igual a 0,333333. No importa quantas casas decimais sejam usadas, esse valor ser
sempre aproximado: ao ser multiplicado por 3 o produto da como resposta 0,999999. Se fosse um
calculo exato, a resposta deveria ser 1. Alm disso, esse pequeno erro inicial da ordem de um
milionsimo tende a aumentar, a se propagar, se for usado conjuntamente com outros clculos tambm
aproximados.

Devido s inconvenincias da Computao Numrica, como a falta de exatido nos resultados, que
se estuda ha cinco dcadas um outro tipo de computao chamado Computao Simblica ou
Computao Algbrica. A Computao Algbrica representa os objetos matemticos por smbolos, no
necessariamente numricos. Esses smbolos podem representar nmeros inteiros, nmeros racionais,
nmeros complexos, nmeros algbricos e tambm estruturas mais complexas e abstratas como
polinmios, matrizes, sistemas de equaes, grupos, anis, etc.

O objetivo da Computao Algbrica obter resultados exatos, frmulas fechadas, baseadas nas
regras usuais da lgebra. Por exemplo, um programa de Computao Algbrica efetua clculos com a
raiz quadrada de dois sem a necessidade de represent-la em forma decimal aproximada. Em vez de se
preocupar com aproximaes numrica, o programa conhece as regras e propriedades algbricas dos
objetos envolvidos. Ele sabe que o objeto raiz quadrada de dois positivo e que elevado ao quadrado
d como resposta dois e isso basta para efetuar clculos em inmeras situaes. Um programa de
Computao Algbrica tambm percebe que a soma X + X tem como resultado 2X, sem ser necessrio
atribuir um valor numrico para X.
4
2. SISTEMAS DE COMPUTAO ALGBRICA - Adaptado de LENIMAR, 2002

Nos ltimos 25 anos tem havido grande progresso na teoria envolvendo algoritmos simblicos ou
algbricos. Alm disso, a forma de representar esses algoritmos matemticos em computador tambm
progrediu bastante. Isso deu origem a uma nova disciplina conhecida sob vrias denominaes:
Computao Algbrica, Computao Simblica, lgebra Computacional, Manipulao de Frmulas,
Manipulao Simblica. Assim, o programa ou conjunto de programas de computador relacionados
com essa disciplina passou a se chamar: Sistema de Computao Algbrica ou Sistema de
Manipulao Simblica, entre outros nomes.

So inmeras as reas da cincia e da tecnologia em que a Computao Algbrica vem sendo utilizada.
Para citar s algumas delas: Mecnica Celeste, Acstica, Relatividade Geral, Qumica, Teoria dos
Nmeros, Teoria dos Grupos, Anlise Numrica, Robtica e Metalurgia.

Os Sistemas de Computao Algbrica podem ser divididos em duas categorias: sistemas de uso
especfico e sistemas de uso geral. O que esses sistemas tm em comum uma grande capacidade de
efetuar rapidamente clculos analticos que podem ser bastante trabalhosos.

Os sistemas de uso especfico foram desenvolvidos para resolver problemas em reas especficas da
Fsica ou da Matemtica. Podemos citar como alguns exemplos o SHEEP para Teoria da Relatividade
Geral, o CAMAL para Mecnica Celeste, o GAP para Teoria dos Grupos e o Macaulay para
Geometria Algbrica.

Os sistemas de uso geral possuem no s recursos algbricos, mas tambm podem incorporar recursos
numricos ou grficos, alm de serem verdadeiras linguagens de programao para clculos analticos.

Possuem grande numero de funes e operaes matemticas de modo a permitirem que seus usurios
obtenham prontamente respostas analticas para clculos envolvendo fatoraes, trigonometria,
logaritmos, polinmios, limites, derivadas, integrais, equaes diferenciais, sistemas de equaes,
sries de potncias, transformadas de Laplace, transformadas de Fourier, clculo matricial, formas
diferenciais, etc.

Alguns exemplos desses sistemas so:

- Derive Um dos menores e mais eficientes sistemas j criado. Nos anos 80 chama-se MuMATH.

- Reduce Um dos mais antigos sistemas de uso geral, surgiu no final dos anos 60.

- Mathematica O primeiro a incorporar recursos algbricos, numricos, grficos e funcionar
tambm como linguagem de programao. um dos atuais grandes sistemas de uso geral.

- Maple Canadense, o Maple um sistema completssimo de uso geral e com uma interface com o
usurio bastante amigvel. Possui inmeros recursos algbricos e numricos, constri animaes e
grficos planos ou tridimensionais e funciona como linguagem de programao para permitir que o
usurio construa suas prprias funes e procedimentos. Verses de demonstrao podem ser
obtidas na pgina do fabricante na Internet.

5
3. APRESENTAO - MOTIVAO:

A computao algbrica um novo meio de aprendizado que une a informtica ao ensino da
Matemtica. Este novo mtodo de ensino das cincias exatas e de Matemtica em particular, vem
sendo adotado em diversas universidades, e ocupa posio de destaque no mundo educacional de
pases desenvolvidos. As universidades estrangeiras ministram cursos regulares de computao
algbrica aos alunos destinados rea de cincias exatas, o que uma medida clara da importncia que
o meio cientfico e tecnolgico vem sendo direcionado a este ramo.

A capacidade de armazenamento de informaes, a velocidade de operao e a preciso, fazem do uso
do computador uma ferramenta indispensvel em todas as nossas atividades acadmicas, profissionais
e domsticas. Porm, ensinar o aluno somente a operar um computador no garante a melhoria da
qualidade de ensino. de suma importncia que nossos estudantes estejam ao menos familiarizados
com essa tecnologia, pois, afinal, so membros da nossa futura sociedade. Uma das principais razes
do uso do computador na educao desenvolver o raciocnio e possibilitar situaes de resoluo de
problemas, a fim de desenvolver o pensamento do aluno. O computador no deve ser inserido na
educao como uma mquina de ensinar ou uma informatizao instrucionista, deve ser usado como
uma informatizao construtivista que permita a reflexo e construo de idias a partir da relao
professor, computador e aluno. Devemos levar em conta que o computador no o principal
referencial do processo de ensino-aprendizagem, mas serve apenas como uma ferramenta auxiliar
(coadjuvante).

No mercado de informtica existem vrios softwares (pacotes computacionais) que oferecem
condies de clculos numricos, manipulaes algbricas e simblicas. Os softwares MAPLE,
MATHEMATICA, etc..., so sistemas de computao algbrica muito eficientes no apio ao ensino
do Clculo Diferencial e Integral (CDI), e vm sendo utilizados, por exemplo, nas fases iniciais dos
cursos de Engenharia, Computao, Fsica e Matemtica, em universidades estrangeiras,
proporcionando aos alunos maior interesse e compreenso. Por outro lado, o software MATLAB
(Laboratrio de Matrizes), pode ser utilizado para trabalhar com a lgebra linear, pois o mesmo um
software elaborado para o tratamento matricial de dados.

No que se refere ao processo de ensino-aprendizagem esses pacotes computacionais exercem grande
influncia no desenvolvimento intelectual dos alunos. Este recurso didtico apresenta a facilidade da
construo de grficos de funes e resoluo de problemas. No aprendizado da montagem de
equaes a resolver, da previso de seu comportamento e solues. Os softwares alm de
possibilitarem uma maior visualizao grfica, tambm apresentam tpicos avanados e muitas
aplicaes prticas. Esta grande ferramenta matemtica permite ao estudante uma compreenso mais
ntida dos processos e potencialidades do Clculo Diferencial e Integral (CDI), auxiliando-o em seus
estudos.

Os potentes pacotes computacionais MAPLE, MATHEMATICA no so restritos ao CDI, pois
tambm se aplicam em diversas reas da Matemtica, Fsica, Engenharia, etc. Outros tpicos bsicos
relacionados com a Matemtica que podem ser abordados facilmente so: lgebra Linear, Equaes
Diferenciais, Sries Infinitas, Matemtica Financeira, Estatstica e muitos outros. Por outro lado, o
MATLAB, pode ser usado no apenas para a lgebra Linear, mas pode ser aplicado nas mais diversas
reas como o CDI, a Estatstica, a Matemtica Financeira, a Programao Linear, entre outras.

Nesta apostila apresentamos os conceitos bsicos de utilizao do software Maple. Abordaremos
alguns tpicos bsicos e especficos de Matemtica, tais como construo de grficos bidimensionais e
tridimensionais, operaes com expresses algbricas e polinmios, principais funes e constantes
matemticas presentes no Maple, alm dos contedos prprios do CDI (limites, continuidades,
derivadas, integrais e suas aplicaes).

6
Essa apostila foi elaborada com base na verso 7 para Windows. Veja os detalhes de credito dessa
verso na figura a seguir.


Esta verso do Maple foi lanada em 2001. Sendo assim, sero aqui apresentadas noes bsicas
somente para sua utilizao nessa verso. Os comandos utilizados tambm so compatveis com
verses anteriores do Maple.

Nota: Ser considerado que o usurio j tenha algum conhecimento de utilizao de software para
Windows. Caso no o possua, aconselhvel que o adquira antes de comear a utilizar o Maple, pois
no so abordadas as caractersticas comuns a todos os softwares para Windows.

A seguir, observe a tela de abertura do software Maple (verso 7).



Uma vez que o programa esteja iniciado, tem-se ento a tela inicial do programa, que consiste de um
menu com as opes disponveis e uma rea de trabalho. A grande maioria dos comandos do Maple
utilizados nesta apostila so comandos internos, ou disponveis em pacotes que so digitados e
executado na rea de trabalho.

7
Para executar um comando basta digit-lo, e ento pressionar a tecla ENTER. Neste momento, o
texto digitado considerado como uma entrada, e ser ento dada uma sada, que aparecer
imediatamente abaixo da entrada. Caso ocorra algum erro de execuo, ou de sintaxe, uma mensagem
apropriada ser dada como sada. Deve-se tomar muito cuidado na hora de digitar um comando, pois
so consideradas as diferenas entre caracteres (letras, por exemplo) maisculos e minsculos, sendo
que muitas vezes, este o motivo de vrios erros na hora de sua execuo.

Algumas pessoas, quando iniciam a utilizao do software Maple, enfrentam algumas dificuldades,
devido a pequenos detalhes importantes que passam despercebidos. Aqui, colocaremos o significado
dos smbolos mais utilizados, para que no ocorram estes tipos de problemas. Veja a seguir a tela do
Maple.



OBSERVAO DO CURSO: Adaptado de TANEJA, 1997

Vamos desenvolver nosso curso acessando as sees referentes a determinados assuntos. Uma seo
identificada com um quadradinho com um sinal de [+] ou [-] dentro dele. Para expandi-la devemos
clicar com o mouse o sinal [+] e ele mudar para [-] possibilitando assim que possamos acessar o
contedo desta seo. Para fech-la, clique o sinal [-] e ele mudar para [+].

8
4. NOES BSICAS DE MATEMTICA USANDO O MAPLE

O Maple uma linguagem para o clculo matemtico simblico que possibilita grande variedade de
aplicaes, relativa simplicidade de uso e atualizao peridica em novas verses, o que faz com que
se prolongue sua ampla permanncia no meio acadmico. Para utiliz-lo basta digitar os comandos no
teclado e pressionar ENTER, todos os comandos so precedidos de ponto-e-vrgula ; se voc
deseja ver o resultado imediatamente ou por dois pontos : se voc quiser que o Maple V guarde o
resultado para posterior utilizao.

4.1. OPERAES BSICAS

Adio : +
Subtrao : -
Multiplicao : *
Diviso : /
Potenciao : ^ ou **

Aqui apresentaremos alguns exemplos com as operaes bsicas da Matemtica. Note que os
operadores da multiplicao, diviso e potenciao - diferem dos operadores da Matemtica usual.

O operador cerquilha # possibilita a insero de comentrios aps uma instruo sem causar
influncia na execuo do comando.

O smbolo % servem para aproveitar um ltimo resultado para uma instruo seguinte.

O comando evalf avalia um resultado em decimais para n dgitos, sendo o nmero padro igual a 10,
se desejarmos aumentar a preciso do clculo, basta especificar o nmero de casas decimais desejado.

Exemplos:

> 15+9;
24

> 36-27;
9

> 21*12;
252

> 3*%; # VOC PODE USAR O SMBOLO % PARA OPERAR COM O LTIMO RESULTADO.

756

> 28/17;
28
17

> evalf(%); # NOS FORNECE O VALOR DECIMAL DA DIVISO
1.647058824

> evalf(Pi,20); # CALCULANDO O VALOR DE PI COM 20 DGITOS
3.1415926535897932385

> 3^5;
243

> 3**5;
243

9
> 12+5-16;
1

> 2*3+4*5-8*2;
>
10

> 12^2/8-9*3+5*2;
1

> 22/13+11/13;
33
13

> evalf(%,20);
2.5384615384615384615

> 2.45*10;# UTILIZA-SE O PONTO DECIMAL AO INVS DA VRGULA
24.50

Nota: Essas so operaes bsicas, vale destacar que a ordem das operaes a ordem usual (ordem
em que so digitadas) valendo-se das leis da aritmtica. Para que a ordem das operaes seja alterada,
usamos parnteses. Observe os exemplos a seguir:

> 35-10-4-2;
19

> 35-(10-4)-2;
27

> (35-10)-(4-2);
23

> 5*10-4*3+3*2^3;
62

> 5*(10-4)*3+3*2^3);
114

> 5*10-(4*3+3*2)^3);
-178

10
4.2. OPERAES ELEMENTARES

Operao Smbolo Exemplo numrico
Adio + > 3+2;
5

Subtrao - > 3-2;
1

Multiplicao * > 3*2;
6

Diviso / > 3/2;
3
2

Potenciao ^ ou ** > 3^2;
9

> 3**2;

9

Notas:
1) case sensitive => diferencia uma varivel escrita com letra maiscula de uma varivel escrita com
letra minscula.
2) := => Comando de atribuio. Exemplo: a:=3 (a varivel a recebe o valor 3).

Exemplos:

> a:=3;
:= a 3

> b:=2;
:= b 2

> c:=a+b;
:= c 5

> d:=a-b;
:= d 1

> e:=a/b;
:= e
3
2

> f:=a^b;
:= f 9

> f:=a**b;
:= f 9

4.3. CONSTANTES PR-DEFINIDAS

Constante Smbolo Exemplo
Pi ( ) pi > pi;
t

Infinito ( ) infinity > infinity;


Nmero complexo ( 1 )

I
> I;
I

Nmero (e) exp(1) > exp(1);
e

11
4.4. CONSTANTES E FUNES DA ARITMTICA

Aqui temos o nmero representado pela constante Pi e as funes:

ifactor => faz a decomposio de um nmero em fatores primos.
iquo => determina o quociente da diviso entre dois nmeros.
igcd => determina o mximo divisor comum entre dois nmeros.
root => calcula a raiz n-sima de um nmero.

Nota: Comandos para trabalhar com nmeros inteiros.

Os exemplos a seguir ilustram como cada um destes comandos devem ser usados:

Exemplos:
> Pi;
t

> evalf(Pi);
3.141592654

> evalf(Pi,100);
3.14159265358979323846264338327950288419716939937510582097494459230 \
7816406286208998628034825342117068

> ifactor(20);
( ) 2
2
( ) 5

> ifactor(13);
( ) 13

> ifactor(144);
( ) 2
4
( ) 3
2

> ifactor(120);
( ) 2
3
( ) 3 ( ) 5

> iquo(144,120);
1

> iquo(2401,33);
72

> igcd(123,45);
3

> igcd(144,120);
24

> igcd(1500,650);
50

> sqrt(n);
n

> sqrt(2);
2

> evalf(%);
1.414213562

> evalf(sqrt(3));
1.732050808

> evalf(sqrt(10),20);
3.1622776601683793320

> sqrt(3.1);
1.760681686

> root [3](125);
5

> root [3](25);
5
( ) / 2 3

> evalf(%);
2.924017738

> evalf(root [6](127));
2.241991457
12
4.5. EXPRESSES ARITMTICAS

Vamos agora trabalhar com algumas expresses aritmticas j que sabemos como manipular com os
operadores bsicos.

Devemos usar parnteses ( ) nestas expresses, pois para o Maple no vlido, por exemplo uma
expresso como {5*(37+12)/(57-15)]*(10+3)}/20, embora tenha sentido matemtico. A expresso
digitada desta maneira ir causar um chamado erro de sintaxe, aparecendo na tela aps execuo a
mensagem Error, use intersect for sets, que indica que as chaves { } so usadas para interseo
entre conjuntos. Confira!

> {[5*(37+12)/(57-15)]*(10+3)}/20;
1
20
{ }

(
(
455
6

O correto ser:
> ((5*(37+12)/(57-15))*(10+3))/20;
91
24


EXERCCIO: Calcule o valor das seguintes expresses aritmticas:
1) 180 + {2 x [5 x 3 + (8 x 4 - 2 x 9) - (19 x 3 - 37)]}
2) {83 - [56 + (6 x 8 - 28) - 20 + 5]} - 12
3) 58 - {30 + 4 x 3 - [25 - (12 - 4) + 3]}
4) {(9 x 4 + 6) : 7 + [(15 + 2) x 3] : 17} - 9
5) 82 + {33 x [132 : (7 - 1) x (18 - 7)] - 3 x 22}
6) 9600 : {[200 + (3 x 200 - 500) + 400 : 20] + 4 x 20}
7) ( )
2
1

Respostas: 1) 198 2) 10 3) 36 4) 0 5) 8002 6) 24

Soluo:
1) > 180+(2*(5*3+(8*4-2*9)-(19*3-37)));
198

3) > 58-(30+4*3-(25-(12-4)+3));
36

7) > I^2;
-1

13
4.6. OPERAES COM CONJUNTOS

Para tratar de conjuntos finitos, o Maple apresenta uma srie de comandos:

Operao Smbolo Objetivo
Unio union Faz a operao de unio entre conjuntos
Interseco intersect Faz a operao de interseo entre conjuntos
Diferena minus Retira um conjunto de outro
Valor mximo max Encontra o maior valor de um conjunto
Valor mnimo min Encontra o menor valor de um conjunto

Exemplo: Considerando os conjuntos A = {-2, 3, 4, 7, -18, 15}, B = {-9, 3, 6, 8, 10, -11} e
C = {0, -4, 3, 9, 7, 8, -14}, fazer as seguintes operaes:
a) B A b) C A c) C B d) C B A e) ) ( C B A f) ) ( ) ( C A B A
g) B A h) A B i) Mximo(A) j) Mnimo (B) k) Mximo(A)-Mnimo(B)
Soluo: Inicialmente vamos definir os conjuntos A, B e C, na tela do Maple.
> A:={-2,3,4,7,-18,15};
:= A { } , , , , , -18 -2 3 4 7 15

> B:={-9,3,6,8,10,-11};
:= B { } , , , , , -11 -9 3 6 8 10

> C:={0,-4,3,9,7,8,-14};
:= C { } , , , , , , -14 -4 0 3 7 8 9

a) > A union B;
{ } , , , , , , , , , , -18 -11 -9 -2 3 4 6 7 8 10 15

b) > A union C;
{ } , , , , , , , , , , -18 -14 -4 -2 0 3 4 7 8 9 15

c) > B union C;
{ } , , , , , , , , , , -14 -11 -9 -4 0 3 6 7 8 9 10

d) > A union B union C;
{ } , , , , , , , , , , , , , , -18 -14 -11 -9 -4 -2 0 3 4 6 7 8 9 10 15

e) > A union (B intersect C);
{ } , , , , , , -18 -2 3 4 7 8 15

f) > (A union B)intersect(A union C);
{ } , , , , , , -18 -2 3 4 7 8 15

g) > A minus B;
{ } , , , , -18 -2 4 7 15

h) > B minus A;
{ } , , , , -11 -9 6 8 10

i) > max(-2,3,4,7,-18,15);
15

j) > min(-9,3,6,8,10,-11);
-11

k) > max(-2,3,4,7,-18,15) - min(-9,3,6,8,10,-11);
26


Exerccio: Sejam os conjuntos A = {2, 3, 4, 6, 12, -3}, B = {4, 5, 8, 3, -2, -5} e C = {6, 12, -3}.
Calcular:
a) A unio B unio C b) A interseo B interseo C c) A unio ( B interseo C)
d) (A unio B) interseo ( A unio C) e) A - B - C f) C - A - B
g) A unio ( B - C) h) (A - C) interseo (B - C)
14
4.7. FUNES ELEMENTARES:

Funo Smbolo Exemplo
Exponencial exp(x)
Logaritmo natural ln(x) > ln(exp(1)); 1
Raiz quadrada sqrt(x)
Valor absoluto ou Mdulo abs(x)

Trigonomtricas
sin(x); cos(x); tan(x)
sec(x); csc(x); cot(x)

Trigonomtricas Inversas
(determinao do arco ou ngulo)
arcsin(x); arccos(x); arctan(x)
arcsec(x); arccsc(x); arccot(x)


Exemplos:

> sqrt(3);
3

> evalf(%);
1.732050808

> abs(x);
x

> abs(-2);
2

> exp(x);
e
x

> exp(1);
e

> evalf(%,20);
2.7182818284590452354

> ln(10);
( ) ln 10

> evalf(%);
2.302585093

> log(x);
( ) ln x

> log(10);
( ) ln 10

> evalf(%);
2.302585093

> sin(Pi);
0

> sin(2);
( ) sin 2

> evalf(%);
.9092974268

> sin(Pi/4);
1
2
2
> arctan(infinity);
1
2
t
> tan(Pi/2);
Error, (in tan) numeric exception: division by zero
15
4.8. VARIVEIS:

O Maple sempre interpreta uma letra como sendo uma varivel. Para fixarmos o valor da varivel x
como um nmero, por exemplo, 3 usamos o comando de atribuio ( := atribui um valor uma
varivel) veja o exemplo:

> x:=3;
:= x 3


Desta forma, sempre que uma expresso de entrada contiver x o Maple interpretar como 3, para
reestabelecermos x como uma varivel devemos utilizar o comando restart, que apagar da
memria todos os valores atribudos as variveis. Veja um exemplo:

> 2*x;
6

> y:=2;
:= y 2

> 4*x+y^3-y*x;
14

> restart;
> x^3;
x
3


O Maple case sensitive, isto , ele diferencia uma varivel escrita com letra minscula de uma
varivel escrita com letra maiscula. Outra observao, que um erro de ocorrncia freqente,
esquecer de utilizar o smbolo de multiplicao entre variveis, desta forma ele interpretar como outra
varivel.

> b:= 4;
:= b 4

> B:= 5;
:= B 5

> b*B;
20

> bB;
bB


Exerccio: Calcule da mesma forma os produtos de x por y, x por z e x por y por z, atribuindo a x o
valor 5 a y o valor 2 e a z o valor 8. No esquea de limpar (inicializar) as variveis.

Outros exemplos:

> A:=2;
:= A 2

> B:=3;
:= B 3

> C:=A;
:= C 2

> A:=B;
:= A 3

> B:= C;
:= B 2

> E:=A+B;
:= E 5

> F:=2*A+E;
:= F 11

16
4.9. COMO RESOLVER UMA EQUAO DO PRIMEIRO GRAU:

O exemplo abaixo mostra como resolver uma equao do 1 grau passo a passo:
> eq:=4*x+18=48;


:= eq = + 4 x 18 48

> eq - (18=18);


= 4 x 30

> %/4;

= x
15
2

> eq1:=7*x - 12 = 2*x + 3;


:= eq1 = 7 x 12 + 2 x 3

> eq1 - (-12=-12);


= 7 x + 2 x 15

> % - (2*x=2*x);

= 5 x 15

> %/5;
= x 3


Exerccios:

1) Resolver as equaes abaixo:
a) 6x - 18 = -3x +27 b) 2x +10 = 3x + 5/7 c) 4y - 6 = 10y - 12 d) x + 5 = 2x -6

2) Achar a soluo dos sistemas abaixo:
a) x + y = 5 ; 2x - y = 1 b) 7x +8y = 9 ; -x + y = 3 c) 3x + 4y - 5z = 2; 2x - y + z = 1; -x-3y-z=3

17
4.10. EXPRESSES ALGBRICAS:

Uma das grandes vantagens de um programa como o Maple permitir manipular expresses algbricas
do mesmo modo que uma calculadora permite manipular expresses aritmticas. Alguns dos
comandos algbricos do Maple esto listados a seguir:

Smbolo Objetivo Exemplo
simplify Simplificar uma expresso
factor Fatorar uma expresso dada
subs Determinar o valor da expresso para um valor especfico
expand Expandir as expresses (desenvolver o Binmio de Newton, por exemplo)
numer Numerador de uma expresso
denom Denominador de uma expresso

Inicialmente, vamos usar os seguintes comandos:

simplify => simplifica uma expresso algbrica.
expand => expande uma expresso algbrica.
factor => fatora uma expresso algbrica.
solve => resolve um sistema de equaes para um conjunto de incgnitas.
subs => substitui um valor atribudo uma varivel.
numer => recebe a expresso do numerador de uma expresso algbrica fracionria.
denom => recebe a expresso do denominador de uma expresso algbrica fracionria.

Vamos ilustrar, com alguns exemplos cada um destes comandos.

> simplify ((2+x)/x+(2-x)/x);
4
1
x

> a:=4*x^2/(1+x^2)^3+(5-x)^2;
:= a + 4
x
2
( ) + 1 x
2
3
( ) 5 x
2

> simplify(%);
+ + + + 80 x
2
25 78 x
4
28 x
6
10 x 30 x
3
30 x
5
10 x
7
x
8
( ) + 1 x
2
3

> subs(x=1,a);
33
2

> p:=numer(a);
:= p + + + + 80 x
2
25 78 x
4
28 x
6
10 x 30 x
3
30 x
5
10 x
7
x
8

> q:=denom(a);
:= q ( ) + 1 x
2
3

> subs(x=1,p);
132

> subs(x=1,q);
8

> expand((3*x^2-4*x)*(x+1)*(3*x^2+5*x+1));
+ 9 x
5
12 x
4
14 x
3
21 x
2
4 x

> expand((3*x^2-4*x)*(x+1)*(3*x^2+5*x+1));
+ 9 x
5
12 x
4
14 x
3
21 x
2
4 x

18
> factor(%);
x ( ) 3 x 4 ( ) + x 1 ( ) + + 3 x
2
5 x 1

> b:=8*x^3-18*x*y^2+20*x^2*y-45*y^3;
:= b + 8 x
3
18 x y
2
20 x
2
y 45 y
3

> factor(%);
( ) + 3 y 2 x ( ) + 5 y 2 x ( ) + 3 y 2 x

> expand(%);
+ 8 x
3
18 x y
2
20 x
2
y 45 y
3

> subs(y=1,%);
+ 8 x
3
18 x 20 x
2
45

> expand((1+2*x)^2);
+ + 1 4 x 4 x
2

> subs(x=k,%);
+ + 1 4 k 4 k
2

> factor(2*x^2+3*x-2);
( ) + 2 x ( ) 2 x 1

> solve({32*x-15*y=12,10*x+4*y=16},{x,y});
{ } , = x
144
139
= y
196
139


Observe que neste ltimo exemplo usamos chaves { } separando as expresses por vrgula dentro das
chaves. O Maple interpreta isto como um conjunto, observe que a sada um conjunto.

Podemos armazenar esta sada em uma varivel e da consultarmos cada varivel do conjunto atravs
de um ndice atribudo a varivel que recebeu este contedo de sada. Este ndice escrito entre
colchetes [].Veja:

> sol:= solve({32*x-15*y=12,10*x+4*y=16},{x,y});
:= sol { } , = x
144
139
= y
196
139

> sol[1]; # Aqui ser mostrado o primeiro elemento do conjunto soluo
= x
144
139

> sol[2]; # Aqui ser mostrado o segundo elemento do conjunto soluo
= y
196
139


Assim, sempre possvel selecionar qualquer elemento de um dado conjunto. Note tambm, que as
solues obtidas por meio do comando solve so dadas em forma de equao. Existem dois comandos
do Maple muito teis para equaes: lhs - (left-hand side) seleciona o lado esquerdo da equao e rhs -
(right-hand side) seleciona o lado direito.

> rhs(sol[1]);
144
139

> lhs(sol[1]);
x


19
4.11. OPERAES COM POLINMIOS

Como sabemos como criar expresses algbricas, agora vamos tratar da manipulao de operaes
com polinmios que so expresses algbricas a uma varivel. Podemos somar, subtrair,
multiplicar, dividir e elevar a uma potncia expresses polinomiais usando os smbolos aritmticos
(+, -, *, / e ^, respectivamente)).

Smbolo Objetivo Sintaxe
rem Calcula o resto da diviso de dois polinmios rem(expresso, divisor, varivel)
quo Calcula o quociente da diviso de dois polinmios rem(expresso, divisor, varivel)
degree Indica o grau de um polinmio degree(polinmio)
coeff Indica o coeficiente de um termo indicado coeff(polinmio, termo)
tcoeff Indica o termo independente de um polinmio tcoeff(polinmio)
coeffs Lista todos os coeficientes no nulos de um polinmio tcoeffs(polinmio)

Observao: No esquecer de utilizar o smbolo de multiplicao (*) entre as variveis.

Inicialmente, vamos aprender os dois comandos a seguir:

rem => que calcula o resto da diviso de um polinmio por outro.
quo => que calcula o quociente da diviso de um polinmio por outro.

A sintaxe destes comandos :

rem(expresso, divisor, varivel)
quo(expresso, divisor, varivel);

Veja os exemplos a seguir:

> p:=x^3-2*x^2+x-1;
:= p + x
3
2 x
2
x 1

> q:=3*x^3+7*x^2-2*x+8;
:= q + + 3 x
3
7 x
2
2 x 8

> r:=p+q;
:= r + + 4 x
3
5 x
2
x 7

> s:=p-q;
:= s + 2 x
3
9 x
2
3 x 9

> P:=x^3+1;
:= P + x
3
1

> Q:=x+1;
:= Q + x 1

> R:=P/Q;
:= R
+ x
3
1
+ x 1

> simplify(R);
+ x
2
x 1

> S:=P*Q;
:= S ( ) + x
3
1 ( ) + x 1

> simplify(S);
( ) + x
3
1 ( ) + x 1

> expand(S);
+ + + x
4
x
3
x 1

20
> rem(P,Q,x);
0

> quo(P,Q,x);
+ x
2
x 1

> rem(x^4+3*x^2-1,x^3+x,x);
+ 1 2 x
2

> rem(x^3+x,x^4+3*x^2-1,x);
+ x
3
x

> quo(x^4+3*x^2-1,x^3+x,x);
x

> simplify((x^3+x)*(%)+(%));
+ + x
4
x
2
x

> Q^3;
( ) + x 1
3

> expand(%);
+ + + x
3
3 x
2
3 x 1

Observao: Agora, vamos trabalhar com os outros comandos:

degree => indica o grau de um polinmio.
coeff => indica o coeficiente de um termo indicado.
tcoeff => indica o termo independente de um polinmio.
coeffs => lista todos os coeficientes no nulos de um polinmio.

Exemplos:

> polinomio:=x^6-x^5-9*x^4+x^3+20*x^2+12*x+5;
:= polinomio + + + + x
6
x
5
9 x
4
x
3
20 x
2
12 x 5

> degree(polinomio);
6

> coeff(polinomio,x^4);
-9

> tcoeff(polinomio);
5

> coeffs(polinomio);
, , , , , , 5 1 12 20 -9 1 -1



21
4.12. REPRESENTAO DE FUNES NO MAPLE

O Maple tem o seguinte comando para representar funes:

f:=(x)-> expresso em x => este comando representa a funo f(x), f ser funo de x que ser
representada por uma expresso em x. Veja alguns exemplos a seguir:

> restart:

> f:=(x)-> x^3+2*x^2-3;
:= f x + x
3
2 x
2
3

> f(1);
0

> f(3);
42

> f(a+b);
+ ( ) + a b
3
2 ( ) + a b
2
3

> expand(%);
+ + + + + + a
3
3 a
2
b 3 a b
2
b
3
2 a
2
4 a b 2 b
2
3

> f(a-1);
+ ( ) a 1
3
2 ( ) a 1
2
3

> expand(%);
a
3
a
2
a 2

> f(a)+f(a-1);
+ + + a
3
2 a
2
6 ( ) a 1
3
2 ( ) a 1
2

> expand(%);
+ 2 a
3
a
2
5 a

> g:=(x)->cos(x)+sin(x);
:= g x + ( ) cos x ( ) sin x

> g(Pi/2);
1

> g(3*Pi/4);
0

> h:=(x,y)->log(x^2+y^2)+sqrt(x+y^2);
:= h ( ) , x y + ( ) log + x
2
y
2
+ x y
2

> h(2,3);
+ ( ) ln 13 11

> evalf(%);
5.881574147

> h(1.5,1);
2.759793826

> h(a,b);
+ ( ) ln + a
2
b
2
+ a b
2

> h(f(x),g(x));
+ ( ) ln + ( ) + x
3
2 x
2
3
2
( ) + ( ) cos x ( ) sin x
2
+ + x
3
2 x
2
3 ( ) + ( ) cos x ( ) sin x
2

> h(f(2),g(Pi/2));
+ ( ) ln 170 14

> evalf(%);
8.877455824


22
4.13. FUNES COMPOSTAS

Alm de definirmos uma funo composta usando a forma normal f(g(x)), o Maple trabalha com
funes compostas utilizando o sinal @ entre as variveis que representaro a funo, ou seja
f@g, veja os exemplos a seguir:

> restart:

> f:=(x)->2*x^2;
:= f x 2 x
2

> g:=(x)->exp(-x^2);
:= g x e
( ) x
2

> h:=(x)->sin(2*x)+cos(2*x);
:= h x + ( ) sin 2 x ( ) cos 2 x

> f@g)(x);
2 ( ) e
( ) x
2
2

> g@f)(x);
e
( ) 4 x
4

> h@f)(x);
+ ( ) sin 4 x
2
( ) cos 4 x
2

> f@g@h)(x);
2 ( ) e
( ) ( ) + ( ) sin 2 x ( ) cos 2 x
2
2

> f@f)(x);

8 x
4

> f@g@h)(1);
2 ( ) e
( ) ( ) + ( ) sin 2 ( ) cos 2
2
2

> evalf(%);
1.229677785

23
5. PLOTANDO GRFICOS BIDIMENSIONAIS

Para fazer um grfico bidimensional em coordenadas cartesianas de uma funo utilizado o comando
plot, cuja sintaxe a seguinte: >plot(f(x), x=a..b, y=c..d)

Onde:

f(x) => a funo real ou conjunto de pontos a serem traados.
x = a..b => o intervalo a ser considerado no eixo x.
y = c..d => o intervalo a ser considerado no eixo y.

As variaes de x e y no so obrigatrias. Pode-se dar apenas as variaes de x e, conforme o grfico,
ele escolhe as variaes de y ou pode-se tambm suspender as variaes de x e, neste caso, o Maple
escolhe a variao de x de -10 a 10.

O Maple possibilita a construo (plotagem) de mais de um grfico no mesmo sistema de eixos. Isto
possvel usando a seguinte sintaxe:

plot([f1,f2,f3,..,fn], x = a..b); => onde neste caso todas as funes devem estar declaradas entre
colchetes e devem depender da mesma varivel.

Quanto a escala dos eixos o Maple trabalha com dois tipos:
scaling = constrained => as variaes de x e y so proporcionalmente iguais;
scaling = unconstrained => as variaes de x e y so proporcionais tela do monitor.

Os eixos podem ser de quatro tipos diferentes:
axes = frame => os eixos se interceptam nos limites inferiores de cada intervalo;
axes = normal => os eixos se interceptam no ponto (0, 0);
axes boxed => os eixos se interceptam nos limites inferiores de cada intervalo e o grfico aparece
dentro de uma caixa
axes none => no mostra os eixos.

Para especificar a cor de uma curva traada usa-se o comando color = <opo de cor>, onde as opes
de cores so: aquamarine, black, blue, navy, coral, cyan, brown, gold, green, gray, grey khaki,
magenta, maroon, orange, pink, plum, red, sienna, tan, turquoise, violet, wheat, white, yellow.

Veja os exemplos a seguir:

> f:=x-> x^2;
:= f x x
2

> plot(f);

24
> plot(f(x),x=-2..2);


> plot(sin(x),x=-Pi..Pi);


> plot(x^2-3*x+2,x=-4..4,y=-5..5);


> plot((2*x-5)/(x+3)-1,x=-30..30,y=-10..10);

25
> plot((x^2-x-6)/(x^2-x-12),x=-5..5,y=-10..10);


> f1:=x^2-x-6;
:= f1 x
2
x 6

> factor(%);
( ) + x 2 ( ) x 3

> f2:=x^2-x-12;
:= f2 x
2
x 12

> factor(%);
( ) + x 3 ( ) x 4

> f:=f1/f2;
:= f
x
2
x 6
x
2
x 12

> g:=factor(f1*f2);
:= g ( ) + x 2 ( ) x 3 ( ) + x 3 ( ) x 4


> plot(g,x=-6..6,y=-15..80);


26
O Maple possibilita a construo (plotagem) de mais de um grfico no mesmo sistema de eixos. Isto
possvel usando a seguinte sintaxe:

plot([f1,f2,f3,..,fn], x = a..b); => onde neste caso todas as funes devem estar declaradas entre
colchetes e devem depender da mesma varivel.

Exemplos:

> plot([sin(x),cos(x)],x=0..2*Pi);


> plot([x^3+3*x,exp(x),3],x=-2..2);


> plot([x^2-2*x+1,ln(x^3+2*x+1)],x=-3..3);

27
Quanto a escala dos eixos o Maple trabalha com dois tipos:
scaling = constrained => as variaes de x e y so proporcionalmente iguais;
scaling = unconstrained => as variaes de x e y so proporcionais tela do monitor.

Os eixos podem ser de quatro tipos diferentes:
axes = frame => os eixos se interceptam nos limites inferiores de cada intervalo;
axes = normal => os eixos se interceptam no ponto (0, 0);
axes boxed => os eixos se interceptam nos limites inferiores de cada intervalo e o grfico aparece
dentro de uma caixa
axes none => no mostra os eixos.

Para especificar a cor de uma curva traada usa-se o comando color = <opo de cor> , onde as
opes de cores so: aquamarine, black, blue, navy, coral, cyan, brown, gold, green, gray, grey
khaki, magenta, maroon, orange, pink, plum, red, sienna, tan, turquoise, violet, wheat, white,
yellow.

Vejamos como utilizar estes comandos que foram apresentados:

> f:= x^2+2*x - 3;
:= f + x
2
2 x 3

> g:= 2*sin(x);
:= g 2 ( ) sin x

> h:= 3*x-4;
:= h 3 x 4

> plot([f,g],x=-5..5,axes=normal);


> plot([g,h],x=-Pi..Pi,axes=boxed,color=blue);


28
> plot([g+h,2*f],x=-2..2,axes=framed);


> plot([f*g,h+2],x=-10..10,axes=normal,scaling=constrained);


> plot([f*g,h+2],x=-10..10,axes=normal);


Exerccios: Plotar os grficos das seguintes funes:
1) f(x) = 2x + sen(x)
2) g(x) = exp(2x) - ln(x) + 2
3) h(x) = x^3 + 2x^2 - 3x +1
4) i(x) = f(x) + 2h(x)
5) j(x) = g(f(x))
6) k(x) = f(f(x))
29
6. USANDO O SOFTWARE MAPLE PARA PLOTAR AS CURVAS DE NVEL E GRFICOS
DE SUPERFCIES

Exemplos:

1) Construir, usando o software Maple (verso 7.0), os grficos e as curvas de nvel das seguintes
curvas:
a)
2 2
) , ( y x y x f + = (Parabolide)

> plot3d(x^2+y^2,x=-3..3,y=-3..3);
> with (plots):
> contourplot(x^2+y^2,x=-3..3,y=-3..3,color=black);



,


b)
2 2
) , ( y x y x f + = (cone)

> plot3d(sqrt(x^2+y^2),x=-3..3,y=-3..3);
> with (plots):
> contourplot(sqrt(x^2+y^2),x=-3..3,y=-3..3,contours=30,color=black);










30
d)
2 2
) , ( y x y x f = (Sela)
> plot3d(x^2-y^2,x=-3..3,y=-3..3);
> with (plots):
> contourplot(x^2-y^2,x=-3..3,y=-3..3,color=black);






e)
2 2
) , ( x y y x f =
> with (plots):
> contourplot(y^2-x^2,x=-4..4,y=-4..4,color=black,contours=10);

f)
2 2
) , ( y x y x f + =
> with (plots):
> contourplot(x^2+y^2,x=-3..3,y=- 3..3,contours=30,color=black);


31
2) Outros exemplos de grficos tridimensionais no Maple (verso 7.0)

a)
2 2
) , (
y x
e xy y x f

=

> plot3d(x*y*exp(-x^2-y^2), x=-2..2,y=-2..2);

b)
2 2
) , (
y x
e x y x f

=

> plot3d(x*exp(-x^2-y^2), x=-2..2,y=-2..2);

c)
2 2
) , (
y x
e y y x f

=

> plot3d(y*exp(-x^2-y^2), x=-2..2,y=-2..2);

32
d)
5
3 3
) , (
2 2
+
+ + + + =
y x
y xy x y x f , 3 3 3 3 s s s s y e x

> plot3d(x^2+x*y+y^2+3/x+3/y+5,x=-3..3,y=-3..3);

e)
5
3 3
) , (
2 2
+
+ + + + =
y x
y xy x y x f , 2 2 2 2 s s s s y e x

> plot3d(x^2+x*y+y^2+3/x+3/y+5,x=-2..2,y=-2..2);

f)
5
3 3
) , (
2 2
+
+ + + + =
y x
y xy x y x f , 4 4 4 4 s s s s y e x

> plot3d(x^2+x*y+y^2+3/x+3/y+5,x=-4..4,y=-4..4);




33
3) Construir os seguintes grficos, usando o software Maple (verso 7.0), dada a funo e o domnio da
mesma.
a) 8 8 8 8 ), ln( ) , (
2 2
s s s s + = y e x y x y x f , na cor cinza (gray)
> plot3d(ln(x^2+y^2),x=-8..8,y=-8..8,color=gray);

b) 3 3 3 3 ), ln( ) , (
2 2
s s s s + = y e x y x y x f , , na cor padro do Maple V (verso 7.0)

> plot3d(ln(x^2+y^2),x=-3..3,y=-3..3);

c) 3 3 3 3 , ) , (
2 2 2
s s s s + = y e x y x sen y x f , na cor padro do Maple V (verso 7.0)
> plot3d( (sin(sqrt(x^2+y^2))^2 ),x=-3..3,y=-3..3);

34
d) 3 3 3 3 ,
1
5
) , (
2 2
s s s s
+ +
= y e x
y x
x
y x f , na cor azul (blue)
> plot3d(-5*x/(x^2+y^2+1),x=-3..3,y=-3..3,color=blue);


e) 3 3 3 3 ,
) (
) , (
2 2
2 2
s s s s
+
+
= y e x
y x
y x sen
y x f na cor verde (green)
> plot3d(sin(x^2+y^2)/(x^2+y^2),x=-3..3,y=-3..3,color=green);

35
4) Use a funo IMPLICITIPLOT => GRFICOS DE FUNES IMPLCITAS
a) 16
2 2
= + y x (Circunferncia)
> with(plots):
> implicitplot(x^2+y^2=16,x=-5..5,y=-5..5);

b) 1
9 4
2 2
= +
y x
(Elipse)
> with(plots):
> implicitplot(x^2/4+y^2/9=1,x=-3..3,y=-4..4);


c) 1
9 4
2 2
=
y x
(Hiprbole)
> with(plots):
> implicitplot(x^2/4-y^2/9=1,x=-3..3,y=-4..4);


36
d)
2 2 2
y x z + = (cones)
> with(plots):
> implicitplot3d(z^2=x^2+y^2,x=-3..3,y=-3..3,z=-3..3,color=gray);
> implicitplot3d(z^2=x^2+y^2,z=-2..2,y=-2..2,x=-2..2);






e) 9
2 2 2
= + + z y x (Esfera)
> with(plots):
> implicitplot3d(x^2+y^2+z^2=9,x=-3..3,y=-3..3,z=-3..3);


37
7. LIMITE E CONTINUIDADE

Objetivo: Apresentar o conceito de limite de uma funo dada, o conceito de limites laterais e as
propriedades de limites. Estender esse conceito para continuidade e evidenciar exemplos quando as
funes dadas so contnuas ou descontnuas.

7.1. LIMITES

Nesta seo apresentamos o conceito de limite de uma funo. Este conceito muito importante no
ensino do Clculo Diferencial e Integral (CDI). Evidenciamos este conceito atravs de alguns
exemplos, esclarecendo-o atravs do grfico da funo.

Definio: Seja uma funo f definida em um intervalo aberto I que contm o ponto p, exceto
possivelmente no prprio ponto p. O limite de f(x) quando x se aproxima de p L. A afirmao:

L x f
p x
=

) ( lim

significa que, para todo 0 > existe um 0 > tal que < | ) ( | L x f sempre que < < | | 0 p x .

Observe que se f(x) tem limite quando x tende para p, ento tal limite nico.

A seguir, tem-se alguns exemplos de clculo de limite utilizando os comandos Limit e limit do
software Maple.

- O comando Limit representa a expresso em forma da expresso do limite a ser calculado.
- O comando limit calcula o valor do limite desejado.
- O comando Limit=limit representa a expresso e calcula o limite.

Exemplos:
1) Calcular o seguinte limite:
2
10
lim
3
2

x
x x
x
.
Soluo: Para resolver este limite damos o seguinte comandos na tela do Maple:
> Limit((x^3+x-10)/(x-2),x=2)=limit((x^3+x-10)/(x-2),x=2);
= lim
x 2
+ x
3
x 10
x 2
13
Vamos visualizar o limite obtido anteriormente traando o grfico da funo dada no intervalo
contendo o ponto analisado.

Observe que no grfico dado anteriormente o valor no eixo y correspondente a x = 2 13.
Portanto, conclumos que: 13
2
10
lim
3
2
=

x
x x
x

38
2) Calcular o seguinte limite:
2
3
2
) 2 (
10
lim

x
x x
x
.
Soluo: Para resolver este limite e construir o grfico damos os seguintes comandos na tela do Maple:

> Limit((x^3+x-10)/(x-2)^2,x=2)=limit((x^3+x-10)/(x-2)^2,x=2);
= lim
x 2
+ x
3
x 10
( ) x 2
2
undefined
> plot((x^3+x-10)/(x-2)^2,x=0..4,color=black);

> # MELHORANDO A VISUALIZAO GRFICA, EM TORNO DO PONTO ANALISADO:
> plot((x^3+x-10)/(x-2)^2,x=0..4,y=-50..50,color=black);


Vemos no grfico anterior que quando x tende pela direita ou pela esquerda a 2 a funo tende a dois
lados diferentes, isto , no existe o valor do limite desejado.

Portanto, conclumos que:
2
3
2
) 2 (
10
lim

x
x x
x
no existe.

Nos dois exemplos anteriores calculamos o valor do limite quando x se aproxima de um valor finito. A
seguir apresentamos exemplos quando x tende para infinito.

39
Exemplos:
1) Calcular o seguinte limite:
5 4
2 3 7
lim
3
3
+
+

x x
x x
x
.
Soluo: > Limit((7*x^3+3*x-2)/(4*x^3+x-5),x=infinity)=
limit((7*x^3+3*x-2)/(4*x^3+x-5),x=infinity);
= lim
x
+ 7 x
3
3 x 2
+ 4 x
3
x 5
7
4

> plot((7*x^3+3*x-2)/(4*x^3+x-5),x=1..10,y=0..10,color=black);

> plot((7*x^3+3*x-2)/(4*x^3+x-5),x=1..100,y=1..10,color=black);

> plot((7*x^3+3*x-2)/(4*x^3+x-5),x=0..10000,y=1..10,color=black);


Nos trs grficos anteriores vemos que medida que o valor de x aumenta o valor de f(x) tende a uma
constante, o que se confirma calculando-se algebricamente o valor do seu limite que 7/4.

Portanto, conclumos que:
4
7
5 4
2 3 7
lim
3
3
=
+
+

x x
x x
x
.
40
2) Calcular o seguinte limite:
4 2
5
lim
2

+

x
x
x
.
Soluo:
> Limit(sqrt(x^2+5)/(2*x-5),x=-infinity)=limit(sqrt(x^2+5)/(2*x-5),x=-infinity);
= lim
x ( )
+ x
2
5
2 x 5
-1
2

> plot(sqrt(x^2+5)/(2*x-5),x=-5..5,y=-5..5,color=black);

> plot(sqrt(x^2+5)/(2*x-5),x=-20..5,y=-3..3,color=black);

> plot(sqrt(x^2+5)/(2*x-5),x=-5000..0,y=-2..2,color=black);

Nos trs grficos anteriores vemos que medida que o valor de x aumenta o valor de f(x) tende a uma
constante, o que se confirma calculando-se algebricamente o valor do seu limite que -1/2. Tambm
observamos pelo grfico que o limite da funo dada no ponto x = 2 no existe.

Portanto, conclumos que:
2
1
4 2
5
lim
2
=

+

x
x
x
.
41
Os exemplos a seguir apresentam o limite de algumas funes especiais quando x tende a 0 ou quando
x tende a menos ou mais infinito.

7.2. LIMITES ESPECIAIS OU FUNDAMENTAIS

Exemplos:
1) Calcule o seguinte limite:
x
x sen
x 0
lim

. A seguir construa o grfico para visualizar o resultado.


Soluo: > Limit(sin(x)/x,x=0)=limit(sin(x)/x,x=0);
= lim
x 0
( ) sin x
x
1
> plot(sin(x)/x,x=-10..10,color=black);

2) Calcule o seguinte limite: |
.
|

\
|

x
sen x
x
1
lim
0
A seguir construa o grfico para visualizar o resultado.
Soluo: > Limit(x*sin(1/x),x=0)=limit(x*sin(1/x),x=0);
= lim
x 0
x
|
\

|
.
|
|
sin
1
x
0
> plot(x*sin(1/x),x=-1..1,color=black);

3) Calcule o seguinte limite:
| |
1
lim
0
x
x
. A seguir construa o grfico para visualizar o resultado.
Soluo: > Limit(1/abs(x),x=0)=limit(1/abs(x),x=0);
= lim
x 0
1
x

> plot(1/abs(x),x=-2..2,y=0..10,color=black);


42
4) Calcule o seguinte limite:
x
x
x
1
0
) 1 ( lim +

. A seguir construa o grfico para visualizar o resultado.


Soluo: > Limit((1+x)^(1/x),x=0)=limit((1+x)^(1/x),x=0);
= lim
x 0
( ) + 1 x
|
\

|
.
|
|
1
x
e
> plot((1+x)^(1/x),x=-2..2,y=0..4,color=black);

5) Calcule o seguinte limite:
x
x
x
|
.
|

\
|
+

1
1 lim . A seguir construa o grfico para visualizar o resultado.
Soluo: > Limit((1+1/x)^x,x=infinity)=limit((1+1/x)^x,x=infinity);
= lim
x
|
\

|
.
|
|
+ 1
1
x
x
e
> plot((1+1/x)^x,x=0..10,y=0..3,color=black);
> plot((1+1/x)^x,x=0..1000,y=0..3,color=black);


6) Calcule o seguinte limite:
x
x
x
|
.
|

\
|
+

1
1 lim . A seguir construa o grfico para visualizar o resultado.
Soluo: > Limit((1+1/x)^x,x=-infinity)=limit((1+1/x)^x,x=-infinity);
= lim
x ( )
|
\

|
.
|
|
+ 1
1
x
x
e

> plot((1+1/x)^x,x=-100..0,y=0..4,color=black);
> plot((1+1/x)^x,x=-1000..10,y=0..4,color=black);

Os exemplos a seguir calculam os limites laterais.

43
7.3. LIMITES LATERAIS

1) Calcule os seguintes limites laterais ( esquerda e direita) e construa o grfico:
x
x
x

3
9
lim
2
3
.
Soluo:

> Limit((9-x^2)/(3-x),x=3,left)=limit((9-x^2)/(3-x),x=3,left);
= lim
- x 3
9 x
2
3 x
6
> Limit((9-x^2)/(3-x),x=3,right)=limit((9-x^2)/(3-x),x=3,right);
= lim
+ x 3
9 x
2
3 x
6
> plot((9-x^2)/(3-x),x=-2..6,color=black);

Portanto, conclumos que: 6
3
9
lim
2
3
=

x
x
x
, pois: 6
3
9
lim
2
3
=

x
x
x
e 6
3
9
lim
2
3
=

x
x
x
.
2) Calcule os seguintes limites laterais ( esquerda e direita) e construa o grfico:
2
| 2 |
lim
2

x
x
x
.
Soluo:

> Limit(abs(x-2)/(x-2),x=2,left)=limit(abs(x-2)/(x-2),x=2,left);
= lim
- x 2
x 2
x 2
-1

> Limit(abs(x-2)/(x-2),x=2,right)=limit(abs(x-2)/(x-2),x=2,right);
= lim
+ x 2
x 2
x 2
1
> plot(abs(x-2)/(x-2),x=-3..3,color=black);

Portanto, conclumos que:
2
| 2 |
lim
2

x
x
x
no existe, pois: 1
2
| 2 |
lim
2
=

x
x
x
e 1
2
| 2 |
lim
2
=

x
x
x
.
44
3) Calcule os seguintes limites laterais ( esquerda e direita) e construa o grfico:
x
x
1
lim
0
.
Soluo:

> Limit(1/x,x=0,left)=limit(1/x,x=0,left);
= lim
- x 0
1
x

> Limit(1/x,x=0,right)=limit(1/x,x=0,right);
= lim
+ x 0
1
x

> plot(1/x,x=-5..5,y=-8..8,color=black);

Portanto, conclumos que:
x
x
1
lim
0
no existe, pois: =

x
x
1
lim
0
e =
+

x
x
1
lim
0

4) Calcule os seguintes limites laterais ( esquerda e direita) e construa o grfico:
2
0
1
lim
x
x
.
Soluo:

> Limit(1/x^2,x=0,left)=limit(1/x^2,x=0,left);
= lim
- x 0
1
x
2

> Limit(1/x^2,x=0,right)=limit(1/x^2,x=0,right);
= lim
+ x 0
1
x
2

> plot(1/x^2,x=-5..5,y=-8..8,color=black);

Portanto, conclumos que: =

2
0
1
lim
x
x
, pois: =

2
0
1
lim
x
x
e =
+

2
0
1
lim
x
x
. Nota: Na realidade este
limite, tambm no existe, pois no existe um nmero L, exigido pela definio.
45
7.4. Propriedades de limites

Use o Maple e suas funes: Limit e expand para verificar as seguintes propriedades de limites:
Nota: importante lembrar que para verificar as propriedades devemos carregar antes o pacote
with(student), dando o seguinte comando: >with(student):
P1) ) ( lim ) ( lim )] ( ) ( [ lim x g x f x g x f
p x p x p x
+ = +
P2) ) ( lim ) ( lim )] ( ) ( [ lim x g x f x g x f
p x p x p x
=
P3) ) ( lim )] ( [ lim x f c x f c
p x p x
=
P4) ) ( lim ) ( lim )] ( ) ( [ lim x g x f x g x f
p x p x p x
=
P5)
) ( lim
) ( lim
) (
) (
lim
x g
x f
x g
x f
p x
p x
p x

=
(

, 0 ) ( = x g
P6)
) ( lim
) (
) ( lim ) ( lim
x g
p x
x g
p x
p x
x f x f


=
P7) ) ( lim ) ( lim x f x f
p x p x
=
Soluo: Para facilitar, vamos combinar as duas funes: >Limit=expand
> with(student):
P1) > Limit(f(x)+g(x),x=p)=expand(Limit(f(x)+g(x),x=p));

= lim
x p
+ ( ) f x ( ) g x + ( ) lim
x p
( ) f x ( ) lim
x p
( ) g x

P2) > Limit(f(x)-g(x),x=p)=expand(Limit(f(x)-g(x),x=p));

= lim
x p
( ) f x ( ) g x ( ) lim
x p
( ) f x ( ) lim
x p
( ) g x

P3) > Limit(c*f(x),x=p)=expand(Limit(c*f(x),x=p));

= lim
x p
c ( ) f x c ( ) lim
x p
( ) f x

P4) > Limit(f(x)*g(x),x=p)=expand(Limit(f(x)*g(x),x=p));

= lim
x p
( ) f x ( ) g x ( ) lim
x p
( ) f x ( ) lim
x p
( ) g x

P5) > Limit(f(x)/g(x),x=p)=expand(Limit(f(x)/g(x),x=p));
= lim
x p
( ) f x
( ) g x
lim
x p
( ) f x
lim
x p
( ) g x


P6) > Limit(f(x)^(g(x)),x=p)=expand(Limit(f(x)^(g(x)),x=p));
= lim
x p
( ) f x
( ) g x
( ) lim
x p
( ) f x
( ) lim
x p
( ) g x


P7) > Limit(sqrt(f(x)),x=p)=expand(Limit(sqrt(f(x)),x=p));
= lim
x p
( ) f x lim
x p
( ) f x
46
7.5. CONTINUIDADE

A seguir estudaremos o conceito de continuidade de uma funo num certo ponto, utilizando os
recursos do sofftware Maple. Inicialmente definimos este conceito matematicamente.

Definio: Uma funo f contnua em um valor p se satisfaz as seguintes condies:

(i) f(p) definido, ou seja: existe f(p).
(ii) ) ( lim x f
p x
existe, ou seja: ) ( lim ) ( lim x f x f
p x p x
+

=
(iii) ) ( ) ( lim p f x f
p x
=



Se uma ou mais destas trs condies no forem verificadas em p dizemos que a funo f
descontnua em p.

Agora consideraremos alguns exemplos de funes contnuas e descontnuas. Em cada exemplo
traamos um esboo do grfico, determinando os pontos onde existe um salto no grfico, e mostramos
qual das trs condies da definio dada anteriormente no vlida em cada descontinuidade.

Nota: Analisaremos a continuidade das funes esboando os seus respectivos grficos. Escolhemos
as variaes de x e y conforme a necessidade de cada funo.

Exemplo:
1) Analisar a continuidade da funo:

>
s +
=
1 , 2
1 , 2
) (
x se x
x se x
x f .
Soluo: Neste caso, dividimos a funo dada em duas partes designando a primeira f1 e a segunda
f2. Observe os comando a seguir:

> f1:=(x)->if x<=1 then 2+x else undefined fi:
> f2:=(x)->if x>1 then 2-x else undefined fi:
> plot({f1,f2},-3.5..3.5,-4..4,color=black);


Pelo grfico anterior conclumos que a funo dada no contnua em x = 1.
47
2) Analisar a continuidade da funo:

=
=

=
2 , 2
2 ,
2
4
) (
2
x se
x se
x
x
x f .

Soluo: Neste caso, dividimos a funo dada em trs partes designando a primeira f1, a segunda
f2e a terceira de f3. Observe os comando a seguir:

> restart: # COMANDO USADO PARA REINICIAR AS VARIVEIS
> f1:=(x)->if x<2 then (x^2-4)/(x-2) else undefined fi:
> f2:=(x)->if x=2 then 2 else undefined fi:
> f3:=(x)->if x>2 then (x^2-4)/(x-2) else undefined fi:
> plot({f1,f2,f3},-5..5,-5..5,color=black);



Observe que no ponto x = 2 seu valor 2 no aparece na tela, mas esse ponto fornece um valor vazio
conforme f1 e f3. Assim, conclumos que a funo dada no contnua em x = 2.


48
3) Analisar a continuidade da funo:

=
=
=
0 , 0
0 ,
) (
x se
x se
x
x sen
x f .

Soluo: Neste caso, dividimos a funo dada em trs partes designando a primeira f1, a segunda
f2e a terceira de f3. Observe os comando a seguir:

> restart: # COMANDO USADO PARA REINICIAR AS VARIVEIS
> f1:=(x)->if x<0 then sin(x)/x else undefined fi:
> f2:=(x)->if x=0 then 0 else undefined fi:
> f3:=(x)->if x>0 then sin(x)/x else undefined fi:
> plot({f1,f2,f3},-15..15,-2..2,color=black);



Observe que no ponto x = 0 seu valor 0 no aparece na tela, mas esse ponto fornece um valor vazio
conforme f1 e f3. Assim, conclumos que a funo dada no contnua em x = 0.

49
4) Analisar a continuidade da funo:

s s
> < + +
=
2 3 , 1
2 3 , 6 5
) (
2
x se
x ou x se x x
x f .

Soluo: Neste caso dividimos a primeira parte da funo dada em duas partes considerando f1 e
f3, enquanto a segunda parte fica como f2. Observe os comando a seguir:

> restart: # COMANDO USADO PARA REINICIAR AS VARIVEIS
> f1:=(x)->if x<-3 then sqrt(x^2+5*x+6) else undefined fi:
> f2:=(x)->if x>=-3 and x<=-2 then -1 else undefined fi:
> f3:=(x)->if x>-2 then sqrt(x^2+5*x+6) else undefined fi:
> plot({f1,f2,f3},-5..5,-5..5,color=black);



Pelo grfico anterior conclumos que a funo dada no contnua nem em x = -2 e nem em x = -3.
Nesse caso temos dois pontos de descontinuidades.

50
8. DERIVADAS

O Maple um aplicativo que possui inmeras aplicaes na resoluo de problemas que envolvem o
Clculo Diferencial e Integral eis aqui alguns exemplos de como calcular derivadas atravs dos
comandos Diff e diff:

> restart: # COMANDO USADO PARA REINICIAR AS VARIVEIS

> Diff(Pi*r^2,r)=diff(Pi*r^2,r);
=
c
c
r
t r
2
2 t r
> Diff(4/3*Pi*r^3,r)=diff(4/3*Pi*r^3,r);
=
c
c
r
|
\

|
.
|
|
4
3
t r
3
4 t r
2

> Diff(Pi*r^2*h,r)=diff(Pi*r^2*h,r);
=
c
c
r
t r
2
h 2 t r h
> Diff(Pi*r^2*h,h)=diff(Pi*r^2*h,h);
=
c
c
h
t r
2
h t r
2

> f:=3*x^3+2*x^2+3*x+4;
:= f + + + 3 x
3
2 x
2
3 x 4

> Diff(f,x)=diff(f,x);
=
c
c
x
( ) + + + 3 x
3
2 x
2
3 x 4 + + 9 x
2
4 x 3
> g:=5*x^4-3*x^2-2/x;
:= g 5 x
4
3 x
2
2
x

> Diff(g,x)=diff(g,x);
=
c
c
x
|
\

|
.
|
|
5 x
4
3 x
2
2
x
+ 20 x
3
6 x
2
x
2


- Derivada de segunda ordem, ou seja, segunda derivada.

> restart:

> f:=3*x^3+2*x^2+3*x+4;
:= f + + + 3 x
3
2 x
2
3 x 4

> Diff(f,x$2)=diff(f,x$2);
=
c
c
2
x
2
( ) + + + 3 x
3
2 x
2
3 x 4 + 18 x 4
51
- Derivadas trigonomtricas:

1) Verifique as seguintes regras de derivadas trigonomtricas:
R1) [sen(x)] = cos(x)
R2) [cos(x)] =-sen(x)
R3) [tg(x)] = sec
2
(x)
R4) [cossec(x)] = -cossec(x) cotg(x)
R5) [sec(x)] = sec(x) tg(x)
R6) [cotg(x)] = -cossec
2
(x)
Lembre-se: 1 + tg
2
(x) = sec
2
x e 1 + cotg
2
x = cossec
2
x
Soluo:
R1) > Diff([sin(x)],x)=diff(sin(x),x);
=
c
c
x
[ ] ( ) sin x ( ) cos x
R2) > Diff([cos(x)],x)=diff(cos(x),x);
=
c
c
x
[ ] ( ) cos x ( ) sin x
R3) > Diff([tan(x)],x)=diff(tan(x),x);
=
c
c
x
[ ] ( ) tan x + 1 ( ) tan x
2

R4) > Diff([csc(x)],x)=diff(csc(x),x);
=
c
c
x
[ ] ( ) csc x ( ) csc x ( ) cot x
R5) > Diff([sec(x)],x)=diff(sec(x),x);
=
c
c
x
[ ] ( ) sec x ( ) sec x ( ) tan x
R6) > Diff([cot(x)],x)=diff(cot(x),x);
=
c
c
x
[ ] ( ) cot x 1 ( ) cot x
2

> h2:=x->(3*x^2-4*x+5)/(4*x^3);
:= h2 x
1
4
+ 3 x
2
4 x 5
x
3

> D(h2)(x);

1
4
6 x 4
x
3
3
4
+ 3 x
2
4 x 5
x
4

> normal(%);

1
4
+ 3 x
2
8 x 15
x
4

> diff(h1,x$2);
60 x
2
6
4
x
3

> diff(h1,x$4);
120
48
x
5

> (D@@1)(h2)(x);

1
4
6 x 4
x
3
3
4
+ 3 x
2
4 x 5
x
4

> normal(%);

1
4
+ 3 x
2
8 x 15
x
4

52
- Calculando mais algumas derivadas:

> f2:=x -> sin(2*x);
:= f2 x ( ) sin 2 x

> # Derivando uma vez.
> diff(f2(x),x);
2 ( ) cos 2 x

> # Derivando 3 vezes.
> diff(f2(x),x,x,x);
8 ( ) cos 2 x

> # Observa que para derivar 3 vezes podemos usar x,x,x; ou $3.
> diff(f2(x),x$3);
8 ( ) cos 2 x


- Calculando derivadas com operador diferencial "D" A sada (output) sempre uma funo:

> h:=x -> x^2;
:= h x x
2

> h(x);
x
2

> D(h); # Vai sair uma funo !
x 2 x

> D(h)(x);
2 x

> diff(f(x)*g(x),x); # derivada do produto
+
|
\

|
.
|
|
c
c
x
( ) f x ( ) g x ( ) f x
|
\

|
.
|
|
c
c
x
( ) g x
> diff( f(x,y(x)) , x ); # derivada total de f(x,y(x))
+ ( ) ( ) D
1
f , x ( ) y x ( ) ( ) D
2
f , x ( ) y x
|
\

|
.
|
|
c
c
x
( ) y x
53
9. CALCULANDO INTEGRAIS

> # Integrais definidas

> Int(x^n,x)=int(x^n,x); # Construir a integral e calcul-la.
= d
(
]
(
(
x
n
x
x
( ) + n 1
+ n 1

> Int(1/x,x)=int(1/x,x); # Construir a integral e calcul-la.
= d
(
]
(
(
(
(
1
x
x ( ) ln x
> Int(a^x,x)=int(a^x,x); # Construir a integral e calcul-la.
= d
(
]
(
(
a
x
x
a
x
( ) ln a

> Int(exp(x),x)=int(exp(x),x); # Construir a integral e calcul-la.
= d
(
]
(
(
e
x
x e
x

> Int(sin(x),x)=int(sin(x),x); # Construir a integral e calcul-la.
= d
(
]
(
( ) sin x x ( ) cos x
> Int(cos(x),x)=int(cos(x),x);# Construir a integral e calcul-la
= d
(
]
(
( ) cos x x ( ) sin x
> Int(ln(x),x)=int(ln(x),x); # Construir a integral e calcul-la.
= d
(
]
(
( ) ln x x x ( ) ln x x
> Int(tan(x),x)=int(tan(x),x);# Construir a integral e calcul-la.
= d
(
]
(
( ) tan x x ( ) ln ( ) cos x
> Int(cot(x),x)=int(cot(x),x);# Construir a integral e calcul-la.
= d
(
]
(
( ) cot x x ( ) ln ( ) sin x
> Int(1/sqrt(1-x^2),x)=int(1/ sqrt(1-x^2),x);
= d
(
]
(
(
(
(
(
1
1 x
2
x ( ) arcsin x
> Int(1/(1+x^2),x)=int(1/(1+x^2),x);
= d
(
]
(
(
(
(
1
+ 1 x
2
x ( ) arctan x

54
> # Integrais Mltiplas

> Int(Int(x^2+y^2,y=0..2),x=0..2)=int(int(x^2+y^2,y=0..2),x=0..2 );
= d
(
]
(
(
0
2
d
(
]
(
(
0
2
+ x
2
y
2
y x
32
3

> Int(Int(Int(z*cos(x),x=0..2*y),y=0..2 ),z=1..2)=int(int(int(z*cos(x),x=0..2*y),y=0..2 ),z=1..2);
= d
(
]
(
1
2
d
(
]
(
0
2
d
(
]
(
0
2 y
z ( ) cos x x y z +
3
4
( ) cos 4
3
4

> evalf(%);
= 1.240232716 1.240232716


> # Integrais indefinidas

> Int(1/x^2,x=1..infinity)=int(1/x^2,x=1..infinity);
= d
(
]
(
(
(
(
1

1
x
2
x 1

> # MAIS INTEGRAIS:

> plot(1/x,x=0..5,y=0..5,color=black);

> Int(1/x,x=0..1)=int(1/x,x=0..1);
= d
(
]
(
(
(
(
0
1
1
x
x

55
PRINCIPAIS FUNES DO SOFTWARE MAPLE

A seguir, tem-se um resumo das mais importantes funes do software Maple e uma breve explicao
de cada uma.

O comando Limit representa a expresso em forma da expresso do limite a ser calculado.
O comando limit calcula o valor do limite desejado.
O comando Limit=limit representa a expresso e calcula o limite.
O comando expand serve para expandir uma expresso.
O comando subs utilizado para substituir um certo valor em uma expresso.
O comando value serve para calcular o valor de uma expresso.
O comando normal utilizado para escrever uma expresso numa forma normal (simplificada).
O comando evalf avalia um resultado em decimais para n dgitos, sendo o nmero padro igual a
10, se desejarmos aumentar a preciso do clculo, basta especificar o nmero de dgitos desejado.
O comando restart reinicia as variveis.
O comando plot constri um grfico bidimensional.
O comando factor fatora uma expressa.
O comando solve resolve uma equao.
Se um comando comea com letra maiscula, ento ele "inerte". Isto , s escreve mas no
calcula.

LISTA DE EXERCCIOS PROPOSTOS PARA A REVISO DOS CONCEITOS:

INTEGRAIS SIMPLES, DUPLAS E TRIPLAS


56
- SRIES DE TAYLOR

A funo "series" escreve a srie de Taylor de funes analticas. Em geral, a resposta dada em
termos de uma expanso de ordem 6.

Exemplos:

1) y = e
x

> S:=exp(x);
:= S e
x

> S1:=series(S,x=0); # Em torno de x=0.
:= S1 + + + + + + 1 x
1
2
x
2
1
6
x
3
1
24
x
4
1
120
x
5
( ) O x
6

> # Suponha que queremos agora uma expanso de ordem 10:

> S2:=series(S,x=0,10);
S2 1 x
1
2
x
2
1
6
x
3
1
24
x
4
1
120
x
5
1
720
x
6
1
5040
x
7
1
40320
x
8
1
362880
x
9
+ + + + + + + + + + :=
( ) O x
10


2) y = sen x


3) y = cos x


> # Converter a srie num polinmio.

> S3:=convert(S2,polynom);
:= S3 + + + + + + + + + 1 x
1
2
x
2
1
6
x
3
1
24
x
4
1
120
x
5
1
720
x
6
1
5040
x
7
1
40320
x
8
1
362880
x
9

> S3(2); # intil
1 ( ) x 2
1
2
( ) x 2
2
1
6
( ) x 2
3
1
24
( ) x 2
4
1
120
( ) x 2
5
1
720
( ) x 2
6
1
5040
( ) x 2
7
+ + + + + + +
1
40320
( ) x 2
8
1
362880
( ) x 2
9
+ +

> value(%); #intil
1 ( ) x 2
1
2
( ) x 2
2
1
6
( ) x 2
3
1
24
( ) x 2
4
1
120
( ) x 2
5
1
720
( ) x 2
6
1
5040
( ) x 2
7
+ + + + + + +
1
40320
( ) x 2
8
1
362880
( ) x 2
9
+ +


> # Vamos transformar a expresso S3 numa funo de verdade.

> P:=unapply(S3,x);
:= P x + + + + + + + + + 1 x
1
2
x
2
1
6
x
3
1
24
x
4
1
120
x
5
1
720
x
6
1
5040
x
7
1
40320
x
8
1
362880
x
9

> evalf(P(1));
2.718281526

> evalf(subs(x=1,S));
2.718281828

57
- FRAES PARCIAIS

O procedimento de fraes parciais utilizado para simplificar as expresses envolvendo quocientes
na mesma varivel, onde geralmente o denominador envolve expresses polinomiais. Usaremos os
comandos convert e parfrac cuja sintaxe convert(expresso, parfrac, varivel), ou seja,
converter uma expresso algbrica em fraes parciais em relao a uma varivel. O comando
identity indica que os lados direito e esquerdo de uma equao so idnticos e, deve sempre ser
usado numa situao como a que ser apresentada.

Veja os exemplos a seguir:

> restart;

> k1:=x^3/(x^2+x);
:= k1
x
3
+ x
2
x

> factor(%);
x
2
+ x 1

> convert(k1,parfrac,x);
+ x 1
1
+ x 1

> k2:=(2*x-1)/(2*x^2-3*x-2);
:= k2
2 x 1
2 x
2
3 x 2

> convert(k2,parfrac,x);
+
4
5
1
+ 2 x 1
3
5
x 2

> simplify(%);
2 x 1
( ) + 2 x 1 ( ) x 2

> k3:=k1+k2;
:= k3 +
x
3
+ x
2
x
2 x 1
2 x
2
3 x 2

> factor(k3);
+ 2 x
4
3 x
3
x 1
( ) + x 1 ( ) + 2 x 1 ( ) x 2

> convert(k3,parfrac,x);
+ + + x 1
1
+ x 1
4
5
+ 2 x 1
3
5
x 2

> simplify(%);
+ 2 x
4
3 x
3
x 1
( ) + x 1 ( ) + 2 x 1 ( ) x 2

> k4:=(x^3+y^3)/(x+x*y);
:= k4
+ x
3
y
3
+ x x y

> factor(k4);
( ) + x y ( ) + x
2
x y y
2
x ( ) + 1 y

58
> convert(k4,parfrac,y);
+
+ y
2
y 1
x
x
3
1
x ( ) + 1 y

> expand(%);
+ +
y
2
x
y
x
1
x
x
2
+ 1 y
1
x ( ) + 1 y

> simplify(%);
+ x
3
y
3
x ( ) + 1 y

> k5:=(x+1)/(2*x^3+x^2-13*x+6);
:= k5
+ x 1
+ + 2 x
3
x
2
13 x 6

> factor(%);
+ x 1
( ) x 2 ( ) 2 x 1 ( ) + x 3

> eq1:=(k5=a/(2*x-1)+b/(x-2)+c/(x+3));
:= eq1 =
+ x 1
+ + 2 x
3
x
2
13 x 6
+ +
a
2 x 1
b
x 2
c
+ x 3

> simplify(eq1*denom(k5));
= + x 1 + + + + + a x
2
a x 6 a 2 b x
2
5 b x 3 b 2 c x
2
5 c x 2 c

> identity(%,x);
( ) identity , = + x 1 + + + + + a x
2
a x 6 a 2 b x
2
5 b x 3 b 2 c x
2
5 c x 2 c x

> solve(%);
{ } , , = a
-2
7
= c
-2
35
= b
1
5

> subs(%,rhs(eq1));
+
2
7
1
2 x 1
1
5
x 2
2
35
1
+ x 3

> k5=(%);
=
+ x 1
+ + 2 x
3
x
2
13 x 6
+
2
7
1
2 x 1
1
5
x 2
2
35
1
+ x 3

> convert(k5,parfrac,x);
+
2
7
1
2 x 1
1
5
x 2
2
35
1
+ x 3

59
MAPLE V - Uma Abordagem Computacional no Ensino do Clculo

Inder Jeet Taneja EDITORA DA UFSC

Inder Jeet Taneja, Ph.D. Professor Titular Departamento de Matemtica Universidade Federal de
Santa Catarina 88.040-900 Florianpolis, SC, Brasil.

DETALHES POR CAPTULO

Captulo 1: Introduo
Neste captulo damos a introduo, apresentando a necessidade e importncia de softwares computacionais desenvolvidos
na era da informtica principalmente para temas especiais, tais como: clculo, equaes diferenciais, lgebra linear, etc. E
concentramos este trabalho utilizando o software Maple V para os temas de clculo diferencial e integral.

Captulo 2: Noes Bsicas de Matemtica
Neste captulo apresentamos noes bsicas de matemtica utilizando o software Maple. Os principais tpicos so:
construo de grficos bidimensionais no sistema cartesiano, funes, funes compostas, fraes parciais, diviso de
polinmios, etc..

Captulo 3: Resoluo de Equaes e Inequaes
Neste captulo apresentamos resoluo de equaes e inequaes. Apresentamos tambm sistemas de equaes de duas e
trs variveis. Curvas passando por pontos dados tambm so obtidas. Utilizando a aproximao grfica resolvemos
sistemas de equaes no resolvidas facilmente.

Captulo 4: Limite e Continuidade
Neste captulo apresentamos o conceito de limite de uma funo dada. Tambm apresentamos o conceito de limites laterais
e as propriedades de limite. Estendemos este conceito para continuidade e apresentamos alguns exemplos quando as
funes dadas so contnuas ou descontnuas.

Captulo 5: Derivada
Neste captulo apresentamos alguns resultados relacionados com derivada e suas aplicaes. Apresentamos frmulas de
derivada. Derivada da funo composta e derivadas de ordem superior tambm so abordadas.

Captulo 6: Integral
Neste captulo apresentamos clculo de integrais definidas e indefinidas. Damos as formas de integrao por substituio,
por partes, e por fraes parciais. Tambm mostramos clculo de integrais duplas e triplas, onde consideramos integrais
definidas e indefinidas.

Captulo 7: Grficos em Coordenadas Especiais
Neste captulo apresentamos grficos bi e tridimensionais. Os grficos bidimensionais tratam de coordenadas paramtricas
e polares. Tambm construmos os grficos de funes definidas implicitamente. Damos formas de como animar os
grficos. Apresentamos grficos tridimensionais nas formas cartesiana, paramtrica, cilndrica e esfrica. Apresentamos
tambm curvas no espao e curvas de nvel.

Captulo 8: Aplicaes I - Comprimentos e reas
Neste captulo damos aplicaes de coordenadas especiais abordadas no captulo 7. Utilizando coordenadas cartesianas,
paramtricas e polares, calculamos comprimento de arco e rea de regio plana limitada.

Captulo 9: Grficos Tridimensionais
Neste captulo apresentamos grficos tridimensionais das funes definidas em diversas situaes. Apresentamos grficos
de coordenadas cartesianas, grficos de equaes escritas em forma paramtrica dando curvas e superfcies no espao.
Tambm apresentamos curvas de nvel e construmos grficos tridimensionais em coordenadas cilndricas e esfricas.

Captulo 10: Aplicaes II - reas e Volumes
Neste captulo calculamos a rea de regio plana limitada em coordenadas cartesianas e polares, aplicando o conceito de
integral dupla. rea de superfcie e volume do slido de revoluo tambm foram estudados. Tambm calculamos o
volume de um slido, utilizando coordenadas polares e cartesianas em integrao dupla. Utilizando a integrao tripla
tambm calculamos o volume de um slido em coordenadas cartesianas, cilndricas e esfricas.
60
USANDO O MAPLE V

(VERSO 7.0) PARA A DETERMINAO E CLASSIFICAO DE
EXTREMOS DE FUNES DE DUAS VARIVEIS

Objetivos:

1) Definir a funo.

2) Construir o seu grfico.

3) Calcular as derivadas parciais de 1
a
ordem.

4) Determinar os pontos crticos.

5) Calcular as derivadas parciais de 2
a
ordem.

6) Construir o hessiano da funo.

7) Classificar os pontos crticos.

Observao importante: Ao iniciar o trabalho com o Maple salve o seu
arquivo, escolhendo um nome apropriado (fcil de lembrar).

Sinal Significado
:= Recebe
= Igual
; Fim da linha de comando
# Cerquilha (texto)
? Ajuda

Exemplo:
2 2
y x y x f + = ) , (

1)>Z:=x^2+y^2;

2)>plot3d(Z,x=-1..1,y=-1..1);

3)>Zx:=diff(Z,x);
>Zy:=diff(Z,y);

4)>solve({Zx=0,Zy=0},{x,y});

5)>Zxx:=diff(Zx,x);
>Zxy:=diff(Zx,y);
>Zyx:=diff(Zy,x);
>Zyy:=diff(Zy,y);

6)>with(linalg):
>H:=matrix([[Zxx,Zxy],[Zyx,Zyy]]);
>Hessiano:=det(H);

7)>subs(x=xc,y=yc,Hessiano);
>subs(x=xc,y=yc,Zxx);
>subs(x=xc,y=yc,Z);
61
- DEFINIO DA FUNO: ) , ( y x f z =

Exemplo 1:
2 2
) , ( y x y x f + = >Z:=x^2+y^2;

Exemplo 2: y x xy y x y x f 3 2 ) , (
2 3
+ + = >Z:=x^3+y^2+x*y-2*x-3*y;

- CONSTRUO DO GRFICO:
>plot3d(FUNO,x=x
inicial
..x
final
,y=y
inicial
..y
final
);

- DERIVADAS PARCIAIS DE 1
a
ORDEM:
x
f
c
c
) , ( y x >Zx:=diff(Z,x);
y
f
c
c
) , ( y x >Zy:=diff(Z,y);

- A SEGUIR, RESOLVA O SISTEMA FORMADO PELAS DERIVADAS PARCIAIS DE
PRIMEIRA ORDEM:

=
c
c
=
c
c
0
0
y
f
x
f
>solve({Zx=0,Zy=0},{x,y});

- DERIVADAS PARCIAIS DE 2
a
ORDEM:
2
2
x
f
c
c
) , ( y x >Zxx:=diff(Zx,x);
x y
f
c c
c
2
) , ( y x >Zxy:=diff(Zx,y);
y x
f
c c
c
2
) , ( y x >Zyx=diff(Zy,x);
2
2
y
f
c
c
) , ( y x >Zyy:=diff(Zy,y);

- HESSIANO DA FUNO OU MATRIZ HESSIANA:

>with(linalg):

(
(
(
(

c
c
c c
c
c c
c
c
c
=
) , ( ) , (
) , ( ) , (
) , (
2
2 2
2
2
2
y x
y
f
y x
y x
f
y x
x y
f
y x
x
f
y x H
>H:=matrix([[Zxx,Zxy],[Zyx,Zyy]]);


- DETERMINANTE HESSIANO DA FUNO:
) , ( ) , (
) , ( ) , (
) , (
2
2 2
2
2
2
y x
y
f
y x
y x
f
y x
x y
f
y x
x
f
y x H
c
c
c c
c
c c
c
c
c
= >Hessiano:=det(H);
62
- EM SEGUIDA, SUBSTITUA OS PONTOS CRTICOS NO DETERMINANTE HESSIANO
DA FUNO, NA SEGUNDA DERIVADA EM RELAO A X E NA FUNO PARA
FAZER A CLASSIFICAO:
- Se 0 ) , (
0 0
> y x H e 0 ) , (
0 0 2
2
>
c
c
y x
x
f
, ento ) , (
0 0
y x um ponto de mnimo
local de f .

- Se 0 ) , (
0 0
> y x H e 0 ) , (
0 0 2
2
<
c
c
y x
x
f
, ento ) , (
0 0
y x um ponto de mximo
local de f .


- Se 0 ) , (
0 0
< y x H , ento ) , (
0 0
y x no extremante local. Nesse caso,
) , (
0 0
y x um ponto de sela.

- Se 0 ) , (
0 0
= y x H , nada se pode afirmar.

>subs(x=xc,y=yc,Hessiano)
>subs(x=xc,y=yc,Zxx)
>subs(x=xc,y=yc,Z)

- TELA INICIAL DO PROGRAMA (SCRIPT = ROTEIRO) ESCRITO EM MAPLE V



63
Notas:

1)Aps construir o grfico da funo, clique com o boto direito do
mouse sobre a figura gerada e selecione a opo Axes seguida de
Framed, como ilustra a figura a seguir:




A sada ser a figura com eixos, de acordo como a figura que segue:


64
2) Aps substituir a funo por uma nova, pressione ENTER para
verificar se a mesma foi digitada corretamente. A seguir,
selecione no menu a opo Edit seguida de Execute e por fim
Worksheet, conforme ilustrado na figura que segue.



A seguir, apresentaremos alguns exemplos.
65
1)
2 2
) , ( y x y x f + =

- Entradas e sadas do programa (SCRIPT = ROTEIRO)

> Z:=x^2+y^2;# DEFINA AQUI A FUNO QUE SER ANALISADA

:= Z + x
2
y
2


> plot3d(Z,x=-3..3,y=-3..3); # CONSTRUA O GRFICO DA FUNO

> Zx:=diff(Z,x);# CLCULO DA DERIVADA DE Z EM RELAO A VARIVEL x

:= Zx 2 x


> Zy:=diff(Z,y); # CLCULO DA DERIVADA DE Z EM RELAO A VARIVEL y

:= Zy 2 y


> solve({Zx=0,Zy=0},{x,y});# RESOLUO do SISTEMA COMPOSTO PELAS (derivadas de 1.a ordem)

{ } , = x 0 = y 0


> Zxx:=diff(Zx,x);# CLCULO DA DERIVADA DE Zx EM RELAO A VARIVEL x

:= Zxx 2


> Zxy:=diff(Zx,y);# CLCULO DA DERIVADA DE Zx EM RELAO A VARIVEL Y

:= Zxy 0


> Zyx:=diff(Zy,x);# CLCULO DA DERIVADA DE Zy EM RELAO A VARIVEL x

:= Zyx 0


> Zyy:=diff(Zy,y);# CLCULO DA DERIVADA DE Zy EM RELAO A VARIVEL y

:= Zyy 2


> with(linalg):# ACIONANDO A CAIXA DE FERRAMENTAS DE ALGEBRA LINEAR

Warning, the protected names norm and trace have been redefined and unprotected

66
> H:=matrix([[Zxx,Zxy],[Zyx,Zyy]]);# CONSTRUO DA MATRIZ HESSIANA (derivadas de 2.a ordem)

:= H

(
(
2 0
0 2


> Hessiano:=det(H);# CLCULO DO DETERMINANTE DA MATRIZ HESSIANA

:= Hessiano 4


> subs(x=0,y=0,Hessiano);# AVALIANDO O PONTO CRTICO ENCONTRADO NO HESSIANO

4


> subs(x=0,y=0,Zxx);# CASO HESSIANO > 0, CLASSIFIQUE EM MXIMO OU MNIMO

2


> subs(x=0,y=0,Z); # AVALIANDO A FUNO NO PONTO CRTICO ENCONTRADO

0


> # VOLTE A PRIMEIRA LINHA DO PROGRAMA E SUBSTITUA A FUNO POR UMA OUTRA!

> # NO MENU PRINCIPAL CLQUE EM <Edit> SELECIONE A OPO <Execute> E <Worksheet>

> # SUBSTITUA OS NOVOS PONTOS CRTICOS ENCONTRADOS, CLASSIFICANDO-OS.

RESPOSTA: Como Hessiano > 0 e Zxx > 0 => (0, 0) ponto de mnimo e
f(0, 0) = 0.

2)
2 2
) 2 ( ) 1 ( ) , ( + = y x y x f

- Entradas e sadas do programa (SCRIPT = ROTEIRO)

> Z:=(x-1)^2+(y-2)^2;# DEFINA AQUI A FUNO QUE SER ANALISADA

:= Z + ( ) x 1
2
( ) y 2
2

> plot3d(Z,x=-3..3,y=-3..3); # CONSTRUA O GRFICO DA FUNO

67
> Zx:=diff(Z,x);# CLCULO DA DERIVADA DE Z EM RELAO A VARIVEL x

:= Zx 2 x 2

> Zy:=diff(Z,y); # CLCULO DA DERIVADA DE Z EM RELAO A VARIVEL y

:= Zy 2 y 4

> solve({Zx=0,Zy=0},{x,y});# RESOLUO DO SISTEMA COMPOSTO PELAS (derivadas de 1.a ordem)

{ } , = x 1 = y 2

> Zxx:=diff(Zx,x);# CLCULO DA DERIVADA DE Zx EM RELAO A VARIVEL x

:= Zxx 2

> Zxy:=diff(Zx,y);# CLCULO DA DERIVADA DE Zx EM RELAO A VARIVEL Y

:= Zxy 0

> Zyx:=diff(Zy,x);# CLCULO DA DERIVADA DE Zy EM RELAO A VARIVEL x

:= Zyx 0

> Zyy:=diff(Zy,y);# CLCULO DA DERIVADA DE Zy EM RELAO A VARIVEL y

:= Zyy 2

> with(linalg):# ACIONANDO A CAIXA DE FERRAMENTAS DE ALGEBRA LINEAR

> H:=matrix([[Zxx,Zxy],[Zyx,Zyy]]);# CONSTRUO DA MATRIZ HESSIANA (derivadas de 2.a ordem)

:= H

(
(
2 0
0 2

> Hessiano:=det(H);# CLCULO DO DETERMINANTE DA MATRIZ HESSIANA

:= Hessiano 4

> subs(x=1,y=2,Hessiano);# AVALIANDO O PONTO CRTICO ENCONTRADO NO HESSIANO
4

> subs(x=1,y=2,Zxx);# CASO HESSIANO > 0, CLASSIFIQUE EM MXIMO OU MNIMO
2

> subs(x=1,y=2,Z); # AVALIANDO A FUNO NO PONTO CRTICO ENCONTRADO
0

> # VOLTE A PRIMEIRA LINHA DO PROGRAMA E SUBSTITUA A FUNO POR UMA OUTRA!

> # NO MENU PRINCIPAL CLQUE EM <Edit> SELECIONE A OPO <Execute> E <Worksheet>

> # SUBSTITUA OS NOVOS PONTOS CRTICOS ENCONTRADOS, CLASSIFICANDO-OS.


Agora classifique o ponto crtico encontrado!

Resposta:

Como Hessiano > 0 e Zxx > 0 => (1,2) ponto de mnimo e f(1,2) = 0.
68
3) x x xy y x f 3 3 ) , (
3 2
+ =

- Entradas e sadas do programa (SCRIPT = ROTEIRO)

> Z:=3*x*y^2+x^3-3*x;# DEFINA AQUI A FUNO QUE SER ANALISADA

:= Z + 3 x y
2
x
3
3 x

> plot3d(Z,x=-3..3,y=-3..3); # CONSTRUA O GRFICO DA FUNO

> Zx:=diff(Z,x);# CLCULO DA DERIVADA DE Z EM RELAO A VARIVEL x

:= Zx + 3 y
2
3 x
2
3

> Zy:=diff(Z,y); # CLCULO DA DERIVADA DE Z EM RELAO A VARIVEL y

:= Zy 6 x y

> solve({Zx=0,Zy=0},{x,y});# RESOLUO DO SISTEMA COMPOSTO PELAS (derivadas de 1.a ordem)

, , , { } , = y 0 = x 1 { } , = y 0 = x -1 { } , = y 1 = x 0 { } , = y -1 = x 0

> Zxx:=diff(Zx,x);# CLCULO DA DERIVADA DE Zx EM RELAO A VARIVEL x

:= Zxx 6 x

> Zxy:=diff(Zx,y);# CLCULO DA DERIVADA DE Zx EM RELAO A VARIVEL Y

:= Zxy 6 y

> Zyx:=diff(Zy,x);# CLCULO DA DERIVADA DE Zy EM RELAO A VARIVEL x

:= Zyx 6 y

> Zyy:=diff(Zy,y);# CLCULO DA DERIVADA DE Zy EM RELAO A VARIVEL y

:= Zyy 6 x

> with(linalg):# ACIONANDO A CAIXA DE FERRAMENTAS DE ALGEBRA LINEAR


> H:=matrix([[Zxx,Zxy],[Zyx,Zyy]]);# CONSTRUO DA MATRIZ HESSIANA (derivadas de 2.a ordem)

:= H

(
(
6 x 6 y
6 y 6 x

> Hessiano:=det(H);# CLCULO DO DETERMINANTE DA MATRIZ HESSIANA

:= Hessiano 36 x
2
36 y
2


> subs(x=1,y=0,Hessiano);# AVALIANDO O PONTO CRTICO ENCONTRADO NO HESSIANO
36

69
> subs(x=1,y=0,Zxx);# CASO HESSIANO > 0, CLASSIFIQUE EM MXIMO OU MNIMO

6

> subs(x=1,y=0,Z); # AVALIANDO A FUNO NO PONTO CRTICO ENCONTRADO

-2

> subs(x=-1,y=0,Hessiano);# AVALIANDO O PONTO CRTICO ENCONTRADO NO HESSIANO

36

> subs(x=-1,y=0,Zxx);# CASO HESSIANO > 0, CLASSIFIQUE EM MXIMO OU MNIMO

-6

> subs(x=-1,y=0,Z); # AVALIANDO A FUNO NO PONTO CRTICO ENCONTRADO

2

> subs(x=0,y=1,Hessiano);# AVALIANDO O PONTO CRTICO ENCONTRADO NO HESSIANO

-36

> subs(x=0,y=1,Zxx); # CASO HESSIANO > 0, CLASSIFIQUE EM MXIMO OU MNIMO;

0

> subs(x=0,y=1,Z); # AVALIANDO A FUNO NO PONTO CRTICO ENCONTRADO

0

> subs(x=0,y=-1,Hessiano);# AVALIANDO O PONTO CRTICO ENCONTRADO NO HESSIANO

-36

> subs(x=0,y=-1,Zxx); # CASO HESSIANO > 0, CLASSIFIQUE EM MXIMO OU MNIMO;

0

> subs(x=0,y=-1,Z); # AVALIANDO A FUNO NO PONTO CRTICO ENCONTRADO

0

> # VOLTE A PRIMEIRA LINHA DO PROGRAMA E SUBSTITUA A FUNO POR UMA OUTRA!

> # NO MENU PRINCIPAL CLQUE EM <Edit> SELECIONE A OPO <Execute> E <Worksheet>

> # SUBSTITUA OS NOVOS PONTOS CRTICOS ENCONTRADOS, CLASSIFICANDO-OS.

Agora classifique cada um dos pontos encontrados!

Resposta:

- Ponto crtico (1, 0): Como Hessiano > 0 e Zxx > 0 => (1, 0)
ponto de mnimo e f(1, 0) = -2.

- Ponto crtico (-1, 0): Como Hessiano > 0 e Zxx < 0 => (-1, 0)
ponto de mximo e f(-1, 0) = 2.

- Ponto crtico (0, 1): Como Hessiano < 0 => (0, 1) ponto de sela
e f(0, 1) = 0.

- Ponto crtico (0, -1): Como Hessiano < 0 => (0, -1) ponto de
sela e f(0, -1) = 0.
70
4)
|
|
.
|

\
| +

=
2
2 2
) , (
y x
e xy y x f

- Entradas e sadas do programa (SCRIPT = ROTEIRO)

> Z:=x*y*exp(-(x^2+y^2)/2);# DEFINA AQUI A FUNO QUE SER ANALISADA

:= Z x y e
( ) / 1 2 x
2
/ 1 2 y
2

> plot3d(Z,x=-3..3,y=-3..3); # CONSTRUA O GRFICO DA FUNO

> Zx:=diff(Z,x);# CLCULO DA DERIVADA DE Z EM RELAO A VARIVEL x

:= Zx y e
( ) / 1 2 x
2
/ 1 2 y
2
x
2
y e
( ) / 1 2 x
2
/ 1 2 y
2

> Zy:=diff(Z,y); # CLCULO DA DERIVADA DE Z EM RELAO A VARIVEL y

:= Zy x e
( ) / 1 2 x
2
/ 1 2 y
2
x y
2
e
( ) / 1 2 x
2
/ 1 2 y
2


> solve({Zx=0,Zy=0},{x,y});# RESOLUO DO SISTEMA COMPOSTO PELAS (derivadas de 1.a ordem)

, , , , { } , = x 0 = y 0 { } , = x 1 = y 1 { } , = x 1 = y -1 { } , = x -1 = y 1 { } , = x -1 = y -1

> Zxx:=diff(Zx,x);# CLCULO DA DERIVADA DE Zx EM RELAO A VARIVEL x

:= Zxx + 3 x y e
( ) / 1 2 x
2
/ 1 2 y
2
x
3
y e
( ) / 1 2 x
2
/ 1 2 y
2

> Zxy:=diff(Zx,y);# CLCULO DA DERIVADA DE Zx EM RELAO A VARIVEL Y

:= Zxy + e
( ) / 1 2 x
2
/ 1 2 y
2
y
2
e
( ) / 1 2 x
2
/ 1 2 y
2
x
2
e
( ) / 1 2 x
2
/ 1 2 y
2
x
2
y
2
e
( ) / 1 2 x
2
/ 1 2 y
2

> Zyx:=diff(Zy,x);# CLCULO DA DERIVADA DE Zy EM RELAO A VARIVEL x

:= Zyx + e
( ) / 1 2 x
2
/ 1 2 y
2
y
2
e
( ) / 1 2 x
2
/ 1 2 y
2
x
2
e
( ) / 1 2 x
2
/ 1 2 y
2
x
2
y
2
e
( ) / 1 2 x
2
/ 1 2 y
2

> Zyy:=diff(Zy,y);# CLCULO DA DERIVADA DE Zy EM RELAO A VARIVEL y

:= Zyy + 3 x y e
( ) / 1 2 x
2
/ 1 2 y
2
x y
3
e
( ) / 1 2 x
2
/ 1 2 y
2

> with(linalg):# ACIONANDO A CAIXA DE FERRAMENTAS DE ALGEBRA LINEAR



71
> H:=matrix([[Zxx,Zxy],[Zyx,Zyy]]);# CONSTRUO DA MATRIZ HESSIANA (derivadas de 2.a ordem)
H :=
+ 3 x y e
( ) / 1 2 x
2
/ 1 2 y
2
x
3
y e
( ) / 1 2 x
2
/ 1 2 y
2
[ ,
+ e
( ) / 1 2 x
2
/ 1 2 y
2
y
2
e
( ) / 1 2 x
2
/ 1 2 y
2
x
2
e
( ) / 1 2 x
2
/ 1 2 y
2
x
2
y
2
e
( ) / 1 2 x
2
/ 1 2 y
2
]
+ e
( ) / 1 2 x
2
/ 1 2 y
2
y
2
e
( ) / 1 2 x
2
/ 1 2 y
2
x
2
e
( ) / 1 2 x
2
/ 1 2 y
2
x
2
y
2
e
( ) / 1 2 x
2
/ 1 2 y
2
[ ,
+ 3 x y e
( ) / 1 2 x
2
/ 1 2 y
2
x y
3
e
( ) / 1 2 x
2
/ 1 2 y
2
]


> Hessiano:=det(H);# CLCULO DO DETERMINANTE DA MATRIZ HESSIANA
Hessiano 5 x
2
y
2
( ) e
( ) / 1 2 x
2
/ 1 2 y
2
2
x
2
y
4
( ) e
( ) / 1 2 x
2
/ 1 2 y
2
2
x
4
y
2
( ) e
( ) / 1 2 x
2
/ 1 2 y
2
2
:=
( ) e
( ) / 1 2 x
2
/ 1 2 y
2
2
2 y
2
( ) e
( ) / 1 2 x
2
/ 1 2 y
2
2
2 x
2
( ) e
( ) / 1 2 x
2
/ 1 2 y
2
2
+ +
y
4
( ) e
( ) / 1 2 x
2
/ 1 2 y
2
2
x
4
( ) e
( ) / 1 2 x
2
/ 1 2 y
2
2



> subs(x=0,y=0,Hessiano);# AVALIANDO O PONTO CRTICO ENCONTRADO NO HESSIANO

( ) e
0
2


> subs(x=0,y=0,Zxx);# CASO HESSIANO > 0, CLASSIFIQUE EM MXIMO OU MNIMO
0


> subs(x=0,y=0,Z); # AVALIANDO A FUNO NO PONTO CRTICO ENCONTRADO
0


> subs(x=1,y=1,Hessiano);# AVALIANDO O PONTO CRTICO ENCONTRADO NO HESSIANO
4 ( ) e
( ) -1
2


> subs(x=1,y=1,Zxx);# CASO HESSIANO > 0, CLASSIFIQUE EM MXIMO OU MNIMO
2 e
( ) -1


> subs(x=1,y=1,Z); # AVALIANDO A FUNO NO PONTO CRTICO ENCONTRADO
e
( ) -1


> subs(x=1,y=-1,Hessiano);# AVALIANDO O PONTO CRTICO ENCONTRADO NO HESSIANO
4 ( ) e
( ) -1
2


> subs(x=1,y=-1,Zxx); # CASO HESSIANO > 0, CLASSIFIQUE EM MXIMO OU MNIMO;
2 e
( ) -1


> subs(x=1,y=-1,Z); # AVALIANDO A FUNO NO PONTO CRTICO ENCONTRADO
e
( ) -1


> subs(x=-1,y=1,Hessiano);# AVALIANDO O PONTO CRTICO ENCONTRADO NO HESSIANO
4 ( ) e
( ) -1
2


> subs(x=-1,y=1,Zxx); # CASO HESSIANO > 0, CLASSIFIQUE EM MXIMO OU MNIMO;
2 e
( ) -1

72

> subs(x=-1,y=1,Z); # AVALIANDO A FUNO NO PONTO CRTICO ENCONTRADO
e
( ) -1


> subs(x=-1,y=-1,Hessiano);# AVALIANDO O PONTO CRTICO ENCONTRADO NO HESSIANO
4 ( ) e
( ) -1
2


> subs(x=-1,y=-1,Zxx); # CASO HESSIANO > 0, CLASSIFIQUE EM MXIMO OU MNIMO;
2 e
( ) -1


> subs(x=-1,y=-1,Z); # AVALIANDO A FUNO NO PONTO CRTICO ENCONTRADO
e
( ) -1


> # VOLTE A PRIMEIRA LINHA DO PROGRAMA E SUBSTITUA A FUNO POR UMA OUTRA!

> # NO MENU PRINCIPAL CLQUE EM <Edit> SELECIONE A OPO <Execute> E <Worksheet>

> # SUBSTITUA OS NOVOS PONTOS CRTICOS ENCONTRADOS, CLASSIFICANDO-OS.

Resposta:

- Ponto crtico (0, 0): Como Hessiano < 0 => (0, 0) ponto de sela
e f(0, 0) = 0.

- Ponto crtico (1, -1): Como Hessiano > 0 e Zxx > 0 => (1, -1)
ponto de mnimo e f(1, -1) = -e
-1
.

- Ponto crtico (-1, 1): Como Hessiano > 0 e Zxx > 0 => (-1, 1)
ponto de mnimo e f(-1, 1) = -e
-1
.

- Ponto crtico (1, 1): Como Hessiano > 0 e Zxx < 0 => (1, 1)
ponto de mximo e f(1, 1) = e
-1
.

- Ponto crtico (-1, -1): Como Hessiano > 0 e Zxx < 0 => (-1, -1)
ponto de mximo e f(-1, -1) = e
-1
.

73
- LISTA DE EXERCCIOS PROPOSTOS PARA A REVISO DOS CONCEITOS

- Utilizando o software Maple V, determine (caso exista(m)) os
pontos crticos da funo dada. A seguir classifique-os em: Ponto
de mximo, ponto de mnimo ou ponto de sela. Determine tambm o
valor funcional para cada ponto crtico.

1) 4 2 2 ) , (
2 2
+ = y x y x xy y x f
Resposta:
- Ponto crtico (-2, -2): Como Hessiano > 0 e Zxx < 0 => (-2, -2)
ponto de mximo e f(-2, -2) = 8 .

2) xy y
x
y x f 4 9
3
) , (
3
3
+ =
Resposta:
- Ponto crtico (4/3, 4/9): Como Hessiano > 0 e Zxx > 0 => (4/3,
4/9) ponto de mnimo e f(4/3, 4/9) =-64/81.
- Ponto crtico (0, 0) Como Hessiano < 0 => (0 0) ponto de sela e
f(0, 0) = 0.

3) ) ln( 2 ) , (
2
y x x xy y x f + =
Resposta:
- Ponto crtico (1/2, 2): Como Hessiano > 0 e Zxx > 0 => (1/2, 2)
ponto de mnimo e f(1/2, 2) = 2 ln(1/2).

4)
2 2
1 2 2
) 2 ( ) , (
y x
e y x y x f

+ =
Resposta:
- Ponto crtico (0, 0): Como Hessiano > 0 e Zxx > 0 => (0, 0)
ponto de mnimo e f(0, 0) = 0 .
- Ponto crtico (1, 0): Como Hessiano > 0 e Zxx < 0 => (1, 0)
ponto de mximo e f(1, 0) = 2.
- Ponto crtico (-1, 0): Como Hessiano > 0 e Zxx < 0 => (-1, 0)
ponto de mximo e f(-1, 0) = 2.
- Ponto crtico (0, 1): Como Hessiano < 0 => (0, 1) ponto de sela
e f(0, 1) = 1.
- Ponto crtico (0, -1): Como Hessiano < 0 => (0, -1) ponto de
sela e f(0, -1) = 1 .

5) y e y x f
x
cos ) , (
2
=


Resposta:
- Esta funo no admite pontos extremos (pontos crticos). O
software Maple V no mostra a soluo, pois a mesma no existe
(apenas no avisa que a mesma no existe).
74
6) y x y x y x f 32 4 ) , (
4 2
+ =
Resposta:
- Ponto crtico (2, 2): Como Hessiano > 0 e Zxx > 0 => (2, 2)
ponto de mnimo e f(2, 2) = -52 .

7) 5
3 3
) , (
2 2
+ + + + + =
y x
y xy x y x f
Resposta:
- Ponto crtico (1, 1): Como Hessiano > 0 e Zxx > 0 => (1, 1)
ponto de mnimo e f(1, 1) = 14.

8) y x xy y x y x f 3 2 ) , (
2 3
+ + =
Resposta:
- Ponto crtico (1/2, 5/4): Como Hessiano > 0 e Zxx > 0 => (1/2,
5/4) ponto de mnimo e f(1/2, 5/4) = -39/16.
- Ponto crtico (-1/3, 5/3): Como Hessiano < 0 => (-1/3, 5/3)
ponto de sela e f(-1/3, 5/3) = -58/27.

9) y x y x y x f 6 6 2 2 ) , (
3 3
+ =
Resposta:
- Ponto crtico (1, 1): Como Hessiano > 0 e Zxx > 0 => (1, 1)
ponto de mnimo e f(1, 1) = -8 .
- Ponto crtico (-1, -1): Como Hessiano > 0 e Zxx < 0 => (-1, -1)
ponto de mximo e f(-1, -1) = 8.
- Ponto crtico (1, -1): Como Hessiano < 0 => (1, -1) ponto de
sela e f(1, -1) = 0.
- Ponto crtico (-1, 1): Como Hessiano < 0 => (-1, 1) ponto de
sela e f(-1, 1) = 0.

10) ) (
2
1
) , (
2 2
y x sen y x f + =
Resposta:
- Ponto crtico (0, 0): Como Hessiano > 0 e Zxx < 0 => (0, 0)
ponto de mximo.

75
11) INTRODUO PROGRAMAO NO MAPLE

O Maple possui linguagem de programao de alto nvel, disponvel on-line e compatvel com os
recursos de sua prpria estrutura. Assim, possvel construir procedimentos nos quais o usurio tenha
um interesse especial, e utilizar nessa construo todas as estruturas e funes do Maple, ou mesmo
estend-las ou modific-las, de acordo com suas necessidades particulares. Procedimentos e estruturas
modificadas podem ser inicializadas em um nico pacote, e um conjunto de procedimentos pode ser
inicializado em uma biblioteca.

- Procedimentos

No Maple os programas so feitos em forma de procedimentos. Um procedimento na verdade uma
funo que transforma os argumentos inseridos em outros argumentos, conforme foi programado. A
estrutura de um procedimento a seguinte:

Nome_procedimento:=proc(argumentos)
Local (variveis locais);
instrues a serem executadas;
end;

Exemplos:

1) Usando o Maple, criar um procedimento em que fornecido um nmero x, o mesmo calcule o seu
cubo.
Soluo:
> cubo:=proc(x);
> x^3;
> end;
:= cubo proc( ) end proc x ^ x 3

> # Exemplos:
> cubo(2);
8

> cubo(-2);
-8

> cubo(0);
0

> cubo(sqrt(2));
2 2

> cubo(I);
-I

2) O termial de um nmero bastante conhecido. S no comum o uso de um smbolo especfico e
de um nome. De maneira semelhante ao fatorial, pode-se definir o termial de um nmero natural,
representado por ? n , por:

1 2 3 ... ) 3 ( ) 2 ( ) 1 ( ? + + + + + + + = n n n n n , para n maior ou igual a 2

Nota: Para mais detalhe consulte o Anexo I - O problema dos quatro quatros
Usando o Maple, criar um procedimento em que fornecido um nmero n, o mesmo calcule o seu
termial.
Soluo:
Comearemos com a definio de um procedimento bem simples:
> termial:= proc(n)# Imitando a definio de fatorial, mas com soma em vez de produto.
> sum(i, i=1..n);# sum soma uma seqncia numrica ou literal.
> end;
:= termial proc ( ) end proc n ( ) sum , i = i .. 1 n

76
Assim, colocando a instruo sum(..) entre os termos proc(..) e end ns a transformamos em
um procedimento. Podemos agora chamar essa nova funo:

> termial(1);
1

> termial(2);
3

> termial(10);
55

> termial(100);# Gauss conhecia esta soma!
5050


Podemos operar com essa funo, como com outra qualquer funo do Maple:

> termial(n);

1
2
( ) + n 1
2
1
2
n
1
2

> factor(%);#J conhecemos esta frmula: Soma dos n elementos de uma PA!
1
2
n ( ) + n 1


A varivel n utilizada na definio do procedimento termial chama-se parmetro ou
argumento. Em nossa definio no especificamos o tipo do argumento, de modo que podemos
colocar qualquer tipo que seja aceito pelo comando sum.

Por exemplo:

> termial(5/2); # 5/2 = 2.5 => 2 + 1 = 3
3

> termial(5.3); # 5.3 => 5 + 4 + 3 + 2 + 1 = 15
15


Se desejarmos restringir o tipo do argumento de entrada, podemos definir assim nosso
procedimento:

> termial2 := proc(n::posint) # posint significa tipo inteiro positivo
> sum(i, i=1..n);
> end;
:= termial2 proc ( ) end proc :: n posint ( ) sum , i = i .. 1 n



Agora nosso procedimento s aceita argumento inteiro positivo. Se utilizarmos outro tipo de dado
numrico receberemos uma mensagem de erro.

> termial2(5/2);
Error, invalid input: termial2 expects its 1st argument, n, to be of type posint,
but received 5/2

77
- Variveis locais e globais

As variveis utilizadas na construo de um procedimento podem ser locais ou globais . Os valores
das variveis locais so reconhecidos pelo Maple apenas dentro do procedimento. Por outro lado, os
valores das variveis globais so reconhecidos pelo Maple tambm fora do procedimento. Se o
procedimento no especifica o carter da varivel que est utilizando, o Maple decide sobre isso e
avisa o usurio. Variveis utilizadas normalmente na folha de trabalho, fora da definio de
procedimentos, so sempre globais. Vejamos alguns exemplos.

> a:= 5; # Definindo o valor da varivel global a
:= a 5

> termial3:= proc(n) # Usando a como varivel local
> local a;
> a:= sum(i, i=1..n);
> a;
> end;

:= termial3 proc ( ) end proc n local ; a ; := a ( ) sum , i = i .. 1 n a

> termial3(3);

6

> a;
5


Vemos que, ao executar o procedimento, o valor da varivel a passou a ser 6, mas isso ocorreu
apenas localmente. Estudemos agora o seguinte exemplo:

> termial4 := proc(n) # Usando a como varivel global
global a;
a:= sum(i, i=1..n);
a;
end;

:= termial4 proc( ) end proc n global ; a ; := a ( ) sum , i = i .. 1 n a

> termial4(3);

6

> a;

6


Vemos assim que o valor de a foi modificado pelo procedimento.

78
- Uma forma de definir uma funo por procedimento: Algumas aplicaes ao dia a dia

Sintaxe: Como sabemos, um procedimento tem a seguinte forma:

Nome_procedimento:=proc(argumentos)
Local (variveis locais);
instrues a serem executadas;
end;

Exemplos:

1) Usando o Maple, elabore um procedimento que determine o valor em reais a ser pago em relao ao
consumo de gua, medido em m
3
, conta de gua residencial SANEPAR 2006 para isso use os
dados que constam no quadro a seguir:

Faixas de consumo (m
3
) Tarifa (R$)
at 10 16,35 (Mnimo)
11 a 30 2,35/ m
3
(Excedente)
acima de 30 4,18/m
3
(Excedente)
Fonte: SANEPAR, 2006

Soluo:

> restart:# Reiniciar as variveis
> agua:=proc(x);
if x<=10 then 16.35 elif x<=30 then 16.35+(x-10)*2.45 else
16.35+20*2.45+(x-30)*4.18 fi;
end;
agua x proc( ) :=
s x 10 16.35 if then
s x 30 + 8.15 2.45 x elif then
+ 60.05 4.18 x else
end if


end proc

> # Exemplos:
> agua(0);
16.35

> agua(5);
16.35

> agua(10);
16.35

> agua(15);
28.60

> agua(20);
40.85

> agua(30);
65.35

> agua(50);
148.95


79
2) Usando o Maple, elabore um procedimento que determine o valor a ser pago em relao ao
saneamento bsico (gua e esgoto), medido em m
3
, conta de saneamento bsico SANEPAR 2006
para isso use os dados do exemplo anterior e o fato de que o valor a ser pago em relao ao esgoto
de 80% do valor da gua.
Soluo:
> restart:
> saneamento:=proc(x);
if x<=10 then (16.35)*1.80 else (16.35+(x-10)*2.45)*1.80 fi;
end;
saneamento :=
proc( ) end proc x if then else end if s x 10 29.4300 + 14.6700 4.4100 x

> saneamento(0);
29.4300

> saneamento(5);
29.4300

> saneamento(10);
29.4300

> saneamento(15);
51.4800

> saneamento(20);
73.5300


Exerccio:

1) Usando o Maple, elabore um procedimento que determine o valor em reais a ser pago em relao ao
consumo de gua, medido em m
3
, conta de gua residencial SABESP 2006 para isso use os
dados que constam no quadro a seguir:

Faixas de consumo (m
3
) Tarifa (R$)
at 10 11,19 (Mnimo)
11 a 20 1,56/ m
3
(Excedente)
21 a 30 2,39/m
3
(Excedente)
31 a 50 2,39/m
3
(Excedente)
acima de 50 2,86/m
3
(Excedente)
Fonte: SANEPAR, 2006
Soluo: Agora com vocs!

2) Sobre o fatorial de um nmero natural, que indicamos por ! n , sabemos que:

1 2 3 ... ) 3 ( ) 2 ( ) 1 ( ! = n n n n n , para n maior ou igual a 2 e: 0! = 1 e 1! = 1
Usando o Maple, criar um procedimento em que fornecido um nmero n, o mesmo calcule o seu
fatorial.
Soluo: Agora com vocs!
Sugesto: Use a funo do Maple: mul cuja finalidade multiplicar uma seqncia de valores
Exemplo:
> mul(i, i=1..5);
120


80
3) Usando o Maple, criar um procedimento para determinar se um dado nmero par ou mpar.
> par_impar:=proc(x)
> if irem(x,2)=0 then # irem Resto da diviso inteira
> print(x,` par`)
> else print(x,` impar`)
> fi
> end;
par_impar x proc( ) :=
if then else end if = ( ) irem , x 2 0 ( ) print , x ` par` ( ) print , x ` impar`
end proc

> # Exemplos:
> par_impar(-3);
, -3 impar

> par_impar(6);
, 6 par

> par_impar(9);
, 9 impar

> par_impar(2.4);
Error, (in par_impar) wrong number (or type) of parameters in function irem
> par_impar(123456789);
, 192837465 impar

4) Construa uma funo definida por vrias sentenas no Maple par a funo:

>
< s
< s
<
=
2 , 3
2 1 , 2
1 0 , 1
0 , 0
) (
x se
x se
x se
x se
x F
Soluo:
> F:=x->
if x<0 then 0
elif x<1 then 1
elif x<2 then 2
else 3
fi;
F x proc( ) :=
option ; , operator arrow
if then elif then elif then else end if < x 0 0 < x 1 1 < x 2 2 3
end proc

> plot(F,-2..4);

81
5) Tabela do INSS
> restart:
> INSS:=SB->
if SB<=752.62 then (7.65/100)*SB
elif SB>752.62 and SB<=780 then (8.65/100)*SB
elif SB>780 and SB<=1254.36 then (9.00/100)*SB
elif SB>1254.37 and SB<=2508.72 then (11.00/100)*SB
else 275.95
fi;
INSS SB proc( ) :=
option ; , operator arrow
s SB 752.62 .07650000000 SB if then
and < 752.62 SB s SB 780 .08650000000 SB elif then
and < 780 SB s SB 1254.36 .09000000000 SB elif then
and < 1254.37 SB s SB 2508.72 .1100000000 SB elif then
275.95 else
end if
end proc

> INSS(500);
38.25000000

> INSS(760);
65.74000000

> INSS(1000);
90.00000000

> INSS(1500);
165.0000000

> INSS(3000);
275.95

> plot(INSS,0..5000,title=`VARIAO DO INSS EM FUNO DO SALRIO
BRUTO`,color=black);
82


6) Construa um programa em que dado um nmero n, calcula o seu termial.
> termial:= proc(n) #imitando a definio de fatorial, mas com soma
em vez de produto
> sum(i,i=1..n);
> end;
:= termial proc( ) end proc n ( ) sum , i = i .. 1 n

> termial(1);
1

> termial(2);
3

> termial(10);
55

> termial(100);# Gaus conhecia esta soma
5050

> termial(n);

1
2
( ) + n 1
2
1
2
n
1
2

> factor(%);#J conhecemos esta frmula: Soma dos elementos de uma
PA!
1
2
n ( ) + n 1
83
7) Criar um procedimento usando a funo for calcule os 10 primeiros quadrados.

> for j from 1 to 10 do

> lprint (`O quadrado de` ,j,``, j^2);

> od;
`O quadrado de`, 1, ``, 1
`O quadrado de`, 2, ``, 4
`O quadrado de`, 3, ``, 9
`O quadrado de`, 4, ``, 16
`O quadrado de`, 5, ``, 25
`O quadrado de`, 6, ``, 36
`O quadrado de`, 7, ``, 49
`O quadrado de`, 8, ``, 64
`O quadrado de`, 9, ``, 81
`O quadrado de`, 10, ``, 100

84
Num procedimento podem ser necessrios comandos de
- repetio e iterao
- seleo

Vamos falar rapidamente sobre eles.

Certas situaes exigem que uma instruo seja repetida vrias vezes. Para isto utilizamos o comando
"for". A utilizao deste comando segue o esquema:

(for-do-od)

Por exemplo:
for j from inicio by passo to fim
do expresses dependentes de j
od

A sequencia "do-od" tambm funciona em outros comandos.

Um outro comando especial para fazer recorrncias o "while" que em portugus significa enquanto.
O esquema o seguinte:

while k satisfaz-condio do
instrues envolendo k
od

Os comandos de seleo "if" ou desvio so utilizados para se executar uma instruo dentre as vrias
possveis, condicionadas a uma proposio que pode ser falsa ou verdadeira. O esquema o seguinte:

if condio verdadeira then
instrues a executar
else outras instrues a executar
fi

Os comandos de sada de dados so "print"e o "lprint".
85
MATRIZES USANDO O SOFTWARE MAPLE

Aps digitar a matriz, pressione <ENTER>. Selecione a Matriz digitada e clique com o boto direito
do Mouse, abrir a seguinte janela com as respectivas funes, selecione a desejada.








86
0. INTRODUO AO PACOTE DE LGEBRA LINEAR NO MAPLE

Nesta seo introduziremos algumas das principais funes do pacote
de lgebra Linear linalg para as aplicaes mais bsicas: operaes com
matrizes, resoluo de sistemas lineares, clculo da inversa de uma
matriz e clculo do determinante de uma matriz.

Sempre que iniciarmos um trabalho no software Maple, ser de
fundamental importncia acionar o pacote de funes e operaes
especficas para o problema em questo. O comando

with(package):

aciona o pacote de comandos e funes package do Maple. Em
particular,utilizamos o pacote de lgebra Linear:

with(linalg):

1. OPERAES COM MATRIZES

a) Soma de matrizes e multiplicao de uma matriz por um escalar

Com o comando:

matadd(A,B,a,b);

executamos a combinao linear aA+bB de A e B, onde a e b so
escalares reais.

Dessa forma podemos:
1) Somar duas matrizes;
2) Multiplicar uma matriz por uma escalar;
3) Fazer qualquer combinao linear de duas matrizes.

Exemplo 1:

> with(linalg):
A:=matrix([ [1,2],[3,4] ]);
Warning, the protected names norm and trace have been redefined and
unprotected
:= A

(
(
1 2
3 4

> B:=matrix([ [5,6],[7,8] ]);
:= B

(
(
5 6
7 8

Observao:Se queremos apenas somar as duas matrizes, basta omitir os
escalares

> S:=matadd(A,B);
:= S

(
(
6 8
10 12

Observao: S a matriz A+B.

87
Exemplo 2:

Queremos agora multiplicar a matriz A pelo escalar 3:

> A:=matrix([ [1,2],[3,4] ]);
:= A

(
(
1 2
3 4

Para tanto necessrio que um dos escalares seja zero, assim a outra
matriz de entrada (pode ser qualquer matriz) no interfere no
clculo desejado.

> M:=matadd(A,A,3,0);
:= M

(
(
3 6
9 12


Observao: A matriz M a matriz A multiplicada pelo escalar 3.

Exemplo 3:

Para fazer a combinao linear de duas matrizes, s usar todos os
argumentos do comando. Por exemplo, para obter a combinao linear
5A - 8B:

> A:=matrix([ [1,2],[3,4] ]);
:= A

(
(
1 2
3 4


> B:=matrix([ [5,6],[7,8] ]);
:= B

(
(
5 6
7 8

> C:=matadd(A,B,5,-8);
:= C

(
(
-35 -38
-41 -44

b) Produto de matrizes

O comando:
multiply(A,B,...);

executa o produto das matrizes listadas, na ordem em que aparecem,
desde que para isso, as matrizes escolhidas obedeam s regras de
multiplicao de matrizes (o nmero de colunas da primeira matriz a
ser multiplicada deve ser igual ao nmero de linhas da segunda).
Exemplo 4:

> with(linalg):
A:=matrix([ [1,2],[3,4] ]);
:= A

(
(
1 2
3 4

> B:=matrix([ [5,6],[7,8] ]);
:= B

(
(
5 6
7 8

Multiplicaremos A por B, obtendo uma matriz AB.

88
> AB:=multiply(A,B);
:= AB

(
(
19 22
43 50


Observao: Lembre-se que o produto de matrizes em geral no
comutativo:

> BA:=multiply(B,A);
:= BA

(
(
23 34
31 46


Agora multiplicaremos o produto AB por uma matriz C, obtendo a
matriz ABC:

> C:=matrix([ [9,10],[11,12] ]);
:= C

(
(
9 10
11 12

> ABC:=multiply(AB,C);
:= ABC

(
(
413 454
937 1030


Observao: Da mesma maneira, possvel calcular o produto ABC
diretamente, sem antes ter calculado o produto AB:

> ABC:=multiply(A,B,C);
:= ABC

(
(
413 454
937 1030


c) Transposio de uma matriz

O comando

transpose(A);

calcula a matriz transposta de A.

Exemplo 5:

> A:=matrix([ [1,2,3],[4,5,6],[7,8,9] ]);
:= A

(
(
(
(
(
1 2 3
4 5 6
7 8 9

> AT:=transpose(A);
:= AT

(
(
(
(
(
1 4 7
2 5 8
3 6 9


Observao: As linhas de A so as colunas de AT, pois AT a matriz
transposta de A, e vice-versa.



89
d) Potncias de uma matriz

O comando:

evalm(A^n);

calcula a n-sima potncia de uma matriz A.

Exemplo 6:

> A:=matrix([ [1,2],[3,4] ]);
:= A

(
(
1 2
3 4


Para calcular A^10, ao invs de usarmos o comando
multiply(A,A,A,...,A) e escrevermos 10 vezes a matriz A, fazemos
simplesmente:

> W:=evalm(A^10);
:= W

(
(
4783807 6972050
10458075 15241882



2. RESOLUO DE SISTEMAS LINEARES

O comando:

solve({equao 1, equao 2, ... , equao n},{x1, x2, ... , xm});

resolve o sistema de n equaes e m variveis x1, x2, ... , xm.

Exemplo 1: Sistema com soluo nica (SISTEMA POSSVEL DETERMINADO - SPD).

Dado o sistema

= +
= +
= + +
3 2
6 2
6
:
z y x
z y x
z y x
S

usamos o comando solve para determinar o valor das variveis x, y e z :

> restart:
with(linalg):
solve( {x+y+z=6, 2*x-y+z=3, x-y+2*z=3}, {x,y,z} );

Warning, the protected names norm and trace have been redefined and
unprotected

{ } , , = z
9
5
= y
12
5
= x
9
5




90
Exemplo 2: Sistema sem soluo (SISTEMA IMPOSSVEL - SI).

Dado o sistema

= + +
= + +
= + +
50 8 6 4
21 5 4 3
14 3 2
:
z y x
z y x
z y x
S

Ao executarmos o comando solve

> restart:
with(linalg):
solve( {x+2*y+3*z=14, 3*x+4*y+5*z=21, 4*x+6*y+8*z=50}, {x,y,z} );
Warning, the protected names norm and trace have been redefined and
unprotected

Observao: Neste caso, no obteremos resultado algum. Isso ocorrer
sempre que o sistema em questo for impossvel, ou seja, no admite
soluo.

Exemplo 3: Sistema com infinitas solues (SISTEMA POSSVEL INDETERMINADO - SPI).

Dado o sistema homogneo (todos os termos independente so nulos)

= + +
= + +
= + +
1 8 7 5
0 3 3 2
1 5 4 3
:
z y x
z y x
z y x
S
> restart:
with(linalg):
solve( {3*x+4*y+5*z=1, 2*x+3*y+3*z=0, 5*x+7*y+8*z=1}, {x,y,z} );

Warning, the protected names norm and trace have been redefined and
unprotected

{ } , , = y
1
3
x 1 = z +
1
3
x 1 = x x

Observao:Verificamos que uma das variveis (z, nesse caso) tomada
como parmetro, da temos infinitas solues para esse sistema: para
cada valor atribudo a z, obtemos uma soluo diferente para o
sistema.

91
3. CLCULO DO DETERMINANTE E INVERSA DE UMA MATRIZ

a) Determinante de uma Matriz

O comando

det(A);

calcula o determinante da matriz A.

Exemplo:

> restart:
with(linalg):
A:= matrix([ [6,1,8],[7,5,3],[2,9,4] ]);
det(A);
:= A

(
(
(
(
(
6 1 8
7 5 3
2 9 4

360

Observao: Se a Matriz no for quadrada, ser exibida uma mensagem de
erro avisando que a mesma deve ser uma matriz quadrada.

b) Inversa de uma Matriz

Sempre que o determinante de uma matriz for diferente de zero, esta
matriz possui uma inversa. Neste caso, o comando

inverse(A);

calcula a matriz inversa de A.

Exemplo 1:

> restart:
with(linalg):
A:= matrix([ [6,1,8],[7,5,3],[2,9,4] ]);
det(A);
invA:=inverse(A);
:= A

(
(
(
(
(
6 1 8
7 5 3
2 9 4


360


:= invA

(
(
(
(
(
(
(
(
(
(
(
(
(
-7
360
17
90
-37
360
-11
180
1
45
19
180
53
360
-13
90
23
360



92
Exemplo 2:

> B:=matrix([ [1,2,3],[4,5,6],[7,8,9] ]);
det(B);
invB:= inverse(B);
:= B

(
(
(
(
(
1 2 3
4 5 6
7 8 9

0

Error, (in inverse) singular matrix

Observao: Recebemos uma mensagem de erro esperada, j que como o
determinante de B 0, B no possui inversa.

4. INTERPRETAO GEOMTRICA DA SOLUO DE SISTEMAS LINEARES COM DUAS
EQUAES E DUAS INCGNITAS

O comando:
solve({equao 1, equao 2},{x, y});

resolve o sistema de duas equaes e duas variveis x e y.

Exemplo 1: Sistema com soluo nica (SISTEMA POSSVEL DETERMINADO - SPD).

Dado o sistema

=
= +
2
10
:
y x
y x
S

usamos o comando solve para determinar o valor das variveis x e y:
usamos o comando implicitplot para a construes do grfico das funes que compem o
sistema linear.

> restart:
with(linalg):
solve( {x+y=6, x-y=2}, {x,y} );
with(plots):
implicitplot({x+y=6, x-y=2},x=-10..10,y=-10..10,title=`Sistema
Linear - SPD`);
{ } , = y 2 = x 4


93
Observao: A soluo do sistema linear, representa o ponto de
interseco das duas equaes de retas que compem o sistema.

Exemplo 2: Sistema sem soluo (SISTEMA IMPOSSVEL - SI).

Dado o sistema

= +
= +
10 2 2
6
:
y x
y x
S

usamos o comando solve para determinar o valor das variveis x e y:
usamos o comando implicitplot para a construes do grfico das funes que compem o
sistema linear.

> restart:
with(linalg):
solve( {x+y=6, 2*x+2*y=10}, {x,y} );
with(plots):
implicitplot({x+y=6, 2*x+2*y=10},x=-10..10,y=-10..10,title=`Sistema
Linear - SI`);
Warning, the protected names norm and trace have been redefined and
unprotected

Warning, the name changecoords has been redefined



Observao: Neste caso, no obteremos resultado algum. Isso ocorrer
sempre que o sistema em questo for impossvel, ou seja, no admite
soluo.Geometricamente, temos que as duas retas so paralelas e distintas, portanto no
apresentam ponto de interseco.










94
Exemplo 3: Sistema com infinitas solues (SISTEMA POSSVEL INDETERMINADO - SPI).

Dado o sistema

= +
= +
12 2 2
6
:
y x
y x
S

> restart:
with(linalg):
solve( {x+y=6, 2*x+2*y=12}, {x,y} );
with(plots):
implicitplot({x+y=6, 2*x+2*y=12},x=-10..10,y=-10..10,title=`Sistema
Linear - SPI`);

Warning, the protected names norm and trace have been redefined and
unprotected

{ } , = x + y 6 = y y

Warning, the name changecoords has been redefined



Observao:Verificamos que uma das variveis (y, nesse caso) tomada
como parmetro, da temos infinitas solues para esse sistema: para
cada valor atribudo a y, obtemos uma soluo diferente para o
sistema.Geometricamente, as duas retas so paralelas e coincidentes. Assim, todo ponto de
uma reta automaticamente ponto da outra, justificando o porque das infinitas solues.

95
5. LISTA DE EXERCCIOS PROPOSTOS PARA A REVISO DOS CONCEITOS

1) Usando o software Maple, resolva os seguintes Sistemas Lineares:

a)

= +
= +
= +
3 3 4
2 3
1 2
:
z y x
y x
z x
S b)

= +
= +
= +
3 3
2 2
1 2
:
y x
z y x
z y x
S c)

= +
= +
= +
0 2 3
0 2 4
0 2 3
:
z y x
y x
z y x
S

Soluo:
a)
> restart:
with(linalg):
solve( {2*x+z=1, x+3*y=2, -x+4*y-3*z=3}, {x,y,z} );
Warning, the protected names norm and trace have been redefined and
unprotected

{ } , , = x
10
11
= z
-9
11
= y
4
11

b)
> restart:
with(linalg):
solve( {2*x-y+z=1, 2*x-y+z=2, x+3*y=3}, {x,y,z} );
Warning, the protected names norm and trace have been redefined and
unprotected

Observao: Neste caso, no obteremos resultado algum. Isso ocorrer
sempre que o sistema em questo for impossvel, ou seja, no admite
soluo.
c)
> restart:
with(linalg):
solve( {3*x-y+2*z=0, 4*x+2*y=0, -x-3*y+2*z=0}, {x,y,z} );

Warning, the protected names norm and trace have been redefined and
unprotected

{ } , , = x
1
2
y = y y = z
5
4
y
Observao:Verificamos que uma das variveis (x, nesse caso) tomada
como parmetro, da temos infinitas solues para esse sistema: para
cada valor atribudo a x, obtemos uma soluo diferente para o
sistema.

> # Tpicos 1, 2 e 3 => Adaptado de Reginaldo - UFMG

96
EXEMPLO DE PROGRAMAS (ROTEIROS = SCRIPTS):

1) Elabore um programa em que dada uma funo de uma varivel, o mesmo determine:
a) O grfico da funo dada;
b) A derivada de primeira ordem, ou seja, a primeira derivada;
c) O(s) ponto(s) crtico(s) da funo;
d) A derivada de segunda ordem, ou seja, a segunda derivada;
e) A classificao do(s) ponto(s) crtico(s) da funo usando o teste da segunda derivada.
Soluo:



OBSERVAO: fx: representa a 1.a derivada e fxx: representa a 2.a derivada

> f:=x^3/3-6*x^2+35*x+70;# DEFINA AQUI A FUNO QUE SER ANALISADA
:= f + +
1
3
x
3
6 x
2
35 x 70
> plot(f,x=4..10); # CONSTRUA O GRFICO DA FUNO (APS OS PONTOS CRTICOS
REDEFINA O INTERVALO)

> fx:=diff(f,x);# CLCULO DA DERIVADA DE f EM RELAO A VARIVEL x (DERIVADA DE
1.a ORDEM)
:= fx + x
2
12 x 35

> critico:=solve({fx=0},{x});# RESOLUO DA EQUAO f'(x) = 0
:= critico , { } = x 7 { } = x 5

> fxx:=diff(fx,x);# CLCULO DA DERIVADA DE SEGUNDA ORDEM
:= fxx 2 x 12

97
> fxx_critico1:=subs(critico[1],fxx);# AVALIANDO O PONTO CRTICO ENCONTRADO NA
SEGUNDA DERIVADA
:= fxx_critico1 2

> f_critico1:=subs(critico[1],f);# AVALIANDO A FUNO NO PONTO CRTICO ENCONTRADO
:= f_critico1
406
3

> fxx_critico2:=subs(critico[2],fxx);# AVALIANDO O PONTO CRTICO ENCONTRADO NA
SEGUNDA DERIVADA
:= fxx_critico2 -2

> f_critico2:=subs(critico[2],f);# AVALIANDO A FUNO NO PONTO CRTICO ENCONTRADO
:= f_critico2
410
3


> ################################################################################
> ### FAAMOS AQUI A CLASSIFICAO DOS PONTOS CRTICOS ENCONTRADOS ####
> ################################################################################

> if fxx_critico1 < 0 then print(critico[1],`ABSCISSA DO PONTO DE MXIMO`)
elif fxx_critico1 > 0 then print(critico[1],`ABSCISSA DO PONTO DE MNIMO`)
else print(critico[1],`NADA A CONCLUIR PELO TESTE DA DERIVADA SEGUNDA`)
fi;
, { } = x 7 ABSCISSA DO PONTO DE MNIMO

> if fxx_critico2 < 0 then print(critico[2],`ABSCISSA DO PONTO DE MXIMO`)
elif fxx_critico2 > 0 then print(critico[2],`ABSCISSA DO PONTO DE MNIMO`)
else print(critico[2],`NADA A CONCLUIR PELO TESTE DA DERIVADA SEGUNDA`)
fi;
, { } = x 5 ABSCISSA DO PONTO DE MXIMO


> # ------------------------ FIM DO PROGRAMA -----------------------------------#
> # VOLTE A PRIMEIRA LINHA DO PROGRAMA E SUBSTITUA A FUNO POR UMA OUTRA! #
> # NO MENU PRINCIPAL CLQUE EM <Edit> SELECIONE A OPO <Execute> E <Worksheet> #
> # OBSERVE A CLASSIFICAO DOS PONTOS CRTICOS ENCONTRADOS. #
> # ------------------------ FIM DO PROGRAMA -----------------------------------#
>


98
2) Elabore um programa em que dada uma funo de duas variveis, o mesmo determine:
a) o grfico da funo dada;
b) as derivada parciais de primeira ordem, ou seja, as primeiras derivadas;
c) o(s) ponto(s) crtico(s) da funo;
d) as derivadas de segunda ordem, ou seja, a segundas derivadas;
e) a classificao do(s) ponto(s) crtico(s) da funo usando o teste da segunda derivada.
Soluo:



> f:=1/3*x^3+1/3*y^3-3/2*x^2-7/2*y^2+2*x+12*y+1000;# DEFINA AQUI A FUNO QUE SER
ANALISADA
:= f + + + +
1
3
x
3
1
3
y
3
3
2
x
2
7
2
y
2
2 x 12 y 1000
> plot3d(f,x=-3..3,y=-3..3,axes=framed); # CONSTRUA O GRFICO DA FUNO

> fx:=diff(f,x);# CALCULO DA DERIVADA DE f EM RELAO A VARIVEL x
:= fx + x
2
3 x 2

> fy:=diff(f,y); # CALCULO DA DERIVADA DE Z EM RELAO A VARIVEL y
:= fy + y
2
7 y 12

> critico:=solve({fx=0,fy=0},{x,y});# RESOLUO DO SISTEMA COMPOSTO PELAS
(derivadas de 1.a ordem)
:= critico , , , { } , = y 3 = x 1 { } , = x 1 = y 4 { } , = y 3 = x 2 { } , = x 2 = y 4

99
> fxx:=diff(fx,x);# CALCULO DA DERIVADA DE fx EM RELAO A VARIVEL x
:= fxx 2 x 3

> fxy:=diff(fx,y);# CALCULO DA DERIVADA DE fx EM RELAO A VARIVEL Y
:= fxy 0

> fyx:=diff(fy,x);# CALCULO DA DERIVADA DE fy EM RELAO A VARIVEL x
:= fyx 0

> fyy:=diff(fy,y);# CALCULO DA DERIVADA DE fy EM RELAO A VARIVEL y
:= fyy 2 y 7

> with(linalg):# ACIONANDO A CAIXA DE FERRAMENTAS DE ALGEBRA LINEAR
> H:=matrix([[fxx,fxy],[fyx,fyy]]);# CONSTRUO DA MATRIZ HESSIANA (derivadas de
2.a ordem)
:= H

(
(
2 x 3 0
0 2 y 7

> Hessiano:=det(H);# CALCULO DO DETERMINANTE DA MATRIZ HESSIANA
:= Hessiano ( ) 2 x 3 ( ) 2 y 7


> H_critico1:=subs(critico[1],Hessiano);# AVALIANDO O PONTO CRTICO ENCONTRADO NO
HESSIANO
:= H_critico1 1

> fxx_critico1:=subs(critico[1],fxx);# CASO HESSIANO > 0, CLASSIFIQUE EM MXIMO OU
MNIMO
:= fxx_critico1 -1

> f_critico1:=subs(critico[1],f); # AVALIANDO A FUNO NO PONTO CRTICO ENCONTRADO
:= f_critico1
3043
3

> H_critico1:=subs(critico[1],Hessiano);# AVALIANDO O PONTO CRTICO ENCONTRADO NO
HESSIANO
:= H_critico1 1

> fxx_critico1:=subs(critico[1],fxx);# CASO HESSIANO > 0, CLASSIFIQUE EM MXIMO OU
MNIMO
:= fxx_critico1 -1

> f_critico1:=subs(critico[1],f); # AVALIANDO A FUNO NO PONTO CRTICO ENCONTRADO
:= f_critico1
3043
3

> H_critico2:=subs(critico[2],Hessiano);# AVALIANDO O PONTO CRTICO ENCONTRADO NO
HESSIANO
:= H_critico2 -1

> fxx_critico2:=subs(critico[2],fxx);# CASO HESSIANO > 0, CLASSIFIQUE EM MXIMO OU
MNIMO
:= fxx_critico2 -1

> f_critico2:=subs(critico[2],f); # AVALIANDO A FUNO NO PONTO CRTICO ENCONTRADO
:= f_critico2
6085
6

> H_critico3:=subs(critico[3],Hessiano);# AVALIANDO O PONTO CRTICO ENCONTRADO NO
HESSIANO
:= H_critico3 -1

> fxx_critico3:=subs(critico[3],fxx);# CASO HESSIANO > 0, CLASSIFIQUE EM MXIMO OU
MNIMO
:= fxx_critico3 1

> f_critico3:=subs(critico[3],f); # AVALIANDO A FUNO NO PONTO CRTICO ENCONTRADO
100
:= f_critico3
6085
6

> H_critico4:=subs(critico[4],Hessiano);# AVALIANDO O PONTO CRTICO ENCONTRADO NO
HESSIANO
:= H_critico4 1

> fxx_critico4:=subs(critico[4],fxx);# CASO HESSIANO > 0, CLASSIFIQUE EM MXIMO OU
MNIMO
:= fxx_critico4 1

> f_critico4:=subs(critico[4],f); # AVALIANDO A FUNO NO PONTO CRTICO ENCONTRADO
:= f_critico4 1014


> ################################################################################
> ### FAAMOS AQUI A CLASSIFICAO DOS PONTOS CRTICOS ENCONTRADOS ###
> ################################################################################

> if H_critico1 < 0 then print(critico[1],`PONTO DE SELA`)
elif H_critico1 > 0 and fxx_critico1 > 0 then print(critico[1],`PONTO DE MNIMO`)
elif H_critico1 > 0 and fxx_critico1 < 0 then print(critico[1],`PONTO DE MXIMO`)
else print(critico[1],`NADA A CONCLUIR PELO TESTE DA DERIVADA SEGUNDA`)
fi;
, { } , = y 3 = x 1 PONTO DE MXIMO


> if H_critico2 < 0 then print(critico[2],`PONTO DE SELA`)
elif H_critico2 > 0 and fxx_critico2 > 0 then print(critico[2],`PONTO DE MNIMO`)
elif H_critico2 > 0 and fxx_critico2 < 0 then print(critico[2],`PONTO DE MXIMO`)
else print(critico[2],`NADA A CONCLUIR PELO TESTE DA DERIVADA SEGUNDA`)
fi;
, { } , = x 1 = y 4 PONTO DE SELA


> if H_critico3 < 0 then print(critico[3],`PONTO DE SELA`)
elif H_critico3 > 0 and fxx_critico3 > 0 then print(critico[3],`PONTO DE MNIMO`)
elif H_critico3 > 0 and fxx_critico3 < 0 then print(critico[3],`PONTO DE MXIMO`)
else print(critico[3],`NADA A CONCLUIR PELO TESTE DA DERIVADA SEGUNDA`)
fi;
, { } , = y 3 = x 2 PONTO DE SELA


> if H_critico4 < 0 then print(critico[4],`PONTO DE SELA`)
elif H_critico4 > 0 and fxx_critico4 > 0 then print(critico[4],`PONTO DE MNIMO`)
elif H_critico4 > 0 and fxx_critico4 < 0 then print(critico[4],`PONTO DE MXIMO`)
else print(critico[4],`NADA A CONCLUIR PELO TESTE DA DERIVADA SEGUNDA`)
fi;
, { } , = x 2 = y 4 PONTO DE MNIMO


> # ------------------------ FIM DO PROGRAMA -----------------------------------#
> # VOLTE A PRIMEIRA LINHA DO PROGRAMA E SUBSTITUA A FUNO POR UMA OUTRA! #
> # NO MENU PRINCIPAL CLQUE EM <Edit> SELECIONE A OPO <Execute> E <Worksheet> #
> # OBSERVE A CLASSIFICAO DOS PONTOS CRTICOS ENCONTRADOS. #
> # ------------------------ FIM DO PROGRAMA -----------------------------------#
101
EQUAES DIFERENCIAIS ORDINRIAS (EDO) VIA MAPLE

O comando bsico do Maple para resolver equaes diferenciais ordinrias o "dsolve".

A sintaxe do dsolve : dsolve("oque", "como");

O "oque" refere-se a EDO (ou sistema de edo's) junto com condies iniciais. O "como" especifica
qual rotina do Maple vai ser utilizada.

til dar nomes a todas as equaes e condies iniciais quando usamos o dsolve.

Consulte o help para saber sobre EDP. Tecle ???pdsolve;

Exemplos:

Para aprender a usar o help: entre com o comando with(DEtools);

> eq:=diff(y(x),x)=x*y(x);
:= eq =
c
c
x
( ) y x x ( ) y x
> inic:=y(2)=1;
:= inic = ( ) y 2 1


Agora, eq o nome da edo que queremos resolver e init o nome das condies iniciais.
importante usar y(x) -- isto indica que tomamos y como uma varivel dependente e x como
varivel independente.

Para resolver sem a condio inicial, isto determinar a soluo geral, usamos `dsolve`

> dsolve(eq,y(x));
= ( ) y x _C1 e
( ) / 1 2 x
2


Note que _C1 a constante arbitraria produzida pelo Maple.

Para resolver o Problema de Valor Inicial (PVI) devemos agrupar a EDO junto com a condio
inicial entre chaves.

> dsolve({eq,inic},y(x));
= ( ) y x
e
( ) / 1 2 x
2
e
2

s vezes Maple apresenta uma resposta implcita, assim comum pedir que o Maple explicite a
resposta em funo da varivel dependente. Exemplo:

> dsolve(diff(y(x),x)=y(x)^2, y(x));
= ( ) y x
1
x _C1

102
Usamos o comando explicit como opo em dsolve:

> dsolve(diff(y(x),x)=y(x)^2, y(x),explicit);
= ( ) y x
1
x _C1

> dsolve(diff(y(x),x)=y(x)^2, y(x), explicit);

Assim melhor!!! (SER QUE AINDA EXISTE ESTA NECISSIDADE DA VERSO 4?)

- USO MAIS AVANADO DE DSOLVE:

Existem 4 maneiras de usar o dsolve para situaes alm das edos de primeira ordem e pvi simples.

1. Equaes de ordem superior
2. Sistemas de EDO's
3. Solues numericas
4. Usando sries de potncias para obter solues de edo's

1. Equaes de ordem superior : edo's de ordem 2 ou superior podem ser resolvidas usando o
dsolve. As derivadas de ordem superior so escritas como no exemplo.

> diff(f(x),x$3);

Uma EDO de ordem 2:

> eqn2:=diff(y(x),x$2)+3*diff(y(x),x)+2*y(x)=exp(x);

A soluo geral :

> dsolve(eqn2,y(x));

Para este problema vamos especificar condies de y em x=1:

> inits:=y(1)=2, D(y)(1)=4;
> dsolve({eqn2,inits},y(x));

2. Sistemas de EDO's: Vamos ver um exemplo.

> eqns:=diff(y(x),x)+diff(z(x),x)=x, diff(y(x),x)-2*diff(z(x),x)=x^2;
> inits:= y(0)=1, z(0)=2;
> dsolve({eqns,inits},{y(x),z(x)});
> restart:# vamos zerar a memoria do maple

3. Solues Numricas: Em geral impossivel obter explicitamente a soluao de uma EDO, neste
caso usamos um mtodo numrico para aproximar a soluo. O Maple faz isto, basta usar a
opcao numeric em dsolve, como no exemplo:

> eqn:=diff(y(x),x)+exp(y(x))*x^3=2*sin(x); init:=y(0)=2;
> F:=dsolve({eqn,init},y(x),numeric);

O valor de F em x=2

103
> F(2);
Em geral util plotar numericamente a soluo obtida de uma EDO. Para fazer isto usamos o
comando odeplot ao resultado (F neste caso) de dsolve(....,numeric). Para usar odeplot
precisamos de "chamar" o plots.

> with(plots,odeplot);

Para plotar a solucao usamos a sintaxe.

> odeplot(F,[x,y(x)],-2..2);

4. Usando series de potncias. Exemplo: resolver y'+x*y=0, y(0)=1 por series .

> dsolve({diff(y(x),x)+x*y(x)=0, y(0)=1},y(x), series);

Se voc quer mais termos, pea mais.

> Order:=14: dsolve({diff(y(x),x)+x*y(x)=0, y(0)=1},y(x), series);
Um pouco de EDP

> restart:
> ?pdsolve; #ver o help
> with(PDEtools);
> PDE := x^2*diff(f(x,y),y)-y^2*diff(f(x,y),x) = 0;
> sol:=pdsolve(PDE);
> pdetest(sol,PDE);### vamos testar??
> eqp:=diff(f(x,y),y)+3*diff(f(x,y),x)+2*f(x,y)=1;

A soluo geral :

> sol2:=pdsolve(eqp,f(x,y));
> pdetest(sol2,eqp);

104
TRANSFORMADA DE LAPLACE VIA MAPLE



Clculo Diferencial e Integral: um KIT de sobrevivncia
This woksheet is in Portuguese language.
Prof. Doherty Andrade - UEM

Nota: Nesta woksheet est todo o material visto em aula sobre transformada de Laplace.

1.1. TEOREMAS

- Teorema (Existncia da Transformada de Laplace)

Se ) (t f de ordem exponencial, ento sua transformada de Laplace ) ( ) ( s F t Lf = dada por:

}


=
0
) (
) ( ) ( dt e t f s F
st


A integral definindo ) (s F existe nos pontos . s t <

- Teorema (Linearidade da Transformada de Laplace )

Sejam ) (t f e ) (t g

tendo transformada de Laplace dadas por ) (s F e ) (s G , respectivamente. Se a e b

so constantes, ento:
). ( ) ( )) ( ) ( (( s G b s aF t g b t f a L + = +

- Teorema (Unicidade da Transformada de Laplace)

Sejam ) (t f e ) (t g

tendo Transformada de Laplace dadas por ) (s F e ) (s G , respectivamente. Se
) ( ) ( s G s F = ento:
). ( ) ( t g t f =

1.2. USANDO O MAPLE NA TRANSFORMADA DE LAPLACE

Para trabalhar com a Transformada de Laplace no Maple, voc precisa carregar os procedimentos
Laplace transform.

Faa isto com o commando (seguido de dois pontos ou ponto e virgule):

> with(inttrans):

> with(inttrans);

addtable fourier fouriercos fouriersin hankel hilbert invfourier invhilbert , , , , , , , , [
invlaplace invmellin laplace mellin savetable , , , , ]


105
Exemplos:
1) Determine a transformada de Laplace da funo degrau unitrio:

>
< s
=
c t se
c t se
t f
, 0
0 , 1
) (
> c:='c': f:='f': F:='F': g:='g': s:='s': t:='t': T:='T':
f0 := t -> 1:
g := t -> subs(T=t, int(f0(T)*exp(-s*T),T)):
F := t -> subs(T=t, int(f0(T)*exp(-s*T),T=0..c)):
`For 0 <= t <= c, f(t) ` = f0(t);
Int(f(t)*exp(-s*t),t) = g(t);
`F(s) = `, Int(f(t)*exp(-s*t),t=0..c) = F(s);
`F(s) ` = simplify(F(s));
= For 0 <= t <= c, f(t) 1

= d
(
]
(
(
( ) f t e
( ) s t
t
e
( ) s t
s

, F(s) = = d
(
]
(
(
0
c
( ) f t e
( ) s t
t
e
( ) s c
1
s

= F(s)
e
( ) s c
1
s


Veja o grfico de f.
> f:=x -> piecewise(x>0,1); #tomei c=0 aqui
:= f x ( ) piecewise , < 0 x 1

> with(plots):
> plot(f(x),x=-2..4,y=0..2);

106
2) Determine a transformada de Laplace de . ) (
) ( t a
e t f =

> a:='a': f:='f': F:='F': g:='g': s:='s': t:='t': T:='T':
f0 := t -> exp(a*t):
`f(t) ` = f0(t);
g := proc(t,S)
simplify(subs(T=t,int(f0(T)*exp(-S*T),T)))
end:
Int(f(t)*exp(-s*t),t) = g(t,s);
`F(s) ` = subs(T=t, int(f0(T)*exp(-s*T),T=0..infinity));
`F(s) ` = simplify(g(infinity,s) - g(0,s));
F := s -> - subs(S=s, g(0,S)):
`F(s) ` = F(s);
= f(t) e
( ) a t

= d
(
]
(
(
( ) f t e
( ) s t
t
e
( ) t ( ) a s
a s

= F(s) lim
t
e
( ) a t s t
1
a s

= F(s)
e
( ) ( ) a s
1
a s

= F(s)
1
a s


> `f(t) ` = exp(a*t);
`F(s) ` = laplace(exp(a*t), t, s);

= f(t) e
( ) a t

= F(s)
1
+ a s


107
3) Determine a transformada de Laplace de ) ( sinh ) ( t a t f = .
Como
2
) ( sinh ) (
) ( ) ( t a t a
e e
t a t f

= = , usamos que:
= ( ) L
1
e
( ) a t 1
s a
e = ( ) L
2
e
( ) a t 1
+ s a
.
> L:='L':
`f(t) ` = sinh(a*t);
`f(t) ` = (exp(a*t)-exp(-a*t))/2;
L1 :=laplace( exp(a*t), t, s):
L2 :=laplace(exp(-a*t), t, s):
L(exp(a*t)) = L1;
L(exp(-a*t)) = L2; ` `;
`F(s) ` = (L(exp(a*t)) - L(exp(-a*t)))/2;
`F(s) ` = (L1 - L2)/2;
`F(s) ` = simplify((L1 - L2)/2);
= f(t) ( ) sinh a t

= f(t)
1
2
e
( ) a t 1
2
e
( ) a t

= ( ) L e
( ) a t 1
+ a s

= ( ) L e
( ) a t 1
+ s a



= F(s)
1
2
( ) L e
( ) a t 1
2
( ) L e
( ) a t

= F(s)
1
2
1
+ a s
1
2
1
+ s a

= F(s)
a
a
2
s
2


Podemos verificar este resultado usando as rotinas do Maple:

> `f(t) ` = sinh(a*t);
`F(s) ` = laplace(sinh(a*t), t, s);
= f(t) ( ) sinh a t

= F(s)
a
s
2
a
2


108
4) Determine a transformada de Laplace de . ) ( t t f =

> a:='a': f:='f': F:='F': g:='g': s:='s': t:='t': T:='T':
f0 := t -> t:
`f(t) ` = f0(t);
g := proc(t,S)
simplify(subs(T=t,int(f0(T)*exp(-S*T),T)))
end:
Int(f(t)*exp(-s*t),t) = g(t,s);
`F(s) ` = subs(T=t, int(f0(T)*exp(-s*T),T=0..infinity));
`F(s) ` = simplify(g(infinity,s) - g(0,s));
F := s -> - subs(S=s, g(0,S)):
`F(s) ` = F(s);
= f(t) t

= d
(
]
(
(
( ) f t e
( ) s t
t
e
( ) s t
( ) + s t 1
s
2

Definite integration: Can't determine if the integral is convergent.
Need to know the sign of --> s
Will now try indefinite integration and then take limits.
= F(s) lim
t

+ s t e
( ) s t
e
( ) s t
1
s
2

= F(s)
+ s e
( ) s
e
( ) s
1
s
2

= F(s)
1
s
2


Podemos verificar este resultado usando as rotinas do pacote Transformada de Laplace:

> `f(t) ` = t;
`F(s) ` = laplace(t, t, s);

= f(t) t

= F(s)
1
s
2

109
5) Determine a transformada de Laplace de ). ( cos ) ( t b t f =

> a:='a': f:='f': F:='F': g:='g': s:='s': t:='t': T:='T':
f0 := t -> cos(b*t):
`f(t) ` = f0(t);
g := proc(t,S)
simplify(subs(T=t,int(f0(T)*exp(-S*T),T)))
end:
Int(f(t)*exp(-s*t),t) = g(t,s);
`F(s) ` = subs(T=t, int(f0(T)*exp(-s*T),T=0..infinity));
`F(s) ` = simplify(g(infinity,s) - g(0,s));
F := s -> - subs(S=s, g(0,S)):
`F(s) ` = F(s);

= f(t) ( ) cos b t

= d
(
]
(
(
( ) f t e
( ) s t
t
e
( ) s t
( ) + s ( ) cos b t b ( ) sin b t
+ s
2
b
2

= F(s) lim
t
+ + s e
( ) s t
( ) cos b t b e
( ) s t
( ) sin b t s
+ s
2
b
2

= F(s)
+ + s e
( ) s
( ) cos b b e
( ) s
( ) sin b s
+ s
2
b
2

= F(s)
s
+ s
2
b
2

Verfique este resultado usando as rotinas do Maple:

> `f(t) ` = cos(b*t);
`F(s) ` = laplace(cos(b*t), t, s);
= f(t) ( ) cos b t

= F(s)
s
+ s
2
b
2

110
6) Determine a transformada inversa de .
9
6 3
) (
2
+
+
=
s
s
s F
> f:='f': F:='F': s:='s': t:='t':
F0 := s -> (3*s + 6)/(s^2 + 9):
`F(s) ` = F0(s);
`F(s) ` = expand(F0(s));
= F(s)
+ 3 s 6
+ s
2
9

= F(s) + 3
s
+ s
2
9
6
+ s
2
9

A transformada ) (s F uma combinao linear.
> F1 := s/(s^2 + 9):
F2 := 3/(s^2 + 9):
F[1](s) = F1;
F[2](s) = F2;
`F(s) = `, 3*F[1](s) + 2*F[2](s) = 3*F1 + 2*F2;
= ( ) F
1
s
s
+ s
2
9

= ( ) F
2
s 3
1
+ s
2
9

, F(s) = = + 3 ( ) F
1
s 2 ( ) F
2
s + 3
s
+ s
2
9
6
+ s
2
9

A inversa de ) (
1
s F ) 3 ( cos t e a inversa de ) (
2
s F ). 3 ( t sen
> f1 := invlaplace(F1, s, t):
f2 := invlaplace(F2, s, t):
f[1](t) , ` = L^-1 (F1(s)) ` = f1;
f[2](t) , ` = L^-1 (F2(s)) ` = f2;

, ( ) f
1
t = = L^-1 (F1(s)) ( ) cos 3 t
, ( ) f
2
t = = L^-1 (F2(s)) ( ) sin 3 t
Portanto
( ) f t
= + 3 ( ) f
1
t 2 ( ) f
2
t =
+ 3 ( ) cos 3 t 2 ( ) sin 3 t
.

> `f(t) = `, 3*f[1](t) + 2*f[2](t) = 3*f1 + 2*f2;

, f(t) = = + 3 ( ) f
1
t 2 ( ) f
2
t + 3 ( ) cos 3 t 2 ( ) sin 3 t
Podemos verificar isto usando os procedimentos do Maple:
> `F(s) ` = (3*s + 6)/(s^2 + 9);
`f(t) ` = invlaplace((3*s + 6)/(s^2 + 9), s, t);

= F(s)
+ 3 s 6
+ s
2
9

= f(t) + 3 ( ) cos 3 t 2 ( ) sin 3 t

111
ED0 - TRANSFORMADA DE LAPLACE

O Maple tem um comando para calcular a transformada de Laplace e a sua inversa. Eles
so fceis de usar, embora seus resultados precisem ser manipulados.

A forma dos comandos :

laplace(funcao,var1,var2) ou invlaplace(funcao,var2,var1)

onde funcao a funo a ser transformada, var1 o nome da varivel no espao real que
est sendo transformada e var2 o nome da variavel no espao da transformada de
Laplace. Note que as variveis trocam de lugar em invlaplace.

Exemplo:

> restart:
> with(inttrans):
> f:=laplace(sin(2*t),t,s);
:= f
2
+ s
2
4

> invlaplace(f,s,t);
( ) sin 2 t

Lembra da funo de Heaviside (degrau)? Ela tem a transformada de Laplace bem
conhecida:

> plot(Heaviside(x-1),x=0..5);

> laplace(Heaviside(x-1),x,s);
e
( ) s
s

Maple pode trabalhar operacionalmente com funes desconhecidas:

> laplace(diff(y(x),x),x,s);
s ( ) laplace , , ( ) y x x s ( ) y 0


Isto util para resolver EDO's. O comando "isolate" til e deve ser lida da biblioteca:

> eqn:=diff(y(x),x)-3*y(x)=exp(2*x);
:= eqn =
|
\

|
.
|
|
c
c
x
( ) y x 3 ( ) y x e
( ) 2 x

112
> laplace(eqn,x,s);
= s ( ) laplace , , ( ) y x x s ( ) y 0 3 ( ) laplace , , ( ) y x x s
1
s 2

> solve(laplace(eqn,x,s),laplace(y(x),x,s));
+ ( ) y 0 s 2 ( ) y 0 1
+ s
2
5 s 6

> invlaplace(",s,x);
+ + e
( ) 2 x
e
( ) 3 x
( ) y 0 e
( ) 3 x

Agora podermos substituir a condiao inicial se temos uma.

> subs(y(0)=15, ");
+ e
( ) 2 x
16 e
( ) 3 x

Podemos tambem trabalhar com sistemas de EDO's:

> restart;
> with(inttrans):
> eqn1:=diff(x1(t),t$2)+10*x1(t)-4*x2(t)=0;
:= eqn1 = +
|
\

|
.
|
|
|
c
c
2
t
2
( ) x1 t 10 ( ) x1 t 4 ( ) x2 t 0

> eqn2:=diff(x2(t),t$2)-4*x1(t)+4*x2(t)=0;
:= eqn2 = +
|
\

|
.
|
|
|
c
c
2
t
2
( ) x2 t 4 ( ) x1 t 4 ( ) x2 t 0

> E1:=laplace(eqn1,t,s);
E1 s ( ) s ( ) laplace , , ( ) x1 t t s ( ) x1 0 ( ) ( ) D x1 0 10 ( ) laplace , , ( ) x1 t t s + :=
4 ( ) laplace , , ( ) x2 t t s 0 =

> E2:=laplace(eqn2,t,s);
E2 s ( ) s ( ) laplace , , ( ) x2 t t s ( ) x2 0 ( ) ( ) D x2 0 4 ( ) laplace , , ( ) x1 t t s :=
4 ( ) laplace , , ( ) x2 t t s + 0 =

> solve({E1,E2},{laplace(x1(t),t,s),laplace(x2(t),t,s)});
( ) laplace , , ( ) x1 t t s = {
+ + + + + s
3
( ) x1 0 s
2
( ) ( ) D x1 0 4 s ( ) x2 0 4 ( ) ( ) D x2 0 4 s ( ) x1 0 4 ( ) ( ) D x1 0
+ + s
4
14 s
2
24
,
( ) laplace , , ( ) x2 t t s =
+ + + + + s
3
( ) x2 0 s
2
( ) ( ) D x2 0 4 s ( ) x1 0 4 ( ) ( ) D x1 0 10 s ( ) x2 0 10 ( ) ( ) D x2 0
+ + s
4
14 s
2
24
}











113
> invlaplace(",s,t);
( ) x2 t
2
5
( ) x1 0 ( ) cos 2 t
4
5
( ) x2 0 ( ) cos 2 t
1
5
2 ( ) ( ) D x1 0 ( ) sin 2 t + + = {
2
5
2 ( ) ( ) D x2 0 ( ) sin 2 t
1
5
( ) x2 0 ( ) cos 2 3 t
2
5
( ) x1 0 ( ) cos 2 3 t + +
1
30
3 ( ) ( ) D x2 0 ( ) sin 2 3 t
1
15
3 ( ) ( ) D x1 0 ( ) sin 2 3 t + ( ) x1 t = ,
2
5
( ) x2 0 ( ) cos 2 t
1
5
( ) x1 0 ( ) cos 2 t
1
5
2 ( ) ( ) D x2 0 ( ) sin 2 t + +
1
10
2 ( ) ( ) D x1 0 ( ) sin 2 t
2
5
( ) x2 0 ( ) cos 2 3 t
4
5
( ) x1 0 ( ) cos 2 3 t + +
1
15
3 ( ) ( ) D x2 0 ( ) sin 2 3 t
2
15
3 ( ) ( ) D x1 0 ( ) sin 2 3 t + }


Isto muito legal! A resposta hard, porque ns no entramos com dados
iniciais.Vamos fazer isto agora:

> subs(x1(0)=0,D(x1)(0)=1,x2(0)=0,D(x2)(0)=-1,");
= ( ) x2 t
1
5
2 ( ) sin 2 t
1
10
3 ( ) sin 2 3 t , {
= ( ) x1 t +
1
10
2 ( ) sin 2 t
1
5
3 ( ) sin 2 3 t }

>
E esta a soluo.
114
UM EXEMPLO COM UM PROGRAMA DE COMPUTAO ALGBRICA

Na figura abaixo temos um exemplo de utilizao do Maple 7, lanado em meados de 2001. Nela
podemos ver o calculo de uma integral, o gigantesco valor exato do fatorial de 50, a fatorao de um
polinmio de grau 11 e uma derivada oitava da funo tg (x + y). Cada um desses trabalhosos clculos
no leva mais do que 1 segundo para ser concludo em um computador que no seja muito
ultrapassado.



COMPUTAO ALGBRICA NO BRASIL

No Brasil, a Computao Algbrica vem sendo utilizada desde o final da dcada de 80. Por volta de
1988 a Sociedade Brasileira de Matemtica distribuiu uma nota aos seus associados comentando sobre
a importncia em se utilizar esse tipo de recurso computacional.

No Centro Brasileiro de Pesquisas Fsicas, no Rio de Janeiro, no perodo de 24 de julho a 11 de agosto
de 1989 foi realizada a I Escola Brasileira de Computao Algbrica. Seu objetivo era a formao de
pessoal nessa rea. Para isso, foram convidados 8 professores de universidades da Europa e dos
Estados Unidos para ministrarem palestras e minicursos.

H quase dez anos que universidades como a UNICAMP vem mantendo regularmente disciplinas
especficas de Computao Algbrica.

115
COMPUTAO ALGBRICA NA UFPB

Desde 1988 que se usa algum programa de Computao Algbrica na UFPB. O primeiro a chegar por
l foi o REDUCE. Inicialmente disponvel no antigo computador IBM central, depois distribudo em
verses para computadores pessoais. Era utilizado por professores do Departamento de Matemtica e
do Departamento de Fsica.

Em 1991 o DERIVE foi bastante divulgado na UFPB. Era um programa minsculo, ocupava apenas
uns 200 Kbytes mas construa grficos e resolvia muitos problemas de Clculo e lgebra com grande
eficincia. Hoje, ele est incorporado s modernas calculadoras da Texas Instruments.


Com a reformulao curricular que est ocorrendo em vrios cursos, espera-se que a Computao
Algbrica se faa presente em vrias disciplinas, seguindo uma tendncia mundial. Decididamente,
um recurso que veio para ficar.

COMPUTAO ALGBRICA NA INTERNET

Existem dezenas de pginas na Internet sobre Computao Algbrica. Vamos citar aqui apenas a
www.SymbolicNet.org. Trata-se do Symbolic Mathematical Computation Information Center que
excelente e tem conexes para cerca de 30 diferentes sistemas.


- Lenimar Nunes de Andrade - UFPB CCEN Departamento de Matemtica
- Professor Adjunto do Departamento de Matemtica - UFPB
- e-mail: lenimar@mat.ufpb.br
- http://mat.ufpb.br/lenimar/maple.htm


116
USANDO O MAPLE COMO UMA LINGUAGEM DE PROGRAMAO

- A declarao condicional

Em muitas situaes precisamos decidir:
- se um determinado comando vai ser executado ou no;
- escolher um entre vrios comandos para ser executado.

Para isso, o Maple possui a declarao condicional if

- O comando if

A forma mais simplificada de usar o comando if :

if condio then comando end if; onde condio uma expresso lgica que deve ser avaliada em
verdadeira ou falsa (true ou false) e o comando (ou grupo de comandos) escrito depois da palavra then
e antes de end if ser executado somente se a condio for verdadeira.

Uma forma mais completa da declarao condicional if :

if condicao then comando1 else comando2 end if;

A forma mais completa do if a mostrada a seguir, onde pode aparecer uma condio1 e uma ou
vrias outras condies condio2, condio3, . . . , condioN.

if condio1 then comando1
elif condio2 then comando2
elif condio3 then comando3
. . .
else comandoN
end if;

Se condio1 for verdadeira, ento executado o comando1 e o if encerra. Seno, verificada a
condio2 e, se ela for verdadeira, executado o comando2 e o if encerra. E assim todas as condies
vo sendo testadas at chegar em uma condio verdadeira. Se todas as condies testadas forem falsas
ento ser executado o comando que estiver depois do else, se esse comando tiver sido definido.

Notas:

- A expresso lgica do if pode ser composta de vrias condies ligadas por operadores lgicos
como and, or ou not.
- O que determina se os comandos dentro do if vo ser mostrados na sua execuo ou no a
utilizao de um ponto e vrgula ou dois pontos depois do end if.
- Podemos ter if dentro de outro if.

Exemplos:

1) No if mostrado a seguir, temos y := x se x > 0 e y := -x se x < 0.
> x := -5:
> if x >= 0 then y := x else y := -x end if;

:= y 5


117
2) O if a seguir testa se um inteiro n dado divisvel por 2, 3, 5 ou 7. Se for, mostrada uma
mensagem especfica e o quociente Q da diviso. A funo frac(x) calcula a parte fracionria de x.

> n:= 35: # inteiro dado
>
> if frac(n/2) = 0 then
> print(` divisvel por 2`); Q := n/2;
> elif frac(n/3) = 0 then
> print(` divisvel por 3`); Q := n/3;
> elif frac(n/5) = 0 then
> print(` divisvel por 5`); Q := n/5;
> elif frac(n/7) = 0 then
> print(` divisvel por 7`); Q := n/7;
> else
> print(`No divisvel por 2, nem por 3, nem por 5 e nem por 7`)
> end if;
divisvel por 5

:= Q 7

Observao: Note que a estrutura condicional acima detecta apenas que n divisvel por 5. O fato
dele tambm ser divisvel por 7 foi ignorado.


Exemplo: Uso comum do FOR, IF e WHILE

1) Listar todos os n inteiros primos que satisfaam n < 2000:

> for i from 1
> while i < 2000 do
> if isprime(i) then print(i) end if
> end do;
2

3

5


1997

1999


2) Listar todos os n inteiros primos que satisfaam 17s n < 2000:

> for i from 17 by 2
> while i < 2000 do
> if isprime(i) then print(i) end if
> end do;
17

19


1999

118
Uma listagem de uma pequena parte deles est mostrada a seguir. Para uma listagem completa
consulte a documentao on line digitando ?type.

TIPO BSICO BREVE DESCRIO: EXEMPLO

integer Inteiro; 0
posint Inteiro positivo; 3
negint Inteiro negativo; -3
odd Inteiro mpar; 5
even Inteiro par; 4
float Nmero real (ponto flutuante); 3:14159
complex a+b* I, onde a e b so do tipo realcons; 5+4*I
fraction Frao p=q com p e q inteiros; 2=3
rational Frao ou inteiro; 5
numeric Numrico (inteiro, frao ou real); 4:5=3
positive Numrico positivo; 1:2345
negative Numrico negativo; 11
algebraic Algbrico; sqrt(2)* I
polynom Polinmio; x2+5*x+3
list Lista; [v;w; 1; 2; 3]
listlist Lista de listas; [[1; 2]; [a; b]]
set Conjunto; f1; 0; x; yg
series Srie; series(sin(x); x = 0; 4)
anything Qualquer tipo, exceto seqncia
symbol Smbolo; alpha
+ Soma; a + b
* Produto; x* y
Potncia; 2x
< Desigualdade; x < 0
= Igualdade; y = 4
name Nome de varivel; x
function Funo; f(x)
procedure Procedimento; f
Matrix Matriz; Matrix([[1; 2]; [3; 4]])
string Caracteres entre aspas; teste
indexed Varivel indexada; a[n]

Para mostrar o tipo de uma varivel, constante ou expresso X podemos usar o comando whattype(X).

FAZER O PROGRAMA DO MDULO USANDO O PROCEDIMENTO PROC
119
Executar a seguinte animao tridimensional:

> with(plots):
Anima3D := proc(eq1::algebraic, eq2::algebraic,
eq3::algebraic)
local k;
for k from 0 to 17 do
graf[k] := tubeplot([eq1, eq2, eq3], t=0..20,
radius=1, shading = zhue,
orientation=[20*k, 70]):
end do;
display(seq(graf[k], k=0..17), insequence=true):
end proc:
Warning, `graf` is implicitly declared local to procedure `Anima3D`
> Anima3D(5*cos(t), 5*sin(t), t);

> Anima3D(5*t, t, t+2);



120
is - checa uma propriedade
Seqncia de Chamada: is(x,prop)
Parmetros:
x - uma varivel, um nome ou uma expresso
prop - uma propriedade
Descrio:
- O comando is manda o Maple checar se uma propriedade true, false ou fail para x. Quando a
resposta fail, isso quer dizer que o Maple no pode determinar se ela verdadeira ou falsa.
Quando a resposta true, quer dizer que todos os valores possveis de x satisfazem a propriedade.
Quando a resposta false, quer dizer que pelo menos um valor de x no satisfaz a propriedade.
- is pode ter como argumentos vrios pares ou relaes. Neste caso, ele retorna true se todas so
verdadeiras ao mesmo tempo. Por exemplo, para checar se x est no intervalo (0,1), podemos
escrever is(0<x,x<1).
property names e.g. continuous
nomess e.g. integer, real
conjuntos e.g. RealRange( a, b ), RealRange( -infinity, b ),
RealRange( a, infinity )
Exemplos:
> x:=2;
is(1-x^2, positive);
:= x 2

false

Is entende intervalos:
> is(5,RealRange(5,infinity));
true

> is(5,RealRange(Open(5),infinity));
false

121
COORDENADA POLARES USANDO O MAPLE

A frmula para o clculo de rea de uma figura plana descrita em coordenadas polares ) ( f r =
dada por:
d dr r A
R
R
}}
=
onde R a regio para o clculo da rea.

A frmula para o clculo de rea utilizando o software Maple com integrao dupla dada por:

> int(int(r,r=funo(theta1)..funo(theta2)),theta=theta1..theta2);

Vejamos a seguir alguns exemplos:

1) Determine por integrao dupla a rea da regio limitada por uma ptala da roscea sen r 2 = .
Soluo:
Para resolvermos este exemplo, necessitamos utilizar o comando polarplot. Para aplicar este
comando necessitamos primeiramente carregar o pacote with(plots) dando o seguinte comando:

> with(plots):

Inicialmente, contrumos o grfico da curva sen r 2 = utilizando o comando polarplot:

> polarplot(sin(2*theta),theta=0..2*Pi,color=blue);

Analisando o grfico anterior vimos que ele apresenta quarto ptalas simtricas no intervalo 0 a 2 .
Agora, contruiremos o mesmo grfico no intervalo de 0 a 2 / para calcular a integral desejada. Veja
o commando a seguir:

> polarplot(sin(2*theta),theta=0..Pi/2,color=blue);
122


Aplicando o commando int, utilizando o conceito de integral dupla, determinamos a area da regio
solicitada. Observe o comando a seguir:

> Int(Int(r,r=0..sin(2*theta)),theta=0..Pi/2)=int(int(r,r=0..sin(2*theta)),theta=0..Pi/2);

= d
(
]
(
0
/ 1 2 t
d
(
]
(
0
( ) sin 2 u
r r u
1
8
t

Assim, conclumos que a area da regio desejada t/8 unidades de area (u. a.)

S-ar putea să vă placă și