Está en la página 1de 27

rita Universidad Auto noma de Puebla Beneme ticas Facultad de Ciencias F sico Matema

F sica Computacional I
ncatl Herna ndez Alumno: Nahum Xicohte

Profesor: Dr. Eduardo Moreno Barbosa

Indice General
Introducci on 1 Algoritmos y diagramas de ujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Ciclos y recursi on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
A 2L TEX(Composici on de un art culo cientico) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.1 2.2 2.3 2.4 2.5 2.6

Alineaci on de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 El entorno multicol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Ecuaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Gr acos y tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Notas a pie de p agina, interlineado, p arrafos... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 El entorno the bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3 Gnuplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1 3.2 3.3 3.4 3.5 Funciones y archivos de datos en 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Funciones y archivos de datos en 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Ejes coordenados, intervalos de gracado, escalas... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17 Exportar gr acas a archivo imagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Algunos comandos de conguraci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4 Introducci on a Python (Lenguaje de programaci on)


4.1 4.2 4.3 4.4 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Operadores aritm eticos, cadenas, operadores l ogicos... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Control de ujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Ciclos en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Bibliograf a

Introducci on El trabajo que se presenta a continuaci on es una s ntesis del contenido del curso de F sica computacional I. El objetivo de esta s ntesis inicialmente era obtener una simple calicaci on para un servidor (autor), sin embargo al ir escribiendo cada una de las partes que conforman a este documento me di cuenta que este ser a de utilidad para aquellos que cursan o cursar an la asignatura de F sica computacional I, espero no equivocarme. La primera secci on de este trabajo trata de algoritmos y diagramas de ujo, en ella se presentan la denici on de algoritmo y sus caracter sticas, adem as se da una explicaci on del lenguaje de diagrama de ujo, las estructuras sencuenciales que lo conforman y por u ltimo se describen los bucles mas importantes A para la construcci on de un algoritmo. En la segunda parte se aborda L TEX un sistema de composici on de textos cient cos, secci on en la cual se muestran las acciones en Latex que a mi parecer son m as utilizadas para escribir un reporte o art culo cient co, entre estas acciones se encuentr an la alineaci on de texto,la inclusi on de gr acos, la elaboraci on de tablas, etc. En la secci on n umero tres se presenta una gu a r apida de Gnuplot, se exponen como gracar funciones y archivos de datos en 2D y 3D y los principales comandos para la conguraci on de gr acos. La u ltima secci on ofrece una breve introducci on al lenguaje de programaci on Python, la cual incluye ejemplos de asignaci on de variables, operadores l ogicos y de comparaci on, adem as se explica como escribir los bucles que fueron expuestos en la primera secci on.

Nahum Xicoht encatl Hern andez.

1.0 Algoritmos y diagramas de ujo


Un algoritmo es un conjunto de reglas o instrucciones denidas y no ambiguas que permiten llevar a cabo una actividad o resolver alg un problema mediante pasos sucesivos. En la vida diaria utilizamos un sin n de algoritmos para resolver problemas, como ejemplos tenemos el algoritmo para cambiar la llanta de un auto o el m etodo de Gauss para resolver un sistema de ecuaciones. Los algoritmos cumplen ciertas condiciones algunas de ellas se mencionan a continuaci on: Finito: El algoritmo debe terminar tras un n umero nito de pasos. Denido: El algoritmo debe denirse de forma precisa para cada paso, es decir, hay que evitar toda ambig uedad al denir cada paso. Puesto que el lenguaje humano es impreciso, los algoritmos se expresan mediante un lenguaje formal, ya sea matem atico o de programaci on para un computador. Ecientes:Deben ocupar la m nima memoria y minimizar el tiempo de ejecuci on. Modulares: La losof a utilizada para su dise no debe favorecer la divisi on del problema en m odulos peque nos. Unicos puntos de entrada y de salida: A los m odulos que integran al algoritmo se entra por un solo punto, inicio, y se sale por un s olo punto tambi en, n. Los algoritmos pueden describirse utilizando diversos lenguajes. Cada uno de estos lenguajes permiten describir los pasos con mayor o menor detalle. La clasicaci on de los lenguajes para algoritmos puede enunciarse de la siguiente manera: lenguaje natural, lenguaje de diagrama de ujo y lenguaje de programaci on para algoritmos. En este trabajo se profundizar a en el lenguaje de diagrama de ujo pues este tiene grandes ventajas, ya que favorecen la comprensi on del algoritmo al mostrarlo como un dibujo (caracteristica avalada por mi). El cerebro humano reconoce facilmente los dibujos, adem as otra de las mas importantes ventajas es que permiten identicar los problemas y las oportunidades de mejora en el algoritmo. Una vez realizado el diagrama de ujo, llega a ser f acil escribir un programa en alg un lenguaje de programaci on de alto nivel. Los diagramas de ujo se dibujan utilizando algunos s mbolos modelo o estandar. Los diagramas que se presentan mas adelante fueron realizados utilizando el programa RAP T OR, es por eso que enseguida se presenta la simbolog a de este programa utilizado para la creaci on de diagramas de ujo.

Figura 1: Simbolog a para la construcci on de diagramas de ujo en RAP T OR.

Para la elaboraci on de un algoritmo a trav es de un diagrama de ujo es necesario utilizar estructuras secuenciales que resultan muy importantes, una estructura secuencial es aquella en la que una acci on sigue a otra a continuaci on, es decir las operaciones que son utilizadas en el algoritmo se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el n del proceso. La asignaci on de esto consiste, en el paso de valores o resultados a un lugar de la memoria, dicho lugar recibe el nombre de variable. La asignaci on puede clasicarse de la siguiente manera Sencilla: Consiste en pasar un valor constante en una variable n 23 Contador: Consiste en utilizarla como un vericador del numero de veces que se realiza un proceso cc+1 Sumador: Su nombre lo dice, consiste en utilizarlo como un sumador en un proceso n n + a Operaci on: Donde se realizan operaciones matem aticas donde se involucran muchas variables n a * ((( h ** u)/m)+1) En la gura 2 se muestra el algoritmo para el c alculo de la funci on exponencial mediante una serie de n Maclaurin (ex = n=0 x ) n!

Figura 2: Algoritmo que calcula la funci on exponencial mediante una serie de Maclaurin.

Las variables que se utilizaron en el algoritmo de la serie de Maclaurin de la funci on exponencial fueron las siguientes i es la variable que cuenta el numero de ciclos en el algoritmo, notese tambi en que representa un exponente (xi ) y es utilizado para calcular el factorial (fac fac*i) fac es un acumulador que representa el valor del factorial. x es la variable que representa el exponente del numero e. n variable que representa el n umero de t erminos (sumandos) de la serie. sum es una variable que se encarga de almacenar la suma de cada de uno de los t erminos de la serie, esta variable nos proporciona el valor de la funci on exponencial. j es una variable que almacena la operacion xi , operaci on que es equivalente en la f ormula de Maclaurin a xn . f variable que almacena la operaci on xn n! .
j f ac

operaci on que es semejante en la f ormula de Maclaurin a

Tabla I. Valores de las variables en el algoritmo de la funci on exponencial (e1 ). Ciclo Valor del t ermino de la serie Valor de la funci on i f sum

1 1 2 3 4 5 6 7 8

1 1 0.5 0.1667 0.04167 0.008333 0.001389 0.0001984 0.00002480

1 2 2.5 2.6667 2.7083 2.7167 2.7181 2.7183 2.7183

El siguiente algoritmo ordena tres n umeros distintos de mayor a menor, el cometido de este es ilustrar la funci on de las decisiones en un algoritmo, las variables utilizadas en este diagrama de ujo son a, b y c que representan los tres n umeros reales diferentes a ordenar.

Figura 3: Algoritmo que ordena tres n umeros reales distintos.

1.1 Ciclos y recursi on


Un ciclo, bucle o tambi en loop no es m as que una serie de instrucciones que se repiten bajo ciertas condiciones, es muy u til pues nos evita escribir varias veces un n umero de intrucciones y como consecuencia nos ahorra tiempo y espacio. Los ciclos m as utilizados en la contrucci on de algoritmos son los ciclos for y while, el ciclo for suele ser el m as sencillo y habitual, este ciclo se utiliza cuando sabemos el n umero de veces que deseamos ejecutar el bucle,cabe mencionar que con cada ejecuci on del bucle se realizan una serie de pasos, el algoritmo de la gura 1 utiliza un ciclo de este tipo, la variable n es la varible que indica el n umero de ciclos que han de ocurrir, la variable i contabiliza el numero de ciclos, cuando la variable i sea igual a n; el bucle dejar a de efectuarse. Los ciclos while son empleados cuando queremos repetir una serie de sentencias un n umero indenido de veces siempre que se cumpla una condici on.

Figura 4: Algoritmo que utiliza un ciclo while para la suma de una cantidad indenida de n umeros.

El algoritmo de la gura 4 emplea un ciclo while, los n umeros que se ingresen se ir an sumando siempre y cuando estos sean distintos de 1, cuando el numero ingresado sea 1 el bucle dejar a de efectuarse. La recursividad es una t ecnica importante en los algoritmos. Se utiliza para realizar una llamada de una funci on desde la misma funci on, como ejemplo u til y simple se encuentra el algoritmo para calcular el factorial de n umeros, sabemos que el factorial de un entero positivo n se dene como el producto de todos los n umeros enteros positivos desde 1 hasta n, es decir n! = 1 2 3 ... (n 1) n Veamos como se utiliza la denici on de factorial para encontrar el valor del factorial de 3 3! = 3 (3 1)! = 3 2! = 3 2 (2 1)! = 3 2 1! = 3 2 1 (1 1)! = 3 2 1 0! =3211 =6

(a) Diagrama de ujo que calcula el factorial de 5

(b) Funci on factorial en Python

Figura 5: Factorial en un lenguaje de programaci on

Uno de los problemas que puede atacarse de mejor manera empleando recursi on es el de la Torres de Han oi. El juego, en su forma m as tradicional, consiste en tres varillas verticales. En una de las varillas se apila un n umero indeterminado de discos que determinar a la complejidad de la soluci on. Los discos se apilan sobre una varilla en tama no decreciente. No hay dos discos iguales, y todos ellos est an apilados de mayor a menor radio en una de las varillas, quedando las otras dos varillas vacantes. El juego consiste en pasar todos los discos de la varilla ocupada (es decir la que posee la torre) a una de las otras varillas vacantes. Para realizar este objetivo, es necesario seguir tres simples reglas: 1. S olo se puede mover un disco cada vez. 2. Un disco de mayor tama no no puede descansar sobre uno m as peque no que el mismo. 3. S olo puedes desplazar el disco que se encuentre arriba en cada varilla.

Figura 6: Torres de Han oi. Una forma de resolver el problema de las torres se describe enseguida; llamaremos A, B y C a cada una de las agujas o estacas sin importanr el orden siempre que se mantengan los nombres. Consideremos inicialmente dos discos en A que queremos pasar a B utilizando C como auxiliar. Las operaciones por realizar son sencillas

Mover un disco de de A a C Pasar dos discos de A a B = Mover un disco de A a B Mover un disco de C a B Ahora supongamos que tenemos tres discos en A y los queremos pasar a B, los pasos son muchos m as, sin embargo existe algo en com un con las instrucciones que debemos seguir cuando tenemos dos discos Mover 1 disco de A a B Pasar dos de A a C = Mover 1 disco de A a C Mover 1 disco de B a C Pasar tres discos de A a B = Mover un disco de A a B Mover 1 disco de C a A Pasar dos de C a B = Mover 1 disco de C a B Mover 1 disco de A a B En general pasar n discos (n 1) de A a B consiste en efectuar las siguientes operaciones Pasar n-1 discos de A a C Pasar n discos de A a B = Mover 1 disco de A a B Pasar n-1 discos C a B

Ahora puede observarse claramente la naturaleza recursiva del proceso.

A 2.0 L TEX(Composici on de un art culo cientico)


A La parte de L TEX de este trabajo pretende mostrar las acciones m as utilizadas a mi parecer en la escritura de un art culo cient co como se habia comentado en la parte introductoria de este escrito.

En 1978 Donald E. Knuth cre o un sistema de composici on de textos de alta calidad llamado TEX, en la pr actica TEXes un est andar para publicaciones cient cas en areas como f sica, matem atica, compuA taci on,etc. En 1892 Leslie Lamport cre o un paquete de macros para TEXllamado L TEX, este proporciona A una serie de ordenes para describir la estructura del documento; L TEXes un programa de maquetaci on, dentro del cual se clasica como un sistema de fotocomposici on.
A Quiz a el u nico inconveniente en usar L TEX. es el tiempo invertido en su aprendizaje, esto no signica que sea dicil de aprender. A En una sesi on de L TEXrealizamos varias acciones , las mas importantes se describen a continuaci on:

Escribimos un Pre ambulo: el tipo de documento, indicaciones sobre m argenes; largo, ancho , margen superior e izquierdo de la p agina y cargamos los paquetes adicionales (gracos, fuente, estructura del texto, etc.). \documentclass[10pt]{article} \textheight=21cm \textwidth=16cm \topmargin=-1cm \oddsidemargin=0cm \usepackage{subfigure} \usepackage{amsmath} \usepackage[latin 1]{inputenc} \usepackage{color}

\begin{document} Aqui va lo que queremos escribir... \end{document} Editamos: escribimos texto com un y en modo matematico. El texto en modo matem atico va entre $ $. Compilamos: en el men u del editor encontramos la opci on de compilar, esto nos ayuda a detectar los errores en la sintaxis de comandos. Vemos el archivo DVI: Una vez que se ha compilado el documento, podemos verlo con la opci on DVI del editor. El cuerpo del documento es el que se coloca entre los delimitadores

\begin{document} Aqui va el texto del documento \end{document} Los caracteres especiales,fuentes y la sintaxis en el modo matem atico no se tratar an en este trabajo, sin embargo pueden encontrase en qualquier manual de LaTeX, incluso existen aplicaciones gratuitas para dispositivos m oviles en iOS y Android que ofrecen esto.

2.1 Alineaci on de texto


Para centrar el texto usamos \begin{center} Ya tengo sue~ no \end{center} que produce Ya tengo sue no para alinear a la izquierda un texto veamos el siguiente ejemplo \begin{flushleft} Ayudenme!! \end{flushleft} Ayudenme!! Para alinear a la derecha usamos \begin{flusright} ... \end{flushright}}

2.2 El entorno multicol


Una forma de insertar texto dentro de un documento es escribir en doble columna, es com un ver esta estructura en la redacci on de art culos cient cos, para esto utilizamos el comando multicol, en el pre ambulo debe escribirse \usepackage{multicol} Antes del texto que se quiere escribir a doble columna debe escribirse \begin{multicols}{2} Hace que... \end{multicols}{2} Hace que el texto que est a entre los delimitadores salga a doble columna, LATEX se encarga de manera autom atica de distribuir el texto entre las columnas de la mejor manera, adem as de acomodar el texto cuando hay un cambio de l nea. Una 2 limitaci on de este ambiente es que las columnas se distribuyen con el mismo ancho y no se puede tener control sobre la cantidad de texto que aparece en cada una de ellas

10

2.3 Ecuaciones
La escritura de ecuaciones es parte importante de un art culo, Latex enumera automaticamente a estas observemos como lo hace \begin{equation} x(t)=Acos(\omega t+ \phi) \end{equation} \begin{equation} v(t)=\frac{dx(t)}{dt}=\frac{d[Acos(\omega t+ \phi )]}{dt}=-A \omega sen(\omega t+ \phi) \end{equation} x(t) = Acos(t + ) v (t) = d[Acos(t + )] dx(t) = = Asen(t + ) dt dt (1) (2)

2.4 Gr acos y tablas


Algo necesario en la composici on de un art culo es la elaboraci on de tablas y la inserci on de gr acos.Incluir un gr aco en LaTeX es muy sencillo basta poner en el pre ambulo \usepackage{graphicx} LaTeX al igual que las ecuaciones enumera automaticamente los gr acos. La forma mas sencilla de incluir un gr aco es la siguiente \begin{figure}[h] \centering \includegraphics[width=tama~ no pt]{imagen.ext}%ext=bmp,jpg, png... \caption{Aqui va el nombre de la figura.} \label{contexto:figura} \end{figure}

Figura 7: Gr aca F vs x, en el m etodo est atico, determinaci on de la constate el astica de un resorte es importante mencionar que el gr aco que queremos incluir deber a estar en la misma carpeta en la que est a nuestro archivo .tex La creaci on de tablas es importante es importante para la muestra de datos y resultados en un art culo. En las tablas se pueden poner lineas verticales y horizontales 11

Para poner l neas verticales se ponen marcas como | o || en la parte que corresponde al alienamiento de columnas. Para poner l neas horizontales, al nal de cada la se especica i. \hline: l nea tan larga como la tabla ii. \cline{i-j}: l nea de columna i a columna j Usando el entorno tabular, el c odigo \begin{tabular} {|c|c|c|} \hline $p$ & $q$ & $p \rightarrow q$ \\ \hline 0 & 0 & 1 \\ 0 & 1 & 1 \\ 1 & 0 & 0 \\ 1 & 1 & 1 \\ \hline \end{tabular} muestra en la hoja p q pq 0 0 1 0 1 1 1 0 0 1 1 1 A veces es conveniente unir varias celdas para escribir una leyenda extensa.Para hacer esto usamos \multicolumn{columnas}{Alin}{texto} columnas : N umero de columnas que abarcar a la celda. Alin : Indica la alineaci on del texto. veamos el siguiente caso \begin{center} \begin{tabular}{|ccccccc|} \hline \multicolumn{7}{|c|}{{\small Tabla I. Resultados del m\etodo est\atico.}} \\ \hline {\small \bf Medici\on} & {\small \bf masa } &{\small \bf Fuerza} & {\small \bf $l_0$}(m) &{\small \bf $ \Delta x$} &{\small \bf $k$}&$\Delta k$ \\ & {\small \bf ($m \pm 0.0002$)kg } & {\small \bf ($F \pm 0.002$)N}} & &{\small \bf ($(l-l_0) \pm 0.002$)m} &{\small \bf ($k $)N/m}&$|k_m-k|$N/m \\ \hline 1 & 0.040 & 0.392 & 0.055 & 0.039 & 10.051& 1.097\\ \hline 2 & 0.060 & o.588& 0.055 & 0.068 & 8.647& 0.307\\ \hline 3 & 0.080 & 0.784 & 0.055 & 0.096& 8.166&0.788\\ \hline & & & & {\small \bf Valores promedio} &$k_m=$ 8.954&$\Delta k_m=$0.730 \\ \hline \end{tabular} \end{center} 12

que nos muestra


Tabla . Resultados del m etodo est atico. Fuerza l0 (m) x (F 0,002)N ((l l0 ) 0,002)m

Medici on

masa (m 0,0002)kg

k (k)N/m

1 2 3

0.040 0.060 0.080

0.392 o.588 0.784

0.055 0.055 0.055

0.039 0.068 0.096


Valores promedio

10.051 8.647 8.166 km = 8.954

k |km k |N/m 1.097 0.307 0.788 km =0.730

Algunos editores como WinEdt y TexMaker cuentan con asistentes para la creaci on de tablas y para la inclusi on de guras, lo que facilita el trabajo.

2.5 Notas a pie de p agina, interlineado, p arrafos...


Las notas al pie de p agina se escriben utilizando el siguiente comando \footnote{texto texto y m as texto} en el pie de p agina se encuentra el ejemplo 1 El interlineado, el uso de sangr a y la estructura de los p arrafos son importantes en cualquier texto veamos que comandos debemos usar para implementar esto.El control del espacio entre l neas del texto se puede cambiar en el pre ambulo con la orden \renewcommand{\baselinestretch}{Numero} donde N umero se reere a un factor de interlineado, que por defecto es 1. Si ponemos N umero igual a 2 estaremos escribiendo a doble espacio, etc. Es posible jar N umero a un valor decimal. A Al inicio de un parrafo, L TEX introduce un sangrado de forma autom atica, que puede ser evitado con el comando \noindent El salto de l nea sin provocar un cambio de p arrafo puede llevarse a cabo con uno de los comandos siguientes: \newline o \\ Para aumentar la distancia entre parrafos pueden usarse los comandos \smallskip \medskip \bigskip el u ltimo de los cuales aproximadamente supondr a dejar una l nea en blanco, mientras que los otros se reeren a la mitad y cuarta parte de este. Para poner distancias entre palabras podemos usar alguno de los comandos siguientes \ espacio entre palabras \quad longitud de una M \qquad longitud de dos M
1 ?Porque

la gente que esta tan loca como para pensar que puede cambiar el mundo...es quien lo LOGRA!

13

2.6 El entorno thebibliography


A Como u ltimo tema en la parte de L TEXde este trabajo veremos como realizar una bibliograf a, pieza esencial de cualquier documento. Una forma de hacer una bibliograa es usar el entorno the bibliography

\begin{thebibliography}{99} \bibitem Fuente 1 \bibitem fuente 2 \end{thebibliography} veamos un ejemplo

Referencias
[1] .A. Tipler F sica para la Ciencia y la Tecnolog a Revert e, c2005, Barcelona, pp. 396-398. [2] . Marcelo F sica Iberoamericana, c1986, M exico, pp. 250- 252.

14

3.0 Gnuplot
Gnuplot es un poderoso programa freeware para hacer gr acas con datos en 2D y en 3D. Gnuplot puede usarse en muchos ambientes computacionales, incluyendo Linux, Mac OS X, Windows y DOS. Este programa es f acil de usar y tiene una buena visualizaci on incluso para una gran cantidad de datos.

3.1 Funciones y archivos de datos en 2D


Estando dentro de gnuplot, tecleamos el comando plot, y posteriormente escribimos una funci on que dependa de x, y nalizamos con enter. El siguiente ejemplo es para la funci on conocida como Bruja de Agnesi:

gnuplot> plot(8*(2)**3)/(x**2+4*(2)**2)

Figura 8: Gracando funciones en 2D Para poder gracar un archivo de datos en 2D, es necesario crear un archivo de datos en forma de dos columnas, podemos gracar la primera columna contra la segunda o viceversa,Gnuplot graca automaticamente los datos de la primera columna en el eje x y los de la segunda en el eje y . Enseguida se muestran los datos del archivo cuadrados.txt 1 1 2 4 3 9 4 16 5 25 6 36 7 49 8 64 9 81 10 100 para gracar estos datos basta escribir el siguiente codig o gnuplot> plot "cuadrados.txt"

15

Figura 9: Gracando un archivo de datos Para hacer que los datos de la primera columna queden en el eje y y los datos de la segunda columna esten en el eje x usamos el siguiente comando gnuplot> plot "cuadrados.txt" u 2:1 Para que los puntos de la gr aca de la gura 9 esten interconectados usamos gnuplot> plot "cuadrados.txt" w l el cual puede interpretarse como with lines, la gr aca se ver a como sigue

Figura 10: Uniendo puntos

16

3.2 Funciones y archivos de datos en 3D


Para gracar una funci on en 3D, es necesario escribir nuestra funci on en t erminos de x y y y usar el comando splot como en el siguiente caso gnuplot> splot cos(sin(x-y))

Figura 11: Gracando en 3D La forma de gracar archivos de datos en 3D es an aloga a la de 2D, solo que aqui se necesitan tres columnas de datos. Suponiendo que el archivo cuadrados.txt contara con tres columnas un ejemplo de c odigo para la gracaci on ser a el siguiente gnuplot> splot "cuadrados.txt" u 1:3:2

3.3 Ejes coordenados, intervalos de gracado, escalas...


Para nombrar los ejes coordenados, es tan solo cuesti on de usar los comandos gnuplot> set xlabel " nombre del eje x " gnuplot> set ylabel " nombre del eje y " gnuplot> set zlabel " nombre del eje z " Sin embargo los cambios no se dar an al instante en la gr aca. Lo que debemos de hacer es teclear replot, y con esto haremos que se vuelva a dibujar la gr aca. Para cambiar los intervalos de gracaci on debemos teclear estos comandos gnuplot> set xrange [a:b] gnuplot> set yrange [c:d] gnuplot> replot De este modo modo cambianos los intervalos de gracaci on en los intervalos [a, b] y [c, d] en el eje x y en el eje y respectivamente.

17

Si queremos agregar un t tulo a nuestra gr aca basta escribir gnuplot> set title "Titulo" gnuplot> replot Para cambiar la escala de nuestra gr aca a una escala logaritmica en el eje y por ejemplo usamos gnuplot> set logscale gnuplot> replot Tambi en podemos deshacer los cambios que hayamos hecha a la gr aca. Por ejemplo si queremos quitar el nombre del eje x bastar a escribir un nuevo nombre y teclear replot, otra de las formas de hacerlo es gnuplot> unset xlabel gnuplot> replot Este comando puede aplicarse tambi en para quitar el t tulo y la escala. Veamos un ejemplo donde se use lo descrito anteriormente gnuplot> gnuplot> gnuplot> gnuplot> gnuplot> gnuplot> gnuplot> plot 5*x**(-2) set xrange [-3:30] set yrange [-1:25] set xlabel "X" set ylabel "Y" set title "Funcion que se me ocurrio" replot

el c odigo anterior muestra Al realizar algunas modicaciones al c odigo anterior como se muestra a conti-

Figura 12: Modicando una gr aca nuaci on gnuplot> gnuplot> gnuplot> gnuplot> gnuplot> set set set set set xrange [1:5] yrange [1:5] logscale x logscale y grid xtics 18

gnuplot> set grid ytics gnuplot> unset title "Funcion que se me ocurrio" gnuplot> replot la gr aca producida se encuentra en la gura de abajo

Figura 13: Modicaciones a la gr aca de la gura 12 Para que Gnuplot muestre varias gracas de un archivo de datos usamos el siguiente c odigo gnuplot> plot "cuadrados.txt" u 2:1 w l, "cuadrados.txt" u 1:2 w l esto hace que se graquen las columnas 2 vs 1 y 1 vs 2

Figura 14: Dos gr acas en una misma pantalla

19

3.4 Exportar gr acas a archivo imagen


Para realizar esto, debemos indicarle a Gnuplot en que formato se exportar a la imagen, para conocer los formatos bajo los cuales funciona este gracador usamos el comando help set term, se desplegar a en la pantalla una lista de formatos, despu es de elegir el formato tecleamos el comando gnuplot> set output "archivo.eps" presionamos enter y despu es replot.

3.5 Algunos comandos de conguraci on


Los comandos siguientes son muy u tiles en la conguraci on de un gr aco. gnuplot> replot: Vuelve a trazar la funci on anterior. gnuplot> clear: Borra la funci on trazada. gnuplot> print: Nos da el valor de una variable (X,Y,Z, etc.) gnuplot> set border: Establece un borde en la gr afica. gnuplot> set noborder: Quita el borde. gnuplot> show border: Revisa si el borde esta activo o inactivo. gnuplot> set boxwidth 11: Establece el ancho de la caja a 11. gnuplot> set boxwidth: Regresa el ancho normal. gnuplot> show boxwidth: Revisa que tan ancha esta la caja. gnuplot> set size 1,2: Establece el tama~ no del trazo. gnuplot> set autoescale xyz: Activa la escala tanto en X como Y y Z. gnuplot> set noautoescale X: Desactiva la escala en X. gnuplot> show autoescale: Revisa que las escalas esten activas. X=OFF Y=ON Z=ON. gnuplot> set yrange [0.5:15.7]: Establece el rango Z de [0.5,15.7] gnuplot> set xlabel "Lev" 3,4: Etiqueta las X en los puntos 3 y 4 como gnuplot> set ylabel "LCC" 0,10: Etiqueta las Y en los puntos [0,10] como gnuplot> set zlabel "Taller" -15,30: Etiqueta las Z en los puntos [-15,30] gnuplot> show x label: Revisa si X tiene etiquetas, si las tiene marca cual es el texto y las coordenadas. gnuplot> set grid: Establece cuadr culas en el trazo. gnuplot> set nogrid: Quita las cuadr culas en el trazo. gnuplot> show grid: Revisa si est an activas o inactivas las cuadr culas. gnuplot> set arrow 3 from 4 to 5: Establece una flecha de 3 unidades de [4,5]. gnuplot> set noarrow: Quita la flecha. gnuplot> show arrow: Revisa si hay una flecha. gnuplot> set view 20,30, 2:1, 3:1: Establece una vista de la imagen pero con la X a una rotaci on de 20o , la Y 30o , la escala total 2:1 y la escala de Z 3:1. gnuplot> show view: Revisa como esta establecida la vista.

20

4.0 Introducci on a Python

(Lenguaje de programaci on)

Python es un lenguaje de programaci on creado por Guido van Rossum a principios de los 90 cuyo nombre est a inspirado en el grupo de c omicos ingleses Monty Python. Python es un lenguaje con una sintaxis muy limpia y que favorece un c odigo legible. La sintaxis de Python es sencilla y cercana al lenguaje natural que los progranas elaborados en Python parecen pseudoc odigo. El primer ejemplo de programa que escribiremos es Hola universo, y es tan sencillo como escribir >>> print "Hola universo"

4.1 Variables
Una variable es un nombre que hace referencia a un valor. La sentencia de asignaci on crea nuevas variales y les asigna un valor >>> mensaje = "Que paso?" >>> n = 15 >>> pi = 3.14159 El ejemplo anterior nos muestra tres asignaciones. La primera de ellas asigna el valor "Que paso?" a la varible mensaje, la segunda le da el valor entero 15 a n, y la tercera le da el valor de n umero 3.14159 a pi. L aentencia print tambi en funciona con variales >>> print mensaje "Que paso?" >>> print n 15 >>>print pi 3.14159 Las variables tambien tienen tipo. Una forma de averiguar de que tipo son es la siguiente >>> type(mensaje) <type "string"> >>> type(n) <type "int">

4.2 Operadores aritm eticos, cadenas, operadores l ogicos...


A continuaci on veamos como podemos manejar n umeros a trav es de operadores aritm eticos, para operaciones m as complejas se usa la librer a math Tabla II. Operadores aritm eticos
Operador Descripci on Ejemplo

+ * ** / // %

Suma Resta Multiplicaci on Exponente Divisi on Divisi on entera Residuo 21

r r r r r r r

= = = = = = =

3 + 2 # r es 5 3 - 2 # r es 1 3 * 2 # r es 6 3 ** 2 # r es 9 3.5 / 2 # r es 1.75 3.5 // 2 # r es 1.0 7 // 2 # r es 1

Las cadenas no son m as que texto encerrado entre comillas dobles cadena. Las cadenas tambi en admiten operadores como +, que funciona realizando una concatenaci on de las cadenas utilizadas como operandos y *, en la que se repite la cadena tantas veces como lo indique el n umero utilizado como segundo operando. Veamos el siguiente ejemplo >>> a = "uno" >>> b = "dos" >>> c = a + b >>> print c "unodos" >>> c = a * 3 >>> print c "unounouno"

Una variable de tipo booleano s olo puede tener dos valores:Cierto (True) y falso (False). Estos valores son muy importantes para las expresiones condicionales y los ciclos. Tabla III. Operadores l ogicos o condicionales
Operador Descripci on Ejemplo

and or not

Se cumple a y b? Se cumple a o b? No a

r = True and False # r es False r = True or False # r es True r = Not true # r es False

Los valores booleanos son adem as el resultado de expresiones que utilizan operadores relacionales

Tabla IV. Operadores de comparaci on


Operador Descripci on Ejemplo

== != < > <= >=

son iguales a y b? son distintos a y b? es a menor que b? es a mayor que b? es a menor o igual que b?Divisi on es a mayor o igual que b?

r r r r r r

= = = = = =

5 3 5 3 5 5

== != <2 >2 <= >=

2 2 # # 5 2

# # r r # #

r es False r es True es False es True r es True r es True

22

4.3 Control de ujo


Los condicionales nos permiten comprobar condiciones y hacen que un programa ejecute un fragmento de c odigo u otro. Aqui es donde toman importsancia los operadores l ogicos y de comparaci on que se mostraron en tablas anteriores. if La forma m as sencilla de una sentencia concional es un if seguido de la condici on a evaluar, dos puntos (:) y en la siguiente linea. He aqui un ejemplo >>> fav = "Fisica computacional" >>> if fav == "Fisica computacional": print "Es interesante" print "Y a veces ..." if ... else Vamos a ver ahora un condicional m as complicado. Este ejecuta un fragmento de c odigo cuando una condici on no se cumple, veamos los siguientes casos >>> if fav == "Fisica computacional": print "Es interesante" print "Y a veces ..."

>>> if fav != "Fisica computacional": print "Entoces es electromagnetismo" pero este condicional tiene una estructura m as u til: >>> if fav == print print else: print "Fisica computacional": "Es interesante" "Y a veces ..." "Entonces es electromagnetismo"

Vemos que la segunda condici on se puede sustituir con un else. Si leemos el c odigo vemos que tiene bastante sentido: si fav es igual a Fisica computacional , imprime esto y esto, si no, imprime esto otro. elif Otra estructura para el control del ujo hace uso de elif >>> if numero < 0: print "negativo" elif numero > 0: print "positivo" else: print "cero" elif es una contracci on de else if , por lo tanto elif numero >0 puede leerse como:si no, si numero es mayor que 0. Es decir, primero se eval ua la condici on del if. Si es cierta, se ejecuta su c odigo y se contin ua ejecutando el c odigo posterior al condicional; si no se cumple, se eval ua la condici on del elif. Si se cumple la condici on del elif se ejecuta su c odigo y se continua ejecutando el c odigo posterior al condicional; si no se cumple y hay m as de un elif se contin ua con el siguiente en orden de aparici on. Si no se cumple la condici on del if ni de ninguno de los elif, se ejecuta el c odigo del else.

23

4.4 Ciclos en Python


En la secci on 4.1 de este trabajo se dio una explicaci on de lo que era un ciclo y que tipos de ciclos exist an, aqui se mostrar a como implementarlos en Python. Ciclo while Veamos un ejemplo de bucle while >>> edad = 0 >>> while edad < 18: edad = edad +1 print "Felicidades, tienes " + str (edad) La varieble edad comienza con un valor igual a 0. Como la condici on de que edad es menor que 18 es cierta (0 < 18), sen entra en el ciclo. Se aumenta edad en 1 y se imprime el mensaje informmando de que el programador ha cumplido un a no. El bucle se sigue ejecutando hasta que edad sea igual a 18, momento en el cual la condici on dejar a de cumplirse y el programa continuar a ejecutando las sentencias siguientes al ciclo. Ciclo for...in Veamos un ejemplo del ciclo for en Python: >>> secuencia = ["uno", "dos", "tres"] >>> for elemento in secuencia: print elemento Los ciclos for se utilizan en Python para recorrer secuencias, por lo que vamos a utilizar un tipo secuencia, como es la lista, para nuestro ejemplo. Lo que el programa anterior ejecuta descrito en lenguaje natural es lo siguiente: para cada elemento en secuencia, realiza estas l neas de codigo. Lo que hace el bucle anterior es obtener el siguiente elemento de la secuencia secuencia y almacenarlo en una variable de nombre elemento. Por eso en la primera iteraci on del bucle elemento valdr a uno", en la segunda "dos" y en la tercera pues es obvio. >>> secuencia = ["uno", "dos", "tres"] >>> for elemento in secuencia: ... print elemento ... uno dos tres Anteriormente se describi o que es una funci on. En Python las funciones se declar an de la siguiente forma: >>> def mi_funcion(param1, param2): print param1 print param2 Veamos el ejemplo del programa que calcula el valor de la funci on exponencial en Python usando el diagrama de ujo de la gura 2

24

>>>i = 1 >>>fac = 1 >>>a = 1 >>>x = raw_input("valor exponente: ") >>>x = int(x) >>>n = raw_input(" termino de la serie: ") >>>n = int(n) >>> while(i != n): j = x**i fac = fac * i f = float(j)/float(fac) if i == 1: print " el valor del termino" + "1" + "es" + "1" a = a + f print " el valor del termino" + str(i + 1) + "es" + str(a) i = i + 1 y el c odigo anterior nos muestra para e3 empleando nueve t erminos de la serie de Maclaurin se presenta enseguida valor exponente: 3 termino de la serie: 9 el valor del termino1es1 el valor del termino2es4.0 el valor del termino3es8.5 el valor del termino4es13.0 el valor del termino5es16.375 el valor del termino6es18.4 el valor del termino7es19.4125 el valor del termino8es19.8464285714 el valor del termino9es20.0091517857

25

[1]O. Cair o Battistutti Metodolog a de la programaci on: algoritmos, diagrama de ujo y programas, Alfaomega, c2005, M exico, pp. 15-30. [2]B.A. Alex, M.F. Walter LaTeX: Composici on , gr acos y beamer,Revista matem atica, educaci on e internet, Costa rica, pp. 5-20. [3]C.S. Bernardo El libro de Latex, Prentice Hall, 2003, Madrid, pp. 12-30. [4]L. Tim Curso de Gnuplot para c omputo cientico,Cinvestav, M exico, pp.8-10. [5]A.G. Alvaro Manual r apido de Gnuplot archivo pdf,pp 3-9. [6]G. D. Ra ul Python para todos, Espa na, pp 24-36. [7]B. David, E. Je Aprenda a pensar como un programador con Python, Green Tea Press,EUA, pp 12-16.

26

También podría gustarte