Vous êtes sur la page 1sur 13

2. EL LENGUAJE DE PROGRAMACION MATLAB 2.1.

FUNDAMENTOS DE MATLAB EL MATLAB (MATrix LABoratory) tiene como elemento bsico la matriz, que no requiere dimensionamiento previo y se escribe tal como se hace matemticamente, lo cual aporta facilidad y rapidez de uso. Al ejecutar el programa aparece un indicador de espera para la introduccin de los comandos propios de MATLAB: >>_ 1. Expresiones. Se introducen tal como se escriben matemticamente: >> a = 4/3 respuesta: a= 1.3333 De esta manera se crea una variable a en el entorno de trabajo, cuyo valor se puede consultar escribiendo su nombre: >> a respuesta: a= 1.3333 MATLAB reconoce hasta 19 caracteres como nombre de variable y es sensible a las maysculas (a A ). Al introducir una expresin sin crear una variable, se genera la variable ans, que equivale a answer: >> 4/3 respuesta: ans= 1.3333

Para que no aparezca la respuesta en pantalla, se aade un punto y coma (;) al final de la expresin:
1

>>b = 4+7; >> El comando who muestra las variables del espacio de trabajo: >>who a b ans

Si la expresin na cabe en una lnea se utilizan tres puntos seguidos () y se contina en la siguiente lnea: >>p = 1+2+3+4+ 5+6+7 Las expresiones pueden formarse con secuencias de nmeros, operadores, funciones y variables definidas previamente: >>c = a * (b - 1) respuesta: c= 13.3333 (multiplicacin), \

Operadores: Los ms usuales son (divisin por la izqda.), ^ (potencia). Variables predefinidas: i, j, pi, Inf, NaN.

MATLAB contiene funciones que se pueden incorporar a expresiones: >>y = sqrt(1+4*i) respuesta: y= 1.6005+1.2486i Se obtiene informacin general con help y ayuda sobre una funcin, operador, etc, especificando el nombre:

>>help sqrt

2. Creacin de Ficheros de Trabajo Un fichero de trabajo (script) contiene secuancias de comandos ejecutables en el entorno de trabajo MATLAB. Se crean con un editor de texto externo, y se nombran con extensin .m. Cuando se escribe el nombre del fichero en el indicador de MATLAB, se ejecutan los comandos que contiene: % Ejemplo.m % Ejecuta magnitud y fase de la funcion de transferencia % G(jw) = 1/(jw+2) evaluada en w = 1. w=1; G = 1 / (j*w + 2); magnitud= abs(G) fase = atan (imag(G)/real(G))

Cuando escribamos el nombre de este fichero en el indicador MATLAB aparecer: >> Ejemplo magnitud= 0.4472 fase= -0.4636 Todas las variables creadas en un fichero script permanecen en el espacio de trabajo una vez ejecutado ste: >>G respuesta: G= 0.4000 - 0.2000 i
3

Las lneas que comienzan con % son comentarios y no son ejecutadas.

3. Matrices, Vectores y Polinomios. Una matriz se introduce listando ssus elementos entre corchetes []: -Los elementos de una fila (columna) se separan por comas o blancos. - Las filas se separan por ; o CR. >>A = [1 2; 3 4] respuesta: A= 1 2 3 4

Los elementos de una matriz pueden ser cualquier expresin MATLAB. Se reconocen solo matrices rectangulares, con igual nmero de columnas en cada fila. Para conocer la dimensin de una matriz se utiliza el comando size: >>size(A) respuesta: ans = 2 2 Los elementos individuales de una matriz se referencian mediante ndices entre parntesis: >>A(2,2) = 5 respuesta: A= 1 2 3 5

Al aadir un elemento a una posicin cuyos ndices son superiores al tamao de la matriz, se insertan ceros automticamente para mantenerla rectangular: >>A(3,3) = 6 respuesta: A= 1 2 0 3 5 0 0 0 6 Un vector es una matriz de dimensin 1xn nx1: >>v = [sin(pi/3) -7^3 a+1] v= [0.8660 -343.0000 2.3333] Se pueden crear vectores especiales utilizando : >>n = 1:10; que genera un vector fila con elementos de 1 a 10 , a incrementos de 1. >>m = 1:0.25:2 m= 1.000 1.2500 1.5000 1.7500 2.0000 La funcin logspace(x,y,n) genera vectores con n elementos espaciados logartmicamente entre 10x y 10y. La funcin linspace(x,y,n) genera vectores con n elementos linealmante espaciados. Se pueden manipular matrices de forma muy flexible: - Aadir una fila a la matriz A: >> A = [A;[7 8 9]] respuesta: A= 1 2 0
5

3 5 0 0 0 6 7 8 9 - Extraer una submatriz de A: >>B = A(2:3,1:3) respuesta: B= 3 5 0 0 0 6 - Se utiliza : como ndice para designar todos los elementos: >> A(1,:) >> A(:) (devuelve la 1 fila entera) (todos los elementos de A en una nica columna)

Hay adems funciones que generan matrices especiales: diag: eye: zeros: ones: rand: genera una matriz diagonal. genera la matriz identidad (unos en la diagonal). genera una matriz nula. genera una matriz de unos. genera una matriz de nmeros aleatorios.

Los polinomios se describen en MATLAB mediante vectores con los coeficientes del polinomio en orden de potencias decrecientes: Ejemplo: p = s2 + 5s +6 >> p = [ 1 5 6 ] Se evalan con la funcin polyval: >> polyval(p,1) respuesta: ans = 12 Las races se obtienen con la funcin roots:
6

>> r = roots(p)

respuesta:

ans = -3 -2

La funcin poly permite construir polinomios a partir de sus races: >>t = poly([-4 -5]) respuesta: t= 1 9 20 La multiplicacin de polinomios entres s se realiza mediante la funcin conv: >> q = [1 3] ; >> s = conv(p,q) s= 1.0000 8.0000 21.0000 18.0000

4. Operaciones con Matrices.

La aritmtica es la misma que la utilizada con escalares: >> B = [5 0 ; 0 6]; D = [1 0 ; 0 2]; >> B + D respuesta:

ans = 6 0 0 8 ans = 5 0 0 12

>> B * D

respuesta:

La divisin puede ser por la izquierda (\) o por la derecha (/):


P x = Q x = P 1 Q x = P \ Q
7

y P = Q y = Q P-1 y = Q / P

Para obtener la transposicin de una matrriz o vector se utiliza el apstrofe (): >>A = [1 2 ; 3 4 ]; >> A

respuesta:

A= 1 3 2 4

Hay funciones MATLAB para operar sobre matrices, com det(X), inx(X), rank(X), eig(X), expm(X), etc. Para operar sobre una matriz o un vector, elemento a elemento, se utiliza un punto . delante del operador: >> datos = [1 2 3]; >> datos.^2 >>datos .* [4 5 6]

respuesta: respuesta:

ans = 1 4 9 ans = 4 10 18

Algunas funciones operan elementoa elemento automticamente, como exp, abs, sqrt, real, log, etc. Se pueden emplear tambin operadores relacionales y lgicos con matrices.

5. Creacin de Funciones Las funciones son secuencias de sentencias que ejecutan una tarea independiente. La sintaxis de definicin de la funcin viene dada por: function [arg. de salida]= nombre(arg. de entrada)
8

function y = sigmoide(x) y= 1/ (1 + exp(-x)); >>c= 0.7; a= sigmoide(c); a= 0.6682 Una funcin se diferencia de un fichero script en su primera lnea (que contiene la palabra function), puede ser usada como parte de una expresin y adems las variables generadas por la funcin son locales a ella. Hay comandos para control de flujo, como for, while, if, break, error, etc.

2.2. GRAFICOS Y VISUALIZACION MATLAB suministra una importante coleccin de funciones grficas debido a la facilidad de comprensin que aporta la percepcin visual de datos.

1. Grficos Bidimensionales La funcin plot genera grficos 2D, y opera sobre vectores y matrices. >> plot (X,Y) grafica X frente a Y >> plot (X1,Y1,X2,Y2) es usada para producir multiples plots superpuestos. Se pueden utilizr diferentes smbolos para denotar el color y el tipo de lnea

y m c r g b w k

yellow magenta cyan red green blue white black

. point o circle x x-mark + plus - solid * star : dotted -. dashdot -- dashed

Por ejemplo: >> plot(x1,y1,:,x2,y2,+) >> plot(x) realiza la grfica de x frente a su ndice. Una vez dibujado el grfico, el comando ginput permite obtener las coordenadas del punto del grfico donde se hace clic con el ratn: >>[x,y]= ginput Otros comandos para grficos 2D son: - loglog, semilogx, semilogy, para escalado logartmico de ejes. - polar, en coordenadas polares. - bar, stairs: grficos de barras y escalonados. 2. Adaptacin de Grficos Comandos que incluyen etiquetas para los ejes (xlabel,ylabel), poner ttulo (title), escribir texto(gtext), cambios de escala, etc, para aportar legibilidad. El comando subplot permite dividir la ventana de grficos en varias partes.
10

>> t=0:0.1:10; x1= exp(-t); x2= sin(t); >>subplot(211);plot(t,x1);xlabel(t);ylabel(x1); >>subplot(212);plot(t,x2);xlabel(t);ylabel(x2);


1

x1 0.5

4 t

10

1 0.5 x2 0 -0.5 -1 0 2 4 t 6 8 10

Otros comandos utilizados son hold y axis: - hold: retiene el grfico actual en la pantalla, manteniendo el escalado de ejes, tal que hold on lo activa y hold off lo desactiva. - axis: permite definir las escalas de la grfica, tal que axis devuelve un vector conteniendo [x_min,x_max,y_min,y_max] del ltimo grfico realizado, y axis(v) establece el escalado con los valores definidos en v.

3. Grficos Tridimensionales Existen dos comandos, mesh para respresentacin 3D y contour para dibujo de curvas de nivel. Ejemplo: dibujo de la superficie z = x4 + (y/2)4 >> x = [-1:0.1:1]; >> y = [-2:0.1:2]; >> [X,Y] = meshdom(x,y); >> Z = X.^4 + (Y/2).^4;
11

>> mesh(X,Y,Z); >> xlabel(x);ylabel(y);zlabel(z);

2 1.5 z 1 0.5 0 2 1 0 -1 y -2 -1 -0.5 x 0.5 0 1

>> contour(X,Y,Z)

2 1.5 1 0.5 y 0 -0.5 -1 -1.5 -2 -1 -0.5 0 x 0.5 1

Cada curva del dibujo del contorno representa los valores de x e y que corresponden a un valor fijo de z. El plano x-y coincide con el plano de la hoja y el eje z est representado hacia fuera. El comando view(az,el) permite la
12

rotacin de la superficie con angulo horizontal az y de elevacin el. La grfica de curvas de nivel ayuda a ver la forma tridimensional de la superficie mesh.

13

Vous aimerez peut-être aussi