Académique Documents
Professionnel Documents
Culture Documents
Analisis Numerico
Introduccion a Octave
CNM-425
Departamento de Matematicas
Facultad de Ciencias Exactas y Naturales
Universidad de Antioquia
Contenido
1 Introduccion
2 Estructuras Selectivas
3 Estructura repetitivas
4 Vectores y Matrices
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Aspectos basicos
Aspectos basicos
Ventajas
Sencillo de utilizar
A diferencia de MATLAB. . .
GNU Octave
http://www.gnu.org/software/octave/
http://octave.sourceforge.net/
(Octave-Forge - Extra packages for GNU Octave)
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
~$ octave
octave:1>
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Variables y formatos
Variables: expresiones (identificadores) asociados a datos almacenados
en un sistema de memoria
Variables y formatos
Tipo Formato
short punto fijo, 5 dgitos 3.1416
long punto fijo, 15 dgitos 3.14159265358979
short e punto flotante, 5 dgitos 3.1416e+000
long e punto flotante, 15 dgitos 3.141592653589793e+000
short g punto fijo o flotante, 5 dgitos 3.1416
long g punto fijo o flotante, 15 dgitos 3.14159265358979
Variables predefinidas
Variable Uso
ans almacena el ultimo resultado
pi almacena el valor de = 3,1415 . . .
e almacena el valor de e = 2,7183 . . .
i almacena el valor de 1
eps epsilon de la maquina
Inf infinito
NaN resultado no numerico (Not a Number)
Entorno de trabajo
Variables utilizadas en una sesion de trabajo (who, whos)
octave:#> who -v
c cadena perim
octave:#> who -v
c perim
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Entorno de trabajo
octave:#> who -v
octave-3.0.1:32> whos -v
Funciones matematicas
Funcion Uso
sqrt(x) calcula la raz cuadrada de x
exp(x) funcion exponencial
log(x) funcion logaritmo natural
sin(x) calcula sen(x)
cos(x) calcula cos(x)
tan(x) calcula tan(x)
asin(x) calcula sen1 (x)
acos(x) calcula cos1 (x)
atan(x) calcula tan1 (x)
Instrucciones de entrada/salida
Salida de datos: Entero d, i
Punto fijo f, g
disp("texto") Punto flotante e
Caracter c
printf("cadena de formato", arg1, arg2,...) Cadena de caracteres s
octave:#> m=3;
octave:#> disp(m)
3
Instrucciones de entrada/salida
Entrada de datos por teclado:
input("texto")
input("texto", "s")
octave:#> palabra
palabra = casa
octave:#> letras
letras = 4
Scripts
Archivos de texto plano sin formato, con extension .m, que contienen
una sucesion de comandos de Octave
Se editan con cualquier editor de texto (usaremos QtOctave)
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Ejemplos de scripts
hola mundo.m
promedio.m
Ejemplos de scripts
pmol.m
Ejemplos de scripts
Ejemplo 1.1
Escriba un programa (script) en Octave que tenga como entradas los datos
enteros A y B y escriba el resultado de la siguiente expresion:
(A + B)2
3
Solucion
operacion.m
Ejemplos de scripts
Escriba un programa (script) en Octave tal que dado como datos la base y la
altura de un rectangulo, calcule su permetro y area.
Solucion
rectangulo.m
AREA = BASE*ALTURA;
PERIMETRO = 2*(BASE+ALTURA);
Funciones
Son scripts que tienen una sintaxis predefinida Sintaxis de una funcion
Ejemplo de funcion
Solucion
area.m rectangulo2.m
octave:#> rectangulo2
function z = perimetro(x,y) Ingrese la base: 2
% Calcula el permetro de un Ingrese la altura: 3
% cuadrado de lados x e y El area es 6.000000 y el permetro es 10.000000
z = 2*(x+y);
end
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Funciones inline
Sintaxis:
f = inline("expresion")
octave:#> g = inline("g")
octave:#> x(10)2 + y(10)2 g =
ans = 1 f(x) = exp(x)*cos(x)
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Sintaxis en Octave
if P
Instrucciones;
end
donde
P: condicion o conjunto de condiciones a
evaluar.
Intrucciones: instrucciones a realizar si
la condicion P es verdadera.
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Ejemplo 2.1
Solucion
nota.m
% Programa : nota.m
% Descripcion: Dada la calificacion de un
% alumno en un examen, se imprime "reprobado"
% si la calificacion menor a 3.
Ejemplo 2.2
Solucion
Datos:
Variables de salida:
sueldo.m
Sintaxis en Octave
if P
Instrucciones1;
else
Instrucciones2;
end
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Ejemplo 2.3
Solucion
nota2.m
Ejemplo 2.4
Solucion
Datos:
Variables de salida:
# SUE NSUE
1 200000 230000
2 550000 594000
3 140000 161000
4 400000 460000
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Sintaxis en Octave
if Condicion1
if Condicion2
Operacion21;
else
Operacion22;
end
end
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Sintaxis en Octave
if P1
Operacion11;
elseif P2
Operacion21;
else
Operacion22;
end
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Sintaxis en Octave
if Condicion1
if Condicion2
Operacion21;
else
Operacion22;
end
else
if Condicion3
Operacion31;
end
end
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Realice un algoritmo ( Octave) tal que dado como dato un entero, determine
si es par y en caso de no serlo, determine si es divisble por 3.
Solucion
par.m
% Lee entero
a = input("Ingrese un entero: ");
if (rem (a, 2) == 0)
printf ("El numero es par \n");
elseif (rem (a, 3) == 0)
printf("El numero es impar...
y no es divisible por 3 \n");
end
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Ejemplo 2.6
Solucion
Datos:
Variables de salida:
comparar.m
%*******************************************
% Descripcion: Dado tres enteros distintos,
% el programa los ordena de mayor a menor.
%*******************************************
% Lee tres enteros distintos
A = input("Ingrese un entero: ");
B = input("Ingrese un entero: ");
C = input("Ingrese un entero: ");
if A>B
if A>C
if B>C
printf(" %d, %d, %d \n", A, B, C);
else
printf(" %d, %d, %d \n", A, C, B);
end
else
printf(" %d, %d, %d \n", C, A, B);
end
else
if B>C
if A>C
printf(" %d, %d, %d \n", B, A, C);
else
printf(" %d, %d, %d \n", B, C, A);
end
else
printf(" %d, %d, %d \n", C, B, A);
end
end
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Sintaxis en Octave
for V=VI:ID:VF
sentencias
end
Ejemplo 3.1
Realice una algoritmo ( Octave) que imprima los enteros desde el 1 hasta el
10. No utilice estructuras repetitivas.
Solucion
naturales1.m
disp(1);
disp(2);
disp(3);
disp(4);
disp(5);
disp(6);
disp(7);
disp(8);
disp(9);
disp(10);
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
naturales2.m
for i=1:10
disp(i);
end
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Ejemplo 3.3
Ejemplo 3.3
Realice una algoritmo ( Octave) que imprima los enteros impares desde el 1
hasta el 10.
Solucion
naturales2.m
for i=1:2:10
disp(i);
end
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Realice una algoritmo ( Octave) que imprima los enteros desde el 10 hasta
el 1.
Solucion
naturales2.m
for i=10:-1:1
disp(i);
end
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Utilizacion:
Cuentan las veces que ocurre un determinado suceso
Controlan la ejecucion de un bucle que se realiza un determinado
numero de veces.
Sintaxis de un contador:
o tambien
Ejemplo 3.5
Solucion
Datos:
Variables de salida:
cuenta ceros.m
for i=1:N
NUM = input("Ingrese numero: ");
if NUM == 0
NUMCEROS = NUMCEROS + 1;
end
end
disp(NUMCEROS)
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Sintaxis de un acumulador:
Realice un algoritmo ( Octave) que sume los numeros enteros desde 1 hasta
N.
Solucion
Datos:
Variables de salida:
SUMA
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
sumaN.m
for i=1:N
SUMA = SUMA+i;
end
disp(SUMA);
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
n! = 1 2 (n 1) n , con 0! = 1 y 1! = 1
Solucion
Datos:
factorial.m
for i=1:N
PROD = PROD*i;
endfor
disp(PROD);
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Sintaxis en Octave
while EXPRESION
INSTRUCCIONES
end
Ejemplo 3.8
Solucion
Variables:
NUM: variable de tipo entero, almacena uno a uno cada numero a sumar
N = input("Ingrese N: ");
NUM = 1;
SUM = 0;
while NUM <= N
SUM = SUM + NUM;
NUM = NUM + 1;
end
PROM = SUM/N;
printf("Promedio = %g \n", PROM);
promedio para.m
N = input("Ingrese N: ");
SUM = 0;
for i=1:N
SUM = SUM + i;
end
PROM = SUM/N;
printf("Promedio = %g \n", PROM);
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Salir de un ciclo
17 , 15 , 18 , 16 , 19 , 17 , 20 , 18 , 21 , ...
Solucion
Variables:
sucesion mientras.m
sucesion para.m
for CONT=1:NT
disp(TER);
if BAN == 1
TER = TER - 2;
BAN = 2;
else
TER = TER + 3;
BAN = 1;
end
end
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Solucion
Variables:
multiplos3.m
while strcmp(CONTINUAR,"si")
NUM = input("Ingrese entero: ");
if NUM < 0
CONTINUAR = "no";
elseif rem(NUM,3) == 0
SUMA = SUMA + NUM;
end
end
disp(SUMA);
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
break:
continue:
return:
Solucion
primo break.m
while k<=n
if rem(N,k) == 0
break;
end
k++;
end
if (rem (N, k) == 0)
printf("El menor divisor propio de %d es %d \n", N, k);
else
printf(" %d is primo\n", N);
end
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Solucion
primo continue.m
Solucion
primo.m
function y = primo(n)
i = 2; % inicializa contador del ciclo
while i<n
if rem(n,i) == 0
y = 0;
return
end
i++;
end
y = 1;
end
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Vectores
octave:#> x = [1 2 3] octave:#> z(2:5)
x = z =
1 2 3 2 3 4 5
octave:#> cos(alfa)
octave:#> z = [1:6] ans =
z = 1.0000e+00 6.1232e-17 -1.8370e-16
1 2 3 4 5 6 1.0000e+00
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
octave:#> plot(t,u);
octave:#> der = 1:0.2:2
der =
1.0000 1.2000 1.4000 1.6000 1.8000 octave:#> hold on
2.0000 octave:#> plot(t,u);
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Material en construccion. . .
Introduccion Estructuras Selectivas Estructuras repetitivas Vectores y Matrices
Referencias
O. Cairo
Metodologa de la programacion
Segunda edicion. Alfaomega Grupo Editor, S.A., 2005
M.A. Criado
Programacion en lenguajes estructurados
Alfaomega Grupo Editor, S.A. de C.V. Primera Edicion, 2006
J.W. Eaton
GNU Octave: A high-level interactive language for numerical
computations
Network Theory Ltd., 2002
http://www.network-theory.co.uk/octave/manual/