1.2. Usar Octave

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
      

1.2.1. Ejemplos sencillos

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.

Sugerencia

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.

Atención

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.

Atención

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().

Sugerencia

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
	  

Sugerencia

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.

Atención

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.

1.2.2. Comentarios en Octave

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.