122
BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA ELECTRÓNICA Curso Básico de MATLAB

Diapositivas Sm

Embed Size (px)

Citation preview

BENEMÉRITA UNIVERSIDAD AUTÓNOMA

DE PUEBLA

FACULTAD DE CIENCIAS DE LA ELECTRÓNICA

Curso Básico de MATLAB

TEMARIO DEL CURSO:

1.- Introducción a MATLAB.

1.1 Desarrollo Histórico.

1.2 Campos de Aplicación.

1.3 Entorno a MATLAB.

1.4 Buscador de Ayuda.

2.- Operaciones con Matrices y Vectores.

2.1 Generar matrices y vectores en MATLAB.

2.2 Suma, resta y multiplicación de matrices y vectores.

2.3 Transpuesta y diagonal de matrices.

2.4 Sumatoria de elementos de la matriz.

2.5 Matrices aleatorias y matrices mágicas.

2.6 Inversa de una matriz.

2.7 Editar matrices.

3.- Expresiones para MATLAB.

3.1 Manejo de variables.

3.2 Representación de números reales y complejos.

3.3 Operadores.

3.4 Funciones elementales matemáticas.

4.- Archivos M-files.

4.1 Editor de Archivos M.

4.2 Comando load para extraer archivos .TXT y .DAT.

4.3 Tipos de formato (short, short e, long, bank, rat, hex. etc).

TEMARIO DEL CURSO:

5. - Toolbox Symbolic Math.

5.1 Representación de polinomios.

5.2 Comando sym y pretty.

5.3 Comando simplify (f). 5.4 Comando expand (f). 5.5 Comando factor (f). 5.6 Aplicaciones en cálculo.

6.- Gráficos.

6.1 Gráficos en 2D.

6.2 Personalizar Graficas.

6.3 Representación de funciones en gráficos.

TEMARIO DEL CURSO:

6.4 Comando subplot.

6.5 Comandos de colores.

6.6 Contornos y sombras.

6.7 Graficas en 3D.

6.8 Comando mesh.

7.- Programacion en MATLAB

7.1 Operadores relacionales.

7.2 Condicionales (if, ifelse).

7.3 Ciclo FOR.

7.4 Ciclo While.

TEMARIO DEL CURSO:

7.5 Switch y Case.

7.6 Break.

TEMARIO DEL CURSO:

Visualizar los diferentes campos de aplicación de MATLAB.

Conocer y comprender el ambiente de trabajo de este software.

Conocer todas las funciones que nos brinda MATLAB para hacer

operaciones con matrices y vectores.

Poder resolver cualquier problema matemático de forma más versátil.

Utilizar los diferentes tipos de datos para aprender el lenguaje de

programación de MATLAB.

Representar nuestros resultados de forma grafica.

Simular sistemas dinámicos para el área de control mediante

SIMULINK (aplicación de MATLAB para sistemas no lineales).

No tengan ningún conocimiento previo MATLAB.

Estén relacionadas con las áreas de ciencias exactas e

ingeniería.

Estén interesadas en utilizar MATLAB como herramienta

para resolver problemas matemáticos, de ciencia e

ingeniería.

INTRODUCCIÓN A MATLAB

CAPITULO I

Matlab Surge de los proyectos LINPACK y EISPACK

La empresa MathWorks es fundada en 1984.

The Mathworks es líder en el desarrollo de software de computación

técnica, además la empresa tiene más de 1 millón de usuarios

alrededor del mundo.

The Mathworks tiene más de 1,000 empleados trabajando en el

desarrollo de las herramientas MATLAB y SIMULINK para innovar

tecnología en empresas, laboratorios gubernamentales, instituciones

financieras y en más de 3,500 Universidades.

MATLAB Matrix Laboratory

MATLAB es un software matemático muy versátil que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M), que es un conjunto de comandos o funciones que realizan tareas específicas y dispone de más de 30 librerías especializadas llamadas “Toolboxes” las cuales trabajan en áreas especiales como Control, Coumunicaciones, Procesamiento de Señales, etc.

Aplicaciones:

Matemáticas, estadística y análisis de datos.

Desarrollo de algoritmos.

Adquisición y procesamiento de datos.

Prueba, modelado y simulación de prototipos.

Análisis, manipulación y visualización de datos.

Diferentes tipos de Graficación.

Desarrollo de aplicaciones con Interfaces Gráficas de Usuario.

1

3 2

4

5

1

3 2

4

5

MATLAB dispone de varios menús los cuales varían de acuerdo a

la ventana que se encuentre activa

Dentro de las características que se pueden configurar con estos

menús se encuentran:

Crear, salvar e importar diferentes tipos de archivos usados por

MATLAB

Configurar algunas preferencias de usuario como: tipo y color de

letra, color de fondo del Command Window, formato numérico,

visualización de resultados, etc.

Manipulación y visualización de las ventanas dentro del Desktop

Búsqueda de palabras o archivos en las diferentes ventanas

Uso del Help en MATLAB

USO DEL COMANDO “help”

Utilizamos el comando help para conocer las características de

cierta función, en este caso, al escribir “help magic” vemos la

información de la funcion “magic”.

>> help magic

MAGIC Magic square. MAGIC(N) is an N-by-N

matrix constructed from the integers1 through

N^2 with equal row, column, and diagonal sums.

Produces valid magic squares for all N > 0

except N = 2.

OPERACIONES CON MATRICES Y VECTORES.

CAPITULO II

MATLAB posee una gran variedad de funciones para trabajar con

matrices y vectores.

Las matrices se declaran de la siguiente manera:

Para declarar una nueva fila se escribe un punto y coma (;).

Para declarar una nueva columna se usa un espacio en blanco.

1 5 9 6

6 2 0 8

1 -9 5 -1

A = A = [1 5 9 6; 6 2 0 8; 1 -9 5 -1]

MATLAB soporta todas las operaciones aritméticas entre matrices o vectores siguiendo la teoría, por ejemplo: para sumar dos matrices, deben de ser del mismo tamaño; la multiplicación de una matriz A (mxn) por una matriz B (kxp) debe cumplir que n=k.

>>A + B (suma)

>>A - B (resta)

>>A * B (multiplicación)

>>A‟ (transpuesta)

>>A^2 (potenciación)

>>A \ B (división izquierda A*inv(B)) se usa para la solución de sistemas de ecuaciones

Diapositiva 34

Existe una gran variedad de funciones predefinidas para crear

matrices de todo tipo:

– Matriz de ceros. zeros(m,n)

– Matirz de unos. ones(m,n)

– Matriz identidad. eye(m,n)

– Matriz aleatoria. rand(m,n)

– Matriz mágica. magic(k)

Ayuda: Specialized Matrix Functions

Es posible también realizar manipulaciones y obtener información de las

matrices que se tienen:

– Tamaño de una matriz. size(A)

– Longitud de un vector. length(A)

– Concatenación de matrices. cat(dim, A, B)

– Rotación de matrices. rot90(A,k)

– Matrices triangulares. tril(A,k)

Ayuda: Summary of Matrix and Array Functions

Existen también algunas funciones un poco más elaboradas y complejas

en cuanto a su operación, las cuales realizan tareas como:

– Inversa de una matriz. Inv(A)

– Determinante. det(A)

– Suma de la diagonal. trace(A)

– Reducción de matrices por Gauss-Jordan. rref(A)

– Obtención del polinomio característico. poly(A)

– Obtención de los eigenvalores y eigenvectores. eig(A)

– Rango y nulidad en una matriz. rank(A)

Direccionamiento en vectores.

Para tener acceso a los elementos en un vector se debe de poner el

índice entre paréntesis, el índice siempre empezará siempre por el

número 1.

x = [ 10 3 2 . . . 3 ]

x(1) x(2) x(3) . . . x(n)

Pueden accederse varios elementos a la vez colocando entre paréntesis

un vector de índices

>>x([1 2 3]) acceso a los elementos 1,2 y 3 del vector x

Direccionamiento en vectores.

En lugar de un vector de índices se obtener una matriz con los elementos correspondientes a los índices.

>>x([1 5;9 4]) devuelve una matriz de 2x2 con los elementos que corresponden a los índices 1,5,9 y 4

x = [ 7 10 7 9 1 2 9 5 9 8 ]

x([1 5;9 4])

ans = 7 1

9 9

Direccionamiento de matrices

Existen 2 posibles formas de acceder a los elementos de una matriz:

Con 2 subíndices (i, j) en donde “i” es el número de fila y “j” es el número de

columna.

Con 1 subíndice (i) en donde los elementos se van contando por columnas.

A(2,2) = A(6) se accede al número 11

2 9 7 3

9 7 6 5

8 3 1 5

8 3 1 10

A=

Direccionamiento de matrices

También es posible hacer el direccionamiento por medio de 2 vectores

>>A( [1 3], [ 4 2] ) hace las combinaciones [(1,4) (1,2); (3,4) (3,2)]

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

ans = 1 2

4 10

6 2 1 1

4 9 9 5

5 10 7 4

6 6 8 2

A=

El operador dos puntos puede usarse de 3 formas distintas:

Creador de vectores con incrementos o decrementos.

x=1:10 crea un vector del 1 al 10 con incremento de 1.

x = 1:i:10 crea el mismo vector pero con incremento de i.

Direccionamiento “hasta”.

A(1,2:5) direcciona los elementos de la fila 1, desde la columna

2 “hasta” la columna 5.

x(5:8) direcciona del elemento 5 “hasta” el 8.

Direccionamiento “todo”.

A(3, :) direcciona “toda” la fila 3.

A(: , 1) direcciona “toda” la columna 1.

x(: , end) direcciona “toda” la última columna.

EXPRESIONES PARA MATLAB.

CAPITULO III

El punto y coma (;) al final de una expresión significa que va a realizar

la operación que se le indique pero no va a mostrar los resultados en

pantalla.

Los tres puntos (…) sirven para indicar que la expresión va a

continuar en la línea de abajo.

Cuando la operación no se le asigna a ninguna variable entonces

automáticamente se le asigna a la variable “ans”.

El signo igual(=) es para asignar resultados a una variable

>> variable = expresión.

MATLAB distingue entre mayúsculas y minúsculas en el nombre de

una variable, por ejemplo NO es lo mismo la variable “var” que la

variable “Var”.

El nombre de una variable debe empezar siempre con una letra

seguida de números o más letras u otros caracteres siempre y cuando

no sean caracteres especiales; el nombre puede tener un máximo de

31 caracteres.

Los shorcuts son una forma fácil y rápida de ejecutar un conjunto de

sentencias en MATLAB.

Un shorcut puede ser: una sola sentencia (o función), un conjunto de

sentencias o un archivo M.

Con solo dar click en el shorcut se ejecuta el conjunto de sentencias.

• Por default MATLAB almacena los números en formato de doble

precisión, es decir, en 8 bytes.

• MATLAB puede interpretar el concepto de Infinito con la palabra

“Inf ”(para MATLAB son los números más grandes de lo que es capaz

de representar).

• MATLAB tiene una representación para los números que no están

definidos como tal, llamados “NaN” (Not a Number).

Tanto la representación de NaN como la de infinito permite controlar la

fiabilidad de los resultados que presenta MATLAB.

• MATLAB puede representar y manipular números complejos, las

variables „ i ‟ y „ j ‟ están definidas como “la unidad imaginaria”.

>>z = 4 + 5j ó

>>z = complex(4,5)

• Se debe de tener especial cuidado con las variables „i‟ y „j‟, si se usan

para guardar algún valor numérico dejan de ser la unidad imaginaria.

• Se pueden realizar las operaciones aritméticas entre números

complejos y matrices o vectores que contengan a complejos.

Existen otros operadores llamados “operadores elemento a

elemento” los cuales realizan la operación indicada pero a cada uno de

los elementos que conforman al vector o a la matriz, dichos

operadores tienen la característica de que están precedidos por un

punto (.).

>>A.*B multiplicación: A(i, j) * B(i,j)

>>A.^n potencia: A(i, j)n

>>A .\ B división: B(i, j) / A(i,j)

>>A ./ B división: A(i, j) / B(i,j)

ARCHIVOS M-FILES.

CAPITULO IV

Un archivo-m, o script file, es un simple archivo de texto donde se introducen comandos o instrucciones de Matlab. Cuando se corre el archivo, Matlab lee los comandos y los ejecuta secuencialmente exactamente como si se los estuviera tipeando en ese momento en el prompt. Todo archivo-m debe tener extensión '.m' (ej. plot.m). Si crea un nuevo archivo-m con el nombre de uno que ya existe, Matlab elegirá aquel que aparezca primero en el listado de paths (help path para más información). Para facilitarse la vida, siempre cree sus archivos-m con nombre distinto que los existentes. Para ver si un archivo-m existe, tipee help nombre_archivo.m en el prompt del Matlab .

¿Qué es un Archivo-m?

Ingresar los comandos en el prompt (>> ) del Matlab

es rápido y eficiente si el problema es simple. Sin embargo, a

medida que aumenta la cantidad de comandos, o si se

requiere cambiar los valores de las variables cuando se trabaja

con prueba-error; tipear los comandos una y otra vez se

torna tedioso. De manera que los archivos-m resultan de

gran ayuda y muy necesarios en estos casos.

¿ Para qué usar los archivos-m?

Para crear un archivo-m, elija New en el menu File y

seleccione archivo-m. Este procedimiento levanta el editor

de texto en el cual se pueden escribir los comandos.

Para salvarlo , simplemente pinche en el menú File y elija

Save (recuerde salvar con extensión '.m' ).

Para abrir un archivo-m existente vaya al menú File y elija

Open .

¿ Cómo crear, salvar o abrir un archivo-m?

Después que un archivo-m fué salvado con el nombre

filename.m en la carpeta del Matlab, puede ejecutar los

comandos del archivo-m simplemente tipeando filename en

el prompt del Matlab.

Si no quiere correr todos los comandos del archivo-m ,

puede copiar los que sí quiera del archivo-m y pegarlos en el

prompt del Matlab.

¿ Cómo correr un archivo-m?

Las funciones permiten definir funciones enteramente análogas a las

de MATLAB, con su nombre, sus argumentos y sus valores de

retorno. Los ficheros *.m que definen funciones permiten extender las

posibilidades de MATLAB;

Ejemplo: Queremos crear una función llamada prom.m:

load archivo: lee las variables del fichero binario archivo.mat,

que ha sido previamente generado con MATLAB.

– load archivo.ext: lee el contenido del fichero ASCII

archivo.ext y lo almacena como una única variable de

nombre archivo.

TOOLBOX SYMBOLIC MATH.

CAPITULO V

Un objeto simbólico es una estructura de datos que almacena

una representación string de un símbolo. Este permite

representar variables, matrices y expresiones de forma

simbólica.

Para declarar una variable como simbólica se utiliza la

función sym, o en el caso de varias variables syms.

Objetos simbólicos

Diferencia entre variable

estandar y variable

simbólica:

>> sqrt(2)

>> sqrt(sym(2))

• Visualización:

>> pretty(f)

Objetos simbólicos

Sym & pretty:

>> f = sym('-2 * x^2 + 3* x - 6')

Suma f con g:

>> f = sym('-2 * x^2 + 3* x - 6')

>> g = sym(' x^2 - x +1')

>> h = f + g

O

>> h = sym('(-2 * x^2 + 3* x - 6)+(x^2 - x +1)')

Objetos simbólicos

Sumar, Restar, Multimplicar y Dividir:

>> f = sym('-2 * x^2 + 3* x - 6')

>> g = sym(' x^2 - x +1')

Ejercicios

Objetos simbólicos

Solución:

>> f = sym('(2 * a^3 - 39 * a^2 +15* a^4 -16 * a +10) /(2 - 4 * a - 5* a^2)')

>> simplify( f )

>> pretty(ans)

Objetos simbólicos

Multiplicacion de expreciones algebraicas:

expand( f )

Ejemplo:

>> f = sym('( x - 3) *( x^2 + 3* x + 9)')

>> expand( f )

>> pretty(ans)

Objetos simbólicos

Ejemplo:

>> g = sym('(a - b)^3')

>> expand( g)

>> pretty(ans)

Objetos simbólicos

Ejercicios:

Objetos simbólicos

Factorización:

Ejemplo:

>> f = sym(' x^3 + x^2 + 4 * x + 4')

>> factor( f )

>> pretty(ans)

Objetos simbólicos

Ejemplo:

>> h = sym(' x^5* y^2 - x * y^6')

>> factor(h)

>> pretty(ans)

Objetos simbólicos

Ejercicios:

Objetos simbólicos

Fracciones algebraicas:

Cuando se trabaja con fracciones algebraicas y fracciones

complejas se usa la función simple. En general esta función es

utilizada para simplificar cualquier tipo de expresión. También

es muy útil la función simplify.

Objetos simbólicos

Ejemplos:

Simplificar:

>> f = sym('( x^2 -1) /( x^2 + x - 2)')

>> pretty( f )

>> simple( f )

>> pretty(ans)

Objetos simbólicos

Simplificar:

>> k = sym('1/( x^2 -1) + 2 /( x +1)^2')

>> pretty( k)

>> simple(k )

>> pretty(ans)

Objetos simbólicos

Simplificar:

>> k = sym('( x^ (-1) * y^ (- 2) + x^ (- 2) * y^ (-1) /( y^ (- 2) - x^ (- 2)))')

>> pretty( k)

>> simple(k )

>> pretty(ans)

Objetos simbólicos

Ejercicios:

Objetos simbólicos

Operador

matemático

Comando de

MATLAB

Operador

matemático

Comando de

MATLAB

diff(f) o diff(f,x) limit(f)

diff(f, a) limit(f ,x ,a) o limit(f, a)

diff(f,b,2) limit(f, x, a, „left‟)

J=jacobian([r ; t] , [u , v] limit(f, x, a, „right‟)

Operador matemático Comando de MATLAB

Operador

int(x^n) o int(x^n, x)

int(sin(2*x), 0, pi/2 o int(sin(2*x), x, 0, pi/2

g=cos(a*t+b)

int(g)

o

int(g,t)

Int(besselj(1, z)) o Int(besselj(1, z), z)

GRÁFICOS.

CAPITULO VI

Plot(x,y, 'color y forma')

Graficar datos

t= 0:pi/100: 2*pi;

y= sin(t);

plot(t,y)

y2= sin(t-0.25);

y3= sin(t-0.5);

plot(t,y,t,y2,t,y3)

Una de las funciones más importantes en Matlab es la función plot . Este comando ploteará

los elementos del vector x en el eje horizontal de una figura, y los elementos del vector y

en el eje vertical de la figura. Por defecto, cada vez que se use el comando plot , se borrará

la figura que estaba, quedando solo la nueva

hold on

plot(t,y)

hold on

plot(t,y2)

hold on

plot(t,y3)

Mantiene en la ventana gráfica los dibujos anteriores.

Figure(n) , close

x1=0 : 0 . 1 : 2 pi Y1=sin ( x1 ); figure ( 1 ); plot ( x1 , y1 ); x2=0 :0 . 05 : 2 pi; y2=cos ( x2 ); f igure ( 2 ); plot ( x2 , y2 );

El comando figure permite abrir nuevas ventanas .

h = figure

figure devuelve un identificador que se utiliza para manipular la figura.

Así, si tenemos varias ventanas

abiertas, con

figure(h2)seleccionamos la

ventana con el grafico relativa

al identificador h2 y con

close(h3) cerramos la ventana

h3. close all cierra todas las

ventanas abiertas.

La Estética de los Gráficos

El color y el marcador de un gráfico se pueden cambiar agregando un tercer parámetro (entre

apóstrofo 'esto') al comando plot .

tercera entrada consiste de uno a tres caracteres que especifican un color y/o o un tipo de

marcador.

Gráfico simple con asteriscos rojos

x = 0:0.1:4; y = 1./x; plot(x, y, „r*‟)

Símbolo Color Símbolo Forma Símbolo Estilo de línea

b Azul . Punto - Línea solida

g Verde o Circulo : Punteada

r Rojo x Cruz -. Punto y línea

c Cian + Signo + -- entrecortada

m Magenta * Asterisco

y Amarillo s Cuadrado

k Negro d Diamante

w Blanco v Triangulo

^ Triangulo

< Triangulo

> Triangulo

p Pentagrama

h Hexagrama

Más de un Gráfico en una ventana (Subplot)

En una misma figura puede ponerse más de una línea empleando el comando subplot. Permite

separar la figura en tantas figuras como se quiera , y ponerlas todas en una figura.

Este comando divide la figura en una matriz de m renglones y n columnas, por lo tanto crea mxn

gráficos en una figura.

x = linspace(0,2*pi,50); y = sin(x); z = cos(x); w = tan(x); subplot(2,2,1) plot(x,y) subplot(2,2,2) plot(x,z) subplot(2,2,3) plot(x,w)

Sintaxis:

subplot(m,n,p).

Todos los comandos mencionados se emiten luego de ejecutarse el comando plot actual.

title(„texto') Otra cosa que puede ser importante en sus gráficos es el etiquetado. Puede darle un título al

gráfico (con el comando title), se ubicará un título, centrado, por encima del gráfico con el

comando: title('cadena de título').

xlabel(„texto') Etiqueta al eje x (con el comando xlabel)

ylabel(„texto') Etiqueta al eje y (con el comando ylabel)

legend(„texto„, „texto') Etiqueta los gráficos

Ejemplo

x = 0:0.1:2*pi; y1 = sin(x); y2 = cos(x); subplot(2,1,1) plot(x,y1) title('y = sin(x)'); subplot(2,1,2) plot(x,y2) title('y = cos(x)');

axis([xmin; xmax; ymin; ymax])

k=0:0.01:5;

j=exp(5*k)-1;

plot(k,j)

axis([2.5; 5; 0; 40000000000])

El comando axiscambia los ejes del diagrama actual, de modo que se muestra sólo la

parte del eje que se desea. Puede personalizarse los ejes a sus necesidades. Cuando se usa

el comando subplot, pueden cambiarse los ejes de cada subplot emitiendo un

comando axis antes del próximo comando subplot. Hay más usos del comando axis que

puede ver si tipea help axis en la ventana de comandos del Matlab.

Otros comandos que pueden usarse con el comando plot son:

clf (borra el gráfico actual, lo deja en blanco) loglog (igual que plot, excepto que ambos ejes se escalan en Log10) semilogx (igual que plot, excepto que el eje x se escala en Log10) semilogy (igual que plot, excepto que el eje y se escala en Log10) grid (agrega una grilla al gráfico)

Ejercicios

x = 0:0.1:20;

y = exp(0.1*x);

y1 = y.*sin(x);

y2 = y.*cos(x);

Plot(x,y, 'color y forma')

plot (x, y, 'r', x, y1, 'y--', x, y2, 'k:')

x = 0:0.1:4;

y = 1./x;

plot(x, y, „r*‟)

• Plot(x,y, 'ro')

x = [1 1 2 3 5 8]; ex = [0 1 0 0 1 0]; pie(x, ex);

pie(x,explode)

Las formas más habituales para la utilización de pie son:

pie(X)

pie(X, Explode)

Esta función muestra un gráfico de tarta con los valores de X. Opcionalmente, se pueden

resaltar porciones utilizando la segunda llamada.

bar(x,y, 'color y forma')

Las formas más habituales para la utilización de bar y barh son:

bar(Y)

bar(x,Y)

bar(..., width)

bar(...,'style')

Estas funciones realizan un gráfico de barras verticales (bar) u horizontales

(barh). Se puede regular la separación entre las barras con el parámetro

„width‟. Si la Y es una matriz entonces agrupa las barras o si se especifica

„stacked‟ en el parámetro style entonces apila las barras.

x = 0.5:0.5:4; y = 1./x; bar(x, y)

x = 0.5:0.5:4; y = 1./x; barh(x, y)

Ejemplo

Grupos de barras x = 0.5:0.5:4; y = 1./x; Y = [y' fliplr(y)']; bar(x, Y)

Barras apiladas x = 0.5:0.5:4; y = 1./x; Y = [y' fliplr(y)']; bar(x, Y, 'stacked')

stairs(x,y)

bar3(x,y, 'color ')

y = exp(-x.*x); subplot(2,2,1) bar(x,y) title('2D bar') subplot(2,2,2) bar3(x,y,'r') title('3D bar') subplot(2,2,3) stairs(x,y) subplot(2,2,4) barh(x,y)

Ejemplo

t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t, 'r');

plot3(x,y,z)

mesh

x = -2:0.1:2; y = -2:0.1:2; [X,Y] = meshgrid(x,y); Z = X.*exp(-X.^2 - Y.^2); subplot(1,2,1); mesh(X,Y,Z); subplot(1,2,2); contour(X,Y,Z);

Graficación simbólica:

ezplot (f)

PROGRAMACIÓN EN MATLAB

CAPITULO VII

En los operadores relacionales si la condición se cumple regresa un 1

lógico, de lo contrario regresa un 0 lógico.

Este tipo de operadores se pueden usar también para comparar matrices

o vectores siempre y cuando sean del mismo tamaño, cuando esto

sucede la comparación se realiza elemento a elemento.

< menor que

> mayor que

<= menor o igual que

>= mayor o igual que

= = igual que

~ = diferente a

Los operadores lógicos se usan en combinación con los relacionales para

comprobar el cumplimiento de condiciones múltiples.

if (A>5)&(A<10)

~(A>20)

Los operadores lógicos toman como 1 lógico a todos los números

diferentes de cero, mientras que toma como 0 lógico solo a los

elementos que sean cero.

& AND

| OR

~ NOT

MATLAB soporta diferentes tipos de datos como dobles, simples,

cadenas, lógicos, etc. De hecho, el usuario puede hacer su propio tipo

de dato haciendo uso de las “Clases”.

Existen 15 tipos de datos fundamentales en MATLAB:

ARRAY

[Full or sparse]

logical char NUMERIC cell structure function

handle

User classes

Java classes

int8, uint8, int16,

uint16, int32,

uint32, int64, uint64

single double

Para declarar un dato de tipo cadena se coloca entre apóstrofes:

>> cad=„nombre‟

>> cad2=„mi correo@servidor‟

Cada carácter (cualquiera que este sea) escrito en la cadena se guarda

en 2 bytes de memoria.

La opción “help strings” da una pequeña ayuda acerca de las cadenas de

caracteres.

Se pueden crear matrices de cadenas de caracteres, siempre y cuando

las cadenas sean de la misma longitud.

La librería que alberga a todas las funciones que actúan sobre cadenas

de caracteres es „strfun‟.

La librería strfun cuenta con más de 30 funciones para manipulación

de cadenas, algunas de las más usadas y más elementales son:

size(c): obtiene el número de caracteres.

double(c): obtiene el código ASCII de la cadena.

char(c): convierte de código ASCII a carácter.

char(„Pedro‟, ‟Juan Jose‟): crea una matriz de cadenas.

disp(c): imprime la cadena „c‟ en pantalla.

Las estructuras son agrupaciones de datos (llamados “campos”) de

diferente tipo bajo un mismo nombre. Por ejemplo, la estructura

alumno puede contener los campos nombre (cadena de caracteres) y

edad (un número).

ARRAY

alumno

Alumno(2) Alumno(1) Alumno(3)

•Nombre

•Edad

•Examen

Tania

Arrieta

21

•Nombre

•Edad

•Examen

Aleida

Cosme

18

•Nombre

•Edad

•Examen

Carmen

Flores

20

8 9

7 10

7 6

8 8

10 8

10 9

1° Forma.- se pueden crear estructuras con la utilización del punto(.).

Simplemente se van añadiendo los campos que se requieren con su

valor correspondiente. Cabe mencionar que un campo puede ser de

cualquier clase (entero, doble, char, cell array, vector, matriz, etc.)

alumno.nombre = „Carmen Flores'; alumno.edad = 20; Alumno.examen = [10 8; 10 9];

Un cell array proporciona un mecanismo de almacenamiento para

diferentes tipos de datos. Los datos pueden ser de todo tipo: matrices,

vectores, estructuras e incluso más cell arrays.

Celda 1,1 Celda 1,2 Celda 1,3

Celda 2,1 Celda 2,2 Celda 2,3

3 9 8

4 7 5

2 5 1

0.9 i 16 - 32i

17 + i 2 + .7i

„Carmen Flores'

„11/9/88‟

„Clase II‟

„Obs. 1‟

„Obs. 1‟

4.31 8.92 3.87 7.65

3 -16 2

8 -52 34

0 14 8

„texto‟ 5 4

6 9

2.2 4 .7

0.9 4.1 10 + 0.4i

Un cell array se puede crear de dos formas, usando paréntesis y

usando llaves.

Si se usan paréntesis, entonces los valores deben ser dados entre llaves.

Si se usan llaves, entonces los valores se dan tal cual.

Cuando se quiere preguntar por el contenido de un elemento del cell

array se puede hacer de dos formas: A(1,2) regresa el tipo de dato que es y el tamaño, pero no me muestra el contenido en si.

A{1,2} me muestra el contenido del elemento (1,2) del cell array, se recomienda esta

forma.

A(1,1) = {[1 4 3; 0 5 8; 7 2 9]};

A(1,2) = {„Tania Arrieta'};

A{1,1} = [1 4 3; 0 5 8; 7 2 9];

A{1,2} = „Tania Arrieta ';

MATLAB posee su propio lenguaje de programación, con sus sentencias

y sintaxis. Existen dos elementos básicos en cualquier lenguaje de

programación:

Sentencia IF

Condición 1

Condición 2

Bloque 3

Bloque 1

Bloque 2

if condición

sentencias

end

if condición

sentencias

else

sentencias

end

if condicion1

bloque1

elseif condicion2

bloque2

elseif condicion3

bloque3

else

bloque4

end

Sentencia WHILE

Sentencia BREAK: solamente se usa para romper los ciclos for o while

Condición

Sentencias

while condición

sentencias

end

while condición

sentencias

if condición2

break

end

sentencias

end

Sentencia SWITCH

Sentencia FOR

switch expresión

case case_expr1,

bloque1

case {case_expr2, case_expr3, ...}

Bloque2

case {case_expr4, case_expr5,...}

Bloque2

...

otherwise, % opción por defecto

bloque3

end

for i=1:n

sentencias

end

for i=vector de valores

sentencias

end

Sentencia CONTINUE: esta

sentencia sirve solamente dentro de

ciclos, se usa para pasar a la siguiente

iteración.

Sentencia TRY, CATCH: normalmente se ejecutan las sentencias

A, pero si ocurre algún tipo de error en

dichas sentencias, encones se ejecutan las

sentencias B.

try

sentencias A

catch

sentencias B

end

for i=1:n

sentencias

if condición2 continue

end

sentencias B

end

Para la lectura de variables se ocupa la función „input‟ la cual imprime

un mensaje en pantalla e inmediatamente después se queda en espera

de un valor de cualquier tipo manejado por MATLAB.

Para la escritura de variables se ocupa la función „disp‟ la cual puede

imprimir el contenido de cualquier tipo de variable en la pantalla del

command window.

val=input(„da un valor: „)

cad=input(„da una cadena: „, „s‟)

disp(val)

disp(„fin del programa‟)

COTROL Y SIMULIK

CAPITULO VIII

Pantalla principal

Biblioteca

Creación de un modelo

Simulación de un calentador

Sistema no linealizado

Sistema linealizado

Regulador de temperatura

Sistema linealizado

Sistema no linealizado