You are on page 1of 33

Qu es Matlab?

Matlab es un programa command-driven, es decir, que se introducen las rdenes escribindolas una a una a continuacin del smbolo (prompt) que aparece en una interfaz de usuario (una ventana). Una herramienta para hacer clculos matemticos que utiliza como elemento bsico la matriz. Un lenguaje de programacin: interactivo: rdenes avanzado pero fcil de utilizar: archivos.m Plataforma de desarrollo: toolboxes Ventajas del Matlab Su programacin requiere menos tiempo que otros lenguajes como FORTRAN, C, Pascal, etc. Utiliza un lenguaje ms cercano a la matemtica. Permite definir fcil y rpidamente nuevas funciones que se incorporan a Matlab (mediante el toolboxes) Grandes capacidades grficas. Qu se puede realizar? Polinomios Grficos 2D Grficos 3D Ajuste de curvas Interpolacin Anlisis numrico Desarrollo de algoritmos Modelado, simulacin y prueba de prototipos Anlisis de datos, exploracin y visualizacin Graficacin de datos con fines cientficos o de ingeniera Desarrollo de aplicaciones que requieran de una interfaz grfica de usuario. En el mbito acadmico y de investigacin, MATLAB es la herramienta estndar para los cursos introductorios y avanzados de matemticas, ingeniera e investigacin. En la industria MATLAB es la herramienta usada para el anlisis, investigacin y desarrollo de nuevos productos tecnolgicos. La ventaja principal de MATLAB es el uso de familias de comandos de reas especficas llamadas toolboxes. Lo ms importante para los usuarios de MATLAB es que los toolboxes le permiten aprender y aplicar la teora. Los toolboxes son grupos de comandos de MATLAB (archivos M) que extienden el ambiente de MATLAB para resolver problemas de reas especficas de la ciencia e ingeniera. Por ejemplo, existen toolboxes para las reas de Procesamiento Digital de Seales, Sistemas de Control, Redes Neuronales, Lgica Difusa, Wavelets, etc.

Grafico 2-D
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1

0.5

1.5

2.5

3.5

4.5

Grafico 3-D

10

-5

-10 30 20 10 0 5 0 15 10 25 20

Espacio de trabajo Al ejecutarse Matlab se crea una ventana de trabajo que corresponde al lugar desde donde se interacciona con Matlab: El smbolo denota que se esta esperando una orden 123*456 ans = 56088 ans almacena el resultado por defecto. La variable ans es una variable interna utilizada por Matlab para almacenar resultados que no han sido asignados a ninguna otra variable. Instruccin de asignacin.- Consiste en un nombre de variable seguido de un signo igual y de los valores de datos que se asignarn a la variable. a=8/3 Por medio de este comando se ha asignado el valor 2.6667 a la variable a m = [1 2 3 4 5 6 7 8 9] En este caso los valores entre corchetes han sido asignados a la variable m. b=13/2; Si se quiere asignar un valor sin que de respuesta, la asignacin debe terminar con el signo ; Funciones bsicas Suma: + resta: multiplicacin: * divisin: \ / potencia: ^

Matriz .- Conjunto de nmeros dispuestos en una retcula rectangular de filas y columnas. M = [1 2 3 ;4 5 6 ;7 8 9] M= 1 4 7 2 5 8 3 6 9

Esta instruccin es un ejemplo de la instruccin de asignacin, que consiste en un nombre de variable seguido de un signo igual y de los valores de datos que se asignarn a la variable. Dichos valores se encierran entre corchetes en orden por fila; las filas se separan con signos de punto y coma, y los valores de cada fila se separan mediante comas o espacios. Un valor puede contener un signo + - y un punto decimal, pero no puede contener una coma. Cuando definimos una matriz, MATLAB imprime el valor de la matriz en la pantalla a menos que suprimamos la impresin con un signo de punto y coma despus de la definicin. 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 (puntos suspensivos) al final de la lnea para indicar que la fila debe continuar. MATLAB tambin nos permite definir una matriz usando otra matriz que ya se defini.

Escalar.- Si una matriz tiene una fila y una columna, podemos llamar escalar al nmero. Vector.- Si una matriz tiene una fila o una columna, la llamamos vector; usamos el trmino vector fila o vector columna.

Un vector se define introduciendo los componentes, separados por espacios o por comas, entre corchetes: f1=[-2 0 2] f1 = -2 0 2 Para definir un vector columna, se separan las filas por puntos y comas: c1=[-0.3333;0;0.3333] c1 = -0.3333 0 0.3333 Podemos seleccionar un elemento de un vector o un subconjunto de elementos. Para especificar un elemento de una matriz usa el nmero de fila y el de columna. Para referirse a un elemento de la matriz: M(6) ans = 8 Matlab almacena las matrices como una simple columna que esta compuesta por todos los elementos de las columnas de la matriz M(3,1) ans = 7 Para direccionar elementos aislados se utiliza un array de ndices Ejemplo: u=[23 45 12 2+3i -2i 32 12]; u([4 1 2]) ans = 2+3i 23 45 u([1 4 7]) ans = 23 2+3i 12

Operador de dos puntos.- Puede usarse dicho operador para crear vectores a partir de una matriz. Si se usa un signo de dos puntos en una referencia de matriz en lugar de un subndice especfico, el signo de dos puntos representa a toda la fila o columna. El operador de dos puntos tambin puede servir para generar matrices nuevas. Si se usa un signo de dos puntos para separar dos enteros, el operador de dos puntos generar todos los enteros entre los dos enteros especificados. >> W = 1 : 10 W = 1 2 3 4 5 6 7 8 9 10 Si se usan signos de dos puntos para separar tres nmeros, el operador de dos puntos generar valores entre el primer nmero y el tercero, usando el segundo nmero como incremento. >> X= 1 : 2 : 10 X=1 3 5 7 9 >> Y = 1 : 1.5 : 10 Y = 1.0000 2.5000 4.000 5.5000 7.0000 8.5000 10-0000

>> Z = 10 : -1 : 1 Z = 10 9 8 7 6 5 4 3 2 1

El operador de dos puntos tambin puede servir para seleccionar una submatriz de otra matriz. El siguiente comando extrae los dos primeros elementos de la tercera fila: >> M(3, 1 : 2) Ans = 7 8

Para referirse a toda una fila o a toda una columna se emplean los dos puntos. Los dos puntos aislados representan todos los elementos. Por ejemplo, Si desea visualizar todos los elementos de una fila: M(2,:) Extraer todos los elementos de una columna. M(:,2) Extraer todos los elementos de dos columnas. M(:,2:3)

>> v=[1 2 3; 4 5 6;7 8 9] v= 1 4 7 >> v(2:6) ans = 4 2 5 8 3 6 9

>> v(2:2:6) ans = 4 2

Matriz cuadrada.- Es una matriz con m filas = n columnas. Matriz nula.- Todos los elementos de la matriz nula son ceros. Las matrices nulas se definen en MATLAB con el comando zeros. Con A = zeros(m,n), A se convierte en una matriz nula de m por n. A = zeros(n) devuelve una matriz nula de n por n. Por ejemplo: A=zeros(3) A= 0 0 0 0 0 0 0 0 0

Dado que el comando size devuelve dos argumentos escalares que representan el nmero de filas y el nmero d columnas de una matriz, podemos usar size para generar una matriz que tenga el mismo tamao que otra matriz. El comando ones genera una matriz que solo contiene unos, igual que el comando zeros genera una matriz que slo contiene ceros. Los argumentos para el comando ones tiene la misma funcionalidad que los de zeros. El comando magic (n) crea una matriz cuadrada de nxn con filas, columnas y diagonales cuyas sumas es la misma. >> Z= magic(3) Matriz identidad.- Es una matriz con unos en la diagonal principal y ceros en las dems posiciones. La orden de MATLAB para definir una matriz identidad es eye. Con B = eye(n), B se convierte en una matriz identidad de n por n. >> B= eye(3) B= 1 0 0

0 1 0

0 0 1

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

FUNCIONES
FUNCION.- Una funcin tiene nombre, valor de retorno y argumentos. Los argumentos
de cada funcin van a continuacin del nombre entre parntesis (y separados por comas si hay ms de uno). Los valores de retorno son el resultado de la funcin y sustituyen a sta en la expresin donde la funcin aparece. Los nombres de funciones deben estar en minsculas. Variable_resultado = funcin (argumento) Ejemplos: x=linspace(-2,2) y = sin (x) z = sin (x*pi/180) Las referencias de funcin tambin pueden formar parte del argumento de otra referencia de funcin. Si se usa una funcin para calcular el argumento de otra funcin, hay que asegurarse de que el argumento de cada funcin est encerrado en su propio juego de parntesis. Este anidamiento de funciones se llama composicin de funciones. Ejemplo: v = -10 w = log (abs (v) )

FUNCIONES MATEMATICAS
abs(x) sqrt(x) round(x) fix(x) floor(x) ceil(x) sign(x) rem(x,y) exp(x) log(x) log10(x) sin(x) cos(x) tan(x) asin(x) acos(x) atan(x) Calcula el valor absoluto de x. Calcula la raz cuadrada de x. Redondea x al entero ms cercano. Redondea x al entero ms cercano a 0. Redondea x al entero ms cercano a -. Redondea x al entero ms cercano a . Devuelve un valor de 1 si x es menor que 0, un valor de 0 si x es igual a 0 y un valor de 1 si x es mayor que 0. Devuelve el residuo de x/y. Calcula ex, donde e es la base de los logaritmos naturales. Calcula ln x, el logaritmo natural de x con base e. Calcula log10x, el logaritmo comn de x con base 10. seno coseno tangente arco seno (devuelve un ngulo en radianes entre /2 y /2) arco coseno (devuelve un ngulo en radianes entre 0 y ) arco tangente (devuelve un ngulo entre -/2 y +/2)

FUNCIONES TRIGONOMETRICAS E HIPERBOLICAS

Las funciones hiperblicas son funciones de la funcin exponencial natural, ex. Las funciones hiperblicas inversas son funciones de la funcin de logaritmo natural, ln x. sinh(x) seno hiperblico cosh(x) coseno hiperblico tanh(x) tangente hiperblica asinh(x) arco seno hiperblico acosh(x) arco coseno hiperblico
Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB
atanh(x) arco tangente hiperblica

FACULTAD DE INGENIERIA QUIMICA-UNICA

Estas no son todas las funciones de las que disponemos, pero para empezar ya son unas cuantas. Si consultamos la ayuda ( recordemos que MATLAB nos ofrecer ayuda en cualquier momento escribiendo help). >> help HELP topics: matlab\general matlab\ops matlab\lang matlab\elmat matlab\elfun matlab\specfun matlab\matfun matlab\datafun matlab\polyfun matlab\funfun matlab\sparfun matlab\graph2d matlab\graph3d matlab\specgraph matlab\graphics matlab\uitools matlab\strfun matlab\helptools matlab\demos ......................... toolbox\splines toolbox\stats toolbox\symbolic ........................... General purpose commands. Operators and special characters. Programming language constructs. Elementary matrices and matrix manipulation. Elementary math functions. Specialized math functions. Matrix functions - numerical linear algebra. Data analysis and Fourier transforms. Interpolation and polynomials. Function functions and ODE solvers. Sparse matrices. Two dimensional graphs. Three dimensional graphs. Specialized graphs. Handle Graphics. Graphical user interface tools. Character strings. Help commands. Examples and demonstrations.

- Spline Toolbox - Statistics Toolbox - Symbolic Math Toolbox

Podemos escribir help elfun (elfun: elementary functions) para que nos informe de mas funciones matemticas que tiene disponibles. >> help elfun Elementary math functions. Trigonometric. sin sinh asin asinh cos cosh acos acosh tan tanh atan - Sine. - Hyperbolic sine. - Inverse sine. - Inverse hyperbolic sine. - Cosine. - Hyperbolic cosine. - Inverse cosine. - Inverse hyperbolic cosine. - Tangent. - Hyperbolic tangent. - Inverse tangent.
Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB
atanh sec sech asec asech csc csch acsc acsch cot coth acot acoth Exponential. exp log log10 sqrt Complex. abs conj imag real

FACULTAD DE INGENIERIA QUIMICA-UNICA

- Inverse hyperbolic tangent. - Secant. - Hyperbolic secant. - Inverse secant. - Inverse hyperbolic secant. - Cosecant. - Hyperbolic cosecant. - Inverse cosecant. - Inverse hyperbolic cosecant. - Cotangent. - Hyperbolic cotangent. - Inverse cotangent. - Inverse hyperbolic cotangent. - Exponential. - Natural logarithm. - Common (base 10) logarithm. - Square root. - Absolute value. - Complex conjugate. - Complex imaginary part. - Complex real part.

Rounding and remainder. fix - Round towards zero. floor - Round towards minus infinity. ceil - Round towards plus infinity. round - Round towards nearest integer. rem - Remainder after division.

Podemos escribir help elmat: >> help elmat Elementary matrices and matrix manipulation. Elementary matrices. zeros - Zeros array. ones - Ones array. eye - Identity matrix. repmat - Replicate and tile array. rand - Uniformly distributed random numbers. randn - Normally distributed random numbers. linspace - Linearly spaced vector. logspace - Logarithmically spaced vector. freqspace - Frequency spacing for frequency response. meshgrid - X and Y arrays for 3-D plots. accumarray - Construct an array with accumulation. : - Regularly spaced vector and index into matrix.

Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

Tambin podemos solicitar ayuda sobre una funcin especfica: >> help linspace linspace linspace (X1, X2) linspace (X1, X2, N) Linearly spaced vector. Generates a row vector of 100 linearly equally spaced points between X1 and X2. Generates N points between X1 and X2.

Matlab tambin nos ofrecer ayuda sobre otras funciones escribiendo help specfun (special functions). >> help specfun Specialized math functions. Specialized math functions. airy - Airy functions. besselj - Bessel function of the first kind. bessely - Bessel function of the second kind. beta - Beta function. betainc - Incomplete beta function. betaln - Logarithm of beta function. ellipj - Jacobi elliptic functions. erf - Error function. erfc - Complementary error function. erfinv - Inverse error function. expint - Exponential integral function. gamma - Gamma function. gammainc - Incomplete gamma function. legendre - Associated Legendre function. cross - Vector cross product. dot - Vector dot product. Number theoretic functions. gcd - Greatest common divisor.

lcm

- Least common multiple.

FUNCIONES DE NUMEROS COMPLEJOS


Un nmero complejo tiene la forma a + ib, donde i es b es la parte imaginaria del valor.

1 , a es la parte real del valor y

Cmo se introducen y cmo se opera con nmeros complejos en MATLAB? Pues exactamente de la misma forma que lo haramos con los nmeros reales. Por ejemplo: >> 1+3i ans = 1.0000 + 3.0000i && Sin necesidad de poner * entre el 3 e i.

Si queremos realizar otras operaciones con nmeros complejos:


Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

>> (1-i) + (2+4i) ans = 3.0000 + 3.0000i >> (1-i) - (2+4i) ans = -1.0000 - 5.0000i >> (1-i) * (2+4i) ans = 6.0000 + 2.0000i >> (1-i) / (2+4i) ans = -0.1000 - 0.3000i Tenemos adems las funciones conocidas que se usan con variables complejas: conj(x) real(x) imag(x) abs(x) angle(x) Calcula el conjugado complejo del nmero complejo x. Por tanto, si x es igual a a + ib, conj(x) es igual a a ib. Calcula la porcin real del nmero complejo x. Calcula la porcin imaginaria del nmero complejo x. Calcula el valor absoluto o magnitud del nmero complejo x. Calcula el ngulo usando el valor de atan2 (imag(x), real(x)); as, el valor del ngulo est entre y .

Cuando representamos un nmero complejo con una parte real y una parte imaginaria, como por ejemplo, en 2 + i3, estamos usando notacin rectangular. Un nmero complejo podra describirse tambin con un ngulo y un radio r relativo al origen. Esta forma se denomina notacin polar, y el punto 2 + i3 puede representarse en notacin polar con un ngulo de .98 radianes y un radio de 3.6. Conversin rectangular a polar:

r=

a 2 b 2 , = tan-1 b/a

Conversin polar a rectangular:

a = r cos , b = r sin
La identidad de Euler, relaciona la forma polar de un nmero complejo con su forma rectangular:

M = M.ej = a + bi
Donde, la forma polar se da como una magnitud M y un ngulo , y la forma rectangular viene dada por a + bi . La relacin entre estas formas son: M = a2 b2 = tan-1 (b/a) a = M cos b = M sin

Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB FUNCIONES DE ANALISIS DE DATOS


max(x) max(x,y) min(x) min(x,y) sum(x) prod(x) mean(x)

FACULTAD DE INGENIERIA QUIMICA-UNICA

median(x)

sort(x) std(x)

hist(x) hist(x,n)

Determina el valor mximo contenido en x. Si x es una matriz, la funcin devuelve un vector de fila que contiene el elemento mximo de cada columna. Determina una matriz con el mismo tamao que x y y. Cada elemento de la matriz contiene el valor mximo de las posiciones correspondientes en x y y. Determina el valor mnimo contenido en x. Determina una matriz con el mismo tamao que x y y. Determina la suma de los elementos de x. Si x es una matriz, esta funcin devuelve un vector de fila que contiene la suma de cada columna. Determina el producto de los elementos de x. Si x es una matriz, esta funcin devuelve un vector de fila que contiene el producto de cada columna. Calcula el valor medio (o promedio) de los elementos del vector x. Si x es una matriz, esta funcin devuelve un vector de fila que contiene el valor medio de cada columna. Determina la mediana de los elementos del vector x. Si x es una matriz, esta funcin devuelve un vector de fila que contiene la mediana de cada columna. Los valores de x no tienen que estar ordenados. Devuelve un vector con los valores de x en orden ascendente. Si x es una matriz, esta funcin devuelve una matriz con cada columna en orden ascendente. Calcula la desviacin estndar para los valores contenidos en x. Si x es una matriz, se devuelve un vector de fila que contiene la desviacin estndar de cada columna. Para calcular la varianza, simplemente eleve al cuadrado la desviacin estndar. Genera un histograma de los valores de x usando 10 intervalos. Genera un histograma de los valores de x usando n intervalos.

Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

MATRICES
OPERACIONES CON MATRICES

Recuerde que la multiplicacin de escalar y la suma y resta de matrices se efectan elemento por elemento. Dos matrices de distinto orden no se pueden sumar ni restar.
TRANSPOSICIN.- La transpuesta de una matriz es una nueva matriz en la que las filas de la matriz original son las columnas de la nueva. En MATLAB denotamos la transpuesta de la matriz A con A. PRODUCTO PUNTO.- El producto punto es un escalar calculado a partir de dos vectores del mismo tamao. Este escalar es la suma de los productos de los valores que estn en posiciones correspondientes de los vectores. En MATLAB podemos calcular el producto punto con la funcin dot. dot(A,B) Calcula el producto punto de A y B. Si A y B son matrices, el producto punto es un vector de fila que contiene los productos punto de las columnas correspondientes de A y B.

MULTIPLICACIN DE MATRICES.- En MATLAB, la multiplicacin de matrices se denota con un asterisco. Puesto que el producto punto exige que los vectores tengan el mismo nmero de elementos, la primera matriz (A) debe tener tantos elementos (N) en cada fila como elementos hay en cada columna de la segunda matriz (B). Si A tiene dos filas y tres columnas, y B tiene tres filas y tres columnas, el producto AB tendr dos filas y tres columnas. En este ejemplo, no podemos calcular BA porque B no tiene el mismo nmero de elementos en cada fila que A tiene en cada columna. POTENCIAS DE MATRICES.- Si queremos elevar al cuadrado la matriz, es decir, si queremos calcular A*A, podemos usar la operacin A^2. Para elevar una matriz a una potencia la matriz debe tener el mismo nmero de filas que de columnas; es decir, la matriz debe ser cuadrada. FUNCIONES MATRICIALES: rank(A) inv(A) det(A) Calcula el rango de la matriz A. Si el rango es igual al nmero de filas de A, la matriz no es singular y existe su inversa. Calcula el inverso de la matriz A, si existe. Si la inversa no existe, se exhibe un mensaje de error. Calcula el determinante de una matriz cuadrada A.

FUNCIONES PARA MANIPULAR MATRICES: rot90(A) fliplr(A) flipud(A) reshape (A,m,n) diag(A) Gira la matriz a 90 en direccin contraria a la manecillas del reloj. Invierte la matriz A de izquierda a derecha. Invierte la matriz A de arriba hacia abajo. Reconfigura la matriz A de modo que tenga m filas y n columnas. Extrae la diagonal de la matriz A como un vector columna.
Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

SOLUCIONES DE SISTEMAS DE ECUACIONES LINEALES


El conjunto de ecuaciones tambin se denomina sistema de ecuaciones. Un sistema de ecuaciones que tiene una solucin nica es no singular, y uno que no tiene solucin nica recibe el nombre de sistema singular. Considere el siguiente sistema de tres ecuaciones con tres incgnitas:
3x1 + 2x2 -x3 = 10 -x1 + 3x2 + 2x3 = 5 x1 -x2 -x3 = -1 Se usa generalmente la ecuacin de matrices AX = B para expresar un sistema de ecuaciones, T donde X es el vector de columna [x1 x2 x3] . Un sistema de ecuaciones no singular (aqu debe suponerse que el sistema es cuadrado M=N y que, por lo tanto, A es cuadrada) si la matriz A que contienen los coeficientes de las ecuaciones es no singular. Recuerde que el rango de una matriz puede servir para determinar si es no singular. Se pueden utilizar dos mtodos para resolver un sistema no singular. DIVISIN DE MATRICES.En MATLAB, podemos resolver un sistema de ecuaciones simultneas usando divisin de matrices. La solucin de la ecuacin de matrices AX = B puede calcularse usando divisin izquierda de matrices, como en A\B Como ilustracin, podemos definir y resolver el sistema de ecuaciones del ejemplo anterior: A = [3 2 -1; -1 3 2; 1 1 -1] B = [10 5 -1] X = A\B El vector X contiene ahora los siguientes valores: -2, 5, -6. Para confirmar que los valores de X s resuelven las ecuaciones, podemos multiplicar A por X usando la expresin A*X. El resultado es un vector de columna que contiene los valores 10, 5 1. INVERSIN DE MATRICES.Tambin podemos resolver un sistema de ecuaciones usando la inversa de la matriz A, siempre que exista dicha inversa. Por ejemplo, supongamos que A y B son las matrices que definimos antes. En MATLAB podemos calcular la solucin usando el siguiente comando: X = inv(A)*B Esta solucin se calcula usando una tcnica diferente de la resolucin que emplea divisin izquierda de matrices, pero ambas soluciones sern idnticas si el sistema no est mal condicionado.

Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

POLINOMIOS
POLINOMIO.- Es una funcin de una sola variable que se puede expresar en la siguiente forma general: f(x) = a0xN + a1xN-1 + a2xN-2 + ...... + aN-2x2 + aN-1x + aN
donde, la variable es x y los coeficientes del polinomio se representan con los valores de a0, a1, etc. El grado de un polinomio es igual al valor ms alto empleado como exponente. Por tanto, la forma general de un polinomio cbico (grado 3) es: g(x) = a0x3 + a1x2 + a2x + a3 y un ejemplo especfico de un polinomio cbico es: h(x) = x3 - 2x2 + 0.5x 6.5 Si suponemos que los coeficientes de los polinomios estn almacenados en los vectores a y b, podremos realizar clculos con polinomios usando a y b. Por ejemplo, si queremos sumar polinomios, sumamos los coeficientes de los trminos similares. Es decir, los coeficientes de la suma de dos polinomios son las sumas de los coeficientes de los dos polinomios. Cabe sealar que los vectores que contienen los coeficientes de los polinomios deben ser del mismo tamao para poderlos sumar. Los coeficientes del polinomio que representa la diferencia entre dos polinomios se pueden calcular de forma similar. El vector de coeficientes de la diferencia se calcula restando los dos vectores de coeficientes de polinomios. Un polinomio se representa por un vector fila con sus coeficientes en orden descendente; se deben incluir los trminos con coeficientes nulos. Las races de un polinomio se encuentran utilizando la funcin roots(p) Matlab adopta el convenio de que los polinomios son vectores fila y las races son vectores columna. Dadas las races de un polinomio, es posible construir los polinomios asociados mediante la funcin poly(r). La resolucin de muchos problemas de ingeniera implica obtener las races de una ecuacin de la forma: y = f(x) Donde, las races son los valores de x para los que y = 0. Si la funcin f(x) es un polinomio de grado N, entonces f(x) tiene exactamente N races. Esas N races pueden contener races mltiples o races complejas.

FUNCIONES POLINOMICAS
polyval(a,x) conv(a,b) Evala un polinomio con coeficientes a para los valores que estn en x. El resultado es una matriz del mismo tamao que x. Calcula un vector de coeficientes que contiene los coeficientes del producto de los polinomios representados por los coeficientes contenidos en a y en b. Los vectores a y b no tienen que tener el mismo tamao. Devuelve dos vectores. El primero contiene los coeficientes del cociente y el segundo contiene los coeficientes del polinomio que es el residuo. Determina las races del polinomio representado por el vector de coeficientes a. Determina los coeficientes del polinomio cuyas races estn contenidas en el vector r.

[q,r] = deconv(n,d) roots(a) poly(r)

Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

REPRESENTACIN Y TRATAMIENTO DE POLINOMIOS.


Matlab nos brinda una serie de funciones para trabajar con los polinomios. Aqu los polinomios se representan como vectores, por ejemplo, sea

p(x) = 8x4 - 5x3 + x2 + 3x + 4


en Matlab debemos ingresar a p de la siguiente manera >> p = [ 8 - 5 1 3 4 ] p=8 -5 1 3 4 Observe que Matlab al responder no reescribe los corchetes. De ahora en adelante utilizaremos los trminos vector y polinomio indistintamente para referirnos al mismo concepto. Funciones bsicas: roots(p): Obtiene races de un polinomio dado Calcula las races de un polinomio cuyos coeficientes son los elementos del vector p. Si p tiene N+1 componentes, el polinomio es p(1)*X^N + ... + p(N)*X + p(N+1). >> q = [ 1 - 5 6 ] q=1 -5 6 >> roots(q) ans = 3.0000 2.0000 poly(v): Construye un polinomio a partir de sus races Retorna un vector (polinomio) cuyos elementos son los coeficientes del polinomio cuyas races son los elementos de v. Puede apreciarse que roots y poly son funciones inversas. >> v = roots(q) v=3 2 >> q =poly(v) q = 1 -5 6 O si desea verlo un poco ms claro note que: >> poly(roots(q)) ans = 1 -5 6 >> roots(poly(v)) ans = 3 2 polyval(p,x): Evala un polinomio en un punto dado Si p tiene N+1 elementos, retorna el valor del polinomio al evaluarlo en x. Es decir y = p(1)* xN + p(2)*xN-1 + ... + p(N)*x + p(N+1) f(x) = 2x3 + 3x2 + 4x + 5 >> f = [ 2 3 4 5]
Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

f= 2 3 4 5 >> polyval(f,2) ans = 41 conv(p, q): Multiplicacin de polinomios conv viene de convolucin, en el caso de los vectores convolucionar dos vectores es equivalente a multiplicarlos. Veamos un ejemplo: Sean p(x) = 2x + 1 y q(x) = 3x + 4 >> p = [ 2 1 ] p=2 1 >> q = [ 3 4 ] q=3 4 >> r = conv(p, q) r = 6 11 4 Observe que retorna el polinomio r(x) = 6x + 11x + 4. deconv(p, q): Divisin entre polinomios Se utiliza de la siguiente manera [Q, R] = deconv(p, q); El resultado de la divisin de p por q queda almacenado en la variable Q, y el resto de esta operacin en la variable R. Ejemplo: >> r r= 6 11 4 >> p p= 2
2

>> [Q, R] = deconv(r, p) Q= 3 4 R= 0 0 0

Verifiquemos este resultado con la frmula r = Q*p + R: >> conv(Q, p) + R ans = 6 11 4


Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB >> r r= 6

FACULTAD DE INGENIERIA QUIMICA-UNICA

11

Suma y resta: Uno deseara poder sumar y restar polinomios de manera gil y sencilla, lo ptimo sera utilizar los smbolos + y -, nada ms. Veamos que sucede: >> p = [2 1 0 5] p= 2 1 0 5 >> q = [3 4] q= 3 4 >> p + q ??? Error using ==> +Matrix dimensions must agree. ???Error usando ==> + Las matrices deben tener la misma dimensin. Lo anterior nos informa que ocurri un error al momento de utilizar el smbolo +, lo que sucede es que estos vectores (los vectores son un caso particular de matriz) no poseen la misma dimensin (cantidad de elementos). La primera opcin que tenemos para sortear este obstculo es completar el vector p o q con tantos ceros a la izquierda como sean necesarios, de esta manera conseguimos un par de vectores que continan representando los polinomios que tenamos inicialmente.

Nota: q(x) = 3x + 4 = 0x3 + 0x2 + 3x + 4 = 0xn + 0xn-1 +... + 0x3 + 0x2 + 3x + 4


En nuestro caso: >> p = [ 2 1 0 5 ] p= 2 1 0 5 >> q = [ 0 0 3 4 ] q= 0 0 3 4 >> p + q ans = 2 1

Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

GRAFICOS 2-D
FUNCIN plot La funcin plot(), en sus diversas variantes, no hace otra cosa que dibujar vectores. Un ejemplo muy sencillo de esta funcin, en el que se le pasa un nico vector como argumento, es el siguiente: x=[1 3 2 4 5 3] x= 132453 plot(x)
5 4.5 4 3.5 3 2.5 2 1.5 1

1.5

2.5

3.5

4.5

5.5

El resultado de este comando es que se abre una ventana mostrando el grfico. Por defecto, los distintos puntos del grfico se unen con una lnea continua. Cuando a la funcin plot() se le pasa un nico vector real como argumento, dibuja en ordenadas el valor de los n elementos del vector frente a los ndices 1, 2, ... n del mismo en abscisas. Una segunda forma de utilizar la funcin plot() es con dos vectores como argumentos. En este caso los elementos del segundo vector se representan en ordenadas frente a los valores del primero, que se representan en abscisas.
Veamos cmo se puede representar la funcin seno entre 0 y 10. Para empezar creemos una variable x que vaya de cero a 10: x=0:0.1:10;

A continuacin, calculemos sin(x) almacenando el resultado en la variable y:


y=sin(x);

Para trazar el grfico, se emplea la funcin plot:


plot(x,y)
Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB
y se obtiene en otra ventana el grfico.

FACULTAD DE INGENIERIA QUIMICA-UNICA

1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 1 2 3 4 5 6 7 8 9 10

Vase por ejemplo cmo se puede dibujar un cuadriltero de esta forma (obsrvese que para dibujar un polgono cerrado el ltimo punto debe coincidir con el primero): x=[1 6 5 2 1]; y=[1 0 4 3 1]; plot(x,y)

4 3.5 3 2.5 2 1.5 1 0.5 0

1.5

2.5

3.5

4.5

5.5

Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

GRAFICAS MULTIPLES.plot (x,y,w,z) donde las variables x,y,w,z son vectores. Al ejecutarse este comando , se traza la curva correspondiente a x versus y, y luego se traza en la misma grfica la curva correspondiente a w versus z.

La funcin plot() permite tambin dibujar mltiples curvas introduciendo varias parejas de vectores como argumentos. En este caso, cada uno de los segundos vectores se dibuja en ordenadas como funcin de los valores del primer vector de la pareja, que se representan en abscisas. Obsrvese bien cmo se dibujan el seno y el coseno en el siguiente ejemplo: x=0:pi/25:6*pi; y=sin(x); z=cos(x); plot(x,y,x,z)

1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 2 4 6 8 10 12 14 16 18 20

El comando plot puede utilizarse tambin con matrices como argumentos. Se puede obtener una excelente y breve descripcin de la funcin plot() con el comando help plot. Se ha visto cmo la tarea fundamental de la funcin plot() era dibujar los valores de un vector en ordenadas, frente a los valores de otro vector en abscisas. En el caso general esto exige que se pasen como argumentos un par de vectores. En realidad, el conjunto bsico de argumentos de esta funcin es una tripleta formada por dos vectores y una cadena de 1, 2 3 caracteres que indica el color y el tipo de lnea o de marker.

Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

Podemos seleccionar los tipos de lnea, asimismo, podemos escoger distintos caracteres para indicar los puntos. En la tabla siguiente se pueden observar las distintas posibilidades. Especificador Y M C R G B W K Especificador : --. Color de lnea Yellow Magenta Cyan Red Green Blue White Black Estilo de lnea Lneas continuas Lneas a puntos Lneas a trazos Lneas a barrapunto Caracteres . o x + * s d P h Tipo de marca Puntos Crculos Marcas en x Marcas en + Marcas en * cuadrado diamante pentagrama hexagrama

COMANDO SUBPLOT.- Una ventana grfica se puede dividir en m particiones horizontales y n verticales, con objeto de representar mltiples grficos en ella. Cada una de estas subventanas tiene sus propios ejes, aunque otras propiedades son comunes a toda la figura. La forma general de este comando es: subplot(m,n,i) donde m y n son el nmero de subdivisiones en filas y columnas, e i es la subdivisin que se convierte en activa. Las subdivisiones se numeran consecutivamente empezando por las de la primera fila, siguiendo por las de la segunda, etc. Por ejemplo, la siguiente secuencia de comandos genera cuatro grficos en la misma ventana: x=0:pi/25:6*pi; y=sin(x); z=cos(x); w=exp(-x*.1).*y; v=y.*z; subplot(2,2,1), plot(x,y) subplot(2,2,2), plot(x,z) subplot(2,2,3), plot(x,w) subplot(2,2,4), plot(x,v)

Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

1 0.5 0 -0.5 -1 0 5 10 15 20

1 0.5 0 -0.5 -1 0 5 10 15 20

1 0.5 0 -0.5 -1 0 5 10 15 20

0.5

-0.5

10

15

20

Para volver a la opcin por defecto basta teclear el comando: subplot(1,1,1) CONTROL DE LOS EJES.- Tambin en este punto MATLAB tiene sus opciones por defecto, que en algunas ocasiones puede interesar cambiar. El comando bsico es el comando axis. Por defecto, MATLAB ajusta la escala de cada uno de los ejes de modo que vare entre el mnimo y el mximo valor de los vectores a representar. Este es el llamado modo "auto", o modo automtico. Para definir de modo explcito los valores mximo y mnimo segn cada eje, se utiliza el comando: axis([xmin, xmax, ymin, ymax]) mientras que : axis(auto) devuelve el escalado de los ejes al valor por defecto o automtico. FUNCIONES GRFICAS 2D ELEMENTALES.- MATLAB dispone de funciones bsicas para crear grficos 2-D. Estas funciones se diferencian principalmente por el tipo de escala que utilizan en los ejes de abscisas y de ordenadas. Estas funciones son las siguientes: bar(x,y) Grfico de barras vertical, donde y representa las frecuencias, x define el intervalo en el eje x. stem(x,y) Grfico de bastones verticales, donde y representa las frecuencias, x define el intervalo en el eje x. stairs(x,y) pie(x) loglog(x,y) Grafica una curva escalonada. Realiza el grfico de sectores relativo al vector x. Realiza una grfica cartesiana con escala logartmica en ambos ejes.
Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

semilogx(x,y) eje de abscisas. semilogy(x,y) de ordenadas.

idem con escala lineal en el eje de ordenadas y logartmica en el idem con escala lineal en el eje de abscisas y logartmica en el eje

fill(x,y,c) Dibuja una regin poligonal cuyos vrtices son los elementos de los vectores columna x,y; el parmetro c contiene el color a graficar. Existen adems otras funciones orientadas a aadir ttulos al grfico, a cada uno de los ejes, a dibujar una cuadrcula auxiliar, a introducir texto, etc. Estas funciones son las siguientes: title('texto') aade un ttulo al dibujo xlabel('texto') aade una etiqueta al eje de abscisas. Con xlabel off desaparece ylabel('texto') aade una etiqueta al eje de ordenadas. Con ylabel off desaparece text(x,y,'texto') introduce 'texto' en el lugar especificado por las coordenadas x e y. grid activa la inclusin de una cuadrcula en el dibujo. Con grid off desaparece la cuadrcula CONTROL DE VENTANAS GRFICAS: FUNCIN figure Si se llama a la funcin figure sin argumentos, se crea una nueva ventana grfica con el nmero consecutivo que le corresponda. El valor de retorno es dicho nmero. Por otra parte, el comando figure(n) hace que la ventana n pase a ser la ventana o figura activa. Si dicha ventana no existe, se crea una nueva ventana con el nmero consecutivo que le corresponda (que se puede obtener como valor de retorno del comando). La funcin close cierra la figura activa, mientras que close(n) cierra la ventana o figura nmero n. El comando clf elimina el contenido de la figura activa, es decir, la deja abierta pero vaca. La funcin gcf devuelve el nmero de la figura activa en ese momento. Para practicar un poco con todo lo que se acaba de explicar, ejectense las siguientes instrucciones de MATLAB, observando con cuidado los efectos de cada una de ellas en la ventana activa. El comando figure(gcf) (get current figure) permite hacer visible la ventana de grficos desde la ventana de comandos. x=[-4*pi:pi/20:4*pi]; plot(x,sin(x),'r',x,cos(x),'g') title('Funcin seno(x) -en rojo- y funcin coseno(x) -en verde-') xlabel('ngulo en radianes'), figure(gcf) ylabel('valor de la funcin trigonomtrica'), figure(gcf) axis([-12,12,-1.5,1.5]), figure(gcf) help axis

Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

Funcin seno(x) -en rojo- y funcin coseno(x) -en verde1.5

1
valor de la funcin trigonomtrica

0.5

-0.5

-1

-1.5

-10

-5

0 ngulo en radianes

10

AADIR LNEAS A UN GRFICO YA EXISTENTE.- Existe la posibilidad de aadir lneas a un grfico ya existente, sin destruirlo o sin abrir una nueva ventana. Se utilizan para ello los comandos hold on y hold off. El primero de ellos hace que los grficos sucesivos respeten los que ya se han dibujado en la figura (es posible que haya que modificar la escala de los ejes); el comando hold off deshace el efecto de hold on.

Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

FUNCIONES DE DOS VARIABLES


La evaluacin de una funcin de una variable, como f(x), implica calcular un vector de valores x, y luego calcular un vector correspondiente de valores de la funcin como se ilustra con las siguientes instrucciones: x = 0 : 0.1 : 5; f = 2*x.^2 3*x + 2; Para evaluar una funcin f(x,y) de dos variables, primero definimos una retcula bidimensional en el plano xy. A continuacin evaluamos la funcin en los puntos de la retcula para determinar puntos en la superficie tridimensional. Definimos una retcula bidimensional en el plano xy en MATLAB usando dos matrices. Una matriz contiene las coordenadas x de todos los puntos de la retcula, y la otra contiene las coordenadas y de todos los puntos de la retcula.
La funcin meshgrid genera las dos matrices que definen la retcula subyacente para una funcin bidimensional. [x_grid, y_grid] = meshgrid (x,y) Genera dos matrices de tamao n x m, con base en los valores de los vectores x y y que contiene m-valores y n-valores, respectivamente. La matriz x_grid contiene los valores de x repetidos en cada fila, y la matriz y_grid contiene los valores de y repetidos en cada columna.

GRAFICAS 3-D
Hay varias formas de graficar una superficie tridimensional con Matlab. Presentaremos dos tipos de grficas: la grfica de malla y la grfica de superficie. Una grfica de malla tiene una cuadrcula abierta, mientras que una grfica de superficie tiene una cuadrcula sombreada. Los grficos de superficie permiten obtener representaciones densas de figuras tridimensionales y en especial de funciones de dos variables. El primer paso para representar una funcin de dos variables z=f(x,y) mediante su grfico de superficie es utilizar el comando meshgrid, que bsicamente define la matriz de puntos (X,Y) sobre los cuales se evala la funcin de dos variables para hacer su representacin grfica. El segundo paso es utilizar los comandos disponibles al efecto.
mesh(x_pts, y_pts,z) Genera una grfica de cuadrcula abierta de la superficie definida por la matriz z. Los argumentos x_pts y y_pts pueden ser vectores que definen los intervalos de valores de las coordenadas x y y, o bien matrices que definen la retcula subyacente de coordenadas x y y. Genera una grfica de cuadrcula sombreada de la superficie definida por la matriz z. Los argumentos x_pts y y_pts pueden ser vectores que definen los intervalos de valores de las coordenadas x y y, o bien matrices que definen la retcula subyacente de coordenadas x y y.

surf(x_pts, y_pts,z)

Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

Un mapa de contorno es en esencia un mapa de elevacin que contiene un grupo de lneas que conectan elevaciones iguales. Un mapa de contorno se genera a partir de datos de elevacin tridimensionales, y puede ser generado por Matlab usando matrices que definen el intervalo de coordenadas x y y y los datos de elevacin (coordenada z). contour(x,y,z) Genera una grfica de contorno de la superficie definida por la matriz z. Los argumentos x y y son vectores que definen los intervalos de valores de las coordenadas x y y. El nmero de lneas de contorno y sus valores se escogen automticamente. Genera una grfica de contorno de la superficie definida por la matriz z. Los argumentos x y y son vectores que definen los intervalos de valores de las coordenadas x y y. El vector v define los valores que se usarn para las lneas de contorno. Genera una grfica de cuadrcula abierta de la superficie definida por la matriz z. Los argumentos x_pts y y_pts pueden ser vectores que definen los intervalos de valores de las coordenadas x y y, o pueden ser matrices que definen la retcula subyacente de coordenadas x y y. Adems, se genera una grfica de contorno debajo de la grfica de malla.

contour(x,y,z,v)

meshc(x_pts, y_pts,z)

Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

Archivos-M: Comandos y Funciones


Los archivos de disco que contienen instrucciones de MATLAB se llaman archivos-M. Esto es as porque siempre tienen una extensin de ".m" como la ltima parte de su nombre de archivo. Un archivo-M consiste de una secuencia de instrucciones normales de MATLAB, que probablemente incluyen referencias a otros archivos-M. Un archivo-M se puede llamar a s mismo recursivamente. Puedes crear archivos-M utilizando un editor de texto procesador de palabras. Hay dos tipos de archivos-M: los de comandos y las funciones. Los archivos de comandos, automatizan secuencias largas de comandos. Los archivos de funciones, permiten aadir a MATLAB funciones adicionales expandiendo as la capacidad de este programa. Ambos, comandos y funciones, son archivos ordinarios de texto ASCII. Para crear un archivo-M se utiliza el Editor/Debugger, que se activa mediante File-- New -- MFile en la ventana de comandos. El Editor/Debugger se abre con un archivo en blanco en el cual crearemos el archivo-M, escribiendo las lneas de comandos respectivas. Para guardar de forma definitiva, se selecciona la opcin Save del men File, la cual nos lleva a la caja de dilogo Guardar, mediante la cual podemos guardar nuestro archivo con el nombre deseado y en el subdirectorio que se indique como ruta en el campo Nombre de archivo.

Archivos de Funciones.Al usar MATLAB para realizar ms y ms clculos, se topar con clculos que deseara estuvieran incluidos como funciones de MATLAB. En tales casos, puede crear una funcin escrita por el usuario a la cual su programa podr referirse del mismo modo como se refiere a una funcin MATLAB. Un archivo-M que contiene la palabra function al principio de la primera lnea, es un archivo de funcin. En una funcin, a diferencia de un comando, se deben de pasar los argumentos. Las variables definidas y manipuladas dentro de la funcin son locales a esta y no operan globalmente en el espacio de trabajo. Los archivos de funciones se utilizan para extender a MATLAB, i.e., crear nuevas funciones para MATLAB utilizando el lenguaje propio de MATLAB. Al escribir funciones de archivo-M tenga siempre en cuenta las siguientes reglas: La funcin debe comenzar con una lnea que contenga la palabra function, seguida del argumento de salida, un signo igual y el nombre de la funcin. Este nombre va seguido por los argumentos de entrada de la funcin encerrados en parntesis. Es recomendable que las primeras lneas sean comentarios. La nica informacin que la funcin devuelve est contenida en los argumentos de salida que, desde luego, son matrices. Siempre compruebe que la funcin incluya una instruccin que asigne un valor al argumento de salida. Ejemplo: Se comienza creando un fichero-M que contenga las siguientes instrucciones: function y = mifunc(x) % MIFUNC devuelve una matriz con dos columnas y(:,1) = 200*sin(x)./x; y(:,2) =x.^2;

Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

Esta funcin debe guardarse en un archivo llamado mifunc.m. As, los programas MATLAB podrn referirse a esta funcin del mismo modo como hacen referencia a funciones como sqrt y abs. Un ejemplo del uso de esta funcin sera ejecutar el comando: fplot (mifunc(x),[-20 20], g) Veamos algunos detalles de mifunc.m: La primera lnea declara el nombre de la funcin, los argumentos de entrada, y los argumentos de salida. Sin esta lnea sera un archivo de comando. (Las lneas que comienzan con "%" son interpretadas como comentarios por MATLAB). La existencia de este archivo en el disco duro define una nueva funcin en MATLAB llamada mifunc. % indica que el resto de la lnea es un comentario. Las primeras lneas documentan el archivo-M y aparecen en la pantalla cuando escribimos help mifunc.

Recuerde que las funciones definidas por el usuario deben comenzar con una lnea de definicin de funcin que contenga: La palabra function, Una variable que defina la salida de funcin, Un nombre de funcin, y Una variable que se use para el argumento de entrada. Por ejemplo: function result = calculation(a) En este caso, el nombre de funcin es calculation, el argumento de entrada se llamar a en cualquier clculo que realice el programa function y la salida se llamar result. El nombre de funcin y los nombres de las variables de entrada y salida son arbitrarios y los selecciona el programador. Aunque se puede usar cualquier nombre MATLAB vlido, es buena prctica de programacin usar nombres significativos para todas las variables y para nombres de funcin. He aqu un ejemplo de una funcin MATLAB muy simple que calcula el valor de un polinomio particular: function output = poly(x) % Esta funcin calcula el valor de un polinomio % de tercer grado output = 3*x.^3 + 5*x.^2 - 2*x +1; El nombre de la funcin es poly, el argumento de entrada es x y la variable de salida se llama output. Es recomendable que las primeras lneas sean comentarios. Antes de poder usar esta funcin, se debe guardar en el directorio actual. El nombre de archivo debe ser el mismo que el nombre de funcin con la finalidad de que MATLAB lo encuentre. Una vez guardado el archivo-m, la funcin est disponible para usar desde la ventana de comando, desde un archivo.m, script o desde otra funcin. Considere la funcin poly recin creada. Si en la ventana de comando se escribe >> poly(4) entonces MATLAB responde con ans = 265

Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

Si se define un vector, se obtiene un vector de respuestas. Por ende, >> x=1:5; >> poly(x) Nos da como resultado ans = 7 41 121 265 491

Archivos de Comandos
Cuando un archivo de comandos es invocado, MATLAB simplemente ejecuta los comandos encontrados en dicho archivo. Las instrucciones en un archivo de comando operan globalmente en los datos en el espacio de trabajo. Los comandos son utilizados para hacer anlisis, resolver problemas, disear secuencias largas de comandos que se conviertan en interactivas. Supongamos que queremos resolver el siguiente problema: Ejemplo 1: Evale con 15 dgitos la funcin sin(x)/x para valores de x muy prximos a cero. En base a estos resultados, infiera una respuesta para el clculo del limx 0 sin(x)/x. Un posible M-file para resolver este problema podra ser: % Solucion del Ejemplo 1 format compact % este comando elimina lineas blancas % innecesarias en la salida format long % formato de 15 digitos % Definimos los valores de la variable independiente x=[0.1, 0.01, 0.001, 0.0001]; % Calculamos los valores deseados y= sin(x)./x % Notese que el signo % sirve para agregar comentarios % Los valores obtenidos ilustran el hecho que el limite de la % funcion sin(x)/x cuando x se aproxima a cero es 1. Una vez guardado el archivo (en el ejemplo, ejemplo1.m) en el directorio actual, desde la lnea de comandos de Matlab basta escribir ejemplo1 y presionar enter para que se ejecute el programa.

Recuerde que cuando se ejecuta un archivo de comandos o script, las variables utilizadas en los clculos dentro del fichero deben tener valores asignados previamente. La asignacin de valores a estas variables se puede realizar de tres formas, dependiendo de donde y como se haya definido la variable. 1. Variable definida y asignada en el fichero.- En este caso, la asignacin del valor a la variable forma parte del fichero. Ejemplo: - Cree el archivo:
Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

% Este archivo.m calcula el promedio obtenido por un alumno % La asignacin de las variables que contienen los puntos es parte del archivo.m IP = 12; IIP = 10; Pp = 11; EP = 13; promedio = (IP + IIP + Pp + EP)/4 - Guarde el archivo. - Ejecute el archivo. Si el usuario quiere ejecutar el archivo con un valor diferente para dicha variable, el archivo debe ser editado para asignar un nuevo valor a la variable. Una vez que el archivo se ha guardado, se puede ejecutar de nuevo. 2.- Variable definida y asignada en la ventana de comandos.- En este caso, la asignacin de un valor a la variable se realiza en la ventana de comandos (recuerde que la variable es reconocida sin problemas dentro del fichero script). Ejemplo: - Cree el archivo: % Este fichero script calcula el promedio de un alumno % La asignacion de las variables que contienen % los puntos ( IP, IIP, Pp, EP) se lleva a cabo % en la ventana de comandos promedio = (IP + IIP+ Pp + EP)/4 - Guarde el archivo. - Ejecute el archivo. Si el usuario quiere ejecutar el archivo con un valor diferente para las variables, se debe asignar el nuevo valor en la ventana de comandos y despus ejecutar el archivo de nuevo. 3.- Variable definida y asignada en el fichero script, pero adems se introduce un valor concreto para la variable cuando se ejecuta el fichero en la ventana de comandos.- En este caso, la variable se define en el fichero script y cuando se ejecuta dicho fichero al usuario se le pide un valor concreto, a travs de la ventana de comandos, para asignrselo a la variable del fichero script. Para hacer esto se utiliza el comando input. Nombre_variable = input (Mensaje que se muestra en la ventana de comandos) Cuando se ejecuta el comando input como parte del fichero script, la cadena que va entre parntesis se visualiza en la ventana de comandos. La cadena simboliza un mensaje a partir del cual se le pedir al usuario un valor para la variable Nombre_variable. Introducido el valor y pulsada la tecla Enter, la variable ser asignada con el valor que el usuario haya tecleado. Ejemplo: - Cree el archivo: % Este fichero script calcula el promedio de un alumno % La asignacin de las variables que contienen % los puntos ( IP, IIP, Pp, EP) se lleva a cabo % mediante el comando input IP = input (Introduzca la puntuacin del I Parcial:);
Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

IIP = input (Introduzca la puntuacin del II Parcial:); Pp = input (Introduzca la puntuacin del Promedio de practicas:); EP = input (Introduzca la puntuacin de la Evaluacion Permanente:); promedio = (IP + IIP + Pp + EP)/4 - Guarde el archivo. - Ejecute el archivo.

A partir de aqu, se abren las posibilidades de la programacin con un lenguaje sencillo en interactivo.

Docente: Ing. Felipe Estuardo Yarasca Arcos

MATLAB

FACULTAD DE INGENIERIA QUIMICA-UNICA

LECTURA Y ESCRITURA INTERACTIVA DE VARIABLES.


Una forma sencilla de leer variables desde el teclado y escribir mensajes en la pantalla del computador es mediante las funciones disp e input.

Funcin disp.- La funcin disp permite imprimir en pantalla un mensaje de texto o el valor de
una matriz, pero sin imprimir su nombre. La funcin disp exhibe un nmero, vector, matriz o cadena en la ventana de comandos sin tener que especificar un nombre de variable; as, puede servir para exhibir mensajes o datos en la pantalla. Por ejemplo, tanto disp(pi) como disp pi imprimen 3.14159 en la ventana de comandos. Pruebe tambin disp Esta es una prueba de disp

Funcin input.- MATLAB puede aceptar datos de entrada a travs del teclado mediante la
funcin input. La funcin input permite imprimir un mensaje en la lnea de comandos de MATLAB y recuperar como valor de retorno un valor numrico o el resultado de una expresin tecleada por el usuario. Despus de imprimir el mensaje, el programa espera que el usuario teclee el valor numrico o la expresin. Si se desea leer un nmero, un enunciado bsico sera: z = input (Teclee el radio: ) La parte Teclee el radio: es un mensaje de solicitud que se exhibe en la pantalla. Cuando se teclee el valor del radio y se pulse la tecla enter, el dato se guardar en z. Tambin es posible introducir cadenas desde el teclado. Un enunciado bsico sera: z = input (Escriba su nombre: , s ) El segundo argumento s, indica que la entrada del teclado es una cadena. La variable z se convertir en una variable de arreglo (vector de fila) a menos que la cadena slo contenga un carcter. Se puede introducir con input sin s si la cadena se teclea encerrada entre apstrofos. En este caso, el mensaje de solicitud podra ser: z = input (Escriba su nombre (encerrado en apstrofos) : )

Docente: Ing. Felipe Estuardo Yarasca Arcos

You might also like