You are on page 1of 9

MATLAB

matlab puede considerarse como una potente calculadora con capacidades grcas, dotada de un lenguaje de programacin. Sus posibilidades se amplan con el uso de las bibliotecas matemticas denominadas toolbox, construccin de GUIs e Interfaces con los lenguajes de programacin de alto nivel como C, Fortran y Java. La interaccin con MATLAB se realiza en el puntero de comandos: >>

Operaciones Algebraicas
Para realizar las operaciones matemticas escriba las expresiones en el puntero de comandos y a continuacin ENTER: >> 10/2+5 ans = 10 Observe que MATLAB responde con la cadena de respuesta ans (answer): ans = 10 La losofa de trabajo de matlab es esa. Se interacta con el puntero de comandos, escribiendo expresiones matemticas que contengan operadores, valores numricos, nombres de variables o llamadas a funciones incorporadas en matlab o implementadas por el usuario en archivos M les; tras pulsar ENTER MatLAB responde con una cadena de respuesta. Puede almacenar esos resultados utilizando un nombre de variable y el operador de asignacin. Para limpiar la ventana de comandos, escriba el comando >> clc El orden de precedencia de las operaciones es de potencia, multiplicacin, divisin, sumas y restas: Use los parntesis para agrupar sus operaciones. Operacin Potencia Multiplicacin Divisin Inversa Suma Resta Operador ^ * / \ + Ejemplo a^b a*b a/b a\b a+b a-b

Variables
Las variables son las posiciones de memoria con nombre, usadas para contener datos. Para denir variables utiliza la siguiente sentencia, sentencia de asignacin: NombreDeVariable = EXPRESIN 1

Mtodos Numricos

Guia No 00

DAME-UNSAAC - 2013

Por ejemplo para almacenar el valor del rea de un crculo de radio 5 en la variable area proceda: >> area = pi*5^2 area = 78.5398 Los nombres de variables se reconocen hasta 19 caracteres. Deben empezar siempre con una letra, seguida de letras, dgitos y/o ( _ ). Son sensitivas al tipo de letra: Area es distinta a AREA area. Para evitar que matlab imprima el resultado previo, termine la expresin con ( ; ). Existen algunos identicadores reservados por matlab, como por ejemplo la funcin pi que retorna un real de doble precisin, la constante .

Formatos
matlab presenta los valores de las variables o de las expresiones siguiendo los siguientes formatos: long, short, short e, long e, hex, bank, +, rat. Averige los formatos aadiendo las palabras anteriores a format, por ejemplo: >> format long e >> pi ans = 3.141592653589793e+000 Para realizar operaciones con nmeros racionales use el format rat.

Funciones Matemticas
matlab incorpora la siguientes funciones trigonomtricas y trascendentes: sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, asinh, acosh, atanh. abs, angle, sqrt, real, imag, conj, round, fix, floor, ceil, sign, rem, exp, log, log10. NOTA: obtenga una ayuda de estas funciones pidiendo ayuda al matlab de la forma siguiente: >> help atan2 >> doc atan2

Elementos de programacin
M-les
Son archivos de texto que se utilizan para incluir secuencias de clculo, secuencias algortmicas. Estos archivos pueden ser: scripts y funciones y tienen extensin .m Para ejecutar sus instrucciones escriba su nombre desde el puntero de comandos, en caso de script y de el nombre de la funcin seguida de sus argumentos. >> NombreScript >> Res = NombreFuncion(arg1, arg2, ...) Para escribir los archivos .m pulse el botn New M-File Otra manera es invocar al editor: >> edit Lic. Luis Alberto Vargas Aamaco 2 http://lavaweb.net

Mtodos Numricos

Guia No 00

DAME-UNSAAC - 2013

Scripts
Contienen secuencias de instrucciones para automatizar tareas. Escriba la siguiente secuencia de clculo y guarde con un nombre; segundosSemana. %Calcular los segundos en una semana Minuto = 60; Hora = 60 * Minuto; Dia = 24 * Hora; Semana = 7 * Dia; format long Semana Las lneas que inician con el signo porcentaje son comentarios, no se procesan. Para ejecutar el script invoque desde la lnea de comandos. >> segundosSemana Semana = 604800

Funciones
Las funciones aceptan argumentos y retornan uno o mas valores. Las funciones pueden ser utilizados en las expresiones. La siguiente funcin determina la suma de los primeros N nmeros enteros. Guarde en el archivo sumaN.m. function Suma = sumaN(N) %Determina la suma de los N primeros nmeros enteros % N : El limite de la Suma Suma = N*(N+1)/2;

Cabecera de una funcin Toda funcin inicia con una cabecera que contiene: El identicador que inicia la cabecera function Nombre de las variables usadas para retornan resultados Suma El operador de asignacin = Nombre de la funcin sumaN Nombre de los argumentos que acepta la funcin (N) Se recomienda aadir sendos comentarios por cada argumento que acepte la funcin. Para invocar la funcin siga el siguiente comando: >> sumaN(10) - sumaN(9) ans = 10 Puede denir sus propias funciones de valores reales: function y = F(x) y = tan(x)-1.1*x+3.45; Recuerde: Archive con un nombre de chero idntico al nombre de la funcin y use la carpeta work. Pasar una funcin como argumento Una funcin puede recibir como argumento a otra funcin. Para evaluar dicha funcin F, pasada como argumento, en una variable x, use la funcin incorporada del matlab feval, que tiene el siguiente signicado: feval(F, x) que es equivalente a F(x) Lic. Luis Alberto Vargas Aamaco 3 http://lavaweb.net

Mtodos Numricos Funciones INLINE

Guia No 00

DAME-UNSAAC - 2013

Se pueden construir funciones temporales a partir de expresiones contenidas en una cadena. >> g=inline(tan(x)-1.1*x+3.45) g = Inline function: g(x) = tan(x)-1.1*x+3.45 >> g(0) ans = 3.4500 Ejemplo Implemente la siguiente funcin: Teorema del valor medio para derivadas. function y = ValMedioDerivada(f,a,b) %Determina la derivada de algun punto del intervalo [a,b] %Datos: % f: la funcion a evaluar % a: lim. inf. del intervalo % b: lim. sup. del intervalo %Resultado: % y: valor de la derivada en algun punto dentro del intervalo [a,b] y = ( feval(f,b) - feval(f,a) ) / (b-a);

Use la siguiente sintaxis para invocar a la funcin: >> ValMedioDerivada(f,1,2) ans = -4.8424

SENTENCIAS ALGORITMICAS
Sentencia selectiva
matlab posee operadores relacionales y lgicos para el control de ujo en la sentencia selectiva. Operadores relacionales Operador < <= > >= == ~= Comentario Menor que Menor o igual que Mayor que Mayor o igual que Igual a Diferente Operadores lgicos Operador & | ~ Comentario AND OR NOT

La estructura selectiva tiene el siguiente esquema: if expresin lgica %Sentencias (bloque verdadero) else %Sentencias (bloque falso) end Esta estructura permite determinar el ujo de la secuencia de ejecucin, dependiendo del resultado de una expresin lgica. El siguiente script determina si un nmero ledo del teclado es par o impar: Lic. Luis Alberto Vargas Aamaco 4 http://lavaweb.net

Mtodos Numricos

Guia No 00

DAME-UNSAAC - 2013

%Determina si un numero es par o impar Numero = input(Ingrese un Entero: ); if rem(Numero,2) == 0 fprintf(El numero %i es Par, Numero); else fprintf(El numero %i es Impar, Numero); end La funcin fprintf tiene la misma sintaxis i semntica de la funcin printf del lenguaje C.

Bucles
matlab presenta slo dos sentencias de repeticin. La estructura for para bucles controlados por contador y la estructura while para bucles controlados por centinela. Bucle FOR Esta sentencia permite la ejecucin reiterada de un conjunto de instrucciones, el nmero de ciclos es controlado por un contador. La linea de denicin del contador incluye la actualizacin del contador, positiva o negativa, La ejecucin concluye cuando el contador alcanza el lmite. La estructura de repeticin for tiene el siguiente esquema: for Contador=Rango %Sentencias end Para expresar el Rango: 1. ValorInicial:ValorFinal 2. ValorInicial:Incremento:ValorFinal Los incrementos del Contador se realizara de uno en uno. El incremento puede ser positivo/negativo.

La siguiente funcin determina la suma de los primeros N nmeros enteros: function y=sumaN(N) % N: es el limite de la suma Suma=0; for i=1:N Suma = Suma + i; end y = Suma; Bucle WHILE Este sentencia permite la ejecucin reiterada de un conjunto de instrucciones mientras la expresin lgica, test de salida, sea verdadera. La estructura de repeticin while tiene el siguiente esquema: while expresin lgica %Sentencias end La siguiente funcin determina el MCD de dos nmeros enteros: function x = mcd(A,B) % A: numero mayor % B: numero menor % x: el Maximo Comun Divisor de A y B, A >= B r = B; while (r ~= 0) r = rem(A,B); A = B; B = r; end x = A; Lic. Luis Alberto Vargas Aamaco 5 http://lavaweb.net

Mtodos Numricos

Guia No 00

DAME-UNSAAC - 2013

Para el diseo de este algoritmo (divisiones sucesivas) se considero que: 1. La invariante de proceso repetitivo: r <- A MOD B 2. 2) La actualizacion: B es A: A <- B r es B: B <- r 3. El test de salida: El residuo es NULO. 4. La inicializacion: Es consecuencia del test de salida. Evaluando la funcin: >> mcd(24,15) ans = 3 En ambas estructuras repetitivas se puede utilizar la sentencias: break: El control de ujo brinca a una sentencia posterior a la estructura. Continue: El control de ujo brinca al inicio de la siguiente iteracin.

Funciones y Scripts Una manera ms apropiada de trabajar dentro del entorno del matlab es usando funciones y scripts. Determinar el valor del e0,5 usando la serie de Maclaurin, determine el error verdadero para 10 terminos. 1. La funcin que implementa el exponencial. function y = Exp(x, N) %Determina el valor de la funcion exponencial usando la serie de Maclaurin %Datos: % x: variable independiente % N: Numero de terminos de la serie %Resultado: % y : 1 + x + x^2/2! + x^3/3! + ... + x^N/N! y = 1; num = 1; fac = 1; for i=1:N-1 num = num * x; fac = fac*i; y = y + num/fac; end 2. El script que evalua para cada termino (hasta 10). % Leer x , N x = input(X = ); N = input(N = ); valReal = exp(x); for i=1:N valAprox = Exp(x,i); err = (valReal - valAprox)/valReal; fprintf(i= %2d %20.14f %20.14f\n,i,valAprox, err) end 3. Ejecutar para x=0.5 y N=10. Lic. Luis Alberto Vargas Aamaco 6 http://lavaweb.net

Mtodos Numricos >> tablaExp X = .5 N = 10 i= 1 1.00000000000000 i= 2 1.50000000000000 i= 3 1.62500000000000 i= 4 1.64583333333333 i= 5 1.64843750000000 i= 6 1.64869791666667 i= 7 1.64871961805556 i= 8 1.64872116815476 i= 9 1.64872126503596 i=10 1.64872127041825

Guia No 00

DAME-UNSAAC - 2013

0.39346934028737 0.09020401043105 0.01438767796697 0.00175162255629 0.00017211562996 0.00001416493732 0.00000100237960 0.00000006219691 0.00000000343549 0.00000000017097

Grcos
matlab puede producir grcas bi y tridimensionales de curvas y supercies. Para que esto sea posible se debe indicar a las funciones de trazado grco cuales son los arreglos que utilizar. Para inicializar un arreglo: Var = Ini:Fin Con incremento especco: Var = Ini:Inc:Fin >> x=0:2 >> y=0:0.5:2 >> z=0:0.6:2 x = y = z = 0 1 2 0 0.5000 1.0000 1.5000 2.0000 0 0.6000 1.2000 1.8000 Muchas funciones de matlab operan sobre arreglos y retornan por tanto, arreglos. Para aplicar operadores sobre cada uno de los elementos de un arreglo preceda por un punto, por ejemplo para elevar al cuadrado los elementos de un arreglo: >> z.^2 ans = 0 0.3600

1.4400

3.2400

Las siguiente lneas trazan las funciones: y 1 = cos(x), y 2 = cos(2x) en el intervalo [0, 2 ]. >> >> >> >> >> >> x=0:0.1:2*pi; y=cos(x); z=cos(x).^2; plot(x,y,x,z) grid on axis( [0 2*pi -1.1 1.1] )

Alternativamente: >> x=0:0.1:2*pi; >> plot(x,cos(x),x,cos(x).^2) >> grid on >> axis( [0 2*pi -1.1 1.1] ) Alternativamente la funcin de trazado puede usar un tercer argumento para trazar con un color y con un caracter predeterminado. plot(vecX, vecY, ColorCaracter) Donde: Color y m c r g b w k Caracter . o x + * s d v ^ < > p h - : -. -Por ejemplo: >> plot([1 2 3 4], [3 6 9 12], r*,[1 2 3 4], [3 4 6 12], b) Lic. Luis Alberto Vargas Aamaco 7 http://lavaweb.net

Mtodos Numricos

Guia No 00

DAME-UNSAAC - 2013

Si se quiere trazar una funcin denida por el usuario: function y = F(x) y = tan(x)-1.1*x+3.45; Graque utilizando la funcin fplot : >> fplot(F, [2.4,3.8]) >> grid on Se puede delimitar el rea de trazado: >> fplot(F, [2, 4, -0.1, 0.1]) >> grid on Para trazar mas de una grca: >> fplot([1,1+x,1+x+x^2/2],[0, 1, 0, 2.5]) Otra manera de trazar mas de una grca: >> >> >> >> >> >> f=inline(cos(x)^2) g=inline(x*x) fplot(f,[0 3]) hold on fplot(g,[0 3]) grid on

Alternativamente puede denir una funcin que retorne un arreglo con tantas columnas como funciones dena. El argumento de entrada debe manejarse como arreglo, use el operador punto cuando sea necesario. function y = Fun(x) y(:,1) = cos(x(:)).^2; y(:,2) = x(:).^2; Evaluando: >> fplot(Fun, [0 3]) >> grid on

Lic. Luis Alberto Vargas Aamaco

http://lavaweb.net

Cuestionario
1. Usando el formato racional cuales son los valores aproximados de: a) : b ) 2 : c) : 2. Escriba un script que resuelva la ecuacin de segundo grado. 3. Escriba una funcin para determinar la suma de los N primeros nmeros pares. Bucle FOR. 4. Escriba una funcin para determinar la suma de los N primeros nmeros impares. Bucle FOR. 5. Modique las funciones de 3) y 4), esta vez use les bucle WHILE. 6. Graque las serie de Maclaurin para el sin(x) y del cos(x) trmino a trmino hasta con 3 trminos. 7. Graque todos los trminos de la serie de Taylor del polinomio: f (x) = 0,1x4 0,15x3 0,5x2 0,25x + 1,2 en el intervalo: [0, 1].1

You might also like