Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1 / 78
(c) Rafael Rodrguez Galvn, Guillm Borrell. Se autoriza la utilizacin de este documento segn la licencia GFDL,
sin secciones invariantes, texto de portada ni de respaldo.
http://ciencialibre.forja.rediris.es
2 / 78
3 / 78
Seccin 1.1
Toma de contacto con Octave: Introduccin a Octave
4 / 78
Qu es Octave
Maxima,
5 / 78
Potencialidad de Octave
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 (interpolacin,
FFT, funciones spline,...)
6 / 78
Octave y Matlab
ventajas
inconvenientes
7 / 78
Lenguajes interpretados:
Octave
Python
8 / 78
Seccin 1.2
Toma de contacto con Octave: Primeros pasos con qtOctave
9 / 78
qtOctave
10 / 78
qtOctave
Dnde conseguirlo:
Blog:
http://qtoctave.wordpress.com/
Forja de RedIris:
https://forja.rediris.es/projects/csl-qtoctave/
11 / 78
Instalacin
GNU/Linux:
12 / 78
Arrancamos qtOctave...
Distintas secciones
1
2
3
4
Directorio actual
Otras utilidades:
1 http://www.gnu.org/software/octave/doc/interpreter/index.html
J. Rafael Rodrguez Galvn (OSLUCA)
13 / 78
Arrancamos qtOctave...
Distintas secciones
1
2
3
4
Directorio actual
Otras utilidades:
1 http://www.gnu.org/software/octave/doc/interpreter/index.html
J. Rafael Rodrguez Galvn (OSLUCA)
13 / 78
Arrancamos qtOctave...
Distintas secciones
1
2
3
4
Directorio actual
Otras utilidades:
1 http://www.gnu.org/software/octave/doc/interpreter/index.html
J. Rafael Rodrguez Galvn (OSLUCA)
13 / 78
+, -, *, /, ^
Re-editar rdenes:
, ,
(Maysculas
ans
+) ,
>> 1+3*1.5
ans = 5.5000
>> (2+3) ^10
ans = 9765625
>> ans /5^7
ans = 125
14 / 78
15 / 78
16 / 78
Ms madera...
>> 1/7
% Aritmetica punto fijo
ans = 0.14286
>> format long % Mostrar doble precisi ' on
>> 1/7
ans = 0.142857142857143
>> format
% O bien ' format short '
>> sin ( pi )
% sen ( pi ) = 0 ?
ans = 1.2246 e -16
>> eps
% El " cero " de la maquina
ans = 2.2204 e -16
>> x =1+2* i; y =2+3* i; % Asignacion , complejos
>> x*y
ans = -4 + 7i
J. Rafael Rodrguez Galvn (OSLUCA)
17 / 78
Variables
rdenes:
who:
listado de variables
whos:
listado detallado
clear x y ...:
clear all:
borrar variables
x, y,...
borrarlas todas
help orden:
load fichero
Variables reservadas:
18 / 78
Ejercicios
y =
1
+ x+
2
z = x +y
t = log(x + y + z )
1
19 / 78
20 / 78
Secuencias
Uso:
contador en bucles
denir rangos de valores
crear vectores la.
Ejemplo:
>> 1:5
ans =
1 2 3 4 5
>> 0:2:10
ans =
0 2 4 6 8 10
>> 0: -3: -10
ans =
J. Rafael Rodrguez
0 -3Galvn
-6 (OSLUCA)
-9
21 / 78
x = -1:0.1:1;
y =1./(1+ x .* x);
1
2
Los operadores
.*
./
elemento.
1
2
3
4
5
>> tablavalores
>> x
(... valores de x ...)
>> y
(... valores de y ...)
22 / 78
Tipos numricos
Por omisin, Octave (al igual que Matlab) emplea un nico tipo
numrico.
Ejemplo:
i=int8(32)
23 / 78
Se utilizan corchetes
El espacio en blanco o la coma separan columnas en una la
El retorno de carro o el punto y coma separan las
Ejemplo
M
11
12
13
21
22
23
24 / 78
Subndices
>> M (1 ,2)
ans = 12
>> M( end , end )
ans = 23
25 / 78
>> a = pi
a = 3.1416
>> a (1)
ans = 3.1416
>> a (1 ,1)
ans = 3.1416
>> a (1 ,1 ,1)
ans = 3.1416
26 / 78
0.285967
0.530313
0.999098
0.010804
0.860391
0.501339
>> a (3 ,4)
error : invalid column index = 4
27 / 78
0
0
0
0
0
0
0
2
1
0
0
0
28 / 78
Submatrices
11
12
13
14
15
21
22
23
24
25
31
32
33
34
35
41
42
43
44
45
51
52
53
54
55
29 / 78
Submatrices
Los subndices se seleccionan mediante secuencias. Si
i de 3 a 5
j de 3 a 5
35
45
55
30 / 78
Submatrices
Ejercicio: La orden
pascal(N)
31 / 78
Submatrices
las 1 a 3 y...
columnas 2 y 5
32 / 78
Submatrices
columnas 1, 3 y 5.
33 / 78
Submatrices
columnas 1, 3 y 5.
Solucin: La matriz formada por las columnas 1, 3 y 5 es...
>> P (: ,1:2:5)
34 / 78
Operadores
+ , - , * , / , ^
escalares: .* , ./ , .^
lgicos:
&, | , !
de comparacin: < , > , == , >= , <= , !=
matriciales o de conjuntos:
&& , ||
Operadores matriciales:
Operadores
Operadores
Operadores
Operadores
35 / 78
0
1
>> a && b
ans = 0
&& se utiliza para las sentencias condicionales.
&& es un operador de cortocircuito
Ejercicio: Cundo es A && A verdadero? La
orden
36 / 78
Operadores II
37 / 78
38 / 78
lgebra
39 / 78
lgebra
Manipulacin de matrices
reshape: Cambia la forma de la matriz conservando el nmero de
elementos
transpose: Traspuesta. Equivale a .'
ctranspose: Matriz conjugada. Equivale a '
rot90: Gira la matriz 90 grados en sentido antihorario.
Tamao de una matriz
size Devuelve el nmero de las y columnas
length Devuelve el nmero de elementos de un vector
3 En realidad,
length(A)=max(size(A))
40 / 78
41 / 78
42 / 78
Seccin 3.1
Representacin de grcos: Grcos 2D
43 / 78
Representacin grca
mediante el men
44 / 78
Plot 2D
1
2
3
45 / 78
Plot 2D (II)
El resultado (similar a)...
46 / 78
Plot 2D (III)
47 / 78
Plot IV
El resultado...
48 / 78
Plot V
Podemos poner varias curvas con distintos estilos:
>> legend ( ' exp ( x /10) * sin ( x) ',' exp ( x /10) * cos (x) ');
>> replot ; % Volver a pintar la gr ' afica
Y exportar a un chero
49 / 78
Plot 2D (VI)
El resultado...
50 / 78
Seccin 3.2
Representacin de grcos: Grcos en 3D
51 / 78
Curvas 3D
funcin plot3
Ejemplo: Representar una curva en el espacio a partir de tres
vectores de datos,
>>
>>
>>
>>
>>
1
2
3
4
5
5 Aunque
x, y, z.
t =0:0.1:10* pi ;
x =(1+ sin ( t)) .* cos ( t);
y =(1+ sin ( t)) .* sin ( t);
z=t;
plot3 (x ,y ,z);
representar familias de
curvas (cuando
52 / 78
53 / 78
[x,y]=meshgrid(xmin:hx:xmax, ymin:hy:ymax)
x e y:
Filas de x: copias del vector xmin:hx:xmax
Columnas de y: vector (ymin:hy:ymax)'
La funcin
Ejemplo
0
1
0
1
(x[i],y[j])
son un mallado de
[xmin,xmax][ymin,ymax]
54 / 78
Dibujo de supercies 3D
La orden
mesh(x,y,z)
= sin(x ) cos (y )
a
e
view(a,e), donde
55 / 78
56 / 78
Curvas de nivel
La orden
x, y
contour(x,y,z)
La variante
contourf
mesh
(nmero de curvas)
57 / 78
58 / 78
hdf5
hdf5
en formato
vtk
Se ha usado el programa
h5tovtk
h5dump
h5ls -r)
mayavi2
o con
paraview
(ltro Treshold)
59 / 78
60 / 78
61 / 78
Control de ujo
62 / 78
Condicionales
if saludo
disp ( ' hola ')
else
disp ( 'no te saludo ')
end
endif (no
endfor, endfunction
63 / 78
Bucles
Ejemplo del uso de la sentencia for:
64 / 78
Bucles iteradores
65 / 78
Otras sentencias
66 / 78
Recordar que
endfunction
67 / 78
Funciones annimas.
Denicin
inline).
Octave s lo permite
68 / 78
69 / 78
2
3
4
5
6
2
3
biblioteca.m
Denimos el chero
70 / 78
71 / 78
La biblioteca de funciones
Indicacin:
lookfor
lookfor fourier.
72 / 78
Toolkits en Octave
Tookits
toolkits
Muchos otros.
Toolkits
de
Matlab
7 http://atc.ugr.es/javier-bin/mpitb
J. Rafael Rodrguez Galvn (OSLUCA)
73 / 78
MiFuncion.cpp:
mkoctfile,
MiFuncion.oct,
>> MiFuncion
J. Rafael Rodrguez Galvn (OSLUCA)
74 / 78
holamundo.cpp
mkoctfile holamundo.cpp)
y lo usamos desde
Octave:
>> holamundo
`` Hola Mundo ! ''
J. Rafael Rodrguez Galvn (OSLUCA)
75 / 78
= x2
xcuadrado.cpp:
76 / 78
Compilamos ejemplo_wrap.cpp
ejemplo.cpp
ejemplo_wrap.cpp
mkoctfile),
+ ejemplo.cpp
(mediante
obteniendo ejemplo.oct
ejemplo
77 / 78
Bibliografa
Documentacin ocial:
http://www.gnu.org/software/octave/docs.html
Documentacin de Octave-Forge:
http://octave.sourceforge.net/docs.html
78 / 78