Está en la página 1de 7

Departamento de Ingeniería Civil y Ambiental

Facultad de Ingeniería
Interacción dinámica suelo – estructura – ICYA 4416, 2017-20

Clase complementaria 03 – 29 de agosto de 2017


Introducción al manejo de MATLAB®
¿QUÉ ES MATLAB?
MATLAB® (abreviatura de MATrix LABoratory, "laboratorio de matrices") es un lenguaje de alto nivel y un
entorno interactivo para el cálculo numérico, la visualización y la programación. Mediante MATLAB, es posible
analizar datos, desarrollar algoritmos y crear modelos o aplicaciones. El lenguaje, las herramientas y las
funciones matemáticas incorporadas permiten explorar diversos enfoques y llegar a una solución más
eficiente comparado con hojas de cálculo o lenguajes de programación tradicionales. MATLAB se puede
utilizar en una gran variedad de aplicaciones, tales como procesamiento de señales y comunicaciones,
procesamiento de imagen y vídeo, sistemas de control, pruebas y medidas, finanzas computacionales y
biología computacional.

ENTORNO DE MATLAB
La interfaz de MATLAB tiene los siguientes componentes básicos (ver Figura 1):
1) Menú principal: permite guardar, generar y exportar archivos, además de otras opciones básicas del
programa.
2) Command Window: Ventana para ejecución de líneas de comandos, típicamente permite:
- Creación y visualización de variables
- Operaciones básicas, ejecución de comandos de MATLAB
- Ejecución de funciones y rutinas
Para ejecutar una línea de comando, se debe escribir la expresión a continuación del prompt (>>), y
enter. Si no se quiere ver el resultado de la expresión en pantalla, la expresión debe finalizar con punto
y coma (;). También permite usar el comando “help”,¸el cual proporciona información básica de las
funciones y comandos integrados del programa.
3) Command History: ventana que contiene el historial de comandos realizados.
4) Workspace: ventana que contiene la lista de variables almacenadas por el programa.
5) Variable Editor: Al hacer doble clic sobre una de las variables en Workspace, se abre una nueva ventana
que muestra dicha variable en un formato matricial por casillas (como Excel), que permite visualizar o
modificar la variable seleccionada.
6) Editor: Ventana principal para la creación de archivos de comandos (archivos .m) bajo un entorno de
programación. Permite crear archivos de comandos y/o funciones a partir de una secuencia de líneas de
comando. Los archivos de comandos ejecutan una serie de instrucciones al ser llamado, y estas
instrucciones en el archivo de comandos operan en el Workspace definido. Los archivos de funciones
requieren de unos parámetros de entrada (argumentos) para su ejecución, y estos parámetros deben
ser definidos por el usuario.
7) Current Directory: Muestra la ubicación actual de la ruta en la cual se almacenan y ejecutan las variables.
Es necesario definirla cuando se esté trabajando con archivos de comando (archivos .m), o cuando se
estén cargando variables o datos externos.

DEFINICIÓN DE VARIABLES
Todas las variables son definidas de forma matricial. Variables que contienen un único dato son escalares;
variables con una única fila o columna son vectores, matrices y elementos.

x = 5; (Escalar)
v = [1,2,3,4]; (Vector)
A = [1,2,3;4,5,6;7,8,9]; (Matriz)
Elem{i}.E = 200000; (Arreglo de estructuras)

ICYA 4416 – Segundo semestre de 2017 – Página 1


Departamento de Ingeniería Civil y Ambiental
Facultad de Ingeniería
Interacción dinámica suelo – estructura – ICYA 4416, 2017-20

Las variables pueden ser nombradas utilizando una combinación de letras, números y símbolos siempre que
comiencen con una letra, por ejemplo A_3b = 35. Además, MATLAB es capaz de distinguir entre mayúsculas y
minúsculas.

Figura 1. Entorno de MATLAB

OPERADORES Y FUNCIONES BÁSICAS


Operadores Básicos
+ Suma
- Resta
* Multiplicación
/ División
^ Potencia

Funciones Básicas

• sqrt( ) Raíz cuadrada • sind( ) Seno con ángulos en grados


• exp( ) Exponencial • cos( ) Coseno
• max( ) Máximo • tan( ) Tangente
• min( ) Mínimo • pi( ) Pi
• abs( ) Valor absoluto • log( ) Logaritmo natural
• sin( ) Seno con ángulos en radianes • log10( ) Logaritmo en base 10

Operadores Lógicos y de Relación


< Menor a
<= Menor igual a
> Mayor a
>= Mayor igual a
== Igual a

ICYA 4416 – Segundo semestre de 2017 – Página 2


Departamento de Ingeniería Civil y Ambiental
Facultad de Ingeniería
Interacción dinámica suelo – estructura – ICYA 4416, 2017-20

~= Diferente a
& Y
| O
~ No
Caracteres Especiales
[] Definición de matrices
() Precedencia aritmética en expresiones, definición de argumentos
, Separador de elementos en matrices, y argumentos en funciones
; Separador de filas en matrices, separador de declaraciones
% Inicio de comentarios

OPERACIONES CON MATRICES Y VECTORES


Z = zeros(m,n) Crea una matriz Z de m x n con todos los elementos iguales a cero
B = ones(m,n) Crea una matriz B de m x n con todos los elementos iguales a uno
[u,v] = size(A) Devuelve las variables u y v con los valores correspondientes del número de filas y de
columnas de la matriz (u = m, v = n). Cuando m ó n es igual a 1 (cuando A es un vector), se
puede obtener la dimensión del vector por medio del comando length(A)
a = A(i,j) Devuelve la variable a con el valor del elemento en la posición i,j de la matriz A
r = A(k,:) Devuelve la variable r como un vector que contiene todos los elementos en la fila k de la
matriz A
c = A(:,k) Devuelve la variable r como un vector que contiene todos los elementos en la columna k de
la matriz A
D = A.*s Devuelve la matriz D que contiene la multiplicación de cada uno de los elementos de A por
un escalar s. Esta misma operación puede realizarse para sumas, restas, divisiones,
potencias, etc
[V,D] = eig(X) Produce una matriz diagonal D con los valores propios de la matriz, y una matriz V cuyas
columnas corresponden a los vectores propios tal que X*V = V*D.

OPERACIONES CON NÚMEROS COMPLEJOS


abs() Magnitud del número complejo
angle() Ángulo de fase
complex(a,b) Crea un número complejo a + b*i
conj() Conjugado complejo
i Unidad imaginaria
j Unidad imaginaria
imag() Parte imaginaria de un número complejo
real() Parte real de un número complejo

SECUENCIAS DE CONTROL DE FLUJO


Control Condicional – Secuencia if, else, elseif
Permite ejecutar una secuencia determinada siempre y cuando se cumpla una condición inicial o de entrada
a la secuencia. La sintaxis es la siguiente:
if condición_1
secuencia_1
end

if condición_1
secuencia_1
else
secuencia_ 2

ICYA 4416 – Segundo semestre de 2017 – Página 3


Departamento de Ingeniería Civil y Ambiental
Facultad de Ingeniería
Interacción dinámica suelo – estructura – ICYA 4416, 2017-20

end

La condición de entrada para cada secuencia establecida es normalmente una operación lógica, y la secuencia
es una serie de operaciones o pasos que se ejecutan siempre y cuando se cumpla la condición. El recorrido de
la secuencia if implica que al entrar en una de las secuencias definidas, no se entrará en ninguna otra pues
son excluyentes. Si no se cumple ninguna condición de entrada, el recorrido termina sin ejecutar ninguna de
las secuencias interiores.

Control de Ciclos – Secuencia for


Permite ejecutar una secuencia específica un número determinado de veces, recorriéndola en forma de
ciclos. La sintaxis es la siguiente;
for variable = inicio : paso : final
secuencia_1
end

El recorrido de ciclos se lleva a cabo desde un valor inicial de la variable, la cual aumenta un paso cada ciclo,
hasta alcanzar el valor declarado como final. Por defecto, si no se especifica el paso con el cual aumenta la
variable, el programa lo tomará como 1, y por lo tanto para recorrer una variable que aumenta una unidad
por ciclo, únicamente es necesario declarar el inicio y el final (variable = inicio : final).

Control de Ciclos – Secuencia while


Permite ejecutar una secuencia específica un número indeterminado de veces, siempre y cuando se cumpla
la condición establecida. La sintaxis es la siguiente.
while condición_1
secuencia_1
end

El programa verificará el cumplimiento de la condición de entrada, y mientras se cumpla dicha condición,


permanecerá dentro del ciclo, ejecutando la secuencia. En el momento en que la condición de entrada deje
de ser válida, saldrá del ciclo.

Declaración de Funciones
Las funciones son secuencias de ejecución que requieren argumentos ingresados por el usuario. Se debe
especificar el nombre de las variables de salida, así como el orden y la cantidad de argumentos de entrada. La
sintaxis para su definición es la siguiente:
function [out_1,out_2] = ejemplo(in_1,in_2,in_3)
secuencia_1
secuencia_2
end

La function ejemplo requiere de tres argumentos de entrada, en el orden establecido, y ejecuta una serie de
operaciones y secuencias que resultan en dos variables de salida. Al llamar la función, se debe escribir el
nombre seguido de los argumentos. La sintaxis para su ejecución es la siguiente:

ejemplo(a,b,c)

En algunos casos, no se requiere asignar ningún resultado a una variable de salida, como es el caso en que el
resultado es una gráfica. Para esto, la definición de la función puede omitir la declaración de la variable de
salida:
function ejemplo(in_1,in_2,in_3)

ICYA 4416 – Segundo semestre de 2017 – Página 4


Departamento de Ingeniería Civil y Ambiental
Facultad de Ingeniería
Interacción dinámica suelo – estructura – ICYA 4416, 2017-20

MANEJO DE INFORMACIÓN
Cargar Información
MATLAB permite cargar diferentes tipos de archivos que contienen información y almacenarlos como
variables. Una forma común de ingresar bases de datos es cargar un archivo de texto que contenga una lista
de datos, y organizarlos en un vector o matriz.

V = load(‘Nombre del archivo.txt’);

El comando load permite cargar los valores de un archivo de texto (que debe estar en el directorio del
archivo.m que se está ejecutando), y almacenarlos de forma matricial en el vector V. Desde este punto, la
información del archivo de texto pasa a ser una serie de elementos del vector que pueden ser operados con
las funciones y secuencias de MATLAB.

Exportar Información
También se permite exportar los resultados o variables ejecutadas en archivos de salida, utilizando muchos
formatos diferentes. Por ejemplo, si se desea exportar un vector U en formato ASCII, utilizando un espacio
como delimitador de objetos, la sintaxis es la siguiente:

dlmwrite(‘Nombre del archivo.txt’,U,’ ‘)


save Nombre del archivo.txt nombre de la variable extensión

El archivo de salida resultante será un archivo de texto con el nombre especificado, guardado en el Current
Directory, cuyos valores están delimitados por espacio.

GRÁFICAS
MATLAB es una poderosa herramienta para graficar datos, y cuenta con muchos tipos de gráficas en dos y
tres dimensiones. La forma más simple de graficar es utilizando el comando plot, el cual tiene la siguiente
sintaxis:

plot(x,y,…)

Al ejecutar este comando, se crea una gráfica con los valores del vector x en el eje de las abscisas, y los valores
del vector y en el eje de las ordenadas, y automáticamente escoge el formato más apropiado de los ejes para
su visualización. Adicionalmente, se pueden definir parámetros de la gráfica después del comando plot, como
el título, los ejes, el color de línea, el tipo de línea, etc. A continuación se listan los comandos complementarios
más comunes.

title (‘Título del gráfico’)


xlabel (‘Título del eje x’)
ylabel (‘Título del eje y’)
axis([xi xf yi yf])

La declaración del tipo y color de línea puede hacerse dentro del comando plot (como se indica por los puntos
suspensivos en la sintaxis). Las abreviaciones para algunos tipos y colores disponibles son:
_ Línea solida (por defecto)
-- Línea segmentada
: Línea punteada
-. Línea segmento-punto
+ Marcador cruz
o Marcador círculo

ICYA 4416 – Segundo semestre de 2017 – Página 5


Departamento de Ingeniería Civil y Ambiental
Facultad de Ingeniería
Interacción dinámica suelo – estructura – ICYA 4416, 2017-20

* Marcador asterisco x Marcador equis


r Color rojo
g Color verde b Color azul
k Color negro

Los anteriores tipos de línea, marcador y color pueden definirse simultáneamente en el comando plot, de la
siguiente manera:

plot(x,y,’--*r’) Línea segmentada con marcadores de asterisco, color rojo

Otros comandos de importancia al graficar con MATLAB son:

hold on Permite “congelar” la gráfica actual e ingresar otra serie de datos en la misma gráfica.
Si no se especifica éste comando, al graficar la siguiente serie, se sobrescribe la gráfica,
perdiendo los anteriores datos

subplot(m,n,p) Permite dividir el espacio del gráfico en un arreglo de m x n espacios separados, y escogiendo
el actual por medio del marcador de posición p. Al declarar el comando subplot seguido del
comando plot, se divide el espacio del gráfico, y posteriormente se grafica con el comando
plot en la posición p del arreglo.

Ejercicio opcional - Ejemplo práctico usando MATLAB®


Un edificio de un piso es idealizado por medio de un modelo de dos columnas de longitud Li sin masa
soportando un peso de wi al nivel de la viga infinitamente rígida (Ver Figura E1a). En la Tabla E1 se encuentran
tres configuraciones diferentes caracterizadas por una longitud de columnas y un peso. Suponga que el
coeficiente de amortiguamiento crítico es ξ=5%.
a) Para cada una de las tres estructuras determinar el desplazamiento lateral máximo cuando la
estructura es sometida a un movimiento sísmico caracterizado por el espectro de pseudo-aceleración
presentado en la Figura E1b.
b) Utilizando la ecuación de vibración libre amortiguada para el caso “amortiguamiento menor que el
crítico”, graficar individualmente la respuesta en vibración libre de cada una de las tres
configuraciones. Adicionalmente, construir una gráfica comparativa. La ecuación es la siguiente:

𝑣 + 𝜉𝑥 𝜔
𝑥(𝑡) = 𝑒 ∗ 𝑥 cos(𝜔 𝑡) + sin(𝜔 𝑡)
𝜔

Suponga que 𝑣 = 0 𝑚/𝑠 y 𝑥 = 0.10 𝑚.


wi Sa (g)
0.625

Ix=18E-6m4 Sa(Tn)=0.3625/Tn
Ec=200GPa Li 0.25
Sa(Tn)=0.25+1.25Tn

0.30 0.58 T (seg)


(a) (b)
Figura E1

ICYA 4416 – Segundo semestre de 2017 – Página 6


Departamento de Ingeniería Civil y Ambiental
Facultad de Ingeniería
Interacción dinámica suelo – estructura – ICYA 4416, 2017-20

Tabla E1
ID Li (m) wi (kN)
1 2.50 200
2 3.50 250
3 3.75 300

ICYA 4416 – Segundo semestre de 2017 – Página 7

También podría gustarte