Manual Maple

Embed Size (px)

Citation preview

Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 1 UNICEP MINI - MANUAL PARA O USO DO MAPLE Prof. Dr. Artur Darezzo Filho Prof.Dr. Edson de Oliveira 2008 Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 2 Mini-manual para o uso do Maple O aplicativo Maple 7 Ao abrir o Maple nos deparamos com uma pgina de trabalho que apresenta um smbolo > emfrenteaoqualpodemosdeclararcomandosaseremexecutados.Essaregiopodeser modificada para uma regio do tipo texto, ou vice-versa, com o uso da tecla F5 ou utilizando os cones T e do menu. As declaraes so feitas por nmeros, operadores e funes. O uso mais simples do Maple consiste em: digitar a expresso a ser executada escrever um ponto e vrgula no final de cada expresso acionar a tecla enter Destaforma,oMapleavaliaaexpressonacorvermelhaearespostaaparecenalinha seguinte, centralizada, na cor azul e, em notao matemtica padro. Se no final de uma expresso digitarmos dois pontos" :"em vez do ponto e vrgula" ; " o Maple efetua e avalia, armazena na memria mas no mostra o resultado.Os smbolos+ , - , * ,/e^ denotam as operaes de adio, subtrao, multiplicao, diviso e potenciao, respectivamente. O smbolo ! denota fatorial. Exemplos: > 6 + 5 - 8; > (12*3)/2; 18 > 3+5!; 123 > 3^4 - 16^3; -4015 Para acionar o sistema de ajuda digitamos no prompt o sinal?seguido da expresso da qual se deseja a informao. Por exemplo, digitando > ?matrix e acionando a teclaenternos soretornadas informaessobre o comando matrix.O sistema de ajuda tambm pode ser acionado atravs do menu, no item help. Aoencontrarumafalhaemumcomando,oMaplerespondecomumamensagemdeerro indicandootipodefalha.Algumasdelasso:sintaxe(equvoconadigitao,nomeincorretodo comando,usodepalavrasreservadas,etc.),errodedomniosdefunesmatemticas,clculos queexcedemacapacidadedememriaoudecomputaodosistemaoudoaplicativo.sempre importantecorrigi-lospoiserrosnocorrigidoslevamamensagensdeerrosnoscomandos subseqentes. > 3/(6-3!); Error, numeric exception: division by zero > 1234567890^9876543210;Error, numeric exception: overflow(o clculo excede a capacidade de memria) 3Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 3 Digitandoocomandorestarteacionandoateclaenter,limpamosamemriainternado Maple,usadaparaestocarosclculos.Daparafrente,tudopassaaocorrercomoseoarquivo tivesse sido aberto naquele momento. Pacotes no Maple OMaple7possuipacotesquefornecemumasriederecursospararesolverproblemas especficos de determinados assuntos. Por exemplo, ele possui pacote para teoria dos grupos (o pacotegroup),pacotesparageometria(ospacotesgeometryegeom3d),parateoriados nmeros( numtheory ),paralgebralinear( linalg ),paraclculo(student ),paragrficos( plots ),objetos grficos bsicos ( plottools ), etc.Para acessar as funes de um pacote, como por exemplo o pacote para clculo, digitamos o comando with(student): . Digitando ( ; )em vez de ( : ) ,podemos ver a listagem de todas as funes definidas no pacote. > with(student); DDiff Doubleint Int LimitLineintProduct SumTripleintchangevar , , , , , , , , , , [completesquaredistanceequateintegrandinterceptintpartsleftboxleftsum , , , , , , , ,makeprocmiddleboxmiddlesummidpoint powsubsrightbox rightsum , , , , , , ,showtangent simpsonslopesummandtrapezoid , , , , ] Nmeros no Maple O Maple reconhece vrios tipos numricos. Os mais utilizados soos seguintes :integer (inteiros) , fraction(frao),float e complex (complexos).Float, so nmeros reais representados no sistema de ponto flutuante e se constituem de uma seqncia de dgitos e um ponto decimal, multiplicados ou no, por uma potncia de 10. Exemplos: 1.75, 3.49, 0.3675*10^12. Observemosque1,75(comvrgula)oMaplenoaceita;devemosusar1.75(umponto setenta e cinco). Oscomplexos,soosnmerosdaformaa+b*I,ondeaebsonmerosinteiros, fracionrios ou floats e I =-1. Por padro o valor numrico de uma expresso dado pelo Maple no tipo mais abrangente que aparece na expresso. Exemplos: > 15+12; 27 > 10+3.9; 13.9 > 18/12; ( o Maple por padrosimplifica fraes de inteiros ) 32 ObservemosquenoltimoexemplooMaplessimplificouaexpresso.Eleutilizouna resposta a forma fracionria, que a forma mais abrangente da expresso dada. A forma decimal que seria a esperada no aconteceu. Para obt-la podemos usar: Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 4 > 18./12; ( escrevendoo nmero 18 na forma decimal 18.0 ) 1.500000000 A funoevalfavalia expresses no tipo float, com 10 dgitos, incluindo a parte inteira.Seguem alguns exemplos: >evalf(18/12); 1.500000000 >evalf(3437*Pi/23); (Pi a notao para o nmero irracional3,1415....) 469.4632153 Podemosespecificaronmerodedgitosquedesejarmosparaarepresentaodecimal dos nmeros. O padro 10 e o limite prtico 500000, dependendo muitas vezes dos recursos do computador. Por exemplo, se quisermos uma representao decimal para o nmero , t com 80 dgitos, procedemos: >evalf(Pi,80); 3.1415926535897932384626433832795028841971693993751 Podemos usar a funoconvert para transformar a representao dos nmeros . > convert(18/12,float); 1.500000000 Um outro exemplo de aplicao da funo convert. convert(3.777777,fraction); 539663142852 O comando para a raiz quadrada sqrt. > sqrt(50);( observemos que o tipo de nmero mais abrangente na expresso inteiro) 5 2 > convert(sqrt(50),float); evalf(sqrt(50)); 7.071067812 7.071067810 Para outras razes: > root[3](10.); (raiz cbica de 10)2.154434690 Pode-se tambm usar a forma de potncias: > evalf(10^(1/3)); 2.154434690 Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 5 Algumas funes bsicas da Teoria dos Nmeros igcd retorna o mximo divisor comum de dois ou mais nmeros ilcm retorna o mnimo mltiplo comum de dois ou mais nmeros iquo(n,m) retorna o quociente da diviso euclidiana de n por m irem(n,m) retorna o resto da diviso euclidiana de n por m is(n=m) verifica se n igual a m Funes logartmicas, exponenciais e trigonomtricas ExisteumagrandequantidadedefunesreconhecidaspeloMaple.Paraverific-las podemos usar oHelp do menu ou dar busca no tpicoinifcn. Por exemplo, parao logaritmo de xnabaseeo comandoln(x). No caso de logaritmos de bases quaisquer, utilizamoslog[Basis](x) onde Basis representa a base escolhida. O comando para a funo exponencial exp(x).Os seguintes comandos so utilizados para calcular funes trigonomtricas: sin(x)funo senocot(x)funo cotangente cos(x)funo cossenosec(x)funo secante tan(x)funo tangentecsc(x)funo cossecante Exemplos: > csc(Pi/4); 2 > exp(3);e3 > evalf(%); 20.08553692 > ln(100.); 4.605170186 > log[10](100000.);(clculo do logaritmo de 100.000 na base 10) 5.000000000 > cos(5.); .2836621855 > sec(7*Pi/4); 2 Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 6 > evalf(sin(Pi/3)); .8660254040 Nas funes trigonomtricas, o valor de x sempre dado em radianos (ou seja, o padro do Maple radiano). Se,por exemplo, quisermos o valor do sen (1500) , devemos converter 1500 em radianos.Procedemos assim: > sin(convert(150*degrees,radians)); 12 Computao Simblica A computao simblica uma das ferramentas mais importantes do aplicativo Maple. Ela nos permite obter clculos algbricos exatos envolvendo objetos matemticos. Por padro, o Maple simplifica expresses reduzindo os monmios semelhantes.Vejamos alguns exemplos. > x^3-3*x^2-6*x+11*x^2-3*x; + x38 x29 x O comando para fatorar factor. > factor(%);x ( ) +x 9 ( ) x 1 Podemos dar nomes a expresses, mediante o comando de atribuio := . > p:=(x-1)^2*(x-2)^4; :=p ( ) x 12( ) x 24 Para liberar um nome de varivel,j utilizado, utilizamos o comandop:='p'.Feito isso, p reassume a sua caracterstica de smbolo. > z:='p'; :=z p Para expandir expresses, usamos o comandoexpand. > expand(p); + + +x610 x541 x488 x3104 x264 x 16 > q:=expand((x-1)^3); :=q + x33 x23 x 1 > r:=quo(p,q,x);( retorna o quociente da divisopolinomial depporq ) :=r + x37 x217 x 15 > rem(p,q,x);( retorna o resto da diviso polinomial de pporq ) +x22 x 1 > gcd(p,q);( retornao mximo divisor comumde peq ) ( ) x 12 Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 7 > lcm(p,q);( retornao mnimo mltiplo comumde p e q ) ( ) x 24( ) + x33 x23 x 1 > coeff(p,x^5);( retorna o coeficiente de x5 ) -10 > degree(p);( retorna o grau do polinmio ) 6 > subs(x=-3,p);( avalia a expresso p parax = -3 ) 10000 Algumas manipulaes algbricas Numa expresso racional muitas vezes til cancelar os fatores comuns do numerador e do denominador. O comandonormalrealiza esta tarefa e apresenta numerador na forma expandida. > exp1:=(x^2-y^2)/(x-y)^3; :=exp1 x2y2( ) x y3 > normal(exp1); +y x( ) +x y2 OscomandosnumeredenomdoMaplesousados,respectivamenteparadestacaro numerador e o denominador da frao. > fr:=((x-3)/(x+2)^2); :=fr x 3( ) +x 22 > numer(fr);( extrai o numerador de uma expresso racional ) x 3 > denom(fr);( extrai o denominador de uma expresso racional ) ( ) +x 22 Listas e arrays

O comandoseq pode ser usado para definir seqncias finitas. Por exemplo, a seqncia dos cubos de 1 a 5 obtida por: > S:=seq(i^3,i=1..5); Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 8 :=S , , , , 1 8 27 64 125 Quando digitamos uma seqncia entre colchetes criamos uma lista. > L:=[a,b,c,d,e,f]; :=L [ ] , , , , , abcdef OMaplepreservaaordemearepetionumalista.Assim,[r,s,t],[s,t,r],[r,r,s,t,r]so listas diferentes. Como a ordem preservada, possvel extrair um particular elemento de uma lista.Assim,paraextrairon-simo elementodeumalistaLusamosocomandoL[n].Para extrair don-simoaom-simotermo, usamosop(n..m,L). Para transformar uma listaKnuma seqncia, usamosop(K) . > L[3];c > op(3..5,L); , , cde > K:=[seq(5i,i=4..9)]; :=K [ ] , , , , , 20 25 30 35 40 45 > K1:=op(K); :=K1 , , , , , 20 25 30 35 40 45 O nmero total de elementosde uma lista L obtido pornops(L). > nops(L); 6 A funomap ( comando , lista )aplica um determinado comando a cada elemento de uma dada lista. > T:=[0,-Pi/2,-Pi,3*Pi/2]; :=T

(((, , , 012 tt32 t > map(cos,T);( retorna a lista dos cossenos dos elementos da listaT) [ ] , , , 1 0 -1 0 > map(abs,T);( retorna a lista dos valores absolutos dos elementos da lista T)

(((, , , 012 tt32 t Arrays soextenses dos conceitos de listas. So tipos de tabelas de dimenses 0, 1 ou mais e produzem, por exemplo, vetores, matrizes, etc. Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 9 Ocomandoaseguirretornaumalistade3elementos.Nalista,oselementosesto especificados entre colchetes. > array(1..3,[1,4,16]);[ ] , , 1 4 16 No exemplo abaixo definido um array de dimenso 2 (matriz) consistindo de trs linhas (primeira entrada 1..3 ) e duas colunas(segunda entrada 1..2). Os elementos da primeira linha so dadospelaprimeiralistaeosdasegundalinha,pelasegundalistaeosdaterceiralinha,pela terceira lista. > B:=array(1..3,1..2,[[3,4],[5,5],[8,0]]); :=B

((((((3 45 58 0 Para selecionar um elemento especificamos sua linha e a coluna . > B[3,2]; B[1,2]; 0 4 FunesFunesdeumavarivelsodefinidaspornome da funo:= varivel-> expresso, onde a seta composta do smbolo de subtrao -, seguido do smbolo de desigualdade>. > f:=x->x^3 ; :=fx x3 > f(3);f(y+1); 27 ( ) +y 13 > (f(x+h)-f(x))/h; ( ) +x h3x3h > simplify(%); + +3 x23 x h h2 Consideremos a expressoadefinida por : > a:=x^3+3*x^2-4*x+2; :=a+ +x33 x24 x 2 Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 10 ObservemosqueoMaplenoavaliaaparax=2,poiseleentendeacomouma expresso e no como uma funo.O comando unapply(E,x) transforma em funo de x, qualquer expresso algbrica E. > g:=unapply(a,x); :=gx+ +x33 x24 x 2 > g(2); 14 Para definir funes reais mais complicadas, como por exemplo s >3 , 53 ,2x xx x podemos empregar o comandopiecewise. > h:=x->piecewise(3 derivadag:=diff(g(x),x); :=derivadag+ 3 x26 x 4 Com este comando, o Maple retorna a derivada deg(x)como uma expressoe no como funo.Para se obter a funo derivada, utilizamos o comandoD(g). > D(g); x+ 3 x26 x 4 > D(g)(1); (calcula a derivada no pontox=1) 5 Tambm podemos usar o comandosubs(x=1, derivadag),para efetuar a substituio de x=1na expresso da derivada degacima. Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 11 > subs(x=1,derivadag); 5 > diff(g(x),x,x);(retorna a derivada segunda) +6 x 6 > diff(g(x),x$3);(retorna a derivada terceira) 6 > D(D(g));(D@@2)(g); x+6 x 6 x+6 x 6 > (D@@4)(g); (funo derivada de ordem 4) 0 Ocomandoint(g(x),x)determinaaintegralindefinidadafunogamenosde constante. > int(g(x),x); + + 14 x4x32 x22 x > int(g(x),x=-1..3); ( calcula a integral definida para x de -1 at 3.) 40 Se quisermos apenas indicar a integral, sem resolv-la, utilizamos: > Int(g(x),x=-1..3);d(]((-13 + +x33 x24 x 2 x Para calcular o valor da integral anterior procedemos: > value(%); 40 Funes de vrias variveis so definidas de maneira similar:nome da funo : =(varivel 1,varivel 2,...,varivel n)->expresso > H:=(x,y)->x^2+2*y; :=H( ) , xy+x22 y > H(-1,2);H(b+1,b-1); Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 12 5 + ( ) +b 122 b 2 Soluo de equaes: o comando solve O comandosolve( equao, { varivel } ),resolve equaes analiticamente.Caso a varivel no seja indicada ( sua indicao opcional ), o Maple faz a escolha.Se no lugar da equao escrevermos uma expresso, o Maple considera expresso = 0. Senoconjuntodesoluesaparecerumaexpressodotipox = x,istosignificaquex pode assumir qualquer valor. > solve(x^4-2*x^2-1/2*x^3+x,{x}); , , , { } =x 0 { } =x12{ } =x 2 { } =x 2> solve(3*x+9*y=0); { } , =y y=x 3 y Podemos associar a seqncia de solues de uma equao a uma varivel. > solve(3*x^2-5*x+7); , + 5616 I 59 5616 I 59> u:=%; :=u , + 5616 I 59 5616 I 59 Avariveluumaseqnciadedoiselementos.Podemosacessarcadasoluo separadamente. > u[1];(retorna a primeira soluo da equao) + 5616 I 59> u[2];(retorna a segunda soluo da equao) 5616 I 59Ocomandosolve,podeserusadotambmpararesolverumsistemadeequaes.A sintaxe : solve( { equao 1, equao 2,..., equao n ,{ varivel 1, varivel 2,..., varivel m } ) Exemplo: Resolver o sistema linear = + = + += + +0 23 21z y xz y xz y x Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 13 > solve({x+y+z=1, 2*x+y+z=3, x-y+2*z=0} , {x,y,z}); { } , , =x 2=y 0=z -1 Resoluo numrica: o comando fsolve O comando fsolve o equivalente numrico de solve. Ele resolve equaes produzindo, em geral, uma nicasoluo real aproximada e do tipo ponto flutuante.Entretanto, no caso de polinmios, o comando pesquisa todas as razes reais. > fsolve(x^4-3*x^3-12*x^2-36*x+72); , 1.316049770 5.780542834 Nocasodepolinmios,aopocomplexforaoMaplepesquisartambmasrazes complexas, alm das reais. > fsolve(x^4-3*x^3-12*x^2-36*x+72,{x},complex); { } =x-2.048296302 2.295397344 I { } =x+-2.048296302 2.295397344 I , ,{ } =x 1.316049770 { } =x 5.780542834 , Grficos Para se obter grficos de dimenso 2 o comando bsico plot (f,x=a..b,y=c..d,opes) ondef uma funo de uma varivel real,x = a..b o intervalo de variao de x,y = c..d o intervalodevariaodeyeopessodadosdisponveisnosistema,quepodemmelhorara visualizao do grfico conformea necessidade. Os elementos dos intervalos devem ser constantes reais.Os dois ltimosargumentosnoso essenciais para se obter ogrfico. A variaodex,tambm no.Neste caso, o intervalo -10..10 usado como padro e o comando plot (f,x ).Se no fornecermos a variao dey, ela ser deduzida a partir dos valores calculados. Vamos obter grfico da funof(x) = x3 3x 2 no domnio[-2, 3 ] . > plot(x^3-3*x-2,x=-2..3); Seclicarmosnaregiodogrfico,a terceirabarradomenusealterafornecendonovas opesparaaexploraodogrfico.Porpadro,oMaplefornecegrficosemescalasquenos proporciona uma visualizao apropriada e, em geral, utiliza escalas diferentes nos eixos.Clicando no cone 1:1 ( no ambiente do Maple ) obtemos o grfico na escala 1 para 1. Isto pode ser feito tambm, usando a oposcaling=constrained .Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 14 Ogrficodosegmentoderetaligandoospontos(, x0y0)e( , x1y1)obtido empregando o comando[ ] , [ ] , x0y0[ ] , x1y1. Funes com singularidades podem ser melhor visualizadas se delimitarmos os valores da imagem. Podemos obter os grficos de vrias funes ao mesmo tempo,utilizando o comando: plot({grfico 1, grfico 2,..grfico n},x=a..b,opes) . Oprpriosistemanosoferececoresdiferentesparaosgrficos,oquemelhoraasua visualizao. > plot({1/x^3,[[2,1],[-2,-1]]},x=-3..3,y=-2..2,scaling= constrained); No pacote plots do Maple existe a funodisplay({g1,g2,..,gn})que permite desenhar vriosgrficos g1, g2,..,gn, na mesma figura, bem como escolher domnios e corespara cada um. A funo display no entende grficos com diferentes eixos ou vrios ttulos.Pode tambm ocorrer erros se misturarmos intervalos finitos e intervalos infinitos. > with(plots):(para chamar o pacote de grficos) Utilizando a funo display : > g1:=plot(x+1/4, x=-3/4..3/4, color=grey): > g2:=plot(x^4, x=-1..1, color=black): > display({g1,g2}); Existem diversos recursos opcionais quepodemos usar se quisermos alterar o padro do sistema. Esto listados abaixo, alguns deles. color=c(cores):ondecrepresentaacorescolhida.Ascorespr-definidas,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. style=s (estilos) :ondes point, line ou patch . O padro line. symbol=s:definesmbolos a serem usados nolugar dos pontosno desenho;spode serbox, cross, circle, point e diamond. thickness=n ( espessura ): define a espessurandas linhas no desenho. O padro zero. axes=f: estabelece como os eixos sero desenhados;fpode ser normal, frame e boxed. O default normal. Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 15 Exemplo: >with(plots): >h1:=plot(x^2, x=-2..0, style=point, symbol=diamond, color=magenta): >h2:=plot(x^3 , x=0..2, style=line, thickness=3, color=brown): >display(h1,h2, axes=boxed); Sequisermoscolocarumtextonopontodecoordenadascartesianas(a,b)dodesenho, utilizamos a sintaxe: textplot( [ a, b, `texto`] ) Exemplo: > with(plots): > u1:=plot(1/x,x=-2..2, y=-2..2): > u2:=textplot([1,-1,`hiprbole`]): > display(u1,u2); Opacoteplotscontmocomandoimplicitplot,quepermitedesenhargrficosde expresses implcitas.A sintaxe : implicitplot ( expresso,x=a..b,y=c..d, opes ) >with(plots): >implicitplot(4*x^2+9*y^2=36,x=-3..3, y=-2..2, thickness=2,color=violet); Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 16 Ocomandoplottambmpodeserusadoparadesenharcurvasparametrizadas.Por exemplo, se uma curva dada porx = f ( t ), y = g( t ), b t a s s , o seu grfico obtido por : plot( [f(t), g(t), t=a..b],opes) Vamos, como exemplo, obter os crculos concntricosde raios1, 2 e 3. >plot({ [cos(t), sin(t), t=0..2*Pi] , [2*cos(t), 2*sin(t),t=0..2*Pi] ,[3*cos(t), 3*sin(t), t=0..2*Pi]}, color=red,scaling=constrained); Utilizando o comandoplot3d, podemos desenhar superfcies em trs dimenses.A sintaxe : plot3d( expresso, variao de x, variao de y, opes ) Estecomandosimilaraocomandoplot.Clicandosobrearegiodogrfico,aterceira barra do menu se modifica e vrias opespara a manipulao do grfico se apresentam. >restart: >plot3d( y^2-x^2, x=-3..3, y=-3..3);

Comopodeservisto,oMapleporpadro,apresentaodesenhonaformaderedeopaca, sem os eixos. Usando a opoaxes=normalo sistema de eixos introduzido.>plot3d( y^2-x^2, x=-3..3, y=-3..3, axes=normal); Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 17 Matrizes Uma outra maneira de representar matriz, alm do comando array, com a sintaxe: matrix( m, n, [ a11, ..., a1 n , a21 , ... , a2 n , ... , am1 , ... , amn ] ) ; ondem o nmero de linhas,no nmero de colunas e j ia, o elemento linha i coluna j. Exemplos: >A:=matrix(3,4,[1,2,-3,2,2,7,-1,8,3,0,1,-1]); :=A

((((((1 2 -3 22 7 -1 83 0 1 -1 >B:=matrix(3,4,[-1,2,-1,3,-2,5,-1,4,0,0,1,-3]); :=B

((((((-1 2 -1 3-2 5 -1 40 0 1 -3 >C:=matrix(3,3,[1,2,3,4,5,6,0,1,-1]); :=C

((((((1 2 34 5 60 1 -1 >P:=matrix(2,3,2); ( matriz de ordem 2x3 cujos elementos so todos iguais a 2 ) :=P

(((2 2 22 2 2 Para os exemplos que seguem, vamos considerar as matrizes A,B e C definidas acima. > evalm(A+B);( efetua a soma de matrizes )

((((((0 4 -4 50 12 -2 123 0 2 -4 > evalm(C&*A);( efetua o produto )

((((((14 16 -2 1532 43 -11 42-1 7 -2 9 > transpose(C);( transpematrizes )

((((((1 4 02 5 13 6 -1 > det(C);( retorna o valor do determinante da matriz ) 9 Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 18 > inverse(C);( retorna ainversa )

((((((((((((((-11959-1349-192349-19-13 > A[1,3];( extrai o elemento da primeira linha e terceira coluna ) -3 > row(A,2);( extrai a segunda linha de A ) [ ] , , , 2 7 -1 8 > col(A,2);( extrai a segunda coluna de A ) [ ] , , 2 7 0 > submatrix(A,2..3,1..2); ( extrai a segunda e terceira linhas e primeira e segundacolunas de A )

(((2 73 0 > stackmatrix(A,B); ( justape matrizes como linhas )

((((((((((((((1 2 -3 22 7 -1 83 0 1 -1-1 2 -1 3-2 5 -1 40 0 1 -3 > concat(A,B); (justape matrizes como colunas)

((((((1 2 -3 2 -1 2 -1 32 7 -1 8 -2 5 -1 43 0 1 -1 0 0 1 -3 Afunolinsolve(A,Y);dopacotelinalgdeterminaovetorXquesatisfazaequao matricial A . X = Y.Se a matriz A temm linhas e n colunas e o vetor Ytem n coordenadas ento o vetor X ter m coordenadas, se a soluo existir. Exemplo: > A:=matrix(3,3,[1,1,1,2,1,1,1,-1,2]);Y:=matrix(3,1,[1,0,0]); :=A

((((((1 1 12 1 11 -1 2 Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 19 :=Y

((((((100 > X:=linsolve(A,Y); :=X

((((((-111 Programao no Maple O Maple possui uma linguagem de programao de alto nvel e compatvel com os recursos de sua prpria estrutura. Uma forma prtica de seconstruir pequenos programas "executveis" no Maple so oschamadosprocedure( procedimento ).A sintaxe para se construir procedimentos a seguinte: >Nome:=proc(argumentos) instrues contendo os argumentos >end: As variveis utilizadas na construo de um procedimento podem ser locais ou globais. Os valores das variveis globais so reconhecidos pelo Maple fora do procedimento.Se o procedimento no especificar o carter da varivel que est sendo utilizada, o Maple decide sobre isso e avisa o usurio. Para se escrever expresses na tela, podemos usar o comandoprint (imprimir).A sintaxe do comando : print (expresso 1, expresso 2, etc ).Asexpressespodemservaloresnumricosoucomentrios.Emcasodecomentrios, esses devem estar entre aspas simples ( ` ). > print(`o valor de pi aproximadamente`, evalf(Pi)); , o valor de pi aproximadamente 3.141592654 > u:=3*x; :=u 3 x > print(`o cubo de u `, u^3); , o cubo de u 27 x3 Exemplo:Estabelecerumprocedimentoparacalcularasomadosnprimeirosnmerosinteiros positivos. > soma:=proc(n) > local s; > s:= factor(sum(i,i=1..n)); > print(`a soma dos`, n,` primeiros nmeros inteiros positivos `, s); > end: Definido o procedimento, podemos operar com ele como uma funo qualquer. Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 20 > soma(300); , , , a soma dos 300 primeiros nmeros inteiros positivos 45150 > soma(n); , , , a soma dosn primeiros nmeros inteiros positivos 12 n ( ) +n 1-declarao condicional Para decises, o Maple oferece a declarao condicional, cujos operadores lgicos if(se) , elif(ou se) else (ou ento) , then(ento) apresentam as seguinte sintaxes: >ifcondio thenseqncia de comandos>elifcondiothenseqncia de comandos>elseseqncia de comandosfi; Vamos us-las no exemplo seguinte. Exemplo: Estabelecerumprocedimentoparadefinirumafunoquevalha-2paraxs0, 4 xt2 parax entre 0et2 ecos (x)paras t2x . > f:=proc(x) > if x elif x>0 and x else > cos(x) > fi; >end: >f(-1);f(1);evalf(3*sqrt(2)); -2 -.726760456 4.242640686 -A declarao repetio Duranteodesenvolvimentodeumalgoritmodeparamo-nosmuitasvezescomsituaes onde certa instruo repetida vrias vezes.Para isso temos o comandofor.A sua utilizao segue um esquemafor-do-od,da seguinte forma: > forvarivelfromexpressotoexpressodo expresses a serem repetidas > od; O esquema bastante legvel se adotarmos as seguintes tradues:for ( para ),from ( a partir de ), to ( preposio a )edo ( faa ). Como exemplo, vamos calcular os cubos de 1, 2, 3, 4, 5, 6. Artur Darezzo Filho - Edson de Oliveira UNICEP So Carlos 21 >for j from 1 to 6 do >j^3 >od; 1 8 27 64 125 216 -Somas iterativas Em processos iterativos (recursivos) devemos utilizar o conceito da reatribuio dinmica devariveis.Suponhamos,porexemplo,queestamosinteressadosemsomarosnmerosde1a 100. Para isso comeamos com a somas=0.Naprimeiraetapa fazemoss = s + 1(agora, s vale 1).Nasegundaetapafazemos s = s +2(agora,svale3).Naterceiraetapafazemoss=s+3(agora,svale6).Naquartaetapa fazemos s = s + 4 (agora, s vale 10), e assim, sucessivamente.Ao chegarmos na centsima etapa, obteremos s = 1 + 2 + 3 + ...+ 100. No Maple, esta soma obtida do seguinte modo: >s:=0: >for j from 1 to 100 do >s:=s+j: >od: >soma100:=s; :=soma100 5050 Exemplo: Estabelecer um procedimento para se obter a soma dos n primeiros nmeros mpares. >si:=proc(n) >local s, i: >s:=0: >for i from 1by 2 to n do >s:=s+i: >od: >end: A soma dos 50 primeiros nmeros mpares : > si(50); 625