Herramientas computacionales para la
matemtica
MATLAB: MuPAD.
Vernica Borja Macas
Junio 2012
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 funcin que es
llamada en MATLAB requiere del symbolic engine.
Matlab
MuPAD
Para iniciar el MuPAD podemos ir al boton: Start y ahi
seleccionar Toolboxes>Symbolic Math>MuPAD.
Matlab
MuPAD
Mediante el comando mupadwelcome desde la linea de
comandos tambin es posible abrir el MuPAD
Matlab
Libreta de MuPAD
Matlab
Evaluacin 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
Matlab
Funciones
Para evitar errores de sintaxis y para
recordar facilmente los comandos MuPAD
puede completar automticamente 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.
Matlab
Ayuda
Si deseamos obtener ayuda de sobre
alguna funcin podemos:
Colocar el cursor sobre la funcin en el input.
Dar clic con el boton derecho sobre la
funcin.
Teclear en el input :
info(fnc)
?fnc
8
Matlab
Ayuda
Por ltimo tenemos la ventana grfica de ayuda en la que
podemos ver el contenido y buscar informacin.
Matlab
Sintaxis
Existen bastantes diferencias entre MATLAB y MuPAD en
cuanto a sintaxis.
10
Matlab
Sintaxis
11
Matlab
Aritmtica
[
[
[
[
[
[
[
[
[
[
[
Aritmtica 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
Aritmtica
Aritmtica 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 funcin 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)
Aproximacin numrica
[ 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
Solucin de ecuaciones
[
[
[
[
[
[
[
[
[
[
Con una variable
solve(x^5+3*x^4-23*x^3-51*x^2+94*x+120=0,x)
Con parmetros
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
Manipulacin 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)
Descomposicin 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
Manipulacin de expresiones
[
[
[
[
[
Expresiones trigonomtricas
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))
Simplificacin de partes especficas de la expresin
[ 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
Grficas
[
[
[
[
[
[
[
[
[
[
Grficas 2D
plot(sin(x)*cos(3*x))
Grficas 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