Está en la página 1de 49

Qu es Octave?

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Introduccin a la programacin en Octave o o


Ana Echavarr Uribe a
Universidad EAFIT

Febrero, 2012

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Agenda
1 2 3 4 5 6 7

Qu es Octave? e Octave vs. Matlab Primeros pasos con Octave Funciones Arreglos Strings Recomendaciones

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Qu es Octave? e

GNU Octave es un lenguaje de programacin principalmente o enfocado a computaciones numricas. Este lenguaje tiene e capacidad para la solucin de problemas lineales y no lineales. o El programa generalmente se manipula a travs de su interfaz tipo e consola donde se pueden ejecutar diferentes comandos para la ejecucin de sus programas. o El lenguaje de Octave es similar al leguaje de Matlab por lo que la mayor de sus programas pueden ser fcilmente ejecutados en a a Matlab.

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Qu es Octave? e

GNU Octave es un lenguaje de programacin principalmente o enfocado a computaciones numricas. Este lenguaje tiene e capacidad para la solucin de problemas lineales y no lineales. o El programa generalmente se manipula a travs de su interfaz tipo e consola donde se pueden ejecutar diferentes comandos para la ejecucin de sus programas. o El lenguaje de Octave es similar al leguaje de Matlab por lo que la mayor de sus programas pueden ser fcilmente ejecutados en a a Matlab.

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Qu es Octave? e

GNU Octave es un lenguaje de programacin principalmente o enfocado a computaciones numricas. Este lenguaje tiene e capacidad para la solucin de problemas lineales y no lineales. o El programa generalmente se manipula a travs de su interfaz tipo e consola donde se pueden ejecutar diferentes comandos para la ejecucin de sus programas. o El lenguaje de Octave es similar al leguaje de Matlab por lo que la mayor de sus programas pueden ser fcilmente ejecutados en a a Matlab.

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Octave vs. Matlab - Precio

El principal problema de Matlab es su precio. Una licencia de Matlab cuesta alrededor de USD$ 10,000 y cada toolbox adicional cuesta alrededor de USD $ 100. Sin embargo, una alternativa de software libre es Octave, que permite realizar programas similares a los de Matlab pero sin tener que invertir dinero en la licencia.

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Octave vs. Matlab - Funcionalidades

Como Octave es un software gratuito no es adecuado hacer comparaciones directas entre las funcionalidades de Octave y Matlab. Sin embargo, para el uso comn (el que necesitarn para u a el curso) Octave proporciona todas las funciones necesarias.

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Octave vs. Matlab - Interfaz

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Octave vs. Matlab - Ejemplo

Comparar Matlab y Octave es como comparar Oce y Open Oce. Para usuarios bsicos los dos tienen las mismas a funcionalidades pero uno de ellos es libre y el para el otro se necesita comprar una licencia.

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Abriendo Octave

1 2

Instalar y abrir Octave Cambiar al directorio (carpeta) donde se va a trabajar cd ~/Documents/Universidad/Monitoria/

Escribir comandos en la consola: Funciones predenidas Nombre de archivos .m (guardados en el mismo directorio) Funciones hechas por el usuario. Escribir el comando edit para abrir la ventana del editor y escribir all un programa.

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Programacin bsica en Octave o a

Sabemos que al programar se utilizan ciclos y decisiones. Veamos cmo se escriben estos en Octave. o

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Ciclos

As se representan los ciclos en Octave: Ciclos Pseudocdigo: o para i desde 1 hasta n a = a + 1 fin Cdigo: o for i = 1 : 1 : n a = a + 1; end

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Decisiones

As se representan las decisiones en Octave: Decisiones Pseudocdigo: o si i < n a = a + 1 sino a = 0 fin Cdigo: o if (i < n) a = a + 1; else a = 0; end

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Operadores lgicos o
Los operadores lgicos en Octave se representan as o : Operadores lgicos o Matemticamente: a a<b ab a=b a=b a b (a y b) a b (a o b) a (no a)

En cdigo: o a < b a <= b a == b a = b a && b a || b a

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Ciclos mientras

Ciclos mientras En pseudocdigo: o mientras i n y a < 10 a = a + 1 fin

En cdigo: o while (i <= n && a < 10) a = a + 1; end

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Ejercicios
Programar y ejecutar en Octave los siguientes programas: Ejercicio 1 n = 100, suma = 0 para i desde 1 hasta n suma = suma + i fin muestre suma Ejercicio 2 n = 100, i = 1, suma = 0 mientras que i n suma = suma + i i = i + 1 fin muestre suma

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Ejercicios
Programar y ejecutar en Octave los siguientes programas: Ejercicio 1 n = 100, suma = 0 para i desde 1 hasta n suma = suma + i fin muestre suma Ejercicio 2 n = 100, i = 1, suma = 0 mientras que i n suma = suma + i i = i + 1 fin muestre suma

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Reexin o

Preguntas
1

Los dos programas hacen lo mismo?

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Reexin o

Preguntas
1

Los dos programas hacen lo mismo? Respuesta: S los dos calculan la suma de los nmeros del 1 , u al 100

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Reexin o

Preguntas
1

Los dos programas hacen lo mismo? Respuesta: S los dos calculan la suma de los nmeros del 1 , u al 100 Cul es el valor nal de la variable suma? a

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Reexin o

Preguntas
1

Los dos programas hacen lo mismo? Respuesta: S los dos calculan la suma de los nmeros del 1 , u al 100 Cul es el valor nal de la variable suma? a Respuesta: suma = 5050. En general suma =
n(n+1) 2

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Funciones

Acabamos de escribir programas como una secuencia de instrucciones que no recibe parmetros y luego lo ejecutamos en la a ventana de Octave escribiendo el nombre del archivo. Sin embargo hay otra forma de ejecutar los programas entregndole algunos a valores como parmetros. Esta forma se logra escribiendo el a programa como una funcin. o

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Funciones
Ejemplo La siguiente funcin toma dos nmeros a y b y retorna su suma y o u su producto. function [suma, producto] = f(a, b) suma = a + b; producto = a * b; end function [suma, producto] = f(a, b) Se van a retornar los valores de las variables suma y producto. function [suma, producto] = f(a, b) La funcin va a o ser llamada por el nombre f. function [suma, producto] = f(a, b) La funcin o recibe dos parmetros que se van a llamar a y b. a

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Funciones
Ejemplo La siguiente funcin toma dos nmeros a y b y retorna su suma y o u su producto. function [suma, producto] = f(a, b) suma = a + b; producto = a * b; end function [suma, producto] = f(a, b) Se van a retornar los valores de las variables suma y producto. function [suma, producto] = f(a, b) La funcin va a o ser llamada por el nombre f. function [suma, producto] = f(a, b) La funcin o recibe dos parmetros que se van a llamar a y b. a

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Funciones
Cmo se ejecutan las funciones? o El archivo en el cual est guardada la funcin y la funcin deben a o o tener el mismo nombre. Luego se llama a la funcin as o . Ejemplo El resultado de f(5, 3) se guarda en las variables sum y prod. [sum, prod] = f(5, 3) sum = 8 prod = 15 Nota: Las funciones pueden ser llamadas tanto desde la ventana de comandos como desde otros programas guardados en el mismo directorio.

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Ejercicio

Ejercicio 3 Escriba una funcin que, dado n, retorne la suma de los nmeros o u de 1 hasta n.

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Ejercicio

Ejercicio 3 Escriba una funcin que, dado n, retorne la suma de los nmeros o u de 1 hasta n. Solucin o Una de las posibles soluciones ser a: function suma = sumar_hasta_n (n) suma = n * (n + 1) / 2; end

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Arreglos

En programacin existe una estructura de datos muy util que se o llama arreglo. Veamos cmo se representan los arreglos en Octave. o

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Inicializacin de arreglos o
Para crear un arreglo es necesario denir su nombre y su tamao n con una funcin de inicializacin. o o Inicializacin de arreglos o A = zeros(n, m) Inicializa el vector (o matriz) A en un tamao de n las y m columnas llenas de ceros. n A = ones(n, m) Inicializa el vector (o matriz) A en un tamao de n las y m columnas llenas de unos. n A = eye(n, m) Inicializa la matriz A como la matriz identidad de n las y m columnas (Matriz de ceros con unos en la diagonal). B = 1 : n Inicializa el vector B con los nmeros u consecutivos de 1 a n. Nota: Tambin se pueden inicializar matrices k-dimensionales e

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Inicializacin de arreglos o
El resultado de aplicar las funciones de inicializacin es un arreglo o del tamao especicado. n Ejemplos A = ones(2, 3) A= 1 1 1 1 1 1

A = [ 1 3 2 6; 4 8 -9 17; 3.5 12 11 8 ] 1 4 3.5 3 8 12 2 -9 11 6 17 8

A=

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Accediendo a posiciones de arreglos


Los arreglos en Octave empiezan con el nmero 1 y enumerando u primero las las y luego las columnas: Arreglos Para una matriz de n m a11 a21 A = a31 . . . an1 a12 a22 a32 . . . an2 a13 a23 a33 . . . an3 .. . a1m a2m a3m . . . anm

Para un vector de tamao n n B = b1 b2 b3 bn

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Accediendo a posiciones de arreglos


Se puede entonces acceder a una posicin de un arreglo basta con o llamarlo por su nombre y especicar los ndices del elemento al cual se quiere tener acceso ya sea para leer o alterar su valor. Arreglos var = A(i,j) asigna a la variable var el valor almacenado en la celda aij . A(i,j) = var reemplaza el valor guardado en aij por el valor de var. v = A(i,:) asigna al vector v el valor almacenado en la la i de la matriz A. A(:,j) = n : -1 : 1 reemplaza el valor de la columna j de A por el de los nmeros de 1 a n en orden descendente. u

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Ejercicio

Ejercicio 4 Realice un programa que, dado un nmero n 1, retorne un u arreglo cuya posicin i sea la suma de los nmeros de 1 a i. o u

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Ejercicio

Ejercicio 4 Realice un programa que, dado un nmero n 1, retorne un u arreglo cuya posicin i sea la suma de los nmeros de 1 a i. o u Solucin o function sumas = suma_en_vector(n) sumas = ones(n, 1); for i = 2 : n sumas(i) = sumas(i - 1) + i; end end

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Qu es un String? e

Un String es una palabra que en el computador se representa como un vector de caracteres (letras). Por ser vectores tienen las mismas propiedades que los arreglos numricos pero su inicializacin es e o diferente.

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Representacin de un String en Octave o

Los Strings se representan en Octave con las comillas simple ( ) as : Ejemplo s =Hola mundo Mi nombre es Ana

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Preguntas

Preguntas Sea s = Bienvenidos Cul es el resultado del comando s(1)? a

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Preguntas

Preguntas Sea s = Bienvenidos Cul es el resultado del comando s(1)? a B Cul es el resultado del comando s(1:4)? a

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Preguntas

Preguntas Sea s = Bienvenidos Cul es el resultado del comando s(1)? a B Cul es el resultado del comando s(1:4)? a Bien

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Ejercicio
Ejercicio 5 Teniendo el cuenta el resultado del ejercicio 3 modique el programa para que verique que n 1. En caso de que no sea as el programa debe mostrar un String que diga El nmero ingresado deber ser mayor o igual a 1. u

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Ejercicio
Ejercicio 5 Teniendo el cuenta el resultado del ejercicio 3 modique el programa para que verique que n 1. En caso de que no sea as el programa debe mostrar un String que diga El nmero ingresado deber ser mayor o igual a 1. u Solucin o function suma = sumar_hasta_n2 (n) if (n < 1) error = El nmero ingresado deber ser mayor u o igual a 1 suma = NaN; else suma = n * (n + 1) / 2; end end

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Recomendaciones nales
Algunos consejos para cuando se va a programar 1 Tener siempre un cdigo organizado, de tal manera que otra o persona que lo vaya a ver entienda qu es lo que se e est haciendo. Algunos consejos son: a
Tener el cdigo identado o Usar nombres claros para las variables Usar subfunciones como apoyo para una funcin muy grande o Comentar qu hace el cdigo, qu parmetros recibe y e o e a qu retorna y adems si hay una parte muy compleja explicar e a qu es lo se hace en ese pedazo del cdigo. En Octave se e o utiliza el s mbolo % para los comentarios
2

Saber cmo funciona el mtodo que se implement, o e o independientemente de qu persona de grupo lo program. e o Probar que sus mtodos funcionen ejecutndolo con casos de e a prueba para los que ya se sabe la respuesta (en el libro se presentan muchos casos en muchos ejemplos resueltos).

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Recomendaciones nales
Algunos consejos para cuando se va a programar 1 Tener siempre un cdigo organizado, de tal manera que otra o persona que lo vaya a ver entienda qu es lo que se e est haciendo. Algunos consejos son: a
Tener el cdigo identado o Usar nombres claros para las variables Usar subfunciones como apoyo para una funcin muy grande o Comentar qu hace el cdigo, qu parmetros recibe y e o e a qu retorna y adems si hay una parte muy compleja explicar e a qu es lo se hace en ese pedazo del cdigo. En Octave se e o utiliza el s mbolo % para los comentarios
2

Saber cmo funciona el mtodo que se implement, o e o independientemente de qu persona de grupo lo program. e o Probar que sus mtodos funcionen ejecutndolo con casos de e a prueba para los que ya se sabe la respuesta (en el libro se presentan muchos casos en muchos ejemplos resueltos).

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Recomendaciones nales
Algunos consejos para cuando se va a programar 1 Tener siempre un cdigo organizado, de tal manera que otra o persona que lo vaya a ver entienda qu es lo que se e est haciendo. Algunos consejos son: a
Tener el cdigo identado o Usar nombres claros para las variables Usar subfunciones como apoyo para una funcin muy grande o Comentar qu hace el cdigo, qu parmetros recibe y e o e a qu retorna y adems si hay una parte muy compleja explicar e a qu es lo se hace en ese pedazo del cdigo. En Octave se e o utiliza el s mbolo % para los comentarios
2

Saber cmo funciona el mtodo que se implement, o e o independientemente de qu persona de grupo lo program. e o Probar que sus mtodos funcionen ejecutndolo con casos de e a prueba para los que ya se sabe la respuesta (en el libro se presentan muchos casos en muchos ejemplos resueltos).

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Recomendaciones nales
Algunos consejos para cuando se va a programar 1 Tener siempre un cdigo organizado, de tal manera que otra o persona que lo vaya a ver entienda qu es lo que se e est haciendo. Algunos consejos son: a
Tener el cdigo identado o Usar nombres claros para las variables Usar subfunciones como apoyo para una funcin muy grande o Comentar qu hace el cdigo, qu parmetros recibe y e o e a qu retorna y adems si hay una parte muy compleja explicar e a qu es lo se hace en ese pedazo del cdigo. En Octave se e o utiliza el s mbolo % para los comentarios
2

Saber cmo funciona el mtodo que se implement, o e o independientemente de qu persona de grupo lo program. e o Probar que sus mtodos funcionen ejecutndolo con casos de e a prueba para los que ya se sabe la respuesta (en el libro se presentan muchos casos en muchos ejemplos resueltos).

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Recomendaciones nales
Algunos consejos para cuando se va a programar 1 Tener siempre un cdigo organizado, de tal manera que otra o persona que lo vaya a ver entienda qu es lo que se e est haciendo. Algunos consejos son: a
Tener el cdigo identado o Usar nombres claros para las variables Usar subfunciones como apoyo para una funcin muy grande o Comentar qu hace el cdigo, qu parmetros recibe y e o e a qu retorna y adems si hay una parte muy compleja explicar e a qu es lo se hace en ese pedazo del cdigo. En Octave se e o utiliza el s mbolo % para los comentarios
2

Saber cmo funciona el mtodo que se implement, o e o independientemente de qu persona de grupo lo program. e o Probar que sus mtodos funcionen ejecutndolo con casos de e a prueba para los que ya se sabe la respuesta (en el libro se presentan muchos casos en muchos ejemplos resueltos).

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Recomendaciones nales
Algunos consejos para cuando se va a programar 1 Tener siempre un cdigo organizado, de tal manera que otra o persona que lo vaya a ver entienda qu es lo que se e est haciendo. Algunos consejos son: a
Tener el cdigo identado o Usar nombres claros para las variables Usar subfunciones como apoyo para una funcin muy grande o Comentar qu hace el cdigo, qu parmetros recibe y e o e a qu retorna y adems si hay una parte muy compleja explicar e a qu es lo se hace en ese pedazo del cdigo. En Octave se e o utiliza el s mbolo % para los comentarios
2

Saber cmo funciona el mtodo que se implement, o e o independientemente de qu persona de grupo lo program. e o Probar que sus mtodos funcionen ejecutndolo con casos de e a prueba para los que ya se sabe la respuesta (en el libro se presentan muchos casos en muchos ejemplos resueltos).

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Recomendaciones nales
Algunos consejos para cuando se va a programar 1 Tener siempre un cdigo organizado, de tal manera que otra o persona que lo vaya a ver entienda qu es lo que se e est haciendo. Algunos consejos son: a
Tener el cdigo identado o Usar nombres claros para las variables Usar subfunciones como apoyo para una funcin muy grande o Comentar qu hace el cdigo, qu parmetros recibe y e o e a qu retorna y adems si hay una parte muy compleja explicar e a qu es lo se hace en ese pedazo del cdigo. En Octave se e o utiliza el s mbolo % para los comentarios
2

Saber cmo funciona el mtodo que se implement, o e o independientemente de qu persona de grupo lo program. e o Probar que sus mtodos funcionen ejecutndolo con casos de e a prueba para los que ya se sabe la respuesta (en el libro se presentan muchos casos en muchos ejemplos resueltos).

Qu es Octave? e

Octave vs. Matlab

Primeros pasos con Octave

Funciones

Arreglos

Strings

Recomendaciones

Prxima sesin o o

En la prxima sesin se aprendern algunos comandos de Octave o o a como: Entrada y salida de datos y mensajes. Manejo de funciones con el comando inline. Grca de funciones a Otros comandos utiles

También podría gustarte