wia/seminararbeit.tex

154 lines
6.1 KiB
TeX
Executable File

\documentclass[conference,compsoc,final,a4paper]{IEEEtran}
%% Bitte legen Sie hier den Titel und den Autor der Arbeit fest
\newcommand{\autoren}[0]{Schöne, Roman}
\newcommand{\dokumententitel}[0]{Julia als Werkzeug für Fraktale Geometrie}
\input{preambel} % Weitere Einstellungen aus einer anderen Datei lesen
% Literatur einbinden
\addbibresource{literatur.bib}
\begin{document}
% Titel des Dokuments
\title{\dokumententitel}
% Namen der Autoren
\author{
\IEEEauthorblockN{\autoren}
\IEEEauthorblockA{
Hochschule Mannheim\\
Fakultät für Informatik\\
Paul-Wittsack-Str. 10,
68163 Mannheim
}
}
% Titel erzeugen
\maketitle
\thispagestyle{plain}
\pagestyle{plain}
% Eigentliches Dokument beginnt hier
% ----------------------------------------------------------------------------------------------------------
% Kurze Zusammenfassung des Dokuments
\begin{abstract}
Am Ende einfügen
\end{abstract}
% Inhaltsverzeichnis erzeugen
\small\tableofcontents
% Abschnitte mit \section, Unterabschnitte mit \subsection und
% Unterunterabschnitte mit \subsubsection
% -------------------------------------------------------
\section{Einleitung}
Schon im 19. Jahrhundert beschäftigten sich Mathematiker
Die Grundlagenarbeit der fraktalen Geometrie beruht auf Werken des Mathematikers Gaston Julia und seinem Konkurrenten Pierre Fatou anfangs des 20. Jahrhunderts \autocite{walterFraktaleGeometrischenElemente2018}.
Diese Errungenschaften griff der Mathematiker Benoît Mandelbrot um die 1970er Jahre in seinem Buch \textit{The Fractal Geometry of Nature} wieder auf und verlieh dem Bereich der fraktalen Geometrie an wachsender Popularität. \autocite{smithFractalGeometryHistory2011}
Die Begründer Gaston und Julia besaßen zur damaligen Zeit noch keine Computer, mit denen Sie ihren Forschungsobjekte darstellen konnten. \autocite{walterFraktaleGeometrischenElemente2018}
In seinem Werk bedient sich Mandelbrot an einer Vielzahl von Visualisierungen für die untersuchten Fraktale.
Die resultierenden Bilder wecken aufgrund der Ästhetik auch das Interesse vieler Nicht-Mathematiker sich mit dem Themengebiet zu befassen
\autocite{smithFractalGeometryHistory2011}.
Mit dem Lauf der Zeit
\section{Hintergrund}
\section{Die Programmiersprache Julia}
Ein Team aus unabhängigen Entwicklern entschied sich 2009 den Startschuss für die Entwicklung von Julia zu setzen. Bis zur ersten Veröffentlichung von Julia verliefen 3 weitere Jahre .
Im August 2018 wurde die Veröffentlichung von Julia 1.0.0 bekanntgegeben \autocite{januszekComparativeAnalysisEfficiency2018}.\\
Das Ziel von Julia ist das \textit{Zwei Sprachen Problem} zu lösen.
Für das Angehen von technischen Problemen werden ist populärste Ansatz zwei Sprachen zu verwenden. Eine Sprache mit leichter Syntax auf hoher Ebene wird in Kombination mit einer Sprache auf niedriger Abstraktionsebene verwendet. Ein bekanntes Beispiel ist die Python-Bibliothek \textit{NumPy}, die in C geschrieben ist.
\autocite{bezanson2015}.
\section{Kriterien}
Im folgenden Abschnitt betrachten wir die ausgewählten Kriterien:
\begin{itemize}
\item Performance
\item Parallelisierbarkeit
\item Verfügbarkeit Softwarepakete
\item Entwicklungsumgebungen
\end{itemize}
Tests werden durchgeführt auf <Prozessor> <Betriebssystem> <Arbeitsspeicher> und <Julia-Version>
\subsection{Performance}
\subsection{Parallelisierbarkeit}
\subsection{Softwarepakete}
Neben den Standardbibliotheken, die mit der Installation einer Programmiersprache mitgeliefert werden, steht Nutzern die Möglichkeit offen eigene Softwarepakete zu entwickeln.
Um die Pakete der Öffentlichkeit zur Verfügung zu stellen, können diese in Paketverzeichnisse im Internet hochgeladen werden. \autoref{table:packages} zeigt eine Auswahl von Verzeichnissen für Sprachen aus dem Bereich des wissenschaftlichen Berechnens.
\begin{table}[ht!]
\centering
\renewcommand{\arraystretch}{1.1}
\caption{Paketanzahl nach Sprache und Paketverzeichnis}
\label{table:packages}
\begin{footnotesize}
\begin{tabular}{llrr}
\toprule
Sprache & Paketverzeichnis & PYPL Rank & Anzahl Pakete\\
\midrule
Python3 & \acs{PyPi} & 1 & 548.169\\
R & \acs{CRAN} & 6 & 20.919\\
MATLAB & FileExchange & 14 & 11.693\\
Julia & JuliaRegistry & 24 & 10.968\\
\bottomrule
\end{tabular}
\end{footnotesize}
\end{table}
Nach dem \ac{PYPL} Index wird Python als populärste Programmiersprache evaluiert. Julia hingegen belegt hingegen Platz 24 \autocite{carbonellePYPLPopularityProgramming2023}.
Diese hohe Popularität erklärt weshalb die Anzahl zwischen Paketen auf \ac{PyPi}, dem Python Package Index, und \textit{JuliaRegistry} sich dem Verhältnis 50:1 nähert.
Aufgrund des relativ jungen Alters, mit Veröffentlichung von Julia im Jahr 2012 \autocite{cabuttoOverviewJuliaProgramming2018} und der niedrigeren Popularität, besitzt Julia im Vergleich zu den restlichen ausgewählten Programmiersprachen die geringste Anzahl an Paketen.
Kann trotz geringerer Paketanzahl eine diverse Anzahl an Fraktalen visualisiert werden?
Wir betrachten folgende Auswahl an klassischen Fraktalen, nach \autocite{walterFraktaleGeometrischenElemente2018}.
\begin{itemize}
\item Cantor Menge
\item Sierpinski-Dreieck
\item Koch-Kurve
\item Raumfüllende Kurven
\item Mandelbrot-Menge und Julia Mengen
\end{itemize}
\subsection{Entwicklungsmgebungen}
\section{Ergebnis}
\section{Ausblick}
% --------------------------------------------------------------------
\section*{Abkürzungen}
\addcontentsline{toc}{section}{Abkürzungen}
% Die längste Abkürzung wird in die eckigen Klammern
% bei \begin{acronym} geschrieben, um einen hässlichen
% Umbruch zu verhindern
% Sie müssen die Abkürzungen selbst alphabetisch sortieren!
\begin{acronym}[IEEE]
\acro{PyPi}{Python Package Index}
\acro{PYPL}{PopularitY of Programming Language}
\acro{CRAN}{Comprehensive R Archive Network}
\end{acronym}
% Literaturverzeichnis
\addcontentsline{toc}{section}{Literatur}
\AtNextBibliography{\small}
\printbibliography
\end{document}