Herramientas computacionales para la
matemática
MATLAB: MuPAD.
Verónica Borja Macías
Junio 2012
1
Matlab
MuPAD
El Symbolic Math Toolbox está basado en el MuPAD
symbolic engine.
El MuPAD engine es un proceso que se ejecuta en la
computadora de manera separada de MATLAB
El MuPAD engine se inicia cuando la función que es
llamada en MATLAB requiere del symbolic engine.
2
Matlab
MuPAD
Para iniciar el MuPAD podemos ir al boton: Start y ahi
seleccionar Toolboxes>Symbolic Math>MuPAD.
3
Matlab
MuPAD
Mediante el comando mupadwelcome desde la linea de
comandos también es posible abrir el MuPAD
4
Matlab
Libreta de MuPAD
5
Matlab
Evaluación de expresiones
Para evaluar las expresiones dentro de la libreta existen
varias opciones.
Teclear enter
Seleccionar alguna de las ociones del menu notebook:
Evaluate
Evaluate from Beginning
Evaluate to End
Evaluate All.
O en la barra de herramientas
6
Matlab
Funciones
Para evitar errores de sintaxis y para
recordar facilmente los comandos MuPAD
puede completar automáticamente los
comandos que se se empezaron a teclear
al oprimir Ctrl+Barra espaciadora.
Y por supuesto se puede acceder a las
funciones mediante la barra de funciones
de la derecha.
7
Matlab
Ayuda
Si deseamos obtener ayuda de sobre
alguna función podemos:
Colocar el cursor sobre la función en el input.
Dar clic con el boton derecho sobre la
función.
Teclear en el input :
info(fnc)
?fnc
8
Matlab
Ayuda
Por último tenemos la ventana gráfica de ayuda en la que
podemos ver el contenido y buscar información.
9
Matlab
Sintaxis
Existen bastantes diferencias entre MATLAB y MuPAD en
cuanto a sintaxis.
10
Matlab
Sintaxis
11
Matlab
Aritmética
[
[
[
[
[
[
[
[
[
[
[
Aritmética con enteros, racionales y
aproximaciones
2 + 2
(1 + (5/2*3))/(1/7 + 7/9)^2
56^(1/2)
float(sqrt(56))
DIGITS:=20: float(sqrt(56))
delete DIGITS
float(sqrt(56))
(1.0 + (5/2*3))/(1/7 + 7/9)^2
1.0/3*exp(1)*sin(2)
float(1.0/3*exp(1)*sin(2))
1.0/3*exp(1.0)*sin(2.0)
12
Matlab
Aritmética
Aritmética con complejos
[
[
[
[
[
[
[
[
[
sqrt(-1), I^2
(1 + 0.2*I)*(1/2 + I)*(0.1 + I/2)^3
1/(sqrt(2) + I)
rectform(1/(sqrt(2) + I))
Re(1/(2^(1/2) + I))
Im(1/(2^(1/2) + I))
conjugate(1/(2^(1/2) + I))
abs(1/(2^(1/2) + I))
arg(1/(2^(1/2) + I))
13
Matlab
Derivadas
Derivadas
[ f := 4*x + 6*x^2 + 4*x^3 + x^4: diff(f, x)
Derivadas parciales
[ f := y^2 + 4*x + 6*x^2 + 4*x^3 + x^4: diff(f, y)
Derivadas de orden superior
[ diff(diff(diff(sin(x), x), x), x)
[ diff(sin(x), x, x, x)
[ diff(sin(x), x $ 3)
Derivadas respecto a varias variables
[ diff(diff((x^2*y^2 + 4*x^2*y + 6*x*y^2), y), x)
[ diff(x^2*y^2 + 4*x^2*y + 6*x*y^2, y, x)
Derivada de una función arbitraria
[ D(y)(t); D(y^2)(t)
[ y'(t); (y^2)'(t)
14
Matlab
Integrales
Integrales indefinidas
[ int((cos(x))^3, x)
Integrales definidas
[ int((cos(x))^3, x = 0..PI/4)
[ int(sin(x)/x, x = -infinity..infinity)
Aproximación numérica
[ int(sin(x^2)^2, x=-1..1)
[ float(int(sin(x^2)^2,(x=-1..1)))
[ numeric::int(sin(x^2)^2, x=-1..1)
15
Matlab
Álgebra vectores y metrices
Vectores y matrices
[ V := matrix([1, 2, 3])
[ A := matrix([[1, 2], [3, 4], [5, 6]]);
[ B := matrix([[1, 2, 3], [4, 5, 6]])
[ C := matrix(3, 2, [[-1, -2], [-4, -5], [-7, -8]]);
[ W := matrix(1, 3, [1, 2, 3])
[ F := matrix(3, 3, [[1, -1, 0], [2, -2]])
[ matrix(2, 2, [[-1, -2], [-4, -5], [-7, -8]])
[ G := matrix(4, 4, [1, 2, 3, 4], Diagonal)
16
Matlab
Álgebra vectores y metrices
Operaciones con matrices
[ A := matrix([[1, 2], [3, 4], [5, 6]]);
[ B := matrix([[1, 2, 3], [4, 5, 6]]);
[ A*B
CUIDADO:Operaciones entre escalares y matrices
[ C := matrix(2, 2, [[-1, -2], [-4, -5]]);
[ C + 10
Determinante, inversa
[ G := matrix([[1, 2, 0], [2, 1, 2], [0, 2, 1]]);
det(G); 1/G
Algebra lieneal
[ linalg::eigenvalues(G);
[ linalg::eigenvalues(F);
[ linalg::eigenvalues(A*B)
17
Matlab
Solución de ecuaciones
[
[
[
[
[
[
[
[
[
[
Con una variable
solve(x^5+3*x^4-23*x^3-51*x^2+94*x+120=0,x)
Con parámetros
solve(a*x^2 + b*x + c = 0, x)
solve(a*x^2 + b*x + c = 0, x) assuming a > 0
Sistemas de ecuaciones
solve([x^2+x*y+y^2 = 1, x^2-y^2 = 0], [x, y])
solve([x^2 + y^2 = a, x^2 - y^2 = b], [x, y])
Ecuaciones diferenciales
o:=ode(x^2*diff(y(x),x,x)+2*x*diff(y(x),x)+x, y(x)):
solve(o)
Inecuaciones
solve(x^4 >= 5, x)
assume(x in R_); solve(x^4 >= 5, x)
solve(x^4 >= 5, x) assuming x > 0
18
Matlab
Manipulación de expresiones
[
[
[
[
[
[
[
Polinomios
expand((x - 1)*(x + 1)*(x^2 + x + 1)*(x^2 + 1)*(x^2 x + 1)*(x^4 - x^2 + 1))
factor(x^12 - 1)
collect((x - a)^4 + a*x^3 + b^2*x + b*x + 10*a^4 + (b
+ a*x)^2, x)
Descomposición en fracciones parciales
partfrac((7*x^2 + 7*x + 6)/(x^3 + 2*x^2 + 2*x + 1))
Simplificaciones
simplify((x - 1)*(x + 1)*(x^2 + x + 1)*(x^2 + 1)*(x^2
- x + 1)*(x^4 - x^2 + 1))
Simplify((x - 1)*(x + 1)*(x^2 + x + 1)*(x^2 + 1)*(x^2
- x + 1)*(x^4 - x^2 + 1))
f := a* x *(a + 1) + b* y *(y + b* x* y):
simplify(f); Simplify(f)
19
Matlab
Manipulación de expresiones
[
[
[
[
[
Expresiones trigonométricas
expand(sin(5*x))
factor(cos(x)^4 + 4*cos(x)^3*sin(x) +
6*cos(x)^2*sin(x)^2 + 4*cos(x)*sin(x)^3 + sin(x)^4)
simplify(cos(x)^2 + sin(x)^2)
simplify(cos(x)^4 + sin(x)^4 + sin(x)*cos(x))
Simplify(cos(x)^4 + sin(x)^4 + sin(x)*cos(x))
Simplificación de partes específicas de la expresión
[ simplify(ln(x)+ln(3)-ln(3*x)+(exp(x)-1)/(exp(x/2)+1))
[ simplify(ln(x)+ln(3)-ln(3*x)+(exp(x)-1)/(exp(x/2)+1),
ln)
20
Matlab
Restricciones
[
[
[
[
Las variables
solve(x^(5/2)
solve(x^(5/2)
solve(x^4 - 1
solve(x^4 - a
por default son complejas
= 1, x)
= 1, x) assuming x in R_
= 0, x) assuming x>0
= 0, x) assuming a = 16 and x in R_
Restricciones sobre integrales
[ int(1/abs(x^2 - 1), x)
[ int(1/abs(x^2 - 1), x) assuming x > 1
Simplificacionde expresiones con restricciones
[ simplify(sqrt(x^2+2*x+1)+sqrt(x^2-2*x+1)+sqrt(x^2+
4*x+4)+sqrt(x^2-4*x+4))
[ simplify(sqrt(x^2+2*x+1)+sqrt(x^2-2*x+1)+sqrt(x^2+
4*x+4)+sqrt(x^2-4*x+4)) assuming x > 2
21
Matlab
Gráficas
[
[
[
[
[
[
[
[
[
[
Gráficas 2D
plot(sin(x)*cos(3*x))
Gráficas 3D
plot(sin(x)*sin(y), #3D)
Graficar varias funciones a la vez
plot(sin(x), cos(x), tan(x), cot(x))
plot(sin(k*x) $ k = 1..3)
plot(-sqrt(r^2 - x^2 - y^2) $ r = 1..5, #3D)
Especificar rangos
plot(sin(x^3)*exp(x), x = 3..5)
plot(sin(x)*sin(y), x = 0..3, y = 1..3, #3D)
plot(sin(k*x) $ k = 1..5, x = 0..2*PI)
plot({sin(k*x), k*t^2} $k=1..5, x=0..2*PI, t=-1..1)
Graficar por partes
plot(piecewise([x < - 2, - 1], [-1 < x and x < 0,
x^2], [0 < x and x < 1, -x^2], [x > 1, 1]))
22