Sei sulla pagina 1di 26

Nociones de MatLab

C O N T E N I D O

I. Objetivo

II. Antecedentes

III. Material y Equipo

IV.Desarrollo de la Práctica

V. Hoja de Resultados

VI. Anexo
I. Objetivo
Al finalizar la práctica el estudiante utilizará los comandos básicos de MATLAB para el manejo de
funciones de transferencia, para graficar funciones así como para el análisis de sistemas de control.

II. Antecedentes
El estudiante deberá contar con conocimientos matemáticos relativos a los cursos de Álgebra,
Ecuaciones Diferenciales, conocer el manejo matemático de los sistemas lineales invariantes en el
tiempo así como las bases de la solución numérica de problemas matemáticos. Deberá contar con
conocimientos básicos de programación en algún lenguaje de alto nivel. Se recomienda que cuente
con una computadora con la versión R2007a de MATLAB.

III. Material y Equipo


Computadora PC y software MatLab.

IV. Desarrollo de la Práctica

IV.1 Introducción
MATLAB es el nombre abreviado de “MATriz LABoratory”. MATLAB es un programa para
realizar cálculos númericos con vectores y matrices. Como caso particular puede también trabajar
con números escalares –tanto reales como complejos-, con cadenas de caracteres y con otras
estructuras de información complejas. Una de las capacidades más atractivas es la de realizar una
variedad de gráficos en dos y tres dimensiones, tiene también un lenguaje de programación propio.
La capacidad de cálculo de MATLAB se basa en sus múltiples funciones (comandos). En esta
práctica se mostrará la utilidad de algunas de ellas.

MATLAB es un gran programa de cálculo técnico y científico. Para ciertas operaciones es muy
rápido, cuando puede ejecutar sus funciones en código nativo con los tamaños más adecuados para
aprovechar sus capacidades. En otras aplicaciones resulta bastante más lento que el código
equivalente desarrollado en C/CC++ o Fortran. MATLAB dispone de un código básico y de varias
librerías especializadas (toolboxes).

En las diferentes áreas de la ingeniería, la simulación de sistemas y procesos se ha convertido en una


herramienta indispensable, tanto para el análisis como para el diseño de sistemas. En la mayoría de
los casos el proceso de simulación reduce el tiempo de diseño y permite anticipar el comportamiento
de sistemas y procesos antes de su construcción, reduciendo, por ende, el costo de desarrollo y
evitando posibles desperdicios. De la gran variedad de programas, que pueden hacer simulaciones y
cálculo numérico intensivo, en el mercado se ha elegido a “MATLAB”, para las actividades de
análisis y diseño de sistemas de control, debido al uso tan extendido del mismo y al desempeño
mostrado en muchas áreas de ingeniería y ciencias.

Por lo que, además de los análisis teóricos en la enseñanza del control automático, será necesario
mostrar al alumno el manejo adecuado de “matlab” con el fin de complementar su formación en lo
que respecta a las soluciones numéricas y de simulación.

IV.2 Iniciando
Para iniciar el programa haga un doble clic sobre el icono (MATLAB R2008a) del programa. Al abrir
MATLAB hay una pantalla con tres ventanas (figura 1). Esta es la vista que se obtiene eligiendo la
opción Desktop / Layout / Default, en la barra de herramientas. Como esta configuración puede ser
cambiada fácilmente por el usuario, es posible que en muchos casos aparezca muy diferente.

La parte más importante de la ventana inicial es la Command Window, que aparece en la parte
derecha. En esta sub-ventana es donde se ejecutan los comandos de MATLAB, a continuación del
prompt (aviso) caracterìstico (>>), que indica que el programa está listo para recibir instrucciones.
La primera ventana de la izquierda, es la ventana de arranque Current Directory, en donde se
muestran los archivos del directorio activo actual, haciendo doble clic sobre alguno de los archivos
*.m se abre el editor de archivos de MATLAB. Se puede alternar con Workspace haciendo clic en la
pestaña correspondiente, contiene la información sobre todas las variables que se hayan definido en
la sesión.

La segunda ventana a la izquierda Command History muestra los últimos comandos ejecutados en
la Command Window. Estos comandos se pueden volver a ejecutar haciendo doble clic sobre ellos.
Haciendo clic sobre un comando con el botón derecho del ratón se muestra un menú contextual con
las posibilidades disponibles en ese momento. Para editar uno de estos comandos hay que copiarlo
antes a la ventana Command Window.

Fig. 1 Pantalla de MATLAB R2007a

Es posible recuperar comandos anteriores de MATLAB y moverse por dichos comandos con el ratón
y con las flechas ↑ y ↓. Al pulsar la primera de dichas flechas aparecerá el comando que se había
introducido inmediatamente antes. De modo análogo es posible moverse sobre la línea la línea de
comandos con las flechas ← y →, ir al principio de la línea con la tecla Inicio, al final de la línea
con Fin, y borrar toda la línea con Esc. Recordar que sólo hay una línea activa (la última).

Para salir de MATLAB cuando sea pertinente use los comandos quit o exit, elegir Exit MATLAB en
el menú File o utilizar cualquiera de los medios de terminar una aplicación en Windows.

Para borrar todas las salidas anteriores de MATLAB y dejar limpia la Command Window se puede
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.

MATLAB dispone del comando hepl con el que se puede encontrar la información que se desee.

IV.3 Manteniendo un record del trabajo realizado en el espacio de


trabajo
Comando diary
El comando diary permite guardar la sesión de trabajo registrada en el espacio de trabajo para su
posterior edición con algún editor de textos.

La estructura para utilizar dicho comando es la siguiente:

>> diary sesion


>> x=9,v=[cos(x),sin(x),tan(x),exp(x),log(x),log10(x)] % Contenido del diario%
>> v; cos(x), sqrt(141), log(x) % Contenido del diario%
>> diary

Con el explorador de Windows revise el subdirectorio de trabajo de matlab, deberá encontrar un


archivo de texto nombrado sesión (o en la ventana Current Directory). Abra dicho archivo con el
block de notas (o con el editor de matlab), deberá observar la secuencia de comandos y los resultados
obtenidos con matlab.

Para ingresar más información al archivo sesion la estructura es la siguiente:

>> diary
>> x=10;y= x*57 % Contenido agregado al diario%
>> diary

Con el explorador de Windows abra nuevamente en archivo sesion. ¿Describa su contenido?, ¿qué
utilidad puede tener el comando diary?

El archivo tiene los comandos ejecutados anteriormente más las nuevas asignaciones de x y de y.
De esta forma es posible almacenar un registro de todos los comandos usados, para después editar o
visualizar estos.

IV.3.1 Comandos Save y Load


El comando save salva todas las variables del espacio de trabajo, mientras que el comando load
recupera las variables guardadas por save. El archivo creado por save no se puede editar. MatLab
automáticamente agrega la extensión *.mat.

La estructura para utilizar el comando Save es la siguiente:


A=1,B=2,C=3
save numeros

Observe la ventana Current Directory


Con el explorador de Windows revise el archivo variables en el subdirectorio de trabajo de matlab.

Para recuperar los resultados de una sesión anterior se teclea el comando:

load numeros
whos
A,B,C

Introduzca la siguiente línea. clear A -Para borrar una (A) de las variables del espacio de trabajo.
whos – Para verificar que la variable borrada no aparezca en el espacio de trabajo. Deberá aparecer
una lista de variables sin la que se acaba de borrar.
load numeros – Para cargar las variables guardadas por save en el archivo variables.
whos – Observar la lista y verificar que la variable borrada reapareció.
IV.4 Matlab como calculadora
Los operadores matemáticos básicos son: + (suma), - (resta), * (multiplicación), / (división), y ^
(potenciación)
a). Introduzca la siguiente operación. >> 2 + 3/4*5 con lo que obtendrá
ans = 5.7500

b). matlab sigue las siguientes prioridades (compruébelas introduciendo las operaciones indicadas
después del promt):
1. Cantidades entre paréntesis, por ejemplo: 2 + (3+4) = 2 + 7 = 9.
2. Potencias, esto es: 2 + 3^2 = 2 + 9 = 11
3. * /, De izquierda a derecha: 8/2*3 = 4*3 = 12
4. + -, De izquierda a derecha 5 – 3 + 7 = 2 +7 = 9

IV.5 Variables
La sintaxis general de MATLAB es la siguiente:
El programa MATLAB hace diferencia entre mayúsculas y minúsculas.

En matlab se pueden crear y modificar variables con la siguiente estructura: escalar, vector, matriz y
cadenas.
a) Defina las siguientes variables escalares R, L y C, asignándoles los siguientes valores
>> R=220; C=0.33e-6; L=20e-3; con éstos comandos se asigna el valores numéricos a las
variables R, C y L.
Ejecute la siguiente línea de comando >> whos; describa el resultado mostrado en la pantalla

b) Defina una variable en forma de cadena


>> y=’cadena’ ésta línea de comando asigna a la variable y una cadena de caracteres. Éste
tipo de variables se utilizan , principalmente, para la transferencia de datos (información) entre
funciones y/o rutinas de programación.
Ejecute la siguiente línea de comando >> whos; describa el resultado mostrado en la pantalla
En los cálculos de matlab se pudo observar que el resultado se presenta en la variable ans, dicha
variable se puede utilizar para realizar otros cálculos, por ejemplo introduzca la siguiente operación
(después del promt) ans*5 y obtendrá ans = 45 (respuesta que se obtiene siguiendo la secuencia antes
propuesta).

Los nombres válidos para las variables deben iniciar con una letra y pueden ser cualquier
combinación de letras y caracteres alfanuméricos, sin espacios. Se debe decir, en éste punto, que
existen algunos nombres sólo utilizados por matlab, como el número pi, eps, y la variable imaginaria
(i y j).

IV.6 Funciones elementales


Matlab reconoce las funciones trigonométricas sin(x), cos(x) y tan(x) (con las funciones inversas
asin(x), acos(x) y atan(x)), donde x = argumento debe ser radianes para las funciones directas.

Introduzca la siguiente línea, después del promt: >> sin(0.5236), deberá obtener como resultado ans
= 0.5
Introduzca la siguiente línea, después del promt: >>cos(1.0472), deberá obtener como resultado ans =
0.5

Las funciones sqrt, exp, log, log10 son algunas otras de las funciones que puede ejecutar matlab.
Introduzca la siguiente línea, después del promt: >> x = 9, sqrt(x), exp(x), log(sqrt(x)), log10(x^2+6)
, deberá obtener los siguientes resultados parciales (presentados en forma vertical): 3, 8.1031e+03,
1.0986, 1.9395.

IV.7 Estructura de los Datos en MatLab


Ingreso de datos
La forma de ingresar los datos, puede ser de alguno de los tipos siguientes: Un escalar, un vector o
una matriz

Un sólo dato, por ejemplo A=8.7 es un escalar.


Si una matriz tiene un solo renglón (escribiendo los caracteres separados por comas o espacios) o una
sola columna (escribiendo los caracteres separados por punto y coma), entonces se ingresó un vector;
conocidos como un vector renglón o un vector columna. B=12.56 36.47

Matriz
El tamaño de una matriz se especifica por el número de renglones y de columnas; así, es una
matriz de 3x3. Un dato de una matriz se puede identificar por los subíndices; así representa el
dato 90 de la matriz , si una matriz contiene m renglones y n columnas, entonces contiene un total
de m x n valores; así, es una matriz de tamaño 3x3.

ESTILO
Matlab es sensible a la diferencia entre mayúsculas y minúsculas, así que los nombres “Dato, DATO
y dato” representan tres variables distintas.

DEFINICIÓN DE UNA MATRIZ


La forma más sencilla de definir una matriz es usar una lista de números, como:
A=[8.7]
B=12.56 36.47
La matriz W se puede ingresar como:
W=[1 34 90; 59 12 67; 22 -9 37]

W =[1 34 90
59 12 67
22 -9 37]

PUNTOS SUSPENSIVOS Si hay demasiados números en un renglón de una matriz para que
quepan en una línea, podemos continuar la instrucción en la siguiente línea, pero se requiere una
coma y tres puntos al final de la línea para indicar que la renglón debe continuar.

Ejemplo:
H=[-2,0,-3,4,-3,-4,5,0,0,2,1,1,1,3,4,-0.2]

Que también se puede escribir como:


H = [-2,0,-3,4,-3,-4,...
5,0,0,2,1,1,1,3,4,-0.2]

MATLAB también permite definir una matriz que ya se definió:


Ejemplo:
B =[1.5,4.1]
D = [-4,B] este comando equivale a
D = [-4,1.5,4.1]

También podemos modificar los valores de una matriz o agregar valores adicionales usando una
referencia a un lugar específico. Por ejemplo:
D(3) = 6 Cambia el tercer valor de la matriz D del valor 4.1 por 6, para quedar como:
D = [-4,1.5,6]
Así también logramos extender una matriz definiendo nuevos elementos.
Si ejecutamos el siguiente comando
D(4)=2.5; La matriz D tendrá cuatro valores en lugar de tres, así D se verá como

D = [-4, 1.5, 6, 2.5];

Escriba las siguientes sentencias:

1.- B=[2;4;6;10] % Lo que define un vector columna.

2.- C=[5,3,5;6,2,-3] % Lo que define una matriz de 2x3.

3.- E=[3,5,10,0;0,0,...
0,3;3,9,9,8] % La coma y tres puntos para continuar la línea.

4.- T=[4,24,9]

Q=[T,0,T] % Intercala el valor de 0 entre los dos vectores.

5.- V=[C(2,1);B] % De la matriz C selecciona el valor de y lo agrega al vector B

6.- A(2,1)=-3 % Crea una matriz A y le asigna el Valor de -3 al elemento

El operador de dos puntos es útil para generar matrices nuevas;

Si se usa el operador dos puntos para separar dos enteros, el operador de dos puntos generara todos
los enteros entre los dos enteros especificados.

n=1:10 % Este operador es especialmente útil


para generar los índices de tiempo de
una señal en tiempo discreto.

También se usa el operador dos puntos para separar tres números, el operador de dos puntos generará
valores entre el primer número y el tercero, usando el segundo número como incremento:

t=0.0:0.5:6.0 % Este operador es especialmente útil


para generar los índices de tiempo
continuo o un dominio de una función
analógica.

El incremento también puede ser negativo

r =15:-1:0

Funciones especiales para generar matrices nuevas.

El comando size devuelve dos argumentos

C= [1, 2, 3; 4, 2, 5];
D = ones(size(C))

Operaciones con escalares, vectores y matrices:

Ingrese el enunciado de asignación siguiente;


a=3;
b=[2,6,4];
c=[4,10,2];
los vectores y matrices pueden multiplicarse por un escalar:

a*b

ans es el nombre dado a un resultado cuando el usuario no le asigna un nombre.

Un escalar puede sumarse a un vector o matriz:

a+c

La suma de un escalar a un vector o matriz sólo añade el escalar a cada elemento del vector o matriz
la resta se define de manera similar:

a-b

Los vectores y matrices se suman (o restan) como lo hacemos en matemáticas, esto es, los dos
vectores o matrices deben tener la misma forma para sumarse o restarse a menos que uno de ellos sea
un matriz de 1*1, un escalar, como lo vimos antes:

b+c
c-b

Los vectores y las matrices se multiplican de acuerdo a las reglas del álgebra matricial:

b*c

Este resultado ilustra un error común en Matlab. Las matrices deben ser conformables para ser
multiplicadas utilizando el operador *. La premultiplicación de un vector renglón de 1x3 como c por
un vector renglón de 1x3 como b no está definida. Sin embargo si c se transpusiera a un vector
columna 3x1, se definiría la multiplicación. La transposición se efectúa con el operador '
(apostrofe).
c'
b*c'
este es el producto bcT.

Operaciones elemento por elemento:


A menudo es muy útil multiplicar dos vectores o matrices de la misma forma, elemento por
elemento en vez de utilizar las reglas usuales de la multiplicación de matrices. Ese tipo de
multiplicación se denomina multiplicación del arreglo en Matlab y se lleva a cabo utilizando el
operador .*
Las operaciones elemento por elemento, u operaciones de arreglos, no sólo se aplican a operaciones
entre dos matrices del mismo tamaño, si no también a operaciones entre un escalar y un no escalar.

Así pruebe las instrucciones de cada uno de los siguientes juegos:


A=[4,3,2,4,6];
C=3.*A
G=A./5

Las vectores resultantes C y G tendrán el mismo tamaño que A.


A fin de ilustrar las operaciones de arreglos para vectores, considere los dos siguientes vectores
renglón:

B=[-6,3,-2,4,6];

Calculemos el producto de arreglos de A y B usando las siguientes instrucciones:

L=A.*B

El comando de división de arreglos,

F=A./B

Asimismo la exponenciación de arreglos también es una operación elemento por elemento ejemplos;

Z=A.^2
M=A.^B

También podemos usar una base escalar con un exponente vector


como;

P=3.^A

Los ejemplos anteriores utilizaron vectores, pero las mismas reglas se aplican a matrices con
renglones y columnas, como lo podrás constatar declarando la matriz 'd' ejecutando las operaciones
indicadas:

d=[1:6;-1:-1:-6];
f=d.*6
w=d.^2

IV.8 Polinomios y Funciones de Transferencia


MatLab representa a los polinomios como si fueran vectores, los cuales contienen los
coeficientes del polinomio ordenados de la mayor a la menor potencia. Por ejemplo, para el
polinomio, 3s+2234 se debe crear el vector
» p = [1 2 3 4];
Las raíces de la ecuación algebraica que se obtiene al igual el polinomio a cero se pueden obtener
utilizando la instrucción
» roots(p)
si se cuenta con las raíces se puede formar el vector que representa al polinomio en MatLab
mediante la instrucción poly( [ ] ), por ejemplo

» p2 = poly([-1 -2])
Para evaluar el polinomio en un punto se utiliza la instrucción

» ps=polyval(p,s)

donde p es el vector que representa al polinomio en MatLab y s es el punto en el cual se desea


evaluar. Puede evaluarse al polinomio en un conjunto de valores si s se define como un vector.

Para la multiplicación de polinomios se maneja la instrucción

» c =conv([1 1],[12])

y para la división:

» d = deconv([1 3 2],[1 1])

Para que MatLab presente el en forma de fracción se utiliza

» printsys(num, den)

IV.9 Representaciones Gráficas

IV.9.1 GRAFICA x-y:


Gráficas x vs. y sencillas. Suponga que se desea graficar los resultados de un experimento, y
se cuenta con una tabla de datos.
x y
1 158.5
2 93.8
3 84.2
4 77.3
5 111.5
6 88.3
7 100.1
8 65.6
9 90.5
10 149.4

Pruebe generar esta gráfica: creando un vector llamado x con los Si se agrega un tercer argumento en
el comando datos:

x = [1 2 3 4 5 6 7 8 9 10];

y un vector llamado y con los datos:

y = [158.5 93.8 84.2 77.3 111.5 88.3 100.1 65.6 90.5 149.4];

plot (x, y)

Se genera automáticamente la gráfica.


También es posible dibujar una retícula sobre la gráfica mediante el uso del comando:

grid

IV.9.2 Trazado de funciones elementales


Suponga que deseamos trazar una gráfica de una función particular, por ejemplo y  cos 2.5 x  .
Para hacer el trazado suponga que muestreamos la función en un número suficiente de puntos y
después los unimos por líneas rectas. Tomaremos N+1 puntos espaciados una distancia constante h.
Introduzca la siguiente línea >> N=10, h = 1/N, x=0:h:1 – Para definir el número de muestras, el
espaciamiento entre muestras y la variable de argumento de la función a graficar. Ejecute las
siguientes líneas de comando.
>> y = cos(2.5*pi*x);
>> plot(x,y)
Mantenga la gráfica (no la borre) e introduzca la siguiente línea >> figure – Para abrir una nueva
ventana para la siguiente figura. Ejecute las siguientes líneas de comando.
>> N=30, h = 1/N, x=0:h:1;
>> y = cos(2.5*pi*x);
>> plot(x,y)
Observe las figuras obtenidas (se pueden visualizar las dos al mismo tiempo). Justifique las
diferencias entre éstas.
Introduzca el comando >> grid – Revise las gráficas y describa el cambio realizado por el comando
grid. ¿A qué gráfica afectó el comando grid?, ¿Cómo se puede afectar a las dos gráficas con el
comando grid?

V.9.3 Etiquetado, estilos y colores de líneas.


Los siguientes comandos permiten documentar un resultado gráfico, poniendo título y etiquetas para
ambos ejes coordenados.
Para etiquetar y poner título a una gráfica introduzca los siguientes comandos
>> title(‘Grafica de prueba’)
>> xlabel (‘Etiqueta para el eje x’)
>> ylabel(‘Etiqueta para el eje y’)
¿A qué gráfica afectaron los comandos?, ¿Cómo se puede afectar a las dos gráficas con los
comandos?

Estilos y colores de líneas para las gráficas


Con el fin de hacer a las gráficas más atractivas y distinguibles se pueden introducir comandos en
matlab que permiten cambiar el color y el tipo de línea de la gráfica.
Introduzca la siguiente línea.
>> plot (x,y,’m-‘)

• title escribe un título en la parte superior para nombrar a la gráfica.


• xlabel permite escribir un nombre al eje x de la gráfica.
• ylabel permite escribir un nombre para el eje y de la gráfica.
• legend indica lo que representa cada curva de la gráfica.

plot éste define el color y el estilo de la gráfica. Es una cadena la que determina el color de la línea,
estilo de la misma y los símbolos (si los hay) utilizado para los puntos de marca, por tanto intente dar
elegancia a su grafica anterior agregando al comando plot:

plot(x,y,'ro');grid

Pruebe algunos cambios en color y tipo de línea para la gráfica que venimos trabajando, de acuerdo
con la Tabla 1.
LISTA DE CARACTERES

COLOR MARCADOR ESTILO DE LINEA


y amarillo . punto - continua
m magenta o circulo : punteada
c cian x marca x -. guión-punto
r rojo + más -- Discontinua
(guionada)
g verde * asterisco
b azul s cuadrado
w blanco d diamante
k negro v triangulo(hacia
abajo)
^ triangulo (hacia
arriba)

Las gráficas generadas con matlab se pueden almacenar e incluir en otros archivos en diferentes
formatos. En la ventana de la gráfica seleccione el menú despleglable “File” y elija la opción
“Export”, elija algún formato, por ejemplo .bmp, y exporte la gráfica.

V.9.4 Graficas lineales y logarítmicas:


La mayor parte de las gráficas que generamos dan por hecho que los ejes x vs. y se dividen en
intervalos espaciados uniformemente; estas gráficas se llaman gráficas lineales. Una escala
logarítmica (de base 10) es útil cuando una variable abarca varios órdenes de magnitud.

Los comandos MATLAB para generar gráficas lineales y logarítmicas de los vectores x y y son los
siguientes

plot(x,y) Genera una gráfica lineal con los valores de x y y.


semilogx(x,y) Genera una gráfica de los valores de x y y usando una escala logarítmica para
x y una escala lineal para y.
semilogy(x,y) Genera una gráfica de los valores de x y y usando una escala lineal para x y
una escala logarítmica para y.
loglog(x,y) Genera una gráfica de los valores de x y y usando escalas logarítmicas tanto
para x como para y.

V.9.5 Graficas múltiples:


Una forma sencilla de generar curvas múltiples en la misma gráfica es usar múltiples argumentos en
un comando de graficación, como en

plot(t,x,t,y) Al ejecutarse este programa, se traza la curva correspondiente a x versus t, y luego se


traza en la misma grafica la curva correspondiente y versus t.

Código No.1

v1=[0:0.001:.7979];
w1=298;
q=1.6022e-19;
n=1.5;
k=1.38e-23;
num1=q.*v1;
den1=n*k*w1;
M1=num1./den1;
x1=1e-9.*exp(M1);
v2=[0:0.0001:.6379];
w2=358;
num2=q.*v2;
den2=n*k*w2;
M2=num2./den2;
x2=1024e-9.*exp(M2);
plot(v1,x1,'b',v2,x2,'r');title('Ecuación del diodo'); legend('TEMPERATURA 298 K',
'TEMPERATURA 358 K');grid

V.9.6 Subgráficas:
El comando subplot permite dividir la pantalla de gráficos en ventanas. Las posibles divisiones
pueden ser dos ventanas o cuatro ventanas o incluso 8 ventanas en una hoja.. Los argumentos del
comando subplot son tres enteros: (m, n, p). Los dígitos m y n especifican que la ventana de gráficos
se divida en una retícula de m por n ventanas más pequeñas, y el digito p especifica la p-ésima
ventana para la gráfica actual (donde se ubica esta grafica) . Las ventanas se numeran de izquierda a
derecha y de arriba abajo.
Por ejemplo el siguiente comando subplot(2,1,1);plot(x,y) especifica que la ventana de gráficos se
divida en una grafica superior y una inferior ( dos líneas de graficas en una columna ) y que la
grafica actual plot(x,y) se coloque en la ventana superior ver código No. 2.

El siguiente juego de instrucciones genera cuatro graficas que ilustran la función del comando
subplot empleando escalas lineales y logarítmica.

Código No. 2
t=[0:0.001:1];
f=2;
w=2*pi*f;
x=((1/2).*(1+cos(2*w.*t)));
subplot(2,2,1);plot(t,x,'r','linewidth',2);grid
subplot(2,2,2);semilogx(t,x,'b','linewidth',2);grid
subplot(2,2,3);semilogy(t,x,'r','linewidth',2);grid
subplot(2,2,4);loglog(t,x,'b','linewidth',2);grid

Código No. 3
t=[-6*pi:0.001:6*pi];
w1=2/3;
w2=1/2;
w3=1/3;
x1=2.*sin(w1.*t);
x2=3.*sin(w2.*t);
x3=4.*sin(w3.*t);
plot(t,x1,'b',t,x2,'r',t,x3,'k','linewidth',2);title('Cada senoidal completa un numero entero de
ciclos');grid

IV.10 Ambiente de programación.


Una poderosa herramienta de propósito general que tiene matlab es la herramienta de programación,
dicha herramienta se puede utilizar de una forma tan simple como una calculadora aritmética ó como
una ambiente de solución de ecuaciones diferenciales no lineales.
A continuación se muestran, de manera general, las secuencias de control necesarias para la
programación. Así como, una forma de utilizar el ambiente de depuración de programas de matlab.
Matlab cuenta con un editor de texto que se utiliza para la edición y depuración de programas y/o
funciones de matlab.
Para iniciar el editor de matlab en la pantalla principal elija el menú desplegable “File” y elija la
opción “New”. Deberá aparecer la pantalla del editor de archivos *.m.
Copie línea por línea el siguiente texto al editor de archivos .m de matlab

Código No. 4

% Ejemplo de archivo script que genera las gráficas de pétalos de una flor %

theta = -pi:0.01:pi; % Asignación de una variable (theta)


rho(1,:) = 2*sin(5*theta).^2; % Cálculo de las componentes
rho(2,:) = cos(10*theta).^3;
rho(3,:) = sin(theta).^2;
rho(4,:) = 5*cos(3.5*theta).^3;

for k = 1:4
polar(theta,rho(k,:)) % Gráfica de las salidas
end % Fin de secuencia y de programa

Limpie el espacio de trabajo con la instrucción


>> clear all
Verifique que el espacio de trabajo esté limpio, con la siguiente línea de comando.
>> whos – No deberá aparecer alguna variable o constante en el espacio de trabajo
En el menú desplegable “File” (del editor de matlab), elija “Save as” asigne nombre al archivo, por
ejemplo: tutoprogram.m y sálvelo en alguna carpeta conocida. Presione la tecla F5 o hacer clic en la
punta de flecha de color verde localizada en la barra de herramientas, deberá aparecer una figura que
corresponde con el cuarto cálculo expresado en el programa.

Para correr línea por línea el Script, siga las siguientes instrucciones:

Ubique el cursor en cada uno de los renglones del programa, con excepción de la línea del comando
“for”,
Coloque el cursor en cada línea y establezca un punto de ruptura de programa (“Breakpoint”).
Localice el icono Breakpoints despliegue el menú de cortina y seleccione Set/clear “ Set or clear
breakpoint on current line” (F12). En la extrema izquierda de las líneas aparecerá un punto rojo.
En cuanto termine de establecer los puntos de ruptura de programa retorne el cursor a la primera
línea de instrucciones theta = -pi:0.01:pi;
Localice el icono Run y del menú desplegable elija la opción “Run: nom-del-archivo”. La ejecución
del programa deberá detenerse en la primera línea con punto rojo aparecerá una flecha de color verde
al lado derecho del punto rojo que indica que se a ejecutado la primera línea del código , esto es, en
la definición de theta.
Elija el icono “Step” y de clic izquierdo en el ratón (F10) la flecha que indica la línea a ejecutar se
detendrá en la siguiente línea con punto rojo, haga esto reiteradamente hasta recorrer el primer siclo
del “for”
Revise el contenido de la ventana “Figure 1”, encontrara la grafíca que corresponde a k=1
Regrese al espacio de trabajo y revise su contenido con el comando
>> whos – deberá aparecer la variable theta.
Continúe paso a paso la ejecución del programa, revisando para cada valor de k el contenido la
ventana “Figure 1” y del espacio de trabajo (Command Window). Terminando con las gráficas
generadas.

Al terminar la ejecución aparecerá el icono de la flecha verde apuntando hacia abajo lo que indica
que ha terminado el siclo del “for”

Describa brevemente lo que entendió con el programa anterior.


V. Hoja de Resultados (para presentar en el reporte)
Observe y reporte la variación de la respuesta a los usos del comando:
help
help lang
help comando, ejemplo >> help sin

Cree un diario de la práctica de MATLAB (que se encuentra desarrollando en este momento) con el
comando diary (y como nombre del diario prueba) y guarde en el todas las operaciones siguientes
hasta que se le indique cerrar el diario.

Escriba las líneas en la ventana Command Window

A=1,B=2,C=3
save numeros

Al terminar de escribir las dos líneas anteriores, revise la ventana Current Directory ¿Qué
archivos encuentra adicionales a los ya existentes (si es el caso), ¿Qué utilidad le representaria
el archivo números?, ¿Qué utilidad le representaria el archivo prueba?

Escriba las siguientes líneas en la ventana Command Window

Home
load numeros
whos
A,B,C

Explique qué utilidad tienen las cuatro líneas anteriores

Escriba las siguientes líneas una a la vez en la ventana Command Window, pulse la tecla de enter
observe el resultado y presente en el reporte cual es la función de cada línea.

W=[1 34 90; 59 12 67; 22 -9 37]


H = [-2,0,-3,4,-3,-4,...
5,0,0,2,1,1,1,3,4,-0.2]
D =[1.5,4.1]
E = [-4,D]
E(3) = 6
F=[2;4;6;10]
G=[5,3,5;6,2,-3]
V=[G(2,1);F]
I(2,1)=-3
n=1:10
t=0.0:0.5:6.0
J= [1, 2, 3; 4, 2, 5];
K = ones(size(J))
a=3;
b=[2,6,4];
c=[4,10,2];
a*b
a.*b
a+c
a-b
b+c
c-b
b*c
b.*c
c'
b*c'
d=[1:6;-1:-1:-6];
f=d.*6
w=d.^2

Cierre el diario.

Limpie la pantalla; ya sea con home o clc (¿Cuál es la diferencia entre las dos instrucciones?)

¿Cuál es la función de? “ ;” , “…” , “:” , del operador “.”

Abra otro diario y dele el nombre de pruebaB


En en diario pruebaB cree el polinomio, 3s+2234 (con el nombre p), encuentre
las raíces de la ecuación algebraica que se obtiene al igualar el polinomio a cero

Contando con con las raíces -1 y -2 forme el vector (p2) que representa al polinomio en
MatLab mediante la instrucción poly( [ ] )

Evalue el polinomio p2 en los puntos s= [1 2 3 4 5 6 7 8 9 10] y dele el npmbre ps al polinomio


resultante

Ingrese a la ventana las líneas siguientes y comente cual es la operación que realizan.
c =conv([1 1],[12])
d = deconv([1 3 2],[1 1])

Presente en forma de fracción los siguientes polinomios con la instrucción printsys


num= [1 2 3 4 5 ]
den= [1 2 3 4 5 6 ]

Genere una esta gráfica con los vectores llamados:

x = [1 2 3 4 5 6 7 8 9 10];
y = [158.5 93.8 84.2 77.3 111.5 88.3 100.1 65.6 90.5 149.4];

Dibuje una retícula sobre la gráfica, abra una nueva ventana para la siguiente figura. Ejecute las
siguientes líneas de comando.

N=30, h = 1/N, x=0:h:1;


y = cos(2.5*pi*x);
plot(x,y)
grid

Ponga título y etiquetas para ambos ejes coordenados en las dos graficas, cambie el color y el tipo de
línea de una de las dos graficas.

Cierre el diario

Abra otro diario y dele el nombre de pruebaC


Corra los 4 códigos que instrucciones que aparecen en esta práctica y guárdelos en pruebaC ,
después de cada uno de los códigos escriba la instrucción figure para tener a la vista todas las
graficas y cierre el diario

Corra los mismos 4 códigos desde el editor de MatLab, el código número 4 córralo paso a paso

Reporte a su profesor el contenido de cada uno de los tres diarios y las graficas de la ejecución del
código número 4 con las 4 graficas que se generan

Describa el propósito de las líneas de código siguientes.

Código No. 1
k=1.38e-23;
num2=q.*v2;
den2=n*k*w2;
M2=num2./den2;
x2=1024e-9.*exp(M2);
plot(v1,x1,'b',v2,x2,'r');title('Ecuación del diodo'); legend('TEMPERATURA 298 K',
'TEMPERATURA 358 K');grid

Código No. 2
f=2;
w=2*pi*f;
subplot(2,2,1);plot(t,x,'r','linewidth',2);grid
subplot(2,2,4);loglog(t,x,'b','linewidth',2);grid

Código No. 3
x3=4.*sin(w3.*t);
plot(t,x1,'b',t,x2,'r',t,x3,'k','linewidth',2);title('Cada senoidal completa un numero entero de
ciclos');grid

Código No. 4

% Ejemplo de archivo script que genera las gráficas de pétalos de una flor %

rho(3,:) = sin(theta).^2;
rho(4,:) = 5*cos(3.5*theta).^3;

for k = 1:4
polar(theta,rho(k,:))
end

Nombre: _______________________________

Vl. Anexo
Comandos de Propósito General

Caracteres y operadores especiales

+ Operador suma.
- Operador resta.
* Operador multiplicación.
.* Operador multiplicación elemento a elemento.
^ Operador potencia.
.^ Operador potencia elemento a elemento.
\ Operador división izquierda.
/ Operador división derecha.
.\ Operador división izquierda elemento a elemento.
./ Operador división derecha elemento a elemento.
: Genera elementos regularmente espaciados en vector renglón.
() Indica el argumento de una función o el índice de una matriz. Tiene la más alta precedencia.
[] Agrupa los elementos de una matriz.
. Punto decimal.
Operación de continuación de línea.
, Separa sentencias y elementos declarados en un mismo renglón.
; Separa columnas y suprime la impresión a pantalla.
% Designa un comentario y especifica el formato.
` Operador transponer.
= Asignación.

Comandos para administración de sesión

clc Limpia la ventana de comandos (Command Window).


clear Limpia la memoria; elimina cualquier variable.
exist Verifica la existencia de un archivo o variable.
global Declara una variable global.
help Busca ayuda para el tópico seleccionado.
lookfor Busca ayuda para una palabra clave.
quit Detiene la ejecución de MATLAB.
who Lista las variables actuales.
whos Lista las variables actuales indicando tipo y características.

Funciones Matemáticas

exp (x) Función exponencial


log (x) Función logaritmo natural
log10 (x) Función logaritmo base 10
sqrt (x) Raíz cuadrada
acos (x) Ángulo cuyo coseno
acot (x) Ángulo cuya cotangente
asec (x) Ángulo cuya secante
asin (x) Ángulo cuyo seno
atan (x) Ángulo cuya tangente
atan2 (y,x) Ángulo cuya tangente (cuatro cuadrantes)
cos (x) Función coseno
cot (x) Función cotangente
csc (x) Función cosecante
sec (x) Función secante
sin (x) Función seno
tan (x) Función tangente
abs (x) Función valor absoluto
angle (x) Ángulo del número complejo
conj (x) Conjugado complejo
imag (x) Parte imaginaria de x
real (x) Parte real de x
erf (x) Cálculo de la función error
mean (x) Cálculo del promedio
median (x) Cálculo de la mediana
std (x) Cálculo de la desviación estándar
rand (x) Genera uniformemente distribuidos números aleatorios entre 0 y 1
randn (x) Genera normalmente distribuidos números aleatorios

Variables especiales y constantes

ans Almacena la respuesta más reciente.


eps Exactitud relativa del punto flotante.
i, jLa unidad imaginaria -1 .
Inf Infinito.
NaN Resultado numéricamente indefinido (Not a Number).
pi El número π.

Comandos de sistema y archivo

cd Cambia el directorio actual


date Muestra la fecha actual
delete Borra un archivo
diary Enciende/apaga el archivo de registro diario
dir Lista todos los archivos del directorio actual
load Carga variables desde un archivo al espacio de trabajo
path Muestra la ruta actual
pwd Muestra el directorio actual
save Guarda las variables del espacio de trabajo a un archivo
type Muestra el contenido de un archivo
what Lista todos los archivos de MATLAB en el directorio
wklread Lee archivos de hojas de cálculo .wkl

Comandos para el manejo de matrices

cat Concatenación de matrices


find Localiza los índices de los elementos no cero
lenght Calcula el número de elementos
linspace Crea vectores linealmente espaciados
logspace Crea vectores logarítmicamente espaciados
max Regresa la magnitud del elemento más grande
min Regresa la magnitud del elemento más pequeño
prod Producto de cada columna
reshape Cambia el tamaño de la matriz
size Calcula el tamaño de la matriz
sort Ordena cada columna
sum Suma de cada columna

Matrices especiales

eye Matriz identidad


ones Crea una matriz de sólo unos
zeros Crea una matriz de sólo ceros

Aritmética de matrices

cross Producto cruz


dot Producto punto

Comandos para la solución de ecuaciones lineales con matrices

det Calcula el determinante de una matriz


inv Calcula la inversa de una matriz
pinv Calcula la pseudoinversa de una matriz
rank Calcula el rango de una matriz
rref Escalonamiento de los renglones de una matriz
Comandos básicos para graficar en 2D (xy)

axis Ajusta los límites de los ejes


fplot Gráfica de funciones
grid Despliega una malla sobre la gráfica
plot Grafica en dos dimensiones (plano xy)
print Impresión de la gráfica
title Agrega título a la gráfica
xlabel Etiqueta el eje x
ylabel Etiqueta el eje y

Formatos de despliegue numérico

format short Cuatro dígitos decimales (opción por defecto).


format long 16 dígitos decimales.
format short e Cinco dígitos mas el exponente.
format long e 16 dígitos mas el exponente.
format bank Dos dígitos decimales.
format + Positivo negativo o cero.
format rat Aproximación racional.
format compact Suprime líneas de entrada.
format loose Reajusta al modo compacto.

Comandos gráficos 2D

axes Crea objetos de los ejes


close Cierra la gráfica
close all Cierra todas las gráficas
figure Abre una ventana nueva de figura
gtext Habilita la colocación de etiquetas con el ratón
hold Congela la gráfica actual
legend Coloca una leyenda mediante el ratón
refresh Redibuja la gráfica en la ventana actual
set Especifica propiedades de los objetos gráficos
subplot Crea gráficas en subventanas de una ventana de figura
text Coloca textos en la figura

Comandos gráficos especiales

bar Histograma
loglog Gráfico logarítmico
polar Gráfico polar
semilogx Gráfico semilogarítmico en x
semilogy Gráfico semilogarítmico en y
stairs Gráfico a segmentos
stem Gráfico a espigas
Comandos gráficos 3D
contour Crea gráfica de contorno
griddata
mesh Crea superficie tridimensional
meshgrid Crea malla rectangular
meshc Igual que mesh con contorno
meshz Igual que mesh con líneas verticales
plot3 Crea gráfica tridimensional con puntos y líneas
surf Crea gráficas tridimensionales con sombreado
surfc Igual que surf con contorno
waterfall Igual que mesh con líneas en una sola dirección
zlabel Agrega etiqueta en el eje z

Comandos para el manejo de variables simbólicas

class Regresa la clase de una expresión


digits Ajusta el número de dígitos decimales empleados para variables de precisión
aritmética
double Convierte una expresión a su forma numérica
ezplot Genera una gráfica a partir de una expresión simbólica
findsym Encuentra las variables simbólicas en una expresión simbólica
numden Regresa el numerador y el denominador de un expresión
sym Crea una variable simbólica
vpa Ajusta el número de dígitos para evaluar una expresión
expand Expande la expresión
factor Factoriza
poly2sym Convierte los coeficientes de un polinomio a un polinomio simbólico
pretty Reescribe la expresión de forma matemática
simple Busca la expresión más simple
simplify Simplifica una expresión empleando las reglas de simplificación de MAPLE
subs Sustituye variables en una expresión simbólica
sym2poly Convierte una expresión simbólica a polinomial
diff Derivada de la expresión
dirac Función delta de Dirac
heaviside Función de Heaviside
int Integra la expresión
limit Calcula el límite de la expresión
symsum Realiza la suma de variables simbólicas
taylor Calcula la serie de Taylor
solve Resuelve ecuaciones simbólicas
dsolve Resuelve ecuaciones diferenciales simbólicas
ilaplace Calcula la transformada inversa de Laplace
laplace Calcula la transformada de Laplace
ifourier Calcula la transformada inversa de Fourier
fourier Calcula la transformada de Fourier
det Calcula el determinante simbólico
eig Calcula los eigenvalores de una matriz
inv Calcula la inversa de una matriz
poly Calcula el polinomio característico de una matriz

Operadores lógicos y relacionales


== Igual a
˜=
No igual a
< Menor que
<= Menor o igual que
> Mayor que
>= Mayor o igual que
& Operador lógico AND (Y)
| Operador lógico OR (O)
~
Operador lógico NOT (NO)
xor Operador OR EXCLUSIVO

Programación

break Termina la ejecución de un ciclo


case Permite distintos casos dentro de una estructura switch
else Delimita bloques de sentencias alternativas
elseif Sentencia que se ejecuta condicionalmente
otherwise Opción por defecto en la estructura switch
return Regreso de invocación de función
switch Ejecución directa de un programa por comparación con la expresión
case
warning Despliega un mensaje de advertencia
while Repite la sentencia por un número indefinido de veces

Potrebbero piacerti anche