Herramientas en GNU/Linux para estudiantes universitarios

La herramienta de cálculo científico YACAS

José Angel de Bustos Pérez

Copyright (c) 2.003 José Angel de Bustos Pérez .

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".


Tabla de contenidos
1. Introducción a YACAS
1.1. Organización de este documento
1.2. Historia de YACAS
1.3. ¿Qué es YACAS?
1.4. ¿Qué podemos hacer con YACAS?
1.5. ¿Como se distribuye YACAS?
1.6. ¿De donde podemos descargarnoslo?
1.7. ¿En qué plataformas funciona?
1.8. ¿Donde podemos encontrar ayuda sobre YACAS?
1.8.1. Pidiendo ayuda a YACAS
1.9. Filosofía en el desarrollo de aplicaciones
1.10. Más software científico en GNU/Linux
2. Personalización de YACAS
2.1. El fichero .yacasrc
2.2. Los ficheros .def
2.3. El fichero .yacas_history
2.4. La directiva DefaultDirectory
2.5. La directiva Help
2.6. La directiva HistorySize
2.7. La directiva PrettyPrinter
2.8. Personalizando YACAS
2.9. Estableciendo la precisión de los cálculos
2.10. Ejercicios
3. Primeros pasos
3.1. Arrancando YACAS
3.1.1. Arrancando YACAS en modo gráfico
3.1.2. Arrancando YACAS en la consola
3.2. Moviendonos por el historial de comandos
3.2.1. Autocompletación (sólo en consola)
3.2.2. Moviendonos en la línea de comandos (sólo en consola)
3.3. Terminando la sesión
4. Tipos de datos en YACAS
4.1. Tratamiento de los datos en YACAS
4.2. Evaluación de expresiones
4.3. Datos escalares
4.4. Constantes
4.5. Cadenas de caracteres (Strings)
4.6. Listas (Lists)
4.7. Vectores
4.8. Matrices
4.9. Pilas
4.10. Funciones
4.11. Polinomios
5. Operaciones sobre los tipos de datos
5.1. La función N
5.2. El operador %
5.3. Operaciones sobre variables
5.4. Operaciones sobre escalares
5.4.1. Operaciones usuales sobre escalares
5.4.2. División entera
5.4.3. Operadores de desplazamiento de bits
5.4.4. Cálculo del Máximo Común Divisor
5.4.5. Cálculo del Mínimo Común Multiplo
5.4.6. Trabajando en bases distintas de la decimal
5.4.7. Expansiones en base n
5.4.8. Aproximaciones racionales de números reales
5.4.9. Redondeos
5.4.10. Determinación de números primos
5.4.11. Factorización en números primos
5.5. Operaciones sobre números complejos
5.5.1. Representacion de números complejos
5.5.2. Determinación de las partes real e imaginaria de un complejo
5.5.3. Determinación del módulo y el argumento de un número complejo
5.5.4. Conjugado de un número complejo
5.6. Operaciones sobre listas
5.6.1. Creando listas
5.6.2. Evaluación de funciones sobre listas
5.6.3. Operaciones aritméticas sobre listas
5.6.4. Calculando la longitud de una lista
5.6.5. Recuperando elementos de una lista
5.6.6. Alterando una lista
5.6.7. Contando ocurrencias
5.6.8. Encontrando un elemento en una lista
5.6.9. Ordenando listas
5.6.10. Particionando una lista
5.6.11. Permutaciones de una lista
5.7. Operaciones sobre pilas
5.8. Operaciones sobre vectores
5.8.1. Producto escalar de dos vectores
5.8.2. Producto vectorial de dos vectores
5.8.3. Creación de vectores nulos
5.8.4. Vectores canónicos
5.8.5. Normalización de vectores
5.9. Operaciones sobre Matrices
5.9.1. Operaciones aritmeticas con matrices
5.9.2. Creación de la matriz identidad
5.9.3. Creación de matrices nulas
5.9.4. Creación de matrices diagonales
5.9.5. Cálculo de la matriz traspuesta
5.9.6. Cálculo del determinante de una matriz
5.9.7. Cálculo de la traza de una matriz
5.9.8. Cálculo de la matriz inversa
5.9.9. Cálculo del polinomio característico
5.9.10. Cálculo de los valores propios
5.9.11. Cálculo de los vectores propios
5.10. Operaciones sobre polinomios
5.10.1. Simplificación de expresiones
5.10.2. Expandir un polinomio
5.10.3. Grado de un polinomio
5.10.4. División de polinomios
5.11. Ejercicios
6. Cálculos matemáticos
6.1. Análisis matemático
6.1.1. Funciones trigonométricas
6.1.2. Logaritmos y la función exponencial
6.1.3. Suma de una lista de valores
6.1.4. Producto de una lista de valores
6.1.5. Calculando el máximo y el mínimo de una lista
6.1.6. Cálculo de límites
6.1.7. Derivación
6.1.8. Desarrollos de Taylor
6.1.9. Integración
6.1.10. Divergencia de un campo vectorial
6.1.11. Algunas funciones útiles
6.2. Algebra
6.2.1. Obtención de las variables de una ecuación
6.2.2. Resolución de ecuaciones algebraicas
6.2.3. Resolución de expresiones
6.3. Cálculo numérico
6.3.1. Resolución de ecuaciones en una variable (Newton)
6.3.2. Resolución sistemas de ecuaciones
6.3.3. Cálculo de polinomios interpoladores
6.4. Exportación de datos
6.4.1. Exportando a LaTeX
6.4.2. Exportando a C
6.5. Ejercicios
7. Programación
7.1. Interactuando con el usuario
7.1.1. Mostrando información
7.1.2. Solicitando información al usuario
7.2. Interactuando con ficheros
7.2.1. Guardando datos en ficheros
7.2.2. Leyendo desde ficheros
7.3. Simplificaciones
7.3.1. Sustitución de expresiones
7.3.2. Reglas de simplificación
7.4. Sentencias de control de flujo
7.4.1. Estructura condicional If
7.4.2. El bucle For
7.4.3. El bucle ForEach
7.4.4. El bucle While
7.4.5. El bucle Until
7.5. Creación de funciones propias
7.5.1. Comentarios
7.5.2. Bloques de código
7.5.3. Localizando funciones
7.5.4. Ejemplo de creación de funciones
7.6. Ejercicios
A. GNU Free Documentation License
A.1. PREAMBLE
A.2. APPLICABILITY AND DEFINITIONS
A.3. VERBATIM COPYING
A.4. COPYING IN QUANTITY
A.5. MODIFICATIONS
A.6. COMBINING DOCUMENTS
A.7. COLLECTIONS OF DOCUMENTS
A.8. AGGREGATION WITH INDEPENDENT WORKS
A.9. TRANSLATION
A.10. TERMINATION
A.11. FUTURE REVISIONS OF THIS LICENSE
A.12. ADDENDUM: How to use this License for your documents
Lista de tablas
6-1.
Tabla de ejemplos
2-1. Añadiendo nuevos directorios al PATH
2-2. Cargando nuestros propios scripts
2-3. Cambiando la visualización de la ayuda
2-4. Cambiando el tamaño del historial de comandos
2-5. Cambiando la presentación de resultados
2-6. Ejemplo del fichero .yacasrc
3-1. Termiando la sesión
4-1. Uso de Type
4-2. Uso de Hold
4-3. Tipos de datos escalares
4-4. Definiendo una cadena de caracteres
4-5. Definiendo una lista
4-6. Vectores
4-7. Matrices
4-8. Definición de funciones
5-1. Uso de Set
5-2. Uso de Clear
5-3. Uso de Mod
5-4. Uso de Div
5-5. Uso del operador <<
5-6. Uso del operador >>
5-7. Uso de Gcd para el cálculo del mcd de dos números
5-8. Uso de Gcd para el cálculo del mcd de una lista de números
5-9. Uso de Lcm para el cálculo del mcm
5-10. Uso de FromBase
5-11. Uso de ToBase
5-12. Uso de PAdicExpand
5-13. Uso de Rationalize
5-14. Uso de Ceil
5-15. Uso de Floor
5-16. Uso de Round
5-17. Uso de IsPrime
5-18. Uso de Factors
5-19. Uso de Factor
5-20. Partes real y compleja de un número complejo
5-21. Módulo de un número complejo
5-22. Argumento de un número complejo
5-23. Conjugado de un número complejo
5-24. Uso de List
5-25. Uso de Concat
5-26. Uso de Union
5-27. Uso de Intersection
5-28. Uso de Difference
5-29. Uso de FillList
5-30. Uso de Drop
5-31. Uso de Take
5-32. Uso de Table
5-33. Uso del operador ..
5-34. Uso de Length
5-35. Uso de Head
5-36. Uso de Tail
5-37. Uso de Nth
5-38. Uso de Select
5-39. Uso de Delete
5-40. Uso de DestructiveDelete
5-41. Uso de Replace y DestructiveReplace
5-42. Uso de Insert y DestructiveInsert
5-43. Uso de Append y DestructiveAppend
5-44. Uso de RemoveDuplicates
5-45. Uso de Swap
5-46. Uso de Count
5-47. Uso de Find
5-48. Uso de BubbleSort
5-49. Uso de HeapSort
5-50. Uso de Partition
5-51. Permutaciones de un conjunto de n elementos
5-52. Uso de Push
5-53. Uso de Pop
5-54. Uso de PopFront
5-55. Uso de PopBack
5-56. Producto escalar de dos vectores
5-57. Producto exterior de dos vectores
5-58. Uso de ZeroVector
5-59. Uso de BaseVector
5-60. Normalización de vectores
5-61. Creación de la matriz identidad
5-62. Creación de matrices nulas
5-63. Creación de matrices diagonales
5-64. Cálculo de la matriz traspuesta
5-65. Cálculo del determinante de una matriz
5-66. Cálculo de la traza de una matriz
5-67. Cálculo de la matriz inversa
5-68. Cálculo del polinomio característico
5-69. Cálculo de los valores propios
5-70. Cálculo de los vectores propios
5-71. Uso de Simplify
5-72. Uso de Expand
5-73. Uso de ExpandBrackets
5-74. Cálculo del grado de un polinomio
6-1. Cálculo de límites
6-2. Derivando funciones
6-3. Desarrollos de Taylor
6-4. Integración de funciones
6-5. Divergencia de un campo vectorial
6-6. Uso de Bin
6-7. Uso de VarList
6-8. Resolviendo ecuaciones algebraicas
6-9. Uso de SuchThat
6-10. Resolviendo ecuaciones por el método de Newton
6-11. Resolviendo ecuaciones algebraicas
6-12. Cálculo del polinomio interpolador
6-13. Exportando a LaTeX
6-14. Exportando a C
7-1. Mostrando información
7-2. Solicitando información al usuario
7-3. Guardando datos en ficheros
7-4. Leyendo datos de un fichero
7-5. Sustitución de expresiones
7-6. Especificando reglas de simplificación
7-7. Estructura condicional If
7-8. El bucle For
7-9. El bucle ForEach
7-10. El bucle While
7-11. El bucle Until
7-12. Ejemplos de comentarios
7-13. Uso de FindFunction