You are on page 1of 5

Gregorio Hernndez, Departamento de Matemtica Aplicada Facultad de Informtica, UPM

Curso 09-10 Matemtica Discreta I Grupo 16M-1

INSTRUCCIONES BSICAS DEL PROGRAMA MAPLE (Classic) Operaciones elementales en Maple x+y; SUMA. Las rdenes se terminan siempre con el signo ; (salvo las que empiezan con?). Si se terminan con el signo : la operacin se efecta pero no se muestra el resultado x-y; RESTA x*y; PRODUCTO (OJO! el signo por * siempre se escribe) x/y; DIVISION x^y; POTENCIA a<b; a>b; a< > b; a<=b; a menor que b, a mayor que b, a distinto de b, a menor o igual que b... x:=2; ASIGNACION (la variable x toma a partir de ahora el valor 2) x:='x'; DESASIGNACION (x vuelve a ser una variable) g:=x^2+1; EXPRESION (asignamos a la variable g la expresin x^2+1) f:=x->x^2+1; CONSTRUCCION DE UNA FUNCION f(0), f(2), f(-5); Obtenemos los valores de f en 0, 2 y -5, (con una expresin esto no puede hacerse) F5 Cambia la entrada de modo INPUT a TEXTO y viceversa, permite escribir texto en la hoja Crtl+k y Ctrl+j (o tabulador) Inserta entradas nuevas arriba o abajo Interrupcin e inicializacin: Ctrl+Pausa restart; interrumpe los clculos (tambin pulsar STOP de la barra de funciones) inicializa todas las variables globales Ordenes ms frecuentes en Maple help(); o F1 ?abs evalf(3/4); Digits:=50; evalf(Pi); evalf(exp(1)); Digits:=10; floor(-4.5); ?floor abs(-3.4); 100!; binomial(10,3); gcd(8,20); lcm(8,12); modp(8,2); modp(7,2); irem(m,n,q) iquo(m,n,r) ifactor(123456789); rand(); nextprime(1000); ithprime(28); peticin de ayuda general peticin de ayuda respecto de la orden abs calcula en punto flotante el resultado anterior ponemos a 50 el nmero de dgitos aproxima el valor de Pi y de e con 50 dgitos ponemos a 10 el nmero de dgitos funcin "parte entera" del Clculo: entero inmediatamente inferior recordemos que siempre podemos pedir ayuda de cualquier orden valor absoluto factorial de 100 nmero combinatorio 10 sobre 3 mximo comn divisor de nmeros o polinomios mnimo comn mltiplo de nmeros o polinomio resto de la divisin de 8 por 2 (til para averiguar la paridad de un nmero) y resto de la divisin de 7 por 2 calcula el resto de la divisin entera m entre n, y en q guarda el cociente (el argumento q es opcional) cociente de divisin entera m entre n, en r guarda el resto (es opcional) descomposicin en factores primos de un entero genera un entero no negativo aleatorio de 12 dgitos, ver vectores y matrices para una utilizacin particular primo siguiente a 1000 devuelve el primo nmero 28

Gregorio Hernndez, Departamento de Matemtica Aplicada Facultad de Informtica, UPM

Curso 09-10 Matemtica Discreta I Grupo 16M-1

Operaciones con nmeros complejos s:=(2+4*I)/(1-2*I); Re(s); Im(s); argument(s); abs(s); opera con complejos: I es la unidad imaginaria, asignamos el cociente a s parte real del anterior cociente parte imaginaria devuelve el argumento principal en [-Pi,Pi] mdulo o valor absoluto si s es un nmero real Asignaciones y substituciones: p:=x^2+4*x+4; x:=1; p; (x-3)*(x-4); x:='x'; (x-3)*(x-4); subs(x=1,p); x; asignamos el polinomio x^2+4*x+4 a la variable p hacemos x=1 y luego vemos cmo queda p es el valor del polinomio despus de hacer x=1, si ahora tecleamos (x-3)*(x-4); escribir 6, esta va para averiguar cuanto vale p en x= 1 no es correcta, pues la x queda con el valor 1 para ulteriores clculos en primer lugar desasignamos x (apstrofos: parte inferior tecla cierre interrogacin) ahora el polinomio queda correcto camino adecuado para averiguar cuanto vale una expresin al particularizar: utilizar subs no hemos asignamos nada a x y con la orden anterior sabemos cuanto vale p en x=1 Operaciones con polinomios x^2+3*x-4; factor(%); expand(%); simplify(16^(1/2)-3); No olvidemos!: el por * siempre se escribe factorizamos la anterior expresin expandimos la anterior expresin simplifica un clculo, admite varias posibilidades, es aconsejable ?simplify; Resolucin de ecuaciones y sistemas: solve(x^2+3*x-4,x); resolvemos en x (con radicales) fsolve(x^5+3*x^4-3*x^3-9*x^2+2*x+6,x); resolvemos en x aproximadamente (reales) fsolve(x^5+x^4+2*x^3-x^2+x-1,x,complex); resolucin en x aproximada en punto flotante y complejos solve({x+2*y=1,x-y=3},{x,y}); resolucin de sistemas linsolve(A,b); resolucin del sistema lineal de ecuaciones Ax=b. Ver vectores y matrices para ms informacin Sumas y productos: 1+3+5+7+9+11; sum(2*n-1,n=1..6); L:=[3,2,5,1] sum(L[i], i=1..4); sum(k^2,k=1..n); Sum(k^2, k=1..n); product((x-k),k=1..20); expand(%); expresaremos esta suma como: Sumando los elementos de una lista La suma de los n primeros cuadrados La suma indicada expresin para el producto expande la anterior instruccin

Gregorio Hernndez, Departamento de Matemtica Aplicada Facultad de Informtica, UPM

Curso 09-10 Matemtica Discreta I Grupo 16M-1

Grficas bidimensionales: plot(x^2,x=0..2); dibuja la curva x^2 en el intervalo [0,2], con ttulo plot({x^2,x^3},x=0..1,); dibujo simultneos de las expresiones x^2 y x^3 plot({3/2,sin(x)}, x=-5..5,style=point); formato: (style=point) o (style=line) plot([cos(2*t),t,t=0..2*Pi],coords=polar); dibuja curvas en polares plot([sin(t),cos(t),t=0..2*Pi]); tambin en paramtricas with(plots): se accede al paquete grfico, es necesario para las rdenes siguientes polygonplot({[-1,2],[3,2],[-3,-2]},color=red); dibuja el polgono de vrtices dados p1:=textplot([-Pi/2,-1,`Minimo`]): pone rtulos en puntos de coordenadas dadas, en este caso x=-Pi/2,y=-1 ?textplot para ms detalles p2:=plot(sin(x),x=-Pi..Pi): almacena las instrucciones para pintar la curva Ojo a los dos puntos! display({p1,p2}); con esta orden representamos tanto p1 como p2, o cualquier otro nmero de rtulos p3:=plot(cos(x),x=-Pi..Pi): guardamos la grfica del coseno para hacer un display. display([p2,p3],insequence=true); pinta de forma secuencial el seno y el coseno, y lo repite. display([seq(plot(n*x,x=0..3),n=-2..2)], dibuja las rectas -2x, -x, 0, x, 2x y repite la secuencia insequence=true); animate(n*x,x=0..3,n=-2..2,frames=20); mueve las rectas anteriores de forma ms continua plot(f,-2..6); plot(f(x),x=-2..6); dibuja la funcin f (f ha sido definida como funcin) Sucesiones: s:=-2,5,6,0,-1; t:=seq(j^2,j=1..10); s:=NULL;

10 trminos de la sucesin j^2 desde j=1 hasta j=10 sucesin nula (Ojo NULL con maysculas!) Conjuntos:

A:={3,7,1,-9,8,1}; B:={2,4,1,8}; A intersect B; A union B; A minus B ; member(7,A); C:={}; op(A);

el orden no importa y no hay elementos repetidos conjunto B la interseccin unin diferencia devolver true o false dependiendo de si 7 es o no elemento de A conjunto vaco Los elementos del conjunto A Listas:

L:=[x,1,y,-2,0,4]; L[3]; op(3,L); op(2..4,L); L:=[op(L), z]; nops(L); L2:=[]; A:=convert(A,list); A:=convert(A,set); subsop(4=y,[a,b,c,d,e,g]);

listas: el orden importa Se accede a los elementos por ndice. Se accede a los elementos del dos al cuatro aade un elemento nuevo la salida ser [x,1,y,-2,0,4,z] se obtiene el n de elementos de L. lista nula un conjunto se convierte en lista una lista se convierte en conjunto substitucin en listas, la salida de esta instruccin ser [a,b,c,y,e,g] subsop(4=NULL,[a,b,c,d,e,g]); el resultado ahora es eliminar el elemento 4 de la lista y queda [a,b,c,e,g]

Gregorio Hernndez, Departamento de Matemtica Aplicada Facultad de Informtica, UPM

Curso 09-10 Matemtica Discreta I Grupo 16M-1

Vectores y matrices: with(linalg): u:=vector([-1,3,4,7,2]); accedemos al package de lgebra lineal. un vector se construye directamente o bien dando una regla para la formacin de sus componentes g:=i->i^2+i; construimos una funcin g v:=vector(5,g); construye un vector v de 5 componentes empezando en g(1) vectdim(v); devuelve el nmero de componentes del vector v linalg[vectdim](v); No hace falta ejecutar with(linalg) para utilizar vectdim, puede usarse como aparece a la izquierda. v[3]; accedemos a la tercera componente mediante ndice entre corchetes v[2]:=8; no hay inconveniente en asignar valores a variables indexadas. Esa es la diferencia entre vectores y listas, para las listas hay que utilizar subsop h:=(i,j)->(1/(i+j-1)); construimos una funcin de dos variables A:=matrix(3,3,h); construimos una matriz de 3x3 mediante la anterior funcin h, empezando por h(1,1) rowdim(A); devuelve el nmero de filas de la matriz A row(A,i); devuelve la fila i-sima de A coldim(A); devuelve el nmero de columnas de la matriz A col(A,j); devuelve la columna j de la matriz A det(A); calcula el determinante de A transpose(A); matriz traspuesta de la dada htranspose(A); traspuesta conjugada de A A[3,2]; accedemos al elemento (3,2) de A submatrix(A,2..3,1..2); submatriz (a_{2,1},a_{2,2}\\a_{3,1},a_{3,2}) de A B:=array([[1,-1,0],[3,2,1],[1,2,3]]); construccin directa de una matriz por asignacin simple C:=multiply(A,B); le asignamos a la variable C el producto de A por B evalm(C); en matrices hay que utilizar evalm para ver el resultado de la operacin linsolve(A,b); resolvemos el sistema lineal A x=b inverse(A); nos da la inversa de A Manejo de expresiones y polinomios: degree(4*x^5-3*x^4+x*3+x^2-4); coeff(x^2-3*x+2, x^2); coeff( x^2-3*x+2, x, 2); coeffs(x^2-3*x+2); quo(x^3-3*x^2+2, x^2-x+1, x); rem(x^3-3*x^2+2, x^2-x+1, x); devuelve el grado del polinomio extrae el coeficiente con grado del trmino indicado extrae una sucesin con los coeficientes cociente de la divisin polinmica resto de la divisin polinmica

Tipos, operandos, argumentos: whattype(-3); whattype(1/2); type(3, integer); type(1/2, integer); op(j,expresin); nops(expresin); args(i); nargs(); lhs(3*x=ln(x)+1); rhs(3*x=ln(x)+1); averigua el tipo, en este caso: integer nos dice que es racional devuelve el valor true, porque es entero devuelve el valor false, porque es racional extrae el operando j-simo de expresin nmero de operandos de la expresin dentro de un procedimiento devuelve el argumento i-simo dentro de un procedimiento devuelve el nmero de argumentos lado izquierdo de una igualdad: 3*x lado derecho de una igualdad: ln(x)+1

Gregorio Hernndez, Departamento de Matemtica Aplicada Facultad de Informtica, UPM

Curso 09-10 Matemtica Discreta I Grupo 16M-1

Bucles y Condicional if condicin then bloque1 else bloque2 end if ; if condicin1 then bloque1 elif condicin2 then otra forma del if, til para evitar los if anidados bloque2 elif condicin3 then bloque3 ........... cuando hay ms de dos alternativas end if; for variable from valor1 to valor2 valor1 es 1 por defecto, do bloque end do; el salto puede ser: by m, para saltos de m en m, break; permite salir del bucle sin terminarlo next; salta al siguiente valor de variable, otra forma til es: for n in [3,7,9,11] while condicin do bloque end do; mientras la condicin se cumple se ejecuta el bloque bloque puede ser cualquier nmero de sentencias separadas por puntos y comas condicin relacin lgica con conectivos: <, <=, =, >=, and, or, not. Ejemplos: x <=3, modp(n,2)=0, not(x=y), x=1 and y=2, x^2+y^2=0, etc,. Procedimientos nombre:=proc(x,y,z,u) local v1,v2,...vn; bloque; variable de salida end; ERROR(`se introdujo una lista vaca`); v1,v2, etc., son variables locales que se utilizan en el interior del procedimiento. x,y,z,u son los datos de entradadel procedimiento. La salida es o bien con return(salida) o simplemente escribiendo el nombre de la variable resultado lanza nuestros mensajes "de error" desde dentro de un procedimiento, debe ponerse tras un if que verifique la condicin para la que se desea generar el "error"

You might also like