Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tutorial Rapido de Octave PDF
Tutorial Rapido de Octave PDF
1. Introduccion
GNU Octave es un lenguaje de programacion de alto nivel especializado en
calculos numericos. Es libre, gratuito y puede descargarse de
http://www.gnu.org/software/octave/download.html
2. Primer vistazo
Al iniciar el programa, ya sea en un entorno grafico o por lnea de comando,
nos encontraremos con algun mensaje de bienvenida y la lnea de comando en
blanco para comenzar a trabajar.
>>
Existen dos maneras de trabajar con Octave: de forma directa, ingresando co-
mandos por la lnea de comandos, o bien generando un script. Un script es
un archivo de texto plano que contiene una serie de instrucciones que octave
puede interpretar y ejecutar, de extension .m. Lo mas usual es trabajar con
scripts, pero para comenzar este tutorial, los primero ejemplos se trabajaran
directamente por lnea de comando.
Lo mas sencillo que podemos hacer en Octave son cuentas, por ejemplo
>> 1+1
ans = 2
>> 65998-4855
ans = 61143
>>
Todo resultado puede ser guardado en una variable. Para asignar un valor a
una variable, debemos utilizar el operador =.
>> a=1
a = 1
>> b=599
b = 599
>> c=a+b
c = 600
>> d=2*3
d = 6
>>
>> a=1;
>> b=599;
>> c=a+b;
>> d=2*3;
>> c*d
ans = 3600
>>
1 2
3 4
>> rVector=[1 2 3 4]
rVector =
1 2 3 4
>> cVector=[1;2;3;4]
cVector =
1
2
3
4
>>
Una vez que tenemos nuestra matriz almacenada en una variable, podemos
acceder independientemente a cualquier elemento en forma individual. Basta
con indicar entre parentesis a cual de todos los elementos queremos acceder.
0.90000 0.40000
0.20000 0.90000
>>
utilizarse para indicar que se desea tener acceso a todos los elementos de una
fila o columna, y de esta manera tomar filas y/o columnas individuales dentro
de una matriz
>> matrix(1,:)
ans =
>> matrix(:,1)
ans =
0.90000
0.30000
0.40000
>>
>> n=96;
>> x(n:end)
ans =
96 97 98 99 100
>> n=5;
>> x(end-n+1:end)
ans =
96 97 98 99 100
>>
El resultado en los ultimos dos ejemplos es equivalente, sin embargo son dos
operaciones esencialmente diferentes. En el primer caso se accede a todos los
elementos a partir del nesimo elemento, mientras que en el segundo ejemplo se
accede a los ultimos n elementos.
Que sucede si necesitamos un vector con valores de 1 a 100? Tenemos que
ingresar los 100 valores manualmente? Por suerte, no. Con el operador : pueden
construirse vectores indicando el primer valor, el ultimo valor, y el paso entre
elementos. Si no se indica un valor para el paso, Octave entiende por defecto
que este es unitario.
>> [1:5]
ans =
1 2 3 4 5
>> [5:-1:1]
ans =
5 4 3 2 1
>> 11:3:20
ans =
11 14 17 20
>> [0:.2:1]
ans =
>>
>> x=rVector+cVector;
error: operator +: nonconformant arguments (op1 is 1x4, op2 is 4x1)
>>
>> rVector*cVector
ans = 30
>> cVector*rVector
ans =
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
>>
9 8
7 6
>> A.*B
ans =
9 0
0 6
>> C^2
ans =
7 10
15 22
>> C.^2
ans =
1 4
9 16
>>
>> a=[(1+i) 1]
a =
1 + 1i 1 + 0i
>> D
ans =
1 - 1i
1 - 0i
>> D.
ans =
1 + 1i
1 + 0i
>>
4. Funciones
Un comando es una orden que el usuario le indica al programa. En las sec-
ciones anteriores ya le estuvimos indicando comandos al programa, ya que los
operadores matematicos y el indexado de variables son ejemplos de comandos.
4 FUNCIONES 7
Existen otros comandos que pueden llegar a ser de utilidad, como por ejemplo
el comando exit, cerrar el programa.
Un comando que es de vital utilidad es help, el cual brinda informacion de
cualquier comando o funcion.
>>
http://www.math.utah.edu/docs/info/octave 9.html
Ademas de existir funciones matematicas definidas, tambien existen con-
stantes matematicas predefinidas. La lista completa de constantes matematicas
disponibles en Octave se encuentra en
http://www.math.utah.edu/docs/info/octave 8.html
>> log(100)/log(10)
ans = 2
>> sqrt(3^2 + 4^2)
ans = 5
>>
>> x
x =
>> log10(x)
ans =
0 1 2 3 4
>> y
y =
1 4 9 16 25
>> sqrt(y)
ans =
1 2 3 4 5
>>
5. Cadenas de caracteres
Hasta el momento tratamos a las variables como numericas, sin embargo
estas pueden tener caracter logico (verdaderofalso), pueden ser registros, o
incluso cadenas de caracteres (strings). En esta seccion trataremos a las variables
como strings, lo que puede ser de utilidad a la hora de realizar y rotular graficos.
Se describen las nociones basicas del manejo de strings as como las funciones
que seran de utilidad para el desarrollo de los trabajos practicos.
Las strings se definen entre y se asignan a las variables de la misma
manera que los numeros.
>> string1(2:5)
ans = Hola
>> string1(end)
ans = !
>>
6 GRAFICOS 9
http://www.gnu.org/software/octave/doc/interpreter/Output-Conversion-
Syntax.html
http://www.gnu.org/software/octave/doc/interpreter/Table-of-Output-
Conversions.html
Algunos ejemplos
6. Graficos
Octave es una poderosa herramienta para manipular datos gracias a su ca-
pacidad de calculo numerico. Sin embargo, ver resultados numericos no siempre
es util. En muchsimos casos resulta de mayor utilidad interpretar los resultados
de forma grafica. Para ello Octave cuenta con una gran variedad de funciones
destinadas a realizar graficos. Entre ellas encontramos plot(), stem(), bar(),
6 GRAFICOS 10
>> y=(1:10).^2;
>> plot(y);
>>
En este caso, el eje y toma los valores del vector y mientras que el eje x rep-
resenta el xesimo elemento del vector. Esta asignacion al eje x puede no ser
representativa de los valores graficados, por ello la funcion plot() nos permite
asignarle valores especficos a cada uno de los ejes, como se ve en el siguiente
ejemplo.
>> x=(-1:0.1:1);
>> y=x.^2;
>> plot(x,y);
>>
6 GRAFICOS 11
Suele ser necesario tener que graficar mas de una curva en un mismo grafico.
Hay dos formas de hacer esto y cada una tiene sus ventajas y desventajas.
>> x1=(0:0.1:1);
>> y1=x1.^2;
>> x2=x1;
>> y2=x2.^3;
>> plot(x1,y1,x2,y2);
>>
6 GRAFICOS 12
>> x1=(0:0.1:1);
>> y1=x1.^2;
>> x2=x1;
>> y2=x2.^3;
>> hold on;
>> plot(x1,y1);
>> plot(x2,y2);
>>
http://www.mathworks.com/help/techdoc/ref/linespec.html
>> t=(0:0.2:10);
>> f1=100;f2=200;f3=300;f4=50;
>> x1=sin(2*pi*f1*t*1e-3);
>> x2=sin(2*pi*f2*t*1e-3);
>> x3=sin(2*pi*f3*t*1e-3);
>> x4=sin(2*pi*f4*t*1e-3);
>> hold on
>> plot(t,x1,r,linewidth,3);
>> plot(t,x2,bo,markersize,15);
>> plot(t,x3,k^-,markersize,15);
>> plot(t,x4,gx,markersize,15);
>>
3 Solo MATLAB
6 GRAFICOS 14
Ahora las curvas tienen distinto formato, sin embargo todava faltan ele-
mentos en el grafico. Una persona que observe este grafico puede preguntarse:
Que se muestra en este grafico? Que representan los ejes del grafico? Que rep-
resenta cada una de las curvas? Para responder estas preguntas es necesario
agregar las etiquetas correspondientes que brinden la informacion necesaria.
Para ello existen un grupo de funciones que se encargan de agregar estas eti-
quetas. Las mas importantes son: title(), xlabel(), ylabel y legend(). En
el siguiente ejemplo se agregan todas estas etiquetas al ultimo grafico.
>> figure(2)
>> figure
>> figure
>>
>> figure
>> figure
>> figure(1),hold on;
>> plot(t,x1,b,linewidth,3),plot(t,x2,r,linewidth,3);
>> figure(2),hold on;
>> plot(t,x3,b,linewidth,3),plot(t,x4,r,linewidth,3);
>>
Apendice
A. Paquetes necesarios para realizar los traba-
jos practicos4
Para lograr que el script del Trabajo Practico corra correctamente en Octave
se debe instalar, ademas del Octave obviamente, tres paquetes de Octave-Forge.
Estos son: optim, miscellneous, io. En algunas distribuciones GNU/Linux
estos paquetes se encuentran en los repositorios. Por ejemplo, en Debian, es-
tos paquetes se encuentran en el repositorio oficial bajo el nombre de octave-
optim, octave-miscellaneous y octave-io. De esta forma, si se encuentran
en los repositorios de la distribucion que esten utilizando, se intalan mediante
su gestor de paquetes preferido y listo, ya estan en condiciones de correr los
script sin problemas.
En el caso en que estos paquetes no esten en los repositorios de la distribucion
que estan utilizando deben bajarlos de la pagina de Octave-Forge
http://octave.sourceforge.net
Una vez descargados ambos paquetes deben instalarlos desde dentro de Oc-
tave de la siguiente forma
el asterisco * al lado del nombre del paquete indica que este esta cargado. En
caso que el paquete no este cargado, se carga de la siguiente manera
4 Por Diego Fanego. Todo esto fue realizado en la version 3.0 de Octave. No fue probado
en versiones anteriores.
A PAQUETES NECESARIOS PARA REALIZAR LOS TRABAJOS PRACTICOS18