1. Universidad Centroccidental <br /> “Lisandro Alvarado”<br />Decanato de Agronomía<br />Programa de Ingeniería y Tecnología Agroindustrial<br /> <br />Integrantes:<br />Martínez, Ana Maribel C.I: 17.814.003<br />Montero, Yohana C.I: 16.403.153<br />Yépez, Henry C.I: 18.137.083<br />Abril 2011<br />Introducción<br />En la actualidad se goza de un gran número de avances tecnológicos que han permitido mejoras en diferentes ámbitos de la vida, en especial en el campo laboral, ahora es posible realizar cálculos prototipos y simulaciones a través de programas especiales que se adaptan a la vida real, uno de estos programas es MATLAB que nace como una solución a la necesidad de mejores y poderosas herramientas de cálculos para resolver problemas complejos en donde se necesita manipular una gran cantidad de datos.<br />El nombre MATLAB viene de quot;
matrix laboratoryquot;
(laboratorio matricial). MATLAB fue originalmente escrito para proveer acceso fácil al software matricial desarrollado por los proyectos LINPACK y EISPACK, que juntos representan el estado del arte e software para computación matricial.<br /> MATLAB dispone también en la actualidad de un amplio abanico de programas de apoyo especializado, denominados Toolboxes, que extienden significativamente el número de funciones incorporadas en el programa principal. Estos Toolboxes cubren en la actualidad prácticamente casi todas las áreas principales en el mundo de la ingeniería y la simulación, destacando entre ellos el 'toolbox' de proceso de imágenes, señal, control robusto, estadística, análisis financiero, matemáticas simbólicas, redes neurales, lógica difusa, identificación de sistemas, simulación de sistemas dinámicos, etc. es un entorno de cálculo técnico, que se ha convertido en estándar de la industria, con capacidades no superadas en computación y visualización numérica.<br />Que es MATLAB?<br />Matlab® es un lenguaje de alto funcionamiento para computación técnica, Este integra computación, visualización, y programación, en un entorno fácil de usar donde los problemas y las soluciones son expresados en la más familiar notación matemática. Los usos más familiares de Matlab son:<br />• Matemática y Computación• Desarrollo de algoritmos• Modelamiento , simulación y prototipado• Análisis de datos, exploración y visualización• Graficas científicas e ingenieriles• Desarrollo de aplicaciones, incluyendo construcción de interfaces graficas de usuario<br />MATLAB es un sistema interactivo cuyo elemento básico de almacenamiento de información es la matriz, que tiene una característica fundamental y es que no necesita dimensionamiento. Esto le permite resolver varios problemas de computación técnica (especialmente aquellos que tienen formulaciones matriciales y vectoriales) en una fracción de tiempo similar al que se gastaría cuando se escribe un programa en un lenguaje no interactivo como C o FORTRAN<br />El nombre MATLAB simboliza Matriz Laboratorio o Laboratorio de Matrices. Matlab fue originalmente escrito para proveer fácil acceso el softrware de matrices desarrollado por los proyectos LINPACK y EISPACK, hoy, los mores de matlab incorporan las librerías LINPACK y BLAS, <br />Matlab se ha desarrollado sobre un periodo de años con entradas provenientes de muchos usuarios, en los entornos universitarios, matlab es la herramienta instructiva estándar para cursos avanzados e introductorios en matemáticas, ingeniería y ciencia. En la industria Matlab es la herramienta escogida para investigación de alta productividad, desarrollo y análisis.<br />Matlab presenta una familia de soluciones a aplicaciones específicas de acoplamiento rápido llamadas ToolBoxes. Los toolboxes son colecciones muy comprensibles de funciones MATLAB, o archivos de matlab (M-files) que extienden el entorno de MATLAB para resolver clases particulares de problemas, Algunas áreas en las cuales existen toolboxes disponibles son:<br />• Procesamiento de señales• Sistemas de control• Redes neuronales• Lógica difusa• Wavelets• Simulación<br />Funciones De MATLAB<br />Manipulación y Reducción de DatosMATLAB tiene un rango completo de funciones para preprocesar datos para análisis, incluyendo:<br />• y decimando• secciones de datos• y promediando• y procesando umbrales• y filtrando<br />Numerosas operaciones para manipular arreglos multidimensionales, incluyendo reticulación e interpolación de datos, están también disponibles.<br />Descriptivos Gráficos Para Explorar y Presentar Sus DatosGráficos de propósitos generales y de aplicación específica le permiten visualizar al instante señales, superficies paramétricas, imágenes y más. Todos los atributos de los gráficos de MATLAB son personalizables, desde los rótulos de ejes al ángulo de la fuente de luz en las superficies 3-D . Los gráficos están integrados con las capacidades de análisis, de modo que usted puede mostrar gráficamente cualquier conjunto de datos sin editar, ecuación o resultado funcional.<br />I/O Directo de DatosUsted puede ingresar y sacar datos de f MATLAB rápidamente. Las funciones están disponibles para leer y escribir archivos de datos formateados en MATLAB, llamados archivos MAT. Funciones adicionales ejecutan programas ASCII e I/O binario de bajo nivel desde los archivos de programas M, C, y Fortran, permitiéndole trabajar con todos los formatos de datos. MATLAB también incluye soporte incorporado para formatos populares de archivos estándar.<br />Computación Simbólica IntegradaIntegrando el motor simbólico Maple V® con MATLAB, los Symbolic Math Toolboxes le permiten mezclar libremente computación simbólica y numérica una sintaxis simple e intuitiva.<br />Análisis de Datos Confiable, Rápido y Exacto Los métodos usados comúnmente para el análisis de datos multidimensionales generalizados 1-D, 2-D están incorporados en MATLAB. Interfaces gráficas fáciles de usar, específicas para aplicaciones, la línea de comando interactiva y herramientas de programación estructuradas le permiten elegir el mejor camino para sus tareas de análisis.<br />Análisis de Datos para DSPMATLAB ofrece muchas herramientas para realizar la funcionalidad indispensable en procesamiento de señales, tales como Transformadas Rápidas Fourier y Transformadas Rápidas Inversas de Fourier. La visualización de datos de procesamiento de señales está soportada por funciones tales como gráficos stem y periodogramas. El lenguaje de MATLAB, inherentemente orientado a matrices hace que la expresión de coeficientes de filtros y demoras de buffers sean muy simples de expresar y comprender.<br />Análisis de Datos en Aplicaciones de ImágenesMATLAB y la Image Processing Toolbox ofrece un amplio conjunto de herramientas que le permite fácilmente manipular, procesar y analizar datos de imágenes, interactivamente mostrar pantallas de imágenes 2-D o 3-D, visualizar datos temporarios cuando es necesario, y comentar sus resultados para publicaciones técnicas. La orientación basada en matrices del lenguaje de MATLAB le permite expresar en forma compacta operaciones matemáticas de forma similar a cómo las expresaría sobre papel. Como resultado, es fácil e intuitivo efectuar procesamiento de imágenes y operaciones de análisis tales como FFTs, filtrado 2-D, morfología binaria, manipulación geométrica, conversión de espacios de colores, compresión, análisis de componentes conectados y más.<br />Algorithm Development (Desarrollo de Algoritmos) Sea que usted esté usando los algoritmos del sistema o esté inventando los suyos propios, MATLAB le provee un ambiente en el que usted puede experimentar. A diferencia de C y C++, MATLAB le permite desarrollar algoritmos desde cero o trabajar con interfaces complicadas a bibliotecas externas. Las poderosas fundaciones de computación, el lenguaje técnico, y cientos de funciones en cajas de herramientas (toolboxes) convierten a MATLAB en lo más adecuado para aplicaciones matemáticamente intensivas que requieran análisis de datos, procesamiento de señales e imágenes, modelado de sistemas o técnicas numéricas avanzadas.<br />Operaciones Matemáticas de MatricesMatrices TranspuestasEl caracter ' (apóstrofe) denota la transpuesta de la matriz. Si tenemos la matriz A y llamamos B = A', B es la transpuesta de la matriz A.Sumando y Restando MatricesLas operaciones suma (+) y resta (-) son definidas para las matrices siempre y cuando éstas tengan la misma dimensión. Es decir, si A y B son matrices 3 x 3, entonces A + B se puede calcular.Las operaciones suma y resta también están definidas si uno de los operando es un escalar, es decir, una matriz 1 x 1.<br />Multiplicando MatricesLa operación de multiplicación de matrices está definida siempre que el número de columnas de la primera matriz sea igual a el número de filas de la segunda matriz.<br />Ejemplo.<br />>>C=A*B<br />C =<br />5 13<br />7 22<br />Siempre que los tamaños de las matrices sean los adecuados. Para saber cuál es el tamaño de una matriz con la que estamos trabajando,<br />>>size(A)<br />ans =<br />2 2<br />Que quiere decir, evidentemente, 2 _las y 2 columnasProducto escalar El producto interior (producto escalar o producto punto) se consigue de la siguiente manera:x' * yasumiendo que x y y son vectores columnas. Note que y' * x produce el mismo resultado. Producto de una matriz por un vector El producto de una matriz y un vector es un caso especial del producto matrizmatriz y naturalmente, un escalar como pi, puede multiplicar, o ser multiplicado por, cualquier matriz.<br /> Dividiendo Matrices En división de matrices, si A es una matriz cuadrada no-singular, entonces A y B/A corresponden a la multiplicación izquierda y derecha de B por el inverso de A, esto es, inv(A) * B y B * inv(A) respectivamente. El resultado es obtenido directamente sin la computación del inverso.X = A es una solución a A * X = BX = B/A es una solución a X * A = BA es definido cuando B tiene la misma cantidad de filas que A. Si A es cuadrada, el método usado es la Eliminación Gaussiana. El resultado es una matriz X con las mismas dimensiones que B.Si A no es cuadrada, se factoriza utilizando la ortogonalización de Householder con pivoteo de columnas.Los factores son usados para resolver sistemas de ecuaciones sub-determinados y sobre -determinados. El resultado es una matriz X m-por-n donde m es el número de columnas de A y n es el número de columnas de B. Cada columna de X tiene, al menos, k componentes diferentes de cero, donde k es el rango efectivo de A.B/A esta definido en términos de A por B/A = (A' ') '.Usando Exponentes con MatricesLa expresión A^n eleva A a la n-ésima potencia y esta definido si A es una matriz cuadrada y n un escalar.Funciones Matriciales Trascendentales y ElementalesMATLAB considera expresiones como exp(A) y sqrt(A) como operaciones de arreglos, definidas en los elementos individuales de A. También puede calcular funciones trascendentales de matrices, como la matriz exponencial y la matriz logarítmica. Estas operaciones especiales están definidas solamente para matrices cuadradas.Otras funciones elementales de matrices son:poly - polinomio característicodet - determinantetrace - trazakron - producto tensorial de Kroneckereig - calcula los valores propios de la matriz<br />Operaciones Relacionales y Lógicas<br /> Además de las operaciones matemáticas tradicionales, MATLAB nos permite realizar operaciones relacionales y lógicas. El objetivo de estos operadores es proporcionar respuestas a cuestiones verdadero/falso. MATLAB responde a este tipo de preguntas con 1 (verdadero) ó 0 (falso). <br />Operadores relacionales<br /> Los operadores relacionales de MATLAB son las comparaciones comunes: <br />< Menor que <br /><= Menor o igual <br />> Mayor que <br />>= Mayor o igual <br />== Igual a <br />~= Distinto a<br /> Podemos usar estos operadores para comparar arrays del mismo tamaño o comparar un array con un escalar (entonces se compara cada elemento del array con el escalar) <br />EDU» A=[[1:2:8] [0 3 -2 5 1 -7]] A = 1 3 5 7 0 3 -2 5 1 -7 EDU» B=round(-5+10*rand(1,length(A))) B = -3 1 -2 5 2 -1 2 -2 -1 4 EDU» x=A>5 % Buscamos los elementos de A mayores que 5 x = 0 0 0 1 0 0 0 0 0 0 EDU» x=A==B % Buscamos los elementos de A iguales a los correspondientes de B x = 0 0 0 0 0 0 0 0 0 0 EDU» x=A+2*(B<0) x = 3 3 7 7 0 5 -2 7 3 -7 EDU» %Sustituimos los valores nulos de A por el valor eps. EDU» %Puede ser útil para evitar divisiones por 0 EDU» A=A+eps*(A==0) A = Columns 1 through 7 1.0000 3.0000 5.0000 7.0000 0.0000 3.0000 -2.0000 Columns 8 through 10 5.0000 1.0000 -7.0000<br />Operadores lógicos<br /> Los operadores lógicos que proporciona MATLAB son: <br />& AND <br />| OR <br />~ NOT <br />xor EXCLUSIVE OR<br />EDU» x=(A>2)|(B<0) x = 1 1 1 1 0 1 0 1 1 0 EDU» y=~(A>4) y = 1 1 0 0 1 1 1 0 1 1 EDU» xor(x,y) ans = 0 0 1 1 1 0 1 1 0 1<br /> Finalizamos el capítulo con un ejemplo de cómo usar estas técnicas para representar señales discontinuas o compuestas, la idea básica es multiplicar los valores que deseamos que permanezcan 1 y el resto por 0. <br />x=linspace(0,10,100); EDU» y=sin(x); EDU» z=(y>=0).*y; %Fijamos los valores negativos a cero EDU» z=z+0.5*(y<0); %Sumamos 0.5 a los valores negativos de sin(x) EDU» z=(x<=8).*z; %Hacemos cero los valores mayores que x=8 EDU» plot(x,z) EDU» xlabel('Eje x'),ylabel('z=f(x)') EDU» title('Una señal discontinua')<br />Ingresar Una Matriz<br />MATLAB trabaja esencialmente con matrices numéricas rectangulares. La manera más fácil de entrar matrices pequeñas es enumerando los elementos de ésta de tal manera que:• los elementos estén separados por espacios o comas.• los elementos estén cerrados entre corchetes, [ ].• muestre el final de cada fila con ; (punto y coma).Ejemplo:A = [ 1 2 3; 4 5 6; 7 8 9 ]resultaría en la matrizA =1 2 34 5 67 8 9MATLAB guarda esta matriz para utilizarla luego bajo el nombre de A.Si la matriz a introducir es muy grande se puede utilizar el siguiente formato:A = [1 2 34 5 67 8 9]El comando load y la función fread pueden leer matrices generadas en sesiones anteriores ó generadas por otros programas.Ya que MatLab se basa en el álgebra de matrices como ejemplo crearemos una matriz. Estas pueden estar formadas por un sólo elementos (escalar), por una fila o una columna (vector) o por una serie de filas y columnas (matriz propiamente dicha).<br />>>A=1define A como un escalar de valor 1. Al definir A automáticamente MATLAB presenta en pantalla su valor.A =1Para no presentar el valor de la variable creada, debe agregarse punto y coma (;) al final del comando.Después de crear una variable, puede presentarse su valor en pantalla escribiendo la variable después del prompt (>>).>>A<br />Acceso A Posiciones De Las Matrices<br />Se citara un ejemplo para explicar la siguiente acción<br />Los componentes del siguiente vector o matriz <br />>> vectorfila= [ 1 2 3 4 5 6 7] vectorfila = 1 2 3 4 5 6 7 >> vectorcolumna = [1; 2; 3; 4] vector columna= 1 2 3 4<br />Las filas<br />>> Matriz= [1 2 3; 4 5 6; 7 8 9] matriz= 1 2 3 4 5 6 7 8 9<br />Para posicionarse en el valor 6 de la variable Matriz determinada en el ejemplo anterior y que corresponde a la segunda fila con tercera columna tres, se indica entre paréntesis la posición. En el siguiente ejemplo se asigna el valor de la posición iniciada a la variable posición.<br />>>posición=Matriz (2,3) ans = 6<br />Si se deseara asignar toda la tercera fila como un solo vector entonces se cambiaría el parámetro correspondiente a la columna por el carácter: con lo cual se indica que corresponde a todas las columnas.<br />>> fila=Matriz(3,:) ans = 7 8 9<br />Similar al caso anterior, si se desea la tercera columna en su totalidad entonces se reemplaza el parámetro de la fila por el carácter: con lo cual se indica que corresponde a todas las filas.<br />>> Columna=Matriz(:,3) ans = 3 6 9<br />Conclusión<br />Una vez revisada las funciones que puede desarrollar MATLAB, se ha podido notar que este ofrece una variedad de beneficios tales como: Aumentar la productividad dentro de las empresas, permitiendo automatizar procesos rutinarios, las cuales pueden replicarse cuantas veces se requiera con el cambio de las variables de entrada. Además de ellopermite también una mayor organización de la información, al separar la programación de los procesos de las bases de datos utilizadas como insumos. <br />En cuanto a finanzas presenta un amplio espectro de aplicaciones entre las que se encuentran: • Optimización de la relación riesgo – retorno de portafolios de inversión. • Cuantificación y administrar el riesgo de mercado de portafolios de inversión. • Valoración de activos de renta fija• Construcción de la curva cero cupón • Cálculo de indicadores técnicos• Programación de procesos que utilizan redes neuronales artificiales y algoritmos genéticos, para la toma de decisiones de inversión con base en indicadores técnicos.• Automatización de procesos de compra y venta de activos financieros y realizar cálculos de backtesting, sobre el indicador técnico que mejor predice el cálculo futuro de dichos activos. • Valoración futuros y opciones.• Inmunización de portafolios.<br />Como puede verse, el saber manipular MATLAB puede ofrecer enormes ventajas en muchas aéreas de allí la importancia de desarrollar habilidades que permitan su uso apropiado de modo que se pueda aprovechar al máximo. Sin embargo no se deben dejar de lado otras opciones en cuanto la adquisición de programas puesto que cada uno posee ventajas y desventajas que van a depender de las necesidades de cada usuario. <br />Citas Bibliográficas<br />http://www.roberto-acevedo.cl/wp-content/uploads/2011/02/practica1.pdf<br />http://matlabxsiemprexd.blogspot.com/2007/11/3-funciones-de-matlab.html<br />http://musica.unq.edu.ar/personales/ebonnier/cam2/matlab/tutorial2a47.html?page=matlabbasico2<br />http://www.nebrija.es/~mjgarbayo/seminario_matlab/matlab7.html<br />