Encabezado Facultad de Ciencias
Presentación

Física (plan 2002) 2024-1

Séptimo Semestre, Física Computacional

Grupo 8418, 40 lugares. 40 alumnos.
Profesor Sergio Antonio Alcalá Corona ma ju 7 a 10 Laboratorio de Enseñanza en Cómputo en Física
Ayudante Daniel Rojo Mata
Ayudante Rodrígo Vega Vilchis
 

El objetivo principal de este curso es que aprendan mucho, pero sobre todo que lo disfruten.

Objetivos particulares del curso:

Este curso se basará en la exposición teórica de los principales modelos y métodos usados en la física computacional, así como en la exploración e implementación de dichos métodos de forma computacional mediante un lenguaje de programación (Python, Julia o cualquier otro).

Descripción General del curso.

El curso funcionará como un taller teórico-práctico donde los estudiantes adquieran y apliquen los conocimientos del mismo. La herramienta principal serán cuadernos (notebooks) de Jupyter así como la plataforma Jupyter Lab y Google Colab. El lenguaje de programación principal que se abordará en el curso será Python, sin embrago es posible usar cualquiqer otro lenguaje con el cual el estudiante esté familiarizado. También es posible que se exponga la sintaxis y uso del lenguaje Julia.
Durante el curso se desarrollarán actividades semanales: tareas con ejercios a resolver, o bien prácticas entregables en las que se plantea resolver computacionalmente problemas planteados en clase. Dado lo anterior, un requerimiento necesario para el curso será poder manejar un leguaje e programación (de preferencia Python, pero no indispensable).

Las clases comenzarán el martes 15 de agosto de 2023. La reinscripción a este grupo (para estudiantes que recursarán la materia) será posible conforme a los tiempos que determiné la coordinación de la licenciatura y la división de estudios profesionales de la Facultad.

Pre-requistos (sugeridos, más no obligatorios):

  • Álgebra Lineal
  • Ecuaciones Diferenciales
  • Uso de Linux/UNIX
  • Python (o cualquier lenguaje de programación de alto nivel).
  • Herramientas de graficación (Pylab, GNUPlot o equivalente)

Metodología del curso.

Las sesiones se efectuarán en el horario de la clase que se encuentra publicado en la pagina de la facultad:
Martes y Jueves de 7:00 a 10:00 hrs.

Dichas sesiones serán teórico-practicas, y semanalmente se desarrollará una práctica que consistirá en la solución de algunos ejercicios, la cual se iniciará en clase pero se terminarán fuera de ésta (a modo de tarea). En general, la entrega de dichas prácticas (resueltas) serán a la semana siguiente.
El curso se apoyara en algunas herramientas de Google (for education), bajo la suite de la Facultad de Ciencias (@ciencias.unam.mx). Por lo que será un requerimiento necesario para el curso contar con una cuenta de correo @ciencias.unam.mx o al menos tener una cuenta de correo de Google (Gmail). Se creará un aula virtual en la plataforma Google Classroom, en la que se colocará el material de las clases y cualquier otra información relevante sobre el curso. Ahí, también se colocarán las actividades a entregar (tareas, practicas, etc.) y se usará dicha plataforma para resolver dudas sobre las mismas. El código de acceso (a Google Classroom) será proporcionado via correo electrónico.
Así también se creará un repositorio de Github con los cuadernos de Jupyter que contendrán el código expuesto en la clase. Se tratará en lo posible que estos sean accesibles en linea y fuera del horario de clase. Para la logística y comunicarnos en el curso usaremos el correo electrónico y un canal de Telegram.

Si algún estudiante inscrito no proporciona su correo electrónico, se le enviará la información al correo electrónico el proporcionado por Servicios Escolares de la Facultad.

Asimismo, el profesor y el ayudante estarán disponibles en los canales de comunicación para proporcionar ayuda con dudas que puedan surgir. De ser necesario y dependiendo de la disponibilidad del ayudante y profesor, se pueden plantear sesiones extra (en algún horarios extraordinario) para resolver dudas.

Temario

El temario oficial de la materia lo pueden encontrar en aqui. Sin embargo, la presente es una propuesta acorde a las necesidades de cómputo científico actuales. Es posible que la exposición de dicho temario no se haga de forma lineal. Así también el temario, podría tener algunas variaciones durante el transcurso del semestre.

0. Programación para la física computacional

0.1. Fundamentos de programación

0.1.1. Variables y tipos de datos
0.1.2. Estructuras de control y funciones
0.1.3. Bibliotecas para cómputo científico y numérico

0.2. Errores numéricos (redondeo, discretización, etc.)

0.3. Optimización y eficiencia de cómputo

1. Métodos numéricos básicos en física computacional

1.1. Cálculo numérico (Diferenciación e integración numérica).

1.1.1. Integración numérica.

1.1.1.1. Integración por método del trapecio.
1.1.1.2. Regla de Simpson
1.1.1.3. Método de Romberg.
1.1.1.4. Métodos de integración de orden superior

1.1.2. Diferenciación numérica.
1.1.2.1. Diferencias centrales, hacia adelante y hacia atrás.
1.1.2.2. Aproximaciones de orden superior para derivadas.
1.1.2.3. Segundas derivadas y Derivadas parciales.

1.2. Interpolación y ajuste de curvas

1.2.1. Series de Taylor y series de Fourier.
1.2.2. Interpolación de Lagrange.
1.2.3. Interpolación iterada de Neville
1.2.4. Diferencias divididas.
1.2.5. Método de splines.

2. Solución y Análisis Numérico de Problemas Matriciales

2.1. Manejo de Vectores y matrices.

2.1.1. Álgebra matricial (Suma, Multiplicación, etc)

2.2. Solución numérica de sistemas de ecuaciones lineales.

2.2.1. Eliminación gaussiana
2.2.2. Pivoteo
2.2.3. Descomposición LU
2.2.4. Cálculo de la inversa de una matriz
2.2.5. Matrices tridiagonales y en bandas.

2.3. Valores propios y vectores propios

2.3.1. Problemas clásicos y cuánticos de valores propios.
2.3.2. Cálculo de valores y vectores propios.
2.3.3. Métodos iterativos
2.3.4. Solución del problema de eigenvalores.
2.3.5. Método de potencias
2.3.6. Solución al problema de la cuerda vibrante
2.3.7. Solución a la ecuación de Schrödinger estacionaria ( problema del pozo de potencial)
2.3.8. Problemas de valor propio y ecuaciones con valores a la frontera.

2.4. Solución de ecuaciones algebraicas no lineales

2.4.1. El método de relajación
2.4.2. Tasa de convergencia del método de relajación.
2.4.3. Método de relajación para dos o más variables.
2.4.4. Método de bisección.
2.4.5. Búsqueda binaria.
2.4.6. Método de Newton.
2.4.7. El método de la secante
2.4.8. Método de Newton para dos o más variables

2.5. Máximos y mínimos de funciones

2.5.1. Búsqueda de proporción áurea.
2.5.2. El método de Gauss-Newton y el gradiente descendente
2.6. ** Introducción a cómputo en paralelo (tema opcional)

3. Métodos de solución numérica para ecuaciones diferenciales ordinarias (EDO) y sistemas de EDO.

3.1. Solución numérica de ecuaciones diferenciales ordinarias: el problema del valor inicial.

3.1.1. Discretización de ecuaciones diferenciales.
3.1.2. Método de Euler.
3.1.3. Métodos de Runge-Kutta.

3.2. Ecuaciones diferenciales de orden superior.

3.2.1. Ecuaciones diferenciales de segundo orden. (Pendulo simple)
3.2.2. Sistemas de Ecuaciones Diferenciales (sistema de Lotka-Volterra)
3.2.3. Sistemas dinámicos caóticos (Péndulo doble y ecuaciones de Lorenz)

3.3. Otros métodos para ecuaciones diferenciales.

3.3.1. El método Verlet.
3.3.2. El método de Bulirsch-Stoer

3.4. Problemas de valores en la frontera.

3.4.1. El método de disparo.
3.4.2. El método de relajación
3.4.3. Problemas de valores propios.

4. Introducción a la Solución numérica de ecuaciones diferenciales parciales en 1D y 2D

4.1. Solución de problemas con condiciones de frontera.

4.1.1. Método de diferencias finitas.
4.1.2. Ecuaciones de Laplace y de Poisson.
4.1.3. Método de relajación.

4.2. Solución de problemas de valor inicial

4.2.1. Método de espacio centrado en tiempo hacia adelante (FTCS)
4.2.2. Ecuación de Difusión y ecuación de Calor
4.2.3. Ecuación de Onda y estabilidad numérica
4.2.4. El método de Crank-Nicolson
4.2.5. El método espectral de Fourier
4.2.6. Ecuación de Schrodinger

5. Introducción a la simulación y modelación computacional de sistemas físicos

5.1. Procesos aleatorios

5.1.1. Generadores y Semillas de números aleatorios
5.1.2. Números aleatorios no uniformes

5.2. Concepto y aplicaciones de métodos de Monte Carlo

5.2.1. Integración de MonteCarlo
5.2.2. Simulación de Monte Carlo y nociones de Dinámica Molecular.
5.2.3. Aplicaciones en física estadística y problemas de física de interés actual.
5.2.4. Algoritmo de templado simulado

6. Introducción a la Ciencia de Datos e Inteligencia Artificial (si el tiempo lo permite)

6.1. Introducción al Análisis de datos

6.1.1. Manejo de fuentes de datos heterogéneas
6.1.2. Análisis de grandes volúmenes de datos
6.1.3. Uso de Data Frames y la biblioteca pandas

6.2. Introducción al aprendizaje automático

6.2.1. Algoritmos de Aprendizaje supervisado
6.2.1.1. Algoritmos de Clasificación
6.2.1.2. Regresión lineal y métricas de evaluación
6.2.1.3. Regresión logística
6.2.1.4. k-Vecinos más cercanos
6.2.1.5. Máquinas de soporte vectorial
6.2.2. Algoritmos de Aprendizaje no supervisado
6.2.2.1. Métodos de Agrupamiento clustering
6.2.2.2. Análisis de componentes principales
6.2.2.3. Agrupamiento de K-medias
6.2.3. Redes neuronales y algoritmos de aprendizaje
6.2.3.1. Perceptrón multicapa
6.2.3.2. Optimización por descenso de gradiente y retro-propagación
6.2.3.3. Redes neuronales artificiales
6.2.3.4. Redes neuronales convolucionales

6.3. Aplicaciones en física computacional

Bibliografía Principal:

1. M. E. J Newman. Computational Physics. University of Michigan (2013). Libro de texto eje, del curso

2. Burden, R. L., Faires, D. J. Burden, A. M. Análisis numérico. CENGAGE Learning. (2017)
3. Izaac, J., Wang, J. Computational Quantum Mechanics, 1st Edition, Springer Nature, UK (2018).
4. Landau R. H., Paéz M. J., Bordeianu, C. C., Computational Physics, 3rd Edition, Wiley-VCH (2015).
5. Burkov, A. The Hundred-Page Machine Learning Book,1st Edition (2019).
Para el tema de "Introducción a la Ciencia de Datos e Inteligencia Artificial"

Bibliografía complementaria:

6. Chapra S. C. Clough D. E., Applied Numerical Methods with Python for Engineers and Scientists, 1st Edition, McGrawHill Education, USA (2021).
7. Walker, D., Computational Physics, 2nd Edition, Mercury Learning and Inf., USA (2022).
8. Franklin J., Computational Methods for Physics, Cambridge University Press, USA (2013).
9. P. L. DeVries, A first course in Computational Physics, Ed. Wiley, 1994. ISBN: 0-471-54869-3


HORARIO:

Martes y Jueves de 7:00 a 10:00, comenzando el día 15 de agosto.

Primera sesión

La primera sesión del curso se llevará a cabo el día martes 15 de agosto a las 7:00 hrs.
En dicha sesión se abordarán aspectos sobre la forma de trabajo, detalles técnicos, generalidades y la forma de evaluación del curso, así también, se resolverán dudas sobre dichos puntos.

EVALUACIÓN

• Actividades (tareas/prácticas): 40%
• Examenes: 20%
• Proyecto final: 40%
• Participación 10%

El proyecto final se presentará en la primera o segunda vuelta de exámenes. Este consistirá en:
  • Un reporte escrito en LaTeX que contenga la teoría y el planteamiento del problema.
  • Un cuaderno de Jupyter que contenga el código del proyecto.
  • Una exposición ante el grupo.

El proyecto a realizar deberá quedar definido a más tardar 4 semanas antes de la ultima clase. Con el objetivo de que haya suficiente tiempo de trabajarlo. Se exploraran ideas y opciones para estos proyectos, pero este puede ser la resolución de un problema físico o matemático concreto, usando herramientas computacionales.

CONTACTO

Este es el enlace al Google Clasroom del curso:

https://classroom.google.com/c/NjE4MTM2NTA4ODY4?cjc=2onz2w3

Código de clase: 2onz2w3

Cualquier duda y/o comentario, por favor no duden en escribirnos a los siguientes correos:

Rodrigo Vega: rockdrigo6@ciencias.unam.mx


Telegram

o a través del canal de comunicación de Telegram, que se establecerá para comunicación rápida y mensajes importantes del curso.

Este es el enlace: https://t.me/+Cj_Ngc6Cw7dmODAz


Pueden ingresar a Telegram descargando la aplicación en su celular o desde una computadora, ya sea ingresando a web.telegram.org o descargando la aplicación de escritorio disponible en https://desktop.telegram.org/

 


Hecho en México, todos los derechos reservados 2011-2016. Esta página puede ser reproducida con fines no lucrativos, siempre y cuando no se mutile, se cite la fuente completa y su dirección electrónica. De otra forma requiere permiso previo por escrito de la Institución.
Sitio web administrado por la Coordinación de los Servicios de Cómputo de la Facultad de Ciencias. ¿Dudas?, ¿comentarios?. Escribenos. Aviso de privacidad.