1.- INTRODUCCION AL
MATLAB
1.2.- INICIACIÓN AL
MATLAB
1.3-
CARACTERÍSTICAS DEL ENTORNO
1.4.- SALIDAS O
PRESENTACIONES
1.5.- FUNCIONES DE
MATLAB
1.6-
EL MATLAB Y LA ESTADÍSTICA
2.- LIBRERIAS
3.- VENTANAS
3.1.- OPERACIONES CON VECTORES Y MATRICES
3.2.- GRAFICAS
3.3.- ANÁLISIS DE VOZ
4.- FUNCIONES ESPECIALES
REFERENCIAS BIBLIOGRAFICAS
Una herramienta poderosa para la investigación.
El presente documento es una recopilación de
información que puede ser útil para
aquellos estudiantes interesados en conocer esta poderosa
herramienta de calculo, simulación
y modelado matemático que por demás está el
mencionar en esta introducción todos los elogios de que es
merecedor este singular programa de
calculo matemático por su amplia área de
aplicación en el estudio científico.
MATLAB es un entorno de computación y desarrollo de
aplicaciones totalmente integrado orientado para llevar a cabo
proyectos en
donde se encuentren implicados elevados cálculos
matemáticos y la visualización gráfica de
los mismos. MATLAB integra análisis numérico, cálculo
matricial, proceso de
señal y visualización gráfica en un entorno
completo donde los problemas y
sus soluciones son
expresados del mismo modo en que se escribirian radicionalmente,
sin necesidad de hacer uso de la programación tradicional.
MATLAB dispone también en la actualidad de un
amplio abanico de programas de
apoyo especializados, 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.
De forma coherente y sin ningún tipo de fisuras,
integra los requisitos claves de un sistema de
computación técnico: cálculo
numérico, gráficos, herramientas
para aplicaciones especificas y capacidad de ejecución en
múltiples plataformas. Esta familia de
productos
proporciona al estudiante un medio de carácter
único, para resolver los problemas
más complejos y difíciles.
MATLAB nace como una solución a la necesidad de
mejores y mas poderosas herramientas
de calculo para resolver problemas de calculo complejos en los
que es necesario aprovechas las amplias capacidades de proceso de
datos de
grandes computadores.
El nombre MATLAB viene de "matrix laboratory" (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. Hoy MATLAB es usado en una variedad
de áreas de aplicación incluyendo procesamiento de
señales e imágenes,
diseño de
sistemas de control, ingeniería financiera e investigación médica. La arquitectura
abierta facilita usar MATLAB y los productos que
lo acompañan para explorar datos y crear
herramientas personalizadas que proveen visiones profundas
tempranas y ventajas competitivas.
El Lenguaje de
Computación Técnica MATLAB es un ambiente de
computación técnica integrada que combina
computación numérica, gráficos y
visualización avanzada y un lenguaje de
programación de alto nivel.
Sea cual fuere el objetivo, un
algoritmo,
análisis, gráficos, informes o
simulación, MATLAB lo lleva allí. El lenguaje
flexible e interactivo de MATLAB permite a ingenieros y
científicos expresar sus ideas técnicas con
simplicidad. Los poderosos y amplios métodos de
cómputo numérico y graficación permiten la
prueba y exploración de ideas alternativas con facilidad,
mientras que el ambiente de
desarrollo
integrado facilita producir resultados prácticos
fácilmente.
MATLAB es la fundación
numérica y gráfica para todos los productos de The
MathWorks. MATLAB combina computación numérica,
gráficos 2D y 3D y capacidades de lenguaje en un
único ambiente fácil de usar.
Con su amplio rango de herramientas para modelar
sistemas de
control, análisis, simulación y procesamiento
de prototipos, MATLAB es el sistema ideal
para desarrollar sistemas avanzados de control. Usted puede
modelar su sistema de control usando las cajas de herramientas
para el diseño
de controles avanzados de MATLAB – Control System, Robust
Control, µ-Analysis and Synthesis, Model Predictive
Control, QTF Control Design y LMI control. Posteriores
análisis y refinamientos pueden ser efectuados
estableciendo una simulación interactiva en Simulink, y
luego sintonizar automáticamente los parámetros
usando el Nonlinear Control Design Blockset. Finalmente, usted
puede generar código C para correr en controladores
incrustados con Real Time Workshop.
Combinando MATLAB con Signal Processing Toolbox, Wavelet
Toolbox y un conjunto de herramientas complementarias – tales
como Image Processing, Neural Network, Fuzzy Logic, Statistics y
otras – usted puede crear un ambiente de análisis
personalizado de señales y desarrollo de algoritmos
DSP. Para simulación y desarrollo de prototipos usted
puede agregar Simulink y el DSP Blockset para modelar y simular
sus sistemas DSP, y luego usar Real-Time Workshop para generar
código C para su hardware
designado.
1.3- CARACTERÍSTICAS DEL ENTORNO
Características de MATLAB :
- Cálculos intensivos desde un punto de vista
numérico. - Gráficos y visualización
avanzada. - Lenguaje de alto nivel basado en vectores,
arrays y matrices. - Colección muy útil de funciones de
aplicación.
Las poderosas capacidades de cálculo
técnico de MATLAB se ponen a la disposición de los
estudiantes, aunque limita el tamaño de las matrices a
8192 elementos, la edición de estudiante mantiene toda la
potencia de la
versión profesional de MATLAB 4.0, en una forma
diseñada para que los estudiantes puedan ejecutarlo en sus
propios ordenadores personales bajo Windows.
Toolbox especiales :
Se incluyen el Toolbox de señales y Sistemas ( un
conjunto de herramientas para el procesamiento de señal y
para el análisis de
sistemas de cuadro ) y el Toolbox Symbolyc Math ( herramienta
de cálculo simbólico basada en Maple V
).
A continuación presentamos la interfase de
usuario de MATLAB 4.0 con el despliegue de una aplicación
con grafica en 3D correspondiente al modelo
Z=x^y-y^x su tabla de calculo y el análisis de la
función.
1.4.- SALIDAS O
PRESENTACIONES
MATLAB provee acceso inmediato a las características gráficas
especializadas requeridas en ingeniería y ciencias.
Potente graficación orientada a objetos
gráficos le permite graficar los resultados de su
análisis, incorporar gráficos en sus modelos de
sistemas, rápidamente presentar complejos 3-D objetos, y
crear resultados de presentación, entre lo cual se
destaca:
- Representaciones 2-D y 3-D, incluyendo datos
triangulados y reticulados - Representaciones 3-D quiver, ribbon, y
stem - Control de fuentes,
letras Griegas, símbolos, subíndices y
superíndices - Selección expandida de símbolos
marcadores de curvas - Gráficos de torta, de barras 3-D y
gráficos de barras horizontales - Gráficos 3-D y sólido
modelado - Representación de imágenes y archivos
I/O - Gráficos comentados
- Leer/Escribir archivos de
datos Hierarchical Data Format (HDF) - Presentación de OpenGL software y hardware
- Animación
- Display de buffer x rápido y
exacto - Soporte de colores
verdaderos (24-bit RGB) - Fuentes múltiples de luz para
superficies coloreadas - Vista basada en cámara y control de
perspectiva - Iluminación Plana, Gouraud y Phong
- Soporte eficiente de imagen de datos
de 8-bit - Control de eje y cámara
- Propiedades de superficie y patch
- Modelos de iluminación
- Control gráfico de objetos
- Impresión y representación de
copias - Formatos gráficos exportables
- Soporte de publicación de
escritorio
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.
I/O Directo de Datos
Usted 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.
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.
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.
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.
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.
1.6- EL MATLAB Y LA ESTADÍSTICA
Statistics Toolbox
Combina poderosos algoritmos estadísticos con
interfaces gráficas interactivas
Las Statistics Toolbox le da un rango ancho de
herramientas para realizar cálculos estadísticos.
Proporciona una única mezcla de facilidad gráfica
de uso y programabilidad. Los despliegues gráficos
interactivos le permitieron aplicar métodos
estadísticos fácilmente y de forma consistente,
mientras el lenguaje de MATLAB le permite fácilmente crear
los acostumbrados métodos estadísticos y de
análisis. Esta combinación le da la libertad para
acceder las funciones bajo-niveladas directamente como funciones
de probabilidad y
ANOVA de la línea del orden, o para usar las interfaces
interactivas para aprender y experimentar con el toolbox
construir-en visualización y herramientas del
análisis.
Rasgos
Análisis de los componentes |
ANOVA |
Bootstrapping |
Comprobación de la hipótesis |
Creación de superficies y |
Curva que encaja (con intervalos) |
Distribuciones de probabilidad |
Estadísticas descriptivas |
Estimación del parámetro y |
Interfaces gráficas de usuario |
Modelade de Nonlinear |
Parcelas estadísticas |
Plan de experimentos |
Proceso estadístico de control |
Regresión del stepwise |
Regresión múltiple |
Simulación de Carlo Monte |
El toolbox es el ambiente ideal no rutina para el
montaje ejemplar. Las capacidades primarias incluyen: el
análisis de la regresión y diagnóstica con
selección inconstante, modelado no lineal, probabilidad y
estimación de parámetros, análisis de
sensibilidad que usa los generadores de número de azar,
control del proceso estadístico, y plan de experimentos.
Distribuciones de probabilidad. La Caja de Herramientas
Estadísticas ( Statistics TollBox ) apoya
una colección de 20 distribuciones de probabilidad
diferentes, incluso T, F, y distribuciones del Chi-cuadrado,
despliegues gráficos de ataques, y se mantienen formas de
calcular ataques mejores todos los tipos de la distribución.
Herramientas de GUI que mantienen Muchas herramientas
interactivas para la visualización dinámica y el análisis de datos. Las
interfaces especializadas tienen incluido planificación para los resultados,
visualización de la distribución, generación de
número de azar, y area del contorno.
Parcelas estadísticas los órdenes trazando
Estadísticos como weibplot y randplot le permiten realizar
análisis de fiabilidad o montaje
distributional.
Desarrollo del algoritmos de junto con el MATLAB, el
toolbox le da todo lo que usted necesita para desarrollar nuevos
algoritmos para el análisis estadístico. Usted
puede usar las funciones de trazando de Statistics Toolbox, o
crea su propio trazo usando los rasgos de Gráficos de
MATLAB.
En la grafica, el orden del histfit |
Explorando y Aprendiendo Statistics Toolbox
GUIs
La Statistics Toolbox incluye varios elementos de
fácil uso para despliegues que proporcionan vistas
gráficas de sus datos y lecturas numéricas precisas
del valor de la
función actual y estadística descriptiva relacionada.
Controles de interface de usuario, como botones, los
deslizadores, y los datos dinámicos, donde usted controla
sobre el despliegue de los datos.
Estos despliegues interactivos le permiten explorar sus
datos, experimentar con cambios a las entradas, y ver los
resultados de cambios hipotéticos – todos en una sola
pantalla. Este acercamiento a las estadísticas le ayuda a
aprender sobre un proceso mientras le da una percepción
intuitiva para la conducta de las
funciones estadísticas subyacentes.
Los despliegues de la entrada múltiples le
permiten hacer análisis de relación de
multidimensional. Cada sección representa una entrada. Las
barras cruzadas punteadas pueden moverse con el ratón para
cambiar un valor del
parámetro que causa todos los otros parámetros
(entradas) para poner al día
simultáneamente.
Statistics Toolbox ofrece despliegues |
Librería de Aplicaciones de MATLAB
Signal Processing Toolbox
MATLAB tiene una gran colección de funciones para
el procesamiento de señal en el Signal Processing Toolbox.
Este incluye funciones para:
- Análisis de filtros digitales incluyendo
respuesta en frecuencia, retardo de grupo,
retardo de fase. - Implementación de filtros, tanto directo como
usando técnicas en el dominio de la
frecuencia basadas en la FFT. - Diseño de filtros IIR, incluyendo Butterworth,
Chebyschev tipo I, Chebyshebv tipo II y
elíptico. - Diseño de filtros FIR mediante el
algorítmo óptimo de Parks-McClellan. - Procesamiento de la transformada rápida de
Fourier FFT, incluyendo la transformación para potencias
de dos y su inversa, y transformada para no potencias de
dos.
The MATLAB C Math Library
La MATLAB C Math Library proporciona al usuario la
capacidad computacional de MATLAB en una libreria en formato
objeto enlazable. El objetivo
principal de la C Math Library es soportar el desarrollo de
aplicaciones 'stand alone' utilizando MATLAB y su compilador.
Puede ser utilizada independientemente de MATLAB por
programadores avezados en lenguaje C que
necesiten prestaciones
computacionales robustas y de alto rendimiento.
Junto con el compilador de MATLAB , la C Math Library
permitirá a los programadores de aplicaciones utilizar
MATLAB para la creación de aplicaciones 'stand alone'.
Para los usuarios clásicos de MATLAB , se elimina
así cualquier necesidad de volver a reescribir algoritmos
en lenguaje C para
ser utilizada por programas externos. Para aquellos usuarios que
sean nuevos en la tecnología MATLAB ,
esta tecnología ofrece una nueva vía para
la reducción del tiempo de
desarrollo y puesta a punto de aplicaciones.
La MATLAB C Math Library proporciona una amplia gama de
funciones clásicas del programa MATLAB , proporcionadas
como librerias objeto, incluyendo básicamente las
siguientes categorías de funciones presentes en MATLAB y
archivos M compilados:
- Algebra lineal.
- Funciones matemáticas elementales y
especializadas. - Operadores lógicos y
aritméticos. - Matrices elementales y manipulación de
vectores. - Matrices especiales.
- Estadística básica y análisis de
datos. - Polinomios e interpolación.
- Gestión de cadenas de caracteres.
- Entradas y Salidas.
- Gestión de memoria y
errores.
(Nota: Las funciones del tipo Handle Graphics no estan
incluidas en la C Math Library).
Desarrollo de aplicaciones utilizando la MATLAB C Math
Library
La construcción y desarrollo de aplicaciones
utlizando esta libreria es un proceso de amplias perspectivas una
vez se tiene un dominio adecuado
de su operativa. El producto
está dividido en dos categorias (como librerias objeto):
la libreria (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 libreria de toolboxes (toolbox library) contiene versiones
compiladas de la mayoria de archivos M de MATLAB para
cálculo numérico, análisis de datos y
funciones de acceso a archivos y matrices.
En equipos UNIX estas
librerias pueden ser igualmente obtenidas como librerias de tipo
estático (static libraries) o bien como librerias
compartidas (shared libraries). Respecto al mundo PC, estas
librerias pueden obtenerse como DLL's en el entorno Microsoft
Windows o como
librerias compartidas en equipos Apple MacIntosh.
Utilización de MATLAB y de su compilador
Para construir una aplicación del tipo 'stand
alone' que incorpore código originalmente desarrollado
como archivos M de MATLAB , deberan de seguirse los pasos
siguientes:
- Utilizar el compilador de MATLAB para convertir
archivos M en C mediante la utilización de la
instrucción mcc -e (la cual es externa a
MATLAB). - Compilar el código C fuente en código
objeto utilizando un compilador ANSI C. - Enlazar el código resultante con la MATLAB C
Math Library y con cualquier tipo de archivos y programas
específicos que hayan sido previamente definidos por el
usuario.
Velocidad y Precisión
Los algoritmos utilizados en la MATLAB C Math Library
han sido desarrollados por un grupo de
renombrados expertos en programación algorítmica de
funciones de tipo matemático (algebra lineal y
cálculo numérico). Las funciones de álgebra
lineal han sido obtenidas de las librerias mundialmente
reconocidas LINPACK y EISPACK. La MATLAB C Math Library contiene
más de 300 funciones numéricas, lógicas y de
utilidad.
Todas estas funciones le permitiran operar en datos de tipo
escalar, vectorial o matricial con la misma facilidad
sintáctica.
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 suministrad os con la mayoría de
compiladores ANSI
C.
THE MATLAB COMPILER TOOLBOX
"OBTENGA UNA VELOCIDAD DE
EJECUCION HASTA 200 VECES SUPERIOR CON EL NUEVO COMPILADOR DE
MATLAB"
El nuevo compilador de MATLAB -The MATLAB Compiler-
permite crear código C optimizado procedente de archivos M
-M files- de MATLAB . Este compilador puede ser utilizado de dos
modos:
- Como un generador MEX automático. Pueden
convertirse archivos M en funciones C ejecutables que se
ejecutaran desde dentro de MATLAB. Como un generador de
código C fuente. - Pueden construirse aplicaciones que se ejecutaran
independientemente de MATLAB . Estas aplicaciones externas
requieren de la MATLAB C Math Library , que está
disponible separadamente.
Mediante la conversión automática de
archivos M en código C fuente, el compilador MATLAB
elimina consumo de
tiempo y la
conversión manual de
código. Todo el proceso de conversión,
compilación y enlazado se inicia a través de una
simple instrucción de MATLAB.
Generación Automática de archivos
MEX.
El compilador de MATLAB automatiza la creación de
archivos MEX de C (MATLAB Ejecutables). Los archivos MEX
contienen código objeto que es dinámicamente
enlazado como 'runtime' en el entorno MATLAB por el
intérprete del programa.
El proceso en cuestión se realiza en tres
pasos:
- El compilador de MATLAB traduce las funciones MATLAB
en sus funciones equivalente en lenguaje
C. - La instrucci¢n MATLAB cmex llama al compilador y
al enlazador del sistema para construir un fichero MEX
objeto. - El intérprete de MATLAB enlaza
automáticamente la función de MATLAB como
'runtime'.
Mientras se efectua una conversión de los
archivos M en archivos MEX, el compilador realiza llamadas a las
rutinas de la libreria C para muchas de las instrucciones
contenidas en el propio núcleo de MATLAB . Existen algunas
funciones, incluyendo las rutinas 'Handle Graphics', para las
cuales se generan de nuevo llamadas 'callbacks' a MATLAB.
Pueden convertirse convenientemente archivos M en código
fuente C para incorporarlos posteriormente en los archivos
externos desarrollados en lenguaje C, si ese es el caso. Esta
opción es ideal para usuarios que quieren sacar la
máxima ventaja de MATLAB desde cualquier otra
aplicación o producir código C eficiente a partir
de los algoritmos desarrollados con MATLAB . Los desarrollos del
tipo 'stand-alone' requieren para ello de la MATLAB C Math
Library . Obsérvese que las funciones gráficas de
MATLAB no estan incluidas.
Para construir aplicaciones 'stand-alone' se
debería seguir los siguientes pasos:
- Utilizar el compilador de MATLAB para convertir
archivos M en C con la instrucción externa mcc
-e. - Compilar el código C fuente en código
objeto utilizando un compilador C. - Enlazar el código resultante con las librerias
matemáticas C de MATLAB y los archivos
específicos de que dispongamos.
Rendimiento del compilador
Mediante la compilación de los archivos M podemos
obtener un rendimiento significativo. La velocidad de
mejora de este rendimiento, depende fuertemente de cada
aplicación. En algunos casos el rendimiento puede mejorar
hasta en 200 veces la ejecución si la comparamos con el
modo de trabajo interpretado del programa. Las operaciones
matriciales y vectoriales ejecutadas desde MATLAB ya estan
fuertemente optimizadas en su diseño.
Sin embargo, mediante la utilización del compilador se
obtendran significativas mejoras.
Opciones de ajuste del rendimiento
El compilador de MATLAB ofrece varias opciones que
permiten generar el programa final de la manera más
eficiente. Por ejemplo, Ud. puede directamente:
- Tratar todas las variables en
archivos como datos enteros y/o reales. - Utilizar una variable concreta como variable escalar,
vectorial, entera, real o una combinación de
estas. - Desactivar el control de parámetros de entrada
y el redimensionamiento dinámico de
vectores.
Requerimientos del sistema
Para utilizar el compilador de MATLAB para crear
archivos 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
- Metaware High C/C++ V.3.0 o
- Power MacIntosh
- MetroWerks CodeWarrior C V.7
- MPW MrC V.1.0b2 o PPCC version
1.0.5
- 680×0 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.
Limitaciones del código compilado
Ciertas instrucciones, como load y eval, no estan
soportadas por el compilador de MATLAB . Este no puede generar
código de los diagramas de
bloques de SIMULINK. Los toolboxes de MATLAB pueden incluir
archivos MEX y otros componentes que no son
compilables.
SYMBOLIC MATH TOOLBOX
El Toolbox de Matemática
Simbólica, añade a MATLAB la capacidad de realizar
cálculos simbólicos basados en MAPLE V ©
soportando además (The Extended Symbolic Math Toolbox) las
librerías especializadas, y los programas realizados para
este último. Entre otros, los principales tipos de
operaciones soportados son los siguientes:
- Algebra simbólica: Derivación, integración y simplificación de
expresiones matemáticas. - Algebra lineal exacta: Inversas, determinantes,
autovalores y formas canónicas de matrices
simbólicas. - Aritmética de precisión variable:
Evaluación de expresiones
matemáticas con diversos grados de
precisión. - Resolución de ecuaciones:
Resolución numérica y simbólica de
ecuaciones
algebraicas y diferenciales. - Funciones matemáticas especiales: Evaluación de la mayoría de las
funciones utilizadas en matemáticas
aplicadas.
Existen dos versiones del mismo Toolbox. The Basic
Symbolic Math Toolbox es una colección de más de 50
funciones MATLAB las cuales permiten acceder al kernel de MAPLE
utilizando la sintaxis y el estilo del lenguaje MATLAB. The
Extended Symbolic Math Toolbox aumenta esta funcionalidad
incluyendo todas las características de
programación de MAPLE, y el acceso a los paquetes de
funciones de más de veinte campos de las
matemáticas especiales aplicadas.
Es posible utilizar este Toolbox sin conocimiento
previos de MAPLE, ya que los archivos contenidos en él son
totalmente autónomos. Sin embargo, si lo que se desea es
obtener toda la potencia de
cálculo del entorno, será necesario un amplio
conocimiento
del manejo y la programación de MAPLE
Optimization Toolbox
El toolbox de optimización consta de un conjunto
de funciones que resuelven problemas de extremos, con o sin
condiciones, de funciones reales las cuales son generalmente
multivariables y no lineales. Asimismo, posee funciones para la
resolución de algunos tipos de problemas matriciales en
extremos. Resulta conveniente para una comprensión y mejor
manejo de la toolbox poseer conocimientos básicos previos
de análisis de funciones reales, matrices y teoría
de extremos.
Algunas de las áreas básicas que cubre
este toolbox para MATLAB son las siguientes:
- Cálculo de un extremo local (máximo o
mínimo) de una función real f(x), en general
multivariable y no lineal, sin imponer ninguna
restricción o condición a la solución.
Como caso particular, se incluye una rutina especial para
problemas de mínimos cuadrados no lineales. - Cálculo de un extremo local (máximo o
mínimo) de una función real f(x), en general
multivariable y no lineal, condicionado a que la
solución satisfaga ciertas condiciones de desigualdad
(g(x)<=0) y/o igualdad
(g(x)=0). - Problemas de aproximación a un conjunto de
objetivos. - Cálculo de soluciones
de un sistema de ecuaciones continuas y, en general, no
lineales. - Solución de problemas minimax.
- Programación lineal.
- Programación cuadrática.
- Problemas de mínimos cuadrados no
negativos.
Image Processing Toolbox
Este Toolbox proporciona a MATLAB de un conjunto de
funciones que amplia las capacidades del producto para
realizar desarrollo de aplicaciones y de nuevos algoritmos en el
campo del proceso y análisis de imagenes. El entorno
matemático y de creación de MATLAB es ideal para el
procesado de imágenes, ya que estas imágenes son,
al fin y al cabo, matrices. Este toolbox incorpora funciones
para:
- Diseño de filtros.
- Mejora y retocado de imágenes.
- Análisis y estadística de
imágenes. - Operaciones morfológicas, geométricas y
de color. - Transformaciones 2D.
El proceso de imágenes es un campo de trabajo
absolutamente crucial para aquellos colectivos e industrias que
esten trabajando en áreas como diagnóstico médico, astronomia,
geofísica, ciencias
medioambientales, análisis de datos en laboratorios,
inspección industrial, etc. Los programas actuales de
procesado y análisis de imágenes se clasifican
actualmente en dos categorias: librerias de bajo nivel para
programadores profesionales y paquetes de aplicación con
capacidades limitadas de personalización. Ambos tipos de
aplicaciones están, generalmente, pensados para tareas
básicas de visualización de datos y 'rendering'.
Sin embargo, muchos de ellos adolecen de la posibilidad de
efectuar análisis numéricos de los mismos. El Image
Processing Toolbox entra dentro de la categoria de familias de
funciones que, desde el entorno de trabajo de MATLAB ,
permitirá al profesional efectuar una exploración
exhaustiva y desde un punto de vista matemático de las
imágenes y gráficos que se deseen tratar o
analizar.
Algunas de las funciones más importantes
incluidas dentro de este toolbox son las siguientes:
- Análisis de imágenes y
estadística. - Diseño de filtros y recuperación de
imágenes. - Mejora de imágenes.
- Operaciones morfológicas.
- Definición de mapas de
colores y modificación gráfica. - Operaciones geométricas.
- Transformación de imágenes.
- Proceso de bloques
Neural Network Toolbox
Este toolbox proporciona funciones para el
diseño, inicialización, simulación y
entrenamiento
de los modelos
neuronales de uso más extendido en la actualidad:
Perceptrón, redes lineales, redes de
retropropagación, redes de base radial, aprendizaje
asociativo y competitivo, aplicaciones autoorganizativas,
aprendizaje de
cuantización vectorial, redes de Elman y redes de
Hopfield.
Mediante la inclusión de un amplio abanico de
funciones y procedimientos
escritos para MATLAB, el usuario puede mediante el Neural Network
Toolbox efectuar el diseño de arquitecturas complejas,
combinando los modelos que ya estan proporcionados por defecto en
el toolbox. Asimismo, el usuario puede definir sus propias
funciones de transferencia e inicialización, reglas de
aprendizaje, funciones de entrenamiento y
estimación de error para usarlas posteriormente con las
funciones básicas.
El toolbox, aporta las facilidades y prestaciones
gráficas de MATLAB para el estudio del comportamiento
de las redes: visualización gráfica de la matriz de
pesos y vector de desplazamiento mediante diagramas de
Hinton, representación de errores a lo largo del
entrenamiento, mapas de
superficie de error en función de pesos y vector de
desplazamiento, etc. Estos gráficos resultan muy
útiles en el estudio de la convergencia y estabilidad de
los algoritmos de aprendizaje. Este toolbox incluye un manual de
introducción al campo de las redes
neuronales junto con una colección de demostraciones y
aplicaciones muy didácticas, útiles para el estudio
y la profundización en las cuestiones fundamentales de los
paradigmas de
redes
neuronales básicos. Asimismo, se proporcionan las
referencias bibliográficas más significativas
referidas a los distintos modelos que aparecen en la
aplicación.
A pesar de que el estudio de las redes neuronales se
inició ya hace algunas decadas, las primeras aplicaciones
sólidas dentro de este campo no han tenido lugar hasta
hace unos doce años y aun ahora constituyen un área
de investigación en rápido desarrollo. Este toolbox
tiene por tanto una orientación diferente a aquellos
destinados a campos como el de sistemas de
control u optimización donde la terminología,
fundamentos matemáticos y procedimientos de
diseño estan ya firmemente establecidos y se han aplicado
durante años. Este toolbox pretende que sea utilizado para
la valoración y diseño de diseños neuronales
en la industria y
sobre todo en educación e
investigación.
Esta herramienta tiene el soporte de MATLAB 4.2c y
SIMULINK. La librería de SIMULINK contiene modelos de
capas de redes neuronales de cada tipo de neurona
implementada en el toolbox de redes neuronales. Es posible por
tanto diseñar sistemas SIMULINK para simular redes
neuronales creadas usando esta herramienta. Simplemente, las
capas se conectan de acuerdo con la arquitectura de
la red y se
proporcionan como entrada a la caja de diálogo de cada
capa la matriz de
pesos apropiada y el vector de desplazamiento. Usando el
generador de código C de SIMULINK es posible generar
automáticamente el código correspondiente a un
diseño neuronal.
Dentro de las aplicaciones básicas de este
toolbox, cabe destacar aquellas que estan orientadas a aquellas
que se enmarcan dentro del campo de la industria aeroespacial y
automoción (simulación, sistemas de control,
autopilotaje), banca, defensa
(reconocimiento de patrones, procesamiento de señales,
identificación de imágenes, extracción de
características, compresión de datos), electrónica (control de procesos,
análisis de errores, modelado no lineal, síntesis
de voz, visión por ordenador), economía (análisis
financiero, análisis predictivo), industria (control
de procesos,
identificación en tiempo real, sistemas de
inspección), medicina,
robótica (control de trayectorias, sistemas
de visión), reconocimiento y síntesis del habla,
telecomunicaciones (control de datos e
imágenes, servicios de
información automatizada, traducción
del lenguaje hablado en tiempo real, diagnosis, sistemas de
enrutamiento), etc. El toolbox contiene muchos ejemplos de
algunas de estas aplicaciones.
NON LINEAR CONTROL DESIGN TOOLBOX
Se trata del primer producto comercialmente disponible
en la actualidad para el diseño de controladores
automáticos en entornos de sistemas no lineales. Este
nuevo toolbox está pensado para ser utilizado
exhaustivamente por ingenieros que diseñan controladores
para industrias
avanzadas, destacando el sector del automóvil, ingenieria
aeroespacial, control de procesos y empresas
petroquímicas. Según indica Jim Tung,
Vicepresidente del área de desarrollo de The MathWorks
Group, Inc. "El proceso de aproximación tradicional en el
diseño de controladores en sistemas no lineales ha sido
hasta la fecha linealizarlos de algún modo para aplicar
posteriomente un método de
diseño lineal que requiere de importantes ajustes manuales. El
toolbox NCD permite por primera vez a los ingenieros de control
diseñar directamente sus controladores en un ambiente no
lineal, obviando la aproximación lineal y otros
procedimientos auxiliares que antes se necesitaban de modo
imperativo. Los resultados ahora son de elevada calidad,
controladores más robustos y un ciclo de diseño
mucho más rápido."
El toolbox NCD extiende, además, las prestaciones
que incorpora SIMULINK, el entorno de desarrollo de diagramas de
bloques para la modelación y análisis de
sistemas dinámicos de The MathWorks, Inc. El usuario
puede incluir uno o más bloques NCD en el sistema y
describir posteriormente de modo totalmente gráfico las
restricciones, tolerancias y límites de permisividad de
cada uno de estos bloques. Los métodos avanzados de
optimización y la simulación del proceso son
posteriormente analizados y ajustados mediante la
inclusión de unas ciertas variables de
contorno para poder obtener
los tiempos de respuesta deseados. Este toolbox puede ser
utilizado para ajustar una amplia variedad de controladores que
se utilizen en un sistema, destacando los controladores PID, LQR,
LQG y estructuras H
infinito. El diseñador de sistemas puede utilizar el
método de
Montecarlo para el diseño y análisis de
controladores robustos, siempre que se detecten determinadas
variaciones en los componentes del sistema.
El toolbox NCD es un componente avanzado del entorno
integrado de desarrollo que ofrecen a los especialistas los
programas MATLAB y SIMULINK. Por ello, los diseñadores
podrán beneficiarse de muchos de los toolboxes
desarrollados para este entorno en materia de
diseño de
sistemas lineales. Por ejemplo, podrán utilizarse
toolboxes para el análisis de sistemas lineales para el
diseño inicial; posteriormente, podrán utilizarse
modelos no lineales más sofisticados utilizando SIMULINK.
Además, puede invocarse NCD para un mejor ajuste
paramétrico y para la optimización de los
controladores. Este toolbox se encuentra actualmente disponible
para una amplia variedad de plataformas informáticas,
destacando ordenadores personales tipo PC o Apple MacIntosh,
numerosas estaciones UNIX y
ordenadores Digital VAX VMS.
NAG FOUNDATION TOOLBOX
Este toolbox proporciona un acceso interactivo, desde
dentro de MATLAB, a un amplio conjunto de funciones
matemáticas y estadísticas contenidas en las
clásicas NAG Fortran Libraries de la empresa The
Numerical Algorithms Group Incorpora más de 200 archivos
M, los cuales cubren un amplio espectro de áreas de
interés, entre las que cabe destacar
optimización, ecuaciones
diferenciales ordinarias y en derivadas
parciales, cuadratura, estadística, etc. La NAG Foundation
Toolbox añade también rutinas concretas para campos
específicos tales como la resolución de problemas
con condiciones de contorno, problemas de cuadratura adaptativa
multidimensional, ajuste de curvas y superficies y el acceso a
los algoritmos LAPACK para la resolución de ecuaciones
lineales. Los nombre de las funciones han sido directamente
tomados de las especificaciones de función clásica
que añade The Numerical Algorithms Group para sus
librerias. Como resultado de esto, aquellos usuarios de las
librerías Fortran de NAG que a la vez sean usuarios de
MATLAB, encontraran bastante cómodo acceder a las rutinas
NAG utilizando la nomenclatura
original.
La NAG Foundation Toolbox es resultado de la
colaboración corporativa que actualmente están
llevando a cabo The MathWorks Group y The Numerical Algoriths
Group para proporcionar un rápido acceso desde MATLAB a un
importante de rutinas matemáticas contenidas en la NAG
Foundation Library. Actualmente, este toolbox incorpora 250
rutinas matemáticas.
Algunas de las áreas de cobertura de la NAG
Foundation Toolbox son las siguientes:
- Ceros de polinomios
- Raíces de una o más ecuaciones de tipo
trascendental. - Suma de series.
- Cuadraturas.
- Ecuaciones diferenciales ordinarias.
- Ecuaciones diferenciales en derivadas
parciales. - Estadística no paramétrica.
- Análisis de series temporales.
- Rutinas de clasificación.
- Aproximación de funciones
especiales. - Aproximación de curvas y
superficies. - Maximización y minimización de
funciones. - Factorización de matrices.
- Valores y vectores propios.
- Resolución de ecuaciones lineales
simultáneas. - Ecuaciones lineales (LAPACK).
- Estadística básica.
- Análisis de correlación y
regresiones. - Métodos multivariantes.
- Generación de números
aleatorios.
Como vemos la interfase de usuario de MATLAB no es muy
distinta a la de otras aplicaciones a las cuales estamos
acostumbrados, pero la verdadera diferencia consiste en la
utilidad que
presta como aplicación para la investigación y el
desarrollo de modelos matemáticos y estadísticos
los cuales son tratados de forma
interactiva, y con superposición de ventanas en un entorno
de fácil comprensión e interpretación de los
datos arrojados como resultados de los distintos rangos de
calculo que se pueden proporcionar a cada modelo de tal forma que
podemos hacer estudios de comportamiento
y tratar de determinar como se comportará una determinada
variable a través de una serie de experimentación
en tiempo real.
Las ventanas de despliegue grafico son muy similares, en
las cuales el énfasis de la presentación se pone en
la grafica generada y no en el entorno de trabajo, es por esta
razón que puede parecer que el diseño de esta
aplicación es escueto, pero debemos recordar que como todo
este tipo de aplicaciones su desarrollo está orientado al
logro de un objetivo especifico como es el resolver modelos
matemáticos.
3.1.- OPERACIONES CON
VECTORES Y MATRICES
Definiendo Matrices y Vectores
El entorno de desarrollo nos permite resolver problemas
de calculo complejo y es asi como en el calculo matricial y
vectorial se puede hacer buen uso de MATLAB, a
continuación se ejemplifica el uso del mismo, tengamos en
cuenta que una matriz es un arreglo vectorial, por lo tanto el
uso de las formas matriciales son aplicables a las formas
vectoriales. Si queremos definir la siguiente matriz en
MATLAB:
entonces escribimos:
»A=[1 2 3 4;5 6 7 8;9 10 11
12;13,14,15,16];
(El simbolo "»" denota el prompt de MATLAB y no se
escribe al entrar instrucciones). El ";" al final de la
instrucción omite el "eco" o salida a la pantalla. La
instrucción
»x=4:-1:1
general el vector fila x=[4,3,2,1]. La
instrucción
»C=A(3:4,1:3);
se refiere a la submatriz
de A. También D=A([1,3],3:4) genera
Matrices Especiales
En MATLAB podemos generar matrices especiales con las
siguientes instrucciones:
rand(n,m) – matriz nm de entradas aleatorias
entre 0 y uno.
eye(n) – matriz identidad
nn.
zeros(n,m) – matriz cero de tamaño nm.
ones(n,m) – matriz nm con todas las entradas
uno.
Combinando estas instrucciones podemos generar matrices
bastante complicadas. Por ejemplo, la
instrucción
»E=[eye(2),ones(2,3);zeros(2),[1:3;3:-1:1]]
genera la matriz
La instrucción round(x) redondea "x" al entero
más cercano a "x". Podemos combinar funciones en MATLAB.
Por ejemplo, round(10*rand(4)) genera una matriz con entradas
aleatorias entre 0 y 10.
Aritmética de Matrices
Considere las siguientes matrices:
Entonces las operaciones A*B (producto matricial de A
con B), A+B (suma de A mas B), 3*A (multiplicación escalar
de 3 por A) tienen los siguientes resultados:
»A*B
ans =
16 19 13
10 11 7
»A+B
??? Error using ==> +
Matrix dimensions must agree.
»3*A
ans =
12 15
6 9
Note que MATLAB "anuncia" que A+B no se puede calcular.
Las operaciones A' (transpuesto de A), inv(A) (inversa de A), y
A^3 (esto es A*A*A) tienen como resultados:
»A'
ans =
4 2
5 3
»inv(A)
ans =
1.5000 -2.5000
-1.0000 2.0000
»A^3
ans =
174 235
94 127
Si precedemos las operaciones matriciales "*", "^" con
el punto ".", entonces estas se hacen termino a termino. Por
ejemplo A.*C y A.^2 generan:
» A.*C
ans =
-4 10
4 12
» A.^2
ans =
16 25
4 9
Solución de Sistemas Lineales
Considere le sistema lineal
Definimos la matriz de coeficientes y el lado derecho
por las instrucciones:
»A=[1 -2 3;4 1 -2;2 -1 4];
»b=[1 -1 2]';
Note el transpuesto en b para hacerlo un vector columna.
Vamos a resolver este sistema por tres métodos:
- eliminación Gaussiana
- forma echelon reducida o método de
Gauss-Jordan - método de la inversa
En el método de Gauss-Jordan, luego de obtener la
forma echelon de la matriz de coeficientes aumentada, eliminamos
también la parte de arriba de la matriz hasta producir una
matriz donde las columnas con unos, solo tienen un uno. Esto se
conoce como la forma echelon reducida (ver texto). Para
comparar los tres métodos utilizamos la instrucción
flops de MATLAB que estima el número de operaciones de
punto flotante entre dos llamadas sucesivas a flops. Una llamada
de la forma flops(0) inicializa el contador de operaciones a
cero. La sucesión de instrucciones:
» flops(0)
» x=Ab
x =
-0.0417
0.4167
0.6250
» flops
lleva a cabo eliminación Gaussiana en el sistema
de arriba y produce como resultado:
ans =
73
esto es, se necesitaron aproximadamente 73 operaciones
de punto flotante (sumas, restas, multiplicaciones ó
divisiones) para resolver el sistema con eliminación
Gaussiana. Para el método de Gauss-Jordan
tenemos:
» flops(0)
» rref([A b])
ans =
1.0000 0 0 -0.0417
0 1.0000 0 0.4167
0 0 1.0000 0.6250
» flops
ans =
483
el cual requiere 483 operaciones de punto flotante.
Finalmente el método de la inversa se realiza con la
siguiente sequencia de instrucciones:
» flops(0)
» x=inv(A)*b
x =
-0.0417
0.4167
0.6250
» flops
ans =
108
el cual toma 108 operaciones. Vemos pues que
eliminación Gaussiana es el mejor de los tres
métodos lo cual es cierto en general.
Usando MATLAB podemos estudiar la relación entre
la solubilidad del sistema Ax=b y la nosingularidad de la matriz
de coeficientes A. En clase vimos que el sistema Ax=b tiene
solución única para cualquier lado derecho b si y
solo si la matriz A es nosingular. ¿Qué sucede si A
es singular? ¿Entonces Ax=b no tiene solución? Si A
es singular el sistema Ax=b puede tener solución para
algunos b's pero de seguro hay al
menos un b* para el cual Ax=b* no tiene solución. Vamos a
genera una matriz singular con MATLAB:
» A=round(10*rand(6));
» A(:,3)=A(:,1:2)*[4 3]'
A =
2 5 23 9 7 3
0 8 24 8 9 6
7 0 28 5 8 8
7 1 31 1 3 10
9 5 51 7 0 4
4 7 37 4 7 2
(Como usamos la instrucción rand, el resultado de
esta y cualquier secuencia de instrucciones que use esta
función de MATLAB, no siempre será el mismo). La
primera instrucción genera una matriz aleatoria con
entradas enteras entre 0 y 10, y con la segunda
instrucción remplazamos la tercera columna de A con cuatro
veces la primera columna mas tres veces la segunda columna.
¡La matriz resultante es singular! (Explique esto sin
calcular el determinante). Generamos ahora un lado derecho
arbitrario mediante la instrucción:
» b=round(20*(rand(6,1)-0.5))
b =
10
4
5
3
-9
3
Esto genera una matriz 61 aleatoria con entradas
enteras entre -10 y 10. Resolvemos el sistema Ax=b calculando la
forma echelon reducida de la matriz de coeficientes aumentada [A
b]:
» rref([A b])
ans =
1 0 4 0 0 0 0
0 1 3 0 0 0 0
0 0 0 1 0 0 0
0 0 0 0 1 0 0
0 0 0 0 0 1 0
0 0 0 0 0 0 1
Como la última fila es de la forma el sistema es inconsistente, i.e., no
tiene solución. ¡Recuerde que A es singular! Esto no
quiere decir que Ax=b nunca tenga solución. Si definimos
c=A*b, con el b de arriba digamos, el sistema Ax=c tiene
solución x=b (¿por qué?). De hecho si
calculamos la forma echelon reducida de [A c] tenemos:
» c=A*b;
» rref([A c])
ans =
1 0 4 0 0 0 30
0 1 3 0 0 0 19
0 0 0 1 0 0 3
0 0 0 0 1 0 -9
0 0 0 0 0 1 3
0 0 0 0 0 0 0
el cual denota un sistema consistente dependiente con
soluciones:
donde x3 es arbitrario.
Funciones de Matrices
MATLAB posee una gran cantidad de funciones matriciales.
De las más comunes tenenmos:
- min(A), max(A) – dan el mínimo y máximo
respectivamente por columnas de A - sum(A), prod(A) – producen la suma y producto
respectivamente por columnas de A - norm(A,p) – norma p de la matriz A donde p=1,2,
ó inf - eig(A) – vector cuyos componentes son los valores
propios de A - det(A) – el determinante de A
- inv(A) – la matriz inversa de A
MATLAB provee excelentes funciones para gráficas
en dos, tres y cuatro dimensiones. Veamos un par de ejemplos
sencillos. Suponga que queremos trazar la gráfica de la
función
Esto lo podemos lograr con las instrucciones:
» x=-5:.1:5;
» y=x.^2.*exp(-x.^2);
» plot(x,y)
La primera instrucción divide el intervalo [-5,5]
en subintervalos de largo 0.1, la segunda instrucción
evalúa la función en los puntos de la
partición, y finalmente graficamos los resultados con
plot. La instrucción plot tiene opciones para cambiar
patrones del trazado, poner titulos, etc.
Supongamos ahora que queremos dibujar la
superficie:
Esto lo hacemos con la secuencia de
instrucciones:
» x=-5:.4:5;
» y=x;
» [X,Y]=meshgrid(x,y);
» Z=X.^2.*exp(-Y.^2);
» surf(X,Y,Z)
(Para ver el gráfico faltante haga
lick en el menú superior "Bajar Trabajo")
Las primeras dos instrucciones dividen los ejes de "x" y
"y" en subintervalos de largo 0.4; la tercera instrucción
genera una rejilla en el conjunto [-5,5][-5,5] con
cuadraditos de lados 0.4 como se ilustra en la siguiente
figura:
La cuarta instrucción evalua la función en
los puntos de la rejilla, y finalmente trazamos la superficie con
surf.
El análisis de voz propiamente no es funcional
pues el modelo que corresponde a la modulación interactiva
y las distintas frecuencias que aunque estan sometias a un rango
especifico varian en un numero infinito, por esta razón el
estudio se refiera a la acustica en si como un modo de generar
modelos simples los cuales se van acoplando a las necesidades de
la investigación en la cual es requerido, y es así
como muchas de estas investigaciones
han aportado soluciones efectivas para el desarrollo de mejores
programas de reconocimiento de voz.
Introducción a modelos físicos
¿Cuál es la causa de que la presión
de aire fluyendo
a través de un tubo hueco produzca ondas de
presión en el aire del exterior
que conocemos como notas? Con modelos físicos se intenta
describir matemáticamente la acústica de los
instrumentos tradicionales y implementar digitalmente los
algoritmos para poder
reproducir estos fenómenos.
En la actualidad se ha desarrollado suficientamente la
tecnología para que se puedan manipular estos modelos al
mismo nivel que los originales acústicos en tiempo real, y
por eso han sido objeto de mucho interés
comercial. Pero, por supuesto, la imitación nunca puede
ser mejor que el original, así que todavía la
intención principal es descubrir la naturaleza de los
instrumentos.
Al contrario de la síntesis tradicional de
muestras, se gobierna un modelo físico por la interfaz
entre el ejecutante y el instrumento.Variables como la
presión de aire y la embocadura para instrumentos de
viento y la presión del arco y posición del dedo
para los de cuerdas fijan qué oscilaciones afectan al
medio resonante, que como consecuencia emite ondas sonoras a
su entorno. Con ello se ha perdido la generalidad de la
síntesis muestreada y la posibilidad de influir la
señal directamente, a cambio de un
control del modelo más amigable al usuario, intuitivo y
tradicional.
Los modelos físicos requieren menos capacidad de
datos que la síntesis muestreada si hay algoritmos
efectivos, pero los gastos elevados
se encuentran al desarrollar estos algoritmos que es necesario
adaptar a medida para cada tipo de instrumento que tiene
distintos fenómenos acústicos.
Así como la síntesis de muestras ha
contribuído a clasificar los distintos instrumentos por su
timbre, los modelos físicos han contribuido a refinar la
clasificación por sus cualidades físicas. Los dos
grupos
principales son instrumentos de cuerdas e instrumentos de viento,
ambos subdivididos en varios grupos.
Para modelar un instrumento se divide en dos partes
funcionales: el excitador y el resonador. El excitador se puede
simular como una señal entrada no lineal para el
resonador, el cuál se puede modelar como una
función transferencia lineal que produce la señal
salida audible. Los dos se unen con
realimentación.
La teoría
más aplicada para el resonador de modelos físicos
es la denominada ³teoría de guía de
ondas². Se basa en la solución analítica de la
ecuación de la propagación de ondas en el material.
La ecuación es adecuada para cualquier guía de
ondas unidimensional, tanto cuerdas como tubos huecos:
Ky² = Eÿ
Para cuerdas:
K = tensión de la cuerda
E = densidad de masa
lineal
y = desplazamiento de la cuerda
ÿ = aceleración de la cuerda
y² = curvatura de la cuerda
Además hay que modelar las pérdidas de
energía debido a la resistencia del
aire, la rigidez, la fricción interno etc., que hace
apagarse al sonido. Se puede
implementar todo eso muy efectivamente mediante componentes
digitales como líneas de retardo, unidades de acoplo y
filtros.
El excitador al ser no lineal es más dificil de
modelar que el resonador. Además existen diferentes tipos
que implican diferentes conjuntos de
ecuaciones, pero hay buenos modelos para estos también.
Para mantener una nota constante el excitador tiene que
proprocionar exactamente la misma energía que desaparece
en el resonador; un cambio en la
energía proporcionada da un cambio correspondiente en la
potencia sonora. Cada resonador tiene límites superior e
inferior que determinan qué suministro de energía
resulta en un sonido
conteniendo la frecuencia fundamental de la nota
deseada.
Diferentes opciones para desarrollos
posteriores
En principio esta línea de investigación
no tenía un fin comercial, sino que era un intento de
entender la acústica de los instrumentos acústicos.
Hoy día los algoritmos resultantes son tan efectivos, la
capacidad de cálculo tan elevada y la interfaz al
ejercitante tan buena que también es un método de
producir instrumentos
musicales comerciales. En esta tarea, hay ángulos
diferentes de acometer los problemas. En un extremo está
el físico que analiza los mecanismos de generación,
en el otro está el diseñador de instrumentos que
desea buenos resultados en la calidad del
sonido.
Uno de los problemas básicos y hasta ahora no
resueltos es el de los pequeños márgenes, que son
tan importantes. Un cambio minúsculo de p.ej. la
presión de arco o la embocadura produce cambios bastante
audibles, y aún es un misterio qué separa un
violín bueno y uno excelente. Hay que bajar a un nivel muy
detallado que en cualquier otro contexto electroacústico
se podría pasar por alto, lo cual es un gran
desafío para el futuro.
Lo más importante será siempre centrarse
en los aspectos musicales aunque las matemáticas sean
bastante interesantes de por sí.
¿Por qué?
La ventaja de la acústica musical es la
posibilidad de utilizar el excelente oído humano como
mecanismo de control para las teorías
deducidas, que también son aplicables para objetivos no
musicales. Por eso los modelos físicos pueden utilizar la
realidad como su hipótesis
verificativa.
La finalidad será llegar un día a conocer
los fenómenos acústicos de los instrumentos tan
bien que se logre mejorar y/o construir nuevos instrumentos
acústicos, y poder modelar instrumentos ficticios
inspirados en los tradicionales pero que no necesariamente se
puedan construir en la realidad.
También hay un gran interés comercial por
estos modelos, ya que son buenas copias de los instrumentos
tradicionales, pero mucho más flexibles. Se pueden
presentar facilidades como auriculares, MIDI, salida de jack,
secuenciador, varios instrumentos parecidos en el mismo modelo, y
formatos pequeños y ligeros.
LISTA PARCIAL DE FUNCIONES
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. - 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.
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.
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.
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.
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.
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.
- MATLAB User's Guide, The MathWorks, Inc.,
Massachusetts, 1995. - The MATLAB Handbook, E. Part-Enander, A. Sjoberg, B.
Melin, and P. Isaksson, Addison-Wesley, New York,
1996.
Autor:
Felipe
felcos[arroba]www.cantv.net