diff options
Diffstat (limited to '')
178 files changed, 7191 insertions, 1187 deletions
diff --git a/buch/papers/000template/main.tex b/buch/papers/000template/main.tex index 87a5685..91b6d6e 100644 --- a/buch/papers/000template/main.tex +++ b/buch/papers/000template/main.tex @@ -1,7 +1,10 @@ % % main.tex -- Paper zum Thema <000template> % -% (c) 2020 Hochschule Rapperswil +% (c) 2020 Autor, OST Ostschweizer Fachhochschule +% +% !TEX root = ../../buch.tex +% !TEX encoding = UTF-8 % \chapter{Thema\label{chapter:000template}} \lhead{Thema} diff --git a/buch/papers/000template/teil0.tex b/buch/papers/000template/teil0.tex index 7b9f088..65d7ae1 100644 --- a/buch/papers/000template/teil0.tex +++ b/buch/papers/000template/teil0.tex @@ -3,6 +3,9 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % +% !TEX root = ../../buch.tex +% !TEX encoding = UTF-8 +% \section{Teil 0\label{000template:section:teil0}} \rhead{Teil 0} Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam diff --git a/buch/papers/000template/teil1.tex b/buch/papers/000template/teil1.tex index 00d3058..0f8dfae 100644 --- a/buch/papers/000template/teil1.tex +++ b/buch/papers/000template/teil1.tex @@ -3,6 +3,9 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % +% !TEX root = ../../buch.tex +% !TEX encoding = UTF-8 +% \section{Teil 1 \label{000template:section:teil1}} \rhead{Problemstellung} diff --git a/buch/papers/000template/teil2.tex b/buch/papers/000template/teil2.tex index 471adae..496557f 100644 --- a/buch/papers/000template/teil2.tex +++ b/buch/papers/000template/teil2.tex @@ -3,6 +3,9 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % +% !TEX root = ../../buch.tex +% !TEX encoding = UTF-8 +% \section{Teil 2 \label{000template:section:teil2}} \rhead{Teil 2} diff --git a/buch/papers/000template/teil3.tex b/buch/papers/000template/teil3.tex index 4697813..ef2aa75 100644 --- a/buch/papers/000template/teil3.tex +++ b/buch/papers/000template/teil3.tex @@ -3,6 +3,9 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % +% !TEX root = ../../buch.tex +% !TEX encoding = UTF-8 +% \section{Teil 3 \label{000template:section:teil3}} \rhead{Teil 3} diff --git a/buch/papers/common/Makefile.inc b/buch/papers/common/Makefile.inc index d32c902..eb8b8a7 100644 --- a/buch/papers/common/Makefile.inc +++ b/buch/papers/common/Makefile.inc @@ -11,7 +11,7 @@ PAPERFILES = \ papers/000template/main.tex \ papers/lambertw/main.tex \ papers/fm/main.tex \ - papers/nlwave/main.tex \ + papers/parzyl/main.tex \ papers/fresnel/main.tex \ papers/kreismembran/main.tex \ papers/sturmliouville/main.tex \ @@ -24,6 +24,7 @@ PAPERFILES = \ papers/kugel/main.tex \ papers/hermite/main.tex \ papers/ellfilter/main.tex \ + papers/dreieck/main.tex \ buch1-blx.bbl: buch1-blx.aux bibtex buch1-blx @@ -76,6 +77,9 @@ buch16-blx.bbl: buch16-blx.aux buch17-blx.bbl: buch17-blx.aux bibtex buch17-blx +buch18-blx.bbl: buch18-blx.aux + bibtex buch18-blx + BLXFILES = buch.bbl \ buch1-blx.bbl \ buch2-blx.bbl \ @@ -94,12 +98,13 @@ BLXFILES = buch.bbl \ buch15-blx.bbl \ buch16-blx.bbl \ buch17-blx.bbl \ + buch18-blx.bbl \ PAPER_DIRECTORIES = \ 000template \ lambertw \ fm \ - nlwave \ + parzyl \ fresnel \ kreismembran \ sturmliouville \ @@ -112,12 +117,13 @@ PAPER_DIRECTORIES = \ kugel \ hermite \ ellfilter \ + dreieck \ PAPER_MAKEFILEINC = \ papers/000template/Makefile.inc \ papers/lambertw/Makefile.inc \ papers/fm/Makefile.inc \ - papers/nlwave/Makefile.inc \ + papers/parzyl/Makefile.inc \ papers/fresnel/Makefile.inc \ papers/kreismembran/Makefile.inc \ papers/sturmliouville/Makefile.inc \ @@ -130,4 +136,5 @@ PAPER_MAKEFILEINC = \ papers/kugel/Makefile.inc \ papers/hermite/Makefile.inc \ papers/ellfilter/Makefile.inc \ + papers/dreieck/Makefile.inc \ diff --git a/buch/papers/common/addbibresources.tex b/buch/papers/common/addbibresources.tex index be4802c..6e354b5 100644 --- a/buch/papers/common/addbibresources.tex +++ b/buch/papers/common/addbibresources.tex @@ -6,7 +6,7 @@ \addbibresource{papers/000template/references.bib} \addbibresource{papers/lambertw/references.bib} \addbibresource{papers/fm/references.bib} -\addbibresource{papers/nlwave/references.bib} +\addbibresource{papers/parzyl/references.bib} \addbibresource{papers/fresnel/references.bib} \addbibresource{papers/kreismembran/references.bib} \addbibresource{papers/sturmliouville/references.bib} @@ -19,3 +19,4 @@ \addbibresource{papers/kugel/references.bib} \addbibresource{papers/hermite/references.bib} \addbibresource{papers/ellfilter/references.bib} +\addbibresource{papers/dreieck/references.bib} diff --git a/buch/papers/common/addpackages.tex b/buch/papers/common/addpackages.tex index 00e564a..31f7455 100644 --- a/buch/papers/common/addpackages.tex +++ b/buch/papers/common/addpackages.tex @@ -6,7 +6,7 @@ \input{papers/000template/packages.tex} \input{papers/lambertw/packages.tex} \input{papers/fm/packages.tex} -\input{papers/nlwave/packages.tex} +\input{papers/parzyl/packages.tex} \input{papers/fresnel/packages.tex} \input{papers/kreismembran/packages.tex} \input{papers/sturmliouville/packages.tex} @@ -19,3 +19,4 @@ \input{papers/kugel/packages.tex} \input{papers/hermite/packages.tex} \input{papers/ellfilter/packages.tex} +\input{papers/dreieck/packages.tex} diff --git a/buch/papers/common/addpapers.tex b/buch/papers/common/addpapers.tex index 6327dc3..eb353d7 100644 --- a/buch/papers/common/addpapers.tex +++ b/buch/papers/common/addpapers.tex @@ -3,10 +3,9 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\input{papers/000template/main.tex} \input{papers/lambertw/main.tex} \input{papers/fm/main.tex} -\input{papers/nlwave/main.tex} +\input{papers/parzyl/main.tex} \input{papers/fresnel/main.tex} \input{papers/kreismembran/main.tex} \input{papers/sturmliouville/main.tex} @@ -19,3 +18,4 @@ \input{papers/kugel/main.tex} \input{papers/hermite/main.tex} \input{papers/ellfilter/main.tex} +\input{papers/dreieck/main.tex} diff --git a/buch/papers/common/includes.inc b/buch/papers/common/includes.inc index e5b4a63..3e064d9 100644 --- a/buch/papers/common/includes.inc +++ b/buch/papers/common/includes.inc @@ -1,7 +1,7 @@ include papers/000template/Makefile.inc include papers/lambertw/Makefile.inc include papers/fm/Makefile.inc -include papers/nlwave/Makefile.inc +include papers/parzyl/Makefile.inc include papers/fresnel/Makefile.inc include papers/kreismembran/Makefile.inc include papers/sturmliouville/Makefile.inc @@ -14,12 +14,13 @@ include papers/kra/Makefile.inc include papers/kugel/Makefile.inc include papers/hermite/Makefile.inc include papers/ellfilter/Makefile.inc +include papers/dreieck/Makefile.inc TEXFILES = \ $(dependencies-000template) \ $(dependencies-lambertw) \ $(dependencies-fm) \ - $(dependencies-nlwave) \ + $(dependencies-parzyl) \ $(dependencies-fresnel) \ $(dependencies-kreismembran) \ $(dependencies-sturmliouville) \ @@ -32,4 +33,5 @@ TEXFILES = \ $(dependencies-kugel) \ $(dependencies-hermite) \ $(dependencies-ellfilter) \ + $(dependencies-dreieck) \ diff --git a/buch/papers/common/paperlist b/buch/papers/common/paperlist index e2ef4c3..f607279 100644 --- a/buch/papers/common/paperlist +++ b/buch/papers/common/paperlist @@ -1,7 +1,6 @@ -000template lambertw fm -nlwave +parzyl fresnel kreismembran sturmliouville @@ -14,3 +13,4 @@ kra kugel hermite ellfilter +dreieck diff --git a/buch/papers/dreieck/Makefile b/buch/papers/dreieck/Makefile new file mode 100644 index 0000000..f0cb602 --- /dev/null +++ b/buch/papers/dreieck/Makefile @@ -0,0 +1,9 @@ +# +# Makefile -- make file for the paper dreieck +# +# (c) 2020 Prof Dr Andreas Mueller +# + +images: + @echo "no images to be created in dreieck" + diff --git a/buch/papers/dreieck/Makefile.inc b/buch/papers/dreieck/Makefile.inc new file mode 100644 index 0000000..843da8d --- /dev/null +++ b/buch/papers/dreieck/Makefile.inc @@ -0,0 +1,14 @@ +# +# Makefile.inc -- dependencies for this article +# +# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +dependencies-dreieck = \ + papers/dreieck/packages.tex \ + papers/dreieck/main.tex \ + papers/dreieck/references.bib \ + papers/dreieck/teil0.tex \ + papers/dreieck/teil1.tex \ + papers/dreieck/teil2.tex \ + papers/dreieck/teil3.tex + diff --git a/buch/papers/dreieck/images/Makefile b/buch/papers/dreieck/images/Makefile new file mode 100644 index 0000000..c979599 --- /dev/null +++ b/buch/papers/dreieck/images/Makefile @@ -0,0 +1,18 @@ +# +# Makefile +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +all: order.pdf beta.pdf + +order.pdf: order.tex orderpath.tex + pdflatex order.tex + +orderpath.tex: order.m + octave order.m + +beta.pdf: beta.tex betapaths.tex + pdflatex beta.tex + +betapaths.tex: betadist.m + octave betadist.m diff --git a/buch/papers/dreieck/images/beta.pdf b/buch/papers/dreieck/images/beta.pdf Binary files differnew file mode 100644 index 0000000..cd5ed80 --- /dev/null +++ b/buch/papers/dreieck/images/beta.pdf diff --git a/buch/papers/dreieck/images/beta.tex b/buch/papers/dreieck/images/beta.tex new file mode 100644 index 0000000..f0ffdf0 --- /dev/null +++ b/buch/papers/dreieck/images/beta.tex @@ -0,0 +1,236 @@ +% +% beta.tex -- display some symmetric beta distributions +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math,calc} +\input{betapaths.tex} +\begin{document} +\def\skala{12} +\definecolor{colorone}{rgb}{1.0,0.6,0.0} +\definecolor{colortwo}{rgb}{1.0,0.0,0.0} +\definecolor{colorthree}{rgb}{0.6,0.0,0.6} +\definecolor{colorfour}{rgb}{0.6,0.0,1.0} +\definecolor{colorfive}{rgb}{0.0,0.0,1.0} +\definecolor{colorsix}{rgb}{0.4,0.6,1.0} +\definecolor{colorseven}{rgb}{0.0,0.0,0.0} +\definecolor{coloreight}{rgb}{0.0,0.8,0.8} +\definecolor{colornine}{rgb}{0.0,0.8,0.2} +\definecolor{colorten}{rgb}{0.2,0.4,0.0} +\definecolor{coloreleven}{rgb}{0.6,1.0,0.0} +\definecolor{colortwelve}{rgb}{1.0,0.8,0.4} + +\def\achsen{ + \foreach \x in {0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9}{ + \draw ({\x*\dx},{-0.1/\skala}) -- ({\x*\dx},{0.1/\skala}); + \node at ({\x*\dx},{-0.1/\skala}) [below] {$\x$}; + } + \foreach \y in {1,2,3,4}{ + \draw ({-0.1/\skala},{\y*\dy}) -- ({0.1/\skala},{\y*\dy}); + \node at ({-0.1/\skala},{\y*\dy}) [left] {$\y$}; + } + \def\x{1} + \draw ({\x*\dx},{-0.1/\skala}) -- ({\x*\dx},{0.1/\skala}); + \node at ({\x*\dx},{-0.1/\skala}) [below] {$\x$}; + \def\x{0} + \node at ({\x*\dx},{-0.1/\skala}) [below] {$\x$}; + + \draw[->] ({-0.1/\skala},0) -- ({1*\dx+0.4/\skala},0) + coordinate[label={$x$}]; + \draw[->] (0,{-0.1/\skala}) -- (0,{\betamax*\dy+0.4/\skala},0) + coordinate[label={right:$\beta(a,b,x)$}]; +} + +\def\farbcoord#1#2{ + ({\dx*(0.63+((#1)/5)*0.27)},{\dx*(0.18+((#2)/5)*0.27)}) +} +\def\farbviereck{ + \foreach \x in {1,2,3,4}{ + \draw[color=gray!30] \farbcoord{\x}{0} -- \farbcoord{\x}{4}; + \draw[color=gray!30] \farbcoord{0}{\x} -- \farbcoord{4}{\x}; + } + \draw[->] \farbcoord{0}{0} -- \farbcoord{4.4}{0} + coordinate[label={$a$}]; + \draw[->] \farbcoord{0}{0} -- \farbcoord{0}{4.4} + coordinate[label={left: $b$}]; + \foreach \x in {1,2,3,4}{ + \node[color=gray] at \farbcoord{4}{\x} [right] {\tiny $b=\x$}; + %\fill[color=white,opacity=0.7] + % \farbcoord{(\x-0.1)}{3.3} + % rectangle + % \farbcoord{(\x+0.1)}{4}; + \node[color=gray] at \farbcoord{\x}{4} [right,rotate=90] + {\tiny $a=\x$}; + } +} +\def\farbpunkt#1#2#3{ + \fill[color=#3] \farbcoord{#1}{#2} circle[radius={0.1/\skala}]; +} + +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\def\dx{1.1} +\def\dy{0.1} +\def\opa{0.1} + +\def\betamax{4.9} + +\begin{scope} +\clip (0,0) rectangle ({1*\dx},{\betamax*\dy}); +\fill[color=colorone,opacity=\opa] (0,0) -- \betaaa -- (\dx,0) -- cycle; +\fill[color=colortwo,opacity=\opa] (0,0) -- \betabb -- (\dx,0) -- cycle; +\fill[color=colorthree,opacity=\opa] (0,0) -- \betacc -- (\dx,0) -- cycle; +\fill[color=colorfour,opacity=\opa] (0,0) -- \betadd -- (\dx,0) -- cycle; +\fill[color=colorfive,opacity=\opa] (0,0) -- \betaee -- (\dx,0) -- cycle; +\fill[color=colorsix,opacity=\opa] (0,0) -- \betaff -- (\dx,0) -- cycle; +\fill[color=colorseven,opacity=\opa] (0,0) -- \betagg -- (\dx,0) -- cycle; +\fill[color=coloreight,opacity=\opa] (0,0) -- \betahh -- (\dx,0) -- cycle; +\fill[color=colornine,opacity=\opa] (0,0) -- \betaii -- (\dx,0) -- cycle; +\fill[color=colorten,opacity=\opa] (0,0) -- \betajj -- (\dx,0) -- cycle; +\fill[color=coloreleven,opacity=\opa] (0,0) -- \betakk -- (\dx,0) -- cycle; +\fill[color=colortwelve,opacity=\opa] (0,0) -- \betall -- (\dx,0) -- cycle; + +\draw[color=colorone] \betaaa; +\draw[color=colortwo] \betabb; +\draw[color=colorthree] \betacc; +\draw[color=colorfour] \betadd; +\draw[color=colorfive] \betaee; +\draw[color=colorsix] \betaff; +\draw[color=colorseven] \betagg; +\draw[color=coloreight] \betahh; +\draw[color=colornine] \betaii; +\draw[color=colorten] \betajj; +\draw[color=coloreleven] \betakk; +\draw[color=colortwelve] \betall; + +\end{scope} + +\achsen + +\farbviereck + +\farbpunkt{\alphatwelve}{\betatwelve}{colortwelve} +\farbpunkt{\alphaeleven}{\betaeleven}{coloreleven} +\farbpunkt{\alphaten}{\betaten}{colorten} +\farbpunkt{\alphanine}{\betanine}{colornine} +\farbpunkt{\alphaeight}{\betaeight}{coloreight} +\farbpunkt{\alphaseven}{\betaseven}{colorseven} +\farbpunkt{\alphasix}{\betasix}{colorsix} +\farbpunkt{\alphafive}{\betafive}{colorfive} +\farbpunkt{\alphafour}{\betafour}{colorfour} +\farbpunkt{\alphathree}{\betathree}{colorthree} +\farbpunkt{\alphatwo}{\betatwo}{colortwo} +\farbpunkt{\alphaone}{\betaone}{colorone} + + +\def\betamax{4.9} + +\begin{scope}[yshift=-0.6cm] + +\begin{scope} +\clip (0,0) rectangle ({1*\dx},{\betamax*\dy}); +\fill[color=colorone,opacity=\opa] (0,0) -- \betaea -- (\dx,0) -- cycle; +\fill[color=colortwo,opacity=\opa] (0,0) -- \betaeb -- (\dx,0) -- cycle; +\fill[color=colorthree,opacity=\opa] (0,0) -- \betaec -- (\dx,0) -- cycle; +\fill[color=colorfour,opacity=\opa] (0,0) -- \betaed -- (\dx,0) -- cycle; +\fill[color=colorfive,opacity=\opa] (0,0) -- \betaee -- (\dx,0) -- cycle; +\fill[color=colorsix,opacity=\opa] (0,0) -- \betaef -- (\dx,0) -- cycle; +\fill[color=colorseven,opacity=\opa] (0,0) -- \betaeg -- (\dx,0) -- cycle; +\fill[color=coloreight,opacity=\opa] (0,0) -- \betaeh -- (\dx,0) -- cycle; +\fill[color=colornine,opacity=\opa] (0,0) -- \betaei -- (\dx,0) -- cycle; +\fill[color=colorten,opacity=\opa] (0,0) -- \betaej -- (\dx,0) -- cycle; +\fill[color=coloreleven,opacity=\opa] (0,0) -- \betaek -- (\dx,0) -- cycle; +\fill[color=colortwelve,opacity=\opa] (0,0) -- \betael -- (\dx,0) -- cycle; + +\draw[color=colorone] \betaea; +\draw[color=colortwo] \betaeb; +\draw[color=colorthree] \betaec; +\draw[color=colorfour] \betaed; +\draw[color=colorfive] \betaee; +\draw[color=colorsix] \betaef; +\draw[color=colorseven] \betaeg; +\draw[color=coloreight] \betaeh; +\draw[color=colornine] \betaei; +\draw[color=colorten] \betaej; +\draw[color=coloreleven] \betaek; +\draw[color=colortwelve] \betael; +\end{scope} + +\achsen + +\farbviereck + +\farbpunkt{\alphafive}{\betatwelve}{colortwelve} +\farbpunkt{\alphafive}{\betaeleven}{coloreleven} +\farbpunkt{\alphafive}{\betaten}{colorten} +\farbpunkt{\alphafive}{\betanine}{colornine} +\farbpunkt{\alphafive}{\betaeight}{coloreight} +\farbpunkt{\alphafive}{\betaseven}{colorseven} +\farbpunkt{\alphafive}{\betasix}{colorsix} +\farbpunkt{\alphafive}{\betafive}{colorfive} +\farbpunkt{\alphafive}{\betafour}{colorfour} +\farbpunkt{\alphafive}{\betathree}{colorthree} +\farbpunkt{\alphafive}{\betatwo}{colortwo} +\farbpunkt{\alphafive}{\betaone}{colorone} + +\end{scope} + +\begin{scope}[yshift=-1.2cm] + +\begin{scope} +\clip (0,0) rectangle ({1*\dx},{\betamax*\dy}); +\fill[color=colorone,opacity=\opa] (0,0) -- \betaal -- (\dx,0) -- cycle; +\fill[color=colortwo,opacity=\opa] (0,0) -- \betabl -- (\dx,0) -- cycle; +\fill[color=colorthree,opacity=\opa] (0,0) -- \betacl -- (\dx,0) -- cycle; +\fill[color=colorfour,opacity=\opa] (0,0) -- \betadl -- (\dx,0) -- cycle; +\fill[color=colorfive,opacity=\opa] (0,0) -- \betael -- (\dx,0) -- cycle; +\fill[color=colorsix,opacity=\opa] (0,0) -- \betafl -- (\dx,0) -- cycle; +\fill[color=colorseven,opacity=\opa] (0,0) -- \betagl -- (\dx,0) -- cycle; +\fill[color=coloreight,opacity=\opa] (0,0) -- \betahl -- (\dx,0) -- cycle; +\fill[color=colornine,opacity=\opa] (0,0) -- \betail -- (\dx,0) -- cycle; +\fill[color=colorten,opacity=\opa] (0,0) -- \betajl -- (\dx,0) -- cycle; +\fill[color=coloreleven,opacity=\opa] (0,0) -- \betakl -- (\dx,0) -- cycle; +\fill[color=colortwelve,opacity=\opa] (0,0) -- \betall -- (\dx,0) -- cycle; + +\draw[color=colorone] \betaal; +\draw[color=colortwo] \betabl; +\draw[color=colorthree] \betacl; +\draw[color=colorfour] \betadl; +\draw[color=colorfive] \betael; +\draw[color=colorsix] \betafl; +\draw[color=colorseven] \betagl; +\draw[color=coloreight] \betahl; +\draw[color=colornine] \betail; +\draw[color=colorten] \betajl; +\draw[color=coloreleven] \betakl; +\draw[color=colortwelve] \betall; +\end{scope} + +\achsen + +\farbviereck + +\farbpunkt{\alphatwelve}{\betatwelve}{colortwelve} +\farbpunkt{\alphaeleven}{\betatwelve}{coloreleven} +\farbpunkt{\alphaten}{\betatwelve}{colorten} +\farbpunkt{\alphanine}{\betatwelve}{colornine} +\farbpunkt{\alphaeight}{\betatwelve}{coloreight} +\farbpunkt{\alphaseven}{\betatwelve}{colorseven} +\farbpunkt{\alphasix}{\betatwelve}{colorsix} +\farbpunkt{\alphafive}{\betatwelve}{colorfive} +\farbpunkt{\alphafour}{\betatwelve}{colorfour} +\farbpunkt{\alphathree}{\betatwelve}{colorthree} +\farbpunkt{\alphatwo}{\betatwelve}{colortwo} +\farbpunkt{\alphaone}{\betatwelve}{colorone} + +\end{scope} + +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/dreieck/images/betadist.m b/buch/papers/dreieck/images/betadist.m new file mode 100644 index 0000000..5b466a6 --- /dev/null +++ b/buch/papers/dreieck/images/betadist.m @@ -0,0 +1,58 @@ +# +# betadist.m +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +global N; +N = 201; +global nmin; +global nmax; +nmin = -4; +nmax = 7; +n = nmax - nmin + 1 +A = 3; + +t = (nmin:nmax) / nmax; +alpha = 1 + A * t .* abs(t) +#alpha(1) = 0.01; + +#alpha = [ 1, 1.03, 1.05, 1.1, 1.25, 1.5, 2, 2.5, 3, 4, 5 ]; +beta = alpha; +names = [ "one"; "two"; "three"; "four"; "five"; "six"; "seven"; "eight"; + "nine"; "ten"; "eleven"; "twelve" ] + +function retval = Beta(a, b, x) + retval = x^(a-1) * (1-x)^(b-1) / beta(a, b); + if (retval > 100) + retval = 100 + end +end + +function plotbeta(fn, a, b, name) + global N; + fprintf(fn, "\\def\\beta%s{\n", strtrim(name)); + fprintf(fn, "\t({%.4f*\\dx},{%.4f*\\dy})", 0, Beta(a, b, 0)); + for x = (1:N-1)/(N-1) + X = (1-cos(pi * x))/2; + fprintf(fn, "\n\t--({%.4f*\\dx},{%.4f*\\dy})", + X, Beta(a, b, X)); + end + fprintf(fn, "\n}\n"); +end + +fn = fopen("betapaths.tex", "w"); + +for i = (1:n) + fprintf(fn, "\\def\\alpha%s{%f}\n", strtrim(names(i,:)), alpha(i)); + fprintf(fn, "\\def\\beta%s{%f}\n", strtrim(names(i,:)), beta(i)); +end + +for i = (1:n) + for j = (1:n) + printf("working on %d,%d:\n", i, j); + plotbeta(fn, alpha(i), beta(j), + char(['a' + i - 1, 'a' + j - 1])); + end +end + +fclose(fn); diff --git a/buch/papers/dreieck/images/order.m b/buch/papers/dreieck/images/order.m new file mode 100644 index 0000000..762f458 --- /dev/null +++ b/buch/papers/dreieck/images/order.m @@ -0,0 +1,119 @@ +# +# order.m +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +global N; +N = 10; +global subdivisions; +subdivisions = 100; +global P; +P = 0.5 + +function retval = orderF(p, n, k) + retval = 0; + for i = (k:n) + retval = retval + nchoosek(n,i) * p^i * (1-p)^(n-i); + end +end + +function retval = orderd(p, n, k) + retval = 0; + for i = (k:n) + s = i * p^(i-1) * (1-p)^(n-i); + s = s - p^i * (n-i) * (1-p)^(n-i-1); + retval = retval + nchoosek(n,i) * s; + end +end + +function retval = orders(p, n, k) + retval = k * nchoosek(n, k) * p^(k-1) * (1-p)^(n-k); +end + +function orderpath(fn, k, name) + fprintf(fn, "\\def\\order%s{\n\t(0,0)", name); + global N; + global subdivisions; + for i = (0:subdivisions) + p = i/subdivisions; + fprintf(fn, "\n\t-- ({%.4f*\\dx},{%.4f*\\dy})", + p, orderF(p, N, k)); + end + fprintf(fn, "\n}\n"); +end + +function orderdpath(fn, k, name) + fprintf(fn, "\\def\\orderd%s{\n\t(0,0)", name); + global N; + global subdivisions; + for i = (1:subdivisions-1) + p = i/subdivisions; + fprintf(fn, "\n\t-- ({%.4f*\\dx},{%.4f*\\dy})", + p, orderd(p, N, k)); + end + fprintf(fn, "\n\t-- ({1*\\dx},0)"); + fprintf(fn, "\n}\n"); +end + +function orderspath(fn, k, name) + fprintf(fn, "\\def\\orders%s{\n\t(0,0)", name); + global N; + global subdivisions; + for i = (1:subdivisions-1) + p = i/subdivisions; + fprintf(fn, "\n\t-- ({%.4f*\\dx},{%.4f*\\dy})", + p, orders(p, N, k)); + end + fprintf(fn, "\n\t-- ({1*\\dx},0)"); + fprintf(fn, "\n}\n"); +end + +fn = fopen("orderpath.tex", "w"); + +orderpath(fn, 0, "zero"); +orderdpath(fn, 0, "zero"); +orderspath(fn, 0, "zero"); + +orderpath(fn, 1, "one"); +orderdpath(fn, 1, "one"); +orderspath(fn, 1, "one"); + +orderpath(fn, 2, "two"); +orderdpath(fn, 2, "two"); +orderspath(fn, 2, "two"); + +orderpath(fn, 3, "three"); +orderdpath(fn, 3, "three"); +orderspath(fn, 3, "three"); + +orderpath(fn, 4, "four"); +orderdpath(fn, 4, "four"); +orderspath(fn, 4, "four"); + +orderpath(fn, 5, "five"); +orderdpath(fn, 5, "five"); +orderspath(fn, 5, "five"); + +orderpath(fn, 6, "six"); +orderdpath(fn, 6, "six"); +orderspath(fn, 6, "six"); + +orderpath(fn, 7, "seven"); +orderdpath(fn, 7, "seven"); +orderspath(fn, 7, "seven"); + +orderpath(fn, 8, "eight"); +orderdpath(fn, 8, "eight"); +orderspath(fn, 8, "eight"); + +orderpath(fn, 9, "nine"); +orderdpath(fn, 9, "nine"); +orderspath(fn, 9, "nine"); + +orderpath(fn, 10, "ten"); +orderdpath(fn, 10, "ten"); +orderspath(fn, 10, "ten"); + +fclose(fn); + + diff --git a/buch/papers/dreieck/images/order.pdf b/buch/papers/dreieck/images/order.pdf Binary files differnew file mode 100644 index 0000000..98a5fbe --- /dev/null +++ b/buch/papers/dreieck/images/order.pdf diff --git a/buch/papers/dreieck/images/order.tex b/buch/papers/dreieck/images/order.tex new file mode 100644 index 0000000..9a2511c --- /dev/null +++ b/buch/papers/dreieck/images/order.tex @@ -0,0 +1,125 @@ +% +% order.tex -- Verteilungsfunktion für Ordnungsstatistik +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math} +\begin{document} +\def\skala{8} +\definecolor{darkgreen}{rgb}{0,0.6,0} + +\def\n{10} +\def\E#1#2{ + \draw[color=#2] + ({\dx*#1/(\n+1)},{-0.1/\skala}) -- ({\dx*#1/(\n+1)},{4.4*\dy}); + \node[color=#2] at ({\dx*#1/(\n+1)},{3.2*\dy}) + [rotate=90,above right] {$k=#1$}; +} +\def\var#1#2{ + \pgfmathparse{\dx*sqrt(#1*(\n-#1+1)/((\n+1)*(\n+1)*(\n+2)))} + \xdef\var{\pgfmathresult} + \fill[color=#2,opacity=0.5] + ({\dx*#1/(\n+1)-\var},0) rectangle ({\dx*#1/(\n+1)+\var},{4.4*\dy}); +} + +\input{orderpath.tex} +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\def\dx{1.6} +\def\dy{0.5} + +\def\pfad#1#2{ +\draw[color=#2,line width=1.4pt] ({-0.1/\skala},0) + -- + #1 + -- + ({1*\dx+0.1/\skala},0.5); +} + +\pfad{\orderzero}{darkgreen!20} +\pfad{\orderone}{darkgreen!20} +\pfad{\ordertwo}{darkgreen!20} +\pfad{\orderthree}{darkgreen!20} +\pfad{\orderfour}{darkgreen!20} +\pfad{\orderfive}{darkgreen!20} +\pfad{\ordersix}{darkgreen!20} +\pfad{\ordereight}{darkgreen!20} +\pfad{\ordernine}{darkgreen!20} +\pfad{\orderten}{darkgreen!20} +\pfad{\orderseven}{darkgreen} + +\draw[->] ({-0.1/\skala},0) -- ({1.03*\dx},0) coordinate[label={$x$}]; +\draw[->] (0,{-0.1/\skala}) -- (0,0.6) coordinate[label={right:$F(X)$}]; +\foreach \x in {0,0.2,0.4,0.6,0.8,1}{ + \draw ({\x*\dx},{-0.1/\skala}) -- ({\x*\dx},{0.1/\skala}); + \node at ({\x*\dx},{-0.1/\skala}) [below] {$\x$}; +} +\foreach \y in {0.5,1}{ + \draw ({-0.1/\skala},{\y*\dy}) -- ({0.1/\skala},{\y*\dy}); + \node at ({-0.1/\skala},{\y*\dy}) [left] {$\y$}; +} + +\node[color=darkgreen] at (0.65,{0.5*\dy}) [above,rotate=55] {$k=7$}; + +\begin{scope}[yshift=-0.7cm] +\def\dy{0.125} + +\foreach \k in {1,2,3,4,5,6,8,9,10}{ + \E{\k}{blue!30} +} +\def\k{7} +\var{\k}{orange!40} +\node[color=blue] at ({\dx*\k/(\n+1)},{4.3*\dy}) [above] {$E(X_{7:n})$}; + +\def\pfad#1#2{ + \draw[color=#2,line width=1.4pt] ({-0.1/\skala},0) + -- + #1 + -- + ({1*\dx+0.1/\skala},0.0); +} + +\begin{scope} +\clip ({-0.1/\skala},{-0.1/\skala}) + rectangle ({1*\dx+0.1/\skala},{0.56+0.1/\skala}); + +\pfad{\orderdzero}{red!20} +\pfad{\orderdone}{red!20} +\pfad{\orderdtwo}{red!20} +\pfad{\orderdthree}{red!20} +\pfad{\orderdfour}{red!20} +\pfad{\orderdfive}{red!20} +\pfad{\orderdsix}{red!20} +\pfad{\orderdeight}{red!20} +\pfad{\orderdnine}{red!20} +\pfad{\orderdten}{red!20} +\E{\k}{blue} +\pfad{\orderdseven}{red} + +\end{scope} + +\draw[->] ({-0.1/\skala},0) -- ({1.03*\dx},0) coordinate[label={$x$}]; +\draw[->] (0,{-0.1/\skala}) -- (0,0.6) coordinate[label={right:$\varphi(X)$}]; +\foreach \x in {0,0.2,0.4,0.6,0.8,1}{ + \draw ({\x*\dx},{-0.1/\skala}) -- ({\x*\dx},{0.1/\skala}); + \node at ({\x*\dx},{-0.1/\skala}) [below] {$\x$}; +} +\foreach \y in {1,2,3,4}{ + \draw ({-0.1/\skala},{\y*\dy}) -- ({0.1/\skala},{\y*\dy}); + \node at ({-0.1/\skala},{\y*\dy}) [left] {$\y$}; +} + +\node[color=red] at ({0.67*\dx},{2.7*\dy}) [above] {$k=7$}; + + +\end{scope} + +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/dreieck/main.tex b/buch/papers/dreieck/main.tex new file mode 100644 index 0000000..75ba410 --- /dev/null +++ b/buch/papers/dreieck/main.tex @@ -0,0 +1,26 @@ +% +% main.tex -- Paper zum Thema <dreieck> +% +% (c) 2020 Hochschule Rapperswil +% +\chapter{Dreieckstest und Beta-Funktion\label{chapter:dreieck}} +\lhead{Dreieckstest und Beta-Funktion} +\begin{refsection} +\chapterauthor{Andreas Müller} + +\noindent +Mit dem Dreieckstest kann man feststellen, wie gut ein Geruchs- +oder Geschmackstester verschiedene Gerüche oder Geschmäcker +unterscheiden kann. +Seine wahrscheinlichkeitstheoretische Erklärung benötigt die Beta-Funktion, +man kann die Beta-Funktion als durchaus als die mathematische Grundlage +der Weindegustation +bezeichnen. + +\input{papers/dreieck/teil0.tex} +\input{papers/dreieck/teil1.tex} +\input{papers/dreieck/teil2.tex} +\input{papers/dreieck/teil3.tex} + +\printbibliography[heading=subbibliography] +\end{refsection} diff --git a/buch/papers/dreieck/packages.tex b/buch/papers/dreieck/packages.tex new file mode 100644 index 0000000..fd4ebce --- /dev/null +++ b/buch/papers/dreieck/packages.tex @@ -0,0 +1,10 @@ +% +% packages.tex -- packages required by the paper dreieck +% +% (c) 2019 Prof Dr Andreas Müller, Hochschule Rapperswil +% + +% if your paper needs special packages, add package commands as in the +% following example +%\usepackage{packagename} + diff --git a/buch/papers/dreieck/references.bib b/buch/papers/dreieck/references.bib new file mode 100644 index 0000000..d2bbe08 --- /dev/null +++ b/buch/papers/dreieck/references.bib @@ -0,0 +1,35 @@ +% +% references.bib -- Bibliography file for the paper dreieck +% +% (c) 2020 Autor, Hochschule Rapperswil +% + +@online{dreieck:bibtex, + title = {BibTeX}, + url = {https://de.wikipedia.org/wiki/BibTeX}, + date = {2020-02-06}, + year = {2020}, + month = {2}, + day = {6} +} + +@book{dreieck:numerical-analysis, + title = {Numerical Analysis}, + author = {David Kincaid and Ward Cheney}, + publisher = {American Mathematical Society}, + year = {2002}, + isbn = {978-8-8218-4788-6}, + inseries = {Pure and applied undegraduate texts}, + volume = {2} +} + +@article{dreieck:mendezmueller, + author = { Tabea Méndez and Andreas Müller }, + title = { Noncommutative harmonic analysis and image registration }, + journal = { Appl. Comput. Harmon. Anal.}, + year = 2019, + volume = 47, + pages = {607--627}, + url = {https://doi.org/10.1016/j.acha.2017.11.004} +} + diff --git a/buch/papers/dreieck/teil0.tex b/buch/papers/dreieck/teil0.tex new file mode 100644 index 0000000..bcf2cf8 --- /dev/null +++ b/buch/papers/dreieck/teil0.tex @@ -0,0 +1,9 @@ +% +% einleitung.tex -- Beispiel-File für die Einleitung +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Testprinzip\label{dreieck:section:testprinzip}} +\rhead{Testprinzip} + + diff --git a/buch/papers/dreieck/teil1.tex b/buch/papers/dreieck/teil1.tex new file mode 100644 index 0000000..4abe2e1 --- /dev/null +++ b/buch/papers/dreieck/teil1.tex @@ -0,0 +1,11 @@ +% +% teil1.tex -- Beispiel-File für das Paper +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Ordnungsstatistik und Beta-Funktion +\label{dreieck:section:ordnungsstatistik}} +\rhead{} + + + diff --git a/buch/papers/dreieck/teil2.tex b/buch/papers/dreieck/teil2.tex new file mode 100644 index 0000000..83ea3cb --- /dev/null +++ b/buch/papers/dreieck/teil2.tex @@ -0,0 +1,9 @@ +% +% teil2.tex -- Beispiel-File für teil2 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Wahrscheinlichkeiten im Dreieckstest +\label{dreieck:section:wahrscheinlichkeiten}} +\rhead{Wahrscheinlichkeiten} + diff --git a/buch/papers/dreieck/teil3.tex b/buch/papers/dreieck/teil3.tex new file mode 100644 index 0000000..e2dfd6b --- /dev/null +++ b/buch/papers/dreieck/teil3.tex @@ -0,0 +1,10 @@ +% +% teil3.tex -- Beispiel-File für Teil 3 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Erweiterungen +\label{dreieck:section:erweiterungen}} +\rhead{Erweiterungen} + + diff --git a/buch/papers/fm/anim/Makefile b/buch/papers/fm/anim/Makefile new file mode 100644 index 0000000..f4c7850 --- /dev/null +++ b/buch/papers/fm/anim/Makefile @@ -0,0 +1,12 @@ +# +# Makefile +# +# (c) 2022 Prof Dr Andreas Müller +# +all: animation.pdf + +parts.tex: fm.m + octave fm.m + +animation.pdf: animation.tex parts.tex + pdflatex animation.tex diff --git a/buch/papers/fm/anim/animation.tex b/buch/papers/fm/anim/animation.tex new file mode 100644 index 0000000..4a6f428 --- /dev/null +++ b/buch/papers/fm/anim/animation.tex @@ -0,0 +1,85 @@ +% +% animation.tex +% +% (c) 2022 Prof Dr Andreas Müller, +% +\documentclass[aspectratio=169]{beamer} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{epic} +\usepackage{color} +\usepackage{array} +\usepackage{ifthen} +\usepackage{lmodern} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{nccmath} +\usepackage{mathtools} +\usepackage{adjustbox} +\usepackage{multimedia} +\usepackage{verbatim} +\usepackage{wasysym} +\usepackage{stmaryrd} +\usepackage{tikz} +\usetikzlibrary{shapes.geometric} +\usetikzlibrary{decorations.pathreplacing} +\usetikzlibrary{calc} +\usetikzlibrary{arrows} +\usetikzlibrary{3d} +\usetikzlibrary{arrows,shapes,math,decorations.text,automata} +\usepackage{pifont} +\usepackage[all]{xy} +\usepackage[many]{tcolorbox} +\mode<beamer>{% +\usetheme[hideothersubsections,hidetitle]{Hannover} +} +\beamertemplatenavigationsymbolsempty +\begin{document} + +\def\spektrum#1#2{ +\only<#1>{ + \begin{scope} + \color{red} + \input{#2} + \end{scope} +} +} + +\begin{frame} +\begin{center} +\begin{tikzpicture}[>=latex,thick] +\def\df{0.37} +\def\da{1} + +\draw[->,color=gray] (0,-0.1) -- (0,6.3) [right] coordinate[label={right:$a$}]; + +\foreach \a in {1,...,5}{ + \draw[color=gray!50] (-6,{(6-\a)*\da}) -- (6,{(6-\a)*\da}); +} +\draw[color=gray!50] (-6,{6*\da}) -- (6,{6*\da}); +\foreach \f in {-15,-10,-5,5,10,15}{ + \draw[color=gray!50] ({\f*\df},0) -- ({\f*\df},{6*\da}); +} + +\input{parts.tex} + +\draw[->] (-6.1,0) -- (6.9,0) coordinate[label={$f$}]; +\foreach \f in {-16,...,16}{ + \draw ({\f*\df},-0.05) -- ({\f*\df},0.05); +} +\foreach \f in {-15,-10,-5,5,10,15}{ + \node at ({\f*\df},-0.1) [below] {$\f f_m$}; + \draw ({\f*\df},-0.1) -- ({\f*\df},0.1); +} +\node at (0,-0.1) [below] {$0$}; + +\foreach \a in {1,...,5}{ + \node at (6,{(6-\a)*\da}) [right] {$-\a$}; +} +\node at (6,{6*\da}) [right] {$\phantom{-}0$}; + +\end{tikzpicture} +\end{center} +\end{frame} + +\end{document} diff --git a/buch/papers/fm/anim/fm.m b/buch/papers/fm/anim/fm.m new file mode 100644 index 0000000..9062818 --- /dev/null +++ b/buch/papers/fm/anim/fm.m @@ -0,0 +1,98 @@ +# +# fm.m -- animation frequenzspektrum +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +global fc; +fc = 1e6; +global width; +width = 16; +global fm; +fm = 1000; +global gamma; +gamma = 2; +global resolution; +resolution = 300; + +function retval = spektrum(beta, fm) + global width; + global fc; + retval = zeros(2 * width + 1, 2); + center = width + 1; + for k = (0:width) + retval(center - k, 1) = fc - k * fm; + retval(center + k, 1) = fc + k * fm; + a = besselj(k, beta); + retval(center - k, 2) = a; + retval(center + k, 2) = a; + endfor +endfunction + +function drawspectrum(fn, spectrum, foffset, fscale, beta) + n = size(spectrum)(1,1); + for i = (1:n) + f = (spectrum(i, 1) - foffset)/fscale; + a = log10(spectrum(i, 2)) + 6; + if (a < 0) + a = 0; + end + fprintf(fn, "\\draw[line width=3.5pt] "); + fprintf(fn, "({%.2f*\\df},0) -- ({%.2f*\\df},{%.5f*\\da});\n", + f, f, abs(a)); + fprintf(fn, "\\node at ({-15*\\df},5.5) [right] {$\\beta = %.3f$};", beta); + endfor +endfunction + +function drawhull(fn, beta) + global resolution; + fprintf(fn, "\\begin{scope}\n"); + fprintf(fn, "\\clip ({-16.5*\\df},0) rectangle ({16.5*\\df},{6*\\da});\n"); + p = zeros(resolution, 2); + for k = (1:resolution) + nu = 16.5 * (k - 1) / resolution; + p(k,1) = nu; + y = log10(abs(besselj(nu, beta))) + 6; + p(k,2) = y; + end + fprintf(fn, "\\draw[color=blue] ({%.4f*\\df},{%.5f*\\da})", + p(1,1), p(1,2)); + for k = (2:resolution) + fprintf(fn, "\n -- ({%.4f*\\df},{%.5f*\\da})", + p(k,1), p(k,2)); + endfor + fprintf(fn, ";\n\n"); + fprintf(fn, "\\draw[color=blue] ({%.4f*\\df},{%.5f*\\da})", + p(1,1), p(1,2)); + for k = (2:resolution) + fprintf(fn, "\n -- ({%.4f*\\df},{%.5f*\\da})", + -p(k,1), p(k,2)); + endfor + fprintf(fn, ";\n\n"); + fprintf(fn, "\\end{scope}\n"); +endfunction + +function animation(betamin, betamax, steps) + global fm; + global fc; + global gamma; + fa = fopen("parts.tex", "w"); + for k = (1:steps) + % add entry to parts.tex + fprintf(fa, "\\spektrum{%d}{texfiles/a%04d.tex}\n", k, k); + % compute beta + x = (k - 1) / (steps - 1); + beta = betamin + (betamax - betamin) * (x ^ gamma); + % create a new file + name = sprintf("texfiles/a%04d.tex", k); + fn = fopen(name, "w"); + % write the hull + drawhull(fn, beta); + % compute and write the spectrum + spectrum = spektrum(beta, fm); + drawspectrum(fn, spectrum, fc, fm, beta); + fclose(fn); + endfor + fclose(fa); +endfunction + +animation(0.001,10.1,200) diff --git a/buch/papers/fresnel/Makefile b/buch/papers/fresnel/Makefile index c8aa073..ed74861 100644 --- a/buch/papers/fresnel/Makefile +++ b/buch/papers/fresnel/Makefile @@ -1,9 +1,8 @@ # # Makefile -- make file for the paper fresnel # -# (c) 2020 Prof Dr Andreas Mueller +# (c) 2022 Prof Dr Andreas Mueller # - images: @echo "no images to be created in fresnel" diff --git a/buch/papers/fresnel/images/Makefile b/buch/papers/fresnel/images/Makefile new file mode 100644 index 0000000..eb7dc57 --- /dev/null +++ b/buch/papers/fresnel/images/Makefile @@ -0,0 +1,38 @@ +# +# Makefile +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +all: schale.pdf \ + fresnelgraph.pdf \ + eulerspirale.pdf \ + pfad.pdf \ + apfel.pdf \ + kruemmung.pdf + +schale.png: schale.pov + povray +A0.1 -W1920 -H1080 -Oschale.png schale.pov + +schale.jpg: schale.png Makefile + convert -extract 1240x1080+340 schale.png -density 300 -units PixelsPerInch schale.jpg + +schale.pdf: schale.tex schale.jpg + pdflatex schale.tex + +eulerpath.tex: eulerspirale.m + octave eulerspirale.m + +fresnelgraph.pdf: fresnelgraph.tex eulerpath.tex + pdflatex fresnelgraph.tex + +eulerspirale.pdf: eulerspirale.tex eulerpath.tex + pdflatex eulerspirale.tex + +pfad.pdf: pfad.tex + pdflatex pfad.tex + +apfel.pdf: apfel.tex apfel.jpg eulerpath.tex + pdflatex apfel.tex + +kruemmung.pdf: kruemmung.tex + pdflatex kruemmung.tex diff --git a/buch/papers/fresnel/images/apfel.jpg b/buch/papers/fresnel/images/apfel.jpg Binary files differnew file mode 100644 index 0000000..76e48e7 --- /dev/null +++ b/buch/papers/fresnel/images/apfel.jpg diff --git a/buch/papers/fresnel/images/apfel.pdf b/buch/papers/fresnel/images/apfel.pdf Binary files differnew file mode 100644 index 0000000..69e5092 --- /dev/null +++ b/buch/papers/fresnel/images/apfel.pdf diff --git a/buch/papers/fresnel/images/apfel.tex b/buch/papers/fresnel/images/apfel.tex new file mode 100644 index 0000000..754886b --- /dev/null +++ b/buch/papers/fresnel/images/apfel.tex @@ -0,0 +1,49 @@ +% +% apfel.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{7} +\def\hoehe{4} + +\input{eulerpath.tex} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\begin{scope} +\clip(-0.6,-0.6) rectangle (7,6); +\node at (3.1,2.2) [rotate=-3] {\includegraphics[width=9.4cm]{apfel.jpg}}; +\end{scope} + +% Gitter +\ifthenelse{\boolean{showgrid}}{ +\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw (-\breite,-\hoehe) grid (\breite, \hoehe); +\fill (0,0) circle[radius=0.05]; +}{} + +\draw[color=gray!50] (0,0) rectangle (4,4); +\draw[->] (-0.5,0) -- (7.5,0) coordinate[label={$C(t)$}]; +\draw[->] (0,-0.5) -- (0,6.0) coordinate[label={left:$S(t)$}]; +\begin{scope}[scale=8] +\draw[color=red,opacity=0.5,line width=1.4pt] \fresnela; +\end{scope} + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/fresnel/images/eulerspirale.m b/buch/papers/fresnel/images/eulerspirale.m new file mode 100644 index 0000000..84e3696 --- /dev/null +++ b/buch/papers/fresnel/images/eulerspirale.m @@ -0,0 +1,61 @@ +# +# eulerspirale.m +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschlue +# +global n; +n = 1000; +global tmax; +tmax = 10; +global N; +N = round(n*5/tmax); + +function retval = f(x, t) + x = pi * t^2 / 2; + retval = [ cos(x); sin(x) ]; +endfunction + +x0 = [ 0; 0 ]; +t = tmax * (0:n) / n; + +c = lsode(@f, x0, t); + +fn = fopen("eulerpath.tex", "w"); + +fprintf(fn, "\\def\\fresnela{ (0,0)"); +for i = (2:n) + fprintf(fn, "\n\t-- (%.4f,%.4f)", c(i,1), c(i,2)); +end +fprintf(fn, "\n}\n\n"); + +fprintf(fn, "\\def\\fresnelb{ (0,0)"); +for i = (2:n) + fprintf(fn, "\n\t-- (%.4f,%.4f)", -c(i,1), -c(i,2)); +end +fprintf(fn, "\n}\n\n"); + +fprintf(fn, "\\def\\Cplotright{ (0,0)"); +for i = (2:N) + fprintf(fn, "\n\t-- ({%.4f*\\dx},{%.4f*\\dy})", t(i), c(i,1)); +end +fprintf(fn, "\n}\n\n"); + +fprintf(fn, "\\def\\Cplotleft{ (0,0)"); +for i = (2:N) + fprintf(fn, "\n\t-- ({%.4f*\\dx},{%.4f*\\dy})", -t(i), -c(i,1)); +end +fprintf(fn, "\n}\n\n"); + +fprintf(fn, "\\def\\Splotright{ (0,0)"); +for i = (2:N) + fprintf(fn, "\n\t-- ({%.4f*\\dx},{%.4f*\\dy})", t(i), c(i,2)); +end +fprintf(fn, "\n}\n\n"); + +fprintf(fn, "\\def\\Splotleft{ (0,0)"); +for i = (2:N) + fprintf(fn, "\n\t-- ({%.4f*\\dx},{%.4f*\\dy})", -t(i), -c(i,2)); +end +fprintf(fn, "\n}\n\n"); + +fclose(fn); diff --git a/buch/papers/fresnel/images/eulerspirale.pdf b/buch/papers/fresnel/images/eulerspirale.pdf Binary files differnew file mode 100644 index 0000000..db74e4b --- /dev/null +++ b/buch/papers/fresnel/images/eulerspirale.pdf diff --git a/buch/papers/fresnel/images/eulerspirale.tex b/buch/papers/fresnel/images/eulerspirale.tex new file mode 100644 index 0000000..38ef756 --- /dev/null +++ b/buch/papers/fresnel/images/eulerspirale.tex @@ -0,0 +1,41 @@ +% +% eulerspirale.tex -- Darstellung der Eulerspirale +% +% (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math} +\begin{document} +\def\skala{1} +\definecolor{darkgreen}{rgb}{0,0.6,0} +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\input{eulerpath.tex} + +\def\s{8} + +\begin{scope}[scale=\s] +\draw[color=blue] (-0.5,-0.5) rectangle (0.5,0.5); +\draw[color=darkgreen,line width=1.4pt] \fresnela; +\draw[color=darkgreen,line width=1.4pt] \fresnelb; +\fill[color=blue] (0.5,0.5) circle[radius={0.1/\s}]; +\fill[color=blue] (-0.5,-0.5) circle[radius={0.1/\s}]; +\draw (-0.5,{-0.05/\s}) -- (-0.5,{0.05/\s}); +\draw (0.5,{-0.05/\s}) -- (0.5,{-0.05/\s}); +\node at (-0.5,0) [above left] {$\frac12$}; +\node at (0.5,0) [below right] {$\frac12$}; +\node at (0,-0.5) [below right] {$\frac12$}; +\node at (0,0.5) [above left] {$\frac12$}; +\end{scope} + +\draw[->] (-6.7,0) -- (6.9,0) coordinate[label={$C(x)$}];; +\draw[->] (0,-5.8) -- (0,6.1) coordinate[label={left:$S(x)$}];; + +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/fresnel/images/fresnelgraph.pdf b/buch/papers/fresnel/images/fresnelgraph.pdf Binary files differnew file mode 100644 index 0000000..c658901 --- /dev/null +++ b/buch/papers/fresnel/images/fresnelgraph.pdf diff --git a/buch/papers/fresnel/images/fresnelgraph.tex b/buch/papers/fresnel/images/fresnelgraph.tex new file mode 100644 index 0000000..20df951 --- /dev/null +++ b/buch/papers/fresnel/images/fresnelgraph.tex @@ -0,0 +1,46 @@ +% +% fresnelgraph.tex -- Graphs of the fresnel functions +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math} +\begin{document} +\def\skala{1} +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\input{eulerpath.tex} +\def\dx{1.3} +\def\dy{2.6} + +\draw[color=gray] (0,{0.5*\dy}) -- ({5*\dx},{0.5*\dy}); +\draw[color=gray] (0,{-0.5*\dy}) -- ({-5*\dx},{-0.5*\dy}); + +\draw[color=blue,line width=1.4pt] \Splotright; +\draw[color=blue,line width=1.4pt] \Splotleft; + +\draw[color=red,line width=1.4pt] \Cplotright; +\draw[color=red,line width=1.4pt] \Cplotleft; + +\draw[->] (-6.7,0) -- (6.9,0) coordinate[label={$x$}]; +\draw[->] (0,-2.3) -- (0,2.3) coordinate[label={$y$}]; + +\foreach \x in {1,2,3,4,5}{ + \draw ({\x*\dx},-0.05) -- ({\x*\dx},0.05); + \draw ({-\x*\dx},-0.05) -- ({-\x*\dx},0.05); + \node at ({\x*\dx},-0.05) [below] {$\x$}; + \node at ({-\x*\dx},0.05) [above] {$-\x$}; +} +\draw (-0.05,{0.5*\dy}) -- (0.05,{0.5*\dy}); +\node at (-0.05,{0.5*\dy}) [left] {$\frac12$}; +\draw (-0.05,{-0.5*\dy}) -- (0.05,{-0.5*\dy}); +\node at (0.05,{-0.5*\dy}) [right] {$-\frac12$}; + +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/fresnel/images/kruemmung.pdf b/buch/papers/fresnel/images/kruemmung.pdf Binary files differnew file mode 100644 index 0000000..1180116 --- /dev/null +++ b/buch/papers/fresnel/images/kruemmung.pdf diff --git a/buch/papers/fresnel/images/kruemmung.tex b/buch/papers/fresnel/images/kruemmung.tex new file mode 100644 index 0000000..af0a1a9 --- /dev/null +++ b/buch/papers/fresnel/images/kruemmung.tex @@ -0,0 +1,51 @@ +% +% kruemmung.tex -- Krümmung einer ebenen Kurve +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math,calc} +\begin{document} +\def\skala{1} +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\begin{scope} +\clip (-1,-1) rectangle (4,4); + +\def\r{3} +\def\winkel{30} + +\fill[color=blue!20] (0,0) -- (0:{0.6*\r}) arc (0:\winkel:{0.6*\r}) -- cycle; +\fill[color=blue!20] (\winkel:\r) + -- ($(\winkel:\r)+(0,{0.6*\r})$) arc (90:{90+\winkel}:{0.6*\r}) -- cycle; +\node[color=blue] at ({0.5*\winkel}:{0.45*\r}) {$\Delta\varphi$}; + +\node[color=blue] at ($(\winkel:\r)+({90+0.5*\winkel}:{0.45*\r})$) + {$\Delta\varphi$}; + +\draw[line width=0.3pt] (0,0) circle[radius=\r]; + +\draw[->] (0,0) -- (0:\r); +\draw[->] (0,0) -- (\winkel:\r); + +\draw[->] (0:\r) -- ($(0:\r)+(90:0.7*\r)$); +\draw[->] (\winkel:\r) -- ($(\winkel:\r)+({90+\winkel}:0.7*\r)$); +\draw[->,color=gray] (\winkel:\r) -- ($(\winkel:\r)+(0,0.7*\r)$); + +\draw[color=red,line width=1.4pt] (0:\r) arc (0:\winkel:\r); +\node[color=red] at ({0.5*\winkel}:\r) [left] {$\Delta s$}; +\fill[color=red] (0:\r) circle[radius=0.05]; +\fill[color=red] (\winkel:\r) circle[radius=0.05]; + +\node at (\winkel:{0.5*\r}) [above] {$r$}; +\node at (0:{0.5*\r}) [below] {$r$}; +\end{scope} + +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/fresnel/images/pfad.pdf b/buch/papers/fresnel/images/pfad.pdf Binary files differnew file mode 100644 index 0000000..df3c7af --- /dev/null +++ b/buch/papers/fresnel/images/pfad.pdf diff --git a/buch/papers/fresnel/images/pfad.tex b/buch/papers/fresnel/images/pfad.tex new file mode 100644 index 0000000..680cd78 --- /dev/null +++ b/buch/papers/fresnel/images/pfad.tex @@ -0,0 +1,37 @@ +% +% pfad.tex -- template for standalon tikz images +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math} +\begin{document} +\def\skala{1} +\definecolor{darkgreen}{rgb}{0,0.6,0} +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\fill[color=gray!40] (0,0) -- (2,0) arc (0:45:2) -- cycle; +\node at (22.5:1.4) {$\displaystyle\frac{\pi}4$}; + +\draw[->] (-1,0) -- (9,0) coordinate[label={$\operatorname{Re}$}]; +\draw[->] (0,-1) -- (0,6) coordinate[label={left:$\operatorname{Im}$}]; + +\draw[->,color=red,line width=1.4pt] (0,0) -- (7,0); +\draw[->,color=blue,line width=1.4pt] (7,0) arc (0:45:7); +\draw[->,color=darkgreen,line width=1.4pt] (45:7) -- (0,0); + +\node[color=red] at (3.5,0) [below] {$\gamma_1(t) = tR$}; +\node[color=blue] at (25:7) [right] {$\gamma_2(t) = Re^{it}$}; +\node[color=darkgreen] at (45:3.5) [above left] {$\gamma_3(t) = te^{i\pi/4}$}; + +\node at (7,0) [below] {$R$}; +\node at (45:7) [above] {$Re^{i\pi/4}$}; + +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/fresnel/images/schale.pdf b/buch/papers/fresnel/images/schale.pdf Binary files differnew file mode 100644 index 0000000..9c21951 --- /dev/null +++ b/buch/papers/fresnel/images/schale.pdf diff --git a/buch/papers/fresnel/images/schale.pov b/buch/papers/fresnel/images/schale.pov new file mode 100644 index 0000000..085a6a4 --- /dev/null +++ b/buch/papers/fresnel/images/schale.pov @@ -0,0 +1,191 @@ +// +// schale.pov -- +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#version 3.7; +#include "colors.inc" + +#declare O = <0,0,0>; + +global_settings { + assumed_gamma 1 +} + +#declare imagescale = 0.036; + +camera { + location <40, 20, -20> + look_at <0, 0.5, 0> + right 16/9 * x * imagescale + up y * imagescale +} + +light_source { + <10, 10, -40> color White + area_light <1,0,0> <0,0,1>, 10, 10 + adaptive 1 + jitter +} + +sky_sphere { + pigment { + color rgb<1,1,1> + } +} + +sphere { + <0, 0, 0>, 1 + pigment { + color rgb<0.8,0.8,0.8> + } + finish { + specular 0.95 + metallic + } +} + +#declare stripcolor = rgb<0.2,0.2,0.8>; + +#declare R = 1.002; + +#macro punkt(phi,theta) +R * < cos(phi) * cos(theta), sin(theta), sin(phi) * cos(theta) > +#end + +#declare N = 24; +#declare thetaphi = 0.01; +#declare thetawidth = pi * 0.008; +#declare theta = function(phi) { phi * thetaphi } + +#declare axisdiameter = 0.007; + +cylinder { + < 0, -2, 0>, < 0, 2, 0>, axisdiameter + pigment { + color White + } + finish { + specular 0.95 + metallic + } +} + +#declare curvaturecircle = 0.008; +#declare curvaturecirclecolor = rgb<0.4,0.8,0.4>; + +#declare phit = 12.8 * 2 * pi; +#declare P = punkt(phit, theta(phit)); +#declare Q = <0, R / sin(theta(phit)), 0>; + +#declare e1 = vnormalize(P - Q) / tan(theta(phit)); +#declare e2 = vnormalize(vcross(e1, <0,1,0>)) / tan(theta(phit)); +#declare psimin = -0.1 * pi; +#declare psimax = 0.1 * pi; +#declare psistep = (psimax - psimin) / 30; + +union { + #declare psi = psimin; + #declare K = Q + cos(psi) * e1 + sin(psi) * e2; + #while (psi < psimax - psistep/2) + sphere { K, curvaturecircle } + #declare psi = psi + psistep; + #declare K2 = Q + cos(psi) * e1 + sin(psi) * e2; + cylinder { K, K2, curvaturecircle } + #declare K = K2; + #end + sphere { K, curvaturecircle } + pigment { + color curvaturecirclecolor + } + finish { + specular 0.95 + metallic + } +} + +object { + mesh { + #declare psi = psimin; + #declare K = Q + cos(psi) * e1 + sin(psi) * e2; + #while (psi < psimax - psistep/2) + #declare psi = psi + psistep; + #declare K2 = Q + cos(psi) * e1 + sin(psi) * e2; + triangle { K, K2, Q } + #declare K = K2; + #end + } + pigment { + color rgbt<0.4,0.8,0.4,0.5> + } + finish { + specular 0.95 + metallic + } +} + +union { + sphere { P, 0.02 } + sphere { Q, 0.02 } + cylinder { P, Q, 0.01 } + pigment { + color Red + } + finish { + specular 0.95 + metallic + } +} + +#declare phisteps = 300; +#declare phistep = 2 * pi / phisteps; +#declare phimin = 0; +#declare phimax = N * 2 * pi; + +object { + mesh { + #declare phi = phimin; + #declare Poben = punkt(phi, theta(phi) + thetawidth); + #declare Punten = punkt(phi, theta(phi) - thetawidth); + triangle { O, Punten, Poben } + #while (phi < phimax - phistep/2) + #declare phi = phi + phistep; + #declare Poben2 = punkt(phi, theta(phi) + thetawidth); + #declare Punten2 = punkt(phi, theta(phi) - thetawidth); + triangle { O, Punten, Punten2 } + triangle { O, Poben, Poben2 } + triangle { Punten, Punten2, Poben } + triangle { Punten2, Poben2, Poben } + #declare Poben = Poben2; + #declare Punten = Punten2; + #end + triangle { O, Punten, Poben } + } + pigment { + color stripcolor + } + finish { + specular 0.8 + metallic + } +} + +union { + #declare phi = phimin; + #declare P = punkt(phi, theta(phi)); + #while (phi < phimax - phistep/2) + sphere { P, 0.003 } + #declare phi = phi + phistep; + #declare P2 = punkt(phi, theta(phi)); + cylinder { P, P2, 0.003 } + #declare P = P2; + #end + sphere { P, 0.003 } + pigment { + color stripcolor + } + finish { + specular 0.8 + metallic + } +} diff --git a/buch/papers/fresnel/images/schale.tex b/buch/papers/fresnel/images/schale.tex new file mode 100644 index 0000000..577ede4 --- /dev/null +++ b/buch/papers/fresnel/images/schale.tex @@ -0,0 +1,77 @@ +% +% schlange.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math,calc} +\usepackage{ifthen} +\begin{document} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} +\def\a{47} +\def\r{3.3} +\def\skala{0.95} + +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\begin{scope}[xshift=-7.4cm,yshift=-1.2cm] + \clip (-3.6,-2.2) rectangle (3.6,5.1); + + \fill[color=blue!20] (0,0) + -- ({180-\a}:{0.4*\r}) arc ({180-\a}:180:{0.4*\r}) + -- cycle; + \node[color=blue] at ({180-\a/2}:{0.3*\r}) {$\vartheta$}; + + \fill[color=blue!20] (0,{\r/sin(\a)}) + -- ($(0,{\r/sin(\a)})+({270-\a}:{0.3*\r})$) + arc ({270-\a}:270:{0.3*\r}) + -- cycle; + \node[color=blue] at ($(0,{\r/sin(\a)})+({270-\a/2}:{0.2*\r})$) + {$\vartheta$}; + + + \draw (0,0) circle[radius=\r]; + \draw[->] (0,-3.0) -- (0,5); + \draw ({-\r-0.2},0) -- ({\r+0.2},0); + \fill (0,0) circle[radius=0.06]; + + \draw (0,0) -- ({180-\a}:\r); + \node at ({180-\a+3}:{0.65*\r}) [above right] {$1$}; + + \draw[color=red,line width=1.4pt] + ({180-\a}:\r) -- (0,{\r/cos(90-\a)}); + \fill[color=red] ({180-\a}:\r) circle[radius=0.08]; + \fill[color=red] (0,{\r/cos(90-\a)}) circle[radius=0.08]; + \node[color=red] at (-1.0,3.7) [left] {$r=\cot\vartheta$}; + \node[color=red] at ({180-\a}:\r) [above left] {$P$}; + \node[color=red] at (0,{\r/sin(\a)}) [right] {$Q$}; +\end{scope} + +% Povray Bild +\node at (0,0) {\includegraphics[width=7.6cm]{schale.jpg}}; + +% Gitter +\ifthenelse{\boolean{showgrid}}{ +\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw (-\breite,-\hoehe) grid (\breite, \hoehe); +\fill (0,0) circle[radius=0.05]; +}{} + +\node[color=red] at (-1.4,1.4) {$r$}; +\node[color=red] at (-2.2,-0.2) {$P$}; +\node[color=red] at (0,3.3) [right] {$Q$}; + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/fresnel/main.tex b/buch/papers/fresnel/main.tex index bbaf7e6..2050fd4 100644 --- a/buch/papers/fresnel/main.tex +++ b/buch/papers/fresnel/main.tex @@ -3,29 +3,16 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:fresnel}} -\lhead{Thema} +\chapter{Fresnel-Integrale\label{chapter:fresnel}} +\lhead{Fresnel-Integrale} \begin{refsection} -\chapterauthor{Hans Muster} +\chapterauthor{Andreas Müller} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} +{\parindent0pt Die} Fresnel-Integrale tauchen in der Untersuchung der Beugung +in paraxialer Näherung auf, auch bekannt als die Fresnel-Approximation. +In diesem Kapitel betrachen wir jedoch nur die geometrische +Anwendung der Fresnel-Integrale als Parametrisierung der Euler-Spirale +und zeigen, dass letztere eine Klothoide ist. \input{papers/fresnel/teil0.tex} \input{papers/fresnel/teil1.tex} diff --git a/buch/papers/fresnel/references.bib b/buch/papers/fresnel/references.bib index 84cd3bc..cf8fb21 100644 --- a/buch/papers/fresnel/references.bib +++ b/buch/papers/fresnel/references.bib @@ -33,3 +33,20 @@ url = {https://doi.org/10.1016/j.acha.2017.11.004} } +@online{fresnel:fresnelC, + url = { https://functions.wolfram.com/GammaBetaErf/FresnelC/introductions/FresnelIntegrals/ShowAll.html }, + title = { FresnelC }, + date = { 2022-05-13 } +} + +@online{fresnel:wikipedia, + url = { https://en.wikipedia.org/wiki/Fresnel_integral }, + title = { Fresnel Integral }, + date = { 2022-05-13 } +} + +@online{fresnel:schale, + url = { https://www.youtube.com/watch?v=D3tdW9l1690 }, + title = { A Strange Map Projection (Euler Spiral) - Numberphile }, + date = { 2022-05-14 } +} diff --git a/buch/papers/fresnel/teil0.tex b/buch/papers/fresnel/teil0.tex index 5e9fdaf..85b8bf7 100644 --- a/buch/papers/fresnel/teil0.tex +++ b/buch/papers/fresnel/teil0.tex @@ -1,22 +1,101 @@ % -% einleitung.tex -- Beispiel-File für die Einleitung +% teil0.tex -- Definition % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 0\label{fresnel:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{fresnel:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. +\section{Definition\label{fresnel:section:teil0}} +\rhead{Definition} +Die Funktion $e^{x^2}$ hat bekanntermassen keine elementare Stammfunktion, +weshalb die Fehlerfunktion als Stammfunktion definiert wurde. +Die Funktionen $\cos x^2$ und $\sin x^2$ sind eng mit $e^{x^2}$ +verwandt, es ist daher nicht überraschend, dass sie ebenfalls +keine elementare Stammfunktionen haben. +Dies rechtfertigt die Definition der Fresnel-Integrale als neue spezielle +Funktionen. -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. +\begin{definition} +Die Funktionen +\begin{align*} +C(x) &= \int_0^x \cos\biggl(\frac{\pi}2 t^2\biggr)\,dt +\\ +S(x) &= \int_0^x \sin\biggl(\frac{\pi}2 t^2\biggr)\,dt +\end{align*} +heissen die Fresnel-Integrale. +\end{definition} +Der Faktor $\frac{\pi}2$ ist einigermassen willkürlich, man könnte +daher noch allgemeiner die Funktionen +\begin{align*} +C_a(x) &= \int_0^x \cos(at^2)\,dt +\\ +S_a(x) &= \int_0^x \sin(at^2)\,dt +\end{align*} +definieren, so dass die Funktionen $C(x)$ und $S(x)$ der Fall +$a=\frac{\pi}2$ werden, also +\[ +\begin{aligned} +C(x) &= C_{\frac{\pi}2}(x), +& +S(x) &= S_{\frac{\pi}2}(x). +\end{aligned} +\] +Durch eine Substitution $t=bs$ erhält man +\begin{align*} +C_a(x) +&= +\int_0^x \cos(at^2)\,dt += +b +\int_0^{\frac{x}b} \cos(ab^2s^2)\,ds += +b +C_{ab^2}\biggl(\frac{x}b\biggr) +\\ +S_a(x) +&= +\int_0^x \sin(at^2)\,dt += +b +\int_0^{\frac{x}b} \sin(ab^2s^2)\,ds += +b +S_{ab^2}\biggl(\frac{x}b\biggr). +\end{align*} +Indem man $ab^2=\frac{\pi}2$ setzt, also +\[ +b += +\sqrt{\frac{\pi}{2a}} +, +\] +kann man die Funktionen $C_a(x)$ und $S_a(x)$ durch $C(x)$ und $S(x)$ +ausdrücken: +\begin{align} +C_a(x) +&= +\sqrt{\frac{\pi}{2a}} +C\biggl(x +\sqrt{\frac{2a}{\pi}} +\biggr) +&&\text{und}& +S_a(x) +&= +\sqrt{\frac{\pi}{2a}} +S\biggl(x +\sqrt{\frac{2a}{\pi}} +\biggr). +\label{fresnel:equation:arg} +\end{align} +Im Folgenden werden wir meistens nur den Fall $a=1$, also die Funktionen +$C_1(x)$ und $S_1(x)$ betrachten, da in diesem Fall die Formeln einfacher +werden. +\begin{figure} +\centering +\includegraphics{papers/fresnel/images/fresnelgraph.pdf} +\caption{Graph der Funktionen $C(x)$ ({\color{red}rot}) +und $S(x)$ ({\color{blue}blau}) +\label{fresnel:figure:plot}} +\end{figure} +Die Abbildung~\ref{fresnel:figure:plot} zeigt die Graphen der +Funktion $C(x)$ und $S(x)$. diff --git a/buch/papers/fresnel/teil1.tex b/buch/papers/fresnel/teil1.tex index a2df138..c716cd7 100644 --- a/buch/papers/fresnel/teil1.tex +++ b/buch/papers/fresnel/teil1.tex @@ -1,55 +1,205 @@ % -% teil1.tex -- Beispiel-File für das Paper +% teil1.tex -- Euler-Spirale % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 1 -\label{fresnel:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{fresnel:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. +\section{Euler-Spirale +\label{fresnel:section:eulerspirale}} +\rhead{Euler-Spirale} +\begin{figure} +\centering +\includegraphics{papers/fresnel/images/eulerspirale.pdf} +\caption{Die Eulerspirale ist die Kurve mit der Parameterdarstellung +$x\mapsto (C(x),S(x))$, sie ist rot dargestellt. +Sie windet sich unendlich oft um die beiden Punkte $(\pm\frac12,\pm\frac12)$. +\label{fresnel:figure:eulerspirale}} +\end{figure} +Ein besseres Verständnis für die beiden Funktionen $C(x)$ und $S(x)$ +als die Darstellung~\ref{fresnel:figure:plot} ermöglicht die +Abbildung~\ref{fresnel:figure:eulerspirale}, die die beiden Funktionen +als die $x$- und $y$-Koordinaten der Parameterdarstellung einer Kurve +zeigt. +Sie heisst die {\em Euler-Spirale}. +Die Spirale scheint sich für $x\to\pm\infty$ um die Punkte +$(\pm\frac12,\pm\frac12)$ zu winden. -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? +\begin{figure} +\centering +\includegraphics{papers/fresnel/images/pfad.pdf} +\caption{Pfad zur Berechnung der Grenzwerte $C_1(\infty)$ und +$S_1(\infty)$ mit Hilfe des Cauchy-Integralsatzes +\label{fresnel:figure:pfad}} +\end{figure} -\subsection{De finibus bonorum et malorum -\label{fresnel:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. -Et harum quidem rerum facilis est et expedita distinctio -\ref{fresnel:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{fresnel:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. +\begin{satz} +Die Grenzwerte der Fresnel-Integrale für $x\to\pm\infty$ sind +\[ +\lim_{x\to\pm\infty} C(x) += +\lim_{x\to\pm\infty} S(x) += +\frac12. +\] +\end{satz} +\begin{proof}[Beweis] +Die komplexe Funktion +\( +f(z) = e^{-z^2} +\) +ist eine ganze Funktion, das Integral über einen geschlossenen +Pfad in der komplexen Ebene verschwindet daher. +Wir verwenden den Pfad in Abbildung~\ref{fresnel:figure:pfad} +bestehend aus den drei Segmenten $\gamma_1$ entlang der reellen +Achse von $0$ bis $R$, dem Kreisbogen $\gamma_2$ um $0$ mit Radius $R$ +und $\gamma_3$ mit der Parametrisierung $t\mapsto te^{i\pi/4}$. + +Das Teilintegral über $\gamma_1$ ist +\[ +\lim_{R\to\infty} +\int_{\gamma_1} e^{-z^2}\,dz += +\int_0^\infty e^{-t^2}\,dt += +\frac{\sqrt{\pi}}2. +\] +Das Integral über $\gamma_3$ ist +\begin{align*} +\lim_{R\to\infty} +\int_{\gamma_3} +e^{-z^2}\,dz +&= +-\int_0^\infty \exp(-t^2 e^{i\pi/2}) e^{i\pi/4}\,dt += +- +\int_0^\infty e^{-it^2}\,dt\, +e^{i\pi/4} +\\ +&= +-e^{i\pi/4}\int_0^\infty \cos t^2 - i \sin t^2\,dt +\\ +&= +-\frac{1}{\sqrt{2}}(1+i) +\bigl( +C_1(\infty) +-i +S_1(\infty) +\bigr) +\\ +&= +-\frac{1}{\sqrt{2}} +\bigl( +C_1(\infty)+S_1(\infty) ++ +i(C_1(\infty)-S_1(\infty)) +\bigr), +\end{align*} +wobei wir +\[ +C_1(\infty) = \lim_{R\to\infty} C_1(R) +\qquad\text{und}\qquad +S_1(\infty) = \lim_{R\to\infty} S_1(R) +\] +abgekürzt haben. +Das Integral über das Segment $\gamma_2$ lässt sich +mit der Parametrisierung +\( +\gamma_2(t) += +Re^{it} += +R(\cos t + i\sin t) +\) +wie folgt +abschätzen: +\begin{align*} +\biggl|\int_{\gamma_2} e^{-z^2} \,dz\biggr| +&= +\biggl| +\int_0^{\frac{\pi}4} +\exp(-R^2(\cos 2t + i\sin 2t)) iR e^{it}\,dt +\biggr| +\\ +&\le +R +\int_0^{\frac{\pi}4} +e^{-R^2\cos 2t} +\,dt +\le +R +\int_0^{\frac{\pi}4} +e^{-R^2(1-\frac{4}{\pi}t)} +\,dt. +\intertext{Dabei haben wir $\cos 2t\ge 1-\frac{4}\pi t$ verwendet. +Mit dieser Vereinfachung kann das Integral ausgewertet werden und +ergibt} +&= +Re^{-R^2} +\int_0^{\frac{\pi}4} +e^{R^2\frac{\pi}4t} +\,dt += +Re^{-R^2} +\biggl[ +\frac{4}{\pi R^2} +e^{R^2\frac{\pi}4t} +\biggr]_0^{\frac{\pi}4} += +\frac{4}{\pi R} +e^{-R^2}(e^{R^2}-1) += +\frac{4}{\pi R} +(1-e^{-R^2}) +\to 0 +\end{align*} +für $R\to \infty$. +Im Grenzwert $R\to \infty$ kann der Teil $\gamma_2$ des Pfades +vernachlässigt werden. + +Das Integral über den geschlossenen Pfad $\gamma$ verschwindet. +Da der Teil $\gamma_2$ keine Rolle spielt, müssen sich die +Integrale über $\gamma_1$ und $\gamma_3$ wegheben, also +\begin{align*} +0 += +\int_\gamma e^{-z^2}\,dz +&= +\int_{\gamma_1} e^{-z^2}\,dz ++ +\int_{\gamma_2} e^{-z^2}\,dz ++ +\int_{\gamma_3} e^{-z^2}\,dz +\\ +&\to +\frac{\sqrt{\pi}}2 +-\frac{1}{\sqrt{2}}(C_1(\infty)+S_1(\infty)) +-\frac{i}{\sqrt{2}}(C_1(\infty)-S_1(\infty)). +\end{align*} +Der Imaginärteil ist $C_1(\infty)-S_1(\infty)$, da er verschwinden +muss, folgt $C_1(\infty)=S_1(\infty)$. +Nach Multlikation mit $\sqrt{2}$ folgt aus der Tatsache, dass auch +der Realteil verschwinden muss +\[ +\sqrt{\frac{\pi}{2}} = C_1(\infty)+S_1(\infty) +\qquad +\Rightarrow +\qquad +C_1(\infty) += +S_1(\infty) += +\frac12 +\sqrt{ +\frac{\pi}{2} +}. +\] +Aus +\eqref{fresnel:equation:arg} +erhält man dann auch die Grenzwerte +\[ +C(\infty)=S(\infty)=\frac12. +\qedhere +\] +\end{proof} diff --git a/buch/papers/fresnel/teil2.tex b/buch/papers/fresnel/teil2.tex index 701c3ee..ec8c896 100644 --- a/buch/papers/fresnel/teil2.tex +++ b/buch/papers/fresnel/teil2.tex @@ -3,38 +3,177 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 2 -\label{fresnel:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{fresnel:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. +\section{Klothoide +\label{fresnel:section:klothoide}} +\rhead{Klothoide} +In diesem Abschnitt soll gezeigt werden, dass die Krümmung der +Euler-Spirale proportional zur vom Nullpunkt aus gemessenen Bogenlänge +ist. + +\begin{definition} +Eine ebene Kurve, deren Krümmung proportionale zur Kurvenlänge ist, +heisst {\em Klothoide}. +\end{definition} + +Die Klothoide wird zum Beispiel im Strassenbau für Autobahnkurven +verwendet. +Fährt man mit konstanter Geschwindigkeit entlang einer Klothoide, +muss man die Krümmung mit konstaner Geschwindigkeit ändern, +also das Lenkrad mit konstanter Geschwindigkeit drehen. +Dies ermöglicht eine ruhige Fahrweise. + +\subsection{Krümmung einer ebenen Kurve} +\begin{figure} +\centering +\includegraphics{papers/fresnel/images/kruemmung.pdf} +\caption{Berechnung der Krümmung einer ebenen Kurve. +\label{fresnel:figure:kruemmung}} +\end{figure} +Abbildung~\ref{fresnel:figure:kruemmung} erinnert daran, dass der +Bogen eines Kreises vom Radius $r$, entlang dem sich die Richtung +der Tangente um $\Delta\varphi$ ändert, die Länge +$\Delta s = r\Delta\varphi$. +Die Krümmung ist der Kehrwert des Krümmungsradius, daraus kann +man ablesen, dass +\[ +\kappa = \frac{1}{r} = \frac{\Delta \varphi}{\Delta s}. +\] +Für eine beliebige ebene Kurve ist daher die Krümmung +\[ +\kappa = \frac{d\varphi}{ds}. +\] + +\subsection{Krümmung der Euler-Spirale} +Wir betrachten jetzt die Euler-Spirale mit der Parametrisierung +$\gamma(s) = (C_1(s),S_1(s))$. +Zunächst stellen wir fest, dass die Länge der Tangente +\[ +\dot{\gamma}(s) += +\frac{d\gamma}{ds} += +\begin{pmatrix} +\dot{C}_1(s)\\ +\dot{S}_1(s) +\end{pmatrix} += +\begin{pmatrix} +\cos s^2\\ +\sin s^2 +\end{pmatrix} +\qquad\Rightarrow\qquad +|\dot{\gamma}(s)| += +\sqrt{\cos^2s^2+\sin^2s^2} += +1. +\] +Insbesondere ist der Parameter $s$ der Kurve $\gamma(s)$ die +Bogenlänge. + +Der zu $\dot{\gamma}(s)$ gehörige Polarwinkel kann aus dem Vergleich +mit einem Vektor mit bekanntem Polarwinkel $\varphi$ abgelesen werden: +\[ +\begin{pmatrix} +\cos \varphi\\ +\sin \varphi +\end{pmatrix} += +\dot{\gamma}(s) += +\begin{pmatrix} +\cos s^2\\\sin s^2 +\end{pmatrix}, +\] +der Polarwinkel +ist daher $\varphi = s^2$. +Die Krümmung ist die Ableitung des Polarwinkels nach $s$, also +\[ +\kappa += +\frac{d\varphi}{ds} += +\frac{ds^2}{ds} += +2s, +\] +sie ist somit proportional zur Bogenlänge $s$. +Damit folgt, dass die Euler-Spirale eine Klothoide ist. + +\subsection{Eine Kugel schälen} +\begin{figure} +\centering +\includegraphics[width=\textwidth]{papers/fresnel/images/schale.pdf} +\caption{Schält man eine einen Streifen konstanter Breite beginnend am +Äquator von einer Kugel ab und breitet ihn in der Ebene aus, entsteht +eine Klothoide. +\label{fresnel:figure:schale}} +\end{figure} +\begin{figure} +\centering +\includegraphics{papers/fresnel/images/apfel.pdf} +\caption{Klothoide erhalten durch Abschälen eines Streifens von einem +Apfel (vgl.~Abbildung~\ref{fresnel:figure:schale}) +\label{fresnel:figure:apfel}} +\end{figure} +Schält man einen Streifen konstanter Breite beginnend parallel zum Äquator +von einer Kugel ab und breitet ihn in die Ebene aus, entsteht eine +Approximation einer Klothoide. +Abbildung~\ref{fresnel:figure:schale} zeigt blau den abgeschälten Streifen, +Abbildung~\ref{fresnel:figure:apfel} zeigt das Resultat dieses Versuches +an einem Apfel, das Youtube-Video \cite{fresnel:schale} des +Numberphile-Kanals illustriert das Problem anhand eines aufblasbaren +Globus. + +Windet sich die Kurve in Abbildung~\ref{fresnel:figure:schale} $n$ +mal um die vertikale Achse, bevor sie den Nordpol erreicht, dann kann +die Kurve mit der Funktion +\[ +\gamma(t) += +\begin{pmatrix} +\cos(t) \cos(t/n) \\ +\sin(t) \cos(t/n) \\ +\sin(t/n) +\end{pmatrix} +\] +parametrisiert werden. +Der Tangentialvektor +\[ +\dot{\gamma}(t) += +\begin{pmatrix} +-\sin(t)\cos(t/n) - \cos(t)\sin(t/n)/n \\ +\cos(t)\cos(t/n) - \sin(t)\sin(t/n)/n \\ +\cos(t/n)/n +\end{pmatrix} +\] +hat die Länge +\[ +| \dot{\gamma}(t) |^2 += +\frac{1}{n^2} ++ +\cos^2\frac{t}{n}. +\] +Die Ableitung der Bogenlänge ist daher +\[ +\dot{s}(t) += +\sqrt{ +\frac{1}{n^2} ++ +\cos^2\frac{t}{n} +}. +\] + + +Der Krümmungsradius des blauen Streifens, der die Kugel im Punkt $P$ bei +geographischer $\vartheta$ berührt, hat die Länge der Tangente, die +die Kugel im Punkt $P$ berührt und im Punkt $Q$ durch die Achse der +Kugel geht (Abbildung~\ref{fresnel:figure:schale}). +Die Krümmung in Abhängigkeit von $\vartheta$ ist daher $\tan\vartheta$. + + diff --git a/buch/papers/fresnel/teil3.tex b/buch/papers/fresnel/teil3.tex index d4f15f6..ceddbe0 100644 --- a/buch/papers/fresnel/teil3.tex +++ b/buch/papers/fresnel/teil3.tex @@ -3,38 +3,110 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 3 -\label{fresnel:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? +\section{Numerische Berechnung der Fresnel-Integrale +\label{fresnel:section:numerik}} +\rhead{Numerische Berechnung} +Die Fresnel-Integrale können mit verschiedenen Methoden effizient berechnet +werden. -\subsection{De finibus bonorum et malorum -\label{fresnel:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. +\subsection{Komplexe Fehlerfunktionen} +Es wurde schon darauf hingewiesen, dass der Integrand der Fresnel-Integrale +mit $e^{t^2}$ verwandt ist. +Tatsächlich kann gezeigt werden dass sich die Fresnel-Integrale mit +Hilfe der komplexen Fehlerfunktion als +\[ +\left. +\begin{matrix} +S_1(z) +\\ +C_1(z) +\end{matrix} +\; +\right\} += +\frac{1\pm i}4\biggl( +\operatorname{erf}\biggl(\frac{1+i}2\sqrt{\pi}z\biggr) +\mp +\operatorname{erf}\biggl(\frac{1-i}2\sqrt{\pi}z\biggr) +\biggr) +\] +ausdrücken lassen \cite{fresnel:fresnelC}. +Diese Darstellung ist jedoch für die numerische Berechnung nur +beschränkt nützlich, weil die meisten Bibliotheken für die Fehlerfunktion +diese nur für reelle Argument auszuwerten gestatten. + +\subsection{Als Lösung einer Differentialgleichung} +Da die Fresnel-Integrale die sehr einfachen Differentialgleichungen +\[ +C'(x) = \cos \biggl(\frac{\pi}2 x^2\biggr) +\qquad\text{und}\qquad +S'(x) = \sin \biggl(\frac{\pi}2 x^2\biggr) +\] +erfüllen, kann man eine Methode zur numerischen Lösung von +Differentialgleichung verwenden. +Die Abbildungen~\ref{fresnel:figure:plot} und \ref{fresnel:figure:eulerspirale} +wurden auf diese Weise erzeugt. + +\subsection{Taylor-Reihe integrieren} +Die Taylorreihen +\begin{align*} +\cos x +&= +\sum_{k=0}^\infty \frac{(-1)^k}{(2k)!} x^{2k} +&&\text{und}& +\sin x +&= +\sum_{k=0}^\infty \frac{(-1)^k}{(2k+1)!} x^{2k+1} +\intertext{% +der trigonometrischen Funktionen werden durch Einsetzen von $x=t^2$ +zu} +\cos t^2 +&= +\sum_{k=0}^\infty \frac{(-1)^k}{(2k)!} t^{4k} +&&\text{und}& +\sin t^2 +&= +\sum_{k=0}^\infty \frac{(-1)^k}{(2k+1)!} t^{4k+2}. +\intertext{% +Die Fresnel-Integrale $C_1(x)$ und $S_1(x)$ können daher durch +termweise Integration mit Hilfe der Reihen} +C_1(x) +&= +\sum_{k=0}^\infty \frac{(-1)^k}{(2k)!} \frac{x^{4k+1}}{4k+1} +&&\text{und}& +S_1(x) +&= +\sum_{k=0}^\infty \frac{(-1)^k}{(2k+1)!} \frac{x^{4k+3}}{4k+3} +\end{align*} +berechnet werden. +Diese Reihen sind insbesondere für kleine Werte von $x$ sehr +schnell konvergent. + +\subsection{Hypergeometrische Reihen} +Aus der Reihenentwicklung kann jetzt auch eine Darstellung der +Fresnel-Integrale durch hypergeometrische Reihen gefunden werden +\cite{fresnel:fresnelC}. +Es ergibt sich +\begin{align*} +S(z) +&= +\frac{\pi z^3}{6} +\cdot +\mathstrut_1F_2\biggl( +\begin{matrix}\frac34\\\frac32,\frac74\end{matrix} +; +-\frac{\pi^2z^4}{16} +\biggr) +\\ +C(z) +&= +z +\cdot +\mathstrut_1F_2\biggl( +\begin{matrix}\frac14\\\frac12,\frac54\end{matrix} +; +-\frac{\pi^2z^4}{16} +\biggr). +\end{align*} diff --git a/buch/papers/kra/main.tex b/buch/papers/kra/main.tex index 559d85c..fcee25b 100644 --- a/buch/papers/kra/main.tex +++ b/buch/papers/kra/main.tex @@ -3,34 +3,34 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:kra}} -\lhead{Thema} +\chapter{Kalman, Riccati und Abel\label{chapter:kra}} +\lhead{Kalman, Riccati und Abel} \begin{refsection} -\chapterauthor{Hans Muster} + \chapterauthor{Samuel Niederer} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} + Ein paar Hinweise für die korrekte Formatierung des Textes + \begin{itemize} + \item + Absätze werden gebildet, indem man eine Leerzeile einfügt. + Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. + \item + Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende + Optionen werden gelöscht. + Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. + \item + Beginnen Sie jeden Satz auf einer neuen Zeile. + Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen + in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt + anzuwenden. + \item + Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren + Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. + \end{itemize} -\input{papers/kra/teil0.tex} -\input{papers/kra/teil1.tex} -\input{papers/kra/teil2.tex} -\input{papers/kra/teil3.tex} + \input{papers/kra/teil0.tex} + \input{papers/kra/teil1.tex} + \input{papers/kra/teil2.tex} + \input{papers/kra/teil3.tex} -\printbibliography[heading=subbibliography] + \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/kreismembran/main.tex b/buch/papers/kreismembran/main.tex index 67b436c..e63a118 100644 --- a/buch/papers/kreismembran/main.tex +++ b/buch/papers/kreismembran/main.tex @@ -3,29 +3,10 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:kreismembran}} -\lhead{Thema} +\chapter{Schwingungen einer kreisförmligen Membran\label{chapter:kreismembran}} +\lhead{Schwingungen einer kreisförmligen Membran} \begin{refsection} -\chapterauthor{Hans Muster} - -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} +\chapterauthor{Andrea Mozzini Vellen und Tim Tönz} \input{papers/kreismembran/teil0.tex} \input{papers/kreismembran/teil1.tex} diff --git a/buch/papers/kreismembran/teil0.tex b/buch/papers/kreismembran/teil0.tex index e4b1711..1552259 100644 --- a/buch/papers/kreismembran/teil0.tex +++ b/buch/papers/kreismembran/teil0.tex @@ -3,20 +3,8 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 0\label{kreismembran:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{kreismembran:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. +\section{Einleitung\label{kreismembran:section:teil0}} +\rhead{Einleitung} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. diff --git a/buch/papers/kreismembran/teil1.tex b/buch/papers/kreismembran/teil1.tex index b715075..aef5b79 100644 --- a/buch/papers/kreismembran/teil1.tex +++ b/buch/papers/kreismembran/teil1.tex @@ -2,54 +2,99 @@ % teil1.tex -- Beispiel-File für das Paper % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 1 -\label{kreismembran:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{kreismembran:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? -\subsection{De finibus bonorum et malorum -\label{kreismembran:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. +\section{Lösungsmethode 1: Separationsmethode + \label{kreismembran:section:teil1}} +\rhead{Lösungsmethode 1: Separationsmethode} +An diesem Punkt bleibt also nur noch die Lösung der partiellen Differentialgleichung. In diesem Kapitel wird sie mit Hilfe der Separationsmetode gelöst. -Et harum quidem rerum facilis est et expedita distinctio -\ref{kreismembran:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{kreismembran:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. +Wie im vorherigen Kapitel gezeigt, lautet die partielle Differentialgleichung, die die Schwingungen einer Membran beschreibt: +\begin{equation*} + \frac{1}{c^2}\frac{\partial^2u}{\partial t^2} = \Delta u +\end{equation*} +Da es sich um eine Kreisscheibe handelt, werden Polarkoordinaten verwendet, so dass sich der Laplaceoperator ergibt: +\begin{equation*} + \Delta + = + \frac{\partial^2}{\partial r^2} + + + \frac1r + \frac{\partial}{\partial r} + + + \frac{1}{r 2} + \frac{\partial^2}{\partial\varphi^2}. + \label{buch:pde:kreis:laplace} +\end{equation*} +Es wird eine runde elastische Membran berücksichtigt, die den Gebietbereich $\Omega$ abdeckt und am Rand $\Gamma$ befestigt ist. +Es wird daher davon ausgegangen, dass die Membran aus einem homogenen Material von vernachlässigbarer Dicke gefertigt ist. +Die Membran kann verformt werden, aber innere elastische Kräfte wirken den Verformungen entgegen. Es wirken keine äusseren Kräfte. Es handelt sich somit von einer kreisförmligen eigespannten homogenen schwingenden Membran. + +Daher ist die Membranabweichung im Punkt $(r,\varphi)$ $\in$ $\overline{\rm \Omega}$ zum Zeitpunkt $t$: +\begin{align*} + u: \overline{\rm \Omega} \times \mathbb{R}_{\geq 0} &\longrightarrow \mathbb{R}\\ + (r,\varphi,t) &\longmapsto u(r,\varphi,t) +\end{align*} +Da die Membran am Rand befestigt ist, kann es keine Schwingungen geben, so dass die \textit{Dirichlet-Randbedingung} gilt: +\begin{equation*} + u\big|_{\Gamma} = 0 +\end{equation*} +Um eine eindeutige Lösung bestimmen zu können, werden die folgenden Anfangsbedingungen festgelegt: +\begin{align*} + u(r,\varphi, 0) &= f(r,\varphi)\\ + \frac{\partial}{\partial t} u(r,\varphi, 0) &= g(r,\varphi) +\end{align*} +Daher muss an dieser Stelle von einer Separation der Variablen ausgegangen werden: +\begin{equation*} + u(r,\varphi, t) = F(r)G(\varphi)T(t) +\end{equation*} +Dank der Randbedingungen kann also gefordert werden, dass $F(R)=0$ ist, und natürlich, dass $G(\varphi)$ $2\pi$ periodisch ist. Eingesetz in der Differenzialgleichung ergibt: +\begin{equation*} + \frac{1}{c^2}\frac{T''(t)}{T(t)}=\frac{F''(r)}{F(r)}+\frac{1}{r}\frac{F'(r)}{F(r)}+\frac{1}{r^2}\frac{G''(\varphi)}{G(\varphi)} +\end{equation*} +Da die linke Seite nur von $t$ und die rechte Seite nur von $r$ und $\varphi$ abhängt, müssen sie gleich einer reellen Zahl sein. Aus physikalischen Grunden suchen wir nach Lösungen, die weder exponentiell in der Zeit wachsen noch exponentiell abklingen. Dies bedeutet, dass die Konstante negativ sein muss, also schreibt man $k=-k^2$. Daraus ergeben sich die folgenden zwei Gleichungen: +\begin{gather*} + T''(t) + c^2\kappa^2T(t) = 0\\ + r^2\frac{F''(r)}{F(r)} + r \frac{F'(r)}{F(r)} +\kappa^2 r^2 = - \frac{G''(\varphi)}{G(\varphi)} +\end{gather*} +In der zweiten Gleichung hängt die linke Seite nur von $r$ ab, während die rechte Seite nur von $\varphi$ abhängt. Sie müssen also wiederum gleich einer reellen Zahl $\nu$ sein. Also das: +\begin{gather*} + r^2F''(r) + rF'(r) + (\kappa^2 r^2 - \nu)F(r) = 0 \\ + G''(\varphi) = \nu G(\varphi) +\end{gather*} +$G$ kann in einer Fourierreihe entwickelt werden, so dass man sieht, dass $\nu$ die Form $n^2$ mit einer positiven ganzen Zahl sein muss, also: +\begin{equation*} + G(\varphi) = C_n \cos(\varphi) + D_n \sin(\varphi) +\end{equation*} +Die Gleichung $F$ hat die Gestalt +\begin{equation*} + r^2F''(r) + rF'(r) + (\kappa^2 r^2 - n^2)F(r) = 0 \quad (*) +\end{equation*} +Wir bereits in der Vorlesung von Prof. Müller gezeigt, sind die Besselfunktionen +\begin{equation*} + J_{\nu}(x) = r^\nu \displaystyle\sum_{m=0}^{\infty} \frac{(-1)^m x^{2m}}{2^{2m+\nu}m! \Gamma (\nu + m+1)} +\end{equation*} +Lösungen der "Besselschen Differenzialgleichung" +\begin{equation*} + x^2 y'' + xy' + (x^2 - \nu^2)y = 0 +\end{equation*} +Die Funktionen $F(r) = J_n(\kappa r)$ lösen also die Differentialgleichung $(*)$. Die +Randbedingung $F(R)=0$ impliziert, dass $\kappa R$ eine Nullstelle der Besselfunktion +$J_n$ sein muss. Man kann zeigen, dass die Besselfunktionen $J_n, n \geq 0$, alle unendlich +viele Nullstellen +\begin{equation*} + \alpha_{1n} < \alpha_{2n} < ... +\end{equation*} +haben, und dass $\underset{\substack{m\to\infty}}{\text{lim}} \alpha_{mn}=\infty$. Somit ergit sich, dass $\kappa = \frac{\alpha_{mn}}{R}$ für ein $m\geq 1$, und dass +\begin{equation*} + F(r) = J_n (\kappa_{mn}r) \quad mit \quad \kappa_{mn}=\frac{\alpha_{mn}}{R} +\end{equation*} +Die Differenzialgleichung $T''(t) + c^2\kappa^2T(t) = 0$, wird auf ähnliche Weise gelöst wie $G(\varphi)$. Durch Überlagerung aller Ergebnisse erhält man die Lösung +\begin{equation} + u(r, \varphi, t) = \displaystyle\sum_{m=1}^{\infty}\displaystyle\sum_{n=0}^{\infty} J_n (k_{mn}r)\cos(n\varphi)[a_{mn}\cos(c \kappa_{mn} t)+b_{mn}\sin(c \kappa_{mn} t)] +\end{equation} +Dabei sind m und n ganze Zahlen, wobei m für die Anzahl der Knotenkreise und n +für die Anzahl der Knotenlinien steht. Es gibt bestimmte Bereiche auf der Membran, in denen es keine Bewegung oder Vibration gibt. Wenn der nicht schwingende Bereich ein Kreis ist, nennt man ihn einen Knotenkreis, und wenn er eine Linie ist, nennt man ihn ebenfalls eine Knotenlinie. $Jn(\kappa_{mn}r)$ ist die Besselfunktion $n$-ter Ordnung, wobei kmn die Wellenzahl und $r$ der Radius ist. $a_{mn}$ und $b_{mn}$ sind die zu bestimmenden Konstanten. +An diesem Punkt stellte sich die Frage, ob es möglich wäre, die partielle Differentialgleichung mit einer anderen Methode als der der Trennung der Variablen zu lösen. Nach einer kurzen Recherche und Diskussion mit Prof. Müller wurde festgestellt, dass die beste Methode die Transformationsmethode ist, genauer gesagt die Anwendung der Hankel-Transformation. Im nächsten Kapitel wird daher diese Integraltransformation vorgestellt und entwickelt, und es wird erläutert, warum sie für diese Art von Problem geeignet ist. diff --git a/buch/papers/kreismembran/teil2.tex b/buch/papers/kreismembran/teil2.tex index 7ed217f..8afe817 100644 --- a/buch/papers/kreismembran/teil2.tex +++ b/buch/papers/kreismembran/teil2.tex @@ -1,40 +1,113 @@ % -% teil2.tex -- Beispiel-File für teil2 -% % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 2 -\label{kreismembran:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{kreismembran:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. + +\section{Die Hankel Transformation \label{kreismembran:section:teil2}} +\rhead{Die Hankel Transformation} + +Hermann Hankel (1839-1873) war ein deutscher Mathematiker, der für seinen Beitrag zur mathematischen Analyse und insbesondere für seine namensgebende Transformation bekannt ist. +Diese Transformation tritt bei der Untersuchung von funktionen auf, die nur von der Enternung des Ursprungs abhängen. +Er studierte auch funktionen, jetzt Hankel- oder Bessel- Funktionen genannt, der dritten Art. +Die Hankel Transformation mit Bessel Funktionen al Kern taucht natürlich bei achsensymmetrischen Problemen auf, die in Zylindrischen Polarkoordinaten formuliert sind. +In diesem Kapitel werden die Theorie der Transformation und einige Eigenschaften der Grundoperationen erläutert. + + +Wir führen die Definition der Hankel Transformation aus der zweidimensionalen Fourier Transformation und ihrer Umkehrung ein, die durch: +\begin{align} + \mathscr{F}\{f(x,y)\} & = F(k,l)=\frac{1}{2\pi}\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}e^{-i( \bm{\kappa}\cdot \mathbf{r})}f(x,y) dx dy,\label{equation:fourier_transform}\\ + \mathscr{F}^{-1}\{F(x,y)\} & = f(x,y)=\frac{1}{2\pi}\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}e^{i(\bm{\kappa}\cdot \mathbf{r}))}F(k,l) dx dy \label{equation:inv_fourier_transform} +\end{align} +wo $\mathbf{r}=(x,y)$ und $\bm{\kappa}=(k,l)$. Wie bereits erwähnt, sind Polarkoordinaten für diese Art von Problemen am besten geeignet, also mit, $(x,y)=r(\cos\theta,\sin\theta)$ und $(k,l)=\kappa(\cos\phi,\sin\phi)$, findet man $\bm{\kappa}\cdot\mathbf{r}=\kappa r(\cos(\theta-\phi))$ und danach: +\begin{align} + F(k,\phi)=\frac{1}{2\pi}\int_{0}^{\infty}r dr \int_{0}^{2\pi}e^{-ikr\cos(\theta-\phi)}f(r,\theta) d\phi. + \label{equation:F_ohne_variable_wechsel} +\end{align} +Dann wird angenommen dass, $f(r,\theta)=e^{in\theta}f(r)$, was keine strenge Einschränkung ist, und es wird eine Änderung der Variabeln vorgenommen $\theta-\phi=\alpha-\frac{\pi}{2}$, um \eqref{equation:F_ohne_variable_wechsel} zu reduzieren: +\begin{align} + F(k,\phi)=\frac{1}{2\pi}\int_{0}^{\infty}rf(r) dr \int_{\phi_{0}}^{2\pi+\phi_{0}}e^{in(\phi-\frac{\pi}{2})+i(n\alpha-kr\sin\alpha)} d\alpha, + \label{equation:F_ohne_bessel} +\end{align} +wo $\phi_{0}=(\frac{\pi}{2}-\phi)$. + +Unter Verwendung der Integral Darstellung der Besselfunktion vom Ordnung n +\begin{align} + J_n(\kappa r)=\frac{1}{2\pi}\int_{\phi_{0}}^{2\pi + \phi_{0}}e^{i(n\alpha-\kappa r \sin \alpha)} d\alpha + \label{equation:bessel_n_ordnung} +\end{align} +\eqref{equation:F_ohne_bessel} wird sie zu: +\begin{align} + F(k,\phi)&=e^{in(\phi-\frac{\pi}{2})}\int_{0}^{\infty}rJ_n(\kappa r) f(r) dr \label{equation:F_mit_bessel_step_1} \\ + &=e^{in(\phi-\frac{\pi}{2})}\tilde{f}_n(\kappa), + \label{equation:F_mit_bessel_step_2} +\end{align} +wo $\tilde{f}_n(\kappa)$ ist die \textit{Hankel Transformation} von $f(r)$ und ist formell definiert durch: +\begin{align} + \mathscr{H}_n\{f(r)\}=\tilde{f}_n(\kappa)=\int_{0}^{\infty}rJ_n(\kappa r) f(r) dr. + \label{equation:hankel} +\end{align} + +Ähnlich verhält es sich mit der inversen Fourier Transformation in Form von polaren Koordinaten unter der Annahme $f(r,\theta)=e^{in\theta}f(r)$ mit \eqref{equation:F_mit_bessel_step_2}, wird die inverse Fourier Transformation \eqref{equation:inv_fourier_transform}: + +\begin{align} + e^{in\theta}f(r)&=\frac{1}{2\pi}\int_{0}^{\infty}\kappa d\kappa \int_{0}^{2\pi}e^{i\kappa r \cos (\theta - \phi)}F(\kappa,\phi) d\phi\\ + &= \frac{1}{2\pi}\int_{0}^{\infty}\kappa \tilde{f}_n(\kappa) d\kappa \int_{0}^{2\pi}e^{in(\phi - \frac{\pi}{2})- i\kappa r \cos (\theta - \phi)} d\phi, +\end{align} +was durch den Wechsel der Variablen $\theta-\phi=-(\alpha+\frac{\pi}{2})$ und $\theta_0=-(\theta+\frac{\pi}{2})$, + +\begin{align} + &= \frac{1}{2\pi}\int_{0}^{\infty}\kappa \tilde{f}_n(\kappa) d\kappa \int_{\theta_0}^{2\pi+\theta_0}e^{in(\theta + \alpha - i\kappa r \sin\alpha)} d\alpha \nonumber \\ + &= e^{in\theta}\int_{0}^{\infty}\kappa J_n(\kappa r) \tilde{f}_n(\kappa) d\kappa,\quad \text{von \eqref{equation:bessel_n_ordnung}} +\end{align} + +Also, die inverse \textit{Hankel Transformation} ist so definiert: +\begin{align} + \mathscr{H}^{-1}_n\{\tilde{f}_n(\kappa)\}=f(r)=\int_{0}^{\infty}\kappa J_n(\kappa r) \tilde{f}_n(\kappa) d\kappa. + \label{equation:inv_hankel} +\end{align} + +Anstelle von $\tilde{f}_n(\kappa)$, wird häufig für die Hankel Transformation verwendet, indem die Ordnung angegeben wird. +\eqref{equation:hankel} und \eqref{equation:inv_hankel} Integralen existieren für eine grosse Klasse von Funktionen, die normalerweise in physikalischen Anwendungen benötigt werden. +Alternativ kann auch die berühmte Hankel Transformationsformel verwendet werden, + +\begin{align} + f(r) = \int_{0}^{\infty}\kappa J_n(\kappa r) d\kappa \int_{0}^{\infty} p J_n(\kappa p)f(p) dp, + \label{equation:hankel_integral_formula} +\end{align} +um die Hankel Transformation \eqref{equation:hankel} und ihre Inverse \eqref{equation:inv_hankel} zu definieren. +Insbesondere die Hankel Transformation der nullten Ordnung ($n=0$) und der ersten Ordnung ($n=1$) sind häufig nützlich, um Lösungen für Probleme mit der Laplace Gleichung in einer achsensymmetrischen zylindrischen Geometrie zu finden. + +\subsection{Operative Eigenschaften der Hankel Transformation\label{sub:op_properties_hankel}} +In diesem Kapitel werden die operativen Eigenschaften der Hankel Transformation aufgeführt. Der Beweis für ihre Gültigkeit wird jedoch nicht analysiert. + +\subsubsection{Theorem 1: Skalierung \label{subsub:skalierung}} +Wenn $\mathscr{H}_n\{f(r)\}=\tilde{f}_n(\kappa)$, dann: + +\begin{equation*} + \mathscr{H}_n\{f(ar)\}=\frac{1}{a^{2}}\tilde{f}_n \left(\frac{\kappa}{a}\right), \quad a>0. +\end{equation*} + +\subsubsection{Theorem 2: Persevalsche Relation \label{subsub:perseval}} +Wenn $\tilde{f}(\kappa)=\mathscr{H}_n\{f(r)\}$ und $\tilde{g}(\kappa)=\mathscr{H}_n\{g(r)\}$, dann: + +\begin{equation*} + \int_{0}^{\infty}rf(r) dr = \int_{0}^{\infty}\kappa\tilde{f}(\kappa)\tilde{g}(\kappa) d\kappa. +\end{equation*} + +\subsubsection{Theorem 3: Hankel Transformationen von Ableitungen \label{subsub:ableitungen}} +Wenn $\tilde{f}_n(\kappa)=\mathscr{H}_n\{f(r)\}$, dann: + +\begin{align*} + &\mathscr{H}_n\{f'(r)\}=\frac{\kappa}{2n}\left[(n-1)\tilde{f}_{n+1}(\kappa)-(n+1)\tilde{f}_{n-1}(\kappa)\right], \quad n\geq1, \\ + &\mathscr{H}_1\{f'(r)\}=-\kappa \tilde{f}_0(\kappa), +\end{align*} +bereitgestellt dass $[rf(r)]$ verschwindet als $r\to0$ und $r\to\infty$. + +\subsubsection{Theorem 4 \label{subsub:thorem4}} +Wenn $\mathscr{H}_n\{f(r)\}=\tilde{f}_n(\kappa)$, dann: + +\begin{equation*} + \mathscr{H}_n \left\{ \left( \nabla^2 - \frac{n^2}{r^2} f(r)\right)\right\}= \mathscr{H}_n\left\{\frac{1}{r}\frac{d}{dr}\left(r\frac{df}{dr}\right) - \frac{n^2}{r^2}f(r)\right\}=-\kappa^2\tilde{f}_{n}(\kappa), +\end{equation*} +bereitgestellt dass $rf'(r)$ und $rf(r)$ verschwinden als $r\to0$ und $r\to\infty$. diff --git a/buch/papers/kreismembran/teil3.tex b/buch/papers/kreismembran/teil3.tex index 73dee0f..bef8b5f 100644 --- a/buch/papers/kreismembran/teil3.tex +++ b/buch/papers/kreismembran/teil3.tex @@ -3,38 +3,76 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 3 +\section{Lösungsmethode 2: Transformationsmethode \label{kreismembran:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{kreismembran:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. +\rhead{Lösungsmethode 2: Transformationsmethode} +Die Hankel-Transformation wird dann zur Lösung der Differentialgleichung verwendet. Es müssen jedoch einige Änderungen an dem Problem vorgenommen werden, damit es mit den Annahmen übereinstimmt, die für die Verwendung der Hankel-Transformation erforderlich sind. Das heisst, dass die Funktion u nur von der Entfernung zum Ausgangspunkt abhängt. Wir führen also das Konzept einer unendlichen und achsensymmetrischen Membran ein: +\begin{equation*} + \frac{\partial^2u}{\partial t^2} + = + c^2 \left(\frac{\partial^2 u}{\partial r^2} + + + \frac{1}{r} + \frac{\partial u}{\partial r} \right), \quad 0<r<\infty, \quad t>0 + \label{eq:PDE_inf_membane} +\end{equation*} + +\begin{align} + u(r,0)=f(r), \quad \frac{\partial}{\partial t} u(r,0) = g(r), \quad \text{für} \quad 0<r<\infty + \label{eq:PDE_inf_membane_RB} +\end{align} + +Mit Anwendung der Hankel-Transformation nullter Ordnung in Abhängigkeit von $r$ auf die Gleichungen \eqref{eq:PDE_inf_membane} und \eqref{eq:PDE_inf_membane_RB}: + +\begin{align} + \tilde{u}(\kappa,t)=\int_{0}^{\infty}r J_0(\kappa r)u(r,t) dr, +\end{align} + +bekommt man: + +\begin{equation*} + \frac{d^2 \tilde{u}}{dt^2} + c^2\kappa^2\tilde{u}=0, +\end{equation*} + +\begin{equation*} + \tilde{u}(\kappa,0)=\tilde{f}(\kappa), \quad + \frac{\partial}{\partial t}\tilde{u}(\kappa,0)=\tilde{g}(\kappa). +\end{equation*} + +Die allgemeine Lösung für diese Transformation lautet, wie schon gesehen, wie folgt + +\begin{equation*} + \tilde{u}(\kappa,t)=\tilde{f}(\kappa)\cos(c\kappa t) + \frac{1}{c\kappa}\tilde{g}(\kappa)\sin(c\kappa t). +\end{equation*} + +Wendet man an nun die inverse Hankel-Transformation an, so erhält man die formale Lösung + +\begin{align} + u(r,t)=\int_{0}^{\infty}\kappa\tilde{f}(\kappa)\cos(c\kappa t) J_0(\kappa r) d\kappa +\frac{1}{c}\int_{0}^{\infty}\tilde{g}(\kappa)\sin(c\kappa t)J_0(\kappa r) d\kappa. + \label{eq:formale_lösung} +\end{align} + +Es wird daher davon ausgegangen, dass sich die Membran verformt und zum Zeitpunkt $t=0$ freigegeben wird + +\begin{equation*} + u(r,0)=f(r)=Aa(r^2 + a^2)^{-\frac{1}{2}}, \quad \frac{d}{dt}(r,0)=g(r)=0 +\end{equation*} + +so dass $\tilde{g}(\kappa)\equiv 0$ und + +\begin{equation*} + \tilde{f}(\kappa)=Aa\int_{0}^{\infty}r(a^2 + r^2)^{-\frac{1}{2}} J_0 (\kappa r) dr=\frac{Aa}{\kappa}e^{-a\kappa} +\end{equation*} + +Die formale Lösung \eqref{eq:formale_lösung} lautet also +\begin{align*} + u(r,t)&=Aa\int_{0}^{\infty}e^{-a\kappa} J_0(\kappa r)\cos(c\kappa t)dk=AaRe\int_{0}^{\infty}e^{-\kappa(a+ict)} J_0(\kappa r)dk\\ + &=AaRe\left\{r^2+\left(a+ict\right)^2\right\}^{-\frac{1}{2}} +\end{align*} + + +\subsection{Vergleich der Lösungen +\label{kreismembran:vergleich}} +Hier kommt noch der Vergleich der Lösungen ;) diff --git a/buch/papers/kugel/Makefile.inc b/buch/papers/kugel/Makefile.inc index d926229..50d6825 100644 --- a/buch/papers/kugel/Makefile.inc +++ b/buch/papers/kugel/Makefile.inc @@ -4,11 +4,7 @@ # (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule # dependencies-kugel = \ - papers/kugel/packages.tex \ + papers/kugel/packages.tex \ papers/kugel/main.tex \ - papers/kugel/references.bib \ - papers/kugel/teil0.tex \ - papers/kugel/teil1.tex \ - papers/kugel/teil2.tex \ - papers/kugel/teil3.tex + papers/kugel/references.bib diff --git a/buch/papers/kugel/images/Makefile b/buch/papers/kugel/images/Makefile new file mode 100644 index 0000000..4226dab --- /dev/null +++ b/buch/papers/kugel/images/Makefile @@ -0,0 +1,30 @@ +# +# Makefile -- build images +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +all: curvature.jpg spherecurve.jpg + +curvature.inc: curvgraph.m + octave curvgraph.m + +curvature.png: curvature.pov curvature.inc + povray +A0.1 +W1920 +H1080 +Ocurvature.png curvature.pov + +curvature.jpg: curvature.png + convert curvature.png -density 300 -units PixelsPerInch curvature.jpg + +spherecurve2.inc: spherecurve.m + octave spherecurve.m + +spherecurve.png: spherecurve.pov spherecurve.inc + povray +A0.1 +W1080 +H1080 +Ospherecurve.png spherecurve.pov + +spherecurve.jpg: spherecurve.png + convert spherecurve.png -density 300 -units PixelsPerInch spherecurve.jpg + +spherecurve: spherecurve.cpp + g++ -o spherecurve -g -Wall -O spherecurve.cpp + +spherecurve.inc: spherecurve + ./spherecurve diff --git a/buch/papers/kugel/images/curvature.maxima b/buch/papers/kugel/images/curvature.maxima new file mode 100644 index 0000000..6313642 --- /dev/null +++ b/buch/papers/kugel/images/curvature.maxima @@ -0,0 +1,6 @@ + +f: exp(-r^2/sigma^2)/sigma; +laplacef: ratsimp(diff(r * diff(f,r), r) / r); +f: exp(-r^2/(2*sigma^2))/(sqrt(2)*sigma); +laplacef: ratsimp(diff(r * diff(f,r), r) / r); + diff --git a/buch/papers/kugel/images/curvature.pov b/buch/papers/kugel/images/curvature.pov new file mode 100644 index 0000000..3b15d77 --- /dev/null +++ b/buch/papers/kugel/images/curvature.pov @@ -0,0 +1,139 @@ +// +// curvature.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// + +#version 3.7; +#include "colors.inc" + +global_settings { + assumed_gamma 1 +} + +#declare imagescale = 0.09; + +camera { + location <10, 10, -40> + look_at <0, 0, 0> + right 16/9 * x * imagescale + up y * imagescale +} + +light_source { + <-10, 10, -40> color White + area_light <1,0,0> <0,0,1>, 10, 10 + adaptive 1 + jitter +} + +sky_sphere { + pigment { + color rgb<1,1,1> + } +} + +// +// draw an arrow from <from> to <to> with thickness <arrowthickness> with +// color <c> +// +#macro arrow(from, to, arrowthickness, c) +#declare arrowdirection = vnormalize(to - from); +#declare arrowlength = vlength(to - from); +union { + sphere { + from, 1.1 * arrowthickness + } + cylinder { + from, + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + arrowthickness + } + cone { + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + 2 * arrowthickness, + to, + 0 + } + pigment { + color c + } + finish { + specular 0.9 + metallic + } +} +#end + +arrow(<-3.1,0,0>, <3.1,0,0>, 0.01, White) +arrow(<0,-1,0>, <0,1,0>, 0.01, White) +arrow(<0,0,-2.1>, <0,0,2.1>, 0.01, White) + +#include "curvature.inc" + +#declare sigma = 1; +#declare s = 1.4; +#declare N0 = 0.4; +#declare funktion = function(r) { + (exp(-r*r/(sigma*sigma)) / sigma + - + exp(-r*r/(2*sigma*sigma)) / (sqrt(2)*sigma)) / N0 +}; +#declare hypot = function(xx, yy) { sqrt(xx*xx+yy*yy) }; + +#declare Funktion = function(x,y) { funktion(hypot(x+s,y)) - funktion(hypot(x-s,y)) }; +#macro punkt(xx,yy) + <xx, Funktion(xx, yy), yy> +#end + +#declare griddiameter = 0.006; +union { + #declare xmin = -3; + #declare xmax = 3; + #declare ymin = -2; + #declare ymax = 2; + + + #declare xstep = 0.2; + #declare ystep = 0.02; + #declare xx = xmin; + #while (xx < xmax + xstep/2) + #declare yy = ymin; + #declare P = punkt(xx, yy); + #while (yy < ymax - ystep/2) + #declare yy = yy + ystep; + #declare Q = punkt(xx, yy); + sphere { P, griddiameter } + cylinder { P, Q, griddiameter } + #declare P = Q; + #end + sphere { P, griddiameter } + #declare xx = xx + xstep; + #end + + #declare xstep = 0.02; + #declare ystep = 0.2; + #declare yy = ymin; + #while (yy < ymax + ystep/2) + #declare xx = xmin; + #declare P = punkt(xx, yy); + #while (xx < xmax - xstep/2) + #declare xx = xx + xstep; + #declare Q = punkt(xx, yy); + sphere { P, griddiameter } + cylinder { P, Q, griddiameter } + #declare P = Q; + #end + sphere { P, griddiameter } + #declare yy = yy + ystep; + #end + + pigment { + color rgb<0.8,0.8,0.8> + } + finish { + metallic + specular 0.8 + } +} + diff --git a/buch/papers/kugel/images/curvgraph.m b/buch/papers/kugel/images/curvgraph.m new file mode 100644 index 0000000..75effd6 --- /dev/null +++ b/buch/papers/kugel/images/curvgraph.m @@ -0,0 +1,140 @@ +# +# curvature.m +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# + +global N; +N = 10; + +global sigma2; +sigma2 = 1; + +global s; +s = 1.4; + +global cmax; +cmax = 0.9; +global cmin; +cmin = -0.9; + +global Cmax; +global Cmin; +Cmax = 0; +Cmin = 0; + +xmin = -3; +xmax = 3; +xsteps = 200; +hx = (xmax - xmin) / xsteps; + +ymin = -2; +ymax = 2; +ysteps = 200; +hy = (ymax - ymin) / ysteps; + +function retval = f0(r) + global sigma2; + retval = exp(-r^2/sigma2)/sqrt(sigma2) - exp(-r^2/(2*sigma2))/(sqrt(2*sigma2)); +end + +global N0; +N0 = f0(0) +N0 = 0.4; + +function retval = f1(x,y) + global N0; + retval = f0(hypot(x, y)) / N0; +endfunction + +function retval = f(x, y) + global s; + retval = f1(x+s, y) - f1(x-s, y); +endfunction + +function retval = curvature0(r) + global sigma2; + retval = ( + -4*(sigma2-r^2)*exp(-r^2/sigma2) + + + (2*sigma2-r^2)*exp(-r^2/(2*sigma2)) + ) / (sigma2^(5/2)); +endfunction + +function retval = curvature1(x, y) + retval = curvature0(hypot(x, y)); +endfunction + +function retval = curvature(x, y) + global s; + retval = curvature1(x+s, y) - curvature1(x-s, y); +endfunction + +function retval = farbe(x, y) + global Cmax; + global Cmin; + global cmax; + global cmin; + c = curvature(x, y); + if (c < Cmin) + Cmin = c + endif + if (c > Cmax) + Cmax = c + endif + u = (c - cmin) / (cmax - cmin); + if (u > 1) + u = 1; + endif + if (u < 0) + u = 0; + endif + color = [ u, 0.5, 1-u ]; + color = color/max(color); + color(1,4) = c/2; + retval = color; +endfunction + +function dreieck(fn, A, B, C) + fprintf(fn, "\ttriangle {\n"); + fprintf(fn, "\t <%.4f,%.4f,%.4f>,\n", A(1,1), A(1,3), A(1,2)); + fprintf(fn, "\t <%.4f,%.4f,%.4f>,\n", B(1,1), B(1,3), B(1,2)); + fprintf(fn, "\t <%.4f,%.4f,%.4f>\n", C(1,1), C(1,3), C(1,2)); + fprintf(fn, "\t}\n"); +endfunction + +function viereck(fn, punkte) + color = farbe(mean(punkte(:,1)), mean(punkte(:,2))); + fprintf(fn, " mesh {\n"); + dreieck(fn, punkte(1,:), punkte(2,:), punkte(3,:)); + dreieck(fn, punkte(2,:), punkte(3,:), punkte(4,:)); + fprintf(fn, "\tpigment { color rgb<%.4f,%.4f,%.4f> } // %.4f\n", + color(1,1), color(1,2), color(1,3), color(1,4)); + fprintf(fn, " }\n"); +endfunction + +fn = fopen("curvature.inc", "w"); +punkte = zeros(4,3); +for ix = (0:xsteps-1) + x = xmin + ix * hx; + punkte(1,1) = x; + punkte(2,1) = x; + punkte(3,1) = x + hx; + punkte(4,1) = x + hx; + for iy = (0:ysteps-1) + y = ymin + iy * hy; + punkte(1,2) = y; + punkte(2,2) = y + hy; + punkte(3,2) = y; + punkte(4,2) = y + hy; + for i = (1:4) + punkte(i,3) = f(punkte(i,1), punkte(i,2)); + endfor + viereck(fn, punkte); + end +end +#fprintf(fn, " finish { metallic specular 0.5 }\n"); +fclose(fn); + +printf("Cmax = %.4f\n", Cmax); +printf("Cmin = %.4f\n", Cmin); diff --git a/buch/papers/kugel/images/spherecurve.cpp b/buch/papers/kugel/images/spherecurve.cpp new file mode 100644 index 0000000..8ddf5e5 --- /dev/null +++ b/buch/papers/kugel/images/spherecurve.cpp @@ -0,0 +1,292 @@ +/* + * spherecurve.cpp + * + * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + */ +#include <cstdio> +#include <cstdlib> +#include <cmath> +#include <string> +#include <iostream> + +inline double sqr(double x) { return x * x; } + +/** + * \brief Class for 3d vectors (also used as colors) + */ +class vector { + double X[3]; +public: + vector() { X[0] = X[1] = X[2] = 0; } + vector(double a) { X[0] = X[1] = X[2] = a; } + vector(double x, double y, double z) { + X[0] = x; X[1] = y; X[2] = z; + } + vector(double theta, double phi) { + double s = sin(theta); + X[0] = cos(phi) * s; + X[1] = sin(phi) * s; + X[2] = cos(theta); + } + vector(const vector& other) { + for (int i = 0; i < 3; i++) { + X[i] = other.X[i]; + } + } + vector operator+(const vector& other) const { + return vector(X[0] + other.X[0], + X[1] + other.X[1], + X[2] + other.X[2]); + } + vector operator*(double l) const { + return vector(X[0] * l, X[1] * l, X[2] * l); + } + double operator*(const vector& other) const { + double s = 0; + for (int i = 0; i < 3; i++) { + s += X[i] * other.X[i]; + } + return s; + } + double norm() const { + double s = 0; + for (int i = 0; i < 3; i++) { + s += sqr(X[i]); + } + return sqrt(s); + } + vector normalize() const { + double l = norm(); + return vector(X[0]/l, X[1]/l, X[2]/l); + } + double max() const { + return std::max(X[0], std::max(X[1], X[2])); + } + double l0norm() const { + double l = 0; + for (int i = 0; i < 3; i++) { + if (fabs(X[i]) > l) { + l = fabs(X[i]); + } + } + return l; + } + vector l0normalize() const { + double l = l0norm(); + vector result(X[0]/l, X[1]/l, X[2]/l); + return result; + } + const double& operator[](int i) const { return X[i]; } + double& operator[](int i) { return X[i]; } +}; + +/** + * \brief Derived 3d vector class implementing color + * + * The constructor in this class converts a single value into a + * color on a suitable gradient. + */ +class color : public vector { +public: + static double utop; + static double ubottom; + static double green; +public: + color(double u) { + u = (u - ubottom) / (utop - ubottom); + if (u > 1) { + u = 1; + } + if (u < 0) { + u = 0; + } + u = pow(u,2); + (*this)[0] = u; + (*this)[1] = green * u * (1 - u); + (*this)[2] = 1-u; + double l = l0norm(); + for (int i = 0; i < 3; i++) { + (*this)[i] /= l; + } + } +}; + +double color::utop = 12; +double color::ubottom = -31; +double color::green = 0.5; + +/** + * \brief Surface model + * + * This class contains the definitions of the functions to plot + * and the parameters to + */ +class surfacefunction { + static vector axes[6]; + + double _a; + double _A; + + double _umin; + double _umax; +public: + double a() const { return _a; } + double A() const { return _A; } + + double umin() const { return _umin; } + double umax() const { return _umax; } + + surfacefunction(double a, double A) : _a(a), _A(A), _umin(0), _umax(0) { + } + + double f(double z) { + return A() * exp(a() * (sqr(z) - 1)); + } + + double g(double z) { + return -f(z) * 2*a() * ((2*a()*sqr(z) + (3-2*a()))*sqr(z) - 1); + } + + double F(const vector& v) { + double s = 0; + for (int i = 0; i < 6; i++) { + s += f(axes[i] * v); + } + return s / 6; + } + + double G(const vector& v) { + double s = 0; + for (int i = 0; i < 6; i++) { + s += g(axes[i] * v); + } + return s / 6; + } +protected: + color farbe(const vector& v) { + double u = G(v); + if (u < _umin) { + _umin = u; + } + if (u > _umax) { + _umax = u; + } + return color(u); + } +}; + +static double phi = (1 + sqrt(5)) / 2; +static double sl = sqrt(sqr(phi) + 1); +vector surfacefunction::axes[6] = { + vector( 0. , -1./sl, phi/sl ), + vector( 0. , 1./sl, phi/sl ), + vector( 1./sl, phi/sl, 0. ), + vector( -1./sl, phi/sl, 0. ), + vector( phi/sl, 0. , 1./sl ), + vector( -phi/sl, 0. , 1./sl ) +}; + +/** + * \brief Class to construct the plot + */ +class surface : public surfacefunction { + FILE *outfile; + + int _phisteps; + int _thetasteps; + double _hphi; + double _htheta; +public: + int phisteps() const { return _phisteps; } + int thetasteps() const { return _thetasteps; } + double hphi() const { return _hphi; } + double htheta() const { return _htheta; } + void phisteps(int s) { _phisteps = s; _hphi = 2 * M_PI / s; } + void thetasteps(int s) { _thetasteps = s; _htheta = M_PI / s; } + + surface(const std::string& filename, double a, double A) + : surfacefunction(a, A) { + outfile = fopen(filename.c_str(), "w"); + phisteps(400); + thetasteps(200); + } + + ~surface() { + fclose(outfile); + } + +private: + void triangle(const vector& v0, const vector& v1, const vector& v2) { + fprintf(outfile, " mesh {\n"); + vector c = (v0 + v1 + v2) * (1./3.); + vector color = farbe(c.normalize()); + vector V0 = v0 * (1 + F(v0)); + vector V1 = v1 * (1 + F(v1)); + vector V2 = v2 * (1 + F(v2)); + fprintf(outfile, "\ttriangle {\n"); + fprintf(outfile, "\t <%.6f,%.6f,%.6f>,\n", + V0[0], V0[2], V0[1]); + fprintf(outfile, "\t <%.6f,%.6f,%.6f>,\n", + V1[0], V1[2], V1[1]); + fprintf(outfile, "\t <%.6f,%.6f,%.6f>\n", + V2[0], V2[2], V2[1]); + fprintf(outfile, "\t}\n"); + fprintf(outfile, "\tpigment { color rgb<%.4f,%.4f,%.4f> }\n", + color[0], color[1], color[2]); + fprintf(outfile, "\tfinish { metallic specular 0.5 }\n"); + fprintf(outfile, " }\n"); + } + + void northcap() { + vector v0(0, 0, 1); + for (int i = 1; i <= phisteps(); i++) { + fprintf(outfile, " // northcap i = %d\n", i); + vector v1(htheta(), (i - 1) * hphi()); + vector v2(htheta(), i * hphi()); + triangle(v0, v1, v2); + } + } + + void southcap() { + vector v0(0, 0, -1); + for (int i = 1; i <= phisteps(); i++) { + fprintf(outfile, " // southcap i = %d\n", i); + vector v1(M_PI - htheta(), (i - 1) * hphi()); + vector v2(M_PI - htheta(), i * hphi()); + triangle(v0, v1, v2); + } + } + + void zone() { + for (int j = 1; j < thetasteps() - 1; j++) { + for (int i = 1; i <= phisteps(); i++) { + fprintf(outfile, " // zone j = %d, i = %d\n", + j, i); + vector v0( j * htheta(), (i-1) * hphi()); + vector v1((j+1) * htheta(), (i-1) * hphi()); + vector v2( j * htheta(), i * hphi()); + vector v3((j+1) * htheta(), i * hphi()); + triangle(v0, v1, v2); + triangle(v1, v2, v3); + } + } + } +public: + void draw() { + northcap(); + southcap(); + zone(); + } +}; + +/** + * \brief main function + */ +int main(int argc, char *argv[]) { + surface S("spherecurve.inc", 5, 10); + color::green = 1.0; + S.draw(); + std::cout << "umin: " << S.umin() << std::endl; + std::cout << "umax: " << S.umax() << std::endl; + return EXIT_SUCCESS; +} diff --git a/buch/papers/kugel/images/spherecurve.m b/buch/papers/kugel/images/spherecurve.m new file mode 100644 index 0000000..99d5c9a --- /dev/null +++ b/buch/papers/kugel/images/spherecurve.m @@ -0,0 +1,160 @@ +# +# spherecurve.m +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +global a; +a = 5; +global A; +A = 10; + +phisteps = 400; +hphi = 2 * pi / phisteps; +thetasteps = 200; +htheta = pi / thetasteps; + +function retval = f(z) + global a; + global A; + retval = A * exp(a * (z^2 - 1)); +endfunction + +function retval = g(z) + global a; + retval = -f(z) * 2 * a * (2 * a * z^4 + (3 - 2*a) * z^2 - 1); + # 2 + # - a 2 4 2 2 a z + #(%o6) - %e (4 a z + (6 a - 4 a ) z - 2 a) %e +endfunction + +phi = (1 + sqrt(5)) / 2; + +global axes; +axes = [ + 0, 0, 1, -1, phi, -phi; + 1, -1, phi, phi, 0, 0; + phi, phi, 0, 0, 1, 1; +]; +axes = axes / (sqrt(phi^2+1)); + +function retval = kugel(theta, phi) + retval = [ + cos(phi) * sin(theta); + sin(phi) * sin(theta); + cos(theta) + ]; +endfunction + +function retval = F(v) + global axes; + s = 0; + for i = (1:6) + z = axes(:,i)' * v; + s = s + f(z); + endfor + retval = s / 6; +endfunction + +function retval = F2(theta, phi) + v = kugel(theta, phi); + retval = F(v); +endfunction + +function retval = G(v) + global axes; + s = 0; + for i = (1:6) + s = s + g(axes(:,i)' * v); + endfor + retval = s / 6; +endfunction + +function retval = G2(theta, phi) + v = kugel(theta, phi); + retval = G(v); +endfunction + +function retval = cnormalize(u) + utop = 11; + ubottom = -30; + retval = (u - ubottom) / (utop - ubottom); + if (retval > 1) + retval = 1; + endif + if (retval < 0) + retval = 0; + endif +endfunction + +global umin; +umin = 0; +global umax; +umax = 0; + +function color = farbe(v) + global umin; + global umax; + u = G(v); + if (u < umin) + umin = u; + endif + if (u > umax) + umax = u; + endif + u = cnormalize(u); + color = [ u, 0.5, 1-u ]; + color = color/max(color); +endfunction + +function dreieck(fn, v0, v1, v2) + fprintf(fn, " mesh {\n"); + c = (v0 + v1 + v2) / 3; + c = c / norm(c); + color = farbe(c); + v0 = v0 * (1 + F(v0)); + v1 = v1 * (1 + F(v1)); + v2 = v2 * (1 + F(v2)); + fprintf(fn, "\ttriangle {\n"); + fprintf(fn, "\t <%.6f,%.6f,%.6f>,\n", v0(1,1), v0(3,1), v0(2,1)); + fprintf(fn, "\t <%.6f,%.6f,%.6f>,\n", v1(1,1), v1(3,1), v1(2,1)); + fprintf(fn, "\t <%.6f,%.6f,%.6f>\n", v2(1,1), v2(3,1), v2(2,1)); + fprintf(fn, "\t}\n"); + fprintf(fn, "\tpigment { color rgb<%.4f,%.4f,%.4f> }\n", + color(1,1), color(1,2), color(1,3)); + fprintf(fn, "\tfinish { metallic specular 0.5 }\n"); + fprintf(fn, " }\n"); +endfunction + +fn = fopen("spherecurve2.inc", "w"); + + for i = (1:phisteps) + # Polkappe nord + v0 = [ 0; 0; 1 ]; + v1 = kugel(htheta, (i-1) * hphi); + v2 = kugel(htheta, i * hphi); + fprintf(fn, " // i = %d\n", i); + dreieck(fn, v0, v1, v2); + + # Polkappe sued + v0 = [ 0; 0; -1 ]; + v1 = kugel(pi-htheta, (i-1) * hphi); + v2 = kugel(pi-htheta, i * hphi); + dreieck(fn, v0, v1, v2); + endfor + + for j = (1:thetasteps-2) + for i = (1:phisteps) + v0 = kugel( j * htheta, (i-1) * hphi); + v1 = kugel((j+1) * htheta, (i-1) * hphi); + v2 = kugel( j * htheta, i * hphi); + v3 = kugel((j+1) * htheta, i * hphi); + fprintf(fn, " // i = %d, j = %d\n", i, j); + dreieck(fn, v0, v1, v2); + dreieck(fn, v1, v2, v3); + endfor + endfor + +fclose(fn); + +umin +umax diff --git a/buch/papers/kugel/images/spherecurve.maxima b/buch/papers/kugel/images/spherecurve.maxima new file mode 100644 index 0000000..1e9077c --- /dev/null +++ b/buch/papers/kugel/images/spherecurve.maxima @@ -0,0 +1,13 @@ +/* + * spherecurv.maxima + * + * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + */ +f: exp(-a * sin(theta)^2); + +g: ratsimp(diff(sin(theta) * diff(f, theta), theta)/sin(theta)); +g: subst(z, cos(theta), g); +g: subst(sqrt(1-z^2), sin(theta), g); +ratsimp(g); + +f: ratsimp(subst(sqrt(1-z^2), sin(theta), f)); diff --git a/buch/papers/kugel/images/spherecurve.pov b/buch/papers/kugel/images/spherecurve.pov new file mode 100644 index 0000000..b1bf4b8 --- /dev/null +++ b/buch/papers/kugel/images/spherecurve.pov @@ -0,0 +1,73 @@ +// +// curvature.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// + +#version 3.7; +#include "colors.inc" + +global_settings { + assumed_gamma 1 +} + +#declare imagescale = 0.13; + +camera { + location <10, 10, -40> + look_at <0, 0, 0> + right x * imagescale + up y * imagescale +} + +light_source { + <-10, 10, -40> color White + area_light <1,0,0> <0,0,1>, 10, 10 + adaptive 1 + jitter +} + +sky_sphere { + pigment { + color rgb<1,1,1> + } +} + +// +// draw an arrow from <from> to <to> with thickness <arrowthickness> with +// color <c> +// +#macro arrow(from, to, arrowthickness, c) +#declare arrowdirection = vnormalize(to - from); +#declare arrowlength = vlength(to - from); +union { + sphere { + from, 1.1 * arrowthickness + } + cylinder { + from, + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + arrowthickness + } + cone { + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + 2 * arrowthickness, + to, + 0 + } + pigment { + color c + } + finish { + specular 0.9 + metallic + } +} +#end + +arrow(<-2.7,0,0>, <2.7,0,0>, 0.03, White) +arrow(<0,-2.7,0>, <0,2.7,0>, 0.03, White) +arrow(<0,0,-2.7>, <0,0,2.7>, 0.03, White) + +#include "spherecurve.inc" + diff --git a/buch/papers/kugel/main.tex b/buch/papers/kugel/main.tex index 0e632ec..06368af 100644 --- a/buch/papers/kugel/main.tex +++ b/buch/papers/kugel/main.tex @@ -1,36 +1,39 @@ % + % main.tex -- Paper zum Thema <kugel> % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:kugel}} -\lhead{Thema} +\chapter{Recurrence Relations for Spherical Harmonics in Quantum Mechanics\label{chapter:kugel}} +\lhead{Recurrence Relations in Quantum Mechanics} \begin{refsection} -\chapterauthor{Hans Muster} - -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} - -\input{papers/kugel/teil0.tex} -\input{papers/kugel/teil1.tex} -\input{papers/kugel/teil2.tex} -\input{papers/kugel/teil3.tex} +\chapterauthor{Manuel Cattaneo, Naoki Pross} + +\begin{verbatim} + +Ideas and current research goals +-------------------------------- + +- Recurrence relations for spherical harmonics +- Associated Legendre polynomials +- Rodrigues' type formula aka Rodrigues' formula +- Applications: + * Quantization of angular momentum + * Gravitational field measurements (NASA ebb and flow, ESA goce) + * Literally anything that needs basis functions on the surface of a sphere + +Literature +---------- + +- Nichtkommutative Bildverarbeitung, T. Mendez, p57+ +- Linear Algebra Done Right, S. Axler, p212,221,231,237 +- Introduction to Quantum Mechanics, D. J. Griffith, p201+ +- Seminar Quantenmechanik, A. Müller, p101,106,114,121 +- Introduction to Partial Differential Equations, J. Oliver, p510+ +- Partial Differential Equations in Engineering Problems, K. Miller, p175,190 + +\end{verbatim} + \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/kugel/teil0.tex b/buch/papers/kugel/teil0.tex deleted file mode 100644 index f921a82..0000000 --- a/buch/papers/kugel/teil0.tex +++ /dev/null @@ -1,22 +0,0 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 0\label{kugel:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{kugel:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. - - diff --git a/buch/papers/kugel/teil1.tex b/buch/papers/kugel/teil1.tex deleted file mode 100644 index e56bb18..0000000 --- a/buch/papers/kugel/teil1.tex +++ /dev/null @@ -1,55 +0,0 @@ -% -% teil1.tex -- Beispiel-File für das Paper -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 1 -\label{kugel:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{kugel:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{kugel:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. - -Et harum quidem rerum facilis est et expedita distinctio -\ref{kugel:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{kugel:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. - - diff --git a/buch/papers/kugel/teil2.tex b/buch/papers/kugel/teil2.tex deleted file mode 100644 index cb9e427..0000000 --- a/buch/papers/kugel/teil2.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil2.tex -- Beispiel-File für teil2 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 2 -\label{kugel:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{kugel:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/kugel/teil3.tex b/buch/papers/kugel/teil3.tex deleted file mode 100644 index 734fff9..0000000 --- a/buch/papers/kugel/teil3.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil3.tex -- Beispiel-File für Teil 3 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 3 -\label{kugel:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{kugel:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/laguerre/Makefile b/buch/papers/laguerre/Makefile index 606d7e1..0f0985a 100644 --- a/buch/papers/laguerre/Makefile +++ b/buch/papers/laguerre/Makefile @@ -4,6 +4,8 @@ # (c) 2020 Prof Dr Andreas Mueller # -images: - @echo "no images to be created in laguerre" +images: images/laguerre_polynomes.pdf + +images/laguerre_polynomes.pdf: scripts/laguerre_plot.py + python3 scripts/laguerre_plot.py diff --git a/buch/papers/laguerre/Makefile.inc b/buch/papers/laguerre/Makefile.inc index e83a069..12b0935 100644 --- a/buch/papers/laguerre/Makefile.inc +++ b/buch/papers/laguerre/Makefile.inc @@ -7,8 +7,9 @@ dependencies-laguerre = \ papers/laguerre/packages.tex \ papers/laguerre/main.tex \ papers/laguerre/references.bib \ - papers/laguerre/teil0.tex \ - papers/laguerre/teil1.tex \ - papers/laguerre/teil2.tex \ - papers/laguerre/teil3.tex + papers/laguerre/definition.tex \ + papers/laguerre/eigenschaften.tex \ + papers/laguerre/quadratur.tex \ + papers/laguerre/gamma.tex + diff --git a/buch/papers/laguerre/definition.tex b/buch/papers/laguerre/definition.tex new file mode 100644 index 0000000..d111f6f --- /dev/null +++ b/buch/papers/laguerre/definition.tex @@ -0,0 +1,157 @@ +% +% definition.tex +% +% (c) 2022 Patrik Müller, Ostschweizer Fachhochschule +% +\section{Definition + \label{laguerre:section:definition}} +\rhead{Definition} +Die verallgemeinerte Laguerre-Differentialgleichung ist gegeben durch +\begin{align} +x y''(x) + (\nu + 1 - x) y'(x) + n y(x) += +0 +, \quad +n \in \mathbb{N}_0 +, \quad +x \in \mathbb{R} +. +\label{laguerre:dgl} +\end{align} +Die klassische Laguerre-Diffentialgleichung erhält man, wenn $\nu = 0$. +Hier wird die verallgemeinerte Laguerre-Differentialgleichung verwendet, +weil die Lösung mit der selben Methode berechnet werden kann, +aber man zusätzlich die Lösung für den allgmeinen Fall erhält. +Zur Lösung der Gleichung \eqref{laguerre:dgl} verwenden wir einen +Potenzreihenansatz. +Da wir bereits wissen, dass die Lösung orthogonale Polynome sind, +erscheint dieser Ansatz sinnvoll. +Setzt man nun den Ansatz +\begin{align*} +y(x) + & = +\sum_{k=0}^\infty a_k x^k +\\ +y'(x) + & = +\sum_{k=1}^\infty k a_k x^{k-1} += +\sum_{k=0}^\infty (k+1) a_{k+1} x^k +\\ +y''(x) + & = +\sum_{k=2}^\infty k (k-1) a_k x^{k-2} += +\sum_{k=1}^\infty (k+1) k a_{k+1} x^{k-1} +\end{align*} +in die Differentialgleichung ein, erhält man: +\begin{align*} +\sum_{k=1}^\infty (k+1) k a_{k+1} x^k ++ +(\nu + 1)\sum_{k=0}^\infty (k+1) a_{k+1} x^k +- +\sum_{k=0}^\infty k a_k x^k ++ +n \sum_{k=0}^\infty a_k x^k + & = +0 \\ +\sum_{k=1}^\infty +\left[ (k+1) k a_{k+1} + (\nu + 1)(k+1) a_{k+1} - k a_k + n a_k \right] x^k + & = +0. +\end{align*} +Daraus lässt sich die Rekursionsbeziehung +\begin{align*} +a_{k+1} + & = +\frac{k-n}{(k+1) (k + \nu + 1)} a_k +\end{align*} +ableiten. +Für ein konstantes $n$ erhalten wir als Potenzreihenlösung ein Polynom vom Grad +$n$, +denn für $k=n$ wird $a_{n+1} = 0$ und damit auch $a_{n+2}=a_{n+3}=\ldots=0$. +Aus der Rekursionsbeziehung ist zudem ersichtlich, +dass $a_0 \neq 0$ beliebig gewählt werden kann. +Wählen wir nun $a_0 = 1$, dann folgt für die Koeffizienten $a_1, a_2, a_3$ +\begin{align*} +a_1 += +-\frac{n}{1 \cdot (\nu + 1)} +, & & +a_2 += +\frac{(n-1)n}{1 \cdot 2 \cdot (\nu + 1)(\nu + 2)} +, & & +a_3 += +-\frac{(n-2)(n-1)n}{1 \cdot 2 \cdot 3 \cdot (\nu + 1)(\nu + 2)(\nu + 3)} +\end{align*} +und allgemein +\begin{align*} +k + & \leq +n: + & +a_k + & = +(-1)^k \frac{n!}{(n-k)!} \frac{1}{k!(\nu + 1)_k} += +\frac{(-1)^k}{(\nu + 1)_k} \binom{n}{k} +\\ +k & >n: + & +a_k + & = +0. +\end{align*} +Somit erhalten wir für $\nu = 0$ die Laguerre-Polynome +\begin{align} +L_n(x) += +\sum_{k=0}^{n} \frac{(-1)^k}{k!} \binom{n}{k} x^k +\label{laguerre:polynom} +\end{align} +und mit $\nu \in \mathbb{R}$ die verallgemeinerten Laguerre-Polynome +\begin{align} +L_n^\nu(x) += +\sum_{k=0}^{n} \frac{(-1)^k}{(\nu + 1)_k} \binom{n}{k} x^k. +\label{laguerre:allg_polynom} +\end{align} + +\subsection{Analytische Fortsetzung} +Durch die analytische Fortsetzung erhalten wir zudem noch die zweite Lösung der +Differentialgleichung mit der Form +\begin{align*} +\Xi_n(x) += +L_n(x) \ln(x) + \sum_{k=1}^\infty d_k x^k +\end{align*} +Nach einigen mühsamen Rechnungen, +die den Rahmen dieses Kapitel sprengen würden, +erhalten wir +\begin{align*} +\Xi_n += +L_n(x) \ln(x) ++ +\sum_{k=1}^n \frac{(-1)^k}{k!} \binom{n}{k} +(\alpha_{n-k} - \alpha_n - 2 \alpha_k)x^k ++ +(-1)^n \sum_{k=1}^\infty \frac{(k-1)!n!}{((n+k)!)^2} x^{n+k}, +\end{align*} +wobei $\alpha_0 = 0$ und $\alpha_k =\sum_{i=1}^k i^{-1}$, +$\forall k \in \mathbb{N}$. +Die Laguerre-Polynome von Grad $0$ bis $7$ sind in +Abbildung~\ref{laguerre:fig:polyeval} dargestellt. +\begin{figure} +\centering +\includegraphics[width=0.7\textwidth]{% + papers/laguerre/images/laguerre_polynomes.pdf% +} +\caption{Laguerre-Polynome vom Grad $0$ bis $7$} +\label{laguerre:fig:polyeval} +\end{figure} + +% https://www.math.kit.edu/iana1/lehre/hm3phys2012w/media/laguerre.pdf +% http://www.physics.okayama-u.ac.jp/jeschke_homepage/E4/kapitel4.pdf diff --git a/buch/papers/laguerre/eigenschaften.tex b/buch/papers/laguerre/eigenschaften.tex new file mode 100644 index 0000000..b0cc3a3 --- /dev/null +++ b/buch/papers/laguerre/eigenschaften.tex @@ -0,0 +1,119 @@ +% +% eigenschaften.tex +% +% (c) 2022 Patrik Müller, Ostschweizer Fachhochschule +% +\section{Eigenschaften + \label{laguerre:section:eigenschaften}} +{ +\large \color{red} +TODO: +Evtl. nur Orthogonalität hier behandeln, da nur diese für die Gauss-Quadratur +benötigt wird. +} + +Die Laguerre-Polynome besitzen einige interessante Eigenschaften +\rhead{Eigenschaften} + +\subsection{Orthogonalität + \label{laguerre:subsection:orthogonal}} +Im Abschnitt~\ref{laguerre:section:definition} haben wir behauptet, +dass die Laguerre-Polynome orthogonale Polynome sind. +Zu dieser Behauptung möchten wir nun einen Beweis liefern. +Wenn wir die Laguerre\--Differentialgleichung in ein +Sturm\--Liouville\--Problem umwandeln können, haben wir bewiesen, dass es sich +bei +den Laguerre\--Polynomen um orthogonale Polynome handelt (siehe +Abschnitt~\ref{buch:integrale:subsection:sturm-liouville-problem}). +Der Sturm-Liouville-Operator hat die Form +\begin{align} +S += +\frac{1}{w(x)} \left(-\frac{d}{dx}p(x) \frac{d}{dx} + q(x) \right). +\label{laguerre:slop} +\end{align} +Aus der Beziehung +\begin{align} +S + & = +\Lambda +\nonumber +\\ +\frac{1}{w(x)} \left(-\frac{d}{dx}p(x) \frac{d}{dx} + q(x) \right) + & = +x \frac{d^2}{dx^2} + (\nu + 1 - x) \frac{d}{dx} +\label{laguerre:sl-lag} +\end{align} +lässt sich sofort erkennen, dass $q(x) = 0$. +Ausserdem ist ersichtlich, dass $p(x)$ die Differentialgleichung +\begin{align*} +x \frac{dp}{dx} += +-(\nu + 1 - x) p, +\end{align*} +erfüllen muss. +Durch Separation erhalten wir dann +\begin{align*} +\int \frac{dp}{p} + & = +-\int \frac{\nu + 1 - x}{x}dx +\\ +\log p + & = +-\log \nu + 1 - x + C +\\ +p(x) + & = +-C x^{\nu + 1} e^{-x} +\end{align*} +Eingefügt in Gleichung~\eqref{laguerre:sl-lag} erhalten wir +\begin{align*} +\frac{C}{w(x)} +\left( +x^{\nu+1} e^{-x} \frac{d^2}{dx^2} + +(\nu + 1 - x) x^{\nu} e^{-x} \frac{d}{dx} +\right) += +x \frac{d^2}{dx^2} + (\nu + 1 - x) \frac{d}{dx}. +\end{align*} +Mittels Koeffizientenvergleich kann nun abgelesen werden, dass $w(x) = x^\nu +e^{-x}$ und $C=1$ mit $\nu > -1$. +Die Gewichtsfunktion $w(x)$ wächst für $x\rightarrow-\infty$ sehr schnell an, +deshalb ist die Laguerre-Gewichtsfunktion nur geeignet für den +Definitionsbereich $(0, \infty)$. +Bleibt nur noch sicherzustellen, dass die Randbedingungen, +\begin{align} +k_0 y(0) + h_0 p(0)y'(0) + & = +0 +\label{laguerre:sllag_randa} +\\ +k_\infty y(\infty) + h_\infty p(\infty) y'(\infty) + & = +0 +\label{laguerre:sllag_randb} +\end{align} +mit $|k_i|^2 + |h_i|^2 \neq 0,\,\forall i \in \{0, \infty\}$, erfüllt sind. +Am linken Rand (Gleichung~\eqref{laguerre:sllag_randa}) kann $y(0) = 1$, $k_0 = +0$ und $h_0 = 1$ verwendet werden, +was auch die Laguerre-Polynome ergeben haben. +Für den rechten Rand ist die Bedingung (Gleichung~\eqref{laguerre:sllag_randb}) +\begin{align*} +\lim_{x \rightarrow \infty} p(x) y'(x) + & = +\lim_{x \rightarrow \infty} -x^{\nu + 1} e^{-x} y'(x) += +0 +\end{align*} +für beliebige Polynomlösungen erfüllt für $k_\infty=0$ und $h_\infty=1$. +Damit können wir schlussfolgern, dass die Laguerre-Polynome orthogonal +bezüglich des Skalarproduktes auf dem Intervall $(0, \infty)$ mit der Laguerre\--Gewichtsfunktion +$w(x)=x^\nu e^{-x}$ sind. + + +\subsection{Rodrigues-Formel} + +\subsection{Drei-Terme Rekursion} + +\subsection{Beziehung mit der Hypergeometrischen Funktion} + diff --git a/buch/papers/laguerre/gamma.tex b/buch/papers/laguerre/gamma.tex new file mode 100644 index 0000000..e3838b0 --- /dev/null +++ b/buch/papers/laguerre/gamma.tex @@ -0,0 +1,76 @@ +% +% gamma.tex +% +% (c) 2022 Patrik Müller, Ostschweizer Fachhochschule +% +\section{Anwendung: Berechnung der Gamma-Funktion + \label{laguerre:section:quad-gamma}} +Die Gauss-Laguerre-Quadratur kann nun verwendet werden, +um exponentiell abfallende Funktionen im Definitionsbereich $(0, \infty)$ zu +berechnen. +Dabei bietet sich z.B. die Gamma-Funkion bestens an, wie wir in den folgenden +Abschnitten sehen werden. + +\subsection{Gamma-Funktion} +Die Gamma-Funktion ist eine Erweiterung der Fakultät auf die reale und komplexe +Zahlenmenge. +Die Definition~\ref{buch:rekursion:def:gamma} beschreibt die Gamma-Funktion als +Integral der Form +\begin{align} +\Gamma(z) + & = +\int_0^\infty t^{z-1} e^{-t} dt +, +\quad +\text{wobei Realteil von $z$ grösser als $0$} +, +\label{laguerre:gamma} +\end{align} +welches alle Eigenschaften erfüllt, um mit der Gauss-Laguerre-Quadratur +berechnet zu werden. + +\subsubsection{Funktionalgleichung} +Die Funktionalgleichung besagt +\begin{align} +z \Gamma(z) = \Gamma(z+1). +\label{laguerre:gamma_funktional} +\end{align} +Mittels dieser Gleichung kann der Wert an einer bestimmten, +geeigneten Stelle evaluiert werden und dann zurückverschoben werden, +um das gewünschte Resultat zu erhalten. + +\subsection{Berechnung mittels Gauss-Laguerre-Quadratur} + +Fehlerterm: +\begin{align*} +R_n += +(z - 2n)_{2n} \frac{(n!)^2}{(2n)!} \xi^{z-2n-1} +\end{align*} + +\subsubsection{Finden der optimalen Berechnungsstelle} +Nun stellt sich die Frage, +ob die Approximation mittels Gauss-Laguerre-Quadratur verbessert werden kann, +wenn man das Problem an einer geeigneten Stelle evaluiert und +dann zurückverschiebt mit der Funktionalgleichung. +Dazu wollen wir den Fehlerterm in +Gleichung~\eqref{laguerre:lagurre:lag_error} anpassen und dann minimieren. +Zunächst wollen wir dies nur für $z\in \mathbb{R}$ und $0<z<1$ definieren. +Zudem nehmen wir an, dass die optimale Stelle $x^* \in \mathbb{R}$, $z < x^*$ +ist. +Dann fügen wir einen Verschiebungsterm um $m$ Stellen ein, daraus folgt +\begin{align*} +R_n += +\frac{(z - 2n)_{2n}}{(z - m)_m} \frac{(n!)^2}{(2n)!} \xi^{z + m - 2n - 1} +. +\end{align*} + +{ +\large \color{red} +TODO: +Geeignete Minimierung für Fehler finden, so dass sie mit den emprisich +bestimmen optimalen Punkten übereinstimmen. +} + +\subsection{Resultate} diff --git a/buch/papers/laguerre/images/laguerre_polynomes.pdf b/buch/papers/laguerre/images/laguerre_polynomes.pdf Binary files differnew file mode 100644 index 0000000..3976bc7 --- /dev/null +++ b/buch/papers/laguerre/images/laguerre_polynomes.pdf diff --git a/buch/papers/laguerre/main.tex b/buch/papers/laguerre/main.tex index 207e8d7..00e3b43 100644 --- a/buch/papers/laguerre/main.tex +++ b/buch/papers/laguerre/main.tex @@ -1,36 +1,21 @@ % -% main.tex -- Paper zum Thema <laguerre> +% main.tex -- Paper zum Thema Laguerre-Polynome % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:laguerre}} -\lhead{Thema} +\chapter{Laguerre-Polynome\label{chapter:laguerre}} +\lhead{Laguerre-Polynome} \begin{refsection} -\chapterauthor{Hans Muster} +\chapterauthor{Patrik Müller} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} +{\large \color{red} TODO: Einleitung} -\input{papers/laguerre/teil0.tex} -\input{papers/laguerre/teil1.tex} -\input{papers/laguerre/teil2.tex} -\input{papers/laguerre/teil3.tex} +\input{papers/laguerre/definition} +\input{papers/laguerre/eigenschaften} +\input{papers/laguerre/quadratur} +\input{papers/laguerre/gamma} +% \input{papers/laguerre/transformation} +% \input{papers/laguerre/wasserstoff} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/laguerre/packages.tex b/buch/papers/laguerre/packages.tex index 6fbe890..4ebc172 100644 --- a/buch/papers/laguerre/packages.tex +++ b/buch/papers/laguerre/packages.tex @@ -6,5 +6,4 @@ % if your paper needs special packages, add package commands as in the % following example -%\usepackage{packagename} - +\usepackage{derivative} diff --git a/buch/papers/laguerre/quadratur.tex b/buch/papers/laguerre/quadratur.tex new file mode 100644 index 0000000..60fad7f --- /dev/null +++ b/buch/papers/laguerre/quadratur.tex @@ -0,0 +1,79 @@ +% +% quadratur.tex +% +% (c) 2022 Patrik Müller, Ostschweizer Fachhochschule +% +\section{Gauss-Quadratur + \label{laguerre:section:quadratur}} + {\large \color{red} TODO: Einleitung und kurze Beschreibung Gauss-Quadratur} +\begin{align} +\int_a^b f(x) w(x) +\approx +\sum_{i=1}^N f(x_i) A_i +\label{laguerre:gaussquadratur} +\end{align} + +\subsection{Gauss-Laguerre-Quadratur +\label{laguerre:subsection:gausslag-quadratur}} +Die Gauss-Quadratur kann auch auf Skalarprodukte mit Gewichtsfunktionen +ausgeweitet werden. +In unserem Falle möchten wir die Gauss Quadratur auf die Laguerre-Polynome +$L_n$ ausweiten. +Diese sind orthogonal im Intervall $(0, \infty)$ bezüglich +der Gewichtsfunktion $e^{-x}$. +Gleichung~\eqref{laguerre:laguerrequadratur} lässt sich wiefolgt umformulieren: +\begin{align} +\int_{0}^{\infty} f(x) e^{-x} dx +\approx +\sum_{i=1}^{N} f(x_i) A_i +\label{laguerre:laguerrequadratur} +\end{align} + +\subsubsection{Stützstellen und Gewichte} +Nach der Definition der Gauss-Quadratur müssen als Stützstellen die Nullstellen +des verwendeten Polynoms genommen werden. +Das heisst für das Laguerre-Polynom $L_n$ müssen dessen Nullstellen $x_i$ und +als Gewichte $A_i$ werden die Integrale $l_i(x)e^{-x}$ verwendet werden. +Dabei sind +\begin{align*} +l_i(x_j) += +\delta_{ij} += +\begin{cases} +1 & i=j \\ +0 & \text{sonst.} +\end{cases} +\end{align*} +Laut \cite{abramowitz+stegun} sind die Gewichte also +\begin{align} +A_i += +\frac{x_i}{(n + 1)^2 \left[ L_{n + 1}(x_i)\right]^2} +. +\label{laguerre:quadratur_gewichte} +\end{align} + +\subsubsection{Fehlerterm} +Der Fehlerterm $R_n$ folgt direkt aus der Approximation +\begin{align*} +\int_0^{\infty} f(x) e^{-x} dx += +\sum_{i=1}^n f(x_i) A_i + R_n +\end{align*} +un \cite{abramowitz+stegun} gibt in als +\begin{align} +R_n += +\frac{(n!)^2}{(2n)!} f^{(2n)}(\xi) +,\quad +0 < \xi < \infty +\label{lagurre:lag_error} +\end{align} +an. + +{ +\large \color{red} +TODO: +Noch mehr Text / bessere Beschreibungen in allen Abschnitten +} diff --git a/buch/papers/laguerre/references.bib b/buch/papers/laguerre/references.bib index caf270f..6956ade 100644 --- a/buch/papers/laguerre/references.bib +++ b/buch/papers/laguerre/references.bib @@ -4,32 +4,19 @@ % (c) 2020 Autor, Hochschule Rapperswil % -@online{laguerre:bibtex, - title = {BibTeX}, - url = {https://de.wikipedia.org/wiki/BibTeX}, - date = {2020-02-06}, - year = {2020}, - month = {2}, - day = {6} -} - -@book{laguerre:numerical-analysis, - title = {Numerical Analysis}, - author = {David Kincaid and Ward Cheney}, - publisher = {American Mathematical Society}, - year = {2002}, - isbn = {978-8-8218-4788-6}, - inseries = {Pure and applied undegraduate texts}, - volume = {2} -} - -@article{laguerre:mendezmueller, - author = { Tabea Méndez and Andreas Müller }, - title = { Noncommutative harmonic analysis and image registration }, - journal = { Appl. Comput. Harmon. Anal.}, - year = 2019, - volume = 47, - pages = {607--627}, - url = {https://doi.org/10.1016/j.acha.2017.11.004} -} - +@book{abramowitz+stegun, + added-at = {2008-06-25T06:25:58.000+0200}, + address = {New York}, + author = {Abramowitz, Milton and Stegun, Irene A.}, + biburl = {https://www.bibsonomy.org/bibtex/223ec744709b3a776a1af0a3fd65cd09f/a_olympia}, + description = {BibTeX - Wikipedia, the free encyclopedia}, + edition = {ninth Dover printing, tenth GPO printing}, + interhash = {d4914a420f489f7c5129ed01ec3cf80c}, + intrahash = {23ec744709b3a776a1af0a3fd65cd09f}, + keywords = {Handbook}, + publisher = {Dover}, + pages = {890}, + timestamp = {2008-06-25T06:25:58.000+0200}, + title = {Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables}, + year = 1972 +}
\ No newline at end of file diff --git a/buch/papers/laguerre/scripts/gamma_approx.ipynb b/buch/papers/laguerre/scripts/gamma_approx.ipynb new file mode 100644 index 0000000..44f3abd --- /dev/null +++ b/buch/papers/laguerre/scripts/gamma_approx.ipynb @@ -0,0 +1,395 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Gauss-Laguerre Quadratur für die Gamma-Funktion\n", + "\n", + "$$\n", + " \\Gamma(z)\n", + " = \n", + " \\int_0^\\infty t^{z-1}e^{-t}dt\n", + "$$\n", + "\n", + "$$\n", + " \\int_0^\\infty f(x) e^{-x} dx \n", + " \\approx \n", + " \\sum_{i=1}^{N} f(x_i) w_i\n", + " \\qquad\\text{ wobei }\n", + " w_i = \\frac{x_i}{(n+1)^2 [L_{n+1}(x_i)]^2}\n", + "$$\n", + "und $x_i$ sind Nullstellen des Laguerre Polynoms $L_n(x)$\n", + "\n", + "Der Fehler ist gegeben als\n", + "\n", + "$$\n", + " E \n", + " =\n", + " \\frac{(n!)^2}{(2n)!} f^{(2n)}(\\xi) \n", + " = \n", + " \\frac{(-2n + z)_{2n}}{(z-m)_m} \\frac{(n!)^2}{(2n)!} \\xi^{z + m - 2n - 1}\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from cmath import exp, pi, sin, sqrt\n", + "import scipy.special\n", + "\n", + "EPSILON = 1e-07\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "lanczos_p = [\n", + " 676.5203681218851,\n", + " -1259.1392167224028,\n", + " 771.32342877765313,\n", + " -176.61502916214059,\n", + " 12.507343278686905,\n", + " -0.13857109526572012,\n", + " 9.9843695780195716e-6,\n", + " 1.5056327351493116e-7,\n", + "]\n", + "\n", + "\n", + "def drop_imag(z):\n", + " if abs(z.imag) <= EPSILON:\n", + " z = z.real\n", + " return z\n", + "\n", + "\n", + "def lanczos_gamma(z):\n", + " z = complex(z)\n", + " if z.real < 0.5:\n", + " y = pi / (sin(pi * z) * lanczos_gamma(1 - z)) # Reflection formula\n", + " else:\n", + " z -= 1\n", + " x = 0.99999999999980993\n", + " for (i, pval) in enumerate(lanczos_p):\n", + " x += pval / (z + i + 1)\n", + " t = z + len(lanczos_p) - 0.5\n", + " y = sqrt(2 * pi) * t ** (z + 0.5) * exp(-t) * x\n", + " return drop_imag(y)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "zeros, weights = np.polynomial.laguerre.laggauss(8)\n", + "# zeros = np.array(\n", + "# [\n", + "# 1.70279632305101000e-1,\n", + "# 9.03701776799379912e-1,\n", + "# 2.25108662986613069e0,\n", + "# 4.26670017028765879e0,\n", + "# 7.04590540239346570e0,\n", + "# 1.07585160101809952e1,\n", + "# 1.57406786412780046e1,\n", + "# 2.28631317368892641e1,\n", + "# ]\n", + "# )\n", + "\n", + "# weights = np.array(\n", + "# [\n", + "# 3.69188589341637530e-1,\n", + "# 4.18786780814342956e-1,\n", + "# 1.75794986637171806e-1,\n", + "# 3.33434922612156515e-2,\n", + "# 2.79453623522567252e-3,\n", + "# 9.07650877335821310e-5,\n", + "# 8.48574671627253154e-7,\n", + "# 1.04800117487151038e-9,\n", + "# ]\n", + "# )\n", + "\n", + "\n", + "def pochhammer(z, n):\n", + " return np.prod(z + np.arange(n))\n", + "\n", + "\n", + "def find_shift(z, target):\n", + " factor = 1.0\n", + " steps = int(np.floor(target - np.real(z)))\n", + " zs = z + steps\n", + " if steps > 0:\n", + " factor = 1 / pochhammer(z, steps)\n", + " elif steps < 0:\n", + " factor = pochhammer(zs, -steps)\n", + " return zs, factor\n", + "\n", + "\n", + "def laguerre_gamma(z, x, w, target=11):\n", + " # res = 0.0\n", + " z = complex(z)\n", + " if z.real < 1e-3:\n", + " res = pi / (\n", + " sin(pi * z) * laguerre_gamma(1 - z, x, w, target)\n", + " ) # Reflection formula\n", + " else:\n", + " z_shifted, correction_factor = find_shift(z, target)\n", + " res = np.sum(x ** (z_shifted - 1) * w)\n", + " res *= correction_factor\n", + " res = drop_imag(res)\n", + " return res\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def eval_laguerre(x, target=12):\n", + " return np.array([laguerre_gamma(xi, zeros, weights, target) for xi in x])\n", + "\n", + "\n", + "def eval_lanczos(x):\n", + " return np.array([lanczos_gamma(xi) for xi in x])\n", + "\n", + "\n", + "def eval_mean_laguerre(x, targets):\n", + " return np.mean([eval_laguerre(x, target) for target in targets], 0)\n", + "\n", + "\n", + "def calc_rel_error(x, y):\n", + " return (y - x) / x\n", + "\n", + "\n", + "def evaluate(x, target=12):\n", + " lanczos_gammas = eval_lanczos(x)\n", + " laguerre_gammas = eval_laguerre(x, target)\n", + " rel_error = calc_rel_error(lanczos_gammas, laguerre_gammas)\n", + " return rel_error\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Test with real values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Empirische Tests zeigen:\n", + "- $n=4 \\Rightarrow m=6$\n", + "- $n=5 \\Rightarrow m=7$ oder $m=8$\n", + "- $n=6 \\Rightarrow m=9$\n", + "- $n=7 \\Rightarrow m=10$\n", + "- $n=8 \\Rightarrow m=11$ oder $m=12$\n", + "- $n=9 \\Rightarrow m=13$\n", + "- $n=10 \\Rightarrow m=14$\n", + "- $n=11 \\Rightarrow m=15$ oder $m=16$\n", + "- $n=12 \\Rightarrow m=17$\n", + "- $n=13 \\Rightarrow m=18 \\Rightarrow $ Beginnt numerisch instabil zu werden \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "zeros, weights = np.polynomial.laguerre.laggauss(12)\n", + "targets = np.arange(16, 21)\n", + "mean_targets = ((16, 17),)\n", + "x = np.linspace(EPSILON, 1 - EPSILON, 101)\n", + "_, axs = plt.subplots(\n", + " 2, sharex=True, clear=True, constrained_layout=True, figsize=(12, 12)\n", + ")\n", + "\n", + "lanczos = eval_lanczos(x)\n", + "for mean_target in mean_targets:\n", + " vals = eval_mean_laguerre(x, mean_target)\n", + " rel_error_mean = calc_rel_error(lanczos, vals)\n", + " axs[0].plot(x, rel_error_mean, label=mean_target)\n", + " axs[1].semilogy(x, np.abs(rel_error_mean), label=mean_target)\n", + "\n", + "mins = []\n", + "maxs = []\n", + "for target in targets:\n", + " rel_error = evaluate(x, target)\n", + " mins.append(np.min(np.abs(rel_error[(0.1 <= x) & (x <= 0.9)])))\n", + " maxs.append(np.max(np.abs(rel_error)))\n", + " axs[0].plot(x, rel_error, label=target)\n", + " axs[1].semilogy(x, np.abs(rel_error), label=target)\n", + "# axs[0].set_ylim(*(np.array([-1, 1]) * 3.5e-8))\n", + "\n", + "axs[0].set_xlim(x[0], x[-1])\n", + "axs[1].set_ylim(np.min(mins), 1.04*np.max(maxs))\n", + "for ax in axs:\n", + " ax.legend()\n", + " ax.grid(which=\"both\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "targets = (16, 17)\n", + "xmax = 15\n", + "x = np.linspace(-xmax + EPSILON, xmax - EPSILON, 1000)\n", + "\n", + "mean_lag = eval_mean_laguerre(x, targets)\n", + "lanczos = eval_lanczos(x)\n", + "rel_error = calc_rel_error(lanczos, mean_lag)\n", + "rel_error_simple = evaluate(x, targets[-1])\n", + "# rel_error = evaluate(x, target)\n", + "\n", + "_, axs = plt.subplots(\n", + " 2, sharex=True, clear=True, constrained_layout=True, figsize=(12, 12)\n", + ")\n", + "axs[0].plot(x, rel_error, label=targets)\n", + "axs[1].semilogy(x, np.abs(rel_error), label=targets)\n", + "axs[0].plot(x, rel_error_simple, label=targets[-1])\n", + "axs[1].semilogy(x, np.abs(rel_error_simple), label=targets[-1])\n", + "axs[0].set_xlim(x[0], x[-1])\n", + "# axs[0].set_ylim(*(np.array([-1, 1]) * 4.2e-8))\n", + "# axs[1].set_ylim(1e-10, 5e-8)\n", + "for ax in axs:\n", + " ax.legend()\n", + "\n", + "x2 = np.linspace(-5 + EPSILON, 5, 4001)\n", + "_, ax = plt.subplots(constrained_layout=True, figsize=(8, 6))\n", + "ax.plot(x2, eval_mean_laguerre(x2, targets))\n", + "ax.set_xlim(x2[0], x2[-1])\n", + "ax.set_ylim(-7.5, 25)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Test with complex values" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "targets = (16, 17)\n", + "vals = np.linspace(-5 + EPSILON, 5, 100)\n", + "x, y = np.meshgrid(vals, vals)\n", + "mesh = x + 1j * y\n", + "input = mesh.flatten()\n", + "\n", + "mean_lag = eval_mean_laguerre(input, targets).reshape(mesh.shape)\n", + "lanczos = eval_lanczos(input).reshape(mesh.shape)\n", + "rel_error = np.abs(calc_rel_error(lanczos, mean_lag))\n", + "\n", + "lag = eval_laguerre(input, targets[-1]).reshape(mesh.shape)\n", + "rel_error_simple = np.abs(calc_rel_error(lanczos, lag))\n", + "# rel_error = evaluate(x, target)\n", + "\n", + "fig, axs = plt.subplots(\n", + " 2,\n", + " 2,\n", + " sharex=True,\n", + " sharey=True,\n", + " clear=True,\n", + " constrained_layout=True,\n", + " figsize=(12, 10),\n", + ")\n", + "_c = axs[0, 1].pcolormesh(x, y, np.log10(np.abs(lanczos - mean_lag)), shading=\"gouraud\")\n", + "_c = axs[0, 0].pcolormesh(x, y, np.log10(np.abs(lanczos - lag)), shading=\"gouraud\")\n", + "fig.colorbar(_c, ax=axs[0, :])\n", + "_c = axs[1, 1].pcolormesh(x, y, np.log10(rel_error), shading=\"gouraud\")\n", + "_c = axs[1, 0].pcolormesh(x, y, np.log10(rel_error_simple), shading=\"gouraud\")\n", + "fig.colorbar(_c, ax=axs[1, :])\n", + "_ = axs[0, 0].set_title(\"Absolute Error\")\n", + "_ = axs[1, 0].set_title(\"Relative Error\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "z = 0.5\n", + "ns = [4, 5, 5, 6, 7, 8, 8, 9, 10, 11, 11, 12] # np.arange(4, 13)\n", + "ms = np.arange(6, 18)\n", + "xi = np.logspace(0, 2, 201)[:, None]\n", + "lanczos = eval_lanczos([z])[0]\n", + "\n", + "_, ax = plt.subplots(clear=True, constrained_layout=True, figsize=(12, 8))\n", + "ax.grid(1)\n", + "for n, m in zip(ns, ms):\n", + " zeros, weights = np.polynomial.laguerre.laggauss(n)\n", + " c = scipy.special.factorial(n) ** 2 / scipy.special.factorial(2 * n)\n", + " e = np.abs(\n", + " scipy.special.poch(z - 2 * n, 2 * n)\n", + " / scipy.special.poch(z - m, m)\n", + " * c\n", + " * xi ** (z - 2 * n + m - 1)\n", + " )\n", + " ez = np.sum(\n", + " scipy.special.poch(z - 2 * n, 2 * n)\n", + " / scipy.special.poch(z - m, m)\n", + " * c\n", + " * zeros[:, None] ** (z - 2 * n + m - 1),\n", + " 0,\n", + " )\n", + " lag = eval_laguerre([z], m)[0]\n", + " err = np.abs(lanczos - lag)\n", + " # print(m+z,ez)\n", + " # for zi,ezi in zip(z[0], ez):\n", + " # print(f\"{m+zi}: {ezi}\")\n", + " # ax.semilogy(xi, e, color=color)\n", + " lines = ax.loglog(xi, e, label=str(n))\n", + " ax.axhline(err, color=lines[0].get_color())\n", + " # ax.set_xticks(np.arange(xi[-1] + 1))\n", + " # ax.set_ylim(1e-8, 1e5)\n", + "_ = ax.legend()\n", + "# _ = ax.legend([f\"z={zi}\" for zi in z[0]])\n", + "# _ = [ax.axvline(x) for x in zeros]\n" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "767d51c1340bd893661ea55ea3124f6de3c7a262a8b4abca0554b478b1e2ff90" + }, + "kernelspec": { + "display_name": "Python 3.8.10 64-bit", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/buch/papers/laguerre/scripts/laguerre_plot.py b/buch/papers/laguerre/scripts/laguerre_plot.py new file mode 100644 index 0000000..b9088d0 --- /dev/null +++ b/buch/papers/laguerre/scripts/laguerre_plot.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python3 +# -*- coding:utf-8 -*- +"""Some plots for Laguerre Polynomials.""" + +import os +from pathlib import Path + +import matplotlib.pyplot as plt +import numpy as np +import scipy.special as ss + + +def get_ticks(start, end, step=1): + ticks = np.arange(start, end, step) + return ticks[ticks != 0] + + +N = 1000 +step = 5 +t = np.linspace(-1.05, 10.5, N)[:, None] +root = str(Path(__file__).parent) +img_path = f"{root}/../images" +os.makedirs(img_path, exist_ok=True) + + +# fig = plt.figure(num=1, clear=True, tight_layout=True, figsize=(5.5, 3.7)) +# ax = fig.add_subplot(axes_class=AxesZero) +fig, ax = plt.subplots(num=1, clear=True, constrained_layout=True, figsize=(6, 4)) +for n in np.arange(0, 8): + k = np.arange(0, n + 1)[None] + L = np.sum((-1) ** k * ss.binom(n, k) / ss.factorial(k) * t ** k, -1) + ax.plot(t, L, label=f"n={n}") + +ax.set_xticks(get_ticks(int(t[0]), t[-1]), minor=True) +ax.set_xticks(get_ticks(0, t[-1], step)) +ax.set_xlim(t[0], t[-1] + 0.1 * (t[1] - t[0])) +ax.set_xlabel(r"$x$", x=1.0, labelpad=-10, rotation=0, fontsize="large") + +ylim = 13 +ax.set_yticks(np.arange(-ylim, ylim), minor=True) +ax.set_yticks(np.arange(-step * (ylim // step), ylim, step)) +ax.set_ylim(-ylim, ylim) +ax.set_ylabel(r"$y$", y=0.95, labelpad=-18, rotation=0, fontsize="large") + +ax.legend(ncol=2, loc=(0.125, 0.01), fontsize="large") + +# set the x-spine +ax.spines[["left", "bottom"]].set_position("zero") +ax.spines[["right", "top"]].set_visible(False) +ax.xaxis.set_ticks_position("bottom") +hlx = 0.4 +dx = t[-1, 0] - t[0, 0] +dy = 2 * ylim +hly = dy / dx * hlx +dps = fig.dpi_scale_trans.inverted() +bbox = ax.get_window_extent().transformed(dps) +width, height = bbox.width, bbox.height + +# manual arrowhead width and length +hw = 1.0 / 60.0 * dy +hl = 1.0 / 30.0 * dx +lw = 0.5 # axis line width +ohg = 0.0 # arrow overhang + +# compute matching arrowhead length and width +yhw = hw / dy * dx * height / width +yhl = hl / dx * dy * width / height + +# draw x and y axis +ax.arrow( + t[-1, 0] - hl, + 0, + hl, + 0.0, + fc="k", + ec="k", + lw=lw, + head_width=hw, + head_length=hl, + overhang=ohg, + length_includes_head=True, + clip_on=False, +) + +ax.arrow( + 0, + ylim - yhl, + 0.0, + yhl, + fc="k", + ec="k", + lw=lw, + head_width=yhw, + head_length=yhl, + overhang=ohg, + length_includes_head=True, + clip_on=False, +) + +fig.savefig(f"{img_path}/laguerre_polynomes.pdf") diff --git a/buch/papers/laguerre/teil0.tex b/buch/papers/laguerre/teil0.tex deleted file mode 100644 index a0a215b..0000000 --- a/buch/papers/laguerre/teil0.tex +++ /dev/null @@ -1,22 +0,0 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 0\label{laguerre:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{laguerre:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. - - diff --git a/buch/papers/laguerre/teil1.tex b/buch/papers/laguerre/teil1.tex deleted file mode 100644 index 744d505..0000000 --- a/buch/papers/laguerre/teil1.tex +++ /dev/null @@ -1,55 +0,0 @@ -% -% teil1.tex -- Beispiel-File für das Paper -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 1 -\label{laguerre:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{laguerre:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{laguerre:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. - -Et harum quidem rerum facilis est et expedita distinctio -\ref{laguerre:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{laguerre:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. - - diff --git a/buch/papers/laguerre/teil2.tex b/buch/papers/laguerre/teil2.tex deleted file mode 100644 index d514042..0000000 --- a/buch/papers/laguerre/teil2.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil2.tex -- Beispiel-File für teil2 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 2 -\label{laguerre:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{laguerre:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/laguerre/teil3.tex b/buch/papers/laguerre/teil3.tex deleted file mode 100644 index 120067d..0000000 --- a/buch/papers/laguerre/teil3.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil3.tex -- Beispiel-File für Teil 3 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 3 -\label{laguerre:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{laguerre:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/nav/Makefile.inc b/buch/papers/nav/Makefile.inc index b30377e..5e86543 100644 --- a/buch/papers/nav/Makefile.inc +++ b/buch/papers/nav/Makefile.inc @@ -6,9 +6,10 @@ dependencies-nav = \ papers/nav/packages.tex \ papers/nav/main.tex \ - papers/nav/references.bib \ - papers/nav/teil0.tex \ - papers/nav/teil1.tex \ - papers/nav/teil2.tex \ - papers/nav/teil3.tex + papers/nav/einleitung.tex \ + papers/nav/flatearth.tex \ + papers/nav/nautischesdreieck.tex \ + papers/nav/sincos.tex \ + papers/nav/trigo.tex \ + papers/nav/references.bib diff --git a/buch/papers/nav/beispiel.txt b/buch/papers/nav/beispiel.txt new file mode 100644 index 0000000..853ae4e --- /dev/null +++ b/buch/papers/nav/beispiel.txt @@ -0,0 +1,24 @@ +Datum: 28. 5. 2022 +Zeit: 15:29:49 UTC +Sternzeit: 7h 54m 26.593s + +Deneb + +RA 20h 42m 12.14s 10.703372h +DEC 45 21' 40.3" 45.361194 + +H 50g 15' 17.1" 50.254750h +Azi 59g 36' 02.0" 59.600555 + +Spica + +RA 13h 26m 23.44s 13.439844h +DEC -11g 16' 46.8" 11.279666 + +H 18g 27' 30.0" 18.458333 +Azi 240g 23' 52.5" 240.397916 + +Position: + +l = 140 14' 00.01" E 140.233336 E +b = 35 43' 00.02" N 35.716672 N diff --git a/buch/papers/nav/bilder/dreieck.pdf b/buch/papers/nav/bilder/dreieck.pdf Binary files differnew file mode 100644 index 0000000..9d630aa --- /dev/null +++ b/buch/papers/nav/bilder/dreieck.pdf diff --git a/buch/papers/nav/bilder/dreieck.png b/buch/papers/nav/bilder/dreieck.png Binary files differnew file mode 100644 index 0000000..2b02105 --- /dev/null +++ b/buch/papers/nav/bilder/dreieck.png diff --git a/buch/papers/nav/bilder/ephe.png b/buch/papers/nav/bilder/ephe.png Binary files differnew file mode 100644 index 0000000..3f99a36 --- /dev/null +++ b/buch/papers/nav/bilder/ephe.png diff --git a/buch/papers/nav/bilder/kugel1.png b/buch/papers/nav/bilder/kugel1.png Binary files differnew file mode 100644 index 0000000..b3188b7 --- /dev/null +++ b/buch/papers/nav/bilder/kugel1.png diff --git a/buch/papers/nav/bilder/kugel2.png b/buch/papers/nav/bilder/kugel2.png Binary files differnew file mode 100644 index 0000000..057740f --- /dev/null +++ b/buch/papers/nav/bilder/kugel2.png diff --git a/buch/papers/nav/bilder/kugel3.png b/buch/papers/nav/bilder/kugel3.png Binary files differnew file mode 100644 index 0000000..97066a2 --- /dev/null +++ b/buch/papers/nav/bilder/kugel3.png diff --git a/buch/papers/nav/bilder/projektion.png b/buch/papers/nav/bilder/projektion.png Binary files differnew file mode 100644 index 0000000..5dcc0c8 --- /dev/null +++ b/buch/papers/nav/bilder/projektion.png diff --git a/buch/papers/nav/bilder/recht.jpg b/buch/papers/nav/bilder/recht.jpg Binary files differnew file mode 100644 index 0000000..3f60370 --- /dev/null +++ b/buch/papers/nav/bilder/recht.jpg diff --git a/buch/papers/nav/bilder/sextant.jpg b/buch/papers/nav/bilder/sextant.jpg Binary files differnew file mode 100644 index 0000000..53dd784 --- /dev/null +++ b/buch/papers/nav/bilder/sextant.jpg diff --git a/buch/papers/nav/einleitung.tex b/buch/papers/nav/einleitung.tex new file mode 100644 index 0000000..8eb4481 --- /dev/null +++ b/buch/papers/nav/einleitung.tex @@ -0,0 +1,9 @@ + + +\section{Einleitung} +Heutzutage ist die Navigation ein Teil des Lebens. +Man sendet dem Kollegen seinen eigenen Standort, um sich das ewige Erklären zu sparen oder gibt die Adresse des Ziels ein, damit man seinen Aufenthaltsort zum Beispiel auf einer riesigen Wiese am See findet. +Dies wird durch Technologien wie Funknavigation, welches ein auf Laufzeitmessung beruhendes Hyperbelverfahren mit Langwellen ist, oder die verbreitete Satellitennavigation, welche vier Satelliten für eine Messung zur Standortbestimmung nutzt. +Vor all diesen technologischen Fortschritten gab es lediglich die Astronavigation, welche heute noch auf Schiffen verwendet wird im Falle eines Stromausfalls. +Aber wie funktioniert die Navigation mit den Sternen? Welche Hilfsmittel benötigt man, welche Rolle spielt die Mathematik und weshalb kann die Erde nicht flach sein? +In diesem Kapitel werden genau diese Fragen mithilfe des nautischen Dreiecks, der sphärischen Trigonometrie und einigen Hilfsmitteln und Messgeräten beantwortet.
\ No newline at end of file diff --git a/buch/papers/nav/flatearth.tex b/buch/papers/nav/flatearth.tex new file mode 100644 index 0000000..3b08e8d --- /dev/null +++ b/buch/papers/nav/flatearth.tex @@ -0,0 +1,27 @@ + + +\section{Warum ist die Erde nicht flach?} + +\begin{figure} + \begin{center} + \includegraphics[width=10cm]{papers/nav/bilder/projektion.png} + \caption[Mercator Projektion]{Mercator Projektion} + \end{center} +\end{figure} + +Es gibt heutzutage viele Beweise dafür, dass die Erde eine Kugel ist. +Die Fotos von unserem Planeten oder die Berichte der Astronauten. +Aber schon vor ca. 2300 Jahren hat Aristoteles bemerkt, dass Schiffe im Horizont verschwinden und die einzige Erklärung dafür die Kugelgestalt der Erde ist. +Auch der Erdschatten bei einer Mondfinsternis ist immer rund. +Eratosthenes konnte etwa 100 Jahre später den Erdumfang berechnen. +Er beobachtete, dass die Sonne in Syene mittags im Zenit steht und gleichzeitig in Alexandria unter einem Winkel einfällt. +Mithilfe der Trigonometrie konnte er mit dem Abstand der Städte und dem Einfallswinkel den Umfang berechnen. + +Der Kartograph Gerhard Mercator projizierte die Erdkugel wie in Abbildung 21.1 dargestellt auf ein Papier und erstellte so eine winkeltreue Karte. +Jedoch wurden die Länder, die einen grösseren Abstand zum Äquator haben vergrössert, damit die Winkel stimmen können. +Wurde man also nun davon ausgehen, dass die Erde flach ist so würden wir nie dort ankommen wo wir es wollen. +Dies sieht man zum Beispiel sehr gut, wenn man die Anwendung Google Earth und eine Weltkarte vergleicht. +Grönland ist auf der Weltkarte so gross wie Afrika. +In der Anwendung Google Earth jedoch ist Grönland etwa so gross wie Algerien. +Das liegt daran, das man die 3D – Weltkarte nicht einfach auslegen kann. + diff --git a/buch/papers/nav/images/Makefile b/buch/papers/nav/images/Makefile new file mode 100644 index 0000000..da4defa --- /dev/null +++ b/buch/papers/nav/images/Makefile @@ -0,0 +1,123 @@ +# +# Makefile to build images +# +# (c) 2022 +# +all: dreiecke3d + +dreieck.pdf: dreieck.tex dreieckdata.tex macros.tex + pdflatex dreieck.tex + +dreieckdata.tex: pk.m + octave pk.m + +DREIECKE = \ + dreieck1.pdf \ + dreieck2.pdf \ + dreieck3.pdf \ + dreieck4.pdf \ + dreieck5.pdf \ + dreieck6.pdf \ + dreieck7.pdf + +dreiecke: $(DREIECKE) + +dreieck1.pdf: dreieck1.tex dreieckdata.tex macros.tex + pdflatex dreieck1.tex + +dreieck2.pdf: dreieck2.tex dreieckdata.tex macros.tex + pdflatex dreieck2.tex + +dreieck3.pdf: dreieck3.tex dreieckdata.tex macros.tex + pdflatex dreieck3.tex + +dreieck4.pdf: dreieck4.tex dreieckdata.tex macros.tex + pdflatex dreieck4.tex + +dreieck5.pdf: dreieck5.tex dreieckdata.tex macros.tex + pdflatex dreieck5.tex + +dreieck6.pdf: dreieck6.tex dreieckdata.tex macros.tex + pdflatex dreieck6.tex + +dreieck7.pdf: dreieck7.tex dreieckdata.tex macros.tex + pdflatex dreieck7.tex + +DREIECKE3D = \ + dreieck3d1.pdf \ + dreieck3d2.pdf \ + dreieck3d3.pdf \ + dreieck3d4.pdf \ + dreieck3d5.pdf \ + dreieck3d6.pdf \ + dreieck3d7.pdf \ + dreieck3d8.pdf + +dreiecke3d: $(DREIECKE3D) + +POVRAYOPTIONS = -W1080 -H1080 +#POVRAYOPTIONS = -W480 -H480 + +dreieck3d1.png: dreieck3d1.pov common.inc + povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d1.png dreieck3d1.pov +dreieck3d1.jpg: dreieck3d1.png + convert dreieck3d1.png -density 300 -units PixelsPerInch dreieck3d1.jpg +dreieck3d1.pdf: dreieck3d1.tex dreieck3d1.jpg + pdflatex dreieck3d1.tex + +dreieck3d2.png: dreieck3d2.pov common.inc + povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d2.png dreieck3d2.pov +dreieck3d2.jpg: dreieck3d2.png + convert dreieck3d2.png -density 300 -units PixelsPerInch dreieck3d2.jpg +dreieck3d2.pdf: dreieck3d2.tex dreieck3d2.jpg + pdflatex dreieck3d2.tex + +dreieck3d3.png: dreieck3d3.pov common.inc + povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d3.png dreieck3d3.pov +dreieck3d3.jpg: dreieck3d3.png + convert dreieck3d3.png -density 300 -units PixelsPerInch dreieck3d3.jpg +dreieck3d3.pdf: dreieck3d3.tex dreieck3d3.jpg + pdflatex dreieck3d3.tex + +dreieck3d4.png: dreieck3d4.pov common.inc + povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d4.png dreieck3d4.pov +dreieck3d4.jpg: dreieck3d4.png + convert dreieck3d4.png -density 300 -units PixelsPerInch dreieck3d4.jpg +dreieck3d4.pdf: dreieck3d4.tex dreieck3d4.jpg + pdflatex dreieck3d4.tex + +dreieck3d5.png: dreieck3d5.pov common.inc + povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d5.png dreieck3d5.pov +dreieck3d5.jpg: dreieck3d5.png + convert dreieck3d5.png -density 300 -units PixelsPerInch dreieck3d5.jpg +dreieck3d5.pdf: dreieck3d5.tex dreieck3d5.jpg + pdflatex dreieck3d5.tex + +dreieck3d6.png: dreieck3d6.pov common.inc + povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d6.png dreieck3d6.pov +dreieck3d6.jpg: dreieck3d6.png + convert dreieck3d6.png -density 300 -units PixelsPerInch dreieck3d6.jpg +dreieck3d6.pdf: dreieck3d6.tex dreieck3d6.jpg + pdflatex dreieck3d6.tex + +dreieck3d7.png: dreieck3d7.pov common.inc + povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d7.png dreieck3d7.pov +dreieck3d7.jpg: dreieck3d7.png + convert dreieck3d7.png -density 300 -units PixelsPerInch dreieck3d7.jpg +dreieck3d7.pdf: dreieck3d7.tex dreieck3d7.jpg + pdflatex dreieck3d7.tex + +dreieck3d8.png: dreieck3d8.pov common.inc + povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d8.png dreieck3d8.pov +dreieck3d8.jpg: dreieck3d8.png + convert dreieck3d8.png -density 300 -units PixelsPerInch dreieck3d8.jpg +dreieck3d8.pdf: dreieck3d8.tex dreieck3d8.jpg + pdflatex dreieck3d8.tex + +dreieck3d9.png: dreieck3d9.pov common.inc + povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d9.png dreieck3d9.pov +dreieck3d9.jpg: dreieck3d9.png + convert dreieck3d9.png -density 300 -units PixelsPerInch dreieck3d9.jpg +dreieck3d9.pdf: dreieck3d9.tex dreieck3d9.jpg + pdflatex dreieck3d9.tex + diff --git a/buch/papers/nav/images/common.inc b/buch/papers/nav/images/common.inc new file mode 100644 index 0000000..2c0ae6e --- /dev/null +++ b/buch/papers/nav/images/common.inc @@ -0,0 +1,187 @@ +// +// common.inc -- 3d Darstellung +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#version 3.7; +#include "colors.inc" + +global_settings { + assumed_gamma 1 +} + +#declare imagescale = 0.034; + +#declare O = <0, 0, 0>; +#declare A = vnormalize(< 0, 1, 0>); +#declare B = vnormalize(< 1, 2, -8>); +#declare C = vnormalize(< 5, 1, 0>); +#declare P = vnormalize(< 5, -1, -7>); + +camera { + location <40, 20, -20> + look_at <0, 0.24, -0.20> + right x * imagescale + up y * imagescale +} + +light_source { + <10, 10, -40> color White + area_light <1,0,0> <0,0,1>, 10, 10 + adaptive 1 + jitter +} + +sky_sphere { + pigment { + color rgb<1,1,1> + } +} + +// +// draw an arrow from <from> to <to> with thickness <arrowthickness> with +// color <c> +// +#macro arrow(from, to, arrowthickness, c) +#declare arrowdirection = vnormalize(to - from); +#declare arrowlength = vlength(to - from); +union { + sphere { + from, 1.1 * arrowthickness + } + cylinder { + from, + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + arrowthickness + } + cone { + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + 2 * arrowthickness, + to, + 0 + } + pigment { + color c + } + finish { + specular 0.9 + metallic + } +} +#end + +#macro grosskreis(normale, staerke) +union { + #declare v1 = vcross(normale, <normale.x, normale.z, normale.y>); + #declare v1 = vnormalize(v1); + #declare v2 = vnormalize(vcross(v1, normale)); + #declare phisteps = 100; + #declare phistep = pi / phisteps; + #declare phi = 0; + #declare p1 = v1; + #while (phi < 2 * pi - phistep/2) + sphere { p1, staerke } + #declare phi = phi + phistep; + #declare p2 = v1 * cos(phi) + v2 * sin(phi); + cylinder { p1, p2, staerke } + #declare p1 = p2; + #end +} +#end + +#macro seite(p, q, staerke) + #declare n = vcross(p, q); + intersection { + grosskreis(n, staerke) + plane { -vcross(n, q) * vdot(vcross(n, q), p), 0 } + plane { -vcross(n, p) * vdot(vcross(n, p), q), 0 } + } +#end + +#macro winkel(w, p, q, staerke, r) + #declare n = vnormalize(w); + #declare pp = vnormalize(p - vdot(n, p) * n); + #declare qq = vnormalize(q - vdot(n, q) * n); + intersection { + sphere { O, 1 + staerke } + cone { O, 0, 1.2 * vnormalize(w), r } + plane { -vcross(n, qq) * vdot(vcross(n, qq), pp), 0 } + plane { -vcross(n, pp) * vdot(vcross(n, pp), qq), 0 } + } +#end + +#macro punkt(p, staerke) + sphere { p, 1.5 * staerke } +#end + +#macro dreieck(p, q, r, farbe) + #declare n1 = vnormalize(vcross(p, q)); + #declare n2 = vnormalize(vcross(q, r)); + #declare n3 = vnormalize(vcross(r, p)); + intersection { + plane { n1, 0 } + plane { n2, 0 } + plane { n3, 0 } + sphere { <0, 0, 0>, 1 + 0.001 } + pigment { + color farbe + } + finish { + metallic + specular 0.4 + } + } +#end + +#macro ebenerwinkel(a, p, q, s, r, farbe) + #declare n = vnormalize(-vcross(p, q)); + #declare np = vnormalize(-vcross(p, n)); + #declare nq = -vnormalize(-vcross(q, n)); +// arrow(a, a + n, 0.02, White) +// arrow(a, a + np, 0.01, Red) +// arrow(a, a + nq, 0.01, Blue) + intersection { + cylinder { a - (s/2) * n, a + (s/2) * n, r } + plane { np, vdot(np, a) } + plane { nq, vdot(nq, a) } + pigment { + farbe + } + finish { + metallic + specular 0.5 + } + } +#end + +#macro komplement(a, p, q, s, r, farbe) + #declare n = vnormalize(-vcross(p, q)); +// arrow(a, a + n, 0.015, Orange) + #declare m = vnormalize(-vcross(q, n)); +// arrow(a, a + m, 0.015, Pink) + ebenerwinkel(a, p, m, s, r, farbe) +#end + +#declare fett = 0.015; +#declare fein = 0.010; + +#declare klein = 0.3; +#declare gross = 0.4; + +#declare dreieckfarbe = rgb<0.6,0.6,0.6>; +#declare rot = rgb<0.8,0.2,0.2>; +#declare gruen = rgb<0,0.6,0>; +#declare blau = rgb<0.2,0.2,0.8>; + +#declare kugelfarbe = rgb<0.8,0.8,0.8>; +#declare kugeltransparent = rgbt<0.8,0.8,0.8,0.5>; + +#macro kugel(farbe) +sphere { + <0, 0, 0>, 1 + pigment { + color farbe + } +} +#end + diff --git a/buch/papers/nav/images/dreieck.tex b/buch/papers/nav/images/dreieck.tex new file mode 100644 index 0000000..55f6a81 --- /dev/null +++ b/buch/papers/nav/images/dreieck.tex @@ -0,0 +1,68 @@ +% +% dreieck.tex -- sphärische Dreiecke für Positionsbestimmung +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math,calc} +\begin{document} + +\definecolor{darkgreen}{rgb}{0,0.6,0} + +\def\skala{1} + +\def\punkt#1#2{ + \fill[color=#2] #1 circle[radius=0.08]; +} + +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\input{dreieckdata.tex} +\input{macros.tex} + +\def\punktbeschriftung{ + \node at (A) [above] {$A$}; + \node at (B) [left] {$B$}; + \node at (C) [right] {$C$}; + \node at (P) [below] {$P$}; +} + +\winkelKappa{gray} + +\winkelAlpha{red} +\winkelGamma{blue} +\winkelBeta{darkgreen} + +\winkelOmega{gray} +\winkelBetaEins{brown} + +\seiteC{black} +\seiteB{black} +\seiteA{black} + +\seiteL{gray} +\seitePB{gray} +\seitePC{gray} + +\draw[line width=1.4pt] \kanteAB; +\draw[line width=1.4pt] \kanteAC; +\draw[color=gray] \kanteAP; +\draw[line width=1.4pt] \kanteBC; +\draw[color=gray] \kanteBP; +\draw[color=gray] \kanteCP; + +\punkt{(A)}{black}; +\punkt{(B)}{black}; +\punkt{(C)}{black}; +\punkt{(P)}{gray}; + +\punktbeschriftung + +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/nav/images/dreieck1.pdf b/buch/papers/nav/images/dreieck1.pdf Binary files differnew file mode 100644 index 0000000..5bdf23d --- /dev/null +++ b/buch/papers/nav/images/dreieck1.pdf diff --git a/buch/papers/nav/images/dreieck1.tex b/buch/papers/nav/images/dreieck1.tex new file mode 100644 index 0000000..436314c --- /dev/null +++ b/buch/papers/nav/images/dreieck1.tex @@ -0,0 +1,59 @@ +% +% dreieck.tex -- sphärische Dreiecke für Positionsbestimmung +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math,calc} +\begin{document} + +\definecolor{darkgreen}{rgb}{0,0.6,0} + +\def\skala{1} + +\def\punkt#1#2{ + \fill[color=#2] #1 circle[radius=0.08]; +} + +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\input{dreieckdata.tex} +\input{macros.tex} + +\winkelAlpha{red} +\winkelGamma{blue} +\winkelBeta{darkgreen} + +\seiteC{black} +\seiteB{black} +\seiteA{black} + +%\seiteL{gray} +\seitePB{gray} +\seitePC{gray} + +\draw[line width=1.4pt] \kanteAB; +\draw[line width=1.4pt] \kanteAC; +%\draw[color=gray] \kanteAP; +\draw[line width=1.4pt] \kanteBC; +\draw[color=gray] \kanteBP; +\draw[color=gray] \kanteCP; + +\punkt{(A)}{black}; +\punkt{(B)}{black}; +\punkt{(C)}{black}; +\punkt{(P)}{gray}; + +\node at (A) [above] {$A$}; +\node at (B) [left] {$B$}; +\node at (C) [right] {$C$}; +\node[color=gray] at (P) [below] {$P$}; + +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/nav/images/dreieck2.pdf b/buch/papers/nav/images/dreieck2.pdf Binary files differnew file mode 100644 index 0000000..a872b25 --- /dev/null +++ b/buch/papers/nav/images/dreieck2.pdf diff --git a/buch/papers/nav/images/dreieck2.tex b/buch/papers/nav/images/dreieck2.tex new file mode 100644 index 0000000..99aabb7 --- /dev/null +++ b/buch/papers/nav/images/dreieck2.tex @@ -0,0 +1,59 @@ +% +% dreieck2.tex -- sphärische Dreiecke für Positionsbestimmung +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math,calc} +\begin{document} + +\definecolor{darkgreen}{rgb}{0,0.6,0} + +\def\skala{1} + +\def\punkt#1#2{ + \fill[color=#2] #1 circle[radius=0.08]; +} + +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\input{dreieckdata.tex} +\input{macros.tex} + +%\winkelAlpha{red} +%\winkelGamma{blue} +%\winkelBeta{darkgreen} + +\seiteC{black} +\seiteB{black} +%\seiteA{black} + +%\seiteL{gray} +\seitePB{gray} +\seitePC{gray} + +\draw[line width=1.4pt] \kanteAB; +\draw[line width=1.4pt] \kanteAC; +%\draw[color=gray] \kanteAP; +\draw[line width=1.4pt] \kanteBC; +\draw[color=gray] \kanteBP; +\draw[color=gray] \kanteCP; + +\punkt{(A)}{black}; +\punkt{(B)}{black}; +\punkt{(C)}{black}; +\punkt{(P)}{gray}; + +\node at (A) [above] {$A$}; +\node at (B) [left] {$B$}; +\node at (C) [right] {$C$}; +\node[color=gray] at (P) [below] {$P$}; + +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/nav/images/dreieck3.pdf b/buch/papers/nav/images/dreieck3.pdf Binary files differnew file mode 100644 index 0000000..65070c6 --- /dev/null +++ b/buch/papers/nav/images/dreieck3.pdf diff --git a/buch/papers/nav/images/dreieck3.tex b/buch/papers/nav/images/dreieck3.tex new file mode 100644 index 0000000..0cf5363 --- /dev/null +++ b/buch/papers/nav/images/dreieck3.tex @@ -0,0 +1,59 @@ +% +% dreieck.tex -- sphärische Dreiecke für Positionsbestimmung +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math,calc} +\begin{document} + +\definecolor{darkgreen}{rgb}{0,0.6,0} + +\def\skala{1} + +\def\punkt#1#2{ + \fill[color=#2] #1 circle[radius=0.08]; +} + +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\input{dreieckdata.tex} +\input{macros.tex} + +\winkelAlpha{red} +%\winkelGamma{blue} +%\winkelBeta{darkgreen} + +\seiteC{black} +\seiteB{black} +%\seiteA{black} + +%\seiteL{gray} +\seitePB{gray} +\seitePC{gray} + +\draw[line width=1.4pt] \kanteAB; +\draw[line width=1.4pt] \kanteAC; +%\draw[color=gray] \kanteAP; +\draw[line width=1.4pt] \kanteBC; +\draw[color=gray] \kanteBP; +\draw[color=gray] \kanteCP; + +\punkt{(A)}{black}; +\punkt{(B)}{black}; +\punkt{(C)}{black}; +\punkt{(P)}{gray}; + +\node at (A) [above] {$A$}; +\node at (B) [left] {$B$}; +\node at (C) [right] {$C$}; +\node[color=gray] at (P) [below] {$P$}; + +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/nav/images/dreieck3d1.pdf b/buch/papers/nav/images/dreieck3d1.pdf Binary files differnew file mode 100644 index 0000000..015bce7 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d1.pdf diff --git a/buch/papers/nav/images/dreieck3d1.pov b/buch/papers/nav/images/dreieck3d1.pov new file mode 100644 index 0000000..e491075 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d1.pov @@ -0,0 +1,58 @@ +// +// dreiecke3d.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#include "common.inc" + +union { + seite(A, B, fett) + seite(B, C, fett) + seite(A, C, fett) + punkt(A, fett) + punkt(B, fett) + punkt(C, fett) + punkt(P, fein) + seite(B, P, fein) + seite(C, P, fein) + pigment { + color dreieckfarbe + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(A, B, C, fein, gross) + pigment { + color rot + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(B, C, A, fein, gross) + pigment { + color gruen + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(C, A, B, fein, gross) + pigment { + color blau + } + finish { + specular 0.95 + metallic + } +} diff --git a/buch/papers/nav/images/dreieck3d1.tex b/buch/papers/nav/images/dreieck3d1.tex new file mode 100644 index 0000000..799b21a --- /dev/null +++ b/buch/papers/nav/images/dreieck3d1.tex @@ -0,0 +1,53 @@ +% +% dreieck3d1.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=8cm]{dreieck3d1.jpg}}; + +% Gitter +\ifthenelse{\boolean{showgrid}}{ +\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw (-\breite,-\hoehe) grid (\breite, \hoehe); +\fill (0,0) circle[radius=0.05]; +}{} + +\node at (0.7,3.8) {$A$}; +\node at (-3.4,-0.8) {$B$}; +\node at (3.3,-2.1) {$C$}; +\node at (-1.4,-3.5) {$P$}; + +\node at (-1.9,2.1) {$c$}; +\node at (-0.2,-1.2) {$a$}; +\node at (2.6,1.5) {$b$}; + +\node at (-2.6,-2.2) {$p_b$}; +\node at (1,-2.9) {$p_c$}; + +\node at (0.7,3) {$\alpha$}; +\node at (-2.5,-0.5) {$\beta$}; +\node at (2.3,-1.2) {$\gamma$}; + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/dreieck3d2.pdf b/buch/papers/nav/images/dreieck3d2.pdf Binary files differnew file mode 100644 index 0000000..6b3f09d --- /dev/null +++ b/buch/papers/nav/images/dreieck3d2.pdf diff --git a/buch/papers/nav/images/dreieck3d2.pov b/buch/papers/nav/images/dreieck3d2.pov new file mode 100644 index 0000000..c0625ce --- /dev/null +++ b/buch/papers/nav/images/dreieck3d2.pov @@ -0,0 +1,26 @@ +// +// dreiecke3d.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#include "common.inc" + +union { + seite(A, B, fett) + seite(B, C, fett) + seite(A, C, fett) + punkt(A, fett) + punkt(B, fett) + punkt(C, fett) + punkt(P, fein) + seite(B, P, fein) + seite(C, P, fein) + pigment { + color dreieckfarbe + } + finish { + specular 0.95 + metallic + } +} + diff --git a/buch/papers/nav/images/dreieck3d2.tex b/buch/papers/nav/images/dreieck3d2.tex new file mode 100644 index 0000000..0f6e10c --- /dev/null +++ b/buch/papers/nav/images/dreieck3d2.tex @@ -0,0 +1,53 @@ +% +% dreieck3d2.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=8cm]{dreieck3d2.jpg}}; + +% Gitter +\ifthenelse{\boolean{showgrid}}{ +\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw (-\breite,-\hoehe) grid (\breite, \hoehe); +\fill (0,0) circle[radius=0.05]; +}{} + +\node at (0.7,3.8) {$A$}; +\node at (-3.4,-0.8) {$B$}; +\node at (3.3,-2.1) {$C$}; +\node at (-1.4,-3.5) {$P$}; + +\node at (-1.9,2.1) {$c$}; +%\node at (-0.2,-1.2) {$a$}; +\node at (2.6,1.5) {$b$}; + +\node at (-2.6,-2.2) {$p_b$}; +\node at (1,-2.9) {$p_c$}; + +%\node at (0.7,3) {$\alpha$}; +%\node at (-2.5,-0.5) {$\beta$}; +%\node at (2.3,-1.2) {$\gamma$}; + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/dreieck3d3.pdf b/buch/papers/nav/images/dreieck3d3.pdf Binary files differnew file mode 100644 index 0000000..7d79455 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d3.pdf diff --git a/buch/papers/nav/images/dreieck3d3.pov b/buch/papers/nav/images/dreieck3d3.pov new file mode 100644 index 0000000..b6f64d5 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d3.pov @@ -0,0 +1,37 @@ +// +// dreiecke3d.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#include "common.inc" + +union { + seite(A, B, fett) + seite(B, C, fett) + seite(A, C, fett) + punkt(A, fett) + punkt(B, fett) + punkt(C, fett) + punkt(P, fein) + seite(B, P, fein) + seite(C, P, fein) + pigment { + color dreieckfarbe + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(A, B, C, fein, gross) + pigment { + color rot + } + finish { + specular 0.95 + metallic + } +} + diff --git a/buch/papers/nav/images/dreieck3d3.tex b/buch/papers/nav/images/dreieck3d3.tex new file mode 100644 index 0000000..a047b1b --- /dev/null +++ b/buch/papers/nav/images/dreieck3d3.tex @@ -0,0 +1,53 @@ +% +% dreieck3d3.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=8cm]{dreieck3d3.jpg}}; + +% Gitter +\ifthenelse{\boolean{showgrid}}{ +\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw (-\breite,-\hoehe) grid (\breite, \hoehe); +\fill (0,0) circle[radius=0.05]; +}{} + +\node at (0.7,3.8) {$A$}; +\node at (-3.4,-0.8) {$B$}; +\node at (3.3,-2.1) {$C$}; +\node at (-1.4,-3.5) {$P$}; + +\node at (-1.9,2.1) {$c$}; +%\node at (-0.2,-1.2) {$a$}; +\node at (2.6,1.5) {$b$}; + +\node at (-2.6,-2.2) {$p_b$}; +\node at (1,-2.9) {$p_c$}; + +\node at (0.7,3) {$\alpha$}; +%\node at (-2.5,-0.5) {$\beta$}; +%\node at (2.3,-1.2) {$\gamma$}; + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/dreieck3d4.pdf b/buch/papers/nav/images/dreieck3d4.pdf Binary files differnew file mode 100644 index 0000000..e1ea757 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d4.pdf diff --git a/buch/papers/nav/images/dreieck3d4.pov b/buch/papers/nav/images/dreieck3d4.pov new file mode 100644 index 0000000..b6f17e3 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d4.pov @@ -0,0 +1,37 @@ +// +// dreiecke3d.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#include "common.inc" + +union { + seite(A, B, fein) + seite(A, C, fein) + punkt(A, fein) + punkt(B, fett) + punkt(C, fett) + punkt(P, fett) + seite(B, C, fett) + seite(B, P, fett) + seite(C, P, fett) + pigment { + color dreieckfarbe + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(B, C, P, fein, gross) + pigment { + color rgb<0.6,0.4,0.2> + } + finish { + specular 0.95 + metallic + } +} + diff --git a/buch/papers/nav/images/dreieck3d4.tex b/buch/papers/nav/images/dreieck3d4.tex new file mode 100644 index 0000000..d49fb66 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d4.tex @@ -0,0 +1,54 @@ +% +% dreieck3d4.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=8cm]{dreieck3d4.jpg}}; + +% Gitter +\ifthenelse{\boolean{showgrid}}{ +\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw (-\breite,-\hoehe) grid (\breite, \hoehe); +\fill (0,0) circle[radius=0.05]; +}{} + +\node at (0.7,3.8) {$A$}; +\node at (-3.4,-0.8) {$B$}; +\node at (3.3,-2.1) {$C$}; +\node at (-1.4,-3.5) {$P$}; + +%\node at (-1.9,2.1) {$c$}; +\node at (-0.2,-1.2) {$a$}; +%\node at (2.6,1.5) {$b$}; + +\node at (-2.6,-2.2) {$p_b$}; +\node at (1,-2.9) {$p_c$}; + +%\node at (0.7,3) {$\alpha$}; +%\node at (-2.5,-0.5) {$\beta$}; +%\node at (2.3,-1.2) {$\gamma$}; +\node at (-2.3,-1.5) {$\beta_1$}; + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/dreieck3d5.pdf b/buch/papers/nav/images/dreieck3d5.pdf Binary files differnew file mode 100644 index 0000000..0c86d36 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d5.pdf diff --git a/buch/papers/nav/images/dreieck3d5.pov b/buch/papers/nav/images/dreieck3d5.pov new file mode 100644 index 0000000..188f181 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d5.pov @@ -0,0 +1,26 @@ +// +// dreiecke3d.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#include "common.inc" + +union { + seite(A, B, fein) + seite(A, C, fein) + punkt(A, fein) + punkt(B, fett) + punkt(C, fett) + punkt(P, fett) + seite(B, C, fett) + seite(B, P, fett) + seite(C, P, fett) + pigment { + color dreieckfarbe + } + finish { + specular 0.95 + metallic + } +} + diff --git a/buch/papers/nav/images/dreieck3d5.tex b/buch/papers/nav/images/dreieck3d5.tex new file mode 100644 index 0000000..8011b37 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d5.tex @@ -0,0 +1,53 @@ +% +% dreieck3d5.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=8cm]{dreieck3d5.jpg}}; + +% Gitter +\ifthenelse{\boolean{showgrid}}{ +\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw (-\breite,-\hoehe) grid (\breite, \hoehe); +\fill (0,0) circle[radius=0.05]; +}{} + +\node at (0.7,3.8) {$A$}; +\node at (-3.4,-0.8) {$B$}; +\node at (3.3,-2.1) {$C$}; +\node at (-1.4,-3.5) {$P$}; + +%\node at (-1.9,2.1) {$c$}; +%\node at (-0.2,-1.2) {$a$}; +%\node at (2.6,1.5) {$b$}; + +\node at (-2.6,-2.2) {$p_b$}; +\node at (1,-2.9) {$p_c$}; + +%\node at (0.7,3) {$\alpha$}; +%\node at (-2.5,-0.5) {$\beta$}; +%\node at (2.3,-1.2) {$\gamma$}; + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/dreieck3d6.pov b/buch/papers/nav/images/dreieck3d6.pov new file mode 100644 index 0000000..191a1e7 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d6.pov @@ -0,0 +1,37 @@ +// +// dreiecke3d.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#include "common.inc" + +union { + seite(A, B, fett) + seite(A, C, fett) + seite(B, P, fett) + seite(C, P, fett) + seite(A, P, fett) + punkt(A, fett) + punkt(B, fett) + punkt(C, fett) + punkt(P, fett) + pigment { + color dreieckfarbe + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(B, A, P, fein, gross) + pigment { + color rgb<0.6,0.2,0.6> + } + finish { + specular 0.95 + metallic + } +} + diff --git a/buch/papers/nav/images/dreieck3d6.tex b/buch/papers/nav/images/dreieck3d6.tex new file mode 100644 index 0000000..bbca2ca --- /dev/null +++ b/buch/papers/nav/images/dreieck3d6.tex @@ -0,0 +1,55 @@ +% +% dreieck3d6.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=8cm]{dreieck3d6.jpg}}; + +% Gitter +\ifthenelse{\boolean{showgrid}}{ +\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw (-\breite,-\hoehe) grid (\breite, \hoehe); +\fill (0,0) circle[radius=0.05]; +}{} + +\node at (0.7,3.8) {$A$}; +\node at (-3.4,-0.8) {$B$}; +\node at (3.3,-2.1) {$C$}; +\node at (-1.4,-3.5) {$P$}; + +\node at (-1.9,2.1) {$c$}; +%\node at (-0.2,-1.2) {$a$}; +\node at (2.6,1.5) {$b$}; +\node at (-0.7,0.3) {$l$}; + +\node at (-2.6,-2.2) {$p_b$}; +\node at (1,-2.9) {$p_c$}; + +%\node at (0.7,3) {$\alpha$}; +%\node at (-2.5,-0.5) {$\beta$}; +%\node at (2.3,-1.2) {$\gamma$}; +\node at (-2.4,-0.6) {$\kappa$}; + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/dreieck3d7.pov b/buch/papers/nav/images/dreieck3d7.pov new file mode 100644 index 0000000..aae5c6c --- /dev/null +++ b/buch/papers/nav/images/dreieck3d7.pov @@ -0,0 +1,39 @@ +// +// dreiecke3d.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#include "common.inc" + +union { + seite(A, C, fett) + seite(A, P, fett) + seite(C, P, fett) + + seite(A, B, fein) + seite(B, C, fein) + seite(B, P, fein) + punkt(A, fett) + punkt(C, fett) + punkt(P, fett) + punkt(B, fein) + pigment { + color dreieckfarbe + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(A, P, C, fein, gross) + pigment { + color rgb<0.4,0.4,1> + } + finish { + specular 0.95 + metallic + } +} + diff --git a/buch/papers/nav/images/dreieck3d7.tex b/buch/papers/nav/images/dreieck3d7.tex new file mode 100644 index 0000000..4027a8b --- /dev/null +++ b/buch/papers/nav/images/dreieck3d7.tex @@ -0,0 +1,55 @@ +% +% dreieck3d7.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=8cm]{dreieck3d7.jpg}}; + +% Gitter +\ifthenelse{\boolean{showgrid}}{ +\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw (-\breite,-\hoehe) grid (\breite, \hoehe); +\fill (0,0) circle[radius=0.05]; +}{} + +\node at (0.7,3.8) {$A$}; +\node at (-3.4,-0.8) {$B$}; +\node at (3.3,-2.1) {$C$}; +\node at (-1.4,-3.5) {$P$}; + +\node at (-1.9,2.1) {$c$}; +\node at (-0.2,-1.2) {$a$}; +\node at (2.6,1.5) {$b$}; +\node at (-0.7,0.3) {$l$}; + +\node at (-2.6,-2.2) {$p_b$}; +\node at (1,-2.9) {$p_c$}; + +%\node at (0.7,3) {$\alpha$}; +%\node at (-2.5,-0.5) {$\beta$}; +%\node at (2.3,-1.2) {$\gamma$}; +\node at (0.8,3.1) {$\omega$}; + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/dreieck3d8.jpg b/buch/papers/nav/images/dreieck3d8.jpg Binary files differnew file mode 100644 index 0000000..52bd25e --- /dev/null +++ b/buch/papers/nav/images/dreieck3d8.jpg diff --git a/buch/papers/nav/images/dreieck3d8.pdf b/buch/papers/nav/images/dreieck3d8.pdf Binary files differnew file mode 100644 index 0000000..9d630aa --- /dev/null +++ b/buch/papers/nav/images/dreieck3d8.pdf diff --git a/buch/papers/nav/images/dreieck3d8.pov b/buch/papers/nav/images/dreieck3d8.pov new file mode 100644 index 0000000..9e9921a --- /dev/null +++ b/buch/papers/nav/images/dreieck3d8.pov @@ -0,0 +1,96 @@ +// +// dreiecke3d8.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#include "common.inc" + +union { + seite(A, B, fett) + seite(B, C, fett) + seite(A, C, fett) + seite(A, P, fein) + seite(B, P, fett) + seite(C, P, fett) + punkt(A, fett) + punkt(B, fett) + punkt(C, fett) + punkt(P, fett) + pigment { + color dreieckfarbe + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(A, B, C, fein, klein) + pigment { + color rot + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(B, C, A, fein, klein) + pigment { + color gruen + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(C, A, B, fein, gross) + pigment { + color blau + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(A, P, C, fein/2, gross) + pigment { + color rgb<0.8,0,0.8> + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(B, P, C, fein, klein) + pigment { + color rgb<1,0.8,0> + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(B, P, A, fein/2, gross) + pigment { + color rgb<0.4,0.6,0.8> + } + finish { + specular 0.95 + metallic + } +} + +dreieck(A, B, C, White) + + diff --git a/buch/papers/nav/images/dreieck3d8.tex b/buch/papers/nav/images/dreieck3d8.tex new file mode 100644 index 0000000..c59c7b0 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d8.tex @@ -0,0 +1,57 @@ +% +% dreieck3d8.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=8cm]{dreieck3d8.jpg}}; + +% Gitter +\ifthenelse{\boolean{showgrid}}{ +\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw (-\breite,-\hoehe) grid (\breite, \hoehe); +\fill (0,0) circle[radius=0.05]; +}{} + +\node at (0.7,3.8) {$A$}; +\node at (-3.4,-0.8) {$B$}; +\node at (3.3,-2.1) {$C$}; +\node at (-1.4,-3.5) {$P$}; + +\node at (-1.9,2.1) {$c$}; +\node at (-0.2,-1.2) {$a$}; +\node at (2.6,1.5) {$b$}; +\node at (-0.8,0) {$l$}; + +\node at (-2.6,-2.2) {$p_b$}; +\node at (1,-2.9) {$p_c$}; + +\node at (0.7,3.3) {$\alpha$}; +\node at (0.8,2.85) {$\omega$}; +\node at (-2.6,-0.6) {$\beta$}; +\node at (2.3,-1.2) {$\gamma$}; +\node at (-2.6,-1.3) {$\beta_1$}; +\node at (-2.1,-0.8) {$\kappa$}; + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/dreieck3d9.pov b/buch/papers/nav/images/dreieck3d9.pov new file mode 100644 index 0000000..24d3843 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d9.pov @@ -0,0 +1,66 @@ +// +// dreiecke3d8.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#include "common.inc" + +//union { +// seite(A, B, fein) +// seite(B, C, fein) +// seite(A, C, fein) +// seite(A, P, fein) +// seite(B, P, fett) +// seite(C, P, fett) +// punkt(A, fein) +// punkt(B, fett) +// punkt(C, fett) +// punkt(P, fett) +// pigment { +// color dreieckfarbe +// } +// finish { +// specular 0.95 +// metallic +// } +//} + +//dreieck(A, B, C, White) + +kugel(kugeltransparent) + +ebenerwinkel(O, C, P, 0.01, 1.001, rot) +ebenerwinkel(P, C, P, 0.01, 0.3, rot) +komplement(P, C, P, 0.01, 0.3, Yellow) + +ebenerwinkel(O, B, P, 0.01, 1.001, blau) +ebenerwinkel(P, B, P, 0.01, 0.3, blau) +komplement(P, B, P, 0.01, 0.3, Green) + +arrow(B, 1.5 * B, 0.015, White) +arrow(C, 1.5 * C, 0.015, White) +arrow(P, 1.5 * P, 0.015, White) + +union { + cylinder { O, P, 0.7 * fein } + + cylinder { P, P + 3 * B, 0.7 * fein } + cylinder { O, B + 3 * B, 0.7 * fein } + + cylinder { P, P + 3 * C, 0.7 * fein } + cylinder { O, C + 3 * C, 0.7 * fein } + + pigment { + color White + } +} + +#declare imagescale = 0.044; + +camera { + location <40, 20, -20> + look_at <0, 0.24, -0.20> + right x * imagescale + up y * imagescale +} + diff --git a/buch/papers/nav/images/dreieck4.pdf b/buch/papers/nav/images/dreieck4.pdf Binary files differnew file mode 100644 index 0000000..4871a1e --- /dev/null +++ b/buch/papers/nav/images/dreieck4.pdf diff --git a/buch/papers/nav/images/dreieck4.tex b/buch/papers/nav/images/dreieck4.tex new file mode 100644 index 0000000..19a7d12 --- /dev/null +++ b/buch/papers/nav/images/dreieck4.tex @@ -0,0 +1,64 @@ +% +% dreieck4.tex -- sphärische Dreiecke für Positionsbestimmung +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math,calc} +\begin{document} + +\definecolor{darkgreen}{rgb}{0,0.6,0} + +\def\skala{1} + +\def\punkt#1#2{ + \fill[color=#2] #1 circle[radius=0.08]; +} + +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\input{dreieckdata.tex} +\input{macros.tex} + +%\winkelKappa{gray} + +%\winkelAlpha{red} +%\winkelGamma{blue} +%\winkelBeta{darkgreen} + +%\winkelOmega{gray} +\winkelBetaEins{brown} + +%\seiteC{gray} +%\seiteB{gray} +%\seiteL{gray} + +\seiteA{black} +\seitePB{black} +\seitePC{black} + +\draw[color=gray] \kanteAB; +\draw[color=gray] \kanteAC; +%\draw[color=gray] \kanteAP; +\draw[color=black,line width=1.4pt] \kanteBC; +\draw[color=black,line width=1.4pt] \kanteBP; +\draw[color=black,line width=1.4pt] \kanteCP; + +\punkt{(A)}{gray}; +\punkt{(B)}{black}; +\punkt{(C)}{black}; +\punkt{(P)}{black}; + +\node[color=gray] at (A) [above] {$A$}; +\node at (B) [left] {$B$}; +\node at (C) [right] {$C$}; +\node at (P) [below] {$P$}; + +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/nav/images/dreieck5.pdf b/buch/papers/nav/images/dreieck5.pdf Binary files differnew file mode 100644 index 0000000..cf686e0 --- /dev/null +++ b/buch/papers/nav/images/dreieck5.pdf diff --git a/buch/papers/nav/images/dreieck5.tex b/buch/papers/nav/images/dreieck5.tex new file mode 100644 index 0000000..d1117d1 --- /dev/null +++ b/buch/papers/nav/images/dreieck5.tex @@ -0,0 +1,64 @@ +% +% dreieck4.tex -- sphärische Dreiecke für Positionsbestimmung +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math,calc} +\begin{document} + +\definecolor{darkgreen}{rgb}{0,0.6,0} + +\def\skala{1} + +\def\punkt#1#2{ + \fill[color=#2] #1 circle[radius=0.08]; +} + +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\input{dreieckdata.tex} +\input{macros.tex} + +%\winkelKappa{gray} + +%\winkelAlpha{red} +%\winkelGamma{blue} +%\winkelBeta{darkgreen} + +%\winkelOmega{gray} +%\winkelBetaEins{brown} + +%\seiteC{gray} +%\seiteB{gray} +%\seiteL{gray} + +%\seiteA{black} +\seitePB{black} +\seitePC{black} + +\draw[color=gray] \kanteAB; +\draw[color=gray] \kanteAC; +%\draw[color=gray] \kanteAP; +\draw[color=black,line width=1.4pt] \kanteBC; +\draw[color=black,line width=1.4pt] \kanteBP; +\draw[color=black,line width=1.4pt] \kanteCP; + +\punkt{(A)}{gray}; +\punkt{(B)}{black}; +\punkt{(C)}{black}; +\punkt{(P)}{black}; + +\node[color=gray] at (A) [above] {$A$}; +\node at (B) [left] {$B$}; +\node at (C) [right] {$C$}; +\node at (P) [below] {$P$}; + +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/nav/images/dreieck6.pdf b/buch/papers/nav/images/dreieck6.pdf Binary files differnew file mode 100644 index 0000000..7efd673 --- /dev/null +++ b/buch/papers/nav/images/dreieck6.pdf diff --git a/buch/papers/nav/images/dreieck6.tex b/buch/papers/nav/images/dreieck6.tex new file mode 100644 index 0000000..87db1c2 --- /dev/null +++ b/buch/papers/nav/images/dreieck6.tex @@ -0,0 +1,64 @@ +% +% dreieck6.tex -- sphärische Dreiecke für Positionsbestimmung +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math,calc} +\begin{document} + +\definecolor{darkgreen}{rgb}{0,0.6,0} + +\def\skala{1} + +\def\punkt#1#2{ + \fill[color=#2] #1 circle[radius=0.08]; +} + +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\input{dreieckdata.tex} +\input{macros.tex} + +\winkelKappa{gray} + +%\winkelAlpha{red} +%\winkelGamma{blue} +%\winkelBeta{darkgreen} + +%\winkelOmega{gray} +%\winkelBetaEins{brown} + +\seiteC{black} +\seiteB{black} +%\seiteA{gray} + +\seiteL{black} +\seitePB{black} +\seitePC{black} + +\draw[color=black,line width=1.4pt] \kanteAB; +\draw[color=black,line width=1.4pt] \kanteAC; +\draw[color=black,line width=1.4pt] \kanteAP; +%\draw[color=gray] \kanteBC; +\draw[color=black,line width=1.4pt] \kanteBP; +\draw[color=black,line width=1.4pt] \kanteCP; + +\punkt{(A)}{black}; +\punkt{(B)}{black}; +\punkt{(C)}{black}; +\punkt{(P)}{black}; + +\node at (A) [above] {$A$}; +\node at (B) [left] {$B$}; +\node at (C) [right] {$C$}; +\node at (P) [below] {$P$}; + +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/nav/images/dreieck7.pdf b/buch/papers/nav/images/dreieck7.pdf Binary files differnew file mode 100644 index 0000000..aa83e28 --- /dev/null +++ b/buch/papers/nav/images/dreieck7.pdf diff --git a/buch/papers/nav/images/dreieck7.tex b/buch/papers/nav/images/dreieck7.tex new file mode 100644 index 0000000..f084708 --- /dev/null +++ b/buch/papers/nav/images/dreieck7.tex @@ -0,0 +1,64 @@ +% +% dreieck.tex -- sphärische Dreiecke für Positionsbestimmung +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math,calc} +\begin{document} + +\definecolor{darkgreen}{rgb}{0,0.6,0} + +\def\skala{1} + +\def\punkt#1#2{ + \fill[color=#2] #1 circle[radius=0.08]; +} + +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\input{dreieckdata.tex} +\input{macros.tex} + +%\winkelKappa{gray} + +%\winkelAlpha{red} +%\winkelGamma{blue} +%\winkelBeta{darkgreen} + +\winkelOmega{gray} +%\winkelBetaEins{brown} + +\seiteC{black} +\seiteB{black} +\seiteA{gray} + +\seiteL{black} +\seitePB{gray} +\seitePC{black} + +\draw[color=gray] \kanteAB; +\draw[color=black,line width=1.4pt] \kanteAC; +\draw[color=black,line width=1.4pt] \kanteAP; +\draw[color=gray] \kanteBC; +\draw[color=gray] \kanteBP; +\draw[line width=1.4pt] \kanteCP; + +\punkt{(A)}{black}; +\punkt{(B)}{gray}; +\punkt{(C)}{black}; +\punkt{(P)}{black}; + +\node at (A) [above] {$A$}; +\node[color=gray] at (B) [left] {$B$}; +\node at (C) [right] {$C$}; +\node at (P) [below] {$P$}; + +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/nav/images/dreieckdata.tex b/buch/papers/nav/images/dreieckdata.tex new file mode 100644 index 0000000..c0fb720 --- /dev/null +++ b/buch/papers/nav/images/dreieckdata.tex @@ -0,0 +1,16 @@ +\coordinate (P) at (0.0000,0.0000); +\coordinate (A) at (1.0000,8.0000); +\coordinate (B) at (-3.0000,3.0000); +\coordinate (C) at (4.0000,4.0000); +\def\kanteAB{(1.0000,8.0000) arc (114.77514:167.90524:7.1589)} +\def\kanteBA{(-3.0000,3.0000) arc (167.90524:114.77514:7.1589)} +\def\kanteAC{(1.0000,8.0000) arc (63.43495:10.30485:5.5902)} +\def\kanteCA{(4.0000,4.0000) arc (10.30485:63.43495:5.5902)} +\def\kanteAP{(1.0000,8.0000) arc (146.30993:199.44003:9.0139)} +\def\kantePA{(0.0000,0.0000) arc (199.44003:146.30993:9.0139)} +\def\kanteBC{(-3.0000,3.0000) arc (-95.90614:-67.83365:14.5774)} +\def\kanteCB{(4.0000,4.0000) arc (-67.83365:-95.90614:14.5774)} +\def\kanteBP{(-3.0000,3.0000) arc (-161.56505:-108.43495:4.7434)} +\def\kantePB{(0.0000,0.0000) arc (-108.43495:-161.56505:4.7434)} +\def\kanteCP{(4.0000,4.0000) arc (-30.96376:-59.03624:11.6619)} +\def\kantePC{(0.0000,0.0000) arc (-59.03624:-30.96376:11.6619)} diff --git a/buch/papers/nav/images/macros.tex b/buch/papers/nav/images/macros.tex new file mode 100644 index 0000000..69a620d --- /dev/null +++ b/buch/papers/nav/images/macros.tex @@ -0,0 +1,54 @@ +\def\winkelAlpha#1{ + \begin{scope} + \clip (A) circle[radius=1.1]; + \fill[color=#1!20] \kanteAB -- \kanteCA -- cycle; + \end{scope} + \node[color=#1] at ($(A)+(222:0.82)$) {$\alpha$}; +} + +\def\winkelOmega#1{ + \begin{scope} + \clip (A) circle[radius=0.7]; + \fill[color=#1!20] \kanteAP -- \kanteCA -- cycle; + \end{scope} + \node[color=#1] at ($(A)+(285:0.50)$) {$\omega$}; +} + +\def\winkelGamma#1{ + \begin{scope} + \clip (C) circle[radius=1.0]; + \fill[color=#1!20] \kanteCA -- \kanteBC -- cycle; + \end{scope} + \node[color=#1] at ($(C)+(155:0.60)$) {$\gamma$}; +} + +\def\winkelKappa#1{ + \begin{scope} + \clip (B) circle[radius=1.2]; + \fill[color=#1!20] \kanteBP -- \kanteAB -- cycle; + \end{scope} + \node[color=#1] at ($(B)+(15:1.00)$) {$\kappa$}; +} + +\def\winkelBeta#1{ + \begin{scope} + \clip (B) circle[radius=0.8]; + \fill[color=#1!20] \kanteBC -- \kanteAB -- cycle; + \end{scope} + \node[color=#1] at ($(B)+(35:0.40)$) {$\beta$}; +} + +\def\winkelBetaEins#1{ + \begin{scope} + \clip (B) circle[radius=0.8]; + \fill[color=#1!20] \kanteBP -- \kanteCB -- cycle; + \end{scope} + \node[color=#1] at ($(B)+(330:0.60)$) {$\beta_1$}; +} + +\def\seiteC#1{ \node[color=#1] at (-1.9,5.9) {$c$}; } +\def\seiteB#1{ \node[color=#1] at (3.2,6.5) {$b$}; } +\def\seiteL#1{ \node[color=#1] at (-0.2,4.5) {$l$}; } +\def\seiteA#1{ \node[color=#1] at (2,3) {$a$}; } +\def\seitePB#1{ \node[color=#1] at (-2.1,1) {$p_b$}; } +\def\seitePC#1{ \node[color=#1] at (2.5,1.5) {$p_c$}; } diff --git a/buch/papers/nav/images/pk.m b/buch/papers/nav/images/pk.m new file mode 100644 index 0000000..6e89e9a --- /dev/null +++ b/buch/papers/nav/images/pk.m @@ -0,0 +1,55 @@ +# +# pk.m -- Punkte und Kanten für sphärisches Dreieck +# +# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# + +A = [ 1, 8 ]; +B = [ -3, 3 ]; +C = [ 4, 4 ]; +P = [ 0, 0 ]; + +global fn; +fn = fopen("dreieckdata.tex", "w"); + +fprintf(fn, "\\coordinate (P) at (%.4f,%.4f);\n", P(1,1), P(1,2)); +fprintf(fn, "\\coordinate (A) at (%.4f,%.4f);\n", A(1,1), A(1,2)); +fprintf(fn, "\\coordinate (B) at (%.4f,%.4f);\n", B(1,1), B(1,2)); +fprintf(fn, "\\coordinate (C) at (%.4f,%.4f);\n", C(1,1), C(1,2)); + +function retval = seite(A, B, l, nameA, nameB) + global fn; + d = fliplr(B - A); + d(1, 2) = -d(1, 2); + # Zentrum + C = 0.5 * (A + B) + l * d; + # Radius: + r = hypot(C(1,1)-A(1,1), C(1,2)-A(1,2)) + # Winkel von + winkelvon = atan2(A(1,2)-C(1,2),A(1,1)-C(1,1)); + # Winkel bis + winkelbis = atan2(B(1,2)-C(1,2),B(1,1)-C(1,1)); + if (abs(winkelvon - winkelbis) > pi) + if (winkelbis < winkelvon) + winkelbis = winkelbis + 2 * pi + else + winkelvon = winkelvon + 2 * pi + end + end + # Kurve + fprintf(fn, "\\def\\kante%s%s{(%.4f,%.4f) arc (%.5f:%.5f:%.4f)}\n", + nameA, nameB, + A(1,1), A(1,2), winkelvon * 180 / pi, winkelbis * 180 / pi, r); + fprintf(fn, "\\def\\kante%s%s{(%.4f,%.4f) arc (%.5f:%.5f:%.4f)}\n", + nameB, nameA, + B(1,1), B(1,2), winkelbis * 180 / pi, winkelvon * 180 / pi, r); +endfunction + +seite(A, B, -1, "A", "B"); +seite(A, C, 1, "A", "C"); +seite(A, P, -1, "A", "P"); +seite(B, C, -2, "B", "C"); +seite(B, P, -1, "B", "P"); +seite(C, P, 2, "C", "P"); + +fclose(fn); diff --git a/buch/papers/nav/main.tex b/buch/papers/nav/main.tex index e11e2c0..4c52547 100644 --- a/buch/papers/nav/main.tex +++ b/buch/papers/nav/main.tex @@ -3,34 +3,20 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:nav}} -\lhead{Thema} +\chapter{Sphärische Navigation\label{chapter:nav}} +\lhead{Sphärische Navigation} \begin{refsection} -\chapterauthor{Hans Muster} +\chapterauthor{Enez Erdem und Marc Kühne} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} -\input{papers/nav/teil0.tex} -\input{papers/nav/teil1.tex} -\input{papers/nav/teil2.tex} -\input{papers/nav/teil3.tex} + +\input{papers/nav/einleitung.tex} +\input{papers/nav/flatearth.tex} +\input{papers/nav/sincos.tex} +\input{papers/nav/trigo.tex} +\input{papers/nav/nautischesdreieck.tex} + \printbibliography[heading=subbibliography] \end{refsection} + diff --git a/buch/papers/nav/nautischesdreieck.tex b/buch/papers/nav/nautischesdreieck.tex new file mode 100644 index 0000000..36e9c99 --- /dev/null +++ b/buch/papers/nav/nautischesdreieck.tex @@ -0,0 +1,200 @@ +\section{Das Nautische Dreieck} +\subsection{Definition des Nautischen Dreiecks} +Die Himmelskugel ist eine gedachte Kugel, welche die Erde und dessen Beobachter umgibt und als Rechenfläche für Koordinaten in der Astronomie und Geodäsie dient. +Der Zenit ist jener Punkt, der vom Erdmittelpunkt durch denn eigenen Standort an die Himmelskugel verlängert wird. +Ein Gestirn ist ein Planet oder ein Fixstern, zu welchen es diverse Jahrbücher mit allen astronomischen Eigenschaften gibt. +Der Himmelspol ist der Nordpol an die Himmelskugel projiziert. +Das nautische Dreieck hat die Ecken Zenit, Gestirn und Himmelspol, wie man in der Abbildung 21.5 sehen kann. + +Ursprünglich ist das nautische Dreieck ein Hilfsmittel der sphärischen Astronomie um die momentane Position eines Fixsterns oder Planeten an der Himmelskugel zu bestimmen. + +\subsection{Das Bilddreieck} +\begin{figure} + \begin{center} + \includegraphics[width=8cm]{papers/nav/bilder/kugel3.png} + \caption[Nautisches Dreieck]{Nautisches Dreieck} + \end{center} +\end{figure} + Man kann das nautische Dreieck auf die Erdkugel projizieren. +Dieses Dreieck nennt man dann Bilddreieck. +Als Bildpunkt wird in der astronomischen Navigation der Punkt bezeichnet, an dem eine gedachte Linie vom Mittelpunkt eines beobachteten Gestirns zum Mittelpunkt der Erde die Erdoberfläche schneidet. +Die Projektion auf der Erdkugel hat die Ecken Nordpol, Standort und Bildpunkt. + +\section{Standortbestimmung ohne elektronische Hilfsmittel} +Um den eigenen Standort herauszufinden, wird in diesem Kapitel die Projektion des nautische Dreiecks auf die Erdkugel zur Hilfe genommen. +Mithilfe eines Sextanten, einem Jahrbuch und der sphärischen Trigonometrie kann man dann die Längen- und Breitengrade des eigenen Standortes bestimmen. +Was ein Sextant und ein Jahrbuch ist, wird im Abschnitt 21.6.3 erklärt. +\begin{figure} + \begin{center} + \includegraphics[width=10cm]{papers/nav/bilder/dreieck.pdf} + \caption[Dreieck für die Standortbestimmung]{Dreieck für die Standortbestimmung} + \end{center} +\end{figure} + + + + +\subsection{Ecke $P$ und $A$} +Unser eigener Standort ist der gesuchte Ecke $P$ und die Ecke $A$ ist in unserem Fall der Nordpol. +Der Vorteil an der Idee des nautischen Dreiecks ist, dass eine Ecke immer der Nordpol ist. +Somit ist diese Ecke immer bekannt und nur deswegen sind die Zusammenhänge von Rektaszension, Sternzeit und Deklination so einfach. + +\subsection{Ecke $B$ und $C$ - Bildpunkt $X$ und $Y$} +Für die Standortermittlung benötigt man als weiteren Punkt ein Gestirn bzw. seinen Bildpunkt auf der Erdkugel. +Damit das trigonometrische Rechnen einfacher wird, werden hier zwei Gestirne zur Hilfe genommen. +Es gibt diverse Gestirne, die man nutzen kann wie zum Beispiel die Sonne, der Mond oder die vier Navigationsplaneten Venus, Mars, Jupiter und Saturn. + +Die Bildpunkte von den beiden Gestirnen $X$ und $Y$ bilden die beiden Ecken $B$ und $C$ im Dreieck der Abbildung 21.5. +\subsection{Ephemeriden} +Zu all diesen Gestirnen gibt es Ephemeriden. +Diese enthalten die Rektaszensionen und Deklinationen in Abhängigkeit von der Zeit. + +\begin{figure} + \begin{center} + \includegraphics[width=\textwidth]{papers/nav/bilder/ephe.png} + \caption[Nautical Almanac Mai 2002]{Nautical Almanac Mai 2002} + \end{center} +\end{figure} + +\subsubsection{Deklination} +Die Deklination $\delta$ beschreibt den Winkel zwischen dem Himmelsäquator und Gestirn und entspricht dem Breitengrad des Gestirns. + +\subsubsection{Rektaszension und Sternzeit} +Die Rektaszension $\alpha$ gibt an, in welchem Winkel das Gestirn zum Frühlingspunkt, welcher der Nullpunkt auf dem Himmelsäquator ist, steht und geht vom Koordinatensystem der Himmelskugel aus. + +Die Tatsache, dass sich die Himmelskugel ca. vier Minuten schneller um die eigene Achse dreht als die Erdkugel, stellt hier ein kleines Problem dar. +Die Lösung ist die Sternzeit. +Mit dieser können wir die schnellere Drehung der Himmelskugel ausgleichen und können die am Frühlingspunkt (21. März) 12:00 Uhr ist die Sternzeit $\theta = 0$. + +Die Sternzeit geht vom Frühlungspunkt aus, an welchem die Sonne den Himmelsäquator schneidet. +Für die Standortermittlung auf der Erdkugel ist es am einfachsten, wenn man die Sternzeit von Greenwich berechnet. +Für die Sternzeit von Greenwich $\theta$ braucht man als erstes das Julianische Datum $T$ vom aktuellen Tag, welches sich leicht nachschlagen lässt. +Im Anschluss berechnet man die Sternzeit von Greenwich + +\[\theta = 6^h 41^m 50^s,54841 + 8640184^s,812866 \cdot T + 0^s,093104 \cdot T^2 - 0^s,0000062 \cdot T^3.\] + +Wenn man die Sternzeit von Greenwich ausgerechnet hat, kann man den Längengrad des Gestirns $\lambda = \theta - \alpha$ bestimmen, wobei $\alpha$ die Rektaszension und $\theta$ die Sternzeit von Greenwich ist. +Dies gilt analog auch für das zweite Gestirn. +\subsubsection{Sextant} +Ein Sextant ist ein nautisches Messinstrument, mit dem man den Winkel zwischen der Blickrichtung zu weit entfernten Objekten bestimmen kann. Es wird vor allem der Winkelabstand zu Gestirnen gemessen. +Man benutzt ihn vor allem für die astronomische Navigation auf See. + +\begin{figure} + \begin{center} + \includegraphics[width=10cm]{papers/nav/bilder/sextant.jpg} + \caption[Sextant]{Sextant} + \end{center} +\end{figure} +\subsubsection{Eingeschaften} +Für das nautische Dreieck gibt es folgende Eigenschaften: +\begin{center} + \begin{tabular}{ l c l } + Legende && Name / Beziehung \\ + \hline + $\alpha$ && Rektaszension \\ + $\delta$ && Deklination \\ + $\theta$ && Sternzeit von Greenwich\\ + $\phi$ && Geographische Breite\\ + $\tau=\theta-\alpha$ && Stundenwinkel und Längengrad des Gestirns. \\ + $a$ && Azimut\\ + $h$ && Höhe + \end{tabular} +\end{center} +\begin{center} + \begin{tabular}{ l c l } + Eigenschaften \\ + \hline + Seitenlänge Zenit zu Himmelspol= && $\frac{\pi}{2} - \phi$ \\ + Seitenlänge Himmelspol zu Gestirn= && $\frac{\pi}{2} - \delta$ \\ + Seitenlänge Himmelspol zu Gestirn= && $\frac{\pi}{2} - h$ \\ + Winkel von Zenit zu Himmelsnordpol zu Gestirn= && $\pi-\alpha$\\ + Winkel von Himmelsnordpol zu Zenit zu Gestirn= && $\tau$\\ + \end{tabular} +\end{center} +\subsection{Bestimmung des eigenen Standortes $P$} +Nun hat man die Koordinaten der beiden Gestirne und man weiss die Koordinaten des Nordpols. +Damit wir unseren Standort bestimmen können, bilden wir zuerst das Dreieck $ABC$, dann das Dreieck $BPC$ und zum Schluss noch das Dreieck $ABP$. +Mithilfe dieser Dreiecken können wir die einfachen Sätze der sphärischen Trigonometrie anwenden und benötigen lediglich ein Ephemeride zu den Gestirnen und einen Sextant. + +\begin{figure} + \begin{center} + \includegraphics[width=8cm]{papers/nav/bilder/dreieck.pdf} + \caption[Dreieck für die Standortbestimmung]{Dreieck für die Standortbestimmung} + \end{center} +\end{figure} + + +\subsubsection{Dreieck $ABC$} + +\begin{center} + \begin{tabular}{ c c c } + Ecke && Name \\ + \hline + $A$ && Nordpol \\ + $B$ && Bildpunkt des Gestirns $X$ \\ + $C$&& Bildpunkt des Gestirns $Y$ + \end{tabular} +\end{center} + +Mit unserem erlangten Wissen können wir nun alle Seiten des Dreiecks $ABC$ berechnen. + +Die Seite vom Nordpol zum Bildpunkt $X$ sei $c$. +Dann ist $c = \frac{\pi}{2} - \delta_1$. + +Die Seite vom Nordpol zum Bildpunkt $Y$ sei $b$. +Dann ist $b = \frac{\pi}{2} - \delta_2$. + +Der Innenwinkel bei der Ecke, wo der Nordpol ist sei $\alpha$. +Dann ist $ \alpha = |\lambda_1 - \lambda_2|$. + +mit +\begin{center} + \begin{tabular}{ c c c } + Ecke && Name \\ + \hline + $\delta_1$ && Deklination vom Bildpunkt $X$ \\ + $\delta_2$ && Deklination vom Bildpunk $Y$ \\ + $\lambda_1 $&& Längengrad vom Bildpunkt $X$\\ + $\lambda_2$ && Längengrad vom Bildpunkt $Y$ + \end{tabular} +\end{center} + +Nun haben wir die beiden Seiten $c$ und $b$ und den Winkel $\alpha$, der sich zwischen diesen Seiten befindet. +Mithilfe des Seiten-Kosinussatzes +$\cos(a) = \cos(b)\cdot \cos(c) + \sin(b) \cdot \sin(c)\cdot \cos(\alpha)$ +können wir nun die dritte Seitenlänge bestimmen. +Es ist darauf zu achten, dass hier natürlich die Seitenlängen in Bogenmass sind und dementsprechend der Kosinus und Sinus verwendet wird. + +Jetzt fehlen noch die beiden anderen Innenwinkel $\beta$ und\ $\gamma$. +Diese bestimmen wir mithilfe des Sinussatzes \[\frac{\sin (a)}{\sin (\alpha)} =\frac{\sin (b)}{\sin (\beta)} = \frac{\sin (c)}{\sin (\gamma)}.\] +Hier muss man aufpassen, dass man Seite von Winkel unterscheiden kann. +Im Zähler sind die Seiten, im Nenner die Winkel. +Somit ist \[\beta =\sin^{-1} [\sin(b) \cdot \frac{\sin(\alpha)}{\sin(a)}].\] + +Schlussendlich haben wir die Seiten $a,b\ und \ c$, die Ecken A,B und C und die Winkel $\alpha$, $\beta$ und $\gamma$ bestimmt und somit das ganze Kugeldreieck $ABC$ berechnet. + +\subsubsection{Dreieck $BPC$} +Wir bilden nun ein zweites Dreieck, welches die Ecken $B$ und $C$ des ersten Dreiecks besitzt. +Die dritte Ecke ist der eigene Standort $P$. +Unser Standort definiere sich aus einer geographischen Breite $\delta$ und einer geographischen Länge $\lambda$. + +Die Seite von $P$ zu $B$ sei $pb$ und die Seite von $P$ zu $C$ sei $pc$. +Die beiden Seitenlängen kann man mit dem Sextant messen und durch eine einfache Formel bestimmen, nämlich $pb=\frac{\pi}{2} - h_{B}$ und $pc=\frac{\pi}{2} - h_{C}$ + +mit $h_B=$ Höhe von Gestirn in $B$ und $h_C=$ Höhe von Gestirn in $C$ mit Sextant gemessen. + +Zum Schluss müssen wir noch den Winkel $\beta_1$ mithilfe des Seiten-Kosinussatzes \[\cos(pb)=\cos(pc)\cdot\cos(a)+\sin(pc)\cdot\sin(a)\cdot\cos(\beta_1)\] mit den bekannten Seiten $pc$, $pb$ und $a$ bestimmen. +\subsubsection{Dreieck $ABP$} +Nun muss man eine Verbindungslinie ziehen zwischen $P$ und $A$. Die Länge $l$ dieser Linie entspricht der gesuchten geographischen Breite $\delta$. Diese lässt sich mithilfe des Dreiecks $ABP$, den bekannten Seiten $c$ und $pb$ und des Seiten-Kosinussatzes berechnen. +Für den Seiten-Kosinussatz benötigt es noch $\kappa=\beta + \beta_1$. +Somit ist \[\cos(l) = \cos(c)\cdot \cos(pb) + \sin(c) \cdot \sin(pb) \cdot \cos(\kappa)\] +und +\[ +\delta =\cos^{-1} [\cos(c) \cdot \cos(pb) + \sin(c) \cdot \sin(pb) \cdot \cos(\kappa)]. +\] + +Für die Geographische Länge $\lambda$ des eigenen Standortes muss man den Winkel $\omega$, welcher sich im Dreieck $ACP$ in der Ecke bei $A$ befindet. +Mithilfe des Sinussatzes \[\frac{\sin (a)}{\sin (\alpha)} =\frac{\sin (b)}{\sin (\beta)} = \frac{\sin (c)}{\sin (\gamma)}\] können wir das bestimmen. +Somit ist \[ \omega=\sin^{-1}[\sin(pc) \cdot \frac{\sin(\gamma)}{\sin(l)}] \]und unsere gesuchte geographische Länge schlussendlich +\[\lambda=\lambda_1 - \omega\] +wobei $\lambda_1$ die Länge des Bildpunktes $X$ von $C$ ist. diff --git a/buch/papers/nav/packages.tex b/buch/papers/nav/packages.tex index 9faa48d..f2e6132 100644 --- a/buch/papers/nav/packages.tex +++ b/buch/papers/nav/packages.tex @@ -8,3 +8,5 @@ % following example %\usepackage{packagename} +\usepackage{amsmath} +\usepackage{cancel}
\ No newline at end of file diff --git a/buch/papers/nav/sincos.tex b/buch/papers/nav/sincos.tex new file mode 100644 index 0000000..a1653e8 --- /dev/null +++ b/buch/papers/nav/sincos.tex @@ -0,0 +1,23 @@ + + + +\section{Sphärische Navigation und Winkelfunktionen} +Es gibt Hinweise, dass sich schon die Babylonier und Ägypter vor 4000 Jahren sich mit Problemen der sphärischen Trigonometrie beschäftigt haben um den Lauf von Gestirnen zu berechnen. +Jedoch konnten sie dieses Problem nicht lösen. + +Die Geschichte der sphärischen Trigonometrie ist daher eng mit der Astronomie verknüpft. Ca. 350 vor Christus dachten die Griechen über Kugelgeometrie nach und sie wurde zu einer Hilfswissenschaft der Astronomen. +Zwischen 190 v. Chr. und 120 v. Chr. lebte ein griechischer Astronom names Hipparchos. +Dieser entwickelte unter anderem die Chordentafeln, welche die Chord - Funktionen, auch Chord genannt, beinhalten und im Abschnitt 3.1.1 beschrieben sind. +Chord ist der Vorgänger der Sinusfunktion und galt damals als wichtigste Grundlage der Trigonometrie. +In dieser Zeit wurden auch die ersten Sternenkarten angefertigt. Damals kannte man die Sinusfunktionen noch nicht. + +Aus Indien stammten die ersten Ansätze zu den Kosinussätzen. +Aufbauend auf den indischen und griechischen Forschungen entwickeln die Araber um das 9. Jahrhundert den Sinussatz. +Die Definition der trigonometrischen Funktionen ermöglicht nur, rechtwinklige Dreiecke zu berechnen. +Die Beziehung zwischen Seiten und Winkeln sind komplizierter und als Sinus- und Kosinussätze bekannt. +Doch ein paar weitere Jahrhunderte vergingen bis zu diesem Thema wieder verstärkt Forschung betrieben wurde, da im 15. Jahrhundert grosse Entdeckungsreisen, hauptsächlich per Schiff, erfolgten und die Orientierung mit Sternen vermehrt an Wichtigkeit gewann. +Man nutzte für die Kartographie nun die Kugelgeometrie, um die Genauigkeit zu erhöhen. +Der Sinussatz, die Tangensfunktion und der neu entwickelte Seitenkosinussatz wurden in dieser Zeit bereits verwendet und im darauffolgenden Jahrhundert folgte der Winkelkosinussatz. + +Durch weitere mathematische Entwicklungen wie den Logarithmus wurden im Laufe des nächsten Jahrhunderts viele neue Methoden und kartographische Anwendungen der Kugelgeometrie entdeckt. +Im 19. und 20. Jahrhundert wurden weitere nicht-euklidische Geometrien entwickelt und die sphärische Trigonometrie fand auch ihre Anwendung in der Relativitätstheorie.
\ No newline at end of file diff --git a/buch/papers/nav/teil3.tex b/buch/papers/nav/teil3.tex deleted file mode 100644 index 2b5d2d5..0000000 --- a/buch/papers/nav/teil3.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil3.tex -- Beispiel-File für Teil 3 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 3 -\label{nav:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{nav:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/nav/trigo.tex b/buch/papers/nav/trigo.tex new file mode 100644 index 0000000..aca8bd2 --- /dev/null +++ b/buch/papers/nav/trigo.tex @@ -0,0 +1,133 @@ + +\section{Sphärische Trigonometrie} +\subsection{Das Kugeldreieck} +Damit man die Definition des Kugeldreiecks versteht, müssen wir zuerst Begriffe wie Grosskreisebene und Grosskreisbögen verstehen. +Ein Grosskreis ist ein grösstmöglicher Kreis auf einer Kugeloberfläche. +Sein Mittelpunkt fällt immer mit dem Mittelpunkt der Kugel zusammen und ein Schnitt auf dem Großkreis teilt die Kugel in jedem Fall in zwei gleich grosse Hälften. +Da es unendlich viele Möglichkeiten gibt, eine Kugel so zu zerschneiden, dass die Schnittebene den Kugelmittelpunkt trifft, gibt es auch unendlich viele Grosskreise. +Grosskreisbögen sind die kürzesten Verbindungslinien zwischen zwei Punkten auf der Kugel. + +Werden drei voneinander verschiedene Punkte, die sich nicht auf derselben Grosskreisebene befinden, mit Grosskreisbögen verbunden werden, so entsteht ein Kugeldreieck $ABC$. +Für ein Kugeldreieck gilt, dass die Summe der drei Seiten kleiner als $2\pi$ aber grösser als 0 ist. +$A$, $B$ und $C$ sind die Ecken des Dreiecks und dessen Seiten sind die Grosskreisbögen zwischen den Eckpunkten (siehe Abbildung 21.2). + +Da die Länge der Grosskreisbögen wegen der Abhängigkeit vom Kugelradius ungeeignet ist, wird die Grösse einer Seite mit dem zugehörigen Mittelpunktwinkel des Grosskreisbogens angegeben. +Laut dieser Definition ist die Seite $c$ der Winkel $AMB$, wobei der Punkt $M$ die Erdmitte ist. + +Man kann bei Kugeldreiecken nicht so einfach unterscheiden, was Innen oder Aussen ist. +Wenn man drei Eckpunkte miteinander verbindet, ergeben sich immer 16 Kugeldreiecke. + +\begin{figure} + \begin{center} + \includegraphics[width=6cm]{papers/nav/bilder/kugel1.png} + \caption[Das Kugeldreieck]{Das Kugeldreieck} + \end{center} + +\end{figure} + +\subsection{Rechtwinkliges Dreieck und rechtseitiges Dreieck} +In der sphärischen Trigonometrie gibt es eine Symetrie zwischen Seiten und Winkel, also zu jedem Satz über Seiten und Winkel gibt es einen entsprechenden Satz, mit dem man Winkel durch Seiten und Seiten durch Winkel ersetzt hat. + +Wie auch im ebenen Dreieck gibt es beim Kugeldreieck auch ein rechtwinkliges Kugeldreieck, bei dem ein Winkel $\frac{\pi}{2}$ ist. +Ein Rechtseitiges Dreieck gibt es jedoch nur beim Kugeldreieck, weil dort eine Seitenlänge $\frac{\pi}{2}$ lang sein muss, wie man in der Abbildung 21.3 sehen kann. + +\begin{figure} + + \begin{center} + \includegraphics[width=10cm]{papers/nav/bilder/recht.jpg} + \caption[Rechtseitiges Kugeldreieck]{Rechtseitiges Kugeldreieck} + \end{center} +\end{figure} + +\subsection{Winkelsumme und Flächeninhalt} +\begin{figure} + + \begin{center} + \includegraphics[width=8cm]{papers/nav/bilder/kugel2.png} + \caption[Winkelangabe im Kugeldreieck]{Winkelangabe im Kugeldreieck} + \end{center} +\end{figure} + + +Die Winkel eines Kugeldreiecks sind die, welche die Halbtangenten in den Eckpunkten einschliessen. +Für die Summe der Innenwinkel gilt +\begin{align} + \alpha+\beta+\gamma &= \frac{F}{r^2} + \pi \quad \text{und} \quad \alpha+\beta+\gamma > \pi, \nonumber +\end{align} +wobei $F$ der Flächeninhalt des Kugeldreiecks ist. +\subsubsection{Sphärischer Exzess} +Der sphärische Exzess +\begin{align} + \epsilon = \alpha+\beta+\gamma - \pi \nonumber +\end{align} +beschreibt die Abweichung der Innenwinkelsumme von $\pi$ und ist proportional zum Flächeninhalt des Kugeldreiecks. + +\subsubsection{Flächeninnhalt} +Mithilfe des Radius $r$ und dem sphärischen Exzess $\epsilon$ gilt für den Flächeninhalt +\[ F=\frac{\pi \cdot r^2}{\frac{\pi}{2}} \cdot \epsilon\]. + +\subsection{Seiten und Winkelberechnung} +Es gibt in der sphärischen Trigonometrie eigentlich gar keinen Satz des Pythagoras, wie man ihn aus der zweidimensionalen Geometrie kennt. +Es gibt aber auch einen Satz, der alle drei Seiten eines rechtwinkligen Kugeldreiecks, nicht aber für das rechtseitige Kugeldreieck, in eine Beziehung bringt und zum jetzigen Punkt noch unklar ist, weshalb dieser Satz so aussieht. +Die Approximation folgt noch. +Es gilt nämlich: +\begin{align} + \cos c = \cos a \cdot \cos b \quad \text{wenn} \nonumber & + \quad \alpha = \frac{\pi}{2} \nonumber +\end{align} + +\subsubsection{Approximation von kleinen Dreiecken} +Die Sätze in der ebenen Trigonometrie sind eigentlich Approximationen der sphärischen Trigonometrie. +So ist der Sinussatz in der Ebene nur eine Annäherung des sphärischen Sinussatzes. Das Gleiche gilt für den Kosinussatz und dem Satz des Pythagoras. +So kann mit dem Taylorpolynom 2. Grades den Sinus und den Kosinus vom Sphärischen in die Ebene approximieren: +\begin{align} + \sin(a) &\approx a \nonumber \intertext{und} + \cos(a)&\approx 1-\frac{a^2}{2}.\nonumber +\end{align} +Es gibt ebenfalls folgende Approximierung der Seiten von der Sphäre in die Ebene: +\begin{align} + a &\approx \sin(a) \nonumber \intertext{und} + a^2 &\approx 1-\cos(a). \nonumber +\end{align} +Die Korrespondenzen zwischen der ebenen- und sphärischen Trigonometrie werden in den kommenden Abschnitten erläutert. + +\subsubsection{Sphärischer Satz des Pythagoras} +Die Korrespondenz \[ a^2 \approx 1-cos(a)\] liefert unter Anderem einen entsprechenden Satz des Pythagoras, nämlich + +\begin{align} + \cos(a)\cdot \cos(b) &= \cos(c) \\ + \bigg[1-\frac{a^2}{2}\bigg] \cdot \bigg[1-\frac{b^2}{2}\bigg] &= 1-\frac{c^2}{2} \\ + \xcancel{1}- \frac{a^2}{2} - \frac{b^2}{2} + \xcancel{\frac{a^2b^2}{4}}&= \xcancel{1}- \frac{c^2}{2} \intertext{Höhere Potenzen vernachlässigen} + -a^2-b^2 &=-c^2\\ + a^2+b^2&=c^2 +\end{align} + +\subsubsection{Sphärischer Sinussatz} +Den sphärischen Sinussatz +\begin{align} + \frac{\sin (a)}{\sin (\alpha)} =\frac{\sin (b)}{\sin (\beta)} = \frac{\sin (c)}{\sin (\gamma)} \nonumber +\end{align} +kann man ebenfalls mit der Korrespondenz \[a \approx \sin(a) \] zum entsprechenden ebenen Sinussatz \[\frac{a}{\sin (\alpha)} =\frac{b}{\sin (\beta)} = \frac{c}{\sin (\gamma)}\] approximieren. + + +\subsubsection{Sphärische Kosinussätze} +In der sphärischen Trigonometrie gibt es den Seitenkosinussatz +\begin{align} + \cos \ a = \cos b \cdot \cos c + \sin b \cdot \sin c \cdot \cos \alpha \nonumber +\end{align} %Seitenkosinussatz +und den Winkelkosinussatz + +\begin{align} + \cos \gamma = -\cos \alpha \cdot \cos \beta + \sin \alpha \cdot \sin \beta \cdot \cos c, \nonumber +\end{align} der nur in der sphärischen Trigonometrie vorhanden ist. + +Analog gibt es auch beim Seitenkosinussatz eine Korrespondenz zu \[ a^2 \leftrightarrow 1-\cos(a),\] die den ebenen Kosinussatz herleiten lässt, nämlich +\begin{align} + \cos(a)&= \cos(b)\cdot \cos(c) + \sin(b) \cdot \sin(c)\cdot \cos(\alpha) \\ + 1-\frac{a^2}{2} &= \bigg[1-\frac{b^2}{2}\bigg]\bigg[1-\frac{c^2}{2}\bigg]+bc\cdot\cos(\alpha) \\ + \xcancel{1}-\frac{a^2}{2} &= \xcancel{1}-\frac{b^2}{2}-\frac{c^2}{2} \xcancel{+\frac{b^2c^2}{4}}+bc \cdot \cos(\alpha)\intertext{Höhere Potenzen vernachlässigen} + a^2&=b^2+c^2-2bc \cdot \cos(\alpha) +\end{align} + + +
\ No newline at end of file diff --git a/buch/papers/nlwave/Makefile b/buch/papers/nlwave/Makefile deleted file mode 100644 index d2c7958..0000000 --- a/buch/papers/nlwave/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -# -# Makefile -- make file for the paper nlwave -# -# (c) 2020 Prof Dr Andreas Mueller -# - -images: - @echo "no images to be created in nlwave" - diff --git a/buch/papers/nlwave/Makefile.inc b/buch/papers/nlwave/Makefile.inc deleted file mode 100644 index e9d59b2..0000000 --- a/buch/papers/nlwave/Makefile.inc +++ /dev/null @@ -1,14 +0,0 @@ -# -# Makefile.inc -- dependencies for this article -# -# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule -# -dependencies-nlwave = \ - papers/nlwave/packages.tex \ - papers/nlwave/main.tex \ - papers/nlwave/references.bib \ - papers/nlwave/teil0.tex \ - papers/nlwave/teil1.tex \ - papers/nlwave/teil2.tex \ - papers/nlwave/teil3.tex - diff --git a/buch/papers/nlwave/teil0.tex b/buch/papers/nlwave/teil0.tex deleted file mode 100644 index cbbf458..0000000 --- a/buch/papers/nlwave/teil0.tex +++ /dev/null @@ -1,22 +0,0 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 0\label{nlwave:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{nlwave:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. - - diff --git a/buch/papers/nlwave/teil1.tex b/buch/papers/nlwave/teil1.tex deleted file mode 100644 index f64aee9..0000000 --- a/buch/papers/nlwave/teil1.tex +++ /dev/null @@ -1,55 +0,0 @@ -% -% teil1.tex -- Beispiel-File für das Paper -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 1 -\label{nlwave:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{nlwave:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{nlwave:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. - -Et harum quidem rerum facilis est et expedita distinctio -\ref{nlwave:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{nlwave:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. - - diff --git a/buch/papers/nlwave/teil2.tex b/buch/papers/nlwave/teil2.tex deleted file mode 100644 index b93d8b4..0000000 --- a/buch/papers/nlwave/teil2.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil2.tex -- Beispiel-File für teil2 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 2 -\label{nlwave:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{nlwave:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/parzyl/Makefile b/buch/papers/parzyl/Makefile new file mode 100644 index 0000000..3578f26 --- /dev/null +++ b/buch/papers/parzyl/Makefile @@ -0,0 +1,9 @@ +# +# Makefile -- make file for the paper parzyl +# +# (c) 2020 Prof Dr Andreas Mueller +# + +images: + @echo "no images to be created in parzyl" + diff --git a/buch/papers/parzyl/Makefile.inc b/buch/papers/parzyl/Makefile.inc new file mode 100644 index 0000000..fc182e1 --- /dev/null +++ b/buch/papers/parzyl/Makefile.inc @@ -0,0 +1,14 @@ +# +# Makefile.inc -- dependencies for this article +# +# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +dependencies-parzyl = \ + papers/parzyl/packages.tex \ + papers/parzyl/main.tex \ + papers/parzyl/references.bib \ + papers/parzyl/teil0.tex \ + papers/parzyl/teil1.tex \ + papers/parzyl/teil2.tex \ + papers/parzyl/teil3.tex + diff --git a/buch/papers/nlwave/main.tex b/buch/papers/parzyl/main.tex index 12fccc2..ff21c9f 100644 --- a/buch/papers/nlwave/main.tex +++ b/buch/papers/parzyl/main.tex @@ -1,12 +1,12 @@ % -% main.tex -- Paper zum Thema <nlwave> +% main.tex -- Paper zum Thema <parzyl> % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:nlwave}} -\lhead{Thema} +\chapter{Parabolische Zylinderfunktionen\label{chapter:parzyl}} +\lhead{Parabolische Zylinderfunktionen} \begin{refsection} -\chapterauthor{Hans Muster} +\chapterauthor{Thierry Schwaller, Alain Keller} Ein paar Hinweise für die korrekte Formatierung des Textes \begin{itemize} @@ -27,10 +27,10 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. \end{itemize} -\input{papers/nlwave/teil0.tex} -\input{papers/nlwave/teil1.tex} -\input{papers/nlwave/teil2.tex} -\input{papers/nlwave/teil3.tex} +\input{papers/parzyl/teil0.tex} +\input{papers/parzyl/teil1.tex} +\input{papers/parzyl/teil2.tex} +\input{papers/parzyl/teil3.tex} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/nlwave/packages.tex b/buch/papers/parzyl/packages.tex index 7f5be16..f6844a6 100644 --- a/buch/papers/nlwave/packages.tex +++ b/buch/papers/parzyl/packages.tex @@ -1,5 +1,5 @@ % -% packages.tex -- packages required by the paper nlwave +% packages.tex -- packages required by the paper parzyl % % (c) 2019 Prof Dr Andreas Müller, Hochschule Rapperswil % diff --git a/buch/papers/nlwave/references.bib b/buch/papers/parzyl/references.bib index 976d046..494ff7c 100644 --- a/buch/papers/nlwave/references.bib +++ b/buch/papers/parzyl/references.bib @@ -1,10 +1,10 @@ % -% references.bib -- Bibliography file for the paper nlwave +% references.bib -- Bibliography file for the paper parzyl % % (c) 2020 Autor, Hochschule Rapperswil % -@online{nlwave:bibtex, +@online{parzyl:bibtex, title = {BibTeX}, url = {https://de.wikipedia.org/wiki/BibTeX}, date = {2020-02-06}, @@ -13,7 +13,7 @@ day = {6} } -@book{nlwave:numerical-analysis, +@book{parzyl:numerical-analysis, title = {Numerical Analysis}, author = {David Kincaid and Ward Cheney}, publisher = {American Mathematical Society}, @@ -23,7 +23,7 @@ volume = {2} } -@article{nlwave:mendezmueller, +@article{parzyl:mendezmueller, author = { Tabea Méndez and Andreas Müller }, title = { Noncommutative harmonic analysis and image registration }, journal = { Appl. Comput. Harmon. Anal.}, diff --git a/buch/papers/nav/teil0.tex b/buch/papers/parzyl/teil0.tex index f3323a9..09b4024 100644 --- a/buch/papers/nav/teil0.tex +++ b/buch/papers/parzyl/teil0.tex @@ -3,11 +3,11 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 0\label{nav:section:teil0}} +\section{Teil 0\label{parzyl:section:teil0}} \rhead{Teil 0} Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{nav:bibtex}. +erat, sed diam voluptua \cite{parzyl:bibtex}. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. diff --git a/buch/papers/nav/teil1.tex b/buch/papers/parzyl/teil1.tex index 996202f..9ea60e2 100644 --- a/buch/papers/nav/teil1.tex +++ b/buch/papers/parzyl/teil1.tex @@ -4,7 +4,7 @@ % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % \section{Teil 1 -\label{nav:section:teil1}} +\label{parzyl:section:teil1}} \rhead{Problemstellung} Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa @@ -19,7 +19,7 @@ voluptatem sequi nesciunt \left[ \frac13 x^3 \right]_a^b = \frac{b^3-a^3}3. -\label{nav:equation1} +\label{parzyl:equation1} \end{equation} Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora @@ -32,7 +32,7 @@ esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? \subsection{De finibus bonorum et malorum -\label{nav:subsection:finibus}} +\label{parzyl:subsection:finibus}} At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non @@ -40,11 +40,11 @@ provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. Et harum quidem rerum facilis est et expedita distinctio -\ref{nav:section:loesung}. +\ref{parzyl:section:loesung}. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus -\ref{nav:section:folgerung}. +\ref{parzyl:section:folgerung}. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. diff --git a/buch/papers/nav/teil2.tex b/buch/papers/parzyl/teil2.tex index 5a52e03..75ba259 100644 --- a/buch/papers/nav/teil2.tex +++ b/buch/papers/parzyl/teil2.tex @@ -4,7 +4,7 @@ % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % \section{Teil 2 -\label{nav:section:teil2}} +\label{parzyl:section:teil2}} \rhead{Teil 2} Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa @@ -22,7 +22,7 @@ consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? \subsection{De finibus bonorum et malorum -\label{nav:subsection:bonorum}} +\label{parzyl:subsection:bonorum}} At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non diff --git a/buch/papers/nlwave/teil3.tex b/buch/papers/parzyl/teil3.tex index c28424a..72c23ca 100644 --- a/buch/papers/nlwave/teil3.tex +++ b/buch/papers/parzyl/teil3.tex @@ -4,7 +4,7 @@ % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % \section{Teil 3 -\label{nlwave:section:teil3}} +\label{parzyl:section:teil3}} \rhead{Teil 3} Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa @@ -22,7 +22,7 @@ consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? \subsection{De finibus bonorum et malorum -\label{nlwave:subsection:malorum}} +\label{parzyl:subsection:malorum}} At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non diff --git a/buch/papers/transfer/main.tex b/buch/papers/transfer/main.tex index 2aae635..ed16998 100644 --- a/buch/papers/transfer/main.tex +++ b/buch/papers/transfer/main.tex @@ -3,29 +3,10 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:transfer}} +\chapter{Transferfunktionen\label{chapter:transfer}} \lhead{Thema} \begin{refsection} -\chapterauthor{Hans Muster} - -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} +\chapterauthor{Marc Benz} \input{papers/transfer/teil0.tex} \input{papers/transfer/teil1.tex} diff --git a/buch/papers/zeta/Makefile.inc b/buch/papers/zeta/Makefile.inc index 11c7697..14babe2 100644 --- a/buch/papers/zeta/Makefile.inc +++ b/buch/papers/zeta/Makefile.inc @@ -7,8 +7,7 @@ dependencies-zeta = \ papers/zeta/packages.tex \ papers/zeta/main.tex \ papers/zeta/references.bib \ - papers/zeta/teil0.tex \ - papers/zeta/teil1.tex \ - papers/zeta/teil2.tex \ - papers/zeta/teil3.tex + papers/zeta/einleitung.tex \ + papers/zeta/analytic_continuation.tex \ + papers/zeta/zeta_gamma.tex \ diff --git a/buch/papers/zeta/analytic_continuation.tex b/buch/papers/zeta/analytic_continuation.tex new file mode 100644 index 0000000..0ccc116 --- /dev/null +++ b/buch/papers/zeta/analytic_continuation.tex @@ -0,0 +1,477 @@ +\section{Analytische Fortsetzung} \label{zeta:section:analytische_fortsetzung} +\rhead{Analytische Fortsetzung} + +Die analytische Fortsetzung der Riemannschen Zetafunktion ist äusserst interessant. +Sie ermöglicht die Berechnung von $\zeta(-1)$ und weiterer spannender Werte. +So liegen zum Beispiel unendlich viele Nullstellen der Zetafunktion bei $\Re(s) = 0.5$. +Diese sind relevant für die Primzahlverteilung und sind Gegenstand der Riemannschen Vermutung. + +Es werden zwei verschiedene Fortsetzungen benötigt. +Die erste erweitert die Zetafunktion auf $\Re(s) > 0$. +Die zweite verwendet eine Spiegelung an der $\Re(s) = 0.5$ Linie und erschliesst damit die ganze komplexe Ebene. +Eine grafische Darstellung dieses Plans ist in Abbildung \ref{zeta:fig:continuation_overview} zu sehen. +\begin{figure} + \centering + \input{papers/zeta/continuation_overview.tikz.tex} + \caption{ + Die verschiedenen Abschnitte der Riemannschen Zetafunktion. + Die originale Definition von \eqref{zeta:equation1} ist im grünen Bereich gültig. + Für den blauen Bereich gilt \eqref{zeta:equation:fortsetzung1}. + Um den roten Bereich zu bekommen verwendet die Funktionalgleichung \eqref{zeta:equation:functional} eine Spiegelung an $\Re(s) = 0.5$. + } + \label{zeta:fig:continuation_overview} +\end{figure} + +\subsection{Fortsetzung auf $\Re(s) > 0$} \label{zeta:subsection:auf_bereich_ge_0} +Zuerst definieren die Dirichletsche Etafunktion als +\begin{equation}\label{zeta:equation:eta} + \eta(s) + = + \sum_{n=1}^{\infty} + \frac{(-1)^{n-1}}{n^s}, +\end{equation} +wobei die Reihe bis auf die alternierenden Vorzeichen die selbe wie in der Zetafunktion ist. +Diese Etafunktion konvergiert gemäss dem Leibnitz-Kriterium im Bereich $\Re(s) > 0$, da dann die einzelnen Glieder monoton fallend sind. + +Wenn wir es nun schaffen, die sehr ähnliche Zetafunktion durch die Etafunktion auszudrücken, dann haben die gesuchte Fortsetzung. +Zuerst wiederholen wir zweimal die Definition der Zetafunktion \eqref{zeta:equation1}, wobei wir sie einmal durch $2^{s-1}$ teilen +\begin{align} + \zeta(s) + &= + \sum_{n=1}^{\infty} + \frac{1}{n^s} \label{zeta:align1} + \\ + \frac{1}{2^{s-1}} + \zeta(s) + &= + \sum_{n=1}^{\infty} + \frac{2}{(2n)^s}. \label{zeta:align2} +\end{align} +Durch Subtraktion der beiden Gleichungen \eqref{zeta:align1} minus \eqref{zeta:align2}, ergibt sich +\begin{align} + \left(1 - \frac{1}{2^{s-1}} \right) + \zeta(s) + &= + \frac{1}{1^s} + \underbrace{-\frac{2}{2^s} + \frac{1}{2^s}}_{-\frac{1}{2^s}} + + \frac{1}{3^s} + \underbrace{-\frac{2}{4^s} + \frac{1}{4^s}}_{-\frac{1}{4^s}} + \ldots + \\ + &= \eta(s). +\end{align} +Dies ist die Fortsetzung auf den noch unbekannten Bereich $0 < \Re(s) < 1$ +\begin{equation} \label{zeta:equation:fortsetzung1} + \zeta(s) + := + \left(1 - \frac{1}{2^{s-1}} \right)^{-1} \eta(s). +\end{equation} + +\subsection{Fortsetzung auf ganz $\mathbb{C}$} \label{zeta:subsection:auf_ganz} +Für die Fortsetzung auf den Rest von $\mathbb{C}$, verwenden wir den Zusammenhang von Gamma- und Zetafunktion aus \ref{zeta:section:zusammenhang_mit_gammafunktion}. +Wir beginnen damit, die Gammafunktion für den halben Funktionswert zu berechnen als +\begin{equation} + \Gamma \left( \frac{s}{2} \right) + = + \int_0^{\infty} t^{\frac{s}{2}-1} e^{-t} dt. +\end{equation} +Nun substituieren wir $t$ mit $t = \pi n^2 x$ und $dt=\pi n^2 dx$ und erhalten +\begin{equation} + \Gamma \left( \frac{s}{2} \right) + = + \int_0^{\infty} + (\pi n^2)^{\frac{s}{2}} + x^{\frac{s}{2}-1} + e^{-\pi n^2 x} + \,dx. +\end{equation} +Analog zum Abschnitt \ref{zeta:section:zusammenhang_mit_gammafunktion} teilen wir durch $(\pi n^2)^{\frac{s}{2}}$ +\begin{equation} + \frac{\Gamma \left( \frac{s}{2} \right)}{\pi^{\frac{s}{2}} n^s} + = + \int_0^{\infty} + x^{\frac{s}{2}-1} + e^{-\pi n^2 x} + \,dx, +\end{equation} +und finden Zeta durch die Summenbildung $\sum_{n=1}^{\infty}$ +\begin{equation} + \frac{\Gamma \left( \frac{s}{2} \right)}{\pi^{\frac{s}{2}}} + \zeta(s) + = + \int_0^{\infty} + x^{\frac{s}{2}-1} + \sum_{n=1}^{\infty} + e^{-\pi n^2 x} + \,dx. \label{zeta:equation:integral1} +\end{equation} +Die Summe kürzen wir ab als $\psi(x) = \sum_{n=1}^{\infty} e^{-\pi n^2 x}$. +Im Abschnitt \ref{zeta:subsec:poisson_summation} wird die poissonsche Summenformel $\sum f(n) = \sum F(n)$ bewiesen. +In unserem Problem ist $f(n) = e^{-\pi n^2 x}$ und die zugehörige Fouriertransformation $F(n)$ ist +\begin{equation} + F(n) + = + \mathcal{F} + ( + e^{-\pi n^2 x} + ) + = + \frac{1}{\sqrt{x}} + e^{\frac{-n^2 \pi}{x}}. +\end{equation} +Dadurch ergibt sich +\begin{equation}\label{zeta:equation:psi} + \sum_{n=-\infty}^{\infty} + e^{-\pi n^2 x} + = + \frac{1}{\sqrt{x}} + \sum_{n=-\infty}^{\infty} + e^{\frac{-n^2 \pi}{x}}, +\end{equation} +wobei wir die Summen so verändern müssen, dass sie bei $n=1$ beginnen und wir $\psi(x)$ erhalten als +\begin{align} + 2 + \sum_{n=1}^{\infty} + e^{-\pi n^2 x} + + + 1 + &= + \frac{1}{\sqrt{x}} + \left( + 2 + \sum_{n=1}^{\infty} + e^{\frac{-n^2 \pi}{x}} + + + 1 + \right) + \\ + 2 + \psi(x) + + + 1 + &= + \frac{1}{\sqrt{x}} + \left( + 2 + \psi\left(\frac{1}{x}\right) + + + 1 + \right) + \\ + \psi(x) + &= + - \frac{1}{2} + + \frac{\psi\left(\frac{1}{x} \right)}{\sqrt{x}} + + \frac{1}{2 \sqrt{x}}.\label{zeta:equation:psi} +\end{align} +Diese Gleichung wird später wichtig werden. + +Zunächst teilen wir nun das Integral aus \eqref{zeta:equation:integral1} auf als +\begin{equation}\label{zeta:equation:integral2} + \int_0^{\infty} + x^{\frac{s}{2}-1} + \psi(x) + \,dx + = + \underbrace{ + \int_0^{1} + x^{\frac{s}{2}-1} + \psi(x) + \,dx + }_{I_1} + + + \underbrace{ + \int_1^{\infty} + x^{\frac{s}{2}-1} + \psi(x) + \,dx + }_{I_2} + = + I_1 + I_2, +\end{equation} +wobei wir uns nun auf den ersten Teil $I_1$ konzentrieren werden. +Dabei setzen wir die Definition von $\psi(x)$ aus \eqref{zeta:equation:psi} ein und erhalten +\begin{align} + I_1 + = + \int_0^{1} + x^{\frac{s}{2}-1} + \psi(x) + \,dx + &= + \int_0^{1} + x^{\frac{s}{2}-1} + \left( + - \frac{1}{2} + + \frac{\psi\left(\frac{1}{x} \right)}{\sqrt{x}} + + \frac{1}{2 \sqrt{x}} + \right) + \,dx + \\ + &= + \int_0^{1} + x^{\frac{s}{2}-\frac{3}{2}} + \psi \left( \frac{1}{x} \right) + + \frac{1}{2} + \biggl( + x^{\frac{s}{2}-\frac{3}{2}} + - + x^{\frac{s}{2}-1} + \biggl) + \,dx + \\ + &= + \underbrace{ + \int_0^{1} + x^{\frac{s}{2}-\frac{3}{2}} + \psi \left( \frac{1}{x} \right) + \,dx + }_{I_3} + + + \underbrace{ + \frac{1}{2} + \int_0^1 + x^{\frac{s}{2}-\frac{3}{2}} + - + x^{\frac{s}{2}-1} + \,dx + }_{I_4}. \label{zeta:equation:integral3} +\end{align} +Dabei kann das zweite Integral $I_4$ gelöst werden als +\begin{equation} + I_4 + = + \frac{1}{2} + \int_0^1 + x^{\frac{s}{2}-\frac{3}{2}} + - + x^{\frac{s}{2}-1} + \,dx + = + \frac{1}{s(s-1)}. +\end{equation} +Das erste Integral $I_3$ aus \eqref{zeta:equation:integral3} mit $\psi \left(\frac{1}{x} \right)$ ist nicht lösbar in dieser Form. +Deshalb substituieren wir $x = \frac{1}{u}$ und $dx = -\frac{1}{u^2}du$. +Die untere Integralgrenze wechselt ebenfalls zu $x_0 = 0 \rightarrow u_0 = \infty$. +Dies ergibt +\begin{align} + I_3 + = + \int_{\infty}^{1} + \left( + \frac{1}{u} + \right)^{\frac{s}{2}-\frac{3}{2}} + \psi(u) + \frac{-du}{u^2} + &= + \int_{1}^{\infty} + \left( + \frac{1}{u} + \right)^{\frac{s}{2}-\frac{3}{2}} + \psi(u) + \frac{du}{u^2} + \\ + &= + \int_{1}^{\infty} + x^{(-1) \left(\frac{s}{2}+\frac{1}{2}\right)} + \psi(x) + \,dx, +\end{align} +wobei wir durch Multiplikation mit $(-1)$ die Integralgrenzen tauschen dürfen. +Es ist zu beachten das diese Grenzen nun identisch mit den Grenzen des zweiten Integrals von \eqref{zeta:equation:integral2} sind. +Wir setzen beide Lösungen ein in Gleichung \eqref{zeta:equation:integral3} und erhalten +\begin{equation} + I_1 + = + \int_0^{1} + x^{\frac{s}{2}-1} + \psi(x) + \,dx + = + \int_{1}^{\infty} + x^{(-1) \left(\frac{s}{2}+\frac{1}{2}\right)} + \psi(x) + \,dx + + + \frac{1}{s(s-1)}. +\end{equation} +Dieses Resultat setzen wir wiederum ein in \eqref{zeta:equation:integral2}, um schlussendlich +\begin{align} + \frac{\Gamma \left( \frac{s}{2} \right)}{\pi^{\frac{s}{2}}} + \zeta(s) + &= + \int_0^{1} + x^{\frac{s}{2}-1} + \psi(x) + \,dx + + + \int_1^{\infty} + x^{\frac{s}{2}-1} + \psi(x) + \,dx + \nonumber + \\ + &= + \frac{1}{s(s-1)} + + + \int_{1}^{\infty} + x^{(-1) \left(\frac{s}{2}+\frac{1}{2}\right)} + \psi(x) + \,dx + + + \int_1^{\infty} + x^{\frac{s}{2}-1} + \psi(x) + \,dx + \\ + &= + \frac{1}{s(s-1)} + + + \int_{1}^{\infty} + \left( + x^{-\frac{s}{2}-\frac{1}{2}} + + + x^{\frac{s}{2}-1} + \right) + \psi(x) + \,dx + \\ + &= + \frac{-1}{s(1-s)} + + + \int_{1}^{\infty} + \left( + x^{\frac{1-s}{2}} + + + x^{\frac{s}{2}} + \right) + \frac{\psi(x)}{x} + \,dx, +\end{align} +zu erhalten. +Wenn wir dieses Resultat genau anschauen, erkennen wir dass sich nichts verändert wenn $s$ mit $1-s$ ersetzt wird. +Somit haben wir die analytische Fortsetzung gefunden als +\begin{equation}\label{zeta:equation:functional} + \frac{\Gamma \left( \frac{s}{2} \right)}{\pi^{\frac{s}{2}}} + \zeta(s) + = + \frac{\Gamma \left( \frac{1-s}{2} \right)}{\pi^{\frac{1-s}{2}}} + \zeta(1-s). +\end{equation} +%TODO Definitionen und Gleichungen klarer unterscheiden + +\subsection{Poissonsche Summenformel} \label{zeta:subsec:poisson_summation} + +Der Beweis für Gleichung \ref{zeta:equation:psi} folgt direkt durch die poissonsche Summenformel. +Um diese zu beweisen, berechnen wir zunächst die Fourierreihe der Dirac Delta Funktion. + +\begin{lemma} + Die Fourierreihe der periodischen Dirac Delta Funktion $\sum \delta(x - 2\pi k)$ ist + \begin{equation} \label{zeta:equation:fourier_dirac} + \sum_{k=-\infty}^{\infty} + \delta(x - 2\pi k) + = + \frac{1}{2\pi} + \sum_{n=-\infty}^{\infty} + e^{i n x}. + \end{equation} +\end{lemma} + +\begin{proof}[Beweis] + Eine Fourierreihe einer beliebigen periodischen Funktion $f(x)$ berechnet sich als + \begin{align} + f(x) + &= + \sum_{n=-\infty}^{\infty} + c_n + e^{i n x} \\ + c_n + &= + \frac{1}{2\pi} + \int_{-\pi}^{\pi} + f(x) + e^{-i n x} + \, dx. + \end{align} + Wenn $f(x)=\delta(x)$ eingesetz wird ergeben sich konstante Koeffizienten + \begin{equation} + c_n + = + \frac{1}{2\pi} + \int_{-\pi}^{\pi} + \delta(x) + e^{-i n x} + \, dx + = + \frac{1}{2\pi}, + \end{equation} + womit die sehr einfache Fourierreihe der Dirac Delta Funktion berechnet wäre. +\end{proof} + +\begin{satz}[Poissonsche Summernformel] + Die Summe einer Funktion $f(n)$ über alle ganzen Zahlen $n$ ist äquivalent zur Summe ihrer Fouriertransformation $F(k)$ über alle ganzen Zahlen $k$ + \begin{equation} + \sum_{n=-\infty}^{\infty} + f(n) + = + \sum_{k=-\infty}^{\infty} + F(k). + \end{equation} +\end{satz} + +\begin{proof}[Beweis] + Wir schreiben die Summe über die Fouriertransformation aus + \begin{align} + \sum_{k=-\infty}^{\infty} + F(k) + &= + \sum_{k=-\infty}^{\infty} + \int_{-\infty}^{\infty} + f(x) + e^{-i 2\pi x k} + \, dx + \\ + &= + \int_{-\infty}^{\infty} + f(x) + \underbrace{ + \sum_{k=-\infty}^{\infty} + e^{-i 2\pi x k} + }_{\text{\eqref{zeta:equation:fourier_dirac}}} + \, dx, + \end{align} + und verwenden die Fouriertransformation der Dirac Funktion aus \eqref{zeta:equation:fourier_dirac} + \begin{align} + \sum_{k=-\infty}^{\infty} + e^{-i 2\pi x k} + &= + 2 \pi + \sum_{k=-\infty}^{\infty} + \delta(-2\pi x - 2\pi k) + \\ + &= + \frac{2 \pi}{2 \pi} + \sum_{k=-\infty}^{\infty} + \delta(x + k). + \end{align} + Wenn wir dies einsetzen und erhalten wir den gesuchten Beweis für die poissonsche Summenformel + \begin{equation} + \sum_{k=-\infty}^{\infty} + F(k) + = + \int_{-\infty}^{\infty} + f(x) + \sum_{k=-\infty}^{\infty} + \delta(x + k) + \, dx + = + \sum_{k=-\infty}^{\infty} + \int_{-\infty}^{\infty} + f(x) + \delta(x + k) + \, dx + = + \sum_{k=-\infty}^{\infty} + f(k). + \end{equation} +\end{proof} diff --git a/buch/papers/zeta/continuation_overview.tikz.tex b/buch/papers/zeta/continuation_overview.tikz.tex new file mode 100644 index 0000000..836ab1d --- /dev/null +++ b/buch/papers/zeta/continuation_overview.tikz.tex @@ -0,0 +1,18 @@ +\begin{tikzpicture}[>=stealth', auto, node distance=0.9cm, scale=2, + dot/.style={fill, circle, inner sep=0, minimum size=0.1cm}] + + \draw[->] (-2,0) -- (-1,0) node[dot]{} node[anchor=north]{$-1$} -- (0,0) node[anchor=north west]{$0$} -- (0.5,0) node[anchor=north west]{$0.5$}-- (1,0) node[anchor=north west]{$1$} -- (2,0) node[anchor=west]{$\Re(s)$}; + + \draw[->] (0,-1.2) -- (0,1.2) node[anchor=south]{$\Im(s)$}; + \begin{scope}[yscale=0.1] + \draw[] (1,-1) -- (1,1); + \end{scope} + \draw[dotted] (0.5,-1) -- (0.5,1); + + \begin{scope}[] + \fill[opacity=0.2, red] (-1.8,1) rectangle (0, -1); + \fill[opacity=0.2, blue] (0,1) rectangle (1, -1); + \fill[opacity=0.2, green] (1,1) rectangle (1.8, -1); + \end{scope} + +\end{tikzpicture} diff --git a/buch/papers/zeta/einleitung.tex b/buch/papers/zeta/einleitung.tex new file mode 100644 index 0000000..3b70531 --- /dev/null +++ b/buch/papers/zeta/einleitung.tex @@ -0,0 +1,11 @@ +\section{Einleitung} \label{zeta:section:einleitung} +\rhead{Einleitung} + +Die Riemannsche Zetafunktion ist für alle komplexe $s$ mit $\Re(s) > 1$ definiert als +\begin{equation}\label{zeta:equation1} + \zeta(s) + = + \sum_{n=1}^{\infty} + \frac{1}{n^s}. +\end{equation} + diff --git a/buch/papers/zeta/euler_product.tex b/buch/papers/zeta/euler_product.tex new file mode 100644 index 0000000..a6ed512 --- /dev/null +++ b/buch/papers/zeta/euler_product.tex @@ -0,0 +1,85 @@ +\section{Eulerprodukt} \label{zeta:section:eulerprodukt} +\rhead{Eulerprodukt} + +Das Eulerprodukt stellt die Verbindung der Zetafunktion und der Primzahlen her. +Diese Verbindung ist sehr wichtig, da durch sie eine Aussage zur Primzahlverteilung gemacht werden kann. +Die Verteilung der Primzahlen ist Gegenstand der Riemannschen Vermutung, welche eines der grössten ungelösten Probleme der Mathematik ist. + +\begin{satz} + Für alle Zahlen $s$ mit $\Re(s) > 1$ ist die Zetafunktion identisch mit dem unendlichen Eulerprodukt + \begin{equation}\label{zeta:eq:eulerprodukt} + \zeta(s) + = + \sum_{n=1}^\infty + \frac{1}{n^s} + = + \prod_{p \in P} + \frac{1}{1-p^{-s}} + \end{equation} + wobei $P$ die Menge aller Primzahlen darstellt. +\end{satz} + +\begin{proof}[Beweis] + Der Beweis startet mit dem Eulerprodukt und stellt dieses so um, dass die Zetafunktion erscheint. + Als erstes ersetzen wir die Faktoren durch geometrische Reihen + \begin{equation} + \prod_{i=1}^{\infty} + \frac{1}{1-p^{-s}} + = + \prod_{p \in P} + \sum_{k_i=0}^{\infty} + \left( + \frac{1}{p_i^s} + \right)^{k_i} + = + \prod_{p \in P} + \sum_{k_i=0}^{\infty} + \frac{1}{p_i^{s k_i}}, + \end{equation} + dabei iteriert der Index $i$ über alle Primzahlen $p_i$. + Durch Ausschreiben der Multiplikation und Ausklammern der Summen erhalten wir + \begin{align} + \prod_{p \in P} + \sum_{k_i=0}^{\infty} + \frac{1}{p_i^{s k_i}} + &= + \sum_{k_1=0}^{\infty} + \frac{1}{p_1^{s k_1}} + \sum_{k_2=0}^{\infty} + \frac{1}{p_2^{s k_2}} + \ldots + \nonumber \\ + &= + \sum_{k_1=0}^{\infty} + \sum_{k_2=0}^{\infty} + \ldots + \left( + \frac{1}{p_1^{k_1}} + \frac{1}{p_2^{k_2}} + \ldots + \right)^s. + \label{zeta:equation:eulerprodukt2} + \end{align} + Der Fundamentalsatz der Arithmetik (Primfaktorzerlegung) besagt, dass jede beliebige Zahl $n \in \mathbb{N}$ durch eine eindeutige Primfaktorzerlegung beschrieben werden kann + \begin{equation} + n = \prod_i p_i^{k_i} \quad \forall \quad n \in \mathbb{N}. + \end{equation} + Jeder Summand der Summen in \eqref{zeta:equation:eulerprodukt2} ist somit eine Zahl $n$. + Da die Summen alle möglichen Kombinationen von Exponenten und Primzahlen in \eqref{zeta:equation:eulerprodukt2} enthält haben wir + \begin{equation} + \sum_{k_1=0}^{\infty} + \sum_{k_2=0}^{\infty} + \ldots + \left( + \frac{1}{p_1^{k_1}} + \frac{1}{p_2^{k_2}} + \ldots + \right)^s + = + \sum_{n=1}^\infty + \frac{1}{n^s} + = + \zeta(s) + \end{equation} +\end{proof} + diff --git a/buch/papers/zeta/main.tex b/buch/papers/zeta/main.tex index 1d9e059..caddace 100644 --- a/buch/papers/zeta/main.tex +++ b/buch/papers/zeta/main.tex @@ -3,34 +3,17 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:zeta}} -\lhead{Thema} +\chapter{Riemannsche Zetafunktion\label{chapter:zeta}} +\lhead{Riemannsche Zetafunktion} \begin{refsection} -\chapterauthor{Hans Muster} +\chapterauthor{Raphael Unterer} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} +%TODO Einleitung -\input{papers/zeta/teil0.tex} -\input{papers/zeta/teil1.tex} -\input{papers/zeta/teil2.tex} -\input{papers/zeta/teil3.tex} +\input{papers/zeta/einleitung.tex} +\input{papers/zeta/euler_product.tex} +\input{papers/zeta/zeta_gamma.tex} +\input{papers/zeta/analytic_continuation.tex} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/zeta/teil0.tex b/buch/papers/zeta/teil0.tex deleted file mode 100644 index 56c0b1b..0000000 --- a/buch/papers/zeta/teil0.tex +++ /dev/null @@ -1,22 +0,0 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 0\label{zeta:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{zeta:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. - - diff --git a/buch/papers/zeta/teil1.tex b/buch/papers/zeta/teil1.tex deleted file mode 100644 index 4017ee8..0000000 --- a/buch/papers/zeta/teil1.tex +++ /dev/null @@ -1,55 +0,0 @@ -% -% teil1.tex -- Beispiel-File für das Paper -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 1 -\label{zeta:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{zeta:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{zeta:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. - -Et harum quidem rerum facilis est et expedita distinctio -\ref{zeta:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{zeta:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. - - diff --git a/buch/papers/zeta/teil2.tex b/buch/papers/zeta/teil2.tex deleted file mode 100644 index 9e8a96e..0000000 --- a/buch/papers/zeta/teil2.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil2.tex -- Beispiel-File für teil2 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 2 -\label{zeta:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{zeta:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/zeta/teil3.tex b/buch/papers/zeta/teil3.tex deleted file mode 100644 index 6610cc3..0000000 --- a/buch/papers/zeta/teil3.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil3.tex -- Beispiel-File für Teil 3 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 3 -\label{zeta:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{zeta:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/zeta/zeta_gamma.tex b/buch/papers/zeta/zeta_gamma.tex new file mode 100644 index 0000000..db41676 --- /dev/null +++ b/buch/papers/zeta/zeta_gamma.tex @@ -0,0 +1,61 @@ +\section{Zusammenhang mit der Gammafunktion} \label{zeta:section:zusammenhang_mit_gammafunktion} +\rhead{Zusammenhang mit der Gammafunktion} + +In diesem Abschnitt wird gezeigt, wie sich die Zetafunktion durch die Gammafunktion $\Gamma(s)$ ausdrücken lässt. +Dieser Zusammenhang der Art $\zeta(s) = f(\Gamma(s))$ ist nicht nur interessant, er wird später auch für die Herleitung der analytischen Fortsetzung gebraucht. + +Wir erinnern uns an die Definition der Gammafunktion in \eqref{buch:rekursion:gamma:integralbeweis} +\begin{equation*} + \Gamma(s) + = + \int_0^{\infty} t^{s-1} e^{-t} \,dt, +\end{equation*} +wobei die Notation an die Zetafunktion angepasst ist. +Durch die Substitution von $t$ mit $t = nu$ und $dt = n\,du$ wird daraus +\begin{align*} + \Gamma(s) + &= + \int_0^{\infty} n^{s-1}u^{s-1} e^{-nu} n \,du \\ + &= + \int_0^{\infty} n^s u^{s-1} e^{-nu} \,du. +\end{align*} +Durch Division mit durch $n^s$ ergibt sich die Quotienten +\begin{equation*} + \frac{\Gamma(s)}{n^s} + = + \int_0^{\infty} u^{s-1} e^{-nu} \,du, +\end{equation*} +welche sich zur Zetafunktion summieren +\begin{equation} + \sum_{n=1}^{\infty} \frac{\Gamma(s)}{n^s} + = + \Gamma(s) \zeta(s) + = + \int_0^{\infty} u^{s-1} + \sum_{n=1}^{\infty}e^{-nu} + \,du. + \label{zeta:equation:zeta_gamma1} +\end{equation} +Die Summe über $e^{-nu}$ können wir als geometrische Reihe schreiben und erhalten +\begin{align} + \sum_{n=1}^{\infty}\left(e^{-u}\right)^n + &= + \sum_{n=0}^{\infty}\left(e^{-u}\right)^n + - + 1 + \\ + &= + \frac{1}{1 - e^{-u}} - 1 + \\ + &= + \frac{1}{e^u - 1}. +\end{align} +Wenn wir dieses Resultat einsetzen in \eqref{zeta:equation:zeta_gamma1} und durch $\Gamma(s)$ teilen, erhalten wir den gewünschten Zusammenhang +\begin{equation}\label{zeta:equation:zeta_gamma_final} + \zeta(s) + = + \frac{1}{\Gamma(s)} + \int_0^{\infty} + \frac{u^{s-1}}{e^u -1} + du \qed +\end{equation} |