apunte maxima.pdf

48
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

Upload: martin-pardo

Post on 11-Jan-2016

64 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: APUNTE MAXIMA.pdf

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

Page 2: APUNTE MAXIMA.pdf

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)

Page 3: APUNTE MAXIMA.pdf

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

Page 4: APUNTE MAXIMA.pdf

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.

Page 5: APUNTE MAXIMA.pdf

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)

Page 6: APUNTE MAXIMA.pdf

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

Page 7: APUNTE MAXIMA.pdf

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

Page 8: APUNTE MAXIMA.pdf

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í

Page 9: APUNTE MAXIMA.pdf

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

Page 10: APUNTE MAXIMA.pdf

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.

Page 11: APUNTE MAXIMA.pdf

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.

Page 12: APUNTE MAXIMA.pdf

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

Page 13: APUNTE MAXIMA.pdf

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.

Page 14: APUNTE MAXIMA.pdf

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.

Page 15: APUNTE MAXIMA.pdf

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

Page 16: APUNTE MAXIMA.pdf

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

Page 17: APUNTE MAXIMA.pdf

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

Page 18: APUNTE MAXIMA.pdf

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.

Page 19: APUNTE MAXIMA.pdf

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.

Page 20: APUNTE MAXIMA.pdf

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

Page 21: APUNTE MAXIMA.pdf

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

Page 22: APUNTE MAXIMA.pdf

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.

Page 23: APUNTE MAXIMA.pdf

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)

Page 24: APUNTE MAXIMA.pdf

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.

Page 25: APUNTE MAXIMA.pdf

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.

Page 26: APUNTE MAXIMA.pdf

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 (-∞, ∞)

Page 27: APUNTE MAXIMA.pdf

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.

Page 28: APUNTE MAXIMA.pdf

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

Page 29: APUNTE MAXIMA.pdf

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

Page 30: APUNTE MAXIMA.pdf

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

Page 31: APUNTE MAXIMA.pdf

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

Page 32: APUNTE MAXIMA.pdf

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

Page 33: APUNTE MAXIMA.pdf

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.

Page 34: APUNTE MAXIMA.pdf

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

Page 35: APUNTE MAXIMA.pdf

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:

Page 36: APUNTE MAXIMA.pdf

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.

Page 37: APUNTE MAXIMA.pdf

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.

Page 38: APUNTE MAXIMA.pdf

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.

Page 39: APUNTE MAXIMA.pdf

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.

Page 40: APUNTE MAXIMA.pdf

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.

Page 41: APUNTE MAXIMA.pdf

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.

Page 42: APUNTE MAXIMA.pdf

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.

Page 43: APUNTE MAXIMA.pdf

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.

Page 44: APUNTE MAXIMA.pdf

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:

Page 45: APUNTE MAXIMA.pdf

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

Page 46: APUNTE MAXIMA.pdf

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:

Page 47: APUNTE MAXIMA.pdf

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)

Page 48: APUNTE MAXIMA.pdf

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.