Tuto Maple
Tuto Maple
Alfonsa García
Presentación
Maple es un sistema de cálculo científico, es decir, numérico, simbólico y gráfico. Algunas de
sus capacidades son:
Operaciones numéricas en aritmética racional exacta o decimal de precisión arbitraria.
Operaciones en aritmética modular
Manipulación algebraica de variables y símbolos.
Operaciones con polinomios, fracciones algebraicas y series.
Cálculo de límites, derivadas e integrales.
Resolución de ecuaciones y sistemas.
Resolución exacta y aproximada de ecuaciones en diferencias y diferenciales.
Operaciones con vectores y matrices.
Cálculo vectorial con funciones de varias variables.
Capacidades gráficas en 2 y 3 dimensiones.
Una amplia biblioteca con más de 3000 funciones matemáticas agrupadas por objetivos.
Lenguaje de programación de alto nivel.
;ó : Terminar
instrucción (con o
sin mostrar el
resultado)
nombre := Asignar y
valor desasignar un
valor a una
nombre := variable
'nombre'
% %% %%% Resultados
precedentes
Icono Cancelar el
cálculo en curso
time() Medir el tiempo
de CPU
consumido en la
sesión
Manejo de documentos:
<File / New> Crear una hoja de trabajo nueva, vacía
<File / Open...> Abrir una hoja de trabajo existente en un fichero
<File / Save> Salvar la hoja de trabajo actual en un fichero
<File / Print...> Imprimir la hoja de trabajo actual
<File / Exit> Salir del sistema
1.2 Regiones de trabajo
Cada hoja de trabajo integra regiones de varios tipos:
Regiones de Texto, que se insertan con el icono de la barra de herramientas y contienen
anotaciones realizadas por el usuario.
Regiones de Entrada, que se pueden insertar en cualquier momento pulsando el botón de
la barra de herramientas. Contienen instrucciones del usuario al sistema. Los comandos se
completan con un terminador, que puede ser ; o :, y se ejecutan pulsando intro con el
cursor dentro de la región de entrada.
Regiones de Salida, que contienen resultados generados por Maple.
> (2*x-x/2)^24;
282429536481 24
x (2.2.1)
16777216
Gráficos: Contiene el resultado de una instrucción de dibujo, como la siguiente.
Esta instrucción dibuja una función:
> plot(sin(x), x = 0..20);
1
0.5
0
5 10 15 20
x
K0.5
K1
Si se abre una sesión de trabajo en la que hay variables asignadas, esta asignación no está
operativa si no se ejecuta la instrucción de asignación. Una vez ejecutada Maple conserva
en memoria el valor asignado, aunque se borre la instrucción. Si se quiere "limpiar" la
variable es preciso desasignarla.
Para desasignar el valor de una variable se le asigna su propio nombre entrecomillado:
> a^2 ; a:= 'a' ; a^2;
4 (2.4.4)
a
2
a
Recordemos que la instrucción restart reinicia el sistema, desasignando todas las variables:
> a:=3; b:=2; c:=4; a^b+c;
3 (2.4.5)
( )
2
4
13
> restart; a^b+c;
ab Cc (2.4.6)
Para entender y corregir los errores es útil invocar el sistema de ayuda de Maple.
Las páginas de ayuda, como por ejemplo log , son hojas de trabajo especiales que describen un
concepto, incluyendo sintaxis, semántica, ejemplos de uso y enlaces a otras páginas relacionadas.
Están estructuradas en forma de árbol, que se puede recorrer mediante los citados enlaces.
El sistema de ayuda se invoca con el menú <Ayuda>, que permite localizar información por
contenido, por nombre y por texto:
Para ver los contenidos del sistema de ayuda, se selecciona el menú <Ayuda / Ayuda de Maple>.
Para buscar un concepto por su nombre, se ilumina el nombre y se selecciona el menú <Ayuda /
Ayuda sobre...>, que genera un acceso a la página de ayuda sobre el concepto sombreado.
También se puede pedir ayuda usando ? junto al nombre en una región de trabajo
> ?factor;
3. Operaciones matemáticas elementales
Maple es capaz de evaluar expresiones aritméticas Distingue dos clases de datos numéricos:
Exactos: Se almacenan como símbolos, por lo que carecen de error de redondeo. Incluyen a los
números enteros, racionales y algebraicos, a los complejos cuyas partes real e imaginaria son
ambas exactas y a las constantes simbólicas como π, i, cos 1 o true.
Aproximados: Se almacenan como decimales con un número finito de dígitos, por lo que
arrastran error de redondeo. Incluyen a los números decimales y a los complejos cuya parte real o
imaginaria es decimal.
character 1 "0"
string 1 "Una
cadena."
`+` >= x+1; 1-x*y
2
`*` >= (1-x)*y; -x
2
`^` 2 x^2; 1/x
`=` 2 a = b-3
`<>` 2 a <> b
`<` 2 a < b; a > b
6. Secuencias de expresiones
Una secuencia de expresiones (tipo exprseq) es similar a una lista, pero no se encierra entre
corchetes, simplemente se construye conectando expresiones con el operador binario coma (,).
7. Listas y conjuntos
Las listas (tipo list) y los conjuntos (tipo set) se representan externamente como secuencias
encerradas entre corchetes y llaves, respectivamente.
Las listas, como las secuencias, conservan tanto el orden como los elementos repetidos. Por el
contrario, en los conjuntos los elementos repetidos se eliminan y el orden no es significativo.
9 (9.2.11)
0
La función searchtext hace lo mismo, pero no distingue mayúsculas de minúsculas:
> searchtext("U", tira);
searchtext("b", tira);
9 (9.2.12)
0
Secuencia de números con las posiciones que ocupan en el alfabeto Castellano los símbolos
del mensaje "ESTE ES UN MENSAJE EN CASTELLANO"
> seq(SearchText(j, Castellano), j="ESTE ES UN MENSAJE EN
CASTELLANO");
5, 20, 21, 5, 0, 5, 20, 0, 22, 14, 0, 13, 5, 14, 20, 1, 10, 5, 0, 5, 14, 0, 3, 1, 20, 21, 5, 12, (9.3.3)
12, 1, 14, 16
9. Vectores y Matrices
Los vectores y matrices se pueden introducir usando la paleta correspondiente del menú <View
/ Palettes> y son elementos de tipo Vector y Matrix respectivamente.
> restart:
> v:=<1 | 2 | 3>;
v := 1 2 3 (10.1)
> whattype(v);
Vectorrow (10.2)
> M:=<<1 | 4 | 0> , <1 | 2 | 2> , <1 | 5 | 3>>;
1 4 0
M := 1 2 2 (10.3)
1 5 3
> whattype(M);
Matrix (10.4)
> type(M,'Matrix'(square));
true (10.5)
También se puede definir matrices usando la función Matrix .
10.2 Selección
La sentencia de selección ejecuta acciones dependiendo de que se verifiquen o no ciertas
condiciones. Su sintaxis es
if condición_1 then acción_1
elif condición_2 then acción_2
...
elif condición_n then acción_n
else alternativa
fi
donde:
Si la condición booleana condición_1 es cierta, se ejecuta acción_1.
En caso contrario, si la condición booleana condición_2 es cierta, se ejecuta acción_2.
En caso contrario, se procede sucesivamente con las siguientes parejas de condición booleana
condición_i y secuencia de instrucciones acción_i.
Si todas las condiciones condición_i, con i = 1 ..n, son falsas, se ejecuta alternativa.
Tanto acción_i, con i = 1 ..n, como alternativa son una secuencia de instrucciones, que
se ejecutan una a una, ordenadamente.
Las cláusulas elif son opcionales y su número es arbitrario.
La cláusula else es opcional.
El cierre fi se puede sustituir por end if .
10.3 Procedimientos
Una función o procedimiento es un programa, escrito en el lenguaje de programación de
Maple, que automatiza cierta tarea.
La sintaxis de una definición de un procedimiento es
proc(x_1::t_1, x_2::t_2, ..., x_n::t_n)
local l_1, l_2, ..., l_p;
global g_1, g_2, ..., g_q;
option o_1, o_2, ..., o_r;
cuerpo #comentarios
end
donde:
La cláusula x_1::t_1, ..., x_n::t_n es la secuencia de parámetros formales de la
función. Cada parámetro es un nombre (x_i), seguido opcionalmente por dos pares de puntos
(::) y un tipo de dato (t_i). Si se especifica el tipo, Maple genera un error cuando los
argumentos pasados a la función no son del tipo apropiado.
La cláusula local l_1, ..., l_p; especifica la secuencia de variables locales de la
función.
La cláusula global g_1, ..., g_q; especifica la secuencia de variables globales de la
función.
La cláusula option o_1, ..., o_r; especifica la secuencia de opciones (trace,
remember, builtin , operator arrow)
La cláusula cuerpo es una secuencia de instrucciones, que se ejecutan una a una,
ordenadamente.
La semántica es la siguiente:
Cuando se define una función, Maple analiza y simplifica lo que encierran los delimitadores
proc() end, pero no lo ejecuta.
Una vez definida una función o procedimiento f, se invoca en la forma f(v_1, v_2, ..., v_m)
donde v_1, v_2, ..., v_m es la secuencia de parámetros actuales y especifica los
valores concretos en los que se quiere evaluar la función. Cuando se invoca una función,
Maple ejecuta el cuerpo y devuelve el resultado de la última instrucción ejecutada. Esto
es la salida del procedimiento. Como opción por defecto, el sistema no muestra los resultados
intermedios. Es posible observarlos, asignando a la variable printlevel un valor entero
alto, por ejemplo 100, o bien usando la opción trace.
Se pueden conseguir otros efectos, como sacar por pantalla mensajes, gráficas o avisos con
las funciones: print, lprint, WARNING, o bien forzar la salida con las funciones return o error.
Notas:
Todas las cláusulas son opcionales, salvo los delimitadores proc() y end.
La expresión resultante de una definición de función es de tipo procedure.
La porción de código entre un carácter sostenido (#) y un retorno de carro es un comentario.
La cláusula end se puede sustituir por end proc.
> Máximo(sqrt(2.),sqrt(3.));
1.732050808 (11.3.5.7)
Si el argumento es una lista de enteros la salida también es la invocación sin evaluar:
> máximo([1, 2]);
máximo 1, 2 (11.3.5.8)
> restart:
> Cuadrados_módulo7:= proc()
local i, Conjunto, r_c;
Conjunto:={}:
for i in args do
if not type(i, integer) then error "El elemento %1
no es número entero.",i fi;
r_c:=numtheory[msqrt](i,7);
if type(r_c, integer) then Conjunto:=Conjunto union
{[i,r_c]} fi
od;
Conjunto
end:
> Cuadrados_módulo7(4, 7, 10, 12, 5);
4, 2 , 7, 0 (11.3.6.1)
> Cuadrados_módulo7(4, 7, -5, 39);
K5, 3 , 4, 2 , 7, 0 , 39, 2 (11.3.6.2)
> Cuadrados_módulo7(4, 7, -5, x);
Error, (in Cuadrados_módulo7) El elemento x no es
número entero.
>
>
>