Anda di halaman 1dari 43

Preliminar lgebra Lineal, Mtodos Numricos, Clculo Vectorial

Introduccin a GNU Octave y QtOctave

Diap.: 1

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

GNU

GNU es un acrnimo recursivo: GNU is Not Unix. Inicialmente fue una filosofa que se enfocaba a la creacin de un sistema operativo robusto y estable como UNIX. Hoy en da se refiere a cualquier software que sea libre de ser: usado, modificado y distribuido.

Diap.: 2

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

GNU Octave

Es un lenguaje interpretado de alto nivel, destinado primordialmente al clculo numrico. Proporciona herramientas para la solucin numrica de problemas lineales y no lineales. Adicionalmente provee de capacidades grficas para la visualizacin y manipulacin de datos. Normalmente es usado a travs de su lnea de comandos interactiva, pero tambin puede usarse para escribir programas no interactivos. Tambin existen aplicaciones que dotan a Octave de un amigable entorno de ventanas, por ejemplo: QtOctave. Su lenguaje es similar al de MathWorks Matlab, con la diferencia de que se distribuye bajo la GNU General Public License.

Diap.: 3

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Caractersticas de Octave

Incluye herramientas para:


Operaciones matriciales. Resolucin de sistemas de ecuaciones lineales y no lineales. Clculo de autovalores y autovectores. Clculo de races de ecuaciones no lineales. Aproximacin numrica de funciones y datos. Clculo numrico derivadas e integrales. Resolucin numrica de ecuaciones diferenciales.

Diap.: 4

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Lenguaje interpretado

En trminos coloquiales se refiere exclusivamente al hecho de que para ejecutar un cdigo escrito en l, se requiere que primero se est ejecutando una plataforma o mquina intermedia que sirve de intrprete, es decir, un cdigo no genera archivos ejecutables por s mismos. Ventajas:

Reduccin del ciclo de desarrollo. Polivalencia y disposicin de herramientas adicionales. Facilidad para abordar problemas complejos.

Desventaja:

Lentitud en la ejecucin del proceso.

En el caso de GNU Octave se salda con el complemento del lenguaje compilado, en particular del C++.
Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla 18 de ago de 2013

Diap.: 5

Instalacin de GNU Octave y QtOctave

En GNU/Linux casi todas las distribuciones lo incluyen en sus repositorios. En particular, la distribucin Fedora la incluye de paquete en Spin Electronic Lab, Spin Robotics, Spin Scientific KDE. Para Microsoft Windows, se encontrar informacin relativa en:

http://es.scribd.com/doc/151537171/Instalando-Octave-y-QtOctave-MSWindows

Diap.: 6

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Entornos de Octave y Qt Octave

Octave originalmente se trabaja por una lnea de comandos. QtOctave permite un entorno de ventanas para el software.

Diap.: 7

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Pantalla de trabajo de QtOctave


Variables en uso Editor de scripts

Historial de Comandos

Navegador de carpetas

Lnea de comandos
Diap.: 8

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Operaciones Bsicas

Operadores numricos: suma (+), resta (-), producto (*), divisin (/), potencia (^). Se respeta la precedencia de operaciones. El resultado se almacena en una variable contenedor genrica ans. Se pueden reciclar y re-editar rdenes mediante las teclas de cursor: , , Shift con , Shift con .

Diap.: 9

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Caractersticas bsicas compatibles con Matlab

Comillas simples para introducir cadenas de caracteres. Introducir el smbolo de porcentaje (%) para agregar comentarios. Continuar un comando en la siguiente lnea colocando tres puntos suspensivos. Punto y coma para que se evale la operacin pero sin mostrar el resultado.

Diap.: 10

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Ms operaciones bsicas

Diap.: 11

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Para las variables

Comandos:

who, muestra un listado de variables. whos, listado detallado. clear x,y, borra las variables x e y. clear all, borra todas las variables.

Variables reservadas:

ans; eps; inf; nan; pi; i, j (cuando son usados como nmeros complejos); e; nargin; nargout; realmin; realmax;bitmax; varargin; varargout.

Diap.: 12

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Funciones bsicas incorporadas

Una breve lista de funciones incorporadas es:


abs(z), devuelve la magnitud de un nmero complejo z. sin(x), cos(x), tan(x) funciones trigonomtricas fundamentales. Tambin existen las hiperblicas: sinh(x), cosh(x), tanh(x). Funciones trigonomtricas inversas asin(x), acos(x), atan(x). Inversas hiperblicas: asinh(x), acosh(x), atanh(x). exp(x), calcula el exponencial de x. log(x), calcula el logaritmo natural de x log10(x), calcula el logaritmo de base 10 de x. sqrt(x), calcula la raz cuadrada de x. floor(x), devuelve el entero ms grande no mayor que x. Si x es complejo lo realiza sobre la parte real y la parte imaginaria.
Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla 18 de ago de 2013


Diap.: 13

Operaciones Bsicas: Ejercicios

Defina las variables:


x =e y=
1

1 1 1+ x+ 2

z= x + y t = log ( x + y + z )

Gurdelas en un archivo llamado variables.m Elimine las variables existentes en la lnea de comandos y a continuacin vulvalas a crear desde el archivo.

Diap.: 14

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Secuencias

Son series numricas que se utilizan como contadores en bucles o intervalos. Permiten la creacin rpida de vectores fila.

Diap.: 15

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Matrices

GNU Octave utiliza por definicin un nico tipo de nmero, de tal modo que las matrices son arreglos de dimensin n cuyos elementos son nmeros reales de doble precisin. Para introducir matrices tenemos dos modos:

Estilo Matlab: los elementos van entre parntesis cuadrados, aquellos que son de la misma fila se separan con espacios y las filas se separan con intros. Estilo Octave: Los elementos van entre parntesis cuadrados, los que son de la misma fila se separan por comas y las filas se separan con punto y coma.

Diap.: 16

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Submatrices

Se pueden extraer secciones de una matriz mediante el uso de secuencias.

Diap.: 17

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Operadores

Matriciales: +, -, *, /, ^ . Escalares: .*, ./, .^ . Lgicos: &, |, !. Comparacin: <, >, ==, >=, <=, != . Conjuntos: &&, || .

Diap.: 18

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Creacin de matrices especiales

eye(n{,m}): crea una matriz de ceros con unos en la diagonal. ones(n{,m}): crea una matriz de unos. zeros(n{,m}): crea una matriz de ceros. rand(n{,m}): devuelve una matriz con elementos aleatorios distribuidos uniformemente en el intervalo de (0,1). diag(v,k): devuelve una matriz diagonal con el vector v en la k-sima diagonal. Si k=0 (opcin por defecto) se coloca sobre la diagonal principal, si k>0 el vector se coloca sobre la diagonal principal, si k<0 el vector se coloca bajo la diagonal principal.

Diap.: 19

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Creacin de matrices especiales

linspace(base,lmite, n): crea un vector fila con n elementos linealmente espaciados desde base hasta lmite.. logspace: lo mismo que el anterior pero con elementos espaciados logartmicamente. Funcin archivo [xx,yy]=meshgrid(x,y): dados los vectores de coordenadas x e y, devuelve dos matrices correspondientes correspondientes a las coordenadas x e y de una malla. Las filas de xx son copias de x, y las columnas de yy son copias de y.

Diap.: 20

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Manipulando las formas de las matrices

reshape(a,m,n): Devuelve una matriz de m filas y n columnas cuyos elementos son tomados de la matriz a. Para decidir como ordenar los elementos, Octave pretende que los elementos de una matriz son colocados en columnas de mayor orden. x': Transpuesta compleja conjugada de x. Para argumentos reales equivale a la transpuesta simple (x.'). rot90(x,n): Devuelve una copia de x con los elementos girados en sentido horario en incrementos de 90 grados. size(a,n): Devuelve el nmero de filas y columnas de a. lentgth(a): Devuelve el nmero filas o el nmero de columnas de a, el que sea el mayor

Diap.: 21

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Matrices: Ejercicios

Dada la matriz A mostrada calcule aij


1 2 3 A= 4 5 6 7 8 9

y A*A

( )
13 23 33 43 53 14 24 34 44 54 15 25 35 45 55

Dada la matriz B intercambie de posiciones las columnas 2 y 4. Luego intercambie la fila 3 con la 5.
11 21 B = 31 41 51

Diap.: 22

12 22 32 42 52

)
18 de ago de 2013

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

Graficacin 2D

GNU Octave se auxilia de un software genrico y libre para graficar: GnuPlot. En 2D Octave en realidad lo que hace es asociar un par de vectores para representarlos en un plano xy, dicho de otro modo: los vectores x e y no necesariamente tienen que guardar relacin entre s. Ejemplo: Graficar y = e sin x
x 5

Diap.: 23

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Graficacin 2D: Ejemplo

Diap.: 24

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Graficacin 2D: Ttulo y Leyenda

Diap.: 25

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Graficacin 2D: Ms de una funcin en un grfico

Slo definimos las dos funciones y ejecutamos el comando plot:

Diap.: 26

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Graficacin 2D: Formatos

El comando plot sigue la sintaxis plot(x, y, formato). Con el formato podemos elegir:

Tipos de lnea: '-' por omisin; '.' puntos; '@smbolo_alfanumrico'. Colores: colocando algunos caracteres especficos podemos seleccionar un color para el grfico: 'k' para negro, 'r' para rojo, 'g' para verde, 'b' blue, 'm' para magenta, 'c' para cian, 'w' para blanco.

Diap.: 27

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Graficacin 2D: Ejemplos de formato


>>plot(x,y1,'r',x,y2,'@----+c')

Diap.: 28

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Graficacin 3D: Curvas

La graficacin de curvas en el espacio se realiza a travs del comando plot3.

>>> t=0:0.1:10*pi; % secuencia paramtrica >>> x=(1+sin(t)).*cos(t); >>> y=(1+sin(t)).*sin(t); >>> z=t; >>> plot3(x,y,z);
Diap.: 29

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Graficacin 3D: Ejemplo de curvas

Diap.: 30

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Graficacin 3D: Mallas

La graficacin 3D requiere de la creacin de mallas, para lo cual se utiliza el comando meshgrid, que permite crear matrices a travs del copiado filas de x, y el copiado de columnas de y. Se crean tantas filas como la cantidad de valores de y se indiquen, y se crean tantas columnas como la cantidad de valores de x se indiquen. [x,y]=meshgrid(xmin:incx:xmax, ymin:incy:ymax)

Diap.: 31

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Graficacin 3D: Superficies

Se forman a travs del comando mesh(x,y,z), donde x e y son las matrices correspondientes a una malla, y z es la matriz que evala f(x,y). Ejemplo: Graficar la funcin f(x,y)=x-y.

Diap.: 32

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Graficacin 3D: Ejemplo

Diap.: 33

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Graficacin 3D: Otras opciones

El punto de vista se puede modificar usando: view(a,e), donde a es la azimutal, ngulo de rotacin en el plano xy; y e es la elevacin vertical. colorbar('dir') permite incorporar una barra de color en el grfica para interpretar la altura contour(x,y,z) permite representar las curvas de nivel de las funciones. Admite un cuarto parmetro, n, que es el nmero de curvas. contoruf(x,y,z) hace lo mismo que el anterior pero mediante el uso de degradados de color.

Diap.: 34

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Graficacin 3D: view y colorbar


>>> view(30,45); >>> colorbar('East');

Diap.: 35

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Graficacin 3D: contourf


>>> contourf(x,y,z); >>> colorbar('East');

Diap.: 36

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Graficacin: Ejercicios

Obtenga las grficas de las funciones: f(x)=x-4x-2, -5x-10. f(x,y)=cos(xy), -3x3, -3y3.

Diap.: 37

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Definicin de Funciones

Para definir funciones de usuario se utiliza el siguiente formato:


function [sal1, sal2,...,salM]= nombre_ funcion (arg1,arg2,...,argN) instrucciones endfunction

Ejemplo: Escribir una funcin que cambie de coordenadas polares a coordenadas cartesianas y guardarlo en un archivo con el mismo nombre que la funcin.

Diap.: 38

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Creamos un archivo llamado polarAcarts en el editor de QtOctave.

Definicin de Funciones: Ejemplo

Probamos la funcin en la lnea de comandos.

La instruccin feval nos permite evaluar de otro modo las funciones.

Diap.: 39

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Programacin: Sentencias

Octave cuenta con instrucciones similares a las de otros lenguajes de programacin para la realizacin de ciclos y condicionales.
if (condicin) instrucciones else instrucciones end while (condicin) instrucciones endwhile for var=expresin instrucciones endfor

Diap.: 40

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Programacin: Tpicos auxiliares

Operadores de relacin: igual que (==), diferente de (!=), menor que (<), mayor que (>), menor o igual que (<=), mayor o igual que (>=). Operadores Lgicos: Not (!), And (&) Or (|). De corto circuito: And (&&), Or (||). Valores Booleanos: 1 es Verdadero, 0 es Falso. nargin es una variable de sistema que almacena la cantidad de argumentos que se han pasado a una funcin. return es una instruccin que permite terminar la ejecucin de una funcin. break es una instruccin que rompe la ejecucin de una iteracin. fprintf permite desplegar mensajes con formato en una funcin. error permite mostrar mensajes de errores de usuario en la ejecucin de funciones, si nosotros los cachamos.
Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla 18 de ago de 2013

Diap.: 41

Programacin: Ejemplo.

Una modificacin de la funcin de conversin de coordenadas a polares a coordenadas cartesianas para asegurar la introduccin de la cantidad de argumentos correctos.

Lo probamos.

Diap.: 42

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013

Programacin: Ejercicio

Programe una funcin que permita calcular el factorial de un nmero. Note que:

El factorial slo existe para nmeros enteros positivos. El factorial de 0 y 1 es 1.

Diap.: 43

Lic. Edgar Hernndez Garca. Divisin De Ingeniera Mecatrnica. ITS Zacapoaxtla

18 de ago de 2013