Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual de Iniciacion Rapida A OCTAVE
Manual de Iniciacion Rapida A OCTAVE
1-Introducción
1-2. Instalación
Constantes Numéricas
Una constante numérica puede ser un escalar, un vector o una matriz o un
número imaginario. La forma más simple de una constante numérica, un escalar, es un
número simple que puede ser un entero, una fracción decimal, un número en notación
científica o un número complejo. Todas las constantes numéricas en Octave son
representadas internamente como números de punto flotante en doble precisión (los
números complejos se representan como dos valores flotantes). Un número de punto
flotante es lo que se conoce como real. Así algunos valores reales que tienen el mismo
valor numérico serán, por ejemplo, 105 ENTER, 1.05e+2 ENTER, 1050e-1 ENTER.
Estos valores se pueden ingresar directamente tipeándolos y Octave nos
mostrará el formato más simple del valor tipeado.
Una constante numérica compleja se escribe como una expresión de la siguiente
forma: 3 + 4i ENTER, 3.0 + 4.0i ENTER, 0.3e1 + 40e-1i ENTER. La única condición es
que no haya un espacio entre el número y la i que representa el valor de la raíz
cuadrada de -1.
Matrices
Es muy sencillo definir una matriz de valores en Octave. El tamaño de la
matriz es determinado automáticamente, así la expresión a = [1, 2; 3, 4] ENTER,
resulta en la matriz:
a= [ 13 24 ]
Nótese que los elementos de la matriz se separan con coma (,) y las filas con
punto y coma (;). Los elementos de la matriz pueden ser expresiones arbitrarias
siempre que las dimensiones mantengan coherencia, así la expresión [a , a] ENTER,
será
a= [ 13 2 1 2
4 3 4 ]
Rangos
Un rango es una forma conveniente de escribir un vector con elementos
igualmente espaciados. En un rango se define el primer elemento, un valor opcional de
incremento entre los elementos y el valor máximo que los elementos del rango no
deben exceder. Estos valores se separan con dos puntos (:), si el incremento no se
escribe se considera 1. Por ejemplo el rango 1:5 ENTER será equivalente a la fila
[1,2,3,4,5] , mientras que el rango 1:3:5 ENTER será [1,4], y el rango 7:-4:-18 ENTER
será [7,3,-1,-5,-9,-13,-17].
Un rango se puede leer de la siguente forma, sea 16:3:78, ir desde 16 hasta 78
avanzando de a 3.
Predicados
Llamaremos predicados a las funciones predefinidas que se incluyen en
Octave. Para los objetos numéricos existen algunos predicados útiles como por
ejemplo:
is_matrix(a) que devuelve un valor 1 si a es una matriz, ó 0 en otro caso.
is_vector(a) que devuelve un valor 1 si a es un vector, ó 0 en otro caso.
is_scalar(a) que devuelve un valor 1 si a es un escalar, ó 0 en otro caso.
is_square(x) si x es una matriz cuadrada devuelve la dimensión de la matriz,
sino 0.
is_symmetric(x,tol) si x es simétrica con tolerancia tol devuelve la dimensión de
x, ó 0 en otro caso. Si tol se omite se toma la tolerancia que utiliza la maquina en
donde se esta trabajando.
3-Variables
Una variable permite asignar un nombre a un valor que será utilizado luego. El
nombre de una variable consistirá de caracteres, dígitos y caracteres de subrayados,
pero no está permitido que empiecen con un dígito o con doble caracter de subrayado.
Los nombres de variable no deben superar los 30 caracteres. Las mayúsculas y
minúsculas son consideradas como diferentes caracteres. Como un ejemplo, Son
nombre de variables válidos X , x15 , _quien_es , altura.
El comando clear <variable> ENTER borra la variable, la variable deja de estar
definida. Los comandos who y whos listan las variables que se hayan definido. El
predicado exist(a) devuelve un 1 si la variable a existe, un 2 si el nombre, a, es el de un
archivo .m, 3 si es un archivo .oct y 5 si es una función predefinida de Octave.
4- Expresiones
Las expresiones son los ladrillos con los que se construyen todo en Octave. Una
expresión se evalúa en un valor, que se puede imprimir, comparar, pasar como
parámetro a una función o asignar a una variable con una operación de asignación.
Una expresión puede servir como sentencia. Una sentencia puede contener una
o más expresiones que incluyan variables, constantes, matrices, o combinaciones de
ellas.
Otro tipo de expresión básica es la llamada a una función que puede o no, estar
predefinida en Octave. Una función es un nombre para un cálculo particular. Así, por
ejemplo, sqrt ejecuta las sentencias para obtener (o calcular) la raíz cuadrada de un
valor.
Un conjunto fijo de funciones está predefinidas en Octave, pero se pueden
construir las propias funciones en caso de ser necesario.
La forma de utilizar una función es a través de una expresión de llamada a la
función que consiste de: el nombre de la función más una lista de argumentos entre
paréntesis. Estos argumentos son asimismo expresiones, que se separan con comas (,).
Si no son necesarios argumentos se pueden omitir los paréntesis, pero es mejor
utilizarlos para que quede en claro que se esta llamando a una función.
Algunos ejemplos son, sqrt(64) ENTER, ones(4,5) ENTER, rand() ENTER,
zeros(t,y).
Cada función posee una cantidad determinada de argumentos y cada
argumento debe ser de un determinado tipo. Además, Octave permite que se
devuelvan varios valores como resultado de utilizar dicha función. Por ejemplo, una
función sobre una matriz podría devolver el mayor, el menor y el valor más repetido
de la misma.
Algunas funciones predefinidas son sqrt(<variable>), sin(<variable>),
cos(<variable>), tan(<variable>), asin(<variable>), acos(<variable>), atan(<variable>),
sinh(<variable>), cosh(<variable>), tanh(<variable>), ones(<variable>,<variable>),
zeros(<variable>,<variable>), rand().
4-8. Evaluación
4-9. Sentencias
5-1.La sentencia IF
if (<condición>)
{parte-entonces}
endif
if (x< 2) ENTER
x++; ENTER
endif ENTER
if (rem (x, 2) == 0)
x++;
else
x--;
endif
Ese fragmento hace que si el resto de dividir x por 2 (que se escribe rem(x,2)) es
igual a cero (==0) se sumará 1 a x (x++;) y sino se le restará 1 a x (x--;)
if (<condición>)
{parte-entonces}
elseif (<condición>)
{parte-entonces-elseif}
elseif (<condición>)
{parte-entonces-elseif}
elseif (<condición>)
{parte-entonces-elseif}
else
{parte-no-entonces}
endif
Donde cada <condición> se chequea y cuando una <condición> es verdadera se
ejecuta su correspondiente {parte entonces}. Si ninguna es verdadera la última {parte-no-
entonces} será ejecutada. Puede haber muchas partes elseif.
if (rem (x, 2) == 0)
x++;
elseif (rem (x, 3) == 0)
x = x+5;
else
x--;
endif
while (condición)
cuerpo
endwhile
La sentencia break hace que la ejecución “salte” fuera del ciclo while o for que
la contiene.
La sentencia continue saltea el resto del ciclo que la incluye y empieza con el
siguiente ciclo de iteración inmediatamente.
6 - Archivos de Funciones
Los programas complicados en Octave pueden ser simplificados definiendo
funciones. Las funciones pueden ser directamente definidas en la línea de comando o
en archivos externos y pueden ser llamadas como funciones predefinidas.
6-1.Definiendo funciones
Un nombre válido de función debe obedecer a las mismas reglas que un nombre
válido de una variable. El cuerpo de la función consiste en un conjunto de sentencias
Octave. En el cuerpo de la función se define que es lo que la función debe hacer.
Normalmente, será necesario pasarle alguna información a la función que definimos.
La estructura general para pasar parámetros a una función en Octave es
donde ret-list será una lista de variables separadas por comas que guardarán los
valores devueltos por la función.
Por ejemplo:
return
Excepto para programas muy sencillos no es práctico tener que definir todas las
funciones que necesitamos utilizar cada vez que las necesitemos. En lugar de ello, la
idea es guardar las funciones en un archivo que sea fácil de utilizar, ya sea para
agregar funciones nuevas o modificar las que ya hemos creado y luego utilizarlas
desde Octave.
Octave no requiere que las funciones sean cargadas desde un archivo para
utilizarlas, simplemente hay que poner las definiciones de las funciones en algún sitio
donde Octave pueda encontrarlas.
Cuando Octave encuentra un identificador que no ha sido definido, primero
verifica que no sea una variable o función que ya haya sido usada. Si no la encuentra
allí, busca en la lista de directorios que se encuentra almacenada en la variable
predefinida LOADPATH, buscando archivos “.m” que tengan el mismo nombre que el
identificador. Así por ejemplo si Octave encuentra el identificador promedio en un
programa y no es una variable, buscará por el archivo promedio.m en la lista de
directorios definidos en LOADPATH. Una vez que Octave encuentra el archivo, el
contenido del mismo es leído. Si se define sólo una función dentro de ese archivo esta
función se ejecuta. El lugar por defecto en donde OCTAVE espera que se encuentren
los archivos es <directorio de instalación>/octave_files, entonces por ejemplo si
instalamos Octave con las opciones por defecto este lugar sería “c:/Archivos de
programas/GNU Octave 2.1.36/octave_files”.