Vous êtes sur la page 1sur 10

UNIVERSIDAD BOLIVARIANA DE VENEZUELA

PEQUEA GUA DE OCTAVE

Juan Carlos Sotillo Meneses

OCTAVE Octave es un programa surgido dentro de Linux. Por tanto, su caracterstica ms sobresaliente es que es un programa `de libre distribucin', es decir, suele venir de forma estndar con el Linux, no slo el programa, sino tambin el cdigo fuente, por lo que cualquier programador avanzado puede introducir mejoras. Bsicamente se comporta igual que MATLAB, aunque no tiene las toolboxes de ste. Sin embargo, cada da recibe contribuciones nuevas y va ampliando el nmero de funciones que puede realizar. Para iniciarlo, basta con teclear octave desde la lnea de comandos1, ya que viene implementado en la mayora de las distribuciones Linux actuales. Las mayores diferencias con el MATLAB se centran en dos puntos:

Su implementacin sobre Linux hace que algunas rdenes sean radicalmente distintas como
lpr para imprimir o rm para borrar un archivo.

Dado que su historia es ms corta que la del MATLAB, no dispone de todas las toolboxes que ste tiene.

La mayora de las rdenes del octave son iguales a las de MATLAB, con la ventaja de ser un programa con licencia de distribucin GNU. Para instalar OCTAVE, primero baje el archivo de http://sourceforge.net/projects/octave/files/ Vers la siguiente ventana (ver pgina siguiente):

Esta es el famoso (y no siempre agradable) Smbolo del Sistema en el INICIO -> TODOS LOS PROGRAMAS -> ACCESORIOS de WINDOWS.

Figura 1: Aspecto de la pgina de donde bajars OCTAVE Elige donde indica la flecha (roja, si ests viendo esta gua en colores). Descarga a tu PC y luego Instala2 (sigue las instrucciones de siempre). Debe instalarse muy fcilmente. Pero, lamentablemente, el OCTAVE as instalado es poco amigable para trabajar. Para ello se ha diseado una Interfaz de Usuario o GUI que permite que la interaccin con OCTAVE sea ms agradable. El siguiente apartado trata de ella, de dnde descargarla y de cmo instalarla.

Por favor, recuerda claramente (anota) el directorio donde se instal OCTAVE. Lo vas a necesitar para que XOCTAVE sepa dnde est OCTAVE. Ver la seccin OCTAVE y XOCTAVE.

XOCTAVE
Xoctave es una interfaz humana para GNU Octave. Xoctave encapsula al GNU Octave proveyendo tiles herramientas extra que harn GNU Octave mucho ms fcil de manejar y, adems, mucho ms agradable a la vista y costumbres basadas en ventanas amigables con el usuario.

Descargar de: http://xoctave.webs.com/, e ir a la pestaa DOWNLOANDS. O, directamente, de: http://xoctave.webs.com/apps/links/ All hay repositorios tanto para LINUX como para WINDOWS. Bajar la ltima versin estable (all tambin hay versiones beta, que no se han depurado del todo para estabilidad, pero que son, claramente, funcionales dentro de lo que nos podra interesar.) De todos modos, si hay tiene usted alguna duda, baje la penltima versin (ltima antes de la beta mencionada antes). Hemos de suponer que a medida que van saliendo versiones nuevas, deben contener algunas mejoras, pero no deberamos preocuparnos por ahora de estos detalles tcnicos.

Figura 2: aspecto de la ventana de XOCTAVE

OCTAVE Y XOCTAVE juntos Una vez instalados OCTAVE y XOCTAVE, debemos hacer que este ltimo vea al primero; es decir, que nos permita usarlo como interfaz de usuario para OCTAVE. Para ello, sigamos los siguientes pasos: Ejecutar XOCTAVE Localizar en la parte inferior la pestaa OPTIONS y en sta (en la parte superior), la pestaa CONSOLE. All vern un campo que dice Where is OCTAVE?. 3 Busca el camino (debe ser algo como C:\Octave\3.2.3_gcc-4.4.0\bin\octave.exe)
4

donde instalaste OCTAVE, haciendo click sobre el botn que aparece al lado del

campo en blanco (o verde, segn sea el color de fondo de XOCTAVE) . All debe estar un archivo ejecutable (.exe) llamado OCTAVE. Seleccinalo. Ahora vers, en la parte superior izquierda de la ventana de XOCTAVE, lo que muestra la figura

Haz click en el cono encerrado en el crculo (rojo para los que ven este documento en colores) listo! Ya deberas tener conectado OCTAVE con XOCTAVE.

A trabajar, pues

3 4

Ver nota 1 al pe de la pgina anterior. Nota que el ejecutable de OCTAVE est en la subcarpeta \bin del directorio C:\Octave\3.2.3_gcc-4.4.0\. Si recuerdas dnde se instal OCTAVE, es slo cuestin de buscar dicha arpeta en tu disco duro y seguir el camino aqu sealado.

ALGUNOS EJEMPLOS SENCILLOS CON OCTAVE Como sabemos ya, OCTAVE y MATLAB son muy parecidos, hasta el punto que se concibe OCTAVE como el equivalente Open Source5 de MATLAB (que es un ejemplo de lo que se llama software privativo), por lo que los ejemplos que daremos estarn, prcticamente, tomados de cdigos de MATLAB. Sin embargo, para notar de una vez las posibles diferencias entre OCTAVE y MATLAB, tambin mostraremos algunos ejemplos donde se haga explcito uso de las singularidades de OCTAVE. Comencemos. Ubicar la pestaa CONSOLE en la parte inferior de la ventana de XOCTAVE. sta es la equivalente a la ventana de comandos o command windows de MATLAB. All podemos escribir directamente los comandos de OCTAVE que deseemos ejecutar.

Ejemplo 1
Puedes comenzar escribiendo, al lado del prompt de comandos (que tiene la forma >>) el ejemplo ms sencillo posible 6: >> 2+2-4/7+2.5 Deberas obtener algo como lo que muestra la figura siguiente Si fue as, ya sabes que OCTAVE est operativo.

Ejercicio 1: Nota qu sucede si en vez de la sencilla lnea anterior, escribes las siguientes
posibilidades (anota al lado los resultados obtenidos e indaga por qu los diferentes resultados): 1. >>(2+2)-4/7+2.5 2. >>2+(2-4)/7+2.5 3. >>2+(2-4/7)+2.5

5 6

A veces se usa tambin el trmino software libre. Cuando escribamos el smbolo >> en esta gua, debemos entender que lo que sigue a continuacin se debe escribir directamente en la consola o ventana de comandos de XOCTAVE.

4. >>2+2-4/(7+2.5)

Entonces, vamos a complicar un poco ms las cosas7.

Ejemplo 2:
Copia el siguiente cdigo en la CONSOLE de XOCTAVE, lnea por lnea, y anda tomando nota de lo que sucede: >> A=[1 2 3; 4 5 6;7 8 9] >>B=[1 2 1; 2 3 1;1 -1 1] >>C=[1 2 1; 2 0 0] >>A*B >>B*A >>A*C Nota: qu sucede en este caso? Por qu?

>>d=[1 2 1] >>x=inv(A)*d

Ejemplo 3:
Escribe la matriz A de coeficientes del siguiente sistema de ecuaciones lineales de 3 ecuaciones con 3 incgnitas:

x y z 6 2x 4y z 7 x y 2z 5
Calcula la inversa de la matriz de coeficientes usando el comando inv(A).

Si al ser humano no le gustase complicar las cosas, estaramos todava como cazadores y recolectores en alguna sabana prehistrica.

Llama b al vector columna8 de trminos independientes del sistema de ecuaciones anterior. Calcula: >> x=inv(A)*b Calcula: >>A\b [qu diferencia observas?]

Ejemplo 4:
Consideremos el siguiente conjunto de datos Y ledos en funcin de cierta variable independiente X: X=[1 2 3 4 5 6 7 8 9 10] Y=[1.1 2.0 3.5 4.3 3.2 1.2 4.5 3.2 1.2 2.1] Note que el nmero de valores en Y es el mismo que en X. Para comprobar eso, simplemente escriba en la consola de XOCTAVE: >>size(X) >>size(Y) Y observe el resultado (deberan ser iguales) Grafiquemos los datos mostrados mediante la instruccin >>plot(X,Y) [NOTA: como MATLAB, Octave tambin distingue entre maysculas y minsculas, as que cuidado al escribir x en vez de X o y en vez de Y a menos que as lo hayas definido al principio del ejercicio-]

Ahora, calculemos los coeficientes de varios polinomios interpolantes (segn el mtodo de mnimos cuadrados) a los datos anteriores. Comencemos con un polinomio de primer grado. Para ello, la instruccin es: >> Z = polyfit(X,Y,1) [Aqu, X y Y son los vectores de datos y el 1 representa el grado del polinomio deseado: z=mx+b en este caso]9 El resultado obtenido son los coeficientes del polinomio de grado 1 que interpola los datos en Y respecto a la variable independiente X segn el mtodo de mnimos cuadrados.
8

Para asegurar que las dimensiones de inv(A) y de b sean las adecuadas para multiplicar. Ojo: el nombre de la variable Z, as como de otras que aparecen en este mismo ejercicio incluyendo X y Yson arbitrarios. Esos nombres los puedes cambiar a tu gusto.
9

Obtengamos los valores de dicho polinomio en la variable independiente X. >> valz=polyval(Z,X) La idea de esa instruccin es: en valz almacenar los valores del polinomio con coeficientes Z en los puntos dados por X. Ahora grafiquemos dicho polinomio mediante: >>plot(X,valz) Para hacer las cosas algo ms interesantes, pruebe lo siguiente: >>linx=linspace(min(X), max(X), 100) >>clf; plot(X,Y,r+,linx,polyval(Z,linx)); grid Qu hace ese ltimo par de instrucciones? Bien, veamos: linx=linspace(min(X), max(X), 100) simplemente calcula un vector de 100 componentes (ltimo valor entre parntesis) con valores que van desde el valor mnimo de X hasta el valor mximo de X. clf, borra las ventanas grficas plot ya sabes lo que hace, pero dentro de este plot especfico vemos varias cosas. Primero, se grafica en la misma ventana grfica (por eso todas las instrucciones en un solo plot) los valores de Y vs X usando cruces rojas (eso hace el comando grfico r+, r es de red rojo- y el + es el smbolo q se usar para graficar). Luego, graficamos polyval(Z,linx) vs linx, que no es ms que evaluar el polinomio de coeficientes Z en el vector linx que creamos en la lnea anterior. El comando grid genera una cuadrcula (escribe la segunda lnea de comandos sin el grid a ver qu obtienes)

All tienes, entonces, un grfico de los valores medidos y del polinomio de 1er grado interpolante de esos datos.

Ejercicio 4 Repite lo anterior para un polinomio de 2do grado


1. repite lo anterior para un polinomio de 3er grado 2. repite lo anterior para un polinomio de 4to grado 3. repite lo anterior para un polinomio de 10mo grado

Ejemplo 5 >> edit


Ese comando abrir el editor de XOCTAVE. Una vez que aparezca la ventana, copia en ella el siguiente cdigo:
function x=cuadratica(a,b,c) %Funcin que calcula las dos races de una ecuacin %cuadrtica %Entrega las dos races como componentes de un vector, %ordenadas de mayor a menor.

discr=b^2-4*a*c; x1=(-b+sqrt(discr))/(2*a); x2=(-b-sqrt(discr))/(2*a);

x=[x1 x2]; x=sort(x); return

Ese cdigo calcula y muestra ordenadamente las dos races (complejas en general) de una ecuacin cuadrtica ax 2 bx c 0 . Slo hay que pasarle desde la consola dichos valores. Por ejemplo, si queremos calcular las races de 2x 2 4 x 7 0 , simplemente escribimos en XOCTAVE: >> cuadrtica(2,-4,7) Y listo. Nota el resultado e inventa con trus propias funciones cuadrticas.