Beruflich Dokumente
Kultur Dokumente
Fsica Computacional I
Grado en Fsicas
CONTENIDOS
En este apartado se presenta una relacin de los contenidos concretos del tema.
INTRODUCCIN
Se centra el tema en el contexto del programa, relacionndolo con lo que se ha estudiado
anteriormente. Se introducen los contenidos y las preguntas bsicas que deben plantearse y
que se resolvern a medida que se estudia el captulo.
CONCEPTOS CLAVE
Se enumeran los conceptos clave del tema.
PREGUNTAS DE REPASO
Contiene preguntas que exigen leer y reflexionar sobre el trabajo realizado para preparar el
tema. Ayudan a evaluar la complecin de los objetivos e indican al estudiante su grado de
progreso en cada parte de la asignatura.
MATERIALES
Apuntes de la materia elaborados por el equipo docente para el programa de la asignatura:
Fsica computacional I (2010)
Tema 7. Ajustes
(25 h)
Proyecto de Fsica (20 h) +
computacional en C
II Tema 12. Mtodos Monte Carlo - Lectura de los temas 5,6 7 y 8
de los apuntes y seleccin de un Desarrollo del proyecto siguiendo las pautas indicadas en el tema
tema para realizar el proyecto escogido por el alumno. 55 h
Tema 13. Fractales
Examen final (2 h) 2h
CONTENIDOS
Instalacin y funcionamiento bsico de Linux. Configuracin.
Mantenimiento: repositorios y sistemas de gestin de paquetes.
Instalacin de paquetes adicionales
INTRODUCCIN
En este captulo presentamos nuestras recomendaciones sobre la parte ms
importante de un ordenador: su sistema operativo. En la actualidad la superioridad de
los sistemas de tipo Unix conocidos como Linux est fuera de toda duda, tanto es as
que los sistemas incorporados por los ordenadores Macintosh (el OS X) llevan por
debajo un sistema tipo Unix. Otro ejemplo es la empresa Google, donde por problemas
de seguridad se ha prohibido el uso de ningn tipo de sistema operativo que no sea
Linux u OS X.
El objetivo de este primer tema del curso es orientar a los estudiantes a hacer
una buena eleccin sobre el SO de su mquina, y ofrecerles algunas orientaciones
que les ayuden a ponerse en marcha de manera autnoma. De todas formas, nuestra
asignatura no es como la empresa Google, aqu respetamos la eleccin que cada cual
haga sobre el SO que quiere usar, y ningn sistema operativo est proscrito. Por este
motivo, en la documentacin del curso tambin proporcionaremos instrucciones para
los alumnos que trabajen en un entorno MS Windows.
En un nivel de importancia inferior al sistema operativo, otro componente
fundamental del software con el que se equipa cualquier ordenador es un procesador
de textos. Por limitaciones de tiempo en esta asignatura esta materia no entra en
nuestro temario, pero dada su importancia en la introduccin del curso hemos incluido
algo de informacin sobre los tipos de documentos cientficos ms habituales y sobre
los programas informticos que pueden usarse para generarlos, y junto con esta
informacin tambin transmitimos nuestra recomendacin (LaTeX o LyX). De todas
formas, igual que antes en esta asignatura no imponemos el uso de ningn procesador
de textos en particular, lo nico que de verdad solicitamos es que cualquier documento
que nos enven est en el formato que, hoy por hoy, es el estndar para cualquier tipo
de documento escrito, en PDF. Despus de leer el material suministrado en este
captulo esperamos que el alumno se encuentre orientado hacia lo que es el uso de
ordenadores en Fsica, que es el objetivo de esta asignatura.
CONCEPTOS CLAVE
Este tema es totalmente prctico, ms que asimilar un volumen de teora sobre Linux
lo que se pretende es que el alumno sea capaz de usarlo, en particular debemos
familiarizarnos con:
Funcionamiento bsico del Linux: directorios, usuarios, permisos.
Mantenimiento: repositorios y sistemas de gestin de paquetes.
Uso de gestores tipo yum o apt para la instalacin de paquetes adicionales.
PREGUNTAS DE REPASO
He conseguido instalar el Linux en mi mquina?
Funciona todo a mi gusto?
. . . y para resolver problemas del tipo no consigo que funcione tal cosa:
http://www.google.com
CONTENIDOS
Instalacin y configuracin del Maxima, en lnea de comandos y en
entorno grfico.
Expresiones, operaciones aritmticas, manipulacin algebraica de
expresiones.
Definicin y uso de funciones, vectores y matrices.
INTRODUCCIN
Mxima es un programa gratuito de cdigo abierto que permite
realizar diversos clculos tanto simblicos como numricos. Actualmente
existen paquetes de software ms potentes y de uso ms extendido (como
el Maple o el Mathematica), pero para esta asignatura nos hemos decidido
por el paquete de cdigo abierto. Las ideas generales sobre cmo se usan
este tipo de programas de forma eficiente son comunes a todos ellos, de
modo que esperamos que esta parte de la asignatura sea til en el futuro,
independientemente de cul sea sea el programa de clculo simblico que
se emplee.
CONCEPTOS CLAVE
FSICA COMPUTACIONAL I. GRADO EN FSICAS
1
Instalacin del Maxima, entorno grfico, sesiones. Expresiones en Maxima,
nmeros, funciones, vectores, matrices. Operaciones aritmticas,
manipulacin algebraica.
PREGUNTAS DE REPASO
He realizado correctamente la instalacin?
Soy capaz de abrir y cerrar sesiones salvando el trabajo realizado en un
archivo?
Comprendo cmo funciona la sintaxis del Maxima?
Soy capaz de realizar operaciones bsicas con expresiones simblicas en
Maxima?
S definir y realizar operaciones con vectores y matrices?
CONTENIDOS
Operaciones con vectores y matrices. Cambios de base.
Operaciones con funciones. Lmites integrales, derivadas, frmula de Taylor.
Representaciones grficas.
INTRODUCCIN
Una vez nos hemos familiarizado con el uso del Maxima a nivel elemental, en
estos captulos aprenderemos a trabajar de manera rutinaria con el Maxima usando
las operaciones ms habituales en clculo (integrales y derivadas) y en lgebra
(cambios de base). A medida que vayamos viendo el tipo de trabajo que estos
programas informticos pueden hacer, aprenderemos lo inmensamente tiles que
pueden llegar a ser cuando se sabe cmo usarlos.
Una de las ventajas ms evidentes del uso de programas de clculo simblico
es su habilidad para generar todo tipo de grficas de manera rpida y precisa. En el
pasado el volumen de trabajo necesario para obtener este tipo de informacin era
sencillamente impresionante, en la actualidad es trivial obtener una visualizacin del
comportamiento de una funcin dada. El uso de paquetes informticos como el
Maxima ha revolucionado la forma de trabajar en muchos mbitos de la fsica y las
matemticas. En estos captulos empezaremos a ver por qu.
De todas formas, queremos hacer nfasis una vez ms en que ningn
programa de clculo simblico y/o numrico vale para nada si el usuario no entiende lo
que el programa est haciendo, y la nica forma de entender lo que se hace es
dominar las matemticas que se estn empleando. Lejos de quitar importancia a las
asignaturas tradicionales de matemticas, en esta asignatura queremos transmitir todo
lo contrario, es totalmente fundamental tener un grado de comprensin profundo de
todos los concepto matemticos que se estudian en dichas asignaturas. Si tenemos un
conocimiento claro sobre cmo funcionan las matemticas que estamos empleando, y
un objetivo claro sobre lo que queremos calcular, los paquetes informticos como el
Maxima (o similares) nos permiten realizar en muy pocos minutos clculos y
representaciones grficas que hace algunos aos precisaran muchos meses (a veces
incluso aos) de trabajo.
CONCEPTOS CLAVE
Lmites, derivadas, integrales, vectores, matrices, bases, coordenadas, cambios de
base, frmula de Taylor, representaciones grficas.
PREGUNTAS DE REPASO
S definir una matriz de cambio de base con el Maxima?
S emplear el Maxima para calcular las coordenadas de vectores y matrices en
cualquier otra base a partir de su expresin en la base cannica?
S usar el Maxima para calcular lmites, integrales, derivadas?
Soy capaz de generar la aproximacin de Taylor de orden n a partir de informacin
sobre las n primeras derivadas de una funcin?
S generar grficas en 2D y en 3D?
CONTENIDOS
Solucin analtica y numrica de ecuaciones.
Ajustes.
Ecuaciones diferenciales ordinarias.
INTRODUCCIN
Para completar el material presentado en los captulos precedentes, en estos
ltimos captulos sobre el programa Maxima aprenderemos a usar el Maxima para
realizar programas con operaciones ms complicadas. Para ello usaremos el Maxima
para construir funciones definidas de manera implcita por medio de ecuaciones
algebraicas, trascendentes y/o diferenciales, que resolveremos de manera analtica
cuando sea posible o de manera numrica en caso contrario, y tambin por medio de
ajustes realizados a partir de colecciones de datos experimentales, lo cual es otra de
las ms importantes potencialidades de este tipo de programas informticos. Los
ejercicios que veremos en este captulo nos acercarn definitivamente al tipo de
actividad real que en la prctica es habitual en Fsica.
Dado que en este bloque de captulos nos aproximamos a la potencialidad
(casi) completa de estos programas de clculo, uno de los temas importantes que
tenemos que valorar aqu es la elaboracin de programas de manera clara y eficiente.
La inmensa velocidad con que se desarrolla el mundo de las aplicaciones informticas
(no slo en Fsica y Matemticas) es consecuencia (entre otras cosas) de una serie de
buenas costumbres adoptadas por los programadores. Estas buenas costumbres se
refieren a estilos de programacin claros y bien documentados, que posibilitan que un
programador pueda identificar de manera rpida qu es lo que hace cada parte de un
programa, de modo que inmediatamente lo puede usar y/o modificar, para adaptarlo a
sus necesidades. Esto nos permite aprovecharnos del trabajo ya realizado en el
pasado (unas veces por nosotros mismos, otras veces por otros programadores) lo
cual nos permite avanzar a una velocidad muy superior comparada con la velocidad a
la que avanzaramos si cada vez que tenemos que resolver una ecuacin tuvisemos
que volver a programar desde el principio todos los pasos necesarios para ello. Por
supuesto que esta filosofa de trabajo es aplicable a cualquier tipo de lenguaje de
programacin, en particular al lenguaje C del que trata la segunda parte del curso.
Si esta parte del curso se estudia a fondo, en el futuro le resultar
tremendamente til, incluso a corto plazo, para el estudio de asignaturas como
Mecnica, Mecnica Cuntica, Electromagnetismo, etc.
CONCEPTOS CLAVE
Ecuaciones algebraicas y trascendentes, races nicas y mltiples. Funcin implcita,
funcin inversa. Ajuste por mnimos cuadrados. Ecuaciones diferenciales ordinarias
con condiciones iniciales, solucin numrica de ecuaciones diferenciales ordinarias.
PREGUNTAS DE REPASO
S resolver ecuaciones de manera analtica y numrica con el Maxima?
S definir funciones a partir de relaciones implcitas?
S resolver ecuaciones diferenciales de manera analtica y numrica con el
Maxima?
S definir funciones a partir de relaciones en las que entren ecuaciones
diferenciales ordinarias?
S obtener aproximaciones para ese tipo de funciones a partir de conjuntos de
datos por medio de ajustes o por medio de desarrollos en serie de Taylor?
S emplear el Maxima para que genere una funcin a partir de una definicin en la
que entre una ecuacin (diferencial o no) que haya que resolver de manera numrica?
S definir dicha funcin de tal forma que pueda realizar sobre ella las operaciones
habituales de clculo (integrales, derivadas), y que la pueda visualizar (en 2D o en 3D,
segn el nmero de variables)?
CONTENIDOS
Compiladores de C: descarga e instalacin.
Compilacin, enlazado y ejecucin de programas.
INTRODUCCIN
En este tema se presenta el concepto de programa de ordenador compilado. El
concepto en s es muy sencillo y estamos todos habituados a tratar con ellos (el
programa Maxima y su interfaz grfica, con los que se ha trabajado en la primera parte
del curso, son ejemplos de dos programas de ordenador compilados). Sin embargo,
los pasos lgicos necesarios para llegar desde un lenguaje de programacin (prximo
al lenguaje humano, en cuanto a que se puede leer y escribir) hasta una serie de
instrucciones que pueda interpretar el procesador de un ordenador, requiere una
explicacin: sta es la que se da en este tema, principalmente.
Se comienza motivando el porqu de elegir el lenguaje prximo al humano
llamado C: la flexibilidad, la extensibilidad y la proximidad, a su vez, a la mquina. Lo
siguiente que hay que hacer es tener un compilador de C instalado y, preferiblemente,
un entorno de desarrollo para editar los programas adecuadamente: cmo lograr esto
se explica detalladamente. Por ltimo se explican los pasos de compilacin, enlazado
y carga y ejecucin por el sistema operativo de un programa. Este proceso se explica
tericamente, primero, y luego mediante ejemplos paso a paso que el estudiante
deber reproducir en el entorno de programacin de su eleccin.
PREGUNTAS DE REPASO
He conseguido instalar un compilador de C y un entorno de desarrollo que me
facilite la escritura de los programas del curso?
He logrado reproducir los pasos para compilar el programa Hola mundo?
He entendido bien lo que he hecho? (y lo que ha hecho el compilador?)
CONTENIDOS
Estructura bsica de un programa: la funcin main
Variables: sus tipos, sus valores, operaciones bsicas e impresin de resultados.
Estructuras de control de flujo
Vectores, matrices y punteros
Acceso de lectura y escritura a ficheros de datos (de texto)
Funciones
Estructuras de datos
INTRODUCCIN
El lenguaje C posee una sintaxis bsica que el estudiante debe conocer para
poder escribir sus propios programas. Afortunadamente, despus de las reglas
bsicas de #inclu-sin de archivos de cabecera, definicin de la funcin main, uso
de llaves y puntos y coma, y declaracin y asignacin de variables, todo lo dems se
aprende por prueba y error. Este es el enfoque de este tema, eminentemente prctico,
basado en la reproduccin de muchos programas de ejemplo, de complejidad
creciente, que introducen paso a paso todas las caractersticas del lenguaje que el
estudiante necesitar en este curso (y, posiblemente, en cursos posteriores).
Los tipos de variables son una novedad despus de haber utilizado un lenguaje
dbilmente tipado como el del Maxima. En C toda variable tiene un tipo muy preciso,
y es necesario declarar cul es ste ya que limita el tipo de informacin que puede
albergar (en cantidad y calidad).
Las estructuras de control if. . . else, for, while, do. . .while, switch. . .
case, son estndar de cualquier lenguaje estructurado. Aunque con sintaxis diferente
y algunas sutilezas, se pueden encontrar tambin en el lenguaje del Maxima que el
alumno conoce (y puede resultar interesante indagar sobre ellas, para comparar
ambos lenguajes). Lo mismo sucede con las funciones (bsicas en los lenguajes
funcionales y que le dan su gran versatilidad al C) y las estructuras de datos.
Segn avance en el tema, el estudiante ver que los ejemplos se hacen ms
largos y complejos. Se ha pretendido que todos sean, hasta cierto punto, tiles, sin
quedarse en el simple ejercicio que ilustra la sintaxis. Esto hace que su reproduccin
(escritura con sintaxis correcta, compilacin y, a veces, ejecucin) sea algo ms
complicada para el estudiante, pero sin duda mucho ms pedaggica y motivadora
(como la posibilidad de crear sus propias imgenes, una vez aprende a escribir datos
en el disco).
CONCEPTOS CLAVE
Variable, tipo de una variable; declaracin y definicin de una variable o funcin;
estructuras de control, if. . . else, for, while, do. . .while, switch. . . case;
vectores y matrices de datos; apertura, escritura, lectura y cierre de ficheros.
PREGUNTAS DE REPASO
He conseguido compilar con xito (sin errores o advertencias por parte del
compilador) los ejemplos que figuran en el captulo?
En aquellos programas que no he logrado compilar a la primera, he indicado con
comentarios cules fueron mis errores (para no cometerlos la prxima vez que use
este cdigo fuente como base de mi proyecto)?
En aquellos programas que he escrito (modificando los de ejemplo, segn se
indicaba en los ejercicios), he incluido comentarios que aclaren lo que quiero que
hagan (y, si todo va bien, lo que realmente hacen)?
He entendido la diferencia entre los bucles for, while, do. . .while?
He entendido la diferencia que hay entre variables y punteros a variables? Entre
variables, vectores y matrices?
CONTENIDOS
Mtodos Monte Carlo
Fractales
Sistemas dinmicos
Autmatas celulares
INTRODUCCIN
Esta ltima parte de la asignatura consiste en la aplicacin de los
conocimientos aprendidos sobre programacin en C para investigar un problema
actual de Fsica Computacional.
El estudiante deber elegir uno entre los cuatro temas propuestos y realizar un
trabajo siguiendo las indicaciones que aparecen en el documento Normas de
Evaluacin y Calificacin (PDF colgado en el curso virtual). Es condicin necesaria
ceirse a las normas contenidas en este documento para que el trabajo sea
calificado.
Esta actividad tiene tres objetivos fundamentales. El primero, ahondar en el
lenguaje C ms all de lo que permite el tema anterior (ms generalista) obligando al
estudiante a enfrentarse a un problema ex novo. El segundo, presentar al estudiante
algunas de las herramientas de simulacin computacional ms utilizadas en la
investigacin cientfica (no slo en el rea de la Fsica), como los mtodos de Monte
Carlo o los Autmatas Celulares. El tercero, introducir al estudiante de una forma
sencilla e intuitiva conceptos fsicos y matemticos fundamentales que sern
estudiados ms formalmente a lo largo del grado: sistemas dinmicos, caos,
fractalidad, movimiento browniano, irreversibilidad, entropa, auto-organizacin,
Podramos aadir un cuarto objetivo, quizs el ms excitante: convertirnos en
investigadores por primera vez en este grado.
Por todas estas razones es muy recomendable que el estudiante eche un
vistazo a todos los temas antes de elegir el que ms le atrae. Esto tambin le
permitir ver el grado de complejidad de cada tema propuesto y le ayudar a decidirse
por cul desarrollar.
Algunos de los conceptos fsicos que se introducen pueden parecer avanzados,
y lo son (fsica y matemticamente hablando). Sin embargo, su estudio mediante el
ordenador ayuda a simplificarlos en gran medida hasta el punto de hacerlos fcilmente
comprensibles, permitindonos ganar una valiosa intuicin sobre ellos que nos ser de
gran ayuda cuando nos los volvamos a encontrar en otras asignaturas ms avanzadas
del grado.
La misma filosofa de simplicidad es aplicable a la visualizacin de los
resultados de estos estudios: siempre deben clarificar aquello que se ha hecho; una
grfica que no simplifica la presentacin de un resultado no tiene valor alguno.
CONCEPTOS CLAVE
Mtodos Monte Carlo: generador de nmeros pseudoaleatorios, distribucin de
probabilidad, caminante aleatorio, movimiento browniano, integracin por Monte Carlo.
Fractales: dimensin fractal, mtodo de sand-box, mtodo de box-counting, conjunto
de Cantor, tringulo de Sierpinsky.
Sistemas dinmicos: sistema dinmico continuo, sistema dinmico discreto, puntos
fijos, rbitas peridicas, comportamiento catico, aplicacin recursiva, diagrama de
bifurcaciones, conjunto de Mandelbrot.
Autmatas celulares: autmata celular elemental, regla de un autmata celular,
comportamiento catico, irreversibilidad, auto-organizacin, entropa, universalidades.
PREGUNTAS DE REPASO
Una vez haya finalizado el trabajo del tema elegido, el estudiante deber
sintetizar lo que ha aprendido y lo que ha logrado (o no) con la simulacin
computacional. Deber redactar una memoria en la que se aborden las siguientes
preguntas:
De qu trata el tema escogido?, es decir, qu sistemas fsicos describe o puede
describir? (basta poner un ejemplo, quizs alguno tratado en otra asignatura del Grado
en Fsica)
Qu mtodos informticos se emplearon para estudiarlo?, qu algoritmos se han
usado? Los cdigos de los programas utilizados para realizar el trabajo debern
incluirse en un apndice de la memoria presentada, comentando cada funcin
implementada.
Para equipararla con las dems asignaturas del Grado en Fsica, esta asignatura tiene
una prueba presencial en la que el estudiante tendr que realizar un examen.