Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
--------------------------------------------http://kip289.blogspot.com.ar/2015/04/interpolacion-de-datos-2d-dispersos-en.htm
l
La idea es ver como se pueden interpolar datos que vienen de puntos dispersos (X
i,Yi,VALi) como pueden ser precipitacin o temperatura usando Octave (version lib
re de software MatLab).
Este es mas o menos el proceso de la creacin de un script simple que resuelve el
problema (nota: estos pasos los ejecute en un ubuntu 14.04)
Primero, instalar Octave
$sudo apt-get install octave
La version 3.8.x ya viene con un GUI asi que no hay que instalar el qtoctave, so
lo es necesario lanzarlo de esta forma:
$octave --force-gui
Un ejemplo muy bueno de la base todo este experimento que se puede copiar y pega
r dentro de octave:
rand ("state", 1);
x = 2*rand (1000,1) - 1;
y = 2*rand (size (x)) - 1;
z = sin (2*(x.^2+y.^2));
[xx,yy] = meshgrid (linspace (-1,1,32));
griddata (x,y,z,xx,yy);
Este cdigo genera la siguiente figura:
Ahora el problema es un poco diferente al ejemplo ya que hay que partir por punt
os x,y,z y luego convertirlo a una grilla con los datos interpolados.
El resultado es el siguiente, primero los datos puntuales (fig1), luego en la a
grilla gruesa (fig2) y luego pasados a grilla fina por interpolacin lineal (fig3)
y por cubica (fig4), finalmente splines con p=1 (fig5) y p=0.5 (fig6):
ans =
2.0+x^2+(3.0)*x
octave> collect ((X+1)*(X+2), X)
ans =
2.0+x^2+(3.0)*x
octave>
Note:
1) call symbols first
2) declare symbols with sym
3) capitalize functions like Sin
Para funciones paquete simbolico
--------------------------------http://octave.sourceforge.net/symbolic/overview.html
Cargar archivo con datos
-----------------------http://infocaminos.readthedocs.org/en/latest/ficheros.html
Cuando estamos trabajando con ficheros de texto hay varias funciones o comandos
de Octave que conviene conocer.
La funcin type() permite mostrar el contenido de un fichero de texto en la consol
a. La forma de utilizar la funcin es la siguiente: type(filename), siendo filenam
e una cadena de texto con el nombre de un fichero existente. Si el nombre del fi
chero incluye su ruta de directorio, se buscar el fichero en la ruta especificada
. Si solo se incluye el nombre del fichero, se buscar en el directorio de trabajo
.
El directorio de trabajo en el que estamos posicionados se puede consultar con p
wd(), que muestra en pantalla la ruta del directorio de trabajo donde estamos po
sicionados.
El contenido del directorio de trabajo se puede mostrar mediante el comando dir,
al estilo windows, o mediante el comando ls, al estilo linux. Los dos comando a
dmiten una mascara que permite especificar el tipo de fichero buscados. Por ejem
plo podramos utilizar dir *.m para mostrar un listado de los ficheros con extensin
.m. En la mscara, el arterisco hace la funcin de comodn. Podramos leer el comando a
nterior como: dir lo-que-sea punto m.
Tambin podemos cambiar el directorio de trabajo desde la consola de Octave. Para
ello se utiliza el comando cd, change directory, que admite un parmetro a continuac
in para especificar la ruta a la que se quiere acceder. Hay un atajo que hay que
conocer. Si tecleamos cd .., cd punto punto, nos moveremos al directorio padre d
el directorio en el que estemos posicionados. Para acceder a un determinado dire
ctorio utilizaremos: cd dirname, donde dirname es el nombre o la ruta completa d
el directorio en el que queremos posicionarnos.
Las funciones load() y save()
Podemos guardar variables en ficheros de texto mediante el comando Octave save.
Las variables guardadas las podremos recuperar luego mediante el comando load. E
l comando save se puede utilizar de distintas maneras:
save filename: Guarda todas las variables del workspace en el fichero filena
me, donde filename es el nombre del fichero y opcionalmente su ruta completa.
Example:
n = 30;
X = zeros (n, n, n);
for x = 1:n
for y = 1:n
for z = 1:n
X(x, y, z) = 1 / sqrt (x*x + y*y + z*z);
endfor
endfor
endfor
X = X * 200 / max (max (max (X)));
savevtk (X, spherical.vtk );
--------------------------------------------------------Function File: [ status ] = savevtkvector (X, Y, Z, filename)
Save a 3-D vector field of components X, Y, Z to the file filename in VTK format
.
This file format is used by Mayavi2 or ParaView for example. X, Y and Z should b
e 3-D arrays of the same size, each storing vector components in a given Cartesi
an direction.
If no write errors occurred, output argument status is set to 1, otherwise 0.