Вы находитесь на странице: 1из 59

Comunicaciones ANALOGICAS

NOMBRE DEL PROFESOR: Elmar Montiel Jimnez NOMBRE DEL ALUMNO: Emmanuel Murueta Sampayo Practica 1: Introduccin a Matlab

Fecha:

INTRODUCCION: Matlab es una herramienta poderosa usada por ingenieros y cientficos de todo el mundo para resolver diversos problemas que requieren clculos complejos bajo una secuencia de instrucciones, est respaldado por una compaa de software Profesional: The Math Works Inc. Encargada del diseo de un software fcil y prctico tanto para estudiantes como profesionales pues cuenta con una gran gama de instrucciones y caractersticas compatibles con otros sistemas computarizados, es uno de los programas ms completos y potentes, para el diseo de seales, brinda soluciones a matrices y funciones de una forma sencilla ya que cuenta con los operadores bsicos, funciones bsicas y comandos propios de Matlab adems de contar con elaboracin de excelentes grficos para la creacin de diversos tipos de seales En este trabajo se muestra un poco de lo que se puede hacer con Matlab, se repasan los conceptos bsicos y se ponen algunos ejemplos realizados ,para comprender mejor su manejo se muestran las pantallas con el cdigo fuente de cada uno y el resultado tal y como lo muestra Matlab.

Inicio de familiarizacin con Matlab

Esta es la apariencia que se Observa en la versin Matlab R2012a El aspecto es muy similar A las versiones anteriores

Estructura de la pantalla:

1.-Creacion de un fichero: Para crear un fichero .m se pincha con el ratn File -> New -> M-File en algunas versiones anteriores, en las versiones resientes se crea como se muestra a continuacin, nos basamos en la versin Matlab R2012a y Sera pinchando con el ratn File -> New -> script o presionando las teclas Crtl+N al mismo tiempo

O bien se pincha el primer icono

de la Barra de herramientas.

Los tres caminos nos llevan a un editor de texto en el que se escriben las instrucciones que se quieren ejecutar ms adelante en el rea de trabajo.

El editor nos permite trabajar de Una forma mucho ms prctica ya que nos Permite realizar correcciones algo Que no es posible en el rea De comandos

El signo % permite aadir comentarios Una vez escrito el fichero, nos situamos en la opcin File del men del editor, se elige la opcin Save As y aparece Una ventana donde escribiremos el nombre del fichero nombre_fichero.m.

1.-

2.-

3.-Por default los Archivos se Guardaran como

Untitled Paso 1.- se da click en la opcin File Paso 2.- se dar click en Save as Paso 3.- emerger una ventana que dir como ttulo select File for Save As el nombre del archivo se puede cambiar . Las reglas para dar nombre a un fichero Son las siguientes: El primer carcter del nombre debe ser una letra, nunca un nmero, se pueden utilizar letras, nmeros y el guin de subrayado, nunca signos de puntuacin, ni los smbolos que indican operaciones y nunca pueden contener letras acentuadas ni espacios en blanco. Para ejecutar un fichero .m se escribe el nombre de dicho fichero sin extensin en el rea de trabajo, y se pulsa enter.

EL INDICADOR : El smbolo >> en la pantalla principal ( command window) nos indica que MATLAB est esperando que introduzcamos un comando o una variable. Para salir de MATLAB cuando sea pertinente use los comandos quit o exit. 2.-Operadores: En la ventana de comandos es donde podemos introducir las distintas expresiones para que Matlab las evale. Para realizar los clculos elementales con MATLAB es suficiente conocer la sintaxis de las distintas operaciones: Suma: +

Resta: Multiplicacin * Divisin / Potenciacin ^ Las operaciones se evalan siguiendo un orden determinado. Primero se efectan los parntesis, luego las potencias, Despus productos y cocientes y, finalmente, sumas y restas. Dentro de un mismo nivel, se realizan de izquierda a derecha

Operaciones con escalares , vectores y matrices: Los operadores matemticos incorporados que se utilizan con frecuencia en Matlab son:

Ejemplo Obsrvese la diferencia entre las siguientes operaciones:

3.-Variables Introducir variables nos ofrece nuevas posibilidades en MATLAB. Las reglas que se utilizan para nombrar las variables son las siguientes: MATLAB distingue entre letras maysculas y minsculas. Las variables area, Area, AREA, rea son variables distintas. El nombre de una variable puede contener un mximo de 31 caracteres ignorndose los posteriores. El nombre de una variable debe empezar necesariamente por una letra, aunque puede contener letras nmeros y el Guin de subrayado, nunca puede contener operadores (+,*,...), espacios en blanco ni signos de puntuacin.

No deben nombrarse variables con funciones con significado especfico en MATLAB, por ejemplo cos=3 construye Una variable cos cuyo valor es 3, y a partir de este momento no podramos calcular el coseno de un ngulo hasta que no borrsemos la variable cos.

Informacin sobre las variables Para obtener informacin sobre las variables definidas en una sesin de trabajo se utilizan las rdenes who y whos. La primera muestra las variables que tienen valores asignados, la segunda nos da adems informacin sobre el tamao y el tipo de dato. >> Who >> Whos Puede observarse que MATLAB utiliza los escalares como matrices 11. Cmo borrar variables La orden clear all borra de la memoria todas las variables definidas hasta el momento; si a la orden clear se le aade una lista de variables (separadas por espacios en blanco) slo se borrarn las variables de la lista. >> Clear t >> s=v0*t >> Who Como la variable t ha desaparecido MATLAB da un mensaje de error al recalcular se. Algunas variables predefinidas en MATLAB Algunas variables ya estn definidas en MATLAB:

NaN (Not a Number) representa una expresin indeterminada

4. Trabajando con matrices Como ya se ha comentado, el tipo bsico de dato con el que MATLAB trabaja es la matriz, incluso los escalares son considerados como matrices 11, por lo que es esencial familiarizarse con esta seccin.

Vectores Los vectores se introducen escribiendo cada una de sus coordenadas entre corchetes, separadas por un espacio en blanco: >> v=[1 3 pi 1/3] o bien separadas por comas: >> v=[1,3,pi,1/3] No obstante, existen otras formas de introducir vectores, cuando sus coordenadas guardan alguna relacin entre s:

>> v=[1:0.3:2] >> v=(1:-0.4:-0.8) Si se omite el incremento h MATLAB toma por defecto h=1

>> v=1:4 En la orden linspace el tercer argumento es opcional, y si no se introduce toma el valor 100: >> v=linspace(0,10) Matrices Los elementos de una matriz se introducen entre corchetes. Las filas separadas mediante un punto y coma (;) y los elementos separados por espacios en blanco o comas. >> A=[1 2 3; 3,1,2;1 1 0] Una vez definida una matriz o un vector, se puede acceder a sus elementos o submatrices con las rdenes:

Haciendo uso de estas rdenes pueden introducirse matrices y vectores elemento a elemento. Al asignarle un valor a una posicin, se construye la matriz o vector de menor tamao que contiene los elementos introducidos y hace ceros los no asignados. >> B(5)=3 >> B(2,4)=5

O bien se puede utilizar para modificar posiciones de una matriz predefinida: >> A=[1 2 3; 4 5 6] >> A(1,2)=5 Tambin puede eliminarse filas y columnas de matrices dadas. >> A=[1 2 3 4 1; 3,1,2 0 2;1 1 0 1 3] >> A(3,4)=100, A(2,5)=200 >> B=A >> B(:,2)=[] La matriz B coincide con la matriz obtenida de eliminar la columna 2 de A. Pueden definirse ciertas matrices con las siguientes rdenes:

PUNTOS SUSPENSIVOS Si hay demasiados nmeros en una fila de una matriz para que quepan en una lnea, podemos continuar la instruccin en la siguiente lnea, pero se requiere una coma y tres puntos al final de la lnea para indicar que la fila debe continuar. Ejemplo: H = [-2,0,-3,4,-3,-4,5,0,0,2,1,1,1,3,4,-0.2] que se puede escribir como: H = [-2,0,-3,4,-3,-4,...

5,0,0,2,1,1,1,3,4,-0.2] MATLAB tambin nos permite definir una matriz que ya se defini: Ejemplo 2: B =[1.5, 4.1] D = [-3, B] este comando equivale a D = [-3,1.5,4.1]

Definicin de matrices por bloques Dadas dos matrices A y B con el mismo nmero de filas, se puede definir una matrizC formada por todas las columnas de A y de B: >> A=zeros(3) >> B=eye(3,2) >> C=[A B] Anlogamente, se puede definir una matriz a partir de otras dos con el mismo nmero de columnas: >> A=eye(2,3) >> B=ones(3) >> C=[A;B] Estas dos posibilidades pueden combinarse para formar matrices definidas por bloques: >> A=[eye(3) ones(3,3);1:6;zeros(2) ones(2,1) eye(2,3)] Operaciones con vectores y matrices Si A y B son matrices con las dimensiones adecuadas y l es un escalar, las operaciones habituales se efectan con las

siguientes rdenes:

Adems de las operaciones mencionadas, en MATLAB se definen otras operaciones a las que llamaremos operaciones

elemento a elemento:

Funciones que actan sobre matrices En MATLAB hay una coleccin de funciones que pueden utilizarse para obtener informacin y realizar clculos. Por Ejemplo 3, si se escribe A=eye(3,2) se obtiene una matriz de tres filas y dos columnas con unos en la diagonal principal y ceros en el resto. El nombre de la

funcin es eye, los argumentos de entrada son 3 y 2, la matriz resultante, que tiene por nombre A, es la salida. Las siguientes funciones permiten obtener informacin sobre las matrices o vectores que tienen como argumentos de Entrada

Tambin podemos modificar los valores de una matriz o agregar valores adicionales usando una referencia a un lugar especfico. Por ejemplo: D(3) = 6 ; Cambia el tercer valor de la matriz D del valor 4.1 por 6, para quedar como: D = [-3,1.5,6] As tambin 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 = [-3, 1.5, 6, 2.5]; El punto y coma ; termina la instruccin y oculta la exhibicin del resultado de la operacin. Teclee D = [-3, 1.5, 6, 2.5] ahora Teclee D = [-3, 1.5, 6, 2.5];

Obviamente, las funciones matemticas habituales tambin estn predefinidas en MATLAB, con la nica particularidad de que actan sobre vectores o matrices elemento a elemento.

Solucin

>> syms lambda >> A=[1 2 5; 2 1 -1; 3 0 -3]

Tecle el enunciado de asignacin siguiente; a=3; b=[2,6,4]; c=[4,10, 2]; los vectores y matrices pueden multiplicarse por un escalar: tecle: 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: tecle: a+c La suma de un escalar a un vector o matriz slo aade el escalar a cada elemento del vector o matriz la resta se define de manera similar: tecle: a-b

y las funciones trigonomtricas:

Operaciones bsicas con nmeros complejos En MATLAB, por defecto, las letras i j representan la unidad imaginaria. Obsrvese cmo se introduce el complejo 1+i z=1+i z=1+j

Las operaciones con complejos se realizan igual que con nmeros reales:

Solucin

Cuando la parte imaginaria del complejo se involucra alguna funcin u operacin, debe escribirse * entre la parte imaginaria y la unidad imaginaria: >> (1+sqrt(3)i)^3 %Devuelve un mensaje de error >> (1+sqrt(3)*i)^3 >> 1+(1-1/3)i %Devuelve un mensaje de error

>> 1+(1-1/3)*i

Otras funciones tiles para operar con complejos son las siguientes:

Si las funciones anteriores trabajan sobre una matriz, devuelven otra matriz del mismo tipo que es el resultado de evaluar la funcin al actuar sobre el elemento. Todas estas funciones, excepto angle, pueden actuar tanto sobre variables simblicas como numricas.

Operadores relacionales A menudo, segn sean los datos que se utilizan, es necesario tomar una decisin sobre las rdenes a ejecutar, por lo que resultan de gran utilidad los operadores y bucles que se mencionan a continuacin. MATLAB utiliza los operadores relacionales que se describen en la tabla adjunta:

expresion1 OpR expresion2 donde OpR es un relacional y expresion1 y expresion2 son nmeros, matrices (de igual dimensin) o cadenas de caracteres. La respuesta de estas expresiones lgicas es 1 si son verdaderas y 0 cuando son falsas. Ejemplo 6 Construiremos una variable x que almacene el complejo 1+i, la compararemos con dicho complejo y con el complejo 1+2i. x=1+i x==1+i x==1+2i

En la primera lnea se asigna a x el valor 1+i, en la siguiente se compara x con 1+i, y nos devuelve un 1 debido a que la proposicin lgica es cierta. En la tercera lnea se compara la variable x con 1+2i y nos devuelve un 0 debido a que la proposicin lgica es falsa.

Ficheros function Dentro de la organizacin de un programa es muy comn la realizacin de tareas que pueden servir para diferentes programas o simplemente la separacin en etapas del programa global que se pueden abordar independientemente. Una de las formas de realizar esta divisin en MATLAB es a travs de las function.

La caracterstica de la function respecto a los ficheros de rdenes es la utilizacin de argumentos. Su funcionamiento es anlogo a muchas de las rdenes del MATLAB, por ejemplo, cuando nosotros ejecutamos >> x = sqrt(16)

la orden sqrt funciona como una function con argumento de entrada (16) y obtenemos un argumento de salida que asociamos a x. Las function se construyen en ficheros .m . Se distinguen de los guiones en la primera orden en donde se deben especificar los argumentos

function [Argumento(s) de Salida] = nombrefuncion (Arg. Entrada) % lneas de comentarios % que aparecen al ejecutar % help nombrefuncion rdenes que hacen los clculos ... Por norma los nombres de la function y del fichero coincidirn. Es decir, el fichero lo llamamos nombrefuncion.m Para llamar o ejecutar la function se realiza como las rdenes normales [Argumento(s) de Salida] = nombrefuncion (Arg. Entrada) Los argumentos tanto de entrada como salida pueden ser varios y se separan por comas. Incluso puede que no los haya. Los nombres de los argumentos en el fichero function son variables ficticias puesto que esos nombres van a ser sustituidos por los utilizados en la llamada a la function que son las variable verdaderamente reales.

Construir una function raices.m que calcule las races de un polinomio de segundo grado ax2+bx+c SOLUCIN: Se escribe en el fichero raices.m function [x1, x2] = raices(a,b,c) % % Funcin que calcula en x1 y x2 las races % de un polinomio de segundo grado

% a x^2 + b x + c = 0 % disc=sqrt(b*b-4*a*c) x1 = (-b + disc)/(2*a) x2 = (-b - disc)/(2*a)

Una vez guardado el fichero raices.m. Se puede llamar >> [x,y] = raices(1,-3,2) x= 2 y= 1 Funcin que calcula en x1 y x2 las races de un polinomio de segundo grado a x^2 + b x + c = 0 Debe mencionarse que a las variables de salida se les puede asignar un nombre cualquiera. En este caso, se les han asignado los nombres x e y. Si se escribe x1 o y1, estas variables no existen y lo mismo sucede con la variable disc. Estas variables slo estn activas dentro de la funcin raices.

Clculo simblico Creamos objetos simblicos y operamos con ellos

Si se utiliza la instruccin syms para declarar variables, estas se introducen con un espacio en blanco entre ellas. Por ejemplo, syms s t declara simblicas las variables s y t . Si al finalizar la lista se escribe real, MatLab considerar que estas variables no tienen parte imaginaria, en caso contrario se presuponen complejas. Pueden crearse objetos simblicos y aplicar las funciones habituales: syms x y real %crea las variables simblicas reales x e y. f=(x+i*y)^3 %crea la variable simblica f. u=imag(f) v=real(f)

En la instruccin anterior las variables x e y tienen el sentido de variables independientes habitual en matemticas. La variable f sera la variable dependiente, y, como puede observarse, no es necesario declararla. Con el comando sym se pueden obtener constantes simblicas: x=sym(pi) y tambin puede aplicarse a matrices, en cuyo caso trabaja elemento a elemento: A=sym([1 2/3;pi sqrt(2)])

Cmo borrar variables simblicas La orden clear, utilizada sobre variables simblicas, presenta algunas limitaciones. Por ejemplo, si la variable est declarada como simblica real, al borrarla con clear, queda en memoria su carcter real. Veamos un ejemplo: >> syms x real >> imag(x)%Ser 0 por ser real ans = 0 >> clear x >> x % Aparentemente borrada ??? Undefined function or variable x >> syms x

>> imag(x) % vemos que es 0, luego sigue siendo real ans = 0

Para borrar el carcter real de una lista de variables escribiremos syms lista clear. Por ejemplo >> syms x y real >> syms x y clear % Son simblicas pero ya no son reales. >> imag(x),imag(y) ans = (i*conj(x))/2 - (i*x)/2

ans = (i*conj(y))/2 - (i*y)/2 >> clear x y % ya quedan perfectamente borradas

Si queremos borrar todas las variables de golpe podemos seguir utilizando clear all, pues esta orden tambin borra el carcter real de las variables. Sustituciones en una expresin simblica y conversin a numrico

Construir f = ax2 +bx+c y sustityase x por s2. Haciendo a = 1, b = 2 y c = 3, obtngase el valor de f para s = 1 y s = 4.

En la parte bsica, MATLAB utiliza la aritmtica de punto flotante y trabaja con 16 dgitos. Por este motivo, si se manejan nmeros de ms decimales, lo que sucede siempre con nmeros irracionales, en cada operacin se produce un error llamado de redondeo. En clculo simblico no se produce este tipo de error pues MATLAB no realiza clculos numricos, trabaja simblicamente. S puede producirse un error de redondeo cuando se usa la instruccin double para convertir un resultado simblico a numrico. Lmites, derivadas e integrales simblicas MatLab calcula lmites, suma de expresiones, derivadas e integrales de variables simblicas. Al hacerlo, si no especificamos otra cosa, considera como variable independiente la variable preferente de la expresin simblica con la que est

trabajando. La variable preferente en una expresin simblica es la letra x. Si sta no interviene en la expresin , ser el carcter ms prximo a x en el orden lexicogrfico que no sea ni la i ni la j. Por esto, no conviene omitir la variable respecto de la cual se va a realizar la operacin.

Conviene sealar que diff puede actuar sobre una matriz. Tambin hay un operador diff que acta sobre variables numricas (obviamente no calcula la derivada). Manipulacin de expresiones simblicas En una expresin simblica f se pueden realizar, entre otras, las siguientes transformaciones:

Solucin de ecuaciones En esta seccin vamos a resolver ecuaciones simblicas mediante la funcin solve. Mediante esta instruccin MATLAB obtiene soluciones de ecuaciones. MATLAB busca soluciones en el campo de los nmeros complejos y cuando no puede obtener soluciones simblicas intenta obtener soluciones numricas.

Calclense todas las races del polinomio z3+z24z+6 La instruccin syms z p=z^3+z^2-4*z+6 sol=solve(p) nos da las soluciones de la ecuacin. La solucin es un vector de tres componentes que hemos guardado con el nombre sol. La orden solve no siempre da todas las soluciones como puede comprobarse si se escribe

sol=solve(sin(x)) Slo devuelve sol = 0 .

Resolucin de ecuaciones y sistemas de ecuaciones diferenciales Resolucin de ecuaciones diferenciales Una ecuacin diferencial la escribiremos siempre entre comillas simples. En MATLAB, y se representa por Dy, y se representa por D2y, y por D3y, etc. Por ejemplo, la ecuacin d3y dt3 +4 dy

dt = sen2 t se escribira en MATLAB como D3y+4*Dy=sin(t)^2. Las condiciones iniciales tambin van entre comillas simples. Por ejemplo, las condiciones y(0) = 1, y(0) = 2, y(0) = 3 se escriben y(0) = 1, Dy(0) = 2 , D2y(0) = 3.

Resolver el problema y4y+3y = 9x2+4, y(0) = 6, y(0) = 8 Resolucin de sistemas de ecuaciones diferenciales

Polinomios EnMatlab, un polinomio se define mediante un vector fila cuyas coordenadas son los coeficientes del polinomio segn potencias decrecientes. Por ejemplo, el polinomio p = x2+2x+5 se escribira p=[1 2 5] . Para trabajar con fracciones polinmicas, sern tiles la rdenes siguientes:

Descomponemos en fracciones simples x3 +7x212x x3 2x2x+2

lo que significa que

Grficos con MatLab Grficos 2D MatLab genera los grficos, tanto 2D como 3D, en una ventana distinta del rea de trabajo y del editor de ficheros, es lo que se llama una ventana grfica o figura, que, por defecto, tiene este aspecto. La mayor parte de los comandos que se utilizan para construir grficos llevan implcita la orden de abrir una ventana grfica, no obstante, existen instrucciones que permiten abrir (o cerrar) las ventanas grficas antes de construir los grficos. Adems, se pueden mantener abiertas varias ventanas grficas a la vez, una de ellas es la que llamaremos ventana activa, que ser la ltima ventana grfica abierta, aunque esto puede modificarse a partir de ciertas rdenes o simplemente, pinchando con el ratn en la que queremos que sea la activa. Todas las instrucciones grficas sern enviadas a la que en ese momento es la ventana activa. Las instrucciones bsicas son las siguientes:

El comando ezplot permite representar curvas utilizando directamente la expresin simblica de la curva. La curva

puede venir expresada de tres formas:

Dibujar la grfica de la funcin f (x) = x2+1, en el intervalo [3,3] Primero se construye un vector con las coordenadas x, x=linspace(-3,3); Es recomendable recordar el ; al finalizar la instruccin, ya que esto evita que aparezca informacin innecesaria por pantalla. A continuacin se construye el vector que contiene las imgenes de dichos valores por la funcin f , es decir, el vector

de las coordenadas y y=x.^2+1; Obsrvese que a la operacin elevado a ^ la hemos antecedido de un punto, ya que lo que queremos no es elevar a 2 la matriz x (que ni tan siquiera estara definido), sino elevar a 2 cada elemento de la matriz x. A continuacin utilizamos el plot para dibujar la grfica pedida plot(x,y) Como no hemos incluido la variable s, la grfica resulta ser en azul (color por defecto), con trazo continuo (uniendo los puntos por una poligonal) y sin marcas. La grfica obtenida es:

La grfica aparece en un rectngulo blanco que en el lenguaje de MATLAB se llama eje. Una figura puede tener

varios ejes, al ltimo eje utilizado es al que llamaremos eje activo. Se pueden modificar los ejes a partir de las siguientes funciones:

Estas funciones alteran la visualizacin de grfica, pero no lo que se ha dibujado. Obsrvese lo que ocurre con la grfica anterior si en el rea de trabajo tecleamos: axis([-1 4 -1 9]) se obtiene:

prueba ahora con las siguientes instrucciones: axis([-3 3 -1 9])

axis square axis equal

La ventana grfica dispone de un men que permite modificar el estilo de las lneas, aadir textos, borrar partes de la grfica...Veamos algunas instrucciones tiles para dibujar complejos:

Otras utilidades grficas pueden ser las que nos permiten dividir la pantalla en varias subventanas, esto se realiza con la siguiente instruccin:

La forma de activar uno de los ejes generados en la ventana es con la orden subplot. n es el nmero de filas en que se divide la pantalla, m es el nmero de columnas, y k se refiere al eje sobre el que se va a enviar la grfica, numera por orden los ejes de izquierda a derecha y de arriba abajo. Obsrvese la numeracin en la grfica siguiente: Las grficas de los distintos ejes pueden ser de distinto tipo:

Dibujar en dos subventanas de la misma ventana grfica el complejo z = 1+i con la instruccin compass y con la instruccin quiver.

Creamos un fichero m con las instrucciones siguientes: z=1+i subplot(1,2,1) compass(z) subplot(1,2,2) quiver(0,0,1,1,0) axis equal

obteniendo la siguiente grfica: Se observa que en la misma ventana grfica tenemos dos ejes, en cada momento se activa el que indica el subplot, es decir subplot(1,2,1) activa el primer eje subplot(1,2,2) activa el segundo eje.

Ciclos en Matlab: CICLOS Repasando: Operador : Se trata de una de las formas de definir vectores y matrices ms usada y ms fcil de utilizar, dada la rpida visualizacin de la salida sin necesidad de ver el resultado: >> x=1:1:10; >> x x= 1 2 3 4 5 6 7 8 9 10 De alguna manera, el : representa un rango, en este caso desde 1 hasta 10 y en el centro se coloca el paso (o sea con qu incremento se llega desde 1 hasta 10). Por defecto el paso es 1 pero puede ser cualquier nmero entero o real, positivo o negativo: >> x=10:-1:1 x= 10 9 8 7 6 5 4 3 2 1 >> x=1:0.5:10 x= 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10

Las estructuras repetitivas, tambin llamadas bucle (loop, en ingls) controlan un conjunto de instrucciones que deben repetirse cierto nmero de veces, mientras se cumple una condicin que debe ser claramente especificada.

La condicin podr ser verdadera o falsa, y se comprobar en cada paso o iteracin del bucle. Todo bucle consta de tres partes bsicas, a saber: Decisin: donde se evala la condicin y, en caso de ser cierta, se ejecuta el cuerpo del bucle. Cuerpo del bucle: son las instrucciones que se ejecutarn repetidamente, un nmero determinado de veces, siempre que la decisin sea verdadera. Salida del bucle: es la condicin que indica cuando terminan las iteraciones. Grficamente:

Hay diferentes formas de realizar ciclos en programacin. En Matlab, se explicaran dos las cuales son las ms comunes: ciclo for y ciclo while

Ciclo for En este tipo de ciclo, ya se sabe cuntas veces se realizar el bucle, es decir, cuantas veces se ejecutar el conjunto de instrucciones dentro del ciclo. La cantidad de veces est determinada en la seccin de decisin del ciclo. La sintaxis del ciclo for en Matlab es la siguiente: for variable=valor_inicial:incremento:valor_final conjunto_sentencias end La primera lnea constituye la decisin. Aqu la condicin indica que la variable debe tomar valores entre el valor inicial y el valor final para que se ejecute el conjunto de sentencias del ciclo. Ejemplo bsico Para el ejemplo i valdr 1 for i=1:10 disp(El valor de i es ) disp(i) end

for i=1:2:10 disp(El valor de i es ) disp(i) end

Otra variante: la condicin puede ser una expresin vectorial o matricial. Es decir, por lo visto al principio se puede definir un vector como: >>x=1:2:10 x 13579 Aprovechamos esto para realizar el ciclo utilizando los elementos del vector, o dicho de otro modo, recorriendo cada celda del vector. La sintaxis en este caso cambia: for variable=vector_o_matriz conjunto_sentencias end

Si se coloca un vector, la variable toma, en cada iteracin del ciclo, un valor del vector, hasta recorrerlo completamente. Si se coloca una matriz, la variable toma una columna de la matriz, es decir, la variable ser en cada iteracin, un vector que tendr el valor de una columna de la matriz Ejemplos: x=10:-1:1 for i=x disp(El valor de i es ) disp(i) end Este ejemplo usando la nomenclatura anterior: x=10:-1:1 for i=1:length(x) disp(El valor de elemento del vector es ) disp(x(i)) disp(El valor del ndice del vector es ) disp(i) end con una matriz: matriz = [ 1 2 3 4; 1 2 3 4; 1 2 3 4; 1 2 3 4] for x = matriz n = x(1)*x(2)*x(3)*x(4) end

Aclaracin importante: El uso de los ciclos for dentro de Matlab debe restringirse a operaciones que no vengan integradas con el programa, ya que una funcin que lo contenga, se hace ineficiente en trminos de tiempo de ejecucin, si se utilizan muchos ciclos for. Por ejemplo, se puede calcular la suma de los componentes de un vector mediante el siguiente ciclo: X = [10 20 30 40 50]; a = 0; for i=1:length(X) a = a + X(i); end pero resulta ms eficiente: a=sum(X)

Ciclo while En este tipo de ciclo, NO se sabe cuntas veces se realizar el bucle, es decir, cuantas veces se ejecutar el conjunto de instrucciones dentro del ciclo. La cantidad de veces NO est determinada en la seccin de decisin del ciclo. En esta seccin se determina la condicin, que deber ser verdadera, para que el ciclo siga funcionando. La sintaxis del ciclo while en Matlab es la siguiente: while condicion sentencias end Las sentencias se siguen ejecutando mientras haya elementos distintos de cero en condicion, es decir, mientras haya algn o algunos elementos true. El bucle se termina cuando todos los elementos de condicion son false (es decir, cero).

Ejemplo : a=3; while a < 5 disp ('a es menor que 5 ya que vale') disp (a) a = a + 1; end Podemos mezclar en un programa varias sentencias de este estilo. Aqu podemos ver un programa que escribe por pantalla los primos del 1 al 100 usando las sentencias if, while y for. Estos son los nmeros primos menores de 100: disp(1) disp(2) for i=2:100 n=2; while n <= sqrt(i) if rem(i,n)==0 n=i; else n=n+1; end end if n~=i disp(i)

end end

Conclusin : Matlab es una poderosa herramienta de uso verstil , la cual nos facilita la resolucin a diversos problemas que podamos encontrar ,ya que nos permite realizar graficos adems de que nos facilita la creacin de seales :

Ejemplo de una seal dientes de cierra Se crea con un ciclo ciclo for y ya fue explicado con anteoridad t=[-1:.005:1]; f=1; w0=2*pi*f; x=1.5*ones(size(t)); for i=1:100; x=x+((-1)^(i+1))*(1/i)*sin(i*w0.*t); end plot(t,x,'r','linewidth',2), grid

bibliografa: http://www-2.dc.uba.ar/materias/t1/files/ciclos.pdf