diff options
Diffstat (limited to 'Master/texmf-dist/doc/generic/voss-de/gauss/gauss.tex')
-rw-r--r-- | Master/texmf-dist/doc/generic/voss-de/gauss/gauss.tex | 463 |
1 files changed, 463 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/voss-de/gauss/gauss.tex b/Master/texmf-dist/doc/generic/voss-de/gauss/gauss.tex new file mode 100644 index 00000000000..9f0372e84e0 --- /dev/null +++ b/Master/texmf-dist/doc/generic/voss-de/gauss/gauss.tex @@ -0,0 +1,463 @@ + +\title{\texttt{gauss.sty} - Visualisierung des Gaußschen Eliminationsverfahrens} + + +\author{Herbert Voß} + +\maketitle +\begin{abstract} +Die Zahl der vorhanden \LaTeX{}-Pakete ist sicherlich endlich, wenn +man auch manchmal den gegenteiligen Eindruck hat. Neben den mehr oder +weniger bekannten Paketen gibt es eine erhebliche Anzahl, die einem +großen Anwenderkreis deswegen nicht bekannt sind, weil deren Anwendung +häufig sehr speziell ist. Dazu gehört sicherlich das Paket \texttt{gauss.sty}, +welches nur sehr spezielle Wünsche erfüllt, die im folgenden an Beispielen +beschrieben werden. +\end{abstract} + +\section{Einführung} + +Das Gaußsche Eliminationsverfahren zur Lösung linearer Gleichungssysteme +kann als Standardanwendung innerhalb der Naturwissenschaften bezeichnet +werden. \TeX{} ist dafür bekannt, dass es insbesondere den mathematischen +Zeichensatz hervorragend beherrscht. Dabei kann es in der Darstellung +trotzdem zu erheblichen Problemen kommen, wenn zusätzliche Erläuterungen +zu den einzelnen Rechenschritten erforderlich sind. + +Für diesen Fall bietet das Paket \texttt{gauss.sty} eine spezielle +Unterstützung. Das Paket kann von jedem beliebigen CTAN-Server heruntergeladen +werden (\url{CTAN:/latex/contrib/other/gauss/gauss.sty}), beispielsweise von +\texttt{ftp.dante.de}. Eine entsprechende ausführliche Dokumentation +mit einem zusätzlichen Beispiel im Quellcode findet sich ebenfalls +dort. Das Paket wird in der üblichen Art und Weise in einen bestehenden +\TeX{}-Baum eingebunden. + +\texttt{gauss.sty} verwendet zum Erstellen der diversen Linienzüge +ausschließlich die picture-Umgebung, sodass eine PDF-Ausgabe ohne +weiteres möglich ist. + + +\section{\texttt{gmatrix}-Umgebung} + +In Analogie zum \texttt{amsmath.sty}-Paket wird eine Matrixumgebung +zur Verfügung gestellt, was an sich nichts besonderes ist, wenn man +einmal davon absieht, dass standardmäßig keine Klammerung vorgesehen +ist. Diese kann der Einfachheit halber über einen optionalen Parameter +gesetzt werden, der letztlich bestimmt, welche der Matrixumgebungen +von amsmath benutzt wird: + +\addtolength{\myVSpace}{0.9cm} + +\begin{center}\noindent\begin{tabularx}{1.0\linewidth}{c|X} +Option& +Bedeutung\\ +\hline +\texttt{\xstrut} & +\texttt{\textbackslash{}begin\{gmatrix\}} $\rightarrow $ \texttt{\textbackslash{}begin\{matrix\}} +$\rightarrow $ $\begin{gmatrix} + 1 & 2\\ + 3 & 4 +\end{gmatrix}$\\ +\texttt{\xstrut} v& +\texttt{\textbackslash{}begin\{gmatrix\}{[}v{]}} $\rightarrow $ \texttt{\textbackslash{}begin\{vmatrix\}} +$\rightarrow $ $\begin{gmatrix}[v] + 1 & 2\\ + 3 & 4 +\end{gmatrix}$\\ +\texttt{\xstrut}V& +\texttt{\textbackslash{}begin\{gmatrix\}{[}V{]}} $\rightarrow $ \texttt{\textbackslash{}begin\{Vmatrix\}} +$\rightarrow $ $\begin{gmatrix}[V] + 1 & 2\\ + 3 & 4 +\end{gmatrix}$\\ +\texttt{\xstrut}p& +\texttt{\textbackslash{}begin\{gmatrix\}{[}p{]}} $\rightarrow $ \texttt{\textbackslash{}begin\{pmatrix\}} +$\rightarrow $ $\begin{gmatrix}[p] + 1 & 2\\ + 3 & 4 +\end{gmatrix}$\\ +\texttt{\xstrut}b& +\texttt{\textbackslash{}begin\{gmatrix\}{[}b{]}} $\rightarrow $ \texttt{\textbackslash{}begin\{bmatrix\}} +$\rightarrow $ $\begin{gmatrix}[b] + 1 & 2\\ + 3 & 4 +\end{gmatrix}$\\ +\texttt{\xstrut}B& +\texttt{\textbackslash{}begin\{gmatrix\}{[}B{]}} $\rightarrow $ \texttt{\textbackslash{}begin\{Bmatrix\}} +$\rightarrow $ $\begin{gmatrix}[B] + 1 & 2\\ + 3 & 4 +\end{gmatrix}$\\ +\end{tabularx}\end{center} + +Ohne Parameter ist es die einfache Matrixumgebung von \texttt{amsmath.sty}. +Daneben wird noch der Befehl \texttt{\textbackslash{}newmatrix} angeboten, +der es ermöglicht, weitere Umgebungen mit beliebigen Klammern zu definieren, +beispielsweise: + +\begin{center}\texttt{\textbackslash{}newmatrix\{{]}\}\{{[}\}\{q\}} +$\rightarrow $ \texttt{\textbackslash{}begin\{gmatrix\}{[}q{]}} $\rightarrow $ +\newmatrix{]}{[}{q} +$\begin{gmatrix}[q] + 1 & 2\\ + 3 & 4 +\end{gmatrix}$\end{center} + +Die ersten beiden Parameter geben die Klammerung und der dritte das +Optionskürzel an. Es ist offensichtlich, dass als Kürzel \texttt{v, +V, p, b, B} wenig Sinn machen und \texttt{g} nicht zur Verfügung steht. + + +\section{Zeilen- und Spaltenmarkierungen} + +Die Zählung der Zeilen und Spalten beginnt in der linken oberen Ecke +jeweils bei 0, womit der unteren Ecke dann (Zeilenanzahl-1, Spaltenanzahl-1) +zugeordnet wird. + +Zeilenmarkierungen werden durch den Befehl \texttt{\textbackslash{}rowops} +und Spaltenoperationen durch \texttt{\textbackslash{}colops} eingeleitet. +Für die speziellen Markierungen (Operationen) stehen die folgenden +drei Befehle zur Verfügung + +\noindent\begin{tabularx}{1.0\linewidth}{X|X} +Syntax& +Bedeutung\\ +\hline +\texttt{\textbackslash{}add{[}<Summand>{]}\{<Z/S>\}\{<Z/S>\}}& +Gibt eine Additionsmarkierung für entsprechende Zeilen/Spalten \texttt{<Z/S>} +aus\\ +\texttt{\textbackslash{}mult\{<Z/S>\}\{<Faktor>\}}& +Gibt eine Multiplikationsmarkierung für entsprechende Zeile/Spalte +\texttt{<Z/S>} aus\\ +\texttt{\textbackslash{}swap\{<Z/S>\}\{<Z/S>\}}& +Markiert zwei Zeilen/Spalten \texttt{<Z/S>} durch einen Doppelpfeil\\ +\end{tabularx} + + +\subsection{Beispiele} + +In einem linearen Gleichungssystem sollen zwei linear abhängige Zeilen +und Spalten in der Koeffizientenmatrix markiert werden: + +\begin{minipage}[c]{0.45\linewidth}% +$\begin{gmatrix}[b] + 1 & 2 & -3\\ + 0.1 & 0.2 & -1\\ + -0.5 &-1 & \frac{3}{2} +\rowops +\swap{0}{2} +\colops +\swap{0}{1} +\end{gmatrix}$ +\end{minipage}% +\hfill{}\begin{minipage}[c]{0.40\linewidth}% +{\setstretch{0.9}\footnotesize +\begin{verbatim} +$\begin{gmatrix}[b] + 1 & 2 & -3\\ + 0.1 & 0.2 & -1\\ + -0.5 &-1 & \frac{3}{2} +\rowops +\swap{0}{2} +\colops +\swap{0}{1} +\end{gmatrix}$ +\end{verbatim}} +\end{minipage}% + + +Prinzipiell ist der \texttt{\textbackslash{}swap}-Befehl vorgesehen +um zwei Zeilen/Spalten zu markieren, die in ihrer Anordnung vertauscht +werden sollen. + +Würde man dieses Gleichungssystem in der üblichen Art und Weise, beispielsweise +mit Hilfe der Additionsmethode, in eine Dreiecksform bringen wollen, +so bietet sich das Gaußsche Eliminationsverfahren an. Für die ersten +beiden Durchgänge ergibt sich dann: + +\begin{minipage}[c]{0.45\linewidth}% +$\begin{gmatrix}[b] + 1 & 2 & -3\\ + 0.1 & 0.2 & -1\\ + -0.5 &-1 & \frac{3}{2} +\rowops +\mult{0}{\cdot(-0.1)} +\add{0}{1} +\swap{1}{2} +\end{gmatrix}$\\[2ex] +$\begin{gmatrix}[b] + 1 & 2 & -3\\ + -0.5 &-1 & \frac{3}{2}\\ + 0 & 0 & -0.7 +\rowops +\mult{0}{\cdot0.5} +\add{0}{1} +\end{gmatrix}$ +\end{minipage}% +\hfill{}\begin{minipage}[c]{0.40\linewidth}% +{\setstretch{0.9}\footnotesize +\begin{verbatim} +$\begin{gmatrix}[b] + 1 & 2 & -3\\ + 0.1 & 0.2 & -1\\ + -0.5 &-1 & \frac{3}{2} +\rowops +\mult{0}{\cdot(-0.1)} +\add{0}{1} +\swap{1}{2} +\end{gmatrix}$\\[2ex] +... +\end{verbatim}} +\end{minipage}% + + +Eine komplette Anwendung zeigt das folgende Beispiel, welches das +lineare Gleichungssystem $\vec{A}\cdot \vec{x}=\vec{b}$ löst: + +\begin{equation} +\begin{gmatrix}[b] + 1 &-2 & 1 & 2\\ + 2 & 3 &-2 & 3\\ + 4 &-1 & 3 &-1\\ + 3 & 2 &-4 & 5 +\end{gmatrix}\cdot% +\begin{gmatrix}[b] + x\\ + y\\ + z\\ + t +\end{gmatrix}=% +\begin{gmatrix}[b] + 8\\ + 14\\ + 7\\ + 5 +\end{gmatrix} +\end{equation} + +\renewcommand\rowmultlabel[1]{% + |\,\cdot#1% +} +\[ +\begin{gmatrix} + 1 &-2 & 1 & 2 & & 8 \\ % Zeile 0 + 2 & 3 &-2 & 3 & & 14\\ % 1 + 4 &-1 & 3 &-1 & & 7 \\ % 2 + 3 & 2 &-4 & 5 & & 5 \\ % 3 + \\ + 1 &-2 & 1 & 2 & & 8 \\ % 5 + 0 & 7 &-4 &-1 & &-2 \\ % 6 + 0 & 7 &-1 &-9 & &-25\\ % 7 + 0 & 8 &-7 &-1 & &-9 \\ % 8 + \\ + 1 &-2 & 1 & 2 & & 8 \\ % 10 + 0 & 7 &-4 &-1 & &-2 \\ % 11 + 0 & 0 & 3 &-8 & &-23\\ % 12 + 0 & 0 &-17& 1 & &-47\\ % 13 + \\ + 1 &-2 & 1 & 2 & & 8 \\ % 15 + 0 & 7 &-4 &-1 & &-2 \\ % 16 + 0 & 0 & 3 &-8 & &-23\\ % 17 + 0 & 0 & 0 &-\frac{133}{3}& &\frac{-532}{3} +% +\rowops +\mult{0}{(-2)}\add{0}{1} % 1. Matrix +\mult{0}{(-4)}\add{0}{2} +\mult{0}{(-3)}\add{0}{3} +% +\mult{6}{(-1)}\add{6}{7} % 2. Matrix +\mult{6}{(-\frac{8}{7})}\add{6}{8} +% +\mult{12}{\frac{17}{3}}\add{12}{13} % 3. Matrix +\end{gmatrix} +\] + +Die vertikale Ausrichtung ist dabei nicht ganz unproblematisch, denn +einerseits muss alles linksbündig ausgerichtet sein und andererseits +haben die einzelnen Zellen eine unterschiedliche horizontale Breite. +In solchen Fällen erstellt man am besten nicht vier verschiedene Matrizen, +sondern setzt alles in eine einzige ,,gmatrix{}``-Umgebung und markiert +sich dabei einfach die einzelnen Zeilen: + +{%\setstretch{0.9} +\small +\begin{verbatim} +\begin{gmatrix} + 1 &-2 & 1 & 2 & & 8 \\ % Zeile 0 + 2 & 3 &-2 & 3 & & 14\\ % Zeile 1 + 4 &-1 & 3 &-1 & & 7 \\ % Zeile 2 + 3 & 2 &-4 & 5 & & 5 \\ % Zeile 3 + \\ + 1 &-2 & 1 & 2 & & 8 \\ % Zeile 5 + 0 & 7 &-4 &-1 & &-2 \\ % Zeile 6 + 0 & 7 &-1 &-9 & &-25\\ % Zeile 7 + 0 & 8 &-7 &-1 & &-9 \\ % Zeile 8 + \\ + 1 &-2 & 1 & 2 & & 8 \\ % Zeile 10 + 0 & 7 &-4 &-1 & &-2 \\ % Zeile 11 + 0 & 0 & 3 &-8 & &-23\\ % Zeile 12 + 0 & 0 &-17& 1 & &-47\\ % Zeile 13 + \\ + 1 &-2 & 1 & 2 & & 8 \\ % Zeile 15 + 0 & 7 &-4 &-1 & &-2 \\ % Zeile 16 + 0 & 0 & 3 &-8 & &-23\\ % Zeile 17 + 0 & 0 & 0 &-\frac{133}{3}& &\frac{-532}{3} +% +\rowops +\mult{0}{(-2)}\add{0}{1} % 1. Matrix +\mult{0}{(-4)}\add{0}{2} +\mult{0}{(-3)}\add{0}{3} +% +\mult{6}{(-1)}\add{6}{7} % 2. Matrix +\mult{6}{(-\frac{8}{7})}\add{6}{8} +% +\mult{12}{\frac{17}{3}}\add{12}{13} % 3. Matrix +\end{gmatrix} +\end{verbatim}} + +Schwieriger wird es, wenn zusätzlich eine Klammerung und Nummerierung +der einzelnen Teilmatrizen gewünscht wird. In diesem Fall kann auf +die bekannte \texttt{tabular}-Umgebung zurückgegriffen werden, wobei +nur eine Spalte definiert wird. + +\begin{tabular}{p{\columnwidth}} +\begin{equation} + \begin{gmatrix}[p] + 1 &-2 & 1 & 2 \\ % Zeile 0 + 2 & 3 &-2 & 3 \\ % 1 + 4 &-1 & 3 &-1 \\ % 2 + 3 & 2 &-4 & 5 % 3 + \rowops + \mult{0}{(-2)}\add{0}{1} + \mult{0}{(-4)}\add{0}{2} + \mult{0}{(-3)}\add{0}{3} + \end{gmatrix} +\end{equation} +\\ % Ende 1. Matrix +\begin{equation} + \begin{gmatrix}[p] + 1 &-2 & 1 & 2 \\ % Zeile 0 + 0 & 7 &-4 &-1 \\ % 1 + 0 & 7 &-1 &-9 \\ % 2 + 0 & 8 &-7 &-1 % 3 + \rowops + \mult{1}{(-1)}\add{1}{2} + \mult{1}{(-\frac{8}{7})}\add{1}{3} + \end{gmatrix} +\end{equation} +\end{tabular} + + +{%\setstretch{0.9} +\small +\begin{verbatim} +\begin{tabular}{p{\columnwidth}} +\begin{equation} + \begin{gmatrix}[p] + 1 &-2 & 1 & 2 \\ % Zeile 0 + 2 & 3 &-2 & 3 \\ % 1 + 4 &-1 & 3 &-1 \\ % 2 + 3 & 2 &-4 & 5 % 3 + \rowops + \mult{0}{(-2)}\add{0}{1} + \mult{0}{(-4)}\add{0}{2} + \mult{0}{(-3)}\add{0}{3} + \end{gmatrix} +\end{equation} +\\ % Ende 1. Matrix +\begin{equation} + \begin{gmatrix}[p] + 1 &-2 & 1 & 2 \\ % Zeile 0 + 0 & 7 &-4 &-1 \\ % 1 + 0 & 7 &-1 &-9 \\ % 2 + 0 & 8 &-7 &-1 % 3 + \rowops + \mult{1}{(-1)}\add{1}{2} + \mult{1}{(-\frac{8}{7})}\add{1}{3} + \end{gmatrix} +\end{equation} +\end{tabular} +\end{verbatim}} + +Insbesondere die \texttt{mult}-Funktion kann auch für normale Gleichungsumformungen +benutzt werden, wenn man diese innerhalb der \texttt{gmatrix}-Umgebung +beschreibt. + +\renewcommand\rowmultlabel[1]{\left|\,#1\right.} +\begin{equation}\label{schwingkreis} + \begin{gmatrix} + \displaystyle% + \frac{1}{C}\int i\cdot dt+L\cdot\frac{di}{dt}+R\cdot i\hfill & = & 0\\ + \displaystyle% + \frac{1}{C}\cdot i+L\cdot\frac{d^2i}{dt^2}+R\cdot\frac{di}{dt}\hfill & = &0\\ + \displaystyle% + \frac{d^2i}{dt^2}+\frac{R}{L}\cdot\frac{di}{dt}+\frac{1}{LC}\cdot i\hfill & = & 0\\ + \\ + \displaystyle% + \ddot{i}+\delta\dot{i}+\omega_0^2i\hfill & = &0 + \rowops + \mult{0}{\mbox{Differentiation}} + \mult{1}{:L\mbox{ und sortieren}} + \mult{2}{\displaystyle\frac{R}{L}=\delta;\ \frac{1}{LC}=\omega_0^2} + \end{gmatrix} +\end{equation} + + +Gl.\ref{schwingkreis} ergibt sich durch folgende Befehlssequenzen, +wobei der erste Befehl im folgenden Abschnitt beschrieben wird: + +{%\setstretch{0.9} +\footnotesize +\begin{verbatim} +\renewcommand\rowmultlabel[1]{\left|\,#1\right.} +\begin{equation} + \displaystyle% + \frac{1}{C}\int i\cdot dt+L\cdot\frac{di}{dt}+R\cdot i\hfill & = & 0\\ + [ ... ] + \displaystyle% + \ddot{i}+\delta\dot{i}+\omega_0^2i\hfill & = &0 + \rowops + \mult{0}{\mbox{Differentiation}} + \mult{1}{:L\mbox{ und sortieren}} + \mult{2}{\displaystyle\frac{R}{L}=\delta;\ \frac{1}{LC}=\omega_0^2} + \end{gmatrix} +\end{equation} +\end{verbatim}} + + +\section{Weitere Funktionen} + +Das Paket \texttt{gauss} gestattet die Neudefinition der Label für +die Additions- bzw. Multiplikationsmarkierungen, sodass beispielsweise +ein Multiplikationspunkt standardmäßig gesetzt werden kann. + +\begin{verbatim} +\renewcommand{\rowmultlabel}[1]{|\,\cdot#1} +\end{verbatim} + +Für die Zeilen und Spalten gibt es dabei unterschiedliche Label, die +in der üblichen Weise überschrieben werden können. + +\begin{verbatim} +\rowaddlabel +\rowmultlabel +\coladdlabel +\colmultlabel +\end{verbatim} + + +\section{Hinweise} + +Bei der Anwendung der gmatrix-Umgebung ist im wesentlichen nur zu +beachten, dass die letzte Zeile keinen \texttt{\textbackslash{}\textbackslash{}}-Befehl +aufweisen darf. Die letzte Zeile wird auch für die Berechnung der +einzelnen Spaltenbreiten herangezogen, woraus folgt, dass alle Spalten +vorhanden sein müssen. Die jeweilige Höhe einer Zeile orientiert sich +nur an der Höhe der einzelnen Spalten, nicht jedoch an der Höhe der +Label. + +Es ist grundsätzlich darauf zu achten, dass bei gleichzeitiger Verwendung +von \texttt{amsmath.sty} dieses vor \texttt{gauss.sty} geladen wird. + + +\address{Herbert}{Voß}{Wasgenstr. 21\\14129 Berlin\\voss@perce.de} |