1
0
Fork 0
mirror of https://github.com/Findus23/Bachelors-Thesis.git synced 2024-08-27 19:52:12 +02:00

add more text to Delaunay Triangulation

This commit is contained in:
Lukas Winkler 2019-09-07 12:02:56 +02:00
parent 4c4ef0cf3e
commit 30176331b6
Signed by: lukas
GPG key ID: 54DE4D798D244853
3 changed files with 22 additions and 3 deletions

View file

@ -26,7 +26,9 @@ In one dimension, linear interpolation is pretty trivial. For example, let's ass
\end{figure}
In two dimensions things get more complicated as we now have a set of points with $X$ and $Y$ coordinates (Figure \ref{fig:3dinterpolate-1}). One fast way to find the closest points to the point that should be interpolated is using Delaunay triangulation. This separates the space between the points into triangles while trying to maximize their smallest angle. Afterwards, the closest three points can be found very quickly by checking the nodes of the surrounding triangle (Figure \ref{fig:3dinterpolate-2}). If we now again have a function $f(X,Y)$ similar to the one-dimensional example, we can create a unique plain through the three points and get the interpolated value for any pair of $X$ and $Y$ on this layer. (Figure \ref{fig:3dinterpolate-3})
In two dimensions things get more complicated as we now have a set of points with $X$ and $Y$ coordinates (Figure \ref{fig:3dinterpolate-1}). One fast way to find the closest points to the point that should be interpolated is using Delaunay triangulation. This is a method to separate the space between the points into triangles while trying to maximize their smallest angle and to make sure no other point is inside the circumcircle of the triangles\footcite{Delaunay}. Connecting the centers of the circumcircles results in a Voronoi diagram.
Afterwards, the closest three points can be found very quickly by checking the nodes of the surrounding triangle (Figure \ref{fig:3dinterpolate-2}). If we now again have a function $f(X,Y)$ similar to the one-dimensional example, we can create a unique plain through the three points and get the interpolated value for any pair of $X$ and $Y$ on this layer. (Figure \ref{fig:3dinterpolate-3})
\begin{figure}[] % also temporary
@ -50,7 +52,7 @@ In two dimensions things get more complicated as we now have a set of points wit
This approach has the advantage that it can be extended in more than two dimensions by replacing the triangle in the Delaunay triangulation\todo{nebensatz mit Zitat} with an n-simplex in n dimensions. The \texttt{scipy.spatial.Delaunay} python function allows to quickly calculate it thanks to the \texttt{Qhull} library\footnote{\url{http://www.qhull.org/}}. One noticeable limitation of this method is that data can't be extrapolated. Therefore the possible output is limited to the convex hull of the input parameter space (as seen in Figure \ref{fig:3dinterpolate-2}).
This approach has the advantage that it can be extended in more than two dimensions by replacing the triangle in the Delaunay triangulation with an n-simplex in n dimensions. The \texttt{scipy.spatial.Delaunay} python function allows to quickly calculate it thanks to the \texttt{Qhull} library\footnote{\url{http://www.qhull.org/}}. One noticeable limitation of this method is that data can't be extrapolated. Therefore the possible output is limited to the convex hull of the input parameter space (as seen in Figure \ref{fig:3dinterpolate-2}).
\subsection{Implementation}
\label{sec:griddata-implementation}

View file

@ -11,7 +11,7 @@ Another approach to interpolate data is using \textit{Radial Basis Functions} (\
s(x_i)=p_i,\quad i=1,2,\dots,n
\end{align}
The RBF interpolation now consists of a linear combination of $\phi(\left\|x-x_i\right\|)$ for a chosen radial function $\phi$ which $n$ constants $\lambda_i$.
The RBF interpolation now consists of a linear combination of $\phi(\left\|x-x_i\right\|)$ for a chosen radial function $\phi$ with $n$ constants $\lambda_i$.
\begin{align}
s(x)&= \sum_{i=1}^{n}\lambda_i\phi(\left\|x-x_i\right\|) \\

View file

@ -188,4 +188,21 @@
keywords = {smooth particle hydrodynamics, GPU-computing, hydrodynamics, continuum mechanics},
}
@Article{Delaunay,
author = {Boris Delaunay},
title = {Sur la sphère vide. A la mémoire de Georges Voronoï},
journal = {{Bull. Acad. Sci. URSS}},
year = {1934},
language = {French},
volume = {1934},
issue = {6},
pages = {793-800},
url = {http://mi.mathnet.ru/eng/izv4937},
fjournal = {{Bulletin de l'Acad\'emie des Sciences de l'URSS. VII. S\'erie}},
owner = {lukas},
publisher = {Academy of Sciences of the Union of Soviet Socialist Republics - USSR (Akademiya Nauk SSSR)},
timestamp = {2019.09.07},
zbl = {0010.41101},
}
@Comment{jabref-meta: databaseType:biblatex;}