Profesor | Aldo Sayeg Pasos Trejo | lu mi | 15 a 18 |
Ayudante | David Leonardo Galicia Praskauer | ||
Ayudante | Crhistian Alejandro Benítez Abarca |
El curso de “Física Computacional” tiene un estatus ambiguo. Aunque en principio es un curso diseñado para abarcar todos los métodos numéricos que un esudiante de física podría necesitar para atacar problemas interesantes, en la mayoría de los casos los estudiantes no tienen conocimiento alguno de la programación o del cómputo científico, por lo que es necesario introducirlos desde cero a la programación y eso termina abarcando una gran parte del curso.
Durante este curso evaluaremos los conocimientos previos de los alumnos e intaremos que todos tengan los conocimientos necesarios de programación lo más pronto posible para poder cubrir todo el temario. Debido a que la computadora será nuestra herramienta fundamental, el estar familiarizado con el uso básico de la computadora ayudará al alumno durante el curso. Todo el curso será impartido de manera remota.
Aunque dedicaremos el primer bloque de temas del curso a una breve introducción a la programación y la computación, es preferible que los alumnos cuenten con nociones básicas de programación en cualquier lenguaje (preferentemente en Julia). Si se desea aprender preliminarmente, pueden consultar la referencias [7,8].
Más aún, los alumnos deben de tener claras las nociones teóricas de los temas matemáticos que se verán: cálculo diferencial e integral, álgebra lineal, ecuaciones diferenciales ordinarias y ecuaciones diferenciales parciales. Para los alumnos que aún no conozcan el tema de ecuaciones diferenciales parciales, pueden consultar las referencias [19,20,21].
Introducción a la programación y a las ciencias de la computación (12 horas)
Composición de una computadora y representación de la información.
Programación básica con estructuras de control y ciclos.
Graficación y cómputo científico.
Introducción a los algoritmos y complejidad computacional.
Introducción al análisis numérico (15 horas)
Diferenciación numérica.
Ecuaciones trascendentales.
Optimización.
Interpolación
Integración numérica.
Álgebra Lineal Numérica (9 horas)
El problema Ax = b y sus equivalencias.
Eliminación Gaussiana y Descomposición LU.
Métodos iterativos.
Introducción a los métodos para valores y vectores propios.
Ecuaciones diferenciales ordinarias (18 horas)
Método de Euler.
Métodos de Runge-Kutta y otros métodos explícitos.
Métodos implícitos.
Aplicaciones en mecánica clásica.
Problemas de valores a la frontera.
Aplicaciones en mecánica cuántica.
Método de Verlet y otros métodos simplécticos.
Ecuaciones diferenciales parciales (18 horas)
Ecuación de difusión.
Ecuación de Poisson.
Ecuación de onda.
Aplicaciones en electrostática y acústica.
Introducción a los métodos de Monte Carlo (12 horas)
Introducción a la Probabilidad.
Generación de números aleatorios.
Integración de Monte Carlo.
Caminatas aleatorias.
Movimiento Browniano y ecuación de Langevin.
Los porcentajes de evaluación del curso serán los siguientes:
80 % Tareas
20 % Proyecto final
El curso se impartirá de manera remota. Cada semana habrá máximo 2 clases que consistirán en un video pregrabado, de duración entre 1 y 2 horas, y una lista pequeña de ejercicios correspondientes a los temas del video. Adicional a esto, habrá una videollamada semanales para preguntar y resolver dudas. Se entregarán aproximadamente 8 o 9 tareas, las cuales consistirán en una selección arbitraria de los ejercicios de los videos.
La respuesta a la gran mayoría de los ejercicios debe de entregarse como un programa a ejecutarse. Toda la parte de programación del curso será enseñada en el lenguaje Julia por ser el lenguaje de alto nivel con mayor velocidad. Sin embargo, los alumnos no están obligados a utilizar este lenguaje y pueden escoger de entre los siguientes también: Python, Matlab, C y Fortran. De escogerse trabajar con otro lenguaje de programación diferente a Julia, el alumno sera totalmente responsable de encontrar equivalencias de las herramientas de Julia utilizadas para su propio lenguaje.
Usaremos Julia dentro del editor web Jupyter Lab. Para revisar como hacer una instalación del intérprete de Julia y de dicho programa, pueden revisar este video
El acceso al material de las clases, los anuncios de la clase y la entrega de las tareas se hará mediante un blog en la plataforma Google Classroom, por lo que es indispensable que el alumno cuente con un correo manejado por Google (@gmail.com,@ciencias.unam.mx,etc)
. Es responsabilidad del alumno conseguir acceso al blog y estar al pendiente de las asignaciones. También se creará una sala de chat en la plataforma Slack para estar en constante comunicación.
Aunque la asistencia a las videollamadas no es obligatoria, la participación y el involucramiento de los alumnos es muy importante para lograr comprender a fondo todo el contenido del curso, en particular por el caracter autodidacta que habrá. Se le invita a los alumnos a expresar todas sus dudas tanto en las videollamadas como por correo o por chat. La participación del alumno se tomará en cuenta para realizar cualquier ajuste en su calificación final, así como para consideracionees en extensiones de fechas de entrega.