apunte maxima.pdf
TRANSCRIPT
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
WXMAXIMA 13.04.2 – MAXIMA 5.31.2 Índice Instalación ................................................................................................................ 1
Introducción de expresiones y operaciones ................................................................ 2
Constantes ................................................................................................................ 3
Variables booleanas .................................................................................................. 3
Evaluación de expresiones
Definición de variables y funciones ........................................................................... 4
Algunas funciones básicas ...................................................................................... 10
Simplificación y expansión de expresiones
Expansión de expresiones- Distribuir potencias y productos .................................... 12
Simplificaciones ..................................................................................................... 15
Números complejos ................................................................................................ 16
Matrices y vectores ................................................................................................. 17
Ecuaciones .............................................................................................................. 23
Polinomios y raíces de una ecuación ....................................................................... 24
Sistemas de ecuaciones ........................................................................................... 27
Funciones trigonométricas ...................................................................................... 29
Evaluación de expresiones ...................................................................................... 25
Conjuntos y Listas .................................................................................................. 31
Gráficos .................................................................................................................. 38
Animaciones ........................................................................................................... 43
El paquete draw ...................................................................................................... 43
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 1 -
WXMAXIMA 13.04.2 – MAXIMA 5.31.2 Máxima es un sistema de cálculo numérico y simbólico que incluye tanto operaciones
en todos los campos numéricos como raíces, logaritmos, potencias, etc. como límites,
derivadas, integrales, series, gráficos en 2D y 3D.
Instalación Ingresando en http://maxima.sourceforge.net/es, accedemos a la página principal.
Debemos seleccionar la opción Descargar del menú de la izquierda y luego ingresar por
el link a la página de descargas de Sourceforge.
En esta pantalla podemos seleccionar instaladores de Máxima para distintos sistemas
operativos. Para instalar la última versión de Máxima para Windows elegimos Looking for the latest version? Download maxima-5.31.2.exe (32.7 MB)
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 2 -
Introducción de expresiones y operaciones
Cada instrucción se ingresa utilizando el menú o tipeando el comando correspondiente y
presionando shift+enter.
Los comandos que ingresamos se identifican con %i (input) y un número correlativo y
cada respuesta del programa del identifica con %o (output) y un número. Podemos
referenciar estas líneas por su etiqueta, como en la 3ra. línea del ejemplo donde se
solicitó calcular el valor de la primera expresión ingresada (log 3x) habiéndole asignado
en la 2da. línea el valor 23 a la variable x.
Como puede observarse en la salida de la 3ra línea las respuestas de Máxima se dan en
forma exacta. Si queremos el resultado en forma decimal podemos utilizar el comando
float. El % utilizado como argumento de float en la 4ta. línea hace referencia a la última
salida (log(69)).
Las expresiones se ingresan en las celdas de entrada utilizando los siguientes
operadores:
Aritméticos + Suma a+b
- Resta a-b
* Multiplicación a*b
/ División a/b
^ ** Exponenciación a^b
. Multiplicación de matrices (no
conmutativo) y producto escalar
a . b
^^ Exponenciación no conmutativa
Para ecuaciones = Igual a=b*5
# Distinto m#a+b
Relacionales
> Mayor a>b*3
>= Mayor o igual -a>=b
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 3 -
< Menor a<b^2
<= Menor o igual a<=c
Lógicos and Y a>b and m=n
or O a-b>0 or a=b
not negación not(a>=5)
De Asignación : Asignación de valor o expresión
a una variable simple,
subindicada o a una lista
a:5
x:m[2] � x toma el valor del segundo
elemento de m
list[3]:2*x � el 3º elemento de list
toma el valor 2*x
[a,b,c]:[1,2,3] � asigna cada valor a
cada variable en ese orden
:: Similar a : pero evalúa ambos
miembros derecho e izquierdo
::= Definición de macros
:= Definición de funciones f(x):=sin(x)
Referencia a celdas % Ultima salida float(%) � expresa la ultima salida
con decimales
%in Celda de entrada especificada
por el numero n
%i3
%on Celda de salida especificada por
el numero n
sqrt(%o2) � calcula la raíz cuadrada
de la salida numero 2
Constantes Las constantes como el número e o Π se ingresan precedidos del signo %
Ej: %pi, %e, %phi (razón áurea), %i (unidad imaginaria)
Variables booleanas (interruptor): Estas variables definen el entorno de trabajo
Para conocer el estado de una variable booleana se debe escribir su nombre. Para
cambiarlo se le debe asignar con el signo “:” el valor true o false.
En el ejemplo se observa que el valor predeterminado de simp: true (las expresiones se
simplificarán automáticamente).
Puede resultar útil activar el panel Matemáticas Generales desde el menú Máxima�
Paneles.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 4 -
Evaluación de expresiones Definición de variables y funciones Para asignarle un valor a una variable se utilizan los dos puntos. Los nombres de
variables pueden contener letras y/o números. Máxima distingue mayúsculas y
minúsculas en los nombres.
La definición de funciones se realiza con el operador :=
Si se define una función a partir de una expresión asignada a una variable ésta no se
evalúa a menos que se le indique con ‘ ‘ (doble comilla simple)
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 5 -
Cuando el último o único argumento x_n es una lista de un solo elemento, la función
definida por := acepta un número variable de argumentos
Ejemplo 1
Ejemplo 2
Función: ev(expr,arg1,…argn): evalua la expresión expr. según los argumentos
especificados.
ev puede omitirse y escribir directamente el cálculo. ev es requerido cuando se
introduce el cálculo y los argumentos dentro de otras expresiones como funciones,
bloques, etc.
La expr sin(x) se aplica a cada
elemento, la salida es una lista.
Al indicar apply “+” la
salida es una única
expresión o un
resultado
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 6 -
Pueden especificarse argumentos separados por comas que modifican la forma en se
muestran los resultados.
Argumento noeval: evita la fase de evaluación de ev. Es útil conjuntamente con otras
variables globales y para poder volver a simplificar expresiones sin tener que evaluarlas
otra vez. (Equivale a ‘ comilla simple)
Argumento nouns cuando se utilice como una opción de la instrucción ev, todas las
formas nominales que aparezcan en una expresión las convierte en verbales, esto es, las
evalúa. (equivale a ‘ ‘ doble comilla simple)
Argumento expand: causa la expansión.
Dos formas de hacer lo mismo:
Argumento float: Convierte los enteros, números racionales y los decimales de punto
flotante grandes ("bigfloats") que están presentes en expr a números de punto flotante
Valor predeterminado de la variable float: False
Argumento numer: La variable numer hace que algunas funciones matemáticas con
argumentos numéricos se evalúen como decimales de punto flotante. También hace que
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 7 -
las variables de una expresión a las cuales se les ha asignado un número sean sustituidas
por sus valores. Además, activa la variable float.
Tanto float como numer devuelven una expresión decimal de punto flotante
aproximada para determinadas expresiones.
Puede combinarse float(expr), numer para mostrar el resultado en decimales para
cualquier expresión que no sea una constante.
Para evitar escribir float o numer se puede ingresar uno de los valores con punto
decimal.
Menú Numérico de WxMaxima
1º opción: analiza el estado de la variable numer, y la cambia (de True a False o a la
inversa)
Float no evalúa el
log y numer sí
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 8 -
2º opción: Convierte la última salida a número decimal de punto flotante
3º opción: Convierte la última salida a número decimal de precisión ilimitada
3º opción: Establece la precisión numérica solo para los números bigfloat
Numero bigfloat- Solo en
ellos actúa fpprec
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 9 -
Argumento detout: Si la expr contiene la inversa de una matriz, el valor del
determinante queda como un factor fuera de la matriz en lugar de dividir a cada
elemento
Argumento pred: Provoca la evaluación de las expr. que pueden ser true o false.
Equivalente a is(expr.)
Argumento V:expresión ( o V= expresión): causa que la variable V tome el valor de la
expresión durante la evaluación.
Cuando se realizan varias asignaciones de valores o de expresiones a una variable de
expr estas se aplican de izquierda a derecha, en una primera evaluación se aplica solo la
primera que aparece.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 10 -
Algunas funciones básicas abs(expr): Valor absoluto de la expresión. La expresión puede ser un número real, un
número complejo o un cálculo simbólico. Si el argumento es un complejo abs calcula su
módulo.
log(expr): Logaritmo natural de la expresión.
Para calcular logaritmos en otra base, debe aplicarse la fórmula para el cambio de base
loglog
logb
aa
b=
sqrt(expr): Raíz cuadrada de la expresión. Si la variable radexpand vale True, y
domian:real (valores predeterminados) se extraerán de la raíz los factores que sean
potencias de exponente par.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 11 -
exp(x): Equivale a %e^x
entier(x): Devuelve el mayor entero menor o igual a x, siendo x numérico
floor (expr): Si expr es un número real, devuelve el mayor entero menor o igual que
expr. Si expr es una expresión constante (por ejemplo, 10 * %pi), floor evalúa expr
haciendo uso de números grandes en coma flotante (big floats), aplicando a
continuación floor al número decimal obtenido. Para argumentos no constantes, floor
intenta devolver un valor simplificado.
ceiling (expr): Si x es un número real, devuelve el menor entero mayor o igual que x.
mod(x,y): Si x e y son números reales e y es distinto de cero, devuelve el resto de
dividir x por y (aplicando x - y * floor(x / y)).
Para todos los reales x, mod (x, 0) = x.
factorial(x) o x!: Calcula el factorial de x
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 12 -
Simplificación y Expansión de expresiones
Las expresiones que involucran cálculos simbólicos y las expresiones con operadores
aritméticos no son evaluadas sino simplificadas.
Algunas simplificaciones se aplican automáticamente, si la variable simp vale True
(valor predeterminado). Para controlar las simplificaciones pueden aplicarse ciertas
funciones.
Además puede dotarse a una función o a un operador de ciertas propiedades para que
sobre ellos se aplique determinada simplificación.
Por ejemplo el seno de un múltiplo de π es simplificado a 0, luego si establecemos que n
es un número entero, la expresión sen(n*pi) será simplificada a 0.
Función combine(expr): combina términos con igual denominador
Expansión de expresiones- Distribuir potencias y productos Función xthru(expr): combina todos los términos de expr. (la cual debe ser una suma)
sobre un común denominador sin expandir productos ni potencias de sumas. Cancela
factores comunes solo si son explícitos.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 13 -
Funciones: distrib(expr) – expand(expr) – multthru(expr): realizan expansiones a
distintos niveles. Expand es la que aplica distributiva a toda la expresión.
expand(m,n) expande la expresión tomando como máximo exponente positivo a
expandir al valor de m y como máximo exponente negativo a expandir al valor de n.
multthru se puede usar con dos o más expresiones como argumento.
multthru no expande potencias
Función expandwrt(expr,x1,x2,….xn): expande la expresión únicamente para las
variables especificadas en x1, x2…xn.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 14 -
Función ratexpand(expr): Expande expr multiplicando productos de sumas y sumas
con exponentes, combinando fracciones con común denominador, cancelando el
máximo común divisor del numerador y del denominador y luego dividiendo los
sumandos del numerador por el denominador.
Variable negdistrib: Por defecto su valor es True, esto hace que -1 se distribuya
cuando multiplica a una suma. Si se establece en False el – 1 no se distribuirá.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 15 -
Simplificaciones
Función ratsimp(expr): Simplifica la expresión expr y todas sus subexpresiones,
incluyendo los argumentos de funciones no racionales.
Función radcan(expr): Simplifica las expr. que pueden contener logaritmos,
exponenciales y radicales.
Variable radexpand: Controla si se extraerán factores de un radical
Valor por defecto: True
Valores posibles: True, False, all
Si radexpand vale True, la salida también depende del valor de domain
Domain puede ser integer, real o complex
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 16 -
Función scsimp(expr, regla1,regla2…reglan): simplifica la expresión aplicando las
reglas definidas en regal1, …reglan.
Números complejos Los números complejos se ingresan como a+%i*b
Funciones para números complejos cabs(expr): calcula el módulo del complejo.
cabs se distribuye sobre listas y a ambos miembros de una igualdad.
cabs no es una función apropiada para cálculos simbólicos; en tales casos, que incluyen
la integración, diferenciación y límites que contienen valores absolutos, es mejor utilizar
abs.
carg(z): devuelve el argumento de complejo z. El argumento es un ángulo entre -π y π.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 17 -
polarform(z): Expresa el complejo z en forma polar.
rectform(expr): Convierte la expresión polar de un complejo a su forma binómico.
realpart(z) e imagpart(z): devuelve la parte real y la parte imaginaria respectivamente
del complejo z.
Matrices y vectores Los vectores se ingresan entre corchetes.
La función matrix(fila1,fila2,….,filan) define una matriz
Operaciones posibles: Módulo de un vector: Máxima no incorpora un comando para calcular el módulo de un
vector, pero puede definirse una función que lo calcule.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 18 -
Para vectores en el espacio habrá que definir la función con 3 variables.
Tomando m del primer ejemplo y n=
Operador + : suma elemento a elemento
Operador - : resta elemento a elemento
Operador * : multiplica elemento a elemento o multiplica por un escalar
Operador . : efectúa el producto matricial (no conmutativo)
Y el producto escalar.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 19 -
Operador ^ : eleva cada elemento de la matriz a un escalar (si el exponente es escalar)
o eleva una base escalar a cada elemento de una matriz. Si base y exponente son
matrices no realiza la operación elemento a elemento.
Operador ^^ (Exponenciación no conmutativa): Si la base es una matriz y el
exponente un escalar n, multiplica la base n veces como si se hubiera utilizado el
operador . (multiplicación matricial no conmutativa).
Si la base es un escalar y el exponente es una matriz b^^m es equivalente a b^m.
Para calcular la inversa de una matriz debe utilizarse el operador ^^ o utilizar la
función invert(m).
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 20 -
Función unitvector(x) o univect(x): Devuelve el vector x normalizado (vector unitario
de igual dirección y sentido que x). Se debe cargar el paquete “eigen”.
Funciones addcol(M, fila1,….filan) y addrow(M,fila1,….filan): añaden
columnas/filas a la matriz M.
Funciones col(M,i) y row(M,i): devuelven una matriz columna/fila con los elementos
de la columna/fila i de la matriz M.
Función copymatrix(M): devuelve una copia de la matriz. No es posible realizar
asignaciones del tipo m:n dado que ambas matrices quedarían relacionadas.
Función ematrix(m,n,x,i,j): genera una matriz con todos sus elementos nulos excepto
el que ocupa la posición i,j cuyo valor será igual a x.
Función ident(n): genera la matriz identidad de orden n
Función diagmatrix(n,x): genera una matriz diagonal de orden n con lo elementos de
la diagonal iguales a x.
Función zeromatrix(m,n): genera una matriz rectangular mxn con todos sus elementos
igual a cero.
Función genmatrix(a,i,j): genera una matriz de ixj a partir de a. Donde a es una
expresión lambda de dos argumentos (ejemplo 1). Si los ai,j no están definidos se
expresarán genéricamente (ejemplo 2).
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 21 -
Función setelmx(x,i,j,M): Asigna al elemento de posición i, j de la matriz M el valor x
y devuelve la matriz actualizada.
La asignación M[i,j]:x también reemplaza el valor del elemento por x pero devuelve x.
Función submatrix(il,…i,m,M,jl,…,jm): Devuelve una matriz generada a partir de M
eliminando las filas il,..,im y columnas jl,…,jm.
Función list_matrix_entries(M): Devuelve una lista con todos los elementos de la
matriz.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 22 -
Función determinant(M): calcula el determinante de la matriz.
Función rank(M): Calcula el rango de la matriz.
Función echelon(M): devuelve la matriz escalonada equivalente a M.
Función triangularize(M): Devuelve la matriz triangular equivalente a M.
Función transpose(M): devuelve la transpuesta de la matriz.
Función adjoint(M): devuelve el adjunto de la matriz M (Transpuesta de la matriz de
cofactores de M)
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 23 -
Función coefmatrix([eqn1,eqn2…,eqnn],[var1,var2,…varn]): Devuelve la matriz de
coeficientes del sistema de ecuaciones.
Función augcoefmatrix([eqn1,eqn2…,eqnn],[var1,var2,…varn]): Devuelve la matriz
ampliada del sistema de ecuaciones (matriz de coeficientes de las ecuaciones mas la
columna de términos independientes)
Ecuaciones La expresión a = b representa una ecuación sin evaluar, la cual puede verificarse o no.
Para resolver una ecuación puede utilizarle la función solve.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 24 -
Función solve(expr,x): Resuelve expresiones algebraicas de una o mas incógnitas. La
expresión puede ser racional y puede contener funciones trigonométricas,
exponenciales, etc. También resuelve sistemas de ecuaciones polinómicas.
Si no se especifica una igualdad, las expresiones son igualadas a cero.
Si hay una única incógnita no es necesario especificarla como argumento.
Puede especificarse como argumento para resolver la ecuación una función, u otra
expresión no atómica excepto una suma o producto.
Si hay más de una variable debe especificarse una como incógnita a despejar.
Variable solveradcan: Si vale True solve llama a radcan, esto permite que pueda
resolver ciertas ecuaciones con logaritmos y exponenciales.
Valor por defecto: false
Polinomios y raíces de una ecuación Algunas ecuaciones no son totalmente resueltas por solve, en ese caso puede utilizarse
find_root (ecuación, variable, cota inf, cota sup)
Función allroots(expr): Calcula aproximaciones numéricas de las raíces reales y
complejas de un polinomio o de una ecuación polinómica de una variable.
La función allroots puede dar resultados inexactos en caso de que haya raíces múltiples.
Si el polinomio es real, allroots (%i*p)) puede alcanzar mejores aproximaciones que
allroots (p), ya que allroots ejecuta entonces un algoritmo diferente.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 25 -
Función realroots(expr,bound): Calcula aproximaciones racionales de las raíces reales
de un polinomio o de una ecuación polinómica de una variable, dentro de la tolerancia
especificada por bound (tolerancia que establece el intervalo de confianza de las raíces
calculadas)
Si bound es menor que la unidad, todas las raíces enteras se expresan en forma exacta.
Si no se especifica bound, se le supone igual al valor de la variable global rootsepsilon
(1.0e-7).
La función realroots guarda las multiplicidades de las raíces encontradas en la variable
global multiplicities.
Función nroots (p, low, high): Muestra la cantidad de raíces que tiene el polinomio en
el intervalo dado. El intervalo puede ser minf, inf (-∞, ∞)
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 26 -
Función subst(nuevo, anterior, exp.): Sustituye el nuevo valor en el anterior en la
expresión expr.
Pueden hacerse sustituciones en forma secuencial, es decir primero se realiza el primer
reemplazo y sobre este resultado se aplica el siguiente. En este caso debe indicarse
anterior=nuevo en forma de ecuación.
sublis realiza sustituciones en paralelo.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 27 -
Sistemas de ecuaciones Menú Ecuaciones:
Los sistemas de ecuaciones pueden resolverse mediante solve, algsys y linsolve
solve resuelve sistemas de ecuaciones polinómicas (lineales o no) llamando a linsolve o
a algsys según corresponda.
En el caso de linsolve las expresiones deben ser polinomios lineales respecto de las
variables o ecuaciones.
Con algsys se resuelven sistemas de ecuaciones polinómicas, si se escribe únicamente la
expresión, ésta es igualada a 0.
Los resultados se mostrarán de diferentes formas según el valor de las variables
programmode, globalsolve y linsolve_params
Ejemplo de sistema compatible indeterminado:
Las variables %r representan parámetros.
Variable realonly: si vale True, algsys solo encontrará soluciones reales.
Variable globalsolve: Cuando esta vale True, a las variables de un sistema de
ecuaciones resuelto por solve o linsolve se le asignan los valores de la solución. Si vale
False, las soluciones se expresan como ecuaciones y las variables no guardan el valor
calculado. El valor predeterminado es False.
El valor de globalsolve es ignorado por solve cuando no se trata de un sistema de
ecuaciones y también es ignorado por algsys.
solve
find_root
allroots
bfallroots
realroots
linsolve
algsys
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 28 -
Variable linsolve_params Si linsolve_params vale true, linsolve también genera
símbolos %r para representar parámetros arbitrarios. Si vale false, el resultado devuelto
por linsolve expresará, si es el sistema es indeterminado, unas variables en función de
otras.
asignación
ecuación
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 29 -
Variable programmode: Si vale False, se generan etiquetas intermedias (%tn) con las
soluciones de solve, realroots, allroots y linsolve y la solución se expresa como una lista
con estas etiquetas. Si vale True la lista se forma directamente con la soluciones.
Funciones trigonométricas:
Los argumentos de las funciones trigonométricas deben expresarse en radianes
Funciones trigonométricas Funciones hiperbólicas sin: seno
cos: coseno
tan: tangente
csc: cosecante
sec: secante
cot: cotangente
sinh: seno hiperbólico
cosh: coseno hiperbólico
tanh: tangente hiperbólica
csch: cosecante hiperbólica
sech: secante hiperbólica
coth: cotangente hiperbólica
Funciones inversas asin: arco seno
acos: arco coseno
atan: arco tangente
acsc: arco cosecante
asec: arco secante
acot:arco cotangente
asinh: arco seno hiperbólico
acosh: arco coseno hiperbólico
atanh: arco tangente hiperbólica
acsch: arco cosecante hiperbólica
asech: arco seno hiperbólico
acoth: arco cotangente hiperbólica
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 30 -
Algunas simplificaciones se ejecutan automáticamente cuando el argumento es un
múltiplo entero de %pi, %pi/2, %pi/3, %pi/4 o %pi/6. (siempre que la variable %piargs
conserve su valor en True)
Máxima no conoce todas las identidades trigonométricas pero podemos definirlas en
momento de aplicar la simplificación
El paquete atrig1 tiene algunas reglas de simplificación adicionales para las funciones
trigonométricas inversas. Las simplificaciones se aplican a los ángulos 0, %pi/6, %pi/4,
%pi/3 y %pi/2. y los correspondientes en los otros tres cuadrantes
Función trigsimp (expr):Utiliza las identidades sin(x)^2 + cos(x)^2 = 1 y cosh(x)^2 -
sinh(x)^2 = 1 para simplificar expresiones que contienen tan, sec, etc., en expresiones
con sin, cos, sinh, cosh.
Las funciones trigonométricas inversas se simplificarán según el valor de la variable
triginverses. Valores posibles all, true, false
Es necesario
declarar a n
como entero
para que la
simplificación ocurra
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 31 -
Variable trigsign: Si vale True los argumentos negativos se simplifican a la expresión
equivalente con argumento positivo. Valor predeterminado True.
Conjuntos y listas
Los conjuntos se definen por extensión, utilizando el comando set o entre llaves
Ejemplos:
El comando setp(a) devuelve true si a es un conjunto
Los elementos de una lista se encierran entre corchetes.
Si los elementos forman parte de una lista, estos pasan a ser los elementos de un
conjunto con el comando setify
Si existen listas dentro de otra lista se debe utilizar fullsetify si se quiere convertir a
conjunto cada una de las sublistas
A la inversa, los elementos de un conjunto se transforman en una lista con el comando
listify
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 32 -
Si además se quieren convertir los subconjuntos en sublistas se debe utilizar el comando
full_listify
Conjunto vacío
El conjunto vacío se ingresa con un par de llaves.
El comando emptyp devuelve true si el argumento es un conjunto vacío o una lista
vacía.
Cardinal
Cardinality calcula el número de elementos del conjunto
Pertenencia
El comando elementp(p,a) devuelve true si el elemento p pertenece al conjunto a.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 33 -
Producto cartesiano:
El producto cartesiano entre dos o más conjuntos se obtiene con el comando
cartesian_product
Ejemplo:
Definir conjuntos y listas mediante expresiones
Para definir un conjunto a partir de una expresión se utiliza el comando
makeset(expresión, x,a)
makeset tiene los siguientes argumentos:
expresión: expresión que genera los elementos del conjunto
x: lista de variables que se encuentran en la expresión
a: conjunto de listas o lista de listas que se asignarán en paralelo a las variables de x
Ejemplo: para construir un conjunto con el cuadrado de los números naturales menores
o iguales que 10.
Para generar una lista automáticamente a partir de una expresión general se utiliza
makelist(expresión,x,vi,vf)
makelist tiene los siguientes argumentos:
expresión: cálculo que determina cada elemento de la lista
x: variable sobre a que se aplica el cálculo indicado en expresión
vi: que tomará la variable x
vf: que tomará la variable x
A partir de esta lista se puede crear una segunda lista con create_list(expresión,x,lista)
create_list tiene los siguientes argumentos
expresión: cálculo que se aplicará a cada elemento de la lista
x: variable que se utiliza en la expresión que tomará los distintos valores de la lista
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 34 -
lista: lista que contiene los datos originales
Ejemplo sobre la lista del ejemplo anterior:
Para utilizar el valor de un elemento de una lista se debe indicar su posición (subíndice)
a continuación del nombre la lista y entre corchetes.
De esta forma pueden extraerse los valores de un conjunto (convirtiendo previamente en
una lista con listify) para analizarlos o realizar una operación.
Si la lista tiene sublistas, se utilizan 2 subíndices.
Para recorrer los elementos de un conjunto se puede utilizar el comando map o la
secuencia for x in s do (donde x son los elementos del conjunto y s es el conjunto)
Ejemplos:
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 35 -
Subconjunto
Para obtener un subconjunto de un conjunto cuyos elementos cumplan con un criterio se
utiliza el comando subset(a,f)
Subset tiene los siguientes argumentos:
a: conjunto
f: función booleana. Los elementos de a que devuelvan true al aplicársele la función f
formarán el subconjunto.
Ejemplo:
La función subsetp(a,b) devuelve true si a es un subconjunto de b
Unión:
El comando unión realiza la unión de uno o más conjuntos
El comando adjoin agrega un elemento a un conjunto, el elemento puede ser otro
conjunto.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 36 -
Intersección
El comando intersection o su forma abreviada intersect determinan la intersección de
dos o más conjuntos.
Diferencia
La diferencia entre dos conjuntos se obtiene con el comando setdifference
Para quitar un elemento de un conjunto se utiliza el comando disjoin, delete o
setdifference.
Diferencia simétrica:
El comando symmdifference calcula la diferencia simétrica entre dos conjuntos.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 37 -
Conjuntos disjuntos
El comando disjointp evalúa si dos conjuntos son disjuntos (no tienen elementos en
común)
Para particionar un conjunto en dos conjuntos según un criterio, se utiliza partition_set.
El primer conjunto estará formado por los elementos que no cumplen la condición y el
segundo estará formado por los elementos que la cumplen. La condición debe ser una
expresión booleana, es decir que debe arrojar como resultado true o false.
Ejemplo1: para particionar el conjunto en dos según sus elementos sean o no potencias
enteras de 2
Nota: la función sqrt(x) calcula la raíz cuadrada de x y la función entier(x) devuelve la
parte entera de x.
Ejemplo 2: para particionar un conjunto en dos, uno formado por los positivos y el otro
por los negativos y el cero
Nota: la función signum(x) devuelve 1 si x es positivo, -1 si x es negativo y 0 si x es 0.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 38 -
Conjunto de partes.
El conjunto formado por todos los subconjuntos del conjunto a se obtiene con el
comando powerset(a)
Gráficos
Los gráficos en 2D se realizan con la función plot2d (abre una ventana con el gráfico) y
wxplot2d (inserta el gráfico a continuación de la instrucción).
Máxima realiza los gráficos llamando a un programa externo como Gnuplot, otros
formatos pueden seleccionarse en el menú Gráficos.
La expresión más sencilla para realizar un gráfico en 2d requiere los argumentos:
Función o lista de funciones a graficar y el rango de la variable x. Si se desea graficar
más de una función estas se escriben entre corchetes.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 39 -
Los gráficos se pueden definir en forma discreta o paramétrica. También se pueden
combinar distintas formas de definir los puntos a graficar en un mismo grafico.
Gráfico discreto: requiere la especificación de los pares de puntos a graficar, ya sea en
una lista formada por los pares o en dos listas de igual cantidad de elementos donde la
coordenada x se encuentra en la primera lista y la coordenada y en la segunda.
Style, points indica que solo dibuje puntos en lugar de unir los puntos con líneas.
Gráfico paramétrico: requiere como argumentos las expresiones a graficar utilizando
un parámetro y el rango de variación del parámetro. El argumento nticks especifica la
cantidad de puntos a calcular.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 40 -
En el ejemplo se realizó además un grafico discreto (con los dos extremos del radio)
para establecer los valores mínimos y máximos de los ejes x e y y así lograr que la
circunferencia no se vea como una elipse.
Además pueden agregarse las siguientes opciones:
Las opciones son listas con una palabra clave seguida de uno o más valores.
[axes,symbol] la variable symbol puede ser
True: se muestran ambos ejes
False: no se muestran los ejes
x: se muestra solo el eje y
y: se muestra solo el eje y
[box,symbol] la variable symbol puede ser
True: el gráfico se encuentra dentro de una caja con borde
False: no se dibuja el borde
[color,color1,color2,…colorn] Establece el color de cada línea, conjunto de puntos, o
cara en un gráfico 3d.
Colores posibles: blue, red, green, magenta, black, cyan
Si hay más gráficos que colores, estos se repetirán cíclicamente.
[legend, “etiqueta1”, “etiqueta2,….. “etiquetan”] Establece la leyenda asociada a
cada gráfico.
Si hay más gráficos que etiquetas, estas se repetirán cíclicamente.
[legend, false] Hace que no se muestren leyendas.
[logx]/[logy] El eje de abscisas/ordenadas se dibujará en escala logarítmica.
[nticks,numero] En gráficos de funciones con plot2d establece el número inicial de
puntos que utilizará la rutina gráfica.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 41 -
Con plot3d o con gráficos paramétricos en plot2d establece el número de puntos que se
representarán en el gráfico. Valor predeterminado: 29
[point_type, tipo1, tipo2, …. tipon] Estable la forma del punto cuando el gráfico se
representa con estilo points o linepoints.
Valores posibles: bullet, circle, plus, times, asterisk, box, square, triangle, delta, wedge,
nabla, diamond, lozenge
[style, tipo1, tipo2 …. tipon] Establece el tipo de representación para el gráfico, líneas,
puntos, etc.
Tipos posibles: lines para segmentos lineales, points para puntos aislados, linespoints
para segmentos y puntos, dots para pequeños puntos aislados. Gnuplot también acepta
el estilo impulses.
Los estilos pueden acompañarse de una serie de argumentos escribiendo el tipo y sus
argumentos en forma de lista.
lines acepta uno o dos números: el ancho de la línea y un entero que identifica el color.
Los códigos de color por defecto son: 1, azul; 2, rojo; 3, magenta; 4, naranja; 5, marrón;
6, verde lima; 7, aguamarina.
points acepta uno, dos o tres parámetros; el primer parámetro es el radio de los puntos,
el segundo es un entero para seleccionar el color, con igual codificación que en lines y
el tercer parámetro sólo es utilizado por Gnuplot y hace referencia a varios objetos para
representar los puntos. Los tipos de objetos disponibles son: 1, círculos rellenos; 2,
circunferencias; 3, +; 4, x; 5, *; 6, cuadrados rellenos; 7, cuadrados huecos; 8, triángulos
rellenos; 9, triángulos huecos; 10, triángulos rellenos invertidos; 11, triángulos huecos
invertidos; 12, rombos rellenos; 13, rombos huecos.
linesdots acepta hasta cuatro parámetros: ancho de línea, radio de los puntos, color y
tipo de objetos para representar puntos.
[x,min,max] / [y,min,max] / [z, min, max] Establecen el rango a representar en el eje
x, y o z respectivamente.
[xlabel, “etiqueta”] / [ylabel, “etiqueta”] / [zlabel, “etiqueta”] Establecen la leyenda
de los eje x e y respectivamente.
Gráficos en 3D Los gráficos en 3D se realizan con plot3D o wxplot3D.
Pueden utilizarse coordenadas cartesianas, polares o esféricas.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 42 -
Para realizar gráficos a partir de sus coordenadas polares o sus coordenadas esféricas se
debe utilizar la función transform_xy con el argumento correspondiente: polar_to_xy
o spherical_to_xyz polar_to_xy: se interpretan las dos primeras variables independientes como polares,
transformándolas luego a coordenadas cartesianas.
spherical_to_xyz: se interpretan las variables independientes como esféricas,
transformándolas luego a coordenadas cartesianas.
Ejemplo: Dibuja una esfera a partir de sus coordenadas esféricas. La opción
plot_format,xmaxima utiliza el formato xmaxima en lugar de utilizar Gnuplop hace que
los ejes mantengan su escala proporcional y no se deforme las esfera.
Animaciones: Para mostrar los cambios en la gráfica de una función al variar uno de sus parámetros se
puede realizar una animación, la que se ejecutará con el botón:
La función with_slider tiene los siguientes argumentos: parámetro, lista de valores para
el parámetro, función a graficar (debe incluir el parámetro), rango del eje x y rango del
eje y.
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 43 -
Ejemplo1:
Ejemplo 2:
El paquete draw Para utilizar las funciones de este paquete se debe cargar previamente con load(draw)
draw: Permite representar simultáneamente varios gráficos en distintos cuadros. Los
gráficos pueden ser tanto en 2d como en 3d.
Ejemplo extraído de la ayuda del programa:
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 44 -
Si solo se desea realizar un gráfico, puede evitarse usar draw con el argumento gr2d o
gr3d y utilizar directamente darw2d o draw3d
Ejemplo de draw2d
Ejemplo de draw3d
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 45 -
La expresión a graficar se escribe como argumento de explicit, implicit, polar, spherical o el nombre de algún objeto gráfico. El rango de las variables se escribe a
continuación separando los datos por comas.
En 2D: implicit(fcn,x,xmin,xmax,y,ymin,ymax): dibuja la función implícita fcn, con
la variable x tomando valores desde xmin hasta xmax, y la variable y tomando valores
desde ymin hasta ymax.
En 3D: implicit(fcn,x,xmin,xmax, y,ymin,ymax, z,zmin,zmax) dibuja la función
implícita fcn, con la variable x tomando valores desde xmin hasta xmax, la variable y
tomando valores desde ymin hasta ymax y la variable z tomando valores desde zmin
hasta zmax.
En 2D: explicit (fcn,var,minval,maxval) dibuja la función explícita fcn, con la variable
var tomando valores desde minval hasta maxval.
En 3D: explicit (fcn,var1,minval1,maxval1,var2,minval2,maxval2) dibuja la función
explícita fcn, con la variable var1 tomando valores desde minval1 hasta maxval1 y la
variable var2 tomando valores desde minval2 hasta maxval2.
polar (radius,ang,minang,maxang) dibuja la función radius(ang) definida en
coordenadas polares, con la variable ang tomando valores desde minang hasta maxang.
spherical (radius,azi,minazi,maxazi,zen,minzen,maxzen) dibuja la función
radius(azi,zen) definida en coordenadas esféricas, con el azimut azi tomando valores
desde minazi hasta maxazi y el zenit zen tomando valores desde minzen hasta maxzen.
Además de estos argumentos pueden agregarse opciones como por ejemplo, fill_color
que especifica el color para rellenar polígonos y funciones explícitas bidimensionales o
line_type que indica cómo se van a dibujar las líneas, entre muchas otras.
Ejemplo:
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 46 -
Los objetos gráficos se utilizan para una figura o un cuerpo específico como la elipse
del ejemplo anterior o el tubo del siguiente:
Algunos ejemplos de objetos gráficos:
Cilindro: draw3d(cylindrical(1,z,-2,2,az,0,2*%pi))
Cilindro definido en coordenadas cilindricas: radio 1, eje z, con z entre -2 y 2, y azimut
entre 0 y 2 π
Elipse: draw2d(ellipse(2.5,6,2,3,30,-90))
En este caso dibuja un sector de la elipse con centro (2.5,6) de semiejes horizontal = 2 y
vertical = 3 comenzando en 30º y trazando un arco de -90º.
Puntos: draw2d(point_type= circle,point_size= 3,color=red,points([[2,12],[3,4]]))
Dibuja los puntos de coordenadas (2,12) y (3,4)
Vector: draw2d(xrange= [0,12],yrange= [0,10],head_length = 1,vector([0,1],[5,5]))
Dibuja el vector (5,5) con origen en (0,1)
UNNOBA UNIVERSIDAD NACIONAL
NOROESTE | BUENOS AIRES
- 47 -
Además de estos ejemplos se encuentran los objetos: rectangle, polygon, triangle,
región (dibuja un región del plano definida por desigualdades), etc. Se recomienda la
consultar de la ayuda de Máxima para más opciones y objetos.