Sei sulla pagina 1di 23

CI 4203

Dinámica de Estructuras

Clase Auxiliar n°1 - MATLAB

Juan Manuel Martínez P.


9 Agosto2012
El software
• MATLAB es un software matemático
que permite realizar cálculos
numéricos a través de matrices y
vectores.

• Se caracteriza por su simpleza para


programar, es ampliamente usado en
el mundo ingenieril.

• Fue creado por Cleve Moler en 1984.

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Lenguaje MATLAB
La ventana Command Window permite ejecutar las
instrucciones de asignación, manipulación y
esquematización de variables.

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Variables
Asignar Variables:
 Escalares:
a = 1;
 Vectores:
 Vector Fila
v = [1,2,3];
v = [1 2 3];
 Vector Columna
v = [1;2;3];
 Vector Secuencia;
v = 1:4; Equivalente a v = [1 2 3 4]
v = 1:2:7; Equivalente a v = [1 3 5 7]
Jueves 9 de Agosto 2012 Dinámica de Estructuras
Matrices
 Asignación Manual;
A = [12,10;13,2;0,1]; Matriz de 3 filas y 2 columnas

 Matrices Predefinidas:
A = ones(m,n); Matriz m x n rellena de unos.
A = zeros(m,n); Matriz m x n rellena de ceros.
A = rand(m,n); Matriz m x n rellena de n° aleatorios
entre 0 y 1.
A = eye(N); Matriz iddiaentidad de N x N.
A = diag(vector); Matriz diagonal cuyos elementos de
la diagonal coinciden con los de
“vector”.

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Indexación de Matrices
Usualmente trabajamos en MATLAB modificando matrices antes
definidas. Para ello es necesario dominar la indexación de vectores y
matrices.
A(i,j): Obtiene el elemento de la fila i y la columna j
A(i,:): Obtiene la fila i-ésima de A.
A(:,j): Obtiene la columna j-ésima de A.
A(Ind1,Ind2): Obtiene una submatriz de A, indicada por las
filas de los elementos de Ind1 y las columnas
de los elementos de Ind2.
A(i): Obtiene el elemento i-ésimo de la Matriz, contado primero de
arriba hacia abajo, y luego de izquierda a derecha. Es usado
generalmente para vectores.

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Ejemplo indexación
Si A = [12 23 42;21 10 53;77 87 23;99 65 35];

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Ejemplo indexación
Si A = [12 23 42;21 10 53;77 87 23;99 65 35];

A([1 3 4],[2 3]) = A(:,2) =

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Operaciones Matriciales
 A + B: Suma entre A y B
 A - B: Resta entre A y B
 A*B: Multiplicación matricial entre A y B
 A^b: La matriz A es elevada matricialmente por el escalar b
 A.*B: Multiplicación elemento a elemento de A y B.
 A./B: División elemento a elemento de A y B
 A.^b: Cada elemento de A es elevado al escalar b
 cross(v1,v2): Producto cruz entre los vectores v1 y v2
 point(v1,v2): Producto punto entre los vectores v1 y v2
v1’*v2: Producto punto usando herramienta de transposición
de matrices ’

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Otras funciones

 [m,n] = size(X): Entrega las dimensiones de la Matriz X .


Donde m es el número de filas y n el número de columnas.
 length(x): Entrega el largo de un vector x . Si x es una matriz,
entrega max(size(x))
 sqrt(x): Entrega raiz cuadrada de x
 real(x): Entrega parte real de complejo x.
 imag(x): Entrega parte imaginaria de complejo x.
 [V,D] = eig(X): Resuelve el problema de valores y vectores
propios de la matriz X. V y D son matrices tal que [X] = [V][D][V]-1

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Operadores especiales
 Operador if
Ejecuta una instrucción sujeto al cumplimiento de una condición.
if CONDICION
INSTRUCCIÓN
else
INSTRUCCIÓN
end

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Operadores especiales
Para ejecutar una condición es necesario un
operador “booleano”:

 == es igual a
 ~= es distinto a
 <= es menor o igual a
 < es menor
 >= es mayor o igual a
 > es mayor
 & y
 | ó

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Operadores especiales
 Operador while
Ejecuta una instrucción mientras se cumpla un condición.
while(CONDICION)
INSTRUCCIÓN
end

 Operador for
Ejecuta una instrucción mientras un contador (variable) toma
cada uno de los valores de la secuencia indicada (vector)
for CONTADOR = SECUENCIA
INSTRUCCIÓN
end

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Ejemplo Operadores especiales
Ejemplos de operadores iterativos
 While:
i = 1;
while( i < 5 )
disp(i) % imprime en pantalla la variable i
i = i + 1;
end
 For:
Construir la serie
% Inicializando Sn
Sn(1) = 1; % Asignando S1 (índices parten de 1)
for i = 2:8
Sn(i) = 2*Sn(i-1) + 1;
end

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Strings
Strings = cadenas de texto.

 S = ‘Hola mundo’; % ‘’ indican string.

 S = num2str(20); % Convierte número a


string

 S = [‘Ca’,’sa’]; % Concatenando strings


S = Casa

 disp(s); % Muestra string en pantalla

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Script: .m file
 Se puede ejecutar y guardar una serie de instrucciones fuera
de la ventana command window, usando un archivo de
extensión *.m

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Funciones
 Se pueden guardar funciones en scripts.

 Formato:
function [o1,o2,…] = nombre(i1,i2,…)
INSTRUCCIONES
end

- o1,o2,…: Argumentos de salida


- i1,i2,…: Argumentos de entrada

 El script debe guardarse con el mismo nombre de la


función.
Jueves 9 de Agosto 2012 Dinámica de Estructuras
Ejemplo de Función
function [r1,r2] = raices(A,B,C)
% [r1,r2] = raices(A,B,C)
% Obtiene las raices de un polinomio A*x^2 + B*x + C
%
% Parámetros de entrada
% - A: coeficiente que acompaña al término x^2
% - B: coeficiente que acompaña al término x
% - C: coeficiente constante del polinomio.
%
% Parámetro de salida
% - r1: raiz mayor del polinomio
% - r2: raiz menor del polinomio
%
% Juan Manuel Martínez
% 9 Agosto 2012
det = B^2 - 4*A*C; % determinante
r1 = - B/(2*A) + det^0.5/(2*A);
r2 = - B/(2*A) - det^0.5/(2*A);
end

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Gráficos
 plot(x,y): Siendo x e y son vectores de las mismas dimensiones,
grafica y(x).
 plot(x,y,’fmto’): Grafica y(x) con un cierto formato
 plot(x1,y1,’fmto1’,x2,y2,’fmto2’…): Grafica
y1(x1) y y2(x2) en un mismo gráfico con sus respectivos formatos.

Ejemplo:
x = 0:0.5:3*pi; % secuencia para eje x
y = sin(x); % y(x)
plot(x,y,'r',x,y,'o')
1

0.5

-0.5

-1
0 1 2 3 4 5 6 7 8 9

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Gráficos
Formatos:
Obtenidos mediante help plot
b blue . point - solid
g green o circle : dotted
r red x x-mark -. dashdot
c cyan + plus -- dashed
m magenta * star (none) no line
y yellow s square
k black d diamond
w white v triangle (down)
^ triangle (up)
< triangle (left)
> triangle (right)
p pentagram
h hexagram

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Gráficos
 figure: Crea una nueva ventana gráfica.
 xlabel(‘eje’): Asigna rótulo ‘eje’ al eje x
 ylabel(‘eje’): Asigna rótulo ‘eje’ al eje y
 title(‘Titulo’): Defina el título del gráfico
 legend(‘s1’,’s2’,…): Asigna la leyenda de cada función
ploteada.
 grid on/off: Hace visible/invisible la grilla del gráfico
 subplot(m,n,i): Permite realizar m x n gráficos en un misma
ventana gráfica (i es el gráfico actual)
 axis([Xiz Xde Yab Yar]): Cambia los límites del gráfico
actual, siendo Xiz el límite izquierdo de la ventana, Xde el derecho,
Yab el inferior, y Yar el superior.

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Ejemplo plot
figure % Abre una nueva ventana gráfica.
x = 0:0.01:10; % secuencia de 0 a 10 con paso 0.01
y1 = exp(-0.3*x).*sin(2*pi*x); % y1(x)
y2 = exp(-0.3*x); % y2(2)
plot(x,y1,x,y2) % graficando ambas funciones
title('Gráfico 1') % asignando título
xlabel('x') % asignando rótulo en x
ylabel('y') % asignando rótulo en y
legend('y1','y2') % asignando leyenda
Gráfico 1
1

y1
0.5
y2

0
y

-0.5

-1
0 1 2 3 4 5 6 7 8 9 10
x

Jueves 9 de Agosto 2012 Dinámica de Estructuras


Importar datos desde *.txt
Si se tiene un archivo de texto con los datos compatibles con
matlab, es posible cargarlo con el comando load

Ejemplo:
Cargando las aceleraciones del terremoto del 27 de febrero que se encuentran
en le archivo AceleracioensTC27F.txt

load AceleracionesTC27F.txt
plot(AceleracionesTC27F)
0.1

0.05

-0.05

-0.1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
4
x 10

Jueves 9 de Agosto 2012 Dinámica de Estructuras

Potrebbero piacerti anche