Академический Документы
Профессиональный Документы
Культура Документы
UNIVERSIDAD SIMON BOLIVAR
UNIDAD DE LABORATORIOS
LABORATORIO A
Sección Mecánica Computacional
Contenido:
1. ¿Qué es MATLAB?
1.1 El escritorio de MATLAB
1.2 ¿Cómo comenzar en MATLAB?
2. Sintaxis general del programa.
2.1 Variables
2.2 Operadores aritméticos
2.3 Variables lógicas
2.4 Operadores relacionales
2.5 Operadores lógicos
3. Sintaxis de vectores y matrices.
3.1 Vectores
3.2 Algunos comandos útiles para el uso de vectores
3.3 Matrices
3.4 Algunos comandos útiles para el uso de matrices
3.5 Uso del operador “:”
3.6 Algunos errores al utilizar vectores y matrices
4. Comandos importantes en MATLAB
4.1 Instrucciones condicionales
4.2 Instrucciones de lazo o repetición
4.2.1 Comando for
4.2.2 Comando while
4.3 Gráficas en 2D
4.4 Polinomios en MATLAB
5. Lista de algunos comandos
6. Ejercicios.
1. ¿Qué es MATLAB?
MATLAB es un lenguaje de alto nivel de idioma e interactivo que le permite realizar tareas de
cálculo más rápidamente que con lenguajes de programación tradicionales, tales como C++ y
Fortran.
Lenguaje de alto nivel son aquellos lenguajes semejantes al lenguaje natural, donde cada
instrucción es una o más instrucciones en lenguaje ensamblador o de máquina.
El elemento básico de MATLAB es un arreglo que no requiere ser dimensionado. Esto permite
resolver muchos problemas técnicos de cómputo, especialmente aquellos que involucran matrices
o vectores, en una fracción del tiempo que tomaría escribir un programa en un lenguaje escalar no
interactivo como C o Fortran.
1.1 El escritorio de MATLAB
• Command Window: se utiliza para ingresar modo de historial. Se pueden seleccionar,
variables y usar funciones. Es allí donde se copiar y usar funciones previamente
escriben los programas. ingresadas.
• Command History: en esta ventana se • El Workspace contiene información sobre
almacenan todas las líneas escritas en la todas las variables que se hallan definido en
ventana de comandos (Command Window) a esta sesión.
1.2 ¿Cómo comenzar en MATLAB?
Para comenzar a escribir un código en MATLAB, se debe abrir un
archivo script, esto ayudará a trabajar de una manera más cómoda,
ya que desde el “command window” la persona que esté
programando es posible que se pierda en la secuencia del código,
además desde el archivo script se puede guardar el código en un
archivo .m.
Para abrir un archivo script, basta con presionar el botón “New
Script”, ubicado en la parte superior izquierda de la pantalla:
Es importante notar que en la pantalla principal de MATLAB, en la parte de “current folder” se
encuentre la carpeta en donde se quieren guardar o abrir los archivos .m. Normalmente al instalar
el programa se crea una carpeta llamada MATLAB en la carpeta “Mis documentos”, y por default
el “current folder” se sitúa ahí. Se recomienda no cambiar la carpeta de lugar:
Existen dos tipos de archivos que se pueden hacer en esta sección: una función o un script, la
diferencia es que la función va a tener parámetros de entrada y de salida, mientras que el script,
no.
Para crear una función se escribe la palabra “function” seguida de los parámetros de salida (si es
más de uno se debe colocar entre corchetes “[]”), luego un signo igual “=”, el nombre de la función
y finalmente los parámetros de entrada entre paréntesis “()”.
Se puede estructurar de la siguiente manera:
function [salida]=NOMBRE(entrada)
IMPORTANTE: cuando se vaya a guardar el archivo, se debe guardar bajo el mismo nombre que se
le colocó a la función.
Una manera de mantener el trabajo ordenado y documentado es agregando comentarios al
código, esto se hace utilizando el comando “%”, todo lo que venga después del símbolo será
tomado como un comentario y no como línea de instrucciones.
Ejemplo:
Los puntos y coma “;” utilizados al final de cada instrucción le indican al programa que al ejecutar
la función no debe poner el resultado de la instrucción en el “command window”; de esta manera
lo único que aparecerá en la página principal de MATLAB serán los parámetros de salida.
Para correr la función se puede hacer un llamado desde el “command window” colocando los
parámetros de salida, nombre de la función y parámetros de entrada (Ver figura 1), también se
puede correr desde el Editor, dando click al botón “run” (Ver figura 2). NOTA: antes de correr la
función de cualquiera de las dos formas se debe tener ya definido el parámetro de entrada en el
“workspace”.
Figura 2
Figura 1
2. Sintaxis general del programa
2.1 Variables:
1. Debe empezar por una letra.
2. Las minúsculas son diferentes de las mayúsculas.
3. Puede tener cualquier longitud pero MATLAB sólo toma las primeras 63 posiciones.
4. Puede incluir letras, números, aritméticas, lógicas, caracteres.
2.2 Operadores Aritméticos:
Símbolo Operador
() Paréntesis para agrupar
^ Potencia
* Multiplicación
/ División
+ Suma
‐ Resta
2.3 Variables Lógicas:
1. Son variables que son verdaderas o falsas.
2. Si da un número igual a 0 es falso.
3. Si da un número distinto a 0 es verdadera.
2.4 Operadores Relacionales:
Símbolo Operador
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
== Igual que
~= Distinto que
2.5 Operadores Lógicos:
Símbolo Operador
~ Negación
& and
| or
3. Sintaxis de vectores y matrices
3.1 Vectores:
Para escribir un vector en MATLAB, basta con encerrar los componentes del vector entre
corchetes “[]”, y dejar un espacio “ ” o dejar una coma “,”. Por ejemplo:
V= [V1,V2,V3,…,Vn] ó V= [V1 V2 V3 … Vn]
Para saber alguna componente en particular del vector V, se coloca el número de la
posición de la componente entre paréntesis. Por ejemplo:
V=[10,20,30,40]
V(2)=20
3.2 Algunos comandos útiles para el uso de vectores:
1. Length(V) ‐> Da como respuesta la dimensión del vector V.
2. Sum(V) ‐> Da como resultado la suma de todas las componentes del vector V.
3. Prod(V)‐> Da como resultado el producto de todas las componentes del vector V.
4. Find(condición relacional)‐> Da como resultado las posiciones del vector en donde
se cumple la condición relacional
Ejemplos:
V=[1,2,3,4];
Length(V)=4
Sum(V)=10
Prod(V)=24
Find(V>2)= 3 4
3.3 Matrices:
Para escribir una matriz en MATLAB, es necesario escribir entre corchetes “[]” sus
componentes, pero a diferencia de los vectores debemos colocar un punto y coma “;” para
diferenciar las filas y una coma “,” o espacio “ “ entre cada componente. Por ejemplo:
A= [A11, A12, A13; A21, A22, A23; A31, A32, A33]
A= [1, 2,3;4,5,6;7,8,9]
A =
1 2 3
4 5 6
7 8 9
Para saber alguna componente de la matriz, se coloca entre paréntesis “()” la posición de
la fila y la posición de la columna, separados por una coma “,”. Por ejemplo:
A =
1 2 3
4 5 6
7 8 9 A(2,3)= 6
3.4 Algunos comandos útiles para el uso de matrices:
1. Size(A)‐> Da como resultado el tamaño de la matriz A.
2. A’‐> Da como resultado la matriz traspuesta de A.
3. Inv(A)‐> Da como resultado la matriz inversa de A ( ).
4. Det(A)‐>Da como resultado el valor del determinante de la matriz A.
5. Zeros(m,n)‐> Da como resultado una matriz mxn llena de ceros.
6. Ones(m,n)‐>Da como resultado una matriz mxn llena de unos.
7. Eye(n)‐>Da como resultado un matriz identidad nxn.
8. Diag(A)‐>Da como resultado un vector cuyas componentes corresponden a los
números de la diagonal de A, A debe ser una matriz cuadrada.
9. A/b‐>Siendo A una matriz nxn y b un vector de dimensión n, este comando
resuelve el sistema Ax=b, dando como respuesta el vector solución x.
Ejemplos:
A = diag(A)= 1
1
1 2 3 9
4 1 6
7 1 9 det(A)= 6
size(A)= 3 3
A’= inv(A)= 0.5000 ‐2.5000 1.5000
1.0000 ‐2.0000 1.0000
‐0.5000 2.1667 ‐1.1667
1 4 7
2 1 1
3 6 9
zeros(3,2)= 0 0
0 0
0 0
ones(2,3)= 1 1 1
1 1 1
eye(2)= 1 0
0 1
3.5 Uso del operador dos puntos “:” :
1 Se puede utilizar para crear vectores cuyos componentes sean números
consecutivos, pueden ser consecutivos mediante un factor distinto de 1.
Ejemplo: v=(1:5)‐‐> v=[1,2,3,4,5],
v=(1:2:5)‐‐> v=[1,2,5]
v=(5:‐1:1)‐‐>v=[5,4,3,2,1]
2 Se puede utilizar para tomar porciones de una matriz.
Ejemplo:
A= 1 2 3 A(1:2,2)= 2 A(1,1:3)= 1 2 3
4 1 6 1
7 1 9
3.6 Errores comunes al utilizar vectores y matrices:
1. Intentar ingresar a una posición no válida de un vector o matriz. Por
ejemplo: v(0), v(n+1), A(0,1), A(1,n+1)
2. Intentar ingresar a una posición de un vector o matriz utilizando números
negativos o números reales. Por ejemplo: v(1.2), A(‐1,1)
3. Hacer alguna operación (suma, resta, etc.), con dos vectores o matrices de
distintas dimensiones. Por ejemplo: v=(1:5), u=(1:4), A=[1:2;2:3]
v+u‐‐‐>ERROR
A*v‐‐‐>ERROR
A*v’‐‐‐>CORRECTO
4. Comandos importantes en MATLAB
4.1 Instrucciones condicionales:
Sirven como filtro para ejecutar algún procedimiento, es decir, antes de que se haga una
serie de instrucciones se debe cumplir la condición inicial. El comando utilizado para esta
instrucción es “if” o condición simple.
if (pregunta o condición)
Esto se ejecuta, sí y sólo si la
Instrucciones
condición resulta verdadera.
end
Ejemplo: A=3; B=4;
if (A<B)
C=A+B;
end
Se conoce como condicional doble a la acción de darle una opción adicional de instrucción al
condicional, de manera que si no se cumple la condición, se ejecute otra instrucción. El comando
utilizado es “else”.
Ejemplo: A=1; B=2; C=3;
if (A>B)
D=C+B;
else
D=A+B;
end
Finalmente, se conoce como condicional múltiple a la acción de agregar varias condiciones además
de la inicial, de manera que se consideren el número de casos necesarios. El comando utilizado es
“elseif”.
Ejemplo: A=1; B=2; C=3;
if (A>B)
D=C+B;
elseif (C>B)
D=A+B;
else
D=A*B;
end
4.2 Instrucciones de lazo o repetición
4.2.1 Comando “for”: Consiste en ejecutar una serie de instrucciones las cuales se van
a repetir una cantidad de veces previamente establecidas, la manera de trabajar del
lazo “for” es asignando un contador el cual va ascendiendo con el número de
repeticiones. Una vez alcanzado el número final de iteraciones, termina de ejecutarse.
Ejemplo: sea v=(1:5)
Esta instrucción funciona de
for i=1:5
manera que le suma 1 a cada
v(i)=v(i)+1;
componente del vector. El
end
comando v +1, hubiese hecho lo
v=[2,3,4,5,6]
mismo.
Existen algunos comandos para romper o interrumpir el lazo de instrucciones, tales como: “break”
y “continue”.
o Break: sirve para salirse inmediatamente del lazo en el que está contenido este
comando.
o Continue: Sirve para pasar automáticamente a la siguiente iteración.
Ejemplo:
for i=a:b
Instrucciones I Pasa a la siguiente
if (condición I) iteración automáticamente
continue
end
Instrucciones II
end
for i=a:b
Instrucciones I
for j=c:d
Instrucciones II
if (condición I)
Instrucciones III
elseif (condición II)
break
Se sale de inmediato del
end
Instrucciones IV lazo en el que se encuentra
end
Instrucciones V
end
4.2.2 Comando “while”: Consiste en ejecutar una serie de instrucciones hasta que
dentro de las instrucciones se cumpla una condición de salida definida previamente.
Ejemplo: Sea v=(1:5)
n=lenght(v);
A=1; Instrucciones que sirven para
while (A<n+1) sumarle 1 a cada componente del
v(A)=v(A)+1; vector v. En este caso utilizamos a
A=A+1; “A” como un contador.
end
v=[2,3,4,5,6]
4.3 Gráficas en 2D:
Las gráficas en MATLAB son una de las herramientas más útiles del programa, ya que no
sólo se pueden hacer gráficas 2D, sino también gráficas 3D, polares, tipo pie, tipo barras,
etc. Para este nivel, nos limitaremos a conocer las gráficas en 2D.
El comando que utilizaremos será: “plot”. Este comando tiene varios parámetros de
entrada, pero colocando solamente los primeros dos es suficiente, ya que toma los demás
parámetros como “default”.
plot(x,y,’tipo de línea’,’color de línea’,’tipo de marcador’,grosor de línea,’color de los
bordes de los marcadores’,’color de los marcadores’,tamaño de los marcadores)
x‐> Vector correspondiente al eje de las abscisas.
y‐> Vector correspondiente al eje de las ordenadas, puede ser una función que dependa de “x”.
Tipo de línea‐> Ver tabla 3.
Color de línea‐> Ver tabla 1.
Tipo de marcador‐> Ver tabla 2.
Grosor de línea (antes de colocarlo se debe escribir ‘linewidth’)‐> Corresponde a un número (1=
in), por default se asigna 0.5.
Color de los bordes de los marcadores (antes de colocarlo se debe escribir ‘markeredgecolor’)‐>
Ver tabla 2.
Color de los marcadores (antes de colocarlo se debe escribir ‘markerfacecolor’)‐>Ver tabla 2.
Tamaño de los marcadores (antes de colocarlo se debe escribir ‘markersize’)‐> Corresponde a un
número (1= in), por default se asigna 6
TABLA (1): TIPOS DE COLORES
Abreviación Color
y Amarillo
m Magenta
c Cyan
r Rojo
g Verde
b Azul (default)
w Blanco
k Negro
TABLA (2): TIPOS DE MARCADORES
Símbolo Representación
+ Signo de más
o Círculos
* Asteriscos
. Puntos
x Cruces
s Cuadrados
d Diamantes
^ Triángulo apuntando hacia arriba
v Triángulo apuntando hacia abajo
> Triángulo apuntando hacia la
derecha
< Triángulo apuntando hacia
izquierda
p Pentágono
h Hexágono
none Ninguno (default)
TABLA (3): TIPOS DE LÍNEA
Símbolo Representación
‐ Línea sólida (default)
‐‐ Línea interrumpida de rayas
: Línea interrumpida de puntos
‐. Línea interrumpida de puntos y rayas
none Ninguna línea
Ejemplo:
x=(0:0.01:pi);
y=sin(x);
plot(x,y)
Pero en casos como este, no nos conviene tener números enteros como los que salen en el eje de
las abscisas, para ello también sirven algunos comandos para personalizar lo que se mostrará en
los ejes, en este caso, editaremos el eje “x”
x=(0:0.01:pi);
y=sin(x);
plot(x,y)
set(gca,’Xtick’,0:pi/2:pi)
set(gca,'XTickLabel',{'0','pi/2','pi'})
También existen otros comandos para crear gráficas aún más personalizadas:
xlabel(‘título eje x’)‐>le coloca como título al eje de las abscisas lo que se coloque entre comillas.
ylabel(‘título eje y’) ‐>le coloca como título al eje de las ordenadas lo que se coloque entre
comillas.
title(‘título de la gráfica’) ‐>le coloca como título a la gráfica lo que se coloque entre comillas.
legend(‘curva 1,’curva 2’)‐>le coloca una leyenda a la gráfica indicando cual color de línea
corresponde a cada gráfica, es útil cuando se tiene más de una curva en la misma gráfica.
Existen varias formas de graficar dos curvas (o más), en una misma imagen, una de ellas es en el
mismo comando “plot” y la otra utilizando el comando “hold on”
Ejemplo:
o Caso 1:
x=(0:0.01:pi);
y=sin(x); z=cos(x);
plot(x,y,x,z)
set(gca,'Xtick',0:pi/2:pi)
set(gca,'XTickLabel',{'0','pi/2','pi'})
xlabel('-\pi \leq \Theta \leq \pi')
ylabel(‘f(\theta)’)
title(‘Gráfica Cos(\theta) y sin(\theta)’)
legend(‘sin(\theta)’,’cos(\theta)’)
o Caso 2:
x=(0:0.01:pi);
y=sin(x); z=cos(x);
plot(x,y) Se le cambia el color, ya que al
hold on agregar el “hold on”, nos crea la
plot(x,z,’g’) curva del mismo color de la
set(gca,'Xtick',0:pi/2:pi)
anterior.
set(gca,'XTickLabel',{'0','pi/2','pi'})
xlabel('-\pi \leq \Theta \leq \pi')
ylabel(‘f(\theta)’)
title(‘Gráfica Cos(\theta) y sin(\theta)’)
legend(‘sin(\theta)’,’cos(\theta)’)
hold off
Para una tabla de mediciones:
y=[35.6,40.1,44.8,49.5];
x=[0.32,0.29,0.23,0.19];
plot(x,y,'--
cd','linewidth',1,'markeredgecolor','k','markerfacecolor','b','markersize
',8)
title('Gráfica de T vs \mu')
xlabel('\mu [kg/ms]')
ylabel('T [ºC]')
4.4 Polinomios en MATLAB
En MATLAB, los polinomios se representan mediante vectores, donde cada componente del vector
representa cada coeficiente del polinomio.
Por ejemplo:
P(x)=
Este polinomio es representado por el vector: v=[3,0,1,5]
o Algunos comandos para el uso de Polinomios:
1. poly(A)‐>Si “A” es una matriz nxn, el comando “poly” da como resultado un vector
columna de tamaño n+1, el cual representa el polinomio característico de esa
matriz. Si “A” es un vector de tamaño n, el cual representa las raíces de un
polinomio de orden n, el comando “poly” da como resultado un vector
correspondiente al polinomio cuyas raíces son las del vector “A”.
2. roots(v)‐>Da como resultado las raíces del polinomio representado por el vector v.
3. polyval(v,a)‐>Da como resultado la evaluación del polinomio representado por el
vector v en el punto a.
4. conv(v1,v2)‐>Da como resultado el vector que representa al polinomio que resulta
de la multiplicación entre el polinomio v1 y el polinomio v2.
5. polyder(v)‐>Da como resultado un vector que representa al polinomio que resulta
de derivar el polinomio de entrada, v representa al vector del polinomio de
entrada.
6. polyint(v,c)‐>Da como resultado un vector que representa al polinomio que resulta
de integrar el polinomio de entrada, v representa al vector del polinomio de
entrada y c representa la constante de integración (c=0 por default).
7. polyfit(x,y,g)‐>Siendo ‘x’ y ‘y’ dos vectores de dimensión n, este comando da como
resultado el polinomio que mejor ajusta la data, el parámetro ‘g’ es para saber el
orden del polinomio que ajuste la data.
Ejemplos:
Sea P1(x)= y P2(x)=
Entonces llamamos v1=[1,2,1]; v2=[2,0,6,9];
x=(1:0.5:3.5); y= [1,2.2,4,6.25,9,12.25];
>r=roots(v1)‐‐>r= ‐1
‐1
>poly(r)= 1 2 1
>polyval(v1,9)=100
>conv(v1,v2)= 2 4 8 21 24 9
>polyder(v1)= 2 2
>polyint(v1)= 0.3333 1.0000 1.0000 0
>polyfit(x,y,2)= 1.0036 ‐0.0075 ‐0.0121
5. Lista de algunos comandos
Comando Descripción
Calcula el valor absoluto de ‘x’
abs(x)
Calcula la raíz cuadrada de ‘x’
sqrt(x)
Redondea ‘x’ al entero más cercano
round(x)
Redondea ‘x’ al entero más cercano a ‐∞
floor(x)
Redondea ‘x’ al entero más cercano a ∞
ceil(x)
Da como resultado ‐1 si ‘x’ es menor que 0, 0 si
sign(x)
‘x’ es igual a 0 y 1 si ‘x’ es mayor que 0
Calcula el residuo de la división x/y
mod(x,y)
Calcula el valor de
exp(x)
Calcula el valor del logaritmo natural de ‘x’
log(x)
calcula el valor del logaritmo base 10 de ‘x’
log10(x)
calcula el valor de sen(x), ‘x’ debe estar en
sin(x)
radianes
calcula el valor de cos(x), ‘x’ debe estar en
cos(x)
radianes
calcula el valor de tan(x), ‘x’ debe estar en
tan(x)
radianes
Calcula el valor de arcsen(x) en radianes
asin(x)
Calcula el valor de arccos(x) en radianes
acos(x)
Calcula el valor de arctan(x) en radianes
atan(x)
Remueve todas las variables del workspace
clear
Remueve sólo las variables x,y,z del workspace
clear x,y,z
Remueve todas las variables y funciones del
clear all
workspace
Limpia el command window
clc
Da una lista con todas las variables que se
who
encuentran en el workspace
help tema Provee ayuda en tema
6. Ejercicios
1. Realice una función que invierta el orden de los componentes de un vector de dimensión
n.
2. Realice una función que sirva para calcular la nota de un estudiante de la Universidad
Simón Bolívar, el parámetro de entrada es un número entre 0 y 100 y la salida debe ser un
número entre 1 y 5.
3. Realice una función que calcule el mínimo común múltiplo entre dos números.
4. Realice una función que resuelva ecuaciones de segundo grado, utilizando el método de la
resolvente.
5. Realice una función que resuelva el producto de dos matrices nxn.
6. Un número perfecto es un número natural que es igual a la suma de sus divisores propios
positivos, sin incluirse él mismo. Así, 6 es un número perfecto, porque sus divisores
propios son 1, 2 y 3; y 6 = 1 + 2 + 3. Los siguientes números también son perfectos son 1,
28, 496 y 8128.
Escribir una función que determine si un número dado es perfecto o no.
7. En un ciclo de potencia se tiene agua como fluido de trabajo, el ciclo intercambia calor con
reservorios a 480ºC y 17.5ºC, en dicho ciclo se tiene una turbina de alta presión que opera
con una eficiencia isentrópica de 82%, antes de entrar a la turbina, el fluido está a una
presión de 8MPa, el fluido sale con una presión de 2 MPa y una temperatura de 299ºC.
Determine el valor de la temperatura de entrada, sabiendo que:
refiere a la entalpía ( ).
Además se conoce la siguiente tabla de datos:
Presión 8 MPa
Temperatura [ºC]
Entalpía [ ] Entropía [ ]
295.0600 2758.9102 5.7454
300.0000 2785.0000 5.7906
350.0000 2987.8000 6.1301
400.0000 3138.3000 6.3534
450.0000 3272.6000 6.5551
500.0000 3398.3000 6.7249
Presión 2 MPa
Temperatura [ºC]
Entalpía [ ] Entropía [ ]
212.38 2510.0920 5.7454
212.38 2532.0381 5.7906
212.38 2696.8765 6.1301
214.59 2805.3116 6.3534
251.58 2907.2562 6.5551
289.40 2999.4862 6.7249
299.00 3021.9304 6.7645
8. Realice una función que calcule el momento flector de una viga, cuyos soportes son:
articulación plana al comienzo y un apoyo simple al final, la función se limitará a casos en
donde exista una sola fuerza perpendicular al eje de la viga y una fuerza distribuida
(uniforme). Como resultado la función debe dar el valor de las reacciones en lo vínculos y
la gráfica del momento flector.
9. Repita la función anterior, pero esta vez, tomando una viga en voladizo.
10. Realice una función que dibuje los círculos de Mohr para una matriz de esfuerzos
principales (parámetro de entrada), sabiendo que:
, ,
Siendo Ci y Ri los centros y radios de cada circunferencia, respectivamente.
Este manual fue realizado con la intención de brindarle al estudiante una guía para comenzar a
interactuar con el programa MATLAB, fue una iniciativa por parte de la sección de Mecánica
Computacional del Departamento de Mecánica.
Realizado por: Br. Israel Marino Navas (isra.marino91@gmail.com).
Supervisado por: Prof. Orlando Pelliccioni (smc‐laba@usb.ve).