Programa del curso CE 3102 Análisis Numérico para Ingeniería Área Académica de Ingeniería en Computadores Licenciatura en Ingeniería en Computadores [Última revisión del programa: 28 de julio de 2018]
I parte: Aspectos relativos al plan de estudios 1 Datos generales Nombre del curso: Análisis Numérico para Ingeniería Código: CE 3102 Tipo de curso: Teórico/Práctico Electivo: No N. o Créditos: 4 N. o horas clase/semana: 4 h N. o horas extraclase/semana: 8 h % de las áreas curriculares: 20 % Matemática 80 % Ciencias de Ingeniería Ubicación en plan de estudios: VI Semestre Requisitos: MA 2105 Ecuaciones Diferenciales EL 3307 Diseño Lógico Correquisitos: No tiene El curso es requisito de: EL 4702 Probabilidad y Estadística Asistencia: Obligatoria Suficiencia: No Posibilidad de reconocimiento: Sí Vigencia del programa: II Semestre 2018 Área de Ing. en Computadores CE 3102 Análisis Numérico para Ingeniería Página 2 de 8
2. Descripción General 3. Objetivos Este curso introduce los métodos numéricos utilizados con más frecuencia en ingeniería. El curso abarca el análisis numérico en la solución de ecuaciones, búsqueda de raíces, optimización, interpolación numérica, diferenciación e integración, solución de ecuaciones diferenciales, y algunos tópicos frecuentemente utilizados de álgebra lineal. Así mismo, el curso introduce algunos aspectos modernos de implementación de algoritmos numéricos para aplicaciones científicas y de ingeniería. El futuro ingeniero o ingeniera en computadores usualmente cumple un rol fundamental en áreas de computación científica, pues su formación tanto en la base tradicional de conocimientos de ingeniería, y su formación en el área de software y de arquitectura de computadores, le permiten manejar tópicos complejos de solución de problemas por medios computacionales. El curso obliga a tratar problemas de otras áreas de la ingeniería con el fin de ejercitar la capacidad de comunicación técnica con profesionales de otras áreas de la ingeniería. El curso presenta herramientas computacionales que brindan una perspectiva de aplicación de métodos teóricos presentados en cursos anteriores del plan de estudios, particularmente de física y matemática. Estas herramientas se utilizarán en cursos más avanzados como bloques funcionales de las propuestas de solución a problemas de ingeniería. El curso busca desarrollar los siguientes atributos de egreso, de acuerdo con la definición de la Agencia Canadiense de Acreditación de Ingenierías (CEAB). Atributo Nivel Conocimiento Base de Ingeniería Matemática (CB) Avanzado Investigación (IN) Medio Análisis de problemas (AP) Medio Al finalizar el curso el alumno será capaz de estudiar y resolver, mediante el uso de algoritmos numéricos y la ayuda del computador, problemas de matemática aplicada en ingeniería. Para ello debe: Objetivo Atrib. Nivel 1. Evaluar la conveniencia en el uso de un cierto método en la solución de un problema numérico específico. 2. Implementar programas de cálculo relacionado con los tópicos estudiados independientemente del lenguaje y de la plataforma computacional disponible. 3. Aplicar conceptos de distintos paradigmas de programación en la solución de problemas numéricos. Nivel de desarrollo de cada atributo: Inicial, InterMedio o Avanzado. CB AP IN CB IN CB AP A M M A M A M Área de Ing. en Computadores CE 3102 Análisis Numérico para Ingeniería Página 3 de 8
4. Contenido y Cronograma Las 16 semanas que abarcan el curso se distribuyen en los siguientes temas: 1. Conceptos básicos de cálculo numérico. (2 Semanas) 1.1. Errores 1.2. Representaciones numéricas y errores de redondeo. 1.3. Series de Taylor y errores de truncamiento. 2. Raíces de ecuaciones. (1 Semana) 2.1. Búsqueda de una raíz 2.1.1 Métodos cerrados (bisección, falsa posición) 2.1.2 Métodos abiertos (punto fijo, Newton-Raphson, secante) 2.1.3 Métodos mixtos (Brent) 2.2. Raíces de polinomios (evaluación, deflación, Müller) 3. Principios de optimización. (1 Semana) 3.1. Optimización unidimensional 3.2. Optimización multidimensional 4. Sistemas de ecuaciones lineales. (2,5 Semanas) 4.1. Métodos directos. 4.2. Método de Gauss, descomposición LU e inversión de matrices. 4.3. Número de condición de matrices. 4.4. Sistemas tridiagonales. 4.5. Descomposición de Cholesky. 4.6. Descomposición QR. 4.7. Métodos iterativos: Gauss-Seidel y Jacobi. Relajación. 4.8. Descomposición en Valores Singulares. 4.9. Seudoinversa de matrices. 5. Interpolación y regresión numérica. (1,5 Semanas) 5.1. Interpolación polinomial (Newton y Lagrange) 5.2. Trazadores (splines lineales, cuadráticos y cúbicos) 5.3. Regresión lineal y polinomial 6. Integración y diferenciación numérica. (1,5 Semanas) 6.1. Fórmulas de Newton-Cotes (Trapecio, Simpson 1/3, y Simpson 3/8) 6.2. Métodos de integración abierta 6.3. Integración de ecuaciones (extrapolación de Richardson y método de Romberg, cuadratura adaptativa) 6.4. Integrales impropias 6.5. Diferenciación numérica de alta precisión. 7. Soluciones de ecuaciones diferenciales. (2 Semanas) 7.1. Ecuaciones diferenciales ordinarias. 7.2. Métodos de Runge-Kutta (Euler, Heun, punto medio, RK generalizado). 7.3. Método de pasos multiples. 7.4. Ecuaciones diferenciales parciales. 7.5. Métodos de diferencias finitas. 7.6. Criterios de estabilidad y convergencia. 8. Eigensistemas. (2 Semanas) Área de Ing. en Computadores CE 3102 Análisis Numérico para Ingeniería Página 4 de 8
8.1. Transformación de Jacobi de matrices simétricas. 8.2. Reducciones de Givens y de Householder. 8.3. Eigenvalores y eigenvectores de una matriz triangular. 8.4. Reducción de una matriz a la forma Hessenberg. 8.5. Algoritmo QR para matrices Hessenberg reales. 8.6. Ejemplo de aplicación: Análisis de componentes principales 9. Aplicaciones. (1,5 Semanas) 9.1. Ingeniería Eléctrica 9.2. Ingeniería Mecánica 9.3. Ingeniería Química 9.4. Ingeniería Física 9.5. Ingeniería Civil 9.6. Ingeniería Médica 9.7. Ingeniería Matemática II parte: Aspectos operativos 5. Metodología El desarrollo del curso se efectuará principalmente por medio de clases magistrales con resolución de ejercicios en clase y en casa. Se realizarán proyectos y tareas teóricas y programadas usando software libre. Las tareas y proyectos serán enfocados en la resolución de problemas de ingeniería aplicada. Se utilizan dos o más de las siguientes plataformas de implementación: plataforma computacional genérica (PC, GNU/Octave) arquitecturas SIMD (Intel SSE, ARM NEON) usando intrinsics. plataforma computacional con múltiples núcleos (OpenMP, Intel TBB) bibliotecas especializadas (IPL, LAPACK) plataforma GPU (OpenCL, Nvidia CUDA) El docente prepara e imparte las lecciones magistrales, y guía ejemplos, preguntas y prácticas en la clase. Además, prepara los enunciados de tareas y proyectos. El/la estudiante debe revisar semanalmente el material tratado en las clases, y debe resolver las tareas y proyectos en los plazos previstos. Además, debe preparar la presentación de aplicaciones de ingeniería con su grupo de trabajo. Los proyectos y algunas tareas se realizan en grupos de tres personas, pero es responsabilidad de cada persona comprender a fondo lo que realizan los Área de Ing. en Computadores CE 3102 Análisis Numérico para Ingeniería Página 5 de 8
otros miembros del grupo. La comprensión de los conceptos a estudiar en cada proyecto se evaluarán de forma individual. Para la realización de actividades programadas (tareas, proyectos, exámenes) el/la estudiante deberá revisar la literatura referente al estilo de programación, que será considerado en la evaluación. Además, se deberán utilizar herramientas de construcción (p. ej. CMake) y de documentación del código (p. ej. Doxygen). 6. Evaluación La evaluación del curso incluye: Tareas 20 % Proyectos 40 % Exposición 10 % Catálogo 5 % Examen Final 25 % Miércoles 21 de noviembre, 2018 Las tareas consisten en ejercicios y problemas a ser resueltos en tiempos relativamente cortos (aproximadamente una semana). Algunas tareas son individuales y otras grupales. Los entregables de las tareas incluyen el código fuente, un archivo de texto con las instrucciones de compilación y ejecución y un documento en formato pdf con las gráficas, fórmulas u otros resultados solicitados en los enunciados. Los proyectos se desarrollan en grupos de tres personas y consisten en problemas que requieren más desarrollo y diseño en su solución que las tareas. Parte de la evaluación de los proyectos incluye la realización de un examen corto individual el día de entrega del proyecto, con preguntas prácticas y de comprensión teórica de la temática desarrollada en el proyecto. La realización de los proyectos incluye siempre un artículo corto (máximo 3 páginas) en formato científico formal. Los proyectos y tareas se deben subir en el tecdigital, en los apartados de evaluación correspondientes y en los plazos previstos. Las entregas tardías se penalizarán con una reducción de 10 % de la nota máxima por día de atraso. A los proyectos o tareas que excedan el plazo de entrega en 5 días o más después de la fecha límite, se les asignará la nota 0. La calificación de los proyectos se asigna al grupo, pero cada grupo debe repartir el total de puntos de forma diferenciada, siguiendo las rúbricas de autoevaluación que se brindarán para tal propósito. La nota asignada a cada estudiante puede variar en un máximo de 10 % sobre la nota asignada por el profesor. Por ejemplo, si un estudiante colabora muy poco con el trabajo, y el profesor asignó un 80 % al trabajo, entonces el grupo puede decidir asignar 90 % a dos de los estudiantes y a quien trabajó muy poco asignar un 60 %. Si algún estudiante no contribuye del todo en los trabajos grupales, los otros miembros del grupo deben reportarlo al profesor, para que sea excluido de la conformación de dicho grupo. Área de Ing. en Computadores CE 3102 Análisis Numérico para Ingeniería Página 6 de 8
Una vez asignada la nota de un proyecto, los estudiantes tienen como máximo una semana para indicar la distribución final de las notas. Si no se reportan notas, se asume la distribución equitativa. La entrega de proyectos se realiza con dos archivos que deben colocarse en actividades separadas para cada uno en el tecdigital: Un archivo en formato zip, tar.gz o tar.bz2, que contenga todos los archivos de GNU/Octave, C/C++, bash, Makefile, CMake etc. que se hayan generado para realizar el proyecto. Se recomienda incluir un archivo para el shell que simplifique la ejecución de su programa, pasando los parámetros necesarios para que el programa funcione directamente. Además, debe incluirse un archivo de texto con las instrucciones de compilación y ejecución (Readme.txt). Un archivo en formato.pdf que contenga el informe en formato de artículo científico de no más de 3 páginas para los proyectos, o los resultados solicitados para las tareas. Interesa evaluar la capacidad de síntesis, análisis y presentación de la información relevante. Los archivos entregados no deben contener archivos objeto u otro tipo de datos que se generen en el proceso de compilación o en la ejecución del programa, de modo que dicho archivo sea lo más pequeño posible. El nombre del archivo debe dejar claro los autores y la tarea o proyecto. Por ejemplo tarea3b juan y jose.tar.gz. El catálogo es un documento que desarrolla cada estudiante individualmente durante todo el semestre. Cada semana, a partir de la primera semana, los estudiantes deben agregar al catálogo los métodos que se revisan en la clase, de modo que toda la información de los métodos sea de fácil acceso: nombre del método, ventajas y desventajas, condiciones de uso, limitaciones, etc. Por lección pueden agregarse no más de 2 páginas al catálogo, por lo que su realización requiere de capacidad de síntesis. El catálogo será revisado por el asistente en al menos seis ocasiones durante el semestre (cada dos semanas aproximadamente). El examen final es individual y evalúa toda la materia del curso. Para este examen podrán ser necesarios los resultados (programas) de los proyectos y tareas del curso. En la exposición final un grupo de estudiantes expone un problema de cualquier rama de ingeniería en donde se utilicen métodos numéricos presentados en el curso. El software utilizado en el curso se encuentra disponible en la distribución 18.04 LTS de (K/L/X)Ubuntu o equivalentes distribuciones usuales de GNU/Linux (Debian, Mint, Fedora, SuSE, etc.). En particular, se utilizarán las siguientes versiones: Área de Ing. en Computadores CE 3102 Análisis Numérico para Ingeniería Página 7 de 8
Programa Versión CMake 3.10.2 g++ 7.3 boost 1.65.1 Octave 4.2.2 OpenCV 3.1 [1, 2, 3, 4, 5] 7. Bibliografía Obligatoria: [1] Steven C. Chapra y Razmond P. Canale. Métodos Numéricos para ingenieros. McGraw Hill, México, sexta edición edición, 2011. Complementaria: [2] William H. Press, Saul A. Teukolsky, William T. Vetterling y Brian P. Flannery. Numerical Recipes. The Art of Scientific Computing. Cambridge University Press, tercera edición edición, 2007. [3] S. Nakamura. Análisis Numérico y Visualización Gráfica con Matlab. Pearson Educación, 2011. [4] R. L. Burden y J. D. Faires. Análisis Numérico. Thomson Learning, México, 2002. [5] Herb Sutter y Andrei Alexandrescu. C++ Coding Standards. 101 Rules, Gudelines, and Best Practices. C++ In-Depth Series. Addison Wesley, 2004. 8. Profesor Dr.-Ing. Pablo Alvarado Moya Correo-e Consulta Maestría y Doctorado en Ingeniería Eléctrica con énfasis en Ingeniería en Computadores, Universidad RWTH-Aachen, Aquisgrán, Alemania. Especialista en procesamiento de imágenes y visión por computador, con experiencia en proyectos de investigación y desarrollo en la académia e industria. palvarado@tec.ac.cr Martes de 1:00pm-2:40pm Jueves de 9:30am-11:10am Foros en tecdigital Consulta virtual Oficina F2-02 Teléfono 2550 2495 URL http://www.ie.tec.ac.cr/palvarado/anpi Área de Ing. en Computadores CE 3102 Análisis Numérico para Ingeniería Página 8 de 8