Herramientas en GNU/Linux para estudiantes universitarios: | ||
---|---|---|
Anterior | Cap�tulo 1. Introducci�n a Octave | Siguiente |
En la mayor�a de los casos, la forma de arrancar Octave es desde la linea de comandos tecleando octave. Octave muestra un mensaje inicial y un prompt indicando que est� esperando �rdenes del usuario.
$ octave GNU Octave, version 2.0.16.92 (i386-pc-linux-gnu). Copyright (C) 1996, 1997, 1998, 1999, 2000 John W. Eaton. This is free software with ABSOLUTELY NO WARRANTY. For details, type `warranty'. octave:1> |
Para terminar octave, basta con teclear quit o exit en el prompt de Octave.
octave:1> exit |
Los cap�tulos siguientes describen las caracter�sticas de octave en mayor detalle, pero antes de continuar es recomendable mostrar (e intentar) algunos ejemplos. Cada vez que se complete una linea con una pulsaci�n de retorno de carro, Octave responder� con un segundo prompt para seguir recibiendo entrada del usuario, o con la respuesta (puede tardar m�s o menos seg�n el n�mero de operaciones necesaria para computarla) si el usuario introdujo una orden completa.
Seg�n se van introduciendo los comandos Octave los almacena en un "hist�rico de comandos" y permite su recuperaci�n y edici�n. Simplemente pulsando las flechas del teclado num�rico, o si esto no funcionara con las teclas C-b o C-f para mover el cursor a izquierdas o derechas en el comando que estamos tecleando, y con C-p y C-n para recuperar �rdenes anteriores (retroceder en la historia) o volver a las �ltimas �rdenes.
Existen otras muchas combinaciones de teclas �tiles, la mayor parte de las cuales coinciden con las de emacs. |
Ejemplo 1-1. Definir n�meros
El siguiente ejemplo define dos n�meros, el primero el n�mero real 2, y el segundo el n�mero complejo 2+2j.
octave:1> a=2.1 a = 2.1 octave:2> b=a+2j b = 2.1 + 2i |
Inicialmente, los s�mbolos i y j son representaciones de la unidad imaginaria (i*i=-1, j*j=-1). Ambos s�mbolos son equivalentes.
Esto es cierto siempre y cuando no se asigne otro valor a las variables i y j o a sus correspondientes may�sculas. Por eso motivo se desaconseja su uso como variable. Lo mismo sucede con las constantes pi (relaci�n entre la longitud de la circunferencia y su di�metro) y e (base del logaritmo neperiano) |
En la definici�n de la variable b se ha usado la variable a. As�, si una variable est� a la izquierda del signo = se estar� asignando valor a esa variable, y si est� a la derecha ser� sustituida por su valor a la hora de hacer los c�lculos.
Tambi�n se observa que no hay ninguna diferencia a la hora de definir un n�mero real, complejo o imaginario, o al usarlo, lo que supone una gran comodidad a la hora de programar.
Octave usa el . (punto) para definir n�meros decimales (exactamente igual que en las calculadoras). |
Para obtener el valor de una variable basta con teclear el nombre de la variable a continuaci�n del prompt.
octave:3> b b = 2.1 + 2i |
Ejemplo 1-2. Crear un vector
Si queremos crear un vector fila con los elementos 1, 2, 1:
octave:4> v= [1 2, 1] v = 1 2 1 |
Para crear un vector columna
octave:5> w= [ > 1; -1 > 2 > ] w = 1 -1 2 |
Los s�mbolos [ y ] se usan para definir vectores y matrices. Si se trata de un vector fila, se introducen los elementos separados por espacios (o tabuladores) o por , (coma). Si es un vector columna se introducen los elementos separados por retornos de carro o por ; (puntos y coma). En el caso de las matrices, los elementos se introducen por filas. Est� permitido usar cualquier cantidad de espacios para separar elementos.
Ejemplo 1-3. Crear una matriz
Para almacenar la matriz identidad de rango 3 en una variable escribir�amos lo siguiente:
octave:6> I= [ > 1 0 0 > 0 1 0; 0,0,1 ] I = 1 0 0 0 1 0 0 0 1 |
Octave responde imprimiendo por pantalla la matriz correctamente formateada. A partir de este momento la variable I contendr� la matriz identidad de orden 3. El mismo resultado hubi�ramos podido conseguir usando la funci�n eye(3). Otros ejemplos de funciones que crean matrices son ones(), zeros() y rand().
Si desea saber como utilizar estas funciones teclee en el prompt de Octave help seguido por el nombre de la funci�n. Por ejemplo: help ones. Por desgracia la ayuda estar� en ingl�s. |
Ejemplo 1-4. Aritm�tica de matrices
La notaci�n de octave para aritm�tica de matrices, vectores y n�meros es clara y sencilla. Por ejemplo:
octave:7> b * I ans = 2.10000 + 2.00000i 0.00000 + 0.00000i 0.00000 + 0.00000i 0.00000 + 0.00000i 2.10000 + 2.00000i 0.00000 + 0.00000i 0.00000 + 0.00000i 0.00000 + 0.00000i 2.10000 + 2.00000i |
Y para multiplicar vectores:
octave:8> v * w ans = 1 octave:9> w * v ans = 1 2 1 -1 -2 -1 2 4 2 octave:10> v .* w' ans = 1 -2 2 |
Los vectores v y w son vectores de 1x3 y 3x1 respectivamente, esto explica que en el primer caso el resultado sea escalar y en el segundo una matriz 3x3. En el tercero se multiplican las componentes una a una (operador .*), y para que esta operaci�n no de error es necesario que la dimensi�n de los dos operadores sea la misma. En este caso se transpone w mediante el operador ' (ap�strofe):
octave:11> w' ans = 1 -1 2 |
Ejemplo 1-5. Soluci�n de ecuaciones lineales
Para solver un conjunto de ecuaciones lineales del tipo Ax=b disponemos del operador "divisi�n por la izquierda", \:
octave:12> A=[1 2 3; 3 1 2; 2 3 1]; octave:13> A\w ans = -0.55556 1.11111 -0.22222 |
Un ; (punto y coma) al final de una orden hace que octave despu�s de ejecutar la orden suprima su respuesta y nos presente el siguiente prompt. |
Ejemplo 1-6. Obteniendo ayuda
Para poder obtener informaci�n de Octave es necesario conocer el nombre de la orden que se quiere usar. Este nombre no tiene por qu� ser obvio. Un buen sitio para empezar es simplemente teclear help. Esto nos mostrar� todos los operadores, palabras reservadas, funciones, variables predefinidas (built-in) y ficheros de funciones. Si ya se conoce el nombre el comando, simplemente hay que pasarlo como par�metro:
octave:14> help rand zeros is a builtin function zeros (N), zeros (N, M), zeros (X): create a matrix of all zeros Additional help for builtin functions, operators, and variables is available in the on-line version of the manual. Use the command `help -i <topic>' to search the manual index. Help and information about Octave is also available on the WWW at http://www.che.wisc.edu/octave/octave.html and via the [email protected] mailing list. |
La tercera forma de obtener ayuda es por medio de help -i concepto, donde concepto es la palabra clave que queremos buscar.
Para que este comando funcione es necesario tener instalada la utilidad externa info (tambi�n software libre) y la documentaci�n de octave en el formato de esta herramienta. |
Siempre es recomendable documentar el c�digo, para hacerlo m�s inteligible a otras personas o al propio programador, por si en alguna ocasi�n tuviera que modificarlo. En Octave los comentarios empiezan con un signo # o %. Todo el texto que siga a continuaci�n hasta fin de l�nea es considerado como un comentario y no es evaluado por Octave.
function y = determinante(X) # # Uso: y = determinante(X) # # Esta funci�n calcula el determinante de la matriz X # X debe ser una matriz cuadrada. ... end |
En el ejemplo se muestra parte de la definici�n de una funci�n. El comando de Octave help es capaz de buscar el primer bloque de comentarios (aquel que sucede justo despu�s de la palabra clave function) e imprimirlo en pantalla. Por ejemplo, despu�s de definir la funci�n anterior, cuando se teclee help determinante se obtendr� el siguiente resultado:
function y = determinante(X) Uso: y = determinante(X) Esta funci�n calcula el determinante de la matriz X X debe ser una matriz cuadrada. |