aboutsummaryrefslogtreecommitdiffstats
path: root/vorlesungen
diff options
context:
space:
mode:
authorLukaszogg <82384106+Lukaszogg@users.noreply.github.com>2021-07-08 20:10:11 +0200
committerLukaszogg <82384106+Lukaszogg@users.noreply.github.com>2021-07-08 20:10:11 +0200
commit14033ca595b5c933caea3b214d2246529e6845b8 (patch)
tree0d6d2b2eb34e5ef5df3c517be5c1c9d803fa066c /vorlesungen
parentUpdate teil1.tex (diff)
parentOnly include buch.ind if it exists. (diff)
downloadSeminarMatrizen-14033ca595b5c933caea3b214d2246529e6845b8.tar.gz
SeminarMatrizen-14033ca595b5c933caea3b214d2246529e6845b8.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'vorlesungen')
-rw-r--r--vorlesungen/10_mseliealgebra/slides.tex18
-rw-r--r--vorlesungen/11_msegraphen/Makefile33
-rw-r--r--vorlesungen/11_msegraphen/MathSemMSE-11-graphen.tex14
-rw-r--r--vorlesungen/11_msegraphen/common.tex16
-rw-r--r--vorlesungen/11_msegraphen/graphen-handout.tex11
-rw-r--r--vorlesungen/11_msegraphen/slides.tex35
-rw-r--r--vorlesungen/12_msewkeitsmatrizen/Makefile42
-rw-r--r--vorlesungen/12_msewkeitsmatrizen/MathSemMSE-12-wkeitsmatrizen.tex14
-rw-r--r--vorlesungen/12_msewkeitsmatrizen/common.tex16
-rw-r--r--vorlesungen/12_msewkeitsmatrizen/slides.tex35
-rw-r--r--vorlesungen/12_msewkeitsmatrizen/wkeitsmatrizen-handout.tex11
-rw-r--r--vorlesungen/13_msegraphwavelets/Makefile33
-rw-r--r--vorlesungen/13_msegraphwavelets/MathSemMSE-13-graphwavelets.tex14
-rw-r--r--vorlesungen/13_msegraphwavelets/common.tex16
-rw-r--r--vorlesungen/13_msegraphwavelets/graphwavelets-handout.tex11
-rw-r--r--vorlesungen/13_msegraphwavelets/slides.tex44
-rw-r--r--vorlesungen/14_msehilbertraum/Makefile33
-rw-r--r--vorlesungen/14_msehilbertraum/MathSemMSE-14-hilbertraum.tex14
-rw-r--r--vorlesungen/14_msehilbertraum/common.tex16
-rw-r--r--vorlesungen/14_msehilbertraum/hilbertraum-handout.tex11
-rw-r--r--vorlesungen/14_msehilbertraum/slides.tex31
-rw-r--r--vorlesungen/99_vortraege/Makefile10
-rw-r--r--vorlesungen/99_vortraege/MathSem-99-vortraege.tex13
-rw-r--r--vorlesungen/punktgruppen/.gitignore20
-rw-r--r--vorlesungen/punktgruppen/Makefile18
-rw-r--r--vorlesungen/punktgruppen/crystals.py611
-rw-r--r--vorlesungen/punktgruppen/media/images/nosignal.jpgbin0 -> 711846 bytes
-rw-r--r--vorlesungen/punktgruppen/poetry.lock743
-rw-r--r--vorlesungen/punktgruppen/pyproject.toml15
-rw-r--r--vorlesungen/punktgruppen/script.pdfbin0 -> 44991 bytes
-rw-r--r--vorlesungen/punktgruppen/script.tex214
-rw-r--r--vorlesungen/punktgruppen/slides.pdfbin0 -> 790926 bytes
-rw-r--r--vorlesungen/punktgruppen/slides.tex895
-rw-r--r--vorlesungen/slides/2/Makefile.inc14
-rw-r--r--vorlesungen/slides/2/chapter.tex14
-rw-r--r--vorlesungen/slides/2/hilbertraum/adjungiert.tex83
-rw-r--r--vorlesungen/slides/2/hilbertraum/basis.tex65
-rw-r--r--vorlesungen/slides/2/hilbertraum/definition.tex63
-rw-r--r--vorlesungen/slides/2/hilbertraum/energie.tex67
-rw-r--r--vorlesungen/slides/2/hilbertraum/l2.tex61
-rw-r--r--vorlesungen/slides/2/hilbertraum/l2beispiel.tex82
-rw-r--r--vorlesungen/slides/2/hilbertraum/laplace.tex66
-rw-r--r--vorlesungen/slides/2/hilbertraum/plancherel.tex102
-rw-r--r--vorlesungen/slides/2/hilbertraum/qm.tex90
-rw-r--r--vorlesungen/slides/2/hilbertraum/riesz.tex76
-rw-r--r--vorlesungen/slides/2/hilbertraum/rieszbeispiel.tex107
-rw-r--r--vorlesungen/slides/2/hilbertraum/sobolev.tex51
-rw-r--r--vorlesungen/slides/2/hilbertraum/spektral.tex91
-rw-r--r--vorlesungen/slides/2/hilbertraum/sturm.tex58
-rw-r--r--vorlesungen/slides/7/Makefile.inc7
-rw-r--r--vorlesungen/slides/7/bch.tex76
-rw-r--r--vorlesungen/slides/7/chapter.tex7
-rw-r--r--vorlesungen/slides/7/dg.tex4
-rw-r--r--vorlesungen/slides/7/einparameter.tex6
-rw-r--r--vorlesungen/slides/7/exponentialreihe.tex24
-rw-r--r--vorlesungen/slides/7/images/Makefile12
-rw-r--r--vorlesungen/slides/7/images/drehung.inc142
-rw-r--r--vorlesungen/slides/7/images/interpolation.ini8
-rw-r--r--vorlesungen/slides/7/images/interpolation.m54
-rw-r--r--vorlesungen/slides/7/images/interpolation.pov10
-rw-r--r--vorlesungen/slides/7/images/test.pov7
-rw-r--r--vorlesungen/slides/7/integration.tex66
-rw-r--r--vorlesungen/slides/7/interpolation.tex112
-rw-r--r--vorlesungen/slides/7/liealgbeispiel.tex78
-rw-r--r--vorlesungen/slides/7/logarithmus.tex82
-rw-r--r--vorlesungen/slides/7/vektorlie.tex206
-rw-r--r--vorlesungen/slides/8/Makefile.inc20
-rw-r--r--vorlesungen/slides/8/amax.tex86
-rw-r--r--vorlesungen/slides/8/chapter.tex21
-rw-r--r--vorlesungen/slides/8/chrind.tex231
-rw-r--r--vorlesungen/slides/8/chrindprop.tex62
-rw-r--r--vorlesungen/slides/8/chroma1.tex56
-rw-r--r--vorlesungen/slides/8/chrwilf.tex115
-rw-r--r--vorlesungen/slides/8/inzidenz.tex4
-rw-r--r--vorlesungen/slides/8/inzidenzd.tex4
-rw-r--r--vorlesungen/slides/8/produkt.tex2
-rw-r--r--vorlesungen/slides/8/spanningtree.tex4
-rw-r--r--vorlesungen/slides/8/subgraph.tex60
-rw-r--r--vorlesungen/slides/8/wavelets/Makefile8
-rw-r--r--vorlesungen/slides/8/wavelets/beispiel.tex44
-rw-r--r--vorlesungen/slides/8/wavelets/dilatation.tex62
-rw-r--r--vorlesungen/slides/8/wavelets/dilbei.tex46
-rw-r--r--vorlesungen/slides/8/wavelets/ev.m97
-rw-r--r--vorlesungen/slides/8/wavelets/fourier.tex86
-rw-r--r--vorlesungen/slides/8/wavelets/frame.tex66
-rw-r--r--vorlesungen/slides/8/wavelets/framekonstanten.tex71
-rw-r--r--vorlesungen/slides/8/wavelets/frequenzlokalisierung.tex78
-rw-r--r--vorlesungen/slides/8/wavelets/funktionen.tex78
-rw-r--r--vorlesungen/slides/8/wavelets/gundh.tex85
-rw-r--r--vorlesungen/slides/8/wavelets/laplacebasis.tex62
-rw-r--r--vorlesungen/slides/8/wavelets/lokalisierungsvergleich.tex46
-rw-r--r--vorlesungen/slides/8/wavelets/matrixdilatation.tex39
-rw-r--r--vorlesungen/slides/8/wavelets/vektoren.tex200
-rw-r--r--vorlesungen/slides/8/weitere.tex43
-rw-r--r--vorlesungen/slides/8/wilf.m22
-rw-r--r--vorlesungen/slides/9/Makefile.inc15
-rw-r--r--vorlesungen/slides/9/chapter.tex16
-rw-r--r--vorlesungen/slides/9/parrondo/deformation.tex45
-rw-r--r--vorlesungen/slides/9/parrondo/erwartung.tex81
-rw-r--r--vorlesungen/slides/9/parrondo/kombiniert.tex73
-rw-r--r--vorlesungen/slides/9/parrondo/spiela.tex52
-rw-r--r--vorlesungen/slides/9/parrondo/spielb.tex100
-rw-r--r--vorlesungen/slides/9/parrondo/spielbmod.tex103
-rw-r--r--vorlesungen/slides/9/parrondo/uebersicht.tex17
-rw-r--r--vorlesungen/slides/9/pf/dreieck.tex44
-rw-r--r--vorlesungen/slides/9/pf/folgerungen.tex203
-rw-r--r--vorlesungen/slides/9/pf/positiv.tex64
-rw-r--r--vorlesungen/slides/9/pf/primitiv.tex84
-rw-r--r--vorlesungen/slides/9/pf/trennung.tex99
-rw-r--r--vorlesungen/slides/9/pf/vergleich.tex113
-rw-r--r--vorlesungen/slides/9/pf/vergleich3d.tex26
-rw-r--r--vorlesungen/slides/9/potenz.tex15
-rw-r--r--vorlesungen/slides/test.tex29
-rw-r--r--vorlesungen/stream/countdown.html2
114 files changed, 7957 insertions, 20 deletions
diff --git a/vorlesungen/10_mseliealgebra/slides.tex b/vorlesungen/10_mseliealgebra/slides.tex
index 0fceaff..936139a 100644
--- a/vorlesungen/10_mseliealgebra/slides.tex
+++ b/vorlesungen/10_mseliealgebra/slides.tex
@@ -9,13 +9,27 @@
\folie{7/einparameter.tex}
\folie{7/ableitung.tex}
\folie{7/liealgebra.tex}
+% XXX Beispiele von Lie-Algebren
+\folie{7/liealgbeispiel.tex}
+% XXX Vektorprodukt als Lie-Algebra
+\folie{7/vektorlie.tex}
\folie{7/kommutator.tex}
+% XXX kommutator rechnerisch
+\folie{7/bch.tex}
\section{Exponentialabbildung}
\folie{7/dg.tex}
+\folie{7/logarithmus.tex}
+% Interpolation
+\folie{7/interpolation.tex}
+
+\section{Integration}
+\folie{7/haar.tex}
+\ifthenelse{\boolean{presentation}}{
+\folie{7/mannigfaltigkeit.tex}
+}{}
+\folie{7/integration.tex}
% LOG Reihe
-% Interpolation
% Mittelung auf einer Lie-Gruppe
-% Vektorprodukt als Lie-Gruppe
diff --git a/vorlesungen/11_msegraphen/Makefile b/vorlesungen/11_msegraphen/Makefile
new file mode 100644
index 0000000..36f1877
--- /dev/null
+++ b/vorlesungen/11_msegraphen/Makefile
@@ -0,0 +1,33 @@
+#
+# Makefile -- graphen
+#
+# (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+#
+all: graphen-handout.pdf MathSemMSE-11-graphen.pdf
+
+include ../slides/Makefile.inc
+
+SOURCES = common.tex slides.tex $(slides)
+
+MathSemMSE-11-graphen.pdf: MathSemMSE-11-graphen.tex $(SOURCES)
+ pdflatex MathSemMSE-11-graphen.tex
+
+graphen-handout.pdf: graphen-handout.tex $(SOURCES)
+ pdflatex graphen-handout.tex
+
+thumbnail: thumbnail.jpg # fix1.jpg
+
+thumbnail.pdf: MathSemMSE-11-graphen.pdf
+ pdfjam --outfile thumbnail.pdf --papersize '{16cm,9cm}' \
+ MathSemMSE-11-graphen.pdf 1
+thumbnail.jpg: thumbnail.pdf
+ convert -density 300 thumbnail.pdf \
+ -resize 1920x1080 -units PixelsPerInch thumbnail.jpg
+
+fix1.pdf: MathSemMSE-11-graphen.pdf
+ pdfjam --outfile fix1.pdf --papersize '{16cm,9cm}' \
+ MathSemMSE-11-graphen.pdf 1
+fix1.jpg: fix1.pdf
+ convert -density 300 fix1.pdf \
+ -resize 1920x1080 -units PixelsPerInch fix1.jpg
+
diff --git a/vorlesungen/11_msegraphen/MathSemMSE-11-graphen.tex b/vorlesungen/11_msegraphen/MathSemMSE-11-graphen.tex
new file mode 100644
index 0000000..6d4ff2d
--- /dev/null
+++ b/vorlesungen/11_msegraphen/MathSemMSE-11-graphen.tex
@@ -0,0 +1,14 @@
+%
+% MathSem-11-msegraphen.tex -- Präsentation
+%
+% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+%
+\documentclass[aspectratio=169]{beamer}
+\input{common.tex}
+\setboolean{presentation}{true}
+\begin{document}
+\begin{frame}
+\titlepage
+\end{frame}
+\input{slides.tex}
+\end{document}
diff --git a/vorlesungen/11_msegraphen/common.tex b/vorlesungen/11_msegraphen/common.tex
new file mode 100644
index 0000000..67cf5e5
--- /dev/null
+++ b/vorlesungen/11_msegraphen/common.tex
@@ -0,0 +1,16 @@
+%
+% common.tex -- gemeinsame definition
+%
+% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+%
+\input{../common/packages.tex}
+\input{../common/common.tex}
+\mode<beamer>{%
+\usetheme[hideothersubsections,hidetitle]{Hannover}
+}
+\beamertemplatenavigationsymbolsempty
+\title[Graphen]{Spektrale Graphentheorie}
+\author[A.~Müller]{Prof. Dr. Andreas Müller}
+\date[]{}
+\newboolean{presentation}
+
diff --git a/vorlesungen/11_msegraphen/graphen-handout.tex b/vorlesungen/11_msegraphen/graphen-handout.tex
new file mode 100644
index 0000000..58d0aff
--- /dev/null
+++ b/vorlesungen/11_msegraphen/graphen-handout.tex
@@ -0,0 +1,11 @@
+%
+% msegraphen-handout.tex -- Handout XXX
+%
+% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+%
+\documentclass[handout,aspectratio=169]{beamer}
+\input{common.tex}
+\setboolean{presentation}{false}
+\begin{document}
+\input{slides.tex}
+\end{document}
diff --git a/vorlesungen/11_msegraphen/slides.tex b/vorlesungen/11_msegraphen/slides.tex
new file mode 100644
index 0000000..b3d1519
--- /dev/null
+++ b/vorlesungen/11_msegraphen/slides.tex
@@ -0,0 +1,35 @@
+%
+% slides.tex -- XXX
+%
+% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+%
+
+\folie{8/graph.tex}
+\folie{8/dgraph.tex}
+\folie{8/grad.tex}
+\folie{8/inzidenz.tex}
+\folie{8/inzidenzd.tex}
+\folie{8/diffusion.tex}
+\folie{8/laplace.tex}
+\folie{8/produkt.tex}
+\folie{8/fourier.tex}
+\folie{8/spanningtree.tex}
+
+\folie{8/pfade/adjazenz.tex}
+\folie{8/pfade/langepfade.tex}
+\folie{8/pfade/beispiel.tex}
+\folie{8/pfade/gf.tex}
+
+%\folie{8/floyd-warshall/problem.tex}
+%\folie{8/floyd-warshall/rekursion.tex}
+%\folie{8/floyd-warshall/iteration.tex}
+%\folie{8/floyd-warshall/wegiteration.tex}
+%\folie{8/floyd-warshall/wege.tex}
+
+\folie{8/chrind.tex}
+\folie{8/chrindprop.tex}
+\folie{8/chroma1.tex}
+\folie{8/amax.tex}
+\folie{8/subgraph.tex}
+\folie{8/chrwilf.tex}
+\folie{8/weitere.tex}
diff --git a/vorlesungen/12_msewkeitsmatrizen/Makefile b/vorlesungen/12_msewkeitsmatrizen/Makefile
new file mode 100644
index 0000000..ec420cd
--- /dev/null
+++ b/vorlesungen/12_msewkeitsmatrizen/Makefile
@@ -0,0 +1,42 @@
+#
+# Makefile -- wkeitsmatrizen
+#
+# (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+#
+all: wkeitsmatrizen-handout.pdf MathSemMSE-12-wkeitsmatrizen.pdf
+
+include ../slides/Makefile.inc
+
+SOURCES = common.tex slides.tex $(slides)
+
+MathSemMSE-12-wkeitsmatrizen.pdf: MathSemMSE-12-wkeitsmatrizen.tex $(SOURCES)
+ pdflatex MathSemMSE-12-wkeitsmatrizen.tex
+
+wkeitsmatrizen-handout.pdf: wkeitsmatrizen-handout.tex $(SOURCES)
+ pdflatex wkeitsmatrizen-handout.tex
+
+thumbnail: thumbnail.jpg # fix1.jpg
+
+thumbnail.pdf: MathSemMSE-12-wkeitsmatrizen.pdf
+ pdfjam --outfile thumbnail.pdf --papersize '{16cm,9cm}' \
+ MathSemMSE-12-wkeitsmatrizen.pdf 1
+thumbnail.jpg: thumbnail.pdf
+ convert -density 300 thumbnail.pdf \
+ -resize 1920x1080 -units PixelsPerInch thumbnail.jpg
+
+fix1.pdf: MathSemMSE-12-wkeitsmatrizen.pdf
+ pdfjam --outfile fix1.pdf --papersize '{16cm,9cm}' \
+ MathSemMSE-12-wkeitsmatrizen.pdf 1
+fix1.jpg: fix1.pdf
+ convert -density 300 fix1.pdf \
+ -resize 1920x1080 -units PixelsPerInch fix1.jpg
+
+parts: part1.pdf part2.pdf
+
+part1.pdf: MathSemMSE-12-wkeitsmatrizen.pdf
+ pdfjam --outfile part1.pdf --papersize '{16cm,9cm}' \
+ MathSemMSE-12-wkeitsmatrizen.pdf 1-160
+
+part2.pdf: MathSemMSE-12-wkeitsmatrizen.pdf
+ pdfjam --outfile part2.pdf --papersize '{16cm,9cm}' \
+ MathSemMSE-12-wkeitsmatrizen.pdf 161-211
diff --git a/vorlesungen/12_msewkeitsmatrizen/MathSemMSE-12-wkeitsmatrizen.tex b/vorlesungen/12_msewkeitsmatrizen/MathSemMSE-12-wkeitsmatrizen.tex
new file mode 100644
index 0000000..e526731
--- /dev/null
+++ b/vorlesungen/12_msewkeitsmatrizen/MathSemMSE-12-wkeitsmatrizen.tex
@@ -0,0 +1,14 @@
+%
+% MathSem-12-msewkeitsmatrizen.tex -- Präsentation
+%
+% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+%
+\documentclass[aspectratio=169]{beamer}
+\input{common.tex}
+\setboolean{presentation}{true}
+\begin{document}
+\begin{frame}
+\titlepage
+\end{frame}
+\input{slides.tex}
+\end{document}
diff --git a/vorlesungen/12_msewkeitsmatrizen/common.tex b/vorlesungen/12_msewkeitsmatrizen/common.tex
new file mode 100644
index 0000000..2de59e8
--- /dev/null
+++ b/vorlesungen/12_msewkeitsmatrizen/common.tex
@@ -0,0 +1,16 @@
+%
+% common.tex -- gemeinsame definition
+%
+% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+%
+\input{../common/packages.tex}
+\input{../common/common.tex}
+\mode<beamer>{%
+\usetheme[hideothersubsections,hidetitle]{Hannover}
+}
+\beamertemplatenavigationsymbolsempty
+\title[W'keitsmatrizen]{Wahrscheinlichkeitsmatrizen}
+\author[A.~Müller]{Prof. Dr. Andreas Müller}
+\date[]{}
+\newboolean{presentation}
+
diff --git a/vorlesungen/12_msewkeitsmatrizen/slides.tex b/vorlesungen/12_msewkeitsmatrizen/slides.tex
new file mode 100644
index 0000000..e0f8e9c
--- /dev/null
+++ b/vorlesungen/12_msewkeitsmatrizen/slides.tex
@@ -0,0 +1,35 @@
+%
+% slides.tex -- XXX
+%
+% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+%
+\section{Google}
+\folie{9/google.tex}
+
+
+
+\section{Markov-Ketten}
+\folie{9/markov.tex}
+\folie{9/stationaer.tex}
+\folie{9/irreduzibel.tex}
+
+\section{Perron-Frobenius}
+\folie{9/pf/positiv.tex}
+\folie{9/pf/primitiv.tex}
+\folie{9/pf/trennung.tex}
+\folie{9/pf/vergleich.tex}
+\folie{9/pf/vergleich3d.tex}
+\folie{9/pf/dreieck.tex}
+\folie{9/pf/folgerungen.tex}
+\folie{9/pf.tex}
+\folie{9/potenz.tex}
+
+\section{Parrondo}
+\folie{9/parrondo/uebersicht.tex}
+\folie{9/parrondo/erwartung.tex}
+\folie{9/parrondo/spiela.tex}
+\folie{9/parrondo/spielb.tex}
+\folie{9/parrondo/spielbmod.tex}
+\folie{9/parrondo/kombiniert.tex}
+\folie{9/parrondo/deformation.tex}
+
diff --git a/vorlesungen/12_msewkeitsmatrizen/wkeitsmatrizen-handout.tex b/vorlesungen/12_msewkeitsmatrizen/wkeitsmatrizen-handout.tex
new file mode 100644
index 0000000..ae577c3
--- /dev/null
+++ b/vorlesungen/12_msewkeitsmatrizen/wkeitsmatrizen-handout.tex
@@ -0,0 +1,11 @@
+%
+% msewkeitsmatrizen-handout.tex -- Handout XXX
+%
+% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+%
+\documentclass[handout,aspectratio=169]{beamer}
+\input{common.tex}
+\setboolean{presentation}{false}
+\begin{document}
+\input{slides.tex}
+\end{document}
diff --git a/vorlesungen/13_msegraphwavelets/Makefile b/vorlesungen/13_msegraphwavelets/Makefile
new file mode 100644
index 0000000..6dba66c
--- /dev/null
+++ b/vorlesungen/13_msegraphwavelets/Makefile
@@ -0,0 +1,33 @@
+#
+# Makefile -- graphwavelets
+#
+# (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+#
+all: graphwavelets-handout.pdf MathSemMSE-13-graphwavelets.pdf
+
+include ../slides/Makefile.inc
+
+SOURCES = common.tex slides.tex $(slides)
+
+MathSemMSE-13-graphwavelets.pdf: MathSemMSE-13-graphwavelets.tex $(SOURCES)
+ pdflatex MathSemMSE-13-graphwavelets.tex
+
+graphwavelets-handout.pdf: graphwavelets-handout.tex $(SOURCES)
+ pdflatex graphwavelets-handout.tex
+
+thumbnail: thumbnail.jpg # fix1.jpg
+
+thumbnail.pdf: MathSemMSE-13-graphwavelets.pdf
+ pdfjam --outfile thumbnail.pdf --papersize '{16cm,9cm}' \
+ MathSemMSE-13-graphwavelets.pdf 1
+thumbnail.jpg: thumbnail.pdf
+ convert -density 300 thumbnail.pdf \
+ -resize 1920x1080 -units PixelsPerInch thumbnail.jpg
+
+fix1.pdf: MathSemMSE-13-graphwavelets.pdf
+ pdfjam --outfile fix1.pdf --papersize '{16cm,9cm}' \
+ MathSemMSE-13-graphwavelets.pdf 1
+fix1.jpg: fix1.pdf
+ convert -density 300 fix1.pdf \
+ -resize 1920x1080 -units PixelsPerInch fix1.jpg
+
diff --git a/vorlesungen/13_msegraphwavelets/MathSemMSE-13-graphwavelets.tex b/vorlesungen/13_msegraphwavelets/MathSemMSE-13-graphwavelets.tex
new file mode 100644
index 0000000..112d952
--- /dev/null
+++ b/vorlesungen/13_msegraphwavelets/MathSemMSE-13-graphwavelets.tex
@@ -0,0 +1,14 @@
+%
+% MathSem-13-msegraphwavelets.tex -- Präsentation
+%
+% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+%
+\documentclass[aspectratio=169]{beamer}
+\input{common.tex}
+\setboolean{presentation}{true}
+\begin{document}
+\begin{frame}
+\titlepage
+\end{frame}
+\input{slides.tex}
+\end{document}
diff --git a/vorlesungen/13_msegraphwavelets/common.tex b/vorlesungen/13_msegraphwavelets/common.tex
new file mode 100644
index 0000000..b9799f0
--- /dev/null
+++ b/vorlesungen/13_msegraphwavelets/common.tex
@@ -0,0 +1,16 @@
+%
+% common.tex -- gemeinsame definition
+%
+% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+%
+\input{../common/packages.tex}
+\input{../common/common.tex}
+\mode<beamer>{%
+\usetheme[hideothersubsections,hidetitle]{Hannover}
+}
+\beamertemplatenavigationsymbolsempty
+\title[SGWT]{Wavelets auf Graphen}
+\author[A.~Müller]{Prof. Dr. Andreas Müller}
+\date[]{}
+\newboolean{presentation}
+
diff --git a/vorlesungen/13_msegraphwavelets/graphwavelets-handout.tex b/vorlesungen/13_msegraphwavelets/graphwavelets-handout.tex
new file mode 100644
index 0000000..98789e5
--- /dev/null
+++ b/vorlesungen/13_msegraphwavelets/graphwavelets-handout.tex
@@ -0,0 +1,11 @@
+%
+% msegraphwavelets-handout.tex -- Handout XXX
+%
+% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+%
+\documentclass[handout,aspectratio=169]{beamer}
+\input{common.tex}
+\setboolean{presentation}{false}
+\begin{document}
+\input{slides.tex}
+\end{document}
diff --git a/vorlesungen/13_msegraphwavelets/slides.tex b/vorlesungen/13_msegraphwavelets/slides.tex
new file mode 100644
index 0000000..3fd38f2
--- /dev/null
+++ b/vorlesungen/13_msegraphwavelets/slides.tex
@@ -0,0 +1,44 @@
+%
+% slides.tex -- XXX
+%
+% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+%
+
+% Funktionen auf einem Graphen
+\folie{8/wavelets/funktionen.tex}
+
+% Laplace-Basis auf dem Graphen
+\folie{8/wavelets/laplacebasis.tex}
+
+% Fourier-Transformation auf einem Graphen
+\folie{8/wavelets/fourier.tex}
+
+% Lokalisierung in Standardbasis und Fourier-Basis
+\folie{8/wavelets/lokalisierungsvergleich.tex}
+
+% Lokalisierung im Frequenzraum
+\folie{8/wavelets/frequenzlokalisierung.tex}
+
+% Dilatation im Frequenzraum
+\folie{8/wavelets/dilatation.tex}
+
+% Dilatation in Matrixform
+\folie{8/wavelets/matrixdilatation.tex}
+
+% Funktionen g und h
+\folie{8/wavelets/gundh.tex}
+\ifthenelse{\boolean{presentation}}{
+\folie{8/wavelets/dilbei.tex}
+}{}
+
+% Wavelet Frame
+\folie{8/wavelets/frame.tex}
+
+% Framekonstante
+\folie{8/wavelets/framekonstanten.tex}
+
+% Kugel-Beispiel
+\ifthenelse{\boolean{presentation}}{
+\folie{8/wavelets/beispiel.tex}
+}{}
+
diff --git a/vorlesungen/14_msehilbertraum/Makefile b/vorlesungen/14_msehilbertraum/Makefile
new file mode 100644
index 0000000..e5de69c
--- /dev/null
+++ b/vorlesungen/14_msehilbertraum/Makefile
@@ -0,0 +1,33 @@
+#
+# Makefile -- hilbertraum
+#
+# (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+#
+all: hilbertraum-handout.pdf MathSemMSE-14-hilbertraum.pdf
+
+include ../slides/Makefile.inc
+
+SOURCES = common.tex slides.tex $(slides)
+
+MathSemMSE-14-hilbertraum.pdf: MathSemMSE-14-hilbertraum.tex $(SOURCES)
+ pdflatex MathSemMSE-14-hilbertraum.tex
+
+hilbertraum-handout.pdf: hilbertraum-handout.tex $(SOURCES)
+ pdflatex hilbertraum-handout.tex
+
+thumbnail: thumbnail.jpg # fix1.jpg
+
+thumbnail.pdf: MathSemMSE-14-hilbertraum.pdf
+ pdfjam --outfile thumbnail.pdf --papersize '{16cm,9cm}' \
+ MathSemMSE-14-hilbertraum.pdf 1
+thumbnail.jpg: thumbnail.pdf
+ convert -density 300 thumbnail.pdf \
+ -resize 1920x1080 -units PixelsPerInch thumbnail.jpg
+
+fix1.pdf: MathSemMSE-14-hilbertraum.pdf
+ pdfjam --outfile fix1.pdf --papersize '{16cm,9cm}' \
+ MathSemMSE-14-hilbertraum.pdf 1
+fix1.jpg: fix1.pdf
+ convert -density 300 fix1.pdf \
+ -resize 1920x1080 -units PixelsPerInch fix1.jpg
+
diff --git a/vorlesungen/14_msehilbertraum/MathSemMSE-14-hilbertraum.tex b/vorlesungen/14_msehilbertraum/MathSemMSE-14-hilbertraum.tex
new file mode 100644
index 0000000..b06500c
--- /dev/null
+++ b/vorlesungen/14_msehilbertraum/MathSemMSE-14-hilbertraum.tex
@@ -0,0 +1,14 @@
+%
+% MathSem-14-msehilbertraum.tex -- Präsentation
+%
+% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+%
+\documentclass[aspectratio=169]{beamer}
+\input{common.tex}
+\setboolean{presentation}{true}
+\begin{document}
+\begin{frame}
+\titlepage
+\end{frame}
+\input{slides.tex}
+\end{document}
diff --git a/vorlesungen/14_msehilbertraum/common.tex b/vorlesungen/14_msehilbertraum/common.tex
new file mode 100644
index 0000000..a9089bf
--- /dev/null
+++ b/vorlesungen/14_msehilbertraum/common.tex
@@ -0,0 +1,16 @@
+%
+% common.tex -- gemeinsame definition
+%
+% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+%
+\input{../common/packages.tex}
+\input{../common/common.tex}
+\mode<beamer>{%
+\usetheme[hideothersubsections,hidetitle]{Hannover}
+}
+\beamertemplatenavigationsymbolsempty
+\title[Hilbertraum]{Hilbertraum}
+\author[A.~Müller]{Prof.~Dr.~Andreas Müller}
+\date[]{}
+\newboolean{presentation}
+
diff --git a/vorlesungen/14_msehilbertraum/hilbertraum-handout.tex b/vorlesungen/14_msehilbertraum/hilbertraum-handout.tex
new file mode 100644
index 0000000..3dc7abf
--- /dev/null
+++ b/vorlesungen/14_msehilbertraum/hilbertraum-handout.tex
@@ -0,0 +1,11 @@
+%
+% msehilbertraum-handout.tex -- Handout XXX
+%
+% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+%
+\documentclass[handout,aspectratio=169]{beamer}
+\input{common.tex}
+\setboolean{presentation}{false}
+\begin{document}
+\input{slides.tex}
+\end{document}
diff --git a/vorlesungen/14_msehilbertraum/slides.tex b/vorlesungen/14_msehilbertraum/slides.tex
new file mode 100644
index 0000000..19925db
--- /dev/null
+++ b/vorlesungen/14_msehilbertraum/slides.tex
@@ -0,0 +1,31 @@
+%
+% slides.tex -- XXX
+%
+% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil
+%
+
+\section{Hilbertraum}
+\folie{2/hilbertraum/definition.tex}
+\folie{2/hilbertraum/l2beispiel.tex}
+\folie{2/hilbertraum/basis.tex}
+\folie{2/hilbertraum/plancherel.tex}
+
+\section{Beispiele}
+\folie{2/hilbertraum/l2.tex}
+
+\section{Riesz-Darstellungssatz}
+\folie{2/hilbertraum/riesz.tex}
+\folie{2/hilbertraum/rieszbeispiel.tex}
+
+\section{$A^*$}
+\folie{2/hilbertraum/adjungiert.tex}
+\folie{2/hilbertraum/spektral.tex}
+
+\section{PDE und Hilbertraum}
+\folie{2/hilbertraum/sturm.tex}
+\folie{2/hilbertraum/laplace.tex}
+\folie{2/hilbertraum/qm.tex}
+\folie{2/hilbertraum/energie.tex}
+\folie{2/hilbertraum/sobolev.tex}
+
+
diff --git a/vorlesungen/99_vortraege/Makefile b/vorlesungen/99_vortraege/Makefile
index 8a5751c..69ec665 100644
--- a/vorlesungen/99_vortraege/Makefile
+++ b/vorlesungen/99_vortraege/Makefile
@@ -15,7 +15,8 @@ MathSem-99-vortraege.pdf: MathSem-99-vortraege.tex $(SOURCES)
vortraege-handout.pdf: vortraege-handout.tex $(SOURCES)
pdflatex vortraege-handout.tex
-thumbnail: thumbnail1.jpg thumbnail2.jpg thumbnail3.jpg thumbnail4.jpg
+thumbnail: thumbnail1.jpg thumbnail2.jpg thumbnail3.jpg thumbnail4.jpg \
+ thumbnail5.jpg
thumbnail1.pdf: MathSem-99-vortraege.pdf
pdfjam --outfile thumbnail1.pdf --papersize '{16cm,9cm}' \
@@ -45,6 +46,13 @@ thumbnail4.jpg: thumbnail4.pdf
convert -density 300 thumbnail4.pdf \
-resize 1920x1080 -units PixelsPerInch thumbnail4.jpg
+thumbnail5.pdf: MathSem-99-vortraege.pdf
+ pdfjam --outfile thumbnail5.pdf --papersize '{16cm,9cm}' \
+ MathSem-99-vortraege.pdf 5
+thumbnail5.jpg: thumbnail5.pdf
+ convert -density 300 thumbnail5.pdf \
+ -resize 1920x1080 -units PixelsPerInch thumbnail5.jpg
+
fix1.pdf: MathSem-99-vortraege.pdf
pdfjam --outfile fix1.pdf --papersize '{16cm,9cm}' \
MathSem-99-vortraege.pdf 1
diff --git a/vorlesungen/99_vortraege/MathSem-99-vortraege.tex b/vorlesungen/99_vortraege/MathSem-99-vortraege.tex
index c962e90..ddcfcf8 100644
--- a/vorlesungen/99_vortraege/MathSem-99-vortraege.tex
+++ b/vorlesungen/99_vortraege/MathSem-99-vortraege.tex
@@ -61,5 +61,18 @@ Fabio Viecelli, Lukas Zogg: Erdbebenmessung
\end{center}
\end{frame}
+\title[Vorträge]{31. Mai: Vorträge}
+\begin{frame}
+\titlepage
+\vspace{-2cm}
+\begin{center}
+Marc Kühne: Munkres-Algorithmus
+\phantom{blubb} \\
+\phantom{blubb} \\
+\phantom{blubb} \\
+Michael Schmid: Schnelle Matrixmultiplikation
+\end{center}
+\end{frame}
+
\input{slides.tex}
\end{document}
diff --git a/vorlesungen/punktgruppen/.gitignore b/vorlesungen/punktgruppen/.gitignore
new file mode 100644
index 0000000..3633a3d
--- /dev/null
+++ b/vorlesungen/punktgruppen/.gitignore
@@ -0,0 +1,20 @@
+# directories
+__pycache__
+media/Tex
+
+media/images/crystal
+media/images/freezeframes
+
+media/videos
+media/audio
+
+media/Punktgruppen
+media/Punktgruppen.mp4
+
+build
+
+# files
+script.log
+slides.log
+slides.vrb
+missfont.log
diff --git a/vorlesungen/punktgruppen/Makefile b/vorlesungen/punktgruppen/Makefile
new file mode 100644
index 0000000..302e976
--- /dev/null
+++ b/vorlesungen/punktgruppen/Makefile
@@ -0,0 +1,18 @@
+TEX=xelatex
+TEXARGS=--output-directory=build --halt-on-error --shell-escape
+
+all: slides.pdf script.pdf media
+
+.PHONY: clean
+clean:
+ @rm -rfv build
+
+%.pdf: %.tex
+ mkdir -p build
+ $(TEX) $(TEXARGS) $<
+ $(TEX) $(TEXARGS) $<
+ cp build/$@ .
+
+media:
+ poetry install
+ poetry run manim -ql crystals.py
diff --git a/vorlesungen/punktgruppen/crystals.py b/vorlesungen/punktgruppen/crystals.py
new file mode 100644
index 0000000..4a9836a
--- /dev/null
+++ b/vorlesungen/punktgruppen/crystals.py
@@ -0,0 +1,611 @@
+from manim import *
+
+import math as m
+import numpy as np
+import itertools as it
+
+# configure style
+config.background_color = '#202020'
+config.tex_template.add_to_preamble(
+ r"\usepackage[p,osf]{scholax}"
+ r"\usepackage{amsmath}"
+ r"\usepackage[scaled=1.075,ncf,vvarbb]{newtxmath}"
+)
+
+# scenes
+class Geometric2DSymmetries(Scene):
+ def construct(self):
+ self.wait(5)
+
+ self.intro()
+ self.cyclic()
+ self.dihedral()
+ self.circle()
+
+ def intro(self):
+ # create square
+ square = Square()
+ square.set_fill(PINK, opacity=.5)
+ self.play(SpinInFromNothing(square))
+ self.wait()
+
+ # the action of doing nothing
+ action = MathTex(r"\mathbb{1}")
+ self.play(Write(action))
+ self.play(ApplyMethod(square.scale, 1.2))
+ self.play(ApplyMethod(square.scale, 1/1.2))
+ self.play(FadeOut(action))
+ self.wait()
+
+ # show some reflections
+ axis = DashedLine(2 * LEFT, 2 * RIGHT)
+ sigma = MathTex(r"\sigma")
+ sigma.next_to(axis, RIGHT)
+
+ self.play(Create(axis))
+ self.play(Write(sigma))
+ self.play(ApplyMethod(square.flip, RIGHT))
+
+ for d in [UP + RIGHT, UP]:
+ self.play(
+ Rotate(axis, PI/4),
+ Rotate(sigma, PI/4, about_point=ORIGIN))
+
+ self.play(Rotate(sigma, -PI/4), run_time=.5)
+ self.play(ApplyMethod(square.flip, d))
+
+ self.play(FadeOutAndShift(sigma), Uncreate(axis))
+
+ # show some rotations
+ dot = Dot(UP + RIGHT)
+ figure = VGroup(square, dot)
+
+ rot = MathTex(r"r")
+ self.play(Write(rot), Create(dot))
+
+ last = rot
+ for newrot in map(MathTex, [r"r", r"r^2", r"r^3"]):
+ self.play(
+ ReplacementTransform(last, newrot),
+ Rotate(figure, PI/2, about_point=ORIGIN))
+ self.wait(.5)
+ last = newrot
+
+ self.play(Uncreate(dot), FadeOut(square), FadeOut(last))
+
+
+ def cyclic(self):
+ # create symmetric figure
+ figure = VGroup()
+ prev = [1.5, 0, 0]
+ for i in range(1,6):
+ pos = [
+ 1.5*m.cos(2 * PI/5 * i),
+ 1.5*m.sin(2 * PI/5 * i),
+ 0
+ ]
+
+ if prev:
+ line = Line(prev, pos)
+ figure.add(line)
+
+ dot = Dot(pos, radius=.1)
+ if i == 5:
+ dot.set_fill(RED)
+
+ prev = pos
+ figure.add(dot)
+
+ group = MathTex(r"G = \langle r \rangle")
+ self.play(Write(group), run_time = 2)
+ self.wait(3)
+
+ self.play(ApplyMethod(group.to_edge, UP))
+
+ actions = map(MathTex, [
+ r"\mathbb{1}", r"r", r"r^2",
+ r"r^3", r"r^4", r"\mathbb{1}", r"r"])
+
+ action = next(actions, MathTex(r"r"))
+
+ self.play(Create(figure))
+ self.play(Write(action))
+ self.wait()
+
+ for i in range(5):
+ newaction = next(actions, MathTex(r"r"))
+ self.play(
+ ReplacementTransform(action, newaction),
+ Rotate(figure, 2*PI/5, about_point=ORIGIN))
+ action = newaction
+
+ self.wait()
+ newaction = next(actions, MathTex(r"r"))
+ self.play(
+ ReplacementTransform(action, newaction),
+ Rotate(figure, 2*PI/5, about_point=ORIGIN))
+ action = newaction
+ self.wait(2)
+
+ self.play(Uncreate(figure), FadeOut(action))
+
+ whole_group = MathTex(
+ r"G = \langle r \rangle"
+ r"= \left\{\mathbb{1}, r, r^2, r^3, r^4 \right\}")
+
+ self.play(ApplyMethod(group.move_to, ORIGIN))
+ self.play(ReplacementTransform(group, whole_group))
+ self.wait(5)
+
+ cyclic = MathTex(
+ r"C_n = \langle r \rangle"
+ r"= \left\{\mathbb{1}, r, r^2, \dots, r^{n-1} \right\}")
+
+ cyclic_title = Tex(r"Zyklische Gruppe")
+ cyclic_title.next_to(cyclic, UP * 2)
+
+ cyclic.scale(1.2)
+ cyclic_title.scale(1.2)
+
+ self.play(ReplacementTransform(whole_group, cyclic))
+ self.play(FadeInFrom(cyclic_title, UP))
+
+ self.wait(5)
+ self.play(FadeOut(cyclic), FadeOut(cyclic_title))
+
+ def dihedral(self):
+ # create square
+ square = Square()
+ square.set_fill(PINK, opacity=.5)
+
+ # generator equation
+ group = MathTex(
+ r"G = \langle \sigma, r \,|\,",
+ r"\sigma^2 = \mathbb{1},",
+ r"r^4 = \mathbb{1},",
+ r"(\sigma r)^2 = \mathbb{1} \rangle")
+
+ self.play(Write(group), run_time = 2)
+ self.wait(5)
+
+ self.play(ApplyMethod(group.to_edge, UP))
+ self.play(FadeIn(square))
+ self.wait()
+
+ # flips
+ axis = DashedLine(2 * LEFT, 2 * RIGHT)
+ sigma = MathTex(r"\sigma^2 = \mathbb{1}")
+ sigma.next_to(axis, RIGHT)
+ self.play(Create(axis), Write(sigma))
+ self.play(ApplyMethod(square.flip, RIGHT))
+ self.play(ApplyMethod(square.flip, RIGHT))
+ self.play(Uncreate(axis), FadeOut(sigma))
+
+ # rotations
+ dot = Dot(UP + RIGHT)
+ rot = MathTex(r"r^4 = \mathbb{1}")
+ rot.next_to(square, DOWN * 3)
+
+ figure = VGroup(dot, square)
+
+ self.play(Write(rot), Create(dot))
+ for i in range(4):
+ self.play(Rotate(figure, PI/2))
+ self.play(FadeOut(rot), Uncreate(dot))
+
+ # rotation and flip
+ action = MathTex(r"(\sigma r)^2 = \mathbb{1}")
+ action.next_to(square, DOWN * 5)
+
+ dot = Dot(UP + RIGHT)
+ axis = DashedLine(2 * LEFT, 2 * RIGHT)
+ self.play(Create(dot), Create(axis), Write(action))
+
+ figure = VGroup(dot, square)
+
+ for i in range(2):
+ self.play(Rotate(figure, PI/2))
+ self.play(ApplyMethod(figure.flip, RIGHT))
+ self.wait()
+
+ self.play(Uncreate(dot), Uncreate(axis), FadeOut(action))
+ self.play(FadeOut(square))
+
+ # equation for the whole
+ whole_group = MathTex(
+ r"G &= \langle \sigma, r \,|\,"
+ r"\sigma^2 = r^4 = (\sigma r)^2 = \mathbb{1} \rangle \\"
+ r"&= \left\{"
+ r"\mathbb{1}, r, r^2, r^3, \sigma, \sigma r, \sigma r^2, \sigma r^3"
+ r"\right\}")
+
+ self.play(ApplyMethod(group.move_to, ORIGIN))
+ self.play(ReplacementTransform(group, whole_group))
+ self.wait(2)
+
+ dihedral = MathTex(
+ r"D_n &= \langle \sigma, r \,|\,"
+ r"\sigma^2 = r^n = (\sigma r)^2 = \mathbb{1} \rangle \\"
+ r"&= \left\{"
+ r"\mathbb{1}, r, r^2, \dots, \sigma, \sigma r, \sigma r^2, \dots"
+ r"\right\}")
+
+ dihedral_title = Tex(r"Diedergruppe: Symmetrien eines \(n\)-gons")
+ dihedral_title.next_to(dihedral, UP * 2)
+
+ dihedral.scale(1.2)
+ dihedral_title.scale(1.2)
+
+ self.play(ReplacementTransform(whole_group, dihedral))
+ self.play(FadeInFrom(dihedral_title, UP))
+
+ self.wait(5)
+ self.play(FadeOut(dihedral), FadeOut(dihedral_title))
+
+ def circle(self):
+ circle = Circle(radius=2)
+ dot = Dot()
+ dot.move_to(2 * RIGHT)
+
+ figure = VGroup(circle, dot)
+ group_name = MathTex(r"C_\infty")
+
+ # create circle
+ self.play(Create(circle))
+ self.play(Create(dot))
+
+ # move it around
+ self.play(Rotate(figure, PI/3))
+ self.play(Rotate(figure, PI/6))
+ self.play(Rotate(figure, -PI/3))
+
+ # show name
+ self.play(Rotate(figure, PI/4), Write(group_name))
+ self.wait()
+ self.play(Uncreate(figure))
+
+ nsphere = MathTex(r"C_\infty \cong S^1 = \left\{z \in \mathbb{C} : |z| = 1\right\}")
+ nsphere_title = Tex(r"Kreisgruppe")
+ nsphere_title.next_to(nsphere, 2 * UP)
+
+ nsphere.scale(1.2)
+ nsphere_title.scale(1.2)
+
+ self.play(ReplacementTransform(group_name, nsphere))
+ self.play(FadeInFrom(nsphere_title, UP))
+
+ self.wait(5)
+ self.play(FadeOut(nsphere_title), FadeOut(nsphere))
+ self.wait(2)
+
+
+class Geometric3DSymmetries(ThreeDScene):
+ def construct(self):
+ self.improper_rotation()
+ self.tetrahedron()
+
+ def improper_rotation(self):
+ # changes the source of the light and camera
+ self.renderer.camera.light_source.move_to(3*IN)
+ self.set_camera_orientation(phi=0, theta=0)
+
+ # initial square
+ square = Square()
+ square.set_fill(PINK, opacity=.5)
+
+ self.play(SpinInFromNothing(square))
+ self.wait(2)
+
+ for i in range(4):
+ self.play(Rotate(square, PI/2))
+ self.wait(.5)
+
+ self.move_camera(phi= 75 * DEGREES, theta = -80 * DEGREES)
+
+ # create rotation axis
+ axis = Line3D(start=[0,0,-2.5], end=[0,0,2.5])
+
+ axis_name = MathTex(r"r \in C_4")
+ # move to yz plane
+ axis_name.rotate(PI/2, axis = RIGHT)
+ axis_name.next_to(axis, OUT)
+
+ self.play(Create(axis))
+ self.play(Write(axis_name))
+ self.wait()
+
+ # create sphere from slices
+ cyclic_slices = []
+ for i in range(4):
+ colors = [PINK, RED] if i % 2 == 0 else [BLUE_D, BLUE_E]
+ cyclic_slices.append(ParametricSurface(
+ lambda u, v: np.array([
+ np.sqrt(2) * np.cos(u) * np.cos(v),
+ np.sqrt(2) * np.cos(u) * np.sin(v),
+ np.sqrt(2) * np.sin(u)
+ ]),
+ v_min=PI/4 + PI/2 * i,
+ v_max=PI/4 + PI/2 * (i + 1),
+ u_min=-PI/2, u_max=PI/2,
+ checkerboard_colors=colors, resolution=(10,5)))
+
+ self.play(FadeOut(square), *map(Create, cyclic_slices))
+
+ cyclic_sphere = VGroup(*cyclic_slices)
+ for i in range(4):
+ self.play(Rotate(cyclic_sphere, PI/2))
+ self.wait()
+
+ new_axis_name = MathTex(r"r \in D_4")
+ # move to yz plane
+ new_axis_name.rotate(PI/2, axis = RIGHT)
+ new_axis_name.next_to(axis, OUT)
+ self.play(ReplacementTransform(axis_name, new_axis_name))
+
+ # reflection plane
+ self.play(FadeOut(cyclic_sphere), FadeIn(square))
+ plane = ParametricSurface(
+ lambda u, v: np.array([u, 0, v]),
+ u_min = -2, u_max = 2,
+ v_min = -2, v_max = 2,
+ fill_opacity=.3, resolution=(1,1))
+
+ plane_name = MathTex(r"\sigma \in D_4")
+ # move to yz plane
+ plane_name.rotate(PI/2, axis = RIGHT)
+ plane_name.next_to(plane, OUT + RIGHT)
+
+ self.play(Create(plane))
+ self.play(Write(plane_name))
+ self.wait()
+
+ self.move_camera(phi = 25 * DEGREES, theta = -75 * DEGREES)
+ self.wait()
+
+ condition = MathTex(r"(\sigma r)^2 = \mathbb{1}")
+ condition.next_to(square, DOWN);
+
+ self.play(Write(condition))
+ self.play(Rotate(square, PI/2))
+ self.play(Rotate(square, PI, RIGHT))
+
+ self.play(Rotate(square, PI/2))
+ self.play(Rotate(square, PI, RIGHT))
+ self.play(FadeOut(condition))
+
+ self.move_camera(phi = 75 * DEGREES, theta = -80 * DEGREES)
+
+ # create sphere from slices
+ dihedral_slices = []
+ for i in range(4):
+ for j in range(2):
+ colors = [PINK, RED] if i % 2 == 0 else [BLUE_D, BLUE_E]
+ dihedral_slices.append(ParametricSurface(
+ lambda u, v: np.array([
+ np.sqrt(2) * np.cos(u) * np.cos(v),
+ np.sqrt(2) * np.cos(u) * np.sin(v),
+ np.sqrt(2) * np.sin(u)
+ ]),
+ v_min=PI/2 * j + PI/4 + PI/2 * i,
+ v_max=PI/2 * j + PI/4 + PI/2 * (i + 1),
+ u_min=-PI/2 if j == 0 else 0,
+ u_max=0 if j == 0 else PI/2,
+ checkerboard_colors=colors, resolution=(10,5)))
+
+ dihedral_sphere = VGroup(*dihedral_slices)
+
+ self.play(FadeOut(square), Create(dihedral_sphere))
+
+ for i in range(2):
+ self.play(Rotate(dihedral_sphere, PI/2))
+ self.play(Rotate(dihedral_sphere, PI, RIGHT))
+ self.wait()
+
+ self.wait(2)
+ self.play(*map(FadeOut, [dihedral_sphere, plane, plane_name, new_axis_name]), FadeIn(square))
+ self.wait(3)
+ self.play(*map(FadeOut, [square, axis]))
+ self.wait(3)
+
+ def tetrahedron(self):
+ tet = Tetrahedron(edge_length=2)
+ self.play(FadeIn(tet))
+
+ self.move_camera(phi = 75 * DEGREES, theta = -100 * DEGREES)
+ self.begin_ambient_camera_rotation(rate=.1)
+
+ axes = []
+ for coord in tet.vertex_coords:
+ axes.append((-2 * coord, 2 * coord))
+
+ lines = [
+ Line3D(start=s, end=e) for s, e in axes
+ ]
+
+ self.play(*map(Create, lines))
+ self.wait()
+
+ for axis in axes:
+ self.play(Rotate(tet, 2*PI/3, axis=axis[1]))
+ self.play(Rotate(tet, 2*PI/3, axis=axis[1]))
+
+ self.wait(5)
+ self.stop_ambient_camera_rotation()
+ self.wait()
+ self.play(*map(Uncreate, lines))
+ self.play(FadeOut(tet))
+ self.wait(5)
+
+
+class AlgebraicSymmetries(Scene):
+ def construct(self):
+ self.wait(5)
+ self.cyclic()
+ # self.matrices()
+
+ def cyclic(self):
+ # show the i product
+ product = MathTex(
+ r"1", r"\cdot i &= i \\",
+ r"i \cdot i &= -1 \\",
+ r"-1 \cdot i &= -i \\",
+ r"-i \cdot i &= 1")
+ product.scale(1.5)
+
+ for part in product:
+ self.play(Write(part))
+ self.wait()
+
+ self.play(ApplyMethod(product.scale, 1/1.5))
+
+ # gather in group
+ group = MathTex(r"G = \left\{ 1, i, -1, -i \right\}")
+ self.play(ReplacementTransform(product, group))
+ self.wait(2)
+
+ # show C4
+ grouppow = MathTex(
+ r"G &= \left\{ 1, i, i^2, i^3 \right\} \\",
+ r"C_4 &= \left\{ \mathbb{1}, r, r^2, r^3 \right\}")
+ self.play(ReplacementTransform(group, grouppow[0]))
+ self.wait(2)
+
+ self.play(Write(grouppow[1]))
+ self.wait(4)
+
+ self.play(ApplyMethod(grouppow.to_edge, UP))
+
+ # define morphisms
+ morphism = MathTex(r"\phi: C_4 \to G \\")
+ morphism.shift(UP)
+ self.play(Write(morphism))
+ self.wait()
+
+ # show an example
+ mappings = MathTex(
+ r"\phi(\mathbb{1}) &= 1 \\",
+ r"\phi(r) &= i \\",
+ r"\phi(r^2) &= i^2 \\",
+ r"\phi(r^3) &= i^3 \\")
+ mappings.next_to(morphism, 2 * DOWN)
+
+ self.play(Write(mappings))
+ self.wait(3)
+ self.play(FadeOutAndShift(mappings, DOWN))
+
+ # more general definition
+ homomorphism = MathTex(
+ r"\phi(r\circ \mathbb{1}) &= \phi(r)\cdot\phi(\mathbb{1}) \\",
+ r"&= i\cdot 1")
+ homomorphism.next_to(morphism, DOWN).align_to(morphism, LEFT)
+ for part in homomorphism:
+ self.play(Write(part))
+ self.wait()
+
+ hom_bracegrp = VGroup(morphism, homomorphism)
+
+ self.play(
+ ApplyMethod(grouppow.shift, 3 * LEFT),
+ ApplyMethod(hom_bracegrp.shift, 3 * LEFT))
+
+ hom_brace = Brace(hom_bracegrp, direction=RIGHT)
+ hom_text = Tex("Homomorphismus").next_to(hom_brace.get_tip(), RIGHT)
+ hom_text_short = MathTex(r"\mathrm{Hom}(C_4, G)").next_to(hom_brace.get_tip(), RIGHT)
+
+ self.play(Create(hom_brace))
+ self.play(Write(hom_text))
+ self.wait()
+ self.play(ReplacementTransform(hom_text, hom_text_short))
+ self.wait()
+
+ # add the isomorphism part
+ isomorphism = Tex(r"\(\phi\) ist bijektiv")
+ isomorphism.next_to(homomorphism, DOWN).align_to(homomorphism, LEFT)
+ self.play(Write(isomorphism))
+
+ iso_bracegrp = VGroup(hom_bracegrp, isomorphism)
+
+ iso_brace = Brace(iso_bracegrp, RIGHT)
+ iso_text = Tex("Isomorphismus").next_to(iso_brace.get_tip(), RIGHT)
+ iso_text_short = MathTex("C_4 \cong G").next_to(iso_brace.get_tip(), RIGHT)
+
+ self.play(
+ ReplacementTransform(hom_brace, iso_brace),
+ ReplacementTransform(hom_text_short, iso_text))
+ self.wait()
+
+ self.play(ReplacementTransform(iso_text, iso_text_short))
+ self.wait()
+
+ # create a group for the whole
+ morphgrp = VGroup(iso_bracegrp, iso_brace, iso_text_short)
+
+ self.play(
+ ApplyMethod(grouppow.to_edge, LEFT),
+ ApplyMethod(morphgrp.to_edge, LEFT))
+
+ # draw a complex plane
+ plane = ComplexPlane(x_range = [-2.5, 2.5])
+ coordinates = plane.get_coordinate_labels(1, -1, 1j, -1j)
+
+ roots = list(map(lambda p: Dot(p, fill_color=PINK), (
+ [1, 0, 0], [0, 1, 0], [-1, 0, 0], [0, -1, 0]
+ )))
+
+ arrow = CurvedArrow(
+ 1.5 * np.array([m.cos(10 * DEGREES), m.sin(10 * DEGREES), 0]),
+ 1.5 * np.array([m.cos(80 * DEGREES), m.sin(80 * DEGREES), 0]))
+ arrowtext = MathTex("\cdot i")
+ arrowtext.move_to(2 / m.sqrt(2) * (UP + RIGHT))
+
+ square = Square().rotate(PI/4).scale(1/m.sqrt(2))
+ square.set_fill(PINK).set_opacity(.4)
+
+ figuregrp = VGroup(plane, square, arrow, arrowtext, *coordinates, *roots)
+ figuregrp.to_edge(RIGHT)
+
+ self.play(Create(plane))
+ self.play(
+ *map(Create, roots),
+ *map(Write, coordinates))
+ self.wait()
+ self.play(FadeIn(square), Create(arrow), Write(arrowtext))
+
+ for _ in range(4):
+ self.play(Rotate(square, PI/2))
+ self.wait(.5)
+
+ self.play(
+ *map(FadeOut, (square, arrow, arrowtext)),
+ *map(FadeOut, coordinates),
+ *map(FadeOut, roots))
+ self.play(Uncreate(plane))
+ self.play(
+ FadeOutAndShift(grouppow, RIGHT),
+ FadeOutAndShift(morphgrp, RIGHT))
+
+ modulo = MathTex(
+ r"\phi: C_4 &\to (\mathbb{Z}/4\mathbb{Z}, +) \\"
+ r"\phi(\mathbb{1} \circ r^2) &= 0 + 2 \pmod 4").scale(1.5)
+ self.play(Write(modulo))
+ self.wait(2)
+
+ self.play(FadeOut(modulo))
+ self.wait(3)
+
+ def matrices(self):
+ question = MathTex(
+ r"D_n &\cong \,? \\"
+ r"S_n &\cong \,? \\"
+ r"A_n &\cong \,?").scale(1.5)
+
+ answer = MathTex(
+ r"D_n &\cong \,?\\"
+ r"S_4 &\cong \mathrm{Aut}(Q_8) \\"
+ r"A_5 &\cong \mathrm{PSL}_2 (5)").scale(1.5)
+
+ self.play(Write(question))
+ self.wait()
+ self.play(ReplacementTransform(question, answer))
+
+ self.wait(3)
diff --git a/vorlesungen/punktgruppen/media/images/nosignal.jpg b/vorlesungen/punktgruppen/media/images/nosignal.jpg
new file mode 100644
index 0000000..2beeb8b
--- /dev/null
+++ b/vorlesungen/punktgruppen/media/images/nosignal.jpg
Binary files differ
diff --git a/vorlesungen/punktgruppen/poetry.lock b/vorlesungen/punktgruppen/poetry.lock
new file mode 100644
index 0000000..069d270
--- /dev/null
+++ b/vorlesungen/punktgruppen/poetry.lock
@@ -0,0 +1,743 @@
+[[package]]
+name = "certifi"
+version = "2020.12.5"
+description = "Python package for providing Mozilla's CA Bundle."
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "chardet"
+version = "4.0.0"
+description = "Universal encoding detector for Python 2 and 3"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[[package]]
+name = "click"
+version = "7.1.2"
+description = "Composable command line interface toolkit"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[[package]]
+name = "click-default-group"
+version = "1.2.2"
+description = "Extends click.Group to invoke a command without explicit subcommand name"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+click = "*"
+
+[[package]]
+name = "cloup"
+version = "0.7.1"
+description = "Option groups and subcommand help sections for pallets/click"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+click = ">=7.0,<9.0"
+
+[[package]]
+name = "colorama"
+version = "0.4.4"
+description = "Cross-platform colored terminal text."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[[package]]
+name = "colour"
+version = "0.1.5"
+description = "converts and manipulates various color representation (HSL, RVB, web, X11, ...)"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.extras]
+test = ["nose"]
+
+[[package]]
+name = "commonmark"
+version = "0.9.1"
+description = "Python parser for the CommonMark Markdown spec"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.extras]
+test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"]
+
+[[package]]
+name = "decorator"
+version = "4.4.2"
+description = "Decorators for Humans"
+category = "main"
+optional = false
+python-versions = ">=2.6, !=3.0.*, !=3.1.*"
+
+[[package]]
+name = "glcontext"
+version = "2.3.3"
+description = "Portable OpenGL Context"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "idna"
+version = "2.10"
+description = "Internationalized Domain Names in Applications (IDNA)"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[[package]]
+name = "importlib-metadata"
+version = "4.0.1"
+description = "Read metadata from Python packages"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""}
+zipp = ">=0.5"
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
+testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"]
+
+[[package]]
+name = "manim"
+version = "0.6.0"
+description = "Animation engine for explanatory math videos."
+category = "main"
+optional = false
+python-versions = ">=3.6.2,<4.0.0"
+
+[package.dependencies]
+click = ">=7.1,<8.0"
+click-default-group = "*"
+cloup = ">=0.7.0,<0.8.0"
+colour = "*"
+decorator = "<5.0.0"
+importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
+manimpango = ">=0.2.4,<0.3.0"
+mapbox-earcut = ">=0.12.10,<0.13.0"
+moderngl = ">=5.6.3,<6.0.0"
+moderngl-window = ">=2.3.0,<3.0.0"
+networkx = ">=2.5,<3.0"
+numpy = ">=1.9,<2.0"
+Pillow = "*"
+pycairo = ">=1.19,<2.0"
+pydub = "*"
+pygments = "*"
+requests = "*"
+rich = ">=6.0,<7.0"
+scipy = "*"
+tqdm = "*"
+watchdog = "*"
+
+[package.extras]
+webgl_renderer = ["grpcio (>=1.33.0,<1.34.0)", "grpcio-tools (>=1.33.0,<1.34.0)"]
+jupyterlab = ["jupyterlab (>=3.0,<4.0)"]
+
+[[package]]
+name = "manimpango"
+version = "0.2.6"
+description = "Bindings for Pango for using with Manim."
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "mapbox-earcut"
+version = "0.12.10"
+description = "Python bindings for the mapbox earcut C++ polygon triangulation library."
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+numpy = "*"
+
+[[package]]
+name = "moderngl"
+version = "5.6.4"
+description = "ModernGL: High performance rendering for Python 3"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+glcontext = ">=2,<3"
+
+[[package]]
+name = "moderngl-window"
+version = "2.3.0"
+description = "A cross platform helper library for ModernGL making window creation and resource loading simple"
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.dependencies]
+moderngl = "<6"
+numpy = ">=1.16,<2"
+Pillow = ">=5"
+pyglet = ">=1.5.8,<2"
+pyrr = ">=0.10.3,<1"
+
+[package.extras]
+pysdl2 = ["pysdl2"]
+pyside2 = ["PySide2 (<6)"]
+glfw = ["glfw"]
+pygame = ["pygame (==2.0.0.dev10)"]
+pyqt5 = ["pyqt5"]
+pywavefront = ["pywavefront (>=1.2.0,<2)"]
+tk = ["pyopengltk (>=0.0.3)"]
+trimesh = ["trimesh (>=3.2.6,<4)", "scipy (>=1.3.2)"]
+
+[[package]]
+name = "multipledispatch"
+version = "0.6.0"
+description = "Multiple dispatch"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+six = "*"
+
+[[package]]
+name = "networkx"
+version = "2.5.1"
+description = "Python package for creating and manipulating graphs and networks"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+decorator = ">=4.3,<5"
+
+[package.extras]
+all = ["numpy", "scipy", "pandas", "matplotlib", "pygraphviz", "pydot", "pyyaml", "lxml", "pytest"]
+gdal = ["gdal"]
+lxml = ["lxml"]
+matplotlib = ["matplotlib"]
+numpy = ["numpy"]
+pandas = ["pandas"]
+pydot = ["pydot"]
+pygraphviz = ["pygraphviz"]
+pytest = ["pytest"]
+pyyaml = ["pyyaml"]
+scipy = ["scipy"]
+
+[[package]]
+name = "numpy"
+version = "1.20.2"
+description = "NumPy is the fundamental package for array computing with Python."
+category = "main"
+optional = false
+python-versions = ">=3.7"
+
+[[package]]
+name = "pillow"
+version = "8.2.0"
+description = "Python Imaging Library (Fork)"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "pycairo"
+version = "1.20.0"
+description = "Python interface for cairo"
+category = "main"
+optional = false
+python-versions = ">=3.6, <4"
+
+[[package]]
+name = "pydub"
+version = "0.25.1"
+description = "Manipulate audio with an simple and easy high level interface"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "pyglet"
+version = "1.5.16"
+description = "Cross-platform windowing and multimedia library"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "pygments"
+version = "2.9.0"
+description = "Pygments is a syntax highlighting package written in Python."
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[[package]]
+name = "pyrr"
+version = "0.10.3"
+description = "3D mathematical functions using NumPy"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+multipledispatch = "*"
+numpy = "*"
+
+[[package]]
+name = "requests"
+version = "2.25.1"
+description = "Python HTTP for Humans."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[package.dependencies]
+certifi = ">=2017.4.17"
+chardet = ">=3.0.2,<5"
+idna = ">=2.5,<3"
+urllib3 = ">=1.21.1,<1.27"
+
+[package.extras]
+security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
+socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
+
+[[package]]
+name = "rich"
+version = "6.2.0"
+description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal"
+category = "main"
+optional = false
+python-versions = ">=3.6,<4.0"
+
+[package.dependencies]
+colorama = ">=0.4.0,<0.5.0"
+commonmark = ">=0.9.0,<0.10.0"
+pygments = ">=2.6.0,<3.0.0"
+typing-extensions = ">=3.7.4,<4.0.0"
+
+[package.extras]
+jupyter = ["ipywidgets (>=7.5.1,<8.0.0)"]
+
+[[package]]
+name = "scipy"
+version = "1.6.1"
+description = "SciPy: Scientific Library for Python"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+
+[package.dependencies]
+numpy = ">=1.16.5"
+
+[[package]]
+name = "six"
+version = "1.16.0"
+description = "Python 2 and 3 compatibility utilities"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
+
+[[package]]
+name = "tqdm"
+version = "4.60.0"
+description = "Fast, Extensible Progress Meter"
+category = "main"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
+
+[package.extras]
+dev = ["py-make (>=0.1.0)", "twine", "wheel"]
+notebook = ["ipywidgets (>=6)"]
+telegram = ["requests"]
+
+[[package]]
+name = "typing-extensions"
+version = "3.10.0.0"
+description = "Backported and Experimental Type Hints for Python 3.5+"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "urllib3"
+version = "1.26.4"
+description = "HTTP library with thread-safe connection pooling, file post, and more."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
+
+[package.extras]
+secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
+socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
+brotli = ["brotlipy (>=0.6.0)"]
+
+[[package]]
+name = "watchdog"
+version = "2.1.0"
+description = "Filesystem events monitoring"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.extras]
+watchmedo = ["PyYAML (>=3.10)", "argh (>=0.24.1)"]
+
+[[package]]
+name = "zipp"
+version = "3.4.1"
+description = "Backport of pathlib-compatible object wrapper for zip files"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
+testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-enabler", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]
+
+[metadata]
+lock-version = "1.1"
+python-versions = "^3.7"
+content-hash = "2d2a6db16cffc7cb06ce7290ad490f9555d4d7172f11fd77783e7a1f4fd933ed"
+
+[metadata.files]
+certifi = [
+ {file = "certifi-2020.12.5-py2.py3-none-any.whl", hash = "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"},
+ {file = "certifi-2020.12.5.tar.gz", hash = "sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c"},
+]
+chardet = [
+ {file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"},
+ {file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"},
+]
+click = [
+ {file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"},
+ {file = "click-7.1.2.tar.gz", hash = "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"},
+]
+click-default-group = [
+ {file = "click-default-group-1.2.2.tar.gz", hash = "sha256:d9560e8e8dfa44b3562fbc9425042a0fd6d21956fcc2db0077f63f34253ab904"},
+]
+cloup = [
+ {file = "cloup-0.7.1-py2.py3-none-any.whl", hash = "sha256:947c881ada77ea2f7b2876f7b5bb2fc7e5406daac5a045342acf8de35bcce5d7"},
+ {file = "cloup-0.7.1.tar.gz", hash = "sha256:f26cc500dda4e4c9444ac1008b82376df8d72ecfa43a6310a9b3d54ef98add7b"},
+]
+colorama = [
+ {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
+ {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
+]
+colour = [
+ {file = "colour-0.1.5-py2.py3-none-any.whl", hash = "sha256:33f6db9d564fadc16e59921a56999b79571160ce09916303d35346dddc17978c"},
+ {file = "colour-0.1.5.tar.gz", hash = "sha256:af20120fefd2afede8b001fbef2ea9da70ad7d49fafdb6489025dae8745c3aee"},
+]
+commonmark = [
+ {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"},
+ {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"},
+]
+decorator = [
+ {file = "decorator-4.4.2-py2.py3-none-any.whl", hash = "sha256:41fa54c2a0cc4ba648be4fd43cff00aedf5b9465c9bf18d64325bc225f08f760"},
+ {file = "decorator-4.4.2.tar.gz", hash = "sha256:e3a62f0520172440ca0dcc823749319382e377f37f140a0b99ef45fecb84bfe7"},
+]
+glcontext = [
+ {file = "glcontext-2.3.3-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:f518379551a2b60d45c1eec23759cb1ee85517d4b943fc31530b6ab13e304fe4"},
+ {file = "glcontext-2.3.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:d3a8fbc27f43766d168bae02474790459f4050adeb25832ff0a227cc5006c933"},
+ {file = "glcontext-2.3.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:aa1d9e4f9bd6eda3d195f39c47c849b3721caf65813a4ad1e006a20fa02d33e4"},
+ {file = "glcontext-2.3.3-cp35-cp35m-win32.whl", hash = "sha256:8b4ee9cb5573e2ae313e1681fdfe2c5ac5b8780b20e857daf8f95e318c36aa2f"},
+ {file = "glcontext-2.3.3-cp35-cp35m-win_amd64.whl", hash = "sha256:b92ca447a04c3a05afb3974a6e94f584e60f55444c3e55ecd31fbfacad6ee07a"},
+ {file = "glcontext-2.3.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b102a00e7bbce03a5e8bb02692197f96fcb77c51dbe133859b70afa361eef5b7"},
+ {file = "glcontext-2.3.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:ea3975a9d86a97b49f9524713c8e3f0df92044715cfbe5a24102e10762673b23"},
+ {file = "glcontext-2.3.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:5f2e7fb61ea1f69c44db0799f8929ea66ad207619c18063ae60cfb26ad0f447f"},
+ {file = "glcontext-2.3.3-cp36-cp36m-win32.whl", hash = "sha256:bf8c3fa5f3a8962c9bcc03a869a0bb178bd1681619225b9f0a070a65ff3f766d"},
+ {file = "glcontext-2.3.3-cp36-cp36m-win_amd64.whl", hash = "sha256:e0b637f2ac1c2dd1e0dbfcbad6d7be2dae75290f9af8f82aa67aa55b977766e1"},
+ {file = "glcontext-2.3.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2002d29dee90e9ba800c8699e13e1ff8b0fa1292a7c5bb0a98ef50b5f6cd3f14"},
+ {file = "glcontext-2.3.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:941be8972ad64e70080ad4702c037c64c09d1378ddd9b1b4576b957bc2d7f1c2"},
+ {file = "glcontext-2.3.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:0eb69c4add7f724017169bcefc2a8ef8ce053183e9384cc4770162e934090592"},
+ {file = "glcontext-2.3.3-cp37-cp37m-win32.whl", hash = "sha256:f63aed2116907225f7392921df790a391fd1a843cd1af0756dcd533e9d3ecf2b"},
+ {file = "glcontext-2.3.3-cp37-cp37m-win_amd64.whl", hash = "sha256:2fa9b939c15f5f7e63110a1021e8d20341c03921b8d3aebbb4bb191f11414d86"},
+ {file = "glcontext-2.3.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:44f95953bbd6a26caa9489b4f838b106470ede432c5ef837cd3e0d3657ca2a06"},
+ {file = "glcontext-2.3.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:843d3361bf46aec487f268bb7f680700166640995a82424fa86e53f428dc43ae"},
+ {file = "glcontext-2.3.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:be3e25a8595976699b6d30a2619ca4faf7bd5e60ff38dcd4445fa38a8f3b2cf9"},
+ {file = "glcontext-2.3.3-cp38-cp38-win32.whl", hash = "sha256:7abbd227bf9e4e62ec196360fa0f440143a66b7aae3d3deb7960b87aac654043"},
+ {file = "glcontext-2.3.3-cp38-cp38-win_amd64.whl", hash = "sha256:b91010d033789d1f876789e4aa4e6498e87cd284b4d0cb7a4aa1b7e620caaf57"},
+ {file = "glcontext-2.3.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0a851f569f165a13f8fedf60dd4f2831f7c2ffbb9bc9f867d6e0e3fdd1846c8d"},
+ {file = "glcontext-2.3.3-cp39-cp39-win32.whl", hash = "sha256:f36935ba84e8c52ed22bb9f683875bdf1690abd318ae704f40511f1afca5f71a"},
+ {file = "glcontext-2.3.3-cp39-cp39-win_amd64.whl", hash = "sha256:69e3a04c677e4925c0b6daf5efc5469a86d0982b05bb1d0ca29bce57f4aaf7d1"},
+ {file = "glcontext-2.3.3.tar.gz", hash = "sha256:f86a6c4ad99f941623911f964da74c443dc3f833fac7eb03cd485fae82acb80c"},
+]
+idna = [
+ {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
+ {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
+]
+importlib-metadata = [
+ {file = "importlib_metadata-4.0.1-py3-none-any.whl", hash = "sha256:d7eb1dea6d6a6086f8be21784cc9e3bcfa55872b52309bc5fad53a8ea444465d"},
+ {file = "importlib_metadata-4.0.1.tar.gz", hash = "sha256:8c501196e49fb9df5df43833bdb1e4328f64847763ec8a50703148b73784d581"},
+]
+manim = [
+ {file = "manim-0.6.0-py3-none-any.whl", hash = "sha256:402cb91b5a472204491086ca079163dcefdc491acb0559c098156b08f4e62d8b"},
+ {file = "manim-0.6.0.tar.gz", hash = "sha256:08bd27389f58312ab6d994e3a2910e77fa668c867c06da67135efe637f81c4a1"},
+]
+manimpango = [
+ {file = "ManimPango-0.2.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:2a2d0ba8ca06e761650076a0e0050743acb2f1fb163f9b7db52decf95d91ced8"},
+ {file = "ManimPango-0.2.6-cp36-cp36m-win32.whl", hash = "sha256:05c1d1af85d2016819f4ce40758d0ef6564baa121238ef6a88240ad96220a7a8"},
+ {file = "ManimPango-0.2.6-cp36-cp36m-win_amd64.whl", hash = "sha256:ed9cc957df9513d31b450acdb8f9bc76885ed5eae1a71d71e939c3133c14eb09"},
+ {file = "ManimPango-0.2.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e094d1f136f99408bb10bf4748ee6b51efba68e54e310096e75a8d38bb7ef111"},
+ {file = "ManimPango-0.2.6-cp37-cp37m-win32.whl", hash = "sha256:b2062fac21e968930cb91945a8bfcf4593a3152f8bea5d6950c6aa304eb831a7"},
+ {file = "ManimPango-0.2.6-cp37-cp37m-win_amd64.whl", hash = "sha256:76d1ab6c131389e91cc84e0d3c4f746978cd301237ddd1e463f9463ff872d17f"},
+ {file = "ManimPango-0.2.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:88bdd9c2714b94ee85da28002fd28122e4b26cb7ef74a48fe93d50cb06e8a35b"},
+ {file = "ManimPango-0.2.6-cp38-cp38-win32.whl", hash = "sha256:28165fd23d8cfe7e260affa8d240d63bf66808f96154507ba534548b47834208"},
+ {file = "ManimPango-0.2.6-cp38-cp38-win_amd64.whl", hash = "sha256:e74690f948c5fe2cc5e13f22683c1875155fee4a4a75c4e24ce1dc6e4f9f9883"},
+ {file = "ManimPango-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2297b1c829cfff6d91f5d32a7a8e903e30d0b28be8006e9f61fd653981ce7827"},
+ {file = "ManimPango-0.2.6-cp39-cp39-win32.whl", hash = "sha256:de974e2435d445b1244a713b7b6ce4383bc6c574e0a1b59a6f33b8a16d1a147e"},
+ {file = "ManimPango-0.2.6-cp39-cp39-win_amd64.whl", hash = "sha256:59a575fb28183fe68f3d8f5e93c98b7afa8e495eb0124ec09c660eef15adfcbb"},
+ {file = "ManimPango-0.2.6.tar.gz", hash = "sha256:64028b62b151bc80b047cc1757b27943498416dc4a85f073892a524b4d90ab41"},
+]
+mapbox-earcut = [
+ {file = "mapbox_earcut-0.12.10-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:2aaf7bdb002d36d38d1412088329a9176de3fcadc24a53951b76e49a27e34d78"},
+ {file = "mapbox_earcut-0.12.10-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ddda755c63cf5f9bff338cd375e4e937035898827fef960102e2f4c8984cb068"},
+ {file = "mapbox_earcut-0.12.10-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:3475382dd573986d0dfe3f6b6fd3b1f576e74af7fd7d95066d2506ce8f4b38e5"},
+ {file = "mapbox_earcut-0.12.10-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:f2b9079df53258766c3108a1c46a7942963c26f216f9bc2d216f93eeed1da76c"},
+ {file = "mapbox_earcut-0.12.10-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:124cc27486d0e9c9b185a6d80e551e736e2bc81d28e077e297ac39980c14e588"},
+ {file = "mapbox_earcut-0.12.10-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:04228ff704d5edc49d71ba3fd07c4a8621a4f416d2ad5c2504a80d0cabd51c18"},
+ {file = "mapbox_earcut-0.12.10-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:9a15cb52f3f6d5980e41b6ca31976cc2048acf290f2e5159d7527e16e5c5d748"},
+ {file = "mapbox_earcut-0.12.10-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:6b083a065afd40961cc311b425c54275f531d91a27bdd34a2049993a68d8a651"},
+ {file = "mapbox_earcut-0.12.10-cp35-cp35m-win32.whl", hash = "sha256:fa3355248d3beaab67438373315e55a37ecc2694a4a4b1965e9d8f582a210479"},
+ {file = "mapbox_earcut-0.12.10-cp35-cp35m-win_amd64.whl", hash = "sha256:90b2977a9eda2a1873e44d7821ecf3b18062aa0878e957cb306e6018aba105c9"},
+ {file = "mapbox_earcut-0.12.10-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:553688de45e73fa7d192fd6c29b87a4c5ea60a728b3c7b4c5f1715a89e6a8e54"},
+ {file = "mapbox_earcut-0.12.10-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:498b7f35c6a7c5c25829bcf1a79015ae64e94e8e36b84bd06e93131352b409f0"},
+ {file = "mapbox_earcut-0.12.10-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:8b9c6147249edf5049ccf7a7bca5bb29c9d512b3a5b62510659cfc51f1b8f806"},
+ {file = "mapbox_earcut-0.12.10-cp36-cp36m-win32.whl", hash = "sha256:4eaf2a9e86bbf808bf045eb587ec93a393e9d75ab87e7c1c9c8a5d9e122e30ac"},
+ {file = "mapbox_earcut-0.12.10-cp36-cp36m-win_amd64.whl", hash = "sha256:cb82e4ea9a67a9cdd46c9fc39bcb24e11f49569010368f9c5d376489bb2d0317"},
+ {file = "mapbox_earcut-0.12.10-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:619a31a4d9748a30fbea82fd45beec6ab9e7f8a7ae7818be46f09d03ea0d9185"},
+ {file = "mapbox_earcut-0.12.10-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:054cd56cf8adf179d0aa0e8a061774e5afa767aaf6507851f4d2731b58f03d43"},
+ {file = "mapbox_earcut-0.12.10-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:ebeef32d504bf7e1ba986f86d87a8d3c96a54b6e03b0535ccdf0ce8f2f56e563"},
+ {file = "mapbox_earcut-0.12.10-cp37-cp37m-win32.whl", hash = "sha256:62a8787e30f7bbc6e1ebe8b11591119ed85aa5044b2cf3f6afb058e6fffeb8a3"},
+ {file = "mapbox_earcut-0.12.10-cp37-cp37m-win_amd64.whl", hash = "sha256:5f854a887f854bdea62c4b58785b82cf70056d53dc3bf23146ce68c125ceed96"},
+ {file = "mapbox_earcut-0.12.10-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:19f16be13a40d20419362f8ce27cf2dca8f0b8f4c7caa24caaff8351bcdf853e"},
+ {file = "mapbox_earcut-0.12.10-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:cac7c8c332d1e802f478b5b79166ab38005b6d1bd908fb96857a8941e702f70d"},
+ {file = "mapbox_earcut-0.12.10-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:24cc595987932b5d47b93ddb733c6bd084d91ff0af66ff2205aa717f0a5a13b8"},
+ {file = "mapbox_earcut-0.12.10-cp38-cp38-win32.whl", hash = "sha256:fe4b4e1c53fe0fde8e5fee86d868344f47d4d9fd89d9599548ea4b98349f10d6"},
+ {file = "mapbox_earcut-0.12.10-cp38-cp38-win_amd64.whl", hash = "sha256:6f4601b949ab43cf21dca86ffb6b4e2b30974ab3112f089d16b5f365e8b446f4"},
+ {file = "mapbox_earcut-0.12.10-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ca00bdcb162b6a543f3061f49e2dcde42d6b780a545b5054da437e4ff5e33905"},
+ {file = "mapbox_earcut-0.12.10-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:031132cdfa4d20e640f24d6817b65a91e3292c34ed527b4309617c9992284133"},
+ {file = "mapbox_earcut-0.12.10-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:f284c0fc7f3c84664e9dddabae4eae729e6458e96ec5f30c9d7000c9b0dadca7"},
+ {file = "mapbox_earcut-0.12.10-cp39-cp39-win32.whl", hash = "sha256:c94a263767a841a5f7e8f03c725bdf41c87b8936c1a5fe18a5a77f3b9344d68f"},
+ {file = "mapbox_earcut-0.12.10-cp39-cp39-win_amd64.whl", hash = "sha256:742bd1f94113f44f1adcb5f3e2dca6e288695645b7eeab5d94f589dacda092af"},
+ {file = "mapbox_earcut-0.12.10-pp27-pypy_73-macosx_10_9_x86_64.whl", hash = "sha256:ad76defd6188e71023e43e5aed32ab5d540c0452a74918fc5de9bcccdee6c053"},
+ {file = "mapbox_earcut-0.12.10-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:a3a9a81f696627f3c331f16c8d628b494949fa68067a42d2f1a6a56ee115eb0d"},
+ {file = "mapbox_earcut-0.12.10-pp27-pypy_73-win32.whl", hash = "sha256:044f70ed230bdb94f08356ec84f4bd30e4ea493d63700c3cc6fa86c5cf57623e"},
+ {file = "mapbox_earcut-0.12.10-pp36-pypy36_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e352482e6022cc113dd008886012f0966bd2511933f888805fa87f070423d5b1"},
+ {file = "mapbox_earcut-0.12.10-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:41a282c485e96135ff15c01e0e1eb334cf1a05235edde8154b7b6e30187e54f4"},
+ {file = "mapbox_earcut-0.12.10-pp36-pypy36_pp73-win32.whl", hash = "sha256:5e1e3cf5a881eafeba7a7e5c4b1b9e7376710c48513513894e2a082ebf870326"},
+ {file = "mapbox_earcut-0.12.10-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7b6c2bfc28dc82a27071079885ffbe0836c0ad5dbd4ab47a5edaa24a86218daf"},
+ {file = "mapbox_earcut-0.12.10-pp37-pypy37_pp73-manylinux2010_x86_64.whl", hash = "sha256:6e6614f7b437b4b0a69ab642cf35569079408ac25c193013d5ad26e82c71fc01"},
+ {file = "mapbox_earcut-0.12.10-pp37-pypy37_pp73-win32.whl", hash = "sha256:d016823e863309b9cc542bb1d3bcdc274ec65fb23f2566de298188dcd4a75c0e"},
+ {file = "mapbox_earcut-0.12.10.tar.gz", hash = "sha256:50d995673ac9ce8cb9abb7ab64b709d611c1d27557907e00b631b5272345c453"},
+]
+moderngl = [
+ {file = "moderngl-5.6.4-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:bc3764d67f037b67051871345a1d0b7a3d2c19cb5c0c0af0a84c532e802d6642"},
+ {file = "moderngl-5.6.4-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:90006d9dfd5333da604a7d26b2a5e70e1a570f291cd745b8bf80e4833d8821b6"},
+ {file = "moderngl-5.6.4-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:af44437545380a840dafd09658eb56592831dbd4fb481d320249d0d42c591bae"},
+ {file = "moderngl-5.6.4-cp35-cp35m-win32.whl", hash = "sha256:b5023633bcbfbab90be6a6f4edcde75f9c1e244d9acbda94678f3e3fb238b363"},
+ {file = "moderngl-5.6.4-cp35-cp35m-win_amd64.whl", hash = "sha256:ffc48fc4deeb525ed33a828d13ca4c12c5af8e5cb0449011f1802e18b5fc3c25"},
+ {file = "moderngl-5.6.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:331fd4bce60b10a08eed81a3ed4c70b7c297c38f981fdf3968d03a1c892af247"},
+ {file = "moderngl-5.6.4-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:1bd864b5cc2fc1255785e33575cec98fa5ded698503c4f8f3fa9230abeaa3a04"},
+ {file = "moderngl-5.6.4-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:b22534529f5bc52c1fe43336787c06d51123ae978fb56e74e47cabd85056c934"},
+ {file = "moderngl-5.6.4-cp36-cp36m-win32.whl", hash = "sha256:ee5b1eced39d7f6dc68782c2abf01c1130a40b6d83d333d175ee71adbea7c721"},
+ {file = "moderngl-5.6.4-cp36-cp36m-win_amd64.whl", hash = "sha256:52ee915a559762f0e992344961b35e0d241be32f8aa7464494e958f777e0534c"},
+ {file = "moderngl-5.6.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f83f6ab1fafdba2d9c06a7a1c8a4e460689ea1d514146606acc74f14e0831d93"},
+ {file = "moderngl-5.6.4-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:c350e06affea9fabc636b2350cf6e58d83ee2e7264527eee0f5d142c167f5463"},
+ {file = "moderngl-5.6.4-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:3eb65afc8ec4a1d4a4c48696fb0f4f6cf7a7ada6bef97818d717dbca73c57b11"},
+ {file = "moderngl-5.6.4-cp37-cp37m-win32.whl", hash = "sha256:4fd721eb83e73d34c3f7b5a11aec656fef461b51bbe7503b07ea27370c593cbd"},
+ {file = "moderngl-5.6.4-cp37-cp37m-win_amd64.whl", hash = "sha256:01c71d94dbd59b5d37ead463991e2998c0924426cffa393b9da2b8334551c998"},
+ {file = "moderngl-5.6.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d2ec6ecd845f21ba44a08c11521cb71f2a9c2ea2ec189b7ed30d17837d392d70"},
+ {file = "moderngl-5.6.4-cp38-cp38-manylinux1_i686.whl", hash = "sha256:40f74a2246e5302f93f2d46f76c0d2a26cbed1eb29731674c4052476f1e9c9ea"},
+ {file = "moderngl-5.6.4-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:5e158e6881034c7e1d0c583d7c82ff608439606f2359dc6098e4be4fd93cef9d"},
+ {file = "moderngl-5.6.4-cp38-cp38-win32.whl", hash = "sha256:a28dc741469eeb69549ee85b4ddbf8e9cfca6a2b19ce0406df9fde20f78082c8"},
+ {file = "moderngl-5.6.4-cp38-cp38-win_amd64.whl", hash = "sha256:ce87962b91635d857cac4a753c5d5f647d94dc66dcb0f090bb8d758fd226c3e8"},
+ {file = "moderngl-5.6.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3fb139bcdd25eae2c546e5788e9d8719f6c4b18a2ba68a9df31699b4ac57d62d"},
+ {file = "moderngl-5.6.4-cp39-cp39-win32.whl", hash = "sha256:fc5cc1601a3df8f45f1901c6b9960731e0619d1781b0d036e12341fbf2ef55d3"},
+ {file = "moderngl-5.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:1c74b71c9acee9f0e69807a086d76e92f37c1960c3bb1d6a6e2472fd03f7be5b"},
+ {file = "moderngl-5.6.4.tar.gz", hash = "sha256:8c6d04559f5e3bf75a18525cd46d213c0f3a8409363718978e6de691bdb551fb"},
+]
+moderngl-window = [
+ {file = "moderngl_window-2.3.0-py3-none-any.whl", hash = "sha256:79056e6b6a1e8c540031166d2ec308a40806baf461e5d492730966c3cf372a31"},
+]
+multipledispatch = [
+ {file = "multipledispatch-0.6.0-py2-none-any.whl", hash = "sha256:407e6d8c5fa27075968ba07c4db3ef5f02bea4e871e959570eeb69ee39a6565b"},
+ {file = "multipledispatch-0.6.0-py3-none-any.whl", hash = "sha256:a55c512128fb3f7c2efd2533f2550accb93c35f1045242ef74645fc92a2c3cba"},
+ {file = "multipledispatch-0.6.0.tar.gz", hash = "sha256:a7ab1451fd0bf9b92cab3edbd7b205622fb767aeefb4fb536c2e3de9e0a38bea"},
+]
+networkx = [
+ {file = "networkx-2.5.1-py3-none-any.whl", hash = "sha256:0635858ed7e989f4c574c2328380b452df892ae85084144c73d8cd819f0c4e06"},
+ {file = "networkx-2.5.1.tar.gz", hash = "sha256:109cd585cac41297f71103c3c42ac6ef7379f29788eb54cb751be5a663bb235a"},
+]
+numpy = [
+ {file = "numpy-1.20.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e9459f40244bb02b2f14f6af0cd0732791d72232bbb0dc4bab57ef88e75f6935"},
+ {file = "numpy-1.20.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:a8e6859913ec8eeef3dbe9aed3bf475347642d1cdd6217c30f28dee8903528e6"},
+ {file = "numpy-1.20.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:9cab23439eb1ebfed1aaec9cd42b7dc50fc96d5cd3147da348d9161f0501ada5"},
+ {file = "numpy-1.20.2-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:9c0fab855ae790ca74b27e55240fe4f2a36a364a3f1ebcfd1fb5ac4088f1cec3"},
+ {file = "numpy-1.20.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:61d5b4cf73622e4d0c6b83408a16631b670fc045afd6540679aa35591a17fe6d"},
+ {file = "numpy-1.20.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:d15007f857d6995db15195217afdbddfcd203dfaa0ba6878a2f580eaf810ecd6"},
+ {file = "numpy-1.20.2-cp37-cp37m-win32.whl", hash = "sha256:d76061ae5cab49b83a8cf3feacefc2053fac672728802ac137dd8c4123397677"},
+ {file = "numpy-1.20.2-cp37-cp37m-win_amd64.whl", hash = "sha256:bad70051de2c50b1a6259a6df1daaafe8c480ca98132da98976d8591c412e737"},
+ {file = "numpy-1.20.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:719656636c48be22c23641859ff2419b27b6bdf844b36a2447cb39caceb00935"},
+ {file = "numpy-1.20.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:aa046527c04688af680217fffac61eec2350ef3f3d7320c07fd33f5c6e7b4d5f"},
+ {file = "numpy-1.20.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:2428b109306075d89d21135bdd6b785f132a1f5a3260c371cee1fae427e12727"},
+ {file = "numpy-1.20.2-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:e8e4fbbb7e7634f263c5b0150a629342cc19b47c5eba8d1cd4363ab3455ab576"},
+ {file = "numpy-1.20.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:edb1f041a9146dcf02cd7df7187db46ab524b9af2515f392f337c7cbbf5b52cd"},
+ {file = "numpy-1.20.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:c73a7975d77f15f7f68dacfb2bca3d3f479f158313642e8ea9058eea06637931"},
+ {file = "numpy-1.20.2-cp38-cp38-win32.whl", hash = "sha256:6c915ee7dba1071554e70a3664a839fbc033e1d6528199d4621eeaaa5487ccd2"},
+ {file = "numpy-1.20.2-cp38-cp38-win_amd64.whl", hash = "sha256:471c0571d0895c68da309dacee4e95a0811d0a9f9f532a48dc1bea5f3b7ad2b7"},
+ {file = "numpy-1.20.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4703b9e937df83f5b6b7447ca5912b5f5f297aba45f91dbbbc63ff9278c7aa98"},
+ {file = "numpy-1.20.2-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:abc81829c4039e7e4c30f7897938fa5d4916a09c2c7eb9b244b7a35ddc9656f4"},
+ {file = "numpy-1.20.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:377751954da04d4a6950191b20539066b4e19e3b559d4695399c5e8e3e683bf6"},
+ {file = "numpy-1.20.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:6e51e417d9ae2e7848314994e6fc3832c9d426abce9328cf7571eefceb43e6c9"},
+ {file = "numpy-1.20.2-cp39-cp39-win32.whl", hash = "sha256:780ae5284cb770ade51d4b4a7dce4faa554eb1d88a56d0e8b9f35fca9b0270ff"},
+ {file = "numpy-1.20.2-cp39-cp39-win_amd64.whl", hash = "sha256:924dc3f83de20437de95a73516f36e09918e9c9c18d5eac520062c49191025fb"},
+ {file = "numpy-1.20.2-pp37-pypy37_pp73-manylinux2010_x86_64.whl", hash = "sha256:97ce8b8ace7d3b9288d88177e66ee75480fb79b9cf745e91ecfe65d91a856042"},
+ {file = "numpy-1.20.2.zip", hash = "sha256:878922bf5ad7550aa044aa9301d417e2d3ae50f0f577de92051d739ac6096cee"},
+]
+pillow = [
+ {file = "Pillow-8.2.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:dc38f57d8f20f06dd7c3161c59ca2c86893632623f33a42d592f097b00f720a9"},
+ {file = "Pillow-8.2.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:a013cbe25d20c2e0c4e85a9daf438f85121a4d0344ddc76e33fd7e3965d9af4b"},
+ {file = "Pillow-8.2.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8bb1e155a74e1bfbacd84555ea62fa21c58e0b4e7e6b20e4447b8d07990ac78b"},
+ {file = "Pillow-8.2.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:c5236606e8570542ed424849f7852a0ff0bce2c4c8d0ba05cc202a5a9c97dee9"},
+ {file = "Pillow-8.2.0-cp36-cp36m-win32.whl", hash = "sha256:12e5e7471f9b637762453da74e390e56cc43e486a88289995c1f4c1dc0bfe727"},
+ {file = "Pillow-8.2.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5afe6b237a0b81bd54b53f835a153770802f164c5570bab5e005aad693dab87f"},
+ {file = "Pillow-8.2.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:cb7a09e173903541fa888ba010c345893cd9fc1b5891aaf060f6ca77b6a3722d"},
+ {file = "Pillow-8.2.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:0d19d70ee7c2ba97631bae1e7d4725cdb2ecf238178096e8c82ee481e189168a"},
+ {file = "Pillow-8.2.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:083781abd261bdabf090ad07bb69f8f5599943ddb539d64497ed021b2a67e5a9"},
+ {file = "Pillow-8.2.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:c6b39294464b03457f9064e98c124e09008b35a62e3189d3513e5148611c9388"},
+ {file = "Pillow-8.2.0-cp37-cp37m-win32.whl", hash = "sha256:01425106e4e8cee195a411f729cff2a7d61813b0b11737c12bd5991f5f14bcd5"},
+ {file = "Pillow-8.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:3b570f84a6161cf8865c4e08adf629441f56e32f180f7aa4ccbd2e0a5a02cba2"},
+ {file = "Pillow-8.2.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:031a6c88c77d08aab84fecc05c3cde8414cd6f8406f4d2b16fed1e97634cc8a4"},
+ {file = "Pillow-8.2.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:66cc56579fd91f517290ab02c51e3a80f581aba45fd924fcdee01fa06e635812"},
+ {file = "Pillow-8.2.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:6c32cc3145928c4305d142ebec682419a6c0a8ce9e33db900027ddca1ec39178"},
+ {file = "Pillow-8.2.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:624b977355cde8b065f6d51b98497d6cd5fbdd4f36405f7a8790e3376125e2bb"},
+ {file = "Pillow-8.2.0-cp38-cp38-win32.whl", hash = "sha256:5cbf3e3b1014dddc45496e8cf38b9f099c95a326275885199f427825c6522232"},
+ {file = "Pillow-8.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:463822e2f0d81459e113372a168f2ff59723e78528f91f0bd25680ac185cf797"},
+ {file = "Pillow-8.2.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:95d5ef984eff897850f3a83883363da64aae1000e79cb3c321915468e8c6add5"},
+ {file = "Pillow-8.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b91c36492a4bbb1ee855b7d16fe51379e5f96b85692dc8210831fbb24c43e484"},
+ {file = "Pillow-8.2.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:d68cb92c408261f806b15923834203f024110a2e2872ecb0bd2a110f89d3c602"},
+ {file = "Pillow-8.2.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f217c3954ce5fd88303fc0c317af55d5e0204106d86dea17eb8205700d47dec2"},
+ {file = "Pillow-8.2.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:5b70110acb39f3aff6b74cf09bb4169b167e2660dabc304c1e25b6555fa781ef"},
+ {file = "Pillow-8.2.0-cp39-cp39-win32.whl", hash = "sha256:a7d5e9fad90eff8f6f6106d3b98b553a88b6f976e51fce287192a5d2d5363713"},
+ {file = "Pillow-8.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:238c197fc275b475e87c1453b05b467d2d02c2915fdfdd4af126145ff2e4610c"},
+ {file = "Pillow-8.2.0-pp36-pypy36_pp73-macosx_10_10_x86_64.whl", hash = "sha256:0e04d61f0064b545b989126197930807c86bcbd4534d39168f4aa5fda39bb8f9"},
+ {file = "Pillow-8.2.0-pp36-pypy36_pp73-manylinux2010_i686.whl", hash = "sha256:63728564c1410d99e6d1ae8e3b810fe012bc440952168af0a2877e8ff5ab96b9"},
+ {file = "Pillow-8.2.0-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:c03c07ed32c5324939b19e36ae5f75c660c81461e312a41aea30acdd46f93a7c"},
+ {file = "Pillow-8.2.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:4d98abdd6b1e3bf1a1cbb14c3895226816e666749ac040c4e2554231068c639b"},
+ {file = "Pillow-8.2.0-pp37-pypy37_pp73-manylinux2010_i686.whl", hash = "sha256:aac00e4bc94d1b7813fe882c28990c1bc2f9d0e1aa765a5f2b516e8a6a16a9e4"},
+ {file = "Pillow-8.2.0-pp37-pypy37_pp73-manylinux2010_x86_64.whl", hash = "sha256:22fd0f42ad15dfdde6c581347eaa4adb9a6fc4b865f90b23378aa7914895e120"},
+ {file = "Pillow-8.2.0-pp37-pypy37_pp73-win32.whl", hash = "sha256:e98eca29a05913e82177b3ba3d198b1728e164869c613d76d0de4bde6768a50e"},
+ {file = "Pillow-8.2.0.tar.gz", hash = "sha256:a787ab10d7bb5494e5f76536ac460741788f1fbce851068d73a87ca7c35fc3e1"},
+]
+pycairo = [
+ {file = "pycairo-1.20.0-cp36-cp36m-win32.whl", hash = "sha256:e5a3433690c473e073a9917dc8f1fc7dc8b9af7b201bf372894b8ad70d960c6d"},
+ {file = "pycairo-1.20.0-cp36-cp36m-win_amd64.whl", hash = "sha256:a942614923b88ae75c794506d5c426fba9c46a055d3fdd3b8db7046b75c079cc"},
+ {file = "pycairo-1.20.0-cp37-cp37m-win32.whl", hash = "sha256:8cfa9578b745fb9cf2915ec580c2c50ebc2da00eac2cf4c4b54b63aa19da4b77"},
+ {file = "pycairo-1.20.0-cp37-cp37m-win_amd64.whl", hash = "sha256:273a33c56aba724ec42fe1d8f94c86c2e2660c1277470be9b04e5113d7c5b72d"},
+ {file = "pycairo-1.20.0-cp38-cp38-win32.whl", hash = "sha256:2088100a099c09c5e90bf247409ce6c98f51766b53bd13f96d6aac7addaa3e66"},
+ {file = "pycairo-1.20.0-cp38-cp38-win_amd64.whl", hash = "sha256:ceb1edcbeb48dabd5fbbdff2e4b429aa88ddc493d6ebafe78d94b050ac0749e2"},
+ {file = "pycairo-1.20.0-cp39-cp39-win32.whl", hash = "sha256:57a768f4edc8a9890d98070dd473a812ac3d046cef4bc1c817d68024dab9a9b4"},
+ {file = "pycairo-1.20.0-cp39-cp39-win_amd64.whl", hash = "sha256:57166119e424d71eccdba6b318bd731bdabd17188e2ba10d4f315f7bf16ace3f"},
+ {file = "pycairo-1.20.0.tar.gz", hash = "sha256:5695a10cb7f9ae0d01f665b56602a845b0a8cb17e2123bfece10c2e58552468c"},
+]
+pydub = [
+ {file = "pydub-0.25.1-py2.py3-none-any.whl", hash = "sha256:65617e33033874b59d87db603aa1ed450633288aefead953b30bded59cb599a6"},
+ {file = "pydub-0.25.1.tar.gz", hash = "sha256:980a33ce9949cab2a569606b65674d748ecbca4f0796887fd6f46173a7b0d30f"},
+]
+pyglet = [
+ {file = "pyglet-1.5.16-py3-none-any.whl", hash = "sha256:37cced6f4f7e30e7ace73779d068c86b3dc26f1a28b602016d37113ae830d7f8"},
+ {file = "pyglet-1.5.16.zip", hash = "sha256:ad4a02d6fbebdaa748f8af6d2d388d64d446b6ccdfb9c0d7dfd49d7164913400"},
+]
+pygments = [
+ {file = "Pygments-2.9.0-py3-none-any.whl", hash = "sha256:d66e804411278594d764fc69ec36ec13d9ae9147193a1740cd34d272ca383b8e"},
+ {file = "Pygments-2.9.0.tar.gz", hash = "sha256:a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f"},
+]
+pyrr = [
+ {file = "pyrr-0.10.3-py3-none-any.whl", hash = "sha256:d8af23fb9bb29262405845e1c98f7339fbba5e49323b98528bd01160a75c65ac"},
+ {file = "pyrr-0.10.3.tar.gz", hash = "sha256:3c0f7b20326e71f706a610d58f2190fff73af01eef60c19cb188b186f0ec7e1d"},
+]
+requests = [
+ {file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"},
+ {file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"},
+]
+rich = [
+ {file = "rich-6.2.0-py3-none-any.whl", hash = "sha256:fa55d5d6ba9a0df1f1c95518891b57b13f1d45548a9a198a87b093fceee513ec"},
+ {file = "rich-6.2.0.tar.gz", hash = "sha256:f99c877277906e1ff83b135c564920590ba31188f424dcdb5d1cae652a519b4b"},
+]
+scipy = [
+ {file = "scipy-1.6.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a15a1f3fc0abff33e792d6049161b7795909b40b97c6cc2934ed54384017ab76"},
+ {file = "scipy-1.6.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:e79570979ccdc3d165456dd62041d9556fb9733b86b4b6d818af7a0afc15f092"},
+ {file = "scipy-1.6.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:a423533c55fec61456dedee7b6ee7dce0bb6bfa395424ea374d25afa262be261"},
+ {file = "scipy-1.6.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:33d6b7df40d197bdd3049d64e8e680227151673465e5d85723b3b8f6b15a6ced"},
+ {file = "scipy-1.6.1-cp37-cp37m-win32.whl", hash = "sha256:6725e3fbb47da428794f243864f2297462e9ee448297c93ed1dcbc44335feb78"},
+ {file = "scipy-1.6.1-cp37-cp37m-win_amd64.whl", hash = "sha256:5fa9c6530b1661f1370bcd332a1e62ca7881785cc0f80c0d559b636567fab63c"},
+ {file = "scipy-1.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bd50daf727f7c195e26f27467c85ce653d41df4358a25b32434a50d8870fc519"},
+ {file = "scipy-1.6.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:f46dd15335e8a320b0fb4685f58b7471702234cba8bb3442b69a3e1dc329c345"},
+ {file = "scipy-1.6.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:0e5b0ccf63155d90da576edd2768b66fb276446c371b73841e3503be1d63fb5d"},
+ {file = "scipy-1.6.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:2481efbb3740977e3c831edfd0bd9867be26387cacf24eb5e366a6a374d3d00d"},
+ {file = "scipy-1.6.1-cp38-cp38-win32.whl", hash = "sha256:68cb4c424112cd4be886b4d979c5497fba190714085f46b8ae67a5e4416c32b4"},
+ {file = "scipy-1.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:5f331eeed0297232d2e6eea51b54e8278ed8bb10b099f69c44e2558c090d06bf"},
+ {file = "scipy-1.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0c8a51d33556bf70367452d4d601d1742c0e806cd0194785914daf19775f0e67"},
+ {file = "scipy-1.6.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:83bf7c16245c15bc58ee76c5418e46ea1811edcc2e2b03041b804e46084ab627"},
+ {file = "scipy-1.6.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:794e768cc5f779736593046c9714e0f3a5940bc6dcc1dba885ad64cbfb28e9f0"},
+ {file = "scipy-1.6.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:5da5471aed911fe7e52b86bf9ea32fb55ae93e2f0fac66c32e58897cfb02fa07"},
+ {file = "scipy-1.6.1-cp39-cp39-win32.whl", hash = "sha256:8e403a337749ed40af60e537cc4d4c03febddcc56cd26e774c9b1b600a70d3e4"},
+ {file = "scipy-1.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:a5193a098ae9f29af283dcf0041f762601faf2e595c0db1da929875b7570353f"},
+ {file = "scipy-1.6.1.tar.gz", hash = "sha256:c4fceb864890b6168e79b0e714c585dbe2fd4222768ee90bc1aa0f8218691b11"},
+]
+six = [
+ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
+ {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
+]
+tqdm = [
+ {file = "tqdm-4.60.0-py2.py3-none-any.whl", hash = "sha256:daec693491c52e9498632dfbe9ccfc4882a557f5fa08982db1b4d3adbe0887c3"},
+ {file = "tqdm-4.60.0.tar.gz", hash = "sha256:ebdebdb95e3477ceea267decfc0784859aa3df3e27e22d23b83e9b272bf157ae"},
+]
+typing-extensions = [
+ {file = "typing_extensions-3.10.0.0-py2-none-any.whl", hash = "sha256:0ac0f89795dd19de6b97debb0c6af1c70987fd80a2d62d1958f7e56fcc31b497"},
+ {file = "typing_extensions-3.10.0.0-py3-none-any.whl", hash = "sha256:779383f6086d90c99ae41cf0ff39aac8a7937a9283ce0a414e5dd782f4c94a84"},
+ {file = "typing_extensions-3.10.0.0.tar.gz", hash = "sha256:50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342"},
+]
+urllib3 = [
+ {file = "urllib3-1.26.4-py2.py3-none-any.whl", hash = "sha256:2f4da4594db7e1e110a944bb1b551fdf4e6c136ad42e4234131391e21eb5b0df"},
+ {file = "urllib3-1.26.4.tar.gz", hash = "sha256:e7b021f7241115872f92f43c6508082facffbd1c048e3c6e2bb9c2a157e28937"},
+]
+watchdog = [
+ {file = "watchdog-2.1.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:af1d42ac65bf3f851d787e723a950d9c878c4ef0ff3381a2196d36b0c4b6d39c"},
+ {file = "watchdog-2.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8a75022cacbd0ad66ab8a9059322a76a43164ea020b373cbc28ddbacf9410b14"},
+ {file = "watchdog-2.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:37bf90ef22b666fb0b5c1ea4375c9cbf43f1ff72489a91bf6f0370ba13e09b2a"},
+ {file = "watchdog-2.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:66193c811498ff539d0312091bdcbd98cce03b5425b8fa918c80f21a278e8358"},
+ {file = "watchdog-2.1.0-pp36-pypy36_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5472ee2d23eaedf16c4b5088897cd9f50cd502074f508011180466d678cdf62a"},
+ {file = "watchdog-2.1.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a079aceede99b83a4cf4089f6e2243c864f368b60f4cce7bf46286f3cfcc8947"},
+ {file = "watchdog-2.1.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:da1ca0845bbc92606b08a08988d8dbcba514a16c209be29d211b13cf0d5be2fd"},
+ {file = "watchdog-2.1.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:5a62491c035646130c290a4cb773d7de103ac0202ac8305404bdb7db17ab5c3f"},
+ {file = "watchdog-2.1.0-py3-none-manylinux2014_i686.whl", hash = "sha256:8c8ff287308a2ba5148aa450d742198d838636b65de52edd3eccfa4c86bf8004"},
+ {file = "watchdog-2.1.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:05544fdd1cdc00b5231fb564f17428c5d502756419008cb8045be5b297eac21c"},
+ {file = "watchdog-2.1.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:8ab111b71fba4f8f77baa39d42bf923d085f64869396497518c43297fe1ec4e7"},
+ {file = "watchdog-2.1.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:06ee7b77a8169f9828f8d24fc3d3d99b2216e1d2f7085b5913022a55161da758"},
+ {file = "watchdog-2.1.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:c2d37a9df96d8f9ea560c0824f179168d8501f3e614b5e9f2168b38fe6ef3c12"},
+ {file = "watchdog-2.1.0-py3-none-win32.whl", hash = "sha256:6c6fa079abddea664f7ecda0a02636ca276f095bd26f474c23b3f968f1e938ec"},
+ {file = "watchdog-2.1.0-py3-none-win_amd64.whl", hash = "sha256:80afa2b32aac3abc7fb6ced508fc612997a0c8fb0f497217d54c524ff52e9e3a"},
+ {file = "watchdog-2.1.0-py3-none-win_ia64.whl", hash = "sha256:b8fb08629f52d3e0a060b93d711824f2b06fb8e0d09ad453f2a93d0c97d6b1ec"},
+ {file = "watchdog-2.1.0.tar.gz", hash = "sha256:55316efab52f659b8b7b59730680bfb27ac003522f24c44f6bcd60c4e3736ccd"},
+]
+zipp = [
+ {file = "zipp-3.4.1-py3-none-any.whl", hash = "sha256:51cb66cc54621609dd593d1787f286ee42a5c0adbb4b29abea5a63edc3e03098"},
+ {file = "zipp-3.4.1.tar.gz", hash = "sha256:3607921face881ba3e026887d8150cca609d517579abe052ac81fc5aeffdbd76"},
+]
diff --git a/vorlesungen/punktgruppen/pyproject.toml b/vorlesungen/punktgruppen/pyproject.toml
new file mode 100644
index 0000000..527eb57
--- /dev/null
+++ b/vorlesungen/punktgruppen/pyproject.toml
@@ -0,0 +1,15 @@
+[tool.poetry]
+name = "presentation"
+version = "0.1.0"
+description = ""
+authors = ["Nao Pross <np@0hm.ch>"]
+
+[tool.poetry.dependencies]
+python = "^3.7"
+manim = "^0.6.0"
+
+[tool.poetry.dev-dependencies]
+
+[build-system]
+requires = ["poetry-core>=1.0.0"]
+build-backend = "poetry.core.masonry.api"
diff --git a/vorlesungen/punktgruppen/script.pdf b/vorlesungen/punktgruppen/script.pdf
new file mode 100644
index 0000000..91993fb
--- /dev/null
+++ b/vorlesungen/punktgruppen/script.pdf
Binary files differ
diff --git a/vorlesungen/punktgruppen/script.tex b/vorlesungen/punktgruppen/script.tex
new file mode 100644
index 0000000..bc50e21
--- /dev/null
+++ b/vorlesungen/punktgruppen/script.tex
@@ -0,0 +1,214 @@
+\documentclass[a4paper]{article}
+
+\usepackage{amsmath}
+\usepackage{amssymb}
+
+\usepackage[cm]{manuscript}
+\usepackage{xcolor}
+
+\newcommand{\scene}[1]{\par\noindent[ #1 ]\par}
+\newenvironment{totranslate}{\color{blue!70!black}}{}
+
+\begin{document}
+\section{Das sind wir}
+\scene{Camera}
+
+\section{Ablauf}
+Zuerst werden wir Symmetrien in 2 Dimensionen anschauen, dann \"uberlegen wir
+kurz was es heisst f\"ur eine Symmetrie ``algebraisch'' zu sein. Von da aus
+kommt die dritte Dimension hinzu, die man besser mit Matrizen verstehen kann.
+Mit der aufgebauten Theorie werden wir versuchen Kristalle zu klassifizieren.
+Und zum Schluss kommen wir zu Anwendungen, welche f\"ur Ingenieure von
+Interesse sind.
+
+\section{intro}
+\scene{Spontan}
+
+\section{2D Geometrie}
+\scene{Intro}
+Wir fangen mit den 2 dimensionalen Symmetrien an, da man sie sich am
+einfachsten vorstellen kann. Eine Symmetrie eines Objektes beschreibt eine
+Aktion, welche nachdem sie auf das Objekt wirkt, das Objekt wieder gleich
+aussehen l\"asst.
+
+\scene{Viereck}
+Die einfachste Aktion, ist das Viereck zu nehmen, und wieder hinzulegen.
+Eine andere Aktion k\"onnte sein, das Objekt um eine Achse zu spiegeln,
+oder eine Rotation um 90 Grad.
+
+\scene{Zyklische Gruppe}
+Fokussieren wir uns auf die einfachste Klassen von Symmetrien: diejenigen die
+von einer reinen Drehung generiert werden. Wir sammeln diese in einer Gruppe
+\(G\), und notieren das sie von eine Rotation \(r\) generiert worden sind, mit
+diesen spitzen Klammern.
+
+Nehmen wir als Beispiel dieses Pentagon. Wenn wir \(r\) 5-mal anwenden, ist es
+dasselbe als wenn wir nichts gemacht h\"atten. Wenn wir es noch ein 6. mal
+drehen, entspricht dies dasselbe wie \(r\) nur 1 mal zu nutzen.
+
+\scene{Notation}
+So, die Gruppe setzt sich zusammen aus dem neutralen Element, und den Potenzen
+1 bis 4 von \(r\). Oder im allgemein Gruppen mit dieser Struktur, in welcher die
+Aktion \(n-1\) mal angewendet werden kann, heissen ``Zyklische Gruppe''.
+
+\scene{Diedergruppe}
+Nehmen wir nun auch noch die Spiegeloperation \(\sigma\) dazu. Weil wir jetzt 2
+Operationen haben, m\"ussen wir auch im Generator schreiben wie sie
+zusammenh\"angen. Schauen wir dann uns genauer diesen Ausdr\"uck an. Zweimal
+Spielegeln ist \"aquivalent zum neutralen Element, sowie 4 mal um 90 Grad
+drehen und 2 Drehspiegelungen, welche man auch Inversion nennt.
+
+\scene{Notation}
+Daraus k\"onnen wir wieder die ganze Gruppe erzeugen, die im allgemeinen den
+Symmetrien eines \(n\)-gons entsprechen.
+
+\scene{Kreisgruppe}
+Bis jetzt hatten wir nur diskrete Symmetrien, was nicht zwingend der Fall sein
+muss. Ein Ring kann man kontinuierlich drehen, und sieht dabei immer gleich
+aus.
+
+Diese Symmetrie ist auch als Kreisgruppe bekannt, die man sch\"on mit dem
+komplexen Einheitskreis definieren kann.
+
+\section{Algebra}
+\scene{Produkt mit \(i\)}
+\"Uberlegen wir uns eine spezielle algebraische Operation: Multiplikation mit
+der imagin\"aren Einheit. \(1\) mal \(i\) ist gleich \(i\). Wieder mal \(i\)
+ist \(-1\), dann \(-i\) und schliesslich kommen wir z\"uruck auf \(1\). Diese
+fassen wir in eine Gruppe \(G\) zusammen. Oder sch\"oner geschrieben:. Sieht das
+bekannt aus?
+
+\scene{Morphismen}
+Das Gefühl, dass es sich um dasselbe handelt, kann wie folgt formalisiert
+werden. Sei \(\phi\) eine Funktion von \(C_4\) zu \(G\) und ordnen wir zu
+jeder Symmetrieoperation ein Element aus \(G\). Wenn man die Zuordnung richtig
+definiert, dann sieht man die folgende Eigenschaft: Eine Operation nach eine
+andere zu nutzen, und dann die Funktion des Resultats zu nehmen, ist gleich wie
+die Funktion der einzelnen Operazionen zu nehmen und die Resultate zu
+multiplizieren. Dieses Ergebnis ist so bemerkenswert, dass es in der Mathematik
+einen Namen bekommen hat: Homorphismus, von griechisch "homos" dasselbe und
+"morphe" Form. Manchmal auch so geschrieben. Ausserdem, wenn \(\phi\) eins zu
+eins ist, heisst es \emph{Iso}morphismus: "iso" gleiche Form. Was man
+typischerweise mit diesem Symbol schreibt.
+
+\scene{Animation}
+Sie haben wahrscheinlich schon gesehen, worauf das hinausläuft. Dass die
+zyklische Gruppe \(C_4\) und \(G\) isomorph sind ist nicht nur Fachjargon der
+mathematik, sondern sie haben wirklich die selbe Struktur.
+
+\scene{Modulo}
+Das Beispiel mit der komplexen Einheit, war wahrscheinlich nicht so
+\"uberraschend. Aber was merkw\"urdig ist, ist das Beziehungen zwischen
+Symmetrien und Algebra auch in Bereichen gefunden werden, welche auf den ersten
+Blick, nicht geomerisch erscheinen. Ein R\"atsel für die Neugierigen: die Summe
+in der Modulo-Arithmetik. Als Hinweis: Um die Geometrie zu finden denken Sie
+an einer Uhr.
+
+\section{3D Geometrie}
+2 Dimensionen sind einfacher zu zeichnen, aber leider leben wir im 3
+dimensionalen Raum.
+
+\scene{Zyklische Gruppe}
+Wenn wir unser bekanntes Viereck mit seiner zyklischer Symmetrie in 3
+Dimensionen betrachten, k\"onnen wir seine Drehachse sehen.
+
+\scene{Diedergruppe}
+Um auch noch die andere Symmetrie des Rechteckes zu sehen, ben\"otigen wir eine
+Spiegelachse \(\sigma\), die hier eine Spiegelebene ist.
+
+\scene{Transition}
+Um die Punktsymmetrien zu klassifizieren orientiert man sich an einer Achse, um
+welche sich die meisten Symmetrien drehen. Das geht aber nicht immer, wie beim
+Tetraeder.
+
+\scene{Tetraedergruppe}
+Diese Geometrie hat 4 gleichwertige Symmetrieachsen, die eben eine
+Symmetriegruppe aufbauen, welche kreativer weise Tetraedergruppe genannt wird.
+Vielleicht fallen Ihnnen weitere Polygone ein mit dieser Eigenschaft, bevor wir
+zum n\"achsten Thema weitergehen.
+
+\section{Matrizen}
+\scene{Titelseite}
+Nun gehen wir kurz auf den Thema unseres Seminars ein: Matrizen. Das man mit
+Matrizen Dinge darstellen kann, ist keine Neuigkeit mehr, nach einem
+Semester MatheSeminar. Also überrascht es wohl auch keinen, das man alle
+punktsymmetrischen Operationen auch mit Matrizen Formulieren kann.
+
+\scene{Matrizen}
+
+Sei dann \(G\) unsere Symmetrie Gruppe, die unsere abstrakte Drehungen und
+Spiegelungen enth\"ahlt. Die Matrix Darstellung dieser Gruppe, ist eine
+Funktion gross \(\Phi\), von \(G\) zur orthogonalen Gruppe \(O(3)\), die zu
+jeder Symmetrie Operation klein \(g\) eine Matrix gross \(\Phi_g\) zuordnet.
+
+Zur Erinnerung, die Orthogonale Gruppe ist definiert als die Matrizen, deren
+transponierte auch die inverse ist. Da diese Volumen und Distanzen erhalten,
+natuerlich nur bis zu einer Vorzeichenumkehrung, macht es Sinn, dass diese
+Punksymmetrien genau beschreiben.
+
+Nehmen wir die folgende Operationen als Beispiele. Die Matrix der trivialen
+Operation, dass heisst nichts zu machen, ist die Einheitsmatrix. Eine
+Spiegelung ist dasselbe aber mit einem Minus, und Drehungen sind uns schon
+dank Herrn M\"uller bekannt.
+
+\section{Kristalle}
+\scene{Spontan}
+
+\section{Piezo}
+\scene{Spontan}
+
+\section{Licht}
+Als Finale, haben wir ein schwieriges Problem aus der Physik. Das Ziel dieser
+Folie ist nicht jedes Zeichen zu versehen, sondern zu zeigen wie man von hier
+weiter gehen kann. Wir mochten sehen wie sich Licht in einem Kristall verhaltet.
+Genauer, wir m\"ochten die Amplitude einer
+elektromagnetischer Welle in einem Kristall beschreiben.
+
+Das Beispiel richtet sich mehr an Elektrotechnik Studenten, aber die Theorie
+ist die gleiche bei mechanischen Wellen in Materialien mit einer
+Spannungstensor wie dem, den wir letzte Woche gesehen haben.
+% Ganz grob gesagt, ersetzt man E durch Xi und epsilon durch das Sigma.
+
+Um eine Welle zu beschreiben, verwenden wir die Helmholtz-Gleichung, die einige
+von uns bereits in anderen Kursen gel\"ost haben. Schwierig wird aber dieses
+Problem, wenn der Term vor der Zeitableitung ein Tensor ist (f\"ur uns eine Matrix).
+
+Zur Vereinfachung werden wir eine ebene Welle verwenden. Setzt man dieses E in
+die Helmholtz-Gleichung ein, erhält man folgendes zurück: ein Eigenwertproblem.
+
+Physikalisch bedeutet dies, dass die Welle in diesem Material ihre Amplitude in
+Abhängigkeit von der Ausbreitungsrichtung ändert. Und die Eigenwerte sagen
+aus, wie stark die Amplitude der Welle in jeder Richtung skaliert wird.
+
+Ich sagte, in jede Richtung skaliert, aber welche Richtungen genau?
+Physikalisch hängt das von der kristallinen Struktur des Materials ab, aber
+mathematisch können wir sagen: in Richtung der Eigenvektoren! Aber diesen
+Eigenraum zu finden, in dem die Eigenvektoren wohnen, ist beliebig schwierig.
+
+Hier kommt unsere Gruppentheorie zu Hilfe. Wir können die Symmetrien unseres
+Kristalls zur Hilfe nehmen. Zu jeder dieser Symmetrien lässt sich bekanntlich eine
+einfache Matrix finden, deren Eigenraum ebenfalls relativ leicht zu finden ist.
+Zum Beispiel ist der Eigenraum der Rotation \(r\), die Rotationsachse, für die
+Reflexion \(\sigma\) eine Ebene, und so weiter.
+
+Nun ist die Frage, ob man diese Eingenraume der Symmetrienoperationen
+kombinieren kann um den Eigenraum des physikalisches Problems zu finden.
+
+Aber leider ist meine Zeit abgelaufen in der Recherche, also müssen Sie mir 2
+Dingen einfach glauben, erstens dass es einen Weg gibt, und zweitens dass eher
+nicht so schlimm ist, wenn man die Notation einmal gelernt hat.
+
+Nachdem wir an, wir haben den Eigenraum U gefunden, dann können wir einen
+(Eigen)Vektor E daraus nehmen und in ihm direkt lambda ablesen. Das sagt uns,
+wie die Amplitude der Welle, in diese Richtung gedämpft wurde.
+
+Diese Methode ist nicht spezifisch für dieses Problem, im Gegenteil, ich habe
+gesehen, dass sie in vielen Bereichen eingesetzt wird, wie z.B.:
+Kristallographie, Festkörperphysik, Molekülschwingungen in der Quantenchemie
+und numerische Simulationen von Membranen.
+
+\section{Outro}
+\scene{Camera}
+
+\end{document}
+% vim:et ts=2 sw=2:
diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf
new file mode 100644
index 0000000..e1769f8
--- /dev/null
+++ b/vorlesungen/punktgruppen/slides.pdf
Binary files differ
diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex
new file mode 100644
index 0000000..cd3d7d7
--- /dev/null
+++ b/vorlesungen/punktgruppen/slides.tex
@@ -0,0 +1,895 @@
+\documentclass[12pt, xcolor, aspectratio=169, handout]{beamer}
+
+% language
+\usepackage{polyglossia}
+\setmainlanguage{german}
+
+% pretty drawings
+\usepackage{tikz}
+\usepackage{tikz-3dplot}
+
+\usetikzlibrary{positioning}
+\usetikzlibrary{arrows.meta}
+\usetikzlibrary{shapes.misc}
+\usetikzlibrary{calc}
+
+\usetikzlibrary{external}
+\tikzexternalize[
+ mode = graphics if exists,
+ figure list = true,
+ prefix=build/
+]
+
+% Theme
+\beamertemplatenavigationsymbolsempty
+
+% set look
+\usetheme{default}
+\usecolortheme{fly}
+\usefonttheme{serif}
+
+%% Set font
+\usepackage[p,osf]{scholax}
+\usepackage{amsmath}
+\usepackage[scaled=1.075,ncf,vvarbb]{newtxmath}
+
+% set colors
+\definecolor{background}{HTML}{202020}
+
+\setbeamercolor{normal text}{fg=white, bg=background}
+\setbeamercolor{structure}{fg=white}
+
+\setbeamercolor{item projected}{use=item,fg=background,bg=item.fg!35}
+
+\setbeamercolor*{palette primary}{use=structure,fg=white,bg=structure.fg}
+\setbeamercolor*{palette secondary}{use=structure,fg=white,bg=structure.fg!75}
+\setbeamercolor*{palette tertiary}{use=structure,fg=white,bg=structure.fg!50}
+\setbeamercolor*{palette quaternary}{fg=white,bg=background}
+
+\setbeamercolor*{block title}{parent=structure}
+\setbeamercolor*{block body}{fg=background, bg=}
+
+\setbeamercolor*{framesubtitle}{fg=white}
+
+\setbeamertemplate{section page}
+{
+ \begin{center}
+ \Huge
+ \insertsection
+ \end{center}
+}
+\AtBeginSection{\frame{\sectionpage}}
+
+% Macros
+\newcommand{\ten}[1]{#1}
+
+% Metadata
+\title{\LARGE \scshape Punktgruppen und Kristalle}
+\author[N. Pross, T. T\"onz]{Naoki Pross, Tim T\"onz}
+\institute{Hochschule f\"ur Technik OST, Rapperswil}
+\date{10. Mai 2021}
+
+% Slides
+\begin{document}
+\frame{
+ \titlepage
+ \vfill
+ \begin{center}
+ \small \color{gray}
+ Slides: \texttt{s.0hm.ch/ctBsD}
+ \end{center}
+}
+\frame{\tableofcontents}
+
+\frame{
+ \begin{itemize}
+ \item Was heisst \emph{Symmetrie} in der Mathematik? \pause
+ \item Wie kann ein Kristall modelliert werden? \pause
+ \item Aus der Physik: Licht, Piezoelektrizit\"at \pause
+ \end{itemize}
+ \begin{center}
+ \begin{tikzpicture}
+ \begin{scope}[
+ node distance = 0cm
+ ]
+ \node[
+ rectangle, fill = gray!40!background,
+ minimum width = 3cm, minimum height = 2cm,
+ ] (body) {\(\vec{E}_p = \vec{0}\)};
+
+ \node[
+ draw, rectangle, thick, white, fill = red!50,
+ minimum width = 3cm, minimum height = 1mm,
+ above = of body
+ ] (pos) {};
+
+ \node[
+ draw, rectangle, thick, white, fill = blue!50,
+ minimum width = 3cm, minimum height = 1mm,
+ below = of body
+ ] (neg) {};
+
+ \draw[white, very thick, -Circle] (pos.east) to ++ (1,0) node (p) {};
+ \draw[white, very thick, -Circle] (neg.east) to ++ (1,0) node (n) {};
+
+ \draw[white, thick, ->] (p) to[out = -70, in = 70] node[midway, right] {\(U = 0\)} (n);
+ \end{scope}
+ \begin{scope}[
+ node distance = 0cm,
+ xshift = 7cm
+ ]
+ \node[
+ rectangle, fill = gray!40!background,
+ minimum width = 3cm, minimum height = 1.5cm,
+ ] (body) {\(\vec{E}_p = \vec{0}\)};
+
+ \node[
+ draw, rectangle, thick, white, fill = red!50,
+ minimum width = 3cm, minimum height = 1mm,
+ above = of body
+ ] (pos) {};
+
+ \node[
+ draw, rectangle, thick, white, fill = blue!50,
+ minimum width = 3cm, minimum height = 1mm,
+ below = of body
+ ] (neg) {};
+
+ \draw[orange, very thick, <-] (pos.north) to node[near end, right] {\(\vec{F}\)} ++(0,1);
+ \draw[orange, very thick, <-] (neg.south) to node[near end, right] {\(\vec{F}\)} ++(0,-1);
+
+ \draw[white, very thick, -Circle] (pos.east) to ++ (1,0) node (p) {};
+ \draw[white, very thick, -Circle] (neg.east) to ++ (1,0) node (n) {};
+
+ \draw[white, thick, ->] (p) to[out = -70, in = 70] node[midway, right] {\(U > 0\)} (n);
+ \end{scope}
+ \end{tikzpicture}
+ \end{center}
+}
+
+\section{2D Symmetrien}
+%% Made in video
+{
+ \usebackgroundtemplate{
+ \includegraphics[height=\paperheight]{media/images/nosignal}}
+ \frame{}
+}
+
+\section{Algebraische Symmetrien}
+%% Made in video
+\frame{
+ \begin{columns}[T]
+ \begin{column}{.5\textwidth}
+ Produkt mit \(i\)
+ \begin{align*}
+ 1 \cdot i &= i \\
+ i \cdot i &= -1 \\
+ -1 \cdot i &= -i \\
+ -i \cdot i &= 1
+ \end{align*}
+ \pause
+ %
+ Gruppe
+ \begin{align*}
+ G &= \left\{
+ 1, i, -1, -i
+ \right\} \\
+ &= \left\{
+ 1, i, i^2, i^3
+ \right\} \\
+ C_4 &= \left\{
+ \mathbb{1}, r, r^2, r^3
+ \right\}
+ \end{align*}
+ \pause
+ \end{column}
+ \begin{column}{.5\textwidth}
+ Darstellung \(\phi : C_4 \to G\)
+ \begin{align*}
+ \phi(\mathbb{1}) &= 1 & \phi(r^2) &= i^2 \\
+ \phi(r) &= i & \phi(r^3) &= i^3
+ \end{align*}
+ \pause
+ %
+ Homomorphismus
+ \begin{align*}
+ \phi(r \circ \mathbb{1}) &= \phi(r) \cdot \phi(\mathbb{1}) \\
+ &= i \cdot 1
+ \end{align*}
+ \pause
+ %
+ \(\phi\) ist bijektiv \(\implies C_4 \cong G\)
+ \pause
+ %
+ \begin{align*}
+ \psi : C_4 &\to (\mathbb{Z}/4\mathbb{Z}, +) \\
+ \psi(\mathbb{1}\circ r^2) &= 0 + 2 \pmod{4}
+ \end{align*}
+ \end{column}
+ \end{columns}
+}
+
+\section{3D Symmetrien}
+%% Made in video
+{
+ \usebackgroundtemplate{
+ \includegraphics[height=\paperheight]{media/images/nosignal}}
+ \frame{}
+}
+
+\section{Matrizen}
+\frame{
+ \begin{columns}[T]
+ \begin{column}{.5\textwidth}
+ Symmetriegruppe
+ \[
+ G = \left\{\mathbb{1}, r, \sigma, \dots \right\}
+ \]
+ \pause
+ Matrixdarstellung
+ \begin{align*}
+ \Phi : G &\to O(3) \\
+ g &\mapsto \Phi_g
+ \end{align*}
+ \pause
+ Orthogonale Gruppe
+ \[
+ O(n) = \left\{ Q : QQ^t = Q^tQ = I \right\}
+ \]
+ \end{column}
+ \pause
+ \begin{column}{.5\textwidth}
+ \begin{align*}
+ \Phi_\mathbb{1} &= \begin{pmatrix}
+ 1 & 0 & 0 \\
+ 0 & 1 & 0 \\
+ 0 & 0 & 1
+ \end{pmatrix} = I \\[1em]
+ \Phi_\sigma &= \begin{pmatrix}
+ 1 & 0 & 0 \\
+ 0 & -1 & 0 \\
+ 0 & 0 & 1
+ \end{pmatrix} \\[1em]
+ \Phi_r &= \begin{pmatrix}
+ \cos \alpha & -\sin \alpha & 0 \\
+ \sin \alpha & \cos \alpha & 0 \\
+ 0 & 0 & 1
+ \end{pmatrix}
+ \end{align*}
+ \end{column}
+ \end{columns}
+}
+
+\section{Kristalle}
+\begin{frame}[fragile]{}
+ \begin{columns}
+ \onslide<1->{
+ \begin{column}{.5\textwidth}
+ \begin{center}
+ \begin{tikzpicture}[
+ dot/.style = {
+ draw, circle, thick, white, fill = gray!40!background,
+ minimum size = 2mm,
+ inner sep = 0pt,
+ outer sep = 1mm,
+ },
+ ]
+
+ \begin{scope}
+ \clip (-2,-2) rectangle (3,4);
+ \foreach \y in {-7,-6,...,7} {
+ \foreach \x in {-7,-6,...,7} {
+ \node[dot, xshift=3mm*\y] (N\x\y) at (\x, \y) {};
+ }
+ }
+ \end{scope}
+ \draw[white, thick] (-2, -2) rectangle (3,4);
+
+ \draw[red!80!background, thick, ->]
+ (N00) to node[midway, below] {\(\vec{a}_1\)} (N10);
+ \draw[cyan!80!background, thick, ->]
+ (N00) to node[midway, left] {\(\vec{a}_2\)} (N01);
+ \end{tikzpicture}
+ \end{center}
+ \end{column}
+ }
+ \begin{column}{.5\textwidth}
+ \onslide<2->{
+ Kristallgitter:
+ \(n_i \in \mathbb{Z}\),
+ }
+ \onslide<3->{
+ \(\vec{a}_i \in \mathbb{R}^3\)
+ }
+ \onslide<2->{
+ \[
+ \vec{r} = n_1 \vec{a}_1 + n_2 \vec{a}_2 \onslide<3->{+ n_3 \vec{a}_3}
+ \]
+ }
+ \vspace{1cm}
+
+ \onslide<4->{
+ Invariant unter Translation
+ \[
+ Q_i(\vec{r}) = \vec{r} + \vec{a}_i
+ \]
+ }
+ \end{column}
+ \end{columns}
+\end{frame}
+
+\begin{frame}[fragile]{}
+ \begin{columns}[T]
+ \begin{column}{.5\textwidth}
+ \onslide<1->{
+ Wie kombiniert sich \(Q_i\) mit der anderen Symmetrien?
+ }
+ \begin{center}
+ \begin{tikzpicture}[
+ dot/.style = {
+ draw, circle, thick, white, fill = gray!40!background,
+ minimum size = 2mm,
+ inner sep = 0pt,
+ outer sep = 1mm,
+ },
+ ]
+
+ \onslide<2->{
+ \node[dot] (A1) at (0,0) {};
+ \node[below left] at (A1) {\(A\)};
+ }
+
+ \onslide<3->{
+ \node[dot] (A2) at (2.5,0) {};
+ \node[below right] at (A2) {\(A'\)};
+
+ \draw[red!80!background, thick, ->]
+ (A1) to node[midway, below] {\(\vec{Q}\)} (A2);
+ }
+
+ \onslide<4->{
+ \node[dot] (B1) at (120:2.5) {};
+ \node[above left] at (B1) {\(B\)};
+
+ \draw[green!70!background, thick, ->]
+ (A1) ++(.5,0) arc (0:120:.5)
+ node[midway, above, xshift=1mm] {\(C_n\)};
+ \draw[red!80!background, dashed, thick, ->] (A1) to (B1);
+ }
+
+ \onslide<5->{
+ \node[dot] (B2) at ($(A2)+(60:2.5)$) {};
+ \node[above right] at (B2) {\(B'\)};
+
+ \draw[green!70!background, thick, dashed, ->]
+ (A2) ++(-.5,0) arc (180:60:.5);
+ \draw[red!80!background, dashed, thick, ->] (A2) to (B2);
+ }
+
+ \onslide<6->{
+ \draw[yellow!80!background, thick, ->]
+ (B1) to node[above, midway] {\(\vec{Q}'\)} (B2);
+ }
+
+ \onslide<10->{
+ \draw[gray, dashed, thick] (A1) to (A1 |- B1) node (Xl) {};
+ \draw[gray, dashed, thick] (A2) to (A2 |- B2) node (Xr) {};
+ \node[above left, xshift=-2mm] at (Xl) {\(x\)};
+ \node[above right, xshift= 2mm] at (Xr) {\(x\)};
+ }
+ \end{tikzpicture}
+ \end{center}
+ \end{column}
+ \begin{column}{.5\textwidth}
+ \onslide<7->{
+ Sei \(q = |\vec{Q}|\), \(\alpha = 2\pi/n\) und \(n \in \mathbb{N}\)
+ }
+ \begin{align*}
+ \onslide<9->{q' = n q \onslide<10->{&= q + 2x \\}}
+ \onslide<11->{nq &= q + 2q\sin(\alpha - \pi/2) \\}
+ \onslide<12->{n &= 1 - 2\cos\alpha}
+ \end{align*}
+ \onslide<13->{
+ Somit muss
+ \begin{align*}
+ \alpha &= \cos^{-1}\left(\frac{1-n}{2}\right) \\[1em]
+ \alpha &\in \left\{ 0, 60^\circ, 90^\circ, 120^\circ, 180^\circ \right\} \\
+ n &\in \left\{ 1, 2, 3, 4, 6 \right\}
+ \end{align*}
+ }
+ \end{column}
+ \end{columns}
+\end{frame}
+
+\begin{frame}[fragile]{M\"ogliche Kristallstrukturen}
+ \begin{center}
+ \begin{tikzpicture}[]
+ \node[circle, dashed, draw = gray,
+ thick, fill = background,
+ minimum size = 4cm] {};
+ \node[gray] at (.9,-1.2) {674};
+
+ \node[circle, draw = white, thick,
+ fill = orange!40!background,
+ xshift = -3mm, yshift = 2mm,
+ minimum size = 2.75cm,
+ outer sep = 1mm] (A) {};
+ \node[white, yshift = 2mm] at (A) {230};
+ \node[white, font=\large, above right = of A] (Al) {Raumgruppe};
+ \draw[white, thick, ->] (Al.west) to[out=180, in=60] (A);
+
+ \node[circle, draw = white, thick,
+ fill = red!20!background,
+ xshift = -5mm, yshift = -5mm,
+ minimum size = 1cm,
+ outer sep = 1mm] (B) {32};
+ \node[white, font=\large, below left = of B, xshift=-4mm] (Bl) {Kristallklassen};
+ \draw[white, thick, ->] (Bl.east) to[out = 0, in = 180] (B);
+ \end{tikzpicture}
+ \end{center}
+\end{frame}
+
+{
+ \usebackgroundtemplate[fragile]{
+ \begin{tikzpicture}[
+ overlay,
+ xshift = .45\paperwidth,
+ yshift = .47\paperheight,
+ classcirc/.style = {
+ draw = gray, thick, circle,
+ minimum size = 12mm,
+ inner sep = 0pt, outer sep = 0pt,
+ },
+ classlabel/.style = {
+ below right = 5mm
+ },
+ round/.style = {
+ draw = yellow, thick, circle,
+ minimum size = 1mm,
+ inner sep = 0pt, outer sep = 0pt,
+ },
+ cross/.style = {
+ cross out, draw = magenta, thick,
+ minimum size = 1mm,
+ inner sep = 0pt, outer sep = 0pt
+ },
+ ]
+ \matrix [row sep = 3mm, column sep = 0mm] {
+ \node[classcirc] (C1) {} node[classlabel] {\(C_{1}\)}; &
+ \node[classcirc] (C2) {} node[classlabel] {\(C_{2}\)}; &
+ \node[classcirc] (C3) {} node[classlabel] {\(C_{3}\)}; &
+ \node[classcirc] (Ci) {} node[classlabel] {\(C_{i}\)}; &
+
+ \node[classcirc] (Cs) {} node[classlabel] {\(C_{s}\)}; &
+ \node[classcirc] (C3i) {} node[classlabel] {\(C_{3i}\)}; &
+ \node[classcirc] (C2h) {} node[classlabel] {\(C_{2h}\)}; &
+ \node[classcirc] (D2) {} node[classlabel] {\(D_{2}\)}; \\
+
+ \node[classcirc] (D3d) {} node[classlabel] {\(D_{3d}\)}; &
+ \node[classcirc] (C2v) {} node[classlabel] {\(C_{2v}\)}; &
+ \node[classcirc] (D2h) {} node[classlabel] {\(D_{2h}\)}; &
+ \node[classcirc] (D3) {} node[classlabel] {\(D_{3}\)}; &
+
+ \node[classcirc] (C4) {} node[classlabel] {\(C_{4}\)}; &
+ \node[classcirc] (C6) {} node[classlabel] {\(C_{6}\)}; &
+ \node[classcirc] (D3dP) {} node[classlabel] {\(D_{3d}\)}; &
+ \node[classcirc] (S4) {} node[classlabel] {\(S_{4}\)}; \\
+
+ \node[classcirc] (S3) {} node[classlabel] {\(S_{3}\)}; &
+ \node[classcirc, dashed] (T) {} node[classlabel] {\(T_{}\)}; &
+ \node[classcirc] (C4h) {} node[classlabel] {\(C_{4h}\)}; &
+ \node[classcirc] (C6h) {} node[classlabel] {\(C_{6h}\)}; &
+
+ \node[classcirc, dashed] (Th) {} node[classlabel] {\(T_{h}\)}; &
+ \node[classcirc] (C4v) {} node[classlabel] {\(C_{4v}\)}; &
+ \node[classcirc] (C6v) {} node[classlabel] {\(C_{6v}\)}; &
+ \node[classcirc, dashed] (Td) {} node[classlabel] {\(T_{d}\)}; \\
+
+ \node[classcirc] (D2d) {} node[classlabel] {\(D_{2d}\)}; &
+ \node[classcirc] (D3h) {} node[classlabel] {\(D_{3h}\)}; &
+ \node[classcirc, dashed] (O) {} node[classlabel] {\(O_{}\)}; &
+ \node[classcirc] (D4) {} node[classlabel] {\(D_{4}\)}; &
+
+ \node[classcirc] (D6) {} node[classlabel] {\(D_{6}\)}; &
+ \node[classcirc, dashed] (Oh) {} node[classlabel] {\(O_{h}\)}; &
+ \node[classcirc] (D4h) {} node[classlabel] {\(D_{4h}\)}; &
+ \node[classcirc] (D6h) {} node[classlabel] {\(D_{6h}\)}; \\
+ };
+
+
+ \node[cross] at ($(C1)+(4mm,0)$) {};
+
+
+ \node[cross] at ($(C2)+(4mm,0)$) {};
+ \node[cross] at ($(C2)-(4mm,0)$) {};
+
+
+ \node[cross] at ($(C3)+( 0:4mm)$) {};
+ \node[cross] at ($(C3)+(120:4mm)$) {};
+ \node[cross] at ($(C3)+(240:4mm)$) {};
+
+
+ \node[cross] at ($(Ci)+(4mm,0)$) {};
+ \node[round] at ($(Ci)-(4mm,0)$) {};
+
+
+ \node[cross] at ($(Cs)+(4mm,0)$) {};
+ \node[round] at ($(Cs)+(4mm,0)$) {};
+
+
+ \node[cross] at ($(C3i)+( 0:4mm)$) {};
+ \node[cross] at ($(C3i)+(120:4mm)$) {};
+ \node[cross] at ($(C3i)+(240:4mm)$) {};
+ \node[round] at ($(C3i)+( 60:4mm)$) {};
+ \node[round] at ($(C3i)+(180:4mm)$) {};
+ \node[round] at ($(C3i)+(300:4mm)$) {};
+
+
+ \node[cross] at ($(C2h)+(4mm,0)$) {};
+ \node[cross] at ($(C2h)-(4mm,0)$) {};
+ \node[round] at ($(C2h)+(4mm,0)$) {};
+ \node[round] at ($(C2h)-(4mm,0)$) {};
+
+
+ \node[cross] at ($(D2)+( 20:4mm)$) {};
+ \node[cross] at ($(D2)+(200:4mm)$) {};
+ \node[round] at ($(D2)+(160:4mm)$) {};
+ \node[round] at ($(D2)+(340:4mm)$) {};
+
+
+ \foreach \x in {0, 120, 240} {
+ \node[cross] at ($(D3d)+({\x+15}:4mm)$) {};
+ \node[cross] at ($(D3d)+({\x-15}:4mm)$) {};
+ }
+
+
+ \foreach \x in {0, 180} {
+ \node[cross] at ($(C2v)+({\x+15}:4mm)$) {};
+ \node[cross] at ($(C2v)+({\x-15}:4mm)$) {};
+ }
+
+
+ \foreach \x in {0, 180} {
+ \node[cross] at ($(D2h)+({\x+15}:4mm)$) {};
+ \node[cross] at ($(D2h)+({\x-15}:4mm)$) {};
+ \node[round] at ($(D2h)+({\x+15}:4mm)$) {};
+ \node[round] at ($(D2h)+({\x-15}:4mm)$) {};
+ }
+
+
+ \foreach \x in {0, 120, 240} {
+ \node[cross] at ($(D3)+({\x+15}:4mm)$) {};
+ \node[round] at ($(D3)+({\x-15}:4mm)$) {};
+ }
+
+
+ \foreach \x in {0, 90, 180, 270} {
+ \node[cross] at ($(C4)+(\x:4mm)$) {};
+ }
+
+
+ \foreach \x in {0, 60, 120, 180, 240, 300} {
+ \node[cross] at ($(C6)+(\x:4mm)$) {};
+ }
+
+
+ \foreach \x in {0, 120, 240} {
+ \node[cross] at ($(D3dP)+({\x+15}:4mm)$) {};
+ \node[cross] at ($(D3dP)+({\x-15}:4mm)$) {};
+ \node[round] at ($(D3dP)+({\x+15+60}:4mm)$) {};
+ \node[round] at ($(D3dP)+({\x-15+60}:4mm)$) {};
+ }
+
+
+ \node[cross] at ($(S4)+(4mm,0)$) {};
+ \node[cross] at ($(S4)-(4mm,0)$) {};
+ \node[round] at ($(S4)+(0,4mm)$) {};
+ \node[round] at ($(S4)-(0,4mm)$) {};
+
+
+ \foreach \x in {0, 120, 240} {
+ \node[cross] at ($(S3)+(\x:4mm)$) {};
+ \node[round] at ($(S3)+(\x:4mm)$) {};
+ }
+
+
+ %% TODO: T
+
+
+ \foreach \x in {0, 90, 180, 270} {
+ \node[cross] at ($(C4h)+(\x:4mm)$) {};
+ \node[round] at ($(C4h)+(\x:4mm)$) {};
+ }
+
+
+ \foreach \x in {0, 60, 120, 180, 240, 300} {
+ \node[cross] at ($(C6h)+(\x:4mm)$) {};
+ \node[round] at ($(C6h)+(\x:4mm)$) {};
+ }
+
+
+ %% TODO: Th
+
+
+ \foreach \x in {0, 90, 180, 270} {
+ \node[cross] at ($(C4v)+(\x+15:4mm)$) {};
+ \node[cross] at ($(C4v)+(\x-15:4mm)$) {};
+ }
+
+
+
+ \foreach \x in {0, 60, 120, 180, 240, 300} {
+ \node[cross] at ($(C6v)+(\x+10:4mm)$) {};
+ \node[cross] at ($(C6v)+(\x-10:4mm)$) {};
+ }
+
+
+ %% TODO: Td
+
+
+ \foreach \x in {0, 180} {
+ \node[cross] at ($(D2d)+({\x+15}:4mm)$) {};
+ \node[round] at ($(D2d)+({\x-15}:4mm)$) {};
+
+ \node[round] at ($(D2d)+({\x+15+90}:4mm)$) {};
+ \node[cross] at ($(D2d)+({\x-15+90}:4mm)$) {};
+ }
+
+
+ \foreach \x in {0, 120, 240} {
+ \node[cross] at ($(D3h)+({\x+15}:4mm)$) {};
+ \node[cross] at ($(D3h)+({\x-15}:4mm)$) {};
+ \node[round] at ($(D3h)+({\x+15}:4mm)$) {};
+ \node[round] at ($(D3h)+({\x-15}:4mm)$) {};
+ }
+
+
+ %% TODO: O
+
+
+ \foreach \x in {0, 90, 180, 270} {
+ \node[cross] at ($(D4)+({\x+15}:4mm)$) {};
+ \node[round] at ($(D4)+({\x-15}:4mm)$) {};
+ }
+
+ \foreach \x in {0, 60, 120, 180, 240, 300} {
+ \node[cross] at ($(D6)+({\x+10}:4mm)$) {};
+ \node[round] at ($(D6)+({\x-10}:4mm)$) {};
+ }
+
+
+ % TODO Oh
+
+
+ \foreach \x in {0, 90, 180, 270} {
+ \node[cross] at ($(D4h)+(\x+15:4mm)$) {};
+ \node[cross] at ($(D4h)+(\x-15:4mm)$) {};
+ \node[round] at ($(D4h)+(\x+15:4mm)$) {};
+ \node[round] at ($(D4h)+(\x-15:4mm)$) {};
+ }
+
+
+ \foreach \x in {0, 60, 120, 180, 240, 300} {
+ \node[cross] at ($(D6h)+({\x+10}:4mm)$) {};
+ \node[cross] at ($(D6h)+({\x-10}:4mm)$) {};
+ \node[round] at ($(D6h)+({\x+10}:4mm)$) {};
+ \node[round] at ($(D6h)+({\x-10}:4mm)$) {};
+ }
+ \end{tikzpicture}
+ }
+ \begin{frame}[fragile]{}
+ \end{frame}
+}
+
+\section{Anwendungen}
+\begin{frame}[fragile]{}
+ \centering
+ \begin{tikzpicture}[
+ box/.style = {
+ rectangle, thick, draw = white, fill = darkgray!50!background,
+ minimum height = 1cm, outer sep = 2mm,
+ },
+ ]
+
+ \matrix [nodes = {box, align = center}, column sep = 1cm, row sep = 1.5cm] {
+ & \node (A) {32 Kristallklassen}; \\
+ \node (B) {11 Mit\\ Inversionszentrum}; & \node (C) {21 Ohne\\ Inversionszentrum}; \\
+ & \node[fill=red!20!background] (D) {20 Piezoelektrisch}; & \node (E) {1 Nicht\\ piezoelektrisch}; \\
+ };
+
+ \draw[thick, ->] (A.west) to[out=180, in=90] (B.north);
+ \draw[thick, ->] (A.south) to (C);
+ \draw[thick, ->] (C.south) to (D.north);
+ \draw[thick, ->] (C.east) to[out=0, in=90] (E.north);
+ \end{tikzpicture}
+\end{frame}
+
+\begin{frame}[fragile]{}
+ \begin{tikzpicture}[
+ overlay, xshift = 1.5cm, yshift = 1.5cm,
+ node distance = 2mm,
+ charge/.style = {
+ circle, draw = white, thick,
+ minimum size = 5mm
+ },
+ positive/.style = { fill = red!50 },
+ negative/.style = { fill = blue!50 },
+ ]
+
+ \node[font = {\large\bfseries}, align = center] (title) at (5.5,0) {Mit und Ohne\\ Symmetriezentrum};
+ \pause
+
+ \begin{scope}
+ \matrix[nodes = { charge }, row sep = 8mm, column sep = 8mm] {
+ \node[positive] {}; & \node[negative] (N) {}; & \node [positive] {}; \\
+ \node[negative] (W) {}; & \node[positive] {}; & \node [negative] (E) {}; \\
+ \node[positive] {}; & \node[negative] (S) {}; & \node [positive] {}; \\
+ };
+ \draw[gray, dashed] (W) to (N) to (E) to (S) to (W);
+ \end{scope}
+ \pause
+
+ \begin{scope}[xshift=11cm]
+ \foreach \x/\t [count=\i] in {60/positive, 120/negative, 180/positive, 240/negative, 300/positive, 360/negative} {
+ \node[charge, \t] (C\i) at (\x:1.5cm) {};
+ }
+
+ \draw[white] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1);
+ \node[circle, draw=gray, fill=gray, outer sep = 0, inner sep = 0, minimum size = 3mm] {};
+ % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2);
+ \end{scope}
+ \pause
+
+ %%
+ \node[below = of title] {Polarisation Feld \(\vec{E}_p\)};
+
+ %% hex with vertical pressure
+ \begin{scope}[xshift=11cm, yshift=-4.5cm]
+ \node[charge, positive, yshift=-2.5mm] (C1) at ( 60:1.5cm) {};
+ \node[charge, negative, yshift=-2.5mm] (C2) at (120:1.5cm) {};
+ \node[charge, positive, xshift=-2.5mm] (C3) at (180:1.5cm) {};
+ \node[charge, negative, yshift= 2.5mm] (C4) at (240:1.5cm) {};
+ \node[charge, positive, yshift= 2.5mm] (C5) at (300:1.5cm) {};
+ \node[charge, negative, xshift= 2.5mm] (C6) at (360:1.5cm) {};
+
+ \draw[white] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1);
+ % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2);
+
+ \foreach \d in {C1, C2} {
+ \draw[orange, very thick, <-] (\d) to ++(0,.7);
+ }
+
+ \foreach \d in {C4, C5} {
+ \draw[orange, very thick, <-] (\d) to ++(0,-.7);
+ }
+
+ \node[white] (E) {\(\vec{E}_p\)};
+ \begin{scope}[node distance = .5mm]
+ \node[red!50, right = of E] {\(+\)};
+ \node[blue!50, left = of E] {\(-\)};
+ \end{scope}
+ % \draw[gray, thick, dotted] (E) to ++(0,2);
+ % \draw[gray, thick, dotted] (E) to ++(0,-2);
+ \end{scope}
+ \pause
+
+ %% square with vertical pressure
+ \begin{scope}[yshift=-4.5cm]
+ \matrix[nodes = { charge }, row sep = 5mm, column sep = 1cm] {
+ \node[positive] (NW) {}; & \node[negative] (N) {}; & \node [positive] (NE) {}; \\
+ \node[negative] (W) {}; & \node[positive] {}; & \node [negative] (E) {}; \\
+ \node[positive] (SW) {}; & \node[negative] (S) {}; & \node [positive] (SE) {}; \\
+ };
+
+ \foreach \d in {NW, N, NE} {
+ \draw[orange, very thick, <-] (\d) to ++(0,.7);
+ }
+
+ \foreach \d in {SW, S, SE} {
+ \draw[orange, very thick, <-] (\d) to ++(0,-.7);
+ }
+
+ \draw[gray, dashed] (W) to (N) to (E) to (S) to (W);
+ \end{scope}
+ \pause
+
+ %% hex with horizontal pressure
+ \begin{scope}[xshift=5.5cm, yshift=-4.5cm]
+ \node[charge, positive, yshift= 2.5mm] (C1) at ( 60:1.5cm) {};
+ \node[charge, negative, yshift= 2.5mm] (C2) at (120:1.5cm) {};
+ \node[charge, positive, xshift= 2.5mm] (C3) at (180:1.5cm) {};
+ \node[charge, negative, yshift=-2.5mm] (C4) at (240:1.5cm) {};
+ \node[charge, positive, yshift=-2.5mm] (C5) at (300:1.5cm) {};
+ \node[charge, negative, xshift=-2.5mm] (C6) at (360:1.5cm) {};
+
+ \draw[white] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1);
+ % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2);
+
+ \draw[orange, very thick, <-] (C6) to ++(.7,0);
+ \draw[orange, very thick, <-] (C3) to ++(-.7,0);
+
+ \node[white] (E) {\(\vec{E}_p\)};
+ \begin{scope}[node distance = .5mm]
+ \node[blue!50, right = of E] {\(-\)};
+ \node[red!50, left = of E] {\(+\)};
+ \end{scope}
+ % \draw[gray, thick, dotted] (E) to ++(0,2);
+ % \draw[gray, thick, dotted] (E) to ++(0,-2);
+ \end{scope}
+ \pause
+
+
+ \end{tikzpicture}
+\end{frame}
+
+\frame{
+ \frametitle{Licht in Kristallen}
+ \begin{columns}[T]
+ \begin{column}{.45\textwidth}
+ \onslide<2->{
+ Helmholtz Wellengleichung
+ \[
+ \nabla^2 \vec{E} = \ten{\varepsilon}\mu
+ \frac{\partial^2}{\partial t^2} \vec{E}
+ \]
+ }
+ \onslide<3->{
+ Ebene Welle
+ \[
+ \vec{E} = \vec{E}_0 \exp\left[i
+ \left(\vec{k}\cdot\vec{r} - \omega t \right)\right]
+ \]
+ }
+ \onslide<4->{
+ Anisotropisch Dielektrikum
+ \[
+ (\ten{K}\ten{\varepsilon})\vec{E}
+ = \frac{k^2}{\mu \omega^2} \vec{E}
+ \implies
+ \Phi \vec{E} = \lambda \vec{E}
+ \]
+ }
+ \end{column}
+ \begin{column}{.55\textwidth}
+ \onslide<5->{
+ Eingenraum
+ \begin{align*}
+ U_\lambda &= \left\{ v : \Phi v = \lambda v \right\}
+ = \mathrm{null}\left(\Phi - \lambda I\right)
+ \end{align*}
+ }\onslide<6->{
+ Symmetriegruppe und Darstellung
+ \begin{align*}
+ G &= \left\{\mathbb{1}, r, \sigma, \dots \right\} \\
+ &\Phi : G \to O(n)
+ \end{align*}
+ }\onslide<7->{
+ Kann man \(U_\lambda\) von \(G\) herauslesen?
+ \only<7>{
+ \[
+ U_\lambda \stackrel{?}{=} f\left(\bigoplus_{g \in G} \Phi_g\right)
+ \]
+ }\only<8>{
+ \begin{align*}
+ \mathrm{Tr}\left[\Phi_r(g)\right]
+ &= \sum_i n_i \mathrm{Tr}\left[\Psi_i(g)\right] \\
+ |G| &= \sum_i\mathrm{Tr}\left[\Psi_i(\mathbb{1})\right]
+ \end{align*}
+ }
+ }
+ \end{column}
+ \end{columns}
+}
+
+% \begin{frame}[fragile]
+% \centering
+% \tdplotsetmaincoords{70}{110}
+% \begin{tikzpicture}[scale=2, tdplot_main_coords]
+% \node[draw=white, thick, minimum size = 3cm, circle] {};
+% % \foreach \x in {0, 120, 240} {
+% % }
+% \end{tikzpicture}
+% \end{frame}
+
+
+\end{document}
diff --git a/vorlesungen/slides/2/Makefile.inc b/vorlesungen/slides/2/Makefile.inc
index c857fec..cbd4dfe 100644
--- a/vorlesungen/slides/2/Makefile.inc
+++ b/vorlesungen/slides/2/Makefile.inc
@@ -17,5 +17,19 @@ chapter2 = \
../slides/2/frobeniusanwendung.tex \
../slides/2/quotient.tex \
../slides/2/quotientv.tex \
+ ../slides/2/hilbertraum/definition.tex \
+ ../slides/2/hilbertraum/l2beispiel.tex \
+ ../slides/2/hilbertraum/basis.tex \
+ ../slides/2/hilbertraum/plancherel.tex \
+ ../slides/2/hilbertraum/l2.tex \
+ ../slides/2/hilbertraum/riesz.tex \
+ ../slides/2/hilbertraum/rieszbeispiel.tex \
+ ../slides/2/hilbertraum/adjungiert.tex \
+ ../slides/2/hilbertraum/spektral.tex \
+ ../slides/2/hilbertraum/sturm.tex \
+ ../slides/2/hilbertraum/laplace.tex \
+ ../slides/2/hilbertraum/qm.tex \
+ ../slides/2/hilbertraum/energie.tex \
+ ../slides/2/hilbertraum/sobolev.tex \
../slides/2/chapter.tex
diff --git a/vorlesungen/slides/2/chapter.tex b/vorlesungen/slides/2/chapter.tex
index 49e656a..d3714c3 100644
--- a/vorlesungen/slides/2/chapter.tex
+++ b/vorlesungen/slides/2/chapter.tex
@@ -15,3 +15,17 @@
\folie{2/frobeniusanwendung.tex}
\folie{2/quotient.tex}
\folie{2/quotientv.tex}
+\folie{2/hilbertraum/definition.tex}
+\folie{2/hilbertraum/l2beispiel.tex}
+\folie{2/hilbertraum/basis.tex}
+\folie{2/hilbertraum/plancherel.tex}
+\folie{2/hilbertraum/l2.tex}
+\folie{2/hilbertraum/riesz.tex}
+\folie{2/hilbertraum/rieszbeispiel.tex}
+\folie{2/hilbertraum/adjungiert.tex}
+\folie{2/hilbertraum/spektral.tex}
+\folie{2/hilbertraum/sturm.tex}
+\folie{2/hilbertraum/laplace.tex}
+\folie{2/hilbertraum/qm.tex}
+\folie{2/hilbertraum/energie.tex}
+\folie{2/hilbertraum/sobolev.tex}
diff --git a/vorlesungen/slides/2/hilbertraum/adjungiert.tex b/vorlesungen/slides/2/hilbertraum/adjungiert.tex
new file mode 100644
index 0000000..da41576
--- /dev/null
+++ b/vorlesungen/slides/2/hilbertraum/adjungiert.tex
@@ -0,0 +1,83 @@
+%
+% adjungiert.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Adjungierter Operator}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Definition}
+\begin{itemize}
+\item<2->
+$A\colon H\to L$ lineare Abbildung zwischen Hilberträumen, $y\in L$
+\item<3->
+\[
+H\to\mathbb{C}
+:
+x\mapsto \langle y, Ax\rangle_L
+\]
+ist eine lineare Abbildung $H\to\mathbb{C}$
+\item<4->
+Nach dem Darstellungssatz gibt es $v\in H$ mit
+\[
+\langle y,Ax\rangle_L = \langle v,x\rangle_H
+\quad
+\forall x\in H
+\]
+\end{itemize}
+\uncover<5->{%
+Die Abbildung
+\[
+L\to H
+:
+y\mapsto v =: A^*y
+\]
+heisst {\em adjungierte Abbildung}}
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<6->{%
+\begin{block}{Endlichdimensional (Matrizen)}
+\[
+A^* = \overline{A}^t
+\]
+\end{block}}
+\vspace{-8pt}
+\uncover<7->{%
+\begin{block}{Selbstabbildungen}
+Für Operatoren $A\colon H\to H$ ist $A^*\colon H\to H$
+\[
+\langle x,Ay\rangle
+=
+\langle A^*x, y\rangle
+\quad
+\forall x,y\in H
+\]
+\end{block}}
+\vspace{-8pt}
+\uncover<9->{%
+\begin{block}{Selbstadjungierte Operatoren}
+\[
+A=A^*
+\uncover<10->{\;\Leftrightarrow\;
+\langle x,Ay \rangle
+=
+\langle A^*x,y \rangle}
+\uncover<11->{=
+\langle Ax,y \rangle}
+\]
+\uncover<12->{Matrizen:
+\begin{itemize}
+\item<13-> hermitesch
+\item<14-> für reelle Hilberträume: symmetrisch
+\end{itemize}}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/2/hilbertraum/basis.tex b/vorlesungen/slides/2/hilbertraum/basis.tex
new file mode 100644
index 0000000..022fa07
--- /dev/null
+++ b/vorlesungen/slides/2/hilbertraum/basis.tex
@@ -0,0 +1,65 @@
+%
+% basis.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Hilbert-Basis}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Definition}
+Eine Menge $\mathcal{B}=\{b_k|k>0\}$ ist eine Hilbertbasis, wenn
+\begin{itemize}
+\item<2-> $\mathcal{B}$ ist orthonormiert: $\langle b_k,b_l\rangle=\delta_{kl}$
+\item<3-> Der Unterraum $\langle b_k|k>0\rangle\subset H$ ist
+dicht:
+Jeder Vektor von $H$ kann beliebig genau durch Linearkombinationen von $b_k$
+approximiert werden.
+\end{itemize}
+\uncover<4->{%
+Ein Hilbertraum mit einer Hilbertbasis heisst {\em separabel}}
+\end{block}
+\uncover<5->{%
+\begin{block}{Endlichdimensional}
+Der Algorithmus bricht nach endlich vielen Schritten ab.
+\end{block}}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<6->{%
+\begin{block}{Konstruktion}
+Iterativ: $\mathcal{B}_0=\emptyset$
+\begin{enumerate}
+\item<7-> $V_k = \langle \mathcal{B}_k \rangle$
+\item<8-> Wenn $V_k\ne H$, wähle einen Vektor
+\begin{align*}
+x\in V_k^{\perp}
+&=
+\{
+x\in H\;|\; x\perp V_k
+\}
+\\
+&=
+\{x\in H\;|\;
+x\perp y\;\forall y\in V_k
+\}
+\end{align*}
+\item<9-> $b_{k+1} = x/\|x\|$
+\[
+\mathcal{B}_{k+1} = \mathcal{B}_k\cup \{b_{k+1}\}
+\]
+\end{enumerate}
+\uncover<10->{%
+Wenn $H$ separabel ist, dann ist
+\[
+\mathcal{B} = \bigcup_{k} \mathcal{B}_k
+\]
+eine Hilbertbasis für $H$}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/2/hilbertraum/definition.tex b/vorlesungen/slides/2/hilbertraum/definition.tex
new file mode 100644
index 0000000..d101637
--- /dev/null
+++ b/vorlesungen/slides/2/hilbertraum/definition.tex
@@ -0,0 +1,63 @@
+%
+% definition.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Hilbertraum --- Definition}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{$\mathbb{C}$-Hilbertraum $H$}
+\begin{enumerate}
+\item<2-> $\mathbb{C}$-Vektorraum, muss nicht endlichdimensional sein
+\item<3-> Sesquilineares Skalarprodukt
+\[
+\langle \cdot,\cdot\rangle
+\colon H \to \mathbb{C}: (x,y) \mapsto \langle x,y\rangle
+\]
+Dazugehörige Norm:
+\[
+\|x\| = \sqrt{\langle x,x\rangle}
+\]
+\item<4-> Vollständigkeit: jede Cauchy-Folge konvergiert
+\end{enumerate}
+\uncover<5->{%
+Ohne Vollständigkeit: {\em Prähilbertraum}}
+\end{block}
+\uncover<6->{%
+\begin{block}{$\mathbb{R}$-Hilbertraum}
+Vollständiger $\mathbb{R}$-Vektorraum mit bilinearem Skalarprodukt
+\end{block}}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<7->{%
+\begin{block}{Vollständigkeit}
+\begin{itemize}
+\item<8-> $(x_n)_{n\in\mathbb{N}}$ ist eine Cauchy-Folge:
+Für alle $\varepsilon>0$ gibt es $N>0$ derart, dass
+\[
+\| x_n-x_m\| < \varepsilon\quad\forall n,m>N
+\]
+\item<9-> Grenzwert existiert: $\exists x\in H$ derart, dass es für alle
+$\varepsilon >0$ ein $N>0$ gibt derart, dass
+\[
+\|x_n-x\|<\varepsilon\quad\forall n>N
+\]
+\end{itemize}
+\end{block}}
+\uncover<10->{%
+\begin{block}{Cauchy-Schwarz-Ungleichung}
+\[
+|\langle x,y\rangle|
+\le \|x\| \cdot \|y\|
+\]
+Gleichheit für linear abhängige $x$ und $y$
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/2/hilbertraum/energie.tex b/vorlesungen/slides/2/hilbertraum/energie.tex
new file mode 100644
index 0000000..202a7c5
--- /dev/null
+++ b/vorlesungen/slides/2/hilbertraum/energie.tex
@@ -0,0 +1,67 @@
+%
+% energie.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Energie --- Zeitentwicklung --- Schrödinger}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.30\textwidth}
+\uncover<2->{%
+\begin{block}{Totale Energie}
+Hamilton-Funktion
+\begin{align*}
+H
+&=
+\frac12mv^2 + V(x)
+\\
+&=
+\frac{p^2}{2m} + V(x)
+\end{align*}
+\end{block}}
+\uncover<3->{%
+\begin{block}{Quantisierungsregel}
+\begin{align*}
+\text{Variable}&\to \text{Operator}
+\\
+x_k & \to x_k
+\\
+p_k & \to \frac{\hbar}{i} \frac{\partial}{\partial x_k}
+\end{align*}
+\end{block}}
+\end{column}
+\begin{column}{0.66\textwidth}
+\uncover<4->{%
+\begin{block}{Energie-Operator}
+\[
+H
+=
+-\frac{\hbar^2}{2m}\Delta + V(x)
+\]
+\end{block}}
+\uncover<5->{%
+\begin{block}{Eigenwertgleichung}
+\[
+-\frac{\hbar^2}{2m}\Delta\psi(x,t) + V(x)\psi(x,t) = E\psi(x,t)
+\]
+Zeitunabhängige Schrödingergleichung
+\end{block}}
+\uncover<6->{%
+\begin{block}{Zeitabhängigkeit = Schrödingergleichung}
+\[
+-\frac{\hbar}{i}
+\frac{\partial}{\partial t}
+\psi(x,t)
+=
+-\frac{\hbar^2}{2m}\Delta\psi(x,t) + V(x)\psi(x,t)
+\]
+\uncover<7->{Eigenwertgleichung durch Separation von $t$}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/2/hilbertraum/l2.tex b/vorlesungen/slides/2/hilbertraum/l2.tex
new file mode 100644
index 0000000..bd744ab
--- /dev/null
+++ b/vorlesungen/slides/2/hilbertraum/l2.tex
@@ -0,0 +1,61 @@
+%
+% l2.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{$L^2$-Hilbertraum}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Definition}
+\begin{itemize}
+\item<2->
+Vektorraum: Funktionen
+\[
+f\colon [a,b] \to \mathbb{C}
+\]
+\item<3->
+Sesquilineares Skalarprodukt
+\[
+\langle f,g\rangle
+=
+\int_a^b \overline{f(x)}\, g(x) \,dx
+\]
+\item<4->
+Norm:
+\[
+\|f\|^2 = \int_a^b |f(x)|^2\,dx
+\]
+\item<5->
+Vollständigkeit?
+\uncover<6->{$\rightarrow$
+Lebesgue Konvergenz-Satz}
+\end{itemize}
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<7->{%
+\begin{block}{Vollständigkeit}
+\begin{itemize}
+\item
+Funktioniert nicht für Riemann-Integral
+\item<8->
+Erweiterung des Integrals auf das sogenannte Lebesgue-Integral (nach
+Henri Lebesgue)
+\item<9->
+Abzählbare Mengen spielen keine Rolle $\rightarrow$ Nullmengen
+\item<10->
+Funktionen $\rightarrow$ Klassen von Funktionen, die sich auf einer Nullmenge
+unterscheiden
+\item<11->
+Konvergenz-Satz von Lebesgue $\rightarrow$ es funktioniert
+\end{itemize}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/2/hilbertraum/l2beispiel.tex b/vorlesungen/slides/2/hilbertraum/l2beispiel.tex
new file mode 100644
index 0000000..3ae44af
--- /dev/null
+++ b/vorlesungen/slides/2/hilbertraum/l2beispiel.tex
@@ -0,0 +1,82 @@
+%
+% l2beispiel.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Beispiele: $\mathbb{R},\mathbb{R}^2,\dots,\mathbb{R}^n,\dots,l^2$}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Definition}
+\begin{itemize}
+\item<2-> Quadratsummierbare Folgen von komplexen Zahlen
+\[
+l^2
+=
+\biggl\{
+(x_k)_{k\in\mathbb{N}}\,\bigg|\, \sum_{k=0}^\infty |x_k|^2 < \infty
+\biggr\}
+\]
+\item<3-> Skalarprodukt:
+\begin{align*}
+\langle x,y\rangle
+&=
+\sum_{k=0}^\infty \overline{x}_ky_k,
+&
+\uncover<4->{\|x\|^2 = \sum_{k=0}^\infty |x_k|^2}
+\end{align*}
+\item<5-> Vollständigkeit,
+Konvergenz: Cauchy-Schwarz-Ungleichung
+\[
+\biggl|
+\sum_{k=0}^\infty \overline{x}_ky_k
+\biggr|
+\le
+\sum_{k=0}^\infty |x_k|^2
+\sum_{l=0}^\infty |y_l|^2
+\]
+\end{itemize}
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<6->{%
+\begin{block}{Standardbasisvektoren}
+\begin{align*}
+e_i
+&=
+(0,\dots,0,\underset{\underset{\textstyle i}{\textstyle\uparrow}}{1},0,\dots)
+\\
+\uncover<7->{(e_i)_k &= \delta_{ik}}
+\end{align*}
+\uncover<8->{sind orthonormiert:
+\begin{align*}
+\langle e_i,e_j\rangle
+&=
+\sum_k \overline{\delta}_{ik}\delta_{jk}
+\uncover<9->{=
+\delta_{ij}}
+\end{align*}}
+\end{block}}
+\vspace{-16pt}
+\uncover<10->{%
+\begin{block}{Analyse}
+$x_k$ kann mit Skalarprodukten gefunden werden:
+\begin{align*}
+\hat{x}_i
+=
+\langle e_i,x\rangle
+&\uncover<11->{=
+\sum_{k=0}^\infty \overline{\delta}_{ik} x_k}
+\uncover<12->{=
+x_i}
+\end{align*}
+\uncover<13->{(Fourier-Koeffizienten)}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/2/hilbertraum/laplace.tex b/vorlesungen/slides/2/hilbertraum/laplace.tex
new file mode 100644
index 0000000..8f6b196
--- /dev/null
+++ b/vorlesungen/slides/2/hilbertraum/laplace.tex
@@ -0,0 +1,66 @@
+%
+% laplace.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Höhere Dimension}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.44\textwidth}
+\begin{block}{Problem}
+Gegeben: $\Omega\subset\mathbb{R}^n$ ein Gebiet
+\\
+Gesucht: Lösungen von $\Delta u=0$ mit $u_{|\partial\Omega}=0$
+\end{block}
+\uncover<2->{%
+\begin{block}{Funktionen}
+Hilbertraum $H$ der Funktionen $f:\overline{\Omega}\to\mathbb{C}$
+mit $f_{|\partial\Omega}=0$
+\end{block}}
+\uncover<3->{%
+\begin{block}{Skalarprodukt}
+\[
+\langle f,g\rangle
+=
+\int_{\Omega} \overline{f}(x) g(x)\,d\mu(x)
+\]
+\end{block}}
+\uncover<4->{%
+\begin{block}{Laplace-Operator}
+\[
+\Delta \psi = \operatorname{div}\operatorname{grad}\psi
+\]
+\end{block}}
+\end{column}
+\begin{column}{0.52\textwidth}
+\uncover<5->{%
+\begin{block}{Selbstadjungiert}
+\begin{align*}
+\langle f,\Delta g\rangle
+&\uncover<6->{=
+\int_{\Omega} \overline{f}(x)\operatorname{div}\operatorname{grad}g(x)\,d\mu(x)}
+\\
+&\uncover<7->{=
+\int_{\partial\Omega}
+\underbrace{\overline{f}(x)}_{\displaystyle=0}\operatorname{grad}g(x)\,d\nu(x)}
+\\
+&\uncover<7->{\qquad
+-
+\int_{\Omega}
+\operatorname{grad}\overline{f}(x)\cdot \operatorname{grad}g(x)
+\,d\mu(x)}
+\\
+&\uncover<8->{=\int_{\Omega}\operatorname{div}\operatorname{grad}\overline{f}(x)g(x)\,d\mu(x)}
+\\
+&\uncover<9->{=
+\langle \Delta f,g\rangle}
+\end{align*}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/2/hilbertraum/plancherel.tex b/vorlesungen/slides/2/hilbertraum/plancherel.tex
new file mode 100644
index 0000000..73dd46b
--- /dev/null
+++ b/vorlesungen/slides/2/hilbertraum/plancherel.tex
@@ -0,0 +1,102 @@
+%
+% plancherel.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Plancherel-Gleichung}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Hilbertraum mit Hilbert-Basis}
+$H$ Hilbertraum mit Hilbert-Basis
+$\mathcal{B}=\{b_k\;|\; k>0\}$, $x\in H$
+\end{block}
+\uncover<2->{%
+\begin{block}{Analyse: Fourier-Koeffizienten}
+\begin{align*}
+a_k = \hat{x}_k &=\langle b_k, x\rangle
+\\
+\uncover<3->{\hat{x}&=\mathcal{F}x}
+\end{align*}
+\end{block}}
+\vspace{-10pt}
+\uncover<4->{%
+\begin{block}{Synthese: Fourier-Reihe}
+\begin{align*}
+\tilde{x}
+&=
+\sum_k a_k b_k
+\uncover<5->{=
+\sum_k \langle x,b_k\rangle b_k}
+\end{align*}
+\end{block}}
+\vspace{-6pt}
+\uncover<6->{%
+\begin{block}{Analyse von $\tilde{x}$}
+\begin{align*}
+\langle b_l,\tilde{x}\rangle
+&=
+\biggl\langle
+b_l,\sum_{k}\langle b_k,x\rangle b_k
+\biggr\rangle
+\uncover<7->{=
+\sum_k \langle b_k,x\rangle\langle b_l,b_k\rangle}
+\uncover<8->{=
+\sum_k \langle b_k,x\rangle\delta_{kl}}
+\uncover<9->{=
+\langle b_l,x\rangle}
+\uncover<10->{=
+\hat{x}_l}
+\end{align*}
+\end{block}}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<11->{%
+\begin{block}{Plancherel-Gleichung}
+\begin{align*}
+\|\tilde{x}\|^2
+&=
+\langle \tilde{x},\tilde{x}\rangle
+=
+\biggl\langle
+\sum_k \hat{x}_kb_k,
+\sum_l \hat{x}_lb_l
+\biggr\rangle
+\\
+&\uncover<12->{=
+\sum_{k,l} \overline{\hat{x}}_k\hat{x}_l\langle b_k,b_l\rangle}
+\uncover<13->{=
+\sum_{k,l} \overline{\hat{x}}_k\hat{x}_l\delta_{kl}}
+\\
+\uncover<14->{
+\|\tilde{x}\|^2
+&=
+\sum_k |\hat{x}_k|^2}
+\uncover<15->{=
+\|\hat{x}\|_{l^2}^2}
+\uncover<16->{=
+\|\mathcal{F}x\|_{l^2}^2}
+\end{align*}
+\end{block}}
+\vspace{-12pt}
+\uncover<17->{%
+\begin{block}{Isometrie}
+\begin{align*}
+\mathcal{F}
+\colon
+H \to l^2
+\colon
+x\mapsto \hat{x}
+\end{align*}
+\uncover<18->{Alle separablen Hilberträume sind isometrisch zu $l^2$ via
+%Fourier-Transformation
+$\mathcal{F}$}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/2/hilbertraum/qm.tex b/vorlesungen/slides/2/hilbertraum/qm.tex
new file mode 100644
index 0000000..a108121
--- /dev/null
+++ b/vorlesungen/slides/2/hilbertraum/qm.tex
@@ -0,0 +1,90 @@
+%
+% qm.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Anwendung: Quantenmechanik}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Zustände (Wellenfunktion)}
+$L^2$-Funktionen auf $\mathbb{R}^3$
+\[
+\psi\colon\mathbb{R}^3\to\mathbb{C}
+\]
+\end{block}
+\vspace{-6pt}
+\uncover<2->{%
+\begin{block}{Wahrscheinlichkeitsinterpretation}
+\[
+|\psi(x)|^2 = \left\{
+\begin{minipage}{4.6cm}\raggedright
+Wahrscheinlichkeitsdichte für Position $x$ des Teilchens
+\end{minipage}\right.
+\]
+\end{block}}
+\vspace{-6pt}
+\uncover<3->{%
+\begin{block}{Skalarprodukt}
+\[
+\langle\psi,\psi\rangle
+=
+\int_{\mathbb{R}^3} |\psi(x)|^2\,dx = 1
+\]
+\end{block}}
+\vspace{-6pt}
+\uncover<4->{%
+\begin{block}{Messgrösse $A$}
+Selbstadjungierter Operator $A$
+\\
+\uncover<5->{$\rightarrow$
+Hilbertbasis $|i\rangle$ von EV von $A$}
+\end{block}}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<6->{%
+\begin{block}{Überlagerung}
+\begin{align*}
+|\psi\rangle
+&=
+\sum_i
+w_i|i\rangle
+\\
+\uncover<7->{\langle \psi|\psi\rangle
+&=
+\sum_i |w_i|^2 \qquad\text{(Plancherel)}}
+\end{align*}
+\uncover<8->{%
+$|w_i|^2=|\langle \psi|i\rangle|^2$ Wahrscheinlichkeit für Zustand $|i\rangle$
+}
+\end{block}}
+\uncover<9->{%
+\begin{block}{Erwartungswert}
+\begin{align*}
+E(A)
+&\uncover<10->{=
+\sum_i |w_i|^2 \alpha_i}
+\uncover<11->{=
+\sum_i \overline{w}_i\alpha_i w_i }
+\hspace{5cm}
+\\
+&\only<12>{=
+\sum_{i,j} \overline{w}_j\alpha_i w_i \langle j|i\rangle}
+\uncover<13->{=
+\sum_{i} \overline{w}_j\langle j| \sum_i \alpha_i w_i |i\rangle}
+\\
+&\uncover<14->{=
+\sum_{i,j} \overline{w}_j w_i \langle j|
+A|i\rangle}
+\uncover<15->{=
+\langle \psi| A |\psi\rangle}
+\end{align*}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/2/hilbertraum/riesz.tex b/vorlesungen/slides/2/hilbertraum/riesz.tex
new file mode 100644
index 0000000..437fb3c
--- /dev/null
+++ b/vorlesungen/slides/2/hilbertraum/riesz.tex
@@ -0,0 +1,76 @@
+%
+% riesz.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Darstellungssatz von Riesz}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Dualraum}
+$V$ ein Vektorraum, $V^*$ der Raum aller Linearformen
+\[
+f\colon V\to \mathbb{C}
+\]
+\end{block}
+\uncover<3->{%
+\begin{block}{Beispiel: $l^\infty$}
+$l^\infty=\text{beschränkte Folgen in $\mathbb{C}$}$,
+Linearformen:
+\begin{align*}
+\uncover<4->{
+f(x)
+&=
+\sum_{i=0}^\infty f_ix_i}
+\\
+\uncover<5->{
+\|f\|
+&=
+\sup_{\|x\|_{\infty}\le 1}
+|f(x)|}
+\uncover<6->{=
+\sum_{k\in\mathbb{N}} |f_k|}
+\\
+\uncover<7->{
+\Rightarrow
+l^{\infty*}
+&=
+l^1}
+\uncover<9->{\qquad(\ne l^2)}
+\\
+\uncover<8->{
+&=\{\text{summierbare Folgen in $\mathbb{C}$}\}
+}
+\end{align*}
+
+\end{block}}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<2->{%
+\begin{block}{Beispiel: $\mathbb{C}^n$}
+${\mathbb{C}^n}^* = \mathbb{C}^n$
+\end{block}}
+\uncover<10->{%
+\begin{theorem}[Riesz]
+Zu einer stetigen Linearform $f\colon H\to\mathbb{C}$ gibt es $v\in H$ mit
+\[
+f(x) = \langle v,x\rangle
+\quad\forall x\in H
+\]
+und $\|f\| = \|v\|$
+\end{theorem}}
+\uncover<11->{%
+\begin{block}{Dualraum von $H$}
+$H^*=H$
+\end{block}}%
+\uncover<12->{%
+Der Hilbertraum ist die ``intuitiv richtige, unendlichdimensionale''
+Verallgemeinerung von $\mathbb{C}^n$}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/2/hilbertraum/rieszbeispiel.tex b/vorlesungen/slides/2/hilbertraum/rieszbeispiel.tex
new file mode 100644
index 0000000..de9383f
--- /dev/null
+++ b/vorlesungen/slides/2/hilbertraum/rieszbeispiel.tex
@@ -0,0 +1,107 @@
+%
+% rieszbeispiel.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Linearform auf $L^2$-Funktionen}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Linearform auf $\mathbb{C}^n$}
+\begin{align*}
+{\color{blue}x}&=\begin{pmatrix}x_1\\x_2\\\vdots\\x_n\end{pmatrix},
+&
+f({\color{blue}x})
+&=
+\begin{pmatrix}f_1&f_2&\dots&f_n\end{pmatrix} {\color{blue}x}
+\\
+\uncover<2->{
+{\color{red}v}&=
+\rlap{$
+\begin{pmatrix}
+\overline{f}_1&\overline{f}_2&\dots&\overline{f}_n
+\end{pmatrix}^t
+\uncover<3->{\;\Rightarrow\;
+f({\color{blue}x})=\langle {\color{red}v},{\color{blue}x}\rangle}
+$}}
+\end{align*}
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<4->{%
+\begin{block}{Linearform auf $L^2([a,b])$}
+\begin{align*}
+{\color{red}x}&\in L^2([a,b])
+\\
+\uncover<5->{
+f&\colon L^2([a,b]) \to \mathbb{C}
+: {\color{red}x} \mapsto f({\color{red}x})}
+\intertext{\uncover<6->{Riesz-Darstellungssatz: $\exists {\color{blue}v}\in L^2([a,b])$}}
+\uncover<7->{f({\color{red}x})
+&=
+\int_a^b {\color{blue}\overline{v}(t)}{\color{red}x(t)}\,dt}
+\end{align*}
+\end{block}}
+\end{column}
+\end{columns}
+\begin{center}
+\begin{tikzpicture}[>=latex,thick]
+\begin{scope}[xshift=-3.5cm]
+\def\s{0.058}
+\foreach \n in {0,...,5}{
+\uncover<3->{
+ \draw[color=red,line width=3pt]
+ ({\n+\s},{1/(\n+0.5)}) -- ({\n+\s},0);
+ \node[color=red] at ({\n},{-0.2+1/(\n+0.5)})
+ [above right] {$v_\n\mathstrut$};
+}
+ \draw[color=blue,line width=3pt]
+ ({\n-\s},{0.4+0.55*sin(200*\n)+0.25*\n}) -- ({\n-\s},0);
+ \node[color=blue] at ({\n},{-0.2+0.4+0.55*sin(200*\n)+0.25*\n})
+ [above left] {$x_\n\mathstrut$};
+}
+\draw[->] (-0.6,0) -- (6,0) coordinate[label={$n$}];
+\draw[->] (-0.5,-0.1) -- (-0.5,2.5) coordinate[label={right:$x$}];
+\foreach \n in {0,...,5}{
+ \fill (\n,0) circle[radius=0.08];
+ \node at (\n,0) [below] {$\n$\strut};
+}
+\node at (5.6,0) [below] {$\cdots$\strut};
+\end{scope}
+\uncover<4->{
+\begin{scope}[xshift=3.5cm]
+\uncover<7->{
+\fill[color=red!40,opacity=0.5]
+ plot[domain=0:5,samples=100] (\x,{1/(\x+0.5)})
+ --
+ (5,0) -- (0,0) -- cycle;
+}
+\fill[color=blue!40,opacity=0.5]
+ plot[domain=0:5,samples=100] (\x,{0.4+0.55*sin(200*\x)+0.25*\x})
+ -- (5,0) -- (0,0) -- cycle;
+\uncover<7->{
+\draw[color=red,line width=1.4pt]
+ plot[domain=0:5,samples=100] (\x,{1/(\x+0.5)});
+\node[color=red] at (0,2) [right] {$x(t)$};
+}
+
+\draw[color=blue,line width=1.4pt]
+ plot[domain=0:5,samples=100] (\x,{0.4+0.55*sin(200*\x)+0.25*\x});
+\node[color=blue] at (4.5,2) [right]{$v(t)$};
+
+\draw[->] (-0.6,0) -- (6.0,0) coordinate[label={$t$}];
+\draw[->] (-0.5,-0.1) -- (-0.5,2.5) coordinate[label={right:$x$}];
+\draw (0.0,-0.1) -- (0.0,0.1);
+\node at (0.0,0) [below] {$a$\strut};
+\draw (5.0,-0.1) -- (5.0,0.1);
+\node at (5.0,0) [below] {$b$\strut};
+\end{scope}
+}
+\end{tikzpicture}
+\end{center}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/2/hilbertraum/sobolev.tex b/vorlesungen/slides/2/hilbertraum/sobolev.tex
new file mode 100644
index 0000000..828d34d
--- /dev/null
+++ b/vorlesungen/slides/2/hilbertraum/sobolev.tex
@@ -0,0 +1,51 @@
+%
+% sobolev.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Sobolev-Raum}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Vektorrraum $W$}
+Funktionen $f\colon \Omega\to\mathbb{C}$
+\begin{itemize}
+\item<2->
+$f\in L^2(\Omega)$
+\item<3->
+$\nabla f\in L^2(\Omega)$
+\item<4->
+homogene Randbedingungen:
+$f_{|\partial \Omega}=0$
+\end{itemize}
+\end{block}
+\uncover<5->{%
+\begin{block}{Skalarprodukt}
+\begin{align*}
+\langle f,g\rangle_W
+&\uncover<6->{=
+\int_\Omega \overline{\nabla f}(x)\cdot\nabla g(x)\,d\mu(x)}
+\\
+&\uncover<7->{\qquad + \int_{\Omega} \overline{f}(x)\,g(x)\,d\mu(x)}
+\\
+&\uncover<8->{=\langle f,-\Delta g + g\rangle_{L^2(\Omega)}}
+\end{align*}
+\end{block}}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<9->{%
+\begin{block}{Vollständigkeit}
+\dots
+\end{block}}
+\uncover<10->{%
+\begin{block}{Anwendung}
+``Ein Hilbertraum für jedes partielle Differentialgleichungsproblem''
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/2/hilbertraum/spektral.tex b/vorlesungen/slides/2/hilbertraum/spektral.tex
new file mode 100644
index 0000000..b561b69
--- /dev/null
+++ b/vorlesungen/slides/2/hilbertraum/spektral.tex
@@ -0,0 +1,91 @@
+%
+% spektral.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Spektraltheorie für selbstadjungierte Operatoren}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Voraussetzungen}
+\begin{itemize}
+\item
+Hilbertraum $H$
+\item
+$A\colon H\to H$ linear
+\end{itemize}
+\end{block}
+\uncover<2->{%
+\begin{block}{Eigenwerte}
+$x\in H$ ein EV von $A$ zum EW $\lambda\ne 0$
+\begin{align*}
+\uncover<3->{\langle x,x\rangle
+&=
+\frac1{\lambda}
+\langle x,\lambda x\rangle}
+\uncover<3->{=
+\frac1{\lambda}
+\langle x,Ax\rangle}
+\\
+&\uncover<4->{=
+\frac1{\lambda}
+\langle Ax,x\rangle}
+\uncover<5->{=
+\frac{\overline{\lambda}}{\lambda}
+\langle x,x\rangle}
+\\
+\uncover<6->{\frac{\overline{\lambda}}{\lambda}&=1
+\quad\Rightarrow\quad
+\overline{\lambda} = \lambda}
+\uncover<7->{\quad\Rightarrow\quad
+\lambda\in\mathbb{R}}
+\end{align*}
+\end{block}}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<8->{%
+\begin{block}{Orthogonalität}
+$u,v$ EV zu EW $\mu,\lambda\in \mathbb{R}\setminus\{0\}$, $\overline{\mu}=\mu\ne\lambda$
+\begin{align*}
+\uncover<9->{
+\langle u,v\rangle
+&=
+\frac{1}{\mu}
+\langle \mu u,v\rangle}
+\uncover<10->{=
+\frac{1}{\mu}
+\langle Au,v\rangle}
+\\
+&\uncover<11->{=
+\frac{1}{\mu}
+\langle u,Av\rangle}
+\uncover<12->{=
+\frac{1}{\mu}
+\langle u,\lambda v\rangle}
+\uncover<13->{=
+\frac{\lambda}{\mu}
+\langle u,v\rangle}
+\\
+\uncover<14->{\Rightarrow
+\;
+0
+&=
+\underbrace{\biggl(\frac{\lambda}{\mu}-1\biggr)}_{\displaystyle \ne 0}
+\langle u,v\rangle}
+\uncover<15->{\;\Rightarrow\;
+\langle u,v\rangle = 0}
+\end{align*}
+\uncover<16->{EV zu verschiedenen EW sind orthogonal}
+\end{block}}
+\end{column}
+\end{columns}
+\uncover<17->{%
+\begin{block}{Spektralsatz}
+Es gibt eine Hilbertbasis von $H$ aus Eigenvektoren von $A$
+\end{block}}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/2/hilbertraum/sturm.tex b/vorlesungen/slides/2/hilbertraum/sturm.tex
new file mode 100644
index 0000000..a6865ab
--- /dev/null
+++ b/vorlesungen/slides/2/hilbertraum/sturm.tex
@@ -0,0 +1,58 @@
+%
+% sturm.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Sturm-Liouville-Problem}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Wellengleichung}
+Saite mit variabler Massedichte führt auf die DGL
+\[
+-y''(t) + q(t) y(t) = \lambda y(t),
+\quad
+q(t) > 0
+\]
+mit Randbedingungen $y(0)=y(1)=0$
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<2->{%
+\begin{block}{Sturm-Liouville-Operator}
+\[
+A=-\frac{d^2}{dt^2} + q(t) = -D^2 + p
+\]
+auf differenzierbaren Funktionen $\Omega=[0,1]\to\mathbb{C}$ mit Randwerten
+\[
+f(0)=f(1)=0
+\]
+\end{block}}
+\end{column}
+\end{columns}
+\uncover<3->{%
+\begin{block}{Selbstadjungiert}
+\begin{align*}
+\langle f,Ag \rangle
+&\uncover<4->{=
+\langle f,-D^2 g\rangle + \langle f,qg\rangle
+=
+-
+\int_0^1 \overline{f}(t) \frac{d^2}{dt^2}g(t)\,dt
++\langle f,qg\rangle}
+\\
+&\uncover<5->{=-\underbrace{[\overline{f}(t)g'(t)]_0^1}_{\displaystyle=0}
++\int_0^1 \overline{f}'(t)g'(t)\,dt
++\langle f,qg\rangle}
+\uncover<6->{=-\int_0^1 \overline{f}''(t)g(t)\,dt
++\langle qf,g\rangle}
+\\
+&\uncover<7->{=\langle Af,g\rangle}
+\end{align*}
+\end{block}}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/7/Makefile.inc b/vorlesungen/slides/7/Makefile.inc
index 7512612..ffd5091 100644
--- a/vorlesungen/slides/7/Makefile.inc
+++ b/vorlesungen/slides/7/Makefile.inc
@@ -16,13 +16,20 @@ chapter5 = \
../slides/7/einparameter.tex \
../slides/7/ableitung.tex \
../slides/7/liealgebra.tex \
+ ../slides/7/liealgbeispiel.tex \
+ ../slides/7/vektorlie.tex \
../slides/7/kommutator.tex \
+ ../slides/7/bch.tex \
../slides/7/dg.tex \
+ ../slides/7/interpolation.tex \
+ ../slides/7/exponentialreihe.tex \
+ ../slides/7/logarithmus.tex \
../slides/7/zusammenhang.tex \
../slides/7/quaternionen.tex \
../slides/7/qdreh.tex \
../slides/7/ueberlagerung.tex \
../slides/7/hopf.tex \
../slides/7/haar.tex \
+ ../slides/7/integration.tex \
../slides/7/chapter.tex
diff --git a/vorlesungen/slides/7/bch.tex b/vorlesungen/slides/7/bch.tex
new file mode 100644
index 0000000..0148dc4
--- /dev/null
+++ b/vorlesungen/slides/7/bch.tex
@@ -0,0 +1,76 @@
+%
+% bch.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Baker-Campbell-Hausdorff-Formel}
+$g(t),h(t)\in G
+\uncover<2->{\Rightarrow \exists A,B\in LG\text{ mit }
+g(t)=\exp At, h(t)=\exp Bt}$
+\uncover<3->{%
+\begin{align*}
+g(t)
+&=
+I + At + \frac{A^2t^2}{2!} + \frac{A^3t^3}{3!} + \dots,
+&
+h(t)
+&=
+I + Bt + \frac{B^2t^2}{2!} + \frac{B^3t^3}{3!} + \dots
+\end{align*}}
+\uncover<5->{%
+\begin{block}{Kommutator in G: $c(t) = g(t)h(t)g(t)^{-1}h(t)^{-1}$}
+\begin{align*}
+\uncover<6->{c(t)
+&=
+\biggl(
+ {\color<7,9-11,13-15,19-21>{red}I}
+ + {\color<8,16-19>{red}A}t
+ + \frac{{\color<12>{red}A^2}t^2}{2!}
+ + \dots
+\biggr)
+\biggl(
+ {\color<7,8,10-12,14-15,17-18,21>{red}I}
+ + {\color<9,16,19-20>{red}B}t
+ + \frac{{\color<13>{red}B^2}t^2}{2!}
+ + \dots
+\biggr)
+\exp(-{\color<10,14,17,19,21>{red}A}t)
+\exp(-{\color<11,15,18,20-21>{red}B}t)
+}
+\\
+&\uncover<7->{={\color<7>{red}I}}
+\uncover<8->{+t(
+ \uncover<8->{ {\color<8>{red}A}}
+ \uncover<9->{+ {\color<9>{red}B}}
+ \uncover<10->{- {\color<10>{red}A}}
+ \uncover<11->{- {\color<11>{red}B}}
+)}
+\uncover<12->{+\frac{t^2}{2!}(
+ \uncover<12->{ {\color<12>{red}A^2}}
+ \uncover<13->{+ {\color<13>{red}B^2}}
+ \uncover<14->{+ {\color<14>{red}A^2}}
+ \uncover<15->{+ {\color<15>{red}B^2}}
+)}
+\\
+&\phantom{\mathstrut=I}
+\uncover<12->{+t^2(
+ \uncover<16->{ {\color<16>{red}AB}}
+ \uncover<17->{- {\color<17>{red}A^2}}
+ \uncover<18->{- {\color<18>{red}AB}}
+ \uncover<19->{- {\color<19>{red}BA}}
+ \uncover<20->{- {\color<20>{red}B^2}}
+ \uncover<21->{+ {\color<21>{red}AB}}
+)}
+\uncover<22->{+t^3(\dots)+\dots}
+\\
+&\uncover<23->{=
+I + \frac{t^2}{2}[A,B] + o(t^3)
+}
+\end{align*}}
+\end{block}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/7/chapter.tex b/vorlesungen/slides/7/chapter.tex
index 1c78ccc..3736e0f 100644
--- a/vorlesungen/slides/7/chapter.tex
+++ b/vorlesungen/slides/7/chapter.tex
@@ -15,11 +15,18 @@
\folie{7/einparameter.tex}
\folie{7/ableitung.tex}
\folie{7/liealgebra.tex}
+\folie{7/liealgbeispiel.tex}
+\folie{7/vektorlie.tex}
\folie{7/kommutator.tex}
+\folie{7/bch.tex}
\folie{7/dg.tex}
+\folie{7/interpolation.tex}
+\folie{7/exponentialreihe.tex}
+\folie{7/logarithmus.tex}
\folie{7/zusammenhang.tex}
\folie{7/quaternionen.tex}
\folie{7/qdreh.tex}
\folie{7/ueberlagerung.tex}
\folie{7/hopf.tex}
\folie{7/haar.tex}
+\folie{7/integration.tex}
diff --git a/vorlesungen/slides/7/dg.tex b/vorlesungen/slides/7/dg.tex
index 4447bac..f9528a4 100644
--- a/vorlesungen/slides/7/dg.tex
+++ b/vorlesungen/slides/7/dg.tex
@@ -45,7 +45,7 @@ Ableitung von $\gamma(t)$ an der Stelle $t$:
\vspace{-10pt}
\uncover<7->{%
\begin{block}{Differentialgleichung}
-\vspace{-10pt}
+%\vspace{-10pt}
\[
\dot{\gamma}(t) = \gamma(t) A
\quad
@@ -66,7 +66,7 @@ Exponentialfunktion
\vspace{-5pt}
\uncover<9->{%
\begin{block}{Kontrolle: Tangentialvektor berechnen}
-\vspace{-10pt}
+%\vspace{-10pt}
\begin{align*}
\frac{d}{dt}e^{At}
&\uncover<10->{=
diff --git a/vorlesungen/slides/7/einparameter.tex b/vorlesungen/slides/7/einparameter.tex
index 5171085..a32affd 100644
--- a/vorlesungen/slides/7/einparameter.tex
+++ b/vorlesungen/slides/7/einparameter.tex
@@ -41,7 +41,7 @@ D_{x,t+s}
\begin{column}{0.48\textwidth}
\uncover<5->{%
\begin{block}{Scherungen in $\operatorname{SL}_2(\mathbb{R})$}
-\vspace{-12pt}
+%\vspace{-12pt}
\[
\begin{pmatrix}
1&s\\
@@ -61,7 +61,7 @@ D_{x,t+s}
\vspace{-12pt}
\uncover<6->{%
\begin{block}{Skalierungen in $\operatorname{SL}_2(\mathbb{R})$}
-\vspace{-12pt}
+%\vspace{-12pt}
\[
\begin{pmatrix}
e^s&0\\0&e^{-s}
@@ -78,7 +78,7 @@ e^{t+s}&0\\0&e^{-(t+s)}
\vspace{-12pt}
\uncover<7->{%
\begin{block}{Gemischt}
-\vspace{-12pt}
+%\vspace{-12pt}
\begin{gather*}
A_t = I \cosh t + \begin{pmatrix}1&a\\0&-1\end{pmatrix}\sinh t
\\
diff --git a/vorlesungen/slides/7/exponentialreihe.tex b/vorlesungen/slides/7/exponentialreihe.tex
new file mode 100644
index 0000000..b1aeda6
--- /dev/null
+++ b/vorlesungen/slides/7/exponentialreihe.tex
@@ -0,0 +1,24 @@
+%
+% exponentialreihe.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Exponentialreihe}
+\begin{align*}
+h(s) &= \exp(tA_0 + sB) = \sum_{k=0}^\infty \frac{1}{k!} (tA_0 + sB)^k
+\\
+&=
+I + (tA_0 + sB) + \frac{1}{2!}(t^2A_0^2 + ts(A_0B + BA_0) + s^2B^2)
++ \frac{1}{3!}(t^3A_0^3 + t^2s(A_0^2B + A_0BA_0 + BA_0^2) + \dots)
++ \dots
+\\
+\frac{dg(s)}{ds}
+&=
+B + \frac1{2!}t(A_0B+BA_0) + \frac{1}{3!}t^2(A_0^2B+A_0BA_0+BA_0^2) + \dots
+\end{align*}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/7/images/Makefile b/vorlesungen/slides/7/images/Makefile
index cc67c8a..6f99bc3 100644
--- a/vorlesungen/slides/7/images/Makefile
+++ b/vorlesungen/slides/7/images/Makefile
@@ -3,7 +3,7 @@
#
# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
-all: rodriguez.jpg
+all: rodriguez.jpg test.png
rodriguez.png: rodriguez.pov
povray +A0.1 -W1920 -H1080 -Orodriguez.png rodriguez.pov
@@ -16,4 +16,14 @@ commutator: commutator.ini commutator.pov common.inc
jpg:
for f in c/c*.png; do convert $${f} c/`basename $${f} .png`.jpg; done
+dreibein/timestamp: interpolation.m
+ octave interpolation.m
+ touch dreibein/timestamp
+test.png: test.pov drehung.inc dreibein/d025.inc dreibein/timestamp
+ povray +A0.1 -W1080 -H1080 -Otest.png test.pov
+
+dreibein/d025.inc: dreibein/timestamp
+
+animation:
+ povray +A0.1 -W1080 -H1080 -Ointerpolation/i.png interpolation.ini
diff --git a/vorlesungen/slides/7/images/drehung.inc b/vorlesungen/slides/7/images/drehung.inc
new file mode 100644
index 0000000..c9b4bb7
--- /dev/null
+++ b/vorlesungen/slides/7/images/drehung.inc
@@ -0,0 +1,142 @@
+//
+// common.inc
+//
+// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+//
+#version 3.7;
+#include "colors.inc"
+
+global_settings {
+ assumed_gamma 1
+}
+
+#declare imagescale = 0.23;
+#declare O = <0, 0, 0>;
+#declare at = 0.02;
+
+camera {
+ location <8.5, 2, 6.5>
+ look_at <0, 0, 0>
+ right x * imagescale
+ up y * imagescale
+}
+
+//light_source {
+// <-14, 20, -50> color White
+// area_light <1,0,0> <0,0,1>, 10, 10
+// adaptive 1
+// jitter
+//}
+
+light_source {
+ <41, 20, 10> color White
+ area_light <1,0,0> <0,0,1>, 10, 10
+ adaptive 1
+ jitter
+}
+
+sky_sphere {
+ pigment {
+ color rgb<1,1,1>
+ }
+}
+
+#macro arrow(from, to, arrowthickness, c)
+#declare arrowdirection = vnormalize(to - from);
+#declare arrowlength = vlength(to - from);
+union {
+ sphere {
+ from, 1.0 * 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
+#declare r = 1.0;
+
+arrow(< -r-0.2, 0.0, 0 >, < r+0.2, 0.0, 0.0 >, at, Gray)
+arrow(< 0.0, 0.0, -r-0.2>, < 0.0, 0.0, r+0.2 >, at, Gray)
+arrow(< 0.0, -r-0.2, 0 >, < 0.0, r+0.2, 0.0 >, at, Gray)
+
+#declare farbeX = rgb<1.0,0.2,0.6>;
+#declare farbeY = rgb<0.0,0.8,0.4>;
+#declare farbeZ = rgb<0.4,0.6,1.0>;
+
+#declare farbex = rgb<1.0,0.0,0.0>;
+#declare farbey = rgb<0.0,0.6,0.0>;
+#declare farbez = rgb<0.0,0.0,1.0>;
+
+#macro quadrant(X, Y, Z)
+ intersection {
+ sphere { O, 0.5 }
+ plane { -X, 0 }
+ plane { -Y, 0 }
+ plane { -Z, 0 }
+ pigment {
+ color rgb<1.0,0.6,0.2>
+ }
+ finish {
+ specular 0.95
+ metallic
+ }
+ }
+ arrow(O, X, 1.1*at, farbex)
+ arrow(O, Y, 1.1*at, farbey)
+ arrow(O, Z, 1.1*at, farbez)
+#end
+
+#macro drehung(X, Y, Z)
+// intersection {
+// sphere { O, 0.5 }
+// plane { -X, 0 }
+// plane { -Y, 0 }
+// plane { -Z, 0 }
+// pigment {
+// color Gray
+// }
+// finish {
+// specular 0.95
+// metallic
+// }
+// }
+ arrow(O, 1.1*X, 0.9*at, farbeX)
+ arrow(O, 1.1*Y, 0.9*at, farbeY)
+ arrow(O, 1.1*Z, 0.9*at, farbeZ)
+#end
+
+#macro achse(H)
+ cylinder { H, -H, at
+ pigment {
+ color rgb<0.6,0.4,0.2>
+ }
+ finish {
+ specular 0.95
+ metallic
+ }
+ }
+ cylinder { 0.003 * H, -0.003 * H, 1
+ pigment {
+ color rgbt<0.6,0.4,0.2,0.5>
+ }
+ finish {
+ specular 0.95
+ metallic
+ }
+ }
+#end
diff --git a/vorlesungen/slides/7/images/interpolation.ini b/vorlesungen/slides/7/images/interpolation.ini
new file mode 100644
index 0000000..f07c079
--- /dev/null
+++ b/vorlesungen/slides/7/images/interpolation.ini
@@ -0,0 +1,8 @@
+Input_File_Name=interpolation.pov
+Initial_Frame=0
+Final_Frame=50
+Initial_Clock=0
+Final_Clock=50
+Cyclic_Animation=off
+Pause_when_Done=off
+
diff --git a/vorlesungen/slides/7/images/interpolation.m b/vorlesungen/slides/7/images/interpolation.m
new file mode 100644
index 0000000..31554e8
--- /dev/null
+++ b/vorlesungen/slides/7/images/interpolation.m
@@ -0,0 +1,54 @@
+#
+# interpolation.m
+#
+# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+#
+global N;
+N = 50;
+global A;
+global B;
+
+A = (pi / 2) * [
+ 0, 0, 0;
+ 0, 0, -1;
+ 0, 1, 0
+];
+g0 = expm(A)
+
+B = (pi / 2) * [
+ 0, 0, 1;
+ 0, 0, 0;
+ -1, 0, 0
+];
+g1 = expm(B)
+
+function retval = g(t)
+ global A;
+ global B;
+ retval = expm((1-t)*A+t*B);
+endfunction
+
+function dreibein(fn, M, funktion)
+ fprintf(fn, "%s(<%.4f,%.4f,%.4f>, <%.4f,%.4f,%.4f>, <%.4f,%.4f,%.4f>)\n",
+ funktion,
+ M(1,1), M(3,1), M(2,1),
+ M(1,2), M(3,2), M(2,2),
+ M(1,3), M(3,3), M(2,3));
+endfunction
+
+G = g1 * inverse(g0);
+[V, lambda] = eig(G);
+H = real(V(:,3));
+
+D = logm(g1*inverse(g0));
+
+for i = (0:N)
+ filename = sprintf("dreibein/d%03d.inc", i);
+ fn = fopen(filename, "w");
+ t = i/N;
+ dreibein(fn, g(t), "quadrant");
+ dreibein(fn, expm(t*D)*g0, "drehung");
+ fprintf(fn, "achse(<%.4f,%.4f,%.4f>)\n", H(1,1), H(3,1), H(2,1));
+ fclose(fn);
+endfor
+
diff --git a/vorlesungen/slides/7/images/interpolation.pov b/vorlesungen/slides/7/images/interpolation.pov
new file mode 100644
index 0000000..71e0257
--- /dev/null
+++ b/vorlesungen/slides/7/images/interpolation.pov
@@ -0,0 +1,10 @@
+//
+// commutator.pov
+//
+// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+//
+#include "drehung.inc"
+
+#declare filename = concat("dreibein/d", str(clock, -3, 0), ".inc");
+#include filename
+
diff --git a/vorlesungen/slides/7/images/test.pov b/vorlesungen/slides/7/images/test.pov
new file mode 100644
index 0000000..5707be1
--- /dev/null
+++ b/vorlesungen/slides/7/images/test.pov
@@ -0,0 +1,7 @@
+//
+// test.pov
+//
+// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+//
+#include "drehung.inc"
+#include "dreibein/d025.inc"
diff --git a/vorlesungen/slides/7/integration.tex b/vorlesungen/slides/7/integration.tex
new file mode 100644
index 0000000..525e6de
--- /dev/null
+++ b/vorlesungen/slides/7/integration.tex
@@ -0,0 +1,66 @@
+%
+% integration.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Invariante Integration}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Koordinatenwechsel}
+Die Koordinatentransformation
+$f\colon\mathbb{R}^n\to\mathbb{R}^n:x\to y$
+hat die Ableitungsmatrix
+\[
+t_{ij}
+=
+\frac{\partial y_i}{\partial x_j}
+\]
+\uncover<2->{%
+$n$-faches Integral
+\begin{gather*}
+\int\dots\int
+h(f(x))
+\det
+\biggl(
+\frac{\partial y_i}{\partial x_j}
+\biggr)
+\,dx_1\,\dots dx_n
+\\
+=
+\int\dots\int
+h(y)
+\,dy_1\,\dots dy_n
+\end{gather*}}
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<3->{%
+\begin{block}{auf einer Lie-Gruppe}
+Koordinatenwechsel sind Multiplikationen mit einer
+Matrix $g\in G$
+\end{block}}
+\uncover<4->{%
+\begin{block}{Volumenelement in $I$}
+Man muss nur das Volumenelement in $I$ in einem beliebigen
+Koordinatensystem definieren:
+\[
+dV = dy_1\,\dots\,dy_n
+\]
+\end{block}}
+\uncover<5->{%
+\begin{block}{Volumenelement in $g$}
+\[
+\text{``\strut}g\cdot dV\text{\strut''}
+=
+\det(g) \, dy_1\,\dots\,dy_n
+\]
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/7/interpolation.tex b/vorlesungen/slides/7/interpolation.tex
new file mode 100644
index 0000000..249ee26
--- /dev/null
+++ b/vorlesungen/slides/7/interpolation.tex
@@ -0,0 +1,112 @@
+%
+% interpolation.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\def\bild#1#2{\only<#1|handout:0>{\includegraphics[width=\textwidth]{../slides/7/images/interpolation/#2.png}}}
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Interpolation}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Aufgabe}
+Finde einen Weg $g(t)\in \operatorname{SO}(3)$ zwischen
+$g_0\in\operatorname{SO}(3)$
+und
+$g_1\in\operatorname{SO}(3)$:
+\[
+g_0=g(0)
+\quad\wedge\quad
+g_1=g(1)
+\]
+\end{block}
+\vspace{-10pt}
+\uncover<2->{%
+\begin{block}{Lösung}
+$g_i=\exp(A_i) \uncover<3->{\Rightarrow A_i^t=-A_i}$
+\begin{align*}
+\uncover<4->{A(t) &= (1-t)A_0 + tA_1}\uncover<8->{ \in \operatorname{so}(3)}
+\\
+\uncover<5->{A(t)^t
+&=(1-t)A_0^t + tA_1^t}
+\\
+&\uncover<6->{=
+-(1-t)A_0 - t A_1}
+\uncover<7->{=
+-A(t)}
+\\
+\uncover<9->{\Rightarrow
+g(t) &= \exp A(t) \in \operatorname{SO}(3)}
+\\
+&\uncover<10->{\ne
+\exp (\log(g_1g_0^{-1})t) g_0}
+\end{align*}
+\end{block}}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<11->{%
+\begin{block}{Animation}
+\centering
+\ifthenelse{\boolean{presentation}}{
+\bild{12}{i00}
+\bild{13}{i01}
+\bild{14}{i02}
+\bild{15}{i03}
+\bild{16}{i04}
+\bild{17}{i05}
+\bild{18}{i06}
+\bild{19}{i07}
+\bild{20}{i08}
+\bild{21}{i09}
+\bild{22}{i10}
+\bild{23}{i11}
+\bild{24}{i12}
+\bild{25}{i13}
+\bild{26}{i14}
+\bild{27}{i15}
+\bild{28}{i16}
+\bild{29}{i17}
+\bild{30}{i18}
+\bild{31}{i19}
+\bild{32}{i20}
+\bild{33}{i21}
+\bild{34}{i22}
+\bild{35}{i23}
+\bild{36}{i24}
+\bild{37}{i25}
+\bild{38}{i26}
+\bild{39}{i27}
+\bild{40}{i28}
+\bild{41}{i29}
+\bild{42}{i30}
+\bild{43}{i31}
+\bild{44}{i32}
+\bild{45}{i33}
+\bild{46}{i34}
+\bild{47}{i35}
+\bild{48}{i36}
+\bild{49}{i37}
+\bild{50}{i38}
+\bild{51}{i39}
+\bild{52}{i40}
+\bild{53}{i41}
+\bild{54}{i42}
+\bild{55}{i43}
+\bild{56}{i44}
+\bild{57}{i45}
+\bild{58}{i46}
+\bild{59}{i47}
+\bild{60}{i48}
+\bild{61}{i49}
+\bild{62}{i50}
+}{
+\includegraphics[width=\textwidth]{../slides/7/images/interpolation/i25.png}
+}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/7/liealgbeispiel.tex b/vorlesungen/slides/7/liealgbeispiel.tex
new file mode 100644
index 0000000..a17de40
--- /dev/null
+++ b/vorlesungen/slides/7/liealgbeispiel.tex
@@ -0,0 +1,78 @@
+%
+% liealgbeispiel.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Lie-Algebra Beispiele}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{$\operatorname{sl}_2(\mathbb{R})$}
+Spurlose Matrizen:
+\[
+\operatorname{sl}_2(\mathbb{R})
+=
+\{A\in M_n(\mathbb{R})\;|\; \operatorname{Spur}A=0\}
+\]
+\end{block}
+\begin{block}{Lie-Algebra?}
+Nachrechnen: $[A,B]\in \operatorname{sl}_2(\mathbb{R})$:
+\begin{align*}
+\operatorname{Spur}([A,B])
+&=
+\operatorname{Spur}(AB-BA)
+\\
+&=
+\operatorname{Spur}(AB)-\operatorname{Spur}(BA)
+\\
+&=
+\operatorname{Spur}(AB)-\operatorname{Spur}(AB)
+\\
+&=0
+\end{align*}
+$\Rightarrow$ $\operatorname{sl}_2(\mathbb{R})$ ist eine Lie-Algebra
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\begin{block}{$\operatorname{so}(n)$}
+Antisymmetrische Matrizen:
+\[
+\operatorname{so}(n)
+=
+\{A\in M_n(\mathbb{R})
+\;|\;
+A=-A^t
+\}
+\]
+\end{block}
+\begin{block}{Lie-Algebra?}
+Nachrechnen: $A,B\in \operatorname{so}(n)$
+\begin{align*}
+[A,B]^t
+&=
+(AB-BA)^t
+\\
+&=
+B^tA^t - A^tB^t
+\\
+&=
+(-B)(-A)-(-A)(-B)
+\\
+&=
+BA-AB
+=
+-(AB-BA)
+\\
+&=
+-[A,B]
+\end{align*}
+$\Rightarrow$ $\operatorname{so}(n)$ ist eine Lie-Algebra
+\end{block}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/7/logarithmus.tex b/vorlesungen/slides/7/logarithmus.tex
new file mode 100644
index 0000000..58065d7
--- /dev/null
+++ b/vorlesungen/slides/7/logarithmus.tex
@@ -0,0 +1,82 @@
+%
+% logarithmus.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Logarithmus}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Taylor-Reihe}
+\begin{align*}
+\frac{d}{dx}\log(1+x)
+&= \frac{1}{1+x}
+\\
+\uncover<2->{
+\Rightarrow\quad
+\log (1+x)
+&=
+\int_0^x \frac{1}{1+t}\,dt}
+\end{align*}
+\begin{align*}
+\uncover<3->{\frac{1}{1+t}
+&=
+1-t+t^2-t^3+\dots}
+\\
+\uncover<4->{\log(1+x)
+&=\int_0^x
+1-t+t^2-t^3+\dots
+\,dt}
+\\
+&\only<5>{=
+x-\frac{x^2}{2}  + \frac{x^3}{3} - \frac{x^4}4 + \dots}
+\uncover<6->{=
+\sum_{k=1}^\infty (-1)^{k-1}\frac{x^k}{k}}
+\\
+\uncover<7->{\log (I+A)
+&=
+\sum_{k=1}^\infty \frac{(-1)^{k-1}}{k}A^k}
+\end{align*}
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<8->{%
+\begin{block}{Konvergenzradius}
+Polstelle bei $x=-1$
+\(
+\varrho =1
+\)
+\end{block}}
+\vspace{-5pt}
+\begin{block}{\uncover<9->{Alternative: Spektraltheorie}}
+\uncover<9->{
+Logarithmus $\log z$ in $\{z\in\mathbb{C}\;|\; \neg(\Re z\le 0\wedge\Im z=0)\}$
+definiert:}
+\vspace{-15pt}
+\uncover<8->{
+\begin{center}
+\begin{tikzpicture}[>=latex,thick]
+\uncover<9->{
+ \fill[color=red!20] (-2.1,-2.1) rectangle (2.5,2.1);
+}
+\draw[->] (-2.2,0) -- (2.9,0) coordinate[label={$\Re z$}];
+\draw[->] (0,-2.2) -- (0,2.4) coordinate[label={right:$\Im z$}];
+\fill[color=blue!40,opacity=0.5] (1,0) circle[radius=1];
+\draw[color=blue] (1,0) circle[radius=1];
+\uncover<9->{
+ \draw[color=white,line width=5pt] (-2.2,0) -- (0.1,0);
+}
+\fill (1,0) circle[radius=0.08];
+\node at (2.3,1.9) {$\mathbb{C}$};
+\node at (1,0) [below] {$1$};
+\end{tikzpicture}
+\end{center}}
+\end{block}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/7/vektorlie.tex b/vorlesungen/slides/7/vektorlie.tex
new file mode 100644
index 0000000..621a832
--- /dev/null
+++ b/vorlesungen/slides/7/vektorlie.tex
@@ -0,0 +1,206 @@
+%
+% viktorlie.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\definecolor{darkgreen}{rgb}{0,0.6,0}
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Vektorprodukt als Lie-Algebra}
+%\vspace{-10pt}
+\centering
+\begin{tikzpicture}[>=latex,thick]
+\arraycolsep=2.4pt
+\def\Ax{0}
+\def\Ux{4.1}
+\def\Kx{7.2}
+\def\Rx{13.1}
+
+\def\Lx{2.2}
+\def\Ly{0}
+\def\Lz{-2.2}
+
+\fill[color=red!20] (\Ax,{\Lx-1.55}) rectangle ({\Ux-0.1},{\Lx+0.55});
+\fill[color=red!20] (\Ux,{\Lx-1.55}) rectangle ({\Kx-0.1},{\Lx+0.55});
+\fill[color=red!20] (\Kx,{\Lx-1.55}) rectangle ({\Rx},{\Lx+0.55});
+
+\fill[color=darkgreen!20] (\Ax,{\Ly-1.55}) rectangle ({\Ux-0.1},{\Ly+0.55});
+\fill[color=darkgreen!20] (\Ux,{\Ly-1.55}) rectangle ({\Kx-0.1},{\Ly+0.55});
+\fill[color=darkgreen!20] (\Kx,{\Ly-1.55}) rectangle ({\Rx},{\Ly+0.55});
+
+\fill[color=blue!20] (\Ax,{\Lz-1.55}) rectangle ({\Ux-0.1},{\Lz+0.55});
+\fill[color=blue!20] (\Ux,{\Lz-1.55}) rectangle ({\Kx-0.1},{\Lz+0.55});
+\fill[color=blue!20] (\Kx,{\Lz-1.55}) rectangle ({\Rx},{\Lz+0.55});
+
+\coordinate (A) at (\Ax,3.2);
+\coordinate (Ax) at (\Ax,\Lx);
+\coordinate (Ay) at (\Ax,\Ly);
+\coordinate (Az) at (\Ax,\Lz);
+
+\node at (A) [right]
+ {\usebeamercolor[fg]{title}Drehmatrix, $\operatorname{SO}(n)$\strut};
+
+\node at (Ax) [right] {$\displaystyle\tiny
+D_{x,\alpha}=\begin{pmatrix}
+1&0&0\\
+0&\cos\alpha&-\sin\alpha\\
+0&\sin\alpha&\cos\alpha
+\end{pmatrix}$};
+
+\node at (Ay) [right] {$\displaystyle\tiny
+D_{y,\alpha}=\begin{pmatrix}
+\cos\alpha&0&\sin\alpha\\
+0&1&0\\
+-\sin\alpha&0&\cos\alpha
+\end{pmatrix}$};
+
+\node at (Az) [right] {$\displaystyle\tiny
+D_{z,\alpha}=\begin{pmatrix}
+\cos\alpha&-\sin\alpha&0\\
+\sin\alpha&\cos\alpha&0\\
+0&0&1
+\end{pmatrix}$};
+
+\coordinate (U) at (\Ux,3.2);
+\coordinate (Ux) at (\Ux,\Lx);
+\coordinate (Uy) at (\Ux,\Ly);
+\coordinate (Uz) at (\Ux,\Lz);
+\coordinate (Ex) at (\Ux,{\Lx-1});
+\coordinate (Ey) at (\Ux,{\Ly-1});
+\coordinate (Ez) at (\Ux,{\Lz-1});
+
+\uncover<2->{
+\node at (U) [right]
+ {\usebeamercolor[fg]{title}Ableitung, $\operatorname{so}(n)$\strut};
+
+\node at (Ux) [right] {$\displaystyle\tiny
+U_x=\begin{pmatrix*}[r]
+0&0&0\\
+0&0&-1\\
+0&1&0
+\end{pmatrix*}
+$};
+
+\node at (Uy) [right] {$\displaystyle\tiny
+U_y=\begin{pmatrix*}[r]
+0&0&1\\
+0&0&0\\
+-1&0&0
+\end{pmatrix*}
+$};
+
+\node at (Uz) [right] {$\displaystyle\tiny
+U_z=\begin{pmatrix*}[r]
+0&-1&0\\
+1&0&0\\
+0&0&0
+\end{pmatrix*}
+$};
+}
+
+\uncover<9->{
+\node at (Ex) [right] {$\displaystyle
+\, e_x = \tiny\begin{pmatrix}1\\0\\0\end{pmatrix}
+$};
+
+\node at (Ey) [right] {$\displaystyle
+\, e_y = \tiny\begin{pmatrix}0\\1\\0\end{pmatrix}
+$};
+
+\node at (Ez) [right] {$\displaystyle
+\, e_z = \tiny\begin{pmatrix}0\\0\\1\end{pmatrix}
+$};
+}
+
+\coordinate (K) at (\Kx,3.2);
+\coordinate (Kx) at (\Kx,\Lx);
+\coordinate (Ky) at (\Kx,\Ly);
+\coordinate (Kz) at (\Kx,\Lz);
+\coordinate (Vx) at (\Kx,{\Lx-1});
+\coordinate (Vy) at (\Kx,{\Ly-1});
+\coordinate (Vz) at (\Kx,{\Lz-1});
+
+\uncover<3->{
+\node at (K) [right]
+ {\usebeamercolor[fg]{title}Kommutator\strut};
+
+\node at (Kx) [right] {$\displaystyle
+\begin{aligned}
+[U_y,U_z] &\uncover<4->{=
+{\tiny
+\begin{pmatrix}
+0&0&0\\
+0&0&0\\
+0&1&0
+\end{pmatrix}}
+\uncover<5->{\mathstrut-
+\tiny
+\begin{pmatrix}
+0&0&0\\
+0&0&1\\
+0&0&0
+\end{pmatrix}}}
+\uncover<6->{=U_x}
+\end{aligned}
+$};
+}
+
+\uncover<7->{
+\node at (Ky) [right] {$\displaystyle
+\begin{aligned}
+[U_z,U_x] &=
+{\tiny
+\begin{pmatrix}
+0&0&1\\
+0&0&0\\
+0&0&0
+\end{pmatrix}
+-
+\begin{pmatrix}
+0&0&0\\
+0&0&0\\
+1&0&0
+\end{pmatrix}}
+=U_y
+\end{aligned}
+$};
+}
+
+\uncover<8->{
+\node at (Kz) [right] {$\displaystyle
+\begin{aligned}
+[U_x,U_y] &=
+{\tiny
+\begin{pmatrix}
+0&0&0\\
+1&0&0\\
+0&0&0
+\end{pmatrix}
+-
+\begin{pmatrix}
+0&1&0\\
+0&0&0\\
+0&0&0
+\end{pmatrix}}
+=U_z
+\end{aligned}
+$};
+}
+
+\uncover<10->{
+\node at (Vx) [right] {$\displaystyle \phantom{]}e_y\times e_z = e_x$};
+}
+
+\uncover<11->{
+\node at (Vy) [right] {$\displaystyle \phantom{]}e_z\times e_x = e_y$};
+}
+
+\uncover<12->{
+\node at (Vz) [right] {$\displaystyle \phantom{]}e_x\times e_y = e_z$};
+}
+
+\end{tikzpicture}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/Makefile.inc b/vorlesungen/slides/8/Makefile.inc
index d46dc7f..6ac5665 100644
--- a/vorlesungen/slides/8/Makefile.inc
+++ b/vorlesungen/slides/8/Makefile.inc
@@ -28,5 +28,25 @@ chapter8 = \
../slides/8/tokyo/bahn0.tex \
../slides/8/tokyo/bahn1.tex \
../slides/8/tokyo/bahn2.tex \
+ ../slides/8/chrind.tex \
+ ../slides/8/chrindprop.tex \
+ ../slides/8/chroma1.tex \
+ ../slides/8/amax.tex \
+ ../slides/8/subgraph.tex \
+ ../slides/8/chrwilf.tex \
+ ../slides/8/weitere.tex \
+ ../slides/8/wavelets/funktionen.tex \
+ ../slides/8/wavelets/laplacebasis.tex \
+ ../slides/8/wavelets/vektoren.tex \
+ ../slides/8/wavelets/fourier.tex \
+ ../slides/8/wavelets/lokalisierungsvergleich.tex \
+ ../slides/8/wavelets/frequenzlokalisierung.tex \
+ ../slides/8/wavelets/dilatation.tex \
+ ../slides/8/wavelets/matrixdilatation.tex \
+ ../slides/8/wavelets/gundh.tex \
+ ../slides/8/wavelets/dilbei.tex \
+ ../slides/8/wavelets/frame.tex \
+ ../slides/8/wavelets/framekonstanten.tex \
+ ../slides/8/wavelets/beispiel.tex \
../slides/8/chapter.tex
diff --git a/vorlesungen/slides/8/amax.tex b/vorlesungen/slides/8/amax.tex
new file mode 100644
index 0000000..951400a
--- /dev/null
+++ b/vorlesungen/slides/8/amax.tex
@@ -0,0 +1,86 @@
+%
+% amax.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{$\alpha_{\text{max}}$ und $d$}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.44\textwidth}
+\begin{block}{Definition}
+$\alpha_{\text{max}}$ ist der grösste Eigenwert der Adjazenzmatrix
+\end{block}
+\uncover<2->{
+\begin{block}{Fakten}
+\begin{itemize}
+\item<3->
+Der Eigenwert $\alpha_{\text{max}}$ ist einfach
+\item<4->
+Es gibt einen positiven Eigenvektor $f$ zum Eigenwert $\alpha_{\text{max}}$
+\item<5->
+$f$ maximiert
+\[
+\frac{\langle Af,f\rangle}{\langle f,f\rangle}
+=
+\alpha_{\text{max}}
+\]
+\end{itemize}
+Herkunft: Perron-Frobenius-Theorie positiver Matrizen (nächste Woche)
+\end{block}}
+\end{column}
+\begin{column}{0.52\textwidth}
+\uncover<6->{%
+\begin{block}{Mittlerer Grad}
+\[
+\overline{d}
+=
+\frac1{n} \sum_{v} \operatorname{deg}(v)
+\le
+\alpha_{\text{max}}
+\le
+d
+\]
+\end{block}}
+\vspace{-10pt}
+\uncover<7->{%
+\begin{proof}[Beweis]
+\begin{itemize}
+\item Konstante Funktion $1$ anstelle von $f$:
+\[
+\frac{\langle A1,1\rangle}{\langle 1,1\rangle}
+\uncover<8->{=
+\frac{\sum_v \operatorname{deg}(v)}{n}}
+\uncover<9->{=
+\overline{d}}
+\uncover<10->{\le
+\alpha_{\text{max}}}
+\]
+\item<11-> Komponenten von $Af$ summieren:
+\begin{align*}
+\uncover<12->{
+\alpha_{\text{max}}
+f(v) &= (Af)(v)}\uncover<13->{ = \sum_{u\sim v} f(u)}
+\\
+\uncover<14->{\alpha_{\text{max}}
+\sum_{v}f(v)
+&=
+\sum_v
+\operatorname{deg}(v) f(v)}
+\\
+&\uncover<15->{\le
+d\sum_v f(v)}
+\;
+\uncover<16->{\Rightarrow
+\;
+\alpha_{\text{max}} \le d}
+\end{align*}
+\end{itemize}
+\end{proof}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/chapter.tex b/vorlesungen/slides/8/chapter.tex
index 6a0b13f..69b7231 100644
--- a/vorlesungen/slides/8/chapter.tex
+++ b/vorlesungen/slides/8/chapter.tex
@@ -30,3 +30,24 @@
\folie{8/tokyo/bahn1.tex}
\folie{8/tokyo/bahn2.tex}
+\folie{8/chrind.tex}
+\folie{8/chrindprop.tex}
+\folie{8/chroma1.tex}
+\folie{8/amax.tex}
+\folie{8/subgraph.tex}
+\folie{8/chrwilf.tex}
+\folie{8/weitere.tex}
+
+\folie{8/wavelets/funktionen.tex}
+\folie{8/wavelets/laplacebasis.tex}
+\folie{8/wavelets/fourier.tex}
+\folie{8/wavelets/lokalisierungsvergleich.tex}
+\folie{8/wavelets/frequenzlokalisierung.tex}
+\folie{8/wavelets/dilatation.tex}
+\folie{8/wavelets/matrixdilatation.tex}
+\folie{8/wavelets/gundh.tex}
+\folie{8/wavelets/frame.tex}
+\folie{8/wavelets/dilbei.tex}
+\folie{8/wavelets/framekonstanten.tex}
+\folie{8/wavelets/beispiel.tex}
+
diff --git a/vorlesungen/slides/8/chrind.tex b/vorlesungen/slides/8/chrind.tex
new file mode 100644
index 0000000..bd406ab
--- /dev/null
+++ b/vorlesungen/slides/8/chrind.tex
@@ -0,0 +1,231 @@
+%
+% chrind.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Chromatische Zahl und Unabhängigkeitszahl}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Chromatische Zahl}
+$\operatorname{chr}(G)=\mathstrut$
+minimale Anzahl Farben, die zum Einfärben eines Graphen $G$ nötig sind derart,
+dass benachbarte Knoten verschiedene Farben haben.
+\begin{center}
+\begin{tikzpicture}[>=latex,thick]
+
+\def\Ra{2}
+\def\Ri{1}
+\def\e{1.0}
+\def\r{0.2}
+
+\definecolor{rot}{rgb}{0.8,0,0.8}
+\definecolor{gruen}{rgb}{0.2,0.6,0.2}
+\definecolor{blau}{rgb}{1,0.6,0.2}
+
+\coordinate (PA) at ({\Ri*sin(0*72)},{\e*\Ri*cos(0*72)});
+\coordinate (PB) at ({\Ri*sin(1*72)},{\e*\Ri*cos(1*72)});
+\coordinate (PC) at ({\Ri*sin(2*72)},{\e*\Ri*cos(2*72)});
+\coordinate (PD) at ({\Ri*sin(3*72)},{\e*\Ri*cos(3*72)});
+\coordinate (PE) at ({\Ri*sin(4*72)},{\e*\Ri*cos(4*72)});
+
+\coordinate (QA) at ({\Ra*sin(0*72)},{\e*\Ra*cos(0*72)});
+\coordinate (QB) at ({\Ra*sin(1*72)},{\e*\Ra*cos(1*72)});
+\coordinate (QC) at ({\Ra*sin(2*72)},{\e*\Ra*cos(2*72)});
+\coordinate (QD) at ({\Ra*sin(3*72)},{\e*\Ra*cos(3*72)});
+\coordinate (QE) at ({\Ra*sin(4*72)},{\e*\Ra*cos(4*72)});
+
+\draw (PA)--(PC)--(PE)--(PB)--(PD)--cycle;
+\draw (QA)--(QB)--(QC)--(QD)--(QE)--cycle;
+\draw (PA)--(QA);
+\draw (PB)--(QB);
+\draw (PC)--(QC);
+\draw (PD)--(QD);
+\draw (PE)--(QE);
+
+\only<1>{
+ \fill[color=white] (PA) circle[radius=\r];
+ \fill[color=white] (PB) circle[radius=\r];
+ \fill[color=white] (PC) circle[radius=\r];
+ \fill[color=white] (PD) circle[radius=\r];
+ \fill[color=white] (PE) circle[radius=\r];
+ \fill[color=white] (QA) circle[radius=\r];
+ \fill[color=white] (QB) circle[radius=\r];
+ \fill[color=white] (QC) circle[radius=\r];
+ \fill[color=white] (QD) circle[radius=\r];
+ \fill[color=white] (QE) circle[radius=\r];
+}
+
+\only<2->{
+ \fill[color=blau] (PA) circle[radius=\r];
+ \fill[color=rot] (PB) circle[radius=\r];
+ \fill[color=rot] (PC) circle[radius=\r];
+ \fill[color=gruen] (PD) circle[radius=\r];
+ \fill[color=gruen] (PE) circle[radius=\r];
+
+ \fill[color=rot] (QA) circle[radius=\r];
+ \fill[color=blau] (QB) circle[radius=\r];
+ \fill[color=gruen] (QC) circle[radius=\r];
+ \fill[color=rot] (QD) circle[radius=\r];
+ \fill[color=blau] (QE) circle[radius=\r];
+}
+
+\draw (PA) circle[radius=\r];
+\draw (PB) circle[radius=\r];
+\draw (PC) circle[radius=\r];
+\draw (PD) circle[radius=\r];
+\draw (PE) circle[radius=\r];
+
+\draw (QA) circle[radius=\r];
+\draw (QB) circle[radius=\r];
+\draw (QC) circle[radius=\r];
+\draw (QD) circle[radius=\r];
+\draw (QE) circle[radius=\r];
+
+\node at ($0.5*(QC)+0.5*(QD)+(0,-0.2)$) [below] {$\operatorname{chr} G = 3$};
+
+\end{tikzpicture}
+\end{center}
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<3->{%
+\begin{block}{Unabhängigkeitszahl}
+$\operatorname{ind}(G)=\mathstrut$
+maximale Anzahl nicht benachbarter Knoten
+\begin{center}
+\begin{tikzpicture}[>=latex,thick]
+
+\def\Ra{2}
+\def\Ri{1}
+\def\e{1.0}
+\def\r{0.2}
+
+\definecolor{rot}{rgb}{0.8,0,0.8}
+\definecolor{gruen}{rgb}{0.2,0.6,0.2}
+\definecolor{blau}{rgb}{1,0.6,0.2}
+\definecolor{gelb}{rgb}{0,0,1}
+
+\coordinate (PA) at ({\Ri*sin(0*72)},{\e*\Ri*cos(0*72)});
+\coordinate (PB) at ({\Ri*sin(1*72)},{\e*\Ri*cos(1*72)});
+\coordinate (PC) at ({\Ri*sin(2*72)},{\e*\Ri*cos(2*72)});
+\coordinate (PD) at ({\Ri*sin(3*72)},{\e*\Ri*cos(3*72)});
+\coordinate (PE) at ({\Ri*sin(4*72)},{\e*\Ri*cos(4*72)});
+
+\coordinate (QA) at ({\Ra*sin(0*72)},{\e*\Ra*cos(0*72)});
+\coordinate (QB) at ({\Ra*sin(1*72)},{\e*\Ra*cos(1*72)});
+\coordinate (QC) at ({\Ra*sin(2*72)},{\e*\Ra*cos(2*72)});
+\coordinate (QD) at ({\Ra*sin(3*72)},{\e*\Ra*cos(3*72)});
+\coordinate (QE) at ({\Ra*sin(4*72)},{\e*\Ra*cos(4*72)});
+
+\draw (PA)--(PC)--(PE)--(PB)--(PD)--cycle;
+\draw (QA)--(QB)--(QC)--(QD)--(QE)--cycle;
+\draw (PA)--(QA);
+\draw (PB)--(QB);
+\draw (PC)--(QC);
+\draw (PD)--(QD);
+\draw (PE)--(QE);
+
+\foreach \n in {1,...,7}{
+ \only<\n>{\node[color=white] at (1,2.9) {$\n$};}
+}
+
+\fill[color=white] (PA) circle[radius=\r];
+\fill[color=white] (PB) circle[radius=\r];
+\fill[color=white] (PC) circle[radius=\r];
+\fill[color=white] (PD) circle[radius=\r];
+\fill[color=white] (PE) circle[radius=\r];
+\fill[color=white] (QA) circle[radius=\r];
+\fill[color=white] (QB) circle[radius=\r];
+\fill[color=white] (QC) circle[radius=\r];
+\fill[color=white] (QD) circle[radius=\r];
+\fill[color=white] (QE) circle[radius=\r];
+
+\only<4->{
+ \fill[color=rot] (QA) circle[radius={1.5*\r}];
+ \fill[color=rot!40] (QB) circle[radius=\r];
+ \fill[color=rot!40] (QE) circle[radius=\r];
+ \fill[color=rot!40] (PA) circle[radius=\r];
+}
+
+\only<5->{
+ \fill[color=blau] (PB) circle[radius={1.5*\r}];
+ \fill[color=blau!40] (PD) circle[radius=\r];
+ \fill[color=blau!40] (PE) circle[radius=\r];
+ \fill[color=blau!80,opacity=0.5] (QB) circle[radius=\r];
+}
+
+\only<6->{
+ \fill[color=gruen] (PC) circle[radius={1.5*\r}];
+ \fill[color=gruen!40] (QC) circle[radius=\r];
+ \fill[color=gruen!80,opacity=0.5] (PA) circle[radius=\r];
+ \fill[color=gruen!80,opacity=0.5] (PE) circle[radius=\r];
+}
+
+\only<7->{
+ \fill[color=gelb] (QD) circle[radius={1.5*\r}];
+ \fill[color=gelb!80,opacity=0.5] (QC) circle[radius=\r];
+ \fill[color=gelb!80,opacity=0.5] (QE) circle[radius=\r];
+ \fill[color=gelb!80,opacity=0.5] (PD) circle[radius=\r];
+}
+
+\only<-3|handout:0>{
+ \draw (QA) circle[radius=\r];
+}
+\only<4->{
+ \draw (QA) circle[radius={1.5*\r}];
+}
+
+\only<-4|handout:0>{
+ \draw (PB) circle[radius=\r];
+}
+\only<5->{
+ \draw (PB) circle[radius={1.5*\r}];
+}
+
+\only<-5|handout:0>{
+ \draw (PC) circle[radius=\r];
+}
+\only<6->{
+ \draw (PC) circle[radius={1.5*\r}];
+}
+
+\only<-6|handout:0>{
+ \draw (QD) circle[radius=\r];
+}
+\only<7->{
+ \draw (QD) circle[radius={1.5*\r}];
+}
+
+\draw (PA) circle[radius=\r];
+\draw (PD) circle[radius=\r];
+\draw (PE) circle[radius=\r];
+
+\draw (QB) circle[radius=\r];
+\draw (QC) circle[radius=\r];
+\draw (QE) circle[radius=\r];
+
+\only<4|handout:0>{
+\node at ($0.5*(QC)+0.5*(QD)+(0,-0.2)$) [below] {$\operatorname{ind} G = 1$};
+}
+\only<5|handout:0>{
+\node at ($0.5*(QC)+0.5*(QD)+(0,-0.2)$) [below] {$\operatorname{ind} G = 2$};
+}
+\only<6|handout:0>{
+\node at ($0.5*(QC)+0.5*(QD)+(0,-0.2)$) [below] {$\operatorname{ind} G = 3$};
+}
+\only<7->{
+\node at ($0.5*(QC)+0.5*(QD)+(0,-0.2)$) [below] {$\operatorname{ind} G = 4$};
+}
+
+\end{tikzpicture}
+\end{center}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/chrindprop.tex b/vorlesungen/slides/8/chrindprop.tex
new file mode 100644
index 0000000..094588c
--- /dev/null
+++ b/vorlesungen/slides/8/chrindprop.tex
@@ -0,0 +1,62 @@
+%
+% chrindprop.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Zusammenhang zwischen $\operatorname{chr}G$ und $\operatorname{ind}G$}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.38\textwidth}
+\begin{block}{Proposition}
+Ist $G$ ein Graph mit $n$ Knoten, dann gilt
+\[
+\operatorname{chr}G
+\cdot
+\operatorname{ind}G
+\ge n
+\]
+\end{block}
+\uncover<2->{%
+\begin{block}{Beispiel}
+Peterson-Graph $K$ hat $n=10$ Knoten:
+\[
+\operatorname{chr}(K)
+\cdot
+\operatorname{ind}(K)
+=
+3\cdot 4
+\ge
+10
+=
+n
+\]
+\end{block}}
+\end{column}
+\begin{column}{0.58\textwidth}
+\uncover<3->{%
+\begin{proof}[Beweis]
+\begin{itemize}
+\item<4-> eine minimale Färbung hat $\operatorname{chr}(G)$ Farben
+\item<5-> Sie teilt die Knoten in $\operatorname{chr}(G)$
+gleichfarbige Mengen auf
+\item<6-> Jede einfarbige Menge von Knoten ist unabhängig, d.~h.~sie
+besteht aus Knoten, die nicht miteinander verbunden sind.
+\item<7-> Jede einfarbige Menge enthält höchstens $\operatorname{ind}(G)$
+\item<8-> Die Gesamtzahl der Knoten ist
+\[
+n\uncover<9->{=\sum_{\text{Farbe}}\underbrace{|V_{\text{Farbe}}|}_{\le \operatorname{ind}(G)}}
+\uncover<10->{\le
+\operatorname{chr}(G)
+\cdot
+\operatorname{ind}(G)}
+\]
+\end{itemize}
+\end{proof}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/chroma1.tex b/vorlesungen/slides/8/chroma1.tex
new file mode 100644
index 0000000..6a55704
--- /dev/null
+++ b/vorlesungen/slides/8/chroma1.tex
@@ -0,0 +1,56 @@
+%
+% chroma1.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Schranke für $\operatorname{chr}(G)$}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.40\textwidth}
+\begin{block}{Proposition}
+Ist $G$ ein Graph mit maximalem Grad $d$, dann gilt
+\[
+\operatorname{chr}(G) \le d + 1
+\]
+\end{block}
+\uncover<2->{%
+\begin{block}{Beispiel}
+\begin{itemize}
+\item<3->
+Peterson-Graph $G$: maximaler Grad ist $d=3$, aber
+\[
+\operatorname{chr}(G)
+=
+3
+< d+1=4
+\]
+\item<4->
+Voller Graph $V$: maximaler Grad ist $d=n-1$,
+\[
+\operatorname{chr}(V) = n = d+1
+\]
+\end{itemize}
+\end{block}}
+\end{column}
+\begin{column}{0.58\textwidth}
+\uncover<4->{%
+\begin{proof}[Beweis]
+Mit vollständiger Induktion, d.~h.~Annahme: Graphen mit $<n$ Knoten und
+maximalem Grad $d$ lassen sich mit höchstens $d+1$ Farben färben.
+\begin{itemize}
+\item<5-> $X$ ein Graph mit $n$ Knoten
+\item<6-> entferne den Knoten $v\in X$, $X'=X\setminus\{v\}$
+\item<7-> $X'$ lässt sich mit höchstens $d+1$ Farben einfärben
+\item<8-> $v$ hat höchstens $d$ Nachbarn, die höchsten $d$ verschiedene
+Farben haben
+\item<9-> Es bleibt eine Farbe für $v$
+\end{itemize}
+\end{proof}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/chrwilf.tex b/vorlesungen/slides/8/chrwilf.tex
new file mode 100644
index 0000000..7edb10e
--- /dev/null
+++ b/vorlesungen/slides/8/chrwilf.tex
@@ -0,0 +1,115 @@
+%
+% chrwilf.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\def\kante#1#2{
+ \draw[shorten >= 0.2cm,shorten <= 0.2cm] (#1) -- (#2);
+}
+\def\knoten#1#2{
+ \uncover<8->{
+ \fill[color=#2!30] (#1) circle[radius=0.2];
+ \draw[color=#2] (#1) circle[radius=0.2];
+ }
+ \only<-7>{
+ \draw (#1) circle[radius=0.2];
+ }
+}
+\def\R{1.5}
+\definecolor{rot}{rgb}{1,0,0}
+\definecolor{gruen}{rgb}{0,0.6,0}
+\definecolor{blau}{rgb}{0,0,1}
+\begin{frame}[t]
+\frametitle{Schranke für die chromatische Zahl}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Satz (Wilf)}
+$\uncover<2->{\operatorname{chr}(X) \le 1+}\alpha_{\text{max}} \le\uncover<2->{ 1 + }d$
+\end{block}
+\uncover<3->{%
+\begin{block}{Beispiel}
+\begin{align*}
+\uncover<4->{d&= 4}
+&&\uncover<5->{\Rightarrow& \operatorname{chr}(G) &\le 5}\\
+\uncover<6->{\alpha_{\text{max}} &=
+2.9565}
+&&\uncover<7->{\Rightarrow& \operatorname{chr}(G) &\le 3}\\
+\uncover<4->{\overline{d} &= \frac{24}{9}=\rlap{$2.6666$}}
+\end{align*}
+\vspace{-20pt}
+\begin{center}
+\begin{tikzpicture}[>=latex,thick]
+
+\coordinate (A) at (0:\R);
+\coordinate (B) at (40:\R);
+\coordinate (C) at (80:\R);
+\coordinate (D) at (120:\R);
+\coordinate (E) at (160:\R);
+\coordinate (F) at (200:\R);
+\coordinate (G) at (240:\R);
+\coordinate (H) at (280:\R);
+\coordinate (I) at (320:\R);
+
+\knoten{A}{rot}
+\knoten{B}{blau}
+\knoten{C}{gruen}
+\knoten{D}{blau}
+\knoten{E}{rot}
+\knoten{F}{blau}
+\knoten{G}{rot}
+\knoten{H}{gruen}
+\knoten{I}{blau}
+
+\kante{A}{B}
+\kante{B}{C}
+\kante{C}{D}
+\kante{D}{E}
+\kante{E}{F}
+\kante{F}{G}
+\kante{G}{H}
+\kante{H}{I}
+\kante{I}{A}
+
+\kante{A}{C}
+\kante{A}{D}
+\kante{D}{G}
+
+\end{tikzpicture}
+\end{center}
+\end{block}}
+\end{column}
+\begin{column}{0.52\textwidth}
+\uncover<9->{%
+\begin{proof}[Beweis]
+Induktion nach der Grösse $n$ des Graphen.
+\begin{itemize}
+\item<10->
+Entferne $v\in X$ mit minimalem Grad: $X'=X\setminus \{v\}$
+\item<11->
+Induktionsannahme:
+\[
+\operatorname{chr}(X')
+\le
+1+
+\alpha_{\text{max}}'
+\]
+\item<12->
+$X'$ kann mit höhcstens $1+\alpha_{\text{max}}'\le 1+\alpha_{\text{max}}$
+Farben eingefärbt werden.
+\item<13->
+Wegen
+\(
+\deg(v) \le \overline{d} \le \alpha_{\text{max}}
+\)
+hat $v$ höchstens $\alpha_{\text{max}}$ Nachbarn, um $v$ zu färben,
+braucht man also höchstens $1+\alpha_{\text{max}}$ Farben.
+\end{itemize}
+\end{proof}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/inzidenz.tex b/vorlesungen/slides/8/inzidenz.tex
index 952c85b..10f88cd 100644
--- a/vorlesungen/slides/8/inzidenz.tex
+++ b/vorlesungen/slides/8/inzidenz.tex
@@ -5,6 +5,8 @@
%
\bgroup
\definecolor{darkgreen}{rgb}{0,0.6,0}
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
\begin{frame}[t]
\frametitle{Inzidenz- und Adjazenzmatrix}
\vspace{-20pt}
@@ -67,7 +69,7 @@
\vspace{-10pt}
\uncover<5->{%
\begin{block}{Definition}
-\vspace{-15pt}
+%\vspace{-15pt}
\begin{align*}
B(G)_{ij}&=1&&\Leftrightarrow&&\text{Kante $j$ endet in Knoten $i$}\\
A(G)_{ij}&=1&&\Leftrightarrow&&\text{Kante zwischen Knoten $i$ und $j$}
diff --git a/vorlesungen/slides/8/inzidenzd.tex b/vorlesungen/slides/8/inzidenzd.tex
index 5f2f51a..43e5330 100644
--- a/vorlesungen/slides/8/inzidenzd.tex
+++ b/vorlesungen/slides/8/inzidenzd.tex
@@ -5,6 +5,8 @@
%
\bgroup
\definecolor{darkgreen}{rgb}{0,0.6,0}
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
\begin{frame}[t]
\frametitle{Inzidenz- und Adjazenz-Matrix}
\vspace{-20pt}
@@ -67,7 +69,7 @@
\vspace{-15pt}
\uncover<5->{%
\begin{block}{Definition}
-\vspace{-20pt}
+%\vspace{-20pt}
\begin{align*}
B(G)_{ij}&=-1&&\Leftrightarrow&&\text{Kante $j$ von $i$}\\
B(G)_{kj}&=+1&&\Leftrightarrow&&\text{Kante $j$ nach $k$}\\
diff --git a/vorlesungen/slides/8/produkt.tex b/vorlesungen/slides/8/produkt.tex
index 1d8b725..93333bc 100644
--- a/vorlesungen/slides/8/produkt.tex
+++ b/vorlesungen/slides/8/produkt.tex
@@ -56,7 +56,7 @@
\end{center}
\vspace{-15pt}
\begin{block}{Berechne}
-\vspace{-20pt}
+%\vspace{-20pt}
\begin{align*}
\uncover<4->{L(G)}&\uncover<4->{=}B(G)B(G)^t
\end{align*}
diff --git a/vorlesungen/slides/8/spanningtree.tex b/vorlesungen/slides/8/spanningtree.tex
index 425fe1c..62180d9 100644
--- a/vorlesungen/slides/8/spanningtree.tex
+++ b/vorlesungen/slides/8/spanningtree.tex
@@ -3,6 +3,7 @@
%
% (c) 2019 Prof Dr Andreas Müller, Hochschule Rapperswil
%
+\bgroup
\begin{frame}
\frametitle{Spannbäume}
@@ -121,7 +122,7 @@ Wieviele Spannbäume gibt es?
\begin{column}{0.56\hsize}
\uncover<5->{%
\begin{block}{Laplace-Matrix}
-\vspace{-15pt}
+%\vspace{-15pt}
\[
L=
\tiny
@@ -162,3 +163,4 @@ L\text{ ohne }\left\{\begin{array}{c}\text{Zeile $i$}\\\text{Spalte $j$}\end{arr
\end{columns}
\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/subgraph.tex b/vorlesungen/slides/8/subgraph.tex
new file mode 100644
index 0000000..f3005f9
--- /dev/null
+++ b/vorlesungen/slides/8/subgraph.tex
@@ -0,0 +1,60 @@
+%
+% subgraph.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{$\alpha_{\text{max}}$ eines Untergraphen}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Satz}
+$X'$ ein echter Untergraph von $X$ mit Adjazenzmatrix $A'$ und grösstem
+Eigenwert $\alpha_{\text{max}}'$
+\[
+\alpha_{\text{max}}' \le \alpha_{\text{max}}
+\]
+\end{block}
+\uncover<2->{$V'$ die Knoten von $X'$}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<3->{%
+\begin{proof}[Beweis]
+\begin{itemize}
+\item<4->
+$f'$ der positive Eigenvektor von $A'$
+\item<5->
+Definiere
+\[
+g(v)
+=
+\begin{cases}
+f'(v) &\qquad v\in V'\\
+0 &\qquad \text{sonst}
+\end{cases}
+\]
+\item<6-> Skalarprodukte:
+\begin{align*}
+\uncover<7->{\langle f',f'\rangle &= \langle g,g\rangle}
+\\
+\uncover<8->{\langle A'f',f'\rangle &\le \langle Ag,g\rangle}
+\end{align*}
+\item<9-> Vergleich
+\[
+\alpha_{\text{max}}'
+=
+\frac{\langle A'f',f'\rangle}{\langle f',f'\rangle}
+\uncover<10->{\le
+\frac{\langle Ag,g\rangle}{\langle g,g\rangle}}
+\uncover<11->{\le
+\alpha_{\text{max}}}
+\]
+\end{itemize}
+\end{proof}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/wavelets/Makefile b/vorlesungen/slides/8/wavelets/Makefile
new file mode 100644
index 0000000..3b4a5ce
--- /dev/null
+++ b/vorlesungen/slides/8/wavelets/Makefile
@@ -0,0 +1,8 @@
+#
+# Makefile
+#
+# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+#
+
+vektoren.tex: ev.m
+ octave ev.m
diff --git a/vorlesungen/slides/8/wavelets/beispiel.tex b/vorlesungen/slides/8/wavelets/beispiel.tex
new file mode 100644
index 0000000..dcc33d4
--- /dev/null
+++ b/vorlesungen/slides/8/wavelets/beispiel.tex
@@ -0,0 +1,44 @@
+%
+% beispiel.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\def\bild#1#2{
+\node at (0,0) [rotate=-90]
+{\includegraphics[width=#1\textwidth]{../../../SeminarWavelets/buch/papers/sgwt/images/#2}};
+}
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Wavelets auf einer Kugel}
+\vspace{-10pt}
+\begin{center}
+\begin{tikzpicture}[>=latex,thick]
+
+\only<1>{ \bild{0.6}{wavelets-phi-sphere-334.pdf} }
+
+\only<2>{ \bild{0.6}{wavelets-psi-5-sphere-334.pdf} }
+\only<3>{ \bild{0.6}{wavelets-psi-4-sphere-334.pdf} }
+\only<4>{ \bild{0.6}{wavelets-psi-3-sphere-334.pdf} }
+\only<5>{ \bild{0.6}{wavelets-psi-2-sphere-334.pdf} }
+\only<6>{ \bild{0.6}{wavelets-psi-1-sphere-334.pdf} }
+
+\only<1>{ \node at (-7.6,2.8) [right] {Bandpass mit $g_1$}; }
+\only<2>{ \node at (-7.6,2.8) [right] {Bandpass mit $g_2$}; }
+\only<3>{ \node at (-7.6,2.8) [right] {Bandpass mit $g_3$}; }
+\only<4>{ \node at (-7.6,2.8) [right] {Bandpass mit $g_4$}; }
+\only<5>{ \node at (-7.6,2.8) [right] {Bandpass mit $g_5$}; }
+\only<6>{ \node at (-7.6,2.8) [right] {Tiefpass mit $h$}; }
+
+\only<1>{ \node at (-7.6,2) [right] {$D_{g,1/a_1}\chi_*$}; }
+\only<2>{ \node at (-7.6,2) [right] {$D_{g,1/a_2}\chi_*$}; }
+\only<3>{ \node at (-7.6,2) [right] {$D_{g,1/a_3}\chi_*$}; }
+\only<4>{ \node at (-7.6,2) [right] {$D_{g,1/a_4}\chi_*$}; }
+\only<5>{ \node at (-7.6,2) [right] {$D_{g,1/a_5}\chi_*$}; }
+\only<6>{ \node at (-7.6,2) [right] {$D_{h}\chi_*$}; }
+
+\end{tikzpicture}
+\end{center}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/wavelets/dilatation.tex b/vorlesungen/slides/8/wavelets/dilatation.tex
new file mode 100644
index 0000000..881f760
--- /dev/null
+++ b/vorlesungen/slides/8/wavelets/dilatation.tex
@@ -0,0 +1,62 @@
+%
+% template.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Dilatation}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Dilatation in $\mathbb{R}$}
+$f\colon \mathbb{R}\to\mathbb{R}$
+Definition im Ortsraum:
+\[
+(D_af)(x)
+=
+\frac{1}{\sqrt{|a|}}
+f\biggl(\frac{x}{a}\biggr)
+\]
+\uncover<2->{%
+Dilatation im Frequenzraum:
+\[
+\widehat{D_af}(\omega)
+=
+D_{1/a}\hat{f}(\omega)
+\]}
+\uncover<3->{%
+Spektrum wird mit $1/a$ skaliert!}
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<4->{%
+\begin{block}{``Dilatation'' auf einem Graphen}
+\begin{itemize}
+\item<5-> Dilatation auf dem Graphen gibt es nicht
+\item<6-> Dilatation im Spektrum $\{\lambda_1,\dots,\lambda_n\}$ gibt es nicht
+\item<7-> ``Spektrale Dilatation'' verwenden
+\begin{enumerate}
+\item<8-> Start: $e_k$
+\item<9-> Fourier-Transformation: $\chi^te_k$
+\item<10-> Spektrum skalieren: mit
+$D_{1/a}g$ filtern
+\item<11-> Rücktransformation
+\[
+D_{g,a}e_k
+=
+\chi
+\uncover<12->{\operatorname{diag}(\tilde{D}_{1/a}g(\lambda_*))
+\chi^t e_k}
+\]
+\end{enumerate}
+\end{itemize}
+
+
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/wavelets/dilbei.tex b/vorlesungen/slides/8/wavelets/dilbei.tex
new file mode 100644
index 0000000..fc66a0a
--- /dev/null
+++ b/vorlesungen/slides/8/wavelets/dilbei.tex
@@ -0,0 +1,46 @@
+%
+% beispiel.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\def\bild#1#2{
+\node at (0,0) [rotate=-90]
+{\includegraphics[width=#1\textwidth]{../../../SeminarWavelets/buch/papers/sgwt/images/#2}};
+}
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Wavelets einer Strecke}
+\vspace{-10pt}
+\begin{center}
+\begin{tikzpicture}[>=latex,thick]
+
+\only<1>{ \bild{0.6}{wavelets-psi-line-5-10.pdf} }
+\only<2>{ \bild{0.6}{wavelets-psi-line-4-10.pdf} }
+\only<3>{ \bild{0.6}{wavelets-psi-line-3-10.pdf} }
+\only<4>{ \bild{0.6}{wavelets-psi-line-2-10.pdf} }
+\only<5>{ \bild{0.6}{wavelets-psi-line-1-10.pdf} }
+
+\only<6>{ \bild{0.6}{wavelets-phi-line-10.pdf} }
+
+\only<1>{ \node at (-7.6,2.8) [right] {Bandpass mit $g_1$}; }
+\only<2>{ \node at (-7.6,2.8) [right] {Bandpass mit $g_2$}; }
+\only<3>{ \node at (-7.6,2.8) [right] {Bandpass mit $g_3$}; }
+\only<4>{ \node at (-7.6,2.8) [right] {Bandpass mit $g_4$}; }
+\only<5>{ \node at (-7.6,2.8) [right] {Bandpass mit $g_5$}; }
+\only<6>{ \node at (-7.6,2.8) [right] {Tiefpass mit $h$}; }
+
+
+\only<1>{ \node at (-7.6,2) [right] {$D_{g,1/a_1}\chi_*$}; }
+\only<2>{ \node at (-7.6,2) [right] {$D_{g,1/a_2}\chi_*$}; }
+\only<3>{ \node at (-7.6,2) [right] {$D_{g,1/a_3}\chi_*$}; }
+\only<4>{ \node at (-7.6,2) [right] {$D_{g,1/a_4}\chi_*$}; }
+\only<5>{ \node at (-7.6,2) [right] {$D_{g,1/a_5}\chi_*$}; }
+
+\only<6>{ \node at (-7.6,2) [right] {$D_{h}\chi_*$}; }
+
+\end{tikzpicture}
+\end{center}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/wavelets/ev.m b/vorlesungen/slides/8/wavelets/ev.m
new file mode 100644
index 0000000..7f4dd55
--- /dev/null
+++ b/vorlesungen/slides/8/wavelets/ev.m
@@ -0,0 +1,97 @@
+#
+# ev.m
+#
+# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+#
+
+L = [
+ 2, -1, 0, -1, 0;
+ -1, 4, -1, -1, -1;
+ 0, -1, 2, 0, -1;
+ -1, -1, 0, 3, -1;
+ 0, -1, -1, -1, 3
+];
+
+[v, lambda] = eig(L);
+
+function knoten(fn, wert, punkt)
+ if (wert > 0)
+ farbe = sprintf("red!%02d", round(100 * wert));
+ else
+ farbe = sprintf("blue!%02d", round(-100 * wert));
+ end
+ fprintf(fn, "\t\\fill[color=%s] %s circle[radius=0.25];\n",
+ farbe, punkt);
+ fprintf(fn, "\t\\draw %s circle[radius=0.25];\n", punkt);
+endfunction
+
+function vektor(fn, v, name, lambda)
+ fprintf(fn, "\\def\\%s{\n", name);
+ fprintf(fn, "\t\\coordinate (A) at ({0*\\a},0);\n");
+ fprintf(fn, "\t\\coordinate (B) at ({1*\\a},0);\n");
+ fprintf(fn, "\t\\coordinate (C) at ({2*\\a},0);\n");
+ fprintf(fn, "\t\\coordinate (D) at ({0.5*\\a},{-\\b});\n");
+ fprintf(fn, "\t\\coordinate (E) at ({1.5*\\a},{-\\b});\n");
+ fprintf(fn, "\t\\draw (A) -- (B);\n");
+ fprintf(fn, "\t\\draw (A) -- (D);\n");
+ fprintf(fn, "\t\\draw (B) -- (C);\n");
+ fprintf(fn, "\t\\draw (B) -- (D);\n");
+ fprintf(fn, "\t\\draw (B) -- (E);\n");
+ fprintf(fn, "\t\\draw (C) -- (E);\n");
+ fprintf(fn, "\t\\draw (D) -- (E);\n");
+ fprintf(fn, "\t\\node at (-2.8,{-0.5*\\b}) [right] {$\\lambda=%.4f$};\n",
+ round(1000 * abs(lambda)) / 10000);
+ w = v / max(abs(v));
+ knoten(fn, w(1,1), "(A)");
+ knoten(fn, w(2,1), "(B)");
+ knoten(fn, w(3,1), "(C)");
+ knoten(fn, w(4,1), "(D)");
+ knoten(fn, w(5,1), "(E)");
+ fprintf(fn, "}\n");
+endfunction
+
+function punkt(fn, x, wert)
+ fprintf(fn, "({%.4f*\\c},{%.4f*\\d})", x, wert);
+endfunction
+
+function funktion(fn, v, name, lambda)
+ fprintf(fn, "\\def\\%s{\n", name);
+ fprintf(fn, "\t\\draw[color=red,line width=1.4pt]\n\t\t");
+ punkt(fn, -2, v(1,1));
+ fprintf(fn, " --\n\t\t");
+ punkt(fn, -1, v(4,1));
+ fprintf(fn, " --\n\t\t");
+ punkt(fn, 0, v(2,1));
+ fprintf(fn, " --\n\t\t");
+ punkt(fn, 1, v(5,1));
+ fprintf(fn, " --\n\t\t");
+ punkt(fn, 2, v(3,1));
+ fprintf(fn, ";\n");
+ fprintf(fn, "\t\\draw[->] ({-2.1*\\c},0) -- ({2.1*\\c},0);\n");
+ fprintf(fn, "\t\\draw[->] (0,{-1.1*\\d}) -- (0,{1.1*\\d});\n");
+ for x = (-2:2)
+ fprintf(fn, "\t\\fill ({%d*\\c},0) circle[radius=0.05];\n", x);
+ endfor
+ fprintf(fn, "}\n");
+endfunction
+
+fn = fopen("vektoren.tex", "w");
+
+vektor(fn, v(:,1), "vnull", lambda(1,1));
+funktion(fn, v(:,1), "fnull", lambda(1,1));
+
+vektor(fn, v(:,2), "vone", lambda(2,2));
+funktion(fn, v(:,2), "fone", lambda(2,2));
+
+vektor(fn, v(:,3), "vtwo", lambda(3,3));
+funktion(fn, v(:,3), "ftwo", lambda(3,3));
+
+vektor(fn, v(:,4), "vthree", lambda(4,4));
+funktion(fn, v(:,4), "fthree", lambda(4,4));
+
+vektor(fn, v(:,5), "vfour", lambda(5,5));
+funktion(fn, v(:,5), "ffour", lambda(5,5));
+
+fclose(fn);
+
+
diff --git a/vorlesungen/slides/8/wavelets/fourier.tex b/vorlesungen/slides/8/wavelets/fourier.tex
new file mode 100644
index 0000000..3195ec8
--- /dev/null
+++ b/vorlesungen/slides/8/wavelets/fourier.tex
@@ -0,0 +1,86 @@
+%
+% fourier.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Fourier-Transformation}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Aufgabe}
+Gegeben: Funktion $f$ auf dem Graphen
+\\
+\uncover<2->{%
+Gesucht: Koeffizienten $\hat{f}$ der Darstellung in der Laplace-Basis}
+\end{block}
+\uncover<3->{%
+\begin{block}{Definition $\chi$-Matrix}
+Eigenwerte $0=\lambda_1<\lambda_2\le \dots \le \lambda_n$ von $L$
+\vspace{-10pt}
+\begin{center}
+\begin{tikzpicture}
+\node at (-1.9,0) [left] {$\chi=\mathstrut$};
+\node at (0,0) {$\left(\raisebox{0pt}[1.7cm][1.7cm]{\hspace{3.5cm}}\right)$};
+
+\fill[color=blue!20] (-1.7,-1.7) rectangle (-1.1,1.7);
+\draw[color=blue] (-1.7,-1.7) rectangle (-1.1,1.7);
+\node at (-1.4,0) [rotate=90] {$v_1=\mathstrut$EV zum EW $\lambda_1$\strut};
+
+\fill[color=blue!20] (-1.0,-1.7) rectangle (-0.4,1.7);
+\draw[color=blue] (-1.0,-1.7) rectangle (-0.4,1.7);
+\node at (-0.7,0) [rotate=90] {$v_2=\mathstrut$EV zum EW $\lambda_2$\strut};
+
+\fill[color=blue!20] (1.1,-1.7) rectangle (1.7,1.7);
+\draw[color=blue] (1.1,-1.7) rectangle (1.7,1.7);
+\node at (1.4,0) [rotate=90] {$v_n=\mathstrut$EV zum EW $\lambda_n$\strut};
+
+\node at (0.4,0) {$\dots$};
+
+\end{tikzpicture}
+\end{center}
+\end{block}}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<4->{%
+\begin{block}{Transformation}
+$L$ symmetrisch
+\\
+\uncover<5->{$\Rightarrow$
+Die Eigenvektoren von $L$ können orthonormiert gewählt werden}
+\\
+\uncover<6->{$\Rightarrow$
+Koeffizienten können durch Skalarprodukte ermittelt werden:}
+\uncover<7->{%
+\[
+\hat{f}(k)
+=
+\hat{f}(\lambda_k)
+\uncover<8->{=
+\langle v_k, f\rangle
+\quad\Rightarrow\quad
+\hat{f}}
+\uncover<9->{=
+\chi^tf}
+\]}
+\uncover<10->{%
+$\chi$ ist die {\em Fourier-Transformation}}
+\end{block}}
+\uncover<11->{%
+\begin{block}{Rücktransformation}
+Eigenvektoren orthonormiert
+\\
+\uncover<12->{$\Rightarrow$
+$\chi$ orthogonal}
+\uncover<13->{
+\[
+\chi\chi^t = I
+\]}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/wavelets/frame.tex b/vorlesungen/slides/8/wavelets/frame.tex
new file mode 100644
index 0000000..4d0c7d1
--- /dev/null
+++ b/vorlesungen/slides/8/wavelets/frame.tex
@@ -0,0 +1,66 @@
+%
+% template.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Graph Wavelet Frame}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Frame-Vektoren}
+Zu Dilatationsfaktoren $A=\{a_i\,|\,i=1,\dots,N\}$
+konstruiere das Frame
+\begin{align*}
+F=
+\{&D_he_1,\dots,D_he_n,\\
+ &Dg_1e_1,\dots,Dg_1e_n,\\
+ &Dg_2e_1,\dots,Dg_2e_n,\\
+ &\dots\\
+ &Dg_Ne_1,\dots,Dg_Ne_n\}
+\end{align*}
+\uncover<2->{Notation:
+\begin{align*}
+v_{0,k}
+&=
+D_he_k
+\\
+v_{i,k}
+&=
+Dg_ie_k
+\end{align*}}
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<3->{%
+\begin{block}{Frameoperator}
+\begin{align*}
+\mathcal{T}\colon \mathbb{R}^n\to\mathbb{R}^{nN}
+:
+v
+&\mapsto
+\begin{pmatrix}
+\uncover<4->{\langle D_he_1,v\rangle}\\
+\uncover<4->{\vdots}\\
+\uncover<4->{\langle D_he_n,v\rangle}\\
+\hline
+\uncover<5->{\langle D_{g_1}e_1,v\rangle}\\
+\uncover<5->{\vdots}\\
+\uncover<5->{\langle D_{g_1}e_n,v\rangle}\\
+\hline
+\uncover<6->{\vdots}\\
+\uncover<6->{\vdots}\\
+\hline
+\uncover<7->{\langle D_{g_N}e_1,v\rangle}\\
+\uncover<7->{\vdots}\\
+\uncover<7->{\langle D_{g_N}e_n,v\rangle}
+\end{pmatrix}
+\end{align*}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/wavelets/framekonstanten.tex b/vorlesungen/slides/8/wavelets/framekonstanten.tex
new file mode 100644
index 0000000..a436536
--- /dev/null
+++ b/vorlesungen/slides/8/wavelets/framekonstanten.tex
@@ -0,0 +1,71 @@
+%
+% template.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+%\setlength{\abovedisplayskip}{5pt}
+%\setlength{\belowdisplayskip}{5pt}
+\frametitle{Framekonstanten}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Definition}
+Eine Menge $\mathcal{F}$ von Vektoren heisst ein Frame,
+falls es Konstanten $A$ und $B$ gibt derart, dass
+\[
+A\|v\|^2
+\le
+\|\mathcal{T}v\|^2
+\sum_{b\in\mathcal{F}} |\langle b,v\rangle|^2
+\le
+B\|v\|^2
+\]
+\uncover<2->{$A>0$ garantiert Invertierbarkeit}
+\end{block}
+\uncover<3->{%
+\begin{block}{$\|\mathcal{T}v\|$ für Graph-Wavelets}
+\begin{align*}
+\|\mathcal{T}v\|^2
+&=
+\sum_k |\langle D_he_k,v\rangle|^2
++
+\sum_{i,k} |\langle D_{g_i}e_k, v\rangle|^2
+\\
+&\uncover<4->{=
+\sum_k |h(\lambda_k) \hat{v}(k)|^2
++
+\sum_{k,i} |g_i(\lambda_k) \hat{v}(k)|^2}
+\end{align*}
+\end{block}}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<5->{%
+\begin{block}{$A$ und $B$}
+Frame-Norm-Funktion
+\begin{align*}
+f(\lambda)
+&=
+h(\lambda)
++
+\sum_i g_i(\lambda)
+\\
+&\uncover<6->{=
+h(\lambda)
++
+\sum_i g(a_i\lambda)}
+\end{align*}
+\uncover<7->{Abschätzung für Frame-Konstanten
+\begin{align*}
+A&\uncover<8->{=
+\min_{i} f(\lambda_i)}
+\\
+B&\uncover<9->{=
+\max_{i} f(\lambda_i)}
+\end{align*}}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/wavelets/frequenzlokalisierung.tex b/vorlesungen/slides/8/wavelets/frequenzlokalisierung.tex
new file mode 100644
index 0000000..c78e6dd
--- /dev/null
+++ b/vorlesungen/slides/8/wavelets/frequenzlokalisierung.tex
@@ -0,0 +1,78 @@
+%
+% frequenzlokalisierung.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+
+\def\kurve#1#2{
+ \draw[color=#2,line width=1.4pt]
+ plot[domain=0:6.3,samples=400]
+ ({\x},{7*\x*exp(-(\x/#1)*(\x/#1))/#1});
+}
+\definecolor{darkgreen}{rgb}{0,0.6,0}
+
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Lokalisierung}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Bandpass}
+Gegeben durch $g(\lambda)\ge 0$:
+\begin{align*}
+g(0) &= 0\\
+\lim_{\lambda\to\infty}g(\lambda)&= 0
+\end{align*}
+\vspace{-10pt}
+\begin{enumerate}
+\item<3-> Fourier-transformieren
+\item<4-> Amplituden mit $g(\lambda)$ multiplizieren
+\item<5-> Rücktransformieren
+\end{enumerate}
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<6->{%
+\begin{block}{Tiefpass}
+Gegeben durch $h(\lambda)\ge0$:
+\begin{align*}
+h(0) &= 1\\
+\lim_{\lambda\to\infty}h(\lambda)&= 0
+\end{align*}
+\vspace{-10pt}
+\begin{enumerate}
+\item<8-> Fourier-Transformation
+\item<9-> Amplituden mit $h(\lambda)$ multiplizieren
+\item<10-> Rücktransformation
+\end{enumerate}
+\end{block}}
+\end{column}
+\end{columns}
+\begin{center}
+\begin{tikzpicture}[>=latex,thick,scale=0.8]
+
+\uncover<2->{
+\begin{scope}[xshift=-4.5cm]
+\draw[->] (-0.1,0) -- (6.6,0) coordinate[label={$\lambda$}];
+\kurve{3}{red}
+\draw[->] (0,-0.1) -- (0,3.3);
+\end{scope}
+}
+
+\uncover<7->{
+\begin{scope}[xshift=4.5cm]
+\draw[->] (-0.1,0) -- (6.6,0) coordinate[label={$\lambda$}];
+\draw[color=darkgreen,line width=1.4pt]
+ plot[domain=0:6.3,samples=100]
+ ({\x},{3*exp(-(\x/0.5)*(\x/0.5)});
+
+\draw[->] (0,-0.1) -- (0,3.3) coordinate[label={right:$\color{darkgreen}h(\lambda)$}];
+\end{scope}
+}
+
+\end{tikzpicture}
+\end{center}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/wavelets/funktionen.tex b/vorlesungen/slides/8/wavelets/funktionen.tex
new file mode 100644
index 0000000..2e3ae9b
--- /dev/null
+++ b/vorlesungen/slides/8/wavelets/funktionen.tex
@@ -0,0 +1,78 @@
+%
+% funktionen.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\def\knoten#1#2{
+ \draw #1 circle[radius=0.25];
+ \node at #1 {$#2$};
+}
+\def\kante#1#2{
+ \draw[shorten >= 0.25cm,shorten <= 0.25cm] #1 -- #2;
+}
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Funktionen auf einem Graphen}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Definition}
+Ein Graph $G=(V,E)$, eine Funktion auf dem Graphen ist
+\[
+f\colon V \to \mathbb{R} : v\mapsto f(v)
+\]
+Knoten: $V=\{1,\dots,n\}$
+\\
+\uncover<2->{%
+Vektorschreibweise
+\[
+f = \begin{pmatrix}
+f(1)\\f(2)\\\vdots\\f(n)
+\end{pmatrix}
+\]}
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<3->{%
+\begin{block}{Matrizen}
+Adjazenz-, Grad- und Laplace-Matrix operieren auf Funktionen auf Graphen:
+\[
+L
+=
+\begin{pmatrix*}[r]
+ 2&-1& 0&-1& 0\\
+-1& 4&-1&-1&-1\\
+ 0&-1& 2& 0&-1\\
+-1&-1& 0& 3&-1\\
+ 0&-1&-1&-1& 3\\
+\end{pmatrix*}
+\]
+\end{block}
+\begin{center}
+\begin{tikzpicture}[>=latex,thick]
+\def\a{2}
+\coordinate (A) at (0,0);
+\coordinate (B) at (\a,0);
+\coordinate (C) at ({2*\a},0);
+\coordinate (D) at ({0.5*\a},{-0.5*sqrt(3)*\a});
+\coordinate (E) at ({1.5*\a},{-0.5*sqrt(3)*\a});
+\knoten{(A)}{1}
+\knoten{(B)}{2}
+\knoten{(C)}{3}
+\knoten{(D)}{4}
+\knoten{(E)}{5}
+\kante{(A)}{(B)}
+\kante{(B)}{(C)}
+\kante{(A)}{(D)}
+\kante{(B)}{(D)}
+\kante{(B)}{(E)}
+\kante{(C)}{(E)}
+\kante{(D)}{(E)}
+\end{tikzpicture}
+\end{center}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/wavelets/gundh.tex b/vorlesungen/slides/8/wavelets/gundh.tex
new file mode 100644
index 0000000..2d6c677
--- /dev/null
+++ b/vorlesungen/slides/8/wavelets/gundh.tex
@@ -0,0 +1,85 @@
+%
+% template.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\definecolor{darkgreen}{rgb}{0,0.6,0}
+
+\def\kurve#1#2{
+ \draw[color=#2,line width=1.4pt]
+ plot[domain=0:6.3,samples=400]
+ ({\x},{7*\x*exp(-(\x/#1)*(\x/#1))/#1});
+}
+
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Wavelets}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Mutterwavelets + Dilatation}
+Eine Menge von Dilatationsfaktoren
+\[
+A= \{a_1,a_2,\dots,a_N\}
+\]
+wählen\uncover<2->{, und mit Funktionen
+\[
+{\color{blue}g_i} = \tilde{D}_{1/a_i}{\color{red}g}
+\]
+die Standardbasisvektoren filtern}
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<5->{
+\begin{block}{Vaterwavelets}
+Tiefpass mit Funktion ${\color{darkgreen}h(\lambda)}$,
+Standardbasisvektoren mit ${\color{darkgreen}h}$ filtern:
+\[
+D_{\color{darkgreen}h}e_k
+\]
+\end{block}}
+\end{column}
+\end{columns}
+\begin{center}
+\begin{tikzpicture}[>=latex,thick]
+\begin{scope}
+
+\draw[->] (-0.1,0) -- (6.6,0) coordinate[label={$\lambda$}];
+
+\kurve{1}{red}
+\uncover<4->{
+\foreach \k in {0,...,4}{
+ \pgfmathparse{0.30*exp(ln(2)*\k)}
+ \xdef\l{\pgfmathresult}
+ \kurve{\l}{blue}
+}
+}
+
+\node[color=red] at ({0.7*1},3) [above] {$g(\lambda)$};
+\uncover<4->{
+\node[color=blue] at ({0.7*0.3*16},3) [above] {$g_i(\lambda)$};
+}
+
+\draw[->] (0,-0.1) -- (0,3.3);
+\end{scope}
+
+\begin{scope}[xshift=7cm]
+
+\uncover<6->{
+\draw[->] (-0.1,0) -- (6.6,0) coordinate[label={$\lambda$}];
+
+\draw[color=darkgreen,line width=1.4pt]
+ plot[domain=0:6.3,samples=100]
+ ({\x},{3*exp(-(\x/0.5)*(\x/0.5)});
+
+\draw[->] (0,-0.1) -- (0,3.3) coordinate[label={right:$\color{darkgreen}h(\lambda)$}];
+}
+
+\end{scope}
+
+\end{tikzpicture}
+\end{center}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/wavelets/laplacebasis.tex b/vorlesungen/slides/8/wavelets/laplacebasis.tex
new file mode 100644
index 0000000..ced4c09
--- /dev/null
+++ b/vorlesungen/slides/8/wavelets/laplacebasis.tex
@@ -0,0 +1,62 @@
+%
+% template.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\def\a{2}
+\def\b{0.8}
+\def\c{1}
+\def\d{0.6}
+\input{../slides/8/wavelets/vektoren.tex}
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Laplace-Basis}
+\begin{center}
+\begin{tikzpicture}[>=latex,thick]
+
+\begin{scope}[yshift=-0.4cm,xshift=-5.5cm]
+\fnull
+\end{scope}
+
+\begin{scope}[yshift=-1.8cm,xshift=-5.5cm]
+\fone
+\end{scope}
+
+\begin{scope}[yshift=-3.2cm,xshift=-5.5cm]
+\ftwo
+\end{scope}
+
+\begin{scope}[yshift=-4.6cm,xshift=-5.5cm]
+\fthree
+\end{scope}
+
+\begin{scope}[yshift=-6.0cm,xshift=-5.5cm]
+\ffour
+\end{scope}
+
+\begin{scope}[yshift=0cm]
+\vnull
+\end{scope}
+
+\begin{scope}[yshift=-1.4cm]
+\vone
+\end{scope}
+
+\begin{scope}[yshift=-2.8cm]
+\vtwo
+\end{scope}
+
+\begin{scope}[yshift=-4.2cm]
+\vthree
+\end{scope}
+
+\begin{scope}[yshift=-5.6cm]
+\vfour
+\end{scope}
+
+\end{tikzpicture}
+\end{center}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/wavelets/lokalisierungsvergleich.tex b/vorlesungen/slides/8/wavelets/lokalisierungsvergleich.tex
new file mode 100644
index 0000000..d6575d0
--- /dev/null
+++ b/vorlesungen/slides/8/wavelets/lokalisierungsvergleich.tex
@@ -0,0 +1,46 @@
+%
+% lokalisierungsvergleich.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Lokalisierung}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Ortsraum}
+Ortsraum$\mathstrut=V$
+\begin{itemize}
+\item<3-> Standardbasis
+\item<5-> lokalisiert in den Knoten
+\item<7-> die meisten $\hat{f}(k)$ gross
+\item<9-> vollständig delokalisiert im Frequenzraum
+\end{itemize}
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\begin{block}{Frequenzraum}
+\uncover<2->{Frequenzraum $\mathstrut=\{\lambda_1,\lambda_2,\dots,\lambda_n\}$}
+\begin{itemize}
+\item<4-> Laplace-Basis
+\item<6-> lokalisiert in den Eigenwerten
+\item<8-> die meisten Komponenten gross
+\item<10-> vollständig delokalisiert im Ortsraum
+\end{itemize}
+\end{block}
+\end{column}
+\end{columns}
+\uncover<11->{%
+\begin{block}{Plan}
+Gesucht sind Funktionen auf dem Graphen derart, die
+\begin{enumerate}
+\item<12-> in der Nähe einzelner Knoten konzentriert/lokalisiert sind und
+\item<13-> deren Fourier-Transformation in der Nähe einzelner Eigenwerte
+konzentriert/lokalisiert ist
+\end{enumerate}
+\end{block}}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/wavelets/matrixdilatation.tex b/vorlesungen/slides/8/wavelets/matrixdilatation.tex
new file mode 100644
index 0000000..3536736
--- /dev/null
+++ b/vorlesungen/slides/8/wavelets/matrixdilatation.tex
@@ -0,0 +1,39 @@
+%
+% matrixdilatation.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Dilatation in Matrixform}
+Dilatationsfaktor $a$, skaliertes Wavelet beim Knoten $k$ mit Spektrum
+$\tilde{D}_{1/a}g$
+\begin{align*}
+D_{g,a}e_k
+&=
+\chi
+\begin{pmatrix}
+g(a\lambda_1)& 0 & \dots & 0 \\
+ 0 &g(a\lambda_2)& \dots & 0 \\
+ \vdots & \vdots & \ddots & \vdots \\
+ 0 & 0 & \dots &g(a\lambda_n)
+\end{pmatrix}
+\chi^t
+e_k
+\intertext{\uncover<2->{``verschmierter'' Standardbasisvektor am Knoten $k$}}
+\uncover<2->{D_he_k
+&=
+\chi
+\begin{pmatrix}
+h(\lambda_1)& 0 & \dots & 0 \\
+ 0 &h(\lambda_2)& \dots & 0 \\
+ \vdots & \vdots & \ddots & \vdots \\
+ 0 & 0 & \dots &h(\lambda_n)
+\end{pmatrix}
+\chi^t
+e_k}
+\end{align*}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/wavelets/vektoren.tex b/vorlesungen/slides/8/wavelets/vektoren.tex
new file mode 100644
index 0000000..2315d53
--- /dev/null
+++ b/vorlesungen/slides/8/wavelets/vektoren.tex
@@ -0,0 +1,200 @@
+\def\vnull{
+ \coordinate (A) at ({0*\a},0);
+ \coordinate (B) at ({1*\a},0);
+ \coordinate (C) at ({2*\a},0);
+ \coordinate (D) at ({0.5*\a},{-\b});
+ \coordinate (E) at ({1.5*\a},{-\b});
+ \draw (A) -- (B);
+ \draw (A) -- (D);
+ \draw (B) -- (C);
+ \draw (B) -- (D);
+ \draw (B) -- (E);
+ \draw (C) -- (E);
+ \draw (D) -- (E);
+ \node at (-2.8,{-0.5*\b}) [right] {$\lambda=0.0000$};
+ \fill[color=red!100] (A) circle[radius=0.25];
+ \draw (A) circle[radius=0.25];
+ \fill[color=red!100] (B) circle[radius=0.25];
+ \draw (B) circle[radius=0.25];
+ \fill[color=red!100] (C) circle[radius=0.25];
+ \draw (C) circle[radius=0.25];
+ \fill[color=red!100] (D) circle[radius=0.25];
+ \draw (D) circle[radius=0.25];
+ \fill[color=red!100] (E) circle[radius=0.25];
+ \draw (E) circle[radius=0.25];
+}
+\def\fnull{
+ \draw[color=red,line width=1.4pt]
+ ({-2.0000*\c},{0.4472*\d}) --
+ ({-1.0000*\c},{0.4472*\d}) --
+ ({0.0000*\c},{0.4472*\d}) --
+ ({1.0000*\c},{0.4472*\d}) --
+ ({2.0000*\c},{0.4472*\d});
+ \draw[->] ({-2.1*\c},0) -- ({2.1*\c},0);
+ \draw[->] (0,{-1.1*\d}) -- (0,{1.1*\d});
+ \fill ({-2*\c},0) circle[radius=0.05];
+ \fill ({-1*\c},0) circle[radius=0.05];
+ \fill ({0*\c},0) circle[radius=0.05];
+ \fill ({1*\c},0) circle[radius=0.05];
+ \fill ({2*\c},0) circle[radius=0.05];
+}
+\def\vone{
+ \coordinate (A) at ({0*\a},0);
+ \coordinate (B) at ({1*\a},0);
+ \coordinate (C) at ({2*\a},0);
+ \coordinate (D) at ({0.5*\a},{-\b});
+ \coordinate (E) at ({1.5*\a},{-\b});
+ \draw (A) -- (B);
+ \draw (A) -- (D);
+ \draw (B) -- (C);
+ \draw (B) -- (D);
+ \draw (B) -- (E);
+ \draw (C) -- (E);
+ \draw (D) -- (E);
+ \node at (-2.8,{-0.5*\b}) [right] {$\lambda=0.1586$};
+ \fill[color=blue!100] (A) circle[radius=0.25];
+ \draw (A) circle[radius=0.25];
+ \fill[color=blue!00] (B) circle[radius=0.25];
+ \draw (B) circle[radius=0.25];
+ \fill[color=red!100] (C) circle[radius=0.25];
+ \draw (C) circle[radius=0.25];
+ \fill[color=blue!41] (D) circle[radius=0.25];
+ \draw (D) circle[radius=0.25];
+ \fill[color=red!41] (E) circle[radius=0.25];
+ \draw (E) circle[radius=0.25];
+}
+\def\fone{
+ \draw[color=red,line width=1.4pt]
+ ({-2.0000*\c},{-0.6533*\d}) --
+ ({-1.0000*\c},{-0.2706*\d}) --
+ ({0.0000*\c},{-0.0000*\d}) --
+ ({1.0000*\c},{0.2706*\d}) --
+ ({2.0000*\c},{0.6533*\d});
+ \draw[->] ({-2.1*\c},0) -- ({2.1*\c},0);
+ \draw[->] (0,{-1.1*\d}) -- (0,{1.1*\d});
+ \fill ({-2*\c},0) circle[radius=0.05];
+ \fill ({-1*\c},0) circle[radius=0.05];
+ \fill ({0*\c},0) circle[radius=0.05];
+ \fill ({1*\c},0) circle[radius=0.05];
+ \fill ({2*\c},0) circle[radius=0.05];
+}
+\def\vtwo{
+ \coordinate (A) at ({0*\a},0);
+ \coordinate (B) at ({1*\a},0);
+ \coordinate (C) at ({2*\a},0);
+ \coordinate (D) at ({0.5*\a},{-\b});
+ \coordinate (E) at ({1.5*\a},{-\b});
+ \draw (A) -- (B);
+ \draw (A) -- (D);
+ \draw (B) -- (C);
+ \draw (B) -- (D);
+ \draw (B) -- (E);
+ \draw (C) -- (E);
+ \draw (D) -- (E);
+ \node at (-2.8,{-0.5*\b}) [right] {$\lambda=0.3000$};
+ \fill[color=red!100] (A) circle[radius=0.25];
+ \draw (A) circle[radius=0.25];
+ \fill[color=blue!00] (B) circle[radius=0.25];
+ \draw (B) circle[radius=0.25];
+ \fill[color=red!100] (C) circle[radius=0.25];
+ \draw (C) circle[radius=0.25];
+ \fill[color=blue!100] (D) circle[radius=0.25];
+ \draw (D) circle[radius=0.25];
+ \fill[color=blue!100] (E) circle[radius=0.25];
+ \draw (E) circle[radius=0.25];
+}
+\def\ftwo{
+ \draw[color=red,line width=1.4pt]
+ ({-2.0000*\c},{0.5000*\d}) --
+ ({-1.0000*\c},{-0.5000*\d}) --
+ ({0.0000*\c},{-0.0000*\d}) --
+ ({1.0000*\c},{-0.5000*\d}) --
+ ({2.0000*\c},{0.5000*\d});
+ \draw[->] ({-2.1*\c},0) -- ({2.1*\c},0);
+ \draw[->] (0,{-1.1*\d}) -- (0,{1.1*\d});
+ \fill ({-2*\c},0) circle[radius=0.05];
+ \fill ({-1*\c},0) circle[radius=0.05];
+ \fill ({0*\c},0) circle[radius=0.05];
+ \fill ({1*\c},0) circle[radius=0.05];
+ \fill ({2*\c},0) circle[radius=0.05];
+}
+\def\vthree{
+ \coordinate (A) at ({0*\a},0);
+ \coordinate (B) at ({1*\a},0);
+ \coordinate (C) at ({2*\a},0);
+ \coordinate (D) at ({0.5*\a},{-\b});
+ \coordinate (E) at ({1.5*\a},{-\b});
+ \draw (A) -- (B);
+ \draw (A) -- (D);
+ \draw (B) -- (C);
+ \draw (B) -- (D);
+ \draw (B) -- (E);
+ \draw (C) -- (E);
+ \draw (D) -- (E);
+ \node at (-2.8,{-0.5*\b}) [right] {$\lambda=0.4414$};
+ \fill[color=red!41] (A) circle[radius=0.25];
+ \draw (A) circle[radius=0.25];
+ \fill[color=red!00] (B) circle[radius=0.25];
+ \draw (B) circle[radius=0.25];
+ \fill[color=blue!41] (C) circle[radius=0.25];
+ \draw (C) circle[radius=0.25];
+ \fill[color=blue!100] (D) circle[radius=0.25];
+ \draw (D) circle[radius=0.25];
+ \fill[color=red!100] (E) circle[radius=0.25];
+ \draw (E) circle[radius=0.25];
+}
+\def\fthree{
+ \draw[color=red,line width=1.4pt]
+ ({-2.0000*\c},{0.2706*\d}) --
+ ({-1.0000*\c},{-0.6533*\d}) --
+ ({0.0000*\c},{0.0000*\d}) --
+ ({1.0000*\c},{0.6533*\d}) --
+ ({2.0000*\c},{-0.2706*\d});
+ \draw[->] ({-2.1*\c},0) -- ({2.1*\c},0);
+ \draw[->] (0,{-1.1*\d}) -- (0,{1.1*\d});
+ \fill ({-2*\c},0) circle[radius=0.05];
+ \fill ({-1*\c},0) circle[radius=0.05];
+ \fill ({0*\c},0) circle[radius=0.05];
+ \fill ({1*\c},0) circle[radius=0.05];
+ \fill ({2*\c},0) circle[radius=0.05];
+}
+\def\vfour{
+ \coordinate (A) at ({0*\a},0);
+ \coordinate (B) at ({1*\a},0);
+ \coordinate (C) at ({2*\a},0);
+ \coordinate (D) at ({0.5*\a},{-\b});
+ \coordinate (E) at ({1.5*\a},{-\b});
+ \draw (A) -- (B);
+ \draw (A) -- (D);
+ \draw (B) -- (C);
+ \draw (B) -- (D);
+ \draw (B) -- (E);
+ \draw (C) -- (E);
+ \draw (D) -- (E);
+ \node at (-2.8,{-0.5*\b}) [right] {$\lambda=0.5000$};
+ \fill[color=red!25] (A) circle[radius=0.25];
+ \draw (A) circle[radius=0.25];
+ \fill[color=blue!100] (B) circle[radius=0.25];
+ \draw (B) circle[radius=0.25];
+ \fill[color=red!25] (C) circle[radius=0.25];
+ \draw (C) circle[radius=0.25];
+ \fill[color=red!25] (D) circle[radius=0.25];
+ \draw (D) circle[radius=0.25];
+ \fill[color=red!25] (E) circle[radius=0.25];
+ \draw (E) circle[radius=0.25];
+}
+\def\ffour{
+ \draw[color=red,line width=1.4pt]
+ ({-2.0000*\c},{0.2236*\d}) --
+ ({-1.0000*\c},{0.2236*\d}) --
+ ({0.0000*\c},{-0.8944*\d}) --
+ ({1.0000*\c},{0.2236*\d}) --
+ ({2.0000*\c},{0.2236*\d});
+ \draw[->] ({-2.1*\c},0) -- ({2.1*\c},0);
+ \draw[->] (0,{-1.1*\d}) -- (0,{1.1*\d});
+ \fill ({-2*\c},0) circle[radius=0.05];
+ \fill ({-1*\c},0) circle[radius=0.05];
+ \fill ({0*\c},0) circle[radius=0.05];
+ \fill ({1*\c},0) circle[radius=0.05];
+ \fill ({2*\c},0) circle[radius=0.05];
+}
diff --git a/vorlesungen/slides/8/weitere.tex b/vorlesungen/slides/8/weitere.tex
new file mode 100644
index 0000000..46a3da0
--- /dev/null
+++ b/vorlesungen/slides/8/weitere.tex
@@ -0,0 +1,43 @@
+%
+% weitere.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Weitere Resultate der spektralen Graphentheorie}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Satz (Hoffmann)}
+\[
+\operatorname{chr} X \ge 1 + \frac{\alpha_{\text{max}}}{-\alpha_{\text{min}}}
+\]
+\end{block}
+\uncover<2->{%
+\begin{block}{Satz (Hoffmann)}
+\[
+\operatorname{ind} X \le n \biggl(1-\frac{d_{\text{min}}}{\lambda_{\text{max}}}\biggr)
+\]
+\end{block}}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<3->{%
+\begin{block}{Korollar}
+Für einen regulären Graphen mit $n$ Knoten gilt
+\begin{align*}
+\operatorname{ind} X
+&\le
+\frac{n}{\displaystyle 1-\frac{d}{\alpha_{\text{min}}}}
+\\
+\operatorname{chr} X
+&\ge
+1-\frac{d}{\alpha_{\text{min}}}
+\end{align*}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/8/wilf.m b/vorlesungen/slides/8/wilf.m
new file mode 100644
index 0000000..49dc161
--- /dev/null
+++ b/vorlesungen/slides/8/wilf.m
@@ -0,0 +1,22 @@
+#
+# wilf.m -- chromatische Zahl für einen Graphen
+#
+# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+#
+N = 9;
+A = zeros(N,N);
+
+for i = (1:N)
+ j = 1 + rem(i, N)
+ A(i,j) = 1;
+endfor
+for i = (1:3:N-3)
+ j = 1 + rem(i + 2, N)
+ A(i,j) = 1;
+endfor
+
+A(1,3) = 1;
+
+A = A + A'
+
+eig(A)
diff --git a/vorlesungen/slides/9/Makefile.inc b/vorlesungen/slides/9/Makefile.inc
index fa6c29b..2257810 100644
--- a/vorlesungen/slides/9/Makefile.inc
+++ b/vorlesungen/slides/9/Makefile.inc
@@ -10,5 +10,20 @@ chapter9 = \
../slides/9/irreduzibel.tex \
../slides/9/stationaer.tex \
../slides/9/pf.tex \
+ ../slides/9/potenz.tex \
+ ../slides/9/pf/positiv.tex \
+ ../slides/9/pf/primitiv.tex \
+ ../slides/9/pf/trennung.tex \
+ ../slides/9/pf/vergleich.tex \
+ ../slides/9/pf/vergleich3d.tex \
+ ../slides/9/pf/dreieck.tex \
+ ../slides/9/pf/folgerungen.tex \
+ ../slides/9/parrondo/uebersicht.tex \
+ ../slides/9/parrondo/erwartung.tex \
+ ../slides/9/parrondo/spiela.tex \
+ ../slides/9/parrondo/spielb.tex \
+ ../slides/9/parrondo/spielbmod.tex \
+ ../slides/9/parrondo/kombiniert.tex \
+ ../slides/9/parrondo/deformation.tex \
../slides/9/chapter.tex
diff --git a/vorlesungen/slides/9/chapter.tex b/vorlesungen/slides/9/chapter.tex
index 9e26587..cbab0f0 100644
--- a/vorlesungen/slides/9/chapter.tex
+++ b/vorlesungen/slides/9/chapter.tex
@@ -10,5 +10,21 @@
\folie{9/stationaer.tex}
\folie{9/irreduzibel.tex}
\folie{9/pf.tex}
+\folie{9/potenz.tex}
+\folie{9/pf/positiv.tex}
+\folie{9/pf/primitiv.tex}
+\folie{9/pf/trennung.tex}
+\folie{9/pf/vergleich.tex}
+\folie{9/pf/vergleich3d.tex}
+\folie{9/pf/dreieck.tex}
+\folie{9/pf/folgerungen.tex}
+
+\folie{9/parrondo/uebersicht.tex}
+\folie{9/parrondo/erwartung.tex}
+\folie{9/parrondo/spiela.tex}
+\folie{9/parrondo/spielb.tex}
+\folie{9/parrondo/spielbmod.tex}
+\folie{9/parrondo/kombiniert.tex}
+\folie{9/parrondo/deformation.tex}
diff --git a/vorlesungen/slides/9/parrondo/deformation.tex b/vorlesungen/slides/9/parrondo/deformation.tex
new file mode 100644
index 0000000..40d2eb9
--- /dev/null
+++ b/vorlesungen/slides/9/parrondo/deformation.tex
@@ -0,0 +1,45 @@
+%
+% deformation.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Deformation}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Verlustspiele}
+Durch Deformation (Parameter $e$ und $\varepsilon$) kann man
+aus $A_e$ und $B_\varepsilon$ Spiele mit negativer Gewinnerwartung machen
+\uncover<2->{%
+\begin{align*}
+E(X)&=0&&\rightarrow&E(X_e)&<0\\
+E(Y)&=0&&\rightarrow&E(Y_\varepsilon)&<0\\
+\end{align*}}
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\begin{block}{Kombiniertes Spiel}
+\uncover<3->{%
+Die Deformation für das Spiel $C$ startet mit Erwartungswert $\frac{18}{709}$}%
+\begin{align*}
+\uncover<4->{E(Z)&=\frac{18}{709}>0}
+&&\uncover<5->{\rightarrow&
+E(Z_*)&>0}
+\end{align*}
+\uncover<6->{Wegen Stetigkeit!}
+\\
+\uncover<5->{Die Deformation ist immer noch ein Gewinnspiel (für Parameter klein genug)}
+\end{block}
+\uncover<7->{%
+\begin{block}{Parrondo-Paradoxon}
+Zufällig zwischen zwei Verlustspielen auswählen kann trotzdem ein
+Gewinnspiel ergeben
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/9/parrondo/erwartung.tex b/vorlesungen/slides/9/parrondo/erwartung.tex
new file mode 100644
index 0000000..b58c37f
--- /dev/null
+++ b/vorlesungen/slides/9/parrondo/erwartung.tex
@@ -0,0 +1,81 @@
+%
+% erwartung.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Erwartung}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Zufallsvariable}
+\begin{center}
+\[
+\begin{array}{c|c}
+\text{Werte $X$}&\text{Wahrscheinlichkeit $p$}\\
+\hline
+x_1&p_1=P(X=x_1)\\
+x_2&p_2=P(X=x_2)\\
+\vdots&\vdots\\
+x_n&p_n=P(X=x_n)
+\end{array}
+\]
+\end{center}
+\end{block}
+\uncover<4->{%
+\begin{block}{Einervektoren/-matrizen}
+\[
+U=\begin{pmatrix}
+1&1&\dots&1\\
+1&1&\dots&1\\
+\vdots&\vdots&\ddots&\vdots\\
+1&1&\dots&1
+\end{pmatrix}
+\in
+M_{n\times m}(\Bbbk)
+\]
+\end{block}}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<2->{%
+\begin{block}{Erwartungswerte}
+\begin{align*}
+E(X)
+&=
+\sum_i x_ip_i
+=
+x^tp
+\uncover<5->{=
+U^t x\odot p}
+\hspace*{3cm}
+\\
+\uncover<2->{E(X^2)
+&=
+\sum_i x_i^2p_i}
+\ifthenelse{\boolean{presentation}}{
+\only<6>{=
+(x\odot x)^tp}}{}
+\uncover<7->{=
+U^t (x\odot x) \odot p}
+\\
+\uncover<3->{E(X^k)
+&=
+\sum_i x_i^kp_i}
+\uncover<8->{=
+U^t x^{\odot k}\odot p}
+\end{align*}
+\uncover<9->{%
+Substitution:
+\begin{align*}
+\uncover<10->{\sum_i &\to U^t}\\
+\uncover<11->{x_i^k &\to x^{\odot k}}
+\end{align*}}%
+\uncover<12->{Kann für Übergangsmatrizen von Markov-Ketten verallgemeinert werden}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/9/parrondo/kombiniert.tex b/vorlesungen/slides/9/parrondo/kombiniert.tex
new file mode 100644
index 0000000..5012d06
--- /dev/null
+++ b/vorlesungen/slides/9/parrondo/kombiniert.tex
@@ -0,0 +1,73 @@
+%
+% kombiniert.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Kombiniertes Spiel $C$}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Definition}
+Ein fairer Münzwurf entscheidet, ob
+Spiel $A$ oder Spiel $B$ gespielt wird
+\end{block}
+\uncover<2->{%
+\begin{block}{Übergangsmatrix}
+Münzwurf $X$
+\begin{align*}
+C
+&=
+P(X=\text{Kopf})\cdot A
++
+P(X=\text{Zahl})\cdot B
+\\
+&\uncover<3->{=
+\begin{pmatrix}
+ 0&\frac{3}{8}&\frac{5}{8}\\
+\frac{3}{10}& 0&\frac{3}{8}\\
+\frac{7}{10}&\frac{5}{8}& 0
+\end{pmatrix}}
+\end{align*}
+\end{block}}
+\vspace{-8pt}
+\uncover<4->{%
+\begin{block}{Gewinnerwartung im Einzelspiel}
+\[
+p=\frac13U
+\Rightarrow
+U^t(G\odot C)p
+\uncover<5->{=
+-\frac{1}{30}}
+\]
+\end{block}}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<6->{%
+\begin{block}{Iteriertes Spiel}
+\[
+\overline{p}=C\overline{p}
+\quad
+\uncover<7->{\Rightarrow
+\quad
+\overline{p}=\frac{1}{709}\begin{pmatrix}245\\180\\284\end{pmatrix}}
+\]
+\end{block}}
+\uncover<8->{%
+\begin{block}{Gewinnerwartung}
+\begin{align*}
+E(Z)
+&=
+U^t (G\odot C) \overline{p}
+\uncover<9->{=
+\frac{18}{709}}
+\end{align*}
+\uncover<10->{$C$ ist ein Gewinnspiel!}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/9/parrondo/spiela.tex b/vorlesungen/slides/9/parrondo/spiela.tex
new file mode 100644
index 0000000..629586f
--- /dev/null
+++ b/vorlesungen/slides/9/parrondo/spiela.tex
@@ -0,0 +1,52 @@
+%
+% spiela.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Spiel $A$}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Definition}
+Gewinn = Zufallsvariable $X$ mit Werten $\pm 1$
+\begin{align*}
+P(X=\phantom{+}1)
+&=
+\frac12\uncover<2->{+e}
+\\
+P(X= - 1)
+&=
+\frac12\uncover<2->{-e}
+\end{align*}
+Bernoulli-Experiment mit $p=\frac12\uncover<2->{+e}$
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<3->{
+\begin{block}{Gewinnerwartung}
+\begin{align*}
+E(X)
+&=\uncover<4->{
+P(X=1)\cdot (1)}
+\\
+&\qquad
+\uncover<4->{+
+P(X=-1)\cdot (-1)}
+\\
+&\uncover<5->{=
+\biggl(\frac12+e\biggr)\cdot 1
++
+\biggl(\frac12-e\biggr)\cdot (-1)}
+\\
+&\uncover<6->{=2e}
+\end{align*}
+\uncover<7->{$\Rightarrow$ {\usebeamercolor[fg]{title}Verlustspiel für $e<0$}}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/9/parrondo/spielb.tex b/vorlesungen/slides/9/parrondo/spielb.tex
new file mode 100644
index 0000000..f65564f
--- /dev/null
+++ b/vorlesungen/slides/9/parrondo/spielb.tex
@@ -0,0 +1,100 @@
+%
+% spielb.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Spiel $B$}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Definition}
+Gewinn $\pm 1$, Wahrscheinlichkeit abhängig vom 3er-Rest des
+aktuellen Kapitals $K$:
+\begin{center}
+\uncover<2->{%
+\begin{tikzpicture}[>=latex,thick]
+\coordinate (A0) at (90:2);
+\coordinate (A1) at (210:2);
+\coordinate (A2) at (330:2);
+
+\node at (A0) {$0$};
+\node at (A1) {$1$};
+\node at (A2) {$2$};
+
+\draw (A0) circle[radius=0.4];
+\draw (A1) circle[radius=0.4];
+\draw (A2) circle[radius=0.4];
+
+\draw[->,shorten >= 0.4cm,shorten <= 0.4cm] (A0) -- (A1);
+\draw[->,shorten >= 0.4cm,shorten <= 0.4cm] (A0) -- (A2);
+\draw[->,shorten >= 0.4cm,shorten <= 0.4cm] (A1) -- (A2);
+
+\draw[->,shorten >= 0.4cm,shorten <= 0.4cm] (A1) to[out=90,in=-150] (A0);
+\draw[->,shorten >= 0.4cm,shorten <= 0.4cm] (A2) to[out=90,in=-30] (A0);
+\draw[->,shorten >= 0.4cm,shorten <= 0.4cm] (A2) to[out=-150,in=-30] (A1);
+
+\def\R{1.9}
+\def\r{0.7}
+
+\node at (30:\r) {$\frac{9}{10}$};
+\node at (150:\r) {$\frac1{10}$};
+\node at (270:\r) {$\frac34$};
+
+\node at (30:\R) {$\frac{3}{4}$};
+\node at (150:\R) {$\frac1{4}$};
+\node at (270:\R) {$\frac14$};
+
+\end{tikzpicture}}
+\end{center}
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<3->{%
+\begin{block}{Markov-Kette $Y$}
+Übergangsmatrix
+\[
+B=\begin{pmatrix}
+0&\frac14&\frac34\\
+\frac{1}{10}&0&\frac14\\
+\frac{9}{10}&\frac34&0
+\end{pmatrix}
+\]
+\vspace{-10pt}
+
+\uncover<4->{%
+Gewinnmatrix:
+\vspace{-2pt}
+\[
+G=\begin{pmatrix*}[r]
+0&-1&1\\
+1&0&-1\\
+-1&1&0
+\end{pmatrix*}
+\]}
+\end{block}}
+\vspace{-12pt}
+\uncover<5->{%
+\begin{block}{Gewinnerwartung}
+\begin{align*}
+&&&&
+E(Y)
+&=
+U^t(G\odot B)p
+\\
+p&={\textstyle\frac13}U
+&&\Rightarrow&
+E(Y)&={\textstyle\frac1{15}}
+\\
+\overline{p}&={\tiny\frac{1}{13}\begin{pmatrix}5\\2\\6\end{pmatrix}}
+&&\Rightarrow&
+E(Y)&=0
+\end{align*}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/9/parrondo/spielbmod.tex b/vorlesungen/slides/9/parrondo/spielbmod.tex
new file mode 100644
index 0000000..66d39bc
--- /dev/null
+++ b/vorlesungen/slides/9/parrondo/spielbmod.tex
@@ -0,0 +1,103 @@
+%
+% spielb.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Modifiziertes Spiel $\tilde{B}$}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Definition}
+Gewinn $\pm 1$, Wahrscheinlichkeit abhängig vom 3er-Rest des
+aktuellen Kapitals $K$:
+\begin{center}
+\begin{tikzpicture}[>=latex,thick]
+\coordinate (A0) at (90:2);
+\coordinate (A1) at (210:2);
+\coordinate (A2) at (330:2);
+
+\node at (A0) {$0$};
+\node at (A1) {$1$};
+\node at (A2) {$2$};
+
+\draw (A0) circle[radius=0.4];
+\draw (A1) circle[radius=0.4];
+\draw (A2) circle[radius=0.4];
+
+\draw[->,shorten >= 0.4cm,shorten <= 0.4cm] (A0) -- (A1);
+\draw[->,shorten >= 0.4cm,shorten <= 0.4cm] (A0) -- (A2);
+\draw[->,shorten >= 0.4cm,shorten <= 0.4cm] (A1) -- (A2);
+
+\draw[->,shorten >= 0.4cm,shorten <= 0.4cm] (A1) to[out=90,in=-150] (A0);
+\draw[->,shorten >= 0.4cm,shorten <= 0.4cm] (A2) to[out=90,in=-30] (A0);
+\draw[->,shorten >= 0.4cm,shorten <= 0.4cm] (A2) to[out=-150,in=-30] (A1);
+
+\def\R{1.9}
+\def\r{0.7}
+
+\node at (30:{0.9*\r}) {\tiny $\frac{9}{10}\uncover<2->{+\varepsilon}$};
+\node at (150:{0.9*\r}) {\tiny $\frac1{10}\uncover<2->{-\varepsilon}$};
+\node at (270:\r) {$\frac34\uncover<2->{-\varepsilon}$};
+
+\node at (30:{1.1*\R}) {$\frac{3}{4}\uncover<2->{-\varepsilon}$};
+\node at (150:{1.1*\R}) {$\frac1{4}\uncover<2->{+\varepsilon}$};
+\node at (270:\R) {$\frac14\uncover<2->{+\varepsilon}$};
+
+\end{tikzpicture}
+\end{center}
+\end{block}
+\end{column}
+\begin{column}{0.48\textwidth}
+\begin{block}{Markov-Kette $\tilde{Y}$}
+Übergangsmatrix
+\[
+\tilde{B}=
+B\uncover<2->{+\varepsilon F}
+\uncover<3->{=
+B+\varepsilon\begin{pmatrix*}[r]
+0&1&-1\\
+-1&0&1\\
+1&-1&0
+\end{pmatrix*}}
+\]
+\vspace{-12pt}
+
+\uncover<4->{%
+Gewinnmatrix:
+\[
+G=\begin{pmatrix*}[r]
+0&-1&1\\
+1&0&-1\\
+-1&1&0
+\end{pmatrix*}
+\]}
+\end{block}
+\vspace{-12pt}
+\uncover<5->{%
+\begin{block}{Gewinnerwartung}
+\begin{align*}
+\uncover<6->{E(\tilde{Y})
+&=
+U^t(G\odot \tilde{B})p}
+\\
+&\uncover<7->{=
+E(Y) + \varepsilon U^t(G\odot F)p}
+\uncover<8->{=
+{\textstyle\frac1{15}}+2\varepsilon}
+\\
+\uncover<9->{
+\text{rep.}
+&=
+-{\textstyle\frac{294}{169}}\varepsilon+O(\varepsilon^2)
+\quad\text{Verlustspiel}
+}
+\end{align*}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/9/parrondo/uebersicht.tex b/vorlesungen/slides/9/parrondo/uebersicht.tex
new file mode 100644
index 0000000..2f3597a
--- /dev/null
+++ b/vorlesungen/slides/9/parrondo/uebersicht.tex
@@ -0,0 +1,17 @@
+%
+% uebersicht.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Parrondo-Paradoxon}
+\begin{center}
+\Large
+Zufällige
+Wahl zwischen zwei Verlustspielen = Gewinnspiel?
+\end{center}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/9/pf/dreieck.tex b/vorlesungen/slides/9/pf/dreieck.tex
new file mode 100644
index 0000000..0a572f3
--- /dev/null
+++ b/vorlesungen/slides/9/pf/dreieck.tex
@@ -0,0 +1,44 @@
+%
+% dreieck.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Verallgemeinerte Dreiecksungleichung}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.32\textwidth}
+\begin{block}{Satz}
+\[
+|u+v|\le |u|+|v|
+\]
+Gleichheit wenn lin.~abh.
+\end{block}
+\begin{block}{Satz}
+\[
+\biggl|\sum_i u_i\biggr|
+\le
+\sum_i |u_i|
+\]
+Gleichheit wenn $u_i = \lambda_i u$
+\end{block}
+\begin{block}{Satz}
+\[
+\biggl|\sum_i z_i\biggr|
+\le
+\sum_i |z_i|
+\]
+Gleichheit, wenn $z_i=|z_i|c$, $c\in\mathbb{C}$
+\end{block}
+\end{column}
+\begin{column}{0.68\textwidth}
+\begin{center}
+\includegraphics[width=\textwidth]{../../buch/chapters/80-wahrscheinlichkeit/images/dreieck.pdf}
+\end{center}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/9/pf/folgerungen.tex b/vorlesungen/slides/9/pf/folgerungen.tex
new file mode 100644
index 0000000..5042c78
--- /dev/null
+++ b/vorlesungen/slides/9/pf/folgerungen.tex
@@ -0,0 +1,203 @@
+%
+% template.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Folgerungen für $A>0$}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Satz}
+$u\ge 0$ ein EV zum EW $ \lambda\ne 0$,
+dann ist $u>0$ und $\lambda >0$
+\end{block}
+\uncover<6->{%
+\begin{block}{Satz}
+$v$ ein EV zum EW $\lambda$ mit $|\lambda| = \varrho(A)$,
+dann ist $u=|v|$ mit $u_i=|v_i|$ ein EV mit EW $\varrho(A)$
+\end{block}}
+\uncover<29->{%
+\begin{block}{Satz}
+$v$ ein EV zum EW $\lambda$ mit $|\lambda|=\varrho(A)$,
+dann ist $\lambda=\varrho(A)$
+\end{block}}
+\uncover<46->{%
+\begin{block}{Satz}
+Der \only<57->{verallgemeinerte }Eigenraum zu EW $\varrho(A)$
+ist eindimensional
+\end{block}
+}
+\end{column}
+\ifthenelse{\boolean{presentation}}{
+\only<-6>{
+\begin{column}{0.48\textwidth}
+\begin{proof}[Beweis]
+\begin{itemize}
+\item<3->
+Vergleich: $Au>0$
+\item<4->
+$Au=\lambda u > 0$
+\item<5->
+$\lambda >0$ und $u>0$
+\end{itemize}
+\end{proof}
+\end{column}}
+\only<7-20>{
+\begin{column}{0.48\textwidth}
+\begin{proof}[Beweis]
+\begin{align*}
+(Au)_i
+&\only<-8>{=
+\sum_j a_{ij}u_j}
+\only<8-9>{=
+\sum_j |a_{ij}v_j|}
+\only<9->{\ge}
+\only<9-10>{
+\biggl|\sum_j a_{ij}v_j\biggr|}
+\only<10>{=}
+\only<10-11>{
+|(Av)_i|}
+\only<11>{=}
+\only<11-12>{
+|\lambda v_i|}
+\only<12>{=}
+\only<12-13>{
+\varrho(A) |v_i|}
+\only<13>{=}
+\uncover<13->{
+\varrho(A) u_i}
+\hspace*{5cm}
+\\
+\uncover<14->{Au&\ge \varrho(A)u}
+\intertext{\uncover<15->{Vergleich}}
+\uncover<16->{A^2u&> \varrho(A)Au}
+\intertext{\uncover<17->{Trennung: $\exists \vartheta >1$ mit}}
+\uncover<18->{A^2u&\ge \vartheta \varrho(A) Au }\\
+\uncover<19->{A^3u&\ge (\vartheta \varrho(A))^2 Au }\\
+\uncover<20->{A^ku&\ge (\vartheta \varrho(A))^{k-1} Au }\\
+\end{align*}
+\end{proof}
+\end{column}}
+\only<21-29>{%
+\begin{column}{0.48\textwidth}
+\begin{proof}[Beweis, Fortsetzung]
+Abschätzung der Operatornorm:
+\begin{align*}
+\|A^k\|\, |Au|
+\ge
+\|A^{k+1}u\|
+\uncover<22->{
+\ge
+(\vartheta\varrho(A))^k |Au|}
+\end{align*}
+\uncover<23->{Abschätzung des Spektralradius}
+\begin{align*}
+\uncover<24->{\|A^k\| &\ge (\vartheta\varrho(A))^k}
+\\
+\uncover<25->{\|A^k\|^{\frac1k} &\ge \vartheta \varrho(A)}
+\\
+\uncover<26->{\lim_{k\to\infty}\|A^k\|^{\frac1k} &\ge \vartheta \varrho(A)}
+\\
+\uncover<27->{\varrho(A) &\ge \underbrace{\vartheta}_{>1} \varrho(A)}
+\end{align*}
+\uncover<28->{Widerspruch: $u=v$}
+\end{proof}
+\end{column}}
+\only<30-46>{
+\begin{column}{0.48\textwidth}
+\begin{proof}[Beweis]
+$u$ ist EV mit EW $\varrho(A)$:
+\[
+Au=\varrho(A)u
+\uncover<31->{\Rightarrow
+\sum_j a_{ij}|v_j| = {\color<38->{red}\varrho(A) |v_i|}}
+\]
+\uncover<33->{Andererseits: $Av=\lambda v$}
+\[
+\uncover<34->{\sum_{j}a_{ij}v_j=\lambda v_i}
+\]
+\uncover<35->{Betrag}
+\begin{align*}
+\uncover<36->{\biggl|\sum_j a_{ij}v_j\biggr|
+&=
+|\lambda v_i|}
+\uncover<37->{=
+{\color<38->{red}\varrho(A) |v_i|}}
+\uncover<39->{=
+\sum_j a_{ij}|v_j|}
+\end{align*}
+\uncover<40->{Dreiecksungleichung: $v_j=|v_j|c, c\in\mathbb{C}$}
+\[
+\uncover<41->{\lambda v = Av}
+\uncover<42->{= Acu}
+\uncover<43->{= c\varrho(A) u}
+\uncover<44->{= \varrho(A)v}
+\]
+\uncover<45->{$\Rightarrow
+\lambda=\varrho(A)
+$}
+\end{proof}
+\end{column}}
+\only<47-57>{
+\begin{column}{0.48\textwidth}
+\begin{proof}[Beweis]
+\begin{itemize}
+\item<48-> $u>0$ ein EV zum EW $\varrho(A)$
+\item<49-> $v$ ein weiterer EV, man darf $v\in\mathbb{R}^n$ annehmen
+\item<50-> Da $u>0$ gibt es $c>0$ mit $u\ge cv$ aber $u\not > cv$
+\item<51-> $u-cv\ge 0$ aber $u-cv\not > 0$
+\item<52-> $A$ anwenden:
+\[
+\begin{array}{ccc}
+\uncover<53->{A(u-cv)}&\uncover<54->{>&0}
+\\
+\uncover<53->{\|}&&
+\\
+\uncover<53->{\varrho(A)(u-cv)}&\uncover<55->{\not>&0}
+\end{array}
+\]
+\uncover<56->{Widerspruch: $v$ existiert nicht}
+\end{itemize}
+\end{proof}
+\end{column}}
+\only<58->{
+\begin{column}{0.48\textwidth}
+\begin{proof}[Beweis]
+\begin{itemize}
+\item<59-> $Au=\varrho(A)u$ und $A^tp^t=\varrho(A)p^t$
+\item<60-> $u>0$ und $p>0$ $\Rightarrow$ $up>0$
+\item<61-> $px=0$, dann ist
+\[
+\uncover<62->{pAx}
+\only<62-63>{=
+(A^tp^t)^t x}
+\only<63-64>{=
+\varrho(A) (p^t)^t x}
+\uncover<64->{=
+\varrho(A) px}
+\uncover<65->{= 0}
+\]
+\uncover<66->{also ist $\{x\in\mathbb{R}^n\;|\; px=0\}$
+invariant}
+\item<67-> Annahme: $v\in \mathcal{E}_{\varrho(A)}$
+\item<68-> Dann muss es einen EV zum EW $\varrho(A)$ in
+$\mathcal{E}_{\varrho(A)}$ geben
+\item<69-> Widerspruch: der Eigenraum ist eindimensional
+\end{itemize}
+\end{proof}
+\end{column}}
+}{
+\begin{column}{0.48\textwidth}
+\begin{block}{}
+\usebeamercolor[fg]{title}
+Beweise: Buch Abschnitt 9.3
+\end{block}
+\end{column}
+}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/9/pf/positiv.tex b/vorlesungen/slides/9/pf/positiv.tex
new file mode 100644
index 0000000..d7e833d
--- /dev/null
+++ b/vorlesungen/slides/9/pf/positiv.tex
@@ -0,0 +1,64 @@
+%
+% positiv.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Positive und nichtnegative Matrizen}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Positive Matrix\strut}
+Eine Matrix $A$ heisst positiv, wenn
+\[
+a_{ij} > 0\quad\forall i,j
+\]
+Man schreibt $A>0\mathstrut$
+\end{block}
+\uncover<2->{%
+\begin{block}{Relation $>\mathstrut$}
+Man schreibt $A>B$ wenn $A-B > 0\mathstrut$
+\end{block}}
+\uncover<5->{%
+\begin{block}{Wahrscheinlichkeitsmatrix}
+\[
+W=\begin{pmatrix}
+0.7&0.2&0.1\\
+0.2&0.6&0.1\\
+0.1&0.2&0.8
+\end{pmatrix}
+\]
+Spaltensumme$\mathstrut=1$, Zeilensumme$\mathstrut=?$
+\end{block}}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<3->{%
+\begin{block}{Nichtnegative Matrix\strut}
+Eine Matrix $A$ heisst nichtnegativ, wenn
+\[
+a_{ij} \ge 0\quad\forall i,j
+\]
+Man schreibt $A\ge 0\mathstrut$
+\end{block}}
+\uncover<4->{%
+\begin{block}{Relation $\ge\mathstrut$}
+Man schreibt $A\ge B$ wenn $A-B \ge 0\mathstrut$
+\end{block}}
+\uncover<6->{%
+\begin{block}{Permutationsmatrix}
+\[
+P=\begin{pmatrix}
+0&0&1\\
+1&0&0\\
+0&1&0
+\end{pmatrix}
+\]
+Genau eine $1$ in jeder Zeile/Spalte
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/9/pf/primitiv.tex b/vorlesungen/slides/9/pf/primitiv.tex
new file mode 100644
index 0000000..961b1d5
--- /dev/null
+++ b/vorlesungen/slides/9/pf/primitiv.tex
@@ -0,0 +1,84 @@
+%
+% primitiv.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Primitive Matrix}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{block}{Definition}
+$A\ge 0$ heisst primitiv, wenn es ein $n>0$ gibt mit $A^n>0$
+\end{block}
+\uncover<9->{%
+\begin{block}{Intuition}
+\begin{itemize}
+\item<10->
+Markov-Ketten: $a_{ij} > 0$ bedeutet, $i$ von $j$ aus erreichbar.
+\item<11->
+Band: {\em alle} Verbindung mit allen Nachbarn
+\item<12->
+$n$-te Potenz: Pfade der Länge $n$
+\item<13->
+Durchmesser: wenn $n>\text{Durchmesser des Zustandsdiagramms}$,
+dann ist $A^n>0$
+\end{itemize}
+\end{block}
+}
+\end{column}
+\begin{column}{0.48\textwidth}
+\uncover<2->{%
+\begin{block}{Beispiel: Reduzible W'keitsmatrix}
+\vspace{-5pt}
+\begin{center}
+\begin{tikzpicture}[>=latex,thick]
+\fill[color=gray!40] (-1,0) rectangle (0,1);
+\fill[color=gray!40] (0,-1) rectangle (1,0);
+\draw[line width=0.3pt] (0,-1) -- (0,1);
+\draw[line width=0.3pt] (-1,0) -- (1,0);
+%\draw (-1,-1) rectangle (1,1);
+\node at (0,0) {$\left( \raisebox{0pt}[1cm][1cm]{\hspace*{2cm}} \right)$};
+\node at (-1.3,0) [left] {$\mathstrut W=$};
+\node at (0.5,0.5) {$0$};
+\node at (-0.5,-0.5) {$0$};
+\end{tikzpicture}
+\end{center}
+\vspace{-10pt}
+
+$\Rightarrow$ $W$ ist nicht primitiv
+\end{block}}
+\uncover<3->{%
+\begin{block}{Beispiel: Bandmatrix}
+\centering
+\begin{tikzpicture}[>=latex,thick]
+\begin{scope}
+\clip (-1,-1) rectangle (1,1);
+\foreach \n in {3,...,8}{
+ \pgfmathparse{0.3*(\n-2)}
+ \xdef\x{\pgfmathresult}
+ \only<\n>{
+ \fill[color=gray!40]
+ ({-1.2-\x},1) -- (1,{-1.2-\x}) -- (1,{-0.8+\x})
+ -- ({-0.8+\x},1) -- cycle;
+ }
+}
+\fill[color=gray] (-1.2,1) -- (1,-1.2) -- (1,-0.8) -- (-0.8,1) -- cycle;
+\end{scope}
+\foreach \n in {2,...,8}{
+ \uncover<\n>{
+ \pgfmathparse{int(\n-2)}
+ \xdef\k{\pgfmathresult}
+ \node at (-1.3,0) [left] {$\mathstrut B^{\k}=$};
+ }
+}
+\node at (0,0) {$\left( \raisebox{0pt}[1cm][1cm]{\hspace*{2cm}} \right)$};
+\end{tikzpicture}
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/9/pf/trennung.tex b/vorlesungen/slides/9/pf/trennung.tex
new file mode 100644
index 0000000..9c85849
--- /dev/null
+++ b/vorlesungen/slides/9/pf/trennung.tex
@@ -0,0 +1,99 @@
+%
+% trennung.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\definecolor{darkgreen}{rgb}{0,0.6,0}
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Trennung}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{center}
+\begin{tikzpicture}[>=latex,thick]
+
+\coordinate (u) at (3.5,4.5);
+\coordinate (v) at (2.5,2);
+\coordinate (va) at ({(3.5/2.5)*2.5},{(3.5/2.5)*2});
+
+\uncover<3->{
+\fill[color=darkgreen!20] (0,0) rectangle (5.3,5.3);
+\node[color=darkgreen] at (1.5,4.9) {$u\not\ge w$};
+\node[color=darkgreen] at (4.4,0.6) {$u\not\ge w$};
+}
+
+\uncover<5->{
+\begin{scope}
+\clip (0,0) rectangle (5.3,5.3);
+\draw[color=darkgreen] (0,0) -- ($3*(v)$);
+\end{scope}
+
+\node[color=darkgreen] at ($1.2*(va)$)
+ [below,rotate={atan(2/2.5)}] {$(1+\mu)v$};
+}
+
+\uncover<2->{
+ \fill[color=red!20] (0,0) rectangle (u);
+}
+
+\fill[color=red] (u) circle[radius=0.08];
+\node[color=red] at (u) [above right] {$u$};
+
+\uncover<4->{
+ \fill[color=blue!40,opacity=0.5] (0,0) rectangle (v);
+}
+
+\uncover<2->{
+ \fill[color=blue] (v) circle[radius=0.08];
+ \node[color=blue] at (v) [above] {$v$};
+}
+
+\uncover<4->{
+ \draw[color=blue] (0,0) -- (va);
+
+ \fill[color=blue] (va) circle[radius=0.08];
+ \node[color=blue] at (va) [above left] {$(1+\varepsilon)v$};
+}
+
+\draw[->] (-0.1,0) -- (5.5,0) coordinate[label={$x_1$}];
+\draw[->] (0,-0.1) -- (0,5.5) coordinate[label={right:$x_2$}];
+
+\uncover<2->{
+ \draw[->,color=red] (3.0,-0.2) -- (3.0,1.5);
+ \node[color=red] at (3.0,-0.2) [below]
+ {$\{w\in\mathbb{R}^n\;|\; w<u\}$};
+}
+
+\end{tikzpicture}
+\end{center}
+\end{column}
+\begin{column}{0.48\textwidth}
+\begin{block}{Satz}
+$u>v\ge 0$\uncover<4->{, dann gibt es $\varepsilon>0$ mit
+\[
+u\ge (1+\varepsilon)v
+\]}%
+\uncover<5->{und für $\mu>\varepsilon$ ist
+\[
+u \not\ge (1+\mu)v
+\]}
+\uncover<6->{%
+\begin{proof}[Beweis]
+\begin{itemize}
+\item<7->
+$u>v$ $\Rightarrow$ $u_i/v_i>1$ falls $v_i>0$
+\item<8->
+\[
+\vartheta = \min_{v_i\ne 0} \frac{u_i}{v_i} > 1
+\]
+\uncover<9->{$\varepsilon = \vartheta - 1$}
+\end{itemize}
+\end{proof}}
+\end{block}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/9/pf/vergleich.tex b/vorlesungen/slides/9/pf/vergleich.tex
new file mode 100644
index 0000000..c1a1f7a
--- /dev/null
+++ b/vorlesungen/slides/9/pf/vergleich.tex
@@ -0,0 +1,113 @@
+%
+% vergleich.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\definecolor{darkgreen}{rgb}{0,0.6,0}
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Vergleich}
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.48\textwidth}
+\begin{center}
+\begin{tikzpicture}[>=latex,thick]
+
+\def\a{1.2} \def\b{0.35}
+\def\c{0.5} \def\d{1.25}
+\def\r{4}
+
+\coordinate (u) at (3.5,0);
+\coordinate (v) at (2.5,0);
+
+\coordinate (Au) at ({3.5*\a},{3.5*\c});
+\coordinate (Av) at ({2.5*\a},{2.5*\c});
+
+\uncover<2->{
+ \begin{scope}
+ \clip (0,0) rectangle (5,5);
+ \fill[color=red!20] (0,0) circle[radius=4];
+ \end{scope}
+ \node[color=red] at (0,4) [below right] {$\mathbb{R}^n$};
+
+ \fill[color=blue!40,opacity=0.5] (0,0) -- ({\a*\r},{\c*\r})
+ -- plot[domain=0:90,samples=100]
+ ({\r*(\a*cos(\x)+\b*sin(\x))},{\r*(\c*cos(\x)+\d*sin(\x))})
+ -- ({\b*\r},{\d*\r}) -- cycle;
+ \node[color=blue] at ({\r*\b},{\r*\d}) [below right] {$A\mathbb{R}^n$};
+}
+
+\draw[->] (-0.1,0) -- (5.5,0) coordinate[label={$x_1$}];
+\draw[->] (0,-0.1) -- (0,5.5) coordinate[label={right:$x_2$}];
+
+\uncover<3->{
+ \fill[color=darkgreen!30,opacity=0.5]
+ (0,0) rectangle ({3.5*\a},{3.5*\c});
+ \draw[color=white,line width=0.7pt]
+ ({3.5*\a},0) -- ({3.5*\a},{3.5*\c}) -- (0,{3.5*\c});
+}
+
+\uncover<2->{
+ \draw[->,color=blue,line width=1.4pt] (0,0) -- ({\r*\a},{\r*\c});
+ \draw[->,color=blue,line width=1.4pt] (0,0) -- ({\r*\b},{\r*\d});
+
+ \draw[->,color=red,line width=1.4pt] (0,0) -- (4,0);
+ \draw[->,color=red,line width=1.4pt] (0,0) -- (0,4);
+}
+
+\draw[color=darkgreen,line width=2pt] (u) -- (v);
+\fill[color=darkgreen] (u) circle[radius=0.08];
+\fill[color=darkgreen] (v) circle[radius=0.08];
+
+\node[color=darkgreen] at (u) [below right] {$u$};
+\node[color=darkgreen] at (v) [below left] {$v$};
+\node[color=darkgreen] at ($0.5*(u)+0.5*(v)$) [above] {$v\le u$};
+
+\uncover<3->{
+ \draw[color=darkgreen,line width=2pt] (Au) -- (Av);
+ \fill[color=darkgreen] (Au) circle[radius=0.08];
+ \fill[color=darkgreen] (Av) circle[radius=0.08];
+
+ \node[color=darkgreen] at (Au) [above left] {$Au$};
+ \node[color=darkgreen] at (Av) [above left] {$Av$};
+
+ \node[color=darkgreen] at ($0.5*(Au)+0.5*(Av)$)
+ [below,rotate={atan(\c/\a)}] {$Av<Au$};
+}
+
+\end{tikzpicture}
+\end{center}
+\end{column}
+\begin{column}{0.48\textwidth}
+\begin{block}{Satz}
+$u\ge v\ge 0$ \uncover<2->{und $A > 0$}\uncover<3->{ $\Rightarrow$ $Au>Av$}
+\end{block}
+\uncover<4->{%
+\begin{block}{intuitiv}
+$A>0$ befördert $\ge$ zu $>$
+\end{block}}
+\uncover<5->{%
+\begin{proof}[Beweis]
+$d=u-v\ge 0$
+\begin{align*}
+(Ad)_i
+\uncover<6->{=
+\sum_{j}
+\underbrace{a_{ij}}_{>0}d_j}
+\uncover<7->{>
+0}
+\uncover<8->{\quad\Rightarrow\quad
+Au > Av}
+\end{align*}
+\uncover<7->{da mindestens ein $d_j>0$ ist}
+\end{proof}}
+\uncover<9->{%
+\begin{block}{Korollar}
+$A>0$ und $d\ge 0$ $\Rightarrow$ $Ad > 0$
+\end{block}}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/9/pf/vergleich3d.tex b/vorlesungen/slides/9/pf/vergleich3d.tex
new file mode 100644
index 0000000..1c019a6
--- /dev/null
+++ b/vorlesungen/slides/9/pf/vergleich3d.tex
@@ -0,0 +1,26 @@
+%
+% template.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Vergleich}
+
+\vspace{-20pt}
+\begin{columns}[t,onlytextwidth]
+\begin{column}{0.57\textwidth}
+\begin{center}
+\includegraphics[width=\textwidth]{../../buch/chapters/80-wahrscheinlichkeit/images/vergleich.pdf}
+\end{center}
+\end{column}
+\begin{column}{0.38\textwidth}
+\begin{block}{Satz}
+$u\ge v\ge 0$ $\Rightarrow$ $Au>Av$
+\end{block}
+\end{column}
+\end{columns}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/9/potenz.tex b/vorlesungen/slides/9/potenz.tex
new file mode 100644
index 0000000..2c3afa3
--- /dev/null
+++ b/vorlesungen/slides/9/potenz.tex
@@ -0,0 +1,15 @@
+%
+% potenz.tex -- slide template
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\bgroup
+\begin{frame}[t]
+\setlength{\abovedisplayskip}{5pt}
+\setlength{\belowdisplayskip}{5pt}
+\frametitle{Potenzmethode}
+\begin{center}
+\includegraphics[width=0.9\textwidth]{../../buch/chapters/80-wahrscheinlichkeit/images/positiv.pdf}
+\end{center}
+\end{frame}
+\egroup
diff --git a/vorlesungen/slides/test.tex b/vorlesungen/slides/test.tex
index 17c8a28..4289c44 100644
--- a/vorlesungen/slides/test.tex
+++ b/vorlesungen/slides/test.tex
@@ -3,9 +3,26 @@
%
% (c) 2021 Prof Dr Andreas Müller, Hochschule Rapperswil
%
-\folie{7/mannigfaltigkeit.tex}
-\folie{7/haar.tex}
-\folie{7/quaternionen.tex}
-\folie{7/qdreh.tex}
-\folie{7/ueberlagerung.tex}
-\folie{7/hopf.tex}
+%\folie{9/google.tex}
+%\folie{9/markov.tex}
+%\folie{9/stationaer.tex}
+%\folie{9/irreduzibel.tex}
+%\folie{9/pf.tex}
+
+%\folie{9/pf/positiv.tex}
+%\folie{9/pf/primitiv.tex}
+%\folie{9/pf/trennung.tex}
+%\folie{9/pf/vergleich.tex}
+%\folie{9/pf/vergleich3d.tex}
+%\folie{9/pf/dreieck.tex}
+%\folie{9/pf/folgerungen.tex}
+%\folie{9/potenz.tex}
+
+\folie{9/parrondo/erwartung.tex}
+%\folie{9/parrondo/uebersicht.tex}
+\folie{9/parrondo/spiela.tex}
+\folie{9/parrondo/spielb.tex}
+\folie{9/parrondo/spielbmod.tex}
+\folie{9/parrondo/kombiniert.tex}
+\folie{9/parrondo/deformation.tex}
+
diff --git a/vorlesungen/stream/countdown.html b/vorlesungen/stream/countdown.html
index 940e269..12f99ac 100644
--- a/vorlesungen/stream/countdown.html
+++ b/vorlesungen/stream/countdown.html
@@ -17,7 +17,7 @@ color: #990000;
<body>
<div id="demo"></div>
<script>
-var deadline = new Date("Mar 29, 2021 17:00:00").getTime();
+var deadline = new Date("May 17, 2021 17:00:00").getTime();
var x = setInterval(function() {
var now = new Date().getTime();
var t = deadline - now;