jueves, 27 de febrero de 2014

Actividad 3

Aquí se encuentra el reporte de la actividad 3 en Google Drive: Sesión3.pdf

Leyendo un poco la documentación de SciPy, además de scipy.integrate, ¿que otras funciones te serían útiles para resolver otros problemas que te has cruzado?

Pues todas las funciones de integración múltiple me vendrían como anillo al dedo justo ahora, que estoy llevando un curso algo complicado de Cálculo IV. Además, investigando en internet, encontré que también puede trabajar álgebra lineal, estadística, hace interpolaciones, análisis de imágenes, optimización, etc. Todo lo anterior, considerado herramientas valiosas en mi carrera.

¿Que diferencia existe entre NumPy y SciPy?, ¿cuando recurrimos a uno y cuando al otro?

Hasta ahora, la principal diferencia que encuentro entre NumPy y SciPy, es que el primero realiza procedimientos matemáticos relativamente sencillos, mientras que el segundo es capaz de realizar procedimientos mucho más complejos, como el problema que abordamos en este tema. En otras palabras; dudo mucho que numpy pueda resolver una integral elíptica incompleta de primer tipo, mientras que SciPy lo hace muriéndose de la risa.

¿Cómo sientes tu evolución en el manejo de Python? Ya has trabajado con las bibliotecas de funciones: Matplotlib, NumPy y SciPy, además del entorno de programación con Python.

Siento que con esta práctica, he avanzado en mi compresión sobre el lenguaje. Esto debido a que he programado algo casi desde cero, utilizando la misma lógica que usaba cuando programaba en mi viejo y nunca bien ponderado FORTRAN.

¿Qué te llamó la atención de esta actividad?. ¿Qué no te gustó de esta actividad? ¿Qué cambios sugerirías?

Me gustó mucho saber que se puede integrar con facilidad utilizando Python. La actividad en sí no fue fácil para mi (de hecho batalle bastante) pero el proceso de integración sí que lo encontré simple. No hubo algo en particular que no me gustara. Lo único que sugeriría sería que abordáramos problemas más complejos en clase. Siento que los ejemplos que ahí vemos son muy sencillos, y no alcanzamos a notar cuales van a ser las dificultades reales de la sesión.

Después de completar 3 actividades, ¿cómo te sientes en el curso?,  ¿sientes que estas aprendiendo?, ¿qué si te gusta?, ¿qué no te gusta?, ¿vamos muy rápido?, ¿vamos muy lento?, ¿qué sugieres?

El curso es algo pesado, pero de que se aprende se aprende. Por supuesto que me gusta la clase. Creo que las cosas que aprendemos son muy útiles. La velocidad que lleva el curso me parece la adecuada. Si bien es cierto que parte importante del curso es el proceso autodidácta, creo que sí me vendría bien un poco más de ayuda de vez en cuando.

viernes, 21 de febrero de 2014

Actividad 2

A continuación se presentan los resultados obtenidos de la Actividad 2 del curso de Física Computacional:

En la siguiente liga pueden encontrar el reporte de la actividad, en donde se resume información relevante a las ecuaciones del péndulo matemático, y algunos códigos de Python utilizados para realizar las siguientes imágenes y una simulación, que se explican en el texto mismo.

Aquí el PDF en Google Drive:
Actividad2.pdf


Imágenes hechas en la actividad:





El video animación hecho en Python:

Cuestionario:


¿Cuáles fueron tus experiencias en la instalación del entorno de programación Canopy Python?  
La verdad es que esta parte fue algo tortuosa. A fin de cuentas no pude instalar Python en Windows 8 de 64 bit; pero sí lo pude hacer para Ubuntu. En esta plataforma fue en la que trabaje toda la actividad, y la instalación fue relativamente sencilla.

¿Cómo comparas tus experiencias entre la programación en FORTRAN y Python? 
La verdad es que, al menos hasta el momento, FORTRAN me ha parecido más amigable y sencillo, o hasta intuitivo quizá. Pero por lo que he visto, Python tiene unas muy interesantes herramientas de graficación y animación que hacen que FORTRAN parezca algo básico.

¿Notas mucha diferencia entre programar en FORTRAN y Python? 
No podría decir que ahora mismo entiendo perfectamente los códigos de Python que he utilizado para llevar esta actividad a feliz término. Sin embargo, comienzo a sentirme un poco familiarizado con el lenguaje. No parece tan sencillo como me parece FORTRAN, pero tampoco podría decir que es algo muy difícil.

¿Tuviste algunos problemas en que corrieran tus programas en Python? ¿Fue fácil encontrar respuestas en Internet? 
Sí tuve muchos problemas. Sobre todo al principio; no me fue para nada fácil lograr hacer funcionar el primer programa. Batallé mucho para encontrar mis errores, porque no entendía para nada el lenguaje. Y a decir verdad internet no me ayudaba mucho. Siento que Python adolece de sencillez, pues existen muchas bibliotecas y muchas herramientas muy diferentes para hacer las cosas, lo que hace que no sea fácil encontrar algo que te solucione tu problema asociándolo con un código del que dispones. Es decir, encuentro dos opciones obvias; o haces tu código desde cero, o lo encuentras prácticamente terminado en internet. Me parece difícil combinar códigos en Python.

¿Qué documentos en línea te ayudaron más y te han gustado? ¿Alguno nuevo que quisieras compartir?
Me basé básicamente en la página de Matplotlib, y en este tutorial en particular. Lo encontré sumamente esclarecedor, pues incluye una secuencia de como ir mejorando un solo trabajo de graficación, explicando paso a paso lo que se va escribiendo y los efectos que produce en la gráfica.

Describe tus experiencias en la producción de una animación. Cuál es tu opinión de la facilidad para realizar animaciones. 
No puedo opinar en cuanto a si es difícil hacer animaciones o no, pues en sí, yo no escribí los códigos de nada. Pero sí que resulta sencillo buscar los códigos en internet, y con un poco de perspicacia, modificarlos para hacer que hagan lo que uno quiere.


¿Crees que te gustaría aprender más sobre Python y utilizarlo aún después de este curso?
Realmente me gustaría mucho aprender Python. Pero me gustaría aprender a usarlo bien, no solo a cambiar unos parámetros de códigos que alguien más hizo (y que yo no puedo hacer).