resumen de maxima

Anuncio
RESUMEN DE MAXIMA
OPERADORES
Tipos de operadores
Prefijo (prefix).- Son unarios con un único operando que se escribe a continuación del operador.
Ejemplos: - , not.
Sufijo (postfix).- Son unarios con un único operando que se escribe antes del operador. Ejemplo: !.
Infijo (infix).- Son binarios y se colocan entre dos operandos. Ejemplo : ^, :.
N-ario (n-ary).- Tienen un número arbitrario de operandos. Ejemplo: * y +.
Acotador (matchfix).- Se utilizan para establecer el comienzo y final de una lista de operandos.
Los corchetes son ejemplos de acotadores, que se utilizan para definir una lista tal como [a, b, ...].
No-fijo (nofix).- Carece de operandos.
Operadores
Aritméticos
Relacionales
+
*
/
^
**
^^
.
<
<=
>
>=
Suma
Resta
Producto
División
Potencia
Potencia
Potencia no conmutativa
Producto de matrices
Lógicos Para ecuaciones y asignaciones
Menor
not No
Menor o igual and Y
Mayor
or O
Mayor o igual
#
=
:
::
:=
::=
Distinto
Igual
Asignación
Asignación
Definir
Definir
Podemos
definir
nuestros
propios
operadores, y con las funciones remove y
kill podemos eliminar las propiedades del los
operadores o eliminarlos.
La llamada remove ("s+", op) sólo elimina las
propiedades de operador s+ de a, mientras que
la llamada kill ("s+") elimina todas las
propiedades de a, incluidas las propiedades de
operador.
Podemos controlar la evaluación de símbolos, funciones
y expresiones algebraicas mediante una comilla simple
(') o dos comillas simples (''). Mientras que con una
comilla simple se suprime la evaluación, con dos
comillas simples se evalúa.
•
•
•
•
•
•
•
•
Si escribimos: ev (expr, arg_1, …, arg_n) se evalúa una expresión (expr) utilizando los argumentos
(arg_1,..., arg_n). Siendo, algunos de los argumentos los siguientes:
simp.- Simplifica la expr sin importar el valor de la variable
noeval.- Suprime la fase de evaluación de ev
nouns.- Evalúa las formas nominales.
expand.- Expande exp.
diff.- Realiza todas las derivadas indicadas en expr.
float.- Convierte los números racionales (no-enteros) a números decimales de coma flotante.
numer.- Se evalúa exp como punto flotante si no contiene la expresión variables.
V: expresion.- Le asigna a V el valor de expresión
Operadores de asignación
;
evalúa la expresión y devuelve el resultado. Ejemplo: 1+ sqrt(2/3);
$
evalúa una expresión sin devolver el resultado. Ejemplo: b: sqrt(3)$
%
evalúa el último cálculo efectuado
? comando muestra ayuda sobre lo que hace referencia el comando.
:
asigna a una variable escrita a la izquierda el valor escrito a la derecha
example(comando) muestra ejemplos del comando
kill(variable o función) borra variable o función
kill(all) reinicia el sistema
Constantes
%pi es el número pi = 3,14159...
true
es el valor lógico “verdadero”
%e
es el número e = 2,7183...
false
es el valor lógico “falso”
%i
es la unidad imaginaria i = sqrt(-1)
inf
es +infinito
minf
es -infinito
Expresiones
Funciones habituales de números reales
Valores aproximados a números reales
abs(x)
floor(x)
round(x)
sqrt(x)
exp(x)
log(x)
valor absoluto de x
parte entera de x
redondeo entero de x
raiz cuadrada de x
e elevado a x
logaritmo neperiano de x
float(x) es el valor decimal aproximado de x
bfloat(x) es el valor aproximado de x en
notación científica
fpprec:n fija la aproximación dada por bfloat a
n cifras (por defecto es 16)
Trigonometría
Aritmética entera (también para polinomios)
F. trigonométricas: sin(x), cos(x), tan(x)
F. trigonométricas inversas: asin(x), acos(x),
atan(x)
trigexpand(a) desarrolla
la
expresión
trigonométrica a utilizando las fórmulas de la
suma de seno y coseno
trigreduce(a) reduce
un
polinomio
trigonométrico a.
trigsimp(a)
simplifica
la
expresión
trigonométrica
a
usando
la
relación
2
2
cos t+sin t=1 , y sustituyendo tan t por
sin t
cos t
load(ntrig)
carga el paquete, lo que permite
obtener los valores exactos de sin x, cos x y tan x
cuando x es un múltiplo de π
10
divide(a,b) división euclídea de a por b.
divisors(a) conjunto de divisores de a
divsum(a)
suma de los divisores de a
mod(a,b)
resto de división de a entre b
gcd(a,b) M.C.D. de los números enteros a y b
lcm(a,b) M.C.M. de los números enteros a y b
primep(p)
verifica si el natural p es primo
prev_prime(n) mayor primo menor n
next_prime(n) menor primo mayor que n
factor(n)
descomposición del natural n en
producto de factores primos
ifactors(n) descomposición de n en producto
de factores primos
binomial(n,p) es el número binomial n sobre p
random(n) número natural, elegido al azar
entre 0 y n - 1
Números complejos
Límites, tangentes y asíntotas
realport(z)
imagport(z)
conjugate(z)
abs(z)
carg(z)
rectform(z)
polarform(z)
limit(f(x)/x,x,0) límite de f(x) en x = 0
limit(f(x),x,0,plus) límite de f(x) en x = 0 por la
derecha
limit(f(x),x,0,minus) límite de f(x) en x = 0 por
la izquierda
limit(f(x),x,inf) límite de f(x) en x = + infinito
limit(f(x),x,minf) límite de f(x) en x = - infinito
taylor(f(x),x,a,n) desarrollo de Taylor de f
respecto de x en el punto a con n términos
es la parte real de z
es la parte imaginaria de z
es el conjugado de z
es el módulo de z
es el argumento de z (en (-pi,pi])
es la forma cartesiana de z
es la forma polar de z
Cálculo algebraico
Funciones: Derivación,
integración
representación
e
R:x^4-4*x^2-5 polinomio R= x 4−4∗x 2−5
expand(P)
desarrolla P
factor(P)
factoriza P en R
gfactor(P)
factoriza P en C
solve(P,x)
raices complejas de P
subst(4,x,P) valor de P cuando x = 4
ratcoef(P,x^3) es el coeficiente del término en
3
x de P
divide(P,Q,x) es la lista formada por el cociente
y el resto de la división de P por Q.
portfrac(P/Q,x) descompone la función racional
P/Q en elementos simples
ratsimp(expr) simplifica la expresión racional
expr (reduce a común denominador)
subst(1/z,x,expr) sustituye x por 1/z en la
expresión expr
subst (a, b, P) Sustituye a por b en expresión P
f(x):=x^2-1
Define
define(f(x),x x^2-1) Define
f:lambda([x],x^2-1) Define
Ecuaciones
Sistemas de ecuaciones
solve(P(x)=Q(x),x)
resolución exacta
en C, de la ecuación P(x) = Q(x)
find_root(P(x)=Q(x),x,a,b) solución
aproximada en [a,b], de la ecuación P(x) = Q(x)
allroots(P(x)=Q(x))
valores
aproximados de todas las soluciones (reales y
complejas), de la ecuación P(x) = Q(x)
linsolve([ecuación 1, ecuación 2, … , ecuación
k], [variable 1, variable 2, … , variable k])
Resuelve el sistema de lineal de k ecuaciones
algsys(([ecuación 1, ecuación 2, … , ecuación
k], [variable 1, variable 2, … , variable k])
Resuelve el sistema no lineal de k ecuaciones
f ( x )=x 2−1
f ( x )=x 2−1
f ( x )=x 2−1
diff(f(x),x)
es la derivada de f ( x)
diff(f(x),x,2) es la derivada segunda f (x)
define(g(x),diff(f(x),x)) define g(x)=f ' (x)
taylor(f(x),x,a,1) es la ecuación reducida de la
tangente a f en el punto (a , f (a))
plot2d([f(x),g(x)],[x,x1,x2],[y,y1,y2])
representa las funciones f y g en la región
[x 1, x 2] x [ y 1, y 2 ]
integrate(f(x),x)
primitiva de f(x)
integrate(f(x),x,a,b) integral definida de f(x)
entre a y b
romberg(f(x),x,a,b) es una aproximación de
la integral definida de f(x) entre a y b
Listas
L:makelist(k^2,k,0,15) Lista L con los cuadrados de los 15 primeros naturales
L[2]:5
sustituye segundo elemento de L por 5
length(L)
longitud de la lista L.
first(L)
primer elemento de L
second(L)
segundo elemento de L
last(L)
último elemento de L
member(x,L)
se verifica si x pertenece a L
append(L1,L2) concatena las listas L1 y L2
join(L,M)
construye una lista, intercalando los elementos de L y M.
sort(L)
ordenación de los elementos de L en orden creciente.
map(f,L)
aplicación de la función f a todos los elementos de L
Sumas y productos
Matrices
sum(1/k^3,k,1,10)
es la suma de los
inversos de los cubos de los enteros entre 1 y 10.
product(1/k^3,k,1,10) es el producto de los
inversos de los cubos de los enteros entre 1 y 10.
load(simplify_sum) $ sum(1/k^3,k,1,inf) $
simplify_sum(%)
calcula la suma de los
inversos de los cubos de los enteros entre 1 y +
infinito.
A:matrix([9,8,7],[6,5,4],[3,2,1])
define
matriz la matriz A = ([9,8,7],[6,5,4],[3,2,1])
B:genmatrix(lambda([i,j],i+j),3,2) genera la
matriz B = ([2,3],[3,4],[4,5])
zeromatrix(m,n) matriz nula de orden m x n
ident(n)
matriz identidad de orden n.
diag_matrix(a,b,c) matriz diagonal ([a,0,0],
[0,b,0],[0,])
Programación
Operaciones con matrices
nombre(parámetros
de
entrada):= A+B
suma de las matrices A y B
block([variables locales], <instrucción 1>, .... k*A
producto de la matriz A por k
<instrucción n>, /* -------Comentario------ */) A.B
producto de las matrices A y B
Ejemplo.- suma(a,b) := block([c],c:a+b, A^^n
matriz A elevada a n
return(c))
invert(A)
inversa de la matriz A
ESTRUCTURA CONDICIONAL
transpose(A)
traspuesta de la matriz A
if
(condición)
then
(<instrucción1>, determinant(A) determinante de A
<instrucción2>)
else
(<instrucción3>, rank(A)
rango de matriz A
<instrucción4>)
ident(n)
matriz identidad de orden n
ESTRUCTURAS ITERATIVAS
Bucle For (tabla del 7).- for k from 1 thru 10
do (print("7 veces",k,"igual a",7*k))
Bucle While para escribir la tabla del 7.- k:1 $
while k<11 do (print("7 veces",k,"igual
a",7*k), k:k+1)
Formatos gráficos de Maxima
• gnuplot
(formato por defecto para Windows)
• gnuplot_pipes
(formato por defecto para plataformas distintas de Windows)
• mgnuplot
(interfaz para Gnuplot basada en Tk)
• xmaxima
(interfaz gráfico Tcl/Tk de Maxima)
Funciones y variables para gráficos
contour_plot (expr(x,y), [x,a,b], [y,c,d], options, …) - solo funciona con gnuplot o gnuplot_pipes
Dibuja curvas de nivel de expr(x) en el rectángulo [a,b]x[c,d], utilizando las opciones options
plot2d(expr(x), [x,a,b], [y,c,d], options, …)
Gráfica de expr(x) en el rectángulo [a,b]x[c,d], utilizando las opciones options
plot2d([expr1(x),...,exprn(x)], [x,a,b], [y,c,d], options, …)
Gráfica de expr1(x), …, exprn(x) en el rectángulo [a,b]x[c,d], utilizando las opciones options
Ejemplos:
(%i1) plot2d (sin(x), [x, -%pi, %pi])$
Si la función crece rápidamente puede ser necesario
limitar los valores del eje vertical:
(%i1) plot2d (sec(x), [x, -2, 2], [y, -20, 20])$
plot2d: some values were clipped.
Gráfico con escala logarítmica:
(%i1) plot2d (exp(3*s), [s, -2, 2], [logy])$
Ejemplo de función paramétrica. Curva de la mariposa:
(%i1) r: (exp(cos(t))-2*cos(4*t)-sin(t/12)^5)$
(%i2) plot2d([parametric, r*sin(t), r*cos(t),[t, -8*%pi, 8*
%pi], [nticks, 2000]])$
(%i1) plot2d([[parametric, cos(t), sin(t),[t,0,2*%pi], (%i1) plot2d ([discrete,
[nticks, 80]],[abs(x)], [x,-2,2], [y, -1.5, 1.5])$
[.6, .9, 1.1, 1.3, 1.4]])$
plot2d: some values were clipped.
[10,
20,
30,
40,
50],
(%i1) plot2d([discrete, [[10, .6], [20, .9], [30, 1.1],[40, (%i1) xy: [[10, .6],[20, .9],[30, 1.1], [40, 1.3], [50, 1.4]]$
1.3], [50, 1.4]]],[style, points])$
(%i2) plot2d([[discrete, xy], 2*%pi*sqrt(l/980)], [l,0,50],
[style, points, lines], [color, red, blue],[point_type,
asterisk],[legend,
"experiment",
"theory"],[xlabel,
"pendulum's length (cm)"], [ylabel, "period (s)"])$
plot3d(expr(x,y), [x,a,b], [y,c,d],[z,e,f], options, …)
Gráfica de expr(x,y) en el rectángulo [a,b]x[c,d]x[e,f], utilizando las opciones options
plot3d([expr1(x),...,exprn(x)], [x,a,b], [y,c,d], options, …)
Gráfica de expr1(x), …, exprn(x,y) en el ortoedro [a,b]x[c,d]x[e,f], utilizando las opciones options
Ejemplos:
(%i1) plot3d (2^(-u^2 + v^2), [u, -3, 3], [v, -2, 2])$
(%i1) expr_1:5*cos(x)*(cos(x/2)* cos(y)+ sin(x/2)*sin(2*y) +3.0)-10.0$
(%i2) expr_2:-5*sin(x)*(cos(x/2)*cos(y) + sin(x/2)*sin(2*y) + 3.0)$
(%i3) expr_3: 5*(-sin(x/2)*cos(y) + cos(x/2)*sin(2*y))$
(%i4) plot3d ([expr_1, expr_2, expr_3], [x, -%pi, %pi],[y, -%pi, %pi],
[grid, 40, 40])$
Algunas opciones para gráficos
axes [axes, true]
Dibuja ejes
axes [axes, true]
Oculta ejes
color [color,color_1,…,color_n] Define colores. Por defecto: blue,red,green,magenta,black,cyan
legend [legend, string_1, …, string_n]
Define títulos
logx [logx] Escala logarítmica en eje OX
logy [logy] Escala logarítmica en eje OX
point_type [point_type, type_1, …, type_n] Tipos de puntos. Por defecto: bullet, circle, plus, times,
asterisk, box, square, triangle, delta, wedge, nabla, diamond, lozenge
style [style, type_1, …, type1_n]
Tipo de linea: lines, points, linespoints, dots, impulses.
x [x, min, max]
Valor mínimo y máximo de eje OX , … ,
z [z, min, max]
Valor mínimo y máximo de eje OZ
xlabel [xlabel, título1]
Título1 para eje OX, … ,
zlabel [xlabel, título3]
Título3 para eje OZ
Polinomios En mayoría de los casos se puede indicar variables ,x,y
algebraic
Por defecto: false. Debe valer: true, para simplificación de enteros algebraicos.
coeff (expr(x), x, n) Devuelve el coeficiente de x^n en expr(x) – (la ordén no expande expr(x))
divide (P, Q,x)
Cociente y el resto de división de P entre Q, de variable principal x.
factor (expr)
Factoriza la expresión expr
gcd (P1,...,Pn)
Máximo común divisor de P1,..., y Pn.
ratsimp (expr)
Simplificación racional de expr.
Programación
SINTAXIS
nombre(parámetros de entrada) := block([variables locales],<instrucción 1>,....,<instrucción n>,
/* -------Comentario------ */)
Ejemplo simple:
suma(a,b) := block([c], c:a+b, return(c))
ESTRUCTURA CONDICIONAL
if (condición)
then (<instrucción1> , <instrucción2>)
else (<instrucción3> , <instrucción4>)
ESTRUCTURAS ITERATIVAS
Bucle For para escribir la tabla del 7:
for k from 1 thru 10 do (print("7 veces",k,"igual a",7*k))
Bucle While para escribir la tabla del 7:
k:1 $ while k<11 do (print("7 veces",k,"igual a",7*k), k:k+1)
Descargar