Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
Herramientas de Software Matemático en el aula
Rubén Sánchez Gómez
15 de julio de 2013
Jugando con Maxima
Operadores lógicos
is(3
Jugando con Maxima
Variables
a:x^2� 1;sol:solve(a,x);factor(a,x);
di↵(a,x);
p:(x+2)⇤(2⇤x�3);q:(x+2)^3;p�q;radcan(p/q);expand(p/q);partfrac(p/q,x);
Rubén Sánchez Gómez Herramientas de Software Matemático
Jugando con Maxima
Vectores
Retomando producto interior (inner product) sabemos que
h·, ·i : V ⇥ V ! K .
Para espacios Euclideanos se sabe que tienen producto interior(producto punto) y que para u, v se satisface:
cos ✓ =u · v|u||v | y que kuk =
pu · v
Para u =
0
BB@
�1024
1
CCA , v = (1, 3,�2, 1) ,w =
0
BB@
33
�12
1
CCA ,
obtenga:
u · v medianteu
tv ,
u · v =?,el ángulo ✓v ,w ,
Rubén Sánchez Gómez Herramientas de Software Matemático
Jugando con Maxima
Matrices
Para
A =
0
@1 2 3
4 5 6
7 8 9
1
A ,B =
0
@1 �1 xx 1 2
�1 x 2
1
A ,C =
0
@4 2
5 3
2 0
1
A
obtenga:
A+ 2B =?
BC =
0
@3 �117 7
10 4
1
A , x =?
det(A) =?
¿Para qué valores de x se
tiene que B es matriz
singular?
(C
tC )
�1
¿Qué responde Maxima
para A+ C o para CB?
B
�1=?
Rubén Sánchez Gómez Herramientas de Software Matemático
Jugando con Maxima
Sistemas lineales
Para el sistema
3x1 � 2x2 + 4x3 + x4 = 62x1 + x2 + x3 � x4 = 3
� 3x1 + 3x2 + 2x3 + x4 = 3x1 + x2 + x3 + 4x4 = 7
resuelva por
matriz inversa,
regla de Cramer,
Gauss-Jordan (usando matrices elementales)
Rubén Sánchez Gómez Herramientas de Software Matemático
Jugando con Maxima
Funciones2
f(x) := sin(x);f(%pi/4);
define( g(x,y),[f(x),f(x)^2] );g(%pi/4,%pi);
functions;
fundef(f);
remfunction(f);
functions;
Rubén Sánchez Gómez Herramientas de Software Matemático
Gráficando en Maxima
f(x):=x^3+3⇤x+1;g(x):=%e^x-x+1;wxplot2d(f(x), [x,-2,2]);
wxplot2d([f(x), g(x)], [x,-2,2]);
wxplot2d([f(x), g(x)], [x,-2,2], [y,-5,20]);
wxplot2d([f(x), g(x)], [x,-2,2], [plot format, gnuplot],[gnuplot preamble, “set size ratio 1; set zeroaxis;”]);
wxplot2d([f(x), g(x)], [x,-2,2], [plot format, gnuplot],[gnuplot preamble, “set size ratio 2; set zeroaxis;”]);
wxplot2d([f(x), g(x)], [x,-2,2], [plot format, gnuplot],[gnuplot preamble, “set size ratio 0.5; set zeroaxis;”]);
Rubén Sánchez Gómez Herramientas de Software Matemático
Jugando con Maxima
Gráficando en Maxima
f(x):=if x>>>>><
>>>>>>:
2x si x 0
cos(x) si 0 < x < ⇡
�r
x
⇡+ 1 si x � ⇡
Rubén Sánchez Gómez Herramientas de Software Matemático
Gráficando en Maxima
plot2d(x^2-1, [x,-3,3], [y,-2,10],;[box, false], [plot format, xmaxima]);
r:(exp(cos(t))-2⇤cos(4⇤t)-sin(t/12)^5)$plot2d([parametric, r⇤sin(t), r⇤cos(t)],[t, -8⇤%pi, 8⇤%pi], [nticks, 200]);
plot2d([parametric, r⇤sin(t), r⇤cos(t)],[t, -8⇤%pi, 8⇤%pi], [nticks, 500]);
plot2d([parametric, r⇤sin(t), r⇤cos(t)],[t, -8⇤%pi, 8⇤%pi], [nticks, 2000]);
Rubén Sánchez Gómez Herramientas de Software Matemático
Gráficando en Maxima
f(x,y):=x^3+y^2;contour plot(f(x,y), [x,-4,4], [y,-4,4]);
contour plot(f(x,y), [x,-4,4], [y,-4,4], [legend, false],[gnuplot preamble, ”set cntrparam levels 12”]);
plot3d(f(x,y), [x,-3,3], [y,-3,3]);
plot3d([f(x,y), log(f(x,y)), [x,-3,3], [y,-3,3]],[palette, false], [color, magenta, blue])$);
Rubén Sánchez Gómez Herramientas de Software Matemático
Usando draw
load(draw);f(x):=x^3-2⇤x^2-x+2;define(df(x), di↵(f(x), x));tangente(x,a):=f(a)+df(a)*(x-a);
wxdraw2d(color=blue, key=“función”, explicit(f(x), x, -2, 3),color=red, key=“recta tangente”,explicit(tangente(x,1), x, -1, 2), grid=true);
Rubén Sánchez Gómez Herramientas de Software Matemático
Usando draw
secante(x, a, c, b, d):=x⇤(c-d)/(a-b)+ (a⇤d-b⇤c)/(a-b);draw2d(point type=filled circle, color=black, points([[1,f(1)]]),point type=filled circle, color=black, points([[1.6, f(1.6)]]),color=blue, key=“funcion”, explicit(f(x),x,-2,3),color=red, key=“recta tangente”,explicit(tangente(x, 1), x, -2, 3),color=green, key=“recta secante”,explicit(secante(x, 1, f(1), 1+0.6, f(1.6)), x, -1.5, 2.5),grid=true);
Rubén Sánchez Gómez Herramientas de Software Matemático
Animación. . .
with slider(n, 0.1⇤reverse(makelist(i, i, 1, 20)),[f(x), tangente(x, 1), secante(x, 1, f(1), 1+n, f(1+n))],[x, -1.5, 2.5]);
Sólo por seguir jugando. . .
wxdraw2d(color=red, nticks=100,implicit(x^2 + (y - x^(2/3))^2 = 1, x, -1.5, 1.5, y, -1.2, 2));
Rubén Sánchez Gómez Herramientas de Software Matemático
Integrando
integrate(t^3⇤sin(t^2, t));’integrate(t^3⇤sin(t^2, t)) = integrate(t^3⇤sin(t^2, t);’integrate(t^3⇤sin(t^2, t)) = ”integrate(t^3⇤sin(t^2, t);
integrate(cos(x)^3⇤%exp^(-x), x);’integrate( cos(x)^3⇤%exp^(-x), x) =integrate(cos(x)^3⇤%exp^(-x), x);ratsimp(%);
Rubén Sánchez Gómez Herramientas de Software Matemático
Referencia rápida de Maxima
El paso inicial para resolver una expresión es teclearla
directamente y presionar en forma simultánea las teclas
Shift + Enter .
Para ayuda, basta con teclear ? tema o bien conel mouse dar click en 1 para visualizar la ventana de
ayuda y en 2 teclear el “tema” de interés.
Controlando el formato de salida
Maxima sólo muestra los primeros y últimos 30 d́ıgitos
del resultado para números muy grandes. Para obte-
ner todos los d́ıgitos se debe modificar el formato de
salida; en el menú superior seleccionar Maxima +
Cambiar pantalla 2D y elegir el formato de salida as-
cii.
Operaciones básicas+(�) suma (algebraica)
⇤ producto/ división
^ o ⇤⇤ potenciasqrt(x) ráız cuadrada de x
La salida en formato ascii es la salida por defecto deMaxima y la salida xml es una mejora del wxMaximade modo que, si se trabaja con wxMaxima no se de-
be olvidar regresar al formato xml del Maxima con elmismo procedimiento.
float(x) expresión decimal del va-lor x
numer:true expresión decimal del re-sultado
bfloat(x) expresión decimal largadel valor x
Tomando en cuenta que si se aplica el comando nu-mer:true, se debe aplicar posteriormente numer:falsepara obtener nuevamente el resultado exacto que pro-
porciona Maxima por defecto.
Constantes%pi número ⇡%e número e%i imaginario
%phi razón aurea1 +
p5
2
Maxima da la posibilidad de reutilizar la entrada (%i
n) o salida (%o n) n�ésima tecleándola directamenteen cualquier operación. Para la exponencial, se puede
utilizar la constante%e (ex) o bien exp(x).
Maxima sólo tiene definido el logaritmo natural con la
función log(x). ln(x) no está definido y Maxima lo to-ma como una variable simbólica.
El logaritmos de cualquier base se puede obtener con
log
b
(x) =
log(x)
log(b)
Trigonométricas e hiperbólicassin(x), asin(x) seno, arcoseno de xcos(x), acos(x) coseno, arcocoseno de
x
tan(x), atan(x) tangente, arcotangentede x
sec(x), csc(x), cot(x) secante, cosecante, co-tangente de x
sinh(x), asinh(x) seno, arcoseno hi-perbólicos de x
cosh(x), acosh(x) coseno, arcocoseno hi-perbólicos de x
tanh(x), atanh(x) tangente, arcotangentehiperbólicos de x
Otras funcionesn! factorial de n
entier(x) parte entera de xabs(x) valor absoluto de x
binomial(m,n) C(m,n) =m!
n!(m� n)!random(n) número aleatorio entre 0 y
n
signum(x) signo de xmax(x1, x2, . . .) máximo de {x1, x2, . . .}min(x1, x2, . . .) mı́nimo de {x1, x2, . . .}
Operadores lógicos y relacionesis(expr) decide si la expr es falsa o
no
assume(expr) supone que expr es ciertaforget(expr) olvida el supuesto.
and conectivo lógico yor conectivo lógico o.= =
notequal 6=x 7 y menor/mayor>=
Álgebra elementalexpand(var) expande productos y po-
tencias de la variable var
expand(var, n,m) expande productos y sólolas potencias entre �m yn
factor(expr) factoriza exprev(expr, var = val) evalúa la expresión expr
asignando el valor val a la
variable var
Expresiones racionalesratexpand(var) expande productos y po-
tencias de una expresión
racional polinomial var
ratsimp(expr) simplifica expresiones ra-cionales
num(frac) presenta el numerador defrac
denom(frac) presenta el denominadorde frac
fullratsimp(expr) simplifica expresiones ra-cionales con más eficiencia
y a un mayor costo comp.
partfrac(frac, var) descompone fraccionesparciales de frac respecto
de la variable var
Expresiones con radicalesradexpand(var) expande radicales de una
expresión var
radcan(expr) simplifica expresiones conradicales
Expresiones con logaritmoslogexpand(var) expande logaritmos de
una expresión var
Trigonométricas e hiperbólicastrigexpand(expr) desarrolla
trigsimp(expr) simplificatrigreduce(expr) simplifica
Listas, vectores y matrices
Para introducir una lista basta con escribir sus ele-
mentos entre corchetes.
list[r] muestra el r�ésimo ele-mento de la lista con nom-
bre list
last(list) muestra el último elemen-to de list
part(list) busca un elemento dandosu posición en list
length(list) muestra la liongitud delist
sort(list) presenta la lista en órdenascendente
reverse(list) invierte la listaflatten(list1, list2,. . .)
unifica las listas
list1, list2, . . .
unique(list) muestra el elemento queaparece sólo una vez en
list
makelist(expr, var,n,m)
hace una lista en donde
cada elemento se obtiene
sustituyendo var desde n
hasta m, en donde expr se
obtiene a partir de la va-
riable var
apply(fun,makelist(exp, var,n,m)
aplica la fun a todos los
elementos de la lista.
en este caso, un vector es una lista de números.
Operaciones con vectoresv1 + v2 suma de vectores
k ⇤ v producto escalar.v1.v2 producto interior de vec-
tores
v1 ⇤ v2 producto término atérmino de vectores
Se puede destacar que el producto ⇤ no tiene nadaque ver con el producto escalar o con el producto inte-
rior. Además, nótese que sqrt(v1.v1) permite calcularla norma de v1.
Las matrices son una simple generalización de vec-
tores o listas, de hecho Maxima reconoce matrices me-
diante
matrix([a11, a12, . . . , a1n], . . . , [am1, am2, . . . , amn])
para obtener
0
BBB@
a11 a12 . . . a1n
a21 a22 . . . a2n.
.
.
.
.
.
.
.
.
.
.
.
a
m1 am2 . . . amn
1
CCCA.
Se tienen además:
addcol( ) teclee ayuda (? addcol)para conocer los valores de
entrada
addrow( ) teclee ayuda (? addcol)para conocer los valores de
entrada
col(M,n) muestra la n�ésima co-lumna de M
row(M,n) muestra el n�ésimorenglón de M
submatrix(i,M, j) genera una submatriz eli-minando la fila i y la co-
lumna j
submatrix(ip
, . . . , i
r
,
matriz, j
q
, . . . , j
s
)genera una submatriz eli-
minando las filas i
p
, . . . , i
r
y las columnas j
q
, . . . , i
s
Operaciones con matricesM1 +M2 suma de matrices
k ⇤M producto escalar.M1.M2 producto de matrices
M
^^r Eleva M a la potencia r
M1 ⇤M2 es un producto elemento aelemento
M1/M2 divide matrices elemento a
elemento
M
^r Eleva cada elemento de M
a la potencia r
Se tiene además:
adjoint(M) matriz adjunta de Mtranspose(M) matriz transpuesta de Minvert(M) matriz inversa de Mrank(M) rango de Mdeterminant(M) determinante de de Mmattrace(M) traza de la matriz M
minor(M, i, j) menor correspondiente ala entrada i, j de la matriz
M
eigenvalues(M)eivals(M)
genera los eigenvalores de
M
eigenvectors(M)eivects(M)
genera los eigenvectores de
M
diagmatrix(n, x) genera una matriz diago-nal de tamaño n con x en
cada elemento diagonal
ident(n) genera una matriz identi-dad de tamaño n
zeromatrix(n,m) genera una matriz nula detamaño n⇥m
Sistemas de ecuaciones linealesalgsys([expr1,. . . ,exprm],[x1,. . . ,xn]);
sistemas expresiones si-
multáneas
linsolve([expr1,. . . ,exprm],[x1,. . . ,xn])
sistema de ecuaciones li-
neales
solve([expr1,. . . ,exprm],[x1,. . . ,xn])
sistema de ecuaciones
augcoefmatrix( ) matriz aumentada del sis-tema de coeficientes
Funciones2f(x1,. . . ):=[expr1,. . . ];
define f(x1,. . . )
define(f,[expr1, . . . ]) define f(x1, . . . )fundef(f) muestra la defini-
ción de f
functions presenta la lista defunciones
remfunction(f1, . . . ) borra f1,. . .
Graficas 2Dwxplot2d(f(x), [x,a,b]); Grafica de
una función
plot2d(f(x), [x,a,b]);
wxplot2d([f1(x),. . . ],[x,a,b]); Grafica de nfunciones
plot2d([f1(x),. . . ], [x,a,b]);
Graficas 3Dwxplot3d(f(x,y),[x,a,b],[y,c,d]); Grafica de
una función
plot2d(f(x,y),[x,a,b],[y,c,d]);
wxplot3d([f1(x,y),. . . ],[x,a,b],[y,c,d]);
Grafica de n
funciones
plot3d([f1(x,y),. . . ],[x,a,b],[y,c,d]);
con opciones para gráfica polares, funciones paramétri-
cas, de variable discreta, entre otras.
Gráficos con draw
Primero, cargarlo con load(draw);
Opciones:color color de la gráficaline width ancho de la ĺınea.nticks partición (tamaño
de paso)
xlabel, ylabel etiquetas de los ejesxrange, yrange rango de los ejes
expresión a graficar:explicit(expr,var,a,b) relación expĺıcita,
avarbparametric(expr,param,a,b)
relación paramétri-
ca, aparambimplicit(expr,var1,a,b,var2,c,d)
relación impĺıci-
ta, avar1b,cvar2d.
Cálculo
Ĺımiteslimits(expr, x, val, dir)limits(expr, x, val)limits(expr)
calcula el ĺımite de expr para la variable x superiordir=plus o inferior dir=minus.
Diferenciacióndi↵(expr, x1,n1, . . . , xm,nm)di↵(expr, x,n)di↵(expr, x)di↵(expr)
muestra la (n, n
i
)�ésima derivada de la expr, con res-pecto a la(s) variable(s) (x, x
i
).
Integraciónintegrate(expr, x, a, b) integral definida
para a