1 matlab básico

20
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

Upload: an-gel

Post on 09-Dec-2015

13 views

Category:

Documents


5 download

DESCRIPTION

Ing

TRANSCRIPT

Page 1: 1 Matlab básico

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

Page 2: 1 Matlab básico

I. ObjetivoAl finalizar la práctica el estudiante utilizará los comandos básicos de MATLAB para el manejode funciones de transferencia, para graficar funciones así como para el análisis de sistemas decontrol.

II. AntecedentesEl 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 eltiempo así como las bases de la solución numérica de problemas matemáticos. Deberá contar conconocimientos básicos de programación en algún lenguaje de alto nivel. Se recomienda que cuentecon una computadora con la versión R2007a de MATLAB.

III. Material y EquipoComputadora PC y software MatLab. IV. Desarrollo de la Práctica

IV.1 IntroducciónMATLAB es el nombre abreviado de “MATriz LABoratory”. MATLAB es un programa pararealizar cálculos númericos con vectores y matrices. Como caso particular puede también trabajarcon números escalares –tanto reales como complejos-, con cadenas de caracteres y con otrasestructuras de información complejas. Una de las capacidades más atractivas es la de realizar unavariedad 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 estaprá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 muyrápido, cuando puede ejecutar sus funciones en código nativo con los tamaños más adecuados paraaprovechar sus capacidades. En otras aplicaciones resulta bastante más lento que el códigoequivalente desarrollado en C/CC++ o Fortran. MATLAB dispone de un código básico y de variaslibrerías especializadas (toolboxes).

En las diferentes áreas de la ingeniería, la simulación de sistemas y procesos se ha convertido en unaherramienta indispensable, tanto para el análisis como para el diseño de sistemas. En la mayoría delos casos el proceso de simulación reduce el tiempo de diseño y permite anticipar el comportamientode sistemas y procesos antes de su construcción, reduciendo, por ende, el costo de desarrollo yevitando posibles desperdicios. De la gran variedad de programas, que pueden hacer simulaciones ycálculo numérico intensivo, en el mercado se ha elegido a “MATLAB”, para las actividades deanálisis y diseño de sistemas de control, debido al uso tan extendido del mismo y al desempeñomostrado 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á necesariomostrar al alumno el manejo adecuado de “matlab” con el fin de complementar su formación en loque 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. Alabrir MATLAB hay una pantalla con tres ventanas (figura 1). Esta es la vista que se obtieneeligiendo la opción Desktop / Layout / Default, en la barra de herramientas. Como esta configuraciónpuede ser cambiada fácilmente por el usuario, es posible que en muchos casos aparezca muydiferente.

La parte más importante de la ventana inicial es la Command Window, que aparece en la partederecha. En esta sub-ventana es donde se ejecutan los comandos de MATLAB, a continuación delprompt (aviso) caracterìstico (>>), que indica que el programa está listo para recibir instrucciones.

Page 3: 1 Matlab básico

La primera ventana de la izquierda, es la ventana de arranque Current Directory, en donde semuestran 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 lapestaña correspondiente, contiene la información sobre todas las variables que se hayan definido enla sesión.

La segunda ventana a la izquierda Command History muestra los últimos comandos ejecutados enla 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 conlas posibilidades disponibles en ese momento. Para editar uno de estos comandos hay que copiarloantes 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, observe la respuesta a los usos del comando:>> help>> help lang>> help comando, ejemplo >> help sin

Page 4: 1 Matlab básico

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 suposterior edición con algún editor de textos.Introduzca la siguientes líneas.>> diary sesion>> x=9,v=[cos(x),sin(x),tan(x),exp(x),log(x),log10(x)]>> v; cos(x), sqrt(141), log(x)>> diary

Con el explorador de Windows revise el subdirectorio de trabajo de matlab, deberá encontrar unarchivo de texto nombrado sesion. Abra dicho archivo con el block de notas (o con el editor dematlab), deberá observar la secuencia de comandos y los resultados obtenidos con matlab.Regrese al espacio de trabajo e introduzca >> diary>> x=10;y= x*57>> diary

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

IV.3.1 Comandos Save y LoadEl comando save salva todas las variables del espacio de trabajo, mientras que el comando loadrecupera las variables guardadas por save. El archivo creado por save no se puede editar. MatLabautomáticamente agrega la extensión *.mat.

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

Observe la ventana Current DirectoryCon 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 calculadoraLos 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 = 113. * /, De izquierda a derecha: 8/2*3 = 4*3 = 12

Page 5: 1 Matlab básico

4. + -, De izquierda a derecha 5 – 3 + 7 = 2 +7 = 9

IV.5 VariablesLa 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, dichavariable 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 antespropuesta).

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

IV.6 Funciones elementalesMatlab reconoce las funciones trigonométricas sin(x), cos(x) y tan(x) (con las funciones inversasasin(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.5Introduzca 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 MatLabIngreso 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 unasola 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]

Page 6: 1 Matlab básico

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.

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

DEFINICIÓN DE UNA MATRIZLa 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 quequepan en una línea, podemos continuar la instrucción en la siguiente línea, pero se requiere unacoma 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 unareferencia 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];

Page 7: 1 Matlab básico

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 todoslos 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 puntosgenerará 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:

Page 8: 1 Matlab básico

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 matrizla 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 dosvectores o matrices deben tener la misma forma para sumarse o restarse a menos que uno de ellos seaun matriz de 1*1, un escalar, como lo vimos antes:

b+cc-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 sermultiplicadas utilizando el operador *. La premultiplicación de un vector renglón de 1x3 como c porun vector renglón de 1x3 como b no está definida. Sin embargo si c se transpusiera a un vectorcolumna 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 porelemento en vez de utilizar las reglas usuales de la multiplicación de matrices. Ese tipo demultiplicación se denomina multiplicación del arreglo en Matlab y se lleva a cabo utilizando eloperador .*Las operaciones elemento por elemento, u operaciones de arreglos, no sólo se aplican a operacionesentre 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.*AG=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 vectoresrengló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,

Page 9: 1 Matlab básico

F=A./B

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

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

También podemos usar una base escalar con un exponente vectorcomo;

P=3.^A

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

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

IV.8 Polinomios y Funciones de TransferenciaMatLab representa a los polinomios como si fueran vectores, los cuales contienen loscoeficientes del polinomio ordenados de la mayor a la menor potencia. Por ejemplo, para elpolinomio, 3 22 3 4s s s+ + + 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 obtenerutilizando la instrucción » roots(p)si se cuenta con las raíces se puede formar el vector que representa al polinomio en MatLabmediante 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 deseaevaluar. 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)

Page 10: 1 Matlab básico

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 secuenta con una tabla de datos.

x y1 158.52 93.83 84.24 77.35 111.56 88.37 100.18 65.69 90.510 149.4

Pruebe generar esta gráfica: creando un vector llamado x con los Si se agrega un tercer argumento enel 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 elementalesSuponga que deseamos trazar una gráfica de una función particular, por ejemplo ( )xy π5.2cos= .Para hacer el trazado suponga que muestreamos la función en un número suficiente de puntos ydespué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, elespaciamiento entre muestras y la variable de argumento de la función a graficar. Ejecute lassiguientes 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 nuevaventana 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 lasdiferencias entre éstas.

Page 11: 1 Matlab básico

Introduzca el comando >> grid – Revise las gráficas y describa el cambio realizado por el comandogrid. ¿A qué gráfica afectó el comando grid?, ¿Cómo se puede afectar a las dos gráficas con elcomando 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 paraambos 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 loscomandos?

Estilos y colores de líneas para las gráficasCon el fin de hacer a las gráficas más atractivas y distinguibles se pueden introducir comandos enmatlab 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 darelegancia 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 acuerdocon la Tabla 1.

LISTA DE CARACTERES

COLOR MARCADOR ESTILO DE LINEAy amarillo . punto - continuam magenta o circulo : punteadac cian x marca x -. guión-puntor rojo + más -- Discontinua

(guionada)g verde * asteriscob azul s cuadradow blanco d diamantek negro v triangulo(hacia

abajo) ^ triangulo (hacia

arriba)

Las gráficas generadas con matlab se pueden almacenar e incluir en otros archivos en diferentesformatos. 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.

Page 12: 1 Matlab básico

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 enintervalos espaciados uniformemente; estas gráficas se llaman gráficas lineales. Una escalalogarí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 lossiguientes

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 enun 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 luegose 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 divisionespueden ser dos ventanas o cuatro ventanas o incluso 8 ventanas en una hoja.. Los argumentos delcomando subplot son tres enteros: (m, n, p). Los dígitos m y n especifican que la ventana de gráficosse divida en una retícula de m por n ventanas más pequeñas, y el digito p especifica la p-ésimaventana para la gráfica actual (donde se ubica esta grafica) . Las ventanas se numeran de izquierda aderecha y de arriba abajo.Por ejemplo el siguiente comando subplot(2,1,1);plot(x,y) especifica que la ventana de gráficos sedivida en una grafica superior y una inferior ( dos líneas de graficas en una columna ) y que lagrafica actual plot(x,y) se coloque en la ventana superior ver código No. 2.

Page 13: 1 Matlab básico

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

Código No. 2t=[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);gridsubplot(2,2,2);semilogx(t,x,'b','linewidth',2);gridsubplot(2,2,3);semilogy(t,x,'r','linewidth',2);gridsubplot(2,2,4);loglog(t,x,'b','linewidth',2);grid

Código No. 3t=[-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 deciclos');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 ó comouna ambiente de solución de ecuaciones diferenciales no lineales. A continuación se muestran, de manera general, las secuencias de control necesarias para laprogramació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/ofunciones de matlab.Para iniciar el editor de matlab en la pantalla principal elija el menú desplegable “File” y elija laopció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 salidasend % Fin de secuencia y de programa

Limpie el espacio de trabajo con la instrucción>> clear allVerifique 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

Page 14: 1 Matlab básico

En el menú desplegable “File” (del editor de matlab), elija “Save as” asigne nombre al archivo, porejemplo: tutoprogram.m y sálvelo en alguna carpeta conocida. Del menú desplegable “Debug” elijala opción “Run nom-del-archivo.m” o F5 o hacer clic en la punta de flecha de color verde localizadaen la barra de herramientas, deberá aparecer una figura que corresponde con el cuarto cálculoexpresado en el programa.Ubique el cursor en cada uno de los renglones del programa, con excepción de la línea del comando“for”,Para cada una de las líneas defina un punto de ruptura de programa (“Breakpoint”). Con el menúdesplegable “Debug” seleccione “Set/clear breakpoint”. En la extrema izquierda de las líneasaparecerá un punto rojo.Con el menú desplegable “Debug” elija la opción “Run nom-del-archivo.m”. La ejecución delprograma deberá detenerse en la primera línea con punto rojo, esto es, en la definición de theta.Con el menú desplegable “Debug” elija la opción “Step” la flecha que indica la línea a ejecutar sedetendrá en la siguiente línea con punto rojo.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 uno de ellos el contenido delespacio de trabajo. Terminando con las gráficas generadas.

Describa brevemente lo que entendió con el programa anterior.

V. Hoja de Resultados

Nombre: _______________________________

Incluya los resultados que se obtienen al correr los códigos 1, 2, 3 y 4

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.

Page 15: 1 Matlab básico

; 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 exponenciallog (x) Función logaritmo naturallog10 (x) Función logaritmo base 10sqrt (x) Raíz cuadradaacos (x) Ángulo cuyo cosenoacot (x) Ángulo cuya cotangenteasec (x) Ángulo cuya secanteasin (x) Ángulo cuyo senoatan (x) Ángulo cuya tangenteatan2 (y,x) Ángulo cuya tangente (cuatro cuadrantes)cos (x) Función cosenocot (x) Función cotangentecsc (x) Función cosecantesec (x) Función secantesin (x) Función senotan (x) Función tangenteabs (x) Función valor absolutoangle (x) Ángulo del número complejoconj (x) Conjugado complejoimag (x) Parte imaginaria de xreal (x) Parte real de xerf (x) Cálculo de la función errormean (x) Cálculo del promediomedian (x) Cálculo de la medianastd (x) Cálculo de la desviación estándarrand (x) Genera uniformemente distribuidos números aleatorios entre 0 y 1randn (x) Genera normalmente distribuidos números aleatorios

Page 16: 1 Matlab básico

Variables especiales y constantes

ans Almacena la respuesta más reciente.eps Exactitud relativa del punto flotante.i, j La 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 actualdelete Borra un archivodiary Enciende/apaga el archivo de registro diariodir Lista todos los archivos del directorio actualload Carga variables desde un archivo al espacio de trabajopath Muestra la ruta actualpwd Muestra el directorio actualsave Guarda las variables del espacio de trabajo a un archivotype Muestra el contenido de un archivowhat Lista todos los archivos de MATLAB en el directoriowklread Lee archivos de hojas de cálculo .wkl

Comandos para el manejo de matrices

cat Concatenación de matricesfind Localiza los índices de los elementos no cerolenght Calcula el número de elementoslinspace Crea vectores linealmente espaciadoslogspace Crea vectores logarítmicamente espaciadosmax Regresa la magnitud del elemento más grandemin Regresa la magnitud del elemento más pequeñoprod Producto de cada columnareshape Cambia el tamaño de la matrizsize Calcula el tamaño de la matrizsort Ordena cada columnasum Suma de cada columna

Page 17: 1 Matlab básico

Matrices especiales

eye Matriz identidad ones Crea una matriz de sólo unoszeros Crea una matriz de sólo ceros

Aritmética de matrices

cross Producto cruzdot Producto punto

Comandos para la solución de ecuaciones lineales con matrices

det Calcula el determinante de una matrizinv Calcula la inversa de una matrizpinv Calcula la pseudoinversa de una matrizrank Calcula el rango de una matrizrref Escalonamiento de los renglones de una matriz

Comandos básicos para graficar en 2D (xy)

axis Ajusta los límites de los ejesfplot Gráfica de funcionesgrid Despliega una malla sobre la gráficaplot Grafica en dos dimensiones (plano xy)print Impresión de la gráficatitle Agrega título a la gráficaxlabel Etiqueta el eje xylabel 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.

Page 18: 1 Matlab básico

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 ejesclose Cierra la gráficaclose all Cierra todas las gráficasfigure Abre una ventana nueva de figuragtext Habilita la colocación de etiquetas con el ratónhold Congela la gráfica actuallegend Coloca una leyenda mediante el ratónrefresh Redibuja la gráfica en la ventana actualset Especifica propiedades de los objetos gráficossubplot Crea gráficas en subventanas de una ventana de figuratext Coloca textos en la figura

Comandos gráficos especiales

bar Histogramaloglog Gráfico logarítmicopolar Gráfico polarsemilogx Gráfico semilogarítmico en xsemilogy Gráfico semilogarítmico en ystairs Gráfico a segmentosstem Gráfico a espigas

Comandos gráficos 3D

contour Crea gráfica de contornogriddatamesh Crea superficie tridimensionalmeshgrid Crea malla rectangularmeshc Igual que mesh con contornomeshz Igual que mesh con líneas verticalesplot3 Crea gráfica tridimensional con puntos y líneassurf Crea gráficas tridimensionales con sombreadosurfc Igual que surf con contornowaterfall Igual que mesh con líneas en una sola direcciónzlabel Agrega etiqueta en el eje z

Comandos para el manejo de variables simbólicas

class Regresa la clase de una expresióndigits Ajusta el número de dígitos decimales empleados para variables de precisión

aritméticadouble Convierte una expresión a su forma numéricaezplot Genera una gráfica a partir de una expresión simbólica

Page 19: 1 Matlab básico

findsym Encuentra las variables simbólicas en una expresión simbólicanumden Regresa el numerador y el denominador de un expresiónsym Crea una variable simbólicavpa Ajusta el número de dígitos para evaluar una expresiónexpand Expande la expresiónfactor Factorizapoly2sym Convierte los coeficientes de un polinomio a un polinomio simbólicopretty Reescribe la expresión de forma matemáticasimple Busca la expresión más simplesimplify Simplifica una expresión empleando las reglas de simplificación de MAPLEsubs Sustituye variables en una expresión simbólicasym2poly Convierte una expresión simbólica a polinomialdiff Derivada de la expresióndirac Función delta de Diracheaviside Función de Heavisideint Integra la expresiónlimit Calcula el límite de la expresiónsymsum Realiza la suma de variables simbólicastaylor Calcula la serie de Taylorsolve Resuelve ecuaciones simbólicasdsolve Resuelve ecuaciones diferenciales simbólicasilaplace Calcula la transformada inversa de Laplacelaplace Calcula la transformada de Laplaceifourier Calcula la transformada inversa de Fourierfourier Calcula la transformada de Fourier det Calcula el determinante simbólicoeig Calcula los eigenvalores de una matrizinv Calcula la inversa de una matrizpoly 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 ciclocase Permite distintos casos dentro de una estructura switchelse Delimita bloques de sentencias alternativas

Page 20: 1 Matlab básico

elseif Sentencia que se ejecuta condicionalmenteotherwise Opción por defecto en la estructura switchreturn Regreso de invocación de funciónswitch Ejecución directa de un programa por comparación con la expresión

casewarning Despliega un mensaje de advertenciawhile Repite la sentencia por un número indefinido de veces