aboutsummaryrefslogtreecommitdiffstats
path: root/buch/chapters
diff options
context:
space:
mode:
authorAyexor <9105454+Ayexor@users.noreply.github.com>2021-08-27 18:09:54 +0200
committerGitHub <noreply@github.com>2021-08-27 18:09:54 +0200
commit2b2c5daa139aec08d091b658ad6191d6e57024ef (patch)
tree2c8f3fc7017394746d8e4f92a358e2a11015e072 /buch/chapters
parentAnpassungen nach Mail (diff)
parentnew image: tetraeder (diff)
downloadSeminarMatrizen-2b2c5daa139aec08d091b658ad6191d6e57024ef.tar.gz
SeminarMatrizen-2b2c5daa139aec08d091b658ad6191d6e57024ef.zip
Merge branch 'master' into master
Diffstat (limited to 'buch/chapters')
-rwxr-xr-x[-rw-r--r--]buch/chapters/10-vektorenmatrizen/linear.tex280
-rw-r--r--buch/chapters/10-vektorenmatrizen/skalarprodukt.tex2
-rw-r--r--buch/chapters/50-permutationen/determinante.tex102
-rw-r--r--buch/chapters/50-permutationen/matrizen.tex5
-rw-r--r--buch/chapters/60-gruppen/symmetrien.tex4
-rw-r--r--buch/chapters/70-graphen/chapter.tex2
-rw-r--r--buch/chapters/70-graphen/wavelets.tex2
-rw-r--r--buch/chapters/90-crypto/Makefile.inc1
-rw-r--r--buch/chapters/90-crypto/arith.tex1
-rw-r--r--buch/chapters/90-crypto/ff.tex53
-rw-r--r--buch/chapters/90-crypto/rs.tex41
-rw-r--r--buch/chapters/95-homologie/Makefile.inc5
-rw-r--r--buch/chapters/95-homologie/basiswahl.tex817
-rw-r--r--buch/chapters/95-homologie/chapter.tex16
-rw-r--r--buch/chapters/95-homologie/eulerchar.tex139
-rw-r--r--buch/chapters/95-homologie/fixpunkte.tex136
-rw-r--r--buch/chapters/95-homologie/homologie.tex35
-rw-r--r--buch/chapters/95-homologie/homologieketten.tex286
-rw-r--r--buch/chapters/95-homologie/hx.m129
-rw-r--r--buch/chapters/95-homologie/images/Makefile38
-rw-r--r--buch/chapters/95-homologie/images/approx.m77
-rw-r--r--buch/chapters/95-homologie/images/approximation.pdfbin0 -> 32134 bytes
-rw-r--r--buch/chapters/95-homologie/images/approximation.tex69
-rw-r--r--buch/chapters/95-homologie/images/complexbasis.pdfbin0 -> 27033 bytes
-rw-r--r--buch/chapters/95-homologie/images/complexbasis.tex158
-rw-r--r--buch/chapters/95-homologie/images/gausshomobasis.pdfbin0 -> 24156 bytes
-rw-r--r--buch/chapters/95-homologie/images/gausshomobasis.tex109
-rw-r--r--buch/chapters/95-homologie/images/gausshomoex.pdfbin0 -> 15128 bytes
-rw-r--r--buch/chapters/95-homologie/images/gausshomoex.tex120
-rw-r--r--buch/chapters/95-homologie/images/homoboundaries.pdfbin0 -> 17362 bytes
-rw-r--r--buch/chapters/95-homologie/images/homoboundaries.tex115
-rw-r--r--buch/chapters/95-homologie/images/homoclasses.pdfbin0 -> 11791 bytes
-rw-r--r--buch/chapters/95-homologie/images/homoclasses.tex109
-rw-r--r--buch/chapters/95-homologie/images/homocycles.pdfbin0 -> 17039 bytes
-rw-r--r--buch/chapters/95-homologie/images/homocycles.tex170
-rw-r--r--buch/chapters/95-homologie/images/polyeder.pdfbin0 -> 3270 bytes
-rw-r--r--buch/chapters/95-homologie/images/polyeder.tex109
-rw-r--r--buch/chapters/95-homologie/images/tetraeder.jpgbin0 -> 68762 bytes
-rw-r--r--buch/chapters/95-homologie/images/tetraeder.pdfbin0 -> 84492 bytes
-rw-r--r--buch/chapters/95-homologie/images/tetraeder.pov116
-rw-r--r--buch/chapters/95-homologie/images/tetraeder.tex97
-rw-r--r--buch/chapters/95-homologie/induzierteabb.tex204
-rw-r--r--buch/chapters/95-homologie/komplex.tex106
-rw-r--r--buch/chapters/95-homologie/mayervietoris.tex28
-rw-r--r--buch/chapters/95-homologie/simplex.tex131
-rw-r--r--buch/chapters/references.bib13
46 files changed, 3657 insertions, 168 deletions
diff --git a/buch/chapters/10-vektorenmatrizen/linear.tex b/buch/chapters/10-vektorenmatrizen/linear.tex
index ac2b85d..3ad51f1 100644..100755
--- a/buch/chapters/10-vektorenmatrizen/linear.tex
+++ b/buch/chapters/10-vektorenmatrizen/linear.tex
@@ -33,7 +33,7 @@ aber mit Punkten kann man trotzdem noch nicht rechnen.
Ein Vektor fasst die Koordinaten eines Punktes in einem Objekt zusammen,
mit dem man auch rechnen und zum Beispiel Parallelverschiebungen
algebraisieren kann.
-Um auch Streckungen ausdrücken zu können, wird auch eine Menge von
+Um auch Streckungen ausdrücken zu können, wird auch eine Menge von
Streckungsfaktoren benötigt, mit denen alle Komponenten eines Vektors
multipliziert werden können.
Sie heissen auch {\em Skalare} und liegen in $\Bbbk$.
@@ -73,7 +73,7 @@ a+b
=
\begin{pmatrix}\lambda a_1\\\vdots\\\lambda a_n\end{pmatrix}.
\]
-Die üblichen Rechenregeln sind erfüllt, nämlich
+Die üblichen Rechenregeln sind erfüllt, nämlich
\begin{equation}
\begin{aligned}
&\text{Kommutativität:}
@@ -149,7 +149,7 @@ kann als (abstrakter) Vektor betrachtet werden.
\begin{definition}
Eine Menge $V$ von Objekten, auf der zwei Operationen definiert,
nämlich die Addition, geschrieben $a+b$ für $a,b\in V$ und die
-Multiplikation mit Skalaren, geschrieben $\lambda a$ für $a\in V$ und
+Multiplikation mit Skalaren, geschrieben $\lambda a$ für $a\in V$ und
$\lambda\in \Bbbk$, heisst ein {\em $\Bbbk$-Vektorraum} oder {\em Vektorraum
über $\Bbbk$} (oder
einfach nur {\em Vektorraum}, wenn $\Bbbk$ aus dem Kontext klar sind),
@@ -172,7 +172,7 @@ $\mathbb{C}$ ein Vektorraum über $\mathbb{R}$.
\end{beispiel}
\begin{beispiel}
-Die Menge $C([a,b])$ der stetigen Funktionen $[a,b]\to\mathbb{Re}$
+Die Menge $C([a,b])$ der stetigen Funktionen $[a,b]\to\mathbb{Re}$
bildet ein Vektorraum.
Funktionen können addiert und mit reellen Zahlen multipliziert werden:
\[
@@ -188,7 +188,7 @@ Die Vektorraum-Rechenregeln
\end{beispiel}
Die Beispiele zeigen, dass der Begriff des Vektorraums die algebraischen
-Eigenschaften eine grosse Zahl sehr verschiedenartiger mathematischer
+Eigenschaften eine grosse Zahl sehr verschiedenartiger mathematischer
Objekte beschreiben kann.
Alle Erkenntnisse, die man ausschliesslich aus Vekotorraumeigenschaften
gewonnen hat, sind auf alle diese Objekte übertragbar.
@@ -300,7 +300,7 @@ folgt, dass alle $\lambda_1,\dots,\lambda_n=0$ sind.
Lineare Abhängigkeit der Vektoren $a_1,\dots,a_n$ bedeutet auch, dass
man einzelne der Vektoren durch andere ausdrücken kann.
Hat man nämlich eine
-Linearkombination~\eqref{buch:vektoren-und-matrizen:eqn:linabhdef} und
+Linearkombination~\eqref{buch:vektoren-und-matrizen:eqn:linabhdef} und
ist der Koeffizient $\lambda_k\ne 0$, dann kann man nach $a_k$ auflösen:
\[
a_k = -\frac{1}{\lambda_k}(\lambda_1a_1+\dots+\widehat{\lambda_ka_k}+\dots+\lambda_na_n).
@@ -323,7 +323,7 @@ offenbar eine besondere Bedeutung.
Eine linear unabhängig Menge von Vektoren
$\mathcal{B}=\{a_1,\dots,a_n\}\subset V$
heisst {\em Basis} von $V$.
-Die maximale Anzahl linear unabhängiger Vektoren in $V$ heisst
+Die maximale Anzahl linear unabhängiger Vektoren in $V$ heisst
{\em Dimension} von $V$.
\end{definition}
@@ -331,7 +331,7 @@ Die Standardbasisvektoren bilden eine Basis von $V=\Bbbk^n$.
\subsubsection{Unterräume}
Die Mengen $\langle a_1,\dots,a_n\rangle$ sind Teilmengen
-von $V$, in denen die Addition von Vektoren und die Multiplikation mit
+von $V$, in denen die Addition von Vektoren und die Multiplikation mit
Skalaren immer noch möglich ist.
\begin{definition}
@@ -352,7 +352,7 @@ gilt.
%
\subsection{Matrizen
\label{buch:grundlagen:subsection:matrizen}}
-Die Koeffizienten eines linearen Gleichungssystems finden in einem
+Die Koeffizienten eines linearen Gleichungssystems finden in einem
Zeilen- oder Spaltenvektor nicht Platz.
Wir erweitern das Konzept daher in einer Art, dass Zeilen- und
Spaltenvektoren Spezialfälle sind.
@@ -378,14 +378,14 @@ M_{m\times n}(\Bbbk) = \{ A\;|\; \text{$A$ ist eine $m\times n$-Matrix}\}.
\]
Falls $m=n$ gilt, heisst die Matrix $A$ auch {\em quadratisch}
\index{quadratische Matrix}%
-Man kürzt die Menge der quadratischen Matrizen als
+Man kürzt die Menge der quadratischen Matrizen als
$M_n(\Bbbk) = M_{n\times n}(\Bbbk)$ ab.
\end{definition}
-Die $m$-dimensionalen Spaltenvektoren $v\in \Bbbk^m$ sind $m\times 1$-Matrizen
+Die $m$-dimensionalen Spaltenvektoren $v\in \Bbbk^m$ sind $m\times 1$-Matrizen
$v\in M_{n\times 1}(\Bbbk)$, die $n$-dimensionalen Zeilenvetoren $u\in\Bbbk^n$
sind $1\times n$-Matrizen $v\in M_{1\times n}(\Bbbk)$.
-Eine $m\times n$-Matrix $A$ mit den Koeffizienten $a_{ij}$ besteht aus
+Eine $m\times n$-Matrix $A$ mit den Koeffizienten $a_{ij}$ besteht aus
den $n$ Spaltenvektoren
\[
a_1 = \begin{pmatrix} a_{11} \\ a_{21} \\ \vdots \\ a_{m1} \end{pmatrix},\quad
@@ -435,7 +435,7 @@ werden kann.
\begin{definition}
Eine $m\times n$-Matrix $A\in M_{m\times n}(\Bbbk)$ und eine
$n\times l$-Matrix $B\in M_{n\times l}(\Bbbk)$ haben als Produkt
-eine $n\times l$-Matrix $C=AB\in M_{n\times l}(\Bbbk)$ mit den
+eine $m\times l$-Matrix $C=AB\in M_{m\times l}(\Bbbk)$ mit den
Koeffizienten
\begin{equation}
c_{ij} = \sum_{k=1}^n a_{ik} b_{kj}.
@@ -483,7 +483,7 @@ I
1 &0 &\dots &0 \\
0 &1 &\dots &0 \\[-2pt]
\vdots&\vdots&\ddots&\vdots\\
-0 &0 &\dots &1
+0 &0 &\dots &1
\end{pmatrix}.
\]
@@ -521,10 +521,10 @@ Ein Gleichungssystem mit $0$ auf der rechten Seite ist also bereits
ausreichend um zu entscheiden, ob die Lösung eindeutig ist.
Ein Gleichungssystem mit rechter Seite $0$ heisst {\em homogen}.
\index{homogenes Gleichungssystem}%
-Zu jedem {\em inhomogenen} Gleichungssystem $Ax=b$ mit $b\ne 0$
+Zu jedem {\em inhomogenen} Gleichungssystem $Ax=b$ mit $b\ne 0$
ist $Ax=0$ das zugehörige homogene Gleichungssystem.
-Ein homogenes Gleichungssytem $Ax=0$ hat immer mindestens die
+Ein homogenes Gleichungssytem $Ax=0$ hat immer mindestens die
Lösung $x=0$, man nennt sie auch die {\em triviale} Lösung.
Eine Lösung $x\ne 0$ heisst auch eine nichttriviale Lösung.
Die Lösungen eines inhomgenen Gleichungssystem $Ax=b$ ist also nur dann
@@ -535,7 +535,7 @@ Lösung hat.
Der Gauss-Algorithmus oder genauer Gausssche Eliminations-Algorithmus
löst ein lineare Gleichungssystem der
Form~\eqref{buch:vektoren-und-matrizen:eqn:vektorform}.
-Die Koeffizienten werden dazu in das Tableau
+Die Koeffizienten werden dazu in das Tableau
\[
\begin{tabular}{|>{$}c<{$}>{$}c<{$}>{$}c<{$}|>{$}c<{$}|}
\hline
@@ -552,7 +552,7 @@ Der Algorithmus is so gestaltet, dass er nicht mehr Speicher als
das Tableau benötigt, alle Schritte operieren direkt auf den Daten
des Tableaus.
-In jedem Schritt des Algorithmus wird zunächst eine Zeile $i$ und
+In jedem Schritt des Algorithmus wird zunächst eine Zeile $i$ und
Spalte $j$ ausgewählt, das Elemente $a_{ij}$ heisst das Pivotelement.
\index{Pivotelement}%
Die {\em Pivotdivision}
@@ -646,7 +646,7 @@ In der Phase der {\em Vorwärtsreduktion} werden Pivotelemente von links
nach rechts möglichst auf der Diagonale gewählt und mit Zeilensubtraktionen
die darunterliegenden Spalten freigeräumt.
\index{Vorwärtsreduktion}%
-Während des Rückwärtseinsetzens werden die gleichen Pivotelemente von
+Während des Rückwärtseinsetzens werden die gleichen Pivotelemente von
rechts nach links genutzt, um mit Zeilensubtraktionen auch die
Spalten über den Pivotelemnten frei zu räumen.
\index{Rückwärtseinsetzen}%
@@ -800,7 +800,7 @@ $x = b_1c_1+b_2c_2+\dots+b_nc_n$ konstruieren.
Tatsächlich gilt
\begin{align*}
Ax
-&=
+&=
A( b_1c_1+b_2c_2+\dots+b_nc_n)
\\
&=
@@ -837,7 +837,178 @@ Seite~\pageref{buch:vektorenmatrizen:satz:gruppenregeln}
die Eigenschaft $A^{-1}A=I$ ganz allgemein gezeigt.
\subsubsection{Determinante}
-XXX TODO
+Ein Gleichungssystem mit $n$ Gleichungen und $n$ Unbekannten ist genau
+dann lösbar, wenn sich der Gauss-Algorithmus bis zum Ende durchführen lässt.
+Das ist gleichbedeutend damit, dass keines der Pivot-Elemente verschwindet.
+Das Produkt der Pivot-Elemente ist also eine aus der Koeffizientenmatrix
+$A$ berechnete Kennzahl, die zu entscheiden erlaubt, ob ein Gleichungssystem
+lösbar ist.
+
+\begin{definition}
+\label{buch:linear:determinate:def}
+Das Produkt der Pivot-Elemente bei der Durchführung des Gauss-Algorithmus
+für eine Gleichungssystem mit quadratischer Koeffizientenmatrix $A$
+heisst die Determinante $\det(A)$ der Matrix $A$.
+\end{definition}
+
+Aus den Regeln für die Durchführung des Gauss-Algorithmus kann man die
+folgenden Regeln für die Determinante ableiten.
+Wir stellen die Eigenschaften hier nur zusammen, detaillierte Herleitungen
+kann man in jedem Kurs zur linearen Algebra finden, zum Beispiel im
+Kapitel~2 des Skripts \cite{buch:linalg}.
+\begin{enumerate}
+\item
+\label{buch:linear:determinante:einheitsmatrix}
+Die Determinante der Einheitsmatrix ist $\det(I)=1$.
+\item
+Sind zwei Zeilen einer Matrix gleich, dann tritt beim Gauss-Algorithmus
+eine Nullzweile auf, die Matrix kann also nicht regulär sein und die
+Determinante ist $0$.
+\item
+\label{buch:linear:determinante:vorzeichen}
+Vertauscht man zwei Zeilen einer Matrix, dann kehrt das Vorzeichen der
+Determinante.
+\item
+Addiert man ein Vielfaches einer Zeile der Matrix zu einer anderen Zeile,
+dann ändert der Wert der Determinante nicht.
+\item
+Wird eine Zeile der Matrix mit einer Zahl $\lambda$ multipliziert, dann
+wird auch der Wert der Determinanten mit $\lambda$ multipliziert.
+\item
+\label{buch:linear:determinante:asymetrisch}
+Die Determinante ist eine lineare Funktion der Zeilen von $A$.
+Zusammen mit der Eigeschaft~\ref{buch:linear:determinante:vorzeichen}
+folgt, dass die Determinante eine antisymmetrische lineare Funktion
+der Zeilen ist.
+\item
+Die Determinante ist durch die Eigenschaften
+\ref{buch:linear:determinante:einheitsmatrix}
+und
+\ref{buch:linear:determinante:asymetrisch}
+eindeutig bestimmt.
+\item
+Der Entwicklungssatz von Laplace.
+\index{Entwicklungssatz Laplace}%
+Die Determinante der $n\times n$-Matrix $A$ kann mit der Formel
+\begin{equation}
+\det(A)
+=
+\sum_{i=1}^n (-1)^{i+j} a_{ij} \cdot \det(A_{ij})
+\end{equation}
+wobei die $(n-1)\times(n-1)$-Matrix $A_{ij}$ die Matrix $A$ ist, aus der
+man Zeile $i$ und Spalte $j$ entfernt hat.
+$A_{ij}$ heisst ein {\em Minor} der Matrix $A$.
+\index{Minor einer Matrix}%
+\end{enumerate}
+
+Die bekannte Formel $\det\begin{pmatrix}a&b\\c&d\end{pmatrix}=ad-bc$
+ist ein Spezialfall des Entwicklungssatzes von Laplace.
+Auch für $3\times 3$-Matrizen ist eine übersichtliche Form möglich,
+die als die Sarrus-Formel bekannt ist.
+\index{Sarrus-Formel}%
+
+\begin{satz}[Sarrus]
+\label{buch:linear:determinate:sarrus}
+Die Determinante einer $3\times 3$-Matrix ist
+\[
+\left|\begin{matrix}
+a&b&c\\
+d&e&f\\
+g&h&i
+\end{matrix}\right|
+=
+aei + bfg + cdh - ceg - bdi - afh.
+\]
+\end{satz}
+
+\subsubsection{Die Regel von Cramer}
+Die Determinanten ermöglicht auch, eine Formel für die Lösung eines
+Gleichungssystems zu geben.
+Dies ist bekannt als die {\em Regel von Cramer}.
+
+\begin{satz}
+\label{buch:linear:determinante:cramer}
+Die Lösung $x_k$ eines $n\times n$-Gleichungssystem $Ax=b$ mit
+Koeffizientenmatrix $A$ und rechter Seite $b$ hat die Lösungen
+\begin{equation}
+x_k
+=
+\frac{
+\left|\begin{matrix}
+a_{11}&a_{12}&\dots &b_1 &\dots &a_{1n}\\
+a_{21}&a_{22}&\dots &b_2 &\dots &a_{2n}\\
+\vdots&\vdots&\ddots&\vdots&\vdots&\vdots\\
+a_{n1}&a_{n2}&\dots &b_n &\dots &a_{nn}
+\end{matrix}\right|
+}{
+\det(A),
+}
+\end{equation}
+wobei im Zähler die Spalte $k$ der Matrix $A$ durch den Vektor $b$
+der rechten Seiten ersetzt worden ist.
+\end{satz}
+
+Die Cramersche Formel ist besonders nützlich, wenn die Abhängigkeit
+einer Lösungsvariablen von den Einträgen der Koeffizientenmatrix
+untersucht werden soll.
+Für die Details der Herleitung sei wieder auf \cite{buch:linalg}
+verwiesen.
+
+\subsubsection{Die inverse Matrix mit Hilfe der Determinanten}
+Die inverse Matrix löst ein quadratisches Gleichungssystem $Ax=b$ mit
+Hilfe der Formel $x=A^{-1}b$.
+Man kann daher auch erwarten, dass sich die inverse Matrix dank
+der Cramerschen Regel mit Hilfe von Determinanten ausdrücken lässt.
+Tatsächlich gilt der folgende Satz.
+
+\begin{satz}
+\label{buch:linalg:inverse:adjunkte}
+Die Inverse der $n\times n$-Matrix $A$ ist gegeben durch
+\index{Formel für die inverse Matrix}%
+\index{inverse Matrix, Formel für}%
+\begin{equation}
+(A^{-1})_{ij}
+=
+\frac{1}{\det(A)}
+\begin{pmatrix}
+\det(A_{11}) & -\det(A_{21}) & \dots & (-1)^{i+1}\det(A_{i1}) & \dots
+ & (-1)^{1+n} \det(A_{n1}) \\
+-\det(A_{12}) & \det(A_{22}) & \dots & (-1)^{i+2}\det(A_{i2}) & \dots
+ & (-1)^{2+n} \det(A_{n2}) \\
+\vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\
+(-1)^{1+j}\det(A_{1j}) & (-1)^{2+j}\det(A_{2j}) & \dots
+ & (-1)^{i+j} \det(A_{ji})
+ & \dots & (-1)^{j+n} \det(A_{nj}) \\
+\vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\
+(-1)^{1+n}\det(A_{1n}) & (-1)^{2+n}\det(A_{2n}) & \dots
+ & (-1)^{i+n}\det(A_{in})
+ & \dots & \det(A_{nn})
+\end{pmatrix}
+\label{buch:linalg:inverse:formel}
+\end{equation}
+Die Transponierte der Matrix auf der rechten Seite (ohne den Vorfaktor
+$1/\det(A)$
+heisst die {\em Adjunkte} $\operatorname{adj}A$ von $A$.
+\index{Adjunkte}%
+\end{satz}
+
+Der Satz~\ref{buch:linalg:inverse:adjoint} liefert eine algebraische
+Formel für die Elemente der inversen Matrix.
+Für kleine Matrizen wie im nachfolgenden Beispiel ist die
+Formel~\eqref{buch:linalg:inverse:formel} oft einfachter anzuwenden.
+Besonders einfach wird die Formel für eine $2\times 2$-Matrix,
+wo man
+\[
+\begin{pmatrix}
+a&b\\c&d
+\end{pmatrix}^{-1}
+=
+\frac{1}{ad-bc}\begin{pmatrix}
+d&-b\\
+-c&a
+\end{pmatrix}
+\]
+erhält.
\begin{beispiel}
Die Inverse der Matrix
@@ -852,21 +1023,22 @@ a&a&1
ist mit Hilfe von Determinanten besonders einfach zu invertieren.
Die Determinante von $A$ ist nach der Sarrus-Formel
\[
-\det A
+\operatorname{adj}A
=
1 + 2a^3 - 3a^2.
\]
-Die adjungiert Matrix ist
+Die Adjunkte ist
\begin{align*}
-A^{-1}
+(\operatorname{adj}A)^t
&=
-\frac{1}{\det{A}}
-\begin{pmatrix}
-\det A_{11} & \det A_{21} & \det A_{31} \\
-\det A_{12} & \det A_{22} & \det A_{32} \\
-\det A_{13} & \det A_{23} & \det A_{33}
-\end{pmatrix}
-\\
+%\frac{1}{\det{A}}
+\begin{pmatrix*}[r]
+ \det A_{11} & -\det A_{21} & \det A_{31} \\
+-\det A_{12} & \det A_{22} & -\det A_{32} \\
+ \det A_{13} & -\det A_{23} & \det A_{33}
+\end{pmatrix*}
+\intertext{und damit ist die inverse Matrix}
+A^{-1}
&=
\frac{1}{2a^3-3a^2+1}
\renewcommand\arraystretch{1.1}
@@ -896,7 +1068,7 @@ A^{-1}
1-a^2 & a^2-a & a^2-a\\
a^2-a & 1-a^2 & a^2-a\\
a^2-a & a^2-a & 1-a^2
-\end{pmatrix}
+\end{pmatrix}.
\end{align*}
Mit $1-a^2=(1+a)(1-a)$ und $a^2-a=a(a-1)$ kann man dies noch etwas
vereinfachen, indem man den gemeinsamen Faktor $1-a$ ausklammern.
@@ -912,10 +1084,19 @@ A^{-1}
\end{pmatrix}.
\label{buch:vektoren-und-matrizen:abeispiel:eqn2}
\end{equation}
-für die Inverse einer Matrix der Form
+für die Inverse einer Matrix der Form
\eqref{buch:vektoren-und-matrizen:abeispiel:eqn1}.
\end{beispiel}
+\subsubsection{Produktregel für die Determinante}
+Aus der Charakterisierung der Determinanten kann man auch ableiten,
+dass die Produktregel
+\[
+\det (AB) = \det(A) \cdot \det(B)
+\]
+gilt.
+Daraus folgt auch, dass $\det(A^{-1})=\det(A)^{-1}$.
+
%
% Lineare Abbildungen
%
@@ -937,7 +1118,7 @@ Eine Abbildung $f\colon V\to U$ zwischen Vektorräumen $V$ und $U$
heisst linear, wenn
\[
\begin{aligned}
-f(v+w) &= f(v) + f(w)&&\forall v,w\in V
+f(v+w) &= f(v) + f(w)&&\forall v,w\in V
\\
f(\lambda v) &= \lambda f(v) &&\forall v\in V,\lambda \in \Bbbk
\end{aligned}
@@ -948,16 +1129,16 @@ gilt.
Lineare Abbildungen sind in der Mathematik sehr verbreitet.
\begin{beispiel}
-Sie $V=C^1([a,b])$ die Menge der stetig differenzierbaren Funktionen
+Sie $V=C^1([a,b])$ die Menge der stetig differenzierbaren Funktionen
auf dem Intervall $[a,b]$ und $U=C([a,b])$ die Menge der
-stetigen Funktion aif $[a,b]$.
+stetigen Funktion aif $[a,b]$.
Die Ableitung $\frac{d}{dx}$ macht aus einer Funktion $f(x)$ die
Ableitung $f'(x)$.
-Die Rechenregeln für die Ableitung stellen sicher, dass
+Die Rechenregeln für die Ableitung stellen sicher, dass
\[
\frac{d}{dx}
\colon
-C^1([a,b]) \to C([a,b])
+C^1([a,b]) \to C([a,b])
:
f \mapsto f'
\]
@@ -976,7 +1157,7 @@ eine lineare Abbildung.
\end{beispiel}
\subsubsection{Matrix}
-Um mit linearen Abbildungen rechnen zu können, ist eine Darstellung
+Um mit linearen Abbildungen rechnen zu können, ist eine Darstellung
mit Hilfe von Matrizen nötig.
Sei also $\mathcal{B}=\{b_1,\dots,b_n\}$ eine Basis von $V$ und
$\mathcal{C} = \{ c_1,\dots,c_m\}$ eine Basis von $U$.
@@ -984,12 +1165,12 @@ Das Bild des Basisvektors $b_i$ kann als Linearkombination der
Vektoren $c_1,\dots,c_m$ dargestellt werden.
Wir verwenden die Bezeichnung
\[
-f(b_i)
+f(b_i)
=
a_{1i} c_1 + \dots + a_{mi} c_m.
\]
Die lineare Abbildung $f$ bildet den Vektor $x$ mit Koordinaten
-$x_1,\dots,x_n$ ab auf
+$x_1,\dots,x_n$ ab auf
\begin{align*}
f(x)
&=
@@ -1012,7 +1193,7 @@ x_n(a_{1n} c_1 + \dots + a_{mn} c_m)
+
( a_{m1} x_1 + \dots + a_{mn} x_n ) c_m
\end{align*}
-Die Koordinaten von $f(x)$ in der Basis $\mathcal{C}$ in $U$ sind
+Die Koordinaten von $f(x)$ in der Basis $\mathcal{C}$ in $U$ sind
also gegeben durch das Matrizenprodukt $Ax$, wenn $x$ der Spaltenvektor
aus den Koordinaten in der Basis $\mathcal{B}$ in $V$ ist.
@@ -1050,7 +1231,7 @@ b_{m1}x_1&+& \dots &+&b_{mn}x_n&=&b_{m1}'x_1'&+& \dots &+&b_{mn}'x_n'
\end{linsys}
\]
Dieses Gleichungssystem kann man mit Hilfe eines Gauss-Tableaus lösen.
-Wir schreiben die zugehörigen Variablen
+Wir schreiben die zugehörigen Variablen
\[
\renewcommand{\arraystretch}{1.1}
\begin{tabular}{|>{$}c<{$} >{$}c<{$} >{$}c<{$}|>{$}c<{$}>{$}c<{$}>{$}c<{$}|}
@@ -1096,7 +1277,7 @@ Für zwei Vektoren $u$ und $w$ in $U$ gibt es daher Vektoren $a=g(u)$
und $b=g(w)$ in $V$ derart, dass $f(a)=u$ und $f(b)=w$.
Weil $f$ linear ist, folgt daraus $f(a+b)=u+w$ und $f(\lambda a)=\lambda a$
für jedes $\lambda\in\Bbbk$.
-Damit kann man jetzt
+Damit kann man jetzt
\begin{align*}
g(u+w)&=g(f(a)+f(b)) = g(f(a+b)) = a+b = g(u)+g(w)
\\
@@ -1134,7 +1315,7 @@ Der Kern oder Nullraum der Matrix $A$ ist die Menge
\]
\end{definition}
-Der Kern ist ein Unterraum, denn für zwei Vektoren $u,w\in \ker f$
+Der Kern ist ein Unterraum, denn für zwei Vektoren $u,w\in \ker f$
\[
\begin{aligned}
f(u+v)&=f(u) + f(v) = 0+0 = 0 &&\Rightarrow& u+v&\in\ker f\\
@@ -1150,7 +1331,7 @@ Wir definieren daher das Bild einer linearen Abbildung oder Matrix.
\begin{definition}
Ist $f\colon V\to U$ eine lineare Abbildung dann ist das Bild von $f$
-der Unterraum
+der Unterraum
\[
\operatorname{im}f = \{ f(v)\;|\;v\in V\} \subset U
\]
@@ -1194,7 +1375,7 @@ $\operatorname{def}A=\dim\ker A$.
\end{definition}
Da der Kern mit Hilfe des Gauss-Algorithmus bestimmt werden kann,
-können Rang und Defekt aus dem Schlusstableau
+können Rang und Defekt aus dem Schlusstableau
eines homogenen Gleichungssystems mit $A$ als Koeffizientenmatrix
abgelesen werden.
@@ -1210,8 +1391,3 @@ n-\operatorname{def}A.
\subsubsection{Quotient}
TODO: $\operatorname{im} A \simeq \Bbbk^m/\ker A$
-
-
-
-
-
diff --git a/buch/chapters/10-vektorenmatrizen/skalarprodukt.tex b/buch/chapters/10-vektorenmatrizen/skalarprodukt.tex
index d951221..408bfeb 100644
--- a/buch/chapters/10-vektorenmatrizen/skalarprodukt.tex
+++ b/buch/chapters/10-vektorenmatrizen/skalarprodukt.tex
@@ -197,7 +197,7 @@ mit Gleichheit genau dann, wenn $x=ty$ ist für ein $t\ge 0$.
&=
(\|x\|_2 + \|y\|_2)^2
\\
-\|x\|_2 + \|y\|_2
+\|x + y\|_2
&\le \|x\|_2 + \|y\|_2,
\end{align*}
Gleichheit tritt genau dann ein, wenn
diff --git a/buch/chapters/50-permutationen/determinante.tex b/buch/chapters/50-permutationen/determinante.tex
index c440caf..805235d 100644
--- a/buch/chapters/50-permutationen/determinante.tex
+++ b/buch/chapters/50-permutationen/determinante.tex
@@ -7,3 +7,105 @@
\section{Determinante
\label{buch:section:determinante}}
\rhead{Determinante}
+Das Signum einer Permutationsmatrizen lässt sich
+gemäss~\eqref{buch:permutationen:determinante}
+mit der Determinanten berechnen.
+Umgekehrt sollte es auch möglich sein, eine Formel
+für die Determinante zu finden.
+Die Basis dafür ist der
+Entwicklungssatz
+\begin{equation}
+\det(A)
+=
+\sum_{i=1}^n (-1)^{i+j} a_{ij} \cdot \det(A_{ij})
+\label{buch:permutationen:entwicklungssatz}
+\end{equation}
+von Laplace für die Determinante.
+In den Produkten $a_{ij}\cdot\det(A_{ij})$ enthält
+die Untermatrix $A_{ij}$ weder Elemente der Zeile $i$ noch der
+Zeile $j$.
+Die Summanden auf der rechten Seite von
+\eqref{buch:permutationen:entwicklungssatz}
+sind daher Produkte der Form
+\[
+a_{1i_1}
+a_{2i_2}
+a_{3i_3}
+\dots
+a_{ni_n},
+\]
+in denen nur Faktoren aus verschiedenen Spalten der Matrix $A$
+vorkommen.
+Das ist gleichbedeutend damit, dass unter den Spaltenindizes
+$i_1,i_2,i_3,\dots,i_n$ keine zwei gleich sind, dass also
+\[
+\sigma
+=
+\begin{pmatrix}
+1&2&3&\dots&n\\
+i_1&i_2&i_3&\dots&i_n
+\end{pmatrix}
+\]
+eine Permutation ist.
+
+Die Determinante muss sich daher als Summe über alle Permutationen
+in der Form
+\begin{equation}
+\det(A)
+=
+\sum_{\sigma\in S_n}
+c(\sigma)
+a_{1\sigma(1)}
+a_{2\sigma(2)}
+\dots
+a_{n\sigma(n)}
+\label{buch:permutationen:cformel}
+\end{equation}
+schreiben lassen, wobei die Koeffizienten $c(\sigma)$ noch zu bestimmen
+sind.
+Setzt man in
+\eqref{buch:permutationen:cformel}
+eine Permutationsmatrix $P_\tau$ ein, dann verschwinden alle
+Terme auf der rechten Seite ausser dem zur Permutation $\tau$,
+also
+\[
+\det(P_\tau)
+=
+\sum_{\sigma \in S_n}
+c(\sigma)
+(P_\tau)_{1\sigma(1)}
+(P_\tau)_{2\sigma(2)}
+\dots
+(P_\tau)_{n\sigma(n)}
+=
+c(\tau)
+1\cdot 1\cdot\dots\cdot 1
+=
+c(\tau).
+\]
+Der Koeffizientn $c(\tau)$ ist also genau das Vorzeichen
+der Permutation $\tau$.
+Damit erhalten wir den folgenden Satz:
+
+\begin{satz}
+Die Determinante einer $n\times n$-Matrix $A$ kann berechnet werden als
+\[
+\det(A)
+=
+\sum_{\sigma\in S_n}
+\operatorname{sgn}(\sigma)
+a_{1\sigma(1)}
+a_{2\sigma(2)}
+\dots
+a_{n\sigma(n)}
+=
+\sum_{\tau\in S_n}
+\operatorname{sgn}(\tau)
+a_{\tau(1)1}
+a_{\tau(2)2}
+\dots
+a_{\tau(n)n}.
+\]
+Insbesondere folgt auch $\det(A)=\det(A^t)$.
+\end{satz}
+
diff --git a/buch/chapters/50-permutationen/matrizen.tex b/buch/chapters/50-permutationen/matrizen.tex
index 7e55364..f7e9e31 100644
--- a/buch/chapters/50-permutationen/matrizen.tex
+++ b/buch/chapters/50-permutationen/matrizen.tex
@@ -181,7 +181,7 @@ Die Determinante einer solchen Permutationsmatrix ist
Nach der Produktregel für die Determinante folgt für eine Darstellung
der Permutation $\sigma=\tau_1\dots\tau_l$ als Produkt von Transpositionen,
dass
-\[
+\begin{equation}
\det P_{\sigma}
=
\det P_{\tau_1} \dots \det P_{\tau_l}
@@ -189,7 +189,8 @@ dass
(-1)^l
=
\operatorname{sgn}(\sigma).
-\]
+\label{buch:permutationen:determinante}
+\end{equation}
Das Vorzeichen einer Permutation ist also identisch mit der Determinante
der zugehörigen Permutationsmatrix.
diff --git a/buch/chapters/60-gruppen/symmetrien.tex b/buch/chapters/60-gruppen/symmetrien.tex
index 7364c85..aee3b41 100644
--- a/buch/chapters/60-gruppen/symmetrien.tex
+++ b/buch/chapters/60-gruppen/symmetrien.tex
@@ -714,8 +714,8 @@ Kurve so zu definieren, dass dabei Längen und Winkel erhalten bleiben.
Dieser Ansatz ist die Basis der Theorie der Krümmung sogenannter
Riemannscher Mannigfaltigkeiten.
-\subsection{Der Satz von Noether
-\label{buch:subsection:noether}}
+%\subsection{Der Satz von Noether
+%\label{buch:subsection:noether}}
diff --git a/buch/chapters/70-graphen/chapter.tex b/buch/chapters/70-graphen/chapter.tex
index 6def393..530d96c 100644
--- a/buch/chapters/70-graphen/chapter.tex
+++ b/buch/chapters/70-graphen/chapter.tex
@@ -19,7 +19,7 @@ erste Approximation dreidimensionaler Objekte dienen.
Die Bedeutung des Graphenkozeptes wird unterstrichen von der Vielzahl
von Fragestellungen, die über Graphen gestellt, und der
-zugehöriten Lösungsalgorithmen, die zu ihrer Beantwortung gefunden
+zugehörigen Lösungsalgorithmen, die zu ihrer Beantwortung gefunden
worden sind.
Die Komplexitätstheorie hat sogar gezeigt, dass sich jedes diskrete
Problem in ein Graphenproblem umformulieren lässt.
diff --git a/buch/chapters/70-graphen/wavelets.tex b/buch/chapters/70-graphen/wavelets.tex
index ef1520e..8baa88c 100644
--- a/buch/chapters/70-graphen/wavelets.tex
+++ b/buch/chapters/70-graphen/wavelets.tex
@@ -10,7 +10,7 @@ In Abschnitt~\ref{buch:subsection:standardbasis-und-eigenbasis} wurde
gezeigt dass die Standardbasis den Zusammenhang zwischen den einzelnen
Teilen des Graphen völlig ignoriert, während die Eigenbasis Wellen
beschreibt, die mit vergleichbarer Amplitude sich über den ganzen
-Graphen entsprechen.
+Graphen erstrecken.
Die Eigenbasis unterdrückt also die ``Individualität'' der einzelnen
Knoten fast vollständig.
diff --git a/buch/chapters/90-crypto/Makefile.inc b/buch/chapters/90-crypto/Makefile.inc
index 9543ce1..508add5 100644
--- a/buch/chapters/90-crypto/Makefile.inc
+++ b/buch/chapters/90-crypto/Makefile.inc
@@ -8,5 +8,4 @@ CHAPTERFILES = $(CHAPTERFILES) \
chapters/90-crypto/arith.tex \
chapters/90-crypto/ff.tex \
chapters/90-crypto/aes.tex \
- chapters/90-crypto/rs.tex \
chapters/90-crypto/chapter.tex
diff --git a/buch/chapters/90-crypto/arith.tex b/buch/chapters/90-crypto/arith.tex
index dcc31b8..b05110f 100644
--- a/buch/chapters/90-crypto/arith.tex
+++ b/buch/chapters/90-crypto/arith.tex
@@ -91,6 +91,7 @@ Die Berechnung der Quadratwurzel lässt sich in Hardware effizient
implementieren.
\begin{algorithmus}
+\label{buch:crypto:teile-und-hersche}
Der folgende Algorithmus berechnet $a^k$ in $O(\log_2(k))$
Multiplikationen
\begin{enumerate}
diff --git a/buch/chapters/90-crypto/ff.tex b/buch/chapters/90-crypto/ff.tex
index 535b359..a1cb747 100644
--- a/buch/chapters/90-crypto/ff.tex
+++ b/buch/chapters/90-crypto/ff.tex
@@ -7,6 +7,15 @@
\section{Kryptographie und endliche Körper
\label{buch:section:kryptographie-und-endliche-koerper}}
\rhead{Kryptographie und endliche Körper}
+In diesem Abschnitt soll illustriert werden, wie die Arithmetik in
+endlichen Körpern Algorithmen zu konstruieren erlaubt, mit denen sich
+zum Beispiel sehr effizient kryptographische Schlüssel aushandeln
+lassen.
+Der klassische Diffie-Hellmann-Algorithmus in einem Galois-Körper
+$\mathbb{F}_p$ wird in Abschnitt~\ref{buch:subsection:elliptische-kurven}
+verallgemeinert auf eine sogenannte elliptische Kurve.
+Diese Version des Algorithmus ist sehr effizient was die Bitlänge der
+Schlüssel betrifft.
\subsection{Potenzen in $\mathbb{F}_p$ und diskreter Logarithmus
\label{buch:subsection:potenzen-diskreter-logarithmus}}
@@ -439,6 +448,7 @@ Das Polynom ist
\[
p(t)
=
+XXX
\]
Nach Division durch $t(t-1)$ erhält man als den Quotienten
\begin{align*}
@@ -652,13 +662,44 @@ Diese Operationen machen $E_{a,b}(\mathbb{F}_{p^l})$ zu einer endlichen
abelschen Gruppe.
\end{satz}
-\subsubsection{Beispiele}
-% XXX
-TODO: elliptische Kurven in IPsec: Oakley Gruppen
-
\subsubsection{Diffie-Hellman in einer elliptischen Kurve}
-% XXX
-TODO: $g^x$ in einer elliptischen Kurve
+Der klassische Diffie-Hellmann-Schlüsselalgorithmus in einem Körper
+$\mathbb{F}_p$ basiert darauf, dass man beliebige Potenzen eines
+Elementes berechnen kann, und dass es schwierig ist, diese Operation
+umzukehren.
+Die Addition in $\mathbb{F}_p$ wird für diesen Algorithmus überhaupt
+nicht benötigt.
+
+In einer elliptischen Kurve gibt es ebenfalls eine Multiplikation,
+aus der sich mit dem
+Algorithmus~\ref{buch:crypto:teile-und-hersche} eine effizienter
+Potenzieralgorithmus konstruieren lässt.
+
+Die im Internet Key Exchange Protokol
+in RFC 2409
+\cite{buch:rfc2409}
+definierte Oakley-Gruppe 4
+zum Beispiel verwendet einen Galois-Körper $\mathbb{F}_{2^{185}}$
+mit dem Minimalpolynom $m(x)=x^{185}+x^{69}+1\in \mathbb{F}_2[x]$
+und den Koeffizienten
+\begin{align*}
+a&=0\\
+b&=x^{12}+x^{11} + x^{10} + x^9 + x^7 + x^6 + x^5 + x^3 +1,
+\end{align*}
+die die elliptische Kurve definieren.
+
+Als Elemente $g$ für den Diffie-Hellmann-Algorithmus wird ein Punkt
+der elliptischen Kurve verwendet, dessen $X$-Koordinaten durch das
+Polynom $g_x = x^4+x^3$ gegeben ist.
+Der Standard spezifiziert die $Y$-Koordinate nicht, diese kann aus
+den gegebenen Daten abgeleitet werden.
+Die entstehende Gruppe hat etwa $4.9040\cdot10^{55}$ Elemente, die
+für einen brute-force-Angriff durchprobiert werden müssten.
+
+
+
+
+
diff --git a/buch/chapters/90-crypto/rs.tex b/buch/chapters/90-crypto/rs.tex
deleted file mode 100644
index ec8ec8c..0000000
--- a/buch/chapters/90-crypto/rs.tex
+++ /dev/null
@@ -1,41 +0,0 @@
-%
-% rs.tex -- Reed-Solomon-Code
-%
-% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil
-%
-\section{Fehlerkorrigierende Codes nach Reed-Solomon
-\label{buch:section:reed-solomon}}
-\rhead{Fehlerkorrigierende Codes}
-Jede Art von Datenübertragung muss sich mit dem Problem der Fehler befassen,
-die auf dem Übertragungskanal entstehen können.
-Die einfachste Lösung dieses Problem versucht, Fehler zu erkennen und
-dann eine erneute Übermittelung zu veranlassen.
-Dies ist zum Beispiel bei der Datenübertragung von einer Raumsonde
-wie Voyager~1 nicht möglich, die Signallaufzeit von der Sonde und wieder
-zurück ist über 40 Stunden.
-Es ist auch nicht sinnvoll beim Lesen eines optischen Mediums wie einer
-CD oder DVD, wenn ein Fehler durch eine Beschädigung der Oberfläche
-des Mediums verursacht wird.
-Erneutes Lesen würde das Resultat auch nicht ändern.
-Es wird also eine Möglichkeit gesucht, die Daten so zu codieren, dass
-ein Fehler nicht nur erkannt sondern auch korrigiert werden kann.
-
-In diesem Abschnitt werden die algebraisch besonders interessanten
-Reed-Solmon-Codes beschrieben.
-Ihren ersten Einsatz hatten Sie bei den Voyager-Raumsonden, die 1977
-gestartet wurden.
-Sie befinden sich im Moment in einer Entfernung von
-Zum ersten mal kommerziell verwendet wurden sie für die optischen
-Medien CD und DVD.
-
-% https://www.youtube.com/watch?v=uOLW43OIZJ0
-% https://www.youtube.com/watch?v=4BfCmZgOKP8
-
-\subsection{Was ist ein Code?
-\label{buch:subsection:was-ist-ein-code}}
-
-\subsection{Reed-Solomon-Code
-\label{buch:subsection:reed-solomon-code}}
-
-\subsection{Decodierung
-\label{buch:subsection:decodierung}}
diff --git a/buch/chapters/95-homologie/Makefile.inc b/buch/chapters/95-homologie/Makefile.inc
index 7e6f1e7..3b2b50c 100644
--- a/buch/chapters/95-homologie/Makefile.inc
+++ b/buch/chapters/95-homologie/Makefile.inc
@@ -8,8 +8,11 @@ CHAPTERFILES = $(CHAPTERFILES) \
chapters/95-homologie/simplex.tex \
chapters/95-homologie/komplex.tex \
chapters/95-homologie/homologie.tex \
- chapters/95-homologie/mayervietoris.tex \
+ chapters/95-homologie/homologieketten.tex \
+ chapters/95-homologie/basiswahl.tex \
chapters/95-homologie/fixpunkte.tex \
+ chapters/95-homologie/eulerchar.tex \
+ chapters/95-homologie/induzierteabb.tex \
chapters/95-homologie/chapter.tex
diff --git a/buch/chapters/95-homologie/basiswahl.tex b/buch/chapters/95-homologie/basiswahl.tex
new file mode 100644
index 0000000..aacfa9f
--- /dev/null
+++ b/buch/chapters/95-homologie/basiswahl.tex
@@ -0,0 +1,817 @@
+\subsection{Basiswahl
+\label{buch:subsection:basiswahl}}
+Die Definition der Homologiegruppen $H_k(C)$ als Quotient von
+Vektorräumen ist ziemlich abstrakt.
+Sie besteht aus Klassen von Zyklen, die sich höchstens um einen
+Rand unterscheiden.
+Indem wir eine geeignete Basis wählen, können wir konkrete Zyklen
+identifizieren, die eine Basis für den Vektorraum $H_k(C)$ bilden.
+Dies soll im Folgenden schrittweise durchgeführt werden.
+
+\begin{figure}
+\centering
+\includegraphics{chapters/95-homologie/images/gausshomoex.pdf}
+\caption{Beispiel für die Berechnung von Basisvektoren und Homologieklassen
+mit Hilfe des Gauss-Algorithmus
+\label{buch:homologie:fig:gausshomoex}}
+\end{figure}
+
+\subsubsection{Basis von $Z_k(C)$}
+Um eine Basis für $H_k(C)$ zu konstruieren, ist es zunächst nötig,
+eine Basis der Zyklen $Z_k(C)$ zu bestimmen.
+Ausgehend von einer beliebigen Basis der $C_k$ und einer
+zugehörigen Darstellung des Randoperators $\partial_k$ als
+Matrix, kann eine Basis von Zyklen mit Hilfe des Gauss-Algorithmus
+gefunden werden.
+Wir bezeichnen die Menge dieser Zyklen mit
+\[
+\mathcal{Z}_k
+=
+\{
+z_1^{(k)},
+z_2^{(k)},
+\dots,
+z_l^{(k)}
+\}.
+\]
+$\mathcal{Z}_k$ erzeugt den $l$-dimensionalen Vektorraum $Z_k(C)$.
+
+\begin{beispiel}
+\label{buch:homologie:beispiel:gausshomo}
+In Abbildung~\ref{buch:homologie:fig:gausshomoex} ist ein Polyeder
+dargestellt, dessen Homologiegruppe $H_1$ berechnet werden soll.
+Um eine Basis für die Zyklen zu berechnen, wird zunächst die Matrix
+des Randoperators $\partial_1$ aufgestellt.
+Sie ist
+\[
+\setcounter{MaxMatrixCols}{27}
+\partial_1
+=
+\footnotesize
+\setlength\arraycolsep{2pt}
+\begin{pmatrix*}[r]
+%1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
+-1& 0& 0& 0&-1& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0\\ % 1
+ 1&-1& 0& 0& 0&-1& 1& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0\\ % 2
+ 0& 1&-1& 0& 0& 0& 0&-1& 1& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0\\ % 3
+ 0& 0& 1&-1& 0& 0& 0& 0& 0&-1& 1& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0\\ % 4
+ 0& 0& 0& 1& 0& 0& 0& 0& 0& 0& 0&-1& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0\\ % 5
+ 0& 0& 0& 0& 1& 1& 0& 0& 0& 0& 0& 0&-1& 0& 1& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0\\ % 6
+ 0& 0& 0& 0& 0& 0&-1& 1& 0& 0& 0& 0& 1& 0& 0&-1& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0\\ % 7
+ 0& 0& 0& 0& 0& 0& 0& 0&-1& 1& 0& 0& 0&-1& 0& 0& 1& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0\\ % 8
+ 0& 0& 0& 0& 0& 0& 0& 0& 0& 0&-1& 1& 0& 1& 0& 0& 0&-1& 0& 0& 0& 0& 0& 0& 0& 0& 0\\ % 9
+ 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0&-1& 1& 0& 0&-1& 0& 1& 0& 0& 0& 0& 0& 0\\ %10
+ 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 1&-1& 0&-1& 1& 0& 0& 0& 0\\ %11
+ 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0&-1& 1& 0& 1& 0& 0& 0&-1& 0& 0& 0\\ %12
+ 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0&-1& 1& 0& 0&-1& 1& 0\\ %13
+ 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0&-1& 1& 1& 0&-1\\ %14
+ 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0&-1& 1\\ %15
+\end{pmatrix*}
+\]
+Die reduzierte Zeilenstufenform von $\partial_1$ ist
+(Pivotpositionen in {\color{red}rot}, frei wählbare Variablen
+in {\color{darkgreen}grün})
+\begin{center}
+%\tiny
+\scriptsize
+%\footnotesize
+\setlength\tabcolsep{3pt}
+\begin{tabular}{|>{$}r<{$}|>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}|}
+\hline
+ & 1& 2& 3& 4& 5&{\color{darkgreen}6}& 7&{\color{darkgreen}8}& 9&{\color{darkgreen}10}&11&{\color{darkgreen}12}&{\color{darkgreen}13}&{\color{darkgreen}14}&15&{\color{darkgreen}16}&17&{\color{darkgreen}18}&19&{\color{darkgreen}20}&21&{\color{darkgreen}22}&23&{\color{darkgreen}24}&{\color{darkgreen}25}&26&{\color{darkgreen}27}\\
+\hline
+ 1&\phantom{-}{\color{red}1}& 0& 0& 0& 0&-1& 0& 0& 0& 0& 0& 0& 1& 0& 0&-1& 0& 0& 0& 1& 0& 0& 0&-1& 0& 0& 0\\
+ 2& 0&\phantom{-}{\color{red}1}& 0& 0& 0& 0& 0&-1& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 1& 0& 0& 0&-1& 0& 0& 0\\
+ 3& 0& 0&\phantom{-}{\color{red}1}& 0& 0& 0& 0& 0& 0&-1& 0& 0& 0& 1& 0& 0& 0&-1& 0& 0& 0& 0& 0& 0& 0& 0& 0\\
+ 4& 0& 0& 0&\phantom{-}{\color{red}1}& 0& 0& 0& 0& 0& 0& 0&-1& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0\\
+ 5& 0& 0& 0& 0&\phantom{-}{\color{red}1}&-1& 0& 0& 0& 0& 0& 0& 1& 0& 0&-1& 0& 0& 0& 1& 0& 0& 0&-1& 0& 0& 0\\
+ 6& 0& 0& 0& 0& 0& 0&\phantom{-}{\color{red}1}&-1& 0& 0& 0& 0&-1& 0& 0& 1& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0\\
+ 7& 0& 0& 0& 0& 0& 0& 0& 0&\phantom{-}{\color{red}1}&-1& 0& 0& 0& 1& 0& 0& 0&-1& 0&-1& 0& 0& 0& 1& 0& 0& 0\\
+ 8& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0&\phantom{-}{\color{red}1}&-1& 0&-1& 0& 0& 0& 1& 0& 0& 0& 0& 0& 0& 0& 0& 0\\
+ 9& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0&\phantom{-}{\color{red}1}&-1& 0& 0& 0& 1& 0& 0& 0&-1& 0& 0& 0\\
+10& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0&\phantom{-}{\color{red}1}&-1& 0&-1& 0& 0& 0& 1& 0& 0& 0\\
+11& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0&\phantom{-}{\color{red}1}&-1& 0&-1& 0& 1& 1& 0&-1\\
+12& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0&\phantom{-}{\color{red}1}&-1& 0& 0& 1& 0&-1\\
+13& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0&\phantom{-}{\color{red}1}&-1&-1& 0& 1\\
+14& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0&\phantom{-}{\color{red}1}&-1\\
+15& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0\\
+\hline
+\end{tabular}.
+\end{center}
+Daraus kann man die Zyklen wie folgt ablesen, indem man jeweils
+genau eine frei wählbare Variable auf $1$ setzt:
+\begin{align*}
+z_1
+&=
+\tiny
+\begin{pmatrix*}[r]
+\phantom{-}
+ 1\\
+ 0\\
+ 0\\
+ 0\\
+ 1\\
+ 1\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0
+\end{pmatrix*},
+&z_2
+&=
+\tiny
+\begin{pmatrix*}[r]
+\phantom{-}
+ 0\\
+ 1\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 1\\
+ 1\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0
+\end{pmatrix*},
+&z_3
+&=
+\tiny
+\begin{pmatrix*}[r]
+\phantom{-}
+ 0\\
+ 0\\
+ 1\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 1\\
+ 1\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0
+\end{pmatrix*},
+&z_4 % variable 12 = 1
+&=
+\tiny
+\begin{pmatrix*}[r]
+\phantom{-}
+ 0\\
+ 0\\
+ 0\\
+ 1\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 1\\
+ 1\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0
+\end{pmatrix*},
+&z_5 % variable 13 = 1
+&=
+\tiny
+\begin{pmatrix*}[r]
+-1\\
+ 0\\
+ 0\\
+ 0\\
+-1\\
+ 0\\
+ 1\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 1\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0
+\end{pmatrix*},
+&z_6 % variable 14 = 1
+&=
+\tiny
+\begin{pmatrix*}[r]
+ 0\\
+ 0\\
+-1\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+-1\\
+ 0\\
+ 1\\
+ 0\\
+ 0\\
+ 1\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0
+\end{pmatrix*},
+&z_7 % variable 16 = 1
+&=
+\tiny
+\begin{pmatrix*}[r]
+ 1\\
+ 0\\
+ 0\\
+ 0\\
+ 1\\
+ 0\\
+-1\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 1\\
+ 1\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0
+\end{pmatrix*},\\
+z_8 % variable 18 = 1
+&=
+\tiny
+\begin{pmatrix*}[r]
+ 0\\
+ 0\\
+ 1\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 1\\
+ 0\\
+-1\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 1\\
+ 1\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0
+\end{pmatrix*},
+&z_9 % variable 20 = 1
+&=
+\tiny
+\begin{pmatrix*}[r]
+-1\\
+-1\\
+ 0\\
+ 0\\
+-1\\
+ 0\\
+ 0\\
+ 0\\
+ 1\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+-1\\
+ 0\\
+ 1\\
+ 0\\
+ 1\\
+ 1\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0
+\end{pmatrix*},
+&z_{10} % variable 22 = 1
+&=
+\tiny
+\begin{pmatrix*}[r]
+\phantom{-}
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\ %5
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\ %10
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\ %15
+ 0\\
+ 0\\
+ 0\\
+ 1\\
+ 0\\ %20
+ 1\\
+ 1\\
+ 0\\
+ 0\\
+ 0\\ %25
+ 0\\
+ 0
+\end{pmatrix*},
+&z_{11} % variable 24 = 1
+&=
+\tiny
+\begin{pmatrix*}[r]
+ 1\\
+ 1\\
+ 0\\
+ 0\\
+ 1\\ %5
+ 0\\
+ 0\\
+ 0\\
+-1\\
+ 0\\ %10
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 1\\ %15
+ 0\\
+-1\\
+ 0\\
+-1\\
+ 0\\ %20
+ 0\\
+ 0\\
+ 1\\
+ 1\\
+ 0\\ %25
+ 0\\
+ 0
+\end{pmatrix*},
+&z_{12} % variable 25 = 1
+&=
+\tiny
+\begin{pmatrix*}[r]
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\ %10
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\ %15
+ 0\\
+ 0\\
+ 0\\
+-1\\
+ 0\\ %20
+-1\\
+ 0\\
+ 1\\
+ 0\\
+ 1\\ %25
+ 0\\
+ 0
+\end{pmatrix*},
+&z_{13} % variable 27 = 1
+&=
+\tiny
+\begin{pmatrix*}[r]
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 0\\
+ 1\\
+ 0\\ %20
+ 1\\
+ 0\\
+-1\\
+ 0\\
+ 0\\ %25
+ 1\\
+ 1
+\end{pmatrix*}
+\end{align*}
+\begin{figure}
+\centering
+\includegraphics{chapters/95-homologie/images/homocycles.pdf}
+\caption{Zyklen des Randoperators $\partial_1$ im Beispiel von
+Seite~\pageref{buch:homologie:beispiel:gausshomo}.
+\label{buch:homologie:fig:homocycles}}
+\end{figure}%
+Die Zyklen sind in Abbildung~\ref{buch:homologie:fig:homocycles} {\color{red}rot} dargestellt.
+\end{beispiel}
+
+\subsubsection{Basis für $B_k(C)$}
+Da $B_k(C)\subset Z_k(C)$ gilt, lässt sich für jedes $c_{k+1}\in C_{k+1}$
+der Rand $\partial_{k+1}c_{k+1}$ als Linearkombination der im
+vorangegangenen Schritt gefundenen Basiszyklen finden.
+Wir können also aus der Standardbasis $e^{(k+1)}_i\in C_{k+1}$ eine Menge
+von Vektoren $\partial_{k+1}e^{(k+1)}_i$ gewinnen, die mit Sicherheit
+ganz $B_k(C)$ aufspannen.
+Es ist aber davon auszugehen, dass diese Vektoren nicht linear unabhängig
+sind.
+Es ist also nötig, eine Teilmenge
+\[
+\mathcal{B}_k
+=
+\{
+\partial_{k+1}e^{(k+1)}_{i_1},
+\partial_{k+1}e^{(k+1)}_{i_2},
+\dots,
+\partial_{k+1}e^{(k+1)}_{i_m}
+\}
+\]
+von Vektoren auszuwählen, die linear
+unabhängig sind.
+Diese bilden eine Basis von $B_k(C)$.
+
+\begin{figure}
+\centering
+\includegraphics{chapters/95-homologie/images/homoboundaries.pdf}
+\caption{Die Ränder $\partial_2e_i^{(2)}$ für das Beispiel von
+Seite~\pageref{buch:homologie:beispiel:gausshomo}.
+Die grauen Dreiecke bilden die Standardbasis $e_i^{(2)}$ von $C_2$,
+die blauen Dreiecke sind die Ränder $\partial_2e_i^{(2)}$ dieser
+Dreiecke.
+\label{buch:homologie:fig:homoboundaries}}
+\end{figure}
+
+Aus den Abbildungen~\ref{buch:homologie:fig:homocycles} und
+\ref{buch:homologie:fig:homoboundaries} kann man auch ablesen,
+wie die Ränder $\partial_2e_i^{(2)}$ aus den Zyklen von $\mathcal{Z}_1$
+linear kombiniert werden können.
+Man erhält so die Beziehungen
+\begin{equation}
+\setcounter{MaxMatrixCols}{29}
+\setlength\arraycolsep{1pt}
+\begin{array}{lcrcrcrcrcrcrcrcrcrcrcrcrcr}
+\partial_2e_1^{(2)} &=&z_1& & & & & & & & & & & & & & & & & & & & & & & & \\
+\partial_2e_2^{(2)} &=& & &z_2& & & & & & & & & & & & & & & & & & & & & & \\
+\partial_2e_3^{(2)} &=& & & & &z_3& & & & & & & & & & & & & & & & & & & & \\
+\partial_2e_4^{(2)} &=& & & & & & &z_4& & & & & & & & & & & & & & & & & & \\
+\partial_2e_5^{(2)} &=& & & & & & & & &z_5& & &+&z_7& & & & & & & & & & & & \\
+\partial_2e_6^{(2)} &=& & & & & & & & & & &z_6& & &+&z_8& & & & & & & & & & \\
+\partial_2e_7^{(2)} &=& & & & & & & & & & & & & & & & & & &z_{10}& & & & & & \\
+\partial_2e_8^{(2)} &=& & & & & & & & & & & & & & & & & & & & &z_{11}& & & & \\
+\partial_2e_9^{(2)} &=& &\phantom{+}& &\phantom{+} & &\phantom{+} & &\phantom{+} & &\phantom{+} & &\phantom{+} & &\phantom{+} & &\phantom{+} & &\phantom{+} & &\phantom{+} & & &z_{12}&+&z_{13}
+\end{array}
+\end{equation}
+Dies reicht jedoch nicht, um herauszufinden, welche der blauen Dreiecke
+linear unabhängig sind.
+Im vorliegenden Fall ist dies einfach: jedes blaue Dreieck besteht aus
+Kanten, die in keinem anderen blauen Dreieck vorkommen, daher müssen
+sie alle linear unabhängig sein.
+
+\begin{figure}
+\centering
+\includegraphics{chapters/95-homologie/images/gausshomobasis.pdf}
+\caption{Bestimmung einer Basis für die Homologiegruppe $H_k(C)$ mit
+Hilfe der Vorwärtsreduktion des Gaussalgorithmus.
+Die schwarzen Nullzeilen zeigen an, welche Zeilenvektoren zusammen mit
+den darüberliegenden Vektoren nicht linear unabhängig sind und damit nicht
+in Frage kommen für die besuchte Basis.
+Übrig bleiben die {\color{red}rot} und {\color{darkgreen}grün} hervorgehobenen
+Vektoren.
+\label{buch:homologie:fig:gausshomobasis}}
+\end{figure}
+
+Diese Auswahl lässt sich sehr leicht mit Hilfe der folgenden
+Variante des Gauss-Algorithmus realisieren.
+Dazu werden die $n_{k+1}$ Zeilen Gauss-Tableau zunächst mit den Vektoren
+$\partial_{k+1}{e_i^{(k+1)}}^t$ gefüllt.
+Führt man in diesem Tableau die Vorwärtsreduktion durch, wobei man
+entstehende Nullzeilen einfach überspringt, bleiben nur noch Zeilen
+übrig, die linear unabhängig sind.
+Diese Zeilen entsprechen den linear unabhängigen Vektoren von $\mathcal{B}_k$,
+die Zeilennummern sind $i_1,i_2,\dots,i_m$.
+Dieses Vorgehen ist schematisch im oberen Teil der
+Abbildung~\ref{buch:homologie:fig:gausshomobasis} dargestellt.
+
+\subsubsection{Basis für die Homologiegruppe $H_k(C)$}
+Um eine Basis von $H_k(C)$ zu konstruieren, müssen wir jetzt eine
+Basis von Zyklen finden, die sich nicht nur um einen Rand unterscheiden,
+die also zu verschiedenen Homologie-Klassen in $H_k(C)$ gehören.
+Gesucht sind jetzt also Vektoren $\mathcal{Z}'_k$ derart, dass
+die Vektoren von $\mathcal{Z}'_k\cup\mathcal{B}_k$ immer noch $Z_k(C)$
+aufspannen, aber zusätzlich linear unabhängig sind.
+
+Dazu kann man wie folgt vorgehen.
+\begin{enumerate}
+\item
+Man beginnt mit $\mathcal{D}_0=\emptyset$ und setzt $j=0$.
+\item
+Dann testet man der Reihe nach alle noch nicht getesteten Vektoren
+von $z_i^{(k)}\in\mathcal{Z}_k$ daraufhin, ob sie von den Vektoren
+$\mathcal{B}_k\cup \mathcal{D}_j$ linear unabhängig sind.
+Wenn ja, bildet man $\mathcal{D}_{j+1} = \mathcal{D}\cup\{z^{(k)}_i\}$ und
+setzt $j=1$.
+Andernfalls ignoriert man $z^{(k)}_i$.
+\item
+Schritt 2 wird wiederholt, bis man alle Vektoren von $\mathcal{Z}_k$
+getestet hat.
+Die gesuchte Basis setzt sich zusammen aus $\mathcal{B}_k$ und
+$\mathcal{D}_l$,
+also
+$
+\mathcal{Z}_k'
+=
+\mathcal{B}_k
+\cup
+\mathcal{D}_l.
+$
+\end{enumerate}
+
+Dieser Algorithmus kann ebenfalls mit der oben angesprochenen Variante
+des Gauss-Algorithmus durchgeführt werden.
+Dazu werden die Zeilen $n_k+1$ bis $n_k+1+|\mathcal{Z}_k|$ mit den
+Vektoren $z_i^t$.
+Dann führt man die Vorwärtsreduktion im ganzen Tableau durch, wobei
+man wieder die Nullzeilen stehen lässt.
+Nullzeilen zeigen wieder Vektoren an, die sich linear durch die darüber
+liegenden Vektoren ausdrücken lassen.
+Die auszuwählenden Vektoren sind daher genau diejenigen, die für
+$\mathcal{Z}_k'$ ausgewählt werden müssen.
+
+Um den Algorithmus durchzuführen, bilden wir daher das Gauss-Tableau
+in Abbildung~\ref{buch:homologie:beispiel:gausstableau},
+bestehend aus den Vektoren $\partial_2e_i^{(2)}$ in den ersten 9
+Zeilen und den Zyklen $z_1,\dots,z_{13}$ in den folgenden 13 Zeilen.
+Das reduzierte Tableau nach der Vorwärtsreduktion ist in
+Abbildung~\ref{buch:homologie:beispiel:gausstableaureduziert}
+dargestellt, amn erkennt, dass die Zyklen $z_1$ bis $z_4$, $z_7$ und $z_8$,
+$z_9$ und $z_{10}$ sowie $z_{13}$ weggelassen werden müssen.
+Es bleiben die folgenden Zyklen:
+\begin{center}
+\begin{tabular}{>{$}l<{$}l}
+\text{Zyklus}&Eigenschaft\\
+\hline
+z_5 &Zyklus umschliesst das kleine weisse Dreieck links unten\\
+z_6 &Zyklus umschliesst das kleine weisse Dreieck rechts unten\\
+z_9 &Zyklus umschliesst das grosse weisse Dreieck\\
+z_{12}&Zyklus umschliesst das kleine weisse Dreicke oben\\
+\hline
+\end{tabular}
+\end{center}
+Die Zyklen, die nach der Reduktion übrig bleiben, sind in
+Abbildung~\ref{buch:homologie:beispiel:homoclasses} zusammengestellt.
+Jede solche Klasse entspricht genau einem der ``Löcher'', der weissen
+Dreiecke.
+Die Homologie kann man also als eine exakte Version der Idee eines
+Vektorraums erzeugt von den ``Löchern'' eines Polygons verstehen.
+
+\begin{figure}
+\centering
+\setlength\tabcolsep{1pt}
+\begin{tabular}{|>{$}c<{$}|>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}|>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}|>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}|}
+\hline
+&\scriptstyle 1&\scriptstyle 2&\scriptstyle 3&\scriptstyle 4 &\scriptstyle 5
+&\scriptstyle 6 &\scriptstyle 7 &\scriptstyle 8 &\scriptstyle 9 &\scriptstyle 10
+&\scriptstyle 11 &\scriptstyle 12 &\scriptstyle 13 &\scriptstyle 14 &\scriptstyle 15
+&\scriptstyle 16 &\scriptstyle 17 &\scriptstyle 18 &\scriptstyle 19 &\scriptstyle 20
+&\scriptstyle 21 &\scriptstyle 22 &\scriptstyle 23 &\scriptstyle 24 &\scriptstyle 25
+&\scriptstyle 26 &\scriptstyle 27
+\\
+% 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7
+\hline
+\scriptstyle\partial_2e_1^{(2)}& 1& & & & 1&\phantom{-}1& & & & & & & & & & & & & & & & & & & & & \\
+\scriptstyle\partial_2e_2^{(2)}& & 1& & & & & 1&\phantom{-}1& & & & & & & & & & & & & & & & & & & \\
+\scriptstyle\partial_2e_3^{(2)}& & & 1& & & & & &\phantom{-}1&\phantom{-}1& & & & & & & & & & & & & & & & & \\
+\scriptstyle\partial_2e_4^{(2)}& & & &\phantom{-}1& & & & & & & 1&\phantom{-}1& & & & & & & & & & & & & & & \\
+\scriptstyle\partial_2e_5^{(2)}& & & & & & & & & & & & & 1& & 1&\phantom{-}1& & & & & & & & & & & \\
+\scriptstyle\partial_2e_6^{(2)}& & & & & & & & & & & & & &\phantom{-}1& & & 1&\phantom{-}1& & & & & & & & & \\
+\scriptstyle\partial_2e_7^{(2)}& & & & & & & & & & & & & & & & & & & 1& &\phantom{-}1& 1& & & & & \\
+\scriptstyle\partial_2e_8^{(2)}& & & & & & & & & & & & & & & & & & & &\phantom{-}1& & & 1&\phantom{-}1& & & \\
+\scriptstyle\partial_2e_9^{(2)}& & & & & & & & & & & & & & & & & & & & & & & & &\phantom{-}1&\phantom{-}1&\phantom{-}1\\
+\hline
+% 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
+\scriptstyle z_{ 1}& 1& & & & 1& 1& & & & & & & & & & & & & & & & & & & & & \\
+\scriptstyle z_{ 2}& & 1& & & & & 1& 1& & & & & & & & & & & & & & & & & & & \\
+\scriptstyle z_{ 3}& & & 1& & & & & & 1& 1& & & & & & & & & & & & & & & & & \\
+\scriptstyle z_{ 4}& & & & 1& & & & & & & 1& 1& & & & & & & & & & & & & & & \\
+\scriptstyle z_{ 5}&-1& & & &-1& & 1& & & & & & 1& & & & & & & & & & & & & & \\
+\scriptstyle z_{ 6}& & &-1& & & & & &-1& & 1& & & 1& & & & & & & & & & & & & \\
+\scriptstyle z_{ 7}& 1& & & & 1& &-1& & & & & & & & 1& 1& & & & & & & & & & & \\
+\scriptstyle z_{ 8}& & & 1& & & & & & 1& &-1& & & & & & 1& 1& & & & & & & & & \\
+\scriptstyle z_{ 9}&-1&-1& & & 1& & & & 1& & & & & &-1& & 1& 1& 1& & & & & & & & \\
+\scriptstyle z_{10}& & & & & & & & & & & & & & & & & & 1& & 1& 1& & & & & & \\
+\scriptstyle z_{11}& 1& 1& & & 1& & & &-1& & & & & & 1& &-1& &-1& & & & 1& 1& & & \\
+\scriptstyle z_{12}& & & & & & & & & & & & & & & & & & &-1& &-1& & 1& & 1& & \\
+\scriptstyle z_{13}& & & & & & & & & & & & & & & & & & & 1& & 1& &-1& & & 1& 1\\
+\hline
+\end{tabular}
+\caption{Gauss-Tableau für die Bestimmung einer Basis von
+$H_1$ für das Beispiel.
+Die ersten neuen Zeilen bestehen aus den Bildern der
+Basisvektoren von $C_2$.
+Im vorliegenden Fall kann man sofort sehen, dass alle diese
+Zeilen linear unabhängig sind.
+Die folgenden Zeilen sind die Zyklen in $\mathbb{Z}_2$, sie
+sind ebenfalls linear unabhängig.
+Mit Hilfe der Vorwärtsreduktion müssen jetzt diejenigen
+Zeilen elminiert werden, die bereits aus anderen Zyklen
+mit Hilfe von Rändern der Zeilen 1--9 kombiniert werden können.
+\label{buch:homologie:beispiel:gausstableau}}
+\end{figure}
+
+\begin{figure}
+\centering
+\setlength\tabcolsep{1pt}
+\begin{tabular}{|>{$}c<{$}|>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}|>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}|>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}|}
+\hline
+&\scriptstyle 1&\scriptstyle 2&\scriptstyle 3&\scriptstyle 4 &\scriptstyle 5
+&\scriptstyle 6 &\scriptstyle 7 &\scriptstyle 8 &\scriptstyle 9 &\scriptstyle 10
+&\scriptstyle 11 &\scriptstyle 12 &\scriptstyle 13 &\scriptstyle 14 &\scriptstyle 15
+&\scriptstyle 16 &\scriptstyle 17 &\scriptstyle 18 &\scriptstyle 19 &\scriptstyle 20
+&\scriptstyle 21 &\scriptstyle 22 &\scriptstyle 23 &\scriptstyle 24 &\scriptstyle 25
+&\scriptstyle 26 &\scriptstyle 27
+\\
+% 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7
+\hline
+\scriptstyle\partial_2e_1^{(2)}&\phantom{-}1& & & &\phantom{-}1&\phantom{-}1& & & & & & & & & & & & & & & & & & & & & \\
+\scriptstyle\partial_2e_2^{(2)}& &\phantom{-}1& & & & &\phantom{-}1&\phantom{-}1& & & & & & & & & & & & & & & & & & & \\
+\scriptstyle\partial_2e_3^{(2)}& & &\phantom{-}1& & & & & &\phantom{-}1&\phantom{-}1& & & & & & & & & & & & & & & & & \\
+\scriptstyle\partial_2e_4^{(2)}& & & &\phantom{-}1& & & & & & &\phantom{-}1&\phantom{-}1& & & & & & & & & & & & & & & \\
+\scriptstyle\partial_2e_5^{(2)}& & & & & & & & & & & & & 1& & 1&\phantom{-}1& & & & & & & & & & & \\
+\scriptstyle\partial_2e_6^{(2)}& & & & & & & & & & & & & &\phantom{-}1& & & 1&\phantom{-}1& & & & & & & & & \\
+\scriptstyle\partial_2e_7^{(2)}& & & & & & & & & & & & & & & & & & & 1& &\phantom{-}1& 1& & & & & \\
+\scriptstyle\partial_2e_8^{(2)}& & & & & & & & & & & & & & & & & & & &\phantom{-}1& & & 1&\phantom{-}1& & & \\
+\scriptstyle\partial_2e_9^{(2)}& & & & & & & & & & & & & & & & & & & & & & & & &\phantom{-}1&\phantom{-}1&\phantom{-}1\\
+\hline
+% 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
+\scriptstyle z_{ 1}'& & & & & & & & & & & & & & & & & & & & & & & & & & & \\
+\scriptstyle z_{ 2}'& & & & & & & & & & & & & & & & & & & & & & & & & & & \\
+\scriptstyle z_{ 3}'& & & & & & & & & & & & & & & & & & & & & & & & & & & \\
+\scriptstyle z_{ 4}'& & & & & & & & & & & & & & & & & & & & & & & & & & & \\
+\scriptstyle z_{ 5}'& & & & & & 1& 1& & & & & & & &-1&-1& & & & & & & & & & & \\
+\scriptstyle z_{ 6}'& & & & & & & & & & 1& 1& & & & & &-1&-1& & & & & & & & & \\
+\scriptstyle z_{ 7}'& & & & & & & & & & & & & & & & & & & & & & & & & & & \\
+\scriptstyle z_{ 8}'& & & & & & & & & & & & & & & & & & & & & & & & & & & \\
+\scriptstyle z_{ 9}'& & & & & & & & 1& 1& & & & & & & 1& 1& & & &-1&-1&-1&-1& & & \\
+\scriptstyle z_{10}'& & & & & & & & & & & & & & & & & & & & & & & & & & & \\
+\scriptstyle z_{11}'& & & & & & & & & & & & & & & & & & & & & & & & & & & \\
+\scriptstyle z_{12}'& & & & & & & & & & & & & & & & & & & & & & 1& 1& & &-1&-1\\
+\scriptstyle z_{13}'& & & & & & & & & & & & & & & & & & & & & & & & & & & \\
+\hline
+\end{tabular}
+\caption{Nach Durchführung der Vorwärtsreduktion kann man die Zyklen
+ablesen, die nicht für eine Basis von $H_1$ gebraucht werden.
+Die resultierenden Zyklen sind in Abbildung~\ref{buch:homologie:beispiel:homoclasses}
+dargestellt.
+\label{buch:homologie:beispiel:gausstableaureduziert}}
+\end{figure}
+
+\begin{figure}
+\centering
+\includegraphics{chapters/95-homologie/images/homoclasses.pdf}
+\caption{Repräsentanten für die reduzierten Klassen aus dem
+Tableau von
+Abbildung~\ref{buch:homologie:beispiel:gausstableaureduziert},
+sie bilden eine Basis der Homologie-Gruppe $H_1$.
+Jeder dieser Repräsentanten umschliesst genau ein ``Loch'',
+also genau ein weisses Dreieck.
+\label{buch:homologie:beispiel:homoclasses}}
+\end{figure}
+
+\subsubsection{Basis von $H_k(C)$}
+Die im vorangegangenen Abschnitt konstruierte Basis kann jetzt auch
+dazu verwendet werden, eine Basis von $H_k(C)$ zu finden.
+Die Vektoren in $\mathcal{B}_k$ bilden eine Basis von $B_k(C)$
+und die Vektoren in $\mathcal{Z}_k'$ sind davon unabhängig.
+Die Klassen der Vektoren von $\mathcal{Z}_k'$ in $H_k(C)$ sind
+daher ebenfalls linear unabhängig und bilden damit eine Basis
+von $H_k(C)$.
+Die von obigem Algorithmus ausgewählten Zyklen bilden also automatisch
+eine Basis von Zyklen, die nicht Rand irgend einer Kette in $C_{k+1}$
+sein können.
diff --git a/buch/chapters/95-homologie/chapter.tex b/buch/chapters/95-homologie/chapter.tex
index eaa56c4..e25188c 100644
--- a/buch/chapters/95-homologie/chapter.tex
+++ b/buch/chapters/95-homologie/chapter.tex
@@ -3,9 +3,9 @@
%
% (c) 2021 Prof Dr Andreas Müller, Hochschule Rapperswil
%
-\chapter{Homologie
+\chapter{Kettenkomplexe und Homologie
\label{buch:chapter:homologie}}
-\lhead{Homologie}
+\lhead{Kettenkomplexe und Homologie}
\rhead{}
Mit der Inzidenzmatrix war es möglich, einen Graphen zu beschreiben
und verschiedene interessante Eigenschaften desselben zu berechnen.
@@ -35,10 +35,20 @@ Der sogenannte Randoperator ordnet jedem Dreieck, Tetraeder oder allgemein
jedem Simplex seinen Rand zu.
Damit wird es möglich, das Dreieck vom Rand des Dreiecks zu unterschieden.
+Die Verallgemeinerung dieser Idee liefert eine algebraische Konstruktion
+zu jedem topologischen Raum, die sogenannten Homologie-Gruppen.
+Sie formalisieren ein mögliches Konzept der Dimension und der
+Idee von ``Löchern'' in einem topologischen Raum.
+Sie können dabei helfen, die topologische Struktur verschiedener
+Räume zu unterscheiden.
+Das Ziel dieses Kapitels ist nicht, die Homologietheorie
+vollständig zu entwickeln, sondern zu zeigen, wie man Matrizen
+verwenden kann, um konkrete Rechnungen durchzuführen.
+
\input{chapters/95-homologie/simplex.tex}
\input{chapters/95-homologie/komplex.tex}
\input{chapters/95-homologie/homologie.tex}
-\input{chapters/95-homologie/mayervietoris.tex}
+%\input{chapters/95-homologie/mayervietoris.tex}
\input{chapters/95-homologie/fixpunkte.tex}
diff --git a/buch/chapters/95-homologie/eulerchar.tex b/buch/chapters/95-homologie/eulerchar.tex
new file mode 100644
index 0000000..03e389b
--- /dev/null
+++ b/buch/chapters/95-homologie/eulerchar.tex
@@ -0,0 +1,139 @@
+\subsection{Euler-Charakteristik}
+Die Homologiegruppen fassen die Idee, die ``Löcher'' in
+Dimension $k$ eines Polyeders zu zählen, algebraisch exakt.
+Dazu ist aber die algebraische Struktur von $H_k(C)$ gar
+nicht nötig, nur schon die Dimension des Vektorraumes $H_k(C)$
+liefert bereits die verlange Information.
+
+Dies ist auch der Ansatz, den der eulersche Polyedersatz verfolgt.
+Euler hat für dreidimensionale Polyeder eine Invariante gefunden,
+die unabhängig ist von der Triangulation.
+
+\begin{definition}
+\label{buch:homologie:def:eulerchar0}
+Ist $E$ die Anzahl der Ecken, $K$ die Anzahl der Kanten und $F$
+die Anzahl der Flächen eines dreidimensionalen Polyeders $P$, dann
+heisst
+\[
+\chi(P) = E-K+F
+\]
+die {\em Euler-Charakteristik} des Polyeders $P$.
+\end{definition}
+
+Der Eulersche Polyedersatz, den wir nicht gesondert beweisen
+wollen, besagt, dass $\chi(P)$ unabhängig ist von der
+Triangulation.
+Alle regelmässigen Polyeder sind verschiedene Triangulationen
+einer Kugel, sie haben alle den gleichen Wert $2$
+der Euler-Charakteristik.
+
+Ändert man die Triangulation, dann wird die Dimension der
+Vektorräume $B_k(C)$ und $Z_k(C)$ grösser werden.
+Kann man eine Grösse analog zu $\chi(P)$ finden, die sich nicht ändert?
+
+\begin{definition}
+\label{buch:homologie:def:eulerchar}
+Sei $C$ ein Kettenkomplex, dann heisst
+\[
+\chi(C) = \sum_{k=0}^n (-1)^k\dim H_k(C)
+\]
+die Euler-Charakteristik von $C$.
+\end{definition}
+
+Die Summe in Definition~\ref{buch:homologie:def:eulerchar} erstreckt
+sich bis zum Index $n$, der Dimension des Simplexes höchster Dimension
+in einem Polyeder.
+Für $k>n$ ist $H_k(C)=0$, es ändert sich also nichts, wenn wir
+die Summe bis $\infty$ erstrecken, da die zusätzlichen Terme alle
+$0$ sind.
+Wir werden dies im folgenden zur Vereinfachung der Notation tun.
+
+Die Definition verlangt, dass man erst die Homologiegruppen
+berechnen muss, bevor man die Euler-Charakteristik bestimmen
+kann.
+Dies ist aber in vielen Fällen gar nicht nötig, da dies nur
+eine Frage der Dimensionen ist, die man direkt aus den
+$C_k$ ablesen kann, wie wir nun zeigen wollen.
+
+Die Dimension der Homologiegruppen ist
+\begin{equation}
+\dim H_k(C)
+=
+\dim \bigl(Z_k(C) / B_k(C)\bigr)
+=
+\dim Z_k(C) - \dim B_k(C).
+\label{buch:homologie:eqn:dimHk}
+\end{equation}
+Die Bestimmung der Dimensionen der Zyklen und Ränder erfordert
+aber immer noch, dass wir dafür Basen bestimmen müssen, es ist
+also noch nichts eingespart.
+Die Zyklen bilden den Kern von $\partial$, also
+\[
+\dim Z_k(C) = \dim\ker \partial_k.
+\]
+Die Ränder $B_k(C)$ sind die Bilder von $\partial_{k+1}$, also
+\[
+\dim B_k(C)
+=
+\dim C_{k+1} - \ker\partial_{k+1}
+=
+\dim C_{k+1} - \dim Z_{k+1}(C).
+\]
+Daraus kann man jetzt eine Formel für die Euler-Charakteristik
+gewinnen.
+Sie ist
+\begin{align*}
+\chi(C)
+&=
+\sum_{k=0}^\infty (-1)^k \dim H_k(C)
+\\
+&=
+\sum_{k=0}^\infty (-1)^k \bigl(\dim Z_k(C) - \dim B_k(C)\bigr)
+\\
+&=
+\sum_{k=0}^\infty (-1)^k \dim Z_k(C)
+-
+\sum_{k=0}^\infty (-1)^k \bigl(\dim C_{k+1} - \dim_{k+1}(C)\bigr)
+\\
+&=
+-\sum_{k=0}^\infty (-1)^k \dim C_{k+1}
++
+\sum_{k=0}^\infty (-1)^k \dim Z_k(C)
++
+\sum_{k=0}^\infty (-1)^k \dim Z_{k+1}(C).
+\intertext{Indem wir in der letzten Summe den Summationsindex $k$ durch
+$k-1$ ersetzen, können wir bis auf den ersten Term die Summen
+der $\dim Z_k(C)$ zum Verschwinden bringen:}
+&=
+-\sum_{k=0}^\infty (-1)^k \dim C_{k+1}
++
+\sum_{k=0}^\infty (-1)^k \dim Z_k(C)
+-
+\sum_{k=1}^\infty (-1)^k \dim Z_k(C)
+\\
+&=
+\sum_{k=1}^\infty (-1)^k \dim C_{k}
++
+\dim \underbrace{Z_0(C)}_{\displaystyle =C_0}.
+\intertext{In der letzten Umformung haben wir auch in der ersten
+Summe den Summationsindex $k$ durch $k-1$ ersetzt.
+Damit beginnt die Summation bei $k=1$.
+Der fehlende Term ist genau der Term, der von den Summen der
+$\dim Z_k(C)$ übrig bleibt.
+Damit erhalten wir}
+&=
+\sum_{k=0}^\infty (-1)^k \dim C_{k}.
+\end{align*}
+
+\begin{satz}
+Für die Euler-Charakteristik eines endlichdimensionalen Kettenkomplexes $C$ gilt
+\[
+\chi(C)
+=
+\sum_{k=0}^\infty (-1)^k \dim H_k(C)
+=
+\sum_{k=0}^\infty (-1)^k \dim C_k.
+\]
+\end{satz}
+Im nächsten Abschnitt wird gezeigt, dass die Euler-Charakteristik
+als Spezialfall der Lefshetz-Zahl verstanden werden kann.
diff --git a/buch/chapters/95-homologie/fixpunkte.tex b/buch/chapters/95-homologie/fixpunkte.tex
index 1ed51ef..b3b184e 100644
--- a/buch/chapters/95-homologie/fixpunkte.tex
+++ b/buch/chapters/95-homologie/fixpunkte.tex
@@ -11,15 +11,127 @@ selbst gehört die zugehörige lineare Abbildung $f_*\colon H_*(X)\to H_*(X)$
der Homologiegruppen.
Diese linearen Abbildungen sind im Allgemeinen viel einfacher zu
analysieren.
-Zum Beispiel soll in Abschnitt~\ref{buch:subsection:lefshetz}
-die Lefshetz-Spurformel abgeleitet werden, die eine Aussagen darüber
-ermöglicht, ob eine Abbildung einen Fixpunkt haben kann.
-In Abschnitt~\ref{buch:subsection:brower} wird gezeigt wie man damit
-den Browerschen Fixpunktsatz beweisen kann, der besagt, dass jede
-Abbildung eines Einheitsballs in sich selbst immer einen Fixpunkt hat.
-
-\subsection{Lefshetz-Spurformel
-\label{buch:subsection:lefshetz}}
-
-\subsection{Brower-Fixpunktsatz
-\label{buch:subsection:brower}}
+%Zum Beispiel soll in Abschnitt~\ref{buch:subsection:lefshetz}
+%die Lefshetz-Spurformel abgeleitet werden, die eine Aussagen darüber
+%ermöglicht, ob eine Abbildung einen Fixpunkt haben kann.
+%In Abschnitt~\ref{buch:subsection:brower} wird gezeigt wie man damit
+%den Browerschen Fixpunktsatz beweisen kann, der besagt, dass jede
+%Abbildung eines Einheitsballs in sich selbst immer einen Fixpunkt hat.
+
+%\subsection{Brower-Fixpunktsatz
+%\label{buch:subsection:brower}}
+%
+%\begin{satz}[Brower]
+%\end{satz}
+
+%\subsection{Lefshetz-Fixpunktsatz
+%\label{buch:subsection:lefshetz}}
+Eine Selbstabbildung $f_*\colon C_*\to C_*$ von Kettenkomplexen führt auf
+eine Selbstabbiludng der Homologiegruppen $H(f)\colon H(C)\to H(C)$.
+Da sowohl $H_k$ wie auch $C_k$ endlichdimensionale Vektorräume sind,
+ist die Spur von $H_k(f)$ wohldefiniert.
+
+\begin{definition}
+Die {\em Lefshetz-Zahl} einer Abbildung $f$ von Kettenkomplexen ist
+\begin{equation}
+\lambda(f)
+=
+\sum_{k=0}^\infty
+(-1)^k \operatorname{Spur}f_k
+=
+\sum_{k=0}^\infty
+(-1)^k \operatorname{Spur}(H_k(f)).
+\label{buch:homologie:lefschetz-zahl}
+\end{equation}
+\end{definition}
+
+Die zweite Darstellung der Lefshetz-Zahl auf der rechten Seite ist
+meistens viel leichter zu berechnen als die erste.
+Die einzelnen Vektorräume eines Kettenkomplexes können haben typischerweise
+eine hohe Dimension, so hoch wie die Anzahl der Simplizes der Triangulation.
+Die Homologiegruppen dagegen haben typischerweise sehr viel kleinere
+Dimension, die Matrizen $H_k(f)$ sind also relativ klein.
+Es ist aber nicht klar, dass beide Berechnungsmethoden für die
+Lefshetz-Zahl auf das gleiche Resultat führen müssen.
+
+\begin{figure}
+\centering
+\includegraphics[width=\textwidth]{chapters/95-homologie/images/approximation.pdf}
+\caption{Stückweise lineare Approximation einer Abbildung derart,
+dass die Bildpunkt von Knoten auf Gitterpunkte fallen.
+Die Abbildung wird damit zu einer Abbildung von Polyedern und
+die induzierte Abbildung der Kettenkomplexe lässt sich direkt berechnen.
+Wenn die Auflösung des Gitters klein genug ist, hat die Approximation
+einer Abbildung ohne Fixpunkte immer noch keine Fixpunkte.
+\label{buch:homologie:fig:simplapprox}}
+\end{figure}%
+
+\begin{proof}[Beweis]
+Im Abschnitt~\ref{buch:subsection:induzierte-abbildung} wurde gezeigt,
+dass die Basis des Komplexes immer so gewählt werden kann, dass für
+die Spuren der Teilmatrizen von $f_k$ die
+Formel~\eqref{buch:homologie:eqn:spur} gilt.
+Damit kann jetzt die alternierenierden Summe der Spuren von $f_k$ ermittelt
+werden:
+\begin{align*}
+\sum_{k=0}^\infty (-1)^k\operatorname{Spur}(f_k)
+&=
+\sum_{k=0}^\infty (-1)^k\operatorname{Spur}(f_{k,B})
++
+\sum_{k=0}^\infty (-1)^k\operatorname{Spur}(f_{k,Z})
++
+\sum_{k=0}^\infty (-1)^k\operatorname{Spur}(f_{k-1,B})
+\\
+&=
+\sum_{k=0}^\infty (-1)^k\operatorname{Spur}(f_{k,B})
++
+\sum_{k=0}^\infty (-1)^k\operatorname{Spur}(f_{k,Z})
+-
+\sum_{k=0}^\infty (-1)^k\operatorname{Spur}(f_{k,B})
+\\
+&=
+\sum_{k=0}^\infty (-1)^k\operatorname{Spur}(f_{k,Z}).
+\intertext{Die Abbildung $H_k(f)$ hat $f_{k,Z}$ als Matrix, also ist
+die letzte Form gleichbedeutend mit}
+&=
+\sum_{k=0} (-1)^k\operatorname{Spur} H_k(f).
+\end{align*}
+Damit ist die Formel
+\eqref{buch:homologie:lefschetz-zahl}
+bewiesen.
+\end{proof}
+
+Die Lefshetz-Zahl ist eine Invariante einer topologischen Abbildung,
+die Aussagen über Fixpunkte zu machen erlaubt.
+
+\begin{satz}
+Ist $f\colon X\to X$ eine Selbstabbildung eines kompakten Polyeders und
+ist $\lambda(f) \ne 0$, dann hat $f$ einen Fixpunkt.
+\end{satz}
+
+Im Folgenden soll nur ein heuristisches Argument gegeben werden, warum
+ein solcher Satz wahr sein könnte.
+
+
+Wenn eine Abbildung keinen Fixpunkt hat, dann ist $f(x) \ne x$ für alle
+Punkte von $X$.
+Da $X$ kompakt ist, gibt es einen minimalen Abstand $d$ zwischen $f(x)$ und $x$.
+Wenn man also für $X$ eine Triangulation wählt, die wesentlich feiner ist
+als dieser minimale Abstand, dann wird kein Simplex der Triangulation auf
+Punkte im selben Simplex oder in einem Nachbarsimplex abgebildet wird.
+Indem man nötigenfalls die Triangulation nochmals verfeinert, kann man auch
+genügend Platz schaffen, dass man die Abbildung $f$ etwas modifizieren kann,
+so dass auch die deformierte Abbildung immer noch diese Eigenschaft hat.
+Die Abbildung~\ref{buch:homologie:fig:simplapprox} illustriert, wie eine
+Abbildung durch eine andere approximiert werden kann, die die Triangulation
+im Bildraum respektiert.
+
+Die zugehörige Abbildung des Kettenkomplexes der Triangulation hat damit
+die Eigenschaft, dass kein Basisvektor auf sich selbst abgebildet wird.
+Die Matrix der Abbildung hat daher keine Nullen auf der Diagonalen, und
+damit ist auch die Spur dieser Abbildung Null: $\operatorname{Spur}(H_k(f))=0$
+für alle $k$.
+Erst recht ist die Lefshetz-Zahl $\lambda(f)=0$.
+Wenn also die Lefshetz-Zahl verschieden ist von Null, dann muss $f$
+notwendigerweise einen Fixpunkt haben.
+
diff --git a/buch/chapters/95-homologie/homologie.tex b/buch/chapters/95-homologie/homologie.tex
index 2b80a17..747c00f 100644
--- a/buch/chapters/95-homologie/homologie.tex
+++ b/buch/chapters/95-homologie/homologie.tex
@@ -6,13 +6,36 @@
\section{Homologie
\label{buch:section:homologie}}
\rhead{Homologie}
+Die Idee der Trangulation ermöglicht, komplizierte geometrische
+Objekte mit einem einfachen ``Gerüst'' auszustatten und so zu
+analysieren.
+Projiziert man ein mit einer Kugel konzentrisches Tetraeder auf die
+Kugel, entsteht eine Triangulation der Kugeloberfläche.
+Statt eine Kugel zu studieren, kann man also auch ein Tetraeder untersuchen.
-\subsection{Homologie eines Kettenkomplexes
-\label{buch:subsection:homologie-eines-kettenkomplexes}}
+Das Gerüst kann natürlich nicht mehr alle Eigenschaften des ursprünglichen
+Objektes wiedergeben.
+Im Beispiel der Kugel geht die Information darüber, dass es sich um eine
+glatte Mannigfaltigkeit handelt, verloren.
+Was aber bleibt, sind Eigenschaften des Zusammenhangs.
+Wenn sich zwei Punkte mit Wegen verbinden lassen, dann gibt es auch eine
+Triangulation mit eindimensionalen Simplices, die diese Punkte als Ecken
+enthalten, die sich in der Triangulation mit einer Folge von Kanten
+verbinden lassen.
+Algebraisch bedeutet dies, dass die beiden Punkte der Rand eines
+Weges sind.
+Fragen der Verbindbarkeit von Punkten mit Wegen lassen sich also
+dadurch studieren, dass man das geometrische Objekt auf einen Graphen
+reduziert.
-\subsection{Induzierte Abbildung
-\label{buch:subsection:induzierte-abbildung}}
+In diesem Abschnitt soll gezeigt werden, wie diese Idee auf höhere
+Dimensionen ausgedehnt werden.
+Es soll möglich werden, kompliziertere Fragen des Zusammenhangs, zum
+Beispiel das Vorhandensein von Löchern mit algebraischen Mitteln
+zu analysieren.
-\subsection{Homologie eines simplizialen Komplexes
-\label{buch:subsection:simplizialekomplexe}}
+\input{chapters/95-homologie/homologieketten.tex}
+\input{chapters/95-homologie/basiswahl.tex}
+\input{chapters/95-homologie/eulerchar.tex}
+\input{chapters/95-homologie/induzierteabb.tex}
diff --git a/buch/chapters/95-homologie/homologieketten.tex b/buch/chapters/95-homologie/homologieketten.tex
new file mode 100644
index 0000000..1b40147
--- /dev/null
+++ b/buch/chapters/95-homologie/homologieketten.tex
@@ -0,0 +1,286 @@
+%
+% homologieketten.tex
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\subsection{Homologie eines Kettenkomplexes
+\label{buch:subsection:homologie-eines-kettenkomplexes}}
+Wegzusammenhang lässt sich untersuchen, indem man in der Triangulation
+nach Linearkombinationen von Kanten sucht, die als Rand die beiden Punkte
+haben.
+Zwei Punkte sind also nicht verbindbar und liegen damit in verschiedenen
+Komponenten, wenn die beiden Punkte nicht Rand irgend einer
+Linearkombination von Kanten sind.
+Komponenten können also identifiziert werden, indem man unter allen
+Linearkombinationen von Punkten, also $C_0$ all diejenigen ignoriert,
+die Rand einer Linearkombinationv on Kanten sind, also $\partial_1C_1$.
+Der Quotientenraum $H_0=C_0/\partial_1C_1$ enthält also für jede Komponente
+eine Dimension.
+
+Eine Dimension höher könnten wir danach fragen, ob sich ein geschlossener
+Weg zusammenziehen lässt.
+In der Triangulation zeichnet sich ein geschlossener Weg dadurch aus,
+dass jedes Ende einer Kante auch Anfang einer Folgekante ist, dass also
+der Rand der Linearkombination von Kanten 0 ist.
+Algebraisch bedeutet dies, dass wir uns für diejenigen Linearkombinationen
+$z\in C_1$ interessieren, die keinen Rand haben, für die also $\partial_1z=0$
+gilt.
+
+\begin{definition}
+Die Elemente von
+\[
+Z_k
+=
+Z_k^C
+=
+\{z\in C_k\;|\; \partial_k z = 0\}
+=
+\ker \partial_k
+\]
+heissen die {\em ($k$-dimensionalen) Zyklen} von $C_*$.
+\end{definition}
+
+In einem Dreieck ist der Rand ein geschlossener Weg, der sich zusammenziehen
+lässt, indem man ihn durch die Dreiecksfläche deformiert.
+Entfernt man aber die Dreiecksfläche, ist diese Deformation nicht mehr
+möglich.
+Einen zusammenziehbaren Weg kann man sich also als den Rand eines Dreiecks
+einer vorstellen.
+``Löcher'' sind durch geschlossene Wege erkennbar, die nicht Rand eines
+Dreiecks sein können.
+Wir müssen also ``Ränder'' ignorieren.
+
+\begin{definition}
+Die Elemente von
+\[
+B_k
+=
+B_k^C
+=
+\{\partial_{k+1}z\;|\; C_{k+1}\}
+=
+\operatorname{im} \partial_{k+1}
+\]
+heissen die {\em ($k$-dimensionalen) Ränder} von $C_*$.
+\end{definition}
+
+Algebraisch ausgedrückt interessieren uns also nur Zyklen, die selbst
+keine Ränder sind.
+Der Quotientenraum $Z_1/B_1$ ignoriert unter den Zyklen diejenigen, die
+Ränder sind, drückt also algebraisch die Idee des eindimensionalen
+Zusammenhangs aus.
+Wir definieren daher
+
+\begin{definition}
+Die $k$-dimensionale Homologiegruppe des Kettenkomplexes $C_*$ ist
+\[
+H_k(C) = Z_k/B_k = \ker \partial_k / \operatorname{im} \partial_{k+1}.
+\]
+Wenn nur von einem Kettenkomplex die Rede ist, kann auch $H_k(C)=H_k$
+abgekürzt werden.
+\end{definition}
+
+% XXX Visualisierung Zyklen/Ränder, Klassen von Zyklen, die sich um einen
+% XXX Rand unterscheiden
+
+Die folgenden zwei ausführlichen Beispiele sollen zeigen, wie die
+Homologiegruppe $H_2$ die Anwesenheit eines Hohlraumes detektieren kann,
+der entsteht, wenn man aus einem Tetraeder das innere entfernt.
+
+\begin{beispiel}
+\begin{figure}
+\centering
+\includegraphics{chapters/95-homologie/images/tetraeder.pdf}
+\caption{Triangulation eines Tetraeders, die Orientierung von Kanten
+und Seitenflächen ist immer so gewählt, dass die Nummern der Ecken
+aufsteigend sind.
+\label{buch:homologie:tetraeder:fig}}
+\end{figure}
+Ein Tetraeder ist ein zweidmensionales Simplex, wir untersuchen seinen
+Kettenkomplex und bestimmen die zugehörigen Homologiegruppen.
+Zunächst müssen wir die einzelnen Mengen $C_k$ beschreiben und verwenden
+dazu die Bezeichnungen gemäss Abbildung~\ref{buch:homologie:tetraeder:fig}.
+$C_0$ ist der vierdimensionale Raum aufgespannt von den vier Ecken
+$0$, $1$, $2$ und $3$ des Tetraeders.
+$C_1$ ist der sechsdimensionale Vektorraum der Kanten
+\[
+k_0 = [0,1],\quad
+k_1 = [0,2],\quad
+k_2 = [0,3],\quad
+k_3 = [1,2],\quad
+k_4 = [1,3],\quad
+k_5 = [2,3]
+\]
+Der Randoperator $\partial_1$ hat die Matrix
+\[
+\partial_1
+=
+\begin{pmatrix*}[r]
+-1&-1&-1& 0& 0& 0\\
+ 1& 0& 0&-1&-1& 0\\
+ 0& 1& 0& 1& 0&-1\\
+ 0& 0& 1& 0& 1& 1
+\end{pmatrix*}.
+\]
+
+Wir erwarten natürlich, dass sich zwei beliebige Ecken verbinden lassen,
+dass es also nur eine Komponente gibt und dass damit $H_1=\Bbbk$ ist.
+Dazu beachten wir, dass das Bild von $\partial_1$ genau aus den Vektoren
+besteht, deren Komponentensumme $0$ ist.
+Das Bild $B_0$ von $\partial_1$ ist daher die Lösungsmenge der einen
+Gleichung
+\(
+x_0+x_1+x_2+x_3=0.
+\)
+Der Quotientenraum $H_0=Z_0/B_0 = C_0/\operatorname{im}\partial_1$
+ist daher wie erwartet eindimensional.
+
+Wir bestimmen jetzt die Homologiegruppe $H_1$.
+Da sich im Tetraeder jeder geschlossene Weg zusammenziehen lässt,
+erwarten wir $H_1=0$.
+
+Die Menge der Zyklen $Z_1$ wird bestimmt, indem man die Lösungsmenge
+des Gleichungssystems $\partial_1z=0$ bestimmt.
+Der Gauss-Algorithmus für die Matrix $\partial_1$ liefert das
+Schlusstableau
+\[
+\begin{tabular}{|>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}|}
+\hline
+k_0&k_1&k_2&k_3&k_4&k_5\\
+\hline
+ 1& 0& 0& -1& -1& 0\\
+ 0& 1& 0& 1& 0& -1\\
+ 0& 0& 1& 0& 1& 1\\
+ 0& 0& 0& 0& 0& 0\\
+\hline
+\end{tabular}
+\]
+Daraus lassen sich drei linear unabhängig eindimensionale Zyklen ablesen,
+die zu den Lösungsvektoren
+\[
+z_1
+=
+\begin{pmatrix*}[r]
+1\\
+-1\\
+0\\
+1\\
+0\\
+0
+\end{pmatrix*},
+\qquad
+z_2
+=
+\begin{pmatrix*}[r]
+1\\
+0\\
+-1\\
+0\\
+1\\
+0
+\end{pmatrix*},
+\qquad
+z_3
+=
+\begin{pmatrix*}[r]
+0\\
+1\\
+-1\\
+0\\
+0\\
+1
+\end{pmatrix*}
+\]
+gehören.
+
+$C_2$ hat die vier Seitenflächen
+\[
+f_0=[0,1,2],\quad
+f_1=[0,1,3],\quad
+f_2=[0,2,3],\quad
+f_3=[1,2,3]
+\]
+als Basis.
+Der zweidimensionale Randoperator ist die $6\times 4$-Matrix
+\[
+\partial_2
+=
+\begin{pmatrix*}[r]
+ 1& 1& 0& 0\\
+-1& 0& 1& 0\\
+ 0&-1&-1& 0\\
+ 1& 0& 0& 1\\
+ 0& 1& 0&-1\\
+ 0& 0& 1& 1
+\end{pmatrix*}.
+\]
+Man kann leicht nachrechnen, dass $\partial_1\partial_2=0$ ist, wie es
+für einen Kettenkomplex sein muss.
+
+Um nachzurechnen, dass die Homologiegruppe $H_1=0$ ist, müssen wir jetzt
+nachprüfen, ob jeder Zyklus in $Z_1$ auch Bild der Randabbildung $\partial_2$
+ist.
+Die ersten drei Spalten von $\partial_2$ sind genau die drei Zyklen
+$z_1$, $z_2$ und $z_3$.
+Insbesondere lassen sich alle Zyklen als Ränder darstellen, die
+Homologiegruppe $H_1=0$ verschwindet.
+
+Die Zyklen in $C_2$ sind die Lösungen von $\partial_2z=0$.
+Der Gauss-Algorithmus für $\partial_2$ liefert das -Tableau
+\[
+\begin{tabular}{|>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}|}
+\hline
+f_0&f_1&f_2&f_3\\
+\hline
+1&0&0& 1\\
+0&1&0&-1\\
+0&0&1& 1\\
+0&0&0& 0\\
+0&0&0& 0\\
+0&0&0& 0\\
+\hline
+\end{tabular}
+\]
+Daraus liest man ab, dass es genau einen Zyklus nämlich
+\[
+z
+=
+\begin{pmatrix}
+-1\\1\\-1\\1
+\end{pmatrix}
+\]
+$Z_2$ besteht also aus Vielfachen des Vektors $z$.
+
+Da es nur ein zweidimensionales Simplex gibt, ist $C_3$ eindimensional.
+Die Randabbildung $\partial_3$ hat die Matrix
+\[
+\partial_3
+=
+\begin{pmatrix}
+1\\
+-1\\
+1\\
+-1
+\end{pmatrix}.
+\]
+Die Zyklen $Z_2$ und die Ränder $B_2$ bilden also dieselbe Menge, auch
+die Homologie-Gruppe $H_2$ ist $0$.
+
+Da es keine vierdimensionalen Simplizes gibt, ist $B_3=0$.
+Die Zyklen $Z_3$ bestehen aus den Lösungen von $\partial_3w=0$, da
+aber $\partial_3$ injektiv ist, ist $Z_3=0$.
+Daher ist auch $H_3=0$.
+\end{beispiel}
+
+\begin{beispiel}
+Für dieses Beispiel entfernen wir das Innere des Tetraeders, es entsteht
+ein Hohlraum.
+Am Kettenkomplex der Triangulation ändert sich nur, dass $C_3$ jetzt
+nur noch den $0$-Vektor enthält.
+Das Bild $B_2=\operatorname{im}\partial_3$ wird damit auch $0$-dimensional,
+während es im vorigen Beispiel eindimensional war.
+Die einzige Änderung ist also in der Homologiegruppe
+$H_2 = Z_2/B_2 = Z_2 / \{0\} \simeq \Bbbk$.
+Die Homologiegruppe $H_2$ hat jetzt Dimension $1$ und zeigt damit den
+Hohlraum an.
+\end{beispiel}
diff --git a/buch/chapters/95-homologie/hx.m b/buch/chapters/95-homologie/hx.m
new file mode 100644
index 0000000..0003e76
--- /dev/null
+++ b/buch/chapters/95-homologie/hx.m
@@ -0,0 +1,129 @@
+split_long_rows(0)
+
+d = [
+#1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
+-1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; # 1
+ 1,-1, 0, 0, 0,-1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; # 2
+ 0, 1,-1, 0, 0, 0, 0,-1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; # 3
+ 0, 0, 1,-1, 0, 0, 0, 0, 0,-1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; # 4
+ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; # 5
+ 0, 0, 0, 0,-1, 1, 0, 0, 0, 0, 0, 0,-1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; # 6
+ 0, 0, 0, 0, 0, 0,-1, 1, 0, 0, 0, 0, 1, 0, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; # 7
+ 0, 0, 0, 0, 0, 0, 0, 0,-1, 1, 0, 0, 0,-1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; # 8
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1, 1, 0, 1, 0, 0, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0; # 9
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1, 1, 0, 0,-1, 0, 1, 0, 0, 0, 0, 0, 0; # 10
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,-1, 0,-1, 1, 0, 0, 0, 0; # 11
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1, 1, 0, 1, 0, 0, 0,-1, 0, 0, 0; # 12
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1, 1, 0, 0,-1, 1, 0; # 13
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1, 1, 1, 0,-1; # 14
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1, 1 # 15
+]
+
+rref(d)
+
+B = [
+#1 2 3 4 5 6 7 8 9101112131415161718192021222324252627
+ 1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
+ 0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
+ 0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
+ 0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
+ 0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0;
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0;
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0;
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0;
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1
+]';
+
+d*B
+
+Z = [
+#1 2 3 4 5 6 7 8 9 10 11 12 13
+ 1, 0, 0, 0,-1, 0, 1, 0,-1, 0, 1, 0, 0; # 1
+ 0, 1, 0, 0, 0, 0, 0, 0,-1, 0, 1, 0, 0; # 2
+ 0, 0, 1, 0, 0,-1, 0, 1, 0, 0, 0, 0, 0; # 3
+ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0; # 4
+ 1, 0, 0, 0,-1, 0, 1, 0,-1, 0, 1, 0, 0; # 5
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; # 6
+ 0, 1, 0, 0, 1, 0,-1, 0, 0, 0, 0, 0, 0; # 7
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; # 8
+ 0, 0, 1, 0, 0,-1, 0, 1, 1, 0,-1, 0, 0; # 9
+ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; # 10
+ 0, 0, 0, 1, 0, 1, 0,-1, 0, 0, 0, 0, 0; # 11
+ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0; # 12
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0; # 13
+ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0; # 14
+ 0, 0, 0, 0, 0, 0, 1, 0,-1, 0, 1, 0, 0; # 15
+ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0; # 16
+ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,-1, 0, 0; # 17
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0; # 18
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,-1,-1, 1; # 19
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0; # 20
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,-1, 1; # 21
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0; # 22
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,-1; # 23
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0; # 24
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0; # 25
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1; # 26
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 # 27
+]
+
+d * Z
+
+T = zeros(22, 9);
+T(1:9,1:27) = B';
+T(10:22,1:27) = Z';
+
+T
+
+for i = (2:22)
+ T(i,:) = T(i,:) - T(i,1) * T(1,:);
+end
+for i = (3:22)
+ T(i,:) = T(i,:) - T(i,2) * T(2,:);
+end
+for i = (4:22)
+ T(i,:) = T(i,:) - T(i,3) * T(3,:);
+end
+for i = (5:22)
+ T(i,:) = T(i,:) - T(i,4) * T(4,:);
+end
+
+T
+
+for i = (15:22)
+ T(i,:) = T(i,:) - T(i,6) * T(14,:);
+end
+T
+for i = (19:22)
+ T(i,:) = T(i,:) - T(i,8) * T(18,:);
+end
+T
+for i = (16:22)
+ T(i,:) = T(i,:) - T(i,10) * T(15,:);
+end
+T
+for i = (6:22)
+ T(i,:) = T(i,:) - T(i,13) * T(5,:);
+end
+T
+for i = (7:22)
+ T(i,:) = T(i,:) - T(i,14) * T(6,:);
+end
+T
+for i = (8:22)
+ T(i,:) = T(i,:) - T(i,19) * T(7,:);
+end
+T
+for i = (9:22)
+ T(i,:) = T(i,:) - T(i,20) * T(8,:);
+end
+T
+for i = (22:22)
+ T(i,:) = T(i,:) - T(i,22) * T(21,:);
+end
+T
+for i = (10:22)
+ T(i,:) = T(i,:) - T(i,25) * T(9,:);
+end
+#
+T
diff --git a/buch/chapters/95-homologie/images/Makefile b/buch/chapters/95-homologie/images/Makefile
index 82f1285..0a3979e 100644
--- a/buch/chapters/95-homologie/images/Makefile
+++ b/buch/chapters/95-homologie/images/Makefile
@@ -3,8 +3,44 @@
#
# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
#
-all: dreieck.pdf
+all: complexbasis.pdf homocycles.pdf homoboundaries.pdf homoclasses.pdf \
+ gausshomoex.pdf gausshomobasis.pdf dreieck.pdf polyeder.pdf \
+ approximation.pdf tetraeder.pdf
dreieck.pdf: dreieck.tex
pdflatex dreieck.tex
+polyeder.pdf: polyeder.tex
+ pdflatex polyeder.tex
+
+gausshomobasis.pdf: gausshomobasis.tex
+ pdflatex gausshomobasis.tex
+
+gausshomoex.pdf: gausshomoex.tex
+ pdflatex gausshomoex.tex
+
+homocycles.pdf: homocycles.tex
+ pdflatex homocycles.tex
+
+homoboundaries.pdf: homoboundaries.tex
+ pdflatex homoboundaries.tex
+
+homoclasses.pdf: homoclasses.tex
+ pdflatex homoclasses.tex
+
+complexbasis.pdf: complexbasis.tex
+ pdflatex complexbasis.tex
+
+approximation.pdf: approximation.tex approx.tex
+ pdflatex approximation.tex
+
+approx.tex: approx.m
+ octave approx.m
+
+tetraeder.png: tetraeder.pov
+ povray +A0.1 -W1920 -H1080 -O$@ $<
+tetraeder.jpg: tetraeder.png Makefile
+ convert -extract 1080x1080+520 tetraeder.png tetraeder.jpg
+tetraeder.pdf: tetraeder.tex tetraeder.jpg
+ pdflatex tetraeder.tex
+
diff --git a/buch/chapters/95-homologie/images/approx.m b/buch/chapters/95-homologie/images/approx.m
new file mode 100644
index 0000000..0db41c2
--- /dev/null
+++ b/buch/chapters/95-homologie/images/approx.m
@@ -0,0 +1,77 @@
+#
+# approx.m
+#
+# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+#
+x = zeros(7,7);
+y = zeros(7,7);
+
+s = 1.05;
+
+for i = (1:7)
+ winkel = (i-1) * 8.333333 + 20;
+ for j = (1:7)
+ radius = (j-1) * 0.5 + 3;
+ x(i,j) = 1.05 * radius * cosd(winkel);
+ y(i,j) = 1.05 * radius * sind(winkel);
+ endfor
+endfor
+
+X = x;
+Y = y;
+for i = (1:7)
+ for j = (1:7)
+ X(i,j) = round(2 * x(i,j)) / 2;
+ Y(i,j) = round(2 * y(i,j)) / 2;
+ endfor
+endfor
+
+fn = fopen("approx.tex", "w");
+
+
+for i = (1:6)
+ for j = (1:6)
+ winkel = (i-1+0.6666) * 8.33333 + 20;
+ radius = (j-1+0.3333) * 0.5 + 3;
+ fprintf(fn, "\\definecolor{mycolor}{rgb}{%.2f,%.2f,%.2f};\n",
+ (winkel - 20) / 50, 0.8, (radius-3)/3);
+ fprintf(fn, "\\fill[color=mycolor] (%.3f,%.3f) -- (%.3f,%.3f) -- (%.3f,%.3f) -- cycle;\n",
+ X(i,j), Y(i,j),
+ X(i+1,j+1), Y(i+1,j+1),
+ X(i+1,j), Y(i+1,j));
+ winkel = (i-1+0.3333) * 8.33333 + 20;
+ radius = (j-1+0.6666) * 0.5 + 3;
+ fprintf(fn, "\\definecolor{mycolor}{rgb}{%.2f,%.2f,%.2f};\n",
+ (winkel - 20) / 50, 0.8, (radius-3)/3);
+ fprintf(fn, "\\fill[color=mycolor] (%.3f,%.3f) -- (%.3f,%.3f) -- (%.3f,%.3f) -- cycle;\n",
+ X(i,j), Y(i,j),
+ X(i,j+1), Y(i,j+1),
+ X(i+1,j+1), Y(i+1,j+1));
+ endfor
+endfor
+
+linewidth = 0.4;
+
+fprintf(fn, "\\gitter\n");
+
+for i = (1:7)
+ for j = (1:6)
+ fprintf(fn, "\\draw[color=darkred,line width=%.1fpt] (%.3f,%.3f) -- (%.3f,%.3f);\n", linewidth,
+ X(i,j), Y(i,j), X(i,j+1), Y(i,j+1));
+ endfor
+endfor
+for i = (1:6)
+ for j = (1:7)
+ fprintf(fn, "\\draw[color=darkred,line width=%.1fpt] (%.3f,%.3f) -- (%.3f,%.3f);\n", linewidth,
+ X(i,j), Y(i,j), X(i+1,j), Y(i+1,j));
+ endfor
+endfor
+for i = (1:6)
+ for j = (1:6)
+ fprintf(fn, "\\draw[color=darkred,line width=%.1fpt] (%.3f,%.3f) -- (%.3f,%.3f);\n", linewidth,
+ X(i,j), Y(i,j), X(i+1,j+1), Y(i+1,j+1));
+ endfor
+endfor
+
+fclose(fn)
+
diff --git a/buch/chapters/95-homologie/images/approximation.pdf b/buch/chapters/95-homologie/images/approximation.pdf
new file mode 100644
index 0000000..8bdd2e7
--- /dev/null
+++ b/buch/chapters/95-homologie/images/approximation.pdf
Binary files differ
diff --git a/buch/chapters/95-homologie/images/approximation.tex b/buch/chapters/95-homologie/images/approximation.tex
new file mode 100644
index 0000000..042f0e2
--- /dev/null
+++ b/buch/chapters/95-homologie/images/approximation.tex
@@ -0,0 +1,69 @@
+%
+% approximation.tex -- Approximation einer Abbildung durch eine simpliziale
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{amsmath}
+\usepackage{times}
+\usepackage{txfonts}
+\usepackage{pgfplots}
+\usepackage{csvsimple}
+\usetikzlibrary{arrows,intersections,math}
+\begin{document}
+\def\skala{1.3}
+\begin{tikzpicture}[>=latex,thick,scale=\skala]
+
+\definecolor{darkred}{rgb}{0.8,0,0}
+\definecolor{darkred}{rgb}{0,0,0}
+
+\def\gitter{
+ \foreach \x in {1,1.5,...,6}{
+ \draw[color=gray] (\x,1) -- (\x,6);
+ \draw[color=gray] (1,\x) -- (6,\x);
+ }
+}
+
+\def\s{1.05}
+
+\def\colorsector{
+ \foreach \r in {3,3.2,...,5.8}{
+ \foreach \a in {20,...,69}{
+ \pgfmathparse{(\a-20)/50}
+ \xdef\rot{\pgfmathresult}
+ \pgfmathparse{(\r-3)/3}
+ \xdef\blau{\pgfmathresult}
+ \definecolor{mycolor}{rgb}{\rot,0.8,\blau}
+ \fill[color=mycolor]
+ (\a:{\s*\r}) -- (\a:{\s*(\r+0.2)}) -- ({\a+1}:{\s*(\r+0.2)}) -- ({\a+1}:{\s*\r}) -- cycle;
+ }
+ }
+}
+
+\begin{scope}[xshift=0cm]
+\colorsector
+\gitter
+\foreach \r in {3,3.5,...,6.0}{
+ \draw[color=black,line width=0.4pt] (20:{\s*\r}) arc (20:70:{\s*\r});
+}
+\foreach \a in {20,28.3333,...,70}{
+ \draw[color=black,line width=0.4pt] (\a:{\s*3}) -- (\a:{\s*6});
+}
+\begin{scope}
+\clip (20:{\s*3}) -- (20:{\s*6}) arc (20:70:{\s*6}) -- (70:{\s*3});
+\foreach \a in {-5,...,5}{
+ \draw[color=black,line width=0.4pt]
+ plot[domain={20+8.33333*\a}:{70+8.3333*\a},samples=100]
+ (\x:{\s*(3+3*(\x-(20+8.3333*\a))/50)});
+}
+\end{scope}
+
+\end{scope}
+
+\begin{scope}[xshift=5.5cm]
+\input{approx.tex}
+\end{scope}
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/buch/chapters/95-homologie/images/complexbasis.pdf b/buch/chapters/95-homologie/images/complexbasis.pdf
new file mode 100644
index 0000000..9ff6709
--- /dev/null
+++ b/buch/chapters/95-homologie/images/complexbasis.pdf
Binary files differ
diff --git a/buch/chapters/95-homologie/images/complexbasis.tex b/buch/chapters/95-homologie/images/complexbasis.tex
new file mode 100644
index 0000000..bab89d2
--- /dev/null
+++ b/buch/chapters/95-homologie/images/complexbasis.tex
@@ -0,0 +1,158 @@
+%
+% complexbasis.tex -- template for standalon tikz images
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{amsmath}
+\usepackage{times}
+\usepackage{txfonts}
+\usepackage{pgfplots}
+\usepackage{csvsimple}
+\usetikzlibrary{arrows,intersections,math}
+\usetikzlibrary{decorations.pathreplacing}
+\begin{document}
+\def\skala{1}
+\begin{tikzpicture}[>=latex,thick,scale=\skala]
+
+\definecolor{darkgreen}{rgb}{0,0.6,0}
+
+\def\s{0.5}
+\def\h{0.02}
+
+\def\rechteck#1#2#3{
+ \fill[color=#3!20,rounded corners=2pt]
+ ({-\s+\h},{(2*(#1)-1)*\s+\h})
+ rectangle
+ ({\s-\h},{(2*(#2)+1)*\s-\h});
+ \draw[color=#3,rounded corners=2pt]
+ ({-\s+\h},{(2*(#1)-1)*\s+\h})
+ rectangle
+ ({\s-\h},{(2*(#2)+1)*\s-\h});
+ \foreach \y in {{#1},...,{#2}}{
+ \fill[color=#3] (0,{2*\y*\s}) circle[radius=0.05];
+ }
+}
+\def\Rechteck#1#2{
+ \draw[rounded corners=3pt]
+ ({-\s-\h},{(2*(#1)-1)*\s-\h})
+ rectangle
+ ({\s+\h},{(2*(#2)+1)*\s+\h});
+}
+
+\def\abbildung#1#2#3#4{
+ \fill[color=gray!20]
+ ({\s+\h},{(2*(#1)+1)*\s})
+ --
+ ({3.5-\s-\h},{-\s})
+ --
+ ({3.5-\s-\h},{(2*(#3)+1)*\s})
+ --
+ ({\s+\h},{(2*(#1)+1)*\s})
+ --
+ cycle;
+ \fill[color=gray!40]
+ ({\s+\h},{(2*(#1+1)-1)*\s})
+ --
+ ({3.5-\s-\h},{(2*(#3+1)-1)*\s})
+ --
+ ({3.5-\s-\h},{(2*(#4)+1)*\s})
+ --
+ ({\s+\h},{(2*(#2)+1)*\s})
+ --
+ cycle;
+ \draw[<-,color=gray]
+ ({\s+\h},{(2*(#1+1)-1)*\s})
+ --
+ ({3.5-\s-\h},{(2*(#3+1)-1)*\s});
+ \draw[->,color=gray]
+ ({3.5-\s-\h},{(2*(#4)+1)*\s})
+ --
+ ({\s+\h},{(2*(#2)+1)*\s});
+ \draw[<-,color=gray!40]
+ ({\s+\h},{(2*(#1)+1)*\s})
+ --
+ ({3.5-\s-\h},{-\s});
+}
+
+\clip ({-3.5-1.7},-1.2) rectangle ({7+1.7},11.7);
+
+\begin{scope}[xshift=-7cm]
+ \abbildung{6}{7}{10}{11}
+\end{scope}
+
+\begin{scope}[xshift=-3.5cm]
+ \abbildung{6}{10}{7}{11}
+ \rechteck{0}{6}{red}
+ \rechteck{7}{10}{darkgreen}
+ \rechteck{11}{11}{blue}
+ \Rechteck{0}{11}
+ \node[color=darkgreen] at ({0},{(9*2-1)*\s}) {$B_{k-2\mathstrut}$};
+ \node at (1.75,{9*2*\s}) {$\Delta_{k-1}$};
+ \node at (1.75,{-\s}) [above] {$\partial_{k-1\mathstrut}$};
+ \draw[decorate,decoration={brace,amplitude=4pt}]
+ ({-\s-0.1},{-\s}) -- ({-\s-0.1},{(2*10+1)*\s});
+ \node at ({-\s-0.17},{10*\s}) [left] {$Z_{k-2\mathstrut}$};
+ \node at (0,{-\s}) [below] {$C_{k-2\mathstrut}$};
+\end{scope}
+
+\begin{scope}
+ \abbildung{2}{7}{5}{10}
+ \rechteck{8}{11}{blue}
+ \rechteck{3}{7}{darkgreen}
+ \rechteck{0}{2}{red}
+ \Rechteck{0}{11}
+ \node at (0,{-\s}) [below] {$C_{k-1\mathstrut}$};
+ \node[color=darkgreen] at ({0},{(5*2-1)*\s}) {$B_{k-1\mathstrut}$};
+ \node at (1.75,{6.5*2*\s}) {$\Delta_k$};
+ \node at (1.75,{-\s}) [above] {$\partial_{k\mathstrut}$};
+ \draw[decorate,decoration={brace,amplitude=4pt}]
+ ({-\s-0.1},{-\s}) -- ({-\s-0.1},{(2*7+1)*\s});
+ \node at ({-\s-0.17},{7*\s}) [left] {$Z_{k-1\mathstrut}$};
+\end{scope}
+
+\begin{scope}[xshift=3.5cm]
+ \abbildung{3}{5}{5}{7}
+ \rechteck{6}{10}{blue}
+ \rechteck{4}{5}{darkgreen}
+ \rechteck{0}{3}{red}
+ \Rechteck{0}{10}
+ \node at (0,{-\s}) [below] {$C_{k\mathstrut}$};
+ \node[color=darkgreen] at ({-0.25},{9*\s})
+ {$B_{k\mathstrut}$};
+ \node[color=darkgreen] at (0.24,{2*4*\s}) {$b_1$};
+ \node[color=darkgreen] at (0.24,{2*4.5*\s+0.1}) {$\vdots$};
+ \node[color=darkgreen] at (0.24,{2*5*\s}) {$b_r$};
+ \node[color=red] at (0.24,{2*0*\s}) {$z_1$};
+ \node[color=red] at (0.24,{2*1*\s}) {$z_2$};
+ \node[color=red] at (0.24,{2*2*\s+0.1}) {$\vdots$};
+ \node[color=red] at (0.24,{2*3*\s}) {$z_l$};
+ \node[color=blue] at (0.24,{2*6*\s}) {$c_1$};
+ \node[color=blue] at (0.24,{2*7*\s}) {$c_2$};
+ \node[color=blue] at (0.24,{2*8*\s}) {$c_3$};
+ \node[color=blue] at (0.24,{2*9*\s}) {$\vdots$};
+ \node[color=blue] at (0.24,{2*10*\s}) {$c_s$};
+ \node at (1.75,{5.5*2*\s}) {$\Delta_{k+1}$};
+ \node at (1.75,{-\s}) [above] {$\partial_{k+1\mathstrut}$};
+ \draw[decorate,decoration={brace,amplitude=4pt}]
+ ({-\s-0.1},{-\s}) -- ({-\s-0.1},{(2*5+1)*\s});
+ \node at ({-\s-0.17},{5*\s}) [left] {$Z_{k\mathstrut}$};
+\end{scope}
+
+\begin{scope}[xshift=7cm]
+ \abbildung{0}{5}{4}{8}
+ \rechteck{5}{7}{blue}
+ \rechteck{1}{5}{darkgreen}
+ \rechteck{0}{0}{red}
+ \Rechteck{0}{7}
+ \node at (0,{-\s}) [below] {$C_{k+1\mathstrut}$};
+ \node[color=darkgreen] at ({0},{(2.0*2+1)*\s})
+ {$B_{k+1\mathstrut}$};
+ \draw[decorate,decoration={brace,amplitude=4pt}]
+ ({-\s-0.1},{-\s}) -- ({-\s-0.1},{(2*5+1)*\s});
+ \node at ({-\s-0.17},{5*\s}) [left] {$Z_{k+1\mathstrut}$};
+\end{scope}
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/buch/chapters/95-homologie/images/gausshomobasis.pdf b/buch/chapters/95-homologie/images/gausshomobasis.pdf
new file mode 100644
index 0000000..07414bb
--- /dev/null
+++ b/buch/chapters/95-homologie/images/gausshomobasis.pdf
Binary files differ
diff --git a/buch/chapters/95-homologie/images/gausshomobasis.tex b/buch/chapters/95-homologie/images/gausshomobasis.tex
new file mode 100644
index 0000000..ba21f54
--- /dev/null
+++ b/buch/chapters/95-homologie/images/gausshomobasis.tex
@@ -0,0 +1,109 @@
+%
+% gaushomobasis.tex -- Bestimmung einer Basis der Homologiegruppen
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{amsmath}
+\usepackage{times}
+\usepackage{txfonts}
+\usepackage{pgfplots}
+\usepackage{csvsimple}
+\usetikzlibrary{arrows,intersections,math}
+\begin{document}
+\def\skala{1}
+\definecolor{darkgreen}{rgb}{0,0.6,0}
+\begin{tikzpicture}[>=latex,thick,scale=\skala]
+
+\def\s{0.5}
+\def\inset{0.05}
+\def\w{8}
+
+\def\zeile#1#2{
+ \fill[color=#2] ({0+\inset},{(12-#1)*\s+\inset})
+ rectangle ({\w*\s-\inset},{(13-#1)*\s-\inset});
+}
+\def\marke#1#2{
+\node at ({0.5*\w*\s},{12.5-#1)*\s}) {$#2\mathstrut$};
+}
+
+\def\gauss{
+\draw (0,0) rectangle ({\w*\s},{12*\s});
+\draw (0,{7*\s}) -- ({\w*\s},{7*\s});
+}
+
+\draw[->,color=red,line width=1pt] ({0.1*\s},{(12.5-1)*\s})
+ to[out=180,in=90] (-3.6,-2);
+\draw[->,color=red,line width=1pt] ({0.1*\s},{(12.5-2)*\s})
+ to[out=180,in=90] (-2.2,-2);
+\draw[->,color=red,line width=1pt] ({0.1*\s},{(12.5-4)*\s})
+ to[out=180,in=90] (-0.7,-2);
+
+\draw[->,color=darkgreen,line width=1pt] ({0.1*\s},{(12.5-7)*\s})
+ to[out=180,in=90] (0.9,-2);
+\draw[->,color=darkgreen,line width=1pt] ({0.1*\s},{(12.5-8)*\s})
+ to[out=180,in=90] (1.6,-2);
+\draw[->,color=darkgreen,line width=1pt] ({(\w-0.1)*\s},{(12.5-12)*\s})
+ to[out=0,in=90] (2.6,-2);
+
+\draw[->,line width=2pt] ({\w*\s+0.1},{6*\s}) -- (5.4,{6*\s});
+\node at ({0.5*(\w*\s+5.5)},{6*\s}) [above] {Gauss};
+
+\begin{scope}
+\zeile{1}{red!30}
+\zeile{2}{red!30}
+\zeile{4}{red!30}
+\zeile{7}{darkgreen!30}
+\zeile{8}{darkgreen!30}
+%\zeile{10}{darkgreen!30}
+\zeile{12}{darkgreen!30}
+\marke{1}{\scriptstyle\partial_{k+1}e_1^{(k+1)}}
+\marke{2}{\scriptstyle\partial_{k+1}e_2^{(k+1)}}
+\marke{3}{\scriptstyle\partial_{k+1}e_3^{(k+1)}}
+\marke{4}{\vdots}
+\marke{5}{\scriptstyle\partial_{k+1}e_{n_{k+1}}^{(k+1)}}
+\marke{6}{\scriptstyle z_1^{(k)}}
+\marke{7}{\scriptstyle z_2^{(k)}}
+\marke{8}{\scriptstyle z_3^{(k)}}
+\marke{9}{\scriptstyle z_4^{(k)}}
+\marke{10}{\vdots}
+\marke{11}{\scriptstyle z_{l-1}^{(k)}}
+\marke{12}{\scriptstyle z_{l}^{(k)}}
+\gauss
+\end{scope}
+
+\begin{scope}[xshift=5.5cm]
+\zeile{1}{black!20}
+\zeile{2}{black!20}
+\zeile{3}{black}
+\marke{3}{\color{white}0}
+\zeile{4}{black!20}
+\zeile{5}{black}
+\marke{5}{\color{white}0}
+\zeile{6}{black}
+\marke{6}{\color{white}0}
+\zeile{7}{black!20}
+\zeile{8}{black!20}
+\zeile{9}{black}
+\marke{9}{\color{white}0}
+\zeile{10}{black}
+\marke{10}{\color{white}0}
+\zeile{11}{black}
+\marke{11}{\color{white}0}
+\zeile{12}{black!20}
+\gauss
+\end{scope}
+
+\node at (-4.4,-2) [below right] {$\{
+{\color{red}\partial_{k+1}e_1^{(k+1)}},
+{\color{red}\partial_{k+1}e_2^{(k+1)}},
+{\color{red}\partial_{k+1}e_{i_3}^{(k+1)}},\dots,
+{\color{darkgreen}z_2^{(k)}},
+{\color{darkgreen}z_3^{(k)}},
+\dots
+{\color{darkgreen}z_l^{(k)}}
+\} = {\color{red}\mathcal{B}_k} \cup {\color{darkgreen}\mathcal{Z}_k'}$};
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/buch/chapters/95-homologie/images/gausshomoex.pdf b/buch/chapters/95-homologie/images/gausshomoex.pdf
new file mode 100644
index 0000000..bc0b766
--- /dev/null
+++ b/buch/chapters/95-homologie/images/gausshomoex.pdf
Binary files differ
diff --git a/buch/chapters/95-homologie/images/gausshomoex.tex b/buch/chapters/95-homologie/images/gausshomoex.tex
new file mode 100644
index 0000000..df53f70
--- /dev/null
+++ b/buch/chapters/95-homologie/images/gausshomoex.tex
@@ -0,0 +1,120 @@
+%
+% gausshomoex.tex -- Beispiel für die Bestimmung einer Basis von H_1
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{amsmath}
+\usepackage{times}
+\usepackage{txfonts}
+\usepackage{pgfplots}
+\usepackage{csvsimple}
+\usetikzlibrary{arrows,intersections,math}
+\begin{document}
+\def\skala{1}
+\begin{tikzpicture}[>=latex,thick,scale=\skala]
+
+\def\s{2.0}
+
+\def\punkt#1#2{({((#1)+0.5*(#2))*\s},{(#2)*\s*sqrt(3)/2})}
+
+\def\knoten#1#2#3{
+ \fill[color=white] \punkt{#1}{#2} circle[radius=0.3];
+ \node at \punkt{#1}{#2} {$#3$\strut};
+ \draw \punkt{#1}{#2} circle[radius=0.3];
+}
+\def\dreieck#1#2#3{
+ \fill[color=gray] \punkt{#1}{#2} -- \punkt{#1+1}{#2}
+ -- \punkt{#1}{(#2)+1} -- cycle;
+ \node at \punkt{#1+0.3333}{#2+0.3333} {$#3$\strut};
+ \draw[->,line width=1pt,shorten >= 0.3cm,shorten <= 0.3cm]
+ \punkt{#1}{#2} -- \punkt{#1+1}{#2};
+ \draw[->,line width=1pt,shorten >= 0.3cm,shorten <= 0.3cm]
+ \punkt{#1+1}{#2} -- \punkt{#1}{#2+1};
+ \draw[->,line width=1pt,shorten >= 0.3cm,shorten <= 0.3cm]
+ \punkt{#1}{#2+1} -- \punkt{#1}{#2};
+}
+
+\def\Dreieck#1#2#3{
+ \fill[color=gray!50] \punkt{#1}{#2} -- \punkt{#1+1}{#2}
+ -- \punkt{#1+1}{(#2)-1} -- cycle;
+ \node at \punkt{#1+0.3333}{#2+0.3333} {$#3$\strut};
+}
+
+\def\kante#1#2#3{
+ \fill[color=white,opacity=0.8] \punkt{#1}{#2} circle[radius=0.15];
+ \node at \punkt{#1}{#2} {$\scriptstyle #3$};
+}
+
+\dreieck{0}{0}{1}
+\dreieck{1}{0}{2}
+\dreieck{2}{0}{3}
+\dreieck{3}{0}{4}
+
+\dreieck{0}{1}{5}
+\dreieck{2}{1}{6}
+
+\dreieck{0}{2}{7}
+\dreieck{1}{2}{8}
+
+\dreieck{0}{3}{9}
+
+
+\knoten{0}{0}{1}
+\knoten{1}{0}{2}
+\knoten{2}{0}{3}
+\knoten{3}{0}{4}
+\knoten{4}{0}{5}
+
+\knoten{0}{1}{6}
+\knoten{1}{1}{7}
+\knoten{2}{1}{8}
+\knoten{3}{1}{9}
+
+\knoten{0}{2}{10}
+\knoten{1}{2}{11}
+\knoten{2}{2}{12}
+
+\knoten{0}{3}{13}
+\knoten{1}{3}{14}
+
+\knoten{0}{4}{15}
+
+\kante{0.5}{0}{1}
+\kante{1.5}{0}{2}
+\kante{2.5}{0}{3}
+\kante{3.5}{0}{4}
+
+\kante{0}{0.5}{5}
+\kante{0.5}{0.5}{6}
+\kante{1}{0.5}{7}
+\kante{1.5}{0.5}{8}
+\kante{2}{0.5}{9}
+\kante{2.5}{0.5}{10}
+\kante{3}{0.5}{11}
+\kante{3.5}{0.5}{12}
+
+\kante{0.5}{1}{13}
+\kante{2.5}{1}{14}
+
+\kante{0}{1.5}{15}
+\kante{0.5}{1.5}{16}
+\kante{2}{1.5}{17}
+\kante{2.5}{1.5}{18}
+
+\kante{0.5}{2}{19}
+\kante{1.5}{2}{20}
+
+\kante{0}{2.5}{21}
+\kante{0.5}{2.5}{22}
+\kante{1}{2.5}{23}
+\kante{1.5}{2.5}{24}
+
+\kante{0.5}{3}{25}
+
+\kante{0}{3.5}{26}
+\kante{0.5}{3.5}{27}
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/buch/chapters/95-homologie/images/homoboundaries.pdf b/buch/chapters/95-homologie/images/homoboundaries.pdf
new file mode 100644
index 0000000..fb94ec8
--- /dev/null
+++ b/buch/chapters/95-homologie/images/homoboundaries.pdf
Binary files differ
diff --git a/buch/chapters/95-homologie/images/homoboundaries.tex b/buch/chapters/95-homologie/images/homoboundaries.tex
new file mode 100644
index 0000000..53087fa
--- /dev/null
+++ b/buch/chapters/95-homologie/images/homoboundaries.tex
@@ -0,0 +1,115 @@
+%
+% tikztemplate.tex -- template for standalon tikz images
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{amsmath}
+\usepackage{times}
+\usepackage{txfonts}
+\usepackage{pgfplots}
+\usepackage{csvsimple}
+\usetikzlibrary{arrows,intersections,math}
+\begin{document}
+\def\skala{1}
+\begin{tikzpicture}[>=latex,thick,scale=\skala]
+
+\def\s{0.55}
+
+\def\punkt#1#2{({((#1)+0.5*(#2))*\s},{(#2)*\s*sqrt(3)/2})}
+\def\A{\punkt{0}{0}}
+\def\B{\punkt{1}{0}}
+\def\C{\punkt{2}{0}}
+\def\D{\punkt{3}{0}}
+\def\E{\punkt{4}{0}}
+\def\F{\punkt{0}{1}}
+\def\G{\punkt{1}{1}}
+\def\H{\punkt{2}{1}}
+\def\I{\punkt{3}{1}}
+\def\J{\punkt{0}{2}}
+\def\K{\punkt{1}{2}}
+\def\L{\punkt{2}{2}}
+\def\M{\punkt{0}{3}}
+\def\N{\punkt{1}{3}}
+\def\O{\punkt{0}{4}}
+
+\def\dreieck#1#2#3{
+ \fill[color=gray] \punkt{#1}{#2} -- \punkt{#1+1}{#2}
+ -- \punkt{#1}{(#2)+1} -- cycle;
+}
+
+\def\blau#1#2{
+ \draw[color=blue] \punkt{#1}{#2} -- \punkt{#1+1}{#2}
+ -- \punkt{#1}{(#2)+1} -- cycle;
+ \draw[->,color=blue] \punkt{#1}{#2} -- \punkt{#1+1}{#2};
+}
+
+\def\gebiet{
+ \dreieck{0}{0}{1}
+ \dreieck{1}{0}{2}
+ \dreieck{2}{0}{3}
+ \dreieck{3}{0}{4}
+ \dreieck{0}{1}{5}
+ \dreieck{2}{1}{6}
+ \dreieck{0}{2}{7}
+ \dreieck{1}{2}{8}
+ \dreieck{0}{3}{9}
+}
+
+\begin{scope}
+\gebiet
+\blau{0}{0}
+\node[color=blue] at ({2*\s},-0.5) {$\partial_2e_1^{(2)}$};
+\end{scope}
+
+\begin{scope}[xshift=3cm]
+\gebiet
+\blau{1}{0}
+\node[color=blue] at ({2*\s},-0.5) {$\partial_2e_2^{(2)}$};
+\end{scope}
+
+\begin{scope}[xshift=6cm]
+\gebiet
+\blau{2}{0}
+\node[color=blue] at ({2*\s},-0.5) {$\partial_2e_3^{(2)}$};
+\end{scope}
+
+\begin{scope}[xshift=9cm]
+\gebiet
+\blau{3}{0}
+\node[color=blue] at ({2*\s},-0.5) {$\partial_2e_4^{(2)}$};
+\end{scope}
+
+\begin{scope}[xshift=1.5cm,yshift=2.59cm]
+\gebiet
+\blau{0}{1}
+\node[color=blue] at ({2*\s},-0.5) {$\partial_2e_5^{(2)}$};
+\end{scope}
+
+\begin{scope}[xshift=7.5cm,yshift=2.59cm]
+\gebiet
+\blau{2}{1}
+\node[color=blue] at ({2*\s},-0.5) {$\partial_2e_6^{(2)}$};
+\end{scope}
+
+\begin{scope}[xshift=3cm,yshift=5.19cm]
+\gebiet
+\blau{0}{2}
+\node[color=blue] at ({2*\s},-0.5) {$\partial_2e_7^{(2)}$};
+\end{scope}
+
+\begin{scope}[xshift=6cm,yshift=5.19cm]
+\gebiet
+\blau{1}{2}
+\node[color=blue] at ({2*\s},-0.5) {$\partial_2e_8^{(2)}$};
+\end{scope}
+
+\begin{scope}[xshift=4.5cm,yshift=7.79cm]
+\gebiet
+\blau{0}{3}
+\node[color=blue] at ({2*\s},-0.5) {$\partial_2e_9^{(2)}$};
+\end{scope}
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/buch/chapters/95-homologie/images/homoclasses.pdf b/buch/chapters/95-homologie/images/homoclasses.pdf
new file mode 100644
index 0000000..fbbaedd
--- /dev/null
+++ b/buch/chapters/95-homologie/images/homoclasses.pdf
Binary files differ
diff --git a/buch/chapters/95-homologie/images/homoclasses.tex b/buch/chapters/95-homologie/images/homoclasses.tex
new file mode 100644
index 0000000..4467f08
--- /dev/null
+++ b/buch/chapters/95-homologie/images/homoclasses.tex
@@ -0,0 +1,109 @@
+%
+% homoclasses.tex -- template for standalon tikz images
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{amsmath}
+\usepackage{times}
+\usepackage{txfonts}
+\usepackage{pgfplots}
+\usepackage{csvsimple}
+\usetikzlibrary{arrows,intersections,math}
+\begin{document}
+\def\skala{1.4}
+\begin{tikzpicture}[>=latex,thick,scale=\skala]
+
+\definecolor{darkgreen}{rgb}{0,0.6,0}
+\def\s{0.4}
+\def\h{-0.3}
+
+\def\punkt#1#2{({((#1)+0.5*(#2))*\s},{(#2)*\s*sqrt(3)/2})}
+\def\A{\punkt{0}{0}}
+\def\B{\punkt{1}{0}}
+\def\C{\punkt{2}{0}}
+\def\D{\punkt{3}{0}}
+\def\E{\punkt{4}{0}}
+\def\F{\punkt{0}{1}}
+\def\G{\punkt{1}{1}}
+\def\H{\punkt{2}{1}}
+\def\I{\punkt{3}{1}}
+\def\J{\punkt{0}{2}}
+\def\K{\punkt{1}{2}}
+\def\L{\punkt{2}{2}}
+\def\M{\punkt{0}{3}}
+\def\N{\punkt{1}{3}}
+\def\O{\punkt{0}{4}}
+
+%\def\knoten#1#2#3{
+% \fill[color=white] \punkt{#1}{#2} circle[radius=0.3];
+% \node at \punkt{#1}{#2} {$#3$\strut};
+% \draw \punkt{#1}{#2} circle[radius=0.3];
+%}
+\def\dreieck#1#2#3{
+ \fill[color=gray] \punkt{#1}{#2} -- \punkt{#1+1}{#2}
+ -- \punkt{#1}{(#2)+1} -- cycle;
+% \node at \punkt{#1+0.3333}{#2+0.3333} {$#3$\strut};
+% \draw[->,line width=1pt,shorten >= 0.3cm,shorten <= 0.3cm]
+% \punkt{#1}{#2} -- \punkt{#1+1}{#2};
+% \draw[->,line width=1pt,shorten >= 0.3cm,shorten <= 0.3cm]
+% \punkt{#1+1}{#2} -- \punkt{#1}{#2+1};
+% \draw[->,line width=1pt,shorten >= 0.3cm,shorten <= 0.3cm]
+% \punkt{#1}{#2+1} -- \punkt{#1}{#2};
+}
+
+%\def\Dreieck#1#2#3{
+% \fill[color=gray!50] \punkt{#1}{#2} -- \punkt{#1+1}{#2}
+% -- \punkt{#1+1}{(#2)-1} -- cycle;
+% \node at \punkt{#1+0.3333}{#2+0.3333} {$#3$\strut};
+%}
+
+%\def\kante#1#2#3{
+% \fill[color=white,opacity=0.8] \punkt{#1}{#2} circle[radius=0.15];
+% \node at \punkt{#1}{#2} {$\scriptstyle #3$};
+%}
+
+\def\gebiet{
+ \dreieck{0}{0}{1}
+ \dreieck{1}{0}{2}
+ \dreieck{2}{0}{3}
+ \dreieck{3}{0}{4}
+ \dreieck{0}{1}{5}
+ \dreieck{2}{1}{6}
+ \dreieck{0}{2}{7}
+ \dreieck{1}{2}{8}
+ \dreieck{0}{3}{9}
+}
+
+\begin{scope}
+\gebiet
+\draw[color=darkgreen] \B -- \G -- \J -- \F -- cycle;
+\draw[->,color=darkgreen] \B -- \G;
+\node[color=darkgreen] at ({2*\s},{\h}) {$z_5'$};
+\end{scope}
+
+\begin{scope}[xshift=2cm]
+\gebiet
+\draw[color=darkgreen] \D -- \I -- \L -- \H -- cycle;
+\draw[->,color=darkgreen] \D -- \I;
+\node[color=darkgreen] at ({2*\s},{\h}) {$z_6'$};
+\end{scope}
+
+\begin{scope}[xshift=4cm]
+\gebiet
+\draw[color=darkgreen] \C -- \L -- \N -- \K -- \M -- \J -- cycle;
+\draw[->,color=darkgreen] \C -- \L;
+\node[color=darkgreen] at ({2*\s},{\h}) {$z_9'$};
+\end{scope}
+
+\begin{scope}[xshift=6cm]
+\gebiet
+\draw[color=darkgreen] \K -- \N -- \O -- \M -- cycle;
+\draw[->,color=darkgreen] \K -- \N;
+\node[color=darkgreen] at ({2*\s},{\h}) {$z_{12}'$};
+\end{scope}
+
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/buch/chapters/95-homologie/images/homocycles.pdf b/buch/chapters/95-homologie/images/homocycles.pdf
new file mode 100644
index 0000000..b68519e
--- /dev/null
+++ b/buch/chapters/95-homologie/images/homocycles.pdf
Binary files differ
diff --git a/buch/chapters/95-homologie/images/homocycles.tex b/buch/chapters/95-homologie/images/homocycles.tex
new file mode 100644
index 0000000..8f20a0c
--- /dev/null
+++ b/buch/chapters/95-homologie/images/homocycles.tex
@@ -0,0 +1,170 @@
+%
+% tikztemplate.tex -- template for standalon tikz images
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{amsmath}
+\usepackage{times}
+\usepackage{txfonts}
+\usepackage{pgfplots}
+\usepackage{csvsimple}
+\usetikzlibrary{arrows,intersections,math}
+\begin{document}
+\def\skala{1}
+\begin{tikzpicture}[>=latex,thick,scale=\skala]
+
+\def\s{0.4}
+
+\def\punkt#1#2{({((#1)+0.5*(#2))*\s},{(#2)*\s*sqrt(3)/2})}
+\def\A{\punkt{0}{0}}
+\def\B{\punkt{1}{0}}
+\def\C{\punkt{2}{0}}
+\def\D{\punkt{3}{0}}
+\def\E{\punkt{4}{0}}
+\def\F{\punkt{0}{1}}
+\def\G{\punkt{1}{1}}
+\def\H{\punkt{2}{1}}
+\def\I{\punkt{3}{1}}
+\def\J{\punkt{0}{2}}
+\def\K{\punkt{1}{2}}
+\def\L{\punkt{2}{2}}
+\def\M{\punkt{0}{3}}
+\def\N{\punkt{1}{3}}
+\def\O{\punkt{0}{4}}
+
+%\def\knoten#1#2#3{
+% \fill[color=white] \punkt{#1}{#2} circle[radius=0.3];
+% \node at \punkt{#1}{#2} {$#3$\strut};
+% \draw \punkt{#1}{#2} circle[radius=0.3];
+%}
+\def\dreieck#1#2#3{
+ \fill[color=gray] \punkt{#1}{#2} -- \punkt{#1+1}{#2}
+ -- \punkt{#1}{(#2)+1} -- cycle;
+% \node at \punkt{#1+0.3333}{#2+0.3333} {$#3$\strut};
+% \draw[->,line width=1pt,shorten >= 0.3cm,shorten <= 0.3cm]
+% \punkt{#1}{#2} -- \punkt{#1+1}{#2};
+% \draw[->,line width=1pt,shorten >= 0.3cm,shorten <= 0.3cm]
+% \punkt{#1+1}{#2} -- \punkt{#1}{#2+1};
+% \draw[->,line width=1pt,shorten >= 0.3cm,shorten <= 0.3cm]
+% \punkt{#1}{#2+1} -- \punkt{#1}{#2};
+}
+
+%\def\Dreieck#1#2#3{
+% \fill[color=gray!50] \punkt{#1}{#2} -- \punkt{#1+1}{#2}
+% -- \punkt{#1+1}{(#2)-1} -- cycle;
+% \node at \punkt{#1+0.3333}{#2+0.3333} {$#3$\strut};
+%}
+
+%\def\kante#1#2#3{
+% \fill[color=white,opacity=0.8] \punkt{#1}{#2} circle[radius=0.15];
+% \node at \punkt{#1}{#2} {$\scriptstyle #3$};
+%}
+
+\def\gebiet{
+ \dreieck{0}{0}{1}
+ \dreieck{1}{0}{2}
+ \dreieck{2}{0}{3}
+ \dreieck{3}{0}{4}
+ \dreieck{0}{1}{5}
+ \dreieck{2}{1}{6}
+ \dreieck{0}{2}{7}
+ \dreieck{1}{2}{8}
+ \dreieck{0}{3}{9}
+}
+
+\begin{scope}
+\gebiet
+\draw[->,color=red] \A -- \B -- \F -- cycle;
+\draw[->,color=red] \A -- \B;
+\node[color=red] at ({2*\s},-0.5) {$z_1$};
+\end{scope}
+
+\begin{scope}[xshift=2cm]
+\gebiet
+\draw[color=red] \B -- \C -- \G -- cycle;
+\draw[->,color=red] \B -- \C;
+\node[color=red] at ({2*\s},-0.5) {$z_2$};
+\end{scope}
+
+\begin{scope}[xshift=4cm]
+\gebiet
+\draw[color=red] \C -- \D -- \H -- cycle;
+\draw[->,color=red] \C -- \D;
+\node[color=red] at ({2*\s},-0.5) {$z_3$};
+\end{scope}
+
+\begin{scope}[xshift=6cm]
+\gebiet
+\draw[color=red] \D -- \E -- \I -- cycle;
+\draw[->,color=red] \D -- \E;
+\node[color=red] at ({2*\s},-0.5) {$z_4$};
+\end{scope}
+
+\begin{scope}[xshift=8cm]
+\gebiet
+\draw[color=red] \A -- \B -- \G -- \F -- cycle;
+\draw[<-,color=red] \A -- \B;
+\node[color=red] at ({2*\s},-0.5) {$z_5$};
+\end{scope}
+
+\begin{scope}[xshift=10cm]
+\gebiet
+\draw[color=red] \C -- \D -- \I -- \H -- cycle;
+\draw[<-,color=red] \C -- \D;
+\node[color=red] at ({2*\s},-0.5) {$z_6$};
+\end{scope}
+
+\begin{scope}[xshift=12cm]
+\gebiet
+\draw[color=red] \A -- \B -- \G -- \J -- \F -- cycle;
+\draw[->,color=red] \A -- \B;
+\node[color=red] at ({2*\s},-0.5) {$z_7$};
+\end{scope}
+
+\begin{scope}[xshift=0cm,yshift=-3cm]
+\gebiet
+\draw[color=red] \C -- \D -- \I -- \L -- \H -- cycle;
+\draw[->,color=red] \C -- \D;
+\node[color=red] at ({2*\s},-0.5) {$z_8$};
+\end{scope}
+
+\begin{scope}[xshift=2cm,yshift=-3cm]
+\gebiet
+\draw[color=red] \A -- \B -- \C -- \H -- \L -- \K -- \J -- \F -- cycle;
+\draw[<-,color=red] \A -- \B;
+\node[color=red] at ({2*\s},-0.5) {$z_9$};
+\end{scope}
+
+\begin{scope}[xshift=4cm,yshift=-3cm]
+\gebiet
+\draw[color=red] \J -- \K -- \M -- cycle;
+\draw[->,color=red] \J -- \K;
+\node[color=red] at ({2*\s},-0.5) {$z_{10}$};
+\end{scope}
+
+\begin{scope}[xshift=6cm,yshift=-3cm]
+\gebiet
+\draw[color=red] \A -- \B -- \C -- \H -- \L -- \N -- \K -- \J -- \F -- cycle;
+\draw[->,color=red] \A -- \B;
+\node[color=red] at ({2*\s},-0.5) {$z_{11}$};
+\end{scope}
+
+\begin{scope}[xshift=8cm,yshift=-3cm]
+\gebiet
+\draw[color=red] \J -- \K -- \N -- \M -- cycle;
+\draw[<-,color=red] \J -- \K;
+\node[color=red] at ({2*\s},-0.5) {$z_{12}$};
+\end{scope}
+
+\begin{scope}[xshift=10cm,yshift=-3cm]
+\gebiet
+\draw[color=red] \J -- \K -- \N -- \O -- \M -- cycle;
+\draw[->,color=red] \J -- \K;
+\node[color=red] at ({2*\s},-0.5) {$z_{13}$};
+\end{scope}
+
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/buch/chapters/95-homologie/images/polyeder.pdf b/buch/chapters/95-homologie/images/polyeder.pdf
new file mode 100644
index 0000000..3a8ba60
--- /dev/null
+++ b/buch/chapters/95-homologie/images/polyeder.pdf
Binary files differ
diff --git a/buch/chapters/95-homologie/images/polyeder.tex b/buch/chapters/95-homologie/images/polyeder.tex
new file mode 100644
index 0000000..9a900cc
--- /dev/null
+++ b/buch/chapters/95-homologie/images/polyeder.tex
@@ -0,0 +1,109 @@
+%
+% tikztemplate.tex -- template for standalon tikz images
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{amsmath}
+\usepackage{times}
+\usepackage{txfonts}
+\usepackage{pgfplots}
+\usepackage{csvsimple}
+\usetikzlibrary{arrows,intersections,math,calc}
+\begin{document}
+\def\skala{1}
+\begin{tikzpicture}[>=latex,thick,scale=\skala]
+
+% add image content here
+\begin{scope}[xshift=-3.5cm,scale=0.5]
+\coordinate (A) at (0,0);
+\coordinate (B) at (4,0);
+\coordinate (C) at (5,-2);
+\coordinate (D) at (8,-1);
+\coordinate (E) at (7,1);
+\coordinate (F) at (7,3);
+\coordinate (G) at (1,3);
+\coordinate (H) at (5,4);
+\coordinate (I) at (9,5);
+\coordinate (J) at (4,7);
+\coordinate (K) at (-1,9);
+\coordinate (L) at (7,11);
+\coordinate (M) at (6,-0.5);
+
+\fill[color=gray,opacity=0.5] (A)--(B)--(H)--(G)--cycle;
+\fill[color=gray,opacity=0.5] (G)--(I)--(K)--cycle;
+\fill[color=gray,opacity=0.5] (G)--(L)--(K)--cycle;
+
+\draw (K)--(G)--(A)--(B)--(D);
+\draw (C)--(E);
+\draw (G)--(I)--(K);
+\draw (G)--(L)--(K);
+\draw (B)--(H);
+\draw (B)--(F);
+
+\fill (A) circle[radius=0.1];
+\fill (B) circle[radius=0.1];
+\fill (C) circle[radius=0.1];
+\fill (D) circle[radius=0.1];
+\fill (E) circle[radius=0.1];
+\fill (F) circle[radius=0.1];
+\fill (G) circle[radius=0.1];
+\fill (H) circle[radius=0.1];
+\fill (I) circle[radius=0.1];
+%\fill (J) circle[radius=0.1];
+\fill (K) circle[radius=0.1];
+\fill (L) circle[radius=0.1];
+%\fill (M) circle[radius=0.1];
+
+\draw[color=red] (H) circle[radius=0.5];
+\draw[color=red] (J) circle[radius=0.5];
+\draw[color=red] (M) circle[radius=0.5];
+\draw[color=red] ($0.25*(A)+0.25*(B)+0.25*(G)+0.25*(H)$) circle[radius=0.5];
+
+\end{scope}
+
+\begin{scope}[xshift=3.5cm,scale=0.5]
+\coordinate (A) at (0,0);
+\coordinate (B) at (4,0);
+\coordinate (C) at (5,-2);
+\coordinate (D) at (8,-1);
+\coordinate (E) at (7,1);
+\coordinate (F) at (7,3);
+\coordinate (G) at (1,3);
+\coordinate (H) at (5,4);
+\coordinate (I) at (9,5);
+\coordinate (J) at (4,7);
+\coordinate (K) at (-1,9);
+\coordinate (L) at (7,11);
+\coordinate (M) at (6,-0.5);
+
+\fill[color=gray!50] (A)--(B)--(H)--(I)--(J)--(L)--(K)--(G)--cycle;
+
+\draw (K)--(G)--(A)--(B)--(D);
+\draw (C)--(E);
+\draw (G)--(I)--(K);
+\draw (G)--(L)--(K);
+\draw (B)--(H);
+\draw (B)--(F);
+\draw (H)--(J);
+\draw (A)--(H);
+
+\fill (A) circle[radius=0.1];
+\fill (B) circle[radius=0.1];
+\fill (C) circle[radius=0.1];
+\fill (D) circle[radius=0.1];
+\fill (E) circle[radius=0.1];
+\fill (F) circle[radius=0.1];
+\fill (G) circle[radius=0.1];
+\fill (H) circle[radius=0.1];
+\fill (I) circle[radius=0.1];
+\fill (J) circle[radius=0.1];
+\fill (K) circle[radius=0.1];
+\fill (L) circle[radius=0.1];
+\fill (M) circle[radius=0.1];
+
+\end{scope}
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/buch/chapters/95-homologie/images/tetraeder.jpg b/buch/chapters/95-homologie/images/tetraeder.jpg
new file mode 100644
index 0000000..0ec168b
--- /dev/null
+++ b/buch/chapters/95-homologie/images/tetraeder.jpg
Binary files differ
diff --git a/buch/chapters/95-homologie/images/tetraeder.pdf b/buch/chapters/95-homologie/images/tetraeder.pdf
new file mode 100644
index 0000000..0a57e95
--- /dev/null
+++ b/buch/chapters/95-homologie/images/tetraeder.pdf
Binary files differ
diff --git a/buch/chapters/95-homologie/images/tetraeder.pov b/buch/chapters/95-homologie/images/tetraeder.pov
new file mode 100644
index 0000000..b110f96
--- /dev/null
+++ b/buch/chapters/95-homologie/images/tetraeder.pov
@@ -0,0 +1,116 @@
+//
+// tetraeder.pov
+//
+// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+//
+#version 3.7;
+#include "colors.inc"
+
+global_settings {
+ assumed_gamma 1
+}
+
+#declare imagescale = 0.169;
+#declare O = <0, 0, 0>;
+#declare at = 0.02;
+
+camera {
+ location <-2, 3, -10>
+ look_at <0, 0.18, 0>
+ right 16/9 * 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, -20> color White
+ area_light <1,0,0> <0,0,1>, 10, 10
+ adaptive 1
+ jitter
+}
+
+sky_sphere {
+ pigment {
+ color rgb<1,1,1>
+ }
+}
+
+#declare v1 = <1,1,1>;
+#declare v2 = <-1,1,-1>;
+#declare farbe = rgbf<0.8,0.8,1.0,0.5>;
+
+#declare tetraederwinkel = acos(vdot(v1,v2)/(vlength(v1)*vlength(v2)));
+
+#declare O = < 0, 0, 0 >;
+#declare A = < 0, 1, 0 >;
+#declare B = < sin(tetraederwinkel), cos(tetraederwinkel), 0>;
+#declare C = < sin(tetraederwinkel)*cos(2*pi/3), cos(tetraederwinkel), sin(2*pi/3)>;
+#declare D = < sin(tetraederwinkel)*cos(2*pi/3), cos(tetraederwinkel), -sin(2*pi/3)>;
+
+#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 - 8 * arrowthickness) * arrowdirection,
+ arrowthickness
+ }
+ cone {
+ from + (arrowlength - 8 * arrowthickness) * arrowdirection,
+ 2 * arrowthickness,
+ to - 3 * arrowthickness * arrowdirection,
+ 0
+ }
+ pigment {
+ color c
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+#end
+
+union {
+ arrow(B, C, at, White)
+ arrow(D, C, at, White)
+ arrow(D, B, at, White)
+ arrow(B, A, at, White)
+ arrow(C, A, at, White)
+ arrow(D, A, at, White)
+ sphere { A, 4 * at }
+ sphere { B, 4 * at }
+ sphere { C, 4 * at }
+ sphere { D, 4 * at }
+ pigment {
+ color White
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+
+mesh {
+ triangle { A, B, C }
+ triangle { A, C, D }
+ triangle { A, D, B }
+ triangle { B, C, D }
+ pigment {
+ color farbe
+ }
+// finish {
+// specular 0.9
+// metallic
+// }
+}
diff --git a/buch/chapters/95-homologie/images/tetraeder.tex b/buch/chapters/95-homologie/images/tetraeder.tex
new file mode 100644
index 0000000..e62770f
--- /dev/null
+++ b/buch/chapters/95-homologie/images/tetraeder.tex
@@ -0,0 +1,97 @@
+%
+% tetraeder.tex
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{times}
+\usepackage{amsmath}
+\usepackage{txfonts}
+\usepackage[utf8]{inputenc}
+\usepackage{graphics}
+\usetikzlibrary{arrows,intersections,math,calc}
+\usepackage{ifthen}
+\begin{document}
+
+\newboolean{showgrid}
+\setboolean{showgrid}{false}
+\def\breite{7}
+\def\hoehe{4}
+
+\begin{tikzpicture}[>=latex,thick]
+
+% Povray Bild
+\node at (0,0) {\includegraphics[width=8cm]{tetraeder.jpg}};
+
+% Gitter
+\ifthenelse{\boolean{showgrid}}{
+\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe);
+\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe);
+\draw (-\breite,-\hoehe) grid (\breite, \hoehe);
+\fill (0,0) circle[radius=0.05];
+}{}
+
+\def\knoten#1#2{
+ %\fill[color=white,opacity=0.5] #1 circle[radius=0.2];
+ \node at #1 {$#2$};
+}
+
+\knoten{(-2.2,-3.6)}{0};
+\knoten{( 3.3,-1.9)}{1};
+\knoten{(-3.4,-1.2)}{2};
+\knoten{(-0.75,3.6)}{3};
+
+\def\s{0.2}
+
+\def\kante#1#2{
+ %\fill[color=white,opacity=0.5] #1 circle[radius=0.2];
+ \fill[color=white,opacity=0.5]
+ ($#1+(-\s,-\s)$) --
+ ($#1+(+\s,-\s)$) --
+ ($#1+(+\s,+\s)$) --
+ ($#1+(-\s,+\s)$) -- cycle;
+ \node at #1 {$#2$};
+}
+
+\kante{(0.5,-2.8)}{k_0}
+\kante{(-2.8,-2.3)}{k_1}
+\kante{(-1.4,0)}{k_2}
+\kante{(-0.4,-1.55)}{k_3}
+\kante{(1.25,0.95)}{k_4}
+\kante{(-2.08,1.1)}{k_5}
+
+\def\r{0.33}
+
+\def\flaeche#1#2{
+ \fill[color=white,opacity=0.5]
+ ($#1+({-\r*cos(30)},{-\r*sin(30)})$) --
+ ($#1+({\r*cos(30)},{-\r*sin(30)})$) --
+ ($#1+(0,{\r})$) -- cycle;
+ \node at #1 {$#2$};
+}
+
+\flaeche{(-0.7,-5)}{f_0}
+\draw (-0.7,-4.7) -- (-0.7,-3.25);
+\draw[->,color=black!70] (-0.7,-3.06) -- (-0.7,-2.5);
+\flaeche{(0.2,-0.5)}{f_1}
+\flaeche{(-2.3,-0.7)}{f_2}
+\coordinate (A) at (1,2.6);
+\coordinate (B) at (0,1);
+
+\flaeche{($1.2*(A)-0.2*(B)$)}{f_3}
+
+\def\t{0.58}
+\pgfmathparse{1-\t}
+\xdef\T{\pgfmathresult}
+\draw (A) -- ($\t*(A)+\T*(B)$);
+
+\def\t{0.48}
+\pgfmathparse{1-\t}
+\xdef\T{\pgfmathresult}
+\draw[->,color=black!70] ($\t*(A)+\T*(B)$) -- (B);
+
+
+\end{tikzpicture}
+
+\end{document}
+
diff --git a/buch/chapters/95-homologie/induzierteabb.tex b/buch/chapters/95-homologie/induzierteabb.tex
new file mode 100644
index 0000000..13591d7
--- /dev/null
+++ b/buch/chapters/95-homologie/induzierteabb.tex
@@ -0,0 +1,204 @@
+\subsection{Induzierte Abbildung
+\label{buch:subsection:induzierte-abbildung}}
+Früher haben wurde eine Abbildung $f_*$ zwischen Kettenkomplexen $C_*$ und
+$D_*$ so definiert,
+dass sie mit den Randoperatoren verträglich sein muss.
+Diese Forderung bewirkt, dass sich auch eine lineare Abbildung
+\[
+H_k(f) \colon H_k(C) \to H_k(D)
+\]
+zwischen den Homologiegruppen ergibt, wie wir nun zeigen wollen.
+
+\subsubsection{Definition der induzierten Abbildung}
+Um eine Abbildung von $H_k(C)$ nach $H_k(D)$ zu definieren, müssen wir
+zu einem Element von $H_k(C)$ ein Bildelement konstruieren.
+Ein Element in $H_k(C)$ ist eine Menge von Zyklen in $Z^C_k$, die sich
+nur um einen Rand in $B_k$ unterscheiden.
+Wir wählen also einen Zyklus $z\in Z_k$ und bilden ihn auf $f_k(z)$ ab.
+Wegen $\partial^D_kf(z)=f\partial^C_kz = f(0) =0 $ ist auch $f_k(z)$
+ein Zyklus.
+Wir müssen jetzt aber noch zeigen, dass eine andere Wahl des Zyklus
+das gleiche Element in $H_k(D)$ ergibt.
+Dazu genügt es zu sehen, dass sich $f(z)$ höchstens um einen Rand
+ändert, wenn man $z$ um einen Rand ändert.
+Sei also $b\in B^C_k$ ein Rand, es gibt also ein $w\in C_{k+1}$ mit
+$\partial^C_{k+1}w=b$.
+Dann gilt aber auch
+\[
+f_k(z+b)
+=
+f_k(z) + f_k(b)
+=
+f_k(z) + f_k(\partial^C_{k+1}w)
+=
+f_k(z) + \partial^D_{k+1}(f_k(w)).
+\]
+Der letzte Term ist ein Rand in $D_k$, somit ändert sich $f_k(z)$ nur
+um diesen Rand, wenn man $z$ um einen Rand ändert.
+$f_k(z)$ und $f_k(z+b)$ führen auf die selbe Homologieklasse.
+
+\subsubsection{Matrixdarstellung}
+In Abschnitt~\ref{buch:subsection:basiswahl} wurde gezeigt, wie man
+für die Vektorräume der Zyklen eine Basis derart finden kann,
+dass die Ränder von einer Teilmenge der Basis aufgespannt werden.
+Eine solche Basis kann man immer erweitern zu einer Basis von $C_k$.
+Für das Folgende bezeichnen wir die Vektoren einer solche Basis von $C_k$
+mit
+\[
+\{
+b_1,\dots, b_r,
+z_1,\dots,z_l,
+c_1,\dots,c_s
+\}.
+\]
+wobei die Vektoren die folgende Bedeutung haben:
+\begin{center}
+\begin{tabular}{|l|l|}
+\hline
+Vektoren&Bedeutung\\
+\hline
+$b_1,\dots,b_r$ & Basis für $B_k(C)$ \\
+$z_1,\dots,z_l$ & zusätzliche Vektoren für eine Basis von $Z_k(C)$ \\
+$c_1,\dots,c_s$ & zusätzliche Vektoren für eine Basis von $C_k$ \\
+\hline
+\end{tabular}
+\end{center}
+
+Wählt man eine Basis dieser Art sowohl in $C_*$ wie auch in $D_*$,
+dann kann man die induzierte Abbildung als $3\times 3$-Blockmatrix
+schreiben.
+Man verwendet dabei, dass $f_k$ die Unterräume $B_k(C)$ und
+$Z_k(C)$ in die entsprechenden Unterräume $B_k(D)$ und $Z_k(D)$
+abbildet, also
+\[
+f_k(B_k(C)) \subset B_k(D)
+\qquad\text{und}\qquad
+f_k(Z_k(C)) \subset Z_k(D).
+\]
+In der Matrixdarstellung äussert sich das darin, dass die Blöcke
+links unten zu Null werden.
+Die Matrixdarstellung von $f_k$ hat daher die Form
+\[
+f_k
+=
+\begin{pmatrix}
+f_{k,B} & * & * \\
+ 0 & f_{k,Z} & * \\
+ 0 & 0 & f_{k,*}
+\end{pmatrix}.
+\]
+Genauso kann man natürlich auch die Randoperatoren in dieser Basis
+ausdrücken.
+Sie bilden die Zyklen auf $0$ ab und aus den Vektoren $c_1,\dots,c_s$
+werden Ränder.
+Die Matrix hat daher die Form
+\[
+\partial_k
+=
+\begin{pmatrix}
+0& 0 & \Delta_k \\
+0& 0 & 0 \\
+0& 0 & 0
+\end{pmatrix}
+\]
+\begin{figure}
+\centering
+\includegraphics{chapters/95-homologie/images/complexbasis.pdf}
+\caption{Basiswahl für den Kettenkomplex $C_k$.
+Der Randoperator $\partial_k$ bildet $Z_k$ auf $0$ ab, der blaue
+Unterraum, aufgespannt von den Vektoren $c_i$, wird bijektiv auf $B_{k-1}$
+abgebildet.
+Eine Basis kann immer so gefunden werden, dass die Vektoren $c_i$
+von $\partial_k$ auf die Basisvektoren von $B_{k-1}$ abgebildet werden.
+In dieser Basis ist $\Delta_k$ eine Einheitsmatrix.
+\label{buch:homologie:fig:komplexbasis}}
+\end{figure}%
+Die Bedingung \eqref{buch:komplex:abbildung} für die Komplexabbildung
+bekommt jetzt die Matrixform
+\begin{equation}
+\left.
+\begin{aligned}
+\partial_k^{D}\circ f_k
+&=
+\begin{pmatrix}
+0&0&\Delta_k^{(D)}\\
+0&0&0\\
+0&0&0
+\end{pmatrix}
+\begin{pmatrix}
+f_{k,B} & * & * \\
+ 0 & f_{k,Z} & * \\
+ 0 & 0 & f_{k,*}
+\end{pmatrix}
+=
+\begin{pmatrix}
+0&0&\Delta_k^{(D)}f_{k,*}\\
+0&0&0\\
+0&0&0
+\end{pmatrix}
+\\
+f_{k-1}\circ \partial_k^C
+&=
+\begin{pmatrix}
+f_{k-1,B}& * & * \\
+ 0 &f_{k-1,Z}& * \\
+ 0 & 0 &f_{k-1,*}
+\end{pmatrix}
+\begin{pmatrix}
+0&0&\Delta_k^{(C)}\\
+0&0&0\\
+0&0&0
+\end{pmatrix}
+=
+\begin{pmatrix}
+0&0&f_{k-1,B}\Delta_k^{(C)}\\
+0&0&0\\
+0&0&0
+\end{pmatrix}
+\end{aligned}
+\right\}
+\Rightarrow
+\Delta_k^{(D)}f_{k,*}
+=
+f_{k-1,B}\Delta_k^{(C)}.
+\label{buch:homologie:matrixform}
+\end{equation}
+Für die induzierte Abbildung in Homologie ist ausschliesslich der
+Block $f_{k,Z}$ notwendig, die Matrix von $H_k(f)$ in der gewählten
+Basis von $H_k(C)$ bzw.~$H_k(D)$ ist also genau die Matrix $f_{k,Z}$.
+
+
+Wie Abbildung~\ref{buch:homologie:fig:komplexbasis} können die
+Basisvektoren $c_*$ in $C_k$ so gewählt werden, dass sie vom Randoperator
+$\partial_k$ auf die Basisvektoren von $Z_{k-1}$ abgebildet werden.
+Bei dieser Wahl wird die Matrix $\Delta_k$ eine Einheitsmatrix.
+
+\subsubsection{Spur}
+Wir betrachten jetzt den Fall einer Selbstabbildung $f_*\colon C_*\to C_*$.
+Die Basis soll so gewählt werden, dass $\Delta_k$ eine Einheitsmatrix ist.
+Aus~\eqref{buch:homologie:matrixform} kann man ablesen, dass für diese
+Basiswahl $f_{k,*}=f_{k-1,B}$ gilt.
+Die Matrizen von $f_k$ haben daher die Form
+\[
+f_k
+=
+\begin{pmatrix}
+f_{k,B} & * & * \\
+ 0 & f_{k,Z} & * \\
+ 0 & 0 & f_{k-1,B}
+\end{pmatrix}.
+\]
+Entsprechend ist die Spur
+\begin{equation}
+\operatorname{Spur} f_k
+=
+\operatorname{Spur} f_{k,B}
++
+\operatorname{Spur} f_{k,Z}
++
+\operatorname{Spur} f_{k-1,B}.
+\label{buch:homologie:eqn:spur}
+\end{equation}
+
+
+
diff --git a/buch/chapters/95-homologie/komplex.tex b/buch/chapters/95-homologie/komplex.tex
index 6dd8efb..9787bb2 100644
--- a/buch/chapters/95-homologie/komplex.tex
+++ b/buch/chapters/95-homologie/komplex.tex
@@ -6,9 +6,107 @@
\section{Kettenkomplexe
\label{buch:section:komplex}}
\rhead{Kettenkomplexe}
+Die algebraische Struktur, die in Abschnitt~\ref{buch:subsection:triangulation}
+konstruiert wurde, kann noch etwas abstrakter konstruiert werden.
+Es ergibt sich das Konzept eines Kettenkomplexes.
+Die Triangulation gibt also Anlass zu einem Kettenkomplex.
+So lässt sich zu einem geometrischen Objekt ein algebraisches
+Vergleichsobjekt konstruieren.
+Im Idealfall lassens ich anschliessend geometrische Eigenschaften mit
+algebraischen Rechnungen zum Beispiel in Vektorräumen mit Matrizen
+beantworten.
-\subsection{Randoperator von Simplexen
-\label{buch:subsection:randoperator-von-simplexen}}
+\subsection{Definition
+\label{buch:subsection:kettenkomplex-definition}}
+Die Operation $\partial$, die für Simplizes konstruiert worden ist,
+war linear und hat die Eigenschaft $\partial^2$ gehabt.
+Diese Eigenschaften reichen bereits für Definition eines Kettenkomplexes.
+
+\begin{definition}
+Eine Folge $C_0,C_1,C_2,\dots$ von Vektorräumen über dem Körper $\Bbbk$
+mit einer Folge von linearen Abbildungen
+$\partial_k\colon C_k \to C_{k-1}$, dem {\em Randoperator},
+heisst ein Kettenkomplex, wenn $\partial_{k-1}\partial_k=0$ gilt
+für alle $k>0$.
+\end{definition}
+
+Die aus den Triangulationen konstruieren Vektorräme von
+Abschnitt~\ref{buch:subsection:triangulation} bilden einen
+Kettenkomplex.
+
+XXX nachrechnen: $\partial^2 = 0$ ?
+
+\subsection{Abbildungen
+\label{buch:subsection:abbildungen}}
+Wenn man verschiedene geometrische Objekte mit Hilfe von Triangulationen
+vergleichen will, dann muss man auch das Konzept der Abbildungen zwischen
+den geometrischen Objekten in die Kettenkomplexe transportieren.
+
+Eine Abbildung zwischen Kettenkomplexen muss einerseits eine lineare
+Abbildung der Vektorräume $C_k$ sein, andererseits muss sich eine
+solche Abbildung mit dem Randoperator vertragen.
+Wir definieren daher
+
+\begin{definition}
+Eine Abbildung $f_*$ zwischen zwei Kettenkomplexe $(C_*,\partial^C_*)$ und
+$(D_*,\partial^D_*)$ heisst eine Abbildung von Kettenkomplexen, wenn
+für jedes $k$
+\begin{equation}
+\partial^D_k
+\circ
+f_{k}
+=
+f_{k-1}
+\circ
+\partial^C_k
+\label{buch:komplex:abbildung}
+\end{equation}
+gilt.
+\end{definition}
+
+Die Beziehung~\eqref{buch:komplex:abbildung} kann übersichtlich als
+kommutatives Diagramm dargestellt werden.
+\begin{equation}
+\begin{tikzcd}
+0
+ & C_0 \arrow[l, "\partial_0^C" above]
+ \arrow[d, "f_0"]
+ & C_1 \arrow[l,"\partial_1^C" above]
+ \arrow[d, "f_1"]
+ & C_2 \arrow[l,"\partial_2^C" above]
+ \arrow[d, "f_2"]
+ & \dots \arrow[l]
+ \arrow[l, "\partial_{3}^C" above]
+ & C_{k-1}
+ \arrow[l, "\partial_{k-1}^C" above]
+ \arrow[d, "f_{k-1}"]
+ & C_{k}\arrow[l, "\partial_{k}^C" above]
+ \arrow[d, "f_{k}"]
+ & \dots
+ \arrow[l,"\partial_{k+1}^C" above]
+\\
+0
+ & D_0 \arrow[l, "\partial_0^D" above]
+ & D_1 \arrow[l,"\partial_1^D" above]
+ & D_2 \arrow[l,"\partial_2^D" above]
+ & \dots \arrow[l]
+ \arrow[l, "\partial_{3}^D" above]
+ & D_{k-1}
+ \arrow[l, "\partial_{k-1}^D" above]
+ & D_{k}\arrow[l, "\partial_{k}^D" above]
+ & \dots
+ \arrow[l,"\partial_{k+1}^D" above]
+\end{tikzcd}
+\label{buch:komplex:abbcd}
+\end{equation}
+Die Relation~\eqref{buch:komplex:abbildung} drückt aus, dass man jeden
+den Pfeilen im Diagram~\eqref{buch:komplex:abbcd} folgen kann und
+dabei zwischen zwei Vektorräumen unabhängig vom Weg die gleiche Abbildung
+resultiert.
+
+Die Verfeinerung einer Triangulation erzeugt eine solche Abbildung von
+Komplexen.
+
+
+% XXX simpliziale Approximation
-\subsection{Kettenkomplexe und Morphismen
-\label{buch:subsection:kettenkomplex}}
diff --git a/buch/chapters/95-homologie/mayervietoris.tex b/buch/chapters/95-homologie/mayervietoris.tex
deleted file mode 100644
index 57105f8..0000000
--- a/buch/chapters/95-homologie/mayervietoris.tex
+++ /dev/null
@@ -1,28 +0,0 @@
-%
-% mayervietoris.tex
-%
-% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
-%
-\section{Exaktheit und die Mayer-Vietoris-Folge
-\label{buch:section:mayervietoris}}
-\rhead{Exaktheit und die Mayer-Vietoris-Folge}
-Die Berechnung der Homologie-Gruppen ist zwar im Wesentlichen ein
-kombinatorisches Problem, trotzdem ist eher aufwändig.
-Oft weiss man, wie sich toplogische Räume aus einfacheren Räumen
-zusammensetzen lassen.
-Eine Mannigkfaltigkeit zum Beispiel wird durch die Karten
-definiert, also zusammenziehbare Teilmengen von $\mathbb{R}^n$,
-die die Mannigkfaltigkeit überdecken.
-Das Ziel dieses Abschnittes ist, Regeln zusammenzustellen, mit denen
-man die Homologie eines solchen zusammengesetzten Raumes aus der
-Homologie der einzelnen Teile und aus den ``Verklebungsabbildungen'',
-die die Teile verbinden, zu berechnen.
-
-\subsection{Kurze exakte Folgen von Kettenkomplexen
-\label{buch:subsection:exaktefolgen}}
-
-\subsection{Schlangenlemma und lange exakte Folgen
-\label{buch:subsection:schlangenlemma}}
-
-\subsection{Mayer-Vietoris-Folge
-\label{buch:subsection:mayervietoris}}
diff --git a/buch/chapters/95-homologie/simplex.tex b/buch/chapters/95-homologie/simplex.tex
index 5ca2ca8..3bf1004 100644
--- a/buch/chapters/95-homologie/simplex.tex
+++ b/buch/chapters/95-homologie/simplex.tex
@@ -1,17 +1,17 @@
%
-% simplex.tex -- simplizes und simpliziale Komplexe
+% simplex.tex -- simplizes und Polyeder
%
% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
%
-\section{Simplexe und simpliziale Komplexe
+\section{Simplizes
\label{buch:section:simplexe}}
-\rhead{Simplexe und simpliziale Komplexe}
+\rhead{Simplizes}
Die Idee, das Dreieck und seinen Rand zu unterscheiden verlangt,
dass wir zunächst Dreiecke und deren höherdimensionale Verallgemeinerungen,
die sogenannten Simplizes entwickeln müssen.
-\subsection{Simplexe und Rand
-\label{buch:subsection:simplexe}}
+\subsection{Simplizes und Rand
+\label{buch:subsection:simplices}}
\subsubsection{Rand eines Dreiecks}
Die Inzidenz-Matrix eines Graphen hat einer Kante die beiden Endpunkte
@@ -231,8 +231,127 @@ Vorzeichen zu, die Matrix ist
\]
\end{definition}
+\subsection{Polyeder}
+\begin{figure}
+\centering
+\includegraphics{chapters/95-homologie/images/polyeder.pdf}
+\caption{Aufbau eines zweidimensionalen Polyeders aus
+verschiedenen Simplizes.
+Die Schnittmenge zweier Simplizes muss ein Untersimplex beider Simplizes
+sein.
+Die roten Kreise im linken Bild weisen auf verschiedene Situationen
+hin, wo das diese Bedingung nicht erfüllt ist.
+In rechten Bild sind zusätzliche Simlizes hinzugefügt worden, um
+die Bedingungen eines Polyeders zu erfüllen.
+\label{buch:homologie:figure:polyeder}}
+\end{figure}
+Aus einzelnen Simplizes können jetzt kompliziertere geometrische
+Objekte gebaut werden.
+Ein Graph ist ein Beispiel für ein geometrisches Objekt, welches
+als Vereinigung von 1-Simplizes entsteht.
+Die Vereinigung ist aber nicht beliebig, vielmehr ist die Schnittmenge
+zweier beliebiger 1-Simplizes immer entweder leer, eine Menge
+mit nur einem Vertex oder ein ganzes 1-Simplex.
+
+Dies reicht aber nicht, wie Abbildung~\ref{buch:homologie:polyeder}
+zeigt.
+In einem Graphen dürfen sich Kanten nicht in einem inneren Punkt treffen,
+sondern nur in Endpunkten.
+Verallgemeinert auf höherdimensionale Simplizes kann man dies als die
+Bedingung formulieren, dass die Schnittmenge zweier beliebiger
+Simplizes immer Untersimplizes beider Simplizes sein müssen.
+Wir fassen dies zusammen in der folgenden Definition.
+
+\begin{definition}
+\index{Polyeder}%
+\index{Dimension eines Polyeders}%
+\index{Polyeder, Dimension eines}%
+Ein {\em Polyeder} ist eine Vereingung von endlich vielen Simplizes derart,
+dass die Schnittmenge zweier beliebiger Simplizes immer ein Untersimplex
+beider Simplizes ist.
+Die {\em Dimension} des Polyeders ist die grösste Dimension der darin
+enthaltenen Simplizes.
+\end{definition}
+
+Ein Graph ist nach dieser Definition ein eindimensionales Polyeder.
+Die Mengen in der Abbildung~\ref{buch:homologie:figure:polyeder}
+ist kein Polyeder, kann aber leicht zu einem Polyeder gemacht werden,
+indem man einzelne Kanten mit zusätzlichen Punkten unterteilt.
+Auch müssen die zweidimensionalen Simplizes aufgeteilt werden.
+
+Die Abbildung~\ref{buch:homologie:figure:polyeder} zeigt auch, dass
+die Darstellung einer Punktmenge als Polyeder nicht eindeutig ist.
+Man kann die Kanten und Flächen jederzeit weiter unterteilen, ohne
+dass sich die Gestalt der gesamten Menge dadurch ändert.
\subsection{Triangulation
-\label{buch:subsection:}}
+\label{buch:subsection:triangulation}}
+Unser Ziel ist, geometrische Objekte besser verstehen zu können.
+Dabei sind uns Deformationen ja sogar Knicke egal, es interessiert uns
+nur die ``Gestalt'' des Objekts.
+Entfernungen zwischen Punkten sind ebenfalls von untergeordneter
+Bedeutung, da sie bei Deformation nicht erhalten bleiben.
+Der Begriff des ``topologischen Raumes'' fasst diese Ideen mathematisch
+präzise ein, eine genaue Definition würde aber an dieser Stelle zu weit
+führen.
+Stattdessen beschränken wir uns auf eine Klasse von Punktmengen, die man
+mit Simplizes beschreiben kann.
+
+Ein topologischer Raum zeichnet sich durch einen Nachbarschaftsbegriff
+von Punkte aus, der erlaubt zu definieren, was eine stetige Abbildung ist.
+Ein stetige Abbildungen bildet nahe beeinander liegende Punkte wieder
+auf nahe beeinander liegende Punkte ab.
+Dass nahe liegende Punkte nicht plötzlich auf weit auseinander liegende
+Punkte abgebildet werden gibt die Intuition wieder, dass Deformationen
+möglich sein sollen, dass der Raum dabei aber nicht ``reissen'' darf.
+Zwei topologische Räume $X$ und $Y$ können daher als ``gleichgestaltig''
+betrachtet werden, wenn es zwei stetige Abbildungen $f\colon X\to Y$
+und $g\colon Y\to X$ gibt, die zu einander invers sein.
+Oder wenn sich $X$ stetig auf $Y$ abbilden lässt, so dass auch die
+Umkehrabbildung stetig ist.
+Eine solche Abbildung heisst ein {\em Homöomorphismus}, die beiden Räume
+$X$ und $Y$ heissen {\em homomorph}.
+
+Eine Kugel ist natürlich kein Polyeder, aber sie kann leicht homöomorph
+auf ein dreidimensionales Simplex abgebildet werden.
+
+\begin{beispiel}
+Sei $T$ ein reguläres Tetraeder mit den Ecken auf der dreidimensionalen
+Einheitskugel $B^3$.
+Für jeden Richtungsvektor $x\ne 0$ sei $l(x)$ Entfernung vom Mittelpunkt des
+Tetraeders bis zum Durchstosspunkt einer Geraden durch den Mittelpunkt
+mit Richtungsvektor $x$ durch die Oberfläche des Tetraeders.
+Dann sind die Abbildungen
+\[
+f\colon
+T\to B^3
+:
+x \mapsto\begin{cases}
+\displaystyle
+\frac{x}{l(x)}&\quad\text{für $x\ne 0$}\\
+0&\quad\text{für $x=0$}
+\end{cases}
+\qquad\text{und}\qquad
+g\colon
+B^3\to T
+:
+x \mapsto\begin{cases}
+l(x) x&\quad\text{für $x\ne 0$}\\
+0&\quad\text{für $x=0$}
+\end{cases}
+\]
+zueinander inverse stetige Abbildungen oder Homöomorphismen.
+\end{beispiel}
+
+Im Folgenden sollen daher nur solche topologischen Räume untersucht werden,
+die homöomorph sind zu einem Polyeder.
+Man nennt die homöomorphe Abbildung eines Polyeders auf so einen Raum
+auch eine Triangulation.
+Durch Unterteilung der Simplizes in kleiner Simplizes kann eine solche
+Triangulation beliebig verfeinert werden.
+
+
+
+
diff --git a/buch/chapters/references.bib b/buch/chapters/references.bib
index a5d0201..977bf81 100644
--- a/buch/chapters/references.bib
+++ b/buch/chapters/references.bib
@@ -20,6 +20,12 @@ keywords = "World Wide Web, Search engines, Information retrieval, PageRank, Goo
abstract = "In this paper, we present Google, a prototype of a large-scale search engine which makes heavy use of the structure present in hypertext. Google is designed to crawl and index the Web efficiently and produce much more satisfying search results than existing systems. The prototype with a full text and hyperlink database of at least 24 million pages is available at http://google.stanford.edu/ To engineer a search engine is a challenging task. Search engines index tens to hundreds of millions of Web pages involving a comparable number of distinct terms. They answer tens of millions of queries every day. Despite the importance of large-scale search engines on the Web, very little academic research has been done on them. Furthermore, due to rapid advance in technology and Web proliferation, creating a Web search engine today is very different from three years ago. This paper provides an in-depth description of our large-scale Web search engine — the first such detailed public description we know of to date. Apart from the problems of scaling traditional search techniques to data of this magnitude, there are new technical challenges involved with using the additional information present in hypertext to produce better search results. This paper addresses this question of how to build a practical large-scale system which can exploit the additional information present in hypertext. Also we look at the problem of how to effectively deal with uncontrolled hypertext collections where anyone can publish anything they want."
}
+@book{buch:linalg,
+ title = {Lineare Algebra},
+ author = {Andreas M"uller},
+ url = {https://github.com/AndreasFMueller/LinAlg.git},
+ year = {2010}
+}
@book{buch:mathsem-wavelets,
title = {Mathematisches Seminar Wavelets},
@@ -33,6 +39,13 @@ abstract = "In this paper, we present Google, a prototype of a large-scale searc
year = {2016},
}
+@online{buch:rfc2409,
+ title = {The Internet Key Exchange (IKE)},
+ author = { D. Harkins and D. Carrel},
+ url = {https://datatracker.ietf.org/doc/html/rfc2409},
+ year = {1998}
+}
+
@online{buch:fftw,
title = {Fastest Fourier Transform in the West},
url = {http://www.fftw.org/},