Física (plan 2002) 2021-1
Séptimo Semestre, Física Computacional
Grupo 8254, 60 lugares. 10 alumnos.
Nota definitiva: para coordinarse en todas las sesiones, obtener acceso al poderoso servidor del curso y todo pueden ingresar al siguiente link (requieren tener telegram): https://t.me/joinchat/DcVg_RzrSp0nGtJaYa7ZAg
El curso se llevará acabo en el lenguaje Rust. Es muy, verdaderamente muy recomendable que ya se tenga cierta noción y familiaridad con lenguajes de programación de bajo nivel como C, C++ o Java. Lenguajes de alto nivel como Python, R o Julia podrían ser más perjudiciales que de ayuda. El curso hace especial énfasis en cómputo de alto rendimiento más que en códigos que por su sencillez no resultan aplicables a casos relevantes.
-
Repaso de Linux
-
Comandos básicos de
shell
/bash
-
shell
scripting
-
Rust
-
Comandos básicos, variables y funciones
-
Entendimiento general del lenguaje (mutabilidad y prestamos)
-
Ingeniería del Software: buenas prácticas (fragmentación de código, nombramiento de variables, comentarios, etc).
-
Programación orientada a objetos: Estructuras, características, instancias de objetos.
-
Uso avanzado del lenguaje (cerraduras, características base, código unsafe).
-
Análisis de algoritmos
-
Complejidad algorítmica espacial/temporal
-
Estructuras de datos: filas, listas, árboles, heaps.
-
Ordenamiento: Bubble sort, merge sort, heap sort, quick sort.
-
Programación dinámica (y divide y vencerás)
-
Métodos numéricos
-
Método de bisección
-
Método de la secante
-
Método de Newton-Raphson
-
Problemas de punto fijo
-
Integración numérica de sistemas dinámicos
-
Problema de la cuadratura
-
Algoritmo de Euler y Leap-Frog
-
Métodos de Runge-Kutta
-
Ejemplos: Ecuaciones de Lotka-Volterra
-
Álgebra lineal computacional
-
El problema maestro: Ax = b
-
Inversión Matricial
-
Solución de matrices triangulares, factorización LU, métodos de Cholesky y Thomas
-
Métodos iterativos (Jacobi y Gauss-Seidel)
-
Estabilidad numérica y análisis de error
-
Aproximación de eigenvalores
-
Transformada de Fourier
-
Números pseudoaleatorios
-
Métodos de "Montecarlo"
-
Integración numérica por métodos estocásticos
-
Muestreo por importancia
-
Aplicaciones en física
-
Método de Relajación (Cálculo de potenciales).
-
Resolución de ecuacion de calor empleando elemento finito.
-
Cálculo del calor específico (Monte Carlo / Dinámica Molecular)
-
Problema de N-Cuerpos con Barnes-Hut
-
Dinámica de fluidos con Gauss-Seidel
La calificación se determinará por medio de una competencia final más una evaluación teórica. Durante el curso habrán tareas que podrán otorgar puntos extra sobre la calficación final, sin embargo, estos puntos sólo se añadirán si la calificación es aprobatoria.