Comandos EulerMath1
Comandos EulerMath1
ver opciones para búsqueda de comandos, guardar y buscar una sesión de trabajo
Operadores
Operadores aritméticos
+ suma de escalares, vectores y matrices
- diferencia de escalares, vectores y matrices
* producto de escalares, y de vectores y matrices punto a punto
. producto de matrices A.B
/ división de escalares o matrices punto a punto
^ potencia de escalares o de una matriz por un escalar punto a punto
.^ potencia entre vectores o matrices punto a punto
Operadores relacionales
< <
<=
> >
>=
== =
<> devuelve 1 si tienen el mismo valor numérico
= en menos del épsilon de la máquina
Operadores lógicos
!A negación lógica, AC
A&&B conjunción lógica AB ó AB
A||B disyunción lógica, AB ó AB
Variables
x:=value ó x=value asigna value a la variable numérica x
x&=value asigna value a la variable simbólica x
x::=value asigna value a la variable x tanto en EulerMath como en Máxima
x:=”value” asigna value a la variable dinámica x (su valor cambia al evaluarse)
clearall elimina todas las variables del usuario
clear var elimina la variable especificada
listvar da el nombre de las variables en memoria
quit sale de Euler
cd string para definir el directorio de trabajo
cd muestra el directorio de trabajo
load filename para cargar un archivo Euler en memoria
path(string) coloca un camino para la búsqueda de archivos
Variables especiales
% guarda el último cálculo no asignado a una variable
Pi pi ó %pi ()
I ó %i ( 1 )
E ó %e (e)
%phi ()
epsilon (unidad mínima númerica de proceso)
tic
toc
Variables vectoriales
variable=[a1,a2,a3,…,an]
variable=[primero:ultimo] define un vector cuyo primer elemento es primero, y los otros
se diferencia en una unidad, sin sobrepasar a último
variable=[primero:delta:ultimo] define un vector cuyo primer elemento es primero, y los otros
se diferencia por delta, sin sobrepasar a ultimo
variable=linspace(primero,ultimo,n) define un vector cuyos primer elemento es primero, el último
es ultimo, y tiene n elementos uniformemente espaciados
variable=logspace(primero,ultimo,n,b) define un vector cuyos primer elemento es primero, el último
es ultimo, y tiene n elementos uniformemente espaciados en
escala logarítmica con base b
x[n] da el n-ésimo elemento de x
x[a:b] da los elementos de x que se encuentran entre el a-ésimo y el b-ésimo
x[a:p:b] da los elementos de x entre el a-ésimo y el b-ésimo separados en p unidades (a<b)
x[b:-p:a] idem anterior pero de b a a descendiendo en intervalos de p
Variables matriciales:
matriz=[a11,a12,…,a1n; a21,a22,…,a2n; …; am1,am2,…,amn] define una matriz mxn
A[k,p] define el elemento k,p de la matriz A
A[a:b,c:d] define una submatriz de A formada por las filas que hay entre la a-ésima y la b-
-esima y las columnas que hay entre la c-ésima y la d-ésima
A[a:p:b,c:q:d] define una submatriz de A formada por las filas que hay entre la a-ésima y la b-
-esima separadas en p unidades y las columnas que hay entre la c-ésima y la d-
ésima separados en q unidades
A[[a b],[c d]] define una submatriz formada por los elementos que están en la intersección de
las filas a y b y las columnas c yd
A[[a b c…],[e f g …]] idem anterior
A[:,c:d] submatriz de A formada por las columnas que hay entre la c-ésima y la d-ésima
A[:,[c d ..]] submatriz de A formada por las clumnas c d …
A[:,c] columna c-ésima de A
A[a:b,:]
A[[a b …],:]
A[a,:] fila a-ésima de A
A[:,:] A
A|B la matriz cuyas primeras columnas son las de A, y luego las de B ([A B])
A_B la matriz cuyas primeras filas son las de A, y luego las de B ([A])
[B]
(en estos dos últimos casos no importa el tamaño de las matrices completa con 0 si es necesario)
Divisibilidad de enteros
mod(n,m) r, resto de la división de n y m, en realidad n r (mod m)
sign(n) signo de n (1 si n>0, -1 si n<0)
max(n1,n2) máximo{n1,n2}
min(n1,n2) mínimo{n1,n2}
gcd(n1,n2) máximo común divisor de {n1,n2}
lcm(n1,n2) mínimo común múltiplo {n1,n2}
factor(n) descompone a n en factores primos
&ifactors(n) descompone a n en factores de primos con sus potencias
isprime(n) ó &isprime(n) dice si n es o no un número primo
n! ó fac(n) n!
&next_prime(n) próximo primo a n
&prev_prime(n) el primo previo a n
primes(n) genera un vector con los primos menores o iguales a n
Sistemas de numeración:
printbase(nro,base=n_base,>integer) pasa el número decimal (base 10) a la base n_base
baseinput(“string”,B) convierte el número dado en base B a decimal
printdual(nro,>integer) pasa de la base 10 (decimal) a su expresión en base 2
dual('binario') pasa el número binario (base 2) a base 10
printhex (nro,>integer) pasa de la base 10 (decimal) a su expresión en base
hexadecimal
hex (“string”) pasa el número de hexadecimal a base 10
Números racionales
Para trabajar en forma exacta hay que hacerlo en Máxima
fracformat representa los números como cociente de enteros, realizando cálculos exactos para
números racionales
&num(expr_rac_simb) da el numeror de la expresión racional de simbólica
&num(expr_rac_simb) da el denominador de la expresión racional de simbólica
Números reales
Funciones más comunes (aplicables a todo número irracional, racional y entero)
sin(x) asin(x) sinh(x) asinh(x)
cos(x) acos(x) cosh(x) acosh(x)
tan(x) atan(x)
cot(x)
cosec(x)
sec(x)
Números complejos
Con I ó %i se representa a la 1
Los números complejos se representan como a+bI ó a+b*%i.
Las funciones más comunes son:
sin(z) asen(z) sinh(z) asinh(z) exp(z)
cos(z) acos(z) cosh(z) acosh(z) log(z)
tan(z) atan(z) log10(z)
cot(z)
cosec(z)
sec(z)
Algunas actúan sobre la parte real y la parte imaginaria como:
round(z)
Algunas son específicas para las variables complejas:
abs(z) (||z||)
arg(z) ángulo expresado en radianes
conj(z) (z)
re(z) (Re(z))
im(z) (Im(z))
complex(x) convierte x a número complejo
La exactitud de los resultados puede relajarse usando técnicas especiales de aproximación al resultado
exacto con un determinado grado de precisión. Algunos comandos que permiten aproximaciones
numéricas:
longestformat ofrece el resultado con mantisa de 16 dígitos
longformat ofrece el resultado con mantisa de 12 dígitos
shortformat ofrece el resultado con mantisa de 5 dígitos
shortestformat ofrece el resultado con mantisa de 3 dígitos
fracformat ofrece el resultado en forma de número racional aproximado
fracprint(x,n) aproxima a x en forma de fracción con n dígitos de precisión
&float(x) aproxima el número algebraico x usando mantisa de 16 dígitos
&bfloat(x) aproxima el número algebraico x usando mantisa de 32 dígitos
fpprec para definir la precisión de las variables internas
&rationalize(expr) convierte la expr en punto flotante a aproximación racional
Números aleatorios
random número decimal con distrib U[0,1]
random(m,n) ó random([m,n]) matriz de orden mxn con elementos decimales con distrib U[0,1]
random(size(A)) matriz de igual dim(A) con elementos decimales con distrib. U[0,1]
intrandom(k) genera un número aleatorio entero entre 1 y k
intrandom([m,n],k) genera una matriz de mxn de número aleatorio enteros entre 1 y k
fastrandom([m,n]) matriz de orden mxn con elementos decimales números pseudo aleatorios
distribuidos con distrib U[0,1] de manera más rápida, pero menos confiable
normal número decimal con distrib N[0,1]
normal(m,n) ó normal([m,n]) matriz de orden mxn con elementos decimales con distrib N[0,1]
normal(size(A)) matriz de igual dim(A) con elementos decimales con distrib. N[0,1]
seed(x) coloca la semilla desde la cual generar los números aleatorios
fastnormal([m,n]) matriz de orden mxn con elementos decimales números pseudo aleatorios
distribuidos con distrib N[0,1] de manera más rápida, pero menos confiable
Variables simbólicas y numéricas
x&=exp_x1_x2_..._xn define una expresión simbólica en x1, x2,.., xn
x:=”value_x1_x2_..._xn” asigna value a la variable dinámica x (su valor cambia al evaluarse x1, x2, xn)
x(a,b,…,n) evalua la variable dinámica en los valores x1=a, x2=b,…, xn=n
function f(x1,…,xn)&=exp_x1,…;xn crea una variable simbólica (bajo Máxima)
Variables matriciales
eye(n) ó id(n) crea la Identidad de orden n
eye(m,n) ó id(m,n) crea una matriz de orden mxn tq. los elementos de la diagonal principal son 1 y
los demás 0
zeros(m,n) crea la matriz nula de orden mxn
ones(m,n) crea una matriz de orden mxn con todos los elementos 1
rows(A) devuelve la cantidad de filas de A
cols(A) devuelve la cantidad de columnas de A
size(A) devuelve el orden de A
matrixpower(A,n) An
diag(A) los elementos de la diagonal principal de A
A' traspuesta de A
transpose(A) traspuesta de A
inv(A) inversa de A
det(A) determinante de A
rank(A) rango de A
echelon(A) ó &echelon(A) matriz escalera reducida por filas de A
echelon(A|b) matriz escalera reducida por filas de la matriz ampliada del sistema AX=b
power(A,n) An (potencia entera de A)
kernel(A) BON del núcleo de A
image(A) ó svdimage(A) BON de la Imagen de A
totalsum(A) suma todos los elementos de A
eigen(A) autovalores de A
{V,D}=eigen(A) V es el vector de autovalores y D tiene en sus columnas a los autovectores
asociados a los autovalores
charpoly(A) polinomio característico de A
jordan(A) forma canónica de Jordan
redim(A,m,n) regresa una matriz con los elementos de A pero con m filas y n columnas
(completa con 0 si es necesario)
Expresiones algebraicas
&expand(expr) expande al máximo la expresión simbólica, realizando los productos y
potencias hasta expresar como suma de términos
&distrib(expr) similar a expand pero opera sólo sobre los numeradores
&factor(expr) expresa la expresión simbólica expandida como producto de factores
&xthru(expr) unifica la expresión como cociente de dos expresiones
polymult(p,q) computa p*q
polyadd(p,q) computa p+q
polydiv(p,q) da los coeficientes de q y r tq. a=bq+r con gr(r)<gr(b) ó r=0
polysolve(p) halla las raíces de p
polyroot(p,x) halla la raíz cercana a x
polydif(a) da los coeficientes de la derivada del polinomio cuyos coeficientes es a
polyval(p,x) valúa el polinomio en x= p(x)
polyfit(X,Y,n) da el vector de coeficientes del polinomio en X de grado n que mejor ajusta los
datos (xi,yi) en el sentido de mínimos cuadrados
&display(expr1,expre2,…) muestra expresiones donde en el lado izquierdo está la expresión y en
el derecho el valor que asume, lo hace fila por fila
Variable carácter
c=''cadena de caracteres''
se pueden concatenar string usando el signo + o |:
"EL area de un circulo de "+2+" cm es "+pi*4+" cm^2"
ó
"EL area de un circulo de "|2|" cm es "|pi*4|" cm^2"
Para un vector de string usar [,..,…] (cada string aparece en una fila)
strtochar('cadena') Devuelve el vector de caracteres ASCII equivalentes a los de la cadena
chartostr(vector_num) devuelve la cadena de caracteres ASCII equivalente a los elementos del vector
print(numero) convierte el número a un string
strlen(“cadena”) longitud de la cadena
none corresponde a una cadena de un blanco
tolower(“cadena”) convierte la cadena a minúscula
toupper(“cadena”) convierte la cadena a mayúscula
substring(“cadena”,n,m) devuelve la subcadena que empieza en la posición n y va hasta la m desde
cadena
strfind(c,'exp',n) da la posición donde encuentra el substring exp en la cadena c comenzando
desde la posición n
input(“cadena”) muestra la cadena en pantalla y espera el ingreso de un valor numérico o tecla
para seguir
Conjuntos:
&cardinality(s) cantidad de elementos del conjunto s
&cartesian_product(s1,s2)producto cartesiano entre los conjuntos s1 y s2
&equiv_classes(s,F) conjunto de clases de equivalencia del conjunto s respecto de la relación F
&integer_partitions(n,k) conjunto formado por vectores enteros que sumados dan como resultado n
&intersections(s1,…,sn) intersección de los conjuntos s1, s2,…, sn
&permutations(s) permutaciones de elementos de s
&powerset(s,n) conjunto formado por todos los subconjuntos posibles del conjunto s, si se
declara n sólo muestra los de ese cardinal
&setdifference(s1,s2) s1-s2
&unión(s1,s2,…,sn) unión de los conjuntos s1,s2,…,sn