tutorial octave

Upload: napoleon-batista

Post on 13-Jul-2015

1.291 views

Category:

Documents


1 download

TRANSCRIPT

Tutorial GNU OCTAVE

Sobre Octave: GNU OCTAVE se puede definir como un lenguaje de alto nivel inspirado en un software comercial llamado MATLAB (MATrix LABoratory), y estuvo pensado inicialmente para que estudiantes de Ingeniera Qumica de las Universidades de Wisconsin-Madison y Texas calcularan reacciones qumicas. GNU OCTAVE es un lenguaje que se utiliza principalmente para realizar experimentos numricos, como por ejemplo permite determinar soluciones numricas de problemas lineales y no lineales. Tambin proporciona herramientas para la elaboracin y manipulacin de grficas que permiten la visualizacin y manipulacin de datos. Actualmente se le han incorporado libreras y funcionalidades, que nos permiten trabajar en varias reas del conocimiento como son el procesamiento de seales (sonido), de imgenes (filtrados, anlisis, etc.), estadstica, geometra, redes neuronales, sistemas de control realimentados y en dibujo vectorial entre otros. Estas libreras, se pueden programar de forma interpretada, usando el propio lenguaje de OCTAVE, o usando cualquier otro lenguaje como por ejemplo el C/C++.

PARTE A Manual deInstalacion Gnu Octave1- El primer paso que se debe realizar es descargar el archivo de instalacion de octave para el sistema windows XP, que puede ser descargado de la pagina inicial de Octave: http://www.gnu.org/software/octave/, en el link download.

Fig 1. Pagina inicial Gnu Octave.

Fig 2. Archivo de instalacin descargado.

2- Luego de ser descargado se ejecuta el archivo de instalacin, el cual muestra el asistente de instalacin de Gnu Octave.

3- Posterior a iniciar el asistente de instalacin, dando click en el botn next, muestra los trminos de licencia, basados en la General Public Licence, click en el botn next.

4- Se selecciona la ruta de instalacion de Octave. Por defecto es: C:\Octave\3.2.4_gcc-4.4.0, si se desea cambiar, click en el boton Browse y seleccionar la ruta deseada.

5- Posterior a la seleccin de la ruta de instalacin, se seleccionan los componentes de Gnu Octave con los cuales se va a trabajar, dentro de los cuales encontramos: Bioinformatica, gnuplot, procesamiento de imgenes y seales, entre otros. Adems de esto octave requiere seleccionar las libreras para algebra lineal de los diferentes tipos de CPU, en este caso si no se conoce en detalle se selecciona Generic.

6- Se establece la carpeta de inicio para Gnu Octave y click en el botn install.

7- Para finalizar el proceso de instalacin se da click en el botn Finish y se ejecuta Gnu Octave, el cual muestra la ventana de comandos para iniciar a trabajar.

PARTE A

TRABAJANDO CON OCTAVE

Octave fue creado para trabajar con matrices, siendo esta una de las caractersticas ms importantes de esta herramienta. Por lo cual todos las variables con las que se trabaja estarn representadas en forma matricial. Adems Octave tiene la capacidad de trabajar con el conjunto de los nmeros complejos. Por ejemplo, ingrese los siguientes comandos en la consola de Octave: a=5 b = 10 c = a*5 d = c + 10 e = d + 3i whos

Observe en la siguiente figura que a,b,c y d, con matrices cuyo tamao es de 1 fila y 1 columna.

Para definir matrices en Octave, se debe indicar entre corchetes los valores numricos de cada una de las posiciones de la matriz, separados por espacio para indicar una nueva columna y con punto y coma para indicar una nueva fila. Recuerde tambin que un vector es una matriz de una fila y n columnas. En la consola de Octave ingrese los siguientes comandos: a = [1 5 3 9 5] b = [8 10 11; 6 9 8; -6 3 -4] c = [4 -1; 3 -6; 8 0] whos Observe en la siguiente figura que a es una matriz de 1 fila y 5 columnas, es decir un vector de 5 elementos, b una matriz de 3 filas y 3 columnas, y c una matriz de 3 filas y 2 columnas.

Operaciones con matrices: Octave es capaz de realizar operaciones matriciales de una forma sencilla para el usuario. Los operadores utilizados por octave son: + adicin o suma sustraccin o resta * multiplicacin ' traspuesta ^ potenciacin \ divisin-izquierda / divisin-derecha .* producto elemento a elemento ./ y .\ divisin elemento a elemento .^ elevar a una potencia elemento a elemento

Por ejemplo, Dadas las siguientes matrices: a = [1 2;-5 6; -3 3] b = [2 -1 6; 3 -1 0] c = [2 -1 6; 7 -8 4;3 -1 2] d = [3 -4 3; 7 9 1; 1 9 6] Hallar: e = a*b; f = a g = c/d h = c.*d i = c+d j = 2*h k = j./c

Los resultados se presentan en la siguiente figura:

A partir de estas operaciones con matrices es posible solucionar ecuaciones lineales.

Por ejemplo: Hallar los valores de x, y, z de acuerdo a las siguientes ecuaciones:

Para solucionar este sistema de ecuaciones en octave, se procede de la siguiente manera: Se crean las matrices para representar el sistema de la forma: A*r=b a = [1 -2 3;4 1 -1; 2 -1 3] b = [11;4;10] y para obtener el valor de r: r = inv(a)*b o r = a\b Como puede verse en la siguiente figura:

El resultado del sistema de ecuaciones es: x = 2; y = -3 y z = 1.

Matrices predefinidas en Octave: Existen varias funciones en octave que permiten crear matrices predefinidas, dentro de las cuales estn: zeros(f,c), crea una matriz de ceros de f filas y c columnas ones(f,c), crea una matriz de unos de f filas y c columnas magic(n), crea una matriz mgica de n filas y n columnas eye(f,c), crea una matriz identidad de f filas y c columnas rand(f,c), crea una matriz con nmeros aleatorios de f filas y c olumnas randn(f,c), crea una matriz con nmeros aleatorios incluyendo nmeros menores a 0 de f filas y c columnas. Adems con el comando: imagesc(matriz), colorbar, es posible obtener una representacin grfica de la matriz. Ejemplos: A = zeros(3,3) B = ones(3,3) C = randn(5,5) D= eye(3,3) imagesc(C), colorbar

Los resultados se pueden observar en la siguiente figura:

Otra caracterstica importante de Octave, es que toma los vectores como un polinomio de grado n. De esta manera, al crear el siguiente vector: V = [1 2 3 4] Estamos representando el siguiente polinomio:

Dentro de las funciones que operan sobre polinomios en octave, tenemos: roots(pol): Obtiene las races del polinomio pol.

polyval(pol,x): Evaluacin del polinomio pol para el valor de x. Si x es un vector, pol se evala para cada elemento de x polyder(pol): Calcula la derivada de un polinomio polyder(p1,p2): Calcula la derivada de producto de polinomios Ejemplo: De los siguientes polinomios:

Hallar: Las races de los polinomios, La derivada de los polinomios, La derivada del producto de polinomios, Evaluar el primer polinomio en 5 puntos generados al azar. Para realizar estas operaciones en Octave, se ingresan los siguientes comandos: v = [1 2 3 4], para crear el primer polinomio w = [1 2 1], para crear el segundo polinomio roots(v) roots(w) polyder(v) polyder(w) polyder(v,w) polyval(v,randn(1,5))

El resultado puede observarse en la siguiente figura:

PARTE C

PROGRAMACION EN OCTAVE: La programacin en octave puede realizarse mediante un editor de texto, que puede ser block de notas, Wordpad, entre otros. Para crear un programa en octave, es necesario seguir el siguiente itinerario: Crear un archivo con extensin .m y escribir el cdigo que ser ejecutado por Octave En la consola de Octave seleccionar la ubicacin donde fue guardado el archivo Escribir el nombre del archivo y la extensin.

El siguiente ser un programa sencillo en el que se har uso de la sentencia IF,IFELSE, el cual capturara un numero e indicara si es par o impar. n = input(digite un numero), se utiliza la funcin input para capturar datos if mod(n,2)=0, se utiliza la funcin mod(x,y) para hallar el residuo de la divisin. disp('el numero es par');, se utiliza la funcin disp(string) para mostrar el resultado. else disp('el numero es impar'); end

Para ejecutar el programa anterior, primero se verifica la ruta donde se esta ejecutando Octave, con el comando pwd, en caso de que la ruta sea diferente a la ruta donde se almaceno el archivo, con el comando cd ruta cambiaremos la ruta de ejecucin de octave. El resultado puede observarse en la siguiente figura.

En el siguiente programa se utilizara la sentencia FOR y WHILE. El programa capturara un nmero y calculara su factorial, adems hallara los primeros n nmeros de la serie de Fibonacci. n = input('digite el numero: '); fact = 1; for i=1:n fact = fact*i; end disp('el factorial del numero es: '); disp(fact); m1 = 0; m2 = 1; j = 3; op = 0; disp('los primeros terminos de la serie de fibonacci son:'); disp(m2); while j