PDF de programación - Manual de iniciación a GNU Octave

Imágen de pdf Manual de iniciación a GNU Octave

Manual de iniciación a GNU Octavegráfica de visualizaciones

Actualizado el 22 de Abril del 2018 (Publicado el 3 de Septiembre del 2017)
1.769 visualizaciones desde el 3 de Septiembre del 2017
810,6 KB
92 paginas
Creado hace 18a (10/04/2006)
Manual de iniciación a GNU Octave

Autor:  José María Valiente Cifuentes

Trabajo realizado dentro de un Proyecto Fin de Carrera dirigido por 

Carlos Medrano Sánchez

en la E.U. Politécnica de Teruel

Año 2006

Licencia
Copyright (c) 2006 José María Valiente Cifuentes
Permission   is   granted   to   copy,   distribute   and/or   modify   this   document 
under the terms of the GNU Free Documentation License, Version 1.2 or 
any   later   version   published  by   the  Free   Software  Foundation;   with  no 
Invariant Sections, no Front­Cover Texts, and no Back­Cover Texts. A copy 
of the license is included in the section entitled "GNU Free Documentation 
License", at the end of the document.

Manual de Iniciación a GNU Octave



Manual

De

GNU Octave



Pág -1-





Manual de Iniciación a GNU Octave



1. Operaciones Básicas

1.1. Operaciones con matrices y vectores

1.1.1. Introducción de matrices desde el teclado
1.1.2. Operaciones con matrices
1.1.3. Tipos de datos

1.1.3.1. Números reales de doble precisión
1.1.3.2. Números Complejos
1.1.3.3. Cadenas de caracteres
1.1.3.4. Otras formas de definir matrices

1.1.3.4.1 Tipos de matrices predefinidos
1.1.3.4.2 Formación de una matriz a partir de otras
1.1.3.4.3 Direccionamiento de vectores y matrices a partir de
vectores
1.1.3.4.4 Operador <<Dos Puntos>> (:)
1.1.3.4.5 Definición de matrices y vectores desde fichero

1.1.3.5. Operadores Relacionales
1.1.3.6. Operadores Lógicos

1.2. Funciones de Librería

1.2.1 Características Generales de las funciones de librería
1.2.2. Funciones matemáticas elementales que operan de modo escalar
1.2.3. Funciones que actúan sobre matrices

1.2.3.1 Funciones elementales
1.2.3.2 Funciones Especiales
1.2.3.3 Funciones de Factorización y/o Descomposición Matricial

1.3. Más sobre operadores relacionales con vectores y matrices
1.4. Otras funciones que actúan sobre vectores y matrices

2. Otros tipos de datos de GNU Octave

2.1. Cadenas de caracteres
2.2 Hipermatrices (arrays de más de dos dimensiones)

2.2.1 Definición de Hipermatrices



Pág -2-





Manual de Iniciación a GNU Octave

2.3 Estructuras

2.3.1 Creación de Estructuras
2.3.2 Funciones para operar con Estructuras

2.4 Vectores o matrices de celdas (Cell Array)

2.4.1 Creación de vectores y matrices de Celdas
2.4.2 Funciones para trabajar con vectores y matrices de celda

3. Programación en GNU Octave
3.1. Bifurcaciones y bucles

3.1.1. Sentencia IF
3.1.2. Sentencia SWITCH
3.1.3. Sentencia FOR
3.1.4. Sentencia DO-UNTIL
3.1.5. Sentencia WHILE
3.1.6. Sentencia BREAK y CONTINUE

3.2 Ficheros *.m

3.2.1 Ficheros de Comandos (SCRIPTS)
3.2.2 Definición de Funciones
3.2.3. HELP para las funciones de usuario

4. Gráficos bidimensionales

4.1 Funciones gráficas 2D elementales

4.1.1 Función PLOT
4.1.2 Estilos de Línea y Marcadores para PLOT
4.1.3 Añadir Líneas a un gráfico ya existente
4.1.4 Comando SUBPLOT
4.1.5 Control de los Ejes

4.2 Control de ventanas gráficas: Función Figure
4.3 Otras funciones gráficas 2-D

5. Gráficos tridimensionales

5.1 Tipos de funciones gráficas tridimensionales

5.1.1 Dibujo de líneas: Función PLOT3
5.1.2 Dibujo de mallados: Funciones MESHGRID, MESH Y SURF
5.1.3 Dibujo de líneas de contorno: Función CONTOUR

5.2. Elementos Generales: Ejes, Puntos de vista, líneas ocultas,…



Pág -3-



Manual de Iniciación a GNU Octave


6. Otros aspectos de GNU Octave

6.1 Guardar variables y estados de una sesión: Comandos save y load
6.2 Guardar sesión: Comando diary
6.3 Medida de tiempos y de esfuerzo de cálculo
6.4. Funciones de función

6.4.1 Integración numérica de funciones
6.4.2 Integración Numérica de Ecuaciones Diferenciales Ordinarias



Pág -4-



Manual de Iniciación a GNU Octave



1. Operaciones Básicas


1.1. Operaciones con matrices y vectores



Como se comentó en la introducción que hemos visto en el punto anterior, GNU
Octave es un programa creado para trabajar con matrices, por lo tanto, este punto es
probablemente el más importante y en el que mejor tenemos que aclararnos para
empezar a trabajar. Tenemos muchas opciones para trabajar con ellas, podemos
intercambiar matrices, permutarlas, invertirlas; GNU Octave es una herramienta de
cálculo muy potente en lo que a matrices se refiere.



1.1.1. Introducción de matrices desde el teclado



Las matrices y vectores son variables del programa cuyos nombres podemos
definir, siempre y cuando no utilicemos los caracteres que el programa tiene como
caracteres prohibidos.

Para definir una matriz en GNU Octave se determina el número de filas y de
columnas en función del número de elementos que se proporcionan (o se utilizan). Las
matrices se definen por filas; los elementos de una misma fila están separados por
blancos o comas, mientras que las filas están separadas por pulsaciones intro o por
caracteres punto y coma (;). Tomemos como ejemplo:



octave:31> a=[1 1; 2 5]
Cuya salida será:
a =

1 1
2 5


A partir de este momento la matriz a está disponible para hacer cualquier tipo de
operación con ella (además de valores numéricos, en la definición de una matriz o
vector se pueden utilizar expresiones y funciones matemáticas). Por ejemplo, una



Pág -5-



Manual de Iniciación a GNU Octave


sencilla operación con a es hallar su matriz traspuesta. En GNU Octave, el apóstrofo
(') es el símbolo de trasposición matricial. Para calcular a’ (traspuesta de a) basta
teclear lo siguiente (se añade a continuación la respuesta del programa):
octave:32> a’
ans =

1 2
1 5

Como el resultado de la operación no ha sido asignado a ninguna otra matriz,
GNU Octave utiliza un nombre de variable por defecto (ans, de answer), que contiene
el resultado de la última operación. La variable ans puede ser utilizada como operando
en la siguiente expresión que se introduzca. También podría haberse asignado el
resultado a otra matriz llamada b.

Ahora vamos a definir una matriz b diferente para hacer operaciones básicas

con estas 2 matrices:
octave:32> b=[7 6; 8 3]
b =

7 6
8 3

Comenzamos con las operaciones más básicas que podemos encontrar, la suma

y la resta de matrices:
octave:33> a + b
ans =

8 7
10 8

octave:34> a -b
ans =

-6 -5
-6 2



Si realizamos la multiplicación de matrices con el operando * tendremos que
tener cuidado con que el número de columnas de la primera matriz debe coincidir con el
número de filas de la segunda:



Pág -6-



Manual de Iniciación a GNU Octave


octave:35> a * b
ans =

15 9
54 27

También podemos utilizar una multiplicación elemento a elemento, que aunque
no tiene demasiado sentido como multiplicación de matrices, si que es muy utilizable en
el caso de que la matriz no sea más que un conjunto ordenado de valores.
octave:36> a .* b
ans =

7 6
16 15


A continuación vamos a definir una nueva matriz a a partir de una función que

genera valores aleatorios entre 0 y 1.
octave:4> a=rand(3); #generar una matriz aleatoria de 3x3
octave:5> a
a =

0.6086115 0.0010003 0.3250563
0.4910289 0.2250230 0.4538064
0.6238124 0.5558372 0.9002053



Vamos ahora a crear una matriz 3x3 para realizar nuevos cálculos a partir de una

matriz más manejable si queremos comprobar a mano los datos que creamos.
octave:6> a=[1 2 1;1 2 3;4 3.4 4.5]
a =

1.0000 2.0000 1.0000
1.0000 2.0000 3.0000
4.0000 3.4000 4.5000


A partir de esta matriz a calculamos su inversa con el comando inv(a):

octave:7> b=inv(a)
b =



Pág -7-



Manual de Iniciación a GNU Octave



-0.13043 -0.60870 0.43478
0.81522 0.05435 -0.21739
-0.50000 0.50000 0.00000

Podemos comprobar multiplicando una por la otra que el cálculo es correcto:

octave:9> c=a*b
c =

1.00000 0.00000 0.00000
0.00000 1.00000 0.00000
0.00000 0.00000 1.00000

Si los valores no son exactos podemos utilizar el comando round() ya que
debido a los errores de aproximación en los cálculos podemos encontrar valores como
2.3e-109 que representa un valor extremadamente pequeño.

Si queremos comentar las líneas de código que ejecutamos, a continuación de la

operación podemos poner un comentario anteponiendo el carácter # o %
octave:10> c=a*b #podemos ver que la matriz c es la matriz identidad



De igual manera que se define una matriz podemos definir un vector:

octave:49> b=[2 0 0]
b =

2 0 0
octave:50> b=[2 0 0]’
b =

2
0
0

Como podemos observar, podemos definir vectores fila y vectores columna, con
sólo hacer la traspuesta del vector en la definición. También podemos definir un vector
columna como si hicieramos una matriz de 1xn
octave:46> b=[1;0];

Como podemos ver, no hemos obtenido resultado tras realizar la operación; esto
es debido a que hemos puesto un “;” al final de la línea de comando, esto hace que no
salga por pantalla lo que hemos ejecutado, cosa que resulta muy útil cuando las



Pág -8-



Manual de Iniciación a GNU Octave


matrices/vectores son de un número muy grande (100, 1000, …) y por lo tanto, difíciles
de manejar visualmente.

En GNU Octave se accede a los elementos de un vector poniendo el índice entre
paréntesis (por ejemplo x(3) ó x(i)). Los elementos de las matrices se acceden poniendo
los dos índices entre paréntesis, separados por una coma (por ejemplo A(1,2) ó A(i,j)).
Las matrices se almacenan por columnas (aunque se introduzcan por filas, como se ha
dicho antes), y teniendo en cuenta esto puede accederse a cualquier elemento de una
matriz con un sólo subíndice. Por ejemplo, si A es una matriz (3x3) se obtiene el mismo
valor escri
  • Links de descarga
http://lwp-l.com/pdf6735

Comentarios de: Manual de iniciación a GNU Octave (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad