6743392 maple 5 tutorial basico

25
APOSTILA DE MAPLE V

Upload: was1977

Post on 25-Sep-2015

222 views

Category:

Documents


2 download

DESCRIPTION

Maple

TRANSCRIPT

  • 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 a .

    > 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

    etapa fazemos (agora S vale 6). Na quarta etapa fazemos (agora S 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 , , .... Vamos obter o valor

    aproximado de com , 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), = (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 e para

    .

    > f3 := proc(x)

    > if evalf(x) < 0 then 1

    > else cos(10.0*x)

    > fi

    > end;

    > f3(-1);

    > f3(1);

  • > 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-97592-6).

    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-97622-1).

    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 0-534-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