Modelado y simulación: una introducción a la computación científica.
Información general
→ Organiza: Formación Continua.
→ Docente: Dr. Ing. Sergio Preidikman / Dr. Ing. Emmanuel Beltramo.
→ Fecha de Inicio: 6 de agosto de 2024.
→ Fecha de Finalización: 19 de noviembre de 2024.
→ Modalidad de Cursado: Presencial.
→ Lugar: Aula 705, Edificio de Graduados.
→ Duración: 15 semanas de clases.
→ Aranceles: Sin costo para estudiantes de carreras de grado y posgrado de Universidades Públicas Nacionales. $ 150000 para estudiantes de Universidades Privadas y Externos (1 pago).
Destinatarios
El curso está destinado a profesionales y alumnos avanzados de las siguientes carreras: ingeniería mecánica, aeronáutico, civil, electromecánica, electricista y química, licenciatura en matemática, física y química.
Objetivos
Por medio de ejemplos y problemas se intenta lograr lo siguiente:
Desarrollar ojos para lo geométrico. La habilidad para visualizar es muy importante para el científico computacional. Por supuesto, los gráficos en computadoras juegan un tremendo rol en este aspecto, pero las herramientas de visualización que muchos programas ofrecen no hacen obvia la necesidad de razonar en términos geométricos. Resulta muy crítico familiarizarse con senos y cosenos, polígonos y poliedros, métrica y proximidad, etc.
Desarrollar un oído capaz de oír la “explosión combinatoria.” Muchos diseños y problemas de optimización involucran grandes espacios de búsqueda con un número exponencial de posibilidades. Es importante anticipar esta complejidad y tener los medios para manejarlos con heurísticas inteligentes.
Desarrollar un gusto por el azar. La ciencia y la ingeniería están colmadas de procesos que tienen una componente aleatoria. Tener un sentido de la probabilidad y la capacidad de reunir e interpretar las estadísticas con la computadora es vital.
Desarrollar un olfato por la dimensión. La simulación es mucho más intensa computacionalmente en tres dimensiones que en dos — una dura realidad que está mirando a muchos científicos a la cara. Una impresión exacta de cómo las computadoras pueden facilitar la comprensión del mundo físico requiere una apreciación de este punto. Más aun, ser capaz de pensar a nivel de matriz es esencial para un eficaz y alto rendimiento computacional.
Desarrollar un toque por lo que es finito, inexacto, y aproximado. Los errores de redondeo involucran a la aritmética de punto flotante, las pantallas de ordenador son granulares, las derivadas analíticas se aproximan con diferencias finitas divididas, un polinomio se utiliza en lugar de la función seno, y los datos adquiridos en un laboratorio sólo puede ser correctos (con mucha suerte) hasta los tres dígitos significativos. La vida en la ciencia computacional es parecida a esto por lo cual el profesional debe ser lo suficientemente osado como para hacer frente a tales incertidumbres. Un juego constante de piernas es necesario para mantener el balance en la barra de equilibrio que separa lo continuo de discreto.
Programa analítico
Parte I – DE LA FORMULA AL PROGRAMA ¡Solo conéctalo! (Superficie de una esfera: Expresiones aritméticas, asignación, entrada, salida). Corrobora y evalúa (Mínimo de una cuadrática en un intervalo: expresiones booleanas, condicionales).
Parte II – LIMITES Y ERROR Colocando mosaicos sobre un disco (Sumatoria: “The for loop”). Polígonos de adentro y de afuera (Secuencias: “The while loop”). (Automatic Storage Allocation, Variable Arguments Lists, Complex Arrays and Arithmetic).
Parte III – APROXIMACION CON FRACCIONES 22/7ths y Contando… (Aproximación a Pi: “loops” anidados, puntos de referencias). No del todo perfecto (Cocientes de Fibonacci y la Relación de Oro: “More complicated while-loops”).
Parte IV – LO DISCRETO VERSUS LO CONTINUO Conecta los puntos (Funciones continúas a trazado: vectores, gráficos elementales). Del color turquesa al magenta (computación con colores: rgb). Un tercio más un tercio no es igual a dos tercios… (El mundo del punto flotante: inf, NaN). (IEEE Arithmetic, Precedence, Mathematical Functions, Other Data Types, eps, single, double).
Parte V – ABSTRACCION Dándole nueva forma a los rectángulos (Un cuadrado y una raíz: Funciones simples). El odómetro oval (Perímetro de una elipse: Funciones con parámetros de entradas múltiples). El problema de Betsy Ross (Parámetros de diseño: Funciones gráficas).
Parte VI – ALEATORIEDAD Seguridad en números (Simulación de Monte Carlo: Más práctica con expresiones Booleanas). El dado y la brújula (Caminatas aleatorias: Más práctica con “while loops”). El orden a partir del caos (Polígono promedio: Más práctica con gráficos y vectores).
Parte VII – LA SEGUNDA DIMENSION LA SEGUNDA DIMENSION De aquí hasta allá… (Matrices de transición: Matrices de dos dimensiones). Contornos y secciones transversales (Visualización de F(x,y): Trazado de contornos). ¡Deténganse! (Simulación en una red: A(i,j) actualizaciones). (Character Vectors and Arrays, String Arrays, Categorical Arrays, Datetime and Duration Arrays, Tables and Timetables).
Parte VIII – REORDENAMIENTO Negociar (La combinación perfecta: Mas práctica con vectores y subíndices). Magnitud y ubicación (Clasificación: sort).
Parte IX – BUSQUEDA Patrones de proteínas (Búsqueda lineal: Matrices de caracteres). Una guía telefónica con números romanos (Búsqueda binaria: Arreglos de celdas). Cambio de signo (Bisección para encontrar raíces: Funciones como parámetros). (Multidimensional Arrays, Structures and Cell Arrays).
Parte X – PUNTOS, POLIGONOS Y CIRCULOS ¿Cuán distante? (Métrica de la distancia: Estructuras simples). ¿Cercado en dos ocasiones? (Intersección: Estructuras más complicadas, Funciones Booleanas). ¿Imperfecto? (Cercanía en la forma: Práctica con estructuras). (Errors and Assertions, Warnings, Debugging, Pitfalls).
Parte XI – LA SEGUNDA DIMENSION Latitud y luz del día (Adquisición de datos y conversión: Leyendo datos desde un archivo de texto). Del orden de los millones… (Escritura y representación: Creando archivos .dat y archivos .bin).
Parte XII – LA MATRIZ: PARTE II Creando arcoíris privados… (Interpolación lineal y mapeo de color: configuración de matriz fila por fila). Conocido en la esquina (Interpolación bilineal y sombreado: De F(x,y) a F(i,j)). Siete por Cinco… (Digitalización de imágenes: Arreglos de celdas de matrices). Imagínate esto… (Trabajando con archivos de datos de imagen).
Parte XIII – PROCESAMIENTO DE ARCHIVOS ACUSTICOS ¿Qué hora indican las campanas del reloj? (Adquisición y reproducción: wavread, sound, wavwrite). Disca N para escuchar un ruido (Frecuencia y muestreo: Más práctica con vectores). (Timing Code, Vectorization, Accessing Matrices by Column, Preallocating Arrays).
Parte XIV – DIVIDE Y REINA Patrones dentro de otros patrones (Mosaicos recursivos: Funciones recursivas). N y la mitad N (Árboles binarios: Más práctica usando recursión). Buscando problemas (Interpolación adaptativa: Más práctica usando recursión). (Object- Oriented Programming, Max-Plus Algebra Class, Circulant Matrix Class).
Parte XII – OPTIMIZACION La ruta más corta (Explosión combinatoria: Más práctica con matrices). La mejor bicicleta (Funciones objetivo y restricciones: “Loops” anidados más complejos). La órbita más probable (Construcción de modelos: Búsqueda interactiva).