You are on page 1of 22

FSICA

COMPUTACIONAL
Csar Guerra
cguerra@pucp.edu.pe

Qu es la Fsica Computacional?
Procesar, analizar y mostrar grandes cantidades de datos de

las mediciones. Ej.: Anlisis de datos en aceleradores de


partculas, el anlisis de imgenes astronmicas.
Solucin numrica de ecuaciones que no pueden lograrse

mediante tcnicas analticas. Ej.: Ecuacin de Navier Stokes,


ecuaciones de campo de Einstein, ecuacin de onda para el
clculo de la estructura electrnica de un material.
Experimentos computacionales: simular fenmenos fsicos

obteniendo informacin sobre el comportamiento del sistema


en diferentes regmenes. Ej.: Simulaciones moleculares de
los materiales, dinmica planetaria y galctica.

Ejemplo: Sistema de Hnon-Heiles


Modelo simple de movimiento estelar en una galaxia. Las

soluciones muestran caos determinstico.

Ejemplo: M-Carbon
Se han diseado nuevos materiales super-duros como el

M-carbon calculando su dureza.


La dureza predicha para el M-carbon es 83.1 GPa, que es
comparable al del diamante 94.4 GPa.
Este trabajo est publicado en: Physical Review Letters
vol. 102, 175506, 2009.

Ejemplo: LHC
El LHC fue diseado para colisionar
protones, de hasta 7 TeV, siendo su
propsito principal examinar la validez y
lmites del Modelo Estndar.

LHC

Procedimiento general
Disear un modelo computacional (algoritmo) para la cuestin

fsica de inters.
Resolver cuestiones como la discretizacin, el anlisis de error,

la estabilidad, la eficiencia, etc.


Implementar el algoritmo en algn lenguaje especializado y

realizar el clculo, o simulacin, etc.


Analizar, visualizar e interpretar los resultados contrastando la

teora y el experimento o simulacin.


Mejorar o extender el modelo computacional.

Programacin: Tipos de dato


En Fsica tratamos con varios tipos de nmeros: enteros,

reales y complejos.
En las computadores los nmeros se especifican mediante un
tipo de dato.
Debido a la restriccin de memoria, hay diferencias
importantes entre los nmeros matemticos y los de una pc.

Programacin: Declaraciones
Usualmente uno puede asignar nombres a las variables y

luego tratarlas como variables aritmticas.


En algunos lenguajes no es necesario declararlas el tipo
de estas variables.
En algunos lenguajes los tipos de dato pueden ser
vectoriales (arreglos) con una aritmtica correspondiente.

Programacin: Estructuras de control


Todo algoritmo se puede implementar usando solo tres
estructuras de control:
Secuencias: Las instrucciones se ejecutan en secuencia.

Tambin conocido como un bloque de instrucciones.


Repeticin: Estas estructuras conocidas genricamente

como bucles repiten un conjunto de instrucciones


mientras cierta condicin se cumpla.
Seleccin: Cambian el curso de un programa en tiempo

de ejecucin dependiendo de condiciones lgicas.

Programacin: Estructuras de alto nivel


Los programas se ensamblan modularmente a partir de

procedimientos (funciones y subrutinas).


En lenguajes orientados a objetos, estos procedimientos

se pueden combinar con datos para formar clases.


Combinaciones de clases forman mdulos en algunos

lenguajes.
Usualmente los procedimientos, clases y mdulos se

organizan en diferentes archivos y contextos.

Programacin: Diagrama de flujo

Ejemplo: Ecuacin cuadrtica

Ejemplo: La raz de A

Presentacin de los programas


Usar comentarios explicativos en el cdigo.
Indentar el cuerpo de cada estructura de control.
Usar nombres de variables que sean auto-explicativas.
Al imprimir, indicar que se esta requiriendo/mostrando.

Unidades y escalamiento
Muchas variables fsicas son o muy pequeas o muy

grandes en el SI y pueden generar desbordamiento.


Una solucin es trabajar en unidades convenientes al

problema en consideracin.
Otra solucin es usar el escalamiento de variables.
Si de todas maneras se desea trabajar en el sistema SI

se pueden obviar las potencias de 10.

Ejemplo: Ley de decaimiento


Consideremos la ecuacin diferencial que nos lleva a la

ley de decaimiento:

donde es la constante de decaimiento. Si inicialmente se


tiene 100 g de una sustancia radioactiva, estimar en
cuanto tiempo la muestra ha desaparecido para los casos:
lambda = 10-19 1/ao y lambda 1023 1/s.

Lenguajes de programacin
Recomendados
Fortran, C, C++ (compilador MinGW)
Java, Python
Mathematica, Matlab, Octave
Otros
http://
en.wikipedia.org/wiki/List_of_programming_languages
http://en.wikipedia.org/wiki/List_of_compilers

Software de anlisis numrico


Recomendados
Numerical Recipes (Fortran, C, C++)
Numpy, Scipy (Python)
Mathematica, Matlab, Octave
Otros
http://
en.wikipedia.org/wiki/List_of_numerical_analysis_software
http://en.wikipedia.org/wiki/List_of_numerical_libraries
http://en.wikipedia.org/wiki/List_of_statistical_packages

Software para generar grficos


Recomendados
Mathematica, Matlab, Octave
Gnuplot, Matplolib (python)
Otros
http://en.wikipedia.org/wiki/List_of_information_graphics_
software

Presentacin de tareas
Enviar sus tareas en un archivo comprimido codigo.zip a

la siguiente direccin cguerra@pucp.edu.pe


La presentacin de los programas y los resultados

obtenidos influirn en la nota.


Las tareas entregadas fuera de fecha tendrn nota cero.
Las tareas son individuales, en caso de fraude la nota

asignada ser cero.

Evaluacin del curso


Se enviarn peridicamente tareas que deber resolver

de manera individual.
Se tomar un examen final del curso, basado en las

tareas y lo desarrollado en clase.


La nota final se calcular tomando el promedio simple de

todas las tareas y el examen final.

Bibliografa
Chapman, Stephen J., Fortran 95/2003 for scientists and

engineers. McGraw-Hill, 2008


Rubin H. Landau, A First Course in Scientific Computing. 1a

edicin, 2005.
Press, William H. Numerical Recipes, The Art of Scientific

Computing, 3a ed. 2007.


Press, William H. Numerical recipes in Fortran 90 University

Press, 1992, 1996

You might also like