SIMULACIÓN 6. PROGRAMACIÓN DE CÓMPUTO ESPECIAL PARA SIMULACIÓN. 6.1. DESCRIPCIÓN DE UN PAQUETE DE SIMULACIÓN DISPONIBLE. Una simulación por computadora, un modelo de simulación por computador o un modelo informatizado es un programa informático o una red de ordenadores cuyo fin es crear una simulación de un modelo abstracto de un determinado sistema. Las simulaciones por computadora se han convertido en una parte relevante y útil del modelo matemático de muchos sistemas naturales de ciencias como la física, geofísica, astrofísica, química y la biología; así como de sistemas humanos de economía, psicología y ciencias sociales. Además, se emplea en el diseño de nueva tecnología para llegar a comprender mejor su funcionamiento. Las simulaciones por computadora abarcan desde programas informáticos cuya ejecución dura unos minutos hasta conjuntos de ordenadores conectados en red cuya ejecución dura horas, e incluso hay simulaciones que se extienden varios días. Existen diferentes tipos de modelos, en función de la finalidad para la cual se crean o diseñan. Sus clasificaciones son variadas, y buscan dar una idea de sus características esenciales; pueden ser en base a su dimensión, función, propósitos y grado de abstracción. abstracción. Cada fenómeno de la realidad se puede representar por medio de un modelo; por lo cual, según el número y tipo de fenómenos existentes en el mundo real, será el número y tipo de modelos posibles. Aunque los tipos básicos son icónico, analógico y simbólico o matemático. SIMULACIÓN Otra clasificación es con base a las capacidades de representar la dinámica y probabilística, control de los componentes e interacciones del sistema (Quinteros et al., 2006), de esta manera los modelos son: 1) Estáticos, cuando se representa un sistema en un solo instante de tiempo en particular, o bien para representar un sistema en donde el tiempo no es importante, por ejemplo simulación Montecarlo. 2) Dinámicos, representan sistemas en los que las variables son funciones del tiempo, permitiendo predecir su predecir su desarrollo en desarrollo en un periodo un periodo dado; este dado; este tipo de tipo de modelos es modelos es de gran de gran importancia para importancia para representar procesos biológicos; 3) Determinísticos, no consideran la variación estocástica, comportándose de manera, los datos de entrada y las relaciones existentes en el sistema son especificados al inicio, es decir, no influye el azar en los resultados; y 4) Estocásticos, la modelación se realiza considerando que al menos una de las variables que definen el comportamiento del sistema se muestra aleatoria, y entonces el resultado es al menos en parte variable. La plataforma de MATLAB está optimizada para resolver problemas científicos y de ingeniería. El lenguaje de MATLAB, basado en matrices, es la forma más natural del mundo para expresar las matemáticas computacionales. Las gráficas integradas facilitan la visualización de los datos y la obtención de información a partir de ellos. Una vasta biblioteca de herramientas (Toolboxes) integradas le permite empezar a trabajar inmediatamente con algoritmos esenciales para su dominio. El entorno de escritorio invita a experimentar, explorar y descubrir. Todas estas herramientas y funciones de MATLAB están probadas rigurosamente y diseñadas para trabajar juntas. MATLAB le ayuda a llevar sus ideas más allá del escritorio. Puede ejecutar sus análisis en conjuntos de datos de mayor tamaño y expandirse a clusters y nubes. El código de MATLAB se puede integrar con otros lenguajes, lo que le permite implementar algoritmos y aplicaciones en sistemas web, empresariales o de producción. SIMULACIÓN CARACTERÍSTICAS PRINCIPALES DE MATLAB. Lenguaje de alto nivel para cálculos científicos y de ingeniería Entorno de escritorio optimizado para la exploración iterativa, el diseño y la solución de problemas Gráficas para visualizar datos y herramientas para crear diagramas personalizados Aplicaciones para ajustar curvas, clasificar datos, analizar señales, ajustar sistemas de control y muchas otras tareas Toolboxes complementarias para una amplia variedad de aplicaciones científicas y de ingeniería Herramientas para crear aplicaciones con interfaces de usuario personalizadas Interfaces para C/C++, Java®, .NET, Python, SQL, Hadoop y Microsoft® Excel® Opciones de implementación libres de derechos para compartir programas de MATLAB con los usuarios finales 6.1.1. ÁREAS DE APLICACIÓN. Se utiliza para el aprendizaje automático, procesamiento de señales, procesamiento de imágenes, visión por ordenador, comunicaciones, finanzas computacionales, diseño de control, robótica, entre otros. Ejemplo de aplicación del programa en solución de un problema. SIMULACIÓN MATLAB puede ser usado para resolver un gran abanico de problemas técnicos relacionados con matemática, desde la evaluación de una simple función hasta la resolución numérica de sistemas de ecuaciones diferenciales parciales, por ejemplo. También puede resolver problemas simbólicos y presentar los resultados de forma agradable y visual de manera que los resultados obtenidos sean más fáciles de comunicar a otros colaboradores que no trabajen directamente con la ingeniería de los problemas. 6.1.2. ESTRUCTURA DEL MODELO DE SIMULACIÓN EN EL INSTRUCCIONES PARA LA PROGRAMACIÓN DEL MODELO. PAQUETE: Es interactivo, es decir, no siempre se requiere crear código, o definir variables de forma explícita. Para muchos usos, solo es necesario usar instrucciones sencillas y obtener la respuesta inmediatamente. También permite modificar la instrucción fácilmente para ver otros escenarios a través de pocas instrucciones. Sin embargo, también es flexible, permitiendo crear programas a través de un lenguaje de alto nivel, más concentrado en lo que se desea resolver que en los detalles profundos de la ingeniería de software. Es compatible con una gran cantidad de software utilizado ampliamente en los ámbitos científicos y técnicos: puede interactuar con hojas de Microsoft Excel, software elaborado usando C++, Fortran y otros Posee una gran cantidad de herramientas, llamadas Toolboxes, que pueden ser usadas de forma gráfica para resolver problemas de ingeniería avanzada, como lógica difusa, redes neuronales, algoritmos genéticos, optimización numérica, machine learning, procesamiento de imágenes y video, control de procesos, entre muchos otros . Permite elaborar programas y aplicaciones que pueden ejecutarse en cualquier computadora, y más relevante en los tiempos actuales, en cualquier dispositivo, puesto que cuenta con interfaces para trabajar con dispositivos móviles, hardware industrial, microprocesadores y más. SIMULACIÓN 6.2. EJEMPLOS DE SIMULACIÓN EN EL PAQUETE DESCRITO. 6.2.1. DESCRIPCIÓN ESCRITA. Las funciones de importación y exportación de datos brindan acceso a datos provenientes de archivos, otras aplicaciones, servicios web y dispositivos externos. Es posible leer formatos de archivos comunes como hojas de cálculo de Microsoft Excel, texto, imágenes, audio, video y formatos de datos científicos. Las funciones de E/S de archivos de bajo nivel, permiten trabar con archivos de datos en cualquier formato. 6.2.2. PROGRAMACIÓN. El uso de MATLAB es más eficiente cuando sus algoritmos se diseñan en términos de matrices y vectores, puesto que es un programa de cálculo numérico orientado a matrices. 6.2.3. EXPERIMENTACIÓN CON VARIAS CONFIGURACIONES POSIBLES DEL SISTEMA SIMULADO. A continuación, algunas de las funciones especiales que contiene MATLAB: • • • • • • • • 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, Toeplits, Vandermonde, Hadamard, etc. Partes reales, imaginarias y complejas conjugadas. Funciones trigonométricas y de potencias. Algebra lineal numérica Valores propios y Valores propios y descomposición de matrices. descomposición de matrices. Funciones generales de evaluación de matrices. Determinantes, normas, rangos, etc. Matrices inversas y factorización de matrices. Matriz exponencial, Matriz exponencial, logarítmica y raíces cuadradas SIMULACIÓN • • • • • • • Polinomios e interpolación. Interpolación 1D y 2D. 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. de fase. Funciones max, min, sum, mean y otras funciones de estadística básica. Operaciones algebraicas y lógicas. • Suma, resta, multiplicación, división y potencias de matrices. • Matriz transpuesta. • 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. 6.3. VALIDACIÓN. SIMULACIÓN 6.3.1. INTERPRETACIÓN DE LOS INFORMES DE SALIDA. A fin de obtener el usuario un resultado dispuesto por el programa de la manera dese por el programa de la manera deseada (ya sea texto, un gráfico 3D, 2D, simulación en base a parámetros o tablas de datos) es necesario ordenar correctamente las disposiciones necesarias y asignar los elementos necesarios para que opere y finalmente nos devuelva la información requerida. Algunos ejemplos de impresión de resultados y su programación en el software. SIMULACIÓN De igual manera los resultados pueden mostrarse de forma gráfica con opción de personalización. 6.3.2. JUICIOS SOBRE LOS RESULTADOS REPORTADOS. Como se mencionará a continuación hay dos tipos principales de trabajo que se deben implementar según los intereses y la parte esencial que se utilizara del programa, también el nivel de entendimiento del funcionamiento que se tiene. SIMULACIÓN 6.4. CONCLUSIÓN. 6.4.1. COMPARACIÓN ENTRE LAS CONFIGURACIONES SIMULADAS. Como se mencionará a continuación hay dos tipos principales de trabajo que se deben implementar según los intereses y la parte esencial que se utilizara del programa, también el nivel de entendimiento del funcionamiento que se tiene. 6.4.2. SELECCIÓN DE LA MEJOR CONFIGURACIÓN. En la optimización basada en problemas, se crean variables de optimización, expresiones de estas variables que representan el objetivo y las restricciones, y se resuelve el problema utilizando SOLVER. Consulte para elegir entre la optimización basada en problemas y la optimización basada en solucionador, elija primero el enfoque basado en problemas o basado en Solver. El primero tiene como características: • Fácil de crear y hacer debug • No óptimo para solución de ecuaciones o de no lineales • Representación de objetivo y restricciones simbólicamente • Tiempo de solución más largo debido a que maneja traducción interna Mientras que el basado en Solver: • Difícil de crear y hacer debug • Representación de objetivo y restricciones como funciones o matrices • Tiempo de solución más corto ya que no necesita traducir 6.4.3. RECOMENDACIONES PARA LA IMPLANTACIÓN. Escribe tus programas lo más simple y directo posible. Si trabajas con un compilador, ajusta sus opciones para que arroje la mayor cantidad de errores y advertencias posibles al compilar, de ese modo, tu aplicación tendrá menores chances de obtener errores aleatorios. En base a lo anterior, revisa cada mensaje para tomar las medidas pertinentes. Todo proceso debe ser previamente comentado, explicando el propósito, funcionamiento completo y el resultado esperado. Dentro de las funciones definidas, establece un espaciado o que resalte la estructura funcional de la aplicación y facilite SIMULACIÓN la lectura al programador al que le corresponda analizar el código. Por lo general, se usa un nivel de indentación por cada bloque de código (sentencias condicionales y bucles son consideradas como bloques de código embebido dentro de otro, por lo que se recomienda la indentación), ésta indentación corresponde a una sangría que comúnmente tiene el valor de una tabulación (tecla Tab) o bien tres o cuatro espacios. Se recomienda usar nombres de variables que permitan saber de forma intuitiva cual es el dato que se almacena en cada variable. Adicionalmente se recomienda nombres compuestos para las variables remplazando en espacio en blanco por el guion bajo. A la programación en Matlab se recomienda siempre que sea posible usar las funciones vectoriales en lugar de hacer cálculos escalares repetitivos. Con respecto específicamente a la programación en Matlab se recomienda siempre que sea posible crear los vectores y matrices a través de las funciones destinadas para este fin, en lugar de añadirles elementos uno por uno a través de los ciclos. SIMULACIÓN FUENTES DE INFORMACIÓN CONSULTADAS. 1. 2. 3. Descripción del producto MATLAB https://es.mathworks.com/ Recuperado de: https://es.mathworks.com/help/matlab/learn_matlab/product-description.html Simulación en PROMODEL https://es.slideshare.net/ Recuperado de: https://es.slideshare.net/Tensor/simulacin-en-promodel-clase-04 Programa de cómputo especial para simulación https://es.scribd.com/ Recuperado de: https://es.scribd.com/document/497534582/InvestigacionUnidad-6-Programa-de-Computo-Especial-Para-Simulacion