Folleto Del Matlab
Folleto Del Matlab
Folleto Del Matlab
1
Índice
Tema Pág.
Introducción 3
Grupo de comandos generales 4
Comando ver 4
Comandos help y clc 5
Comando ans 6
Comando % 7
Comandos ; y , (Punto y coma y coma) 7
Comando format 7
Operaciones aritméticas 8
Comandos xlsread/xlswrite (Importar/exporter datos de Excel) 8
Algebra Lineal 10
Creación de vectores 10
Comando length 11
Creación de matrices 11
Comando size 11
Operaciones con matrices 11
Comando ' (transpuesta de matrices) 12
Solución de Sistemas de ecuaciones lineales (SEL) 12
Comando rank 12
Comando \ (SEL determinado) 13
Comando rref (SEL determinado) 14
Comando solve (SEL indeterminado) 14
Comando det (Determinante) 15
Funciones matemáticas 15
Funciones de una variable 15
Comando syms 15
Comando subs 15
Comandos para graficar funciones 16
Comando ezplot 16
Comando grid 16
Comandos hold on/hold off 17
Comando solve 18
Comando double 18
Comando diff (derivar) 19
Comando int (integrar) 19
Funciones de varias variables 21
Comandos syms y subs 21
Comandos diff y hessian 22
2
Introducción
MATLAB realiza cálculos numéricos con vectores y matrices. Como caso particular puede trabajar con
números escalares −tanto reales como complejos−, que son matrices de dimensión 1. También con
cadenas de caracteres y con otras estructuras de información más complejas.
Una vez instalado el MATLAB y presionado el icono del MATLAB aparecerá la ventana del MATLAB
en el desktop.
La ventana del MATLAB está subdividida en tres subventanas que se describen a continuación.
1. Ventana de comandos (Command Window), donde se ejecutan los comandos del MATLAB. En dicha
ventana el símbolo >> indica que puede introducir comandos del MATLAB.
2. Ventana de Directorio de trabajo (Current directory o Current Folder), el cual contiene todos los
archivos que se encuentran en el directorio en el cual se está trabajando. En la parte superior de la ventana
del MATLAB puede visualizar el directorio en el cual se encuentra y puede cambiarlo. Al iniciar una
sesión de MATLAB el que presenta por defecto es el directorio work del MATLAB.
3. Ventana de historia de los comandos (Command History o Workspace) que muestra los comandos
dados en la sesión actual y en sesiones anteriores pudiendo mostrar las fechas de esas sesiones.
La Figura 1 muestra una ventana del MATLAB. Sus posiciones pueden variarse, y también depende de
la versión del MATLAB.
3
Figura 1: Ventana del MATLAB
En este contexto nos concentramos en la Ventana de comandos (Command Window), donde se ejecutan
los comandos del MATLAB, y que en la Figura 1 aparece en el centro.
Por ejemplo, al resolver la siguiente ecuación con el MATLAB x3-x2+4x-4 = 0 (luego se verá cómo se
resuelve) la respuesta que da son 3 valores, pues una ecuación de tercer grado tiene 3 raíces.
1.0000 + 0.0000i
0.0000 - 2.0000i
0.0000 + 2.0000i
Observar que la única solución real es el valor 1 (pues el valor que acompaña a i es cero, no se tiene en
cuenta) los otros dos valores que son números complejos no se consideran.
Grupo de comandos generales no específicos con una temática en particular, muy importantes para
quienes se inician en el MATLAB:
Comando ver:
Es importante para que se conozca qué versión del MATLAB tiene instalado, cuáles toolboxs del
MATLAb tiene instalado en su computadora (de ellos depende comandos que puede usar o no) y la
versión que tiene de cada toolbox.
4
En este contexto son importantes los toolboxs de Matemática Simbólica y de Optimización.
En la Figura 2 aparece el resultado del comando ver, según lo instalado en una computadora.
Ejemplo 1:
>> help clc
clc - Clear Command Window
This MATLAB function clears all input and output from the Command Window display, giving you a
clean screen.
La Figura 3 en la parte superior muestra la ventana de los comandos del MATLAB con lo trabajado hasta
el momento.
Si donde aparece >> al final de la pantalla se coloca clc, aparecerá la pantalla “borrada” que se muestra
en la parte inferior de la Figura 3.
5
Figura 3: Uso del comando clc para limpiar ventana de trabajo
Cuando usa la función help el comando que pretende buscar información de él sí puede ponerlo en
mayúscula, pero no usarlo en mayúscula. Respecto al Ejemplo 1 usando así el MATLAB:
>> help CLC
clc - Clear Command Window
This MATLAB function clears all input and output from the Command Window display, giving you a
clean screen.
>> CLC
Undefined function or variable 'CLC'.
Did you mean:
>> clc
Comando ans:
La palabra ans (de answer, respuesta) es un nombre de variable del MATLAB por defecto para colocar
el resultado de la última operación realizada que no ha sido asignada a ninguna otra variable.
Ejemplo 2:
>> >> a=10;
>> b=5;
>> 3*a+b
ans = 35
>> c=3*a+b
c = 35
6
Observar que se asignaron los valores 10 y 5 a las variables a y b, respectivamente. Como la operación
3*a+b no se asignó a ninguna variable, la respuesta la colocó en la variable ans. Observar que después
esa misma operación se asignó a la variable c.
El uso de %
El carácter tanto por ciento (%) indica comienzo de comentario.
Cuando aparece en una línea de comandos, el programa supone que todo lo que va desde ese carácter
hasta el fin de la línea es un comentario.
Ejemplo 3
>> a=5;
>> b=4;
>> c=(a*b)/2 % En c se coloca el área de un triángulo rectángulo con base a y altura b
c= 10
Pues lo que aparece luego del signo % en esa misma línea (O sea, En c se coloca el área de un triángulo
rectángulo con base a y altura b ) el MATLAB no lo procesa, es un comentario útil para el que va a leer
y entender qué representa esa operación.
La terminación en una línea de comandos con el carácter punto y coma (;) indica que no se visualice en
pantalla el vector o matriz generada, o el resultado calculado. La coma permite separar dos comandos en
una misma línea.
Ejemplo 4
En el Ejemplo 3, si se coloca
>> c=(a*b)/2;
No se visualiza el resultado obtenido en c. O sea, se calcula, pero no se puede ver cúal es.
Siguiendo el mismo ejemplo, es equivalente poner
>> a=5;
>> b=4;
A colocar ambos comandos en la misma línea separados por coma, o sea,
>> a=5;, b=4;
Comando format:
Esta función o comando del MATLAB cambia el formato de visualización de salida en la ventana de
comandos al formato especificado. Las opciones más usadas son:
format: Visualiza los números con 4 cifras decimales, en el caso que no sea enteros
format long: Visualiza los números con 15 cifras decimales, en el caso que no sea enteros
format rat: Visualiza el número (si no es entero) como el cociente de 2 números enteros
7
Ejemplo 5
>> a=1/3; % Se coloca en a al número fraccionario 1/3
>> a
a = 0.3333 % Por defecto el formato que se tiene es format
>> format long % Se pasa al formato con 15 cifras decimales
>> a
a = 0.333333333333333
Una observación importante: Son dos cosas distintas la cantidad de decimales conque opera los números
y otra el formato de visualización. Para realizar operaciones con números no enteros, usa una cantidad
considerable de cifras decimales, independiente del formato de visualización de resultados obtenidos.
Cómo importar al MATLAB tablas de datos en Excel o exportar al Excel matrices creadas en
MATLAB
En muchas ocasiones se puede tener almacenado en una hoja de Excel una información que utilizará en
MATLAB como una matriz que es de gran tamaño como para introducirla de manera manual.
Similarmente, puede obtener una matriz en MATLAB por determinadas operaciones realizadas, y la
quiere guardar en una hoja de Excel.
Para ello se usan los comandos xlsread (importar al MATLAB) y xlswrite (exportar al Excel)
Hay que tener en cuenta que para invocar con el MATLAB tablas de Excel las mismas deben estar en la
misma carpeta donde está usando el MATLAB.
A=xlsread('ejemplo.xlsx',p)
Esta función de MATLAB lee la hoja de trabajo especificada p (cuando no es la primera) en el libro de
hojas de cálculo de Microsoft Excel llamado ejemplo y devuelve los datos numéricos en la matriz A.
respuesta=xlswrite(filename,A)
Esta función MATLAB escribe la matriz A en la primera hoja de trabajo con el nombre del archivo
respuesta de la hoja de cálculo de Microsoft Excel que comienza en la celda A1.
respuesta=xlswrite(filename,A, p)
Esta función MATLAB escribe la matriz A en la hoja de trabajo especificada p con el nombre del archivo
respuesta, de la hoja de cálculo de Microsoft Excel que comienza en la celda A1.
Ejemplo 6
En la Figura 4 aparece la búsqueda de la tabla de Excel llamada ejproductomatrices que tiene como se
puede observar al lado información en las primeras 30 filas y 5 columnas. Notar que aparece en la carpeta
C:\gulnara\2019-2\maestriafinanzas\cali, que es la misma carpeta donde se está trabajando con el
MATLAB y que aparece declarada encima de la ventana de trabajo (Command Window) en la Figura 1
Si se usa el comando size para saber el orden de una matriz (dos números, primero número de filas y
luego número de columnas), se comprueba que tiene exactamente 30 filas y 5 columnas, según aparece
en la tabla de Excel
>> t=size(A)
t = 30 5
Algebra Lineal
Ejemplo 7
Se crea el vector de longitud 4, v = [2 5 4 7]
10
>> v = [2 5 4 7]
v= 2 5 4 7
Comando length
La longitud de un vector v se determina con el comando length(v)
Para el Ejemplo 7:
>> length(v)
ans = 4
Creación de matrices
Igual que en el caso de los vectores, no hace falta declararlas o establecer de antemano su tamaño, el cual
puede modificarse dinámicamente.
Las matrices se definen o introducen por filas; los elementos de una misma fila están separados por
blancos o comas, mientras que las filas están separadas por caracteres punto y coma.
Ejemplo 8
Se crea una matriz de orden 3x3
>> A=[1 -2 3;0 7 -4;8 -1 9]
A =1 -2 3
0 7 -4
8 -1 9
Ejemplo 9
>> a=[2 3 -1 4;5 7 2 0;-1 8 6 10];
>> t=size(a)
t=3 4
Ejemplo 10
>> a=[1 -1 3;2 1 0;-2 4 5],b=[-3 1 2;4 5 -1;6 0 -2]
a = 1 -1 3 b = -3 1 2
2 1 0 4 5 -1
-2 4 5 6 0 -2
>> c=2*a+b % Dos operaciones juntas: Multiplicar una matriz por un número y su resultado sumado
con otra matriz de igual tamaño
c=
-1 -1 8
8 7 -1
2 8 8
11
>> c=a*b
c = 11 -4 -3
-2 7 3
52 18 -18
Observar en el Ejemplo 11 cómo si las matrices no tienen los tamaños adecuados para realizar las
operaciones solicitadas, se envía un mensaje de error.
Ejemplo 11
>> b=[-3 1 2;4 5 -1;6 0 -2; 1 -1 4]
b=
-3 1 2
4 5 -1
6 0 -2
1 -1 4
>> a+b
Error using +
Matrix dimensions must agree.
Transpuesta de matrices
En ocasiones es necesario trabajar con la matriz traspuesta de una dada, que puede ser obtenida, por
ejemplo, de una tabla de Excel. Trasponer significa intercambiar sus filas con columnas. Para eso se
utiliza el “apóstrofe” luego de la variable donde está la matriz.
Ejemplo 12
Suponga que tiene la matriz introducida de la siguiente manera
>> a=[3 5 2;4 1 6]
a=
3 5 2
4 1 6
Como se observa a es una matriz de orden 2x3, pero se necesita su matriz traspuesta 3x2. En lugar de
volverla a introducir basta obtenerla de la siguiente manera:
>> at=a'
at =
3 4
5 1
2 6
Es útil por ejemplo, para clasificar el SEL y saber si tiene solución única o infinitas soluciones, para lo
cual se calculan el rango de la matriz y matriz ampliada del sistema con dicho comando.
12
Ejemplo 13
El dueño de un bar compró gaseosas, cerveza y vino por un total de $500, sin considerar impuestos. El
valor del vino fue de $60 menos que el total de lo invertido en gaseosa y cerveza. Se conoce que las
gaseosas, cerveza y vino pagan un impuesto de 6%, 12% y 30% respectivamente. Si la factura total con
impuesto fue de $592.40 calcule la cantidad invertida en cada tipo de bebida.
Modelo matemático:
Variables:
x,y,z: $ invertidos en gaseosas, cerveza y vino, respectivamente.
Reorganizando el sistema:
x + y+ z = 500 Dinero invertido sin impuesto
x+y – z =60 Vino $60 menos que otras bebidas
1.06x+1.12y+1.3z=592.4 Factura total con impuesto
Como el rango de la matriz del sistema es igual al de la ampliada tiene soluciones, y como coincide con
el número de variables sabemos que el sistema tiene solución única.
Ejemplo 14
Resolviendo el Ejemplo 13:
>> X=a\b
X=
120.0000
160.0000
220.0000
De la respuesta, tenemos que x=120, y=160, z=220, o sea, invirtió (sin considerar impuestos) $120 en
gaseosas, $160 en vino y $220 en cerveza.
13
b. Comando rref
Otra forma de resolver el sistema es usando el comando rref a la matriz ampliada. Con ello ya da
despejado los valores de x,y,z, pues se obtiene la matríz idéntica con la última columna el valor de las
soluciones, donde cada columna corresponde a una variables con exactamente un valor 1 y el resto cero.
Siguiendo el mismo Ejemplo 13:
>> rref(ab)
ans =
1 0 0 120
0 1 0 160
0 0 1 220
Cuando hay infinitas soluciones, el comando X=a\b, le da una sola de las infinitas, no siendo quizás la
que uno desearía escoger.
Ejemplo 15
Resolver el SEL
x – y +3z=4
2x – y –z=6
3x – 2y +2z=10
Primero comprobamos que es un sistema indeterminado calculando los rangos de la matriz del sistema y
el de la ampliada.
>> a=[1 -1 3;2 -1 -1;3 -2 2];, b=[4;6;10];
>> ab=[a b];
>> rank(a)
ans = 2
>> rank(ab)
ans = 2
Como el rango de la matriz del sistema es igual al de la ampliada el sistema tiene soluciones. Pero al ser
el rango 2 y el número de variables 3, sabemos que el sistema tiene infinitas soluciones con una variable
libre (n-r(a)=3-2=1).
14
Observar en la solución general que los valores de x,y dependen del valor que se le dé a la variable libre
z.
Ejemplo 16
>>A=[2 1 -1;3 1 0;1 4 2];
>> d=det(A)
d = -13
Ejemplo 17
Plantee en MATLAB la función p(x)=10-2x que expresa el precio (p) de un producto, en función de
la demanda (x).
Comando subs:
15
Es útil para evaluar una función para valores de las variables de la que depende (válido para funciones
de una o varias variables).
Ejemplo 18
Usando la función del Ejemplo 17 (p(x)=10-2x) evaluar precio si la demanda es de 3.
Se debe obtener p(3)
Comando grid
Se combina con el comando ezplot para hacer un “enrejado” del área del gráfico con líneas horizontales
y verticales que permitan distinguir mejor coordenadas de puntos de la curva
Ejemplo 19
Graficar la función f(x)=x3-x2-2x en el intervalo [-2,3]
>> syms x
>> f=x^3-x^2-2*x;
>> ezplot(f,-2,3) % Puede demorar algunos segundos en desplegar el gráfico (Figura 5)
>> grid
16
Figura 5: Gráfico de una función sin enrejado (izquierda) y con enrejado (derecha)
Comando hold on
Este comando es adecuado cunado se quiere ver el resultado del gráfico de más de una función en el
mismo gráfico. Es útil por ejemplo, para visualizar el punto de equilibrio (ocurre en un precio cuando
la cantidad demandada es igual a la cantidad ofrecida) teniendo en cuenta las funciones de oferta y de
demanda.
Basta colocar hold on luego de haber graficado la primera función, una única vez, sea que grafique dos
o más funciones y quiere visualizarlas en el mismo gráfico.
Para seguir trabajando haciendo gráficos de funciones una función en cada gráfico coloca el comando
hold off
Ejemplo 20
Determine de manera gráfica la cantidad de equilibrio de las leyes de la oferta y la demanda siguientes:
pd= 25-2x
po=3x+ 5
17
Figura 6: Gráfico de dos funciones
En la Figura 6 en rojo aparece graficada la función oferta y en azul la función demanda. En la parte de
arriba aparece la primera función dibujada, que hay opciones en la pantalla del gráfico para cambiarlo,
borrarlo, etc. De manera gráfica se vé que la cantidad de equilibrio es cuando x= 4. El precio de equilibrio
gráficamente se observa está entre 15 y 20, y sustituyendo x=4 en cualquiera de las ecuaciones se puede
verificar que es exactamente 17.
Comando plot
Se utiliza para representar una función no de manera simbólica, sino explicitando un conjunto de puntos
(x,y) de la función que se van uniendo entre ellos. Se recomienda para su mejor visualización que dos
puntos x consecutivos estén muy cerca entre sí.
Sintaxis:
x=vi:p:vf; donde vi es el valor inicial del intervalo del dominio de la función donde se quiere graficar la
misma, p es la “distancia” entre dos puntos consecutivos, vf el valor final de la variable donde se quiere
graficar.
Ejemplo:
Graficar y=x2, en el intervalo [-1,1]
Lo ejemplificamos con el gráfico de las retenciones según salario (expresados ambos en número de UVT)
y que aparece en la Tabla 1:
Comando solve:
Uno de sus usos es resolver ecuaciones, en particular si se coloca solve(f), obtiene los valores de la
variable donde f(x)=0, que gráficamente sería los puntos de la curva que representa a f que cortan al eje
x.
Ejemplo 21
Determinar los puntos donde la curva de la función del Ejemplo 19 (f(x)=x3-x2-2x) corta al eje x.
Lo que hay que obtener son los valores de x tal que f(x)=x3-x2-2x = 0
>> syms x
>> f=x^3-x^2-2*x;
>> sol=solve(f)
sol =
-1
19
0
2
Observar que la ecuación es de tercer grado, luego tiene 3 raíces, que en este caso son -1, 0 y 2.
Puede comprobar en el gráfico de la Figura 4 cómo la curva corta al eje x justo en estos puntos.
Comando double:
Muchos comandos del MATLAB devuelven constantes de manera simbólica, de forma que no es fácil
identificar el número real que representa. En esos casos se coloca el comando double y entre paréntesis
el comando que quiere utilizar.
Por ejemplo, usemos el comando solve para resolver una ecuación donde las raíces (soluciones) no son
números enteros.
Ejemplo 22
Resolver la ecuación
>> f=2*x^3-x^2-2*x;
>> sol=solve(f)
sol = 0
1/4 - 17^(1/2)/4
17^(1/2)/4 + 1/4
Observar que dos de las raíces no es fácil identificar qué números reales son, pues viene en función de
operaciones aritméticas, incluidas raíces cuadradas de números.
Comando diff
Al utilizar la sintaxis diff(f), se devuelve la función derivada de la función f, previamente definida.
Ejemplo 23
Dada la función f(x) = 2x3-x2-2x, calcular f ’(x)
>> f=2*x^3-x^2-2*x;
>> df=diff(f)
df = 6*x^2 - 2*x - 2
Comando int
Permite calcular integrales definidas e indefinidas, dependiendo de la sintaxis
F=int(f)
20
Coloca en F la función integral de f, previamente definida
S=int(f,a,b)
Coloca en S un número, el valor de la integral definida de f en el intervalo [a,b]
Ejemplo 24
Calcular
a. 𝐹 = ∫(3𝑥 3 − 𝑥 2 + 𝑥 − 1)𝑑𝑥
3
𝑏. 𝑆 = ∫ (3𝑥 3 − 𝑥 2 + 𝑥 − 1)𝑑𝑥
1
>> f=3*x^3-x^2+x-1;
>> F=int(f)
F = (3*x^4)/4 - x^3/3 + x^2/2 - x
>> S=int(f,1,3)
S=
160/3
>> S=double(int(f,1,3))
S=
53.3333
Ejemplo 25
(Función de costo) Una empresa elabora dos productos, A y B. El costo de los materiales y de la mano
de obra es de $4 por cada unidad del producto A y de $7 por cada unidad de B. Los costos fijos son de
$1500 por semana. Exprese el costo semanal C en términos de las unidades de A y B producidas cada
semana.
Si se denotan x,y como las unidades del producto A y y unidades del producto B que se elaboran cada
semana, respectivamente, entonces los costos de mano de obra y materiales para los dos tipos de
productos son 4x y 7y dólares, respectivamente. Así que el costo C (en dólares) está dado por
C(x,y)= Costos de mano de obra y materiales +Costos fijos = 4x + 7y + 1500.
Expresado en MATLB:
>> syms x y
>> C= 4*x+7*y+1500
Comando subs
En este caso como la función depende de varias variables, hay que especificar el conjunto de variables
independientes que se evalúan, seguido del conjunto de valores que se le debe dar a cada una, en igual
orden.
Sintaxis: subs(f,{var1,var2,…,varp},{valor1,valor2,…,valorp})
Ejemplo 26
Sea la función del Ejemplo 25 y se quiere saber cuál es el costo incurrido cuando x=5 y y=8
21
>> V=subs(C,{x,y},{5,8})
V = 1576
Comando diff
En este caso como la función depende de varias variables, hay que especificar respecto a qué variable se
quiere derivar, dando lugar a la derivada parcial correspondiente.
Sintaxis:
diff(f,x): Da la función f/x
diff(f,2,x): Da la función 2f/x2 (Segunda derivada parcial de f respecto a x)
Ejemplo 27
La función de costos conjuntos de una compañía que elabora dos tipos de productos x, y está dada
por C(x,y)= 0.1x2+0.5y2+4xy+2000
Encuentre usando el MATLAB los costos marginales cuando se producen 500 unidades del producto x
y 100 del producto y.
>> syms x y
>> C=0.1*x^2+0.5*y^2+4*x*y+2000;
>> Cx=diff(C,x) % En Cx aparece la función derivada parcial C/x
Cx = x/5 + 4*y
Comando hessian
Calcula la matriz hessiana de una función de varias variables.
Sintaxis: hessian(f)
Ejemplo 28
Determine usando comandos del MATLAB adecuados si la función f(x,y) = 2x2 +2xy +3y2 es cóncava o
convexa
>> syms x y
>> f=2*x^2+2*x*y+3*y^2;
>> H=hessian(f) % Se calcula la matriz hessiana de f asignándola a H
H=
[ 4, 2]
[ 2, 6]
22
d = 20
Como los elementos de la diagonal principal son positivos (no importa los valores de las variables x,y)
y el determinante del hessiano también siempre es postivo (una constante positiva) entonces la función
es convexa.
Observación:
Note que por ejemplo, según la matriz hessiana, 2f/x2 = 4, 2f/y2 = 6
Comprobemos lo anterior usando el comando diff para calcular esas derivadas parciales de orden 2:
>> d2x=diff(f,2,x)
d2x = 4
>> d2y=diff(f,2,y)
d2y = 6
23