Sunteți pe pagina 1din 296

UNIVERSIDAD PEDRO RUIZ GALLO

FACULTAD DE CIENCIAS FISICAS Y MATEMÁTICAS

ESCUELA PROFESIONAL DE MATEMÁTICAS

MAPLE

presentado por:

Lic. Mat. Walter Arriaga Delgado

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

Una de las situaciones más dificiles a que se ve enfrentado comunmente un investigador en


matemática es la de tratar de explicar su labor profesional.

La respuesta a ésta interrogante a lo largo de la historia de la humanidad han sido de la más


variable ı́ndole: hay quienes plantean que cultivan esta ciencia por satisfacción personal, sin
buscar sus aplicaciones inmediatas; otros aseguran que, siendo la busqueda de conocimiento
consustancial a la naturaleza humana y siendo la matemática lenguaje universal, ésta debe
cultivarse como contribución al acervo cultural de la humanidad, para permitir a los diversos
pueblos comprender su propia y particular realidad. También se estima necesario que todos
los paı́ses, especialmente aquellos en desarrollo, cultiven las disciplinas básicas para ası́ poder
lograr independizarse cientı́fica, tecnológica y económicamente.

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.

Aún considerando estas dificultades, creemos que no ha sido suficientemente difundido el


muy relevante papel que juega nuestra disciplina en la formación integral de cada ciudadano;
de manera privilegiada, la matemática aporta a esta formación capacitando a las personas para
tomar decisiones en la vida, para enfrentar situaciones nuevas, para poder crear y expresar
ideas originales; esto se logra por ejemplo a través de desarrollar la capacidad de abstracción,
de enseñar a relacionar objetos o situaciones diversas, de desarrollar la intuición; en fin, la
matemática ayuda a desarrollar una mentalidad crı́tica y creativa.

Es entonces muy preocupante que sea la más desconocida de las ciencias para el ciudadano

i
ii MAPLE Walter Arriaga Delgado

medio; es lo que nos atrevemos a llamar el analfabetismo matemático, o, más generalmente,


el analfabetismo cientı́fico.
El libro que se encuentra en estos momentos en sus manos pretende presentarle una in-
troducción, a nivel elemental y básico, de una parte de las matemáticas sumamente útil y
aplicable a muchas ramas del saber: El Algebra Lineal.
De la experiencia de dictar cursos y ponencias sobre Algebra Lineal es que surgieron
apuntes de clase que, después de sucesivas revisiones y ampliaciones, fueron transformándose
hasta optar la forma que ahora presentamos, con la intención de que sirva como texto guı́a
que inicie al alumno en esta fascinante rama de las matemáticas.

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

El contenido del presente manuscrito se desarrolla de la siguiente manera:

z En el Capı́tulo I, se realiza un análisis general de la teorı́a de matrices, determinantes y


sistemas de ecuaciones lineales.

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.

Algunas de sus capacidades son:

Operaciones numéricas en aritmética racional exacta o decimal de precisión arbitraria.

Manipulación algebraica de variables y sı́mbolos.

Operaciones con polinomios, fracciones algebraicas y funciones matemáticas elementales.

Resolución de ecuaciones y sistemas de ecuaciones.

Cálculo de lı́mites, derivadas, integrales, ecuaciones diferenciales, transformadas de Laplace.

Operaciones con vectores y matrices.

Capacidades gráficas en 2 y 3 dimensiones.

Lenguaje de programación de alto nivel.


iv MAPLE Walter Arriaga Delgado
Introducción

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

Diferencial e Integral, Ecuaciones diferenciales, Transformadas de Laplace, Teorı́a de grupos,


Programación Lineal, Programación en Matemática, Programación en Fı́sica, programación
en Quı́mica, Estadı́stica, Probabilidades, etc.
Maple es también idóneo para realizar documentos técnicos. El usuario puede crear hojas
de trabajo interactivas basadas en cálculos matemáticos en las que puede cambiar un dato o
una ecuación y actualizar todas las soluciones inmediatamente. Además, el programa cuenta
con una gran facilidad para estructurarlos, empleando herramientas como los estilos o los
hipervı́nculos, ası́ como con la posibilidad de traducir y exportar documentos realizados a
otros formatos como HTML, RTF, LaTeX y XML.
El presente texto, incluye nuevos comandos, el desarrollo de algunas didácticas para el
aprendizaje de determinados contenidos matemáticos, y sobre todo que al final de cada capı́tulo
cuenta con una lista de ejercicios propuestos, que evaluarán al lector en el uso de esta poderosa
herramienta.
Índice general

Prefacio I

Introducción IV

1. PRESENTACIÓN DEL MAPLE 1


1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Definición de MAPLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1. Uso interactivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Iniciando Maple 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4. Descripción del menú del Maple . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4.1. Barra de herramientas de la hoja de trabajo (Toolbar) . . . . . . . . . . 3
1.4.2. Barra del contexto para las regiones del texto . . . . . . . . . . . . . . . 6
1.4.3. Barra del contexto para el rendimiento del Maple . . . . . . . . . . . . . 7
1.5. Escribiendo en Maple 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.6. Guardando una sesión de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.7. Recuperar un archivo almacenado en disco . . . . . . . . . . . . . . . . . . . . . 10
1.8. Iniciar una nueva sesión de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.9. Abandonar Maple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.10. Zonas o regiones de trabajo (worksheet) . . . . . . . . . . . . . . . . . . . . . . 11
1.11. Operadores aritméticos básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.12. Funciones matemáticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.13. Uso de comandos en maple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.14. Errores y ayuda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.14.1. Errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.14.2. Ayuda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.14.3. Hiperenlaces o hipervinculos . . . . . . . . . . . . . . . . . . . . . . . . 20

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

2.7.2. Descomposición de un número en factores primos . . . . . . . . . . . . . 55


2.8. Sumatorias y productos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.8.1. Sumatorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.8.2. Productos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

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

4. GRAFICA EN DOS Y TRES DIMENSIONES 117


4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.2. Funciones elementales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.2.1. Función constante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.2.2. Función identidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.2.3. Función lineal afin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.2.4. Función valor absoluto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.2.5. Función raiz cuadrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.2.6. Función máximo entero . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.2.7. Función signo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
4.2.8. Función cuadrática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
4.2.9. Función polinómica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.2.10. Función racional fraccionaria . . . . . . . . . . . . . . . . . . . . . . . . 123
4.2.11. Función exponencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
4.2.12. Función logaritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Walter Arriaga Delgado MAPLE xi

4.2.13. Funciones trigonométricas . . . . . . . . . . . . . . . . . . . . . . . . . . 126


4.2.14. Funciones trigonométricas inversas . . . . . . . . . . . . . . . . . . . . . 127
4.2.15. Funciones hiperbólicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
4.2.16. Funciones hiperbólicas inversas . . . . . . . . . . . . . . . . . . . . . . . 132
4.3. Operaciones con funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
4.4. Gráficas en dos dimensiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
4.4.1. Opciones importantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
4.4.2. Coordenadas Polares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
4.4.3. Funciones Paramétricas . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
4.4.4. Funciones Implı́citas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
4.4.5. La Función Inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
4.4.6. Campos Vectoriales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
4.4.7. Funciones con varias reglas de correspondencia . . . . . . . . . . . . . . 151
4.4.8. Gráfica de inecuaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
4.4.9. Regiones sombreadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
4.4.10. Notas importantes: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
4.4.11. Mas Gráficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
4.4.12. Ploteo en cuadrı́culas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
4.5. Gráficas en tres dimensiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
4.5.1. Gráfica de superficies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
4.5.2. Funciones implı́citas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
4.5.3. Coordenadas esféricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
4.5.4. Funciones con varias reglas de correspondencia . . . . . . . . . . . . . . 177
4.5.5. Notas importantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
4.5.6. Conversión de expresiones en funciones . . . . . . . . . . . . . . . . . . 180
4.6. Animaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
4.6.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
4.6.2. Animaciones en 2 dimensiones . . . . . . . . . . . . . . . . . . . . . . . 185
4.6.3. Animaciones en 3 dimensiones . . . . . . . . . . . . . . . . . . . . . . . 187

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

5.2.3. Segmentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195


5.2.4. Triángulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
5.2.5. Polı́gonos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
5.3. Geometrı́a del Espacio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

6. PROGRAMACIÓN CON MAPLE 223


6.1. Bucles y Condicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
6.1.1. Bucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
6.1.2. Condicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
6.2. Sentencias básicas de programación . . . . . . . . . . . . . . . . . . . . . . . . . 226
6.2.1. La sentencia if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
6.2.2. El bucle for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
6.2.3. El bucle while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
6.2.4. La sentencia break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
6.2.5. La sentencia next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
6.2.6. Comandos para realizar repeticiones . . . . . . . . . . . . . . . . . . . . 234
6.3. Procedimientos con Maple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
6.3.1. Componentes de un procedimiento . . . . . . . . . . . . . . . . . . . . . 238
6.3.2. Valor de retorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
6.3.3. Guardar y recuperar procedimientos . . . . . . . . . . . . . . . . . . . . 244
6.3.4. Procedimientos que devuelven procedimientos . . . . . . . . . . . . . . . 245
6.3.5. Ejemplo de programación con procedimientos . . . . . . . . . . . . . . . 248
6.4. Algunos programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
6.4.1. En Aritmética . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
6.4.2. En Algebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
6.4.3. En Geometrı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
6.4.4. En Trigonometrı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
6.4.5. En Fı́sica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
6.4.6. En Cálculo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269

Bibliografı́a 271

Indice de Materias 273


Índice de figuras

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

2.1. Unión o reunión de conjuntos (∪) . . . . . . . . . . . . . . . . . . . . . . . . . . 38


2.2. Intersección de conjuntos (∩) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.3. Diferencia de conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.4. Diferencia simétrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5. Determinación por comprensión de un conjunto . . . . . . . . . . . . . . . . . . 44
2.6. Sistemas de numeración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.1. Polinomios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

xiii
xiv MAPLE Walter Arriaga Delgado

3.2. Gráfica de la ecuación x3 − 3x2 + 2x = 0 . . . . . . . . . . . . . . . . . . . . . . 109


3.3. Grafica de la ecuación x5 − 3x2 + 4 = 0 . . . . . . . . . . . . . . . . . . . . . . 110
3.4. Grafica de la ecuación (x − 2)(x − 5)4 . . . . . . . . . . . . . . . . . . . . . . . 111
3.5. Grafica de la ecuación 3x5 + 2x4 − 5x2 + 7 . . . . . . . . . . . . . . . . . . . . . 112
3.6. Grafica de la ecuación 3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.7. Grafica de la ecuación 3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
3.8. Grafica de la ecuación 3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

4.1. Diagrama del arbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139


4.2. Barra del contexto para las gráficas de dos dimensiones . . . . . . . . . . . . . 142
4.3. Legend Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
4.4. Opciones para gráficas de dos dimensiones . . . . . . . . . . . . . . . . . . . . . 147
4.5. La opción scaling=constrained . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
4.6. Barra de contexto para animaciones . . . . . . . . . . . . . . . . . . . . . . . . 185

5.1. Figuras geométricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192


5.2. Un punto con el comando pointplot . . . . . . . . . . . . . . . . . . . . . . . . . 194
5.3. Dos puntos con el comando pointplot . . . . . . . . . . . . . . . . . . . . . . . . 195
5.4. Segmento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
5.5. Segmento AB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
5.6. Tres segmentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
5.7. Triángulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
5.8. Triángulo T5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
5.9. Triángulo T1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
5.10. Triángulo T1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
5.11. Ortocentro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
5.12. Baricentro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
5.13. Incentro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
5.14. Incentro inc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
5.15. Triángulo inscrito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
5.16. La opción medial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
5.17. Polı́gono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
5.18. Polı́gono (a) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
5.19. Polı́gono (b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
5.20. La opción poligonplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Walter Arriaga Delgado MAPLE xv

5.21. El cuadrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217


5.22. El hexágono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
5.23. El octágono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
5.24. El cubo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
5.25. La opción polygonplot3d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
5.26. La opción polyhedraplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
5.27. La opción octahedron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
5.28. La opción coordplot3d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
5.29. La opción spacecurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
5.30. El cubo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

6.1. Raı́ces del polinomio P (x) = 3x3 − 14x2 + x + 1 . . . . . . . . . . . . . . . . . 250


6.2. Raı́ces del polinomio P (x) = x3 − 3x2 − 9x + 2 . . . . . . . . . . . . . . . . . . 251
xvi MAPLE Walter Arriaga Delgado
Índice de cuadros

1.1. Operadores aritméticos básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 14


1.2. Ejemplos de operadores aritméticos básicos . . . . . . . . . . . . . . . . . . . . 15
1.3. Uso de comandos en maple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4. Uso de funciones matemáticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5. Hojas de cálculo - Spreadsheets . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.6. Spreadsheets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.7. Ejemplo 1.17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

6.1. Sentencia for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

xvii
xviii MAPLE Walter Arriaga Delgado
1

PRESENTACIÓN DEL MAPLE

Objetivos:
z Entender lo que es el sistema Maple.

z Adquirir las nociones básicas del trabajo con Maple.

z Manejar la ayuda y la interfaz del programa.

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.

z Desarrollar la capacidad de abstracción como base para el análisis de problemas sencillos


y el diseño posterior de algoritmos que los resuelvan.

1
2 MAPLE Walter Arriaga Delgado

1.1. Introducción

Un lenguaje de programación, es un conjunto de reglas, que sirven para escribir series


de instrucciones (llamadas programas), que permiten a un computador realizar determinadas
tareas.
El programa que se describe en este texto es probablemente muy diferente a todos los que se
ha 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, 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.

1.2. Definición de MAPLE

MAPLE es un lenguaje de programación, dotado de un interprete acompañado de una


enorme biblioteca de funciones básicas los cuales se ejecutan mediante órdenes dispuestos por
comandos.
MAPLE es un programa desarrollado desde 1980 por el grupo de Cálculo Simbólico de la
Universidad de Waterloo (Ontario, CANADA). Su nombre proviene de las palabras MAthe-
matical PLEasure (el placer de las matemáticas).
Este sistema es un entorno completo para la resolución de problemas matemáticos que
soporta gran número de operaciones matemáticas. Con más de 3000 comandos que permiten
abarcar desde el álgebra y la aritmética básicas hasta las matemáticas más avanzadas, Maple
se caracteriza por su interactividad, que permite al usuario introducir expresiones con una
sintaxis próxima a la notación matemática, que el sistema evalúa, mostrando el correspondiente
resultado y quedando a la espera de nuevas instrucciones. Además, es un sistema abierto y
extensible, que dispone de un lenguaje de programación de alto nivel con el que se pueden
definir constantes, funciones y dominios, junto con las estructuras de datos y las operaciones
que permitan manipular y representar esos dominios.

1.2.1. Uso interactivo

La Interfaz. La interfaz de usuario de Maple, es muy similar a la de la mayorı́a de los


programas para Windows. Dispone de menús despleglables, botones de maximizar, minimizar
y cerrar, menús de archivo, edición, opciones, ayuda, etc. y barras de herramientas.
Muchas de las opciones del menú son similares a las de otros programas.
Walter Arriaga Delgado MAPLE 3

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:

Figura 1.1: La interfaz

1.3. Iniciando Maple 8

Para iniciar MAPLE 8, procederemos de la siguiente manera:

a. Hacemos clic sobre el botón inicio, en la barra de tareas.

b. Escogemos programas

c. Escogemos Maple 8

Veamos la figura 1.2:


También se puede iniciar Maple 8 haciendo doble clic en el icono:

1.4. Descripción del menú del Maple

1.4.1. Barra de herramientas de la hoja de trabajo (Toolbar)

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

Figura 1.2: Iniciando Maple

Figura 1.3: Icono Maple

1. Crea una nueva hoja de trabajo.

2. Abre una hoja de trabajo existente.

3. Abre un URL especificado.

4. Guarda la hoja de trabajo activa.

5. Imprime la hoja de trabajo activa.

6. Corta la selección al portapapeles.

7. Copia la selección al portapapeles.

8. Pega los volúmenes del portapapeles en la hoja de trabajo actual.

9. Deshace el último funcionamiento.

10. Restablece el funcionamiento previamente deshecho.

11. Inserta la notación matemática standard no ejecutable en una región del texto.

12. Inserta el texto al cursor.


Walter Arriaga Delgado MAPLE 5

13. Inserta un nuevo grupo de la ejecución después del cursor.

14. Quita la sección que incluye la selección.

15. Incluye la selección en una sección o subdivisión.

16. Entra la historia del hipervı́nculo hacia atrás.

17. Entra la historia del hipervı́nculo hacia adelante.

18. Cancela el cómputo en marcha.

19. Amplifica el tamaño al 100

20. Amplifica el tamaño al 150

21. Amplifica el tamaño al 200

22. La barra muestra los caracteres, los mismos que no son impresos.

23. Redimensiona la ventana activa para llenar el espacio disponible.

24. Reinicia el Maple.

Figura 1.4: Barra de herramientas


6 MAPLE Walter Arriaga Delgado

1.4.2. Barra del contexto para las regiones del texto

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.

4. Pone en negrita el texto seleccionado.

5. Pone en cursiva el texto seleccionado.

6. Subraya el texto seleccionado.

7. Encuadra el texto a la izquierda.

8. Centra el texto.

9. Encuadra el texto el lado a la derecha.

Figura 1.5: Barra de contexto para las regiones del texto


Walter Arriaga Delgado MAPLE 7

1.4.3. Barra del contexto para el rendimiento del Maple

Esta barra de contexto presenta las siguientes descripciones cuando el cursor está en el
rendimiento del Maple:

1. Cambia la notación en matemática y la notación del Maple.

2. Cambia el tipo de la expresión entre ejecutable y no ejecutable.

3. Ejecuta la expresión actual.

4. Ejecuta la hoja de trabajo.

5. Reemplaza todas las ocurrencias de la selección con los contenidos del campo de edición.

6. Aplica los cambios a la orden actual.

7. Cancela los cambios actuales a la orden.

Figura 1.6: Barra de contexto para el rendimiento del Maple

1.5. Escribiendo en Maple 8

Cada vez que en una lı́nea (región de entrada) se introduzca una expresión, comando o
función, etc. Se debe:

Escribir al final de cada proceso el punto y coma (;).

Luego pulsar la tecla enter (intro)


8 MAPLE Walter Arriaga Delgado

Y obtenemos los resultados requeridos en la lı́nea siguiente (región de salida).

Ejemplo 1.5.1. Si queremos obtener el resultado de:


 
3 7
10 − 2 1 − +
4 2
Debemos escribir la expresión dada en el lenguaje Maple (teniendo en cuenta los operadores
que describiremos más adelante) de la siguiente manera:
> 10-2*(1-3/4)+7/2;
13

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.

1.6. Guardando una sesión de trabajo

Existen tres maneras distintas de guardar una sesión de trabajo en un fichero para su
utilización o modificación:

Seleccionamos save o save as (guardar como) del Menú File.

Haciendo doble clic sobre el botón guardar.


Walter Arriaga Delgado MAPLE 9

Pulsando las teclas control + S.

En cualquiera de los casos aparece una ventana denominada “Guardar como” como en la
figura (1.7):

Figura 1.7: Guardando una sesión de trabajo

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)

Figura 1.8: Guardando una sesión de trabajo en un disco


10 MAPLE Walter Arriaga Delgado

1.7. Recuperar un archivo almacenado en disco

Existen tres maneras distintas para recuperar o abrir una hoja de trabajo previamente
guardada:

Seleccionando open del menù File.

Haciendo doble clic sobre el botón abrir.

Pulsando las teclas: control + O.

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

Figura 1.9: Recuperar un archivo

Una vez completados los datos anteriores, debe pulsarse el botón Aceptar para ejecutar el
proceso.

1.8. Iniciar una nueva sesión de trabajo

Existen tres maneras distintas para iniciar una nueva sesión de trabajo con una hoja en
blanco:

Seleccionar New del menú File.

Hacer clic sobre el boton nuevo.

Pulsar las teclas: control + U.


Walter Arriaga Delgado MAPLE 11

1.9. Abandonar Maple

Tres maneras diferentes para salir del Maple:

Seleccionar Exit del meuú File.

Hacer clic sobre el botón cerrar.

Pulsar las teclas Alt + F4.

Utilizando cualquiera de las tres opciones anteriores, regresamos a la ventana administrador


de archivo de windows.

1.10. Zonas o regiones de trabajo (worksheet)

En una hoja de trabajo se pueden distinguir cuatro tipos de zonas:

Zona de Entrada: Es en donde el usuario introduce las instrucciones correspondientes a


los procesos que se desean realizar, se caracteriza por el color rojo.

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

Para convertir de nuevo una zona de entrada se pulsa el botón: >


Z
Cuando en una zona de texto se quiere introducir una fórmula, como por ejemplo x2 dx,
se usa el botón Σ o la opción Standard Math del menú Insert.

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

Figura 1.10: Paletas de los principales comandos de Maple

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.

1.11. Operadores aritméticos básicos

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

Figura 1.11: Zonas o regiones de trabajo

Figura 1.12: Sección y subsección

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.

1.12. Funciones matemáticas

Las funciones matemáticas que MAPLE utiliza son las siguientes:


14 MAPLE Walter Arriaga Delgado

+ suma > mayor que


− resta >= mayor o igual que
∗ producto = igual
/ división <> no igual o diferente
^ potencia := operador de asignación
∗∗ potencia and and lógico
! factorial or or lógico
mod módulo union unión de conjuntos
< menor que intersect intersección de conjuntos
<= menor o igual que minus diferencia de conjuntos

Cuadro 1.1: Operadores aritméticos básicos

a. Funciones racionales, como por ejemplo:

x2 + 2x + 3 x2 − xy + y 2
f (x) = g(x) =
x+5 x2 + y 2

b. Funciones trigonométricas directas e inversas:

sin cos tan cot


sec csc arcsin arccos
arctan arccot arcsec arccsc

c. Funciones exponenciales y logarı́tmicas:

exp ln log[b] log10

Aquı́ log[b] significa logaritmo en base b, y log10 significa logaritmo decimal.

Constantes especiales
Hay varias constantes en Maple que es útil para las fı́sicas. Ellas son:

> Pi;I;infinity;
π


Walter Arriaga Delgado MAPLE 15

Operación Operadores matemáticos Operadores en Maple


suma 8+3 8+3
resta 7−2 7−2
multiplicación 3×5 3∗5
división 18 ÷ 3 18/3
potencia 43 4^3 o 4**3
operación combinada (9/4) × 8 + 1 9/4 ∗ 8 + 1
potencia de potencia 532 5^(3^2)

raı́z Cuadrada 9 sqrt(9) o 9^(1/2)
factorial 5! 5!
valor absoluto |5| abs(15)
exponencial e3 exp(3)

Cuadro 1.2: Ejemplos de operadores aritméticos básicos

Para ver el valor de pi se usa el comando eval.

> evalf(Pi,70);

3,141592653589793238462643383279502884197169399375105820974944592307816

1.13. Uso de comandos en maple

Un comando en MAPLE viene acompañado de uno o más argumentos, expresiones o


parámetros, que están entre paréntesis y separados por comas. La expresión usada por los
comandos es la siguiente:
Comando(expr1,expr2,expr3,......,exprN);
Entre los comandos más usados tenemos: (Vea la tabla 1.4) Además de las operaciones ar-
itméticas como suma o producto, Maple dispone de las funciones matemáticas más usadas.
Nombraremos las más comunes: (Vea la tabla 1.4)
16 MAPLE Walter Arriaga Delgado

Distribuye las multiplicaciones sobre adiciones. También, aplica varias


expand
reglas de ángulos para funciones trigonométricas.
combine Agrupa términos de expresiones.
igcd Calcula el máximo común divisor
ilcm Calcula el mı́nimo común múltiplo
factor Factoriza expresiones de una o más variables
coeff Extrae un determinado coeficiente de un polinomio
tcoeff Obtiene el coeficiente del término de menor grado de un polinomio
set Se usa para definir un conjunto
solve Se usa para resolver ecuaciones e inecuaciones
linsolve Calcula las soluciones de un sistema lineal
evalf Evalúa operaciones aritméticas
evalm Evalúa matrices
plot Grafica funciones en dos dimensiones
plot3d Grafica funciones en tres dimensiones

Cuadro 1.3: Uso de comandos en maple

1.14. Errores y ayuda

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

Cuadro 1.4: Uso de funciones matemáticas

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

Usaremos la opción assume cuando sea necesario.


Finalmente, usted puede necesitar asumir dos condiciones en una variable, como c > 0 y
c < 1. Maple le permite hacer esto de dos maneras.
Usted o puede poner ambas condiciones dentro de una sola orden assume
> assume(c > 0,c < 1);
o usted puede hacerlo en dos (o más) pasos que usan el orden adicionalmente, ası́,
> assume(c > 0);
> additionally(c<1);
La razón es que usted no puede usar simplemente dos órdenes assume, esto se debe a que
siempre que usted use assume en una variable borra todas las asunciones anteriores puestas
en esa variable.
Walter Arriaga Delgado MAPLE 19

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.

2. Ejemplo, el siguiente comando generará la página de ayuda de solve:


> ?solve
Cuando el sistema de ayuda no dispone de información sobre el concepto solicitado,
proporciona en su lugar una página de ayuda con el conjunto de nombres conocidos por
Maple cuyos caracteres empiecen con el dado:
> ?so
Al ejecutar la anterior instrucción Maple genera una página de ayuda en la que incluye
enlaces a las páginas de ayuda de: solve, solvefor y sort.

3. Desde los menús desplegables: En Help/Topic Search...

4. En la ventana, en Topic se introduce el concepto.

Figura 1.13: Topic search


20 MAPLE Walter Arriaga Delgado

1.14.3. Hiperenlaces o hipervinculos

Un hiperenlace es una herramienta de Navegación. Cuando en una hoja de trabajo de Maple


aparece una palabra en color y subrayada, por ejemplo diff se puede, pulsando sobre ella con
el botón izquierdo del ratón o con la tecla de ¡Intro¿, obtener información. Esta información
puede ser una página de ayuda, otro archivo de Maple u otra parte de la sesión de trabajo
actual. El botón con la señal de Stop sirve para detener la ejecución de una sentencia Maple.
Cuando el sistema está realizando cálculos el botón se activa, permitiendo con su pulsación
interrumpir la ejecución.
Operaciones básicas:
:= ....................................... Asignación
% ....................................... Resultados precedentes
+, ,*, / ....................................... Operadores aritméticos habituales
Help, ? ....................................... Petición de ayuda
File/New ....................................... Crear una hoja de trabajo nueva
File/Open ....................................... Abrir una hoja de trabajo ya creada
File/Save ....................................... Salvar la hoja actual.
File/Print ....................................... Imprimir la hoja actual
File/Exit ....................................... Salir del sistema
restart ....................................... Reiniciar el sistema
Veamos algunos ejemplos:
> exp(5);
e5

> 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

si queremos con 3 dı́gitos


> evalf(sin(3*Pi/4),3);
,705
Walter Arriaga Delgado MAPLE 21

También podemos asignar subı́ndices a las variables, esto lo conseguimos de la siguiente


manera.
> x[1]:=1;x[2]:=2;
x1 := 1

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

[BlockDiagonal, GramSchmidt, JordanBlock,


LUdecomp, QRdecomp,
Wronskian, addcol, addrow, adj, adjoint, angle, augment, backsub,
band, basis, bezout, blockmatrix, charmat, charpoly, cholesky,
col, coldim, colspace, colspan, companion, concat, cond, copyinto,
crossprod, curl, definite, delcols, delrows, det, diag, diverge,
dotprod, eigenvals, eigenvalues, eigenvectors, eigenvects,
entermatrix, equal, exponential, extend, ffgausselim, fibonacci,
forwardsub, frobenius, gausselim, gaussjord, geneqns, genmatrix,
grad, hadamard, hermite, hessian, hilbert, htranspose, ihermite,
indexfunc, innerprod, intbasis, inverse, ismith, issimilar,
iszero, jacobian, jordan, kernel, laplacian, leastsqrs, linsolve,
matadd, matrix, minor, minpoly, mulcol, mulrow, multiply, norm,
normalize, nullspace, orthog, permanent, pivot, potential,
randmatrix, randvector, rank, ratform, row, rowdim, rowspace,
rowspan, rref, scalarmul, singularvals, smith, stackmatrix,
submatrix, subvector, sumbasis, swapcol, swaprow, sylvester,
22 MAPLE Walter Arriaga Delgado

toeplitz, trace, transpose, vandermonde, vecpotent, vectdim,


vector, wronskian]

La cual nos arroja una lista de comandos que se van a utilizar a lo largo de la sesión de trabajo.

1.16. Trabajando con Maple

Veamos algunos ejemplos:

Máximo Común Divisor.

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

La Sucesión de Fibonacci La Sucesión de Fibonacci es la sucesión de números natu-


rales en donde los dos primeros son iguales a 1, y cada uno de los términos que siguen
es igual a la suma de los dos anteriores. Ası́, los 10 primeros términos de la sucesión de
Fibonacci son:
{1, 1, 2, 3, 5, 8, 13, 21, 34, 55}

Usaremos la orden with(combinat): ó with(combinat, fibonacci): para que MAPLE car-


gue la biblioteca de funciones combinatorias. Ejemplos:
> with(combinat):
Warning, the protected name Chi has been redefined and unprotected
> fibonacci(15);
610

> 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

Repitiendo dos o tres veces esté sı́mbolo se accede al penúltimo y al antepenúltimo


resultado, respectivamente:
> % %, % % %;
Además podemos representar la sucesión haciendo:
> with(combinat, fibonacci):
> seq(fibonacci(i), i=0..10);

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55

> seq(fibonacci(i), i=-10..0);

−55, 34, −21, 13, −8, 5, −3, 2, −1, 1, 0

> seq(fibonacci(i, x), i=1..5);

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

En Maple se distingue entre la entrada de instrucciones al sistema que se realiza pulsando


<Intro> y el salto de lı́nea, para el cuál hay que pulsar las teclas: <Intro> + <Mayúsculas>
> 35*8+
24 MAPLE Walter Arriaga Delgado

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.

Ejemplo 1.16.1. Grafiquemos la función y = cos(x)


> plot(cos(x),x);

0.5

–10 –8 –6 –4 –2 0 2 4 6 8 10
x

–0.5

–1

Figura 1.14: Función y = cos(x)

Ejemplo 1.16.2. Grafiquemos la función z = x2 + y 2


> plot3d(x^2+y^2,x=-4..4,y=-4..4,style=PATCH);

Ejemplo 1.16.3. Usando el comando with(plots)


> with(plots):
Warning, the name changecoords has been redefined
> animate3d( cos(t*x)*sin(t*y), x=-Pi..Pi, y=-Pi..Pi, t=1..2 );
Walter Arriaga Delgado MAPLE 25

Figura 1.15: Un paraboloide

Figura 1.16: Una animación

1.17. Hojas de cálculo (Spreadsheets)

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

Ejemplo 1.17.1. Tabular la expresión y = x2 + 2x − 4


Una vez insertada la hoja de cálculo (Spreadsheet) en la hoja de trabajo (worksheet) tal como
se ha indicado antes, modifique el tamaño hasta que sea de cuatro filas y cuatro columnas o
mayor. En la casilla ’A1’ teclee un 1 y pulse intro. Seleccione las cuatro primeras casillas de
la primera columna y haga clic en el botón de la figura 1.17.
Introduzca el valor 1 en Step Size del cuadro de diálogo que aparece y luego presione enter.
La hoja de cálculo queda de la siguiente manera:

A B C D
1 1
2 2
3 3
4 4
5
6
7

Cuadro 1.5: Hojas de cálculo - Spreadsheets

En la casilla ’B1’ teclee: ∼ A12 + 3∗ ∼ A1 − 4. 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, luego presione enter y obtiene la siguiente tabla:

A B C D
1 0
2 6
3 14
4 24
5
6
7

Cuadro 1.6: Spreadsheets

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

Ahora borre los datos de la columna B y realice el siguiente ejemplo:

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

Cuadro 1.7: Ejemplo 1.17

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.

Figura 1.17: Un botón importante

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

Es la parte de la matemática elemental que trata de la expresión, computación o cálculo


y propiedades de los números. Es decir la Aritmética estudia las clases de números (natu-
rales, enteros, racionales, reales, pares, impares, primos, fraccionarios, etc.) y las operaciones
que con ellos se pueden efectuar (adición, sustracción, multiplicación, división, potenciación,
radicación,etc.). Pitágoras es considerado padre de la aritmética.

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

> max (3, abs(-5), 2, 1), min (-2, 3, 4, -4), sqrt(81);

5, −4, 9

> ifactor(3456789764350076548);

(2)2 (137)(179)(1229)(28673948111)

> expand( %);


3456789764350076548

2.1.1. Algunas constantes matemáticas

El número π se escribe Pi (Maple conoce algunas de sus propiedades). Si se escribe pi, se


pone el sı́mbolo, pero no se evalúa.

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

Las variables se utilizan para asignar valores.

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

MAPLE busca el contenido de la caja con dirección a con el comando


> a;
3

Ahora escribimos
> a:=b;
a := b
32 MAPLE Walter Arriaga Delgado

> b:=c;

b := c

> c:=4;

c := 4

Contestar (mentalmente) las siguientes preguntas:

1. ¿Cuáles son los valores de a, b y c ?

2. Si asigna a y b el valor 56, ¿qué valores toman a, b y c?

> 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

Un nombre válido es una cadena de caracteres (letras, números y signos de puntuación)


empezando por una letra o un signo de subrayado (− ).
> manzanas:=4;
manzanas := 4

> 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

El sistema distingue entre mayúsculas y minúsculas:


> a:=3; b:=2; a^b; restart; a^b;

a := 3

b := 2

ab

2.1.4. Funciones y expresiones

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

Para definir funciones sencillas se usa el operador flecha − >


> f:=x->x^2;
f := x → x2

> f(2), f(x),f(y);


4, x2 , y 2

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

> restart: f(3);


f (3)

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. Secuencias o sucesiones

2.2.1. Definición

Una secuencia es un conjunto de varias expresiones o datos de cualquier tipo separados


por comas, ejemplo:
> sec0:=enero, febrero, marzo,22,23;

sec0 := enero, f ebrero, marzo, 22, 23

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;

sec4 := enero, f ebrero, marzo, 22, 23, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

También podemos obtener un elemento especı́fico de una secuencia usando los corchetes [ ],
ejemplo:
> sec4[3];sec4[3..7];
marzo

marzo, 22, 23, 1, 2

EJERCICIOS PROPUESTOS 2.2.1.

1. Construir la sucesión de los 150 primeros números pares.

2. Construir la sucesión de los 150 primeros números impares.

3. Construir la sucesión de los números pares de dos cifras.

4. Construir la sucesión de los números impares de dos cifras.

5. Construir una sucesión que contenga a las sucesiones anteriores.

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.

El orden de los elementos no tiene importancia.

Los conjuntos se simbolizan con letras mayúsculas: A, B, C, D, . . . . . .

Los elementos se simbolizan con letras minúsculas: a, b, c, d, . . . . . .

Conjunto en Maple es una colección no ordenada de expresiones diferentes. Para evitar la


ambigüedad de la palabra conjunto, usaremos la palabra set (en inglés) La forma de definir
un set en Maple es mediante una secuencia encerrada entre llaves {}, ejemplo:

> set1:={1,2,3,5,-1,3,8,1};
set1 := {1, 2, 3, 5, −1, 3, 8, 1}

> set2:={rojo,verde,blanco,azul};

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};

set3 := {verde, azul, negro, rojo, amarillo}

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}

b. La función op devuelve todos o algunos de los elementos del set, ejemplo:


> op(set3);
verde, azul, negro, rojo, amarillo

> op(5,set3);
amarillo
38 MAPLE Walter Arriaga Delgado

> op(2..5,set3);

azul, negro, rojo, amarillo

c. La función nops devuelve el número de elementos, ejemplo:


> nops(set3);

2.3.2. Operaciones con conjuntos

Dados los conjuntos:


A = {1,2,3,5,9,11,13} y B = {5,9,13,18,21}
> setA:={1,3,5,9,11,13};

setA := {1, 3, 5, 9, 11, 13}

> setB:={5,9,13,18,21};

setB := {5, 9, 13, 18, 21}

Unión o reunión de conjuntos (∪)

Vea la figura 2.1


Para hallar la unión del conjunto A con el conjunto B: A∪B, usemos la opción union.

B A B A
A
B

Figura 2.1: Unión o reunión de conjuntos (∪)

> setAUB:=setA union setB;

setAU B := {1, 3, 5, 9, 11, 13, 18, 21}


Walter Arriaga Delgado MAPLE 39

Intersección de conjuntos (∩)

Vea la figura 2.2


Para hallar la intersección del conjunto A con el conjunto B: A∩B, usemos la opción intersect.

B A
A B A

Figura 2.2: Intersección de conjuntos (∩)

> setAintersectB:=setA intersect setB;

setAintersectB := {5, 9, 13}

Diferencia de conjuntos

Vea la figura 2.3


Para hallar la diferencia del conjunto A con el conjunto B: A−B, usemos la opción minus.

B A
A

Figura 2.3: Diferencia de conjuntos


40 MAPLE Walter Arriaga Delgado

> setAmenosB:=setA minus setB;

setAmenosB := {1, 3, 11}

Diferencia simétrica

Vea la figura 2.4


Para hallar la diferencia simétrica de A con B: A∆B, usaremos la siguiente propiedad:

B
A

Figura 2.4: Diferencia simétrica

A∆B = (A ∪ B) − (A ∩ B)

A∆B = (A − B) ∪ (B − A)

> AdifsimB:=(setA union setB) minus (setA intersect setB);

Adif simB := {1, 3, 11, 18, 21}

> AdifsimB:=(setA minus setB) union (setB minus setA);

Adif simB := {1, 3, 11, 18, 21}

Pertenencia

La opción member permite determinar si cierto elemento pertenece o no al conjunto


> member(1,setA);
true
Walter Arriaga Delgado MAPLE 41

> 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);

Otra forma de determinar la unión, intersección y diferencia de conjuntos es la siguiente:


> ‘union‘(setA,setB);
{1, 3, 5, 9, 11, 13, 18, 21}

> ‘intersect‘(setA,setB);
{5, 9, 13}

> ‘minus‘(setA,setB);
{1, 3, 11}

La función type permite determinar el valor de verdad de una operación, ejemplo:


> type(setA,set);
true

> type(setA,list);
f alse

2.3.3. Listas (lists)

Una lista es un conjunto ordenado de expresiones o de datos contenidos en corchetes [ ].


En las listas se respeta el orden definido por el usuario y puede haber elementos repetidos.
Las elementos de una lista pueden ser listos o sets.
> lista1:=[{p,e,r,r,o},{g,a,t,o},{p,a,l,o,m,a}];

lista1 := [{p, e, r, o}, {g, a, o, t}, {a, l, p, o, m}]


42 MAPLE Walter Arriaga Delgado

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;

{negro, verde, azul, rojo, amarillo}

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]

si deseamos cambiar un elemento por otro, entonces usaremos la función subsop


> subsop(3=blanco,lista2);

[verde, azul, blanco, rojo, amarillo]

la función subs sirva para reemplazar un elemento por el propio valor


> lista3:=[op(lista2),negro];

lista3 := [verde, azul, negro, rojo, amarillo, negro]

> subs(negro=blanco,lista3);

[verde, azul, blanco, rojo, amarillo, blanco]


Walter Arriaga Delgado MAPLE 43

> lista4:=[lista2,lista3];

lista4 := [verde, azul, negro, rojo, amarillo, verde, azul, negro, rojo, amarillo, negro]

> type(lista4,listlist);
f alse

Para convertir una lista en un set o viceversa se hace lo siguiente:


> convert(lista3,set);
{rojo, verde, azul, negro, amarillo}

> convert(set2,list);
[rojo, verde, blanco, azul]

> lista2:=[op(set3)];

lista2 := [verde, azul, negro, rojo, amarillo]

> listA:=[x$3,y$2];
[x, x, x, y, y]

> A:convert(listA,set);

{x, y}

Nota: la lista vacı́a y el conjunto vacı́o se puede construir de la siguiente manera:


> listaB1:=[NULL];
listaB1 := [ ]

> setB1:=[NULL];
setB1 := [ ]

sea la lista
> listaC1:=[5,4,3,2,1];

listaC1 := [5, 4, 3, 2, 1]

si queremos reemplazar 4 por x y eliminar el 1 hacemos


> subsop(2=x,5=NULL,listaC1);

[5, x, 3, 2]
44 MAPLE Walter Arriaga Delgado

2.3.4. Determinación de un conjunto

Determinación por extensión, de forma tabular o enumerativa

Cuando se nombran explı́citamente los elementos de dicho conjunto.


Para determinar un conjunto por extensión usaremos el comando seq Ejemplo:
Determinar por extensión el conjunto A = {n2 + 3n/n ∈ Z, 1 ≤ n ≤ 5}
> A:={seq(n^2+3*n,n=1..5)};

A := {4, 10, 18, 28, 40}

Determinación por comprensión o de forma constructiva

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:

b1 (n − 1) c1 (n − 1)(n − 2) d1 (n − 1)(n − 2)(n − 3)


an = a1 + + + ······
1! 2! 3!

Ejemplo 2.3.1. Determinar por comprensión el conjunto A = {−2, 0, 4, 10, 18}

Solución

0 4 10
−2 18

+2 +4
+6 +8

+2 +2 +2

Figura 2.5: Determinación por comprensión de un conjunto

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};

A := {−2, 0, 4, 10, 18}


Walter Arriaga Delgado MAPLE 45

> 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

luego aplicando la fórmula:


> simplify(a1+b1*(n-1)+c1*(n-1)*(n-2)/2!+d1*(n-1)*(n-2)*(n-3)/3!+e1*(n-1)*(n-2)*(n-3)*(n-
4)/4!);

−2 − n + n2

Determinar por comprensión el conjunto B = {2, 9, 28, 65, 126}


> B:={2,9,28,65,126};

B := {2, 9, 28, 65, 126}

> 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

luego aplicando la fórmula:


> simplify(a1+b1*(n-1)+c1*(n-1)*(n-2)/2!+d1*(n-1)*(n-2)*(n-3)/3!+e1*(n-1)*(n-2)*(n-3)*(n-
4)/4!);
1 + n3

2.3.5. Conjunto potencia

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}}

Si queremos hallar el número de combinaciones o el número de elementos del conjunto potencia,


usaremos la función numbcomb.
> numbcomb(a, b, c);
8

EJERCICIOS PROPUESTOS 2.3.1.

1. Dados los conjuntos:


A = {los 50 primeros números pares}
B = {los 50 primeros números impares}
C = {los 25 primeros números primos}
D = {n2 − 1/n ∈ N ∧ 1 ≤ n ≤ 10}
Hallar:
A∪B , A∪C , A∪D , B∪C , B∪D , C∪D , A∪B∪C∪D ,
Walter Arriaga Delgado MAPLE 47

A∩B , A∩C , A∩D , B∩C , B∩D , C∩D , B∩C∩D


A−B , A−C , A−D , B−C , B−D , C−D , C−A , C−B , D−C , D−B
A∆B, A∆C, A∆D, B∆C, B∆D, C∆A, B∆A
P(B∩C) , P(B∩D) , P(C∩D) , P(B∩C∩D)
Indicar el número de elementos de las operaciones anteriores.

2. Determinar por extensión los siguientes conjuntos:

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 = {2, 5, 10, 17, 26}

b) R = {3, 7, 13, 21, 31}

c) R = {1, 3, 7, 13, 21}

d) I = {4, 7, 12, 19, 28}

e) A = {8, 14, 22, 32, 44}

f) G = {6, 17, 34, 57, 86}

g) A = {12, 27, 52, 87, 132}

4. Determinar el conjunto potencia y el número de elementos del conjunto potencia de 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.

2.4.1. Divisores de un número

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);

divisores := {1, 2, 4, 8, 16, 32}

2.4.2. Número de divisores de un número

La función tau determina el número de divisores de un número.


> no dedivisores:=tau(32);

no dedivisores := 6

2.4.3. Suma de divisores de un número

La función sigma determina la suma de divisores de un número.


> sumadedivisores:=sigma(32);

sumadedivisores := 63
Walter Arriaga Delgado MAPLE 49

2.4.4. Producto de divisores de un número

Para determinar el producto de divisores de un número haremos uso de la fórmula matemática:



P roductodedivisores = anúmero de divisores de a

> productodedivisores:=sqrt(36^(tau(36)));

productodedivisores := 10077696

EJERCICIOS PROPUESTOS 2.4.1.

1. Hallar los divisores de los siguiente números:


a) 16 b) 30 c) 62 d) 124 e) 1032

2. Indique el número de divisores de los ejercicios de la pregunta 1.

3. Indique la suma de divisores de los ejercicios de la pregunta 1.

4. Indique el producto de divisores de los ejercicios de la pregunta 1.

2.5. Mı́nimo común múltiplo y máximo común divisor

2.5.1. Mı́nimo común múltiplo

La función ilcm nos permite determinar el mı́nimo común múltiplo de números enteros.

Ejemplo 2.5.1. Hallar el mı́nimo común múltiplo de 24, 45, 23.


> mcm:=ilcm(24,45,23);
mcm := 8280

2.5.2. Máximo común divisor

La función igcd nos permite determinar el máximo común divisor de números enteros.

Ejemplo 2.5.2. Hallar el máximo común divisor de 32, 34, 56.


> MCD:=igcd(32,34,56);
2

EJERCICIOS PROPUESTOS 2.5.1.


50 MAPLE Walter Arriaga Delgado

1. Hallar el mı́nimo común múltiplo de:


a) 12,45,81 b) 16,48,62 c) 34,27,21 d) 15,100,150 e) 8,28,34

2. Hallar el máximo común divisor de:


a) 48,80,112 b) 48,120,168 c) 45,105,195
d) 1800,1560,2040 e) 315,855,1035

2.6. Sistemas de numeración

Usaremos el comando convert para convertir un número de base n a otro de base m.

2.6.1. Conversión de un número de base 10 a otro de base m

Se divide el número dado N entre el valor de m , de la base deseada, luego el cociente


resultante se divide entre el valor de m y ası́ sucesivamente hasta obtener un último cociente
cuyo valor sea menor a la base. Luego se toma el último cociente y los residuos en el siguiente
orden: del más reciente al más antiguo y se forma el número en base m.

Ejemplo 2.6.1. Representar el número 34216 en base 12.

Solución

34216 12
102 2851 12
061 45 237 12
117 19 12
016 91
4 7 9 7 1

Figura 2.6: Sistemas de numeración

Luego 34216 = 1797412


Comando: convert(N,base,m);
Walter Arriaga Delgado MAPLE 51

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

Ejemplo 2.6.2. Convertir el número 34216 a base 12


> convert(34216,base,12);
[4, 7, 9, 7, 1]

la salida representa al número 17974 en base 12.

Ejemplo 2.6.3. Convertir el número 17 a base 3


> convert(17,base,3);
[2, 2, 1]

la salida representa al número 122 en base 3.

2.6.2. Conversión de un número de base m a otro de base n

Usaremos el comando convert(número,base,m,n);

Ejemplo 2.6.4. Convertir 122 en base 3 a base 10


> convert([2,2,1],base,3,10);
[7, 1]

la salida representa al número 17 en base 10.

Otras aplicaciones de la función convert

2.6.3. Conversión de un decimal a fracción

Usaremos el comando convert.

Ejemplo 2.6.5. Convertir 0.125 a fracción


> convert(0.125,fraction);
1
8
Convertir π a fracción
> convert(evalf(Pi),fraction);
104348
33215
52 MAPLE Walter Arriaga Delgado

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

2.6.5. Parte fraccionaria

La función frac, devuelve la parte decimal del número dado.

Ejemplo 2.6.7.

> frac(-3.792);frac(23/17);frac(23118);frac(23/18.);

−,792

6
17
0

,277777778

> frac(Pi);
π−3

2.6.6. Truncado de un número

La función trunc, devuelve la parte truncada del número dado.

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 := π

EJERCICIOS PROPUESTOS 2.6.1.

1. Convertir 1562 a base 2.

2. Convertir 7640289 a base 5.

3. Convertir 2112021 en base 3 a base 4.

4. Convertir 65213 en base 8 a base 3.

5. Convertir 0.015625 a fracción.

2.7. Números primos

Un número primo es aquel número que es divisible entre 1 y entre sı́ mismo.

2.7.1. Comandos importantes

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

c. La función isprime permite conocer si un número dado es primo.


> isprime(149);
true

> 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:

a. Para construir la sucesión de los números primos:


> seq(ithprime(i),i=1..10);

2, 3, 5, 7, 11, 13, 17, 19, 23, 29

> 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

b. Para construir el conjunto de los números primos:


> set1:={seq(ithprime(i),i=1..20)};

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

c. Para construir la suma de los n primeros números primos:


> primos:={seq(ithprime(i),i=1..20)};

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

2.7.2. Descomposición de un número en factores primos

La función ifactor nos permite descomponer un número en factores primos.

Ejemplo 2.7.1.

> ifactor(1350);
(2)(3)3 (5)2

EJERCICIOS PROPUESTOS 2.7.1.

1. Descomponer los siguientes números en factores primos:


a) 72 b) 1950 c) 9702 d) 54000 e) 12600

2. Construir la sucesión de números primos de tres cifras mayores que 500.

3. Construir la sucesión de números primos de cuatro cifras mayores 9000.

4. Construir el conjunto de números primos de tres cifras menores que 500.

5. Construir el conjunto de números primos de cuatro cifras menores 1000.

2.8. Sumatorias y productos

2.8.1. Sumatorias

Usaremos el comando sum o Sum para hallar las sumatorias de expresiones.


sum define una suma.
Sum expresa en sumatorias.
56 MAPLE Walter Arriaga Delgado

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

Ejemplo 2.8.3. Hallar la suma de los n primeros números primos.

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.

Hallar la suma de las raı́ces de la ecuación x2 − 4x − 5 = 0.


> sum(k,k=RootOf(x^2-4*x-5=0));
4

Hallar la suma de las raı́ces de la ecuación 3x2 + 45x + 17 = 0


> sum(k,k=RootOf(3*x^2+45*x+17=0));

−15
Walter Arriaga Delgado MAPLE 57

Para hallar la fórmula de la suma de los “n”primeros números naturales:


Primero definimos la sumatoria
> Sum(k,k=1..n);
n
X
k
i=1
Luego calculamos la sumatoria:
> sum(k,k=1..n);
(n + 1)2 n 1
− −
2 2 2
Usando la opción factor para factorizar y reducir la fórmula:
> factor(sum(k,k=1..n));
n(n + 1)
2
por lo tanto:
> Sum(k,k=1..n)=factor(sum(k,k=1..n));
n
X n(n + 1)
k=
2
i=1

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

Usaremos el comando product o Product.


product define una producto.
Product expresa en productos.
5
Y
Ejemplo 2.8.5. Hallar k3
i=1
> Product(k^3,k=1..5);
5
Y
k3
i=1
58 MAPLE Walter Arriaga Delgado

> 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

Podemos hallar el producto de raı́ces o soluciones de una ecuación utilizando el comando


product y la opción RootOf.

Ejemplo 2.8.7.

Hallar el producto de las raı́ces de la ecuación x2 − 4x − 5 = 0.


> product(k,k=RootOf(x^2-4*x-5=0));

−5

Hallar el producto de las raı́ces de la ecuación


> product(k,k=RootOf(3*x^2+45*x+17=0));

17
3

EJERCICIOS PROPUESTOS 2.8.1.

1. Calcular las siguientes sumatorias:


5 10 10
X
2
X 1 X 2k + 1
a) (k + 1) b) 2
c)
k +1 k2 (k+ 1)2
i=1 i=2 i=1
10 10
X X 2k + k(k + 1)
d) k2k e)
2k+1 (k2 + k)
i=1 i=1
n
X
2. Hallar la fórmula para k4
i=1
Walter Arriaga Delgado MAPLE 59

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

6. Calcular los siguientes productos:


5 5 5
Y Y Y k2 + 1
a) k3 b) (k3 + 1) c)
k2 + 3
i=1 i=1 i=1
Y5 Y5
d) (k2 + k + 1) e) (k4 + k2 + 1)
i=1 i=1
60 MAPLE Walter Arriaga Delgado
3

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. Origen y definición

3.1.1. Origen

El origen de la palabra Álgebra data en el siglo IX de nuestra era en la que el matemático


árabe ABUADALA MOHAMEDE IVN MUSA, más conocido como ALJUARIZMI, consider-
ado padre del álgebra, escribe su famoso libro “AL DJABR W’AL MUKABALA” que quiere
decir “transposición y reducción de términos semejantes”.

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. Teoria de exponentes

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

5. (am )n = amn = (an )m


 n
1 1
6. a−n = = n , a 6= 0
a a
 a −n  b n
7. = , a 6= 0, b 6= 0
b a

8. n
a = a1/n , n 6= 0

n √ √ n
9.ab = n a b n 6= 0
r √
a n
a
10. n
= √ , n 6= 0, b 6= 0
b n
b
√ m √ m
11. n am = a n = n a , n 6= 0

√ √
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

> simplify( %);


a(m+n)

Se puede asignar a una variable, cualquier expresión algebraica.

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));

EJERCICIOS PROPUESTOS 3.2.1.

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

23x+2 + 23x+4 + 23x+3


6. Hallar el valor de E =
2x+1 ,2x ,2x+1
−2−1 −2−1
7. Reducir M = 8−9 + 27−9
64 MAPLE Walter Arriaga Delgado

 −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

3.3. Grado de polinomios

3.3.1. Definición de polinomio

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.

Ejemplo 3.3.1. Sea el polinomio p1 (x) = −3x2 + 7x5 + 2x4


> p1:=-3*x^2+7*x^5+2*x^4;
p1 := −3x2 + 7x5 + 2x4

Para determinar todos los coeficientes de p1 hacemos:


> coeffs(p1);
−3, 7, 2

Para determinar el coeficiente de x4 en p1 tecleamos


> coeff(p1,x^4);
2

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

para determinar el coeficiente del término de mayor grado de p1


> lcoeff(p1);

para determinar el coeficiente del término de menor grado de p1


> tcoeff(p1);

−3

para determinar el grado de p1


> degree(p1);

para determinar el menor grado de p1


> ldegree(p1);

Ejemplo 3.3.2. Dado el polinomio p1 (x, y) := 3x2 y 7 + 22x3 y 5 − 12x8 y 2

se tiene:
> p1:=3*x^2*y^7+22*x^3*y^5-12*x^8*y^2;

p1 := 3x2 y 7 + 22x3 y 5 − 12x8 y 2

> coeffs(p1);

3, 22, −12

> lcoeff(p1);

−12

> degree(p1);

10

> ldegree(p1);

> tcoeff(p1);

3
66 MAPLE Walter Arriaga Delgado

3.3.2. Valor numérico de un polinomio

Es el valor que adquiere el polinomio cuando se le asigna determinados valores a sus


variables. Para ello debemos definir el polinomio de una o más variables.

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 := x → 11x3 + 10x2 − 37x + 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 := (x, y) → 2x3 y 5 − 7x3 y 2 − 3x2 y 4

> p3(1,2);
−12

> p3(2,3);
2412

> p3(-1,-3);
306

Teorema 3.3.1. Dado cualquier polinomio se cumple que:

Suma de coeficientes de p(x) = Σ de coef. de p(x) = p(1)

Término independiente de p(x) = T.I. de p(x) = p(0)


Walter Arriaga Delgado MAPLE 67

Ejemplo 3.3.4. Hallar la suma de coeficientes y el término independiente de los siguientes


polinomios:

1. p4 (x) = 2x5 + 13x2 − 10


> p4:=x − > 2*x^5+13*x^2-10;

p4 := x → 2x5 + 13x2 − 10

> p4(0);
−10

> p4(1);
5

2. p5 (x, y) = 2x5 y 4 − 12x3 y 2 − 10x2 y + 15


> p[5]:=(x,y)− > 2*x^5*y^4-12*x^3*y^2-10*x^2*y+15;

p5 := (x, y) → 2x5 y 4 − 12x3 y 2 − 10x2 y + 15

> 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)

donde x es indeterminado y donde a0 , a1 , ..., an ∈ R.


A cada sumando se le denomina monomio; el grado de cada monomio es el grado al que
esté elevada x; el grado del polinomio es el grado de su mayor monomio.
68 MAPLE Walter Arriaga Delgado

Por lo tanto, P (x) es un polinomio en x de grado n.


Nota:

El polinomio 3x2 + 5x − x5 es un polinomio de grado 5 en la variable x ya que el


monomio de mayor grado es 5. Se observa que no está ordenado ya que los grados de los
monomios de grados {2, 1, 5} no forman un conjunto ordenado. En lo que sigue siempre
lo escribiremos ordenado en orden creciente; en nuestro caso: 5x + 3x2 − x5

El polinomio anterior carece de término independiente; el término independiente en el


polinomio anterior P (x) es a0 , al cual se le puede considerar como un monomio de grado
cero.

El polinomio 39 − x2 + 7x4 es de grado cuatro y los coeficientes del mismo forman el


conjunto {39, 0, −1, 0, 7}.

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]);

EJERCICIOS PROPUESTOS 3.3.1.

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:

1. P (x) = 2x7 − 3x5 + 8x3 + 13x4 + 11

2. P (x) = 3x5 − 18x11 + 13x7 − 15x2 − 14


Walter Arriaga Delgado MAPLE 69

40
y
20

–4 –3 –2 –1 0 1 2 3 4
x
–20

–40

p_1
p_2

Figura 3.1: Polinomios

3. P (x) = 10x4 − 8x3 + 6x2 − 4x + 2

4. P (x) = x5 − 4x4 + 2x3 − 5x2 + 3x − 7

5. P (x, y) = 2x3 y 3 − 3x2 y 2 + 4xy + 5

6. P (x, y) = 6x3 y 7 − 8x5 y 4 + 10x2 y 11 + 15x4 y 2

7. P (x, y) = −12x8 y 2 + 13x4 y 3 + 11x2 y 2 − 2

8. P (x, y) = x5 y − 3x6 y 3 + 14xy 15 − 1

9. P (x, y, z) = −2x3 y 2 z + 3xy 2 z 4 − 4x5 y 4 z 2 + 5xyz 6

10. P (x, y, z) = x4 y 3 z 2 − 2x3 y 2 z + 3x2 y + 4

3.4. Operaciones con expresiones algebraicas

Se pueden realizar con las expresiones algebraicas operaciones de suma, resta multiplicación
y división
70 MAPLE Walter Arriaga Delgado

3.4.1. Adición de polinomios

Ejemplo 3.4.1. Hallar la suma de los siguiente polinomios:


A = 5x3 − 2x2 + 6x − 9
B = −2x3 + 6x2 − 4x + 6
C = x3 − 3x2 + 3x + 8
Solución
Primero definimos los polinomios A, B y C
> A:=5*x^3-2*x^2+6*x−9;
A := 5x3 − 2x2 + 6x − 9

> 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

Como puede comprobar el lector, hemos llamado A, B y C a los polinomios anteriores.


Cualquier operación algebraica entre polinomios se realiza en un entorno de MAPLE de una
manera natural tal y como se escribe con lápiz y papel. Valga como ejemplos los siguientes en
los que procedemos a sumar los polinomios anteriormente definidos. Para ello digitamos:
> A+B+C;
4x3 + x2 + 5x + 5

¿Puede MAPLE realizar esta operación de otra forma?


Si; en el caso en que no hubiéramos definido previamente los polinomios A, B y C, podrı́amos
haber operado directamente:
> (5*x^3-2*x^2+6*x-9)+ (-2*x^3+6*x^2-4*x+6)+( x^3-3*x^2+3*x+8);

4x3 + x2 + 5x + 5

Por lo tanto, la operación queda perfectamente realizada; no obstante es preferible el primer


método ya que con él disponemos de los valores de A, B y C para posteriores operaciones.

3.4.2. Sustracción de polinomios

Ejemplo 3.4.2. Sean los polinomios:


P = 6x4 − 3x3 + 4x2 + 7x − 4
Walter Arriaga Delgado MAPLE 71

Q = 4x4 − 2x3 + 2x2 − 3x + 7


Hallar P − Q
Solución
> P:=6*x^4-3*x^3+4*x^2+7*x−4;

P := 6x4 − 3x3 + 4x2 + 7x − 4

> Q:=4*x^4-2*x^3+2*x^2−3*x+7;

Q := 4x4 − 2x3 + 2x2 − 3x + 7

> P-Q;
2x4 − x3 + 2x2 + 10x − 11

3.4.3. Multiplicación algebraica

La función expand del Maple proporciona en general una forma expandida de la expresión
creada de un modo compacto.

Ejemplo 3.4.3. sean los polinomios:


P = 5x2 − 3x + 2x4 + 6
Q = 3x2 − 4x + 2
Hallar P.Q
Solución
> P:=5*x^2-3*x+2*x^4+6;
P := 5x2 − 3x + 2x4 + 6

> 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

Ejemplo 3.4.4. Sean los polinomios


P = 5x2 + 8x4 − 3x3 + 2x + 1
72 MAPLE Walter Arriaga Delgado

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;

P := 5x2 + 8x4 − 3x3 + 2x + 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);

360x9 − 324x8 + 121x7 + 53x6 + 504x5 − 399x4 + 219x3 − 75x2 + 169x − 48

Dado el siguiente polinomio w = 5x2 y 3 + 3xy 5 − 7x4 + 2x3 y 2 − 11y 7


> w:=5*x^2*y^3+3*x*y^5-7*x^4+2*x^3*y^2-11*y^7;

w := 5x2 y 3 + 3xy 5 − 7x4 + 2x3 y 2 − 11y 7

Podemos ordenar w con respecto a x.


> sort(w,x);
−7x4 + 2y 2 x3 + 5y 3 x2 + 3y 5 x − 11y 7
Walter Arriaga Delgado MAPLE 73

Podemos ordenar w con respecto a y.


> sort(w,y);
−11y 7 + 3xy 5 + 5x2 y 3 + 2x3 y 2 − 7x4

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

3.4.4. División de polinomios

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

El primero es exacto, mientras que el segundo no; El resto se obtiene:


> quo(x^4-2*x^3+3*x,x-3,x,’r’);
x3 + x2 + 3x + 12
74 MAPLE Walter Arriaga Delgado

> r;
36

Luego al dividir P (x) entre x − 3 se obtiene un cociente igual a x3 + x2 + 3x + 12 y un


resto igual a 36.
Además, usaremos la función quo y rem para calcular el cociente y el resto respectivamente
quo(pol1,pol2,var)
rem(pol1,pol2,var)

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;

P := 5x2 + 8x5 − 3x3 + 2x + 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

EJERCICIOS PROPUESTOS 3.4.1.

Dados los polinomios:


A = 2x7 − 3x5 + 8x3 + 13x4 + 11
B = 3x5 − 18x11 + 13x7 − 15x2 − 14
C = 10x4 − 8x3 + 6x2 − 4x + 2
D = x2 − x + 1
Calcular las siguientes operaciones combinadas:

A+B+C+D (2A + 3B)(3C − D)

A−B+C−D ABCD

2A + 3B − 3C − D (A + B) ÷ (C + D)

3A − 2B + C − 5D (2A − B) ÷ (C − 2D)

(A + B)(C + D) (2A − 3B) ÷ (C + D)

AB(C + D) (A + 2B) ÷ (C − D)

Hallando el cociente y el residuo en las cuatro últimas operaciones.

3.5. Factorización

La función factor de Maple, permite factorizar expresiones polinómicas.

Ejemplo 3.5.1.

a. Factorizar P (x, y) = x3 − 2x2 y − xy 2 + 2y 3


solución
> a1:=x^3-2*x^2*y-x*y^2+2*y^3;

a1 := x3 − 2x2 y − xy 2 + 2y 3

> factor(a1);
(−y + x)(−2y + x)(y + x)

b. Factorizar P (x, y) = x2 y + xy 2 + x2 + y 2 + x + y + 2xy


solución
76 MAPLE Walter Arriaga Delgado

> 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)

c. Factorizar P (x, y) = mn4 − 5m2 n3 + 4m3 n2 − 20m4 n


solución
> a3:=m*n^4-5*m^2*n^3+4*m^3*n^2-20*m^4*n;

a3 := mn4 − 5 ∗ m2 n3 + 4m3 n2 − 20m4 n

> 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)

EJERCICIOS PROPUESTOS 3.5.1.

Factorizar las siguientes expresiones:

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

4. 2x2 + 7xy − 15y 2 − 6x + 22y − 8

5. x4 + 13x3 + 45x2 + 20x + 2

6. x5 + x + 1
Walter Arriaga Delgado MAPLE 77

7. 2x(4x + 7y) − 3y(5y + 12) + 48x

8. (x + 2)2 (x + 1)(x + 3) − 5x(x + 4) − 27

9. x3 + x(x3 + x)2 − 1

10. abx2 − c − by + b2 xy − acy − aby 2 + bcx − ax − a2 xy

11. abc + ab + ac + bc + a + b + c + 1

12. x4 + 2x3 + 3x2 + 2x + 1

3.6. Máximo común divisor y mı́nimo común múltiplo

3.6.1. Máximo común divisor

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)

3.6.2. Mı́nimo común múltiplo

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.

1. Hallar el M.C.D de: x2 − xy y 3x2 − 3y 2


Solución
> gcd(x^2-x*y,3*x^2-3*y^2);
−y + x

2. Hallar el M.C.D de: A = 8x3 + 2x2 − 5x + 1 y B = 8x3 + 10x2 − 11x + 2


Solución
> A:=8*x^3+2*x^2-5*x+1;

A := 8x3 + 2x2 − 5x + 1
78 MAPLE Walter Arriaga Delgado

> B:=8*x^3+10*x^2-11*x+2;

B := 8x3 + 10x2 − 11x + 2

> gcd(A,B);
1 − 6x + 8x2

3. Hallar el M.C.M de: x2 − xy ; 3x2 − 3y 2 y xy − y 2


Solución
> lcm(x^2-x*y,3*x^2-3*y^2,x*y-y^2);

x(3x + 3y)(xy − y 2 )

> lcm(A,B);
(x + 1)(8x3 + 10x2 − 11x + 2)

4. Hallar el MCD y el MCM de: M = 5x2 − 10x, N = x3 − 4x , R = x2 y − 2xy,


S = x2 − x − 2
Solución
> M:=5*x^2-10*x;
M := 5x2 − 10x

> 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)

para el MCM se puede ejecutar directo


> lcm(M,N,R,S);

5(x + 2)xy(x2 − x − 2)

EJERCICIOS PROPUESTOS 3.6.1.

Hallar el M.C.D. y el M.C.M. de las siguientes expresiones:

1. A = x3 + x2 y + xy 2 + y 3 , B = x3 − x2 y + xy 2 − y 3 , C = x4 − y 4

2. A = x3 + 10x2 + 31x − 30, B = x3 − 5x2 − 4x + 20

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

5. A = x4 − 3x3 − 10x2 + 7x − 1 , B = x4 − 8x3 + 17x2 − 8x + 1 , C = x3 − 6x2 + 6x − 1

6. P = 6x4 − 2x3 − 25x2 − 23x − 6 , Q = 6x3 − 8x2 − 17x − 6

7. P = 15x2 + 19xy − 10y 2 + 2xz + 24yz − 8z 2 ,


Q = 21x2 + 44xy + 15y 2 − 23xz − 21yz + 6z 2 ,
R = 12x2 − 13xy − 55y 2 + 13xz + 57yz − 14z 2

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

3.7. Fracciones algebraicas

3.7.1. Simplificación de fracciones

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);

(x + y)2 − (xy + 1)2


T :=
x2 − 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

3.7.2. Fracciones parciales

Para transformar las fracciones algebraicas a fracciones parciales, se utiliza el comando


convert de la siguiente manera:
convert(fraction,parfrac,var)

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

EJERCICIOS PROPUESTOS 3.7.1.

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

Convertir en fracciones parciales:


x2 − x
11.
(x + 1)(x2 + 1)
3(x2 + x)
12.
(x − 2)(x + 1)2
1
13.
x3 + 4x
Walter Arriaga Delgado MAPLE 83

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

3.8. Análisis combinatorio

3.8.1. Factorial de un número

Usaremos la opción factorial de la siguiente manera:


Hallemos 3!, 5!, 15!.
> factorial(3);
6

> factorial(5);
120

> factorial(15);
1307674368000

También podemos hacer:


> 15!;
1307674368000

Hallemos (x + 3)!
> factorial(x+3);
(x + 3)!
84 MAPLE Walter Arriaga Delgado

> expand( %);


x!(x + 1)(x + 2)(x + 3)

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

Las variaciones de n elementos tomando grupos de r en r está dado por:

n!
Vrn =
(n − r)!

Usaremos la opción permute.


> with(combinat,permute);
[permute]

> 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

Podemos también construir la formula de variaciones de la siguiente manera:


> V:=(n,r)->factorial(n)/factorial(n-r);

n!
V := (n, r) →
(n − r)!

Hallemos V25 y V310


> V(5,2);
20

> V(10,3);
720

V29 + V38
Ejemplo 3.8.2. Calcular
V24
> (V(9,2)+V(8,3))/(V(4,2));
34

3.8.4. Número combinatorio

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)!

Hallemos C45 y C310


> C(5,4);
5

> 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

2. Efectuar la expresión: E = C020 − C220 + C420 − C620 + . . . + C20


20

> sum(C(20,2*i)*(-1)^i,i=0..10);

−1024

3. Calcular el valor de: A = C012 + C212 + C412 + C612 + C812 + C10


12 + C 12
12

> 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);

2, 5, 15, 52, 203

> bell(0);

1
88 MAPLE Walter Arriaga Delgado

3.9. Binomio de Newton

El desarrolo del binomio de Newton está dado por:

(a + b)n = C0n an + C1n an−1 b + C2n an−2 b2 + C3n an−3 b3 + · · · + Cnn bn

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.

1. Hallar el sexto término del desarrollo de (x + y)10


Solución
> c:=(nt,k)->nt!/(k!*(nt-k)!);

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

> expand( %);


x10 + 10x9 y + 45x8 y 2 + 120x7 y 3 + 210x6 y 4 + 252x5 y 5 + 210x4 y 6 + 120x3 y 7 + 45x2 y 8 +
10xy 9 + y 10
> k:=5;
k := 5

> k1:=k+1;
k1 := 6

> t[k1]:=c(nt,k)*a^(nt-k)*b^k;
t6 = 252x5 y 5
Walter Arriaga Delgado MAPLE 89

2. Hallar el cuarto término del desarrollo de (2x3 − 3y 5 )16


Solución
> restart:
> c:=(nt,k)-¿nt!/(k!*(nt-k)!);

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

> expand( %);


65536x48 − 1572864y 5 x45 + 17694720y 10 x42 − 123863040y 15 x39 + 603832320y 20 x36 −
2173796352y 25 x33 + 5977939968y 30 x30 − 12809871360y 35 x27 + 21616657920y 40 x24 −
28822210560y 45 x21 + 30263321088y 50 x18 − 24760899072y 55 x15 + 15475561920y 60 x12 −
7142567040y 65 x9 + 2295825120y 70 x6 − 459165024y 75 x3 + 43046721y 80
> k:=3;
k := 3

> k1:=k+1;
k1 := 4

> t[k1]:=c(nt,k)*a^(nt-k)*b^k;

t4 = −123863040y 15 x39

3.10. Racionalización

Para racionalizar utilizaremos el comando rationalize:


90 MAPLE Walter Arriaga Delgado

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

De acuerdo al grado: Pueden ser:

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

De acuerdo al grado: Pueden ser:

Ecuaciones de primer grado: ax + b = 0


Ecuaciones de segundo grado: ax2 + bx + c = 0
↓ ↓
Ecuaciones de grado n : a0 xn + a1 xn−1 + a2 xn−2 + · · · + an−1 x + an = 0

Para trabajar con ecuaciones se utiliza el comando solve.


comando solve = resuelve ecuaciones
solve(eqn,var)
solve(eqns,vars)

3.11.3. Ecuaciones de grado n

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

3. Resolver x3 − 6x2 + 11x − 6 = 0


Solución
> solve(x^3-6*x^2+11*x-6,{x});

{x = 1}, {x = 2}, {x = 3}

4. Resolver 30x4 − 67x3 + 20x2 + 31x − 14 = 0


Solución
> solve(30*x^4-67*x^3+20*x^2+31*x-14,{x});

1 −2 7
{x = 1}, {x = }, {x = }, {x = }
2 3 5

3.11.4. Ecuaciones con fracciones

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

3.11.5. Ecuaciones con radicales

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});

3.11.6. Ecuaciones exponenciales

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

3.11.7. Sistemas de ecuaciones

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});

{y = 0, z = 0, x = 0, w = 0, u = 0}, {u = 2, z = 2/9, y = −2/3, x = 2/5, w = 2/13}



x+y+z = 6






4. Resolver 5x + 4y + 3z = 25




6x + 3y + 2z

= 23
Solución
Walter Arriaga Delgado MAPLE 95

> 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

3.11.8. Ecuaciones con valor absoluto

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 = 3}, {x = −7}, {x = −5}


96 MAPLE Walter Arriaga Delgado

4. Resolver x2 + |x| − 6 = 0 Solución


> solve(x^2+abs(x)-6=0,{x});

{x = 2}, {x = −2}

Nota: La ecuacion general de segundo grado está dada por:

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

Definimos una ecuación de segundo grado


> ec:=a*x^2+b*x+c;
ec := ax2 + bx + c

> sols := solve(ec, x);


√ √
−b + b2 − 4ac −b − b2 − 4ac
sols := ,
2a 2a

Para hacer referencia a la primera de las dos soluciones


> sols[1]; √
−b + b2 − 4ac
2a
Para hacer referencia a la segunda de las dos soluciones
> sols[2]; √
−b − b2 − 4ac
2a
Si queremos comprobar que la segunda expresión es solución de la ecuación
> subs(x=sols[2], ec);
√ √
(−b − b2 − 4ac)2 b(−b − b2 − 4ac)
+ +c
4a 2a

Luego simplificamos el resultado anterior


> normal( %);
0
Walter Arriaga Delgado MAPLE 97

Sea el polinomio.
> pol1:=9*x^3+37*x^2+47*x+19;

pol1 := 9x3 + 37x2 + 47x + 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);

a0 + a1 x + a2 x^2 + a3 x3 + a4 x4 + a5 x5 + a6 x6 + a7 x7 + a8 x8 + a9 x9 + a10 x10

> sum(2*x^k,k=0..10);

2 + 2x + 2x2 + 2x3 + 2x4 + 2x5 + 2x6 + 2x7 + 2x8 + 2x9 + 2x10

> eval(subs(x=1, %));


22

> eval(subs(x=0, % %));


2

> P2:=7*x^5-2*x^3-8*x^7-3*x+4;

P 2 := 7x5 − 2x3 − 8x7 − 3x + 4

> type(P2,’polynom’);
true

> type(P2,polynom);
true
98 MAPLE Walter Arriaga Delgado

Suma de raı́ces de una ecuación:


Podemos hallar la suma de raı́ces o soluciones de una ecuación utilizando el comando sum y
la opción RootOf.

Ejemplo 3.11.7.

1. Hallar la suma de las raı́ces de la ecuación x2 − 4x − 5 = 0.


> sum(k,k=RootOf(x^2-4*x-5=0));
4

2. Hallar la suma de las raı́ces de la ecuación 3x2 + 45x + 17 = 0.


> sum(k,k=RootOf(3*x^2+45*x+17=0));

−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

Producto de raı́ces de una ecuación:


Podemos hallar el producto de raı́ces o soluciones de una ecuación utilizando el comando
product y la opción RootOf.

Ejemplo 3.11.8.

1. Hallar el producto de las raı́ces de la ecuación x2 − 4x − 5 = 0.


> product(k,k=RootOf(x^2-4*x-5=0));

−5

2. Hallar el producto de las raı́ces de la ecuación 3x2 + 45x + 17 = 0.


> product(k,k=RootOf(3*x^2+45*x+17=0));

17
3
Walter Arriaga Delgado MAPLE 99

3. Se sabe que el producto de raı́ces de la ecuación de segundo grado ax2 + bx + c = 0


está dada por:
c
x1 x2 =
a
Trabajando con Maple se tiene:
> product(k,k=RootOf(a*x^2+b*x+c=0,x));

c
a

EJERCICIOS PROPUESTOS 3.11.1.

2−x 3−x 3 x−4 x−5


1. Resolver + + = +
3 4 4 5 6
2x + a b − x 3ax + (a − b)2
2. Resolver − =
b a ab
x3 + mx2 + nx + p x2 + mx + n
3. Resolver =
x3 + ax2 + bx + p x2 + ax + b
√ √ √ √
4. Resolver 3x − 2 + 2x − 1 = 5x − 4 + 4x − 3
q

q
√ √
5. Resolver x + 2x − 1 + x + 12 − 5 2x − 1 = 19 2
x+1 x+3 2
6. Resolver − =
x+2 x+4 3
1 + x−1 1 + 2x−1 2 + 13x−1
7. Resolver + =
1 − x−1 1 − 2x−1 1 + x−1
√ 2 √
2x + 2 x− 2
8. Resolver = √
8x2 x2 − 2
9. Resolver x5 − 3x4 − 6x3 + 10x2 + 21x + 9 = 0

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

13. Resolver 4x+2 + 4x+4 + 4x+5 − 81 = 0



3x − 2y

= 7
14. Resolver
2x + y

= 5
100 MAPLE Walter Arriaga Delgado


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)

3.12.2. Inecuaciones de grado n

Ejemplo 3.12.1.

1. Resolver x2 − x − 6 < 0
Solución
> solve(x^2-x-6<0,{x});
{−2 < x, x < 3}

2. Resolver x4 + 3x3 − 15x2 − 19x + 30 ≤ 0


Solución
> solve(x^4+3*x^3-15*x^2-19*x+30<=0,{x});

{−5 <= x, x <= −2}, {1 <= x, x <= 3}


Walter Arriaga Delgado MAPLE 101

3. Resolver 48x4 − 92x2 + 30 ≥ −92x3 + 43x


Solución
> solve(48*x^4-92*x^2+30>=-92*x^3+43*x,{x});

−5 1 −2 3
{x ≤ }, {x ≤ , ≤ x}, { ≤ x}
2 2 3 4

3.12.3. Inecuaciones con fracciones

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}

3.12.4. Inecuaciones con radicales

Ejemplo 3.12.3.

1. Resolver x−2<3
Solución
> solve(sqrt(x-2)<3,{x});

{2 <= x, x < 11}


102 MAPLE Walter Arriaga Delgado


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});

{−3 < x, x < 1}, {x <= 5, 4 <= x}

√ √
4. Resolver x2 − 7 ≥ 6x
Solución
> solve(sqrt(x^2-7)>=sqrt(6*x),{x});

{7 ≤ x}

3.12.5. Inecuaciones exponenciales

Ejemplo 3.12.4.

1. Resolver 2x > 4090


Solución
> solve(2^x>4096,{x});
ln(4096)
{ < x}
ln(2)
> simplify( %);
{12 < x}

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});

{x < 0}, {0 < x}

3.12.6. Inecuaciones con valor absoluto

Ejemplo 3.12.5.

1. Resolver |3x − 7| < 8


Solución
> solve(abs(3*x-7)<8,{x});
−1
{x < 5, < x}
3

2 1
2. Resolver

x + 1 x − 1
Solución
> solve(abs(2/(x+1))<=abs(1/(x-1)),{x});

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});

{x <= −8}, {−4 < x, x < −2}, {−2 < x, x <= 0}

3.12.7. Sistemas de inecuaciones

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});

{2 < x, x < 4}, {8 < x, x < 11}



(x − 1)2 − (x + 3)2

≤ 0
2. Resolver
x − 3(x − 1)

≥ 3
Solución
> solve({(x-1)^2-(x+3)^2<=0,x-3*(x-1)>=3});

{x <= 0, −1 <= x}

EJERCICIOS PROPUESTOS 3.12.1.


5x − 2 7x − 2 2−x x
1. Resolver − > −
3 4 4 6
x2 − 2x + 3
2. Resolver > −3
x2 − 4x + 3
(x − 5)8 (x + 1)11 (x − 2)5
3. Resolver ≥0
(2x2 + x + 5)(x − 3)7

x4 (x3 + 2)3 (2 − x)2 (x − 9)


4. Resolver <0
(2 − x)2

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

El logaritmo de un número N en base b es el exponente al cual hay que elevar la base b


para obtener el número N
logn a = n ⇔ bn = a

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

3. logb (AB) = logb A + logb B

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

8. logb a. loga c = logb c Regla de la cadena

9. logb a. loga b = 1

1
10. (logb a)−1 = = loga b
logb a

11. logb a = logbn an


12. log √
n
b
n
a

m
13. logb a = n logb a

14. blogb a = a

15. clogb a = alogb c

16. Si logb A = logb B ⇒ A = B

Ejemplo 3.13.1.

1. Calcular log 100


Solución
> log[10](100);
ln(100)
ln(10)
> evalf( %);

2,0000

2. Calcular log2 100


Solución
> log[2](100);
ln(100)
ln(2)
> evalf( %);

6,6439
Walter Arriaga Delgado MAPLE 107

3. Calcular A = log3 5. log25 27


Solución
> A:=log[3](5)*log[25](27);
ln(5) ln(27)
A :=
ln(3) ln(25)

> evalf(A);

1,5000

4. Calcular ln 1
Solución
> ln(1);

5. Resolver (log5 x)2 − log5 x2 = 0


Solución
> A1:=(log[5](x))^2-log[5](x^2)=0;

ln(x)2 ln(x2 )
A1 := − =0
ln(5)2 ln(5)

> solve(A1,{x});

{x = 1}, {x = 25}

6. Resolver log2 x + log4 9 − log2 6 = 3


Solución
> A2:=log[2](x)+log[4](9)-log[2](6)=3;

ln(x) ln(9) ln(6)


A2 := + − =3
ln(2) ln(4) ln(2)

> solve(A2,{x});
 
ln(9) ln(2) − ln(6) ln(4) − 3 ln(2) ln(4)
− 
ln(4)
{x = e }

> simplify( %);

{x = 16}
108 MAPLE Walter Arriaga Delgado

7. Resolver log3 (2x − 5) > 2


Solución
> A3:=log[3](2*x-5)>2;
ln(2x − 5)
A3 := 2 <
ln(3)
> solve(A3,{x});
{7 < x}

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 ∼)

> %=expand( %);


ln(x ∼ y ∼) = ln(x ∼) + ln(y ∼)

EJERCICIOS PROPUESTOS 3.13.1.

1
1. Calcular el logaritmo de en base 0.25
32

2. Resolver log2 x + logx 3 = log2 6

1
3. Calcular “x”si log x = log 100 + [log 18 + log 8 − 2 log 25]
2

4. Si log4 log3 log2 x = 0 entonces calcular log2 (8 − x)

5. Resolver 3 log√x 2 + log4 x2 + 5 = 0

6. Resolver 5 + logx (log5 x) = 0

log3 x + 1
7. Resolver =5
logx 3 + 1

8. Resolver log2 3. log 3 x = 5


Walter Arriaga Delgado MAPLE 109

 

9. Resolver (log2 x) log x 2 = log x 2


16 64

10. Resolver log 1 (2x + 6) < −2


3

3.14. Ecuaciones algebraicas

Se denomina ecuación algebraica en la variable x a un polinomio en dicha variable x


igualado a cero: P (x) = 0 se denominan raı́ces de P (x) = 0, a los valores de x que verifican
dicha ecuación algebraica.

Ejemplo 3.14.1. Para la ecuación algebraica x3 − 3x2 + 2x = 0 los valores de x : 0, 1, 2 son


raı́ces de la misma; el valor x=3 no lo es. La obtención mediante MAPLE de las raı́ces de una
ecuación algebraica es bastante sencillo a partir de la función:
> solve(x^3-3*x^2+2*x=0,x);

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

Figura 3.2: Gráfica de la ecuación x3 − 3x2 + 2x = 0


110 MAPLE Walter Arriaga Delgado

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.

Ejemplo 3.14.2. Sea el polinomio: x5 −3x2 +4 = 0 cuya representación gráfica en el intervalo


[-2,2] es:
> plot(x^5-3*x^2+4,x=-2..2);

20

10
x
–2 –1 1 2
0

–10

–20

–30

–40

Figura 3.3: Grafica de la ecuación x5 − 3x2 + 4 = 0

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);

x5 − 22x4 + 190x3 − 800x2 + 1625x − 1250

Si realizamos su representación gráfica tenemos:


> plot((x-2)*(x-5)^4,x=0..7,y=-20..30);

30

20
y
10

0 1 2 3 4 5 6 7
x
–10

–20

Figura 3.4: Grafica de la ecuación (x − 2)(x − 5)4

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

Figura 3.5: Grafica de la ecuación 3x5 + 2x4 − 5x2 + 7

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

Luego el error que cometemos es −0,3 10−8 .


Si queremos más precisión podemos aumentar el número de cifras decimales:
> Digits:=20:
> fsolve(3*x^5+2*x^4-5*x^2+7,x,’complex’);
{x = −1,0545764337262581879}, {x = −,73031909778392540731 − 1,2136676064227369906
I}, {x = −,73031909778392540731 + 1,2136676064227369906I}, {x = ,924273981313721167
94 − ,49850057502948024221I}, {x = ,92427398131372116794 + ,49850057502948024221I}
Entonces, el error:
Walter Arriaga Delgado MAPLE 113

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

Ejemplo 3.14.5. Resolver la ecuación algebraica:

x4 − 0,2461x3 + 1,0151413x2 − 0,2461x + 0,0151413 = 0 (3.1)

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

–1 –0.8 –0.6 –0.4 –0.2 0.2 0.4 0.6 0.8 1


x

Figura 3.6: Grafica de la ecuación 3.1

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’);

{x = −1.I}, {x = 1.I}, {x = ,12300000000000000000}, {x = ,12310000000000000000}

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

−P (x) son los mismos?


Solución:
Evidentemente no. Pongamos un ejemplo; sea la ecuación algebraica:

4x6 − 12x5 − x4 + 26x3 − 69x2 = 0 (3.2)

Si multiplicamos a la ecuación 3.2 por (-1) obtendremos:

−4x6 + 12x5 + x4 − 26x3 + 69x2 = 0

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:

p ≡ 4x6 − 12x5 − x4 + 26x3 − 69x2 = 0

Si representamos gráficamente P(x) y su opuesto:


> p:=4*x^6-12*x^5-x^4+26*x^3-69*x^2:
> plot(p,-p,x=-4..4,y=-500..500,color=[red,navy]);

400
y
200

–4 –3 –2 –1 0 1 2 3 4
x
–200

–400

p
-p

Figura 3.7: Grafica de la ecuación 3.2

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:

(x − 1)(x + 2)(x − π)(x − (3 + 7i))(x − (3 − 7i)) (3.3)

Trabajando en MAPLE:
> p:=expand((x-1)*(x+2)*(x-Pi)*(x-(3+7*I))*(x-(3-7*I)));

p := 116π − 116x + 50x3 + 70x2 + x5 − 70xπ − 50x2 π − 5x4 + 5x3 π − x4 π

Si representamos gráficamente el polinomio obtenido tenemos


> plot(p,x=-3..4);

500
x
–3 –2 –1 1 2 3 4

–500

–1000

–1500

–2000

Figura 3.8: Grafica de la ecuación 3.3

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});

{x = 1}, {x = −2}, {x = π}, {x = 3 + 7I}, {x = 3 − 7I}

Con ello el lector puede observar la potencia de los programas de cálculo simbólico.
116 MAPLE Walter Arriaga Delgado
4

GRAFICA EN DOS Y TRES


DIMENSIONES

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.

4.2. Funciones elementales

Las funciones que a continuación se presentan son de uso frecuente, entre éstas funciones
elementales, se consideran las siguientes:
Funciones elementales

Función constante Función polinómica

Función identidad Función racional fraccionaria

Función lineal afı́n Función exponencial

Función valor absoluto Función logaritmo

Función raı́z cuadrada Función trigonométrica

Función máximo entero Función trigonométrica inversa

Función signo Función hiperbólica

Función cuadrática Función hiperbólica inversa

4.2.1. Función constante

Es la función f : R −→ R, definida por f (x) = c, donde c es una constante real.


> f:=x->2;
> plot(f);
3

2.5

1.5

–10 –8 –6 –4 –2 0 2 4 6 8 10
Walter Arriaga Delgado MAPLE 119

el usuario podrı́a asignarle un dominio y rango a la función de la siguiente manera:


> plot(f,x=-2..4,y=-2..4);
4

y 2

–2 –1 1 2 3 4
x
–1

–2

También podemos graficar la función en forma directa de la siguiente manera:


> plot(2,x=-2..4,y=-2..4);
4

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

4.2.2. Función identidad

Es la función f : R −→ R, definida por f (x) = x


> f:=x->x;

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);

4.2.3. Función lineal afin

Es la función f : R −→ R, definida por f (x) = ax + b.


> plot(2*x+3,x=-5..8,y=-5..15);

14
12
10
y 8
6
4
2

–4 –2 0 2 4 6 8
–2 x
–4

4.2.4. Función valor absoluto

Es la función f : R −→ R, definida por f (x) = |x|


> plot(abs(x),x=-5..5,y=-1..6);
Walter Arriaga Delgado MAPLE 121

y 3

–4 –2 2 4
x
–1

4.2.5. Función raiz cuadrada



Es la función f : R −→ R, definida por f (x) = x
> plot(sqrt(x),x=0..10,y=0..4);
4

y 2

0 2 4 6 8 10
x

4.2.6. Función máximo entero

Es la función f : R −→ R, definida por f (x) = JxK


> plot(floor(x),x=-2..4,y=-2..4);
4

y 2

–2 –1 1 2 3 4
x
–1

–2

Nota: Se observa, que no es la gráfica que estábamos esperando, debido a la presencia de


segmentos verticales que indican que los gráficos de funciones discontinuas se presentan como
122 MAPLE Walter Arriaga Delgado

ası́ntotas, para eliminarlos usamos la opción discont=true:


> plot(floor(x),x=-2..4,y=-2..4,discont=true);

y 2

–2 –1 1 2 3 4
x
–1

–2

4.2.7. Función signo



−1 x < 0






Es la función f : R −→ R, definida por f (x) = sgn(x) = 0 x=0




1

x>0
> plot(signum(x),x=-5..5,y=-5..5,discont=true);

y
2

–4 –2 0 2 4
x
–2

–4

4.2.8. Función cuadrática

Es la función f : R −→ R, definida por f (x) = ax2 + bx + c


> plot(2*x^2+3*x-5,x=-3..3,y=-7..8);
Walter Arriaga Delgado MAPLE 123

y 4

–3 –2 –1 1 2 3
x
–2

–4

–6

4.2.9. Función polinómica

Es la función f : R −→ R, definida por f (x) = a0 xn + a1 xn−1 + a2 xn−2 + · · · + an


> plot(3*x^5-x^4+2*x^3+5*x^2-7*x+1,x=-2..2,y=-5..10);
10

6
y
4

–2 –1 1 2
x
–2

–4

4.2.10. Función racional fraccionaria


P (x)
Es la función f : R −→ R, definida por f (x) =
Q(x)
donde f(x) es el cociente de dos polinomios.
> plot(1/x,x=-5..5,y=-5..5,discont=true);

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

4.2.11. Función exponencial

Es la función f : R −→ R, definida por f (x) = ax


Grafiquemos: f (x) = 2x
> plot(2^x,x=-4..4,y=-1..8);

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

4.2.12. Función logaritmo

Es la función f : R −→ R, definida por f (x) = logb x


Grafiquemos: f (x) = log2 x
> plot(log[2](x),x=0..5,y=-5..4);

y 2

x
1 2 3 4 5
0

–2

–4

Grafiquemos: f (x) = log x


> plot(log[10](x),x=0..5,y=-2..1);

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

4.2.13. Funciones trigonométricas

Las funciones trigonométricas son:


sin(x) cos(x) tan(x)
cot(x) sec(x) csc(x)
Grafiquemos y = sen x
> plot(sin(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 = 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

4.2.14. Funciones trigonométricas inversas

Las funciones trigonométricas inversas son:


arcsin(x) arccos(x) arctan(x)
128 MAPLE Walter Arriaga Delgado

arccot(x) arcsec(x) arccsc(x)


Grafiquemos y = arcsen x
> plot(arcsin(x),x=-1..1,y=-2..2);
2

y 1

–1 –0.8 –0.6 –0.4 –0.2 0 0.2 0.4 0.6 0.8 1


x

–1

–2

otra manera de graficar y = arcsen x


> plot([sin(t),t,t=-2*Pi..2*Pi]);

–1 –0.5 0.5 1
–2

–4

–6

Grafiquemos y = arc cos x


> plot(arccos(x),x=-1..1,y=-0.5..3.5);

2
y

–1 –0.8 –0.6 –0.4 –0.2 0 0.2 0.4 0.6 0.8 1


x

otra manera de graficar y = arc cos x


> plot([cos(t),t,t=-2*Pi..2*Pi]);
Walter Arriaga Delgado MAPLE 129

–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.15. Funciones hiperbólicas

Las funciones hiperbólicas son:


sinh(x) cosh(x) tanh(x)
coth(x) sech(x) csch(x)
Grafiquemos y = senhx
> plot(sinh(x),x=-5..5,y=-10..10);
10
8
6
y
4
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

4.2.16. Funciones hiperbólicas inversas

Las funciones trigonométricas inversas son:


arcsinh(x) arccosh(x) arctanh(x)
arccoth(x) arcsech(x) arccsch(x)
Grafiquemos y = arcsenhx
> plot(arcsinh(x),x=-5..5,y=-3..3);
3

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

0 0.2 0.4 0.6 0.8 1 1.2


x

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

Nota: El valor numérico de una función se determina de la siguiente manera:

Ejemplo 4.2.1. Sea f (x) = x2 − 5x + 2, hallar f (−2)


> f:=x->x^2-5*x+2;
f := x → x2 − 5x + 2

> f(-2);
16

Ejemplo 4.2.2. Uso del piecewise



x − 1 , x ≤ 0

Sea , Hallar f (−1) , f (0) , f (2)
 x2

, x>0

> 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

Ejemplo 4.2.3. Sea f (x + 2) = x2 − 2x + 3, hallar: f (x), f (5)


> solve(a=x+2,x);
{x = a − 2}

> subs(x=a-2,x^2-2*x+3);
(a − 2)2 − 2a + 7

> expand( %);


a2 − 6a + 11

para hallar f(x) > subs(a=x, %);


x2 − 6x + 11

para hallar f(5) > subs(x=5, %);


6

4.3. Operaciones con funciones

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 @

Ejemplo 4.3.1. Dadas las funciones: f (x) = x3 + 2x − 1 y g(x) = 3x + 7


f
Calcular f + g , f − g , f.g , , f ◦ g , g ◦ f
g
> f:=x->x^3+2*x-1;
f := x → x3 + 2x − 1

> 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)

> expand( %);


3x4 + 7x3 + 6x2 + 11x − 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

> expand( %);


27x3 + 189x2 + 447x + 356

> 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:

X Haciendo anticlic y usando la opción plots - 2 D plot


> smartplot(5*x^3+5*x+4);

4000

2000

–10 –8 –6 –4 –2 2 4 x 6 8 10
–2000

–4000

Curve 1

X Escribiendo la expresión de la siguiente manera:


> plot(c2(x),x=-5..5,y=-250..250);

200

y
100

–4 –2 0 2 4
x
–100

–200

Para hallar la composición de f consigo misma un número n de veces, usaremos la sintaxis


f @@n

Ejemplo 4.3.2. Dado f (x) = cos(3x). Calcular f ◦ f ◦ f y f ◦ f ◦ f ◦ f ◦ f.


π
Hallar el valor de las funciones anteriores en x =
2
> f:=x->cos(3*x);
f :=→ cos(3x)

luego
> h:=(f@@3);
h := f (3)
138 MAPLE Walter Arriaga Delgado

> g:=(f@@5);

g := f (5)

> h(x);

cos(3 cos(3 cos(3x)))

> g(x);

cos(3 cos(3 cos(3 cos(3 cos(3x)))))

luego
> h(Pi/2);

cos(3)

> evalf( %);

−,9899924966

> g(Pi/2);

cos(3 cos(3 cos(3)))

> evalf( %);

−,9828142662

Ejemplo 4.3.3. Se pueden dibujar puntos unidos por segmentos


> plot([[-2,-2],[-1,0],[0,-1],[1,3],[2,0]],color=blue);

–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

Ejemplo 4.3.4. Diseñando un diagrama de árbol:


> with(plots):
> lines := PLOT(CURVES([[0,0] , [1,1]] , [[0,0] , [1,3]] , [[0,0] , [1,-1]] , [[0,0] , [1,-3]] , [[1,3]
, [2,3.5]] , [[1,3],[2,2.5]] , [[1,1] , [2,1.5]] , [[1,1] , [2,0.5]] , [[1,-3] , [2,-3.5]] , [[1,-3] , [2,-2.5]] ,
[[1,-1] , [2,-1.5]] , [[1,-1] , [2,-0.5]] , COLOR(RGB,0,0,0)) , POINTS([0,0],[1,3],[1,1],[1,-1],[1,-
3],[2,3.5],[2,2.5], [2,1.5],[2,.5],[2,-.5],[2,-1.5],[2,-2.5],[2,-3.5], SYMBOL(CIRCLE))):
> text := textplot([[.8,1.9,‘gold‘] , [.7,.5,‘white‘] , [.7,-.3,‘green‘] , [.9,-2,‘maroon‘] , [1.5,3.6,‘man-
ual‘] , [1.5,2.5,‘automatic‘] , [1.5,1.6,‘manual‘] , [1.5,.5,‘automatic‘] , [1.5,-.4,‘manual‘] , [1.5,-
1.5,‘automatic‘] , [1.5,-2.4,‘manual‘] , [1.5,-3.5,‘automatic‘]]):
> display({lines,text},axes=none);

manual

automatic
gold
manual

white automatic
green manual

automatic
maroon
manual

automatic

Figura 4.1: Diagrama del arbol

EJERCICIOS PROPUESTOS 4.3.1.

1. Calcular f (a), si:

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

2. Si f es una función de variable real tal que: f (x + 3) = x2 − 5, determinar:

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

5. Graficar cada una de las operaciones del ejercicio 4.


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

7. Obtener en Maple la gráfica de la siguiente figura:


Walter Arriaga Delgado MAPLE 141

Sug: Use el comando plot y dibuje puntos unidos por segmentos

8. Obtener en Maple la gráfica de la siguiente figura:


142 MAPLE Walter Arriaga Delgado

4.4. Gráficas en dos dimensiones

4.4.1. Opciones importantes

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:

1. La gráfica en coordinación con un punto seleccionado.

2. Cambia el estilo de la curva en el estilo lı́nea curva (Line).

3. Cambia el estilo de la curva en el estilo punto (Point).

4. Cambia el estilo de la curva en estilo de parche (Patch).

5. Cambia el estilo de la curva en estilo de reja (grid).

6. Cambia el estilo de los ejes por ejes en forma de caja (Boxed).

7. Cambia el estilo de los ejes por un marco en la parte inferior izquierda (Framed).

8. Cambia el estilo de los ejes en estilo normal (Normal).

9. Quita los ejes (None).

10. Cambia la escala de la gráfica determinando si la escala es la misma en ambos ejes


o diferente (Constrained y Unconstrained).

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

Figura 4.3: Legend Labels

También se hace directamente haciendo anticlic en la gráfica eligiendo Legend - Edit


legend. Si elegimos la opción show Legend mostrará Curve 1, Curve 2, Curve 3, . . .
Veamos algunas gráficas

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

z Color: Sirve para asignarle un color determinado a la gráfica de una función.


> plot([x^2,exp(x),x],x=-3..3,y=-3..10,color=[violet,blue, magenta]);

10
8
6
y
4
2

–3 –2 –1 1 x 2 3
–2

parÆbola
exponencial
identidad

Grafiquemos: f (x) = cos(nx), −1 ≤ n ≤ 4


> plot({seq(cos(x*i),i=-1..4)},x=-Pi..Pi);

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

–1 –0.8 –0.6 –0.4 –0.2 0 0.2 0.4 0.6 0.8 1


x
–0.2
Walter Arriaga Delgado MAPLE 145

Grafiquemos: f (x) = |x2 − 2x|


> plot(abs(x^2-2*x),x=-2..4,title=’función_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

Grafiquemos: f (x) = x − JxK


> f:=x->x-floor(x);

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

Grafiquemos: f (x) = cos x + sen x


> smartplot(cos(x)+sin(x));

1
0.5

–10 –8 –6 –4 –2 0 2 4 x 6 8 10
–0.5
–1

Curve 1

Nota: Al hacer un anticlic a la grafica se pueden observar varias opciones

Figura 4.4: Opciones para gráficas de dos dimensiones

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 ◦

• la opción Axes − None nos produce una grafica sin ejes.

4.4.2. Coordenadas Polares

Para graficar funciones en coordenadas polares


> with(plots):
> plots[polarplot](2*t);
3.5

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

–100 –50 0 50 100

–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

4.4.3. Funciones Paramétricas

Para graficar funciones paramétricas


> plot([sin(t),cos(t),t=0..2*Pi]);

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

Figura 4.5: La opción scaling=constrained


150 MAPLE Walter Arriaga Delgado

La opción scaling = constrained permite visualizar mejor la gráfica de la circunferencia, se


puede también clicar sobre el ı́cono correspondiente

4.4.4. Funciones Implı́citas

Para graficar funciones implı́citas


> implicitplot(x^2/25+y^2/9=1,x=-6..6,y=-6..6,scaling=constrained);

2
y
1

–4 –2 2 4
–1 x

–2

–3

4.4.5. La Función Inversa

Para graficar funciones inversas debemos activar el paquete Student[Calculus1] y usar el


comando InversePlot.

Ejemplo 4.4.1. Graficar la función y = cos x y su inversa.

> 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)

Ejemplo 4.4.2. Graficar la función y = tan x y su inversa.

> 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)

4.4.6. Campos Vectoriales

Para graficar campos vectoriales


> plots[fieldplot]([sin(y),cos(x)],x=-10..10,y=-10..10,arrows=SLIM);

10

y 5

–10 –5 0 5 10
x

–5

–10

4.4.7. Funciones con varias reglas de correspondencia



x + 3 , si x < −5




√
Ejemplo 4.4.3. Graficar f (x) = 25 − x2 , si −5≤x≤5




3 − x

, si x > 5

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:

2o Usamos el comando plot


> plot(f,-10..10,discont=true,tickmarks=[4,3]);

–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

z Didáctica para la secuencia de la gráfica de una relación:


Tabulando la expresión:
> F:=x->x^2:
> for i from -4 by 0.8 to 4 do [i,F(i)]; od;

[−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

4.4.8. Gráfica de inecuaciones

En Maple podemos representar sistemas de inecuaciones en dos variables mediante la


función inequal. La gráfica obtenida se compone de 4 partes:
a) feasible region : para las regiones que satisfacen todo las desigualdades
b) excluded region : para las regiones que no satisfacen por lo menos una
desigualdad
c) open lines : representan las fronteras de una desigualdad estricta
d) closed lines : representan las fronteras de una desigualdad que incluye sus
bordes, y también las igualdades

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

4.4.9. Regiones sombreadas

Usaremos la opción filled = true


> plot(x^3,x=-1..1,filled=true,color=tan);

0.5

–1 –0.8 –0.6 –0.4 –0.2 0.2 0.4 0.6 0.8 1


x

–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

4.4.10. Notas importantes:

z Lista de opciones auxiliares:

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.

style : POINT, LINE, PATCH.

title : para añadir tı́tulos a las gráficas, se escribe entre apóstrofes.


axes: FRAME, BOXED, NORMAL, NONE.

scaling : CONSTREINED, UNCONSTREINED.

Labels: Para añadir los ejes

Symbol : Cuando el estilo es punto esto es (style=point), nosotros podemos hacer que
el punto asuma los siguientes simbolos: box, circle, diamond, cross

> plot(sin(x),x=-2*Pi..2*Pi, title=”Gráfica de la función seno”);

GrÆfica de la funcin seno


1

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

Usando la opción labels:


> plot(sin(x),x=-2*Pi..2*Pi,axes=boxed,color=blue,labels=[“eje x”,“eje y”]);

0.5

eje y 0

–0.5

–1
–6 –4 –2 0 2 4 6
eje x

Usando la opción symbol:


> plot(sin(x),x=-2*Pi..2*Pi,style=point,symbol=box);
Walter Arriaga Delgado MAPLE 159

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.

1. Graficar y = cos x , y = sen x

> 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

> A1:=plot([ % %],style=point,symbol=circle,color=black):


> A2:=plot(f(x),x=0..2,y=0..4,color=blue):
> plots[display](A1,A2);
4

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Nota: Usaremos display para regiones sombreadas:

Ejemplo 4.4.8.

1. Construyamos la siguiente región sombreada


> with(plots):
> A:=plot(x^2,x=2..4,filled=true):
> B:=plot(x^2,x=-2..6):
> display([A,B]);
35

30

25

20

15

10

–2 –1 1 2 3 4 5 6
x
162 MAPLE Walter Arriaga Delgado

2. Construyamos la siguiente región sombreada


> C:=plot(sin(x),x=0..Pi/2,filled=true,color=blue):
> E:=plot(sin(x),x=-Pi..Pi,color=blue):
> display([C,E]);
1

0.5

–3 –2 –1 0 1 2 3
x

–0.5

–1

3. Construyamos la siguiente región sombreada


> a1:=plot(x^2/4,x=0..2*sqrt(7)-2,filled=true,color=white):
> a2:=plot(6-x,x=2..2*sqrt(7)-2,filled=true,color=blue):
> a3:=plot(x^2,x=0..2,filled=true,color=blue):
> a4:=plot(x^2/4,6-x,x^2,x=-2..5,y=-1..6,color=blue):
> display(a| |(1..4));
6

–2 –1 1 2 3 4 5
x
–1

z Texplot La función texplot nos permite crear un texto en un espacio bidimensional.


La orden de llamado es:
textplot( L, opciones);
donde la entrada L es el texto que consiste de 3 componentes, 2 para las coordenadas
del texto y el último para el nombre del texto.
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.
Walter Arriaga Delgado MAPLE 163

El textplot puede ser definido por el with(plots) o with(plots,textplot).


También puede usarse el plots[textplot].

> with(plots):
> textplot([1,2,‘walter arriaga‘]);
3

2.5

2 walter arriaga

1.5

1
0 0.5 1 1.5 2

> textplot({[1,2,‘el punto A‘],[3,2,‘el punto B‘]});


3

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

4.4.11. Mas Gráficas

Gráfica de la función y = sen x. sen 5x


> plot(sin(x)*sin(50*x),x=0..4*Pi,numpoints=75);

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

Dada la función f (x) = x2 − 4x + 3, cuya gráfica es:


> f:=x->x^2-4*x+3;
f := x− > x2 − 4x + 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)

> h:=x-> f(x-2);


h := x− > f (x − 2)
3

2
y

0 1 2 3 4 5 6
x

–1
166 MAPLE Walter Arriaga Delgado

Para graficar funciones discontinuas.


> curve := plot(1/(1-x^2),x=-3..3,y=-5..5,color=red,discont=true):
> asymptotes:=implicitplot(x=-1,x=1,x=-1..1,y=-5..5,color=blue,linestyle=3):
> display([curve,asymptotes]);

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

Dibujando la curva mariposa


> plot([exp(cos(t))-2*cos(4*t)+(sin(t/12))^5,t,t=-10*Pi..10*Pi],coords=polar);
Walter Arriaga Delgado MAPLE 167

–2 –1 0 1 2 3 4
–1

–2

–3

Diseñando figura 01:


> with(plottools):
> c := circle([0,0],1,color=black):
> e1 := circle([-.45,.4],0.1,color=black):
> e2 := circle([.45,.4],0.1,color=black):
> n1 := plot([[[-.17,.98],[-.25,.77]],[[0,1],[-.08,.79]],[[.17,.98],[.09,.77]]],color=black):
> h1 := plot([[0,.15],[.17,-.2],[-.1,-.2]],color=red):
> m1 := arc([0,0], 0.6, 5*Pi/4..7*Pi/4,color=black):
> e3 := plot([[.48,.39],[-.43,.39]],style=point,symbol=circle,color=blue):
> plots[display]({c,e1,e2,e3,n1,h1,m1},axes=none);

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

4.4.12. Ploteo en cuadrı́culas

A continuacón programaremos en Maple para obtener las representaciones gráficas de


ciertas funciones en cuadrı́culas.

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

> cuadro:=proc(dim,ancho,alto,part,ejes,colorejes)local v,h,axes,i;


> v:=seq(plot([[dim[1]+i/part,dim[2]],[dim[1]+i/part,dim[2]+alto]],color=black),i=0..ancho*part);
> axes:=ALE([dim[1],0],[dim[1]+ancho,0],3,1,colorejes);
> h:=seq(plot([[dim[1],dim[2]+i/part],[dim[1]+ancho,dim[2]+i/part]],color=black),i=0..alto*part);
> if ejes=NTM then
> plots[display]([v,h],scaling=constrained,xtickmarks=[],ytickmarks=[])
> elif ejes=0 then
> plots[display]([v,h],scaling=constrained,xtickmarks=[],ytickmarks=[],axes=none)
> else
> plots[display]([axes,v,h],xtickmarks=[seq(i,i=trunc(dim[1])..trunc(dim[1])+ancho+1)], ytick-
marks=[seq(i,i=trunc(dim[2])..trunc(dim[2])+alto+1)],axesfont=[TIMES,BOLD,ejes])
> end if
> end proc:
> cuadro([-2*Pi,-2*Pi],evalf(4*Pi),evalf(4*Pi),0.8,10,orange);

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.

Para obtener gráficas de funciones insertadas en la cuadrı́cula, haremos lo siguiente:


> a:=plot({x^2, -x^2, sqrt(x), -sqrt(x), sqrt(-x), -sqrt(-x)}, x=-2*Pi..2*Pi, y=-2*Pi..2*Pi,
scaling=constrained, thickness=3,numpoints=1500):
> b:=cuadro([-2*Pi,-2*Pi],evalf(4*Pi),evalf(4*Pi),0.8,10,orange):
> display(a,b);
Walter Arriaga Delgado MAPLE 171

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

EJERCICIOS PROPUESTOS 4.4.1.

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

10. f (x) = |x| − JxK


p
11. f (x) = x − Jx2 K
p
12. f (x) = 2 J2x + 1K − 4 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|

24. f (x) = | sen x|

25. y = log(sen x)

26. y = | sen x| + | cos x|

√ √
27. y = 1 + sen 2x + 1 − sen 2x
 
1 | sen x| sen x
28. y = +
2 cos x | cos x|

29. y = arcsen x + arc cos x

1 − x2
 
30. y = arc cos
1 + x2

31. y = arc cos 1 − x2

En los mismos ejes de coordenadas graficar:

32. y = sen x, y = cos x, y = x2

√ √
33. y = 25 − x2 , y = − 25 − x2

34. y = (x − 4)2 , y = (x + 4)2 , y = −(x − 4)2 , y = −(x + 4)2


Walter Arriaga Delgado MAPLE 173

35. y = x2 , y = 4 − x2 , y = 2 − |x| , y = 4 − 2|x|

Graficar las siguientes sucesiones

36. y = sen(nx) con −1 ≤ n ≤ 3

37. y = (nx)2 con 0 ≤ n ≤ 15 , sin ejes de coordenadas

38. y = nx con −10 ≤ n ≤ 10


 
1
39. y = nx sen con −2 ≤ n ≤ 2 además x = −1/2..,1/2 , y = −1/2..,1/2, y
x
de color azul.

Gráfica de funciones con varias reglas de correspondencia.



x||x| − 3|, x ∈ h−4, 2i

40. f (x) =
2 sen x, x ∈ h2, 4i

  
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]

Gráficas en coordenadas polares

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

48. r = 2 cos θ , r = 2 sen θ


 
2 θ
49. r = 2 sen
2

50. r = J2 + 3 sen θK , con θ = −100.,100

Gráfica de funciones implı́citas

51. (x − 2)2 + y 2 = 4

52. 9x2 + 4y 2 − 36x + 8y + 4 = 0

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

Construir las regiones sombreadas limitadas por la gráfica de:

2|x|
58. y = , el eje X y las rectas x = −2 y x=1
1 + x2

59. y = 9 − x2 , y = x2 + 1

60. La región de menor área encerrada por las curvas x2 + y 2 = 20 , y 2 = 2x3


Walter Arriaga Delgado MAPLE 175

4.5. Gráficas en tres dimensiones

4.5.1. Gráfica de superficies

Usaremos el comando plot3d para graficar superficies.


Ejemplos:
x2 − y 2
Graficar f (x, y) =
x2 + y 2
> plot3d((x^2-y^2)/(x^2+y^2),x=-2..2,y=-3..3);

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);

4.5.2. Funciones implı́citas

Para graficar funciones implı́citas usaremos la opción implicitplot3d


Graficar x2 + 2y 2 + 3z 2 = 1
> implicitplot3d(x^2+2*y^2+3*z^2=1,x=-1..1,y=-1..1,z=-1..1);

4.5.3. Coordenadas esféricas

Grafiquemos un caracol f (z, θ) = (1,3)2 sen θ


para ello usaremos la opción sphereplot
> sphereplot((1.3)^z*sin(theta),z=-1..2*Pi,theta=0..Pi);
Walter Arriaga Delgado MAPLE 177

Grafiquemos una hélice f (t) = (cos t, sen t, t)


para ello usaremos la opción spacecurve
> spacecurve([t*cos(t),t*sin(t),t],t=0..7*Pi);

4.5.4. Funciones con varias reglas de correspondencia



 3x2 y


4 2
si (x, y) 6= 0
Graficar x + y

0
 si (x, y) = 0
> with(plots):
> f:=proc(x,y)
> if (x,y) <> (0,0) then 3*x^2*y/(x^4+y^2)
> else 0
> fi:
> end:
> plot3d(f(x,y),x=-4..4,y=-4..4);


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

4.5.5. Notas importantes

Opciones auxiliares

Se puede usar las siguientes opciones:


> plot3d([u,u^2*cos(v),u^2*sin(v)],u=-1..2,v=0..2*Pi,style= PATCH,axes=NORMAL,
tickmarks=[0,0,0]);
Walter Arriaga Delgado MAPLE 179

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

La función texplot3d nos permite crear un texto en un espacio tridimensional.


La orden de llamado es: textplot3d( L, opciones);
donde la entrada L es el texto que consiste de 4 componentes, 3 para las coordenadas del texto
y el último para el nombre del texto

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.

El texplot3d puede ser definido por el with(plots) o with(plots,textplot3d).

También puede usarse el plots[textplot3d].


> a:=plot3d(x^2+y^2,x=-5..5,y=-5..5):
> b:=textplot3d([2,2,-1,”(0,0,0) un punto en 3d”],align = LEFT,color=blue):
> display({a,b});
180 MAPLE Walter Arriaga Delgado

(0,0,0) un punto en 3d

4.5.6. Conversión de expresiones en funciones

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

como se puede observar la u y la v no aparecen definidas en la función g.


La única opción para obtener el mismo resultado que con la función unapply está basada
en la función subs y es la sguiente:
> h:=subs(body=expresion,(x,y)− >body);

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:=x− >diff(y,x);



f := x → y
∂x
> f(1);
Error, (in f) invalid input: diff received 1, which is not valid for its 2nd argument
Maple encuentra un error porque primero sustituye el valor de x en la función y luego
intenta hacer la derivada. En cambio al utilizar unapply primero se hace la derivada y luego
la expresión obtenida se convierte en función.
> 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

EJERCICIOS PROPUESTOS 4.5.1.

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:

15. f (t) = (cos t , sen t , t)


Walter Arriaga Delgado MAPLE 183

16. f (t) = (cos t , sen t , 1)

17. f (t) = (t cos t , t sen t , t)

18. f (t) = (− sen t , cos t , t)


  
t
19. f (t) = t − sen t , 1 − cos t , 4 sen
2

20. f (t) = (t2 , cos t , sen t)

21. f (t) = (3t − t3 , 3t2 , 3t + t3 )

22. f (t) = (−1 + sen(2t) cos(3t) , 2t sen(2t) sen(3t) , −3t cos(2t))


Gráfica de funciones implı́citas

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

29. x2 + y 2 + 2z 2 + 2xz − 2yz = 1

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.

Barra de contexto para Animaciones

Describiremos la barra de contexto y botones para las animaciones.

1. Exhibe en la gráfica de 2 D la coordenada del punto seleccionado.

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.

4. Detiene la animación (Stop).

5. Presenta la animación seleccionada (Start).

6. Visualiza el próximo marco en la animación.

7. Presenta un conjunto de animaciones hacia adelante.


Walter Arriaga Delgado MAPLE 185

8. Presenta un conjunto de animaciones hacia atrás.

9. Disminuye la velocidad de animación (frames/segundo).

10. Aumenta la velocidad de animación (frames/segundo).

11. establece la animación en un ciclo.

12. establece la animación en un ciclo continuo.

Figura 4.6: Barra de contexto para animaciones

4.6.2. Animaciones en 2 dimensiones

Usaremos el comando animate de la siguiente manera:


animate(F,x,t)
animate(F,x,t,...)
Una llamada tı́pica a la función animada es el animate(F(x,t),x=a.. el b,t=c.. el d), dónde
F es una función real de x y t, x=a..b especifica el rango real horizontal en que el F se traza
mientras t=c..d es el tiempo que varı́a desde c hasta d. Un rango vertical puede especificarse
vı́a la opción de vista.
animate puede ser definido por with(plots) o with(plots,animate).
También puede usarse plots[animate].
186 MAPLE Walter Arriaga Delgado

Ejemplo 4.6.1. Animar la función y = sen x

Usemos el paquete with(plots)


> with(plots):
> animate( sin(x*t),x=-10..10,t=1..2,frames=50);

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

También puede usarse plots[animatecurve].

Ejemplo 4.6.2. Realizar la siguiente animación:

Usemos el paquete with(plots)


> with(plots):
animatecurve(sin(x),x=-Pi..Pi,frames=50);
> F := x->sin(x):
> animatecurve( F,-Pi..Pi,color=red);
> animatecurve([sin(x),x,x=-4..4],numpoints=100,frames=100);
> animatecurve([sin(x),x,x=-4..4],coords=polar,numpoints=100,frames=100);
> animatecurve(sin(5*x),x=-3..3,view=0..1);
> animatecurve( [sin(t),cos(t),t=-Pi..Pi],view=[-2..2,-2..2]);
> animatecurve( x-x^3,sin(x), x=0..Pi/2 );
Usando la opción display
> P := animate(sin(x+t),x=-Pi..Pi,t=-Pi..Pi,frames=8):
> Q := animate(cos(x+t),x=-Pi..Pi,t=-Pi..Pi,frames=8):
> display([P,Q]);

0.5

–3 –2 –1 1 2 3
x

–0.5

–1

4.6.3. Animaciones en 3 dimensiones

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

Animar la función f (x, y) = cos tx. sen ty.


> with(plots):
> animate3d(cos(t*x)*sin(t*y),x=-Pi..Pi, y=-Pi..Pi,t=1..2);

Obtenga las siguientes animaciones:


> animate3d(x*cos(t*u),x=1..3,t=1..4,u=2..4,coords=spherical);
> animate3d((1.3)^x * sin(u*y),x=-1..2*Pi,y=0..Pi,u=1..8, coords=spherical);
> animate3d(sin(x)*cos(t*u),x=1..3,t=1..4,u=1/4..7/2,coords= cylindrical);
> animate3d([x*u,t-u,x*cos(t*u)],x=1..3,t=1..4,u=2..4);
> animate3d([x,y,(1.3)^x * sin(u*y)],x=1..3,y=1..4,u=1..2,coords=spherical);
> animate3d([x*u,u*t,x*cos(t*u)],x=1..3,t=1..4,u=2..4,coords= cylindrical);
> animate3d(cos(t*x)*sin(t*y),x=-Pi..Pi, y=-Pi..Pi,t=1..2,color=cos(x*y));
Usando la opción display
> P := animate3d(x-k*y+1,x=-10..10,y=-10..10,k=-10..0,frames=4):
> Q := animate3d(x-k*y+1,x=-10..10,y=-10..10,k=0..10,frames=4):
> display([P,Q]);

> P:=animate3d(cos(t*x)*sin(t*y),x=-Pi..Pi, y=-Pi..Pi,t=1..2,frames=4):


> Q:=animate3d(x*cos(t*u),x=1..3,t=1..4,u=2..4,coords=spherical,frames=4):
> display([P,Q],style=patch);
Walter Arriaga Delgado MAPLE 189

Ejemplo 4.6.4.

1. Obtener las animaciones de las funciones de la lista de ejercicios (4.4.1)

2. Obtener las animaciones de las funciones de la lista de ejercicios (4.5.1)


190 MAPLE Walter Arriaga Delgado
5

GEOMETRIA

5.1. Origen y definición

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.

5.2. Geometrı́a plana euclı́dea

En Maple estudiaremos las diversas aplicaciones tanto en Geometrı́a euclidiana plana y


Geometrı́a analı́tica plana, veremos medidas de longitudes, superficies, de representaciones
gráficas, etc. Como prerrequisito para entender estos programas, el usuario debe tener pleno
dominio del sistema de coordenadas cartesianas.
Para estudiar y desarrollar el gráfico y medidas de las longitudes y superficies de la Ge-
ometrı́a Plana, se trabaja con los paquetes geometry y plots. A continuación veremos los
contenidos que se trabaja con este paquete.

5.2.1. Figuras geométricas

Se llama figura geométrica a la representación de lı́neas, superficies y sólidos, adoptando


cierta forma y teniendo una determinada extensión. A excepción del punto, el cual representa

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

Figura 5.1: Figuras geométricas

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

point(P, Px, Py)


point(P, [Px, Py])
Parámetros:
P : nombre del punto.
Px : coordenada horizontal
Py : coordenada vertical
Descripción
Un punto tiene una posición, no tiene longitud, ancho, ni espesor.
Un punto P es representado por su coordenada horizontal Px y su coordenada vertical Py.
Para acceder la información que relaciona al punto P, use las siguientes opciones de llamado:

La opción form(P) devuelve la forma del objeto geométrico, es decir, point2d si P es un


punto bidimensional y , point3d si P es un punto tridimensional.

La opción coordinates(P) devuelve [Px,Py] donde Px es la coordenada horizontal y Py


la coordenada vertical de punto P.

La opción HorizontalCoord(P) devuelve la coordenada horizontal Px de P.

La opción VerticalCoord(P) devuelve coordenada vertical Py de P.

La opción detail(P) muestra todos los detalles del punto P.

El comando with(geometry,point) permite el uso de la forma abreviada de esta orden.

Veamos los comandos y opciones que se utilizan en el siguiente ejemplo, en donde se


definen puntos, indicando su forma dimensional, sus coordenadas como par ordenado (entre
corchetes), la coordenada horizontal, la coordenada vertical, y en forma general, los detalles
de éstos puntos:
> with(geometry);
Definamos el punto A(2, 1):
> point(A,2,1);
A

Determinemos la forma del punto A:


> form(A);
point2d

Podemos preguntar por el tipo de punto.


> type(A,’point2d’);
true
194 MAPLE Walter Arriaga Delgado

Determinemos las coordenadas del punto A:


> coordinates(A);
[2, 1]

Determinemos la coordenada horizontal del punto A:


> HorizontalCoord(A);
2

Determinemos la coordenada vertical del punto A:


> VerticalCoord(A);
1

Mostremos los detalles en forma general del punto A:


> detail(A);
name of the object: A
form of the object: point2d
coordinates of the point: [2, 1]
Para dibujar puntos se utiliza el paquete plots, y el comando pointplot.
> with(plots):
> pointplot([3,4]);
5

4.5

3.5

3
2 2.5 3 3.5 4

Figura 5.2: Un punto con el comando pointplot


Walter Arriaga Delgado MAPLE 195

Para dibujar dos puntos:


> pointplot([3,4],[-2,2]);
4

3.5

2.5

–2 –1 0 1 2 3

Figura 5.3: Dos puntos con el comando pointplot

5.2.3. Segmentos

Definición 5.2.2. Es la porción de recta limitada por dos puntos llamados extremos.

El segmento AB de la figura adjunta,

A B

Figura 5.4: Segmento

Se denota: AB. Los puntos A y B son los extremos.


Para conocer como Maple trabaja éste elemento:
geometry[segment] - define un segmento.
geometry[dsegment] - define un segmento dirigido.
Orden de llamado
segment(seg, [P1, P2])
segment(seg, P1, P2)
dsegment(seg, [P1, P2])
dsegment(seg, P1, P2)
Parámetros:
seg : nombre del segmento o segmento dirigido.
P1,P2 : dos puntos.
Descripción
196 MAPLE Walter Arriaga Delgado

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.

El comando with(geometry,segment) permite el uso de la forma abreviada de esta orden.

El comando with(geometry,dsegment) permite el uso de la forma abreviada de esta orden.

> 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

Determinemos la forma del segmento AB.


> form(AB);
segment2d

Podemos preguntar por el tipo de segmento.


> type(AB,’segment2d’);
true
Walter Arriaga Delgado MAPLE 197

Definamos el segmento como una lista AB.


> DefinedAs(AB);
[A, B]

Determinemos los extremos del segmento AB:


> map(coordinates, %);
[[2, 3], [6, 5]]

Mostremos todos los detalles del segmento AB:


> detail(AB);
name of the object: AB
form of the object: segment2d
the two ends of the segment: [[2, 3], [6, 5]]
Para graficar segmentos se utiliza el paquete geometry. Dentro de éste paquete usaremos los
comandos draw para visualizar el gráfico, y las opciones como: printtext=true para presentar
los extremos mediante letras y axes=none para no mostrar los ejes de coordenadas.
Seguiremos los siguientes pasos:
Entrar al paquete geometry.
Definir el segmento.
Dibujar el segmento.
> with(geometry):
Definamos el segmento AB
> segment(AB,[point(A,2,3),point(B,6,5)]);

AB

Mostremos el segmento AB con la opción draw:


> draw(AB,printtext=true,axes=none);
Notas importantes:
Para determinar la longitud de un segmento usaremos la opción distance.
Por ejemplo, hallemos la longitud del segmento AB.
> distance(AB);

20

Para determinar el punto medio de un segmento usaremos la opción midpoint.


Por ejemplo, hallemos el punto medio del segmento AB.
Primero definamos el punto medio del segmento AB.
198 MAPLE Walter Arriaga Delgado

Figura 5.5: Segmento 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

Definamos el segmento CD.


> segment(CD,[point(C,-2,6),point(D,6,-2)]);

CD

Definamos el segmento EF .
> segment(EF,[point(E,-3,1),point(F,7,5)]);

EF

Grafiquemos los segmentos AB CD EF con la opción draw.


> draw(AB,CD,EF,printtext=true,axes=normal,color=blue);
Walter Arriaga Delgado MAPLE 199

B
C 6

F
4

–2 0 2 4 6
A
–2 D

Figura 5.6: Tres segmentos

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

Figura 5.7: Triángulo

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

La opción HorizontalName(T) devuelve el nombre del eje horizontal; o FAIL si el eje no


es asignado con cualquier nombre.

La opción VerticalName(T) devuelve el nombre del eje vertical; o FAIL si el eje no es


asignado con cualquier nombre.

La opción method(T) indica el método para definir el triángulo T. Ellos son:


“points” si T es definido mediante tres puntos o tres lı́neas;
“sides” si T es definido mediante tres lados;
“angle” si T es definido mediante dos lados y el ángulo entre ellos.

La opción DefinedAs(T) devuelve:


Walter Arriaga Delgado MAPLE 201

la lista de tres vértices de T si T es definido con tres puntos o tres lı́neas.


la lista de tres lados de T si T es definido con tres lados.
la lista de dos lados y un ángulo entre ellos si T es definido como tal.

La opción detail(T) devuelve una descripción detallada del triángulo T.

El comando with(geometry,triangle) permite el uso de la forma abreviada de esta orden.

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

Determinemos el triángulo T1:


> triangle(T1,[A,B,C]);
T1

Determinemos la forma del triángulo T1:


> form(T1);
triangle2d

Preguntemos por el tipo del triángulo T1.


> type(T1,’triangle2d’);
true

Determinemos el método que se ha usado para definir el triángulo T1:


> method(T1);
points

Determinemos las coordenadas del triángulo T1:


> map(coordinates,DefinedAs(T1));

[[1, 0], [3, 2], [5, 1]]

Mostremos todos los detalles del triángulo T1:


> detail(T1);
name of the object: T1
form of the object: triangle2d
202 MAPLE Walter Arriaga Delgado

method to define the triangle: points


the three vertices: [[1,0],[3,2],[5,1]]
Ahora definamos tres lados l1, l2, l3 dadas por las rectas:
y = x + 3 ; y = 2x − 1 ; y = −x + 3.
> line(l1,y=x+3,[x,y]),line(l2,y=2*x-1,[x,y]),line(l3,y=-x+3, [x,y]);

l1, l2, l3

Determinemos el triángulo T2:


> triangle(T2,[l1,l2,l3]);
T2

Determinemos las coordenadas del triángulo T2:


> map(coordinates,DefinedAs(T2));
  
4 5
[4, 7], [0, 3], ,
5 3
Mostremos todos los detalles del triángulo T2
> detail(T2);
name of the object: T2
form of the object: triangle2d
method to define the triangle: points
the three vertices: [[4,7],[0,3],[4/3,5/3]]
> triangle(T3,[5,5,5]);
T3

> 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

Para graficar triángulos usaremos el comando draw.


geometry[draw] Crea una gráfica bidimensional de objetos apoyada en el paquete geometry.
Orden llamado:
draw(objeto,...)
draw([objeto 1,..., objeto n],...)
Parámetros
Objeto : objeto a ser trazado
[objeto 1,..., objeto n] : lista de objetos para ser trazados
Descripción

El comando draw proporciona la visualización gráfica de todos los objetos apoyada en el


paquete geometry. Se pueden adicionar un conjunto de opciones como: color, linestyle,
numpoints, style, symbol, thickness, printtext, filled.

La opción printtext=true, permite imprimir los vertices.

La opción filled=true permite rellenar con un color el triángulo

> draw(T5,printtext=true,axes=none);
B

Figura 5.8: Triángulo T5


Walter Arriaga Delgado MAPLE 205

> 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

Figura 5.9: Triángulo T1

> draw(T2,axes=normal,color=magenta,filled=true);

2
0 1 2 3 4

Figura 5.10: Triángulo T1

Lı́neas Notables del triángulo:

1. Mediana: Segmento que une un vértice con el punto medio del lado opuesto. Todo
triángulo tiene 3 medianas.

2. Mediatriz: Recta perpendicular a un lado, levantada desde su punto medio. Todo


triángulo tiene 3 mediatrices.

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.

5. Altura: Segmento perpendicular a un lado, trazado desde el vértice opuesto. Todo


triángulo tiene 3 alturas.

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.

Puntos Notables del triángulo:

1. Circuncentro: Es el punto de intersección de las tres mediatrices del triángulo; equidista


de sus vértices y es el centro de la circunferencia circunscrita al triángulo.

2. Ortocentro: Es el punto de intersección de las tres alturas de un triángulo.

3. Baricentro: Llamado también centroide. Es el punto de intersección de las tres medianas


de un triángulo. Divide a cada mediana en dos segmentos tales que uno es el doble del
otro.

4. Incentro: Es el punto de intersección de las tres bisectrices interiores de un triángulo,


equidista de los lados y es el centro de la circunferencia inscrita al triángulo.

5. Excentro: Es el punto de intersección de dos bisectrices exteriores y una bisectriz in-


terior. Cada triángulo tiene tres excentros los cuales son puntos exteriores al triángulo,
equidistan de los lados y son los centros de las circunferencias exinscritas al triángulo.

En Maple usaremos los siguientes comandos:

altitude: calcula la altura de un triángulo dado.


orden de llamado:
altitude(hA,A,ABC,H)

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

median: calcula la mediana de un triángulo.


orden de llamado:
median(mA,A,ABC,M)

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

orthocenter: calcula el ortocentro de un triángulo.


orden de llamado:
orthocenter(H,g)

parámetros:
H : nombre del ortocentro
g : nombre del triángulo
Para una descripción detallada del ortocentro H, use detail(H).

centroid: calcula el centroide o baricentro de un triángulo.


orden de llamado:
centroid(G,g)

parámetros:
G : nombre del centroide o baricentro
g : nombre del triángulo
Para una descripción detallada del baricentro G, use detail(G).

incircle: calcula el incentro de un triángulo dado.


orden de llamado:
ic,incircle(T, ’centername’=cn)

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

circumcircle: calcula el circuncentro de un triángulo.


orden de llamado:
cincumcircle(cc,T,cn)

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

bisector: calcula la bisectriz de un triángulo.


orden de llamado:
bisector(bA,A,ABC,P)

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.

Definamos el triángulo ABC cuyos vértices son A( 0 , 0 ) , B( 2 , 0 ) y C( 1 , 3 )


> triangle(ABC,[point(A,0,0),point(B,2,0),point(C,1,3)]);

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

Figura 5.11: Ortocentro


210 MAPLE Walter Arriaga Delgado

> 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

Figura 5.12: Baricentro

> 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

name of the object : b3


f orm of the object : line2d
equation of the line : 6 ∗ 10^(1/2) ∗ −x − 6 ∗ 10^(1/2) = 0
> draw(ABC,b1,b2,b3,axes=normal,printtext=true,color=blue);
3 C

2.5

1.5

1 B2 B1

0.5

0A 0.2 0.6 B3
11.2 1.6 2B

Figura 5.13: Incentro

> 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

0A 0.2 0.6 11.2 1.6 2B

Figura 5.14: Incentro inc

> 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

Figura 5.15: Triángulo inscrito


214 MAPLE Walter Arriaga Delgado

> 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

Figura 5.16: La opción medial

5.2.5. Polı́gonos

Polı́gono, es una poligonal cerrada, de modo que dos lados no se corten.


En un polı́gono se distinguen los siguientes elementos:

Vértices: A, B, C, ldots

Lados: AB, BC, ldots

Ángulos interiores: ∠A, ∠B, .....

Ángulos exteriores: α, β, .......


Walter Arriaga Delgado MAPLE 215

A C

E D
β

Figura 5.17: Polı́gono

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

Figura 5.18: Polı́gono (a)

> 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 orden de llamanda es polygonplot(L, opciones),


donde L indica los vértices del polı́gono.

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

Figura 5.19: Polı́gono (b)

polygonplot pueden ser definidos por el with(plots) o with(plots,polygonplot).

También puede usarse el plots[polygonplot]

Ejemplo 5.2.3. Para dibujar un triángulo

> polygonplot([[2,5],[3,2],[1,4]],color=blue);
5

4.5

3.5

2.5

2
1 1.5 2 2.5 3

Figura 5.20: La opción poligonplot

A continuación construiremos el siguiente programa:


> ngon:=n->[seq([ cos(2*Pi*i/n), sin(2*Pi*i/n) ], i = 1..n)];
      
πi πi
ngon := n −→ seq cos 2 , sin 2 , i = 1..n
n n

> 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

La función ngon(n) nos permite representar un polı́gono regular de n lados.

Ejemplo 5.2.4. Graficar un cuadrado

> square := [[0,0],[0,1],[1,1],[1,0]]:


> polygonplot(square,axes=none,color=aquamarine);

Figura 5.21: El cuadrado

Ejemplo 5.2.5. Graficar un hexágono

>polygonplot(ngon(6),color=green,axes=none,scaling=constrained);

Figura 5.22: El hexágono

Ejemplo 5.2.6. Graficar un octágono

>polygonplot(ngon(8),color=cyan,axes=none,scaling=constrained);

Ejemplo 5.2.7. Graficar un dodecágono

>polygonplot(ngon(12),color=orange,axes=none,scaling=constrained);
218 MAPLE Walter Arriaga Delgado

Figura 5.23: El octágono

5.3. Geometrı́a del Espacio

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):

Ejemplo 5.3.1. Graficar un cuadrado

> 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

Figura 5.24: El cubo

Figura 5.25: La opción polygonplot3d

> 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

Figura 5.26: La opción polyhedraplot

Figura 5.27: La opción octahedron

> with(plots):
> coordplot3d(rectangular);
> with(plots):
> spacecurve([cos(t),sin(t),t],t=0..4*Pi);

Ejemplo 5.3.2. Graficando un cubo con diversos colores:


> p1 := plot3d([x,y,1-y],x=0..1,y=0..1,style=patchnogrid,color=[x,y,1-y]):
> p2 := plot3d([x,y,y],x=0..1,y=0..1,style=patchnogrid,color=[x,y,y]):
> p3 := plot3d([x,y,1-x],x=0..1,y=0..1,style=patchnogrid,color=[x,y,1-x]):
> p4 := plot3d([x,y,x],x=0..1,y=0..1,style=patchnogrid,color=[x,y,x]):
> p5 := plot3d([x,1-x,z],x=0..1,z=0..1,style=patchnogrid,color=[x,1-x,z]):
> p6 := plot3d([x,x,z],x=0..1,z=0..1,style=patchnogrid,color=[x,x,z]):
> p7 := plots[pointplot3d]([[0,1,0],[1,1,0],[1,0,0],[1,0,1],[0,0,1], [0,1,1],[0,1,0]],style=line,
color=black):
> p8 := plots[pointplot3d]([[0,1,1],[1,1,1],[1,0,1]],style=line,color=black):
> p9 := plots[pointplot3d]([[1,1,1],[1,1,0]],style=line,color=black):
Walter Arriaga Delgado MAPLE 221

Figura 5.28: La opción coordplot3d

Figura 5.29: La opción spacecurve

> p10 := plottools[arrow]([0,0,0],[0,0,1.3],.1,.05,.06,arrow,color=black):


> p11 := plottools[arrow]([0,0,0],[0,1.3,0],.1,.05,.06,arrow,color=black):
> p12 := plottools[arrow]([0,0,0],[1.3,0,0],.1,.05,.06,arrow,color=black):
> t1 := plots[textplot3d] ([[1.3,0,-.15,‘rojo, R‘] , [0,1.3,-.15,‘verde, V‘] , [0,0,1.35,‘azul, A‘] ,
[1.1,1.1,0,‘amarillo‘] , [1.1,0,1.1,‘magenta‘] , [0,1.1,1.1,‘celeste‘] , [1.1,1.1,1.1,‘negro‘] , [-.1,-.1,-
.1,‘blanco‘]] , font=[HELVETICA,9],color=black):
> plots[display]([p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,t1], orientation=[45,56],axes=none);
222 MAPLE Walter Arriaga Delgado

azul, A

magenta celeste

negro

rojo, R verde, V
amarillo

Figura 5.30: El cubo


6

PROGRAMACIÓN CON MAPLE

Objetivos:
z Adquirir habilidades básicas de programación, ası́ como también conocer las
diferentes funcionalidades del programa y sus potencialidades.

z Enseñar al alumno a programar en un lenguaje de alto nivel.

z Facilitar la utilización de programas previamente implementados en Maple.

z Desarrollar programas en el Lenguaje de Programación Maple para resolver problemas


matemáticos aplicados a Ciencias, Ingenierı́a e Investigación.

z Introducir el manejo de un entorno de programación de un lenguaje de alto nivel para


generar código ejecutable correspondiente a los algoritmos diseñados para la resolución
de problemas e interacción con el entorno.

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.

6.1. Bucles y Condicionales

El bucle y los condicionales representan la base de la programación estructurada. Es una


evolución del código ensamblador, donde la única posibilidad de iterar un código era establecer
una sentencia jump (que en los lenguajes de programación fue sustituida por el “ir a” o GOTO).

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

Por otro lado están las condicionales de la forma:

si condición entonces operación1 si no operación 2

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:

mientras condición operación

lo que significa que mientras se verifique la condición ha de realizarse la operación.


Por ejemplo, generemos un procedimiento que calcula el máximo de dos números.
Los procedimientos en Maple se denotan con proc y terminan con end. Las variables que
se involucran en el procedimiento se definen como locales para que luego se puedan usar fuera
de el procedimientos.
Las condicionales se empiezan por if y se terminan con fi.

if condición then operación1 else operación 2 fi

Esta instrucción significa que si se cumple la condición entonces se realiza la operación 1 y


en caso contrario la operación 2. Después de else pueden abrirse nuevas condicionales que se
escriben else if o de manera más abreviada elif.

Ejemplo 6.1.1. Calcular el máximo de dos números

> maximo:=proc(a,b)
> local c:
> if (a>b) then c:=a else c:=b fi: c;
> end:
Walter Arriaga Delgado MAPLE 225

La primera lı́nea de código asigna un nombre al procedimiento, digamos máximo e indica


que va a actuar sobre dos números a y b.

La variable c que va a ser la salida se define como una variable local, esto es, sólo se
considera dentro del procedimiento.

La sentencia condicional es exactamente la elección del máximo.

Como c va seguida de un punto y coma, será lo que se vea en la pantalla, la asignación


a la salida.

El comando end termina el procedimiento.

Veamos que este programa funciona:


> maximo(2,4);

Ejemplo 6.1.2. Veamos un procedimiento que indica el signo de un número real:

> 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. Sentencias básicas de programación

6.2.1. La sentencia if

Se trata de la sentencia de condición y selección más utilizada. La forma más general de


utilizarla es la siguiente:

if (expresión de condición 1) then


<sentencia1>;
elif (expresión de condición 2) then
<sentencia2>;
else
<sentencia3>;
end 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.

Ejemplo 6.2.1. Ingresemos cualquier valor2 para a, en este caso a = 1.


> restart;
> a:=1;
a := 1

> if (a>1) then;


> print(“a es mayor que uno”);
> elif (a<1) then;
> print(“a es menor que uno”);
> else
1
Se sugiere que cada programa a construir se inicie con la opción restart
2
Intente para otros valores de a
Walter Arriaga Delgado MAPLE 227

> print(“a es igual a 1”);


> end if;
“a es igual a 1”

Ejemplo 6.2.2. Ingrese un valor para usuario3


> restart;
> usuario:=18276;
usuario := 18276

> clave:=18276:
> if (usuario=clave) then;
> print(“Acceso permitido”);
> else
> print(“Acceso denegado”);
> end if;
“Acceso permitido”

6.2.2. El bucle for

Esta sentencia nos servirá para realizar repeticiones. El bucle termina con end do. La forma
más general es:

for <var> from <inicio> by <paso> to <final> while <expresión de condición>


do <sentencias> end do;

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):

Cláusula Valor por defecto


for variable auxiliar
from 1
by 1
to infinito
while true

Cuadro 6.1: Sentencia for


3
Intente asignarle otros valores a usuario
228 MAPLE Walter Arriaga Delgado

Por ser opcionales podemos simplificar esta estructura de diversas formas y la sintaxis
semuestra a continuación:

for <var> from <expresión> by <expresión> to <expresión> do


<sentencias>;
end do;

ó 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.

Ejemplo 6.2.3. Obtener los múltiplos de 7 menores que 100:


> for n from 0 by 7 to 100 do n od;

Ejemplo 6.2.4. Obtener los cincuenta primeros números primos:


> for i from 1 to 50 do ithprime(i) od;

Ejemplo 6.2.5. Sumar los números del 1 al 10000.


> S:=0:
> for i from 1 to 10^4 do
> S:=S+i:
> od:
> S;
50005000

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

Ejemplo 6.2.6. Sumar los elementos de una lista numérica:


> a:=[1,2,3,4,5,6,7,8];
a := [1, 2, 3, 4, 5, 6, 7, 8]

> S:=0:
> for i from 1 to nops(a) do
> S:=S+a[i]:
> od:
> S;
36

Ejemplo 6.2.7. Calcular los cuadrados del 0 al 5.


> restart;
> for i from 0 to 5 do
> i^2
> end do;
0

16

25

Se recomienda probar diferentes opciones (como cambiar “to 5” por “while i<5”) y los
resultados.

Ejemplo 6.2.8. Factorial de un número.


> restart;
> fact:=1:
> for i from 1 to 5 do
> fact:=fact*i;
> end do;
f act := 1

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:

Ejemplo 6.2.9. Definir una matriz de dimensiones 10 x 15 cuyos elementos se obtengan a


partir de la siguiente ley: Ai,j = j − i.
En primer lugar se declara la matriz utilizando el comando array.
> A:=array(1..10,1..15);
> for i from 1 to 10 do
> for j from 1 to 15 do A[i,j]:=j-i od
> od;
> print(A);

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:

for var in expr while cond do sentencias od;

Ejemplo 6.2.10. Calcular el valor de: e, e1/2 , e1/3 , e1/4 .


> restart;
> L:=[seq(1/i,i=1..4)];  
1 1 1
L := 1, , ,
2 3 4
> for i in L do;
> evalf(exp(i));
> end do;
2,718281828

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

6.2.3. El bucle while

Es utilizado para ejecutar repetidamente una secuencia de sentencias mientras una condi-
ción se cumpla. La estructura es la siguiente:

while (expresión de condición) do


<sentencias>;
end do;

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

> while (x>1) do;


> x:=x/4;
> end do;
x := 64

x := 16

x := 4

x := 1

6.2.4. La sentencia break

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

6.2.5. La sentencia next

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

Cuando i=3 Maple salta la sentencia print(i) y pasa directamente a i=4.

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

6.2.6. Comandos para realizar repeticiones

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]

> map(x− >x^2,L);


[1, 4, 9, 16, 25]

Comandos select, remove y selectremove

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.

Ejemplo 6.2.18. Dada la lista:


> L:=[1,2,3,4,5,6,7,8,9,10,11,12,13];

L := [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

obtenemos la lista de los números primos:


> primos:=select(isprime,L);

primos := [2, 3, 5, 7, 11, 13]

además obtenemos la lista de los números no primos:


> noprimos:=remove(isprime,L);

noprimos := [1, 4, 6, 8, 9, 10, 12]


Walter Arriaga Delgado MAPLE 235

también podemos obtener la lista de los números primos y no primos:


> pynop:=selectremove(isprime,L);

pynop := [2, 3, 5, 7, 11, 13], [1, 4, 6, 8, 9, 10, 12]

Comandos seq, add, sum, mul y product

Estos comandos forman secuencias, sumas y y multiplicaciones respectivamente. Las es-


tructuras son las siguientes:
secuencia seq(f,i=a..b);
adición add(f,i=a..b);
suma sum(f,i=a..N);
multiplicación mul(f,i=a..b);
producto product(f,i=a..N);

Ejemplo 6.2.19. Generemos la lista de los cuadrados de los 10 primeros números.


> L:=[seq(i^2,i=1..10)];

L := [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Para sumar todos los elementos de la lista L hacemos:


> add(i,i=L);
385

Para sumar todos o un grupo de elementos de la lista L hacemos:


> add(i^2,i=1..10);
385

ó también
> sum(i^2,i=1..10);
385

Para multiplicar todos los elementos de la lista L hacemos:


> mul(i,i=L);
13168189440000

Para multiplicar todos o un grupo de elementos de la lista L hacemos:


> mul(i^2,i=1..10);
13168189440000
236 MAPLE Walter Arriaga Delgado

ó 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.

6.3. Procedimientos con Maple

Un procedimiento (procedure) es un conjunto de sentencias agrupadas y enfocadas a realizar


una tarea especı́fica. Es lo equivalente a las funciones o a las subrutinas de Fortran, de C++
o de Matlab. La estructura general de un procedimiento de Maple es la siguiente:

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.

K es la secuencia de sentencias que forma el cuerpo del procedimiento. Los parámetros


P, las variables locales L, globales G, las opciones O y la descripción D son opcionales.

No son necesarias todas estas especificaciones pero este orden es inalterable.

En la primera lı́nea del procedimiento se escribe el nombre del procedimiento y se le asigna


la expresión proc(argumentos), siendo los argumentos las entradas de dicho procedimiento. En
caso de no necesitarse ningún argumento de entrada para la ejecución del procedimiento, al
nombre del mismo se le asigna la expresión proc( ).
Walter Arriaga Delgado MAPLE 237

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.

Veamos algunos ejemplos sencillos:

Ejemplo 6.3.1. Programa para calcular el cubo de un número cualquiera


> restart:
> cubo:=proc(a)
> a^3;
> end proc;
cubo := proc(a)a^3end proc

> cubo(4);
64
238 MAPLE Walter Arriaga Delgado

Ejemplo 6.3.2. Programa para calcular el área de un cı́rculo


> area_circulo:=proc(r)
> Pi*r^2;
> end proc:
> area:=area_circulo(2);
area := 4π

6.3.1. Componentes de un procedimiento

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);

Ejemplo 6.3.3. Programa para calcular el factorial de un número entero


> restart:
> num_factorial:=proc(N::posint)
> mul(i,i=1..N);
> end proc:
> num_factorial(5);
120

Variables locales y variables globales

En un procedimiento pueden existir variables locales, como también variables globales.


Fuera de éste las variables siempre serán globales. Existen dos diferencias principales entre
variables locales y variables globales:
Walter Arriaga Delgado MAPLE 239

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 a la izquierda de una sentencia de asignación.


A:= ó A[i]:=

Si aparece como la variable ı́ndice de un bloque for, o en un comando seq, add, sum,
mul o product.

Si no se cumple ninguno de estos dos puntos, la variable se convertirá en global.


La otra diferencia entre las variables locales y globales es el nivel de evaluación. Durante
la ejecución de un procedimiento, las variables locales se evalúan solo un nivel, mientra que
las globales lo hacen totalmente. Ejemplo:
> f:=x+y:
> x:=z^2:
> z:=y^3+1:
Todas las variables son globales, ası́ que se evaluará totalmente, es decir, se ejecutarán
todas las asignaciones realizadas para dar la expresión de f .
> f;
(y 3 + 1)2 + y

Se puede controlar el nivel de evaluación utilizando el comando eval.


> eval(f,1); (Sólo ejecuta la primera asignación)

x+y

> eval(f,2); (Sólo ejecuta la segunda asignación)

z2 + y

> eval(f,3); (Ejecuta las tres asignaciones)

(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

Sin la llamada a eval el resultado hubiese sido y 2 .

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

Las opciones de un procedimiento deben aparecer inmediatamente después de la declaración


de variables. Un procedimiento puede tener una o varias opciones que ofrece Maple:

Options 01, 02, ..., 0n


Walter Arriaga Delgado MAPLE 241

Opciones remember y system


Comenzamos con un ejemplo: considerándose la secuencia de Fibonacci donde cada número
es la suma de los dos anteriores (siendo los dos primeros 0 y 1: 0,1,1,2,3,5,8,13...). Este serı́a
el procedimiento que calcula el número enésimo de la secuencia:
> fibonacci := proc(n::nonnegint) # entero no negativo
> if(n < 2) then;
> n;
> else
> fibonacci(n − 1)+fibonacci(n − 2);
> end if;
> end proc;
fibonacci:=proc(n::nonnegint)

if n < 2 then n else fibonacci(n − 1) + fibonacci(n − 2) end if

end proc
> fibonacci (5);
5

Se observa que si escribimos fibonacci(25) tarda un tiempo considerable en calcularlo, y


con 50 tarda más de 30 minutos. Esto es ası́ porque recalcula todos los sumandos una y otra
vez. Para evitar esto se utiliza la opción remember que almacena los valores calculados en
el procedimiento en una remember table y si se requiere otra vez, los toma de esta. Mismo
ejemplo con dicha opción:
> fibonacci := proc(n::nonnegint) # entero no negativo
> option remember, system;
> if(n < 2) then;
> n;
> else
> fibonacci(n − 1)+fibonacci(n − 2);
> end if;
> end proc;
fibonacci:=proc(n::nonnegint)
option remember, system;

if n < 2 then n else fibonacci(n − 1) + fibonacci(n − 2) end if


242 MAPLE Walter Arriaga Delgado

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

Es la última cláusula de un procedimiento y debe aparecer justo antes del cuerpo. No


tiene ningún efecto en la ejecución del procedimiento, su único objetivo es informar. Maple lo
imprime aunque no se imprima el procedimento debido a la opción Copyright.
Ejemplo
> f:=proc(x)
> option ‘Copyright Tecnun‘;
> description “calcular el cuadrado de x”;
> x^2;
> end proc;

f := proc(x) description “calcular el cuadrado de x” ... end proc

6.3.2. Valor de retorno

Cuando se invoca un procedimiento, el valor que Maple devuelve es normalmente el valor


de la última sentencia del cuerpo del proceso. Puede existir otros tres tipos de valor de retorno
en un procedimiento:
Walter Arriaga Delgado MAPLE 243

A través de un parámetro. (no recomendable y por ello no se explica)

A través de un return explı́cito.

Mediante un return de error.

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:

> posicion := proc(x::anything, L::list)


> local i;
> for i to nops(L) do;
> if (x=L[i]) then;
> RETURN (i);
> else 0;
> end if;
> end do;
> end proc;

El comando nops calcula el número de operandos de una expresión.


244 MAPLE Walter Arriaga Delgado

Return de error

Un return de error ocurre cuando se llama al comando ERROR, que tiene la siguiente
sintaxis:
error “texto”

Normalmente causa la salida del procedimiento a la sesión de Maple, donde se imprime un


mensaje de error.
Error, (in nombre _ del _ procedimiento), secuencia
Texto es el argumento del comando ERROR y _ nombre _ del _ procedimiento el nombre
del procedimiento donde se producido el error. Si el procedimiento no tiene nombre el mensaje
será:
Error, (in unknown), secuencia
Ejemplo de aplicación
> cociente := proc(x, y)
> if (y=0) then;
> error “no se puede dividir por cero”;
> else
> x/y;
> end if;
> end proc;
cociente:=proc(x,y)if y=0 then error “no se puede dividir por cero” else x/y end if end proc
> cociente(3,0);
Error, (in cociente) no se puede dividir por cero

6.3.3. Guardar y recuperar procedimientos

Mientras se está desarrollando un procedimiento se pueda salvar el trabajo grabando la


hoja de Maple entera. Una vez que se está satisfecho con cómo funciona el procedimiento se
puede guardar en un archivo ∗.m (sólo el procedimiento). Estos archivos forman parte del
formato interno de Maple, lo hace que se pueda trabajar con ellos de manera más eficiente.
Para grabarlos con extensión se utiliza el comando save y si lo que es recuperarlos, read.
Ejemplo:
> Cubo_Proc := proc(a)
> a^3;
> end proc;
Walter Arriaga Delgado MAPLE 245

> save Cubo_Proc, “Cubo_Proc.m”;


> read “Cubo_Proc.m”;

6.3.4. Procedimientos que devuelven procedimientos

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 )

El código para generar el procedimiento deberá aplicar la ecuación a la función introducida y


de la siguiente manera:
> MakeIteration:=proc(expr::algebraic,x::name)
> local iteration;
> iteration:=x-expr/diff(expr,x);
> unapply(iteration,x);
> end proc:

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

> to 4 do x0:=Newton(x0); end do;

x0 := 4,828427124

x0 := 4,032533198

x0 := 4,000065353

x0 := 4,000000000

El operador Shift:

Consideramos el problema de programar un procedimiento que utiliza una función como


parámetro, y devuelve otra, como por ejemplo g(x) = f (x + 1), se pueden escribir dicho
procedimiento de la siguiente manera:
> shift := (f::procedure) -> (x->f(x+1)):
> shift(sin);

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

> shift := (f::procedure) -> (x->f(x+1, args [2..-1])):


> hh := shift(h);

hh := x → h(x + 1, args2_−1 )
Walter Arriaga Delgado MAPLE 247

> hh(x,y);

(x + 1)y

Entrada interactiva de datos:

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 readlinelee cadenas de caracteres de teclado, su uso es muy sencillo y se


muestra a continuación un ejemplo:
> s := readline(terminal);
> Maple;
Se pueden desarrollar pequeños programas como el que se muestra:
> DeterminarSigno := proc (a::algebraic)
> local s;
> printf(‘¿Es el signo de a positivo?) Responda si o no: ‘,a;
> s := readline(terminal);
> evalb( s=”si” or s=”s”);
> end proc:
> DeterminarSigno(u-1);

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

> s:= ” a*x^2+1”;


s := ” a ∗ x^2 + 1”

> y:=parse(s);
y := ax2 + 1

6.3.5. Ejemplo de programación con procedimientos

Como ejemplo aclaratorio de la programación con procedimientos, se creará un proced-


imiento al cual se pasarán los valores de los coeficientes de una ecuación cúbica y el programa
devolverá un estudio detallado de las raı́ces de dicha ecuación además de tener sus extremos
relativos y clasificarlos debidamente en función de su condición de máximo o mı́nimo.
Para la realización de dicho programa se utilizarán las instrucciones y comandos introduci-
dos en el presente manual, ası́ como la potente herramienta de derivación de la que dispone
Maple
Véase a continuación el código del procedimiento, como dos ejemplos prácticos de cómo
funciona acompañados de una representación gráfica de la ecuación polinómica a la cual rep-
resentan.

Programa 6.3.1. Programa para calcular el máximo y el mı́nimo de un polinomio cualquiera.

> raices := proc(a,b,c,d)


> local pol, dpol, ddpol, raiz, maxx, minx, ext, num, i, plotinf, plotsup, ddpolexpr, minimo,
maximo, f;
> f:=x->a*x^3+a*x^2+c*x+d;
> pol:= f(x);
> dpol:= diff(pol,x);
> ddpol:= diff(dpol,x);
> raiz:= [fsolve(pol=0,x)];
> print(‘Las raices del polinomio son: ‘,‘raiz‘);
> ext:=[fsolve(dpol=0,x)];
> num:=nops(ext);
> ddpolexpr:=unapply(ddpol,x);
> i:=1;
> if(num>0) then
> while i<=num do
> if (ddpolexpr(ext[i])>0) then
Walter Arriaga Delgado MAPLE 249

> 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);

Las raices del polinomio son: , [−0,2291013282, 0,3178192610, 4,577948734]

El polinomio tiene un máximo en: , 0,03613396320

El máximo es: , 1,017996213

El polinomio tiene un mı́nimo en: , 3,074977148

El mı́nimo es: , −41,07560943


250 MAPLE Walter Arriaga Delgado

20
x
–1 1 2 3 4 5
0

–20

–40

–60

Figura 6.1: Raı́ces del polinomio P (x) = 3x3 − 14x2 + x + 1

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);

Las raices del polinomio son: , [−2., 0,2087121525, 4,791287847]

El polinomio tiene un máximo en: , −1,000000000

El máximo es: , 7,000000000

El polinomio tiene un mı́nimo en: , 3,000000000

El mı́nimo es: , −25,00000000

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. Algunos programas

6.4.1. En Aritmética

Programa 6.4.1. Programa para calcular el máximo de dos números:


> maximo:=proc(a,b)
Walter Arriaga Delgado MAPLE 251

5
–2 –1 x
–3 1 2 3 4 5

–5

–10

–15

–20

–25

Figura 6.2: Raı́ces del polinomio P (x) = x3 − 3x2 − 9x + 2

> 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

Programa 6.4.2. Para convertir un número en base a 10 a otra base.


De base 10 a base 2
> binario:= proc(n::nonnegint)
> local q,digitos,r;
> q := n;
> digitos := NULL;
> while q<>0 do
> q := iquo(q,2,’r’);
> digitos := r,digitos;
> end do;
> end proc:
Ejemplo:
> binario(3);
1, 1

Otra forma de visualizar el resultado es la siguiente:


252 MAPLE Walter Arriaga Delgado

> 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

> elif r=13 then r := D


> elif r=14 then r := E
> elif r=15 then r := F end if;
> digitos:= r,digitos;
> end do;
> end proc:
Ejemplo:
> base16(123456789);
7, 5, B, C, D, 1, 5

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

Programa 6.4.4. Programa para calcular el factorial de un número:


> f:=proc(n)
> if n=0 then 1 else n*f(n-1) fi end:
Ejemplo:
> [f(0), f(3), f(5)];
[1, 6, 120]

> seq(f(i),i=0..10);

1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800

Programa 6.4.5. Programa mejorado para calcular el factorial de un número:


> factoria:=proc(n)
> if (not type(n, integer) ) then
> RETURN(‘incorrecto: por favor ingrese enteros positivos‘);
254 MAPLE Walter Arriaga Delgado

> elif ( n < 0 ) then


> RETURN(‘incorrecto: por favor ingrese enteros positivos‘);
> elif ( n=0 ) then
> RETURN (1);
> else
> RETURN( n*factoria(n-1));
> fi;
> end:
Ejemplo:
> factoria(-3);
incorrecto : por f avor ingrese enteros positivos

> 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

O también de la siguiente manera:


> for n from 0 to 10 do
> print(’factorial’(n)=n!, ‘el factorial de‘, n , ’es’, factoria(n));
> end do;

Programa 6.4.6. Programa para desarrollar la sucesión de Fibonacci:


> f:=proc(n)
> if n=0 then 0 elif n=1 then 1 else f(n-1)+f(n-2) fi end:
Ejemplo:
> [f(0), f(1), f(2), f(3), f(4), f(5)];
[0, 1, 1, 2, 3, 5]

> seq(f(i),i=0..10);
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55

Programa 6.4.7. Programa mejorado para desarrollar la sucesión de Fibonacci:


> fibonacci:=proc(n)
> if ( not type(n, integer) ) then
> RETURN(‘incorrecto: por favor ingrese enteros positivos‘);
> elif ( n < 0 ) then
> RETURN(‘incorrecto: por favor ingrese enteros positivos‘);
> elif ( n=0 ) then
> RETURN (0);
> elif ( n=1 ) then
> RETURN (1);
> else
> RETURN( fibonacci(n-1) + fibonacci(n-2) );
> fi;
> end:
Ejemplo:
> fibonacci(-3);
incorrecto : por f avor ingrese enteros positivos

> fibonacci(2/5);
incorrecto : por f avor ingrese enteros positivos
256 MAPLE Walter Arriaga Delgado

> fibonacci(20);
6765

Otra forma es la siguiente:


> fibonacci := proc(n::posint)
> local prevterm,term,newterm,m,k;
> prevterm := 1:
> term := 1:
> m := n-2;
> if m>0 then
> for k to m do
> newterm := prevterm + term;
> prevterm := term;
> term := newterm;
> end do:
> end if;
> term;
> end proc:
Ejemplo:
> 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

Otra forma de visualizar los resultados es:


> A:=array(1..5,1..2):
> for n to 5 do
> A[n,1]:= n;
> A[n,2]:=n^2;
258 MAPLE Walter Arriaga Delgado

> end do:


> evalm(A);
 
1 1
 
2 4 
 
 
3 9 
 
 
4 16
 
5 25
O también podrı́amos hacer lo siguiente:
> for n from 1 to 5 do
> print(‘el cuadrado de ‘,n,‘ es: ‘,n^2)
> end do;
el cuadrado de , 1, es: , 1

el cuadrado de , 2, es: , 2

el cuadrado de , 3, es: , 9

el cuadrado de , 4, es: , 16

el cuadrado de , 5, es: , 25

Programa 6.4.11. Programa para calcular el MCD de dos números:


> mygcd :=proc(n,m)
> if n=m then n
> elif n¿m then mygcd(n-m,m)
> else mygcd(n,m-n)
> fi;
> end:
Ejemplo:
> mygcd(12,9);
3

Programa 6.4.12. Programa para calcular la media aritmética:


> media:=proc(X::list)
> local n,i,total;
> n:=nops(X);
> if n=0 then ERROR (‘lista sin elementos‘) fi;
> total:=add(i,i=X);
Walter Arriaga Delgado MAPLE 259

> 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

Una forma directa de calcular la media aritmetica es usando el comando:


> describe[mean](X);
donde X es la lista de datos.

Programa 6.4.13. Programa para calcular la desviación estandart usando el valor de la


media m del programa anterior:
> des:=proc(X::list)local n,i,total;
> n:=nops(X);
> if n=0 then ERROR (‘lista sin elementos‘) fi;
> total:=add((i-m)^2,i=X);
> evalf(sqrt(total/n));
> end:
Ejemplo: Calcular la desviacion estandart de {2,2,3,3,4,4,5}
> X:=[2,2,3,3,4,4,5]:
> des(X);

1,030157507

Programa 6.4.14. Programa para calcular la media y la desviación estandart juntos.


> myd:=proc(X::list)
> local n,i,total1,total2,m,d;
> n:=nops(X);
> if n=0 then ERROR (‘lista sin elementos‘) fi;
> total1:=add(i,i=X);
> m:=evalf(total1/n);
> total2:=add((i-m)^2,i=X);
> d:=evalf(sqrt(total2/n));
> print(‘La media y desviacion estandart son:‘,‘m‘,‘d‘);
> end proc:
260 MAPLE Walter Arriaga Delgado

Ejemplo: Calcular la media y la desviación estandart de {10, 20, 30}


> X:=[10,20,30];
X := [10, 20, 30]

> myd(X);
La media y desviacion estandart son :, 20., 8,164965809

Suma de los términos de una sucesión

Desarrollemos el siguiente procedimiento:

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

Para buscar un elemento b en una lista a introducimos la lista y el elemento y vamos


recorriendo la lista comparando con el elemento, continuando la ejecución del bucle si son
distintos. Si el bucle se detiene antes de recorrer toda la lista la salida es sı́ y en caso contrario
no. Desarrollaremos otros algoritmos de 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

Programa 6.4.21. Programa para resolver una ecuación cuadrática:

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

> print(‘La solucion es:‘,[‘x1‘,‘x2‘]);


> end proc:
Ejemplo:
> ecuacion(1,-1,-6);
La solucion es :, [−2, 3]

Programa 6.4.22. Programa para extraer el máximo coeficiente de un polinomio:


> maxcoef:=proc(p::polynom,x::name)
> local i,c,height;
> height:=0;
> for i from 0 to degree(p,x) do
> c:=coeff(p,x,i);
> height:=max(height,abs(c));
> od;
> height;
> end:
> p:=-18*x^5+45*x^4+14*x^3-59*x^2+35*x-23;

p := −18x5 + 45x4 + 14x3 − 59x2 + 35x − 23

> maxcoef(p,x);
59

Programa 6.4.23. Programa para desarrollar el triángulo de Pascal:


> for i from 0 to 10 do print(seq(binomial(i,j),j=0..i)) od:

Programa 6.4.24. Programa para desarrollar el triángulo de Pascal:

> 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

Programa 6.4.25. Programa para analizar el discriminante:

> 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

Generar coordenadas de un rectángulo

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:

rectangulo := proc(x,h :: positive)

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]]

Y se pueden representar gráficamente:


> with(plots):
> polygonplot(rectangulo(5,3));
3

2.5

1.5

0.5

0 4.8 4.9 5 5.1 5.2

6.4.4. En Trigonometrı́a

Programa 6.4.27. Programa para calcular la hipotenusa de un triángulo rectángulo:


B

A
C b

> hipotenusa:=proc(a,b)
Walter Arriaga Delgado MAPLE 267

> local h,alfa,beta:


> h:=sqrt(a^2+b^2);
> alfa:=evalf(180/Pi*arcsin(a/h));
> beta:=evalf(180/Pi*arcsin(b/h));
> print(‘La hipotenusa es:‘,‘h‘);
> print(‘El angulo alfa es:‘,‘alfa‘);
> print(‘El angulo beta es:‘,‘beta‘);
> end proc:
Ejemplo:
> hipotenusa(3,4);
La hipotenusa es :, 5

El angulo alf a es :, 36,86989763

El angulo beta es :, 53,13010234

6.4.5. En Fı́sica

Movimiento Rectilı́neo Uniforme

d
v=
t
donde: d = distancia; v = velocidad; t = tiempo.

Programa 6.4.28. Programa para calcular la distancia:


> distancia:= proc(v,t)
> local d;
> d:=v*t;
> print(‘La distancia es:‘,‘d‘);
> end proc:
Ejemplo:
> distancia(3,4);
La distancia es :, 12

Programa 6.4.29. Programa para calcular la velocidad:


> velocidad:=proc(d,t)
> local v;
> if(t=0) then;
268 MAPLE Walter Arriaga Delgado

> print(‘Error: no se puede dividir por cero‘)


> else;
> v:=d/t;
> print(‘La velocidad es:‘,‘v‘)
> end if;
> end proc:
Ejemplo:
> velocidad(6,3);
La velocidad es :, 2

> velocidad(4,0);
Error : no se puede dividir por cero

Programa 6.4.30. Programa para calcular el tiempo:


> tiempo:= proc(d,v)
> local t;
> if(v=0) then;
> print(‘Error: no se puede dividir por cero‘)
> else;
> t:=d/v;
> print(‘El tiempo es:‘,‘t‘)
> end if;
> end proc:
Ejemplo:
> tiempo(120,20);
El tiempo es :, 6

> tiempo(120,0);
Error : no se puede dividir por cero

Movimiento Rectilineto Uniformemente Variado

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;

Programa 6.4.33. Programa para calcular la derivada y la integral de una función:


> DiffInt:=proc(y,x)
> local yDiff, yInt;
> yDiff:=diff(y,x);
> yInt:=int(y,x);
> [y,yDiff,yInt]
> end:
Ejemplo:
> DiffInt(x^2,x);  
1
x , 2x, x3
2
3
> DiffInt(sin(x),x);
[sin(x), cos(x), − cos(x)]

Otra forma es de visualizar los resultados es a través de una tabla:


> DiffInt:=proc(y,x)
> local n, A;
> y:=x->x^n;
> A:= array(1..5,1..3):
> for n from 1 to 5 do
> A[n,1]:=y(x);
> A[n,2]:=diff(y(x),x);
> A[n,3]:=int(y(x),x);
270 MAPLE Walter Arriaga Delgado

> end do:


> evalm(A):
> end:
> DiffInt(y,x);
x2
 
x 1
2
 
 3
x 

 2
x 2x
3


 

x3 x4 
3x2 
4
 

x5 
 
 4
x 4x3 

 5 

x 6 
x5 5x4
6
Programa
Z 6.4.34. Programa que calcula la integral por partes, en especial, los de la forma:
n x
x e dx
> Intpartes:=proc(n::nonnegint,x::name)
> if n=0 then RETURN(exp(x)) fi;
> x^n*exp(x)-n*Intpartes(n-1,x);
Z
Por ejemplo: Calcular x3 ex dx
> end:Intpartes(3,x)+C;
x3 ex − 3x2 ex + 6xex − 6ex + C
Bibliografı́a

[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.

[5] Heck, André. Introduction to MAPLE. Springer. New York, 1993.

[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.

[8] Perrin-Riou, Bernadette. Algebre arithmetique et maple. Cassini. Paris, 2000.

[9] Redfern, D. The Maple Handbook. Springer Verlag, 1996.

[10] Richards, D. Advanced Mathematical Methods with Maple. Cambridge UniversityIng,


2001.

[11] Rincón de Rojas, F. Cálculo Cientı́fico con MAPLE. RA-MA. Madrid, 1995.

[12] Zachary, Joseph L. Introduction to scientific programming: computational problem solving


using MAPLE and C. Springer. New York, 1996.
272 MAPLE Walter Arriaga Delgado
Índice alfabético

above, 179 composición, 137


abs, 120 condicionales, 224
algebra, 61 conjunto potencia, 46
align, 179 conjuntos, 36
aljuarizmi, 61 constrained, 142
altitude, 208 convert, 43, 50, 51, 81
altura, 206 coordenada
análisis combinatorio, 83 horizontal, 193
angle, 200 vertical, 193
animaciones, 184 coordenadas esféricas, 176
animate, 184, 186 coordenadas polares, 148
animate3d, 184, 188 coordinates, 193, 198
animatecurve, 186 coordplot3d, 220
aritmética, 29 copyright, 242
arrows, 151
assume, 108 definedas, 196
axes, 148, 178 degree, 64
desviacion estandart, 259
baricentro, 206 detail, 193
below, 179 diferencia simétrica, 40
binomio de newton, 88 discont, 122
bisector, 208 display, 159, 179, 188
bisectriz distance, 197
exterior, 206 divide, 74
interior, 205 divisibilidad, 48
boxed, 142 dodecahedron, 218
break, 232 draw, 197
bucle, 223 dsegment, 195

campos vectoriales, 151 ecuaciones, 90


centername, 207 edit, 143
centroid, 207 elif, 224
ceviana, 206 else, 224
choose, 46 else if, 224
circumcircle, 208 equilatero, 199
circuncentro, 206 escaleno, 199
coeffs, 64 eval, 239
color, 143, 204 evalf, 240
combinat, 22, 46 evalhf, 240

273
274 MAPLE Walter Arriaga Delgado

excentro, 206 horizontalname, 200


exp, 124
expand, 71 if, 224
ifactor, 55
factor, 57, 75 igcd, 49
factorial, 83, 229 ilcm, 49
factorización, 75 implicitplot3d, 176
fi, 224 incentro, 206
fibonacci, 22 incircle, 207
fieldplot, 151 inecuaciones, 100
figura geométrica, 191 inequal, 156
filled, 156, 204 interfaz, 2
floor, 121, 178 intersect, 39
for, 227 isequilateral, 203
form, 193 isosceles, 199
frac, 52 isprime, 54
framed, 142 isrighttriangle, 203
frames, 185 ithprime, 54
función inversa, 150
función lcm, 77
constante, 118 lcoeff, 64
cuadrática, 122 ldegree, 64
exponencial, 124 left, 179
hiperbólica, 130 legend, 142
hiperbólica inversa, 132 lenguaje de programación, 2
identidad, 120 linalg, 21
implı́cita, 150 line, 202
lineal afin, 120 linestyle, 204
logaritmo, 125 listas, 41
máximo entero, 121 logaritmos, 105
paramétrica, 149
polinómica, 123 mı́nimo común múltiplo, 49, 77
racional fraccionaria, 123 máximo común divisor, 22, 49, 77
raiz cuadrada, 121 map, 202, 234
signo, 122 maple, 2, 195
trigonométrica, 126 media, 258
trigonométrica inversa, 127 median, 207
valor absoluto, 120 mediana, 205
funciones implı́citas, 176 mediatriz, 205
method, 200
gcd, 77 midpoint, 197
geom3d, 219 minus, 39
geometrı́a, 191 monomio, 64
geometrı́a plana euclı́dea, 191
geometry, 193 números primos, 53
grid, 142 newton, 245
next, 233
hiperenlace, 20 nextprime, 53
horizontalcoord, 193 ngon, 217
Walter Arriaga Delgado MAPLE 275

none, 142 right, 179


nops, 38 rootOf, 98
normal, 142, 178 round, 52
null, 43
numbcomb, 46 sólido, 218
numbperm, 84 scaling, 149
numpoints, 204 secuencias, 35
numtheory, 48 seg, 195
segment, 195
octahedron, 219 segment2d, 196
op, 37 select, 234
orthocenter, 207 selectremove, 234
ortocentro, 206 shift, 246
sides, 200
palettes, 12
sigma, 48
parfrac, 81
signum, 122
patch, 142, 178
simplify, 62, 73, 80
permutaciones, 84
sistemas de ecuaciones, 94
permute, 84
sistemas de numeración, 50
piecewise, 153, 178
slim, 151
plot, 24, 118
smartplot, 137, 147
plot3d, 175
smartplot3d, 175
plots, 148
solve, 91, 100
point, 142, 192
sort, 42
pointplot, 194
spacecurve, 177, 220
points, 200
sphereplot, 176
polı́gono, 214
spreadsheets, 25
polarplot, 148
sqrt, 121
poliedro, 218
start, 184
polinomio, 64
stop, 184
polygonplot, 215
style, 148, 178, 204
polygonplot3d, 218
subsop, 42
polyhedraplot, 218
sucesiones, 35
polytype, 218
sum, 55
prevprime, 54
sumatorias, 55
printtext, 197
superficies, 175
product, 57
symbol, 148, 204
productos, 57
system, 241
punto, 192

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

S-ar putea să vă placă și