martes, 27 de noviembre de 2007 | |

3. FUNCIONES DE MATLAB

Manipulación y Reducción de Datos

MATLAB tiene un rango completo de funciones para preprocesar datos para análisis, incluyendo:
• y decimando
• secciones de datos
• y promediando
• y procesando umbrales
• y filtrando

Numerosas operaciones para manipular arreglos multidimensionales, incluyendo reticulación e interpolación de datos, están también disponibles.
Descriptivos Gráficos Para Explorar y Presentar Sus Datos Grá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.

a. I/O Directo de Datos


Usted puede ingresar y sacar datos de funciones 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.

b.Computación Simbólica Integrada

Integrando 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.


c.Análisis de Datos Confiable, Rápido y Exacto

Los métodos usados comúnmente para análisis de datos multidimensional 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.

d. Análisis de Datos para DSP

MATLAB 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.

e. Análisis de Datos en Aplicaciones de Imágenes

MATLAB 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.

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 poderosa fundación 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.

f.Desarrollo de aplicaciones utilizando la MATLAB C Math Library

La construcción y desarrollo de aplicaciones utilizando esta librería es un proceso de amplias perspectivas una vez se tiene un dominio adecuado de su operativa. El producto está dividido en dos categorías (como librerías objeto): la librería (built-in library) contiene versiones de las funciones de MATLAB en lenguaje C del tipo numérico, lógico y utilidades. Por otra parte la librería de toolboxes (toolbox library) contiene versiones compiladas de la mayoría de ficheros M de MATLAB para cálculo numérico, análisis de datos y funciones de acceso a ficheros y matrices.

En equipos UNIX estas librerias pueden ser igualmente obtenidas como librerías de tipo estáti co (static libraries) o bien como librerías compartidas (shared libraries). Respecto al mundo PC, estas librerías pueden obtenerse como DLL's en el entorno Microsoft Windows o como librerias compartidas en equipos Apple MacIntosh.

3.1. FUNCIONES ESPECIALES

Funciones matemáticas
Funcionales especiales y elementales
• Funciones gamma, beta y elípticas.
• Transformación de sistemas de coordenadas.
• Matriz identidad y otras matrices elementales.
• Matrices de Hilbert, Toeplitz, Vandermonde, Hadamard, etc.
• Partes reales, imaginarias y complejas conjugadas.

3.2. Funciones trigonométricas y de potencias.


• Algebra lineal numérica
• Valores propios y descomposición de matrices.
• Funciones generales de evaluación de matrices.
• Determinantes, normas, rangos, etc.
• Matrices inversas y factorización de matrices.
• Matriz exponencial, logarítmica y raíces cuadradas.

3.3. Polinomios e interpolación

• Interpolación 1-D y 2-D.
• Construcción polinomial.
• Interpolación por splines cúbicos.
• Diferenciación de polinomios.
• Evaluación de polinomios.
• Multiplicación y división de polinomios.
• Residuos de polinomios y residuos.

3.4. Métodos numéricos no lineales

• Búsqueda de ceros en funciones de una única variable.
• Minimización de funciones de una o más variables.
• Resolución numérica de integrales.
• Solución numérica de ecuaciones diferenciales ordinarias.

3.5. Estadística y análisis de Fourier

• Convolución 1-D y 2-D.
• Filtros digitales 1-D y 2-D.
• Transformadas de Fourier 1-D y 2-D y su inversa.
• Coeficientes de correlación y matrices de covarianza.
• Deconvolución.
• Magnitudes y ángulos de fase.
• Funciones max, min, sum, mean y otras funciones de estadística básica.

3.6. Operaciones algebráicas y lógicas

• Suma, resta, multiplicación, división y potencias de matrices.
• Matrix traspuesta.
• Operadores lógicos AND, OR, NOT y XOR.

3.7. Utilidades


• Gestión y mantenimiento de errores.
• Conversión de tipos de datos Fortran.
• Funciones de fecha y hora.
• Clasificación de matrices.
• Conversión de números a cadenas y viceversa.

3.8. REQUERIMIENTOS

La libreria MATLAB C Math Library cumple con la normativa estándar ANSI para compiladores C.
Finalmente, la librería trabajará con aquellos enlazadores que vienen
suministrados con la mayoría de compiladores ANSI C.
Requerimientos de sistema
Para utilizar el compilador de MATLAB para crear ficheros MEX se necesita la versión de MATLAB 4.2c y tener instalado uno de los siguientes compiladores de lenguaje C:

PC/Microsoft Windows
Metaware High C/C++ V.3.0 o superior.
Watcom C V.10.0 o superior

Power Macintosh
MetroWer ks CodeWarrior C V.7
MPW MrC V.1.0b2 o PPCC version 1.0.5
680x0 MacIntosh
MPW C Versión 3.4
UNIX y VMS

Cualquier compilador ANSI C (Nota: El compilador de SunOS 4.1.X no es un compilador ANSI C). Cualquiera que sea el equipo informático que vaya a utilizarse para desarrollar aplicaciones 'stand alone' se requiere, además del compilador de MATLAB, que se tengan las MATLAB C Math Library y un compilador ANSI C.

3.9. USO DE COMANDOS

La primera forma de interactuar con MatLab es a través de la línea de
comandos. Puede ejecutarse un comando si este está escrito después del símbolo
>> y se presiona la tecla Enter.

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 matriz
A =
1 2 3
4 5 6
7 8 9
MATLAB 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 3
4 5 6
7 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).
>>A=1

define A como un escalar de valor 1. Al definir A automáticamente MatLab presenta en pantalla su valor.
A =
1

Para 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 escri biendo la variable después del prompt (>>).
>>A

a. El comando help. Para obtener información sobre una determinada función, basta teclear desde la línea de comandos help seguido del nombre de la función. Por ejemplo:

» help round
ROUND Round towards nearest integer.
ROUND(X) rounds the elements of X to the nearest integers.
See also FLOOR, CEIL, FIX.
Si se escribe sólo help, se obtiene un índice de temas. También puede obtenerse información sobre uno de los temas de esa lista: así, help elfun proporciona información sobre las funciones matemáticas elementales.

b. La ventana de ayuda. Puede llamarse tecleando helpwin o bien escogiendo del menú Help el ítem Help Window. Se obtiene una ventana nueva, y haciendo doble click con el ratón sobre un capítulo se pasa a un elenco de los ítems contenidos, que a su vez pueden escogerse para una explicación más detallada. Con los botones Back y Forward se navega hacia atrás o hacia adelante. También puede escribirse directamente en la zona superior izquierda el nombre del comando deseado: por ejemplo, para buscar información sobre sqrt ...

En la barra See also aparecen comandos relacionados. La información es la misma que la obtenida con el comando help, pero con la comodidad de presentarse en una ventana aparte en vez de en la línea de comandos.

a. La ayuda interactiva. Se obtiene escogiendo del menú Help el ítem Help Desk, o tecleando helpdesk en la barra de comandos. Se lanza el navegador y se obtiene un documento de inicio con un índice de temas en hipertexto donde están los manuales y otras utilidades, como un buscador. Para leer el manual, se necesita el programa Acrobat Reader.

La información que se obtiene es mucho más completa que en los otros dos casos, lo cual puede resultar inconveniente si uno desea simplemente, por poner un caso, conocer la sintaxis de una función.

Una introducción a Matlab más rigurosa, extensa y comprensiva que este documento puede encontrarse en el epígrafe "Getting Started" del Help Desk.

3.10. ELEMENTOS DE MATRICES
Los elementos de una matriz pueden ser cualquier expresión de MATLAB.

Ejemplo:
x = [-1.3,sqrt(3),(1+2+3) *4/5]
resultaría en
x =
-1.3000 1.7321 4.8000

Nos podemos referir a elementos individuales de la matriz con índices entre paréntesis.

Ejemplo: En el ejemplo anterior
x(4) = abs(x(1))

resultaría
x =
-1.3000 1.7321 4.8000 0 1.3000

Para añadir otra fila a la matriz A de arriba podemos hacer lo siguiente:
r = [10 11 12];
A = [A; r]
y resultaría
A =
1 2 3
4 5 6
7 8 9
10 11 12


3.11. INSTRUCCIONES DE MATLAB Y VARIABLES

Si omites el nombre de la variable y el signo "=", MATLAB automáticamente crea la variable ans para guardar el resultado. También distingue las letras mayúsculas de las minúsculas. Todos los nombres de funciones deben ser en letras minúsculas.

a. Variables Permanentes

Las variables permanentes son aquellas con significado especial, y que no se pueden eliminar. Estas son por ejemplo las variables ans y eps.
La variable eps es una tolerancia para determinar. Por ejemplo la singularidad y el rango. Su valor inicial es la distancia de 1.0 al próximo número de punto flotante mayor.

b. Funciones

Las funciones que utiliza MATLAB son intrínsecas al procesador de éste. Otras funciones están disponibles en la librería externa de archivos-M. Además de éstas funciones todo usuario también puede crear otras funciones. Puedes combinar las funciones de acuerdo a tu necesidad.

Ejemplo:
x = sqrt(log(z))
Para salir de MATLAB se escribe quit ó exit. Al terminar una sesión de MATLAB,


c. Saliendo y guardando del espacio de trabajo

Las variables en el espacio de trabajo se borran. Si deseas guardar tu espacio de trabajo escribes save.
Save guarda todas las variables en un archivo llamado matlab.mat.
Se puede utilizar save y load con otros nombres de archivos, o para guardar solo variables seleccionadas

Ejemplo:
save temp X Y Z
Este ejemplo guarda las variables X, Y, Z en el archivo temp.mat. Usando el comando load temp las obtienes nuevamente del archivo temp.mat. load y save también pueden importar y exportar información de archivos ASCII.

3.12. MANIPULACIÓN DE VECTORES Y MATRICES

a. Generando Vectores

Los dos puntos, :, son importantes en MATLAB. Por ejemplo
x = 1:5

genera un vector fila que contiene los números enteros del 1 al 5:
x =
1 2 3 4 5

No necesariamente se tiene que incrementar por números enteros, pueden ser decimales, números negativos o constantes.
Podemos referirnos a elementos individuales de matrices encerrando sus índices en paréntesis.

Ejemplo:
A =
1 2 3
4 5 6
7 8 9
A(3, 3) = A(1, 3) + A(3, 1)
resultaría
A =
1 2 3
4 5 6
7 8 10
Un índice puede ser un vector. Si x y v son vectores, entonces x(v) es [x(v(1)),
x(v(2)), ...,x(v(n))]. Para matrices, los índices de vectores permiten acceso a submatrices contiguas y no contiguas.

b. Manipulación de Matrices

Diag - extrae ó crea una diagonal
t r i l - parte inferior triangular
triu - parte superior triangular
' - transposición

c. Operaciones de Matrices

c.1. Matrices Transpuestas

El 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.

c.2. Sumando y Restando Matrices

Las 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á definidas si uno de los operandos es un escalar, es decir, una matriz 1 x 1.

c.3. Multiplicando Matrices

La 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.

c.4. Producto escalar


El producto interior (producto escalar o producto punto) se consigue de la siguiente manera:
x' * y
asumiendo que x y y son vectores columnas. Note que y' * x produce el mismo resultado.

c.5. 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.

c.6. Dividiendo Matrices


En división de matrices, si A es una matriz cuadrada no-singular, entonces A\B 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\B es una solución a A * X = B
X = B/A es una solución a X * A = B

A\B 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\B por B/A = (A' \B') '.

c.7. Usando Exponentes con Matrices
La expresión A^n eleva A a la n-ésima potencia y esta definido si A es una matriz cuadrada y n un escalar.

c.8. Funciones Matriciales Trascendentales y Elementales
MATLAB 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ístico
det - determinante
trace - traza
kron - producto tensorial de Kronecker
eig - calcula los valores propios de la matriz

No hay comentarios: