Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1.1 INTRODUCCIÓN
En MATLAB se usa el signo de igual para asignar una expresión a una variable.
>>variable = expresión
Se muestra una relación simple donde los comandos se introducen tal como ellos se
escriben matemáticamente. >>a=4 / 3 < enter >
Asigna a la variable "a" el valor de cuatro dividido por tres. En general se recomienda
el usar nombres de variables apropiados y fáciles de memorizar. MATLAB reconoce los
primeros 19 caracteres del nombre de una variable y solamente requiere que el primer
carácter de una variable sea una letra, además es sensible a mayúsculas y minúsculas
por ejemplo A y a son variables diferentes y las funciones de MATLAB deben estar en
minúsculas.
Si no se desea crear una nueva variable, pero se quiere saber el valor de una
expresión, se puede teclear la expresión por si misma: >> 4 / 3
donde " ans " variable que genera MATLAB que significa respuesta (answer).
El punto y coma (" ; " )es muy útil cuando se definen vectores o matrices muy grandes
y no se desea que se muestren. Se puede ver el valor de una variable en cualquier
tiempo únicamente tecleando el nombre de dicha variable: >>b
b =11
>>c= a*(b-1)
c =13.3333
>>p=1+2+...
3+4+6;
* Multiplicación
^ Potencia
MATLAB responde
ans =256
caso 3 >>(1+2) ^ 3 / (4 * 2)
MATLAB tiene una gran variedad de funciones que fácilmente pueden ser incorporadas
dentro de expresiones, las más comunes se muestran en seguida:
inf Infinito
pi Representa π
Ejemplos: >>c=4/0
c=inf
d =NaN
Una vez llamado el formato elegido permanece activo hasta que sea cambiado.
Para el análisis de sistema de control, se suelen utilizar format short y format long.
Siempre que se llame a MATLAB y no se introduzca una orden de formato, MATLAB
muestra los resultados numéricos en formato corto:
>>1/3
ans = 0.3333
>>format long
>>1/3
ans = 0.33333333333333
>>format % Vuelve al formato estándar que es el de 4 cifras decimales
Para borrar todas las salidas anteriores de MATLAB y dejar limpia la ventana principal
se pueden utilizar las funciones clc y home.
La función clc (clear console) elimina todas las salidas anteriores, mientras que home
las mantiene, pero lleva el prompt (» ) a la primera línea de la ventana.
1.3.- MATRICES
, ;
comas (“ ”) y encerrados por corchetes y se usa punto y coma ( )para indicar el final
del renglón.
456
789
Las matrices también pueden ser introducidas por medio de una lista de elementos de
cada renglón de la matriz utilizando punto y coma al terminar cada renglón o
simplemente darle retorno al terminar cada renglón y se encierra entre corchetes.
Ejemplo: >>B = [ 1 2 3 4 5 6 7;
2 4 6 8 2 4 6;
1 3 5 7 9 1 3;
1 2 3 4 5 6 7];
1234567
2468246
1357913
1234567
Las matrices pueden tener elementos formados por medio de expresiones ó funciones y
pueden ser reales o complejos veamos el siguiente ejemplo:
>> A = [ 1, - 4j , sqrt(2);
>>A+B ans = 1 5
ans = 6 -4 3 9
15 9
50
a a12 b b12
A = 11 B = 11
a 21 a 22 b21 b22
a b a12 b12
Utilizando la multiplicación elemento a elemento se obtiene: A• * B = 11 11
a 21b21 a 22 b22
∧
A• 2 es el cuadrado de cada uno de sus elementos, Por ejemplo
ans= -6
14
30
>>A.^2
ans= 1
MATLAB puede generar vectores automáticamente que contengan elementos que van
de un valor inicial Xi a un valor final Xf con ciertos incrementos especificados por dX.: X
= Xi : dX : Xf
Pueden generarse fácilmente vectores utilizando esta notación llamada notación colon.
Por ejemplo, se desea generar un vector con valor inicial 1 y final 10 con incrementos
de 1
>>X=[1:1:10]
X=1 2 3 4 5 6 7 8 9 10
>>x=[0:0.1:1]’; y = x. *sin(x);
>> [x y]
ans= 0 0
0.1000 0.0100
0.2000 0.0397
0.3000 0.0887
0.4000 0.1558
0.5000 0.2397
0.6000 0.3388
0.7000 0.4510
0.8000 0.5739
0.9000 0.7050
1.0000 0.8415
Si lo que conocemos del vector es que la primera coordenada vale 0, la última 20 y que
tiene 11 en total, escribiremos:
>>x=linspace(0,20,11)
x= 0 2 4 6 8 10 12 14 16 18 20
A las coordenadas de un vector se accede sin más que escribir el nombre del vector y,
entre paréntesis, su índice:
>>x(3) >>x(:)
ans = 4 ans= 0
2
y se pueden extraer subvectores, por ejemplo: 4
6
>>x(2:5)
8
ans= 2 4 6 8 10
12
14
16
18
20
1.3.3.-MATRICES DE UTILIDAD:
Ones(m,n)
Ones(A)
Zeros
Produce matrices especiales. Esto es, ones(n) genera una matriz de unos de n x n
Ones(m,n) genera una matriz de unos de m x n. Similarmente zeros(n) genera una
matriz de ceros de n x n. Mientras que zeros (m,n) genera una matriz de ceros de m x n.
Zeros(A) genera una matriz de ceros del mismo tamaño que A, excepto cuando A es un
escalar.
>>diag(ones(1,5))
ans = 1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
A= 1 2 3 ans= 1 ans= 1 0 0
4 5 6 5 0 5 0
7 8 9 9 0 0 9
ans=1 0 0 0 0
0 2 0 0 0
0 0 3 0 0
0 0 0 4 0
0 0 0 0 5
+ adición o suma
– sustracción o resta
* multiplicación
' transpuesta
^ potenciación
\ división-izquierda
/ división-derecha
Existen en MATLAB varias funciones orientadas a definir con gran facilidad matrices de
tipos particulares. Algunas de estas funciones son las siguientes:
magic(4) crea una matriz (4x4) con los números 1, 2, ... 4*4, con la propiedad de
que todas las filas y columnas suman lo mismo
hilb(5) crea una matriz de Hilbert de tamaño (5x5). La matriz de Hilbert es una
matriz cuyos elementos (i,j) responden a la expresión (1/(i+j-1)). Esta es
una matriz especialmente difícil de manejar por los grandes errores
numéricos a los que conduce
kron(x,y) produce una matriz con todos los productos de los elementos del vector x
por los elementos del vector y. Equivalente a x'*y, donde x e y son
vectores fila compan(pol) construye una matriz cuyo polinomio
característico tiene como coeficientes los elementos del vector pol
(ordenados de mayor grado a menor)
A continuación se describen algunas de las funciones que crean una nueva matriz a
partir de otra o de otras, comenzando por dos funciones auxiliares:
zeros(size(A)) forma una matriz de ceros del mismo tamaño que una matriz A
previamente creada.
A=diag(x) forma una matriz diagonal A cuyos elementos diagonales son los
elementos de un vector ya existente x
triu(A) forma una matriz triangular superior a partir de una matriz A (no tiene por
qué ser cuadrada). Con un segundo argumento puede controlarse que se
mantengan o eliminen más diagonales por encima o debajo de la diagonal
principal.
» x=1:10
x =1 2 3 4 5 6 7 8 9 10
En cierta forma se podría decir que el operador (:) representa un rango: en este caso,
los números enteros entre el 1 y el 10. Por defecto el incremento es 1, pero este
operador puede también utilizarse con otros valores enteros y reales, positivos o
negativos. En este caso el incremento va entre el valor inferior y el superior, en las
formas que se muestran a continuación:
» x=1:2:10
x =1 3 5 7 9
» x=1:1.5:10
» x=10:-1:1
x =10 9 8 7 6 5 4 3 2 1
Puede verse que, este operador produce vectores fila. Si se desea obtener un vector
columna basta trasponer el resultado. El siguiente ejemplo genera una tabla de
funciones seno y coseno.
» x=[0.0:pi/50:2*pi]';
» y=sin(x); z=cos(x);
» [x y z]
:
El operador dos puntos ( ) es aún más útil y potente –y también más complicado con
» A(2,3)
31 9 2 22 27 20
ans =7
8 28 33 17 10 15
30 5 34 12 14 16
4 36 29 13 18 11
El siguiente comando extrae los 4 primeros Los dos puntos aislados representan "todos los
elementos de la 6ª fila: elementos". Por ejemplo, el siguiente comando
extrae todos los elementos de la 3ª fila:
» A(6, 1:4)
» A(3, :)
ans = 4 36 29 13
ans =31 9 2 22 27 20
Para acceder a la última fila o columna puede El siguiente comando extrae todos los elementos
utilizarse la palabra end, en lugar del número de las filas 3, 4 y 5:
correspondiente. Por ejemplo, para extraer la
» A(3:5,:)
sexta fila (la última) de la matriz:
ans = 31 9 2 22 27 20
» A(end, :)
8 28 33 17 10 15
ans =4 36 29 13 18 11
30 5 34 12 14 16
Se pueden extraer conjuntos disjuntos de filas En los ejemplos anteriores se han extraído filas y
utilizando corchetes [ ]. Por ejemplo, el siguiente no columnas por motivos del espacio ocupado
comando extrae las filas 1, 2 y 5: por el resultado en la hoja de papel. Es evidente
que todo lo que se dice para filas vale para
» A([1 2 5],:)
columnas y viceversa: basta cambiar el orden de
los índices.
ans = 35 1 6 26 19 24
3 32 7 21 23 25
30 5 34 12 14 16
El operador dos puntos (:) puede utilizarse en ambos lados del operador (=). Por
ejemplo, a continuación se va a definir una matriz identidad B de tamaño 6x6 y se van a
reemplazar filas de B por filas de A. Obsérvese que la siguiente secuencia de
comandos sustituye las filas 2,4 y 5 de B por las filas 1,2 y 3 deA
0 0 1 0 0 0
3 32 7 21 23 25
31 9 2 22 27 20
0 0 0 0 0 1
Como nuevo ejemplo, se va a ver la forma de Obsérvese que por haber utilizado paréntesis –en
invertir el orden de los elementos de un vector: vez de corchetes- los valores generados por el
operador (:) afectan a los índices del vector y no
» x=rand(1,5)
al valor de sus elementos.
» A=magic(3)
x =0.7361 0.0475 0.2625 0.7622 0.9103
A= 8 1 6
3 5 7
4 9 2
Se sustituyen las dos primeras filas de B por el aunque hubiera sido más fácil utilizar la función
producto de dichas filas por una matriz de fliplr(A), que es específica para ello. Finalmente,
permutación. hay que decir que A(:) representa un vector
columna con las columnas de A una detrás de
» A(:,3:-1:1)
otra.
ans = 6 1 8
7 5 3
2 9 4
GRAFICACIÓN
2.1.- INTRODUCCIÓN
Las gráficas juegan un papel muy importante en el diseño y análisis de los sistemas de
control. Un componente importante de un paquete interactivo para el análisis y diseño
de sistemas de control es su capacidad gráfica, debe incluir formatos para gráficas del
Lugar de Raíces rlocus, Bode, Nyquist y de respuesta en el tiempo, etc.
Para las gráficas en dos dimensiones las funciones que se utilizan son plot,
semilog(x), semilog(y), loglog y algunas funciones para rotular las gráficas, además
se introducen los programas script.
La función plot crea una gráfica lineal con ejes x -y. Para generar gráficas logarítmicas
se sustituye la función plot por loglog, semilogx, semilogy, todas estas ftmciones se
utilizan de manera similar.
Para un vector dado y, la función plot(y) generará una gráfica lineal de los elementos de
y contra el numero de elementos de y.
» y=[0 1 3 5 2 7 0 8 4 0];
» plot(y);grid
» title('GRÁFICA');
» xlabel('NUMERO DE
DATOS');
» ylabel('AMPLITUD');
Gráficas(x,y)
Para crear una gráfica simple x - y se utiliza la función plot (x, y), es decir si se desea
graficar los elementos de x con respecto a los elementos de y, el vector x puede ser
generado con datos aleatorios x=[1 4 6 2 8 9 1 0 6 7 9 0 7 6] ó por la notación colón
x=[xi:dx:xf].
» x=[0:0.1:1]';
» y=x.*sin(x);
» plot(x,y)
» title('Gráfica de x*sen(x) Vs
x')
» xlabel('x')
» ylabel('y')
» grid
Los ejes y la escala son generados automáticamente. Los ejes son rotulados con los
comandos xlabel, ylabel; el título de la gráfica se determina con el comando títle y la
red de coordenadas con el comando grid.
Pueden ser generadas también varias gráficas en una misma ventana utilizando la
función plot con argumentos múltiples por ejemplo plot ( x , yl , x , y2 , x , y3 ), puede
indicarse también los tipos de líneas para cada gráfica, como se muestra en el siguiente
ejemplo. Los tipos de líneas disponibles se muestran en la tabla 2.2.
» x=[0:0.1:1]';
» y1=x.*sin(x);y2=sin(x);
» plot(x,y1,'b*',x,y2,'g--')
» text(0.1,0.9,'y1=x seno(x)
***')
» text(0.1,0.85,'y2=seno(x) ---
')
»
xlabel('x'),ylabel('y1,y2'),grid
* Asterisco w Blanco(white)
+ Mas k Negro(black)
. Punto m Magenta(purple)
o Circulo
plot(x,y,’b*’)
Las otras funciones gráficas loglog, semilogx, semilogy se utilizan en forma similar a la
función plot.
FUNCIÓN SUBPLOT
La función subplot se utiliza para dividir la pantalla en varias ventanas su forma general:
subplot(m,n,p)
Hasta este momento todo nuestro trabajo lo hemos desarrollado dentro del espacio de
trabajo de MATLAB. Este es un modo adecuado de operación cuando las sesiones son
cortas y no repetitivas, sin embargo, la potencialidad real de MATLAB se basa en su
habilidad para ejecutar de manera secuencial una gran cantidad de comandos
almacenados en un archivo. Estos son llamados archivos M, porque precisamente la
extensión para que MATLAB los ejecute debe ser M.
Programa script para graficar la función y=seno(alfa*t).El valor de alfa deberá existir en
el espacio de trabajo de Matlab antes de llamar a este archivo
t=[0:0.01:1];
y=sin(alfa*t);
plot (t,y)
xlabel(‘tiempo [segundos]’)
ylabel(‘y(t)=seno(alfa *t’)
grid
mostrar los comentarios del titulo y de esta manera saber las características del
programa script.
» help ej1
» alfa=10;
» ej1
» alfa=50
» ej1
1. Que es MATLAB
2. Que es un TOOLBOX
6. Ahora teclee Z=4+5j, y utilice el comando abs(Z), que da Matlab por respuesta
Seno de pi
Cos de 45 grados
Sen pi/4
9. Que significa
Inf
NaN
>>plot(q)
Y si escribe
>>x = [0 1 3 6]
plot(x)
2.- Escriba un archivo script lo siguiente y explique cada línea que es lo que hace corra
el programa y comente lo que obtiene.
clear all
clf
str = 'sin'
t = linspace(0,2*pi);
q = feval(str,t);
plot(t,q)
% F(s)=1/(s+5)
w=logspace(0.001,2,100);
for k=1:length(w)
Z=complex(5,w(k));
F=1/Z;
magF=abs(F);
magdB(k)=20*log10(magF);
end
semilogx(w,magdB)
ENRIQUECER MARCO 10
TEORICO
ASISTENCIA 20
HACER LO MARCADO EN LA 10
PRACTICA
EVIDENCIA FOTOGRAFICA 20
CUESTIONARIO 20
CONCLUSIONES 10
PORTADA 10