Documente Academic
Documente Profesional
Documente Cultură
MAPLE
presentado por:
LAMBAYEQUE– PERU
2013
Dedicatoria
Para mis padres, Martha y Elı́as;
para mi adorable esposa, Flor An-
gela y para el amor de mi vida, mi
hija Alessandra Anghely.
Prefacio
Visión general
Concordando en mayor o menor medida con estos planteamientos, se puede constatar que
pese a ser la matemática la más común de las ciencias, en el sentido de que está presente
y es utilizada por todos en la vida cotidiana, ciertamente no es la ciencia con mayor grado
de popularidad; mucha gente tiene sentimientos de aprensión, disgusto e incluso miedo a la
matemática.
Es entonces muy preocupante que sea la más desconocida de las ciencias para el ciudadano
i
ii MAPLE Walter Arriaga Delgado
Objetivo
El objetivo de este libro es presentar los temas de manera clara y comprensible para los
estudiantes de cualquier nivel, de forma que los motive a preguntar porqué y transmitirles el
entusiasmo y gusto por el estudio del Algebra Lineal y a la vez proporcionar al lector una
herramienta de consulta, dando la información básica para la resolución de éstas, ası́ como
reforzar la comprensión de los temas y conceptos por medio de una amplia gama de interesantes
aplicaciones en el mundo real. El texto se ha diseñado para brindarle una comprensión sólida
e intuitiva de los conceptos básicos, sin sacrificar la precisión matemática.
Aplicaciones
Una de mis metas fue convencer a lo estudiantes de la importancia del Algebra Lineal en
sus campos de estudio. Ası́, este libro pretende implementar el estudio de las aplicaciones del
Algebra Lineal a la Computación e Informática, Ingenierı́a de Sistemas, etc.
Caracterı́sticas
Contenido
z En el Capı́tulo II, se estudian los espacios vectoriales y subespacios vectoriales ası́ como
también bases y dimensión.
Walter Arriaga Delgado MAPLE iii
La tendencia cada vez mayor a que el docente se convierta en un “facilitador del apren-
dizaje” más que un “presentador de hechos” ha producido una expansión en la esfera de los
paquetes de informática especializados como los software matemáticos preparados para ayu-
dar al docente. Estos paquetes tienen por objeto suplementar el trabajo práctico, permitiendo
ası́ ampliar la presentación de la ciencia a los estudiantes. Estos software han adquirido tal
grado de complejidad en la enseñanza de la Ciencia que han recibido el nombre de “Tecnologı́a
Educativa”.
Entre los software matemáticos más importantes podemos citar: Maple, Matlab, Derive,
Mathematica, Cabri Geometry, etc.
El software matemático Maple se caracteriza por realizar cálculos con sı́mbolos que repre-
sentan objetos matemáticos.
Se trata de un sistema de cálculo cientı́fico (simbólico, numérico y gráfico) interactivo, con
una sintaxis próxima a la notación matemática, disponible para una amplia gama de sistemas
operativos.
El programa que se describe en este texto es probablemente muy diferente a todos los que se
han visto hasta ahora, en relación con el cálculo y las matemáticas. La principal caracterı́stica
es que Maple es capaz de realizar cálculos simbólicos, es decir, operaciones similares a las que
se llevan a cabo por ejemplo cuando, intentando realizar una demostración matemática, se
despeja una variable de una expresión, se sustituye en otra expresión matemática, se agrupan
términos, se simplifica, se deriva y/o se integra, etc. También en estas tareas puede ayudar el
ordenador, y Maple es una de las herramientas que existen para ello. Pronto veremos lo útil
que puede ser este programa.
Además, Maple cuenta con un gran conjunto de herramientas gráficas que permiten visu-
alizar los resultados (a veces complejos) obtenidos, algoritmos numéricos para poder estimar
resultados y resolver problemas donde soluciones exactas no existan y también un lenguaje de
programación para que el usuario pueda desarrollar sus propias funciones y programas.
La Educación a nivel mundial, en todas sus áreas, mira a esta poderosa herramienta, como
uno de los recursos didácticos más importantes para el desarrollo de los diferentes componentes
que la conforman.
La Matemática, necesita para su aprendizaje, diferentes recursos didácticos para su mejor
entendimiento, uno de ellos, por supuesto si contamos con los recursos informáticos, es la
aplicación de diversos programas de computación compuestos por aplicaciones matemáticas,
entre ellos: Maple, Mathematicas, Cabri Geometré, Matlab, Mathcad, Lindo, Lingo, Logo,
etc.; algunos programas con funciones especı́ficas, y otros con aplicaciones generales.
Mencionar las caracterı́sticas de los programas anteriores, serı́a ahondar el estudio de los
diferentes paquetes electrónicos de cálculo matemático, pero si podemos decir que el Maple y el
Mathematica son considerados a nivel mundial como los software matemáticos más completos
de acuerdo al requerimiento matemático.
Ası́ tenemos que el Maple tiene su aplicación en Aritmética, Algebra, Geometrı́a Eu-
clideana, Geometrı́a Analı́tica Plana y del Espacio, Trigonometrı́a, Algebra Lı́neal, Cálculo
v
vi MAPLE Walter Arriaga Delgado
Prefacio I
Introducción IV
vii
viii MAPLE Walter Arriaga Delgado
1.15. Librerias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.16. Trabajando con Maple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.17. Hojas de cálculo (Spreadsheets) . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2. ARITMÉTICA 29
2.1. Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.1.1. Algunas constantes matemáticas . . . . . . . . . . . . . . . . . . . . . . 30
2.1.2. Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.1.3. Asignación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.1.4. Funciones y expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2. Secuencias o sucesiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.2.1. Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3. Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.3.2. Operaciones con conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.3.3. Listas (lists) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.3.4. Determinación de un conjunto . . . . . . . . . . . . . . . . . . . . . . . 44
2.3.5. Conjunto potencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.4. Divisibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.4.1. Divisores de un número . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.4.2. Número de divisores de un número . . . . . . . . . . . . . . . . . . . . . 48
2.4.3. Suma de divisores de un número . . . . . . . . . . . . . . . . . . . . . . 48
2.4.4. Producto de divisores de un número . . . . . . . . . . . . . . . . . . . . 49
2.5. Mı́nimo común múltiplo y máximo común divisor . . . . . . . . . . . . . . . . . 49
2.5.1. Mı́nimo común múltiplo . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.5.2. Máximo común divisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.6. Sistemas de numeración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.6.1. Conversión de un número de base 10 a otro de base m . . . . . . . . . . 50
2.6.2. Conversión de un número de base m a otro de base n . . . . . . . . . . . 51
2.6.3. Conversión de un decimal a fracción . . . . . . . . . . . . . . . . . . . . 51
2.6.4. Redondeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.6.5. Parte fraccionaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.6.6. Truncado de un número . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.7. Números primos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.7.1. Comandos importantes . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Walter Arriaga Delgado MAPLE ix
3. ALGEBRA 61
3.1. Origen y definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.1.1. Origen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.1.2. Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.2. Teoria de exponentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.2.1. Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.3. Grado de polinomios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.3.1. Definición de polinomio . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.3.2. Valor numérico de un polinomio . . . . . . . . . . . . . . . . . . . . . . 66
3.4. Operaciones con expresiones algebraicas . . . . . . . . . . . . . . . . . . . . . . 69
3.4.1. Adición de polinomios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.4.2. Sustracción de polinomios . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.4.3. Multiplicación algebraica . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.4.4. División de polinomios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.5. Factorización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.6. Máximo común divisor y mı́nimo común múltiplo . . . . . . . . . . . . . . . . . 77
3.6.1. Máximo común divisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.6.2. Mı́nimo común múltiplo . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.7. Fracciones algebraicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.7.1. Simplificación de fracciones . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.7.2. Fracciones parciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.8. Análisis combinatorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.8.1. Factorial de un número . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.8.2. Permutaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.8.3. Variaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.8.4. Número combinatorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.9. Binomio de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.10. Racionalización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.11. Ecuaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.11.1. Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
x MAPLE Walter Arriaga Delgado
3.11.2. Clasificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.11.3. Ecuaciones de grado n . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.11.4. Ecuaciones con fracciones . . . . . . . . . . . . . . . . . . . . . . . . . . 92
3.11.5. Ecuaciones con radicales . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
3.11.6. Ecuaciones exponenciales . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.11.7. Sistemas de ecuaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.11.8. Ecuaciones con valor absoluto . . . . . . . . . . . . . . . . . . . . . . . . 95
3.12. Inecuaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.12.1. Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.12.2. Inecuaciones de grado n . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.12.3. Inecuaciones con fracciones . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.12.4. Inecuaciones con radicales . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.12.5. Inecuaciones exponenciales . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.12.6. Inecuaciones con valor absoluto . . . . . . . . . . . . . . . . . . . . . . . 103
3.12.7. Sistemas de inecuaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.13. Logaritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.13.1. Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.13.2. Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.14. Ecuaciones algebraicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5. GEOMETRIA 191
5.1. Origen y definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
5.2. Geometrı́a plana euclı́dea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
5.2.1. Figuras geométricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
5.2.2. El punto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
xii MAPLE Walter Arriaga Delgado
Bibliografı́a 271
1.1. La interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Iniciando Maple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3. Icono Maple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4. Barra de herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5. Barra de contexto para las regiones del texto . . . . . . . . . . . . . . . . . . . 6
1.6. Barra de contexto para el rendimiento del Maple . . . . . . . . . . . . . . . . . 7
1.7. Guardando una sesión de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.8. Guardando una sesión de trabajo en un disco . . . . . . . . . . . . . . . . . . . 9
1.9. Recuperar un archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.10. Paletas de los principales comandos de Maple . . . . . . . . . . . . . . . . . . . 12
1.11. Zonas o regiones de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.12. Sección y subsección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.13. Topic search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.14. Función y = cos(x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.15. Un paraboloide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.16. Una animación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.17. Un botón importante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1. Polinomios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
xiii
xiv MAPLE Walter Arriaga Delgado
xvii
xviii MAPLE Walter Arriaga Delgado
1
Objetivos:
z Entender lo que es el sistema Maple.
z Brindar los elementos básicos acerca del uso del programa Maple como una herramienta
con grandes potenciales para la solución simbólica, numérica y grafica de los diferentes
modelos matemáticos.
1
2 MAPLE Walter Arriaga Delgado
1.1. Introducción
Podemos ver los comandos del menú y de la barra de herramientas, pulsando en el gráfico
aparecerá un mensaje en inglés, con una breve descripción:
b. Escogemos programas
c. Escogemos Maple 8
La barra de herramientas del Maple es el área de la ventana que contiene los botones para
realizar las tareas comunes. La barra de herramientas puede ser visible u oculta.
Del menú View, escoja Toolbar (barra de herramientas). Si hay una marca de verificación
al lado de Toolbar en el menú, entonces la barra de herramientas es visible.
Presentamos la siguiente lista de los botones en la barra de herramientas de la hoja de
trabajo.
4 MAPLE Walter Arriaga Delgado
11. Inserta la notación matemática standard no ejecutable en una región del texto.
22. La barra muestra los caracteres, los mismos que no son impresos.
Esta barra de contexto presenta las siguientes descripciones para las listas y botones que
están disponibles cuando el cursor reside en una región del texto.
1. Estilo del texto. Cambia el estilo del texto seleccionado a un estilo que seleccione de ésta
lista.
2. Tipo de letra de texto. Cambia el tipo de letra de texto seleccionado a un tipo que
seleccione de ésta lista.
3. Tamaño de letra de texto. Cambia el tamaño de texto seleccionado al tamaño que selec-
cione de ésta lista.
8. Centra el texto.
Esta barra de contexto presenta las siguientes descripciones cuando el cursor está en el
rendimiento del Maple:
5. Reemplaza todas las ocurrencias de la selección con los contenidos del campo de edición.
Cada vez que en una lı́nea (región de entrada) se introduzca una expresión, comando o
función, etc. Se debe:
Luego de escribir al final de la expresión el punto y coma (;), pulsamos la tecla enter;
obteniendo como resultado 13
Nota: El signo punto y coma (;) nos indica de que la entrada de datos ha finalizado. Si
en lugar de finalizar una lı́nea con el signo punto y coma lo hacemos con dos puntos (:), la
operación introducida se realiza en forma interna; sin presentar los resultados obtenidos en la
pantalla.
Si no se pone el carácter de terminación y se pulsa Intro, el programa seguirá esperando a
que se complete la instrucción dará un warning advirtiendo que no se ha cerrado la instrucción.
Esto implica que Maple permite escribir en varias lı́neas. Si alguna vez sucede eso, se puede
poner el carácter (;) en la lı́nea en la que se esté y volver a pulsar Intro.
El último resultado o salida obtenido del programa puede recuperarse para ser utilizado
en una instrucción posterior por medio del carácter porcentaje ( %). De forma análoga, ( % %)
representa el penúltimo resultado y ( % % %) el antepenúltimo resultado. Esto es muy útil para
poder utilizar un resultado en el comando siguiente sin haber tenido que asignarlo a ninguna
variable.
Existen tres maneras distintas de guardar una sesión de trabajo en un fichero para su
utilización o modificación:
En cualquiera de los casos aparece una ventana denominada “Guardar como” como en la
figura (1.7):
En donde aparece el tipo de archivo (fichero Maple o fichero texto con la extensión que
indique el usuario), el subdirectorio en el que se almacenará y el nombre con el que se archivará.
Nota: Para grabar en un disco se coloca en nombre de archivo los siguientes datos: La unidad,
en este caso “a” seguida de dos puntos “:” y el back slash “\” , luego se escribe el nombre con
el que se desea grabar el archivo (vea figura)
Existen tres maneras distintas para recuperar o abrir una hoja de trabajo previamente
guardada:
Con cualquiera de éstas opciones aparecerá la ventana Abrir para que se especifique la
unidad, el directorio y nombre de la hoja de trabajo que se desea abrir
Una vez completados los datos anteriores, debe pulsarse el botón Aceptar para ejecutar el
proceso.
Existen tres maneras distintas para iniciar una nueva sesión de trabajo con una hoja en
blanco:
Zona de Salida: Son los resultados devueltos por el ordenador, se caracteriza por el color
azul.
Zona de Texto: Es una parte de la hoja compuesta por lı́neas de caracteres correspondi-
entes a comentarios se caracteriza por el color negro.
Zona de gráficos: Está reservada para colocar los gráficos en dos y tres dimensiones.
Observación 1.10.1.
Una zona de entrada puede convertirse en zona de texto, pulsando la tecla de función
F5 o haciendo clic en el botón: T
También se pueden hacer comentarios pequeños colocando al principio de una lı́nea (en
una zona de entrada) el signo “ # 2
luego escribir lo que se desee.
12 MAPLE Walter Arriaga Delgado
Pueden escribirse las sentencias matemáticas con ayuda de las paletas que se desprenden
del menú View / Palettes, de una manera más clara que la que se tiene con la notación
propia de Maple.
También Para cada tipo de región se puede elegir un color y tipo de letra diferente, con
objeto de distinguirla claramente de las demás. Con el menú Format / Styles se pueden
controlar estas opciones.
Antes de empezar a trabajar puede ser conveniente establecer unos formatos para cada
tipo de región. De esta manera se abre la caja de diálogo; en ella se pueden modificar
todos los estilos de las tres zonas o regiones y para guardar estos formatos, se debe elegir
el comando Save Settings en el menú File.
En la siguiente figura podemos apreciar las cuatro zonas de una hoja de trabajo.
Maple incorpora un sistema de secciones y subsecciones, que se usan para agrupar la
información. Este sistema se encuentra en el menú insert , se elige la opción section o subsection
y la hoja de trabajo presenta el siguiente esquema:
Pulsando con el ratón sobre el cuadrado que se encuentra en la zona superior izquierda
de las secciones estas se abren o se cierran a nuestra conveniencia. Pulsando en los botones
podemos mover hacia afuera o hacia dentro las secciones y subsecciones.
Los operadores aritméticos que MAPLE usa, son los siguientes: (vea la tabla 1.1).
Antes de seguir con los ejemplos usando Maple por lo menos debemos saber como se
Walter Arriaga Delgado MAPLE 13
escriben los operadores de las operaciones básicas en Matemática a través de ejemplos. Vea la
tabla 1.2.
El orden de prioridad de éstos operadores es de la siguiente manera:
1o ^
2o ∗/
3o +−
Estas jerarquı́as pueden cambiar con la utilización de paréntesis (no son válidas las llaves,
{ }, ni los corchetes [ ] ), pero pueden usarse varios niveles de paréntesis.
x2 + 2x + 3 x2 − xy + y 2
f (x) = g(x) =
x+5 x2 + y 2
Constantes especiales
Hay varias constantes en Maple que es útil para las fı́sicas. Ellas son:
> Pi;I;infinity;
π
∞
Walter Arriaga Delgado MAPLE 15
> evalf(Pi,70);
3,141592653589793238462643383279502884197169399375105820974944592307816
1.14.1. Errores
En caso de error, Maple responde con un mensaje que indica el tipo de error cometido.
Las siguientes instrucciones contienen errores:
> cos(2,3);
Error, (in cos) expecting 1 argument, got 2
>min(3,I);
Error, complex argument to max/min
Cuando el error es sintáctico, Maple señala la posición donde se encuentra el error:
> 2x+4;
Error, missing operator or ‘;‘
Para anular un párrafo o grupo de ejecución debemos colocar el cursor en el párrafo o
grupo de ejecución a ser anulado y teclear Ctrl-Supr.
Walter Arriaga Delgado MAPLE 17
FUNCION DESCRIPCION
sin, cos, tan, etc Funciones trigonométricas
sinh, cosh, tanh, etc Funciones trigonométricas hiperbólicas
arcsinh, arccosh, arctanh, etc Funciones trigonométricas inversas
exp Función exponencial
ln Logaritmo neperiano
log[ ] Logaritmo en base n
sqrt Raiz cuadrada
round Redondeo al entero más próximo
trunc Truncamiento a la parte entera
frac Parte decimal
Bessell, BesselJ, BesselK, BesselY Funciones de Bessel
binomial Coeficientes del binomio de newton
Heavside Función escalon de Heavside
Dirac Función delta de Dirac
Zeta Función Zeta de Riemann
A veces Maple no puede hacer lo que usted quiere, porque usted está pensando sobre un
R∞
problema especı́fico. Por ejemplo, suponga que usted quiso resolver la integral 0 (−a2 x2 )dx
> restart;
> int(exp(-a^2∗x^2),x=0..infinity);
Definite integration: Can’t determine if the integral is convergent. Need to know the sign of
--> a^2
Will now try indefinite integration and then take limits.
√
1 πerf (ax)
lı́m
x→∞ 2 a
Usted quiso obtener una fórmula, pero en cambio consiguió este enredo. Maple le proporciona
un mensaje de error útil puesto que Maple puede ocuparse de los números complejos, no
puede decir si a2 es positivo o negativo. Le dará la respuesta si usted le ayuda un poco, esto
se consigue con la opción assume
> assume(a,real);
> int(exp(-a^2*x^2),x=0..infinity); √
π
√
2 a ∼2
18 MAPLE Walter Arriaga Delgado
Nota: Una vez que usted ha usado assume en una variable, podrı́a tener problema al darle
valores. El problema pasa cuando usted está asumiendo algo sobre a, y luego le asigna otro
valor inconstante (digamos b) Observe:
> restart;
> assume(a,real);
> b:=cos(a);
b := cos(a ∼)
> a:=2.;
a := 2.
> evalf(b);
cos(a ∼)
Ahora tenemos:
> restart;
> b:=cos(a);
b := cos(a)
> a:=2.;
a := 2
> evalf(b);
−0,4161468365
1.14.2. Ayuda
Maple dispone de un complejo sistema de ayuda, con descripción y ejemplos de uso de sus
comandos y otras caracterı́sticas.
El sistema de ayuda se puede invocar desde el área de trabajo o bien desde los menús de
la aplicación.
1. Desde una región de trabajo ( > ), el comando ?concepto genera una ventana de in-
formación sobre el concepto especificado. Estas ventanas llamadas páginas de ayuda,
proporcionan la sintaxis, secuencia de llamada, parámetros, semántica y ejemplos de uso
del concepto sobre el que se ha pedido ayuda.
> evalf(exp(5));
148,4131591
> sin(3*pi/4);
3
sin π
4
> evalf(sin(3*pi/4));
sin(,7500000000pi)
> evalf(sin(3*Pi/4),10);
,7071067810
x2 := 2
1.15. Librerias
Maple dispone de más de 3000 comandos. Solo los más importantes se cargan en memoria
cuando el programa empieza a ejecutarse.
Para poder ejecutarse los comandos que están agrupados en distintas librerı́as, que están
en el disco del ordenador, hay que cargarlos primero.
Por ejemplo, para el comando det (que sirve para calcular el determinante) hay que cargar
la librerı́a linalg, puesto que el comando det se encuentra en esa librerı́a, ejecutando la siguiente
orden:
> with(linalg);
Warning, the protected names norm and trace have been redefined and unprotected
La cual nos arroja una lista de comandos que se van a utilizar a lo largo de la sesión de trabajo.
Si queremos hallar el máximo común divisor de dos o más números, usamos la orden
igcd , ejemplo:
> igcd(24,72);
24
> igcd(36,48);
12
> igcd(225,75);
75
> igcd(512,72,12,54,68,36);
2
> fibonacci(50);
12586269025
Walter Arriaga Delgado MAPLE 23
> fibonacci(100);
354224848179261915075
> fibonacci(250);
7896325826131730509282738943634332893686268675876375
Maple permite usar los resultados anteriores, sin necesidad de volver a teclearlos:
> %;
7896325826131730509282738943634332893686268675876375
1, x, x2 + 1, x3 + 2x, x4 + 3x2 + 1
> fibonacci(n);
fibonacci(n)
Se puede introducir una secuencia de instrucciones separadas por comas ( ’ , ’) y serán ejecu-
tadas simultaneamente:
> 280 / 35 , 280 * 35;
8, 9800
50*4-
20*2;
440
Para las expresiones introducidas, Maple admite dos formatos: lineal y matemático. Pulsando
el botón x de la barra de herramientas se pasa de uno a otro. A lo largo del curso se ha
dado preferencia al formato matemático para una mejor visualización de la expresión. Para
ver cómo se han escrito basta pulsar el botón citado y ver el formato lineal.
3n2 +5
> lı́mn→∞ 2n3 +n
Por otro lado con la orden plot podemos hacer graficas en el plano y en el espacio.
0.5
–10 –8 –6 –4 –2 0 2 4 6 8 10
x
–0.5
–1
Esta es una de las innovaciones que presenta el programa respecto a versiones anteriores.
Se trata de hojas de cálculo con el formato tradicional, con la caracterı́stica de que puede
operar simbólicamente.
Se obtiene del menú Insert / Spreadsheet. Aparece una parte de la hoja de cálculo que
puede hacerse más o menos grande haciendo clic justo sobre el borde de la hoja. Se re-
cuadrará en negro y haciendo clic en la esquina inferior derecha y arrastrando puede modifi-
carse el tamaño.
Se va a realizar a continuación dos ejemplos, una tabulación y cálculos de derivación e
integración que ayude a iniciar el manejo de estas hojas de cálculo.
26 MAPLE Walter Arriaga Delgado
A B C D
1 1
2 2
3 3
4 4
5
6
7
A B C D
1 0
2 6
3 14
4 24
5
6
7
Como pueden observar la columna A representa los valores de “x” y la columna B repre-
senta los valores de “y”.
Walter Arriaga Delgado MAPLE 27
Ejemplo 1.17.2. Con los valores de “x” de la tabla anterior realice operaciones de integración
y derivación de expresiones algebraica:
En la casilla ′ B1′ teclee: x^(∼ A1). Con (∼A1) nos referimos a la casilla ′ A1′ , el sı́mbolo
∼ se puede obtener tecleando 126 mientras se mantiene pulsada la tecla Alt-. Seleccione las
cuatro primeras casillas de la segunda columna y repita el proceso anterior con el botón de la
figura 1.17. En la casilla ′ C1′ teclee: int(∼B1,x). En la ′ D1′ teclee: diff(∼C1,x) y arrastre de
nuevo las expresiones hacia abajo. La hoja de cálculo que se obtiene es la siguiente:
A B C D
1 2
1 1 x 2x x
1 4
2 3 x3 4x x3
1 6
3 5 x5 6x x5
1 8
4 7 x7 8x x7
Si se modifica alguna casilla de la hoja de cálculo que afecte a otras casillas, las casillas
afectadas cambiarán de color. Para recalcular toda la hoja se utiliza el botón de la figura 1.17.
Seguro que estos ejemplos le habrán servido para empezar a ver qué cosas Maple es capaz
de realizar. Maple es un programa que puede ser de gran utilidad en las áreas más diversas
de la matemática, fı́sica, quı́mica, educación, ingenierı́a, economı́a, etc.
28 MAPLE Walter Arriaga Delgado
2
ARITMÉTICA
Objetivos:
z Exponer los conceptos aritméticos para ofrecer diversos métodos de como los estudiantes
harán cálculos aritméticos con la ayuda del Maple.
2.1. Definición
Maple se puede usar como una potente calculadora, con números, operadores aritméticos y
constantes matemáticas. Puede operar con enteros y racionales de gran tamaño y tiene defini-
da las funciones matemáticas usuales, como por ejemplo:
28!
Calcular:
745
> 28!/7^45;
126983900296423931904000000
44567640326363195900190045974568007
> ln(1);
29
30 MAPLE Walter Arriaga Delgado
> 25!;
15511210043330985984000000
5, −4, 9
> ifactor(3456789764350076548);
(2)2 (137)(179)(1229)(28673948111)
> sin(Pi/2);
0
> sin(pi/2);
1
sin π
2
Para escribir el número e hay que poner exp(1) y para la unidad imaginaria hay que escribir
I.
> ln(exp(1));
1
> exp(Pi*I);
−1
> (3-2*I)^5;
−597 − 122I
Para especificar el número de decimales que se quieren usar se emplea la variable Digits, que
tiene como valor por defecto 10, pero puede ser modificada:
Walter Arriaga Delgado MAPLE 31
> Digits:=3;
Digits := 3
> 3./4;
,750
Para obtener la aproximación decimal de una expresión también se puede utilizar evalf, cuyos
argumentos son: la expresión y el número de dı́gitos deseado.
evalf(expresión , número de dı́gitos deseado)
> evalf(Pi,3);
3,14
2.1.2. Variables.
2.1.3. Asignación.
Uno puede pensar que la memoria de una computadora está formada por buzones cada
uno de ellos con un nombre o dirección. En cada uno de estos buzones o cajitas se puede
guardar una información.
En la caja con dirección a (la variable a) guardamos el número entero 3 usando el sı́mbolo
de asignación “: = ” y seguido de un punto y coma. Para ejecutar este comando debe apretar
la tecla Enter.
> a:=3;
a := 3
Ahora escribimos
> a:=b;
a := b
32 MAPLE Walter Arriaga Delgado
> b:=c;
b := c
> c:=4;
c := 4
> b:=56;
b := 56
> a;
56
> b;
56
> c;
Uno puede guardar en una variable una expresión aritmética, por ejemplo
> a:=3*d+e;
a := 3d + e
√ √
Le asignamos a d y e los valores 2 y 4 2 , respectivamente, y luego le preguntamos a MAPLE
por el valor de a
> d:=sqrt(2);
√
d := 2
> e:=4*sqrt(2);
√
e := 4 2
> a;
√
7 2
Walter Arriaga Delgado MAPLE 33
Si uno quiere asignarle a las variables d y e nuevamente su valor simbólico , o sea “vaciar”
el contenido de las cajas, escribimos
> e:=’e’;
e := e′
> d:=’d’;
d := d′
> a;
3d + e
> naranjas:=8;
naranjas := 8
> manzanas*naranjas;
32
> manzanas^2;
16
> WALTER:=10;
W ALT ER := 10
> ARRIAGA:=15;
ARRIAGA := 15
> DELGADO:=5;
DELGADO := 5
> WALTER+ARRIAGA+DELGADO;
30
> WALTER*ARRIAGA*DELGADO;
750
34 MAPLE Walter Arriaga Delgado
> WALTER+ARRIAGA-DELGADO;
20
Nota: 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 ejecutado aunque se
borre la instrucción Maple conserva en memoria el valor asignado. Si se quiere “limpiar”la
variable es preciso desasignarla. Para desasignar el valor a una variable se le asigna su propio
nombre sin evaluar:
> manzanas:=’manzanas’;
manzanas := manzanas
> manzanas^2;
manzanas2
a := 3
b := 2
ab
Maple distingue entre expresiones y funciones. Por ejemplo, x2 es una expresión. Se puede
manejar como tal, pero no se puede evaluar salvo sustituyendo x por otro valor con la función
subs.
> f:=x^2;
f := x2
> f(3);
x(3)2
> subs(x=3,f);
9
Walter Arriaga Delgado MAPLE 35
Recuerda: Al reiniciar la sesión, bien con restart o bien saliendo y volviendo a entrar, se
pierden las asignaciones por lo que si queremos tener las funciones definidas hay que volverlas
a ejecutar.
> f:=x->x^2+2;
f := x → x2 + 2
> f(2);
6
Nota: Si en algún momento de trabajo del curso reinicias el sistema, debes volver a entrar
en la página de inicio y ejecutar la instrucción que carga la librerı́a.
2.2.1. Definición
El operador Dolar ($) crea una secuencia repitiendo el nombre de un número determinado de
veces.
> sec1:=’i’$’i’=1..10;
sec1 := 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
> sec2:=’i’^2$’i’=2..9;
sec2 := 4, 9, 16, 25, 36, 49, 64, 81
36 MAPLE Walter Arriaga Delgado
> sec3:=seq(i!/i^2,i=1..8);
1 2 3 24 720
sec3 := 1, , , , , 20, , 630
2 3 2 5 7
Utilizando la función seq no es necesario poner apóstrofes en la variable i, aunque esté eval-
uada a cualquier otra cosa.
Podemos crear una secuencia concatenando otras secuencias, ejemplo:
> sec4:=sec0,sec1;
También podemos obtener un elemento especı́fico de una secuencia usando los corchetes [ ],
ejemplo:
> sec4[3];sec4[3..7];
marzo
2.3. Conjuntos
2.3.1. Introducción
La idea de un conjunto podemos intuir como una colección, agrupación de personas, ani-
males, objetos, etc.
Walter Arriaga Delgado MAPLE 37
Cada elemento debe ser perfectamente identificable de los demás para no tenerlos en
cuenta más de una vez.
> set1:={1,2,3,5,-1,3,8,1};
set1 := {1, 2, 3, 5, −1, 3, 8, 1}
> set2:={rojo,verde,blanco,azul};
Observemos que Maple elimina los elementos repetidos y cambia el orden dado por el usuario.
Nota: Dado el siguiente conjunto:
> set3:={rojo,verde,negro}union{amarillo,rojo,azul};
a. Igual que con las secuencias, a los elementos de los sets se accede con el corchete [ ], ejemplo:
> set3[2];
azul
> set3[2..4];
{azul, negro, rojo}
> op(5,set3);
amarillo
38 MAPLE Walter Arriaga Delgado
> op(2..5,set3);
> setB:={5,9,13,18,21};
B A B A
A
B
B A
A B A
Diferencia de conjuntos
B A
A
Diferencia simétrica
B
A
A∆B = (A ∪ B) − (A ∩ B)
A∆B = (A − B) ∪ (B − A)
Pertenencia
> member(20,setB);
f alse
Nota: Para determinar el número de elementos de un conjunto usemos la opción nops Ejemplo:
> nops(setA);nops(setB);nops(setAUB);nops(setAintersectB); nops(setAmenosB);
> ‘intersect‘(setA,setB);
{5, 9, 13}
> ‘minus‘(setA,setB);
{1, 3, 11}
> type(setA,list);
f alse
Nota:
La función type evalúa si en true o es false según el tipo de variable que se pase como argumento
coincida o no con el nombre del tipo que se le pase como segundo argumento, ejemplo:
> type(set1,‘set‘);
true
> type(lista1,‘set‘);
f alse
La función member también actúa sobre listas, pero no sobre sucesiones. Su objetivo es
averiguar si un determinado dato o expresión pertenece a un set o a una lista y, en caso
afirmativo, qué pocisión ocupa.
> set3; member(verde,set,’pos’); pos;
true
> member(verde,set,’pos’);
f alse
La función sort se aplica a listas, no a secuencias o sets. Su objetivo es ordenar una lista.
> sort(lista2);
[amarillo, azul, negro, rojo, verde]
> subs(negro=blanco,lista3);
> lista4:=[lista2,lista3];
lista4 := [verde, azul, negro, rojo, amarillo, verde, azul, negro, rojo, amarillo, negro]
> type(lista4,listlist);
f alse
> convert(set2,list);
[rojo, verde, blanco, azul]
> lista2:=[op(set3)];
> listA:=[x$3,y$2];
[x, x, x, y, y]
> A:convert(listA,set);
{x, y}
> setB1:=[NULL];
setB1 := [ ]
sea la lista
> listaC1:=[5,4,3,2,1];
listaC1 := [5, 4, 3, 2, 1]
[5, x, 3, 2]
44 MAPLE Walter Arriaga Delgado
Cuando se define al conjunto enunciando una propiedad común que caracteriza a los ele-
mentos de dicho conjunto.
Para determinar un conjunto por comprensión usaremos la fórmula:
Solución
0 4 10
−2 18
+2 +4
+6 +8
+2 +2 +2
luego: a1 = −2, b1 = 2, c1 = 2
Puesto que el conjunto tiene 5 elementos, podemos hallar a1 , b1 , c1 , d1 y e1
> A:={-2,0,4,10,18};
> a1:=A[1];
a1 := −2
> b1:=A[2]-A[1];
b1 := 2
> c1:=(A[3]-A[2])-(A[2]-A[1]);
c1 := 2
> d1:=((A[4]-A[3])-(A[3]-A[2]))-((A[3]-A[2])-(A[2]-A[1]));
d1 := 0
> e1:=(((A[5]-A[4])-(A[4]-A[3]))-((A[4]-A[3])-(A[3]-A[2])))-(((A[4]-A[3])-(A[3]-A[2]))-((A[3]-A[2])-
(A[2]-A[1])));
e1 := 0
−2 − n + n2
> a1:=B[1];
a1 := 2
> b1:=B[2]-B[1];
b1 := 7
> c1:=(B[3]-B[2])-(B[2]-B[1]);
c1 := 12
> d1:=((B[4]-B[3])-(B[3]-B[2]))-((B[3]-B[2])-(B[2]-B[1]));
d1 := 6
46 MAPLE Walter Arriaga Delgado
> e1:=(((B[5]-B[4])-(B[4]-B[3]))-((B[4]-B[3])-(B[3]-B[2])))-(((B[4]-B[3])-(B[3]-B[2]))-((B[3]-B[2])-
(B[2]-B[1])));
e1 := 0
Es el conjunto formado por todos los subconjuntos que es posible formar con los elementos
de un conjunto dado.
Ingresaremos el comando with junto con el paquete combinat.
> with(combinat):
luego usaremos la función choose que determina las combinaciones o el conjunto potencia de
los elementos de un conjunto.
> choose({a,b,c});
{{}, {a}, {b}, {a, b}, {a, b, c}, {b, c}, {c}, {a, c}}
a) W = {n2 + 1 / n ∈ N ∧ 2 ≤ n ≤ 20}
n
b) A = { 2 / n ∈ N ∧ 1 ≤ n ≤ 15}
n +1
n+1
c) L = { / n ∈ N ∧ 2 ≤ n ≤ 20}
n−1
n2 − 1
d) T = { 2 / n ∈ N ∧ 0 ≤ n ≤ 15}
n +1
2
e) E = {en −n+1 / n ∈ N ∧ 1 ≤ n ≤ 10}
2
n +3
f) R = {ln / n ∈ N ∧ 1 ≤ n ≤ 10}
n2 + 1
3. Determinar por comprensión los siguientes conjuntos:
a) A = {a, b, c, d}
b) B = {m, n, p, q, r}
c) C = {1, 3, 5, 7, 9}
n+1
d) D = { / n ∈ N ∧ 2 ≤ n ≤ 10}
n−1
e) E = {n2 + n + 1 / n ∈ N ∧ 1 ≤ n ≤ 6}
48 MAPLE Walter Arriaga Delgado
2.4. Divisibilidad
Es la parte de la aritmética que estudia las condiciones que debe reunir un número para
ser divisible entre otro.
En general se dice que un número es divisible entre otro cuando lo contiene exactamente
un número entero de veces.
Se dice que dos números son divisibles cuando su cociente es exacto y además un número
entero.
Usaremos el paquete numtheory con el comando with. Este paquete está referido al tópico
de la teorı́a de números que estudia el campo de la divisibilidad y los números enteros.
Es aquel número que esta contenido en otro, un número entero de veces. Ası́ tenemos que,
5 es divisor de 90 porque está contenido en éste, 18 veces.
La función divisors sirve para determinar los divisores de un número.
Ejemplo 2.4.1. Dado el número 32 hallar los divisores, número de divisores, suma de sus
divisores, y el producto de sus divisores.
> with(numtheory):
> divisores:=divisors(32);
no dedivisores := 6
sumadedivisores := 63
Walter Arriaga Delgado MAPLE 49
> productodedivisores:=sqrt(36^(tau(36)));
productodedivisores := 10077696
La función ilcm nos permite determinar el mı́nimo común múltiplo de números enteros.
La función igcd nos permite determinar el máximo común divisor de números enteros.
Solución
34216 12
102 2851 12
061 45 237 12
117 19 12
016 91
4 7 9 7 1
donde:
N es el número en base 10
base es un comando obligatorio de cambio
m es la base del nuevo número convertido
2.6.4. Redondeo
La función round, devuelve el entero más próximo en la recta real al número dado.
Ejemplo 2.6.6.
> round(-8.3);round(5.7);round(-8.5);round(3.5);
−8
−9
> round(Pi);
3
Ejemplo 2.6.7.
> frac(-3.792);frac(23/17);frac(23118);frac(23/18.);
−,792
6
17
0
,277777778
> frac(Pi);
π−3
Ejemplo 2.6.8.
Walter Arriaga Delgado MAPLE 53
> trunc(15/2);trunc(79.374);
7
79
> trunc(Pi);
3
Nota:
> valorpi:=trunc(Pi)+frac(Pi);
valorpi := π
Un número primo es aquel número que es divisible entre 1 y entre sı́ mismo.
a. El comando nextprime(x), calcula el menor de los números primos que sea mayor que x.
> nextprime(37);
41
> nextprime(1000);
1009
> nextprime(-259);
2
54 MAPLE Walter Arriaga Delgado
b. El comando prevprime(x), calcula el mayor de los números primos que sea menor que x.
> prevprime(37);
31
> prevprime(10000);
9973
> prevprime(-25);
Error, (in prevprime) there are no primes less than 2
> isprime(10001);
f alse
> isprime(-5);
f alse
d. La función ithprime devuelve el número primo que ocupa la posición n > ithprime(50);
229
> ithprime(100);
541
Nota:
> seq(ithprime(i),i=1..20);
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71
set1 := {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71}
Walter Arriaga Delgado MAPLE 55
primos := {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71}
> sum(primos[i],i=1..20);
639
Ejemplo 2.7.1.
> ifactor(1350);
(2)(3)3 (5)2
2.8.1. Sumatorias
4
X
Ejemplo 2.8.1. Hallar k2
i=1
> Sum(k^2,k=1..4);
4
X
k2
i=1
> sum(k^2,k=1..4);
30
> Sum(k^2,k=1..4)=sum(k^2,k=1..4);
4
X
k2 = 30
i=1
3
X k2 + 3k + 1
Ejemplo 2.8.2. Hallar
3k − 2
i=1
> Sum((k^2+3*k+1)/(3*k-2),k=1..3)=sum((k^2+3*k+1)/(3*k-2),k=1..3);
3
X k2 + 3k + 1 293
=
3k − 2 28
i=1
2 + 3 + 5 + 7 + 11 + 13 + 17 + 19 + 23 + 29 + 31 + . . .
> sum(ithprime(i),i=1..5);
28
Podemos hallar la suma de raı́ces o soluciones de una ecuación utilizando el comando sum
y la opción RootOf.
Ejemplo 2.8.4.
−15
Walter Arriaga Delgado MAPLE 57
Para hallar la fórmula de la suma de los cuadrados de los “n” primeros números naturales
> Sum(k^2,k=1..n)=factor(sum(k^2,k=1..n));
n
X n(n + 1)(2n + 1)
k2 =
6
i=1
Para hallar la fórmula de la suma de los cubos de los “n” primeros números naturales
> Sum(k^3,k=1..n)=factor(sum(k^3,k=1..n));
n
X n2 (n + 1)2
k3 =
4
i=1
2.8.2. Productos
> product(k^3,k=1..5);
1728000
> Product(k^3,k=1..5)=product(k^3,k=1..5);
5
Y
k3 = 1728000
i=1
5
Y 3k2 − 8k + 11
Ejemplo 2.8.6. Hallar
2k + 15
i=1
> Product((3*k^2-8*k+11)/(2*k+15),k=1..5)=product((3*k^2-8*k+11)/(2*k+15),k=1..5);
5
Y 3k2 − 8k + 11 1512
=
2k + 15 8075
i=1
Ejemplo 2.8.7.
−5
17
3
n
X
3. Hallar la fórmula para k5
i=1
n
X
4. Hallar la fórmula para k6
i=1
n
X
5. Hallar la fórmula para k7
i=1
ALGEBRA
Objetivos:
z Exponer los conceptos algebraicos para ofrecer diversos métodos de como los estudiantes
harán cálculos algebraicos con la ayuda del Maple.
3.1.1. Origen
3.1.2. Definición
Es una parte de la Matemática que estudia a las cantidades en su forma más general posible,
haciendo uso para ello de números y letras. Teniendo como objeto, transformar, generalizar,
simplificar y resolver cuestiones relativas a la cantidad.
3.2.1. Propiedades
Si m, n ∈ N y a, b ∈ R entonces:
61
62 MAPLE Walter Arriaga Delgado
1. am .an = am+n
am
2. = am−n , a 6= 0
an
3. (a.b)n = an .bn
a n an
4. = , b 6= 0
b bn
√ √
12. am n ap = n amn ap , n 6= 0
rq
n m √ √
p
13. a = nmp a, n 6= 0, m 6= 0, p 6= 0
En la teorı́a de exponentes usaremos a menudo la opción simplify, que nos permitirá reducir
las expresiones algebraicas.
Verificando la primera propiedad:
> a^m*a^n;
am an
Ejemplo 3.2.1.
3(n+4) + 3(n+3)
1. Hallar el equivalente de A =
3(n+2) − 3(n+1)
Walter Arriaga Delgado MAPLE 63
> A:=(3^(n+4)+3^(n+3))/(3^(n+2)-3^(n+1));
3(n+4) + 3(n+3)
A :=
3(n+2) − 3(n+1)
> simplify(A);
18
−9−4−1/2
2. Efectuar B = 8−27
> B:=8^(-27^(-9^(-4^(-1/2))));
√
(−9(−1/4 4) )
B := 8(−27 )
> simplify(B);
1
2
4 2
3. Efectuar C := (((24 )5 )6 ) ÷ (23 ∗ 26 )
> C:=(((2^4)^5)^6)/(2^(3^4)*2^(6^2));
162 ,274
1. Calcular el valor de M =
186
7n+3 − 7n+1
2. Simplificar S =
3.(7n+1 ),24
52n+3 + 52n+1
3. Calcular el valor de A =
52n+2 − 52n+1
−4 −2−1
4. Efectuar M = 9
−2 −3
1 1
+
2 3
5. Reducir M = −2 −3 −1
1 1 1
+
3 2 14
−3−1
32−1/5
−24 −1
1 1 8
8. Calcular el valor de M = +
2 3
b b b
3a + 2 − 3a + 1 + 3a
9. Simplificar R = b b b
3a − 2 − 3a − 1 + 3a
Polinomio es una expresión algebraica racional entera que consta de dos o más términos
(monomios) en una cantidad finita.
Se usan las siguientes opciones:
coeffs : para determinar los coeficientes del polinomio.
lcoeff : para determinar el coeficiente del término de mayor grado del polinomio.
tcoeff : para determinar el coeficiente del término de menor grado del polinomio.
degree : para determinar el grado del polinomio.
ldegree : para determinar el menor grado del polinomio.
Podemos usar una opción equivalente a la anterior para determinar el coeficiente de x4 en p1.
> coeff(p1,x,4);
2
Walter Arriaga Delgado MAPLE 65
−3
se tiene:
> p1:=3*x^2*y^7+22*x^3*y^5-12*x^8*y^2;
> coeffs(p1);
3, 22, −12
> lcoeff(p1);
−12
> degree(p1);
10
> ldegree(p1);
> tcoeff(p1);
3
66 MAPLE Walter Arriaga Delgado
Ejemplo 3.3.3.
1. Sea el polinomio p2 (x) = 11x3 + 10x2 − 37x + 15, hallar: p2 (2), p2 (−1), p2 (15).
> p2:=x − > 11*x^3+10*x^2-37*x+15;
> p2(2);
69
> p2(-1);
51
> p2(15);
38835
2. Sea el polinomio p3 (x, y) = 2x3 y 5 − 7x3 y 2 − 3x2 y 4 , hallar p3 (1, 2), p3 (2, 3), p3 (−1, −3)
> p3:=(x,y) − > 2*x^3*y^5-7*x^3*y^2-3*x^2*y^4;
> p3(1,2);
−12
> p3(2,3);
2412
> p3(-1,-3);
306
p4 := x → 2x5 + 13x2 − 10
> p4(0);
−10
> p4(1);
5
> p[5](0,0);
15
> p[5](1,1);
−5
Polinomios
vamos a “repasar” ciertos conceptos importantes sobre polinomios haciendo especial hin-
capié en su resolución con el programa MAPLE. Por lo tanto vamos a suponer que el lector
conoce conceptos básicos del tema y los vamos a completar con funciones y utilidades de dicho
programa de cálculo simbólico.
Definición: Dado el conjunto de los números reales R, se llama polinomio sobre a un conjunto
ordenado de coeficientes en R que se representa por:
P (x) = a0 + a1 x + a2 x2 + ... + an xn (n ≥ 0)
Cuando queremos trabajar con polinomios en MAPLE debemos definir cada uno como
los polinomios para posteriormente operar con ellos.
9 1 5
Considere el polinomio: p1 = x − 5x3 + x
2 2
Si multiplicamos por 2 el polinomio para quitar las fracciones obtenemos:
P2 = 9x − 10x3 + x5 . ¿Son los mismos P1 y P2 ?.
Solución:
Los polinomios P1 y P2 son distintos. No obstante tienen algunas cosas en común, las cuales
se observan fácilmente si procedemos a la representación gráfica de ambos:
> p1:=9/2*x-5*x^3+1/2*x^5:
> p2:=9*x-10*x^3+x^5:
> plot({p1,p2},x=-4..4,y=-50..50,color=[red,navy]);
Determinar los coeficientes, el grado, el menor grado, el coeficiente del término de may-
or grado, el coeficiente del término de menor grado, la suma de coeficientes y el término
independiente de los siguientes polinomios:
40
y
20
–4 –3 –2 –1 0 1 2 3 4
x
–20
–40
p_1
p_2
Se pueden realizar con las expresiones algebraicas operaciones de suma, resta multiplicación
y división
70 MAPLE Walter Arriaga Delgado
> B:=-2*x^3+6*x^2-4*x+6;
B := −2x3 + 6x2 − 4x + 6
> C:=x^3-3*x^2+3*x+8;
C := x3 − 3x2 + 3x + 8
4x3 + x2 + 5x + 5
> Q:=4*x^4-2*x^3+2*x^2−3*x+7;
> P-Q;
2x4 − x3 + 2x2 + 10x − 11
La función expand del Maple proporciona en general una forma expandida de la expresión
creada de un modo compacto.
> Q:=3*x^2-4*x+2;
Q := 3x2 − 4x + 2
> P*Q;
(5x2 − 3x + 2x4 + 6)(3x2 − 4x + 2)
> expand(P*Q);
194 − 29x3 + 40x2 − 30x + 6x6 − 8x5 + 12
Q = 7x3 + 8x2 + 9x − 3
R = 3x2 + 8x + 9x5 − 3
Hallar 2P Q − 3QR + 5P R . Además hallar el grado del resultado.
Solución
> P:=5*x^2+8*x^4-3*x^3+2*x+1;
> Q:=7*x^3+8*x^2+9*x-3;
Q := 7x3 + 8x2 + 9x − 3
> R:=3*x^2+8*x+9*x^5-3;
R := 3x2 + 8x + 9x5 − 3
> 2*P*Q-3*Q*R+5*P*R;
2(5x2 + 8x4 − 3x3 + 2x + 1)(7x3 + 8x2 + 9x − 3) − 3(7 ∗ x3 + 8 ∗ x2 + 9 ∗ x − 3)(3x2 + 8x + 9x5 − 3)
+5(5x2 + 8x4 − 3x3 + 2x + 1)(3x2 + 8x + 9x5 − 3)
> a:=expand( %);
a := −48 + 169x − 399x4 + 219x3 − 75x2 + 504x5 + 121x7 + 53x6 − 324x8 + 360x9
> degree(a);
9
Maple no ordena los términos de modo automático, para que lo haga usaremos el comando
sort:
> sort(a);
Ejemplo 3.4.5. Sean las expresiones algebraicas P := (x( 1/3) + 2), Q := (x( 1/2) + 3), hallar
P Q.
> P:=(x^(1/3)+2);
P := (x1/3 + 2)
> Q:=(x^(1/2)+3);
√
Q := ( x + 3)
> P*Q;
√
(x1/3 + 2)( x + 3)
> expand(P*Q);
√
x5/6 + 3x1/3 + 2 x + 6
Siguiendo con las operaciones elementales entre polinomios, con el cociente debemos de
tener un poco de cuidado; los dos ejemplos siguientes lo muestran:
> (x^4-2*x^3+3*x)/(x^2+x);
x4 − 2x3 + 3x
x2 + x
> simplify( %);
x2 − 3x + 3
> (x^4-2*x^3+3*x)/(x-3);
x4 − 2x3 + 3x
x−3
> simplify( %);
x(x3 − 2x2 + 3)
x−3
> quo(x^4-2*x^3+3*x,x-3,x);
x3 + x2 + 3x + 12
> r;
36
Ejemplo 3.4.6. Calcular el cociente y el resto de dividir P = 5x2 + 8x5 − 3x3 + 2x + 4 entre
Q = 7x3 + 8x2 + 9x − 3
Solución
> P:=5*x^2+8*x^5-3*x^3+2*x+4;
> Q:=7*x^3+8*x^2+9*x-3;
Q := 7x3 + 8x2 + 9x − 3
> q:=quo(P,Q,x);
8 2 64 139
q := x − x−
7 49 343
> r:=rem(P,Q,x);
8035 2 955 593
r := x + + x
343 343 343
Sea R = 3x2 + 8x + 9x3 − 3 se tiene:
> R:=3*x^2+8*x+9*x^3-3;
R := 3x2 + 8x + 9x3 − 3
> q:=quo(P,R,x);
8 8 83
q := x2 − x −
9 27 81
> r:=rem(P,R,x);
118 2 25 754
r := x + + x
9 27 81
La función divide devuelve true cuando la división entre dos polinomios es exacta (resto
cero), y false si no lo es.
> divide(P,Q);
f alse
Walter Arriaga Delgado MAPLE 75
A−B+C−D ABCD
2A + 3B − 3C − D (A + B) ÷ (C + D)
3A − 2B + C − 5D (2A − B) ÷ (C − 2D)
AB(C + D) (A + 2B) ÷ (C − D)
3.5. Factorización
Ejemplo 3.5.1.
a1 := x3 − 2x2 y − xy 2 + 2y 3
> factor(a1);
(−y + x)(−2y + x)(y + x)
> a2:=x^2*y+x*y^2+x^2+y^2+x+y+2*x*y;
a2 := x2 y + xy 2 + x2 + y 2 + x + y + 2xy
> factor(a2);
(y + 1)(1 + x)(y + x)
> factor(a3);
nm(−5m + n)(4m2 + n2 )
d. Factorizar P (x) = x4 + 4
solución
> a4:=x^4+4;
a4 := x4 + 4
> factor(a4);
(x2 − 2x + 2)(x2 + 2x + 2)
1. x5 + x4 y + 2x3 y 2 + 2x2 y 3 + xy 4 + y 5
2. x5 − x4 − 2x3 + 2x2 + x − 1
3. x7 + x6 − x5 − x4 − x3 − x2 + x − 1
6. x5 + x + 1
Walter Arriaga Delgado MAPLE 77
9. x3 + x(x3 + x)2 − 1
11. abc + ab + ac + bc + a + b + c + 1
Está determinado por todos los factores comunes con su menor exponente. En Maple se
usa la función gcd de la siguiente manera:
gcd(expresion1,expresion2)
Está determinado por todos los factores comunes y no comunes con su mayor exponente.
En Maple se usa la función lcm de la siguiente manera:
lcm(expresion1,expresion2)
Ejemplo 3.6.1.
A := 8x3 + 2x2 − 5x + 1
78 MAPLE Walter Arriaga Delgado
> B:=8*x^3+10*x^2-11*x+2;
> gcd(A,B);
1 − 6x + 8x2
x(3x + 3y)(xy − y 2 )
> lcm(A,B);
(x + 1)(8x3 + 10x2 − 11x + 2)
> N:=x^3-4*x;
N := x3 − 4x
> R:=x^2*y-2*x*y;
R := x2 y − 2xy
> S:=x^2-x-2;
S := x2 − x − 2
una manera
> gcd(M,gcd(N,gcd(R,S)));
x−2
> lcm(M,lcm(N,lcm(R,S)));
5(x + 2)xy(x2 − x − 2)
Walter Arriaga Delgado MAPLE 79
otra manera
> gcd(gcd(M,N),gcd(R,S));
x−2
> lcm(lcm(M,N),lcm(R,S));
5(x + 2)xy(x2 − x − 2)
5(x + 2)xy(x2 − x − 2)
1. A = x3 + x2 y + xy 2 + y 3 , B = x3 − x2 y + xy 2 − y 3 , C = x4 − y 4
3. A = x2 − 4x + 3, B = x2 + 4x + 3, C = x4 − 10x2 + 9, D = x3 − 9x + x2 − 9
4. A = x3 − xy 2 + x2 y − y 3 , B = x3 − xy 2 − x2 y + y 3 , C = x4 − 2x2 y 2 + y 4
8. Hallar el término independiente del cociente que resulta de dividir el M.C.M y el M.C.D
de: A = x2 + 5x + 6 , B = 2x2 + 12x + 18, C = 4x2 + 4x − 24
80 MAPLE Walter Arriaga Delgado
Usaremos la función simplify para simplificar fracciones algebraicas, sin importar si éstas
fracciones son propias o impropias.
Ejemplo 3.7.1.
(x + y)2 − (xy + 1)2
1. Simplificar T =
x2 − 1
Solución
> T:=((x+y)^2-(x*y+1)^2)/(x^2-1);
> simplify(T);
1 − y2
(x + y)4 − (x − y)4
2. Simplificar K =
8x3 y + 8xy 3
Solución
> K:=((x+y)^4-(x−y)^4)/(8*x^3*y+8*x*y^3);
(x + y)4 − (x − y)4
K :=
8x3 y + 8xy 3
> simplify(K);
x5 + x4 + x3 + x2 + x + 1
3. Simplificar A =
x4 + x2 + 1
Solución
> A:=(x^5+x^4+x^3+x^2+x+1)/(x^4+x^2+1);
x5 + x4 + x3 + x2 + x + 1
A :=
x4 + x2 + 1
> simplify(A);
x+1
Walter Arriaga Delgado MAPLE 81
Ejemplo 3.7.2.
4
1. convertir en fracciones parciales
x2 −4
Solución
> convert(4/(x^2-4),parfrac,x);
1 1
−
x−2 x+2
también
> a:=4/(x^2-4);
1
a := 4
x2 − 4
> convert(a,parfrac,x);
1 1
−
x−2 x+2
16
2. convertir en fracciones parciales
x3 − 4x
Solución
> convert(16/(x^3-4*x),parfrac,x);
1 2 2
−4 + +
x x−2 x+2
x5 + 1
3. convertir en fracciones parciales
x4 − x2
Solución
> convert((x^5+1)/(x^4-x^2),parfrac,x);
1 1
x+ −
x − 1 x2
a2 + b2 a2 − b2
−
1. Simplificar a2 − b2 a2 + b2
a+b a−b
−
a−b a+b
82 MAPLE Walter Arriaga Delgado
a10 + a8 + a6 + a4 + a2 + 1
2. Simplificar
a4 + a2 + 1
p3 q + 3p2 q + 9pq
3. Simplificar
p3 − 27
1
4. Simplificar 1−
1
1−
1
1−
x
4xy
1− 2
4x + 2xy + y 2
5. Simplificar
8x3 + y 3
2y
1 −
8x3 − y 3 2x + y
ax(ax + 1)(ax + 2)(ax + 3) + 1
6. Simplificar
(1 + ax)(1 + 2ax)(1 + 3ax) + a4 x4
x−y 3
−1
x+y
7. Simplificar x−y
−1
x+y
1 1
−
8. Simplificar x−1 x+1
1
x+
x+1 − 1
3
x −1 x2 + 1
4 2 x
+ +1
x2 x x3 − 8
9. Simplificar
1
2
x − 2x
x+1 x−1 2
10. Simplificar − ÷
1 1 1
x + 1 − x−1+ x2 − 2
1 1 x
x−1+ x+1−
x+1 x−1
x4 + 1
14.
x3 + 8
4x − 2
15.
x3 − x2 − 2x
12 + 6x2
16.
x3 + 4x2 + 3x
5x2 − 3
17.
x3 − x
5
18.
(x + 1)5 − x5 − 1
9
19.
(x − 1)(x + 2)2
2x3 + x2 + 2x − 1
20.
x4 − 1
> factorial(5);
120
> factorial(15);
1307674368000
Hallemos (x + 3)!
> factorial(x+3);
(x + 3)!
84 MAPLE Walter Arriaga Delgado
87!+1 ,7!8!
Ejemplo 3.8.1. Calcular
7!7!,7 ,8!7!
> (8^(7!+1)*(7!)^(8!))/((7!)^(7!*7)*(8!)^(7!));
3.8.2. Permutaciones
Las permutaciones de n elementos está dado por Pn = n!. Usaremos la opción permute.
> with(combinat,permute);
[permute]
> permute(2);
[[1, 2], [2, 1]]
> permute(3);
[[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]
> permute(a,b,c,d);
[[a, b, c, d], [a, b, d, c], [a, c, b, d], [a, c, d, b], [a, d, b, c], [a, d, c, b], [b, a, c, d], [b, a, d, c], [b, c, a, d],
[b, c, d, a], [b, d, a, c], [b, d, c, a], [c, a, b, d], [c, a, d, b], [c, b, a, d], [c, b, d, a], [c, d, a, b], [c, d, b, a],
[d, a, b, c], [d, a, c, b], [d, b, a, c], [d, b, c, a], [d, c, a, b], [d, c, b, a]]
> permute(a,a,b,b,c);
[[a, b, c], [a, c, b], [b, a, c], [b, c, a], [c, a, b], [c, b, a]]
número de permutaciones
> with(combinat,numbperm);
[numbperm]
Hallemos P2 , P3 y P10
> numbperm(2);
2
> numbperm(3);
6
Walter Arriaga Delgado MAPLE 85
> numbperm(10);
3628800
> numbperm(a,b,c,d);
24
> numbperm(a,a,b,b,c);
6
3.8.3. Variaciones
n!
Vrn =
(n − r)!
> permute(4,2);
[[1, 2], [1, 3], [1, 4], [2, 1], [2, 3], [2, 4], [3, 1], [3, 2], [3, 4], [4, 1], [4, 2], [4, 3]]
> permute(a,b,c,d,3);
[[a, b, c], [a, b, d], [a, c, b], [a, c, d], [a, d, b], [a, d, c], [b, a, c], [b, a, d], [b, c, a], [b, c, d], [b, d, a],
[b, d, c], [c, a, b], [c, a, d], [c, b, a], [c, b, d], [c, d, a], [c, d, b], [d, a, b], [d, a, c], [d, b, a], [d, b, c],
[d, c, a], [d, c, b]]
> permute(a,a,b,2);
[[a, b], [b, a]]
número de variaciones
> with(combinat,numbperm);
[numbperm]
Hallemos V24
> numbperm(4,2);
12
86 MAPLE Walter Arriaga Delgado
> numbperm(a,b,c,d,3);
24
> numbperm(a,a,b,2);
2
n!
V := (n, r) →
(n − r)!
> V(10,3);
720
V29 + V38
Ejemplo 3.8.2. Calcular
V24
> (V(9,2)+V(8,3))/(V(4,2));
34
Combinaciones y propiedades:
Las combinaciones de n elementos tomando grupos de r en r está dado por:
n!
Crn =
r!(n − r)!
> C:=(n,r)->factorial(n)/(factorial(r)*factorial(n-r));
n!
C := (n, r) →
r!(n − r)!
> C(10,3);
120
Walter Arriaga Delgado MAPLE 87
Ejemplo 3.8.3.
C618 C520 C619
1. Efectuar
C821 C617 C15
20
> (C(18,6)*C(20,5)*C(19,6))/(C(21,8)*C(17,6)*C(20,15));
1
5
> sum(C(20,2*i)*(-1)^i,i=0..10);
−1024
> sum(C(20,2*i),i=0..6);
2048
> sum(binomial(12,2*k),k=0..6);
2048
Además
> binomial(5,1);
> Sum(binomial(8,k),k=0..8);
8
X
binomial(8, k)
k=0
> sum(binomial(8,k),k=0..8);
256
> with(combinat,bell);
[bell]
> bell(2),bell(3),bell(4),bell(5),bell(6);
> bell(0);
1
88 MAPLE Walter Arriaga Delgado
cuyo término general se expresa como: tk+1 = Ckn ant bk , donde nt indica el número de terminos
del desarrollo de dicho binomio.
Ejemplo 3.9.1.
nt!
c := (nt, k) →
k!(nt − k)!
> nt:=10;
nt := 10
> a:=x;
a := x
> b:=y;
b := y
> (a+b)^nt;
(x + y)10
> k1:=k+1;
k1 := 6
> t[k1]:=c(nt,k)*a^(nt-k)*b^k;
t6 = 252x5 y 5
Walter Arriaga Delgado MAPLE 89
nt!
c := (nt, k) →
k!(nt − k)!
> nt:=16;
nt := 16
> a:=2*x^3;
a := 2x3
> b:=-3*y^5;
b := −3y 5
> (a+b)^nt;
(2x3 − 3y 5 )16
> k1:=k+1;
k1 := 4
> t[k1]:=c(nt,k)*a^(nt-k)*b^k;
t4 = −123863040y 15 x39
3.10. Racionalización
a−1
Ejemplo 3.10.1. Racionalizar √
a−1
> (a-1)/(sqrt(a)-1) = rationalize((a-1)/(sqrt(a)-1));
a−1 √
√ =1+ a
a−1
1 1
Ejemplo 3.10.2. Racionalizar √ √ +√ √
x− y x+ y
> 1/(sqrt(x)-sqrt(y))+1/(sqrt(x)+sqrt(y))=rationalize(1/(sqrt(x) -sqrt(y))+1/(sqrt(x)+sqrt(y)));
√
1 1 2 x
√ √ +√ √ =
x− y x+ y x−y
3.11. Ecuaciones
3.11.1. Definición
Una ecuación es una igualdad condicional que se verifica para valores particulares asignados
a sus incógnitas.
3.11.2. Clasificación
a. Ecuaciones compatibles: Son todas aquellas que tienen solución. Estas a su vez pueden ser:
Ecuaciones compatibles determinadas: Son todas aquellas que tienen una cantidad
finita de soluciones.
Ejemplo: x2 − 4 = 0.
Ecuaciones compatibles indeterminadas: Son todas aquellas que tienen una cantidad
infinita de soluciones.
Ejemplo: 2x + 12 = 2(x + 6); (x + 1)2 − 4x = (x − 1)2 .
Nota: Todas las identidades de los productos notables son ecuaciones compatibles
indeterminadas.
b. Ecuaciones incompatibles: Son todas aquellas que carecen de solución. Llamadas también
ecuaciones absurdas.
Ejemplo: 3x − 17 = 3(x + 5)
Walter Arriaga Delgado MAPLE 91
Ecuación compatible determinada
Ecuación compatible
Ecuación Ecuación compatible indeterminada
Ecuación incompatible
Ejemplo 3.11.1.
1. Resover x2 − x − 6 = 0
Solución
> solve(x^2-x-6=0,x);
3, −2
también
> eq1:=x^2-x-6=0;
eq1 := x2 − x − 6 = 0
> solve(eq1,x);
3, −2
> solve({eq1});
{x = 3}, {x = −2}
> solve(eq1,{x});
{x = 3}, {x = −2}
92 MAPLE Walter Arriaga Delgado
2. Resolver 5x2 − 8x + 2 = 0
Solución
> solve(5*x^2-8*x+2=0,{x});
4 1√ 4 1√
{x = + 6}, {x = − 6}
5 5 5 5
{x = 1}, {x = 2}, {x = 3}
1 −2 7
{x = 1}, {x = }, {x = }, {x = }
2 3 5
Ejemplo 3.11.2.
x+3 5x
1. Resolver =
x+2 x+6
Solución
> solve((x+3)/(x+2)=(5*x)/(x+6),{x});
−9
{x = }, {x = 2}
4
2x − 1 x+1
2. Resolver =
x+1 x−2
Solución
> solve((2*x-1)/(x+1)=(x+1)/(x-2),{x});
7 3√ 7 3√
{x = + 5}, {x = − 5}
2 2 2 2
Ejemplo 3.11.3.
Walter Arriaga Delgado MAPLE 93
√ √
1. Resolver x+1− x−1=a
Solución
> solve(sqrt(x+1)-sqrt(x-1)=a,{x});
4 + a2
{x = }
4a2
r r
x2 − 2x + 4 x2 + 2x − 4
2. Resolver + =2
x2 + 2x − 4 x2 − 2x + 4
Solución
> solve(sqrt((x^2-2*x+4)/(x^2+2*x-4))+sqrt((x^2+2*x-4)/(x^2-2*x+4)) =2,{x});
Ejemplo 3.11.4.
1. Resolver 3x+6 = 27
Solución
> solve(3^(x+6)=27,{x});
ln(27)
{x = −
ln(3)
> simplify( %);
{x = −3}
√
2. Resolver 5x+1 + 5x+2 + 5x+3 + 5x+4 = 780 5
Solución
> solve(5^(x+1)+5^(x+2)+5^(x+3)+5^(x+4)=780*sqrt(5),{x});
1
{x = }
2
2−3x
1
3. Resolver 53x−2 =
3
Solución
> solve(5^(3*x-2)=(1/3)^(2-3*x),{x});
2
{x = }
3
94 MAPLE Walter Arriaga Delgado
Ejemplo 3.11.5.
x+y = 12
1. Resolver y + z = 14
x + z
= 16
Solución
> solve({x+y=12,y+z=14,x+z=16});
{y = 5, z = 9, x = 7}
x+y = 5
y+z = 8
2. Resolver z + v = 9
v+w = 11
x + w = 9
Solución
> solve({x+y=5,y+z=8,z+v=9,v+w=11,x+w=9});
{w = 7, v = 4, z = 5, y = 3, x = 2}
x+y = xy
y+z = 3yz
3. Resolver z + u = 5zu
u+w = 7uw
x + w = 9wx
Solución
> solve({x+y=x*y,y+z=3*y*z,z+u=5*z*u,u+w=7*u*w,x+w=9*w*x});
> solve({x+y+z=6,5*x+4*y+3*z=25,6*x+3*y+2*z=23});
{y = 3, x = 2, z = 1}
ax + by
= 3
5. Resolver
x − y
= b
Solución
> solve({a*x+b*y=3,x-y=b},{x,y});
3 + b2 ab − 3
{x = ,y = − }
a+b a+b
xy
= yx
6. Resolver
x3
= y2
Solución
> solve({x^y=y^x,x^3=y^2});
27 9
{x = 1, y = 1}, {y = ,x = }
8 4
Ejemplo 3.11.6.
1. Resolver |x − 2| = 3
Solución
> solve(abs(x-2)=3,{x});
{x = 5}, {x = −1}
2. Resolver x2 − 4 = 4 − 2x
Solución
> solve(abs(x^2-4)=4-2*x,{x});
{x = 2}, {x = −4}, {x = 0}
3. Resolver 18 − 3x + x2 = 3 − x Solución
> solve(abs(18-3*x-x^2)=3-x,{x});
{x = 2}, {x = −2}
ax2 + bx + c = 0
> solve(a*x^2+b*x+c=0,x);
√ √
−b + b2 − 4ac −b − b2 − 4ac
,
2a 2a
> solve(a*x^2+b*x+c=0,{x});
√ √
−b + b2 − 4ac −b − b2 − 4ac
{x = }, {x = }
2a 2a
Sea el polinomio.
> pol1:=9*x^3+37*x^2+47*x+19;
Para calcular las raices con su orden de multiplicidad usaremos la funcion roots.
> roots(pol1);
−19
, 1 , [−1, 2]
9
> factor(pol1);
(9x + 19)(x + 1)2
> subs(x=(19)/(9),pol1);
29792
81
> subs(x=(-19)/(9),pol1);
0
> sum(a[k]*x^k,k=0..10);
> sum(2*x^k,k=0..10);
> P2:=7*x^5-2*x^3-8*x^7-3*x+4;
> type(P2,’polynom’);
true
> type(P2,polynom);
true
98 MAPLE Walter Arriaga Delgado
Ejemplo 3.11.7.
−15
3. Se sabe que la suma de raı́ces de la ecuación de segundo grado ax2 + bx + c = 0 está dada
por:
b
x1 + x2 = −
a
Trabajando con Maple se tiene:
> sum(k,k=RootOf(a*x^2+b*x+c=0,x));
b
−
a
Ejemplo 3.11.8.
−5
17
3
Walter Arriaga Delgado MAPLE 99
c
a
10. Resolver |6 + x| = |x + 9| + |x − 2|
2
x |x2 − 16|
11. Resolver x − 1 = x + 4
12. Resolver |x + 3| − |x − 1| = x + 1
1 1
+ = 56
15. Resolver x y
7 5
− = 11
x y 6
x + y + z = 15
x + y + w = 16
16. Resolver
x + z + w = 18
y + z + w = 20
3.12. Inecuaciones
3.12.1. Definición
Es la relación que existe entre dos expresiones reales de diferente valor. Los signos matemáticos
son: < > ≤ ≥
En Maple los signos se digitan de la siguiente manera: < > <= >=
Para trabajar con inecuaciones se utiliza también el comando solve.
comando solve = resuelve inecuaciones
solve(inecuacion,var)
solve(inecuaciones,vars)
Ejemplo 3.12.1.
1. Resolver x2 − x − 6 < 0
Solución
> solve(x^2-x-6<0,{x});
{−2 < x, x < 3}
−5 1 −2 3
{x ≤ }, {x ≤ , ≤ x}, { ≤ x}
2 2 3 4
Ejemplo 3.12.2.
x−1
1. Resolver ≥ −2
x+3
Solución
> solve((x-1)/(x+3)>=-2,{x});
−5
{x < −3}, { <= x}
3
(x + 5)2 (5 − 4x)
2. Resolver ≥0
(3x − 4)(x2 + 10x + 30)
Solución
> solve(((x+5)^2*(5-4*x))/((3*x-4)*(x^2+10*x+30))>=0,{x});
5 4
{x = −5}, { <= x, x < }
4 3
13x + 3
3. Resolver < 7 − 2x
x−3
Solución
> solve((13*x+3)/(x-3)<7-2*x,{x});
{x < 3}
Ejemplo 3.12.3.
√
1. Resolver x−2<3
Solución
> solve(sqrt(x-2)<3,{x});
√
2. Resolver 24 − 2x − x2 < x
Solución
> solve(sqrt(24-2*x-x^2)<x,{x});
{3 < x, x <= 4}
r r
2x − 8 5−x
3. Resolver + ≥0
x−1 x+3
Solución
> solve(sqrt((2*x-8)/(x-1))+sqrt((5-x)/(x+3))>=0,{x});
√ √
4. Resolver x2 − 7 ≥ 6x
Solución
> solve(sqrt(x^2-7)>=sqrt(6*x),{x});
{7 ≤ x}
Ejemplo 3.12.4.
2. Resolver 3x < 81
Solución
> solve(3^x<81,{x});
ln(81)
{x < }
ln(3)
> simplify( %);
{x < 4}
Walter Arriaga Delgado MAPLE 103
3. Resolver ex > x + 1
Solución
> solve(exp(x)>x+1,{x});
Ejemplo 3.12.5.
1
{1 < x, x <= 3}, { <= x, x < 1}
3
3. Resolver x + 2 − x2 ≤ x2 − 3x + 4
Solución
> solve(abs(x+2-x^2)<=abs(x^2-3*x+4),{x});
{x ≤ 3}
x − 1 x + 2
4. Resolver ≥
x + 2 x + 4
Solución
> solve(abs((x-1)/(x+2))>=(x+2)/(x+4),{x});
Ejemplo 3.12.6.
104 MAPLE Walter Arriaga Delgado
x2 − 12x + 32 > 0
1. Resolver
x2 − 13x + 22 < 0
Solución
> solve({x^2-12*x+32>0,x^2-13*x+22<0});
{x <= 0, −1 <= x}
x6 + 3x4 + 3x2 + 4
5. Resolver >0
x4 − 4x3 − 2x2 + 12x + 9
p
6. Resolver x2 + 4x < 5x − 1
√ √ √
7. Resolver x−8+ x − 10 − 2x − 4 < 0
√ √ √ √
8. Resolver 2x − 1 − x + 2x + 1 > 5x
1 9(x − 2) 24
9. Resolver − < 3
x + 3 x2 + 5x + 6 x + 6x2 + 11x + 6
x + 3
10. Resolver x + 1 < 1
|3x − 1| + 2x
11. Resolver ≥0
|x + 1| − 3x
Walter Arriaga Delgado MAPLE 105
x + 1
x − |x − 1|
12. Resolver ≤0
2x − 1 − x2
x2 − 2x − 3
> 0
13. Resolver
x2 − 11x + 28
≥ 0
5x − 3y + 2z > 7
2x + y + z
< 14
14. Resolver
x + 3y < 15
y
> 3
x5 + x4 + 1
> 0
15. Resolver
|x2 + 3x| + x2 − 2
< 0
3.13. Logaritmos
3.13.1. Definición
donde:
a ∈ R+ y b ∈ R+ , b 6= 1, a la expresión b se le conoce como base.
3.13.2. Propiedades
1. logb 1 = 0
2. logb b = 1
A
4. logb B = logb A − logb B
5. logb an = n logb a
106 MAPLE Walter Arriaga Delgado
6. logb bn = n
logc a
7. logb a = Cambio de base
logc b
9. logb a. loga b = 1
1
10. (logb a)−1 = = loga b
logb a
√
12. log √
n
b
n
a
m
13. logb a = n logb a
14. blogb a = a
Ejemplo 3.13.1.
2,0000
6,6439
Walter Arriaga Delgado MAPLE 107
> evalf(A);
1,5000
4. Calcular ln 1
Solución
> ln(1);
ln(x)2 ln(x2 )
A1 := − =0
ln(5)2 ln(5)
> solve(A1,{x});
{x = 1}, {x = 25}
> solve(A2,{x});
ln(9) ln(2) − ln(6) ln(4) − 3 ln(2) ln(4)
−
ln(4)
{x = e }
{x = 16}
108 MAPLE Walter Arriaga Delgado
Nota: Al trabajar con logaritmos hay que especificar el signo de las variables x e y mediante
el comando assume, para garantizar su existencia.
> assume(x>0,y>0);
> ln(x/y);
x∼
ln
y∼
> %=expand( %);
x∼
ln = ln(x ∼) − ln(y ∼)
y∼
> ln(x*y);
ln(x ∼ y ∼)
1
1. Calcular el logaritmo de en base 0.25
32
1
3. Calcular “x”si log x = log 100 + [log 18 + log 8 − 2 log 25]
2
log3 x + 1
7. Resolver =5
logx 3 + 1
0, 2, 1
Por lo tanto, la función solve( ) devuelve las raı́ces de una ecuación algebraica. Es importante
comprobar cómo la visión geométrica de la gráfica del polinomio puede ayudarnos a entender
mejor el concepto de raı́z de una ecuación algebraica; de hecho, si hacemos:
> plot(x^3-3*x^2+2*x,x=-1..3);
–1 1 2 3
x
–2
–4
–6
podemos comprobar que en la gráfica (3.2) las raı́ces reales de la ecuación algebraica
x3 − 3x2 + 2x = 0 coinciden con los puntos en los que la gráfica del correspondiente polinomio
corta al eje de abcisas; son los puntos en los que se hace cero el polinomio; es por ello por lo
que a estos puntos se les suele llamar también los ceros del polinomio.
Como una ecuación algebraica de grado “n” tiene “n” raı́ces reales o imaginarias, resulta
que mediante su representación geométrica podremos averiguar importantes propiedades de
una ecuación en particular; los siguientes ejercicios lo muestran.
20
10
x
–2 –1 1 2
0
–10
–20
–30
–40
Con la visión de la gráfica (3.3) podemos afirmar que la ecuación algebraica dada por
x5 − 3x2 + 4 = 0 solo tiene una raı́z real en el intervalo (-2,0); tiene por lo tanto 4 raı́ces
imaginarias. Si utilizamos la función solve obtenemos:
> solve(x^5-3*x^2+4,x);
−1, RootOf (Z 4 − Z 3 + Z 2 − 4 ∗ Z + 4, index = 1), RootOf (Z 4 − Z 3 + Z 2 − 4 ∗ Z + 4, index =
2), RootOf (Z 4 − Z 3 + Z 2 − 4 ∗ Z + 4, index = 3), RootOf (Z 4 − Z 3 + Z 2 − 4 ∗ Z + 4, index = 4)
Obsérvese que con estas soluciones no podemos trabajar. Como alternativa utilizaremos el
comando fsolve que, aunque es para encontrar raı́ces reales, si le añadimos la opción complex,
calcula también las complejas.
> fsolve(x^5-3*x^2+4,x);
−1,000000000
Walter Arriaga Delgado MAPLE 111
> fsolve(x^5-3*x^2+4,x,complex);
−1,000000000, −,6699931960 − 1,464223041I, −,6699931960 + 1,464223041I, 1,169993196 −
,4169242709I, 1,169993196 + ,4169242709I
Ejemplo 3.14.3. Consideremos una ecuación algebraica de grado cinco que posee dos raı́ces
reales 2 y 5 de órdenes de multiplicidad 1 y 4 respectivamente. El polinomio asociado es
(x − 2)(x − 5)4
> expand((x-2)*(x-5)^4);
30
20
y
10
0 1 2 3 4 5 6 7
x
–10
–20
Es decir, en una raı́z de orden de multiplicidad par la gráfica del polinomio no corta al eje
de abcisas sino que es tangente a él; en una raı́z de orden de multiplicidad impar la gráfica
corta a dicho eje.
Recuerde Sr. lector que todo ello sólo es válido para polinomios no para otro tipo de
ecuaciones.
Ejemplo 3.14.4. Obtener las raı́ces reales de la ecuación algebraica: 3x5 + 2x4 − 5x2 + 7 = 0
Solución:
Representemos gráficamente el polinomio:
> plot(3*x^5+2*x^4-5*x^2+7,x=-2..2);
112 MAPLE Walter Arriaga Delgado
100
80
60
40
20
–2 –1 1 2
–20 x
–40
–60
–80
En la misma observamos que de las cinco raı́ces de la ecuación sólo una es real, siendo las
otras cuatro imaginarias. La raı́z real está en el intervalo (-5,0); vamos a obtener su valor lo
más exacto posible. Pare ello resolvemos de forma numérica la ecuación:
> fsolve(3*x^5+2*x^4-5*x^2+7,x,’complex’);
{x = −1,054576434}, {x = −,7303190978 − 1,213667606I}, {x = −,7303190978+
1,213667606I}, {x = ,9242739813 − ,4985005750I}, {x = ,9242739813 + ,4985005750I}
Ahora bien, ¿es buena esta aproximación?; ¿qué error estamos cometiendo?. Observe el
lector que si la raı́z fuese exacta, al sustituir en el polinomio x por -1.054576434 deberı́a
anularse. Calculemos cuanto vale:
> p:=x->3*x^5+2*x^4-5*x^2+7:
> p(-1.054576434);
−0,310−8
> p(-1.0545764337262581879);
0,410−18
Hemos obtenido una raı́z en la que el error que cometemos es prácticamente nulo, es una
raı́z exacta salvo errores de redondeo que comúnmente se cometen.
Lo que sı́ es cierto es que entre el valor anterior -1.054576434 y el que acabamos de obtener,
el segundo es mejor que el primero.
Solución:
Si representamos gráficamente el polinomio tenemos:
> plot(x^4-0.2461*x^3+1.0151413*x^2-0.2461*x+0.0151413,x=-1..1);
2.5
1.5
0.5
Por la gráfica parece que tiene una raı́z entre 0 y 0.5; además si hacemos:
> Digits:=10:
> fsolve(x^4-0.2461*x^3+1.0151413*x^2-0.2461*x+0.0151413,{x},’complex’);
Es decir, estamos ante una ecuación algebraica con dos raı́ces reales y dos imaginarias. Las
reales parecen que toman el mismo valor, pero no podemos asegurarlo.
Ejemplo 3.14.6. Dado que cualquier ecuación algebraica P (x) = 0 tiene las mismas raı́ces
que la formada por el opuesto de P (x): −P (x) = 0, ¿significa eso que los polinomios P (x) y
114 MAPLE Walter Arriaga Delgado
y sabemos que las raı́ces de ambas ecuaciones son las mismas (una ecuación algebraica no
varı́a si multiplicamos o dividimos la misma por un número distinto de cero).
Consideremos el polinomio asociado a una de ellas:
400
y
200
–4 –3 –2 –1 0 1 2 3 4
x
–200
–400
p
-p
Observamos que ambas gráficas sólo coinciden en las raı́ces de ambas, siendo simétricas
respecto del eje OX.
Walter Arriaga Delgado MAPLE 115
Ejemplo 3.14.7. Defina una ecuación algebraica que tenga las siguientes raı́ces:
1, −2, π, 3 + 7i, 3 − 7i
Solución:
Si la ecuación es en la incógnita x, ésta se obtendrá haciendo:
Trabajando en MAPLE:
> p:=expand((x-1)*(x+2)*(x-Pi)*(x-(3+7*I))*(x-(3-7*I)));
500
x
–3 –2 –1 1 2 3 4
–500
–1000
–1500
–2000
En ella observamos que -2,1 y algo más de 3 son raı́ces de la correspondiente ecuación
algebraica, lo cual concuerda con el enunciado del ejemplo.
Por último, si resolvemos de forma algebraica la ecuación resultante, tenemos:
> solve(p,{x});
Con ello el lector puede observar la potencia de los programas de cálculo simbólico.
116 MAPLE Walter Arriaga Delgado
4
Objetivos:
z Adquirir habilidades en el manejo de las salidas gráficas, un auténtico mundo en sı́ mis-
mo, y aprender a manipular dibujos en 2D y 3D, realizar animaciones en 2D y 3D, ex-
portar gráficas, etc.
4.1. Introducción
La visualización de resultados es una de las capacidades más utilizadas del álgebra com-
putacional. Poder ver en gráficos los resultados de expresiones de una o dos variables ayuda
mucho a entender los resultados. En cuanto a gráficos, Maple dispone de una gran variedad de
comandos. Para representar gráficamente una expresión puede utilizarse el menú contextual
o introducir la función correspondiente en la lı́nea de comandos.
El concepto básico de todo comando gráfico de Maple es representar una expresión de una
o dos variables en un determinado rango de éstas.
Al ejecutar un comando de dibujo, la gráfica correspondiente queda insertada en la hoja
de Maple, como si se tratara de la salida de cualquier otro comando. Basta con clicar sobre la
gráfica para que ésta quede seleccionada y aparezcan unos botones adicionales en la barra de
herramientas.
Estos botones permiten modificar las caracterı́sticas del dibujo. Por ejemplo, puede hacerse
que la función aparezca representada con trazo continuo o por medio puntos, se pueden dibujar
117
118 MAPLE Walter Arriaga Delgado
ejes de distinto tipo, y se puede obligar a que la escala sea la misma en ambos ejes. Asimismo,
Maple devuelve la posición (x, y) de cualquier punto clicando sobre la gráfica.
Las funciones que a continuación se presentan son de uso frecuente, entre éstas funciones
elementales, se consideran las siguientes:
Funciones elementales
2.5
1.5
–10 –8 –6 –4 –2 0 2 4 6 8 10
Walter Arriaga Delgado MAPLE 119
y 2
–2 –1 1 2 3 4
x
–1
–2
y 2
–2 –1 1 2 3 4
x
–1
–2
Nota: Si queremos graficar x = c, la función constante representada por una recta vertical,
hacemos:
> l1:=[[2,-20],[2,20]];
l1 := [[2, −20], [2, 20]]
> plot(l1,x=-2..5,style=line);
20
10
–2 –1 1 2 3 4 5
x
–10
–20
120 MAPLE Walter Arriaga Delgado
f := x → x
> plot(f);
10
–10 –8 –6 –4 –2 2 4 6 8 10
–5
–10
en forma directa:
> plot(x,x=-3..3,y=-4..4);
14
12
10
y 8
6
4
2
–4 –2 0 2 4 6 8
–2 x
–4
y 3
–4 –2 2 4
x
–1
y 2
0 2 4 6 8 10
x
y 2
–2 –1 1 2 3 4
x
–1
–2
y 2
–2 –1 1 2 3 4
x
–1
–2
y
2
–4 –2 0 2 4
x
–2
–4
y 4
–3 –2 –1 1 2 3
x
–2
–4
–6
6
y
4
–2 –1 1 2
x
–2
–4
y
2
–4 –2 0 2 4
x
–2
–4
> plot(3/(1+x^2),x=-5..5,y=-1..4);
124 MAPLE Walter Arriaga Delgado
y 2
–4 –2 0 2 4
x
–1
y 4
–4 –3 –2 –1 1 2 3 4
x
Grafiquemos: f (x) = ex
> plot(exp(x),x=-3..3,y=-1..8);
y 4
–3 –2 –1 1 2 3
x
> plot(exp(1)^x,x=-3..3,y=-1..8);
Walter Arriaga Delgado MAPLE 125
y 2
x
1 2 3 4 5
0
–2
–4
0.5
x
1 2 3 4 5
0
–0.5
y –1
–1.5
–2
Grafiquemos: f (x) = ln x
> plot(ln(x),x=0..5,y=-4..2);
1
x
1 2 3 4 5
0
–1
y –2
–3
–4
126 MAPLE Walter Arriaga Delgado
y
0.5
–10 –5 0 5 10
x
–0.5
–1
Grafiquemos y = cos x
> plot(cos(x),x=-4*Pi..4*Pi,y=-1.2..1.2);
y
0.5
–10 –5 0 5 10
x
–0.5
–1
Grafiquemos y = tan x
> plot(tan(x),x=-3*Pi..3*Pi,y=-5..5,discont=true);
y
2
–8 –6 –4 –2 0 2 4 6 8
x
–2
–4
Walter Arriaga Delgado MAPLE 127
Grafiquemos y = cot x
> plot(cot(x),x=-3*Pi..3*Pi,y=-5..5,discont=true);
y
2
–8 –6 –4 –2 0 2 4 6 8
x
–2
–4
Grafiquemos y = sec x
> plot(sec(x),x=-3*Pi..3*Pi,y=-5..5,discont=true);
y
2
–8 –6 –4 –2 0 2 4 6 8
x
–2
–4
Grafiquemos y = csc x
> plot(csc(x),x=-3*Pi..3*Pi,y=-5..5,discont=true);
y
2
–8 –6 –4 –2 0 2 4 6 8
x
–2
–4
y 1
–1
–2
–1 –0.5 0.5 1
–2
–4
–6
2
y
–1 –0.5 0.5 1
–2
–4
–6
Grafiquemos y = arctan x
> plot(arctan(x),x=-4..4,y=-2..2);
y 1
–4 –3 –2 –1 0 1 2 3 4
x
–1
–2
Grafiquemos y = arccotx
> plot(arccot(x),x=-4..4,y=0..4);
y 2
–4 –3 –2 –1 0 1 2 3 4
x
Grafiquemos y = arcsecx
> plot(arcsec(x),x=-4..4,y=0..3);
130 MAPLE Walter Arriaga Delgado
3
2.5
y 1.5
0.5
–4 –3 –2 –1 0 1 2 3 4
x
Grafiquemos y = arccscx
> plot(arccsc(x),x=-4..4,y=-2..2);
2
y 1
–4 –3 –2 –1 0 1 2 3 4
x
–1
–2
–4 –2 0 2 4
–2 x
–4
–6
–8
–10
Grafiquemos y = coshx
> plot(cosh(x),x=-5..5,y=0..10);
Walter Arriaga Delgado MAPLE 131
10
6
y
4
–4 –2 0 2 4
x
Grafiquemos y = tanhx
> plot(tanh(x),x=-5..5,y=-2..2);
y 1
–4 –2 0 2 4
x
–1
–2
Grafiquemos y = cothx
> plot(coth(x),x=-5..5,y=-10..10,discont=true);
10
8
6
y
4
2
–4 –2 0 2 4
–2 x
–4
–6
–8
–10
Grafiquemos y = sechx
> plot(sech(x),x=-5..5,y=0..2);
132 MAPLE Walter Arriaga Delgado
2
1.8
1.6
1.4
1.2
y 1
0.8
0.6
0.4
0.2
–4 –2 0 2 4
x
Grafiquemos y = cschx
> plot(csch(x),x=-4..4,y=-10..10,discont=true);
10
8
6
y
4
2
–4 –3 –2 –1 0 1 2 3 4
–2 x
–4
–6
–8
–10
2
y
1
–4 –2 0 2 4
x
–1
–2
–3
Grafiquemos y = arccoshx
> plot(arccosh(x),x=-1..15,y=0..4);
Walter Arriaga Delgado MAPLE 133
4
y 2
0 2 4 6 8 10 12 14
x
Grafiquemos y = arctanhx
> plot(arctanh(x),x=-2..2,y=-3..3);
2
y
1
–2 –1 0 1 2
x
–1
–2
–3
Grafiquemos y = arccothx
> plot(arccoth(x),x=-10..10,y=-3..3);
2
y
1
–10 –8 –6 –4 –2 0 2 4 6 8 10
x
–1
–2
–3
Grafiquemos y = arcsechx
> plot(arcsech(x),x=0..1.2,y=0..6);
134 MAPLE Walter Arriaga Delgado
6
y 3
Grafiquemos y = arccschx
> plot(arccsch(x),x=-7..7,y=-5..5,discont=true);
y
2
–6 –4 –2 0 2 4 6
x
–2
–4
> f(-2);
16
> f:=x->piecewise(x<=0,x-1,x>0,x^2);
f := x → piecewise(x ≤ 0, x − 1, 0 < x, x2 )
> f(-1),f(0),f(2);
−2, −1, 4
Walter Arriaga Delgado MAPLE 135
> subs(x=a-2,x^2-2*x+3);
(a − 2)2 − 2a + 7
Con el conjunto de las funciones pueden definirse las operaciones elementales de suma,
resta, multiplicación, división y composición, representadas respectivamente por los sı́mbolos:
suma +
resta −
multiplicación ∗
división /
composición @
> g:=x->3*x+7;
g := x → 3x + 7
> s:=f+g;
s := f + g
> s(x);
x3 + 5x + 6
136 MAPLE Walter Arriaga Delgado
> r:=f-g;
r := f − g
> r(x);
x3 − x − 8
> p:=f*g;
p := f g
> p(x);
(x3 + 2x − 1)(3x + 7)
> d:=f/g;
f
d :=
g
> d(x);
x3 + 2x − 1
3x + 7
> quo(f(x),g(x),x);
1 2 7 67
x − x+
3 9 27
> rem(f(x),g(x),x);
−496
27
> c1:=f@g;
c1 := f @g
> c1(x);
(3x + 7)3 + 6x + 13
> c2:=g@f;
c2 := g@f
> c2(x);
3x3 + 6x + 4
Walter Arriaga Delgado MAPLE 137
si queremos graficar el último resultado obtenido podemos hacerlo de dos formas diferentes:
4000
2000
–10 –8 –6 –4 –2 2 4 x 6 8 10
–2000
–4000
Curve 1
200
y
100
–4 –2 0 2 4
x
–100
–200
luego
> h:=(f@@3);
h := f (3)
138 MAPLE Walter Arriaga Delgado
> g:=(f@@5);
g := f (5)
> h(x);
> g(x);
luego
> h(Pi/2);
cos(3)
−,9899924966
> g(Pi/2);
−,9828142662
–2 –1 1 2
–1
–2
> plot([[-3,-5],[-1,0],[0,-1],[1,3],[2,0],[1,-4],[1,0],[-3,-5]],color=blue);
Walter Arriaga Delgado MAPLE 139
–3 –2 –1 1 2
0
–2
–4
manual
automatic
gold
manual
white automatic
green manual
automatic
maroon
manual
automatic
a) f (x) = x2 − 2x + 5; a=2
140 MAPLE Walter Arriaga Delgado
√ 1
b) f (x) = 2x2 + 1; a = −
3
|x| , x 6= 0
c) f (x) = x ; a = −2
1
, x=0
x4 − 1
d) f (x) = ; a=0
1 − x5
x3 − 3x2 + 2x − 1
e) f (x) = ; a=1
x2 − 5x + 1
a) f (x) d) f (a + 1) g) f (a2 + b2 )
f (a + 2) − f (1)
b) f (a) e) f (a − 2) h)
a−3
f (a + 2) − f (2)
c) f (10) f) f (x3 + x − 1) i)
a−2
q 3
p
3. Sea f (x) = (1 + x) 6 (1 + x2 ) , hallar f (99) + f (19)
√
4. Dadas las funciones: f (x) = x2 + 1, g(x) = x − 1 y h(x) = cos x
hallar las siguientes operaciones
f +g f −h f.g.h g◦h
f +h g−h f ◦g h◦g
g+h f.g g◦f f ◦g◦h
f +g+h f.h f ◦h f ◦f
f −g g.h h◦f f ◦f ◦f
√
6. Dadas las funciones f (x) = x y g(x) = x2 . Hallar:
f ◦g f ◦f f ◦g◦f
g◦f g◦g g◦f ◦g
z Barra del contexto para las gráficas de dos dimensiones: La barra del contexto
para las gráficas de dos dimensiones presenta las siguientes descripciones:
7. Cambia el estilo de los ejes por un marco en la parte inferior izquierda (Framed).
Figura 4.2: Barra del contexto para las gráficas de dos dimensiones
z Legend: Se usa para asignarle un nombre a la gráfica de una función. Haciendo clic en el
gráfico se activa una ventana en el menú con el nombre Legend y se elige la opcion Edit
Legend, luego aparece otra ventana con el nombre legend labels, y se teclea el nombre
en la fila de Label. Vea la figura (4.3).
Walter Arriaga Delgado MAPLE 143
1. f (x) = x2 − 3
> plot(x^2-3,x=-4..4);
12
10
8
6
4
2
–4 –3 –2 –1 0 1 2 3 4
–2 x
Curve_1
f1 (x) = x2
2. Grafiquemos: f2 (x) = ex > plot({x^2,exp(x),x},x=-3..3,y=-3..10);
f3 (x) = x
10
8
6
y
4
2
–3 –2 –1 1 x 2 3
–2
Curve_1
Curve_2
Curve_3
144 MAPLE Walter Arriaga Delgado
10
8
6
y
4
2
–3 –2 –1 1 x 2 3
–2
parÆbola
exponencial
identidad
0.5
–3 –2 –1 1 2 3
x
–0.5
–1
z Title: Sirve para ponerle un nombre a la función al igual que Legend. El nombre debe
ir entre apóstrofes.
1
Grafiquemos: f (x) = x sen
x
> plot(x*sin(1/x),x=-1..1,color=magenta,title=’función_1’);
funcin_1
0.8
0.6
0.4
0.2
funcin_2
8
–2 –1 1 2 3 4
x
f1 (x) = x
Grafiquemos: f2 (x) = −x
f3 (x) = x2
> plot([x,-x,x^2],x=-3..3,color=[red,blue,green]);
8
6
4
2
–3 –2 –1 0 1 2 3
x
–2
Curve_1
Curve_2
Curve_3
f := x → x − floor(x)
> plot(f(x),x=-3..3,y=0..1.5,discont=true);
146 MAPLE Walter Arriaga Delgado
1.4
1.2
y 0.8
0.6
0.4
0.2
–3 –2 –1 0 1 2 3
x
f1 (x) = x3
Grafiquemos:
f (x) = x1/3
2
> plot({x^3,x^(1/3)},x=0..4,y=0..4);
y 2
0 1 2 3 4
x
Curve_1
Curve_2
Grafiquemos: f (x) = x3 − x
> plot(x^3-x,x=-2..2,title=’función_cúbica’);
funcin_cœbica
6
–2 –1 1 2
x
–2
–4
–6
1
Grafiquemos: f (x) =
x2
−1
> plot(1/(x^2-1),x=-5..5,y=-20..20,discont=true);
Walter Arriaga Delgado MAPLE 147
y
2
–4 –2 0 2 4
x
–2
–4
1
0.5
–10 –8 –6 –4 –2 0 2 4 x 6 8 10
–0.5
–1
Curve 1
Pruebe Ud. mismo que sucede al ejecutar cada una de éstas opciones.
Por ejemplo:
148 MAPLE Walter Arriaga Delgado
• la opción Style − Symbol − Cross nos produce una grafica con el estilo +
• la opción Style − Symbol − Circle nos produce una grafica con el estilo ◦
2.5
1.5
0.5
–6 –4 –2 0 2 4 6
> plots[polarplot](2*t,t=-4*Pi..4*Pi);
15
10
5
–20 –10 10 20
–5
–10
–15
–20
> plots[polarplot](2*t,t=-2*Pi^3..2*Pi^3);
100
50
–50
–100
Walter Arriaga Delgado MAPLE 149
> polarplot([cos(t),sin(t),t=0..4*Pi],color=navy);
0.4
0.2
–1 –0.5 0 0.5 1
–0.2
–0.4
0.5
–1 –0.5 0 0.5 1
–0.5
–1
> plot([sin(t),cos(t),t=0..2*Pi],scaling=constrained);
0.5
–1 –0.5 0 0.5 1
–0.5
–1
2
y
1
–4 –2 2 4
–1 x
–2
–3
> with(Student[Calculus1]):
> InversePlot(cos(x),x=-3*Pi/2..3*Pi/2);
The Inverse of
f(x) = cos(x)
4
2
–4 –2 0 2x 4
–2
–4
f(x)
The inverse of f(x)
> InversePlot(tan(x),x=-7..7);
Walter Arriaga Delgado MAPLE 151
The Inverse of
f(x) = tan(x)
6
4
2
–6 –4 –2 0 2
–2 x4 6
–4
–6
f(x)
The inverse of f(x)
10
y 5
–10 –5 0 5 10
x
–5
–10
Solución
Seguiremos los siguientes pasos:
1o Definimos la función
> f:=proc(x)
> if x<-5 then x+3
> elif (-5<=x and x<=5) then sqrt(25-x^2)
> else 3-x
152 MAPLE Walter Arriaga Delgado
> fi:
> end:
–10 –5 5 10
–5
sen x , si x < −π
Ejemplo 4.4.4. Graficar h(x) = cos x , si −π ≤x≤π
sen x
, si x > π
>h:=proc(x) if x<-Pi then sin(x) elif (x>=-Pi) and (x<=Pi) then cos(x) else sin(x) end if
end proc;
h := proc(x) if x < −π then sen(x) elif − π <= x and x <= π then cos(x) else sen(x)
end if end proc
> plot(h,-2*Pi..2*Pi,discont=true,color=magenta,tickmarks=[4,3]);
1
–6 –4 –2 2 4 6
–1
−x , si x < 0
Graficar h(x) = x , si 0 < x < 4
x + 8
, si x > 4
Walter Arriaga Delgado MAPLE 153
> w:=proc(x) if x<0 then -x elif (x>0) and (x<4) then x else -x+8 end if end proc;
w := proc(x) if x < 0 then − x elif 0 < x and x < 4 then x else − x + 8 end if end proc
> plot(w,-5..6);
–4 –2 2 4 6
z piecewise: Esta opción sirve para graficar funciones con varias reglas de corre-
spondencia.
Ejemplo 4.4.5.
−x , si x < −1
x2
, si −1≤x≤1
Graficar f (x) =
x , si 1<x<3
sen x
, si x>3
> with(plots):
> f:=piecewise(x<-1,-x,x>=-1 and x<=1,x^2,x>1 and x<3,x,x>3,sin(x));
−x x < −1
x2
−1 − x ≤ 0 and x − 1 ≤ 0
f :=
x −x < −1 and x < 3
sen x
3<x
> plot(f,x=-3..5,discont=true);
154 MAPLE Walter Arriaga Delgado
–3 –2 –1 0 1 2 3 4 5
x
–1
[−4, 16]
[−3,2, 10,24]
[−2,4, 5,76]
[−1,6, 2,56]
[−0,8, 0,64]
[0., 0.]
[0,8, 0,64]
[1,6, 2,56]
[2,4, 5,76]
[3,2, 10,24]
[4,0, 16,00]
Seleccionar todos los elementos resultantes anteriores, hacer anticlic, y elegir la opción
conversions y luego seleccionar make in to List, aparecerá:
> R1 := [[-4, 16], [-3.2, 10.24], [-2.4, 5.76], [-1.6, 2.56], [-.8, .64], [0., 0.], [.8, .64], [1.6,
2.56], [2.4, 5.76], [3.2, 10.24], [4.0, 16.00]];
R1 := [[−4, 16], [−3,2, 10,24], [−2,4, 5,76], [−1,6, 2,56], [−,8, ,64], [0., 0.], [,8, ,64],
[1,6, 2,56], [2,4, 5,76], [3,2, 10,24], [4,0, 16,00]]
Walter Arriaga Delgado MAPLE 155
> R2:=convert(R1,set);
R1 := {[−4, 16], [−3,2, 10,24], [−2,4, 5,76], [−1,6, 2,56], [−,8, ,64], [0., 0.], [,8, ,64],
[1,6, 2,56], [2,4, 5,76], [3,2, 10,24], [4,0, 16,00]}
> plots[pointplot](R2);
16
14
12
10
8
6
4
2
–4 –2 0 2 4
> plot(F(x),x);
100
80
60
40
20
–10 –8 –6 –4 –2 0 2 4 6 8 10
x
Ejemplo 4.4.6.
156 MAPLE Walter Arriaga Delgado
x+y > 0
Graficar x−y ≥ 1
y
= 1
> with(plots):
> inequal({x+y>0,x-y<=1,y=2},x=-3..3,y=-3..3,optionsfeasible= (color=cyan),
optionsopen=(color=blue,thickness=2),optionsclosed=(color=orange,thickness=3),
optionsexcluded=(color=magenta));
–3 –2 –1 1 2 3
–1
–2
–3
0.5
–0.5
–1
> plot(sin(x),x=-2*Pi..2*Pi,filled=true,color=aquamarine);
Walter Arriaga Delgado MAPLE 157
0.5
–6 –4 –2 2 4 6
x
–0.5
–1
color : aquamarine, black, blue, navy, coral, cyan, browon, gold, green, gray, grey, khaki,
magenta, maroon, orange, pink, plum, red, sienna, tan, turquoise, violet, wheat, white,
yellow.
Symbol : Cuando el estilo es punto esto es (style=point), nosotros podemos hacer que
el punto asuma los siguientes simbolos: box, circle, diamond, cross
0.5
–6 –4 –2 2 4 6
x
–0.5
–1
> plot([sin(2*x),cos(x),x=0..2*Pi],color=magenta,title=’función_3’);
158 MAPLE Walter Arriaga Delgado
funcin_3
1
0.5
–1 –0.5 0 0.5 1
–0.5
–1
> plot(x^3+2*x^2-3*x-1,x=-3..3,axes=FRAME,style=POINT);
35
30
25
20
15
10
0
–3 –2 –1 0 1 2 3
x
0.5
eje y 0
–0.5
–1
–6 –4 –2 0 2 4 6
eje x
0.5
–6 –4 –2 2 4 6
x
–0.5
–1
z display Esta opción se usa para trazar dos o más funciones que tienen dominios difer-
entes en los mismos ejes de coordenadas.
Para tal efecto usamos el comando plots.
> with(plots):
Ejemplo 4.4.7.
> F:=plot(cos(x),x=-Pi..Pi,y=-Pi..Pi,style=line):
> G:=plot(sin(x),x=-Pi..Pi,y=-Pi..Pi,style=line):
> display(F,G,axes=boxed,scaling=constrained,title=‘seno y coseno‘);
seno y coseno
3
y 0
–1
–2
–3
–3 –2 –1 0 1 2 3
x
2. Graficar y 2 = n2 − (x − n2 ), −5 ≤ n ≤ 5
> a1:=plot({seq(sqrt(i^2-(x-i)^2),i=-5..5)},x=-10..10,color=blue):
> a2:=plot({seq(-sqrt(i^2-(x-i)^2),i=-5..5)},x=-10..10,color=blue):
> display(a| |(1..2),scaling=constrained);
160 MAPLE Walter Arriaga Delgado
–10 –8 –6 –4 –2 2 4 6 8 10
–2 x
–4
y 2 = n2 − (x − n)2
−5 ≤ n ≤ 5
3. Graficar
(y − n)2 = n2 − x2
−5 ≤ n ≤ 5
> a1:=plot({seq(sqrt(i^2-(x-i)^2),i=-5..5)},x=-10..10,color=blue):
> a2:=plot({seq(-sqrt(i^2-(x-i)^2),i=-5..5)},x=-10..10,color=blue):
> a3:=plot({seq(i+sqrt(i^2-x^2),i=-5..5)},x=-10..10,color=blue):
> a4:=plot({seq(i-sqrt(i^2-x^2),i=-5..5)},x=-10..10,color=blue):
> display(a| |(1..4),scaling=constrained);
10
–10 –8 –6 –4 –2 2 4 6 8 10
x
–5
–10
4. Dada la función
> f:=x->x^2:
> A:=seq([0.5*i,f(0.5*i)],i=0..4);
A := [0., f (0.)], [,5, f (,5)], [1,0, f (1,0)], [1,5, f (1,5)], [2,0, f (2,0)]
> plot([A],style=point);
Walter Arriaga Delgado MAPLE 161
0 0.5 1 1.5 2
Ejemplo 4.4.8.
30
25
20
15
10
–2 –1 1 2 3 4 5 6
x
162 MAPLE Walter Arriaga Delgado
0.5
–3 –2 –1 0 1 2 3
x
–0.5
–1
–2 –1 1 2 3 4 5
x
–1
> with(plots):
> textplot([1,2,‘walter arriaga‘]);
3
2.5
2 walter arriaga
1.5
1
0 0.5 1 1.5 2
2.5
el 2
punto A el punto B
1.5
1
1 1.5 2 2.5 3
> a1:=plot(sin(x),x=-2*Pi..2*Pi):
> a2:=textplot([2,1,‘maximo relativo‘],align={ABOVE,RIGHT}):
> a3:=textplot([-2,-1,‘minimo relativo‘],align={BELOW,LEFT}):
> display({a1,a2,a3});
1 maximo relativo
0.5
–6 –4 –2 2 4 6
x
–0.5
minimo relativo –1
164 MAPLE Walter Arriaga Delgado
> a4:=plot(x^2,x=-5..5,y=-2..10):
> a5:=plot(4-x^2,x=-5..5,y=-2..10):
> a6:=textplot([0,4,‘maximo absoluto‘],align=ABOVE,RIGHT,color=magenta):
> a7:=textplot([0,0,‘minimo absoluto‘],align=BELOW,LEFT,color=blue):
> display({a4,a5,a6,a7},axes=none);
maximo absoluto
minimo absoluto
0.5
0 2 4 6 8 10 12
x
–0.5
–1
√
Gráfica de la función y = x . sen 60x
> plot(sqrt(x)*sin(60*x),x=0..3*Pi,numpoints=60);
Walter Arriaga Delgado MAPLE 165
0 2 4 6 8
x
–1
–2
–3
> plot(f(x),x=0..4);
3
0 1 2 3 4
x
–1
podemos definir otras funciones en términos de f , por ejemplo g(x) = f (x − 1), h(x) =
f (x − 2), cuyas gráficas son:
> g:=x-> f(x-1);
g := x− > f (x − 1)
2
y
0 1 2 3 4 5 6
x
–1
166 MAPLE Walter Arriaga Delgado
y
2
–3 –2 –1 0 1 2 3
x
–2
–4
Graficando la Hipérbola x2 − y 2 = 2
> darkgrey := COLOR(RGB,.4,.4,.4):
> darkgreen := COLOR(RGB,0,.6,0):
> plots[implicitplot]([x^2-y^2=2,y=x,y=-x],x=-3..3,y=-3..3, color
=[darkgreen,darkgrey,darkgrey],linestyle=[1,4,4]);
2
y
1
–3 –2 –1 0 1 2 3
x
–1
–2
–3
–2 –1 0 1 2 3 4
–1
–2
–3
Diseñando figura 02
> with(plots):
> rt := evalf(sqrt(0.5)):
> pA := [-1,0]:
> pB := [1,0]:
> pD := [rt,rt]:
> pE := [rt,-rt]:
168 MAPLE Walter Arriaga Delgado
> pO := [0,0]:
> lines := plot([[pA,pD],[pO,pD],[pO,pE],[pB,pD], [pB,pE],[pA,pB],[pD,pE]],color=black):
> crcle := implicitplot(x^2+y^2=1,x=-1..1,y=-1..1):
> txt := textplot([[-1.08,0.03,‘A‘],[1.08,0.03,‘B‘], [0.77,0.77,‘D‘],[0.77,-0.74,‘E‘], [-0.07,-
0.05,‘O‘], [0.63,-0.05,‘C‘]]):
> display([crcle,lines,txt],axes=NONE, scaling=CONSTRAINED,tickmarks=[0,0], la-
bels=[“,“]);
A B
O C
Diseñando figura 03
>p1 := plots[polygonplot]([[0,0],[1,0],[1,-1],[0,-1]],color=COLOR(RGB,1,0,0)):
> p2 := plots[polygonplot]([[0,-1],[1,-1],[1,-2],[0,-2]],color=COLOR(RGB,0,1,0)):
> p3 := plots[polygonplot]([[0,-2],[1,-2],[1,-3],[0,-3]],color=COLOR(RGB,0,0,1)):
> p4 := plots[polygonplot]([[0,-3],[1,-3],[1,-4],[0,-4]],color=COLOR(RGB,1,1,0)):
> p5 := plots[polygonplot]([[0,-4],[1,-4],[1,-5],[0,-5]],color=COLOR(RGB,0,1,1)):
> p6 := plots[polygonplot]([[0,-5],[1,-5],[1,-6],[0,-6]],color=COLOR(RGB,1,0,1)):
> p7 := plots[polygonplot]([[0,-6],[1,-6],[1,-7],[0,-7]],color=COLOR(RGB,1,.5,0)):
> p8 := plots[polygonplot]([[0,-7],[1,-7],[1,-8],[0,-8]],color=COLOR(RGB,.5,1,0)):
> p9 := plots[polygonplot]([[0,-8],[1,-8],[1,-9],[0,-9]],color=COLOR(RGB,.5,0,1)):
> t1 := plots[textplot] ([[1.2,-.5,‘COLOUR(RGB,1,0,0) = red‘], [1.2,-1.5,‘COLOUR
(RGB,0,1,0) = green‘],[1.2,-2.5,‘COLOUR(RGB,0,0,1) = blue‘],[1.2,-3.5,‘COLOUR
(RGB,1,1,0) = yellow‘], [1.2,-4.5,‘COLOUR(RGB,0,1,1) = cyan‘], [1.2,-5.5,‘COLOUR
(RGB,1,0,1) = magenta‘], [1.2,-6.5,‘COLOUR(RGB,1,.5,0) = orange‘], [1.2,-7.5,
‘COLOUR(RGB,.5,1,0) = chartreuse‘], [1.2,-8.5,‘COLOUR(RGB,.5,0,1) = purple‘]],color
=black,align=RIGHT):
> plots[display]([p1,p2,p2,p3,p4,p5,p6,p7,p8,p9,t1],axes=none);
Walter Arriaga Delgado MAPLE 169
COLOUR(RGB,1,0,0) = red
COLOUR(RGB,0,1,0) = green
COLOUR(RGB,0,0,1) = blue
COLOUR(RGB,1,1,0) = yellow
COLOUR(RGB,0,1,1) = cyan
COLOUR(RGB,1,0,1) = magenta
COLOUR(RGB,1,.5,0) = orange
COLOUR(RGB,.5,1,0) = chartreuse
COLOUR(RGB,.5,0,1) = purple
Programa 4.4.1. Diseñemos un programa que nos permita dibujar lineas rectas en el plano
o en el espacio.
> ALE:=proc(A,B,grosor,estilo,acolor)
> if nops(A)=3 and nops(B)=3 then
> plots[polygonplot3d]([A,B],style=LINE,linestyle=estilo,thickness=grosor,color=acolor)
> elif nops(A)=2 and nops(B)=2 then
> plots[polygonplot]([A,B],style=LINE,linestyle=estilo,thickness=grosor,color=acolor)
> else RETURN(‘dato malo‘)
> end if
> end proc:
> ALE([1,2],[2,1],3,2,magenta);
1.8
1.6
1.4
1.2
1
1 1.2 1.4 1.6 1.8 2
Programa 4.4.2.
170 MAPLE Walter Arriaga Delgado
6
5
4
3
2
1
–6 –5 –4 –3 –2 1 2 3 4 5 6
–1
–2
–3
–4
–5
–6
Esta orden crea un bloque de dimensiones dim = [−2π, 2π]×[−2π, 2π] y crea una partición
interna, part=0.8. El número ejes=10 representael tamaño de impresión de los números en los
ejes. Finalmente colorejes =orange agrega el color anaranjado a los ejes.
6
5
4
y 3
2
1
–6 –5 –4 –3 –2 0 1 2 3 4 5 6
–1 x
–2
–3
–4
–5
–6
Graficar las siguientes funciones usando las opciones de legend, color, title, discont, axes,
styles, symbol, texplot, constrained, display, piecewise, etc. ingresando el dominio y el rango
que Ud. crea conveniente.
√
1. f (x) = x+2
√
2. f (x) = x2 + 2x − 8
x − |x|
3. f (x) =
x
x3 − 9x2 + 23x − 15
4. g(x) =
x−3
√
5. f (x) = −3 + x2 − 4x + 5
√
6. f (x) = | x|
p
7. f (x) = |x|
√
8. f (x) = J xK
p
9. f (x) = JxK
1
13. f (x) =
|x − 1| − |x − 2|
p
14. f (x) = |x + 3||x − 1|
172 MAPLE Walter Arriaga Delgado
4
15. f (x) = 3 −
x − sgn(x2 − 4)
x4 − 1
16. f (x) =
16 − x4
17. y = 2 sen(3x + 5)
x−1
18. y = − cos
2
π
19. y = 2 sen x −
3
20. y = x2 − 2x
x+1
21. y = 2 log
2
22. y = | tan x|
23. y = | log x|
25. y = log(sen x)
√ √
27. y = 1 + sen 2x + 1 − sen 2x
1 | sen x| sen x
28. y = +
2 cos x | cos x|
1 − x2
30. y = arc cos
1 + x2
√
31. y = arc cos 1 − x2
√ √
33. y = 25 − x2 , y = − 25 − x2
x+3
xsgn , x ∈ h−3, 2i
41. f (x) = x−2
2
1 − x , x ∈ [2, 10i
4
2x − 1, x ∈ h−10, −1i
42. f (x) = 4x2 , x ∈ [−1, 0]
x + 4, x ∈ h0, 10i
√
x2 − 9, x ∈ h−5, −3]
43. f (x) = |x + 3| − 2, x ∈ h−3, 5]
x2 − 10x + 26, x ∈ h5, 7]
2
44. y =
2 − cos θ
45. r = 4 sen θ
46. r = cos θ + 2
2 θ
47. r = 9 sen +1
2
174 MAPLE Walter Arriaga Delgado
51. (x − 2)2 + y 2 = 4
x2 y 2
53. − =1
9 4
Gráfica de inecuaciones
x − y ≥ 4
54.
x − 2y > −y
x + y ≤ 1
55.
x + y ≥ −1
56. |x + y| ≤ 5
3y − 2x > 5
57. x + y > 5
x + 2y < 5
2|x|
58. y = , el eje X y las rectas x = −2 y x=1
1 + x2
59. y = 9 − x2 , y = x2 + 1
otra forma:
> f3:=(x,y)->(x^2-y^2)/(x^2+y^2):
> plot3d(f3(x,y),x=-2..2,y=-3..3);
Graficar z = f (x, y) = ex+y
> plot3d(exp(x+y),x=-2..2,y=-2..2);
Graficar z = sen(x2 + y 2 )
> smartplot3d(sin(x^2+y^2));
> plot3d([x*sin(x),x*cos(x),x*sin(y)],x=0..2*Pi,y=0..Pi);
176 MAPLE Walter Arriaga Delgado
> plot3d({x+y^2,-x-y^2},x=0..3,y=0..3);
p
25 − x2 − y 2
si (x, y) 6= 0
Graficar
0
si (x, y) = 0
> g:=proc(x,y)
> if (x,y) <> (0,0) then sqrt(25-x^2-y^2)
> else 0
> fi:
> end:
> plot3d(g(x,y),x=-4..4,y=-4..4);
178 MAPLE Walter Arriaga Delgado
piecewise
Esta opción sirve para graficar funciones con varias reglas de correspondencia.
Ejemplo 4.5.1.
1
2− 2 0 < x2 + y 2 < 1
x + y2
Graficar: f (x, y) = kx2 + y 2 k 1 ≤ x2 + y 2 ≤ 3
p
x2 + y 2 − 1 5 < x2 + y 2
> with(plots):
> f:=piecewise(0<x^2+y^2 and x^2+y^2<1,2-1/(x^2+y^2),1<=x^2+y^2 and
x^2+y^2<=3,floor(x^2+y^2),5<x^2+y^2,sqrt(x^2+y^2-1));
1
2− 2 −x2 − y 2 < 0 and x2 + y 2 < 1
x + y2
f := floor(x2 + y 2 ) 1 − x2 − y 2 ≤ 0 and x2 + y 2 − 3 ≤ 0
p
x2 + y 2 − 1 5 < x2 + y 2
Opciones auxiliares
display
Grafiquemos
> F:=plot3d(sin(x*y),x=-Pi..Pi,y=-Pi..Pi):
> G:=plot3d(x + y,x=-Pi..Pi,y=-Pi..Pi):
> H:=plot3d([2*sin(t)*cos(s),2*cos(t)*cos(s),2*sin(s)],s=0..Pi,t=-Pi..Pi):
> display(F,G,H);
texplot3d
Podemos establecer la alineación deseada para el texto vı́a la opción align = t, dónde t es
cualquiera de las opciones: BELOW, RIGHT, ABOVE, LEFT.
(0,0,0) un punto en 3d
Hemos visto que Maple maneja expresiones y funciones de manera intercambiable a ve-
ces y muy diferente en otras. Las funciones son un poco más complicadas de definir, pero
tienen muchas ventajas en algunos casos, como en la representación gráfica. Maple dispone
del comando unapply para convertir una expresión o fórmula en una función.
Ejemplo 4.5.2.
> expresion:=(a^2*x^3+b*exp(t)+c^3*sin(x))/(a*x^2+c*t);
a2 x3 + bet + c3 sin(x)
expresion :=
ax2 + ct
Usando el comando unapply debemos especificar como argumento las variables sobre las que
deseamos crear la función.
> f:=unapply(expresion,x,t);
a2 x3 + bet + c3 sin(x)
f := (x, t) →
ax2 + ct
> f(0,1);
be
c
> f(u,v);
a2 u3 + bev + c3 sin(u)
au2 + cv
Este tipo de conversión no puede hacerse directamente con el operador flecha. Por ejemplo,
definamos:
> g:=(x,t)− >expresion;
g := (x, t) → expresion
> g(u,v);
a2 x3 + bet + c3 sin(x)
ax2 + ct
Walter Arriaga Delgado MAPLE 181
a2 x3 + bet + c3 sin(x)
h := (x, y) →
ax2 + ct
> h(u,v);
a2 u3 + bev + c3 sin(u)
au2 + cv
El comando unapply puede resultar también útil cuando queremos crear una función que
sea la derivada de otra. Si intentamos hacerlo empleando el operador flecha obtenemos lo
siguiente:
> y:=4*x+cos(2*x);
y := 4x + cos(2x)
> f:=unapply(diff(y,x),x);
f := x → 4 − 2sin(2x)
> f(1);
4 − 2sin(2)
Ejemplo 4.5.3.
x
1 1−x x
Dada la función: f (x) = sen2 (cos(3πx)) + √ arcsen + . Hallar f ′ (1/2).
2 1+x 1−x
Solución
> f:=x->sin(cos(3*Pi*x))^2+1/sqrt(2)*arcsin((1-x)/(1+x))+(x/(1-x))^x:
182 MAPLE Walter Arriaga Delgado
> fprima:=unapply(diff(f(x),x),x):
> simplify(fprima(1/2));
4
3
Graficar las siguientes funciones usando las opciones de legend, color, title, discont, axes,
styles, symbol, texplot3d, constrained, display, piecewise, etc. ingresando el dominio y el rango
que Ud. crea conveniente.
p
1. z = 25 − x2 − y 2
1p
2. z = 36 − 4x2 − 9y 2
3
3. z = (x − 1)2 + (y − 1)2
4. z = (x − 1)2 − (y − 1)2
p p
5. z = 1 − x2 − y 2 , z = − 1 − x2 − y 2
√ p
6. z = 1 − x2 + 1 − y 2
y
7. z = arcsen
x
√ p
8. z = x2 − 4 + 4 − y 2
9. z = ln(x2 + y)
x−y
10. z = arctan
1 + x2 y 2
p
11. z = sen(x2 + y 2 )
rp z
12. z = x2 − y 2
q√ y
13. z = xy
14. z = 16 − x2 − y 2
Con el comando spacecurve graficar:
23. x2 + y 2 + z 2 = 25
24. x2 − y 2 + z 2 = 16
25. x2 + y 2 − z 2 = 0
26. x2 + y 2 − z 2 = 1
x2 y2 z2
27. − + + =1
16 25 9
x2 z 2 y2
28. + =
16 4 9
y2 − 4
30. x2 + z 2 =
4
31. x2 − y 2 − 2z 2 + 2x = 1
32. x2 + y 2 + z 2 = 6 , x2 − y 2 + z 2 = 4
33. 2x − 6y + 3z − 49 = 0 , x2 + y 2 + z 2 = 49
2
0<x+y <1
x − y
34. f (x, y) = sen(x2 + y 2 ) 1≤x+y ≤3
p
x2 + y 2 − 1
x+y >3
184 MAPLE Walter Arriaga Delgado
4.6. Animaciones
4.6.1. Introducción
Maple realiza animaciones con gran facilidad. En las animaciones se representa una función
que varı́a en el tiempo o con algún parámetro. Este parámetro es una nueva variable que hace
falta introducir. Las animaciones bidimensionales tienen una variable espacial y otra variable
temporal, y ambas son independientes. Para obtener una animación hay que definir los rangos
de éstas dos variables. Para realizar animaciones en 2 D se dispone de la función animate, en
la librarı́a plots.
Las animaciones de Maple quedan insertadas, al igual que las gráficas, en la hoja de Maple.
Si clicamos sobre ella, queda seleccionada y aparecen unos botones en la barra de herramientas,
junto con unos menús adicionales en la barra de menús.
Los botones son parecidos a los de un vı́deo.
Las animaciones tridimensionales se realizan con la función animate3d. Ahora, las vari-
ables espaciales independientes son dos y por eso hay que indicar el rango de tres variables
independientes, las dos espaciales y la temporal.
2. Exhibe el ángulo para theta en una gráfica de 3 D. Edita el número en ésta casilla para
cambiar el ángulo.
3. Exhibe el ángulo para phi en una gráfica de 3 D. Edita el número en ésta casilla para
cambiar el ángulo.
Los dos botones anteriores cambian la orientación de la figura.
0.5
–10 –8 –6 –4 –2 0 2 4 6 8 10
x
–0.5
–1
Luego se hace clic en la figura e inmediatamente aperecerá los botones de la figura (4.6) y
haciendo clic en el boton (5) aparecerá la animación.
Efectúe ahora las siguientes animaciones
> animate([sin(x*t),x,x=-4..4],t=1..4,numpoints=100,frames=100);
> animate([sin(x*t),x,x=-4..4],t=1..4,coords=polar,numpoints=100,frames=100);
> animate( [u*sin(t),u*cos(t),t=-Pi..Pi],u=1..8,view=[-8..8,-8..8]);
> animate( [u*t,t,t=1..8*Pi], u=1..4,coords=polar,frames=60, numpoints=100);
> animate({x-x^3/u,sin(u*x)},x=0..Pi/2,u=1..16,color=red);
> s:=t->100/(100+(t-Pi/2)^8): r:=t-> s(t)*(2-sin(7*t)-cos(30*t)/2):
> animate([u*r(t)/2,t,t=-Pi/2..3/2*Pi],u=1..2,numpoints=200,coords=polar,
axes=none,color=green);
el comando animatecurve crea una animación de la curva trazada de una función en dos
dimensiones
animatecurve(F, r,)
animatecurve(F, r,...)
Una llamada tı́pica a la función del animatecurve es animatecurve(F(x),x=a.. b), dónde
F es una función real en x o animatecurve(F,a..b), dónde F es un procedimiento en una sola
variable. En ambos casos a..b especifica el rango real horizontal en que el F se traza. Un rango
vertical puede especificarse vı́a la opción de vista.
animatecurve puede ser definido por with(plots) o with(plots,animatecurve).
Walter Arriaga Delgado MAPLE 187
0.5
–3 –2 –1 1 2 3
x
–0.5
–1
Las animaciones tridimensionales son aún más espectaculares, se realizan con la función
animate3d. Intervienen 3 variables: 2 variables espaciales independientes y una variable tem-
poral, además debemos indicar el rango de cada una de éstas variables.
Ejemplo 4.6.3.
188 MAPLE Walter Arriaga Delgado
Ejemplo 4.6.4.
GEOMETRIA
Es una parte de la matemática que estudia las figuras geométricas desde el punto de vista
de su forma, extensión y relaciones que guardan entre sı́, prescindiendo de la naturaleza y
propiedades de la sustancia que constituye los cuerpos.
El cuerpo ası́ considerado (en su forma y extensión), es el que se denomina cuerpo ge-
ométrico por tanto el objeto de la geometrı́a es el estudio de las propiedades de los cuerpos
geométricos, y se divide en Geometrı́a Plana o Planimetrı́a y Geometrı́a del Espacio o Estere-
ometrı́a. Euclides es considerado padre de la geometrı́a.
191
192 MAPLE Walter Arriaga Delgado
al conjunto unitario, toda figura se distingue de otra por su tamaño y forma. Un punto queda
perfectamente determinado por su posición en el espacio.
Las figuras geométricas se distinguen en: Lı́neas, superficies y sólidos.
Líneas
Linea recta
Linea quebrada
Linea curva
Linea mixta
Sólidos
Superficies
5.2.2. El punto
Definición 5.2.1. El punto es la mı́nima representación en geometrı́a. Una recta está con-
formada por un conjunto infinito de puntos que siguen una misma dirección e ilimitada en
ambos sentidos.
Para iniciarnos en Geometrı́a hay que conocer como trabaja Maple este elemento.
El comando para el punto es point cuyas coordenadas se escriben entre corchetes.
geometry[point] define un punto.
Orden de llamado
Walter Arriaga Delgado MAPLE 193
4.5
3.5
3
2 2.5 3 3.5 4
3.5
2.5
–2 –1 0 1 2 3
5.2.3. Segmentos
Definición 5.2.2. Es la porción de recta limitada por dos puntos llamados extremos.
A B
Una combinación convexa de dos puntos distintos P1 (x1 , y1 ) y P2 (x2 , y2 ) es cualquier punto
P3 (x3 , y3 ) tal que para algún a en el rango 0 ≤ a ≤ 1, tenemos x3 = ax1 + (1 − a)x2 y
y3 = ay1 + (1 − a)y2 .
Dado dos puntos distintos P 1 y P 2, el segmento de recta P 1P 2 es el conjunto de com-
binaciones convexas de P 1 y P 2. Llamaremos P 1 y P 2 a los puntos finales o extremos del
segmento P 1P 2.
Un segmento de recta seg se define por los dos punto finales P 1 y P 2. Sus dos puntos
extremos son P 1 y P 2.
Un segmento dirigido seg se define por los dos punto finales P 1 y P 2. La cola es P 1 y la
cabeza es P 2.
Para acceder a la información que relaciona a un segmento o segmento dirigido seg, usare-
mos las siguientes opciones de llamado:
La opción form(seg) devuelve la forma del objeto geométrico, es decir, segment2d si seg
es un segmento de recta, y dsegment2d si seg es un segmento dirigido.
La opción DefinedAs(seg) devuelve una lista de dos punto finales de seg si seg es un
segmento, y una lista de la cola y cabeza de seg si seg es un segmento dirigido.
> with(geometry):
Definamos dos puntos A(2, 3) y B(6, 5).
> point(A,2,3);point(B,6,5);
A
Definamos el segmento AB
> segment(AB,[A,B]);
AB
AB
> midpoint(M,A,B);
Luego calculemos las coordenadas del punto medio del segmento AB con la opción coodinates.
> coordinates(M);
[4, 4]
Observación:
Podemos representar más de dos segmentos en el plano XY de la siguiente manera:
> with(geometry):
Definamos el segmento AB.
> segment(AB,[point(A,-2,-1),point(B,3,7)]);
AB
CD
Definamos el segmento EF .
> segment(EF,[point(E,-3,1),point(F,7,5)]);
EF
B
C 6
F
4
–2 0 2 4 6
A
–2 D
5.2.4. Triángulos
Definición 5.2.3. Se llama triángulo a la figura formada por la reunión de los segmentos
determinados al unir tres puntos no colineales.
c
a
A C
b
Notación: ∆ABC = AB ∪ AC ∪ BC
Perı́metro: p=a+b+c
Clasificación:
Escaleno: No tiene lados congruentes
Isosceles: Tiene dos lados iguales.
Equilatero: Tiene sus tres lados iguales. Cada ángulo interior mide 60o .
Con el paquete geometry y el comando tenemos acceso a toda la información acerca de
triángulos.
geometry[triangle]- define un triángulo
200 MAPLE Walter Arriaga Delgado
Orden de llamado
triangle(T, [A, B, C], n)
triangle(T, [1, 2, 3], n)
triangle(T, [lado1, lado2, lado3])
triangle(T, [lado1, ’ángulo’=theta, lado3], n)
Parámetros
T : Nombre del triángulo.
A, B, C : Tres puntos.
1, 2, 3 : Tres lı́neas.
lado1, lado2, lado3 : Tres lados del triángulo.
lado1, ’ángulo’=theta, lado3 : El lado1 y el lado3 son los dos lados del triángulo, y
theta es el ángulo entre ellos.
N : (opcional) representa los nombres de los ejes horizontal
y vertical respectivamente.
Descripción
Un triángulo es un polı́gono que tiene tres lados. Un vértice de un triángulo es un punto en el
cual dos de los lados se encuentran.
Un triángulo T puede definirse de la siguiente manera:
Con tres puntos dados A, B, y C; con tres lı́neas dadas 1, 2, y 3; con los lados del triángulo;
con dos lados del triángulo y el ángulo entre ellos.
Para acceder a la información relacionada a un triángulo T, usemos las siguientes funciones
de llamado:
La opción form(T) devuelve la forma del objeto geométrico (es decir, triangle2d si T es
un triángulo bidimensional).
Ejemplo 5.2.1.
> with(geometry):
Definamos tres puntos A(1,0) , B(3,2) y C(5,1):
> point(A,1,0),point(B,3,2),point(C,5,1);
A, B, C
l1, l2, l3
> detail(T3);
name of the object: T3
form of the object: triangle2d
method to define the triangle: sides
the three sides of the triangle: [5,5,5]
> triangle(T4,[1,’angle’=Pi/4,1]);
T4
> method(T4);
angle
> DefinedAs(T4);
1
1, angle = π, 1
4
Walter Arriaga Delgado MAPLE 203
> detail(T4);
name of the object: T4
form of the object: triangle2d
method to define the triangle: angle
the three sides and the angle between them: [1,1,1/4*Pi]
Si queremos averiguar si los triángulos T1, T2, T3 y T4, son equiláteros usamos la opción
IsEquilateral
> IsEquilateral(T1);
f alse
> IsEquilateral(T2);
f alse
> IsEquilateral(T3);
true
> IsEquilateral(T4);
f alse
Si queremos averiguar si los triángulos T1, T2, T3 y T4, son triángulos rectángulos usamos
la opción IsRightTriangle.
> IsRightTriangle(T1);
f alse
> IsRightTriangle(T2);
f alse
> IsRightTriangle(T3);
true
> IsRightTriangle(T4);
f alse
Si queremos averiguar el área de los triángulos T1, T2, T3 y T4, usamos la opción area.
> area(T1),area(T2),area(T3),area(T4);
16 25 √ 1 √
3, , 3, 2
3 4 4
Ahora definamos el triángulo T5 mediante tres puntos: A(1, 2), B(3, 5) y C(2, 1).
> triangle(T5,[point(A,1,2),point(B,3,5),point(C,2,1)]);
T5
204 MAPLE Walter Arriaga Delgado
> draw(T5,printtext=true,axes=none);
B
> draw(T1,axes=normal,color=blue);
2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
01 2 3 4 5
> draw(T2,axes=normal,color=magenta,filled=true);
2
0 1 2 3 4
1. Mediana: Segmento que une un vértice con el punto medio del lado opuesto. Todo
triángulo tiene 3 medianas.
3. Bisectriz interior: Segmento que biseca un ángulo interior. Todo triángulo tiene 3
bisectrices interiores.
206 MAPLE Walter Arriaga Delgado
4. Bisectriz exterior: Segmento que biseca a un ángulo exterior. Todo triángulo tiene 3
bisectrices exteriores.
6. Ceviana: Segmento que une un vértice con un punto cualquiera del lado opuesto o de
su prolongación. Todo triángulo tiene 3 cevianas.
parámetros:
hA : nombre de la altura del triángulo ABC
A : vértice del triángulo ABC de donde parte la altura.
ABC : nombre del triángulo.
H : (opcional), nombre del punto a donde llega la altura.
Para una descripción detallada de la altura hA, use detail(hA).
Walter Arriaga Delgado MAPLE 207
parámetros:
mA : nombre de la mediana del triángulo ABC
A : vértice del triángulo ABC de donde parte la mediana.
ABC : nombre del triángulo.
M : (opcional), nombre del punto a donde llega la mediana.
Para una descripción detallada de la altura mA, use detail(mA).
parámetros:
H : nombre del ortocentro
g : nombre del triángulo
Para una descripción detallada del ortocentro H, use detail(H).
parámetros:
G : nombre del centroide o baricentro
g : nombre del triángulo
Para una descripción detallada del baricentro G, use detail(G).
parámetros:
T : nombre del triángulo
ic : nombre del incentro
’centername’=cn : (opcional) donde el cn es un nombre que denota el centro
del ic del incentro
Para una descripción detallada del ic del incentro, use detail(ic).
208 MAPLE Walter Arriaga Delgado
parámetros:
cc : nombre del circumcircle.
T : triángulo
’centername’=cn : (opcional) donde el cn es un nombre que denota el centro
del circuncentro
Para una descripción detallada del circuncentro cc, use detail(cc).
parámetros:
bA : nombre de la bisectriz del ángulo A del triángulo ABC.
A : vértice del triángulo ABC.
ABC : triángulo.
P : (opcional), intersección de la bisectriz y los lados opuestos.
Para una descripción detallada de la bisectriz bA, use detail(bA).
Ejemplo 5.2.2.
ABC
> orthocenter(ort,ABC);
ort
> ortocentro:=coordinates(ort);
1
ortocentro := 1,
3
> altitude(h1,A,ABC,H1);
h1
> DefinedAs(h1);
[A, H1]
Walter Arriaga Delgado MAPLE 209
> detail(h1);
name of the object : h1
f orm of the object : segment2d
the two ends of the segment : [[0, 0], [9/5, 3/5]]
> altitude(h2,B,ABC,H2);
h2
> DefinedAs(h2);
[B, H2]
> detail(h2);
name of the object : h2
f orm of the object : segment2d
the two ends of the segment : [[2, 0], [1/5, 3/5]]
> altitude(h3,C,ABC,H3);
h3
> DefinedAs(h3);
[C, H3]
> detail(h3);
name of the object : h3
f orm of the object : segment2d
the two ends of the segment : [[1, 3], [1, 0]]
> draw(ABC,h1,h2,h3,axes=normal,printtext=true,color=blue);
3 C
2.5
1.5
0.5 H2 H1
0A 0.2 0.6 H3
11.2 1.6 2B
> with(geometry):
> triangle(ABC,[point(A,0,0),point(B,2,0),point(C,1,3)]);
ABC
> centroid(cen,ABC);
cen
> baricentro:=coordinates(cen);
baricentro := [1, 1]
> median(m1,A,ABC,M1);
m1
> DefinedAs(m1);
[A, M 1]
> detail(m1);
name of the object : m1
f orm of the object : segment2d
the two ends of the segment : [[0, 0], [3/2, 3/2]]
> median(m2,B,ABC,M2);
m2
> DefinedAs(m2);
[B, M 2]
> detail(m2);
name of the object : m2
f orm of the object : segment2d
the two ends of the segment : [[2, 0], [1/2, 3/2]]
> median(m3,C,ABC,M3);
m3
> DefinedAs(m3);
[C, M 3]
> detail(m3);
name of the object: m3
form of the object: segment2d
the two ends of the segment: [[1,3],[1,0]]
Walter Arriaga Delgado MAPLE 211
3 C
2.5
1.5 M2 M1
0.5
0A 0.2 0.6 M3
11.2 1.6 2B
> draw(ABC,m1,m2,m3,axes=normal,printtext=true,color=blue);
> with(geometry):
> triangle(ABC,[point(A,0,0),point(B,2,0),point(C,1,3)]);
ABC
> bisector(b1,A,ABC,B1);
b1
> detail(b1);
assume that the names of the horizontal and vertical axes are_x and _y, respectively
name of the object : b1
f orm of the object : line2d
equation of the line : −3 ∗ 4^(1/2) ∗ −x + (4^(1/2) + 2 ∗ 10^(1/2)) ∗ −y = 0
> bisector(b2,B,ABC,B2);
b2
> detail(b2);
assume that the names of the horizontal and vertical axes are_x and _y, respectively
name of the object : b2
f orm of the object : line2d
equation of the line : −3 ∗ 4^(1/2) ∗ −x + (−4^(1/2) − 2 ∗ 10^(1/2)) ∗ −y + 6 ∗ 4^(1/2) = 0
> bisector(b3,C,ABC,B3);
b3
> detail(b3);
assume that the names of the horizontal and vertical axes are_x and _y, respectively
212 MAPLE Walter Arriaga Delgado
2.5
1.5
1 B2 B1
0.5
0A 0.2 0.6 B3
11.2 1.6 2B
> with(geometry):
> triangle(T,[point(A,0,0),point(B,2,0),point(C,1,3)]);
> incircle(inc,T,centername=O);
inc
> detail(inc);
assume that the names of the horizontal and vertical axes are _x and _y, respectively
name of the object: inc
form of the object: circle2d
name of the center: O
coordinates of the center: [1, 3/(10^(1/2) + 1)]
radius of the circle: 3/(10^(1/2) + 1)
equation of the circle: 1 + _x^2 + _y^2 − 2 ∗ _x − 6/(10^(1/2) + 1) ∗ _y = 0
> draw(inc,T,axes=normal,printtext=true,color=blue);
> with(geometry):
> triangle(T,[point(A,0,0),point(B,2,0),point(C,1,3)]);
T
Walter Arriaga Delgado MAPLE 213
3 C
2.5
1.5
1
O
0.5
> circumcircle(circ,T,centername=O);
circ
> detail(circ);
assume that the names of the horizontal and vertical axes are_x and _y, respectively
name of the object : circ
f orm of the object : circle2d
name of the center : 0
coordinates of the center : [1, 4/3]
radius of the circle : 1/9 ∗ 25^(1/2) ∗ 9^(1/2)
equation of the circle : _x^2 + _y^2 − 2 ∗ _x − 8/3 ∗ _y = 0
> draw(circ,T,axes=normal,printtext=true,color=blue);
3 C
2.5
1.5 O
0.5
B
–0.5 A 0.5 1 1.5 2 2.5
> with(geometry):
>triangle(T,[point(A,0,0),point(B,2,0),point(C,1,3)]);
>medial(md,T);
md
> detail(md);
name of the object : md
f orm of the object : triangle2d
method to def ine the triangle : points
the three vertices : [[1, 0], [1/2, 3/2], [3/2, 3/2]]
> draw(T(color=blue),md(color=magenta),axes=normal,printtext=true,color=blue);
3 C
2.5
1.5 mid_B_C
mid_A_C
0.5
0A 0.2
mid_A_B
0.6 11.2 1.6 2B
5.2.5. Polı́gonos
Vértices: A, B, C, ldots
A C
E D
β
Diagonal: CE
Todo polı́gono determina en un plano tres subconjuntos de puntos llamados: interior, exterior
y el polı́gono mismo que es la frontera que limita a las dos regiones y por lo tanto no está in-
cluido en ninguno de ellos.
En Maple usaremos el comando plots y el comando polygonplot
> with(plots):
> plot([[1,1],[2,3],[8,5],[9,-1],[1,1]]);
5
0 2 4 6 8
–1
> plot([[1,1],[8,5],[9,-1],[6,2],[1,1]]);
Podemos usar también el comando polygonplot para dibujar uno o más polı́gonos.
La función polygonplot se usa para crear una o dos gráficas dimensionales de polı́gonos.
216 MAPLE Walter Arriaga Delgado
0 2 4 6 8
–1
> polygonplot([[2,5],[3,2],[1,4]],color=blue);
5
4.5
3.5
2.5
2
1 1.5 2 2.5 3
> ngon(6);
1 1√ −1 1 √ −1 1 √ 1 1√
, 3 , , 3 , [−1, 0], ,− 3 , ,− 3 , [1, 0]
2 2 2 2 2 2 2 2
Walter Arriaga Delgado MAPLE 217
>polygonplot(ngon(6),color=green,axes=none,scaling=constrained);
>polygonplot(ngon(8),color=cyan,axes=none,scaling=constrained);
>polygonplot(ngon(12),color=orange,axes=none,scaling=constrained);
218 MAPLE Walter Arriaga Delgado
La geometrı́a del espacio estudia a las figuras geométricas cuyos puntos que la constituyen
se encuentran en diferentes planos.
Un sólido geométrico, es una figura que encierra una región del espacio mediante superfi-
cies.
Se llama poliedro al cuerpo geométrico limitado completamente por regiones poligonales situ-
ados en distintos planos.
Dichas regiones poligonales vienen a ser las caras del poliedro. Los lados de las caras son
las aristas del poliedro, todo poliedro tiene por lo menos 4 caras.
Al igual que en la geometrı́a plana utilizaremos el paquete plots, además usaremos el
comando polygonplot3d. Veamos directamente algunas aplicaciones
> with(plots):
> plots[polygonplot3d]([[[0,0,0],[1,0,0],[1,1,0],[0,1,0]],
> [[0,0,1],[1,0,1],[1,1,1],[0,1,1]],
> [[0,0,0],[0,1,0],[0,1,1],[0,0,1]],
> [[1,0,0],[1,1,0],[1,1,1],[1,0,1]],
> [[0,0,0],[1,0,0],[1,0,1],[0,0,1]],
> [[0,1,0],[1,1,0],[1,1,1],[0,1,1]]],
> lightmodel=light4,scaling=constrained,style=patchnogrid);
Más ejemplos
> polygonplot3d([[0,1,1],[1,-1,2],[3,0,5],[1,1,1]]);
> polyhedraplot([0,0,0],polytype=dodecahedron,scaling= constrained);
Walter Arriaga Delgado MAPLE 219
> with(geom3d):
W arning, these names have been redef ined : AreCollinear, AreConcurrent,
AreConjugate, AreP arallel, AreP erpendicular, Def inedAs, Equation, F indAngle,
GlideRef lection, IsEquilateral, IsRightT riangle, OnSegment, RadicalCenter,
altitude, area, center, centroid, circle, coordinates, detail, distance, draw, dsegment,
f orm, homology, homothety, intersection, inversion, line, midpoint, point, polar,
projection, radius, randpoint, ref lection, rotation, segment, sides, translation,
triangle, vertices.
> octahedron(oct,point(o,1,2,1),1);
oct
> draw(oct);
> area:=area(oct);
√
area := 4 3
> volumen:=volume(oct);
4
volumen :=
3
220 MAPLE Walter Arriaga Delgado
> with(plots):
> coordplot3d(rectangular);
> with(plots):
> spacecurve([cos(t),sin(t),t],t=0..4*Pi);
azul, A
magenta celeste
negro
rojo, R verde, V
amarillo
Objetivos:
z Adquirir habilidades básicas de programación, ası́ como también conocer las
diferentes funcionalidades del programa y sus potencialidades.
Maple no es un programa diseñado sólo para el uso interactivo. Los comandos e instruc-
ciones que se utilizan de manera individual desde la lı́nea de comandos pueden agruparse
formando programas que facilitan la realización de tareas repetitivas y nos proveen a su vez
de nuevos comandos. A continuación se comentan, a modo de introducción al tema de la
programación en Maple, las principales construcciones usadas en el desarrollo de programas.
223
224 MAPLE Walter Arriaga Delgado
6.1.1. Bucles
Una de las razones por las que los ordenadores a veces son útiles es su capacidad de repetir
la misma tarea rutinaria una y otra vez sin equivocarse.
El elemento sintáctico que realiza estas repeticiones se llama bucle y suele consistir de
dos partes: en primer lugar un comando o una serie de comandos que queremos ejecutar
repetidamente, y luego un comando que controla cuántas veces se ejecuta el bucle.
6.1.2. Condicionales
lo que significa que si se verifica la condición entonces se realiza la operación 1 y en caso con-
trario se realiza la operación 2 (si no se indica nada por defecto no se hace ninguna operación).
Otra forma de generar condicionales es:
> maximo:=proc(a,b)
> local c:
> if (a>b) then c:=a else c:=b fi: c;
> end:
Walter Arriaga Delgado MAPLE 225
La variable c que va a ser la salida se define como una variable local, esto es, sólo se
considera dentro del procedimiento.
> signo:=proc(a)
> local s;
> if a<0 then s:=menos elif a=0 then s:=0 else s:=mas fi:
> s; end:
> signo(27);
mas
> signo(-23);
menos
> signo(0);
0
226 MAPLE Walter Arriaga Delgado
6.2.1. La sentencia if
Los comandos elif indican otra condición para que se cumpla sentencia2, se puede utilizar
tantas veces como se desee. else ejecutará la sentencia3 en caso de que no se cumpla ninguna
de las expresiones de condición. Una sentencia tipo if siempre terminará con un end if. Si no
se desean utilizar elif ni else, basta con no incluirlos en la sentencia if, su uso no es necesario.
Por otra parte, si se desea se puede utilizar la sentencia else if en lugar de elif, en cuyo caso
habrá de concluirse con end if.
Se debe tener en cuenta que la expresión de condición tiene que devolver siempre uno de los
tres valores booleanos, es decir true, false o FAIL. En caso contrario el programa1 mandará un
mensaje de error.
> clave:=18276:
> if (usuario=clave) then;
> print(“Acceso permitido”);
> else
> print(“Acceso denegado”);
> end if;
“Acceso permitido”
Esta sentencia nos servirá para realizar repeticiones. El bucle termina con end do. La forma
más general es:
Las cláusulas for <var> from <inicio> by <paso> to <final> while <expresión de condi-
ción>, son opcionales. Si no se les atribuye ningún valor, tomarán por defecto los mostrados
en la tabla (6.1):
Por ser opcionales podemos simplificar esta estructura de diversas formas y la sintaxis
semuestra a continuación:
ó también:
for var from inicio by cambio to final do
acciones a realizar
od;
En la que cada una de las variables utilizadas tiene el siguiente significado:
var: variable ı́ndice que irá aumentando o disminuyendo conforme se ejecuta el proceso expre-
sado por las acciones a realizar.
inicio: valor inicial que tomará la variable var para comenzar las iteraciones.
cambio: valor que se añadirá o restará a la variable var después de cada iteración.
final: valor final que determina la conclusión del proceso, que se producirá cuando la variable
var iguale o supere a este valor.
acción(es) a realizar: conjunto de sentencias que se ejecutarán para cada uno de los valores
que irá tomando la variable var.
Cuando se omite la variable cambio, por defecto asumirá el valor 1.
Que coincide con el valor de la suma de los términos de una sucesión aritmética:
> (10^4)*(10^4+1)/2;
50005000
Walter Arriaga Delgado MAPLE 229
> S:=0:
> for i from 1 to nops(a) do
> S:=S+a[i]:
> od:
> S;
36
16
25
Se recomienda probar diferentes opciones (como cambiar “to 5” por “while i<5”) y los
resultados.
f act := 2
f act := 6
230 MAPLE Walter Arriaga Delgado
f act := 24
f act := 120
Los bucles formados con las estructuras del tipo for pueden anidarse, como en el siguiente
ejemplo:
Observación 6.2.1. Otra opción interesante del bucle for es el for -in, la particularidad de
este bucle es que se aplica a cada uno de los componentes de un objeto, que puede ser una
lista, un vector, un set, una suma de términos, un producto de factores o los caracteres de una
cadena.
La expresión general del bucle for -in es:
1,648721271
1,395612425
1,284025417
Walter Arriaga Delgado MAPLE 231
Este bucle aplica las sentencias a cada uno de los elementos del objeto si se cumple la
condición. En el ejemplo siguiente no aparece la cláusula while ası́ que las sentencias, que en
este caso es un if, se ejecutan siempre.
Ejemplo 6.2.11.
> restart;
> L:=[8,5,1,3,9,6];
L := [8, 5, 1, 3, 9, 6]
> for i in L do
> if i>5 then print(i) fi;
> od;
8
Es utilizado para ejecutar repetidamente una secuencia de sentencias mientras una condi-
ción se cumpla. La estructura es la siguiente:
La expresión de condición tiene que devolver siempre un valor booleano true, false o FAIL.
La acción o las acciones se realizarán mientras condición sea cierta.
Ejemplo 6.2.12. Hallar el menor número de números primos cuya suma sea mayor que 1000.
El proceso que se deba realizar consiste en ir sumando los sucesivos números primos hasta
obtener un valor de la suma mayor que 1000. Para este cálculo se desconoce el número de
veces que se repitirá el proceso de sumar un número primo, por lo que es necesario utilizar
una estructura de tipo while.
Se debe inicializar la variable suma (valor inicial cero) y la variable que irá recorriendo la
sucesión de números primos.
> suma:=0; i:=1;
> while suma¡1000 do
232 MAPLE Walter Arriaga Delgado
> suma:=suma+ithprime(i);
> i:=i+1;
> od;
> print(i,‘numeros primos‘);
> print(‘La suma es: ‘,suma);
Ejemplo 6.2.13.
> restart;
> x:=256;
x := 256
x := 16
x := 4
x := 1
Una vez ejecutada esta sentencia, su resultado es la parada y salida directa durante el
tiempo de ejecución de una estructura tipo for/while/do. Es decir, con esta sentencia se lo-
gra salir de un bloque determinado antes de que lo termine. Después de salir, el programa
continuará en la siguiente lı́nea después del bucle o repetición en la que hemos introducido el
break.
Ejemplo 6.2.14.
> restart;
> for i from 1 to 10 do;
> if (i=5) then;
> break;
> end if;
> i^2;
> end do;
1
Walter Arriaga Delgado MAPLE 233
16
Cuando Maple ejecuta una sentencia next dentro de un bucle for/while/do, salta direc-
tamente a la siguiente iteración sin realizar ninguna sentencia, pero sin salir del bucle, a
diferencia del break.
Ejemplo 6.2.15.
> restart;
> for i from 1 to 4 do;
> if (i=3) then;
> next;
> end if;
> i^2;
> end do;
1
16
Ejemplo 6.2.16.
> restart;
> for i from 1 to 10 do;
> if (i<6) then;
> next;
> end if;
> i^2;
> end do;
36
49
64
234 MAPLE Walter Arriaga Delgado
81
100
Comando Map
El comando map aplica una función o procedimiento a todos los elementos que pertenecen
a un objeto (lista, vector, matriz, etc.). La forma más simple es:
map(función,objeto);
Ejemplo 6.2.17.
> L:=[-1,2,-3,-4,5];
L := [−1, 2, −3, −4, 5]
> q:=map(abs,L);
q := [1, 2, 3, 4, 5]
El comando select devuelve los operandos que evaluados de forma booleana devuelven true.
El comando remove devuelve los operandos que evaluados de forma booleana devuelven false.
El comando selectremove devuelve dos objetos, uno con los mismos operandos recibidos con
el comando seect y el otro con los del comando remove.
ó también
> sum(i^2,i=1..10);
385
ó también
> product(i^2,i=1..10);
13168189440000
Observación 6.2.2. En un principio los comandos add y sum pueden parecer iguales pero
no lo son, existen importantes diferencias:
La primera diferencia es que a y b han de ser constantes numéricas y en cambio N puede no
tener ningún valor asignado.
La segunda diferencia es el modo en que operan; add suma término a término y en cambio
sum lo hace de manera simbólica lo que al programar puede hacer que nuestros algoritmos no
funcionen o por el contrario sean más eficientes (menor tiempo de ejecución).
Lo mismo sucede con los comandos mul y product.
Nombre_del_procedimiento:=proc(P)
local L; (declaración de variables locales)
global G; (declaración de variables globales)
options O; (opciones)
description D; (descripción)
K
end proc;
Observación 6.3.1.
Desde el momento en que se escribe esta lı́nea de instrucciones y se pulsa Enter hasta que
se cierra en la última lı́nea el procedimiento aparece en pantalla el aviso “Warning, premature
end of input”.
En las lı́neas siguientes se escribe el cuerpo del procedimiento. En primer lugar, se definen
las variables locales del procedimiento, que mantienen su valor únicamente dentro del proced-
imiento. A continuación se definen las variables globales, que encontrándose en el cuerpo del
procedimiento, mantienen su valor fuera del mismo una vez que el procedimiento se ha ejecu-
tado. Conviene asignar el carácter de las variables explı́citamente, ya que en caso contrario es
Maple el que asigna el mismo.
Pueden añadirse una o varias lı́neas que especifiquen las opciones que se introducen en el
procedimiento, una cadena de caracteres correspondiente al tı́tulo o descripción del proced-
imiento y cuantos comentarios se consideren oportunos.
A continuación se escribirán las lı́neas de comandos y sentencias de Maple que se han
de ejecutar dentro del procedimiento y en la última lı́nea el comando end. Al ejecutar esta
última lı́nea desaparece el mensaje de aviso que se habı́a mantenido desde el comienzo del
procedimiento.
Dentro de los procedimientos podemos encontrarnos con dos casos especiales:
Los procedimientos anidados, que son aquellos en los que un procedimiento forma parte
de otro procedimiento, como si fuese un elemento de este último; en este tipo de proced-
imientos hay que tener en cuenta que las variables no locales del procedimiento interno
no son variables globales del externo, sino de la sesión de trabajo.
Los procedimientos recursivos, que son aquellos que se contienen a sı́ mismos como
elemento.
> cubo(4);
64
238 MAPLE Walter Arriaga Delgado
Parámetros
Se puede escribir un procedimiento que sólo funciones con un tipo determinado de parámet-
ros. En este caso es interesante indicarlo en la descripción del procedimiento de forma que si
se intenta pasar otro tipo de parámetros, Maple enviará un mensaje de error informativo. La
declaración serı́a de la forma:
parameter :: tipo
donde parameter es el nombre del parámetro y tipo, el tipo que aceptará. Por ejemplo:
> N::integer
Cuando se llama al procedimiento, antes de ejecutar el cuerpo, Maple examina los tipos
de los parámetros actuales y solamente si todo es correcto, se ejecuta el resto.
La llamada a un procedimiento se realiza de igual forma que la de una función.
> F(A);
Dentro de un procedimiento se puede cambiar el valor de una variable local, sin afectar a
una variable global con el mismo nombre y/o a una variable local de otro procedimiento.
Se recomienda declarar el carácter de las variables explı́citamente. Por defecto Maple
declara las variables como locales:
Si aparece como la variable ı́ndice de un bloque for, o en un comando seq, add, sum,
mul o product.
x+y
z2 + y
(y 3 + 1)2 + y
Ası́ se puede conseguir que una variable local dentro de un procedimiento se evalúe total-
mente, aunque no afecta demasiado al comportamiento del programa.
Ejemplo 6.3.4.
240 MAPLE Walter Arriaga Delgado
> F:=proc()
> local x, y, z;
> x:=y^2; y:=z^2; z:=3;
> eval(x);
> end:
> F();
81
Observación 6.3.2. Para obtener resultados numéricos debe tenerse en cuenta el tipo de
variables que se utiliza. Es importante distinguir cuando se está trabajando con números
reales y cuando con enteros. Cuando se trabaja con números reales, Maple realiza todas las
operaciones necesarias para llegar al resultado numérico aproximado, que depende del número
de cifras significativas que se esten empleando. Cuando se trabaja con números enteros, las
operaciones son lentas y a menudo hacen que el programa se bloquee. Esto se debe a que Maple
opera simbólicamente, manejando todas las expresiones exactamente, sin sustituir valores ni
realizar operaciones numéricas que no sean exactas.
Ejemplo 6.3.5.
> sin(3/4);
3
sin
4
> sin(3/4);
0,6816387600
Observación 6.3.3. Los comandos evalf vs evalhf. De cara a aumentar la velocidad de eje-
cución Maple ofrece la posibilidad de utilizar el hardware para realizar cálculos. Normalmente
es más que suficiente la precisión que ofrece el hardware para realizar cálculos, por lo que se
recomienda utilizar el comando evalhf cuando se haya de realizar un número significativo de
operaciones.
Options
end proc
> fibonacci (5);
5
end proc
> fibonacci (50);
12586269025
la opción system permite a Maple borrar resultados anteriores de una remember table.
Estas dos opciones se utilizan conjuntamente.
Opción Copyright
Maple considera cualquier opción que comienza con la palabra Copyright como una opción
Copyright. Maple no imprime el cuerpo de estos procesos (a menos que se especifique lo con-
trario con el comando interface(verboseproc=2);). Ejemplo;
> f:=proc(expr::anything, x::name)
> option Copyright 1684 by G.W. Leibniz;
> Diff(expr,x);
> end;
El campo de descripción
Return explı́cito
Un return explı́cito ocurre cuando se llama al comando RETURN, que contiene la siguiente
sintaxis:
RETURN (secuencia);
Este comando causa una respuesta inmediata del procedimiento, que es el valor de secuen-
cia. Se vuelve al punto desde donde se ha invocado el procedimiento.
Por ejemplo, el siguiente procedimiento dtermina la primera posición i del valor x en una
lista de valores L. Si x no aparece en la lista L, el procedimiento devuelve un 0.
> f:=proc(x::anything, L::list)
> local i;
> for i to nops(L) do
> if x=L[i] then RETURN (i) fi;
> od;
> 0;
> end:
Return de error
Un return de error ocurre cuando se llama al comando ERROR, que tiene la siguiente
sintaxis:
error “texto”
Algunos de los comandos básicos de Maple devuelven procedimientos. Por ejemplo, rand
devuelve un procedimiento en el cual se generan números enteros en un rango determinado.
Ejemplo:
> f:= rand(4 . . 7);
> seq(f (), i=1 . . 20);
5, 6, 5, 7, 4, 6, 5, 4, 5, 5, 7, 7, 5, 4, 6, 5, 4, 5, 7, 5
La función desolve con la opción type=numeric devuelve un procedimiento que estima numéri-
camente una ecuación diferencial.
Esta sección tratará sobre como pasar de un procedimiemto externo a otro interno.
A continuación se realizará un ejemplo de procedimiento que devuelve un procedimiento
según la funciintroducida. El método de interaciones de Newton consiste en lo siguiente (no
se explicara el metodo en sı́, sólo como se programa):
f (xk )
xk+1 = xk −
f ′ (xk )
Para probarlo ponemos como valor inicial 2 y pedimos cuatro datos. El procedimiento
devuelto se llama Newton:
> expr:=x-2*sqrt(x);
√
expr := x − 2 x
> Newton:=MakeIteration(expr,x);
246 MAPLE Walter Arriaga Delgado
√
x−2 x
N ewton := x → x −
1
1− √
x
> x0:=2.0;
x0 := 2,0
x0 := 4,828427124
x0 := 4,032533198
x0 := 4,000065353
x0 := 4,000000000
El operador Shift:
x → sin(x + 1)
El ejemplo anterior trata de como funciona el operador shift como funciones de una
sola variable, si se utilizan más Maple devolverá un mensaje de error. Para ello existe
otra manera de programarlo, mediante la palabra args, que es la secuencia actual de
parámetros excepto el primero de ellos. Por ejemplo:
> h := (x,y) -> x*y;
h := (x, y) → xy
hh := x → h(x + 1, args2_−1 )
Walter Arriaga Delgado MAPLE 247
> hh(x,y);
(x + 1)y
Normalmente, los datos que se introducen en los procedimientos son parámetros. Algunas
veces en cambio, se necesita reclamar directamente los datos pertinentes al usuario del
procedimiento. Los dos comandos principales para realizar esta tarea son readline y
readstat.
El comando readstat es similar al anterior, a diferencia de que este último lee expresiones
y no variables tipo string. Su sintaxis se puede observar en el siguiente ejemplo:
> restart:
> readstat(Ïntroduzca grado: ”);
Introduzca grado : n − 1;
n−1
Otra diferencia entre readline y readstat, es que mientras que la primera tan sólo puede
captar una lı́nea, la segunda permite escribir una expresión a lo largo de varias lı́neas.
Además el comando readstat se re-ejecuta en caso de error.
NOTA: Si se desea pasar de una cadena de caracteres a una expresión, se puede utilizar
el comando parse:
248 MAPLE Walter Arriaga Delgado
> y:=parse(s);
y := ax2 + 1
> minx:=ext[i];
> minimo:=evalf(f(minx));
> print(‘El polinomio tiene un mı́nimo en: ‘,‘minx‘);
> print(‘El mı́nimo es: ‘,‘minimo‘);
> elif(ddpolexpr(ext[i])<0) then
> maxx:=ext[i];
> maximo:=evalf(f(maxx));
> print(‘El polinomio tiene un máximo en: ‘,‘maxx‘);
> print(‘El máximo es ‘,‘maximo‘);
> end if;
> i:=i+1;
> end do;
> plotinf:=ext[1]-2;
> plotsup:=ext[num]+2;
> plot(pol,x=plotinf..plotsup);
> else
> print(‘El polinomio no tiene ni máximo ni mı́nimo‘);
> plotinf:=raiz[1]-2;
> plotsup:=raiz[1]+2;
> plot(pol,x=plotinf..plotsup);
> end if;
> end proc;
Ejemplo 6.3.6. Calcular las raı́ces del polinomio P (x) = 3x3 − 14x2 + x + 1 y los puntos
donde el polinomio tiene un máximo y un mı́nimo.
Solución
> raices(3,-14,1,1);
20
x
–1 1 2 3 4 5
0
–20
–40
–60
Se puede observar en éste ejemplo que la función polinómica P (x) = 3x3 − 14x2 + x + 1
tiene tres raı́ces, un máximo y un mı́nimo.
Ejemplo 6.3.7. Calcular las raı́ces del polinomio P (x) = x3 − 3x2 − 9x + 2 y los puntos donde
el polinomio tiene un máximo y un mı́nimo.
Solución
> raices(1,-3,-9,2);
Al igual que el ejemplo anterior, la función polinómica P (x) = x3 − 3x2 − 9x + 2 tiene tres
raı́ces, un máximo y un mı́nimo.
6.4.1. En Aritmética
5
–2 –1 x
–3 1 2 3 4 5
–5
–10
–15
–20
–25
> local c:
> if (a>b) then c:=a else c:=b fi:
> print(‘El maximo es:‘,‘c‘);
> end:
Ejemplo:
> maximo(2,4);
El maximo es :, 4
> A := array(1..5,1..2):
> for n to 5 do
> A[n,1]:= n;
> A[n,2] :=[convert(n,binary)];
> end do:
> evalm(A);
1 [1]
2 [10]
3 [11]
4 [100]
5 [101]
De base 10 a base 3
> trinario:= proc(n::nonnegint)
> local q,digitos,r;
> q := n;
> digitos := NULL;
> while q<>0 do
> q := iquo(q,3,’r’);
> digitos := r,digitos;
> end do;
> end proc:
Ejemplo:
> trinario(5);
1, 2
De base 10 a base 16
> base16:=proc(n::nonnegint)
> local q,digitos,r;
> q := n;
> digitos:= NULL;
> while q<>0 do
> q := iquo(q,16,’r’);
> if r=10 then r := A
> elif r=11 then r := B
> elif r=12 then r := C
Walter Arriaga Delgado MAPLE 253
Programa 6.4.3. Programa para calcular el factorial de un número, en éste caso el factorial
de 10
> n:=10:
> fac := 1:
> m := 1:
> while n>=m do
> fac := fac*m;
> m := m + 1;
> od:
> print(fac):
3628800
> seq(f(i),i=0..10);
> factoria(2/5);
incorrecto : por f avor ingrese enteros positivos
> factoria(10);
3628800
Otra forma de visualizar el resultado es usando el bucle for, que nos permite obtener la
tabla de los factoriales.
> for n from 0 to 10 do
> print(’factorial’(n)=n!);
> end do;
0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
Walter Arriaga Delgado MAPLE 255
10! = 3628800
> seq(f(i),i=0..10);
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55
> fibonacci(2/5);
incorrecto : por f avor ingrese enteros positivos
256 MAPLE Walter Arriaga Delgado
> fibonacci(20);
6765
Programa 6.4.8. Programa para calcular la suma de los n primeros números naturales, desde
un número a = lı́mite inferior hasta b = lı́mite superior:
> sumatoria:=proc(liminf,limsup)
> local i,s:
> s:=0;
> for i from liminf to limsup do
> s:=s+i;
> od;
> print(‘La suma es:‘,‘s‘);
> end proc:
Ejemplo:
> sumatoria(1,10);
La suma es :, 55
Walter Arriaga Delgado MAPLE 257
> sumatoria(10,24);
La suma es :, 255
Programa 6.4.9. Programa para calcular la suma de cuadrados de los n primeros números
naturales, desde un número a = lı́mite inferior hasta b = lı́mite superior:
> sumatoria:=proc(liminf,limsup)
> local i,s:
> s:=0;
> for i from liminf to limsup do
> s:=s+i^2;
> od;
> print(‘La suma es:‘,‘s‘);
> end proc:
Ejemplo:
> sumatoria(1,10);
La suma es :, 385
> sumatoria(10,20);
La suma es :, 2585
Programa 6.4.10. Programa para calcular el cuadrado de un número usando el bucle for.
> for k from 1 to 5 do print(k, k^2) end do;
1, 1
2, 4
3, 9
4, 16
5, 25
el cuadrado de , 2, es: , 2
el cuadrado de , 3, es: , 9
el cuadrado de , 4, es: , 16
el cuadrado de , 5, es: , 25
> evalf(total/n);
> end:
Ejemplo: Calcular la media aritmética de {2,2,3,3,4,4,5}
> X:=[2,2,3,3,4,4,5]:
>m:= media(X);
3,285714286
1,030157507
> myd(X);
La media y desviacion estandart son :, 20., 8,164965809
Programa 6.4.15.
> restart:
> suma:=proc(A::list)
> local S,i:
> S:=0:
> for i from 1 to nops(A)
> do
> S:=S+A[i]:
> od:
> S;
> end:
Se puede declarar el tipo de variables que usa el procedimiento y ası́ hemos considerado
A como una lista. Esto ayuda a determinar los errores en un procedimiento pues si introduci-
mos variables no adecuadas manda mensaje de error. Puedes consultar la ayuda para ver los
distintos tipos de variables.
> ?type;
> suma([2,3,4,5,6,6]);
26
Lo aplicamos a una sucesión aritmética cuyo primer término es a y la diferencia entre dos
consecutivos es d. La lista de los 50 primeros términos es:
> L:=[seq(a+i*d,i=1..50)]:
y su suma es:
> suma(L);
50a + 1275d
Walter Arriaga Delgado MAPLE 261
Búsqueda
Programa 6.4.16.
> busqueda:=proc(a::list,b::numeric)
> local i,c:
> c:=0:
> for i from 1 to nops(a) while c=0
> do
> if a[i]=b then c:=1 fi:
> od:
> if c=0 then c:=No else c:=Si fi:
> c; end:
Veamos algunos ejemplos:
> busqueda([1,2,3,4,7,8],8);
Si
> busqueda([1,2,3,4,7,8],9);
No
> busqueda([1,4,5,6,7,9,10],5);
Si
> busqueda([1,3,4,5,2,3,4,8],4);
Si
> busqueda([1,3,4,5,2,3,4,8],8);
Si
Media aritmética
La media aritmética no es más que el cociente entre la suma de los elementos de la lista y
el número de elementos, entonces:
Programa 6.4.17.
262 MAPLE Walter Arriaga Delgado
> media:=proc(a::list)
> local S,i:
> S:=0:
> for i from 1 to nops(a)
> do
> S:=S+a[i]
> od:
> S/nops(a);
> end:
> media ([1,2,3,4,5,6]);
7/2
Máximo
Podemos hacer un procedimiento para calcular el máximo de una lista de números. Sencil-
lamente definimos una variable M donde inicialmente se almacena el valor del primer elemento
de la lista y que se va comparando con cada elemento de la lista cambiando su valor por él si
es necesario.
Programa 6.4.18.
> Maximo:=proc(a)
> local c,i:
> c:=a[1]:
> for i from 2 to nops(a)
> do
> if c<a[i] then c:=a[i] fi:
> od:
> c;
> end:
Veamos algunos ejemplos.
> Maximo([44,55,6,7,10]);
55
> Maximo([45,789,10^6,45,6]);
1000000
Walter Arriaga Delgado MAPLE 263
Programa 6.4.19. Este procedimiento calcula ternas pitagóricas. Recibe como parámetros
dos número, p y q, que obligamos sean enteros
> ternap:=proc(p::integer,q::integer)
> local x,y,z:
> if igcd(p,q)<>1 then print(’los números deben ser primos entre si’)
> else x:=2*p*q: y:=abs(p^2-q^2): z:=p^2+q^2: print(x,y,z) fi:
> end:
> ternap(2,6);
los números deben ser primos entre si
> ternap(5,7);
70, 24, 74
Programa 6.4.20. Procedimiento que calcula el MCD de dos números según el algoritmo de
euclides
> MCD:=proc(a::integer,b::integer)
> local r:
> if (a<b) then MCD(b,a) fi:
> r:=irem(a,b):
> if r=0 then RETURN(b)
> else MCD(b,r)
> fi
> end:
> MCD(22,30);
2
6.4.2. En Algebra
ax2 + bx + c = 0
> ecuacion:=proc(a,b,c)
> local x1,x2,d:
> d:=b^2-4*a*c;
> x1:=(-b-sqrt(d))/(2*a);
> x2:=(-b+sqrt(d))/(2*a);
264 MAPLE Walter Arriaga Delgado
> maxcoef(p,x);
59
> pascal01:=proc(k)
> local i,j:
> for i from 0 to k do print(seq(binomial(i,j),j=0..i)) od:
> end:
> pascal01(4);
1
1, 1
1, 2, 1
1, 3, 3, 1
1, 4, 6, 4, 1
Walter Arriaga Delgado MAPLE 265
> discrimi:=proc(a,b,c)
> local d:
> d:=b^2-4*a*c:
> if d<0 then print(‘No tiene soluciones reales‘)
> elif d=0 then print(‘Tiene solución única‘)
> else print(‘Tiene dos soluciones‘)
> fi
> end:
> discrimi(1,2,1);
Tiene solución única
6.4.3. En Geometrı́a
Por ejemplo, queremos escribir una subrutina que tome como entrada un valor x y una
altura h y que nos devuelva las coordenadas de un rectángulo cuyos lados estén paralelos a
los ejes de coordenadas, que tenga anchura 0.5 y altura h, y cuyo borde inferior esté en el eje
de las x y centrado sobre el punto (x, 0).
La primera lı́nea de la subrutina especifica su nombre y los argumentos de entrada:
Esta lı́nea de código informa a Maple que queremos escribir una subrutina que se llama
rectangulo y que toma como argumentos a x y a h. Si no se especifica el tipo de argumentos,
maple acepta cualquiera. Especificamos h positivo.
El código que ejecuta la subrutina será el siguiente. No queremos nada más que la lista de
las coordenadas de los extremos del rectángulo, las cuales a su vez consisten de listas de dos
valores.
Programa 6.4.26.
> rectangulo:=proc(x,h)
> [[x-.25,0],[x+.25,0],[x+.25,h],[x-.25,h]]:
> end;
rectangulo := proc(x, h)[[x − 0,25, 0], [x + 0,25, 0], [x + 0,25, h], [x − 0,25, h]]end proc
266 MAPLE Walter Arriaga Delgado
Después de acabar la definición de la subrutina mediante la palabra clave “end”, Maple nos
confirma el código que ha sacado en claro de nuestra entrada. Si no se quiere esta información
se puede terminar el procedimiento con los dos puntos, esto es, end:
Probemos unos ejemplos:
> rectangulo(-2,3);
[[−2,25, 0], [−1,75, 0], [−1,75, 3], [−2,25, 3]]
> rectangulo(0,0);
[[−0,25, 0], [0,25, 0], [0,25, 0], [−0,25, 0]]
2.5
1.5
0.5
6.4.4. En Trigonometrı́a
A
C b
> hipotenusa:=proc(a,b)
Walter Arriaga Delgado MAPLE 267
6.4.5. En Fı́sica
d
v=
t
donde: d = distancia; v = velocidad; t = tiempo.
> velocidad(4,0);
Error : no se puede dividir por cero
> tiempo(120,0);
Error : no se puede dividir por cero
at2
e := vi t +
2
Programa 6.4.31. Programa para calcular el espacio:
> espacio:=proc(vi,t,a)
> local e;
Walter Arriaga Delgado MAPLE 269
> e:=vi*t+(1/2)*a*t^2;
> print(‘el espacio recorrido es:‘,‘e‘);
> end proc:
Ejemplo:
> espacio(2,3,4);
el espacio recorrido es :, 24
6.4.6. En Cálculo
Programa 6.4.32. Para generar la tabla de la función Gamma de los números enteros.
> for n from 0 to 20 do
> print(’factorial’(n)=n!,’GAMMA’(n+1)=GAMMA(n+1));
> end do;
[1] Abell, Martha L. The MAPLE V handbook. Academic Press. Boston, 1994.
[2] Carrillo de Albornoz Torres, Agustı́n. MAPLE V: Aplicaciones matemáticas para PC.
RA-MA. Madrid, 1995.
[3] Enns, Richard H. Nonlinear physics with Maple for scientists and engineers. Birkhaüser.
Boston, 1997.
[4] Gander, Walter. Solving problems in scientific computing using MAPLE and MATLAB.
Springer. Berlin, 1995.
[6] Klima,R. Applications of Abstract Algebra with Maple. CRC. Boca Raton, Florida, 2000.
[7] Meal, K.M., Hansen, M.L., Rickard, K.M. Maple learning guide. Waterloo Maple. Springer
Verlag, 1996.
[11] Rincón de Rojas, F. Cálculo Cientı́fico con MAPLE. RA-MA. Madrid, 1995.
273
274 MAPLE Walter Arriaga Delgado
quo, 73 tau, 48
tcoeff, 64
racionalización, 89 teoria de exponentes, 61
readline, 247 texplot, 162
readstat, 247 texplot3d, 179
rem, 74 thicksim, 108
remember, 241 tickmarks, 178
remove, 234 title, 144
return, 243 triangle, 200
276 MAPLE Walter Arriaga Delgado
triangle2d, 201
trunc, 52
type, 41, 193, 201
unapply, 180
unconstrained, 142
union, 38
variaciones, 85
verticalcoord, 193
verticalname, 200
while, 231
worksheet, 11