OCTAVE
• Para teclear un comando el cursor debe estar situado después del sı́mbolo ¿¿.
• Una vez que el comando se ha tecleado y se pulsa la tecla enter, el comando es ejecutado. Sin
embargo solo se ejecuta el último comando, todo ejecutado anteriormente permanece inalterado.
• Se puede teclear más de un comando en una sola lı́nea, para ello sólo hay que poner una coma
entre comando y comando. Cuando se pulsa la tecla enter todos los comandos se ejecutan en
orden de izquierda a derecha.
• No es posible ir hacia arriba, a una lı́nea anterior, realizar una corrección y reejecutar de nuevo
un comando.
Punto y coma (;): Cuando se teclea un comando en la Ventana de Comandos y se pulsa la tecla
enter, el comando es ejecutado inmediatamente. Cualquier salida que genere el comando se
visualizará en la Ventana de Comandos. Si se teclea un punto y coma (;) al final de un comando,
la salida de dicho comando no será visualizada; esto puede ser útil, cuando el resultado de un
comando es obvio o conocido o cuando la salida es grande.
El sı́mbolo %: Cuando se teclea el sı́mbolo % (tanto por ciento) al principio de una lı́nea, Octave
considerará dicha lı́nea un comentario, esto significa que cuando se pulsa la tecla enter la lı́nea
no será ejecutada.
El comando clc: El comando clc (teclear clc y pulsar enter) borra la Ventana de Comandos. A
medida que se van tecleando y ejecutando comandos en la Ventana de Comandos, esta se va
llenando. Una vez que se teclea clc la ventana se limpia. Este comando no cambia nada que hay
sido creada antes, es decir si previamente se han definido variables,estas aún seguirán definidas
con sus valores asignados, y podrán seguir usándose normalmente.
Orden de precedencia Los cálculos se ejecutan en función del orden de precedencia que se muestra
en la relación siguiente. Este orden es el mismo que se utiliza en la mayorı́a de las calculadoras.
Precedencia Operación matemática
Primero Paréntesis. Para paréntesis anidados, el más interno es el que primero se ejecuta.
Segundo Exponenciación
Tercero Multiplicación, división (igual precedencia)
Cuarto Suma y resta.
Observación: En una expresión que contiene varias operaciones, las operaciones con mayor prece-
dencia son ejecutadas antes que las operaciones de menor precedencia. Si dos o más operaciones
tienen la misma precedencia, la expresión será entoncesejecutada de izquierda a derecha.
1. 7 + 8 ÷ 2
2. (7 + 8) ÷ 2
3. 4 + 5 ÷ 3 + 1
4. 53/2
√
5. 3 27 + 320.2
Ejercicios:
1. En cada caso asigne el valor correspondiente de cada variable y encuentre los resultados de las
nuevas variables:
(a) a = 12; B = 4; C = (a − B) + 40 − a ÷ B × 10
3. Más ejercicios
Note que en la definición del vector x , usamos el paso igual a 0.01. Esto determina la cantidad
de puntos que el comando plot usa para generar el gráfico. Cuánto más puntos, más perfecto
será el gráfico (pero será mayor el tiempo de ejecución). Si hubiésemos usado el paso 0.5
no tendriamos un gráfico de calidad.
M-archivos
Existen dos tipos de programas: scripts y functions. Ambos deben ser salvados con ex-
tensión .m en el directorio corriente. Una diferencia básica entre los dos es que los scripts
tratan a las variables, definidas en ella, como variables globales, mientras que las functions
tratan las variables como variables locales. De esta forma la functions tienen que tener un
valor de retorno.
Scripts (Archivo de instrucciones) Los scripts permiten que un conjunto de comandos y
definiciones sean ejecutados a través de un único comando en la ventana de comandos.
Como ejemplo, el script siguiente calcula la aproximación de la derivada de sen(x) usando
diferencias finitas.
% Aproximación de la derivada del seno
%Usando el operador de diferencias finita.
clear;
h=0.0001;
x=input(’Entre con el valor de, x=’);% Atribuye Valores a x
disp(’El valor de la aproximación es...’) %Muestra mensaje en el monitor
dsen=(sin(x+h)-sin(x))/h
Las primeras dos lı́neas son comentarios que describen el script. En la quinta lı́nea tenemos
el comando que permite atribuir valores a una variable. Y en la sexta lı́nea el comando que
permite mostrar un mensaje en el monitor. Vamos suponer que este archivo sea salvado
con el nombre de devira-seno.m. Para ejecutar el script digitamos su nombre.
Functions
En una función la primera lı́nea es de la forma function y=nombre(argumentos).
La función intercambia informaciones con octave por intermedio de la variable y y de los
argumentos. Para ilustrar el uso de funciones considere el siguiente código
function dsen=deriva-seno(x,h)
% Aproximación de la derivada del seno
%Usando el operador de diferencias finita.
dsen=(sin(x+h)-sin(x))/h;
A pesar de que este archivo se puede salvar con cualquier nombre, es usual usar el mismo
nombre de la función, o sea, deriva-seno.m. Para ejecutarlo debemos digitar su nombre e
informar los valores de los argumentos, por ejemplo,
>>y= deriva-seno(3.14,0.001)
Y nos dará para y una aproximación de la derivada de la función seno en 3.14. Una
diferencia importante entre esta versión, usando function, con la anterior es que el valor
calculado puede ser atruibuido a una variable. Además podemos escoger el valor de h que
en la versión anterior estaba fijo en h=0.0001.
Debemos notar que en el primer caso todas las variables del script están activas, es decir
son variables globales. Mientras que en el segundo caso las variables son locales, es decir la
variable h solo se activa en la ejecucin de la función.
Ejercicio Diseñe una función que devuelva el producto escalar de dos vectores x e y de Rn
.Los argumentos de entrada deben de ser los vectores x e y . Además, el correspondiente
archivo de tener alguna lı́nea de comentario.
Control de Flujo
El control de flujo es un recurso que permite que resultados anteriores influencien opera-
ciones futuras. Como en otros lenguajes, OCTAVE posee recursos que permiten el control
de flujo de ejecución de comandos, con base en estructuras de toma de decisiones. Presen-
tamos las estructura de loops for, loops while e if-else-end. La forma general de loop
for es
for x= vector
comandos...
end
Los comandos entre for y end son ejecutados una vez para cada columna del vector. A
cada iteración se le atribuye a x la próxima columna del vector. Por exemplo
>>for n=1:5
x(n) cos(n*pi/2);
end
>>x
x= 0.0000 -1.0000 -0.0000 1.0000 0.0000
El loop while ejecutaun grupo de comandos cuantas veces es necesario para que una condición
sea negada. Su forma general es
while expresión
comandos...
El grupo de comandos entre while y end son ejecutados hasta que la expresión asuma un
valor falso. Por exemplo,
>>while abs(x(n)-x(n-1))>10(−6)
x(n) 2*x(n-1) 1/4;
n=n+1;
end
En este caso el grupo de comandos son ejecutados hasta que el valor absoluto de la diferencia
entre dos valores consecutivos sea menor o igual a 10(−6) .
La estructura if-else-end permite que grupos de comandos sean ejecutados por una prueba
relacional. La forma general es dada por
if expresion
comandos 1...
else
comandos 2..
Si la expresión es verdadera es ejecutado el grupo de comandos 1, en caso contrario es
ejecutado el grupo de comandos 2. La siguiente estructura permite el uso de la forma más
simple que envuelve solo una condicional
if expresión
comandos...
end
Como ejemplo considere el siguiente fragmento de código que calcula el valor absoluto un
número
if x<0
x=-x;
end
Es decir, si x fuera menor que cero entonces cambia de signo, en caso contrario no hace
nada.