Computación Científica

Información Básica

  • Créditos: 3
  • Horas de trabajo acompañado: 5 / semana (3 horas clase, 2 horas taller)
  • Horas de trabajo independiente: 4 / semana
  • Pre-requisitos: Programación Orientada a Objetos, Cinemática y Dinámica
  • Tipo de curso: Núcleo de Formación Fundamental.

Descripción del Curso

A la computación científica le compete el diseño y análisis de algoritmos para resolver problemas matemáticos que surgen en la ciencia y la ingeniería; combina la simulación computacional, la visualización científica, el modelamiento matemático, la programación, las redes de computadoras, el diseño de bases de datos, la computación simbólica y la computación de alto desempeño con varias disciplinas. Esta interacción entre disciplinas ha provocado el surgimiento de muchos subcampos, como biología computacional, química computacional, mecánica computacional, electromagnetismo computacional y sociología computacional. Esta área de la computación ofrece exposición a conceptos y técnicas, incluyendo precisión de la representación numérica, análisis de error, técnicas numéricas, arquitecturas y algoritmos paralelos, modelamiento y simulación, visualización de información, ingeniería de software, y optimización.

Objetivos

Al finalizar el curso los participantes podrán:

  1. Explicar el concepto de modelamiento y abstracción que permiten el uso de la máquina para resolver problemas
  2. Explicar y dar ejemplos de los beneficios de la simulación y modelamiento
  3. Comprender las relaciones entre modelamiento y simulación
  4. Construir (crear) modelos matemáticos sencillos y formales de situaciones del mundo real, y lo usa en simulación
  5. Aplicar técnicas de modelamiento y simulación en un rango amplio de áreas
  6. Verificar y validar los resultados de una simulación
  7. Describir diferentes alternativas para validar modelos
  8. Comprender las fuentes del error numérico, la precisión de la máquina, y la inexactitud de las aproximaciones computacionales
  9. Implementar algoritmos que permiten aproximar funciones e interpolar datos.
  10. Implementar algoritmos para la solución numérica de derivadas e integrales.
  11. Implementar algoritmos para la solución numérica de ecuaciones diferenciales.
  12. Crear representaciones gráficas adecuadas para la presentación de los resultados de simulación
  13. Usar y comparar APIs y herramientas para crear representaciones visuales de datos.
  14. Analizar y seleccionar técnicas de visualización para problemas específicos
  15. Extrae información relevante de imagenes
  16. Distinguir el uso de recursos computacionales para una respuesta rápida de la administración eficiente de acceso a recursos compartidos
  17. Reconocer constructos que permiten coordinar cómputos simultáneos múltiples
  18. Explicar las diferencias entre memoria compartida y distribuida
  19. Caracterizar las tareas de máquinas SIMD
  20. Describir las ventajas y limitaciones de GPUs versus CPUs * Ítem de lista desordenada

Se desarrollan competencias en

  • Python (avanzado)
  • MatLab (avanzado)
  • Methamatica (intermedio)
  • Mapple (intermedio)
  • OpenCL en C++ (básico)
  • CUDA (básico)
  • Visual Studio (intermedio)
  • Latex (intermedio)

Contenido

Capítulo 1: Modelamiento y simulación

Sesión Horas teóricas Prácticas acompañadas Temas Profundidad Bibliografía
1 3 Modelo como abstracción de sistemas reales y Simulación como modelamiento dinámico. Propósito y compromisos al modelar y simular Familiaridad []
2 2 Presentación de casos de aplicación de simulación en compañias reconocidas Familiaridad []
3 3 El proceso de la simulación: identificación de características, simplificación, y validación Uso []
4 2 Práctica 1.1. Experimento en clase con resortes y péndulos. Modelamiento Uso []
5 3 Evaluación, validación y verificación de modelos y simulaciones Familiaridad []
6 2 Práctica 1.2. Experimento en clase con resortes y péndulos. Resultados Uso []
7 3 Áreas de aplicación: salud, economía, planeación, ciencias e ingeniería. Familiaridad []
8 2 Presentación de propuestas de proyecto de semestre Uso []

Total de Horas: 20.

Sesión Horas de trabajo independiente Temas Objetivos
1 2 Investigación, lectura y preparación de diapositivas sobre Casos de Aplicación. [1, 2, 3]
3-6 6 Análisis de resultados y preparación de informe práctica 1 [3, 4, 6]
7-8 4 Proyecto: Investigación, lectura y preparación de diapositivas e informe de propuesta de proyecto. [2, 5, 7]

Total de Horas: 12

Capítulo 2: Análisis Numérico

Sesión Horas teóricas Prácticas acompañadas Temas Profundidad Bibliografía
9 3 Error por truncamiento y redondeo; Sensibilidad, condicionamiento, estabilidad y convergencia Familiaridad [ ]
10 2 Práctica 2.1. Fijo vs. Flotante; Algoritmos para evaluación de polinomio Uso [ ]
11 3 Sistemas de Ecuaciones lineales Familiaridad [ ]
12 2 Práctica 2.2. Solución del sistema Ax=b. Sensibilidad y Condicionamiento Uso [ ]
13 3 Interpolación y aproximación: Mínimos cuadrados, e Interpolación polinomial Uso [ ]
14 2 Práctica 3.1. Ajuste de datos experimentales Uso [ ]
15 3 Diferenciación numérica: Polinomial y Diferencias Finitas Uso [ ]
16 2 Práctica 3.2. Derivada de función exponencial Uso [ ]
17 3 Integración numérica: Fórmulas de Newton-Cotes, Cuadratura Uso [ ]
18 2 Práctica 3.3. Integral de función exponencial Uso [ ]
19 3 Ecuaciones Diferenciales Ordinarias: Problemas de valor inicial (Métodos multipaso, Métodos implícitos, Métodos Runge-Kutta) Uso [ ]
20 2 Práctica 4.1. Solución del problema df/dt = -alpha.f Evaluación [ ]
21 3 Ecuaciones Diferenciales Ordinarias: Problema de valores de frontera (Métodos de disparo, Métodos de Diferencias Finitas, Métodos de Elementos Finitos) Uso [ ]
22 2 Práctica 4.2. Solución de problema físico unidimensional (oscilador, cuerda, pozo cuántico). Modos permitidos. Evaluación [ ]

Total de Horas: 35.

Sesión Horas de trabajo independiente Temas Objetivos
9 2 Proyecto: Análisis de implementaciones numéricas para el proyecto. Borrador Informe Parcial [4, 5, 6]
10, 12 7 Análisis de resultados y preparación de informe práctica 2 [4, 8]
14, 16, 18 6 Análisis de resultados y preparación de informe práctica 3 [4, 9, 10]
20, 22 8 Análisis de resultados y preparación de informe práctica 4 [4, 5, 6, 11]
11, 13, 15, 17, 19 10 Proyecto: Implementación proyecto [4, 5, 6]
21 2 Proyecto: Correcciones a implemetaciones del proyecto [4, 5, 6]

Total de Horas: 35

Capítulo 3: Visualización interactiva

Sesión Horas teóricas Prácticas acompañadas Temas Profundidad Bibliografía
23 3 Principios de visualización de datos; Algoritmos de graficación y visualización Uso y Evaluación []
24 2 Uso de APIs para construir interfaces de usuario adecuadas, económicas e intuitivas. Uso y Evaluación []
25 3 Técnicas de procesamiento de imágenes Uso []
26 2 Práctica 5: Extracción de información de una imagen Uso []

Total de Horas: 10.

Sesión Horas de trabajo independiente Temas Objetivos
23 2 Proyecto: Análisis de resultados de simulación del proyecto. Evaluación, validación y verificación. Elaboración de Informe Parcial. [4, 5, 6]
24 2 Proyecto: Preparación de interfaz de proyecto. Borrador informe final [12, 13, 14]
26 3 Análisis de resultados y preparación de informe práctica 5. [14, 15]

Total de Horas: 7

Capítulo 4: Computación paralela

Sesión Horas teóricas Prácticas acompañadas Temas Profundidad Bibliografía
27 3 Múltiples computaciones simultáneas; Paralelismo versus concurrencia Familiaridad []
28 2 Medición del uso y acceso a recursos de computo y memoria Uso y Evaluación []
27 3 Memoria compartida versus distribuida Familiaridad []
28 2 Coordinación de cómputos simultáneos múltiples Uso []
27 3 Procesamiento vectorial (SIMD); Co-procesamiento (GPU); Topologías y agrupamientos Familiaridad y Uso []
28 2 Práctica 5: CPU vs GPU. Casos de aplicación en análisis de imagenes Uso y Evaluación []

Total de Horas: 15.

Sesión Horas de trabajo independiente Temas Objetivos
28 2 Proyecto: Verificación y correcciones de interfaz de usuario. Adelanto Informe Final. [12, 13, 14]
30 2 Proyecto: Análisis de necesidades de recursos de cómputo en el proyecto. Adelanto Informe final. [12, 13, 14]
31 2 Proyecto: Presentación de proyecto de semestre e informe final. [12, 13, 14]
32 4 Análisis de resultados y preparación de informe práctica 5 [14, 15, 20]

Total de Horas: 10

Bibliografía

  1. Terrence J. Akai. “Applied numerical methods for engineers” Wiley. 1994. 620.0015194
  2. Michael Heath “Scientific Computing, an introductory survey” McGraw-Hill. 1997.
  3. Lloyd N. Trefethen, David Bau III. “Numerical Linear Algebra” SIAM. 1997
  4. Richard Burden, and Douglas Faires “Análisis numérico” Thomson Ed. 2001. 615.4
  5. Gerald Curtis “Análisis Numérico” alfaomega 1997. 519.4
  6. Gerald Curtis, Patrick Wheatley “Análisis Numérico con aplicaciones” Pearson 2000. 519.4
  7. W. Allen Smith “Análisis Numérico” Prentice Hall. 1988. 519.4
  8. Jonh H. Mathews, Kurtis D. Fink “Métodos Numéricos con Matlab” Pearson 2000.
  9. Timothy Sauer “Análisis Numérico” Pearson 2013.

Instalaciones

  • Salón de clase con computador y proyector.
  • Laboratorio de Ingeniería de Sistemas y Computación.

Material de este semestre