Você está na página 1de 25

APOSTILA DE

MAPLE V

Grficos em 2 e 3 Dimenses
Os grficos de funes de uma ou duas variveis so produzidos atravs das funes
plot e plot3d . Algumas expresses de trs variveis podem ser plotadas utilizando-se a
opo implicit .
> restart;

Funes de uma Varivel


A sintaxe bsica de plot a seguinte:
plot( funo , domnio , contra-domnio , opes ) .
O domnio de uma funo
indicada por
. O uso do contra-domnio
no obrigatrio e serve para fazer um controle vertical do grfico. Entre as opes do
comando plot usaremos o title (ttulo) , o color (cor) e o discont=true (funes com
descontinuidades).
> plot(sin(2*x), x=0..4);

> plot(ln(x), x = 0..3, title=`Logaritmo Natural`);

> f1 := x*sin(x);

> plot(f1, x=0..10, color=blue); # cor azul.

A funo

possui uma descontinuidade (de segunda espcie) em x= 0.

Vejamos o seu grfico com a imagem (eixo vertical) variando de

> plot(1/x^2, x=-3..3, 0..10, discont=true);

Para se plotar dois grficos simultaneamente escreve-se as duas funes entre chaves {}
.
> plot( {x,sqrt(x)}, x=0..1, title=`2 grficos`);

Grficos de Funes de Duas Variveis


Os grficos de funes reais de duas variveis so tridimensionais. O comando Maple
utilizado neste caso o plot3d .
> plot3d(x*sin(y), x=0..4, y=0..10);

> f2 := x*exp(-x^2-y^2);

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

Comandos Especiais em Plots


O Maple possui uma biblioteca especialmente dedicada a confeco de grficos. O
acesso a esses comandos se faz executando with(plots) . Ento poderemos plotar
figuras cilndricas, funes implcitas, coordenadas polares, etc...
> with(plots);

Veremos como utilizar os comandos contourplot (curvas de nvel) e spacecurves


(curvas parametrizadas).
> contourplot(f2, x=-2..2, y=-2..2); # curvas de nvel da f2 acima.

> spacecurve([cos(t),sin(t),t], t=0..20, title=`Espiral`);

Todos os comandos contidos em plots podem ser usados diretamente sem executar o
with(plots) . Basta saber o nome do comando desejado e execut-lo da seguinte forma:
plots[nome] . Vamos ver um exemplo com gradplot (campo gradiente).
> plots[gradplot](x^2+y^2, x=-1..1, y=-1..1, color = x^2+y^2);

Plotando Pontos
Em experimentos cientficos comum querermos plotar grficos a partir dos dados
obtidos. Esses dados em geral vem em forma de um conjunto finito de pontos. No
Maple os dados so inseridos com o comando seq (sequncias) ou simplesmente
colocados em colchetes [] .
> Dados := [ [0,1], [1,1], [2,2], [3,2], [4,3], [5,3], [6,2] ];

> plot(Dados); # sem parmetros extras.

> plot(Dados, style=point, symbol=circle, color=blue);

Notas Finais
A produo de grficos em 2D e 3D um dos pontos fortes do Maple V. O leitor
interessado no deve deixar de consultar o tutorial em ?plots .
> ?plots

Clculo Diferencial e Integral


Neste Captulo discutiremos alguns dos aspectos prticos do Clculo Diferencial e
Integral de uma varivel real.
Aproveitamos para sugerir a utilizao de comando restart (reiniciar) que faz com que
o sistema "limpe" a memria do Maple. Os smbolos e letras j atribudos anteriormente
ficam tambm liberados. como (quase) se o Maple fosse recarregado.
> restart;

Calculando Limites
Os limites podem ser calculados com o comando limit , que pode ser aplicado s
funes e expresses.
> f1 := x-> (x^2+5)/(x^3); # definindo uma funo.

> limit(f1(x), x=1); # limite para x tendendo a 1.

> limit(f1(x), x=infinity); # limite para x tendendo a infinito.

> f2 := sin(x)/x; # definindo uma expresso contendo x.

Observe que
no uma funo para o Maple, mas to somente uma expresso
contendo a varivel x . Portanto no comando limit escrevemos f2 e no f2(x) .
> limit(f2, x=0);

> limit(f2(x),x=0); # no faz sentido.

Para se calcular limites laterais basta acrescentar as opes left (esquerda) ou right
(direita). Vejamos um exemplo com a funo tangente tan .
> limit(tan(x), x=Pi/2, left);

> limit(tan(x), x=Pi/2, right);

Se desejamos apenas indicar um limite, ento podemos utilizar o comando Limit com a
letra L maiscula. A sintaxe a mesma.
> Limit(x^2*sin(1/x), x=0, right);

> value(");

>

Clculo de Integrais
As integrais indefinidas ou definidas so obtidas atravs do comando int (com letras
minsculas). Tambm podemos usar o comando Int (com letra i maiscula) no caso de
querermos a integral apenas indicada.
> f3 := x -> a*x^2; # definindo uma funo.

> Int(f3(x), x);

> int(f3(x), x);

> int(ln(x),x);

Para se calcular integrais definidas precisamos fornecer os limites de integrao. A


notao x=a..b significa que o x varia de a at b .
> rea := Int(f3(x), x=0..1);

> value(rea);

> f4 := 1/x^2; # definindo uma expresso.

> Int(f4, x=1..infinity);

> value(");

> Int(Int(x^2+y^2, x=1..2), y=0..3);

> value(");

>

Derivadas

Existem duas maneiras de se derivar funes no Maple. Uma delas se faz com o uso do
operador diferencial D . Aqui daremos exemplos atravs da funo diff (diferenciar).
> f5 := x^2+sin(x);

> diff(f5, x);

> diff(f5, x,x); # derivando f5 duas vezes.

> f6 := x^3+y^2;

> diff(f6, x);

> diff(f6, y);

> diff(u(x)*v(x),x);

>

Sries de Taylor
A funo series produz a srie de Taylor para funes analticas. Em geral a resposta
dada em termos de uma expanso de ordem 5.
> T1 := series(exp(x), x=0); #expanso em torno de x=0.

Em seguida vamos converter a parte principal da srie T1 num polinmio.


> Poli := convert(T1, polynom);

Podemos observar que o resultado Poli acima uma expresso contendo x . Porm no
se trata de uma funo cujo argumento x . Para transformar uma expresso contendo x
para uma funo de x devemos executar unapply .
> f7 := unapply(Poli, x); #transforma o polinmio Poli numa funo f7.

> f7(1.0);

>

Equaes Diferenciais
Resolver equaes diferenciais uma das principais tarefas da computao cientfica. O
assunto complexo e extenso. Aqui faremos alguns exemplos do comando dsolve .
> ed1 := diff(y(t),t,t) + y(t) = sin(t);

> dsolve(ed1, y(t));

> ed2 := diff(y(t),t) = y(t)^2;

> dsolve(ed2, y(t));

A maioria dos problemas de equaes diferenciais no podem ser resolvidas


analiticamente (de forma exata). O comando dsolve possui uma opo de soluo
numrica. Como exemplo, resolveremos um problema de valor inicial no linear.

> ed3 := diff(y(t),t)+sin(y(t))=cos(t);

> yy := dsolve( {ed3, y(0)=0}, y(t), type=numeric );

Vejamos agora como se trabalha com a soluo yy acima, que de fato uma funo.
> yy(0);

> yy(2.1);

>

Notas Finais
Neste captulo exploramos os seguintes comandos Maple:
diff int Int limit Limit series unapply dsolve
Existem muitos outros comandos para o clculo de derivadas e integrais. Explore os
tutoriais contidos em ?contents ou ?introduction , conforme o caso. Para se fazer
trabalhos mais especficos com equaes diferenciais fundamental consultar os textos
especializados. O leitor poder comear por experimentar ?dsolve .
>

Programao Bsica em MAPLE


Atualmente todos os sistemas de computao algbrica possuem recursos para
programao. A estrutura bsica de programao no Maple derivado do Algol e do
Pascal.
O nosso objetivo apresentar os elementos essenciais em programao Maple de forma
que o leitor possa prosseguir por si mesmo para programas mais avanados. A nossa
abordagem no far uso de nenhum conhecimento prvio em linguagens de
programao. Entretanto algum conhecimento em algoritmos matemticos facilitar a
compreeno dos exemplos apresentados.
> restart;

Comandos de Entradas e Sadas


Um programa deve comear por ler os dados e terminar por escrever os resultados.
Durante as sesses interativas do Maple, a leitura de dados feita atravs do comando
de atribuio ( := ). Tabelas de dados armazenados em arquivos tambm podem ser
lidas, com o uso do comando read . Execute ?read para se saber como funciona.
Os comandos especficos para escrever na tela so o print (imprimir) e o lprint . Esses
comandos possuem a seguinte estrutura: print( expresso1 , expresso2 , etc... ) . As
expresses podem ser valores numricos ou comentrios. Em caso de comentrios,
esses devem estar entre aspa simples ( ` ).
> print(`O valor do pi quase`, evalf(Pi,17));

> m := 2*x;

> print(`O cubo m `, m^3);

> lprint(`O cubo m `, m^3); # usando lprint.


O cubo m 8*x^3

O comando lprint possui a mesma sintaxe que o print mas escreve os resultados
alinhados esquerda e s usa caracteres ASCII.
>

Comandos de Repetio e Iterao


Durante a concepo de um algoritmo deparamo-nos muitas vezes com situaes onde
uma certa instruo repetida vrias vezes. Para isso temos o comando for . A sua
utilizao segue um equema for-do-od da seguinte forma:
for j from incio to fim do
expresses a serem repetidas
od
O esquema bastante legvel se adotarmos as seguintes tradues: for (para), from (a
partir de), to (preposio a) e do (faa). Como exemplo vamos calcular os quadrados de
1, 2, 3 ,4 e 5.
> for j from 1 to 5 do
> j^2
> od;

A representao de sequncias indexadas no Maple se faz com colchetes [] . Vamos

escrever os 5 primeiros termos da sequncia


> for k from 1 to 5 do
> y[k] := 1/(1+k)
> od;

Em processos iterativos (recursivos) devemos utilizar o conceito da reatribuio


dinmica de variveis. Digamos que estamos interessados em somar os nmeros de 1 a
100. Para isso comeamos com a soma

. Na primeira etapa fazemos

(agora S vale 1). Na segunda etapa fazemos

(agora S vale 3). Na terceira

(agora S vale 6). Na quarta etapa fazemos


(agora S
etapa fazemos
vale 10), e assim sucessivamente. Ao chegarmos na centsima etapa teremos

. Vejamos como essa soma obtida no Maple.


> S:=0;
> for j from 1 to 100 do
> S:=S+j
> od:
> Soma_Final:=S;

>

Agora podemos estudar um exemplo tpicamente acadmico. O problema o clculo da


raiz quadrada via aproximaes sucessivas. O algortmo, baseado no Mtodo de
Newton, muito simples. Suponhamos que se quer calcular a raiz quadrada de a .
Ento, a partir de um valor inicial

(arbitrrio) a raiz quadrada de a o limite da

sequncia

onde

aproximado de

,
com

, .... Vamos obter o valor

, fazendo-se somente 5 iteraes.

> rr:=1;

> for k from 1 to 5 do


> rr:= 0.5 * (rr + 11.3/rr)
> od;

> sqrt(11.3);

>

Comandos de Seleo
Os comandos de seleo (ou de desvio) so utilizados para se decidir se um certo valor
satisfaz ou no uma certa condio. Essas condies so determinadas pelas relaes =
(igualdade), < (menor que), > (maior que), <= (menor ou igual), >= (maior ou igual) e
<> (diferente). Os operadores lgicos so: if (se), elif (ou se), else (ou ento) e then
(ento). Trabalha-se com o seguinte esquema: if-then-elif-then-else-fi .
> if 1 = 2 then AZUL
> else VERMELHO
> fi;

> if 1 > 10 then print(GRANDE)


> elif 1 < -10 then print(PEQUENO)
> else print(MEDIO)
> fi;

>

Procedimentos Maple
Veremos agora uma forma muito prtica de se construir pequenos programas
"executveis". No Maple so chamados procedure (procedimento). A sintaxe para se
contruir procedimentos a seguinte:
Nome := proc( argumentos )
instrues contendo os argumentos
end .
claro que existem muitas outras opes a serem consideradas. O leitor poder
consultar o tutorial em ?proc . O primeiro procedimento que escreveremos mostra a
soma de 2 nmeros dados.
> Soma := proc(x,y)
> print(`A soma procurada `, x+y)
> end;

> Soma(2,2);

> Soma(alpha, beta);

>

Definindo Funes com Procedimentos


Os procedimentos Maple so na verdade funes dos argumentos de entrada. Logo
tambm podemos utilizar o comando proc para definir funes matemticas. Vejamos
como definir a funo

de duas maneiras diferentes.

> f1 := x -> x^3*sqrt(x); # maneira usual.

> f1(7);

> f2 := proc(x) x^3*sqrt(x) end;

> f2(7);

Certas funes podem exigir algum conhecimento em programao para serem


definidas. Vamos construir uma funo que vale 1 para
.
> f3 := proc(x)
> if evalf(x) < 0 then 1
> else cos(10.0*x)
> fi
> end;

> f3(-1);

> f3(1);

para

> plot(f3, -1..1);

>

Comentrios Finais
As tcnicas de programao so geralmente objetos de muitos livros e manuais.
Entretanto, esperamos que o leitor acredite que a programao Maple acessvel e
bastante intuitiva. Veja as referncias do Captulo 5.

Dicas e Referncias
Funes Especiais (Pacotes)
Os comandos especficos para Equaes Diferenciais, lgebra Linear, Estatstica,
Grficos, etc... esto colecionados separadamente em pacotes ( bibliotecas de funes ).
Uma lista completa pode ser vista executando-se ?index[package] . Esses pacotes so
carregados com auxlio do comando with . Veremos a seguir alguns exemplos do pacote
linalg , que so especficos para matrizes, vetores e transformaes lineares.
> restart:
> with(linalg);
Warning, new definition for norm
Warning, new definition for trace

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

> b := [5,5,0];

> X := linsolve(A,b); # Resolvendo o sistem AX=b.

> multiply(A,X); # Multiplicando as matrizes A e X.

> det(A); # Determinante de A.

> inverse(A); # Calculando a inversa de A.

>

Maple na WEB
Relacionamos abaixo alguns sites especializados em Maple V na internet. Todos esses
sites possuem artigos tcnicos, notas de cursos e programas em computao algbrica.
Stat/Math Center em Indiana University (o meu favorito)
http://www.indiana.edu/statmath/math/maple
CyberMath (Site Oficial)
http://www.cybermath.com
Maple em Los Alamos National Laboratory
http://saaz.lanl.gov/Maple/Maple_Home.html
Maple e LaTeX em Portugus
http://www.geocities.com/cnumat
Livros Especializados

Os trs livros listados abaixo formam o ncleo de toda bibliografia em Maple.


B. W. Char, K. O. Geddes, G. H. Gonnet, B. L. Leong, M. B. Monagan, S. M. Watt
, First Leaves:
A Tutorial Introduction to Maple V , Springer-Verlag, 1992. (ISBN 0-387-97621-3).
B. W. Char, K. O. Geddes, G. H. Gonnet, B. L. Leong, M. B. Monagan, S. M. Watt
, Maple V Library Reference Manual , Springer-Verlag, 1991. (ISBN 0-387-975926).
B. W. Char, K. O. Geddes, G. H. Gonnet, B. L. Leong, M. B. Monagan, S. M. Watt
, Maple V Language Reference Manual , Springer Verlag, 1991. (ISBN 0-387-976221).
A seguir indicamos alguns livros que so destinados ao ensino universitrio.
M. Abell & J. Braselton , Differential Equations with Maple V , Academic Press
Professional, 1994. (ISBN 0-12-041548-8).
D. Barrow , Solving Ordinary Differential Equations with Maple V , Brooks/Cole
Publishing Co., 1997. (ISBN 0-5343-4402-X).
W. C. Bauldry, B. Evans & J. Johnson , Linear Algebra with Maple , John Wiley &
Sons, 1995. (ISBN 0-471-06368-1).
J. S. Devitt , Calculus with Maple V , Brooks/Cole Publishing Co. ,1993. (ISBN 0534-16362-9).
R. J. Lopez , Maple V: Mathematics and Its Application , Birkhuser, 1994. (ISBN
0-8176-3791-5).
Lista de Comandos (em ingls)
Aqui inclumos uma lista de funes e comandos Maple que foi obtida executando-se
?index[functions] . Cada tem listado est ligado automaticamente ao seu
correspondente tutorial atravs de hyperlinks.

> # FIM