diff options
364 files changed, 25311 insertions, 3386 deletions
diff --git a/buch/SeminarSpezielleFunktionen.tex b/buch/SeminarSpezielleFunktionen.tex new file mode 100644 index 0000000..4ee1900 --- /dev/null +++ b/buch/SeminarSpezielleFunktionen.tex @@ -0,0 +1,7 @@ +% +% buch.tex -- Buch zum mathematischen Seminar Spezielle Funktionen +% +% (c) 2022 Prof. Dr. Andreas Mueller, OST Ostschweizer Fachhochschule +% +\def\IncludeBookCover{1} +\input{common/content.tex} diff --git a/buch/chapters/000-einleitung/Makefile.inc b/buch/chapters/000-einleitung/Makefile.inc index 5840050..2c4e046 100644 --- a/buch/chapters/000-einleitung/Makefile.inc +++ b/buch/chapters/000-einleitung/Makefile.inc @@ -5,4 +5,7 @@ # CHAPTERFILES += \ - chapters/000-einleitung/chapter.tex + chapters/000-einleitung/chapter.tex \ + chapters/000-einleitung/funktionsbegriff.tex \ + chapters/000-einleitung/speziellefunktionen.tex \ + chapters/000-einleitung/inhalt.tex diff --git a/buch/chapters/000-einleitung/chapter.tex b/buch/chapters/000-einleitung/chapter.tex index 559a468..e53eafb 100644 --- a/buch/chapters/000-einleitung/chapter.tex +++ b/buch/chapters/000-einleitung/chapter.tex @@ -7,110 +7,8 @@ \lhead{Einleitung} \rhead{} \addcontentsline{toc}{chapter}{Einleitung} -Eine Polynomgleichung wie etwa -\begin{equation} -p(x) = ax^2+bx+c = 0 -\label{buch:einleitung:quadratisch} -\end{equation} -kann manchmal dadurch gelöst werden, dass man die Nullstellen errät -und damit eine Faktorisierung $p(x)=a(x-x_1)(x-x_2)$ konstruiert. -Doch im Allgemeinen wird man die Lösungsformel für quadratische -Gleichungen verwenden, die auf quadratischem Ergänzen basiert. -Es erlaubt die Gleichung~\eqref{buch:einleitung:quadratisch} umzwandeln in -\[ -\biggl(x + \frac{b}{2a}\biggr)^2 -= --\frac{c}{a} + \frac{b^2}{4a^2} -= -\frac{b^2-4ac}{4a^2}. -\] -Um diese Gleichung nach $x$ aufzulösen, muss man die inverse Funktion -der Quadratfunktion zur Verfügung haben, die Wurzelfunktion. -Dies ist wohl das älteste Beispiel einer speziellen Funktion, -die man zu dem Zweck eingeführt hat, spezielle algebraische Gleichungen -lösen zu können. -Sie liefert die bekannte Lösungsformel -\[ -x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} -\] -für die quadratische Gleichung. - -Durch die Definition der Wurzelfunktion ist das Problem der numerischen -Berechnung der Nullstelle natürlich noch nicht gelöst, aber man hat -ein handliches mathematisches Symbol gewonnen, mit dem man die Lösungen -übersichtlich beschreiben und algebraisch manipulieren kann. -Diese Idee steht hinter allen weiteren in diesem Buch diskutierten -Funktionen: wann immer ein wichtiges mathematisches Konzept sich nicht -direkt durch die bereits entwickelten Funktionen ausdrücken lässt, -erfindet man dafür eine neue Funktion oder Familie von Funktionen. -Beispielsweise hat sich die Darstellung von Zahlen $x$ als Potenzen -einer gemeinsamen Basis, zum Beispiel $x=10^y$, als sehr nützlich -herausgestellt, um Multiplikationen auf die von Hand leichter -ausführbaren Additionen zurückzuführen. -Man braucht also die Fähigkeit, die Abhängigkeit des Exponenten $y$ -von $x$ auszudrücken, mit anderen Worten, man braucht die Logarithmusfunktion. - -Spezielle Funktionen wie die Wurzelfunktion und die Logarithmusfunktion -werden also zu Bausteinen, die in der Lösung algebraischer oder auch -analytischer Probleme verwendet werden können. -Die Erfahrung zeigt, dass diese Funktionen immer wieder nützlich -sind, es lohnt sich also, ihre Berechnung zum Beispiel in einer -Bibliothek zu implementieren. -Spezielle Funktionen sind in diesem Sinn eine mathematische Form -des informatischen Prinzips des ``code reuse''. - -Die trigonometrischen Funktionen kann man als Lösungen des geometrischen -Problems der Parametrisierung eines Kreises verstehen. -Alternativ kann man $\sin x$ und $\cos x$ als spezielle Lösungen der -Differentialgleichung $y''=-y$ verstehen. -Viele andere Funktionen wie die hyperbolischen Funktionen oder die -Bessel-Funktionen sind ebenfalls Lösungen spezieller Differentialgleichungen. -Auch die Theorie der partiellen Differentialgleichungen gibt Anlass -zu interessanten Lösungsfunktionen. -Die Separation des Poisson-Problems in Kugelkoordinaten führt zum Beispiel -auf die Kugelfunktionen, mit denen sich beliebige Funktionen auf einer -Kugeloberfläche analysieren und synthetisieren lassen. - -Die Lösungen einer linearer gewöhnlicher Differentialgleichung können -oft mit Hilfe von Potenzreihen dargestellt werden. -So kann man zum Beispiel die Potenzreihenentwicklung der Exponentialfunktion -und der trigonometrischen Funktionen finden. -Die Konvergenz einer Potenzreihe wird aber durch Singularitäten -eingeschränkt. -Komplexe Potenzreihen ermöglichen aber, solche Stellen zu ``umgehen''. -Die Theorie der komplex differenzierbaren Funktionen bildet einen -allgemeinen Rahmen, mit solchen Funktionen umzugehen und ist zum -Beispiel nötig, um die Bessel-Funktionen der zweiten Art zu konstruieren, -die ebenfalls Lösungen ger Bessel-Gleichung sind, aber bei $x=0$ -eine Singularität aufweisen. - -Die Stammfunktion $F(x)$ einer gegebenen Funktion $f(x)$ ist natürlich -auch die Lösung der besonders einfachen Differentialgleichung $F'=f$. -Ein bekanntes Beispiel ist die Stammfunktion der Wahrscheinlichkeitsdichte -\[ -\varphi(x) -= -\frac{1}{\sqrt{2\pi}\sigma} e^{-\frac{(x-\mu)^2}{2\sigma^2}}, -\] -der Normalverteilung, für die aber keine geschlossene Darstellung -mit bekannten Funktionen bekannt ist. -Sie kann aber durch die Fehlerfunktion -\[ -\operatorname{erf}(x) -= -\frac{2}{\sqrt{\pi}} \int_0^x e^{-t^2}\,dt -\] -dargestellt werden. -Mit dem Risch-Algorithmus kann man nachweisen, dass es tatsächlich -keine Möglichkeit gibt, die Stammfunktion in geschlossener Form durch -die bereits bekannten Funktionen darzustellen, die Definition einer -neuen speziellen Funktion ist also der einzige Ausweg. -Die Fehlerfunktion ist heute in der Standardbibliothek enthalten auf -gleicher Stufe wie Wurzeln, trigonometrische Funktionen, -Exponentialfunktionen oder Logarithmen. - -Die nachstehenden Kapitel sollen die vielfältigen Arten illustrieren, -wie diese Prinzipien zu neuen und nützlichen speziellen Funktionen -und ihren Anwendungen führen können. +\input{chapters/000-einleitung/funktionsbegriff.tex} +\input{chapters/000-einleitung/speziellefunktionen.tex} +\input{chapters/000-einleitung/inhalt.tex} diff --git a/buch/chapters/000-einleitung/funktionsbegriff.tex b/buch/chapters/000-einleitung/funktionsbegriff.tex new file mode 100644 index 0000000..e684f82 --- /dev/null +++ b/buch/chapters/000-einleitung/funktionsbegriff.tex @@ -0,0 +1,74 @@ +% +% Der Funktionsbegriff +% +\subsection*{Der mathematische Funktionsbegriff} +Der moderne mathematische Funktionsbegriff ist die Krönungn einer +langen Entwicklung. +Erste Ansätze sind in der Darstellung voneinander abhängiger Grössen +in einem Koordinatensystem durch Nikolaus von Oresme im 14.~Jahrhundert +zu erkennen. +Dieser Ansatz, Funktionen einfach nur als Kurven zu betrachten, +war bis ins 17.~Jahrhundert verbreitet. +Der Begriff {\em Funktion} selbst geht wahrscheinlich auf Leibniz +zurück. + +Euler verwendete den Begriff oft austauschbar für zwei im Prinzip +verschiedene Vorstellungen. +Einerseits sah er jeden ``analytischen Ausdruck'' in einer Variablen +$x$ als eine Funktion an, andererseits betrachtete er eine in einem +Koordinatensystem freihändig gezeichnete Kurve als eine Funktion. +Heute unterscheiden wir zwischen der Funktion, also der Zuordnung +von $x$ zu den Funktionswerten $f(x)$ und dem Graphen, also der +von Paaren $(x,f(x))$ gebildeten Kurve in einem Koordinatensystem. +Nach letzterer Vorstellung ist auch die Wurzelfunktion, +die Umkehrfunktion der Quadratfunktion, $f(x)=x^2$ eine Funktion. +Da zu jedem Argument zwei verschiedene Werte $\pm\sqrt{x}$ +für die Wurzel möglich sind, lässt sich diese ``Funktion'' nicht +durch einen ``analytischen Ausdruck'' beschrieben. +Euler beschrieb diese Situation als {\em mehrdeutige Funktion}. + +Was ``analytische Ausdrücke'' alles umfassen sollen, ist ebenfalls +nicht scharf definiert. +Dahinter verbergen sich viele versteckte Annahmen, zum Beispiel +dass Funktionen automatisch stetig und möglicherweise sogar +differenzierbar sind. +Für Lagrange waren nur Funktionen akzeptabel, die durch Potenzreihen +definiert waren, solche Funktionen nennen wir heute {\em analytisch}. +Die Wahl von Potenzreihen zur Definition von Funktion ist einerseits +willkürlich, warum nicht Linearkombinationen von trigonometrischen +Funktionen? +Andererseits gibt es beliebig oft differenzierbare Funktionen, +deren Potenzreihe nicht gegen die Funktion konvergiert. + +Im 19.~Jahrhundert erfuhr die Analysis eine Reformierung. +Ausgehend vom nun präzis gefassten Grenzwertbegriff wurden Stetigkeit +und Differenzierbarkeit als eigenständige Eigenschaften von +Funktionen erkannt. +Eine Funktion war jetzt nur noch eine eindeutige Zuordnung +$x\mapsto f(x)$. +Stetigkeit ist die Eigenschaft, dass der Grenzwert in einem +Punkt des Definitionsbereichs existiert und mit dem Funktionswert +in diesem Punkt übereinstimmt. +Später wurden auch Differenzierbarkeit und Integrierbarkeit als +Eigenschaften von Funktionen erkannt, die vorhanden sein können, +aber nicht müssen. + +Der nun präzis gefasste Funktionsbegriff ist nur selten direkt anwendbar. +In der Physik treten Funktionen als Lösungen von Differentialgleichungen +auf. +Sie sind also immer mindestens differenzierbar, haben aber typischerweise +noch viele weitere Eigenschaften. +So sind zum Beispiel die Lösungen der Differentialgleichung +$y''=-n^2 y$ auf dem Intervall $[-\pi,\pi]$ die Funktionen +$\sin(nx)$ und $\cos(nx)$ für $n\in\mathbb{N}$. +Wie Fourier herausgefunden hat, lässt sich jede stetige $2\pi$-periodische +Funktion als Linearkombination dieser Funktionen approximieren. + +Eine Familie von Differentialgleichungen, die durch wenige Parameter +charakterisiert ist, führt auch zu einer Familie von Lösungsfunktionen, die +sich durch die gleichen Parameter beschreiben lassen. +Sie ist unmittelbar nützlich, da sie jedes Anwendungsproblem löst, +welches durch diese Differentialgleichung modelliert werden kann. +In diesem Sinne ist eine solche spezielle Funktionenfamilie interessanter +als eine beliebige differenzierbare Funktion. + diff --git a/buch/chapters/000-einleitung/inhalt.tex b/buch/chapters/000-einleitung/inhalt.tex new file mode 100644 index 0000000..1b9f35b --- /dev/null +++ b/buch/chapters/000-einleitung/inhalt.tex @@ -0,0 +1,153 @@ +% +% Was ist zu erwarten +% +\subsection*{Was ist zu erwarten?} +Spezielle Funktionen wie die eben angedeuteten werden also zu +Bausteinen, die in der Lösung algebraischer oder auch analytischer +Probleme verwendet werden können. +Die Erfahrung zeigt, dass diese Funktionen immer wieder nützlich +sind, es lohnt sich also, ihre Berechnung zum Beispiel in einer +Bibliothek zu implementieren. +Spezielle Funktionen sind in diesem Sinn eine mathematische Form +des informatischen Prinzips des ``code reuse''. + +Die nachstehenden Kapitel sollen die vielfältigen Arten illustrieren, +wie diese Prinzipien zu neuen und nützlichen speziellen Funktionen +und ihren Anwendungen führen können. +Hier eine kurze Übersicht über ihren Inhalt. +\begin{enumerate} +\item +Potenzen und Wurzeln: Potenzen und Polynome sind die einfachsten +Funktionen, die sich unmittelbar aus den arithmetischen Operationen +konstruieren lassen. +Die zugehörigen Umkehrfunktionen sind die Wurzelfunktionen, +sie lösen gewisse algebraische Gleichungen. +Aus den Polynomen lassen sich weiter rationale Funktionen und +Potenzreihen konstruieren, die als wichtige Werkzeuge zur Konstruktion +spezieller Funktionen in späteren Kapiteln sind. +\item +Exponentialfunktion und Exponentialgleichungen. +Die Exponentialfunktion entsteht aus dem Zinsproblem durch Grenzwert, +die Jost Bürgi zur Berechnung seiner Logarithmentabelle verwendet hat. +Hier zeigt sich die Nützlichkeit spezieller Funktionen als Grundlage +für die numerische Rechnung: Logarithmentafeln waren über Jahrhunderte +das zentrale Werkzeug für die Durchführung numerischer Rechnung. +Besonders nützlich ist aber auch die Potenzreihendarstellung der +Exponentialdarstellung, die meist für die numerische Berechnung +verwendet wird. +Die Lambert-$W$-schliesslich löst gewisse Exponentialgleichungen. +\item +Spezielle Funktionen aus der Geometrie. +Dieses Kapitel startet mit der langen Geschichte der trigonometrischen +Funktionen, den wahrscheinlich wichtigsten speziellen Funktionen für +geometrische Anwendungen. +Es führt aber auch die Kegelschnitte, die hyperbolischen Funktionen +und andere Parametrisierungen der Kegelschnitte ein, die später +wichtig werden. +Es beginnt auch die Diskussion einiger geometrischer Fragestellungen +die sich oft nur durch Definition neuer spezieller Funktionen lösen +lassen, wie zum Beispiel das Problem der Kurvenlänge auf einer +Ellipse. +\item +Spezielle Funktionen und Rekursion. +Viele Probleme lassen eine Lösung in rekursiver Form zu. +Zum Beispiel lässt sich die Fakultät durch eine Rekursionsbeziehung +vollständig definieren. +Dieses Kapitel zeigt, wie sich die Fakultät zur Gamma-Funktion +$\Gamma(x)$ erweitern lässt, die für beliebige reelle $x$ +definiert ist. +Sie ist aber nur die Spitze eines Eisbergs von weiteren wichtigen +Funktionen. +Die Beta-Integrale sind ebenfalls durch Rekursionsbeziehungen +charakterisiert, lassen sich durch Gamma-Funktionen ausdrücken und +haben als Anwendung die Verteilungsfunktionen der Ordnungsstatistiken. +Lineare Differenzengleichungen sind Rekursionsgleichungen, die sich +besonders leicht mit Potenzfunktionen lösen lassen. +Alle diese Funktionen sind Speziallfälle einer sehr viel grösseren +Klasse von Funktionen, den hypergeometrischen Funktionen, die sich +durch eine Rekursionsbeziehung der Koeffizienten ihrer +Potenzreihenentwicklung auszeichnen. +Es wird sich in nächsten Kapitel zeigen, dass sie besonders gut +geeignet sind, Lösungen von linearen Differentialgleichungen zu +beschreiben. +\item +Differentialgleichungen. +Lösungsfunktionen von Differentialgleichungen sind meistens die +erste Anwendung, in der man die klassschen speziellen Funktionen +kennenlernt. +Sie entstehen mit Hilfe der Potenzreihenmethode und können daher +als hypergeometrische Funktionen geschrieben werden. +Sie sind aber von derart grosser Bedeutung für die Anwendung, +dass viele dieser Funktionen als eigenständige Funktionenfamilien +definiert worden sind. +Die Bessel-Funktionen werden in diesem Zusammenhang eingehend +behandelt. +\item +Integrale können als Lösungen sehr spezieller Differentialgleichungen +betrachtet werden. +Eine Stammfunktion $F(x)$ der Funktion $f(x)$ hat als Ableitung die +ursprüngliche Funktion: $F'(x)=f(x)$. +Während Ableiten ein einfacher, algebraischer Prozess ist, +scheint das Finden einer Stammfunktion sehr viel anspruchsvoller +zu sein. +Spezielle Funktionen sinnvoll sein, wenn eine Stammfunktion sich nicht +mit den bereits definierten Funktionen ausdrücken lässt. +Es gibt eine systematische Methode zu entscheiden, ob eine Stammfunktion +sich durch ``elementare Funktionen'' ausdrücken lässt, sie wird oft +der Risch-Algorithmus genannt. +\item +Orthogonalität. +Mit dem Integral lassen sich auch für Funktionen Skalarprodukte +definieren. +Orthogonalität zwischen Funktionen zeichnet dann Funktionen aus, die +sich besonders gut zur Darstellung beliebiger stetiger oder +integrierbarer Funktionen eignen. +Die Fourier-Theorie und ihre vielen Varianten sind ein Resultat. +Besonders einfache orthogonale Funktionenfamilien sind die orthogonalen +Polynome, die ausserdem zu ausserordentlich genauen numerischen +Integrationsverfahren führen. +\item +Integraltransformationen. +Die trigonometrischen Funktionen sind die Grundlage der Fourier-Theorie. +Doch auch andere spezielle Funktionenfamilien können ähnlich +nützliche Integraltransformationen hergeben. +Die Bessel-Funktionen stellen sich in diesem Zusammenhang als die +Polarkoordinaten-Variante der Fourier-Theorie in der Ebene heraus. +\item +Funktionentheorie. +Einige Eigenschaften der Lösungen gewöhnlicher Differentialgleichung +sind allein mit der reellen Analysis nicht zu bewältigen. +In der Welt der speziellen Funktionen hat man aber strengere +Anforderungen an Funktionen, sie lassen sich immer als Funktionen +einer komplexen Variablen verstehen. +Dieses Kapitel stellt die wichtigsten Eigenschaften komplex +differenzierbarer Funktionen zusammen und wendet sie zum Beispiel +auf das Problem an, weitere Lösungen der Bessel-Differentialgleichung +zu finden. +\item +Partielle Differentialgleichungen sind eine der wichtigsten Quellen +der gewöhnlichen Differentialgleichungen, die nur mit speziellen +Funktionen gelöst werden können. +So führen rotationssymmetrische Wellenprobleme in der Ebene +ganz natürlich auf die Besselsche Differentialgleichung und damit +auf die Bessel-Funktionen als Lösungsfunktionen. +\item +Elliptische Funktionen. +Einige der in Kapitel~\ref{buch:chapter:geometrie} angesprochenen +Fragestellungen wie der Berechnung der Bogenlänge auf einer Ellipse +lassen sich mit keiner der bisher vorgestellten Technik lösen. +In diesem Kapitel werden die elliptischen Integrale und die +zugehörigen Umkehrfunktionen vorgestellt. +Die Jacobischen elliptischen Funktionen verallgemeinern +die trigonometrischen Funktionen und können gewisse nichtlineare +Differentialgleichungen lösen. +Sie finden auch Anwendungen im Design elliptischer Filter +(siehe Kapitel~\ref{chapter:ellfilter}). +\end{enumerate} + +Natürlich ist damit das weite Gebiet der speziellen Funktionen +nur ganz grob umrissen. +Weitere Aspekte und Anwendungen werden in den Artikeln im zweiten +Teil vorgestellt. +Eine Übersicht dazu findet der Leser auf Seite~\pageref{buch:uebersicht}. + diff --git a/buch/chapters/000-einleitung/speziellefunktionen.tex b/buch/chapters/000-einleitung/speziellefunktionen.tex new file mode 100644 index 0000000..8ca71bc --- /dev/null +++ b/buch/chapters/000-einleitung/speziellefunktionen.tex @@ -0,0 +1,150 @@ +% +% Spezielle Funktionen +% +\subsection*{Spezielle Funktionen} +Der abstrakte Funktionsbegriff auferlegt einer Funktion nur ganz wenige +Einschränkungen. +Damit lässt sich zwar eine mathematische Theorie entwickeln, die +klärt, unter welchen Umständen zusätzliche Eigenschaften wie Stetigkeit +und Differenzierbarkeit zu erwarten sind. +Allgemeine Berechnungen kann man mit diesem Begriff aber nicht durchführen, +seine Anwendbarkeit ist beschränkt. +Praktisch nützlich wird der Funktionsbegriff also erst, wenn man ihn +einschränkt auf anwendungsrelevante Eigenschaften. +Die Mathematik hat in ihrer Geschichte genau dies immer wieder +getan, wie im Folgenden kurz skizziert werden soll. + +% +% Polynome und Wurzeln +% +\subsubsection{Polynome und Wurzeln} +Eine Polynomgleichung wie etwa +\begin{equation} +p(x) = ax^2+bx+c = 0 +\label{buch:einleitung:quadratisch} +\end{equation} +kann manchmal dadurch gelöst werden, dass man die Nullstellen errät +und damit eine Faktorisierung $p(x)=a(x-x_1)(x-x_2)$ konstruiert. +Doch im Allgemeinen wird man die Lösungsformel für quadratische +Gleichungen verwenden, die auf quadratischem Ergänzen basiert. +Es erlaubt die Gleichung~\eqref{buch:einleitung:quadratisch} umzwandeln in +\[ +\biggl(x + \frac{b}{2a}\biggr)^2 += +-\frac{c}{a} + \frac{b^2}{4a^2} += +\frac{b^2-4ac}{4a^2}. +\] +Um diese Gleichung nach $x$ aufzulösen, muss man die inverse Funktion +der Quadratfunktion zur Verfügung haben, die Wurzelfunktion. +Dies ist wohl das älteste Beispiel einer speziellen Funktion, +die man zu dem Zweck eingeführt hat, spezielle algebraische Gleichungen +lösen zu können. +Sie liefert die bekannte Lösungsformel +\[ +x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} +\] +für die quadratische Gleichung. + +% +% Exponential- und Logarithmusfunktion +% +\subsubsection{Exponential- und Logarithmusfunktion} +Durch die Definition der Wurzelfunktion ist das Problem der numerischen +Berechnung der Nullstelle natürlich noch nicht gelöst, aber man hat +ein handliches mathematisches Symbol gewonnen, mit dem man die Lösungen +übersichtlich beschreiben und algebraisch manipulieren kann. +Diese Idee steht hinter allen weiteren in diesem Buch diskutierten +Funktionen: wann immer ein wichtiges mathematisches Konzept sich nicht +direkt durch die bereits entwickelten Funktionen ausdrücken lässt, +erfindet man dafür eine neue Funktion oder Familie von Funktionen. +Beispielsweise hat sich die Darstellung von Zahlen $x$ als Potenzen +einer gemeinsamen Basis, zum Beispiel $x=10^y$, als sehr nützlich +herausgestellt, um Multiplikationen auf die von Hand leichter +ausführbaren Additionen zurückzuführen. +Man braucht also die Fähigkeit, die Abhängigkeit des Exponenten $y$ +von $x$ auszudrücken, mit anderen Worten, man braucht die +Logarithmusfunktion. + +Auch die Logarithmusfunktion erlaubt nicht, die Gleichungen $xe^x=y$ +nach $x$ aufzulösen. +Solche Exponentialgleichungen treten in verschiedenster Form auch in +Anwendungen auf. +Die Lambert-$W$-Funktion, die in Abschnitt~\ref{buch:section:lambertw} +eingeführt wird, löst genau diese Aufgabe. + + +% +% Geometrisch definierte spezielle Funktionen +% +\subsubsection{Geometrisch definierte spezielle Funktionen} +Die trigonometrischen Funktionen entstanden bereits im Altertum +um das Problem der Vermessung der Himmelskugel zu lösen. +Man kann sie aber auch zur Parametrisierung eines Kreises oder +zur Beschreibung von Drehungen mit Drehmatrizen verwenden. +Sie stellen auch eine Zusammenhang zwischen der Bogenlänge +entlang eines Kreises und der zugehörigen Sehne her. +Diese Ideen lassen sich auf eine grössere Klasse von Kurven, +nämlich die Kegelschnitte verallgemeinern. +Diese werden in Kapitel~\ref{buch:chapter:geometrie} eingeführt. +Die Parametrisierungen der Hyperbeln zum Beispiel führt auf +hyperbolische Funktion und macht eine Verbindung zu Exponential- +und Logarithmusfunktion sichtbar. + +% +% Lösungen von Differentialgleichungen +% +\subsubsection{Lösungen von Differentialgleichungen} +Alternativ kann man $\sin x$ und $\cos x$ als spezielle Lösungen der +Differentialgleichung $y''=-y$ verstehen. +Viele andere Funktionen wie die hyperbolischen Funktionen oder die +Bessel-Funktionen sind ebenfalls Lösungen spezieller Differentialgleichungen. + +Auch die Theorie der partiellen Differentialgleichungen, auf die +im Kapitel~\ref{buch:chapter:pde} eingegangen wird, gibt Anlass +zu interessanten Lösungsfunktionen. +Die Separation des Poisson-Problems in Kugelkoordinaten führt zum Beispiel +auf die Kugelfunktionen, mit denen sich beliebige Funktionen auf einer +Kugeloberfläche analysieren und synthetisieren lassen. +Die Lösungen einer linearer gewöhnlicher Differentialgleichung können +oft mit Hilfe von Potenzreihen dargestellt werden. +So kann man zum Beispiel die Potenzreihenentwicklung der Exponentialfunktion +und der trigonometrischen Funktionen finden. +Die Konvergenz einer Potenzreihe wird aber durch Singularitäten +eingeschränkt. +Komplexe Potenzreihen ermöglichen aber, solche Stellen zu ``umgehen''. +Die Theorie der komplex differenzierbaren Funktionen bildet einen +allgemeinen Rahmen, mit solchen Funktionen umzugehen und ist zum +Beispiel nötig, um die Bessel-Funktionen der zweiten Art zu konstruieren, +die ebenfalls Lösungen ger Bessel-Gleichung sind, aber bei $x=0$ +eine Singularität aufweisen. + +% +% Stammfunktionen +% +\subsubsection{Stammfunktionen} +Die Stammfunktion $F(x)$ einer gegebenen Funktion $f(x)$ ist natürlich +auch die Lösung der besonders einfachen Differentialgleichung $F'=f$. +Ein bekanntes Beispiel ist die Stammfunktion der Wahrscheinlichkeitsdichte +\[ +\varphi(x) += +\frac{1}{\sqrt{2\pi}\sigma} e^{-\frac{(x-\mu)^2}{2\sigma^2}}, +\] +der Normalverteilung, für die aber keine geschlossene Darstellung +mit bekannten Funktionen bekannt ist. +Sie kann aber durch die Fehlerfunktion +\[ +\operatorname{erf}(x) += +\frac{2}{\sqrt{\pi}} \int_0^x e^{-t^2}\,dt +\] +dargestellt werden. +Mit dem Risch-Algorithmus kann man nachweisen, dass es tatsächlich +keine Möglichkeit gibt, die Stammfunktion in geschlossener Form durch +die bereits bekannten Funktionen darzustellen, die Definition einer +neuen speziellen Funktion ist also der einzige Ausweg. +Die Fehlerfunktion ist heute in der Standardbibliothek enthalten auf +gleicher Stufe wie Wurzeln, trigonometrische Funktionen, +Exponentialfunktionen oder Logarithmen. + diff --git a/buch/chapters/010-potenzen/Makefile.inc b/buch/chapters/010-potenzen/Makefile.inc index 27ccdae..87afe38 100644 --- a/buch/chapters/010-potenzen/Makefile.inc +++ b/buch/chapters/010-potenzen/Makefile.inc @@ -8,6 +8,7 @@ CHAPTERFILES += \ chapters/010-potenzen/loesbarkeit.tex \ chapters/010-potenzen/polynome.tex \ chapters/010-potenzen/tschebyscheff.tex \ + chapters/010-potenzen/rational.tex \ chapters/010-potenzen/potenzreihen.tex \ chapters/010-potenzen/uebungsaufgaben/101.tex \ chapters/010-potenzen/uebungsaufgaben/102.tex \ diff --git a/buch/chapters/010-potenzen/chapter.tex b/buch/chapters/010-potenzen/chapter.tex index 7dc30d4..a1cce60 100644 --- a/buch/chapters/010-potenzen/chapter.tex +++ b/buch/chapters/010-potenzen/chapter.tex @@ -18,10 +18,13 @@ Diskussion rechtfertigen. \begin{enumerate} \item Die Umkehrfunktion der Potenzfunktion sind viel schwieriger zu +\index{Potenzfunktion}% berechnen und können als eine besonders einfache Art von speziellen Funktionen betrachtet werden. Die in Abschnitt~\ref{buch:potenzen:section:loesungen} definierten Wurzelfunktionen sind der erste Schritt zur Lösung von Polynomgleichungen. +\index{Wurzelfunktion}% +\index{Polynomgleichung}% \item Es lassen sich interessante Familien von Funktionen definieren, die zum Teil aus Polynomen bestehen. @@ -32,6 +35,7 @@ Abschnitt~\ref{buch:polynome:section:tschebyscheff} vorgestellt. \item Alles speziellen Funktionen sind analytisch, sie haben eine konvergente Potenzreihenentwicklung. +\index{Potenzreihe}% Die Partialsummen einer Potenzreihenentwicklung sind Approximationen An die wichtigsten Eigenschaften von Potenzreihen wird in Abschnitt~\ref{buch:potenzen:section:potenzreihen} erinnert. @@ -40,6 +44,7 @@ Abschnitt~\ref{buch:potenzen:section:potenzreihen} erinnert. \input{chapters/010-potenzen/polynome.tex} \input{chapters/010-potenzen/loesbarkeit.tex} \input{chapters/010-potenzen/tschebyscheff.tex} +\input{chapters/010-potenzen/rational.tex} \input{chapters/010-potenzen/potenzreihen.tex} \section*{Übungsaufgaben} diff --git a/buch/chapters/010-potenzen/loesbarkeit.tex b/buch/chapters/010-potenzen/loesbarkeit.tex index 692192d..a9f273a 100644 --- a/buch/chapters/010-potenzen/loesbarkeit.tex +++ b/buch/chapters/010-potenzen/loesbarkeit.tex @@ -20,8 +20,22 @@ für ein Polynome $p(x)$ und eine Konstante $c\in\mathbb{C}$. % Fundamentalsatz der Algebra % \subsection{Fundamentalsatz der Algebra} +In Abschnitt~\ref{buch:polynome:subsection:faktorisierung-und-nullstellen} +wurde gezeigt, dass sich jede Nullstellen $\alpha$ eines Polynoms als +Faktor $x-\alpha$ abspalten lässt. +Jedes Polynom liess sich in ein Produkt von Linearfaktoren und +einen Faktor zerlegen, der keine Nullstellen hat. +Zum Beispiel hat das Polynom $x^2+1\in\mathbb{R}[x]$ keine +Nullstellen in $\mathbb{R}$. +Eine solche Nullstelle müsste eine Quadratwurzel von $-1$ sein. +Die komplexen Zahlen $\mathbb{C}$ wurden genau mit dem Ziel konstruiert, +dass $i=\sqrt{-1}$ sinnvoll wird. +Der Fundamentalsatz der Algebra zeigt, dass $\mathbb{C}$ alle +Nullstellen von Polynomen enthält. \begin{satz}[Gauss] +\index{Satz!Fundamentalsatz der Algebra}% +\index{Fundamentalsatz der Algebra}% \label{buch:potenzen:satz:fundamentalsatz} Jedes Polynom $p(x)=a_nx^n+\dots + a_2x^2 + a_1x + a_0\in\mathbb{C}[x]$ zerfällt in ein Produkt @@ -34,6 +48,7 @@ a_n für Nullstellen $\alpha_k\in\mathbb{C}$. \end{satz} + % % Lösbarkeit durch Wurzelausdrücke % @@ -143,8 +158,63 @@ höheren Grades nicht mit einer Lösung durch Wurzelausdrücke rechnen kann. \begin{satz}[Abel] +\index{Satz!von Abel} \label{buch:potenzen:satz:abel} Für Polynomegleichungen vom Grad $n\ge 5$ gibt es keine allgemeine Lösung durch Wurzelausdrücke. \end{satz} + + +% +% Algebraische Zahlen +% +\subsection{Algebraische Zahlen} +Die Verwendung der komplexen Zahlen ist für numerische Rechnungen +zweckmässig. +In den Anwendungen der Computer-Algebra hingegen erwartet man zum +Beispiel exakte Formeln für eine Stammfunktion. +Nicht rationale Zahlen können nur exakt verarbeitet werden, wenn +Sie sich algebraisch in endlich vielen Schritten charakterisieren +lassen. +Dies ist zum Beispiel für rationale Zahlen $\mathbb{Q}$ möglich. +Gewisse irrationale Zahlen kann man charakterisieren durch +die Eigenschaft, Nullstelle eines Polynoms $p(x)\in\mathbb{Q}[x]$ +mit rationalen Koeffizienten zu sein. + +\begin{definition} +Eine Zahl $\alpha$ heisst {\em algebraisch} über $\mathbb{Q}$, +wenn es ein Polynom +\index{algebraische Zahl}% +$p(x)\in \mathbb{Q}[x]$ gibt, welches $\alpha$ als Nullstelle hat. +Eine Zahl heisst transzendent über $\mathbb{Q}$, wenn sie nicht algebraisch ist +über $\mathbb{Q}$. +\end{definition} + +Die Zahlen $i=\sqrt{-1}$ und $\sqrt{n\mathstrut}$ für $n\in\mathbb{N}$ +sind also algebraisch über $\mathbb{Z}$. +Es ist gezeigt worden, dass $\pi$ und $e$ nicht nur irrational +sind, sondern sogar transzendent. + +Eine Polynomgleichung $p(\alpha)=0$ mit $p(x)\in\mathbb{Q}[x]$ +hat eine Rechenregel für $\alpha$ zur Folge. +Dazu schreibt man +\[ +p_n\alpha^n + p_{n-1}\alpha^{n-1} + \dots + a_1\alpha + a_0 =0 +\qquad\Rightarrow\qquad +\alpha^n = -\frac{1}{p_n}\bigl( +p_{n-1}\alpha^{n-1}+\dots+a_1\alpha+a_0 +\bigr). +\] +Diese Regel erlaubt, jede Potenz $\alpha^k$ mit $k\ge n$ durch +Potenzen von $\alpha^l$ mit $l<n$ auszudrücken. +Die Zahlen, die sich durch arithmetische Operationen aus +$\alpha$ bilden lassen, lassen sich also sogar durch lineare +Operationen aus $1,\alpha,\alpha^2,\dots,\alpha^{n-1}$ +bilden. +Sie bilden einen endlichdimensionalen Vektorraum über $\mathbb{Q}$. +Rechnen mit algebraischen Zahlen ist also in einem CAS exakt möglich, +wie das in Abschnitt~\ref{buch:integrale:section:dkoerper} +für die Berechnung von Stammfunktionen illustriert wird. + + diff --git a/buch/chapters/010-potenzen/polynome.tex b/buch/chapters/010-potenzen/polynome.tex index 5f119e5..ce5e521 100644 --- a/buch/chapters/010-potenzen/polynome.tex +++ b/buch/chapters/010-potenzen/polynome.tex @@ -13,20 +13,32 @@ Operationen konstruieren lassen, sind die Polynome. \index{Polynom}% Ein {\em Polynome} vom Grad $n$ ist die Funktion \[ -p(x) = a_nx^2n + a_{n-1}x^{n-1} + \dots + a_2x^2 + a_1x + a_0, +p(x) = a_nx^n + a_{n-1}x^{n-1} + \dots + a_2x^2 + a_1x + a_0, \] wobei $a_n\ne 0$ sein muss. Das Polynom heisst {\em normiert}, wenn $a_n=1$ ist. \index{normiert}% +\index{Grad eines Polynoms}% +\index{Polynom!Grad}% Die Menge aller Polynome mit Koeffizienten in der Menge $K$ wird mit $K[x]$ bezeichnet. \end{definition} Die Menge $K[x]$ ist heisst auch der {\em Polynomring}, weil $K[x]$ -mit der Addition, Subtraktion und Multiplikation von Polynomen ein -Ring mit $1$ ist. -Im Folgenden werden wir uns auf die Fälle $K=\mathbb{R}$ und $K=\mathbb{C}$ -beschränken. +\index{Polynomring}% +mit der Addition, Subtraktion und Multiplikation von Polynomen eine +algebraische Struktur bildet, die man einen Ring mit $1$ nennt. +\index{Ring}% +Im Folgenden werden wir uns auf die Fälle $K=\mathbb{Q}$, $K=\mathbb{R}$ +und $K=\mathbb{C}$ beschränken. + +Für den Grad eines Polynoms gelten die bekannten Rechenregeln +\begin{align*} +\deg (a(x) + b(x)) &\le \operatorname{max}(\deg a(x), \deg b(x)) +\\ +\deg (a(x)\cdot b(x)) &=\deg a(x) + \deg b(x) +\end{align*} +für beliebige Polynome $a(x),b(x)\in K[x]$. In Abschnitt~\ref{buch:orthogonalitaet:section:orthogonale-funktionen} werden Familien von Polynomen konstruiert werden, die sich durch eine @@ -35,12 +47,14 @@ Diese Polynome lassen sich typischerweise auch als Lösungen von Differentialgleichungen finden. Ausserdem werden hypergeometrische Funktionen \[ -\mathstrut_pF_q\biggl(\begin{matrix}a_1,\dots,a_p\\b_1,\dots,b_q\end{matrix};z\biggr), +\mathstrut_pF_q\biggl( +\begin{matrix}a_1,\dots,a_p\\b_1,\dots,b_q\end{matrix};z +\biggr), \] die in Abschnitt~\ref{buch:rekursion:section:hypergeometrische-funktion} definiert werden, zu Polynomen, wenn mindestens einer der Parameter $a_k$ negativ ganzzahlig ist. -Polynome sind also bereits eine Vielfältige Quelle von speziellen +Polynome sind also bereits eine vielfältige Quelle von speziellen Funktionen. Viele spezielle Funktionen werden aber komplizierter sein und @@ -52,7 +66,10 @@ Berechnungsverfahren für die speziellen Funktionen zu konstruieren. Dank des folgenden Satzes kann dies immer mit Polynomen geschehen. \begin{satz}[Weierstrass] +\index{Satz!Weierstrass}% +\index{Weierstrasse, Karl}% \label{buch:potenzen:satz:weierstrass} +\index{Weierstrass, Satz von}% Eine auf einem kompakten Intervall $[a,b]$ stetige Funktion $f(x)$ lässt sich durch eine Folge $p_n(x)$ von Polynomen gleichmässig approximieren. @@ -60,7 +77,9 @@ approximieren. Der Satz sagt in dieser Form nichts darüber aus, wie die Approximationspolynome konstruiert werden sollen. +\index{Approximationspolynom}% Von Bernstein gibt es konstruktive Beweise dieses Satzes, +\index{Bernstein-Polynom}% welche auch explizit eine Folge von Approximationspolynomen konstruieren. In der späteren Entwicklung werden wir für die meisten @@ -69,19 +88,372 @@ ebenfalls als Approximationen dienen können. Weitere Möglichkeiten liefern Interpolationsmethoden der numerischen Mathematik. -\subsection{Faktorisierung und Nullstellen} +Diese Betrachtungsweise von Polynomen als Funktionen trägt +aber den zusätzlichen algebraischen Eigenschaften des Polynomringes +nicht ausreichend Rechnung. +Zum Beispiel bedeutet Gleichheit von zwei reellen Funktion $f(x)$ und +$g(x)$, dass man $f(x)=g(x)$ für alle $x\in\mathbb{R}$ nachprüfen +muss. +Für Polynome reicht es jedoch, die Funktionswerte in nur wenigen +Punkten zu vergleichen. +Dies äussert sich zum Beispiel auch im Prinzip des +Koeffizientenvergleichs von +Satz~\ref{buch:polynome:satz:koeffizientenvergleich}. +Im Gegensatz zu beliebigen Funktionen kann man daher Aussagen +über Polynomen immer mit endlich Algorithmen entscheiden. +Die nächsten Abschnitte sollen diese algebraischen Eigenschaften +zusammenfassen. + +% +% Polynomdivision, Teilbarkeit und ggT +% +\subsection{Polynomdivision, Teilbarkeit und grösster gemeinsamer Teiler} +Der schriftliche Divisionsalgorithmus für Zahlen funktioniert +auch für die Division von Polynomen. +\index{Polynome!Divisionsalgorithmus}% +Zu zwei beliebigen Polynomen $p(x)$ und $q(x)$ lassen sich also +immer zwei Polynome $a(x)$ und $r(x)$ finden derart, dass +$p(x) = a(x) q(x) + r(x)$. +Das Polynom $a(x)$ heisst der {\em Quotient}, $r(x)$ der {\em Rest} +der Division. +Das Polynom $p(x)$ heisst {\em teilbar} durch $q(x)$, geschrieben +\index{teilbar}% +\index{Polynome!teilbar}% +$q(x)\mid p(x)$, wenn $r(x)=0$ ist. + +% +% Grösster gemeinsamer Teiler +% +\subsubsection{Grösster gemeinsamer Teiler} +Mit dem Begriff der Teilbarkeit geht auch die Idee des grössten +gemeinsamen Teilers einher. +Ein gemeinsamer Teiler zweier Polynome $a(x)$ und $b(x)$ +\index{gemeinsamer Teiler}% +ist ein Polynom $g(x)$, welches beide Polynome teilt, also +$g(x)\mid a(x)$ und $g(x)\mid b(x)$. +\index{grösster gemeinsamer Teiler}% +\index{Polynome!grösster gemeinsamer Teiler}% +Ein Polynom $g(x)$ heisst {\em grösster gemeinsamer Teiler} von $a(x)$ +und $b(x)$, wenn jeder andere gemeinsame Teiler $f(x)$ von $a(x)$ +und $b(x)$ auch ein Teiler von $g(x)$ ist. +Man beachte, dass die skalaren Vielfachen eines grössten gemeinsamen +Teilers ebenfalls grösste gemeinsame Teiler sind, der grösste gemeinsame +Teiler ist also nicht eindeutig bestimmt. + +% +% Der euklidische Algorithmus +% +\subsubsection{Der euklidische Algorithmus} +\index{Algorithmus!euklidisch}% +\index{euklidischer Algorithmus}% +Zur Berechnung eines grössten gemeinsamen Teilers steht wie bei den +ganzen Zahlen der euklidische Algorithmus zur Verfügung. +Dazu bildet man die Folgen von Polynomen +\[ +\begin{aligned} +a_0(x)&=a(x) & b_0(x) &= b(x) +& +&\Rightarrow& +a_0(x)&=b_0(x) q_0(x) + r_0(x) && +\\ +a_1(x)&=b_0(x) & b_1(x) &= r_0(x) +& +&\Rightarrow& +a_1(x)&=b_1(x) q_1(x) + r_1(x) && +\\ +a_2(x)&=b_1(x) & b_2(x) &= r_1(x) +& +&\Rightarrow& +a_2(x)&=b_2(x) q_2(x) + r_2(x) && +\\ +&&&&&\hspace*{2mm}\vdots&& +\\ +a_{m-1}(x)&=b_{m-2}(x) & b_{m-1}(x) &= r_{m-2}(x) +& +&\Rightarrow& +a_{m-1}(x)&=b_{m-1}(x)q_{m-1}(x) + r_{m-1}(x) &\text{mit }r_{m-1}(x)&\ne 0 +\\ +a_m(x)&=b_{m-1}(x) & b_m(x)&=r_{m-1}(x) +& +&\Rightarrow& +a_m(x)&=b_m(x)q_m(x).&& +\end{aligned} +\] +Der Index $m$ ist der Index, bei dem zum ersten Mal $r_m(x)=0$ ist. +Dann ist $g(x)=r_{m-1}(x)$ ein grösster gemeinsamer Teiler. + +% +% Der erweiterte euklidische Algorithmus +% +\subsubsection{Der erweiterte euklidische Algorithmus} +\index{Polynome!erweiterter euklidischer Algorithmus}% +\index{erweiterter euklidischer Algorithmus}% +\index{euklidischer Algorithmus!erweitert}% +Die Konstruktion der Folgen $a_n(x)$ und $b_n(x)$ kann in Matrixform +kompakter geschrieben werden als +\[ +\begin{pmatrix} +a_k(x)\\ +b_k(x) +\end{pmatrix} += +\begin{pmatrix} +b_{k-1}(x)\\ +r_{k-1}(x) +\end{pmatrix} += +\begin{pmatrix} +0 & 1\\ +1 & -q_{k-1}(x) +\end{pmatrix} +\begin{pmatrix} +a_{k-1}(x)\\ +b_{k-1}(x) +\end{pmatrix}. +\] +Kürzen wir die $2\times 2$-Matrix als +\[ +Q_k(x) = \begin{pmatrix} 0&1\\1&-q_k(x)\end{pmatrix} +\] +ab, dann ergibt das Produkt der Matrizen $Q_0(x)$ bis $Q_{m}(x)$ +\[ +\begin{pmatrix} +g(x)\\ +0 +\end{pmatrix} += +\begin{pmatrix} +r_{m-1}(x)\\ +r_{m}(x) +\end{pmatrix} += +Q_{m}(x) +Q_{m-1}(x) +\cdots +Q_1(x) +Q_0(x) +\begin{pmatrix} +a(x)\\ +b(x) +\end{pmatrix}. +\] +Zur Berechnung des Produktes der Matrizen $Q_k(x)$ kann man rekursiv +vorgehen mit der Rekursionsformel +\[ +S_{k}(x) = Q_{k}(x) S_{k-1}(x) +\qquad\text{mit}\qquad +S_{-1}(x) += +\begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}. +\] +Ausgeschrieben bedeutet dies Matrixrekursionsformel +\[ +S_{k-1}(x) += +\begin{pmatrix} +c_{k-1} & d_{k-1} \\ +c_k & d_k +\end{pmatrix} +\qquad\Rightarrow\qquad +Q_{k}(x) S_{k-1}(x) += +\begin{pmatrix} +0&1\\1&-q_k(x) +\end{pmatrix} +\begin{pmatrix} +c_{k-1} & d_{k-1} \\ +c_k & d_k +\end{pmatrix} += +\begin{pmatrix} +c_k&d_k\\ +c_{k+1}&d_{k+1} +\end{pmatrix}. +\] +Daraus lässt sich für die Matrixelemente die Rekursionsformel +\[ +\begin{aligned} +c_{k+1} &= c_{k-1} - q_k(x) c_k(x) \\ +d_{k+1} &= d_{k-1} - q_k(x) d_k(x) +\end{aligned} +\quad +\bigg\} +\qquad +\text{mit Startwerten} +\qquad +\bigg\{ +\begin{aligned} +\quad +c_{-1} &= 1, & c_0 &= 0 \\ +d_{-1} &= 0, & d_0 &= 1. +\end{aligned} +\] +Wendet man die Matrix $S_m(x)$ auf den Vektor mit den Komponenten +$a(x)$ und $b(x)$, erhält man die Beziehungen +\[ +g(x) = c_{k-1}(x) a(x) + d_{k-1}(x) b(x) +\qquad\text{und}\qquad +0 = c_k(x) a(x) + d_k(x) b(x). +\] +Dieser Algorithmus heisst der erweiterte euklidische Algorithmus. +Wir fassen die Resultate zusammen im folgenden Satz. + +\begin{satz} +Zu zwei Polynomen $a(x),b(x) \in K[x]$ gibt es Polynome +$g(x),c(x),d(x)\in K[x]$ +derart, dass $g(x)$ ein grösster gemeinsamer Teiler von $a(x)$ und $b(x)$ +ist, und ausserdem +\[ +g(x) = c(x)a(x)+d(x)b(x) +\] +gilt. +\end{satz} + +% +% Faktorisierung und Nullstellen +% +\subsection{Faktorisierung und Nullstellen +\label{buch:polynome:subsection:faktorisierung-und-nullstellen}} % wird später gebraucht um bei der Definition der hypergeometrischen Reihe % die Zaehler- und Nenner-Polynome als Pochhammer-Symbole zu entwickeln +Ist $\alpha$ eine Nullstelle des Polynoms $a(x)$, also $a(\alpha)=0$. +Der Divisionsalgorithmus mit für die Polynome $a(x)$ und $b(x)=x-\alpha$ +liefert zwei Polynome $q(x)$ für den Quotienten und $r(x)$ für den Rest +mit den Eigenschaften +\[ +a(x) += +q(x) b(x) ++r(x) += +q(x)(x-\alpha)+r(x) +\qquad\text{mit}\qquad +\deg r < \deg b(x)=1. +\] +Der Rest $r(x)$ ist somit eine Konstante. +Setzt man $x=\alpha$ ein, folgt +\[ +0 += +a(\alpha) += +q(\alpha)(\alpha-\alpha)+r(\alpha) += +r(\alpha), +\] +der Rest $r(x)$ muss also verschwinden. +Für eine Nullstelle $\alpha$ von $a(x)$ ist $a(x)$ durch $(x-\alpha)$ +teilbar. +Daraus folgt auch, dass ein Polynom $a(x)$ vom Grad $n=\deg a(x)$ höchstens +$n$ verschiedene Nullstellen haben kann. + +Sind $\alpha_1,\dots,\alpha_k$ alle Nullstellen von $a(x)$, dann lässt +sich $a(x)$ zerlegen in Faktoren +\[ +a(x) += +(x-\alpha_1)^{m_1} +(x-\alpha_2)^{m_2} +\cdots +(x-\alpha_k)^{m_k} +b(x). +\] +Das Polynom $b(x)\in K[x]$ hat keine Nullstellen in $K$. +Wenn zwei Polynome $a(x)$ und $b(x)$ eine gemeinsame Nullstelle $\alpha$ +haben, dann ist $(x-\alpha)$ ein Teiler beider Polynome und somit auch +ein Teiler eines grössten gemeinsamer Teiler. +Insbesondere sind die Nullstellen des grössten gemeinsamen Teilers +gemeinsame Nullstellen von $a(x)$ und $b(x)$. + +% +% Koeffizienten-Vergleich +% \subsection{Koeffizienten-Vergleich} % Wird gebraucht für die Potenzreihen-Methode % Muss später ausgedehnt werden auf Potenzreihen +Wenn zwei Polynome $a(x)$ und $b(x)$ vom Grad $\le n$ die gleichen +Koeffizienten haben, dann sind sie selbstverständlich gleich. +Weniger klar ist, ob zwei Polynome, die die gleichen Werte für beliebige +$x$ haben, auch die gleichen Koeffizienten haben. +Wir nehmen also an, dass $a(x)=b(x)$ gilt für jedes $x\in K$ und +wollen daraus ableiten, dass die Koeffizienten übereinstimmen müssen. +Seien $x_1,\dots,x_n$ verschiedene Elemente in $K$, dann +hat das Polynom $p(x)=a(x)-b(x)$, welches Grad $\le n$ hat, +die $n$ Nullstellen $x_k$ für $k=1,\dots,n$. +$p(x)$ ist also durch alle Polynome $x-x_k$ teilbar. +Weil $\deg p\le n$ ist, muss +\[ +0 += +a(x)-b(x) += +p(x) += +p_n +(x-x_1)(x-x_2)\cdots (x-x_n) +\] +sein. +Ist $y\in K$ verschieden von den Nullstellen $x_i$, dann ist +in $y-x_i\ne 0$ für alle $i$. +Für das Produkt gilt dann +\[ +0 += +p(y) += +p_n +(\underbrace{x-x_1}_{\displaystyle \ne 0}) +\cdots +(\underbrace{x-x_n}_{\displaystyle \ne 0}), +\] +so dass $p_n=0$ sein muss, was schliesslich dazu führt, dass alle +Koeffizienten von $a(x)-b(x)$ verschwinden. +Daraus folgt das Prinzip des Koeffizientenvergleichs: +\index{Koeffizientenvergleich}% +\index{Polynome!Koeffizientenvergleich}% + +\begin{satz}[Koeffizientenvergleich] +\index{Satz!Koeffizientenvergleich}% +\label{buch:polynome:satz:koeffizientenvergleich} +Zwei Polynome $a(x)$ und $b(x)$ stimmen genau dann überein, wenn +sie die gleichen Koeffizienten haben. +\end{satz} + +Man beachte, dass dieses Prinzip nur funktioniert, wenn es genügend +viele verschiedene Elemente in $K$ gibt. +Für die endlichen Körper $\mathbb{F}_p$ gilt dies nicht, denn es gilt +\[ +a(x) += +x^p-x\equiv 0\mod p +\] +für jede Zahl $x\in\mathbb{F}_p$, das Polynom $a(x)$ mit Grad $p$ +hat also genau $p$ Nullstellen, es gibt aber keine weitere Nullstelle, +mit der man wie oben schliessen könnte, dass $a(x)$ das Nullpolynom ist. + +% +% Berechnung von Polynom-Werten +% +\subsection{Berechnung von Polynom-Werten} +Die naive Berechnung der Werte eines Polynoms $p(x)$ vom Grad $n$ +beginnt mit der Berechnung der Potenzen von $x$. +Da alle Potenzen benötigt werden, wird man dazu $n-1$ Multiplikationen +benötigen. +Die Potenzen müssen anschliessend mit den Koeffizienten multipliziert +werden, dazu sind weitere $n$ Multiplikationen nötig. +Der Wert des Polynoms kann also erhalten werden mit $2n-1$ Multiplikationen +und $n$ Additionen. -\subsection{Polynom-Berechnung} -Die naive Berechnung der Werte eines Polynoms beginnt mit der Berechnung -der Potenzen. -Die Anzahl nötiger Multiplikationen kann minimiert werden, indem man -das Polynom als +Die Anzahl nötiger Multiplikationen kann mit dem folgenden Vorgehen +reduziert werden, welches auch als das {\em Horner-Schema} bekannt ist. +\index{Horner-Schema}% +\index{Polynome!Horner-Schema}% +Statt erst am Schluss alle Terme zu addieren, addiert man so früh +wie möglich. +Zum Beispiel multipliziert man $(a_nx+a_{n-1})$ mit $x$, was auf +die Multiplikationen beider Terme mit $x$ hinausläuft. +Mit dieser Idee kann man das Polynom als \[ a_nx^n + @@ -95,10 +467,10 @@ a_0 = ((\dots((a_nx+a_{n-1})x+a_{n-2})x+\dots )x+a_1)x+a_0 \] -schreibt. +schreiben. Beginnend bei der innersten Klammer sind genau $n$ Multiplikationen -und $n+1$ Additionen nötig, im Gegensatz zu $2n$ Multiplikationen -und $n$ Additionen bei der naiven Vorgehensweise. +und $n$ Additionen nötig, man spart mit diesem Vorgehen also +$n-1$ Multiplikationen. diff --git a/buch/chapters/010-potenzen/potenzreihen.tex b/buch/chapters/010-potenzen/potenzreihen.tex index a003fcb..994f99f 100644 --- a/buch/chapters/010-potenzen/potenzreihen.tex +++ b/buch/chapters/010-potenzen/potenzreihen.tex @@ -105,6 +105,7 @@ Für $|z|<1$ geht $z^n\to 0$ für $n\to\infty$, die Partialsummen konvergieren und wir erhalten das Resultat des folgenden Satzes. \begin{satz} +\index{Satz!geometrische Reihe}% \label{buch:polynome:satz:geometrischereihe} Die geometrische Reihe $a+az+az^2+\dots$ konvergiert für $|z|<1$ und hat die Summe @@ -124,6 +125,7 @@ als konvergent erkannten Reihen nachweisbar. Dies ist der Inhalt des folgenden, wohlbekannten Majorantenkriteriums. \begin{satz}[Majorantenkriterium] +\index{Satz!Majorantenkriterium}% \label{buch:polynome:satz:majorantenkriterium} \index{Majorantenkriterium} Seien $a_k$ und $b_k$ die Glieder zweier unendlicher Reihen. @@ -142,6 +144,7 @@ Potenzreihen mit der geometrischen Reihe zu vergleichen und liefert damit einfach anzuwende Kriterien für die Konvergenz. \begin{satz}[Quotientenkriterium] +\index{Satz!Quotientenkriterium}% \label{buch:polynome:satz:quotientenkriterium} \index{Quotientenkriterium}% Eine Reihe @@ -175,6 +178,7 @@ die unter der gegebenen Voraussetzung konvergiert. \end{proof} \begin{satz}[Wurzelkriterium] +\index{Satz!Wurzelkriterium}% \label{buch:polynome:satz:wurzelkriterium} \index{Wurzelkriterium} Falls @@ -203,6 +207,9 @@ das Reststück der Reihe ab Index $N$ ist daher wieder majorisiert durch eine konvergente geometrische Reihe. \end{proof} +% +% Konvergenzradius +% \subsubsection{Konvergenzradius} Das Quotienten- und das Wurzel-Kriterium ist auf beliebige Reihen anwendbar, es berücksichtigt nicht, dass in einer Potenzreihe @@ -224,6 +231,7 @@ um den Punkt $z_0$ ist \end{definition} \begin{satz} +\index{Satz!Konvergenzradius}% \label{buch:polynome:satz:konvergenzradius} Der Konvergenzradius $\varrho$ einer Potenzreihe $\sum_{k=0}^\infty a_k(z-z_0)^k$ ist @@ -420,7 +428,7 @@ $z_0$ ist die Summe \frac{f^{(k)}(z_0)}{k!} (z-z_0)^k \label{buch:polynome:eqn:taylor-polynom} \end{equation} -\index{Taylor-Reihe} +\index{Taylor-Reihe}% Die {\em Taylor-Reihe} der Funktion $f(z)$ ist die Reihe \begin{equation} \mathscr{T}_{z_0}f (z) @@ -431,7 +439,9 @@ Die {\em Taylor-Reihe} der Funktion $f(z)$ ist die Reihe \end{equation} \end{definition} - +% +% Analytische Funktionen +% \subsubsection{Analytische Funktionen} Das Taylor-Polynom $\mathscr{T}_{z_0}^nf(z)$ hat an der Stelle $z_0$ die gleichen Funktionswerte und Ableitungen wie die Funktion $f(z)$, diff --git a/buch/chapters/010-potenzen/rational.tex b/buch/chapters/010-potenzen/rational.tex new file mode 100644 index 0000000..f1957ac --- /dev/null +++ b/buch/chapters/010-potenzen/rational.tex @@ -0,0 +1,61 @@ +% +% rational.tex +% +% (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\section{Rationale Funktionen +\label{buch:polynome:section:rationale-funktionen}} +\rhead{Rationale Funktionen} +Polynome sind sehr einfach auszuwerten und können auf einem +Interval jede stetige Funktion beliebig gut approximieren. +Auf einem unbeschränkten Definitionsbereich wachsen Polynome aber +immer unbeschränkt an. +Der führende Term $a_nx^n$ dominiert das Verhalten eines Polynoms +für $x\to\infty$ wegen +\[ +\lim_{x\to\infty} a_nx^n += +\operatorname{sgn} a_n \cdot\infty +\qquad\text{und}\qquad +\lim_{x\to-\infty} a_nx^n += +(-1)^n \operatorname{sgn} a_n\cdot \infty. +\] +Insbesondere kann man nicht erwarten, dass sich eine beschränkte +Funktion wie $\sin x$ durch Polynome auf dem ganzen Definitionsbereich +gut approximieren lässt. +Der Unterschied $p(x)-\sin x$ wird für jedes beliebige Polynome $p(x)$ +für $x\to\pm\infty$ unbeschränkt anwachsen. + +Eine weitere Einschränkung ist, dass die Menge der Polynome bezüglich +der arithmetischen Operationen nicht abgeschlossen ist. +Man kann zwar Polynome addieren und multiplizieren, aber der Quotient +ist nicht notwendigerweise ein Polynom. +Abhilfe schafft nur, wenn man Quotienten von Polynomen zulässt. + +\begin{definition} +Eine Funktion $f(x)$ heisst {\em rationale Funktion}, wenn sie Quotient +\index{rationale Funktion}% +zweier Polynome ist, wenn es also Polynome $p(x), q(x)\in K[x]$ gibt mit +\[ +f(x) = \frac{p(x)}{q(x)}. +\] +Die Menge der rationalen Funktione mit Koeffizienten in $K$ wird mit +$K(x)$ bezeichnet. +\end{definition} + +Polynome sind rationale Funktionen, deren Nennergrad $1$ ist. +Rationale Funktionen können ebenfalls zur Approximation von Funktionen +verwendet werden. +Da sie beschränkt sein können, haben sie das Potential, +beschränkte Funktionen besser zu approximieren, als dies mit +Polynomen allein möglich wäre. +Die Theorie der Padé-Approximation, wie sie zum Beispiel im Buch +\index{Pade-Approximation@Padé-Approximation}% +\cite{buch:pade} dargestellt ist, ist zum Beispiel auch in der +Regelungstechnik von Interesse, da sich rationale Funktionen mit +linearen Komponenten schaltungstechnisch realisieren lassen. +Weitere Anwendungen werden in Kapitel~\ref{chapter:transfer} +gezeigt. + + diff --git a/buch/chapters/010-potenzen/tschebyscheff.tex b/buch/chapters/010-potenzen/tschebyscheff.tex index 29d1d4b..ccc2e97 100644 --- a/buch/chapters/010-potenzen/tschebyscheff.tex +++ b/buch/chapters/010-potenzen/tschebyscheff.tex @@ -241,12 +241,16 @@ Die Rekursionsformel kann auch dazu verwendet werden, Werte der Tschebyscheff-Polynome sehr effizient zu berechnen. +% +% Multiplikationsformel +% \subsubsection{Multiplikationsformel} Aus der Definition mit Hilfe trigonometrischer Funktionen lässt sich auch eine Multiplikationsformel ableiten. \index{Multiplikationsformel}% \begin{satz} +\index{Satz!Multiplikationsformel für Tschebyscheff-Polynome}% Es gilt \begin{align} T_m(x)T_n(x)&=\frac12\bigl(T_{m+n}(x) + T_{m-n}(x)\bigr) @@ -300,4 +304,82 @@ T_{mn}(x). Damit ist auch \eqref{buch:potenzen:tschebyscheff:mult2} bewiesen. \end{proof} +% +% Differentialgleichung +% +\subsubsection{Tschebyscheff-Differentialgleichung} +Die Ableitungen der Tschebyscheff-Polynome sind +\begin{align*} +T_n(x) +&= +\cos (ny(x)) +&& +&& +\\ +\frac{d}{dx} T_n(x) +&= +\frac{d}{dx} \cos(ny(x)) += +n\sin(ny(x)) \cdot \frac{dy}{dx} +& +&\text{mit}& +\frac{dy}{dx} +&= +-\frac{1}{\sqrt{1-x^2}} +\\ +\frac{d^2}{dx^2} T_n(x) +&= +-n^2\cos(ny(x)) \biggl(\frac{dy}{dx}\biggr)^2 + n\sin(ny(x)) \frac{d^2y}{dx^2} +& +&\text{mit}& +\frac{d^2y}{dx^2} +&= +-\frac{x}{(1-x^2)^{\frac32}}. +\end{align*} +Wir suchen eine verschwindende Linearkombination dieser drei Terme +mit Funktionen von $x$ als Koeffizienten. +Wir setzen daher an +\begin{align*} +0 +&= +\alpha(x) T_n''(x) ++ +\beta(x) T_n'(x) ++ +\gamma(x) T_n(x) +\\ +&= +\biggl( +-\frac{n^2\alpha(x)}{1-x^2} ++ +\gamma(x) +\biggr) +\cos(ny(x)) ++ +\biggl( +-\frac{nx\alpha(x)}{(1-x^2)^{\frac32}} +-\frac{n\beta(x)}{\sqrt{1-x^2}} +\biggr) +\sin(ny(x)) +\end{align*} +Die grossen Klammern müssen verschwinden, was nur möglich ist, wenn zu +gegebenem $\alpha(x)$ die anderen beiden Koeffizienten +\begin{align*} +\beta(x) &= -\frac{x\alpha(x)}{1-x^2} \\ +\gamma(x) &= n^2 \frac{\alpha(x)}{1-x^2} +\end{align*} +sind. +Die Koeffizienten werden besonders einfach, wenn man $\alpha(x)=1-x^2$ wählt. +Die Tschebyscheff-Polynome sind Lösungen der Differentialgleichung +\begin{equation} +(1-x^2) T_n''(x) -x T_n'(x) +n^2 T_n(x) = 0. +\label{buch:potenzen:tschebyscheff:dgl} +\end{equation} +Die Differentialgleichung~\eqref{buch:potenzen:tschebyscheff:dgl} +heisst {\em Tschebyscheff-Differentialgleichung}. +\index{Tschebyscheff-Differentialgleichung}% +\index{Differentialgleichung!Tschebyscheff-}% + + + diff --git a/buch/chapters/020-exponential/chapter.tex b/buch/chapters/020-exponential/chapter.tex index 1ab4769..eaa777d 100644 --- a/buch/chapters/020-exponential/chapter.tex +++ b/buch/chapters/020-exponential/chapter.tex @@ -12,8 +12,8 @@ \input{chapters/020-exponential/zins.tex} \input{chapters/020-exponential/log.tex} \input{chapters/020-exponential/lambertw.tex} -\input{chapters/020-exponential/dilog.tex} -\input{chapters/020-exponential/eili.tex} +%\input{chapters/020-exponential/dilog.tex} +%\input{chapters/020-exponential/eili.tex} \section*{Übungsaufgaben} \rhead{Übungsaufgaben} diff --git a/buch/chapters/020-exponential/lambertw.tex b/buch/chapters/020-exponential/lambertw.tex index 2b023cc..d78fdc3 100644 --- a/buch/chapters/020-exponential/lambertw.tex +++ b/buch/chapters/020-exponential/lambertw.tex @@ -17,6 +17,11 @@ der Unbekannten und der Exponentialfunktion, also $xe^x$ auftreten. Die Lambert $W$-Funktion ermöglicht, die Lösungen solcher Gleichungen darzustellen. +Als Anwendung der Theorie der Lambert-$W$-Funktion wird in +Kapitel~\ref{chapter:lambertw} +eine Parametrisierung einer Verfolgungskurve mit Hilfe von $W(x)$ +bestimmt. + % % Die Funktion xe^x % @@ -57,8 +62,10 @@ invertierbar. \begin{definition} Die inverse Funktion der Funktion $[-1,\infty)\to[-1/e,\infty):x\mapsto xe^x=y$ heisst die Lambert $W$-Funktion, geschrieben $W(y)$ oder $W_0(y)$. +\index{Lambert-W-Funktion@Lambert-$W$-Funktion!Definition}% Die inverse Funktion der Funktion $(-\infty,-1)\to[-1/e,0)$ wird mit $W_{-1}$ bezeichnet. +\index{Lambert-W-Funktion@Lambert-$W$-Funktion!Graph}% \end{definition} \begin{figure} @@ -78,7 +85,11 @@ erfüllen sie W(x) e^{W(x)} = x. \] +% +% Ableitung der W-Funktion +% \subsubsection{Ableitung der Funktionen $W(x)$ und $W_{-1}(x)$} +\index{Lambert-W-Funktion@Lambert-$W$-Funktion!Ableitung} Die Umkehrfunktion $f^{-1}(y)$ einer Funktion $f(x)$ erfüllt \( f^{-1}(f(x)) = x. @@ -204,7 +215,12 @@ P_{n+1}(t) \] mit $P_1(t)=1$. +% +% Differentialgleichung und Stammfunktion +% \subsubsection{Differentialgleichung und Stammfunktion} +\index{Lambert-W-Funktion@Lambert-$W$-Funktion!Differentialgleichung}% +\index{Differentialgleichung!der Lambert-$W$-Funktion}% Die Ableitungsformel \eqref{buch:lambert:eqn:ableitung} bedeutet auch, dass die $W$-Funktion eine Lösung der Differentialgleichung \[ @@ -223,6 +239,7 @@ Diese Gleichung kann separiert werden in \] Eine Stammfunktion +\index{Lambert-W-Funktion@Lambert-$W$-Funktion!Stammfunktion}% \[ F(y) = @@ -260,6 +277,8 @@ für die Stammfunktion von $W(y)$. \label{buch:subsection:loesung-von-exponentialgleichungen}} Die Lambert $W$-Funktion kann zur Lösung von Exponentialgleichungen verwendet werden. +\index{Lambert-W-Funktion@Lambert-$W$-Funktion!Exponentialgleichungen}% +\index{Exponentialgleichungen}% \begin{aufgabe} Gesucht ist eine Lösung der Gleichung @@ -319,7 +338,10 @@ W(-cbe^{ac}) Die Gleichung hat eine Lösung wenn $-cbe^{ac} > -1/e$ ist. \end{proof} -\subsection{Numerische Berechnung +% +% Numerische Berechnung +% +\subsection{Numerische Berechnung der Lambert-$W$-Funktion \label{buch:subsection:lambertberechnung}} Die $W$-Funktionen sind nur dann nützlich, wenn man sie effizient berechnen kann. @@ -327,13 +349,19 @@ Leider ist sie nicht Teil der C- oder C++-Standardbibliothek, man muss sich also mit einer spezialisierten Bibliothek oder einer eigenen Implementation behelfen. +% +% Berechnung mit dem Newton-Algorithmus +% \subsubsection{Berechnung mit dem Newton-Algorithmus} Für $x>-1$ ist die Funktion $W(x)$ ist die Umkehrfunktion der streng monoton wachsenden und konvexen Funktion $f(x)=xe^x$. In dieser Situation konvergiert der Newton-Algorithmus zur Bestimmung +\index{Newton-Algorithmus}% +\index{Algorithmus!Newton-}% der Nullstelle $x=W_0(y)$ von $f(x)-y$ für alle Werte von $y>-1/e$. Für $W_{-1}(y)$ ist die Situation etwas komplizierter, da für $x<-1$ die Funktion $f(x)$ nicht konvex ist. +\index{Lambert-W-Funktion@Lambert-$W$-Funktion!Newton-Algorithmus} Ausgehend vom Startwert $x_0$ ist die Iterationsfolge definiert durch @@ -361,12 +389,7 @@ bestimmt werden. \subsubsection{GNU scientific library} Die Lambert $W$-Funktionen $W_0(x)$ und $W_{-1}(x)$ sind auch in der GNU scientific library \cite{buch:library:gsl} implementiert. - -% -% Verfolgungskurven -% -\subsection{Verfolgungskurven -\label{buch:subsection:verfolgungskurven}} +\index{GNU scientifi library}% diff --git a/buch/chapters/030-geometrie/chapter.tex b/buch/chapters/030-geometrie/chapter.tex index f3f1d39..24fc089 100644 --- a/buch/chapters/030-geometrie/chapter.tex +++ b/buch/chapters/030-geometrie/chapter.tex @@ -32,6 +32,7 @@ der Strahlensatz muss durch den Satz von Menelaos ersetzt werden. Es ergibt sich eine Methode, beliebige Dreiecke auf einer Kugeloberfläche ganz analog zum Vorgehen bei ebenen Dreiecken zu berechnen. Diese sphärische Trigonometrie ist die Basis der Navigation +(siehe Kapitel~\ref{chapter:nav}) und aller astrometrischer Berechnungen. Die Analysis hat die Möglichkeit geschaffen, die Länge von Kurven @@ -42,7 +43,7 @@ wie die Berechnung der Länge von Ellipsen- oder Hyperbelbögen auf die Notwendigkeit führt, neue spezielle Funktionen zu definieren. \input{chapters/030-geometrie/trigonometrisch.tex} -\input{chapters/030-geometrie/sphaerisch.tex} +%\input{chapters/030-geometrie/sphaerisch.tex} \input{chapters/030-geometrie/hyperbolisch.tex} \input{chapters/030-geometrie/laenge.tex} \input{chapters/030-geometrie/flaeche.tex} @@ -54,5 +55,6 @@ die Notwendigkeit führt, neue spezielle Funktionen zu definieren. %\uebungsaufgabe{0} \uebungsaufgabe{1} \uebungsaufgabe{2} +\uebungsaufgabe{3} \end{uebungsaufgaben} diff --git a/buch/chapters/030-geometrie/hyperbolisch.tex b/buch/chapters/030-geometrie/hyperbolisch.tex index 72c2cb4..2938316 100644 --- a/buch/chapters/030-geometrie/hyperbolisch.tex +++ b/buch/chapters/030-geometrie/hyperbolisch.tex @@ -355,6 +355,7 @@ heissen der {\em hyperbolische Tangens} und der {\em hyperbolische Kotangens}. \end{definition} \begin{satz} +\index{Satz!hyperbolische Gruppe}% \label{buch:geometrie:hyperbolisch:Hparametrisierung} Die orientierungserhaltenden $2\times 2$-Matrizen, die das Minkowski-Skalarprodukt invariant lassen und die Zeitrichtung diff --git a/buch/chapters/030-geometrie/images/einheitskreis.pdf b/buch/chapters/030-geometrie/images/einheitskreis.pdf Binary files differindex 0b514eb..d708377 100644 --- a/buch/chapters/030-geometrie/images/einheitskreis.pdf +++ b/buch/chapters/030-geometrie/images/einheitskreis.pdf diff --git a/buch/chapters/030-geometrie/images/einheitskreis.tex b/buch/chapters/030-geometrie/images/einheitskreis.tex index c38dc19..a194190 100644 --- a/buch/chapters/030-geometrie/images/einheitskreis.tex +++ b/buch/chapters/030-geometrie/images/einheitskreis.tex @@ -41,6 +41,7 @@ \fill[color=blue] (\a:\r) circle[radius=0.05]; \draw[color=blue,line width=1.4pt] (\r,0) -- (\r,{\r*tan(\a)}); +\fill[color=blue] (\r,{\r*tan(\a)}) circle[radius=1.0pt]; \node[color=blue] at (\r,{0.5*\r*tan(\a)}) [right] {$\tan\alpha$}; \draw[color=blue,line width=0.4pt] ({\r*cos(\a)},0) -- (\a:\r); @@ -53,6 +54,7 @@ \draw[color=blue] (-0.1,{\r*sin(\a)}) -- (0.1,{\r*sin(\a)}); \draw[color=blue,line width=1.4pt] (0,\r) -- ({\r/tan(\a)},\r); +\fill[color=blue] ({\r/tan(\a)},\r) circle[radius=1.0pt]; \node[color=blue] at ({0.5*\r/tan(\a)},\r) [above] {$\cot\alpha$}; \draw[color=darkgreen,line width=1pt] (0,0) -- (\b:\r); @@ -61,9 +63,11 @@ \fill[color=darkgreen] (\b:\r) circle[radius=0.05]; \draw[color=darkgreen,line width=1.4pt] (0,\r) -- ({\r/tan(\b)},\r); +\fill[color=darkgreen] ({\r/tan(\b)},\r) circle[radius=1.0pt]; \node[color=darkgreen] at ({0.5*\r/tan(\b)},\r) [above] {$\cot\beta$}; \draw[color=darkgreen,line width=1.4pt] (\r,0) -- (\r,{\r*tan(\b)}); +\fill[color=darkgreen] (\r,{\r*tan(\b)}) circle[radius=1.0pt]; \node[color=darkgreen] at (\r,{0.5*\r*tan(\b)}) [right] {$\tan\beta$}; \draw[color=darkgreen,line width=0.4pt] (\b:\r) -- (0,{\r*sin(\b)}); diff --git a/buch/chapters/030-geometrie/trigonometrisch.tex b/buch/chapters/030-geometrie/trigonometrisch.tex index dc1f46a..643c8f2 100644 --- a/buch/chapters/030-geometrie/trigonometrisch.tex +++ b/buch/chapters/030-geometrie/trigonometrisch.tex @@ -167,11 +167,11 @@ und umgekehrt: \[ \sin\alpha = -\sqrt{1-\cos^2\alpha\mathstrut} +\sqrt{1-{\cos\mathstrut\!}^2\,\alpha\mathstrut} \qquad\text{und}\qquad \cos\alpha = -\sqrt{1-\sin^2\alpha\mathstrut} +\sqrt{1-{\sin\mathstrut\!}^2\,\alpha\mathstrut} \] Da sich alle Funktionen durch $\cos\alpha$ und $\sin\alpha$ ausdrücken lassen, können alle auch nur durch eine ausgedrückt werden. @@ -197,7 +197,7 @@ Tabelle~\ref{buch:geometrie:tab:trigo} zusammengestellt ist. &\displaystyle\frac{\sqrt{\csc^2\alpha-1}}{\csc\alpha} \\ \cos\alpha - &\sqrt{1-\sin^2\alpha\mathstrut} + &\sqrt{1-\sin{\!}^2\,\alpha\mathstrut} &\cos\alpha &\displaystyle\frac{1}{\sqrt{1+\tan^2\alpha}} &\displaystyle\frac{\cot\alpha}{\sqrt{1+\cot^2\alpha}} @@ -205,7 +205,7 @@ Tabelle~\ref{buch:geometrie:tab:trigo} zusammengestellt ist. &\displaystyle\frac{1}{\csc\alpha} \\ \tan\alpha - &\displaystyle\frac{\sin\alpha}{\sqrt{1-\sin^2\alpha\mathstrut}} + &\displaystyle\frac{\sin\alpha}{\sqrt{1-\sin{\!}^2\,\alpha\mathstrut}} &\displaystyle\frac{\sqrt{1-\cos^2\alpha\mathstrut}}{\cos\alpha} &\tan\alpha &\displaystyle\frac{1}{\cot\alpha} @@ -213,7 +213,7 @@ Tabelle~\ref{buch:geometrie:tab:trigo} zusammengestellt ist. &\displaystyle\sqrt{\csc^2\alpha-1} \\ \cot\alpha - &\displaystyle\frac{\sqrt{1-\sin^2\alpha\mathstrut}}{\sin\alpha} + &\displaystyle\frac{\sqrt{1-\sin{\!}^2\,\alpha\mathstrut}}{\sin\alpha} &\displaystyle\frac{\cos\alpha}{\sqrt{1-\cos^2\alpha\mathstrut}} &\displaystyle\frac{1}{\tan\alpha} &\cot\alpha @@ -229,7 +229,7 @@ Tabelle~\ref{buch:geometrie:tab:trigo} zusammengestellt ist. &\displaystyle\frac{\csc\alpha}{\sqrt{\csc^2\alpha-1}} \\ \csc\alpha - &\displaystyle\frac{1}{\sqrt{1-\sin^2\alpha\mathstrut}} + &\displaystyle\frac{1}{\sqrt{1-\sin{\!}^2\,\alpha\mathstrut}} &\displaystyle\frac{1}{\cos\alpha} &\displaystyle\sqrt{1+\tan^2\alpha} &\displaystyle\frac{\sqrt{1+\cot^2\alpha}}{\cot\alpha} @@ -394,6 +394,7 @@ D_{\alpha}D_{\beta} Aus dem Vergleich der beiden Matrizen liest man die Additionstheoreme. \begin{satz} +\index{Satz!Drehmatrizen}% Für $\alpha,\beta\in\mathbb{R}$ gilt \begin{align*} \sin(\alpha\pm\beta) diff --git a/buch/chapters/030-geometrie/uebungsaufgaben/3.tex b/buch/chapters/030-geometrie/uebungsaufgaben/3.tex new file mode 100644 index 0000000..6a501fb --- /dev/null +++ b/buch/chapters/030-geometrie/uebungsaufgaben/3.tex @@ -0,0 +1,169 @@ +\def\cas{\operatorname{cas}} +Die Funktion $\cas$ definiert durch +$\cas x = \cos x + \sin x$ hat einige interessante Eigenschaften. +Wie die gewöhnlichen trigonometrischen Funktionen $\sin x$ und $\cos x$ +ist $\cas x$ $2\pi$-periodisch. +Die Ableitung und das Additionstheorem benötigen bei den gewöhnlichen +trigonometrischen Funktionen aber beide Funktionen, im Gegensatz zu den +im folgenden hergeleiteten Formeln, die nur die Funktion $\cas x$ brauchen. +\begin{teilaufgaben} +\item +Drücken Sie die Ableitung von $\cas x$ allein durch Werte der +$\cas$-Funktion aus. +\item +Zeigen Sie, dass +\[ +\cas x += +\sqrt{2} \sin\biggl(x+\frac{\pi}4\biggr) += +\sqrt{2} \cos\biggl(x-\frac{\pi}4\biggr). +\] +\item +Beweisen Sie das Additionstheorem für die $\cas$-Funktion +\begin{equation} +\cas(x+y) += +\frac12\bigl( +\cas(x)\cas(y) + \cas x\cas (-y) + \cas(-x)\cas(y) -\cas(-x)\cas(-y) +\bigr) +\label{buch:geometrie:uebung3:eqn:addition} +\end{equation} +\end{teilaufgaben} +Youtuber Dr Barker hat die Funktion $\cas$ im Video +{\small\url{https://www.youtube.com/watch?v=bn38o3u0lDc}} vorgestellt. + +\begin{loesung} +\begin{teilaufgaben} +\item +Die Ableitung ist +\[ +\frac{d}{dx}\cas x += +\frac{d}{dx}(\cos x + \sin x) += +-\sin x + \cos x += +\sin(-x) + \cos(-x) += +\cas(x). +\] +\item +Die Additionstheoreme angewendet auf die trigonometrischen Funktionen +auf der rechten Seite ergibt +\begin{align*} +\sin\biggl(x+\frac{\pi}4\biggr) +&= +\sin x \cos\frac{\pi}4 + \cos x \sin\frac{\pi}4 +&&& +\cos\biggl(x-\frac{\pi}4\biggr) +&= +\cos(x)\cos\frac{\pi}4 -\sin x \sin\biggl(-\frac{\pi}4\biggr) +\\ +&= +\frac{1}{\sqrt{2}} \sin x ++ +\frac{1}{\sqrt{2}} \cos x +&&& +&= +\frac{1}{\sqrt{2}} \cos x ++ +\frac{1}{\sqrt{2}} \sin x +\\ +&=\frac{1}{\sqrt{2}} \cas x +&&& +&= +\frac{1}{\sqrt{2}} \cas x. +\end{align*} +Multiplikation mit $\sqrt{2}$ ergibt die behaupteten Relationen. +\item +Substituiert man die Definition von $\cas(x)$ auf der rechten Seite von +\eqref{buch:geometrie:uebung3:eqn:addition} und multipliziert aus, +erhält man +\begin{align*} +\eqref{buch:geometrie:uebung3:eqn:addition} +&= +{\textstyle\frac12}\bigl( +(\cos x + \sin x) +(\cos y + \sin y) ++ +(\cos x + \sin x) +(\cos y - \sin y) +\\ +&\qquad ++ +(\cos x - \sin x) +(\cos y + \sin y) +- +(\cos x - \sin x) +(\cos y - \sin y) +\bigr) +\\ +&= +\phantom{-\mathstrut} +{\textstyle\frac12}\bigl( +\cos x\cos y ++ +\cos x\sin y ++ +\sin x\cos y ++ +\sin x\sin y +\\ +& +\phantom{=-\mathstrut{\textstyle\frac12}\bigl(}\llap{$\mathstrut +\mathstrut$} +\cos x\cos y +- +\cos x\sin y ++ +\sin x\cos y +- +\sin x\sin y +\\ +& +\phantom{=-\mathstrut{\textstyle\frac12}\bigl(}\llap{$\mathstrut +\mathstrut$} +\cos x\cos y ++ +\cos x\sin y +- +\sin x\cos y +- +\sin x\sin y +\bigr) +\\ +& +\phantom{=} +-\mathstrut{\textstyle\frac12}\bigl( +\cos x\cos y +- +\cos x\sin y +- +\sin x\cos y ++ +\sin x\sin y +\bigr) +\\ +&= \cos x \cos y ++ +\cos x \sin y ++ +\sin x \cos y +- +\sin x \sin y. +\intertext{Die äussersten zwei Terme passen zum Additionstheorem für den +Kosinus, die beiden inneren Terme dagegen zum Sinus. +Fasst man sie zusammen, erhält man} +&= +(\sin x\cos y + \cos x \sin y) ++ +(\cos x\cos y - \sin x \sin y) +\\ +&= +\sin (x+y) + \cos(x+y) += +\cas(x+y). +\end{align*} +Damit ist das Additionstheorem für die Funktion $\cas$ bewiesen. +\qedhere +\end{teilaufgaben} +\end{loesung} diff --git a/buch/chapters/040-rekursion/beta.tex b/buch/chapters/040-rekursion/beta.tex index ff59bad..20e3f0e 100644 --- a/buch/chapters/040-rekursion/beta.tex +++ b/buch/chapters/040-rekursion/beta.tex @@ -8,12 +8,14 @@ Die Eulersche Integralformel für die Gamma-Funktion in Definition~\ref{buch:rekursion:def:gamma} wurde in Abschnitt~\ref{buch:subsection:integral-eindeutig} -mit dem Satz von Mollerup gerechtfertigt. +mit dem Satz~\ref{buch:satz:bohr-mollerup} +von Bohr-Mollerup gerechtfertigt. Man kann Sie aber auch als Grenzfall der Beta-Funktion verstehen, die in diesem Abschnitt dargestellt wird. -\subsection{Beta-Integral} +\subsection{Beta-Integral +\label{buch:rekursion:gamma:subsection:integralbeweis}} In diesem Abschnitt wird das Beta-Integral eingeführt, eine Funktion von zwei Variablen, welches eine Integral-Definition mit einer reichaltigen Menge von Rekursionsbeziehungen hat, die sich direkt auf @@ -30,6 +32,7 @@ B(x,y) \int_0^1 t^{x-1} (1-t)^{y-1}\,dt \] für $\operatorname{Re}x>0$, $\operatorname{Re}y>0$. +\index{Beta-Integral}% \end{definition} Aus der Definition kann man sofort ablesen, dass $B(x,y)=B(y,x)$. @@ -231,6 +234,7 @@ Durch Einsetzen der Integralformel im Ausdruck Satz. \begin{satz} +\index{Satz!Beta-Funktion und Gamma-Funktion}% Die Beta-Funktion kann aus der Gamma-Funktion nach \begin{equation} B(x,y) = \frac{\Gamma(x)\Gamma(y)}{\Gamma(x+y)} @@ -320,6 +324,9 @@ $(-\frac12)!$ als Wert \] der Gamma-Funktion interpretiert. +% +% Alternative Parametrisierung +% \subsubsection{Alternative Parametrisierungen} Die Substitution $t=\sin^2 s$ hat im vorangegangenen Abschnitt ermöglicht, $\Gamma(\frac12)$ zu ermitteln. @@ -382,8 +389,10 @@ wobei wir \] verwendet haben. Diese Darstellung des Beta-Integrals wird später -% XXX Ort ergänzen +in Satz~\ref{buch:funktionentheorie:satz:spiegelungsformel} dazu verwendet, die Spiegelungsformel für die Gamma-Funktion +\index{Gamma-Funktion!Spiegelungsformel}% +\index{Spiegelungsformel der Gamma-Funktion}% herzuleiten. Eine weitere mögliche Parametrisierung verwendet $t = (1+s)/2$ @@ -407,17 +416,23 @@ B(x,y) \label{buch:rekursion:gamma:beta:symm} \end{equation} +% +% +% \subsubsection{Die Verdoppelungsformel von Legendre} Die trigonometrische Substitution kann dazu verwendet werden, die Legendresche Verdoppelungsformel für die Gamma-Funktion herzuleiten. \begin{satz}[Legendre] +\index{Satz!Verdoppelungsformel@Verdoppelungsformel für $\Gamma(x)$}% \[ \Gamma(x)\Gamma(x+{\textstyle\frac12}) = 2^{1-2x}\sqrt{\pi} \Gamma(2x) \] +\index{Verdoppelungsformel}% +\index{Gamma-Funktion!Verdoppelungsformel von Legendre}% \end{satz} \begin{proof}[Beweis] diff --git a/buch/chapters/040-rekursion/betaverteilung.tex b/buch/chapters/040-rekursion/betaverteilung.tex index 979d04c..77715ca 100644 --- a/buch/chapters/040-rekursion/betaverteilung.tex +++ b/buch/chapters/040-rekursion/betaverteilung.tex @@ -280,7 +280,7 @@ folgt jetzt \begin{align*} \varphi_{X_{k:n}}(x) &= -\varphi_X(x)k\binom{n}{k} F_X(x)^{k-1}(1-F_X(x))^{n-k}(x). +\varphi_X(x)k\binom{n}{k} F_X(x)^{k-1}(1-F_X(x))^{n-k}. \intertext{Im Speziellen für gleichverteilte Zufallsvariablen $X_i$ ist } \varphi_{X_{k:n}}(x) diff --git a/buch/chapters/040-rekursion/bohrmollerup.tex b/buch/chapters/040-rekursion/bohrmollerup.tex index cd9cadc..57e503a 100644 --- a/buch/chapters/040-rekursion/bohrmollerup.tex +++ b/buch/chapters/040-rekursion/bohrmollerup.tex @@ -5,12 +5,27 @@ % \subsection{Der Satz von Bohr-Mollerup \label{buch:rekursion:subsection:bohr-mollerup}} +\begin{figure} +\centering +\includegraphics{chapters/040-rekursion/images/loggammaplot.pdf} +\caption{Der Graph der Funktion $\log|\Gamma(x)|$ ist für $x>0$ konvex. +Die blau hinterlegten Bereiche zeigen an, wo die Gamma-Funktion +negative Werte annimmt. +\label{buch:rekursion:gamma:loggammaplot}} +\end{figure} Die Integralformel und die Grenzwertdefinition für die Gamma-Funktion zeigen beide, dass das Problem der Ausdehnung der Fakultät zu einer Funktion $\mathbb{C}\to\mathbb{C}$ eine Lösung hat, aber es ist noch nicht klar, in welchem Sinn dies die einzig mögliche Lösung ist. Der Satz von Bohr-Mollerup gibt darauf eine Antwort. +Der Graph +in Abbildung~\ref{buch:rekursion:gamma:loggammaplot} +zeigt, dass die Werte der Gamma-Funktion für $x>0$ so schnell +anwachsen, dass sogar die Funktion $\log|\Gamma(x)|$ konvex ist. +Der Satz von Bohr-Mollerup besagt, dass diese Eigenschaft zur +Charakterisierung der Gamma-Funktion verwendet werden kann. + \begin{satz} \label{buch:satz:bohr-mollerup} Eine Funktion $f\colon \mathbb{R}^+\to\mathbb{R}$ mit den Eigenschaften @@ -20,6 +35,8 @@ Eine Funktion $f\colon \mathbb{R}^+\to\mathbb{R}$ mit den Eigenschaften \item die Funktion $\log f(t)$ ist konvex \end{enumerate} ist die Gamma-Funktion: $f(t)=\Gamma(t)$. +\index{Satz!von Bohr-Mollerup}% +\index{Bohr-Mollerup, Satz von}% \end{satz} Für den Beweis verwenden wir die folgende Eigenschaft einer konvexen diff --git a/buch/chapters/040-rekursion/chapter.tex b/buch/chapters/040-rekursion/chapter.tex index 165c48e..1771200 100644 --- a/buch/chapters/040-rekursion/chapter.tex +++ b/buch/chapters/040-rekursion/chapter.tex @@ -8,6 +8,25 @@ \label{buch:chapter:rekursion}} \lhead{Spezielle Funktionen und Rekursion} \rhead{} +Die Fakultät $n!=1\cdot 2\cdots n$ ist eine ersten Funktionen, für die +man normalerweise auch eine rekursive Definition kennenlernt. +Rekursion ist eine besonders gut der numerischen Berechnung zugängliche +Art, spezielle Funktionen zu definieren. +In diesem Kapitel sollen daher in +Abschnitt~\ref{buch:rekursion:section:gamma} +zunächst die Gamma-Funktion als Verallgemeinerung konstruiert +und charakterisiert werden. +Die Beta-Funktion in +Abschnitt~\ref{buch:rekursion:gamma:section:beta} +verallgemeinert diese Rekursionsbeziehungen. +Abschnitt~\ref{buch:rekursion:section:linear} +erinnert an die Methoden, mit denen lineare Rekursionsgleichungen +gelöst werden können. +Erfüllten die Koeffizienten einer Potenzreihe eine spezielle +Rekursionsbeziehung, entsteht die besonders vielfältige Familie +der hypergeometrischen Funktionen, die in +Abschnitt~\ref{buch:rekursion:section:hypergeometrische-funktion} +eingeführt werden. \input{chapters/040-rekursion/gamma.tex} \input{chapters/040-rekursion/beta.tex} diff --git a/buch/chapters/040-rekursion/gamma.tex b/buch/chapters/040-rekursion/gamma.tex index 7d4453b..7f19637 100644 --- a/buch/chapters/040-rekursion/gamma.tex +++ b/buch/chapters/040-rekursion/gamma.tex @@ -20,6 +20,8 @@ für alle natürlichen Zahlen $x\in\mathbb{N}$ definiert werden. \end{equation} Kann man eine reelle oder komplexe Funktion finden, die die Funktionalgleichung~\eqref{buch:rekursion:eqn:gammadef} +\index{Gamma-Funktion!Funktionalgleichung}% +\index{Funktionalgleichung der Gamma-Funktion}% erfüllt und damit die Fakultät auf beliebige Argumente ausdehnt? \subsection{Definition als Grenzwert} @@ -71,6 +73,9 @@ gilt. Der Plan ist, dies so umzuformen, dass man für $x$ eine beliebige komplexe Zahl einsetzen kann. +% +% Pochhammer-Symbol +% \subsubsection{Pochhammer-Symbol} Die spezielle Form des Nenners und des zweiten Faktors im Zähler von \eqref{buch:rekursion:gamma:eqn:fakultaet} @@ -113,6 +118,9 @@ x! Der erste Faktor in diesem Ausdruck enthält jetzt nur noch Dinge, die für beliebige $x\in\mathbb{C}$ definiert sind. +% +% Grenwertdefinition +% \subsubsection{Grenzwertdefinition} Der zweite Bruch in \eqref{buch:rekursion:gamma:eqn:produkt3} besteht aus Termen, die zwar nur für natürliches $x$ definiert sind, @@ -141,8 +149,13 @@ $x\in\mathbb{C}\setminus\{0,-1,-2,-3,\dots\}$ ist der Grenzwert \[ \Gamma(x) = \lim_{n\to\infty} \frac{n!\,n^{x-1}}{(x)_n}. \] +\index{Grenzwertdefinition der Gamma-Funktion}% +\index{Gamma-Funktion!Grenzwertdefinition}% \end{definition} +% +% Rekursionsgleichung für Gamma(x) +% \subsubsection{Rekursionsgleichung für $\Gamma(x)$} Es ist aus der Herleitung klar, dass $\Gamma(n)=(n-1)!$ sein muss. Wir sollten dies aber auch direkt aus der @@ -195,15 +208,85 @@ x\lim_{n\to\infty} \frac{n^{x-1}}{(n+1)^{x-1}} \\ &= +x \Gamma(x) \lim_{n\to\infty} \biggl(\frac{n}{n+1}\biggr)^{x-1} = -\Gamma(x), +x\Gamma(x), \end{align*} Weil $n/(n+1)\to 1$ ist und die Funktion $z\mapsto z^{x-1}$ für alle nach der Definition zulässigen Werte von $x$ eine stetige Funktion ist. +% +% Gamma-Funktion und Pochhammer-Symbol +% +\subsubsection{Gamma-Funktion und Pochhammer-Symbol} +Durch Iteration der Rekursionsformel für $\Gamma(x)$ folgt jetzt +\begin{align*} +\Gamma(x+n) +&= +(x+n-1) \Gamma(x+n-1) +\\ +&= +(x+n-1)(x+n-2)\Gamma(x+n-2) +\\ +&= +\underbrace{ +(x+n-1)(x+n-2)\cdots(x-1)(x) +}_{\text{$n$ Faktoren}} \Gamma(x) +\\ +&=(x)_n \Gamma(x). +\end{align*} +Damit folgt + +\begin{satz} +\index{Satz!Pochhammer-Symbol@Pochhammer-Symbol und $\Gamma(x)$}% +\label{buch:rekursion:gamma:satz:gamma-pochhammer} +Die Rekursionsformel für die Gamma-Funktion kann geschrieben werden als +\[ +\Gamma(x+n) = (x)_n \Gamma(x). +\] +Das Pochhammer-Symbol $(x)_n$ ist für alle natürlichen $n$ gegeben durch +\[ +(x)_n = \frac{\Gamma(x+n)}{\Gamma(x)}. +\] +\end{satz} + +% +% Numerische Unzulänglichkeit der Grenzwertdefinition +% \subsubsection{Numerische Unzulänglichkeiten der Grenzwertdefinition} +\begin{table} +\centering +%\renewcommand{\arraystretch}{1.1} +\begin{tabular}{|>{$}c<{$}|>{$}r<{$}|>{$}l<{$}|>{$}l<{$}|} +\hline +\log_{10} n& n&n!n^{x-1}/(x)_n\mathstrut & \text{Fehler% +\vrule height12pt depth6pt width0pt} \\ +\hline +\text{\vrule height12pt depth0pt width0pt} + 1& 10&1.\underline{7}947392559855804&0.0222854050800643\\ + 2& 100&1.\underline{77}46707942830697&0.0022169433775536\\ + 3& 1000&1.\underline{772}6754214755178&0.0002215705700017\\ + 4& 10000&1.\underline{7724}760067171375&0.0000221558116213\\ + 5& 100000&1.\underline{77245}60664742375&0.0000022155687214\\ + 6& 1000000&1.\underline{77245}40724623101&0.0000002215567940\\ + 7& 10000000&1.\underline{7724538}730613721&0.0000000221558560\\ + 8& 100000000&1.\underline{77245385}31233258&0.0000000022178097\\ + 9& 1000000000&1.\underline{77245385}11320680&0.0000000002265519\\ + 10& 10000000000&1.\underline{772453850}9261316&0.0000000000206155\\ + 11&100000000000&1.\underline{77245385}14549788&0.0000000005494627\\ + & \infty&1.\underline{7724538509055161}& +\text{\vrule height12pt depth6pt width0pt} \\ +\hline +\end{tabular} +\caption{Numerische Berechnung mit der Grenzwertdefinition +und rekursiver Berechnung von $n!/(x)_n$ mit Hilfe der Folge +\eqref{buch:rekursion:gamma:pnfolge}. +Die Konvergenz ist sehr langsam, die Anzahl korrekter Stellen +wächst logarithmisch mit $n$. +\label{buch:rekursion:gamma:produktberechnung}} +\end{table} Die Grenzwertdefinition~\ref{buch:rekursion:gamma:def:definition} ist zwar zweifellos richtig, kann aber nicht für die numerische Berechnung der Gamma-Funktion verwendet werden. @@ -237,6 +320,24 @@ ist. Die Approximation mit Hilfe der Grenzwertdefinition kann also grundsätzlich nicht mehr als zwei korrekte Nachkommastellen liefern. +Den Quotienten $n!/(x)_n$ kann man mit Hilfe der Rekursionsformel +\begin{equation} +p_n = p_{n-1}\cdot \frac{n}{x+n-1},\qquad +p_0 = 0 +\label{buch:rekursion:gamma:pnfolge} +\end{equation} +etwas effizienter berechnen. +Insbesondere umgeht man damit das Problem, dass $n!$ den Wertebereich +des \texttt{double} Datentyps sprengt. +Der Wert der Gamma-Funktion kann dann durch $p_nn^{x-1}$ approximiert +werden. +Die Tabelle~\ref{buch:rekursion:gamma:produktberechnung} fasst die +Resultate zusammen und zeigt, dass die Konvergenz logarithmisch ist: +die Anzahl korrekter Nachkommastellen ist $\log_{10}n$. + +% +% Produktformel +% \subsection{Produktformel} Ein möglicher Ausweg aus den numerischen Schwierigkeiten mit der Grenzwertdefinition ist, den schnell wachsenden Faktor $n!$ @@ -244,6 +345,7 @@ in den Zähler zu bringen, so dass er der Konvergenz etwas nachhilft. Wir berechnen daher den Kehrwert $1/\Gamma(x)$. \begin{satz} +\index{Satz!Produktformel@Produktformel für $\Gamma(x)$}% \label{buch:rekursion:gamma:satz:produktformel} Der Kehrwert der Gamma-Funktion kann geschrieben werden als \begin{equation} @@ -253,8 +355,10 @@ xe^{\gamma x} \prod_{k=1}^\infty \biggl(1+\frac{x}k\biggr)\,e^{-\frac{x}{k}}, \label{buch:rekursion:gamma:eqn:produktformel} +\index{Gamma-Funktion!Produktformel}% \end{equation} wobei $\gamma$ die Euler-Mascheronische Konstante +\index{Euler-Mascheronische Konstante}% \[ \gamma = @@ -262,6 +366,8 @@ wobei $\gamma$ die Euler-Mascheronische Konstante \biggl(\sum_{k=1}^n\frac{1}{k}-\log n\biggr) \] ist. +\index{Gamma-Funktion!Produktformel}% +\index{Produktformel für die Gamma-Funkion}% \end{satz} \begin{proof}[Beweis] @@ -368,16 +474,20 @@ vollständig bewiesen. \begin{table} \centering -\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} +\begin{tabular}{|>{$}c<{$}|>{$}r<{$}|>{$}c<{$}|>{$}c<{$}|} \hline -k & \Gamma(\frac12,n) & \Gamma(\frac12) - \Gamma(\frac12,n) \\ +k & n & \Gamma(\frac12,n) & \Gamma(\frac12) - \Gamma(\frac12,n)% +\text{\vrule height12pt depth6pt width0pt} \\ \hline -1 & 1.\underline{7}518166478 & -0.0206372031 \\ -2 & 1.\underline{77}02543372 & -0.0021995137 \\ -3 & 1.\underline{772}2324556 & -0.0002213953 \\ -4 & 1.\underline{7724}316968 & -0.0000221541 \\ -5 & 1.\underline{77245}16354 & -0.0000022156 \\ -6 & 1.\underline{772453}6293 & -0.0000002216 \\ +\text{\vrule height12pt depth0pt width0pt} + 1& 10& 1.\underline{7}518166478& -0.0206372031 \\ + 2& 100& 1.\underline{77}02543372& -0.0021995137 \\ + 3& 1000& 1.\underline{772}2324556& -0.0002213953 \\ + 4& 10000& 1.\underline{7724}316968& -0.0000221541 \\ + 5& 100000& 1.\underline{77245}16354& -0.0000022156 \\ + 6&1000000& 1.\underline{772453}6293& -0.0000002216 \\ +\infty& & 1.\underline{7724538509}& +\text{\vrule height12pt depth6pt width0pt} \\ \hline \end{tabular} \caption{Werte $\Gamma(\frac12,n)$ von $\Gamma(\frac12)$ berechnet mit @@ -385,6 +495,9 @@ $n=10^k$ Faktoren der Produktformel~\eqref{buch:rekursion:gamma:eqn:produktformel} und der zugehörige Fehler. Die korrekten Nachkommastellen sind unterstrichen. +Die Konvergenz ist genau gleich langsam wie in der Berechnung mit +Hilfe der Grenzwert-Definition in +Tabelle~\ref{buch:rekursion:gamma:produktberechnung}. \label{buch:rekursion:gamma:gammatabelle}} \end{table} @@ -422,6 +535,8 @@ z \mapsto \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}\,dt \] +\index{Gamma-Funktion!Integraldefinition}% +\index{Integraldefinition der Gamma-Funktion}% \end{definition} Man beachte, dass das Integral für $x=0$ nicht definiert ist, eine @@ -436,6 +551,9 @@ die richtigen Werte für natürliche Argumente hat, es wird aber auch gezeigt, dass dies nicht ausreicht um zu schliessen, dass die Integralformel mit der früher definierten Gamma-Funktion übereinstimmt. +% +% Funktionalgleichung für die Integraldefinition +% \subsubsection{Funktionalgleichung für die Integraldefinition} Tatsächlich ist es einfach nachzuprüfen, dass die Funktionalgleichung der Gamma-Funktion auch für die Definition~\ref{buch:rekursion:def:gamma} @@ -480,8 +598,8 @@ ganzzahlige Argumente übereinstimmen. Der folgende Abschnitt macht deutlich, dass es sehr viele Funktionen gibt, die ebenfalls die Funktionalgleichung erfüllen. Eine vollständige Rechtfertigung für diese Definition wird später -in Abschnitt~\ref{buch:rekursion:gamma:subsection:beta} -\eqref{buch:rekursion:gamma:integralbeweis} +in Abschnitt~\ref{buch:rekursion:gamma:subsection:integralbeweis} +in Formel~\eqref{buch:rekursion:gamma:integralbeweis} auf Seite~\pageref{buch:rekursion:gamma:integralbeweis} gegeben. @@ -494,9 +612,13 @@ die Werte der Fakultät annimmt. \label{buch:rekursion:fig:gamma}} \end{figure} +% +% Der Wert Gamma(1/2) +% \subsubsection{Der Wert $\Gamma(\frac12)$} Die Integraldarstellung kann dazu verwendet werden, $\Gamma(\frac12)$ zu berechnen. +\index{Gamma-Funktion!WertGamma12@Wert von $\Gamma(\frac12)$}% Dazu verwendet man die Substition $t=s^2$ in der Integraldefinition der Gamma-Funktion und berechnen \begin{align} @@ -511,12 +633,16 @@ der Gamma-Funktion und berechnen \int_{-\infty}^\infty e^{-s^2}\,ds = \sqrt{\pi}. -\label{buch:rekursion:gamma:betagamma} +\label{buch:rekursion:gamma:wert12} \end{align} Der Integrand im letzten Integral ist die Wahrscheinlichkeitsdichte einer Normalverteilung, deren Integral wohlbekannt ist. -\subsubsection{Alternative Lösungen} +% +% Alternative Lösungen +% +\subsubsection{Alternative Lösungen der +Funktionalgleichung~\ref{buch:rekursion:eqn:gammadef}} Die Funktion $\Gamma(z)$ ist nicht die einzige Funktion, die natürlichen Zahlen die Werte $\Gamma(n+1) = n!$ der Fakultät annimmt. Indem man eine beliebige Funktion $f(z)$ addiert, die auf alle @@ -547,6 +673,8 @@ Von Wielandt stammt das folgende, noch etwas speziellere Resultat, welches hier nicht bewiesen wird. \begin{satz}[Wielandt] +\index{Satz!von Wielandt}% +\index{Wielandt, Satz von}% Ist $f(z)$ eine für $\operatorname{Re}z>0$ definiert Funktion mit den folgenden drei Eigenschaften \begin{enumerate} @@ -560,11 +688,16 @@ Dann ist $ f(z) = \Gamma(z) $. % XXX Gamma in the interval (1,2) %Man beachte, dass +% +% Laplace-Transformierte der Potenzfunktion +% \subsubsection{Laplace-Transformierte der Potenzfunktion} Die Integraldarstellung der Gamma-Funktion erlaubt jetzt auch, die Laplace-Transformation der Potenzfunktion zu berechnen. +\index{Laplace-Transformierte der Potenzfunktion}% \begin{satz} +\index{Satz!Laplace-Transformierte der Potenzfunktion}% Die Laplace-Transformierte der Potenzfunktion $f(t)=t^\alpha$ ist \[ (\mathscr{L}f)(s) @@ -594,7 +727,11 @@ Durch die Substitution $st = u$ oder $t=\frac{u}{s}$ wird daraus \] \end{proof} +% +% Pol erster Ordnung bei z=0 +% \subsubsection{Pol erster Ordnung bei $z=0$} +\index{Gamma-Funktion!Pol@Pol bei $z=0$}% Wir haben zu prüfen, dass sowohl der Wert $\Gamma(1)$ korrekt ist als auch die Rekursionsformel~\eqref{buch:rekursion:eqn:gammadef} gilt. Der Wert für $z=1$ ist @@ -644,7 +781,12 @@ Daraus ergibt sich für $\Gamma(z)$ der Ausdruck \] Die Gamma-Funktion hat daher an der Stelle $z=0$ einen Pol erster Ordnung. +% +% Ausdehnung auf Re(z) < 0 +% \subsubsection{Ausdehnung auf $\operatorname{Re}z<0$} +\index{Gamma-Funktion!analytische Fortsetzung}% +\index{analytische Fortsetzung der Gamma-Funktion}% Die Integralformel konvergiert nicht für $\operatorname{Re}z\le 0$. Durch analytische Fortsetzung, wie sie im Abschnitt~\ref{buch:funktionentheorie:section:fortsetzung} @@ -683,22 +825,29 @@ Somit hat $\Gamma(z)$ Pole erster Ordnung bei den negativen ganzen Zahlen und bei $0$, wie sie in Abbildung~\ref{buch:rekursion:fig:gamma} gezeigt werden. +% +% Numerische Berechnung +% \subsubsection{Numerische Berechnung} \begin{table} \centering -\begin{tabular}{|>{$}c<{$}|>{$}c<{$}>{$}c<{$}|} +\begin{tabular}{|>{$}c<{$}|>{$}r<{$}|>{$}c<{$}>{$}c<{$}|} \hline -k & y(10^k) & y(10^k) - \Gamma(\frac{5}{2}) \\ +k & n=10^k & y(n) & y(n) - \Gamma(\frac{5}{3}) +\text{\vrule height12pt depth6pt width0pt} \\ \hline -1 & 0.0000000000 & -0.9027452930 \\ -2 & 0.3319129461 & -0.5708323468 \\ -3 & 0.\underline{902}5209490 & -0.0002243440 \\ -4 & 0.\underline{902745}1207 & -0.0000001723 \\ -5 & 0.\underline{902745}0962 & -0.0000001968 \\ -6 & 0.\underline{902745}0962 & -0.0000001968 \\ +\text{\vrule height12pt depth0pt width0pt} +1 & 10 & 0.0000000000 & -0.9027452930 \\ +2 & 100 & 0.3319129461 & -0.5708323468 \\ +3 & 1000 & 0.\underline{902}5209490 & -0.0002243440 \\ +4 & 10000 & 0.\underline{902745}1207 & -0.0000001723 \\ +5 & 100000 & 0.\underline{902745}0962 & -0.0000001968 \\ +6 & 1000000 & 0.\underline{902745}0962 & -0.0000001968 \\ + & \infty & 0.\underline{9027452929} & +\text{\vrule height12pt depth6pt width0pt} \\ \hline \end{tabular} -\caption{Resultate der Berechnung von $\Gamma(\frac{5}{2})$ mit Hilfe +\caption{Resultate der Berechnung von $\Gamma(\frac{5}{3})$ mit Hilfe der Differentialgleichung \eqref{buch:rekursion:gamma:eqn:gammadgl}. Die korrekten Stellen sind unterstrichen. Es sind immerhin sechs korrekte Stellen gefunden, wobei nur 337 @@ -708,19 +857,24 @@ Auswertungen des Integranden notwendig waren. Im Prinzip könnte die Integraldefinition der numerischen Berechnung entgegenkommen. Um diese Hypothese zu prüfen, berechnen wir das Integral für -$z=\frac52$ mit Hilfe der äquivalenten Differentialgleichungen +$z=\frac53$ mit Hilfe der äquivalenten Differentialgleichungen \begin{equation} \dot{y}(t) = t^{z-1}e^{-t} -\qquad\text{mit Anfangsbedingung $y(0)=0$}. +\qquad +\text{mit Anfangsbedingung $y(0)=0$}. \label{buch:rekursion:gamma:eqn:gammadgl} \end{equation} +\index{Gamma-Funktion!Loesung@Lösung mit Differentialgleichung} Der gesuchte Wert ist der Grenzwert $\lim_{t\to\infty} y(t)$. In der Tabelle~\ref{buch:rekursion:gamma:table:gammaintegral} sind die Werte von $y(10^k)$ sowie die Differenzen -$y(10^k) - \Gamma(\frac{5}{2})$ zusammengefasst. +$y(10^k) - \Gamma(\frac{5}{3})$ zusammengefasst. Die Genauigkeit erreicht sechs korrekte Nachkommastellen mit nur 337 Auswertungen des Integranden. +Eine noch wesentlich effizientere Auswertung des $\Gamma$-Integrals +mit Hilfe der Gauss-Laguerre-Quadratur wird in Kapitel~\ref{chapter:laguerre} +von Patrick Müller dargestellt. % % diff --git a/buch/chapters/040-rekursion/gammalimit/Makefile b/buch/chapters/040-rekursion/gammalimit/Makefile new file mode 100644 index 0000000..0804e74 --- /dev/null +++ b/buch/chapters/040-rekursion/gammalimit/Makefile @@ -0,0 +1,11 @@ +# +# Makefile -- build gamma limit test programm +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +l: l.cpp + g++ -O2 -g -Wall `pkg-config --cflags gsl` `pkg-config --libs gsl` \ + -o l l.cpp + +test: l + ./l diff --git a/buch/chapters/040-rekursion/gammalimit/l.cpp b/buch/chapters/040-rekursion/gammalimit/l.cpp new file mode 100644 index 0000000..7a86800 --- /dev/null +++ b/buch/chapters/040-rekursion/gammalimit/l.cpp @@ -0,0 +1,26 @@ +/* + * l.cpp + * + * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + */ +#include <cstdlib> +#include <cmath> +#include <cstdio> + +int main(int argc, char *argv[]) { + double x = 0.5; + double g = tgamma(x); + printf("limit: %20.16f\n", g); + double p = 1; + long long N = 100000000000; + long long n = 10; + for (long long k = 1; k <= N; k++) { + p = p * k / (x + k - 1); + if (0 == k % n) { + double gval = p * pow(k, x-1); + printf("%12ld %20.16f %20.16f\n", k, gval, gval - g); + n = n * 10; + } + } + return EXIT_SUCCESS; +} diff --git a/buch/chapters/040-rekursion/gammalimit/l.m b/buch/chapters/040-rekursion/gammalimit/l.m new file mode 100644 index 0000000..32b6442 --- /dev/null +++ b/buch/chapters/040-rekursion/gammalimit/l.m @@ -0,0 +1,19 @@ +# +# l.m -- Berechnung der Gamma-Funktion +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +global N; +N = 10000; + +function retval = gamma(x, n) + p = 1; + for k = (1:n) + p = p * k / (x + k - 1); + end + retval = p * n^(x-1); +endfunction + +for n = (100:100:N) + printf("Gamma(%4d) = %10f\n", n, gamma(0.5, n)); +end diff --git a/buch/chapters/040-rekursion/hypergeometrisch.tex b/buch/chapters/040-rekursion/hypergeometrisch.tex index d92e594..13ba3b2 100644 --- a/buch/chapters/040-rekursion/hypergeometrisch.tex +++ b/buch/chapters/040-rekursion/hypergeometrisch.tex @@ -16,22 +16,38 @@ n^3S_{n} mit Anfangswerten $S_0=1$ und $S_1=8$ angeben? Dies scheint auf den ersten Blick unmöglich kompliziert, man kann aber zeigen, dass -\[ +\begin{equation} S_n = \sum_{k=0}^n \binom{2n-2k}{n-k}^2 \binom{2k}{k}^2 -\] +\label{buch:rekursion:hypergeometrisch:eqn:Sn} +\end{equation} gilt (\cite[p.~xi]{buch:ab}). Die Lösung ist also eine Summe von Summanden, die sehr viel einfacher aussehen und vor allem die besondere Eigenschaft haben, dass die -Quotienten aufeinanderfolgender Terme rationale Funktionen von von $k$ +Quotienten aufeinanderfolgender Terme rationale Funktionen von $k$ sind. -% XXX Quotient berechnen -Eine besonders simple solche Funktion ist die geometrische Reihe, die -im Abschnitt~\ref{buch:rekursion:hypergeometrisch:geometrisch} -in Erinnerung gerufen wird. +\begin{definition} +Ein Folge heisst {\em hypergeometrisch}, wenn der Quotient aufeinanderfolgender +\index{hypergeometrische Folge}% +\index{Folge, hypergeometrisch}% +Terme eine rationale Funktion des Folgenindex ist. +\end{definition} + +Die Terme der Reihenentwicklungen aller bisher behandelten speziellen +Funktionen waren hypergeometrisch. +Im aktuellen Abschnitt soll daher die Klasse der sogenannten +hypergeometrischen Funktionen untersucht werden, die durch diese +Eigenschaft charakterisiert sind. + +In Abschnitt~\ref{buch:rekursion:hypergeometrisch:binomialkoeffizienten} +wird klar, dass Folgen, deren Terme aus Fakultäten und Binomialkoeffizienten +immer hypergeometrisch sind. +Die Untersuchung der geometrischen Reihe in +Abschnitt~\ref{buch:rekursion:hypergeometrisch:geometrisch} +motiviert die Namensgebung. Abschnitt~\ref{buch:rekursion:hypergeometrisch:reihen} definiert den Begriff der hypergeometrischen Reihe und zeigt, wie sie in eine Standardform gebracht werden können. @@ -39,22 +55,101 @@ In Abschnitt~\ref{buch:rekursion:hypergeometrisch:beispiele} schliesslich wird an Hand von Beispielen gezeigt, wie bekannte Funktionen als hypergeometrische Funktionen interpretiert werden können. +% +% Quotienten von Binomialkoeffizienten +% +\subsection{Quotienten von Binomialkoeffizienten +\label{buch:rekursion:hypergeometrisch:binomialkoeffizienten}} +Aufeinanderfolgende Terme der Summe +\eqref{buch:rekursion:hypergeometrisch:eqn:Sn} +sollen als Quotienten eine rationale Funktion haben. +Dies ist eine allgemeine Eigenschaft von Folgen, die durch Fakultäten +oder Binomialkoeffizienten definiert sind, wie die beiden folgenden +Sätze zeigen. + +\begin{satz} +\index{Satz!Quotienten von Fakultäten}% +\label{buch:rekursion:hypergeometrisch:satz:fakquo} +Der Quotient aufeinanderfolgender Folgenglieder +der Folge $c_k=(a+bk)!$ ist der ein Polynom vom Grad $b$. +\end{satz} +\begin{proof}[Beweis] +\begin{align*} +\frac{c_{k+1}}{c_k} +&= +\frac{(a+b(k+1))!}{(a+bk)!} += +\frac{(a+bk+b)!}{(a+b)!} +\\ +&= +(a+bk+1)(a+bk+2)\cdots(a+bk+b) += +(a+bk+1)_b +\end{align*} +Das Pochhammer-Symbol hat $b$ Faktoren, es ist ein Polynom vom Grad $b$. +\end{proof} + +\begin{satz} +\index{Satz!Quotienten von Binomialkoeffizienten}% +\label{buch:rekursion:hypergeometrisch:satz:binomquo} +Die Quotienten aufeinanderfolgender Werte der Binomialkoeffizienten +\[ +f_k += +\binom{a+bk}{c+dk} +\] +ist eine rationale Funktion von $k$ mit Zähler- und Nennergrad $b$. +\end{satz} + +\begin{proof}[Beweis] +Indem man die Binomialkoeffizienten mit Fakultäten als +\[ +\binom{a+bk}{c+dk} += +\frac{(a+bk)!}{(c+dk)!(a-c+(b-d)k)!} +\] +ausschreibt, findet man mit +Satz~\ref{buch:rekursion:hypergeometrisch:satz:fakquo} +für die Quotienten +\begin{align} +\frac{f_{k+1}}{f_k} +&= +\frac{(a+bk+1)_b}{(c+dk+1)_d\cdot(a-c+(b-d)k+1)_{b-d}} +\label{buch:rekursion:eqn:binomquotient} +\end{align} +Die Pochhammer-Symbole sind Polynome vom Grad $b$, $d$ bzw.~$b-d$. +Insbesondere ist auch das Nenner-Polynom vom Grad $d+(b-d)=b$. +\end{proof} + +Aus den Sätzen~\ref{buch:rekursion:hypergeometrisch:satz:fakquo} +und +\ref{buch:rekursion:hypergeometrisch:satz:binomquo} +folgt jetzt sofort, dass auch der Quotient aufeinanderfolgender +Summanden der Summe~\eqref{buch:rekursion:hypergeometrisch:eqn:Sn} +eine rationale Funktion von $k$ ist. + +% +% Die geometrische Reihe +% \subsection{Die geometrische Reihe \label{buch:rekursion:hypergeometrisch:geometrisch}} -Die besonders einfache Potenzreihe +Die Reihe \[ f(q) = \sum_{k=0}^\infty aq^k \] -heisst die {\em geometrische Reihe}. +heisst die {\em geometrische Reihe} ist besonders einfache +Reihe mit einer hypergeometrischen Folge von Termen. +\index{geometrische Reihe}% +\index{Reihe!geometrische}% Die Partialsummen \[ S_n = \sum_{k=0}^n aq^k \] -kann mit der Differenz +können aus der Differenz \begin{equation} (1-q)S_n = @@ -75,8 +170,7 @@ a\frac{1-q^{n+1}}{1-q} \label{buch:rekursion:hypergeometrisch:eqn:geomsumme} \end{equation} auflösen kann. - -Fü $q<1$ geht $q^n\to 0$ und damit konvergiert +Für $q<1$ geht $q^n\to 0$ und damit konvergiert $S_n$ gegen \[ \sum_{k=0}^\infty aq^k @@ -97,6 +191,9 @@ Die Berechnung der Summe in beruht darauf, dass die Multiplikation mit $q$ einen ``anderen'' Teil der Summe ergibt, der sich in der Differenze weghebt. +% +% Hypergeometrische Reihen +% \subsection{Hypergeometrische Reihen \label{buch:rekursion:hypergeometrisch:reihen}} Es ist plausibel, dass eine etwas lockerere Bedingung an die @@ -105,11 +202,15 @@ ermöglichen wird, interessante Aussagen über die durch die Reihe beschriebenen Funktionen zu machen. \begin{definition} -Eine Reihe +\label{buch:rekursion:hypergeometrisch:def:allg} +Eine durch die Reihe \[ f(x) = \sum_{k=0}^\infty a_k x^k \] -heisst {\em hypergeometrisch}, wenn der Quotient aufeinanderfolgender +definierte Funktion $f(x)$ heisst {\em hypergeometrisch}, +wenn der Quotient aufeinanderfolgender +\index{hypergeometrisch} +\index{Reihe!hypergeometrisch} Koeffizienten eine rationale Funktion von $k$ ist, wenn also \[ @@ -120,9 +221,13 @@ wenn also mit Polynomen $p(k)$ und $q(k)$ ist. \end{definition} +% +% Beispiele von hypergeometrischen Funktionen +% +\subsubsection{Beispiele von hypergeometrischen Funktionen} Die geometrische Reihe ist natürlich eine hypergeometrische Reihe, wobei $p(k)/q(k)=1$ ist. -Etwas interessanter ist die Exponentialfunktion, durch die Taylor-Reihe +Etwas interessanter ist die Exponentialfunktion, die durch die Taylor-Reihe \[ e^x = \sum_{k=0}^\infty \frac{x^k}{k!} \] @@ -165,7 +270,30 @@ eine rationale Funktion mit Zählergrad $0$ und Nennergrad $2$. Es gibt also eine hypergeometrische Reihe $f(z)$ derart, dass $\cos x = f(x^2)$ ist. -Seien $p(k)$ und $q(k)$ zwei Polynome derart, dass +% +% Die hypergeometrischen Funktione pFq +% +\subsubsection{Die hypergeometrischen Funktionen $\mathstrut_pF_q$} +Die Definition~\ref{buch:rekursion:hypergeometrisch:def:allg} +einer hypergeometrischen Funktion wie auch die Verschiedenartigkeit +der Beispiele kännen den Eindruck vermitteln, dass die diese Klasse +von Funktionen unübersichtlich gross sein könnte. +Dem ist jedoch nicht so. +In diesem Abschnitt soll gezeigt werden, dass alle hypergeometrischen +Funktionen durch die in +Definition~\ref{buch:rekursion:hypergeometrisch:def} definierten +Funktionen $\mathstrut_pF_q$ ausgedrückt werden. +Die hypergeometrischen Funktionen können also vollständig parametrisiert +werden. + +Zu diesem Zweick sie +\[ +f(x) += +\sum_{k=0}^\infty a_kx^k +\] +eine hypergeometrische Funktion und +seien $p(k)$ und $q(k)$ zwei Polynome derart, dass \[ \frac{a_{k+1}}{a_k} = \frac{p(k)}{q(k)}. \] @@ -201,12 +329,12 @@ Dazu nehmen wir an, dass $a_i$, $i=1,\dots,n$ die Nullstellen von $p(k)$ sind und $b_j$, $j=1,\dots,m$ die Nullstellen von $q(k)$, dass man also die Polynome als \begin{align*} -p(k) &= x(k-a_1)(k-a_2)\cdots(k-a_n) +p(k) &= s(k-a_1)(k-a_2)\cdots(k-a_n) \\ q(k) &= (k-b_1)(k-b_2)\cdots(k-b_m) \end{align*} schreiben kann. -Der Faktor $x$ ist nötig, weil die Polynome $p(k)$ und $q(k)$ nicht +Der Faktor $s$ ist nötig, weil die Polynome $p(k)$ und $q(k)$ nicht notwendigerweise normiert sind. Um das Produkt der Quotienten zu vereinfachen, nehmen wir für den Moment @@ -216,14 +344,14 @@ Dann ist nach \[ a_{k} = -x^{k} +s^{k} \frac{ (k-1-a_1) \cdots (2-a_1)(1-a_1)(0-a_1) }{ (k-1-b_1) \cdots (2-b_1)(1-b_1)(0-b_1) } = -\frac{(-a_1)_k}{(-b_1)_k} x^k. +\frac{(-a_1)_k}{(-b_1)_k} s^k. \] Die Koeffizienten können daher als Quotienten von Pochhammer-Symbolen geschrieben werden. @@ -233,13 +361,16 @@ von der Form a_k = \frac{(-a_1)_k(-a_2)_k\cdots (-a_n)_k}{(-b_1)_k(-b_2)_k\cdots(-b_m)_k} -x^ka_0. +s^ka_0. \] -Jede hypergeometrische Reihe kann daher in der Form +Jede hypergeometrische Funktion kann daher in der Form \[ +f(x) += a_0 \sum_{k=0}^\infty \frac{(-a_1)_k(-a_2)_k\cdots (-a_n)_k}{(-b_1)_k(-b_2)_k\cdots(-b_m)_k} +s^k x^k \] geschrieben werden. @@ -273,9 +404,10 @@ zusätzlichen Faktor $(1)_k$ im Zähler des Bruchs von Pochhammer-Symbolen kompensieren, wodurch sich der Grad $p$ des Zählers natürlich um $1$ erhöht. -Die oben analysierte Summe $S$ kann mit der Definition als +Die oben analysierte Summe für $f(x)$ kann mit der +Definition~\ref{buch:rekursion:hypergeometrisch:def} als \[ -S +f(x) = a_0 \cdot @@ -283,11 +415,75 @@ a_0 \begin{matrix} -a_1,-a_2,\dots,-a_n,1\\ -b_1,-b_2,\dots,-a_m -\end{matrix}; x +\end{matrix}; sx \biggr) \] beschrieben werden. +% +% Elementare Rechenregeln +% +\subsubsection{Elementare Rechenregeln} +Die Funktionen $\mathstrut_pF_q$ sind nicht alle unabhängig. +In Abschnitt~\ref{buch:rekursion:hypergeometrisch:stammableitung} +wird gezeigt werden, dass Ableitung und Stammfunktion einer hypergeometrischen +Funktion durch Manipulation der Parameter $a_k$ und $b_k$ bestimmt werden +können. +Viel einfacher sind jedoch die folgenden, aus +Definition~\ref{buch:rekursion:hypergeometrisch:def} +offensichtlichen Regeln: + +\begin{satz}[Permutationsregel] +\index{Satz!Permutationsregel für hypergeometrische Funktionen}% +\label{buch:rekursion:hypergeometrisch:satz:permuationsregel} +Sei $\pi$ eine beliebige Permutation der Zahlen $1,\dots,p$ und $\sigma$ eine +beliebige Permutation der Zahlen $1,\dots,q$, dann ist +\begin{equation} +\mathstrut_pF_q\biggl( +\begin{matrix} +a_1,\dots,a_p\\b_1,\dots,a_q +\end{matrix} +;x +\biggr) += +\mathstrut_pF_q\biggl( +\begin{matrix} +a_{\pi(1)},\dots,a_{\pi(p)}\\b_{\sigma(1)},\dots,b_{\sigma(q)} +\end{matrix} +;x +\biggr). +\label{buch:rekursion:hypergeometrisch:eqn:permuationsregel} +\end{equation} +\end{satz} + +\begin{satz}[Kürzungsformel] +\index{Satz!Kürzungsformel für hypergeometrische Funktionen}% +\label{buch:rekursion:hypergeometrisch:satz:kuerzungsregel} +Stimmt einer der Koeffizienten $a_k$ mit einem der Koeffizienten $b_i$ +überein, dann können sie weggelassen werden: +\begin{equation} +\mathstrut_{p+1}F_{q+1}\biggl( +\begin{matrix} +c,a_1,\dots,a_p\\ +c,b_1,\dots,b_q +\end{matrix}; +x +\biggr) += +\mathstrut_{p}F_{q}\biggl( +\begin{matrix} +a_1,\dots,a_p\\ +b_1,\dots,b_q +\end{matrix}; +x +\biggr). +\label{buch:rekursion:hypergeometrisch:eqn:kuerzungsregel} +\end{equation} +\end{satz} + +% +% Beispiele von hypergeometrischen Funktionen +% \subsection{Beispiele von hypergeometrischen Funktionen \label{buch:rekursion:hypergeometrisch:beispiele}} Viele der bekannten Reihenentwicklungen häufig verwendeter Funktionen @@ -295,6 +491,9 @@ lassen sich durch die hypergeometrischen Funktionen von Definition~\ref{buch:rekursion:hypergeometrisch:def} ausdrücken. In diesem Abschnitt werden einige Beispiel dazu gegeben. +% +% Die geometrische Reihe +% \subsubsection{Die geometrische Reihe} In der geometrischen Reihe fehlt der Nenner $k!$, es braucht daher einen Term $(1)_k$ im Zähler, um den Nenner zu kompensieren. @@ -312,6 +511,9 @@ a\sum_{k=0}^\infty a\cdot\mathstrut_1F_0(1,x). \] +% +% Die Exponentialfunktion +% \subsubsection{Exponentialfunktion} Die Exponentialfunktion ist die Reihe \[ @@ -323,7 +525,10 @@ benötigt, es ist daher e^x = \mathstrut_0F_0(x). \] -\subsubsection{Wurzelfunktion} +% +% Wurzelfunktionen +% +\subsubsection{Wurzelfunktionen} Die Wurzelfunktion $x\mapsto \sqrt{x}$ hat keine Taylor-Entwicklung in $x=0$, aber die Funktion $x\mapsto\sqrt{1+x}$ hat die Taylor-Reihe \[ @@ -412,11 +617,33 @@ Die Wurzelfunktion ist daher die hypergeometrische Funktion \sqrt{1\pm x} = \sum_{k=0}^\infty -\biggl(-\frac12\biggr)_k \frac{(-x)^k}{k!} +\biggl(-\frac12\biggr)_k \frac{(\pm x)^k}{k!} = \mathstrut_1F_0(-{\textstyle\frac12};\mp x). \] +Mit der Newtonschen Binomialreihe, die in +Abschnitt~\ref{buch:differentialgleichungen:subsection:newtonschereihe} +hergleitet wird, +kann man ganz analog jede beliebige Wurzelfunktion +\begin{align*} +(1+x)^\alpha +&= +1+\alpha x + \frac{\alpha(\alpha-1)}{2!}x^2 + \frac{\alpha(\alpha-1)(\alpha-2)}{3!}x^3+\dots +%\\ +%& += +\sum_{k=0}^\infty \frac{(-\alpha)_k}{k!}x^k += +\mathstrut_1F_0\biggl(\begin{matrix}-\alpha\\\text{---}\end{matrix};-x\biggr) +\end{align*} +durch $\mathstrut_1F_0$ ausdrücken. +Dieses Resultat ist der Inhalt von +Satz~\ref{buch:differentialgleichungen:satz:newtonschereihe} + +% +% Logarithmusfunktion +% \subsubsection{Logarithmusfunktion} Für $x\in (-1,1)$ konvergiert die Taylor-Reihe \[ @@ -483,8 +710,11 @@ x\cdot \mathstrut_2F_1\biggl(\begin{matrix}1,1\\2\end{matrix};-x\biggr). \] - +% +% Trigonometrische Funktionen +% \subsubsection{Trigonometrische Funktionen} +\index{trigonometrische Funktionen!als hypergeometrische Funktionen}% Die Kosinus-Funktion wurde bereits als hypergeometrische Funktion erkannt, im Folgenden soll dies auch noch für die Sinus-Funktion durchgeführt werden. @@ -509,7 +739,7 @@ x f(-x^2). Die Funktion $f(z)$ soll jetzt als hypergeometrische Funktion geschrieben werden. Dazu muss zunächst wieder der Nenner $k!$ wiederhergestellt werden: -\[ +\begin{equation*} f(z) = 1 @@ -521,7 +751,7 @@ f(z) \frac{3!}{7!}\cdot \frac{z^3}{3!} + \dots -\] +\end{equation*} Die Koeffizienten $k!/(2k+1)!$ müssen jetzt durch Pochhammer-Symbole mit jeweils $k$ Faktoren ausgedrückt werden. Dazu muss die Fakultät $(2k+1)!$ in zwei Produkte @@ -561,15 +791,27 @@ müssen wird mit $2^{2k}$ kompensieren: (1)_k\cdot \biggl(\frac{3}{2}\biggr)_k \end{align*} Setzt man dies in die Reihe ein, wird -\[ +\begin{equation} f(z) = \sum_{k=0}^\infty \frac{(1)_k}{(1)_k\cdot (\frac{3}{2})_k\cdot 4^k} z^k = -\mathstrut_1F_2\biggl(1;1,\frac{3}{2};\frac{z}4\biggr). -\] +\mathstrut_1F_2\biggl( +\begin{matrix}1\\1,\frac{3}{2}\end{matrix};\frac{z}4 +\biggr) += +\mathstrut_0F_1\biggl( +\begin{matrix}\text{---}\\\frac{3}{2}\end{matrix};\frac{z}4 +\biggr). +\label{buch:rekursion:hyperbolisch:eqn:hilfsfunktionf} +\end{equation} +Im letzten Schritt wurde die Kürzungsregel +\eqref{buch:rekursion:hypergeometrisch:eqn:kuerzungsregel} +von +Satz~\ref{buch:rekursion:hypergeometrisch:satz:kuerzungsregel} +angewendet. Damit lässt sich die Sinus-Funktion als \begin{equation} \sin x @@ -585,28 +827,35 @@ x\cdot\mathstrut_0F_1\biggl( \end{equation} durch eine hypergeometrische Funktion ausdrücken. +% +% Hyperbolische Funktionen +% \subsubsection{Hyperbolische Funktionen} +\index{hyperbolische Funktionen!als hypergeometrische Funktionen}% Die für die Sinus-Funktion angewendete Methode lässt sich auch auf die Funktion \begin{align*} \sinh x &= \sum_{k=0}^\infty \frac{x^{2k+1}}{(2k+1)!} -\\ -&= +%\\ +%& += x \, \biggl( 1+\frac{x^2}{3!} + \frac{x^4}{5!}+\frac{x^6}{7!}+\dots \biggr) -\\ +\intertext{Die Reihe in der Klammer lässt sich mit der Funktion +$f$ von \eqref{buch:rekursion:hyperbolisch:eqn:hilfsfunktionf} +schreiben als} &= -xf(-x^2) -= -x\,\mathstrut_1F_2\biggl( -\begin{matrix}1\\1,\frac{3}{2}\end{matrix} -;\frac{x^2}{4} -\biggr) +x\,f(-x^2) +%= +%x\cdot\mathstrut_1F_2\biggl( +%\begin{matrix}1\\1,\frac{3}{2}\end{matrix} +%;\frac{x^2}{4} +%\biggr) = x\cdot\mathstrut_0F_1\biggl( \begin{matrix}\text{---}\\\frac{3}{2}\end{matrix} @@ -618,18 +867,85 @@ ist diese Darstellung identisch mit der von $\sin x$. Dies illustriert die Rolle der hypergeometrischen Funktionen als ``grosse Vereinheitlichung'' der bekannten speziellen Funktionen. +% +% Tschebyscheff-Polynome +% \subsubsection{Tschebyscheff-Polynome} +\index{Tschebyscheff-Polynome}% +Man kann zeigen, dass auch die Tschebyscheff-Polynome sich durch die +hypergeometrischen Funktionen +\begin{equation} +T_n(x) += +\mathstrut_2F_1\biggl( +\begin{matrix}-n,n\\\frac12\end{matrix} +; +\frac12(1-x) +\biggr) +\label{buch:rekursion:hypergeometrisch:tschebyscheff2f1} +\end{equation} +ausdrücken lassen. +Beweisen kann man diese Beziehung zum Beispiel mit Hilfe der +Differentialgleichungen, denen die Funktionen genügen. +Diese Methode wird in +Abschnitt~\ref{buch:differentialgleichungen:section:hypergeometrisch} +von Kapitel~\ref{buch:chapter:differential} vorgestellt. + +Die Tschebyscheff-Polynome sind nicht die einzigen Familien von Polynomen, +\index{Tschebyscheff-Polynome!als hypergeometrische Funktion} +die sich durch $\mathstrut_pF_q$ ausdrücken lassen. +Für die zahlreichen Familien von orthogonalen Polynomen, die in +Kapitel~\ref{buch:chapter:orthogonalitaet} untersucht werden, +trifft dies auch zu. +Ein Funktion +\[ +\mathstrut_pF_q +\biggl( +\begin{matrix} +a_1,\dots,a_p\\ +b_1,\dots,b_q +\end{matrix} +;z +\biggr) +\] +ist genau dann ein Polynom, wenn mindestens einer der Parameter +$a_k$ eine negative ganze Zahl ist. +Der Grad des Polynoms ist der kleinste Betrag der negativ ganzzahligen +Werte unter den Parametern $a_k$. + +% +% Die Funktionen 0F1 +% +\subsubsection{Die Funktionen $\mathstrut_0F_1$} +\begin{figure} +\centering +\includegraphics{chapters/040-rekursion/images/0f1.pdf} +\caption{Graphen der Funktionen $\mathstrut_0F_1(;\alpha;x)$ für +verschiedene Werte von $\alpha$. +\label{buch:rekursion:hypergeometrisch:0f1}} +\end{figure} +Die Funktionen $\mathstrut_0F_1$ sind in den Beispielen mit der +beschränkten trigonometrischen Funktion $\sin x$ und mit der +exponentiell unbeschränkten Funktion $\sinh x$ mit dem gleichen +Wert des Parameters und nur einem Wechsel des Vorzeichens des +Arguments verbunden worden. +Die Graphen der Funktionen $\mathstrut_0F_1$, die in +Abbildung~\ref{buch:rekursion:hypergeometrisch:0f1} dargestellt sind, +machen dieses Verhalten plausibel. +Es wird sich später zeigen, dass $\mathstrut_0F_1$ auch mit den Bessel- +und den Airy-Funktionen verwandt sind. -TODO -\url{https://en.wikipedia.org/wiki/Chebyshev_polynomials} % % Ableitung und Stammfunktion % -\subsection{Ableitung und Stammfunktion hypergeometrischer Funktionen} +\subsection{Ableitung und Stammfunktion hypergeometrischer Funktionen +\label{buch:rekursion:hypergeometrisch:stammableitung}} Sowohl Ableitung wie auch Stammfunktion einer hypergeometrischen Funktion lässt sich immer durch hypergeometrische Reihen ausdrücken. - +% +% Ableitung +% \subsubsection{Ableitung} Wir gehen aus von der Funktion \begin{equation} @@ -743,7 +1059,7 @@ Damit kann jetzt die Kosinus-Funktion als \frac{1}{(\frac12)_k} \frac{1}{k!}\biggl(\frac{-x^2}{4}\biggr)^k = -\mathstrut_0F_1\biggl(;\frac12;-\frac{x^2}4\biggr) +\mathstrut_0F_1\biggl(\begin{matrix}\text{---}\\\frac12\end{matrix};-\frac{x^2}4\biggr) \end{align*} geschrieben werden kann. @@ -752,16 +1068,22 @@ Die Ableitung der Kosinus-Funktion ist daher \frac{d}{dx} \cos x &= \frac{d}{dx} -\mathstrut_0F_1\biggl(;\frac12;-\frac{x^2}4\biggr) +\mathstrut_0F_1\biggl( +\begin{matrix}\text{---}\\\frac12\end{matrix};-\frac{x^2}4 +\biggr) = \frac{1}{\frac12} \, -\mathstrut_0F_1\biggl(;\frac32;-\frac{x^2}4\biggr) +\mathstrut_0F_1\biggl( +\begin{matrix}\text{---}\\\frac32\end{matrix};-\frac{x^2}4 +\biggr) \cdot\biggl(-\frac{x}2\biggr) = -x \cdot -\mathstrut_0F_1\biggl(;\frac32;-\frac{x^2}4\biggr) +\mathstrut_0F_1\biggl( +\begin{matrix}\text{---}\\\frac32\end{matrix};-\frac{x^2}4 +\biggr) \intertext{Dies stimmt mit der in \eqref{buch:rekursion:hypergeometrisch:eqn:sinhyper} gefundenen Darstellung der Sinusfunktion mit Hilfe der hypergeometrischen @@ -771,6 +1093,9 @@ Funktion $\mathstrut_0F_1$ überein, es ist also wie erwartet} \end{align*} \end{beispiel} +% +% Stammfunktion +% \subsubsection{Stammfunktion} Eine Stammfunktion kann man auf die gleiche Art und Weise wie die Ableitung finden. diff --git a/buch/chapters/040-rekursion/images/0f1.cpp b/buch/chapters/040-rekursion/images/0f1.cpp new file mode 100644 index 0000000..24ca3f1 --- /dev/null +++ b/buch/chapters/040-rekursion/images/0f1.cpp @@ -0,0 +1,94 @@ +/* + * 0f1.cpp + * + * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + */ +#include <cstring> +#include <cstdio> +#include <cstdlib> +#include <cmath> +#include <string> +#include <iostream> +#include <fstream> + +static int N = 100; +static double xmin = -50; +static double xmax = 30; +static int points = 200; + +double f(double b, double x) { + double s = 1; + double p = 1; + for (int k = 1; k < N; k++) { + p = p * x / (k * (b + k - 1.)); + s += p; + } + return s; +} + +typedef std::pair<double, double> point_t; + +point_t F(double b, double x) { + return std::make_pair(x, f(b, x)); +} + +std::string ff(double f) { + if (f > 1000) { f = 1000; } + if (f < -1000) { f = -1000; } + char b[128]; + snprintf(b, sizeof(b), "%.4f", f); + return std::string(b); +} + +std::ostream& operator<<(std::ostream& out, const point_t& p) { + char b[128]; + out << "({" << ff(p.first) << "*\\dx},{" << ff(p.second) << "*\\dy})"; + return out; +} + +void curve(std::ostream& out, double b, const std::string& name) { + double h = (xmax - xmin) / points; + out << "\\def\\kurve" << name << "{"; + out << std::endl << "\t" << F(b, xmin); + for (int i = 1; i <= points; i++) { + double x = xmin + h * i; + out << std::endl << "\t-- " << F(b, x); + } + out << std::endl; + out << "}" << std::endl; +} + +int main(int argc, char *argv[]) { + std::ofstream out("0f1data.tex"); + + double s = 13/(xmax-xmin); + out << "\\def\\dx{" << ff(s) << "}" << std::endl; + out << "\\def\\dy{" << ff(s) << "}" << std::endl; + out << "\\def\\xmin{" << ff(s * xmin) << "}" << std::endl; + out << "\\def\\xmax{" << ff(s * xmax) << "}" << std::endl; + + curve(out, 0.5, "one"); + curve(out, 1.5, "two"); + curve(out, 2.5, "three"); + curve(out, 3.5, "four"); + curve(out, 4.5, "five"); + curve(out, 5.5, "six"); + curve(out, 6.5, "seven"); + curve(out, 7.5, "eight"); + curve(out, 8.5, "nine"); + curve(out, 9.5, "ten"); + + curve(out,-0.5, "none"); + curve(out,-1.5, "ntwo"); + curve(out,-2.5, "nthree"); + curve(out,-3.5, "nfour"); + curve(out,-4.5, "nfive"); + curve(out,-5.5, "nsix"); + curve(out,-6.5, "nseven"); + curve(out,-7.5, "neight"); + curve(out,-8.5, "nnine"); + curve(out,-9.5, "nten"); + + out.close(); + return EXIT_SUCCESS; +} diff --git a/buch/chapters/040-rekursion/images/0f1.pdf b/buch/chapters/040-rekursion/images/0f1.pdf Binary files differnew file mode 100644 index 0000000..2c35813 --- /dev/null +++ b/buch/chapters/040-rekursion/images/0f1.pdf diff --git a/buch/chapters/040-rekursion/images/0f1.tex b/buch/chapters/040-rekursion/images/0f1.tex new file mode 100644 index 0000000..1bc8b87 --- /dev/null +++ b/buch/chapters/040-rekursion/images/0f1.tex @@ -0,0 +1,86 @@ +% +% 0f1.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} +\input{0f1data.tex} +\definecolor{darkgreen}{rgb}{0,0.6,0} +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\begin{scope} +\clip (\xmin,-1) rectangle (\xmax,5); +\draw[color=blue!5!red,line width=1.4pt] \kurveone; +\draw[color=blue!16!red,line width=1.4pt] \kurvetwo; +\draw[color=blue!26!red,line width=1.4pt] \kurvethree; +\draw[color=blue!37!red,line width=1.4pt] \kurvefour; +\draw[color=blue!47!red,line width=1.4pt] \kurvefive; +\draw[color=blue!57!red,line width=1.4pt] \kurvesix; +\draw[color=blue!68!red,line width=1.4pt] \kurveseven; +\draw[color=blue!78!red,line width=1.4pt] \kurveeight; +\draw[color=blue!89!red,line width=1.4pt] \kurvenine; +\draw[color=blue!100!red,line width=1.4pt] \kurveten; +\def\ds{0.4} +\begin{scope}[yshift=0.5cm] +\node[color=blue!5!red] at (\xmin,{1*\ds}) [right] {$\alpha=0.5$}; +\node[color=blue!16!red] at (\xmin,{2*\ds}) [right] {$\alpha=1.5$}; +\node[color=blue!26!red] at (\xmin,{3*\ds}) [right] {$\alpha=2.5$}; +\node[color=blue!37!red] at (\xmin,{4*\ds}) [right] {$\alpha=2.5$}; +\node[color=blue!47!red] at (\xmin,{5*\ds}) [right] {$\alpha=3.5$}; +\node[color=blue!57!red] at (\xmin,{6*\ds}) [right] {$\alpha=5.5$}; +\node[color=blue!68!red] at (\xmin,{7*\ds}) [right] {$\alpha=6.5$}; +\node[color=blue!78!red] at (\xmin,{8*\ds}) [right] {$\alpha=7.5$}; +\node[color=blue!89!red] at (\xmin,{9*\ds}) [right] {$\alpha=8.5$}; +\node[color=blue!100!red]at (\xmin,{10*\ds}) [right] {$\alpha=9.5$}; +\end{scope} +\node at (-1.7,4.5) {$\displaystyle +y=\mathstrut_0F_1\biggl(\begin{matrix}\text{---}\\\alpha\end{matrix};x\biggr)$}; +\end{scope} + +\draw[->] (\xmin-0.2,0) -- (\xmax+0.3,0) coordinate[label=$x$]; +\draw[->] (0,-0.5) -- (0,5.3) coordinate[label={right:$y$}]; + +\begin{scope}[yshift=-6.5cm] +\begin{scope} +\clip (\xmin,-5) rectangle (\xmax,5); + +\draw[color=darkgreen!5!red,line width=1.4pt] \kurvenone; +\draw[color=darkgreen!16!red,line width=1.4pt] \kurventwo; +\draw[color=darkgreen!26!red,line width=1.4pt] \kurventhree; +\draw[color=darkgreen!37!red,line width=1.4pt] \kurvenfour; +\draw[color=darkgreen!47!red,line width=1.4pt] \kurvenfive; +\draw[color=darkgreen!57!red,line width=1.4pt] \kurvensix; +\draw[color=darkgreen!68!red,line width=1.4pt] \kurvenseven; +\draw[color=darkgreen!78!red,line width=1.4pt] \kurveneight; +\draw[color=darkgreen!89!red,line width=1.4pt] \kurvennine; +\draw[color=darkgreen!100!red,line width=1.4pt] \kurventen; +\end{scope} + +\draw[->] (\xmin-0.2,0) -- (\xmax+0.3,0) coordinate[label=$x$]; +\draw[->] (0,-5.2) -- (0,5.3) coordinate[label={right:$y$}]; +\def\ds{-0.4} +\begin{scope}[yshift=-0.5cm] +\node[color=darkgreen!5!red] at (\xmax,{1*\ds}) [left] {$\alpha=-0.5$}; +\node[color=darkgreen!16!red] at (\xmax,{2*\ds}) [left] {$\alpha=-1.5$}; +\node[color=darkgreen!26!red] at (\xmax,{3*\ds}) [left] {$\alpha=-2.5$}; +\node[color=darkgreen!37!red] at (\xmax,{4*\ds}) [left] {$\alpha=-2.5$}; +\node[color=darkgreen!47!red] at (\xmax,{5*\ds}) [left] {$\alpha=-3.5$}; +\node[color=darkgreen!57!red] at (\xmax,{6*\ds}) [left] {$\alpha=-5.5$}; +\node[color=darkgreen!68!red] at (\xmax,{7*\ds}) [left] {$\alpha=-6.5$}; +\node[color=darkgreen!78!red] at (\xmax,{8*\ds}) [left] {$\alpha=-7.5$}; +\node[color=darkgreen!89!red] at (\xmax,{9*\ds}) [left] {$\alpha=-8.5$}; +\node[color=darkgreen!100!red]at (\xmax,{10*\ds}) [left] {$\alpha=-9.5$}; +\end{scope} +\end{scope} + +\end{tikzpicture} +\end{document} + diff --git a/buch/chapters/040-rekursion/images/Makefile b/buch/chapters/040-rekursion/images/Makefile index 86dfa1e..54ed23b 100644 --- a/buch/chapters/040-rekursion/images/Makefile +++ b/buch/chapters/040-rekursion/images/Makefile @@ -3,7 +3,8 @@ # # (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule # -all: gammaplot.pdf fibonacci.pdf order.pdf beta.pdf +all: gammaplot.pdf fibonacci.pdf order.pdf beta.pdf loggammaplot.pdf \ + 0f1.pdf gammaplot.pdf: gammaplot.tex gammapaths.tex pdflatex gammaplot.tex @@ -29,4 +30,17 @@ beta.pdf: beta.tex betapaths.tex betapaths.tex: betadist.m octave betadist.m +loggammaplot.pdf: loggammaplot.tex loggammadata.tex + pdflatex loggammaplot.tex +loggammadata.tex: loggammaplot.m + octave loggammaplot.m + +0f1: 0f1.cpp + g++ -O -Wall -g -o 0f1 0f1.cpp + +0f1data.tex: 0f1 + ./0f1 + +0f1.pdf: 0f1.tex 0f1data.tex + pdflatex 0f1.tex diff --git a/buch/chapters/040-rekursion/images/loggammaplot.m b/buch/chapters/040-rekursion/images/loggammaplot.m new file mode 100644 index 0000000..5456e4f --- /dev/null +++ b/buch/chapters/040-rekursion/images/loggammaplot.m @@ -0,0 +1,43 @@ +# +# loggammaplot.m +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +xmax = 10; +xmin = 0.1; +N = 500; + +fn = fopen("loggammadata.tex", "w"); + +fprintf(fn, "\\def\\loggammapath{\n ({%.4f*\\dx},{%.4f*\\dy})", + xmax, log(gamma(xmax))); +xstep = (xmax - 1) / N; +for x = (xmax:-xstep:1) + fprintf(fn, "\n\t-- ({%.4f*\\dx},{%.4f*\\dy})", x, log(gamma(x))); +endfor +for k = (0:0.2:10) + x = exp(-k); + fprintf(fn, "\n\t-- ({%.4f*\\dx},{%.4f*\\dy})", x, log(gamma(x))); +endfor +fprintf(fn, "\n}\n"); + +function retval = lgp(fn, x0, name) + fprintf(fn, "\\def\\loggammaplot%s{\n", name); + fprintf(fn, "\\draw[color=red,line width=1pt] "); + for k = (-7:0.1:7) + x = x0 + 0.5 * tanh(k); + if (k > -5) + fprintf(fn, "\n\t-- "); + end + fprintf(fn, "({%.4f*\\dx},{%.4f*\\dy})", x, log(gamma(x))); + endfor + fprintf(fn, ";\n}\n"); +endfunction + +lgp(fn, -0.5, "zero"); +lgp(fn, -1.5, "one"); +lgp(fn, -2.5, "two"); +lgp(fn, -3.5, "three"); +lgp(fn, -4.5, "four"); + +fclose(fn); diff --git a/buch/chapters/040-rekursion/images/loggammaplot.pdf b/buch/chapters/040-rekursion/images/loggammaplot.pdf Binary files differnew file mode 100644 index 0000000..a2963f2 --- /dev/null +++ b/buch/chapters/040-rekursion/images/loggammaplot.pdf diff --git a/buch/chapters/040-rekursion/images/loggammaplot.tex b/buch/chapters/040-rekursion/images/loggammaplot.tex new file mode 100644 index 0000000..8ca4e1c --- /dev/null +++ b/buch/chapters/040-rekursion/images/loggammaplot.tex @@ -0,0 +1,89 @@ +% +% 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} +\input{loggammadata.tex} +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +% add image content here + +\def\dx{1} +\def\dy{0.6} +\def\xmax{8} +\def\xmin{-4.9} +\def\ymax{8} +\def\ymin{-3.1} + +\fill[color=blue!20] ({\xmin*\dx},{\ymin*\dy}) rectangle ({-4*\dx},{\ymax*\dy}); +\fill[color=blue!20] ({-3*\dx},{\ymin*\dy}) rectangle ({-2*\dx},{\ymax*\dy}); +\fill[color=blue!20] ({-1*\dx},{\ymin*\dy}) rectangle ({-0*\dx},{\ymax*\dy}); + +\draw[->] ({\xmin*\dx-0.1},0) -- ({\xmax*\dx+0.3},0) + coordinate[label={$x$}]; +\draw[->] (0,{\ymin*\dy-0.1}) -- (0,{\ymax*\dy+0.3}) + coordinate[label={right:$y$}]; + +\begin{scope} +\clip ({\xmin*\dx},{\ymin*\dy}) rectangle ({\xmax*\dx},{\ymax*\dy}); + +\foreach \x in {-1,-2,-3,-4}{ + \draw[color=blue,line width=0.3pt] + ({\x*\dx},{\ymin*\dy}) -- ({\x*\dx},{\ymax*\dy}); +} + +\draw[color=red,line width=1pt] \loggammapath; + +\loggammaplotzero +\loggammaplotone +\loggammaplottwo +\loggammaplotthree +\loggammaplotfour + +\end{scope} + +\foreach \y in {0.1,10,100,1000,1000}{ + \draw[line width=0.3pt] + ({\xmin*\dx},{ln(\y)*\dy}) + -- + ({\xmax*\dx},{ln(\y)*\dy}) ; +} + +\foreach \x in {1,...,8}{ + \draw ({\x*\dx},{-0.05}) -- ({\x*\dx},{0.05}); + \node at ({\x*\dx},0) [below] {$\x$}; +} + +\foreach \x in {-1,...,-4}{ + \draw ({\x*\dx},{-0.05}) -- ({\x*\dx},{0.05}); +} +\foreach \x in {-1,...,-3}{ + \node at ({\x*\dx},0) [below right] {$\x$}; +} +\node at ({-4*\dx},0) [below left] {$-4$}; + +\def\htick#1#2{ + \draw (-0.05,{ln(#1)*\dy}) -- (0.05,{ln(#1)*\dy}); + \node at (0,{ln(#1)*\dy}) [above right] {#2}; +} + +\htick{10}{$10^1$} +\htick{100}{$10^2$} +\htick{1000}{$10^3$} +\htick{0.1}{$10^{-1}$} + +\node[color=red] at ({3*\dx},{ln(30)*\dy}) {$y=\log|\Gamma(x)|$}; + + +\end{tikzpicture} +\end{document} + diff --git a/buch/chapters/040-rekursion/images/order.pdf b/buch/chapters/040-rekursion/images/order.pdf Binary files differindex cc175a9..88b2b08 100644 --- a/buch/chapters/040-rekursion/images/order.pdf +++ b/buch/chapters/040-rekursion/images/order.pdf diff --git a/buch/chapters/040-rekursion/images/order.tex b/buch/chapters/040-rekursion/images/order.tex index 9a2511c..0284735 100644 --- a/buch/chapters/040-rekursion/images/order.tex +++ b/buch/chapters/040-rekursion/images/order.tex @@ -65,7 +65,7 @@ \node at ({-0.1/\skala},{\y*\dy}) [left] {$\y$}; } -\node[color=darkgreen] at (0.65,{0.5*\dy}) [above,rotate=55] {$k=7$}; +\node[color=darkgreen] at ({0.64*\dx},{0.56*\dy}) [rotate=42] {$k=7$}; \begin{scope}[yshift=-0.7cm] \def\dy{0.125} diff --git a/buch/chapters/040-rekursion/uebungsaufgaben/404.tex b/buch/chapters/040-rekursion/uebungsaufgaben/404.tex index f9d014e..5d76598 100644 --- a/buch/chapters/040-rekursion/uebungsaufgaben/404.tex +++ b/buch/chapters/040-rekursion/uebungsaufgaben/404.tex @@ -1,5 +1,5 @@ Finden Sie einen einfachen Ausdruck für $(\frac12)_n$, der nur -Fakultäten und andere elmentare Funktionen verwendet. +Fakultäten und andere elementare Funktionen verwendet. \begin{loesung} Das Pochhammer-Symbol $(\frac12)_n$ kann wie folgt durch bekanntere diff --git a/buch/chapters/050-differential/bessel.tex b/buch/chapters/050-differential/bessel.tex index 383c360..ac509ba 100644 --- a/buch/chapters/050-differential/bessel.tex +++ b/buch/chapters/050-differential/bessel.tex @@ -18,6 +18,9 @@ die sich durch bekannte Funktionen ausdrücken lassen, es ist also nötig, eine neue Familie von speziellen Funktionen zu definieren, die Bessel-Funktionen. +% +% Besselsche Differentialgleichung +% \subsection{Die Besselsche Differentialgleichung} % XXX Wo taucht diese Gleichung auf Die Besselsche Differentialgleichung ist die Differentialgleichung @@ -25,16 +28,22 @@ Die Besselsche Differentialgleichung ist die Differentialgleichung x^2\frac{d^2y}{dx^2} + x\frac{dy}{dx} + (x^2-\alpha^2)y = 0 \label{buch:differentialgleichungen:eqn:bessel} \end{equation} +\index{Differentialgleichung!Besselsche}% +\index{Besselsche Differentialgleichung}% zweiter Ordnung für eine auf dem Interval $[0,\infty)$ definierte Funktion $y(x)$. Der Parameter $\alpha$ ist eine beliebige komplexe Zahl $\alpha\in \mathbb{C}$, die Lösungsfunktionen hängen daher von $\alpha$ ab. +% +% Eigenwertproblem +% \subsubsection{Eigenwertproblem} Die Besselsche Differentialgleichung \eqref{buch:differentialgleichungen:eqn:bessel} kann man auch als Eigenwertproblem für den Bessel-Operator \index{Bessel-Operator}% +\index{Operator!Bessel-}% \begin{equation} B = x^2\frac{d^2}{dx^2} + x\frac{d}{dx} + x^2 \label{buch:differentialgleichungen:bessel-operator} @@ -46,12 +55,15 @@ erfüllt \[ By = -x^2y''+xy+x^2y +x^2y''+xy'+x^2y =\alpha^2 y, \] ist also eine Eigenfunktion des Bessel-Operators zum Eigenwert $\alpha^2$. +% +% Indexgleichung +% \subsubsection{Indexgleichung} Die Besselsche Differentialgleichung ist eine Differentialgleichung der Art~\eqref{buch:differentialgleichungen:eqn:dglverallg} mit @@ -117,9 +129,11 @@ Nur eine Lösung kann man finden, wenn \] ist. - - -\subsection{Bessel-Funktionen erster Art} +% +% Bessel-Funktionen erster Art +% +\subsection{Bessel-Funktionen erster Art +\label{buch:differentialgleichungen:subsection:bessel1steart}} Für $\alpha \ge 0$ gibt es immer mindestens eine Lösung der Besselgleichung als verallgemeinerte Potenzreihe mit $\varrho=\alpha$. Die Funktion $q(x)=x^2-\alpha^2$ ist ein Polynom, die einzigen @@ -138,6 +152,9 @@ Da $F(\varrho+1)\ne 0$ ist, folgt dass $a_1=0$ sein muss. % Fall n=1 gesondert behandeln +% +% Der allgemeine Fall +% \subsubsection{Der allgemeine Fall} Für die höheren Potenzen $n>1$ wird die Rekursionsformel für die Koeffizienten $a_n$ der verallgemeinerten Potenzreihe @@ -201,10 +218,11 @@ x^\varrho\biggl( x^\varrho \sum_{k=0}^\infty \frac{1}{(\varrho+1)_k} \frac{(-x^2/4)}{k!} = +x^\varrho +\cdot \mathstrut_0F_1\biggl(;\varrho+1;-\frac{x^2}{4}\biggr) \end{align*} -Falls also $\alpha$ kein ganzzahliges Vielfaches von $\frac12$ ist, finden -wir zwei Lösungsfunktionen +Wir finden also zwei Lösungsfunktionen \begin{align} y_1(x) %J_\alpha(x) @@ -214,8 +232,10 @@ x^{\alpha\phantom{-}} \frac{1}{(\alpha+1)_k} \frac{(-x^2/4)^k}{k!} = +x^\alpha +\cdot \mathstrut_0F_1\biggl(;\alpha+1;-\frac{x^2}{4}\biggr), -\label{buch:differentialgleichunge:bessel:erste} +\label{buch:differentialgleichunge:bessel:eqn:erste} \\ y_2(x) %J_{-\alpha}(x) @@ -223,32 +243,50 @@ y_2(x) x^{-\alpha} \sum_{k=0}^\infty \frac{1}{(-\alpha+1)_k} \frac{(-x^2/4)^k}{k!} = +x^{-\alpha} +\cdot \mathstrut_0F_1\biggl(;-\alpha+1;-\frac{x^2}{4}\biggr). -\label{buch:differentialgleichunge:bessel:zweite} +\label{buch:differentialgleichunge:bessel:eqn:zweite} \end{align} +Man beachte, dass die zweite Lösung für ganzzahliges $\alpha>0$ nicht +definiert ist. +Man kann auch direkt nachrechnen, dass diese Funktionen Lösungen +der Besselschen Differentialgleichung sind. +% +% Bessel-Funktionen +% \subsubsection{Bessel-Funktionen} Da die Besselsche Differentialgleichung linear ist, ist auch jede Linearkombination der Funktionen -\eqref{buch:differentialgleichunge:bessel:erste} +\eqref{buch:differentialgleichunge:bessel:eqn:erste} und -\eqref{buch:differentialgleichunge:bessel:zweite} +\eqref{buch:differentialgleichunge:bessel:eqn:zweite} eine Lösung. -Man kann zum Beispiel das Pochhammer-Symbol im Nenner loswerden, -wenn man im Nenner mit $\Gamma(\alpha+1)$ -multipliziert: +Satz~\ref{buch:rekursion:gamma:satz:gamma-pochhammer} +ermöglicht, das Pochhammer-Symbol durch Werte der Gamma-Funktion +wie in \[ -\frac{(1/2)^\alpha}{\Gamma(\alpha+1)} +(\alpha+1)_n = \frac{\Gamma(\alpha+k+1)}{\Gamma(\alpha+1)} +\] +auszudrücken. +Damit wird +\begin{align} y_1(x) +&= +x^\alpha +\sum_{k=0}^\infty +\frac{\Gamma(\alpha+1)}{\Gamma(\alpha+k+1)} +\frac{(-x^2/4)^k}{k!} = +\Gamma(\alpha+1) 2^{\alpha} \biggl(\frac{x}{2}\biggr)^\alpha \sum_{k=0}^\infty -\frac{(-1)^k}{k!\,\Gamma(\alpha+k+1)} -\biggl(\frac{x}{2}\biggr)^{2k}. -\] -Dabei haben wir es durch -Multiplikation mit $(\frac12)^\alpha$ auch geschafft, die Funktion -einheitlich als Funktion von $x/2$ auszudrücken. +\frac{(-1)^k}{k!\,\Gamma(\alpha+k+1)} \biggl(\frac{x}{2}\biggr)^{2k} +\label{buch:differentialgleichungen:bessel:normierungsgleichung} +\end{align} +Nur gerade der Faktor $2^\alpha\Gamma(\alpha+1)$ ist von $k$ und $x$ +unabhängig, daher ist die folgende Definition sinnvoll: \begin{definition} \label{buch:differentialgleichungen:bessel:definition} @@ -262,12 +300,34 @@ J_{\alpha}(x) \biggl(\frac{x}{2}\biggr)^{2k} \] heisst {\em Bessel-Funktion erster Art der Ordnung $\alpha$}. +\index{Bessel-Funktion!erster Art}% \end{definition} +Die Bessel-Funktion $J_\alpha(x)$ der Ordnung $\alpha$ unterscheidet sich +nur durch einen Normierungsfaktor von der Lösung $y_1(x)$. +Dasselbe gilt für $J_{-\alpha}(x)$ und $y_2(x)$: +\begin{align*} +J_{\alpha}(x) +&= +\frac{1}{2^\alpha\Gamma(\alpha+1)} +\cdot +y_1(x) +\\ +J_{-\alpha}(x) +&= +\frac{1}{2^{-\alpha}\Gamma(-\alpha+1)} +\cdot +y_2(x). +\end{align*} + +% +% Ganzzahlige Ordnung +% +\subsubsection{Besselfunktionen ganzzahliger Ordnung} Man beachte, dass diese Definition für beliebige ganzzahlige $\alpha$ funktioniert. Ist $\alpha=-n<0$, $n\in\mathbb{N}$, dann hat der Nenner Pole -an den Stellen $k=0,1,\dots,n-$. +an den Stellen $k=0,1,\dots,n-1$. Die Summe beginnt also erst bei $k=n$ oder \begin{align*} J_{-n}(x) @@ -285,7 +345,22 @@ J_{-n}(x) (-1)^n J_{n}(x). \end{align*} +Insbesondere unterscheiden sich $J_n(x)$ und $J_{-n}(x)$ nur durch +ein Vorzeichen. + +Als lineare Differentialgleichung zweiter Ordnung erwarten wir noch +eine zweite, linear unabhängige Lösung. +Diese kann jedoch nicht allein mit der Potenzreihenmethode, +dazu sind die Methoden der Funktionentheorie nötig. +Im Abschnitt~\ref{buch:funktionentheorie:subsection:dglsing} +wird gezeigt, wie dies möglich ist und auf +Seite~\pageref{buch:funktionentheorie:subsubsection:bessel2art} +werden die damit zu findenden Bessel-Funktionen 0-ter Ordnung und +zweiter Art vorgestellt. +% +% Erzeugende Funktione +% \subsubsection{Erzeugende Funktion} \begin{figure} \centering @@ -388,11 +463,15 @@ Die beiden Exponentialreihen sind \notag \end{align} +% +% Additionstheorem +% \subsubsection{Additionstheorem} Die erzeugende Funktion kann dazu verwendet werden, das Additionstheorem für die Besselfunktionen zu beweisen. \begin{satz} +\index{Satz!Additionstheorem für Besselfunktionen}% Für $l\in\mathbb{Z}$ und $x,y\in\mathbb{R}$ gilt \[ J_l(x+y) = \sum_{m=-\infty}^\infty J_m(x)J_{l-m}(y). @@ -438,7 +517,9 @@ J_l(x+y) &= \sum_{m=-\infty}^\infty J_m(x)J_{l-m}(y) für alle $l$. \end{proof} - +% +% Der Fall \alpha=0 +% \subsubsection{Der Fall $\alpha=0$} Im Fall $\alpha=0$ hat das Indexpolynom eine doppelte Nullstelle, wir können daher nur eine Lösung erwarten. @@ -453,8 +534,10 @@ J_0(x) \] geschrieben werden kann. -% XXX Zweite Lösung explizit durchrechnen +% +% Der Fall \alpha=p, p\in \mathbb{N} +% \subsubsection{Der Fall $\alpha=p$, $p\in\mathbb{N}, p > 0$} In diesem Fall kann nur die erste Lösung~\eqref{buch:differentialgleichunge:bessel:erste} @@ -467,8 +550,9 @@ J_p(x) \frac{(-1)^k}{k!(p+k)!}\biggl(\frac{x}{2}\biggr)^{p+2k}. \] -TODO: Lösung für $\alpha=-n$ - +% +% Der Fall $\alpha=n+\frac12$ +% \subsubsection{Der Fall $\alpha=n+\frac12$, $n\in\mathbb{N}$} Obwohl $2\alpha$ eine Ganzzahl ist, sind die beiden Lösungen \label{buch:differentialgleichunge:bessel:erste} @@ -491,7 +575,7 @@ Es ist = \frac{1}{2^k}\bigl(3\cdot 5\cdot\ldots\cdot (2k+1)\bigr) = -\frac{(2k+1)!}{2^{2k+1}\cdot k!} +\frac{(2k+1)!}{2^{2k}\cdot k!} \\ \biggl(-\frac12 + 1\biggr)_k &= @@ -508,63 +592,181 @@ Es ist = \frac{1}{2^k}\bigl(1\cdot 3 \cdot\ldots\cdot (2(k-1)+1)\bigr) = -\frac{(2k-1)!}{2^{2k}\cdot (k-1)!} +\frac{(2k-1)!}{2^{2k-1}\cdot (k-1)!} \end{align*} Damit können jetzt die Reihenentwicklungen der Lösung wie folgt umgeformt werden \begin{align*} y_1(x) &= -\sqrt{x} +x^\alpha \sum_{k=0}^\infty \frac{1}{(\alpha+1)_k} \frac{(-x^2/4)^k}{k!} = \sqrt{x} \sum_{k=0}^\infty -\frac{2^{2k+1}k!}{(2k+1)!} +\frac{2^{2k}k!}{(2k+1)!} \frac{(-x^2/4)^k}{k!} = \sqrt{x} \sum_{k=0}^\infty (-1)^k -\frac{2\cdot x^{2k}}{(2k+1)!} +\frac{x^{2k}}{(2k+1)!} \\ &= -\frac{1}{2\sqrt{x}} +\frac{1}{\sqrt{x}} \sum_{k=0}^\infty (-1)^k \frac{x^{2k+1}}{(2k+1)!} = -\frac{1}{2\sqrt{x}} \sin x +\frac{1}{\sqrt{x}} \sin x \\ y_2(x) &= -\frac{1}{\sqrt{x}} +x^{-\alpha} \sum_{k=0}^\infty -\frac{2^{2k}\cdot (k-1)!}{(2k-1)!} +\frac{1}{(-\alpha+1)_k} \frac{(-x^2/4)^k}{k!} = -\frac{1}{\sqrt{x}} +x^{-\frac12} \sum_{k=0}^\infty -(-1)^k -\frac{x^{2k}}{(2k-1)!\cdot k} +\frac{2^{2k-1}\cdot (k-1)!}{(2k-1)!} +\frac{(-x^2/4)^k}{k!} \\ &= -\frac{2}{\sqrt{x}} +\frac{1}{\sqrt{x}} \sum_{k=0}^\infty (-1)^k \frac{x^{2k}}{(2k-1)!\cdot 2k} = -\frac{2}{\sqrt{x}} \cos x. +\frac{1}{\sqrt{x}} \cos x. \end{align*} -% XXX Nachrechnen, dass diese Funktionen -% XXX Lösungen der Differentialgleichung sind - -\subsection{Analytische Fortsetzung und Bessel-Funktionen zweiter Art} - - - +Die Bessel-Funktionen verwenden aber eine andere Normierung. +Die Gleichung~\eqref{buch:differentialgleichungen:bessel:normierungsgleichung} +zeigt, dass die Bessel-Funktionen durch Division +der Funktion $y_1(x)$ und $y_2(x)$ durch $2^\alpha \Gamma(\alpha+1)$ +erhalten werden können. +Dies ergibt +\begin{equation*} +\renewcommand{\arraycolsep}{1pt} +\begin{array}{rclclclcl} +J_{\frac12}(x) +&=& +\displaystyle\frac{1}{2^{\frac12}\Gamma(\frac12+1)} +y_1(x) +&=& +\displaystyle\frac{1}{2^{\frac12}\frac12\Gamma(\frac12)} +y_1(x) +&=& +\displaystyle\frac{\sqrt{2}}{\Gamma(\frac12)} +y_1(x) +&=& +\displaystyle\frac{1}{\Gamma(\frac12)} +\sqrt{ \frac{2}{x}} +\sin x, +\\ +J_{-\frac12}(x) +&=& +\displaystyle\frac{1}{2^{-\frac12}\Gamma(-\frac12+1)} +y_2(x) +&=& +\displaystyle\frac{2^{\frac12}}{\Gamma(\frac12)} +y_2(x) +&=& +\displaystyle\frac{\sqrt{2}}{\Gamma(\frac12)} +y_2(x) +&=& +\displaystyle\frac{1}{\Gamma(\frac12)} +\sqrt{\frac{2}{x}} +\cos x. +\end{array} +\end{equation*} +Wegen $\Gamma(\frac12)=\sqrt{\pi}$ sind die +halbzahligen Bessel-Funktionen daher +\begin{align*} +J_{\frac12}(x) +&= +\sqrt{\frac{2}{\pi x}} \sin x += +\sqrt{\frac{2}{\pi}} x^{-\frac12}\sin x +& +&\text{und}& +J_{-\frac12}(x) +&= +\sqrt{\frac{2}{\pi x}} \cos x += +\sqrt{\frac{2}{\pi}} x^{-\frac12}\cos x. +\end{align*} +% +% Direkte Verifikation der Lösungen +% +\subsubsection{Direkte Verifikation der Lösungen für $\alpha=\pm\frac12$} +Tatsächlich führt die Anwendung des Bessel-Operators auf die beiden +Funktionen auf +\begin{align*} +\sqrt{\frac{\pi}2} +BJ_{\frac12}(x) +&= +\sqrt{\frac{\pi}2} +\biggl( +x^2J_{\frac12}''(x) + xJ_{\frac12}'(x) + x^2J_{\frac12}(x) +\biggr) +\\ +&= +x^2(x^{-\frac12}\sin x)'' ++ +x(x^{-\frac12}\sin x)' ++ +x^2(x^{-\frac12}\sin x) +\\ +&= +x^2( +x^{-{\textstyle\frac12}}\cos x +-{\textstyle\frac12}x^{-\frac32}\sin x +)' ++ +x( +x^{-\frac12}\cos x +-{\textstyle\frac12}x^{-\frac32}\sin x +) ++ +x^{\frac32}\sin x +\\ +&= +x^2( +-x^{-\frac12}\sin x +-{\textstyle\frac12}x^{-\frac32}\cos x +-{\textstyle\frac12}x^{-\frac32}\cos x ++{\textstyle\frac{3}{4}}x^{-\frac52}\sin x +) ++ +x^{\frac12}\cos x ++ +x^{-\frac12}(x-{\textstyle\frac12})\sin x +\\ +&= +( +-x^{\frac32} ++{\textstyle\frac34}x^{-\frac12} ++x^{\frac32} +-{\textstyle\frac12}x^{-\frac12} +) +\sin x += +\frac14x^{-\frac12}\sin x += +\frac14 +\sqrt{\frac{\pi}2} +J_{\frac12}(x) +\\ +BJ_{\frac12}(x) +&= +\biggl(\frac12\biggr)^2 J_{\frac12}(x). +\end{align*} +Dies zeigt, dass $J_{\frac12}(x)$ tatsächlich eine Eigenfunktion +des Bessel-Operators zum Eigenwert $\alpha^2 = \frac14$ ist. +Analog kann man die Lösung $y_2(x)$ für $-\frac12$ verifizieren. diff --git a/buch/chapters/050-differential/hypergeometrisch.tex b/buch/chapters/050-differential/hypergeometrisch.tex index e187b68..2fe43c1 100644 --- a/buch/chapters/050-differential/hypergeometrisch.tex +++ b/buch/chapters/050-differential/hypergeometrisch.tex @@ -371,6 +371,7 @@ $c$ darf also kein natürliche Zahl $\ge 2$ sein. Wir fassen die Resultate dieses Abschnitts im folgenden Satz zusammen. \begin{satz} +\index{Satz!Lösung der eulerschen hypergeometrischen Differentialgleichung}% Die eulersche hypergeometrische Differentialgleichung \begin{equation} x(1-x)\frac{d^2y}{dx^2} @@ -906,6 +907,7 @@ Funktion wohldefiniert. Wir fassen diese Resultat zusammen: \begin{satz} +\index{Satz!1f1@Differentialgleichung von $\mathstrut_1F_1$}% \label{buch:differentialgleichungen:satz:1f1-dgl-loesungen} Die Differentialgleichung \[ @@ -1591,7 +1593,7 @@ x\cdot \end{align*} als Lösungen. Die Differentialgleichung von $\mathstrut_0F_1$ sollte sich in diesem -Fall also auf die Airy-Differentialgleichung reduzieren lassen. +Fall also auf die Airy-Dif\-fe\-ren\-tial\-glei\-chung reduzieren lassen. Bei der Substition der Parameter in die Differentialgleichung \eqref{buch:differentialgleichungen:0F1:dgl} beachten wird, dass @@ -1757,6 +1759,7 @@ T_n(x) \biggr). \end{equation} Auch die Tschebyscheff-Polynome lassen sich also mit Hilfe einer -hypergeometrischen Funktion schreiben. +hypergeometrischen Funktion schreiben, wie schon in +\eqref{buch:rekursion:hypergeometrisch:tschebyscheff2f1} +bemerkt wurde. -%\url{https://en.wikipedia.org/wiki/Chebyshev_polynomials} diff --git a/buch/chapters/050-differential/images/besselgrid.pdf b/buch/chapters/050-differential/images/besselgrid.pdf Binary files differindex 6c551f4..a0fa332 100644 --- a/buch/chapters/050-differential/images/besselgrid.pdf +++ b/buch/chapters/050-differential/images/besselgrid.pdf diff --git a/buch/chapters/050-differential/images/besselgrid.tex b/buch/chapters/050-differential/images/besselgrid.tex index 01021e3..1c19363 100644 --- a/buch/chapters/050-differential/images/besselgrid.tex +++ b/buch/chapters/050-differential/images/besselgrid.tex @@ -65,7 +65,6 @@ } \end{scope} - \node at (-4.5,1.5) {$\Gamma(n+k+1)=\infty$}; } \begin{tikzpicture}[>=latex,thick,scale=\skala] @@ -75,6 +74,7 @@ \punkte \nachse{black} \kachse + \node at (-4.5,1.5) {$\Gamma(n+k+1)=\infty$}; \end{scope} \begin{scope}[yshift=-7.8cm] @@ -83,6 +83,7 @@ \punkte \draw[->] (0.3,-0.3) -- (-6.4,6.4) coordinate[label={above right:$k$}]; \draw[->] (-3.3,3) -- (6.6,3) coordinate[label={right:$m$}]; + \node at (-4.5,1.5) {$\Gamma(m+1)=\infty$}; \end{scope} \end{tikzpicture} diff --git a/buch/chapters/050-differential/potenzreihenmethode.tex b/buch/chapters/050-differential/potenzreihenmethode.tex index 2d95fb2..9f2e0a6 100644 --- a/buch/chapters/050-differential/potenzreihenmethode.tex +++ b/buch/chapters/050-differential/potenzreihenmethode.tex @@ -44,6 +44,7 @@ Tatsächlich gilt der folgende sehr viel allgemeinere Satz von Cauchy und Kowalevskaja: \begin{satz}[Cauchy-Kowalevskaja] +\index{Satz!von Cauchy-Kowalevskaja}% Eine partielle Differentialgleichung der Ordnung $k$ für eine Funktion $u(x_1,\dots,x_n,t)=u(x,t)$ in expliziter Form @@ -176,7 +177,8 @@ b_2\,2!\,a_{2+k} + b_1\, a_{1+k} + b_0\, a_k % % Die Newtonsche Reihe % -\subsection{Die Newtonsche Reihe} +\subsection{Die Newtonsche Reihe +\label{buch:differentialgleichungen:subsection:newtonschereihe}} Wir lösen die Differentialgleichung~\eqref{buch:differentialgleichungen:eqn:wurzeldgl1} mit der Anfangsbedingung $y(t)=1$ mit der Potenzreihenmethode. @@ -289,7 +291,7 @@ Für ganzzahliges $\alpha$ wird daraus die binomische Formel \] % -% Lösung als hypergeometrische Riehe +% Lösung als hypergeometrische Reihe % \subsubsection{Lösung als hypergeometrische Funktion} Die Newtonreihe verwendet ein absteigendes Produkt im Zähler. @@ -333,6 +335,8 @@ wir die Darstellung Damit haben wir den folgenden Satz gezeigt. \begin{satz} +\index{Satz!Newtonsche Reihe}% +\label{buch:differentialgleichungen:satz:newtonschereihe} Die Newtonsche Reihe für $(1-t)^\alpha$ ist der Wert \[ (1-t)^\alpha @@ -370,7 +374,7 @@ entwickeln lassen. \subsubsection{Die Potenzreihenmethode funktioniert nicht} Für die Differentialgleichung \eqref{buch:differentialgleichungen:eqn:dglverallg} -funktioniert die Potenzreihenmethod oft nicht. +funktioniert die Potenzreihenmethode oft nicht. Sind die Funktionen $p(x)$ und $q(x)$ zum Beispiel Konstante $p(x)=p_0$ und $q(x)=q_0$, dann führt der Potenzreihenansatz \[ @@ -418,25 +422,43 @@ $a_k=0$ sein, die einzige Potenzreihe ist die triviale Funktion $y(x)=0$. Für Differentialgleichungen der Art \eqref{buch:differentialgleichungen:eqn:dglverallg} ist also ein anderer Ansatz nötig. -Die Schwierigkeit bestand darin, dass die Gleichungen für die einzelnen -Koeffizienten $a_k$ voneinander unabhängig waren. -Mit einem zusätzlichen Potenzfaktor $x^\varrho$ mit nicht -notwendigerweise ganzzahligen Wert kann die nötige Flexibilität -erreicht werden. -Wir verwenden daher den Ansatz -\[ +Ursache für das Versagen des Potenzreihenansatzes ist, dass die +Koeffizienten der Differentialgleichung bei $x=0$ eine +Singularität haben. +Ist ist daher damit zu rechnen, dass auch die Lösung $y(x)$ an dieser +Stelle singuläres Verhalten zeigen wird. +Die Terme einer Potenzreihe um den Punkt $x=0$ sind nicht singulär, +können eine solche Singularität also nicht wiedergeben. +Der neue Ansatz sollte ähnlich einfach sein, aber auch gewisse ``einfache'' +Singularitäten darstellen können. +Die Potenzfunktionen $x^\varrho$ mit $\varrho<1$ erfüllen beide +Anforderungen. + +\begin{definition} +\label{buch:differentialgleichungen:def:verallpotenzreihe} +Eine {\em verallgemeinerte Potenzreihe} ist eine Funktion der Form +\begin{equation} y(x) = x^\varrho \sum_{k=0}^\infty a_kx^k = \sum_{k=0}^\infty a_k x^{\varrho+k} -\] -und versuchen nicht nur die Koeffizienten $a_k$ sondern auch den -Exponenten $\varrho$ zu bestimmen. -Durch Modifikation von $\varrho$ können wir immer erreichen, dass -$a_0\ne 0$ ist. - -Die Ableitungen von $y(x)$ mit der zugehörigen Potenz von x sind +\label{buch:differentialgleichungen:eqn:verallpotenzreihe} +\end{equation} +mit $a_0\ne 0$. +\end{definition} + +Die Forderung $a_0\ne 0$ kann nötigenfalls durch Modifikation des +Exponenten $\varrho$ immer erreicht werden. + +Wir verwenden also eine verallgemeinerte Potenzreihe der Form +\eqref{buch:differentialgleichungen:eqn:verallpotenzreihe} +als Lösungsansatz für die +Differentialgleichung~\eqref{buch:differentialgleichungen:eqn:dglverallg}. +Wir berechnen die Ableitungen von $y(x)$ und um sie in der +Differentialgleichung einzusetzen, versehen wir sie auch gleich mit den +benötigten Potenzen von $x$. +So erhalten wir \begin{align*} xy'(x) &= @@ -451,8 +473,9 @@ x^2y''(x) \sum_{k=0}^\infty (\varrho+k)(\varrho+k-1)a_kx^{\varrho+k}. \end{align*} -Diese Ableitungen setzen wir jetzt in die Differentialgleichung ein, -die dadurch zu +Diese Ausdrücke setzen wir jetzt in die +Differentialgleichung~\eqref{buch:differentialgleichungen:eqn:dglverallg} +ein, die dadurch zu \begin{equation} \sum_{k=0}^\infty (\varrho+k)(\varrho+k-1) a_k x^{\varrho+k} + @@ -487,6 +510,7 @@ Ausgeschrieben geben die einzelnen Terme \bigl((\varrho +2)a_2p_0 + (\varrho+1)a_1p_1 + \varrho a_0 p_2\bigr) x^{\varrho+2} + \dots +\label{buch:differentialgleichungen:eqn:dglverallg} \\ &+ q_0a_0x^{\varrho} @@ -683,18 +707,17 @@ Kapitel~\ref{buch:chapter:funktionentheorie} dargestellt werden. \item -Fall 3: $\varrho_1-\varrho-2$ ist eine positive ganze Zahl. +Fall 3: $\varrho_1-\varrho_2$ ist eine positive ganze Zahl. In diesem Fall ist im Allgemeinen nur eine Lösung in Form einer verallgemeinerten Potenzreihe möglich. Auch hier müssen Techniken der Funktionentheorie aus Kapitel~\ref{buch:chapter:funktionentheorie} verwendet werden, um eine zweite Lösung zu finden. -\end{itemize} - Wenn $\varrho_1-\varrho_2$ eine negative ganze Zahl ist, kann man die beiden Nullstellen vertauschen. -Es folgt dann, dass es eine +\end{itemize} + diff --git a/buch/chapters/050-differential/uebungsaufgaben/airy.cpp b/buch/chapters/050-differential/uebungsaufgaben/airy.cpp index e4df8e1..eb5c6be 100644 --- a/buch/chapters/050-differential/uebungsaufgaben/airy.cpp +++ b/buch/chapters/050-differential/uebungsaufgaben/airy.cpp @@ -44,8 +44,8 @@ double h0f1(double c, double x) { double f1(double x) { // unfortunately, gsl_sf_hyperg_0F1 does not work if c<1, because // it uses a relation to the bessel functions - //return gsl_sf_hyperg_0F1(2/3, x*x*x/9.); - return h0f1(2./3., x*x*x/9.); + return gsl_sf_hyperg_0F1(2/3, x*x*x/9.); + //return h0f1(2./3., x*x*x/9.); } double f2(double x) { diff --git a/buch/chapters/060-integral/Makefile.inc b/buch/chapters/060-integral/Makefile.inc index d85caad..e0dfc21 100644 --- a/buch/chapters/060-integral/Makefile.inc +++ b/buch/chapters/060-integral/Makefile.inc @@ -8,5 +8,12 @@ CHAPTERFILES += \ chapters/060-integral/fehlerfunktion.tex \ chapters/060-integral/eulertransformation.tex \ chapters/060-integral/differentialkoerper.tex \ + chapters/060-integral/rational.tex \ + chapters/060-integral/erweiterungen.tex \ + chapters/060-integral/diffke.tex \ + chapters/060-integral/irat.tex \ + chapters/060-integral/sqratrat.tex \ chapters/060-integral/risch.tex \ + chapters/060-integral/logexp.tex \ + chapters/060-integral/elementar.tex \ chapters/060-integral/chapter.tex diff --git a/buch/chapters/060-integral/differentialkoerper.tex b/buch/chapters/060-integral/differentialkoerper.tex index f41d3ba..a112e33 100644 --- a/buch/chapters/060-integral/differentialkoerper.tex +++ b/buch/chapters/060-integral/differentialkoerper.tex @@ -1,1953 +1,29 @@ % -% differentialalgebren.tex +% differentialkoerper.tex % % (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule % -\section{Differentialkörper und der Satz von Liouville +\section{Differentialkörper und das Integrationsproblem \label{buch:integrale:section:dkoerper}} -\rhead{Differentialkörper und der Satz von Liouville} -Das Problem der Darstellbarkeit eines Integrals in geschlossener -Form verlangt zunächst einmal nach einer Definition dessen, was man -als ``geschlossene Form'' akzeptieren will. -Die sogenannten {\em elementaren Funktionen} von -Abschnitt~\ref{buch:integrale:section:elementar} -bilden dafür den theoretischen Rahmen. -Das Problem ist dann die Frage zu beantworten, ob ein Integral eine -Stammfunktion hat, die eine elementare Funktion ist. -Der Satz von Liouville von Abschnitt~\ref{buch:integrale:section:liouville} -löst das Problem. - -\subsection{Eine Analogie -\label{buch:integrale:section:analogie}} -% XXX Analogie: Formel für Polynom-Nullstellen -% XXX Stammfunktion als elementare Funktion -Das Analysis-Problem, eine Stammfunktion zu finden, ist analog zum -wohlbekannten algebraischen Problem, Nullstellen von Polynomen zu finden. -Wir entwickeln diese Analogie in etwas mehr Detail, um zu sehen, ob man -aus dem algebraischen Problem etwas über das Problem der Analysis -lernen kann. - -Für ein Polynom $p(X) = a_nX^n+a_{n-1}X^{n-1}+\dots+a_1X+a_0\in\mathbb{C}[X]$ -mit Koeffizienten $a_k\in\mathbb{C}$ ist es sehr einfach, für jede beliebige -komplexe Zahl $z\in\mathbb{C}$ den Wert $p(z)$ des Polynoms auszurechnen. -Ein paar wenige Rechenregeln genügen dazu, man kann leicht einem Kind -beibringen, mit einem Taschenrechner so einen Wert auszurechnen. - -Ähnlich sieht es mit der Ableitungsoperation aus. -Einige wenige Ableitungsregeln, die man in der Analysis~I lernt, -erlauben, auf mehr oder weniger mechanische Art und Weise, jede -beliebige Funktion abzuleiten. -Man kann auch leicht einen Computer dazu programmieren, solche Ableitungen -symbolisch zu berechnen. - -Aus dem Fundamentalsatz der Algebra, der von Gauss vollständig bewiesen -wurde, ist bekannt, dass jedes Polynom mit Koeffizienten in $\mathbb{C}$ -genau so viele Lösungen in $\mathbb{C}$, wie der Grad des Polynoms angibt. -Dies ist aber ein Existenzsatz, er sagt nichts darüber aus, wie man diese -Lösungen finden kann. -In Spezialfällen, wie zum Beispiel für quadratische Polynome, gibt -es spezialsierte Lösungsverfahren, mit denen man Lösungen angeben kann. -Natürlich existieren numerische Methoden wie zum Beispiel das -Newton-Verfahren, mit dem man Nullstellen von Polynomen beliebig genau -bestimmen kann. - -Der Fundamentalsatz der Integralrechnung besagt, dass jede stetige -Funktion eine Stammfunktion hat, die bis auf eine Konstante eindeutig -bestimmt ist. -Auch dieser Existenzsatz gibt keinerlei Hinweise darauf, wie man die -Stammfunktion finden kann. -In der Analysis-Vorlesung lernt man viele Tricks, die in einer -beindruckenden Zahl von Spezialfällen ermöglichen, ein passende -Funktion anzugeben. -Man lernt auch numerische Verfahren kennen, mit denen sich Werte der -Stammfunktion, also bestimmte Integrale, mit beliebiger Genauigkeit -finden kann. - -Die numerische Lösung des Nullstellenproblems ist insofern unbefriedigend, -als sie nur schwer eine Diskussion der Abhängigkeit der Nullstellen von -den Koeffizienten des Polynoms ermöglichen. -Eine Formel wie die Lösungsformel für die quadratische Gleichung -stellt genau für solche Fälle ein ideales Werkzeug bereit. -Was man sich also wünscht ist nicht nur einfach eine Lösung, sondern eine -einfache Formel zur Bestimmung aller Lösungen. -Im Zusammenhang mit algebraischen Gleichungen erwartet man eine Formel, -in der nur arithmetische Operationen und Wurzeln vorkommen. -Für quadratische Gleichungen ist so eine Formel seit dem Altertum bekannt, -Formeln für die kubische Gleichung und die Gleichung vierten Grades wurden -im 16.~Jahrhundert von Cardano bzw.~Ferrari gefunden. -Erst viel später haben Abel und Ruffini gezeigt, dass so eine allgemeine -Formel für Polynome höheren Grades als 4 nicht existiert. -Die Galois-Theorie, die auf den Ideen von Évariste Galois beruht, -stellt eine vollständige Theorie unter anderem für die Lösbarkeit -von Gleichungen durch Wurzelausdrücke dar. - -Numerische Integralwerte haben ebenfalls den Nachteil, dass damit -Diskussionen wie die Abhängigkeit von Parametern eines Integranden -nur schwer möglich sind. -Was man sich daher wünscht ist eine Formel für die Stammfunktion, -die Werte als Zusammensetzung gut bekannter Funktionen wie der Exponential- -und Logarithmus-Funktionen oder der trigonometrischen Funktionen -sowie Wurzeln, Potenzen und den arithmetischen Operationen. -Man sagt, man möchte die Stammfunktion in ``geschlossener Form'' -dargestellt haben. -Tatsächlich ist dieses Problem auch zu Beginn des 19.~Jahrhunderts -von Joseph Liouville genauer untersucht worden. -Er hat zunächst eine Klasse von ``elementaren Funktionen'' definiert, -die als Darstellungen einer Stammfunktion in Frage kommen. -Der Satz von Liouville besagt dann, dass nur Funktionen mit einer -ganz speziellen Form eine elementare Stammfunktion haben. -Damit wird es möglich, zu entscheiden, ob ein Integrand wie $e^{-x^2}$ -eine elementare Stammfunktion hat. -Seit dieser Zeit weiss man zum Beispiel, dass die Fehlerfunktion nicht -mit den bekannten Funktionen dargestellt werden kann. - -Mit dem Aufkommen der Computer und vor allem der Computer-Algebra-System (CAS) -wurde die Frage nach der Bestimmung einer Stammfunktion erneut aktuell. -Die ebenfalls weiter entwickelte abstrakte Algebra hat ermöglicht, die -Ideen von Liouville in eine erweiterte, sogenannte differentielle -Galois-Theorie zu verpacken, die eine vollständige Lösung des Problems -darstellt. -Robert Henry Risch hat in den Sechzigerjahren auf dieser Basis -einen Algorithmus entwickelt, mit dem es möglich wird, zu entscheiden, -ob eine Funktion eine elementare Stammfunktion hat und diese -gegebenenfalls auch zu finden. -Moderne CAS implementieren diesen Algorithmus -in Teilen, besonders weit zu gehen scheint das quelloffene System -Axiom. - -Der Risch-Algorithmus hat allerdings eine Achillesferse: er benötigt -eine Method zu entscheiden, ob zwei Ausdrücke übereinstimmen. -Dies ist jedoch ein im Allgemeinen nicht entscheidbares Problem. -Moderne CAS treiben einigen Aufwand, um die -Gleichheit von Ausdrücken zu entscheiden, sie können das Problem -aber grundsätzlich nicht vollständig lösen. -Damit kann der Risch-Algorithmus in praktischen Anwendungen das -Stammfunktionsproblem ebenfalls nur mit Einschränkungen lösen, -die durch die Fähigkeiten des Ausdrucksvergleichs in einem CAS -gesetzt werden. - -Im Folgenden sollen elementare Funktionen definiert werden, es sollen -die Grundideen der differentiellen Galois-Theorie zusammengetragen werden -und der Satz von Liouvill vorgestellt werden. -An Hand der Fehler-Funktion soll dann gezeigt werden, wie man jetzt -einsehen kann, dass die Fehlerfunktion nicht elementar darstellbar ist. -Im nächsten Abschnitt dann soll der Risch-Algorithmus skizziert werden. - -\subsection{Elementare Funktionen -\label{buch:integrale:section:elementar}} -Es soll die Frage beantwortet werden, welche Stammfunktionen sich -in ``geschlossener Form'' oder durch ``wohlbekannte Funktionen'' -ausdrücken lassen. -Welche Funktionen dabei als ``wohlbekannt'' gelten dürfen ist -ziemlich willkürlich. -Sicher möchte man Potenzen und Wurzeln, Logarithmus und Exponentialfunktion, -aber auch die trigonometrischen Funktionen dazu zählen dürfen. -Ausserdem will man beliebig mit den arithmetischen Operationen -rechnen. -So entsteht die Menge der Funktionen, die man ``elementar'' nennen -will. - -In der Menge der elementaren Funktionen möchte man jetzt -Stammfunktionen ausgewählter Funktionen suchen. -Dazu muss man von jeder Funktion ihre Ableitung kennen. -Die Ableitungsoperation macht aus der Funktionenmenge eine -differentielle Algebra. -Der Satz von Liouville (Satz~\ref{buch:integrale:satz:liouville1}) -liefert Bedingungen, die erfüllt sein müssen, wenn eine Funktion -eine elementare Stammfunktion hat. -Sind diese Bedingungen nicht erfüllbar, ist auch keine -elementare Stammfunktion möglich. - -In den folgenden Abschnitten soll die differentielle Algebra -der elementaren Funktionen konstruiert werden. - -\subsubsection{Körper} -Die einfachsten Funktionen sind die die Konstanten, für die wir -für die nachfolgenden Betrachtungen fast immer die komplexen Zahlen -$\mathbb{C}$ -zu Grunde legen wollen. -Dabei ist vor allem wichtig, dass sich darin alle arithmetischen -Operationen durchführen lassen mit der einzigen Ausnahme, dass -nicht durch $0$ dividiert werden darf. -Man nennt $\mathbb{C}$ daher ein {\em Körper}. -\index{Körper}% -\label{buch:integrale:def:koerper} - -\subsubsection{Polynome und rationale Funktionen} -Die Polynome einer Variablen beschreiben eine Menge von -Funktionen, in der Addition, Subtraktion, Multiplikation -von Funktionen und Multiplikation mit komplexen Zahlen -uneingeschränkt möglich ist. -Wir bezeichen wie früher die Menge der Polynome in $z$ mit -$\mathbb{C}[z]$. - -Die Division ist erst möglich, wenn man beliebige Brüche -zulässt, deren Zähler und Nenner Polynome sind. -Die Menge -\[ -\mathbb{C}(z) -= -\biggl\{ -\frac{p(z)}{q(z)} -\;\bigg|\; -p,q\in \mathbb{C}[z] -\biggr\} -\] -heisst die Menge der {\em rationalen Funktionen}. -\label{buch:integrale:def:rationalefunktion} -\index{Funktion, rationale}% -\index{rationale Funktion}% -In ihr sind jetzt alle arithmetischen Operationen ausführbar -ausser natürlich die Division durch die Nullfunktion. -Die rationalen Funktionen bilden also wieder eine Körper. - -Die Tatsache, dass die rationalen Funktionen einen Körper -bilden bedeutet auch, dass die Konstruktion erneut durchgeführt -werden kann. -Ausgehend von einem beliebigen Körper $K$ können wieder zunächst -die Polynome $K[X]$ und anschliesen die rationalen Funktionen $K[X]$ -in der neuen Variablen, jetzt aber mit Koeffizienten in $K$ -gebildet werden. -So entstehen Funktionen von mehreren Variablen und, indem -wir für die neue Variable $X$ zum Beispiel die im übernächsten -Abschnitt betrachtete Wurzel $X=\sqrt{z}$ -einsetzen, rationale Funktionen in $z$ und $\sqrt{z}$. - -Solche Funktionenkörper werden im folgenden mit geschweiften -Buchstaben $\mathscr{D}$ bezeichnet. -\index{Funktionenkörper}% - -\subsubsection{Ableitungsoperation} -In allen Untersuchungen soll immer die Ableitungsoperation -mit berücksichtigt werden. -In unserer Betrachtungsweise spielt es keine Rolle, dass die -Ableitung aus einem Grenzwert entsteht, es sind nur die algebraischen -Eigenschaften wichtig. -Diese sind in der folgenden Definition zusammengefasst. - -\begin{definition} -\label{buch:integrale:def:derivation} -Ein {\em Ableitungsoperator} oder eine {\em Derivation} einer Algebra -$\mathscr{D}$ von Funktionen ist eine lineare Abbildung -\[ -\frac{d}{dz} -\colon \mathscr{D} \to \mathscr{D} -: -f \mapsto \frac{df}{dz} = f', -\] -die zusätzlich die Produktregel -\begin{equation} -\frac{d}{dz} (fg) -= -\frac{df}{dz} \cdot g + f \cdot \frac{dg}{dz} -\qquad\Leftrightarrow\qquad -(fg)' = f' g + fg' -\label{buch:integrale:eqn:produktregel} -\end{equation} -\index{Produktregel}% -erfüllt. -Die Funktion $f'\in \mathscr{D}$ heisst auch die {\em Ableitung} -von $f\in\mathscr{D}$. -\index{Derivation}% -\index{Ableitungsoperator}% -\index{Ableitung}% -\end{definition} - -Die Produktregel hat zum Beispiel auch die bekannten Quotientenregel -zur Folge. -Dazu betrachten wir das Produkt $f= (f/g)\cdot g$ und leiten es mit -Hilfe der Produktregel ab: -\[ -\frac{d}{dz}f -= -\frac{d}{dz} -\biggl( -\frac{f}{g}\cdot g -\biggr) -= -{\color{darkred} -\frac{d}{dz} -\biggl( -\frac{f}{g} -\biggr)} -\cdot g -+ -\frac{f}{g}\cdot \frac{d}{dz}g. -\] -Jetzt lösen wir nach der {\color{darkred}roten} Ableitung des Quotienten -auf und erhalten -\begin{equation} -\biggl(\frac{f}{g}\biggr)' -= -\frac{d}{dz}\biggl(\frac{f}{g}\biggr) -= -\frac1g\biggl( -\frac{d}{dz}f - \frac{f}{g}\cdot \frac{d}{dz}g -\biggr) -= -\frac{1}{g} -\biggl( -f'-\frac{fg'}{g} -\biggr) -= -\frac{f'g-fg'}{g^2}. -\label{buch:integrale:eqn:quotientenregel} -\end{equation} -Dies ist die Quotientenregel. - -Aus der Produktregel folgt natürlich sofort auch die Potenzregel -für die Ableitung der $n$ten Potenz einer Funktion $f\in\mathscr{D}$, -sie lautet: -\begin{equation} -\frac{d}{dz} f^n -= -\underbrace{ -f'f^{n-1} + ff'f^{n-2} + f^2f'f^{n-3}+\dots f^{n-1}f' -}_{\displaystyle \text{$n$ Terme}} -= -nf^{n-1}f'. -\label{buch:integrale:eqn:potenzregel} -\end{equation} -In dieser Form versteckt sich natürlich auch die Kettenregel, die -Potenzfunktion ist die äussere Funktion, $f$ die innere, $f'$ ist also -die Ableitung er inneren Funktion, wie in der Kettenregel verlangt. -Falls $f$ ein Element von $\mathscr{D}$ ist mit der Eigenschaft -$df/dz=1$, dann entsteht die übliche Produktregel. - -\begin{definition} -Eine Algebra $\mathscr{D}$ von Funktionen mit einem Ableitungsoperator -$d/dz$ heisst eine {\em differentielle Algebra}. -\index{differentielle Algebra}% -\index{Algebra, differentielle}% -In einer differentiellen Algebra gelten die üblichen -Ableitungsregeln. -\end{definition} - -Die Potenzregel war in der Form~\eqref{buch:integrale:eqn:potenzregel} -geschrieben worden, nicht als die Ableitung von $z$. -Der Grund dafür ist, dass wir gar nicht voraussetzen wollen, dass in -unserer differentiellen Algebra eine Funktion existiert, die die -Rolle von $z$ hat. -Dies ist gar nicht nötig, wie das folgende Beispiel zeigt. - -\begin{beispiel} -Als Funktionenmenge $\mathscr{D}$ nehmen wir rationale Funktionen -in zwei Variablen, die wir $\cos x $ und $\sin x$ nennen. -Diese Menge bezeichnen wir mit -$\mathscr{D}=\mathbb{Q}(\cos x,\sin x)$ -Der Ableitungsoperator ist -\begin{align*} -\frac{d}{dx} \cos x &= -\sin x -\\ -\frac{d}{dx} \sin x &= \phantom{-}\cos x. -\end{align*} -Die Funktionen von $\mathbb{Q}(\cos x,\sin x)$ sind also Brüche, -deren Zähler und Nenner Polynome in $\cos x$ und $\sin x$ sind. -Aus den Produkt- und Quotientenregeln und den Ableitungsregeln für -$\cos x$ und $\sin x$ folgt, dass die Ableitung einer Funktion in -$\mathscr{D}$ wieder in $\mathscr{D}$ ist, $\mathscr{D}$ ist eine -differentielle Algebra. -\end{beispiel} - -Die konstanten Funktionen spielen eine besondere Rolle. -Da wir bei der Ableitung nicht von der Vorstellung einer -Funktion mit einem variablen Argument ausgehen wollten und -die Ableitung nicht als Grenzwert definieren wollten, müssen -wir auch bei der Definition der ``Konstanten'' einen neuen -Weg gehen. -In der Analysis sind die Konstanten genau die Funktionen, -deren Ableitung $0$ ist. - -\begin{definition} -\label{buch:integrale:def:konstante} -Ein Element $f\in \mathscr{D}$ mit $df/dz=f'=0$ heissen -{\em Konstante} in $\mathscr{D}$. -\index{Konstante}% -\end{definition} - -Die in der Potenzregel~\eqref{buch:integrale:eqn:potenzregel} -vermisste Funktion $z$ kann man ähnlich zu den Konstanten -zu definieren versuchen. -$z$ müsste ein Element von $\mathscr{D}$ mit $z' = 1$ sein. -Allerdings gibt es viele solche Elemente, ist $c$ eine Konstanten -und $z'=1$, dann ist auch $(z+c)'=1$, $(z+c)$ hat also für -die Zwecke unserer Untersuchung die gleichen Eigenschaften wie -$z$. -Dies deckt sich natürlich auch mit der Erwartung, dass Stammfunktionen -nur bis auf eine Konstante bestimmt sind. -Eine differentielle Algebra muss allerdings kein Element $z$ mit der -Eigenschaft $z'=1$ enthalten. - -\begin{beispiel} -In $\mathscr{D}=\mathbb{Q}(\cos x,\sin x)$ gibt es kein Element $x$. -Ein solches wäre von der Form -\[ -x = \frac{p(\cos x,\sin x)}{q(\cos x,\sin x)}. -\] -Eine solche goniometrische Beziehung würde für $x=\frac{\pi}4$ bedeuten, -dass -\[ -\frac{\pi}4 -= -\frac{p(\sqrt{2}/2,\sqrt{2}/2)}{q(\sqrt{2}/2,\sqrt{2}/2)}. -\] -Auf der rechten Seite steht ein Quotient von Polynome, in dessen -Argument nur rationale Zahlen und $\sqrt{2}$ steht. -So ein Ausdruck kann immer in die Form -\[ -\pi -= -4\frac{a\sqrt{2}+b}{c\sqrt{2}+d} -= -\frac{4(a\sqrt{2}+b)(c\sqrt{2}-d)}{2c^2+d^2} -= -r\sqrt{2}+s -\] -gebracht werden. -Die Zahl auf der rechten Seite ist zwar irrational, aber sie ist Nullstelle -des quadratischen Polynoms -\[ -p(x) -= -(x-r\sqrt{2}-s)(x+r\sqrt{2}-s) -= -x^2 --2sx --2r^2+s^2 -\] -mit rationalen Koeffizienten, wie man mit der Lösungsformel für die -quadratische Gleichung nachprüfen kann. -Es ist bekannt, dass $\pi$ als transzendente Zahl nicht Nullstelle -eines Polynoms mit rationalen Koeffizienten ist. -Dieser Widerspruch zeigt, dass $x$ nicht in $\mathbb{Q}(\cos x, \sin x)$ -vorkommen kann. -\end{beispiel} - -In einer differentiellen Algebra kann jetzt die Frage nach der -Existenz einer Stammfunktion gestellt werden. - -\begin{aufgabe} -\label{buch:integrale:aufgabe:existenz-stammfunktion} -Gegeben eine differentielle Algebra $\mathscr{D}$ und ein Element -$f\in\mathscr{D}$, entscheide, ob es ein Element $F\in\mathscr{D}$ -gibt mit der Eigenschaft $F'=f$. -Ein solches $F\in\mathscr{D}$ heisst {\em Stammfunktion} von $f$. -\end{aufgabe} - -\begin{satz} -In einer differentiellen Algebra $\mathscr{D}$ mit $z\in\mathscr{D}$ -hat die Potenzfunktion $f=z^n$ für $n\in\mathbb{N}\setminus\{-1\}$ -ein Stammfunktion, nämlich -\[ -F = \frac{1}{n+1} z^{n+1}. -\] -\label{buch:integrale:satz:potenzstammfunktion} -\end{satz} - -\begin{proof}[Beweis] -Tatsächlich kann man dies sofort nachrechnen, muss allerdings die -Fälle $n+1 >0$ und $n+1<0$ unterscheiden, da die Potenzregel -\eqref{buch:integrale:eqn:potenzregel} nur für natürliche Exponenten -gilt. -Man erhält -\begin{align*} -n+1&>0\colon -& -\frac{d}{dz}\frac{1}{n+1}z^{n+1} -&= -\frac{1}{n+1}(n+1)z^{n+1-1} -= -z^n, -\\ -n+1&<0\colon -& -\frac{d}{dz}\frac{1}{n+1}\frac{1}{z^{-(n+1)}} -&= -\frac{1}{n+1}\frac{1'z^{-(n+1)}-1(-(n+1))z^{-n-1-1}}{z^{-2n-2}} -\\ -&& -&= -\frac{1}{n+1} -\frac{(n+1)z^n{-n-2}}{z^{-2n-2}} -\\ -&& -&= -\frac{1}{z^{-n}}=z^n. -\end{align*} -Man beachte, dass in dieser Rechnung nichts anderes als die -algebraischen Eigenschaften der Produkt- und Quotientenregel -verwendet wurden. -\end{proof} - -\subsubsection{Wurzeln} -Die Wurzelfunktionen sollen natürlich als elementare Funktionen -erlaubt sein. -Es ist bekannt, dass $\sqrt{z}\not\in \mathscr{D}=\mathbb{C}(z)$ -ist, ein solches Element müsste also erst noch hinzugefügt werden. -Dabei muss auch seine Ableitung definiert werden. -Auch dabei dürfen wir nicht auf eine Grenzwertüberlegung zurückgreifen, -vielmehr müssen wir die Ableitung auf vollständig algebraische -Weise bestimmen. - -Wir schreiben $f=\sqrt{z}$ und leiten die Gleichung $f^2=z$ nach $z$ ab. -Dabei ergibt sich nach der Potenzregel -\[ -\frac{d}{dz}f^2 = 2f'f = \frac{d}{dz}z=1 -\qquad\Rightarrow\qquad f' = \frac{1}{2f}. -\] -Diese Rechnung lässt sich auch auf $n$-Wurzeln $g=\root{n}\of{z}$ mit -der Gleichung $g^n = z$ verallgemeinern. -Die Ableitung der $n$-ten Wurzel ist -\begin{equation} -\frac{d}{dz}g^n -= -ng^{n-1} = \frac{d}{dz}z=1 -\qquad\Rightarrow\qquad -\frac{d}{dz}g = \frac{1}{ng^{n-1}}. -\end{equation} -Es ist also möglich, eine differentielle Algebra $\mathscr{D}$ mit einer -$n$-ten Wurzel $g$ zu einer grösseren differentiellen Algebra $\mathscr{D}(g)$ -zu erweitern, in der wieder alle Regeln für das Rechnen mit Ableitungen -erfüllt sind. - -\subsubsection{Algebraische Elemente} -Die Charakterisierung der Wurzelfunktionen passt zwar zum verlangten -algebraischen Vorgehen, ist aber zu spezielle und nicht gut für die -nachfolgenden Untersuchengen geeignet. -Etwas allgemeiner ist der Begriff der algebraischen Elemente. - -\begin{definition} -\label{buch:integrale:def:algebraisches-element} -Seien $K\subset L$ zwei Körper. -Ein Element $\alpha \in L$ heisst {\em algebraisch} über $K$, -wenn $\alpha$ Nullstelle eines Polynoms $p\in K[X]$ mit Koeffizienten -in $K$ ist. -\index{algebraisch}% -\end{definition} - -Jedes Element $\alpha\in K$ ist algebraisch, da $\alpha$ Nullstelle -von $X-\alpha\in K[X]$ ist. -Die $n$tem Wurzeln eines Elemente $\alpha\in K$ sind ebenfalls algebraisch, -da sie Nullstellen des Polynoms $p(X) = X^n - \alpha$ sind. -Allerdings ist nicht klar, dass diese Wurzeln überhaupt existieren. -Nach dem Satz von Abel~\ref{buch:potenzen:satz:abel} gibt es aber -Nullstellen von Polynomen, die sich nicht als Wurzelausdrücke schreiben -lassen. -Der Begriff der algebraischen Elemente ist also allgemeiner als der -Begriff der Wurzel. - -\begin{definition} -\label{buch:integrale:def:algebraisch-abgeschlossen} -Ein Körper $K$ heisst {\em algebraisch abgeschlossen}, wenn jedes Polynom mit -Koeffizienten in $K$ eine Nullstelle in $K$ hat. -\end{definition} - -Der Körper $\mathbb{C}$ ist nach dem -Fundamentalsatz~\label{buch:potenzen:satz:fundamentalsatz} -der Algebra algebraisch abgeschlossen. -Da wir aber mit Funktionen arbeiten, müssen wir auch Wurzeln -von Funktionen finden können. -Dies ist nicht selbstverständlich, wie das folgende Beispiel zeigt. - -\begin{beispiel} -Es gibt keine stetige Funktion $f\colon \mathbb{C}\to\mathbb{C}$, die -die Gleichung $f(z)^2 = z$ und $f(1)=1$ erfüllt. -Für die Argumente $z(t)= e^{it}$ folgt, dass $f(z(t)) = e^{it/2}$ sein -muss. -Setzt man aber $t=\pm \pi$ ein, ergeben sich die Werte -$f(z(\pm\pi))=e^{\pm i\pi/2}=\pm 1$, die beiden Grenzwerte -für $t\to\pm\pi$ sind also verschieden. -\end{beispiel} - -Die Mathematik hat verschiedene ``Tricks'' entwickelt, wie mit diesem -Problem umgegangen werden kann: Funktionskeime, Garben, Riemannsche -Flächen. -Sie sind alle gleichermassen gut geeignet, das Problem zu lösen. -Für die vorliegende Aufgabe genügt es aber, dass es tatsächlich -immer ein wie auch immer geartetes Element gibt, welches Nullstelle -des Polynoms ist. - -Ist $f$ eine Nullstelle des Polynoms $p(X)$ mit Koeffizienten in -$\mathscr{D}$, dann kann man die Ableitung wie folgt berechnen. -Zunächst leitet man $p(f)$ ab: -\begin{align} -0&= -\frac{d}{dz}(a_nf^n + a_{n-1}f^{n-1}+\ldots+a_1f+a_0) -\notag -\\ -&= -a_n'f^n + a_{n-1}'f^{n-1}+\ldots+a_1'f+a_0' -+ -na_nf^{n-1}f' -+ -(n-1)a_nf^{n-2}f' -+ -\ldots -+ -a_2ff' -+ -a_1f' -\notag -\\ -&= -a_n'f^n + a_{n-1}'f^{n-1}+\ldots+a_1'f+a_0' -+ -( -na_nf^{n-1} -+ -(n-1)a_nf^{n-2} -+ -\ldots -+ -a_2f -+ -a_1 -)f' -\notag -\\ -\Rightarrow -\qquad -f'&=\frac{ -a_n'f^n + a_{n-1}'f^{n-1}+\dots+a_1'f+a_0' -}{ -na_nf^{n-1} -+ -(n-1)a_nf^{n-2} -+ -\dots -+ -a_1 -}. -\label{buch:integrale:eqn:algabl} -\end{align} -Das einzige, was dabei schief gehen könnte ist, dass der Nenner ebenfalls -verschwindet. -Dieses Problem kann man dadurch lösen, dass man als Polynom das -sogenannte Minimalpolynom verwendet. - -\begin{definition} -Das {\em Minimalpolynome} $m(X)$ eines algebraischen Elementes $\alpha$ ist -das Polynom kleinsten Grades, welches $m(\alpha)=0$ erfüllt. -\end{definition} - -Da das Minimalpolynom den kleinstmöglichen Grad hat, kann der Nenner -von~\eqref{buch:integrale:eqn:algabl}, -der noch kleineren Grad hat, unmöglich verschwinden. -Das Minimalpolynom ist auch im wesentlichen eindeutig. -Gäbe es nämlich zwei verschiedene Minimalpolynome $m_1$ und $m_2$, -dann müsste $\alpha$ auch eine Nullstelle des grössten gemeinsamen -Teilers $m_3=\operatorname{ggT}(m_1,m_2)$ sein. -Wären die beiden Polynome wesentlich verschieden, dann hätte $m_3$ -kleineren Grad, im Widerspruch zur Definition des Minimalpolynoms. -Also unterscheiden sich die beiden Polynome $m_1$ und $m_2$ nur um -einen skalaren Faktor. - -\subsubsection{Konjugation, Spur und Norm} -% Konjugation, Spur und Norm -Das Minimalpolynom eines algebraischen Elementes ist nicht -eindeutig bestimmt. -Zum Beispiel ist $\sqrt{2}$ algebraisch über $\mathbb{Q}$, das -Minimalpolynom ist $m(X)=X^2-2\in\mathbb{Q}[X]$. -Es hat aber noch eine zweite Nullstelle $-\sqrt{2}$. -Mit rein algebraischen Mitteln sind die beiden Nullstellen $\pm\sqrt{2}$ -nicht zu unterscheiden, erst die Verwendung der Vergleichsrelation -ermöglicht, sie zu unterscheiden. - -Dasselbe gilt für die imaginäre Einheit $i$, die das Minimalpolynom -$m(X)=X^2+1\in\mathbb{R}[X]$ hat. -Hier gibt es nicht einmal mehr eine Vergleichsrelation, mit der man -die beiden Nullstellen unterscheiden könnte. -In der Tat ändert sich aus algebraischer Sicht nichts, wenn man in -allen Formeln $i$ durch $-i$ ersetzt. - -Etwas komplizierter wird es bei $\root{3}\of{2}$. -Das Polynom $m=x^3-2\in\mathbb{Q}[X]$ hat $\root{3}\of{2}$ als -Nullstelle und dies ist auch tatsächlich das Minimalpolynom. -Das Polynom hat noch zwei weitere Nullstellen -\[ -\alpha_+ = \frac{-1+i\sqrt{3}}{2}\root{3}\of{2} -\qquad\text{und}\qquad -\alpha_- = \frac{-1-i\sqrt{3}}{2}\root{3}\of{2}. -\] -Die beiden Lösungen gehen durch die Vertauschung von $i$ und $-i$ -auseinander hervor. -Betrachtet man dasselbe Polynom aber als Polynom in $\mathbb{R}[X]$, -dann ist es nicht mehr das Minimalpolynom von $\root{3}\of{2}$, da -$X-\root{3}\of{2}\in\mathbb{R}[X]$ kleineren Grad und $\root{3}\of{2}$ -als Nullstelle hat. -Indem man -\[ -m(X)/(X-\root{3}\of{2})=X^2+\root{3}\of{2}X+\root{3}\of{2}^2=m_2(X) -\] -rechnet, bekommt man das Minimalpolynom der beiden Nullstellen $\alpha_+$ -und $\alpha_-$. -Wir lernen aus diesen Beispielen, dass das Minimalpolynom vom Grundkörper -abhängig ist (Die Faktorisierung $(X-\root{3}\of{2})\cdot m_2(X)$ von -$m(X)$ ist in $\mathbb{Q}[X]$ nicht möglich) und dass wir keine -algebraische Möglichkeit haben, die verschiedenen Nullstellen des -Minimalpolynoms zu unterscheiden. - -Die beiden Nullstellen $\alpha_+$ und $\alpha_-$ des Polynoms $m_2(X)$ -erlauben, $m_2(X)=(X-\alpha_+)(X-\alpha_-)$ zu faktorisieren. -Durch Ausmultiplizieren -\[ -(X-\alpha_+)(X-\alpha_-) -= -X^2 -(\alpha_++\alpha_-)X+\alpha_+\alpha_- -\] -und Koeffizientenvergleich mit $m_2(X)$ findet man die symmetrischen -Formeln -\[ -\alpha_+ + \alpha_- = \root{3}\of{2} -\qquad\text{und}\qquad -\alpha_+ \alpha_ = \root{3}\of{2}. -\] -Diese Ausdrücke sind nicht mehr abhängig von einer speziellen Wahl -der Nullstellen. - -Das Problem verschärft sich nocheinmal, wenn wir Funktionen betrachten. -Das Polynom $m(X)=X^3-z$ ist das Minimalpolynom der Funktion $\root{3}\of{z}$. -Die komplexe Zahl $z=re^{i\varphi}$ hat aber drei die algebraisch nicht -unterscheidbaren Nullstellen -\[ -\alpha_0(z)=\root{3}\of{r}e^{i\varphi/3}, -\quad -\alpha_1(z)=\root{3}\of{r}e^{i\varphi/3+2\pi/3} -\qquad\text{und}\qquad -\alpha_2(z)=\root{3}\of{r}e^{i\varphi/3+4\pi/3}. -\] -Aus der Faktorisierung $ (X-\alpha_0(z)) (X-\alpha_1(z)) (X-\alpha_2(z))$ -und dem Koeffizientenvergleich mit dem Minimalpolynom kann man wieder -schliessen, dass die Relationen -\[ -\alpha_0(z) + \alpha_1(z) + \alpha_2(z)=0 -\qquad\text{und}\qquad -\alpha_0(z) \alpha_1(z) \alpha_2(z) = z -\] -gelten. - -Wir können also oft keine Aussagen über individuelle Nullstellen -eines Minimalpolynoms machen, sondern nur über deren Summe oder -Produkt. - -\begin{definition} -\index{buch:integrale:def:spur-und-norm} -Sie $m(X)\in K[X]$ das Minimalpolynom eines über $K$ algebraischen -Elements und -\[ -m(X) = a_nX^n + a_{n-1}X^{n-1} + \ldots + a_1X + a_0. -\] -Dann heissen -\[ -\operatorname{Tr}(\alpha) = -a_{n-1} -\qquad\text{und}\qquad -\operatorname{Norm}(\alpha) = (-1)^n a_0 -\] -die {\em Spur} und die {\em Norm} des Elementes $\alpha$. -\index{Spur eines algebraischen Elementes}% -\index{Norm eines algebraischen Elementes}% -\end{definition} - -Die Spur und die Norm können als Spur und Determinante einer Matrix -verstanden werden, diese allgemeineren Definitionen, die man in der -Fachliteratur, z.~B.~in~\cite{buch:lang} nachlesen kann, führen aber -für unsere Zwecke zu weit. - -\begin{hilfssatz} -Die Ableitungen von Spur und Norm sind -\[ -\operatorname{Tr}(\alpha)' -= -\operatorname{Tr}(\alpha') -\qquad\text{und}\qquad -\operatorname{Norm}(\alpha)' -= -\operatorname{Tr}(\alpha)' -\] -XXX Wirklich? -\end{hilfssatz} - -\subsubsection{Logarithmen und Exponentialfunktionen} -Die Funktion $z^{-1}$ musste im -Satz~\ref{buch:integrale:satz:potenzstammfunktion} -ausgeschlossen werden, sie hat keine Stammfunktion in $\mathbb{C}(z)$. -Aus der Analysis ist bekannt, dass die Logarithmusfunktion $\log z$ -eine Stammfunktion ist. -Der Logarithmus von $z$ aber auch der Logarithmus $\log f(z)$ -einer beliebigen Funktion $f(z)$ oder die Exponentialfunktion $e^{f(z)}$ -sollen ebenfalls elementare Funktionen sein. -Da wir aber auch hier nicht auf die analytischen Eigenschaften zurückgreifen -wollen, brauchen wir ein rein algebraische Definition. - -\begin{definition} -\label{buch:integrale:def:logexp} -Sei $\mathscr{D}$ ein differentielle Algebra und $f\in\mathscr{D}$. -Ein Element $\vartheta\in\mathscr{D}$ heisst ein {\em Logarithmus} -von $f$, geschrieben $\vartheta = \log f$, wenn $f\vartheta' = f'$ gilt. -$\vartheta$ heisst eine Exponentialfunktion von $f$ wenn -$\vartheta'=\vartheta f'$ gilt. -\end{definition} - -Die Formel für die Exponentialfunktion ist etwas vertrauter, sie ist -die bekannte Kettenregel -\begin{equation} -\vartheta' -= -\frac{d}{dz} e^f -= -e^f \cdot \frac{d}{dz} f -= -\vartheta \cdot f'. -\label{buch:integrale:eqn:exponentialableitung} -\end{equation} -Da wir uns vorstellen, dass Logarithmen Umkehrfunktionen von -Exponentialfunktionen sein sollen, -muss die definierende Gleichung genau wie -\eqref{buch:integrale:eqn:exponentialableitung} -aussehen, allerdings mit vertauschten Plätzen von $f$ und $\vartheta$, -also -\begin{equation} -\vartheta' = \vartheta\cdot f' -\qquad -\rightarrow -\qquad -f' = f\cdot \vartheta' -\;\Leftrightarrow\; -\vartheta' = (\log f)' = \frac{f'}{f}. -\label{buch:integrale:eqn:logarithmischeableitung} -\end{equation} -Dies ist die aus der Analysis bekannte Formel für die logarithmische -Ableitung. - -Der Logarithmus von $f$ und die Exponentialfunktion von $f$ sollen -also ebenfalls als elementare Funktionen betrachtet werden. - -\subsubsection{Die trigonometrischen Funktionen} -Die bekannten trigonometrischen Funktionen und ihre Umkehrfunktionen -sollten natürlich auch elementare Funktionen sein. -Dabei kommt uns zur Hilfe, dass sie sich mit Hilfe der Exponentialfunktion -als -\[ -\cos f = \frac{e^{if}+e^{-if}}2 -\qquad\text{und}\qquad -\sin f = \frac{e^{if}-e^{-if}}{2i} -\] -schreiben lassen. -Eine differentielle Algebra, die die Exponentialfunktionen von $if$ und -$-if$ enthält, enthält also automatisch auch die trigonometrischen -Funktionen. -Im Folgenden ist es daher nicht mehr nötig, die trigonometrischen -Funktionen speziell zu untersuchen. - -\subsubsection{Elementare Funktionen} -Damit sind wir nun in der Lage, den Begriff der elementaren Funktion -genau zu fassen. - -\begin{definition} -\label{buch:integrale:def:einfache-elementare-funktion} -Sie $\mathscr{D}$ eine differentielle Algebra über $\mathbb{C}$ und -$\mathscr{D}(\vartheta)$ eine Erweiterung von $\mathscr{D}$ um eine -neue Funktion $\vartheta$, dann heissen $\vartheta$ und die Elemente -von $\mathscr{D}(\vartheta)$ einfach elementar, wenn eine der folgenden -Bedingungen erfüllt ist: -\begin{enumerate} -\item $\vartheta$ ist algebraisch über $\mathscr{D}$, d.~h.~$\vartheta$ -ist eine ``Wurzel''. -\item $\vartheta$ ist ein Logarithmus einer Funktion in $\mathscr{D}$, -d.~h.~es gibt $f\in \mathscr{D}$ mit $f'=f\vartheta'$ -(Definition~\ref{buch:integrale:def:logexp}). -\item $\vartheta$ ist eine Exponentialfunktion einer Funktion in $\mathscr{D}$, -d.~h.~es bit $f\in\mathscr{D}$ mit $\vartheta'=\vartheta f'$ -(Definition~\ref{buch:integrale:def:logexp}). -\end{enumerate} -\end{definition} - -Einfache elementare Funktionen entstehen also ausgehend von einer -differentiellen Algebra, indem man genau einmal eine Wurzel, einen -Logarithmus oder eine Exponentialfunktion hinzufügt. -So etwas wie die zusammengesetzte Funktion $e^{\sqrt{z}}$ ist -damit noch nicht möglich. -Daher erlauben wir, dass man die gesuchten Funktionen in mehreren -Schritten aufbauen kann. - -\begin{definition} -Sei $\mathscr{F}$ eine differentielle Algebra, die die differentielle -Algebra $\mathscr{D}$ enthält, also $\mathscr{D}\subset\mathscr{F}$. -$\mathscr{F}$ und die Elemente von $\mathscr{F}$ heissen einfach, -wenn es endlich viele Elemente $\vartheta_1,\dots,\vartheta_n$ gibt -derart, dass -\[ -\renewcommand{\arraycolsep}{2pt} -\begin{array}{ccccccccccccc} -\mathscr{D} -&\subset& -\mathscr{D}(\vartheta_1) -&\subset& -\mathscr{D}(\vartheta_1,\vartheta_2) -&\subset& -\; -\cdots -\; -&\subset& -\mathscr{D}(\vartheta_1,\vartheta_2,\dots,\vartheta_{n-1}) -&\subset& -\mathscr{D}(\vartheta_1,\vartheta_2,\dots,\vartheta_{n-1},\vartheta_n) -&=& -\mathscr{F} -\\ -\| -&& -\| -&& -\| -&& -&& -\| -&& -\| -&& -\\ -\mathscr{F}_0 -&\subset& -\mathscr{F}_1 -&\subset& -\mathscr{F}_2 -&\subset& -\cdots -&\subset& -\mathscr{F}_{n-1} -&\subset& -\mathscr{F}_{n\mathstrut} -&& -\end{array} -\] -gilt so, dass jedes $\vartheta_{i+1}$ einfach ist über -$\mathscr{F}_i=\mathscr{D}(\vartheta_1,\dots,\vartheta_i)$. -\end{definition} - -In Worten bedeutet dies, dass man den Funktionen von $\mathscr{D}$ -nacheinander Wurzeln, Logarithmen oder Exponentialfunktionen einzelner -Funktionen hinzufügt. -Die Aufgabe~\ref{buch:integrale:aufgabe:existenz-stammfunktion} kann -jetzt so formuliert werden. - -\begin{aufgabe} -\label{buch:integrale:aufgabe:existenz-stammfunktion-dalg} -Gegeben ist eine Differentielle Algebra $\mathscr{D}$ und eine -Funktion $f\in \mathscr{D}$. -Gibt es eine Folge $\vartheta_1,\dots,\vartheta_n$ und eine Funktion -$F\in\mathscr{D}(\vartheta_1,\dots,\vartheta_n)$ derart, dass -$F'=f$. -\end{aufgabe} - -Das folgende Beispiel zeigt, wie man möglicherweise mehrere -Erweiterungsschritte vornehmen muss, um zu einer Stammfunktion -zu kommen. -Es illustriert auch die zentrale Rolle, die der Partialbruchzerlegung -in der weiteren Entwicklung zukommen wird. - -\begin{beispiel} -\label{buch:integrale:beispiel:nichteinfacheelementarefunktion} -Es soll eine Stammfunktion der Funktion -\[ -f(z) -= -\frac{z}{(az+b)(cz+d)} -\in -\mathbb{C}(z) -\] -gefunden werden. -In der Analysis lernt man, dass solche Integrale mit der -Partialbruchzerlegung -\[ -\frac{z}{(az+b)(cz+d)} -= -\frac{A_1}{az+b}+\frac{A_2}{cz+d} -= -\frac{A_1cz+A_1d+A_2az+A_2b}{(az+b)(cz+d)} -\quad\Rightarrow\quad -\left\{ -\renewcommand{\arraycolsep}{2pt} -\begin{array}{rcrcr} -cA_1&+&aA_2&=&1\\ -dA_1&+&bA_2&=&0 -\end{array} -\right. -\] -bestimmt werden. -Die Lösung des Gleichungssystems ergibt -$A_1=b/(bc-ad)$ und $A_2=d/(ad-bc)$. -Die Stammfunktion kann dann aus -\begin{align*} -\int f(z)\,dz -&= -\int\frac{A_1}{az+b}\,dz -+ -\int\frac{A_2}{cz+d}\,dz -= -\frac{A_1}{a}\int\frac{a}{az+b}\,dz -+ -\frac{A_2}{c}\int\frac{c}{cz+d}\,dz -\end{align*} -bestimmt werden. -In den Integralen auf der rechten Seite ist der Zähler jeweils die -Ableitung des Nenners, der Integrand hat also die Form $g'/g$. -Genau diese Form tritt in der Definition eines Logarithmus auf. -Die Stammfunktion ist jetzt -\[ -F(z) -= -\int f(z)\,dz -= -\frac{A_1}{a}\log(az+b) -+ -\frac{A_2}{c}\log(cz+d) -= -\frac{b\log(az+b)}{a(bc-ad)} -+ -\frac{d\log(cz+d)}{c(ad-bc)}. -\] -Die beiden Logarithmen kann man nicht durch rein rationale Operationen -ineinander überführen. -Sie müssen daher beide der Algebra $\mathscr{D}$ hinzugefügt werden. -\[ -\left. -\begin{aligned} -\vartheta_1&=\log(az+b)\\ -\vartheta_2&=\log(cz+d) -\end{aligned} -\quad -\right\} -\qquad\Rightarrow\qquad -F(z) \in \mathscr{F}=\mathscr{D}(\vartheta_1,\vartheta_2). -\] -Die Stammfunktion $F(z)$ ist also keine einfache elementare Funktion, -aber $F$ ist immer noch eine elementare Funktion. -\end{beispiel} - -\subsection{Partialbruchzerlegung -\label{buch:integrale:section:partialbruchzerlegung}} -Die Konstruktionen des letzten Abschnitts haben gezeigt, -wie man die Funktionen, die man als Stammfunktionen einer Funktion -zulassen möchte, schrittweise konstruieren kann. -Die Aufgabe~\ref{buch:integrale:aufgabe:existenz-stammfunktion-dalg} -ist eine rein algebraische Formulierung der ursprünglichen -Aufgabe~\ref{buch:integrale:aufgabe:existenz-stammfunktion}. -Schliesslich hat das Beispiel auf -Seite~\pageref{buch:integrale:beispiel:nichteinfacheelementarefunktion} -gezeigt, dass es im allgemeinen mehrere Schritte braucht, um zu einer -elementaren Stammfunktion zu gelangen. -Die Lösung setzt sich aus den Termen der Partialbruchzerlegung. -In diesem Abschnitt soll diese genauer studiert werden. - -In diesem Abschnitt gehen wir immer von einer differentiellen -Algebra über den komplexen Zahlen aus und verlangen, dass die -Konstanten in allen betrachteten differentiellen Algebren -$\mathbb{C}$ sind. - -\subsubsection{Monome} -Die beiden Funktionen $\vartheta-1=\log(az+b)$ und $\vartheta_2=(cz+d)$, -die im Beispiel hinzugefügt werden mussten, verhalten sich ich algebraischer -Hinsicht wie ein Monom: man kann es nicht faktorisieren oder bereits -bekannte Summanden aufspalten. -Solchen Funktionen kommt eine besondere Bedeutung zu. - -\begin{definition} -\label{buch:integrale:def:monom} -Die Funktion $\vartheta$ heisst ein Monom, wenn $\vartheta$ nicht -algebraisch ist über $\mathscr{D}$ und $\mathscr{D}(\vartheta)$ die -gleichen Konstanten enthält wie $\mathscr{D}$. -\end{definition} - -\begin{beispiel} -Als Beispiel beginnen wir mit den komplexen Zahlen $\mathbb{C}$ -und fügen die Funktion $\vartheta_1=z$ hinzu und erhalten -$\mathscr{D}=\mathbb{C}(z)$. -Die Funktionen $z^k$ sind für alle $k$ linear unabhängig, d.~h.~es -gibt keinen Ausdruck -\[ -a_nz^n + a_{n-1}z^{n-1}+\cdots+a_1z+a_0=0. -\] -Dies ist gleichbedeutend damit, dass $z$ nicht algebraisch ist. -Das Monom $z$ ist also auch ein Monom im Sinne der -Definition~\ref{buch:integrale:def:monom}. -\end{beispiel} - -\begin{beispiel} -Wir beginnen wieder mit $\mathbb{C}$ und fügen die Funktion -$e^z$ hinzu. -Gäbe es eine Beziehung -\[ -b_m(e^z)^m + b_{m-1}(e^z)^{m-1}+\dots+b_1e^z + b_0=0 -\] -mit komplexen Koeffizienten $b_i\in\mathbb{C}$, -dann würde daraus durch Einsetzen von $z=1$ die Relation -\[ -b_me^m + b_{m-1}e^{m-1} + \dots + b_1e + b_0=0, -\] -die zeigen würde, dass $e$ eine algebraische Zahl ist. -Es ist aber bekannt, dass $e$ transzendent ist. -Dieser Widersprich zeigt, dass $e^z$ ein Monom ist. -\end{beispiel} - -\begin{beispiel} -Jetzt fügen wir die Exponentialfunktion $\vartheta_2=e^z$ -der differentiellen Algebra $\mathscr{D}=\mathbb{C}(z)$ hinzu -und erhalten $\mathscr{F}_1=\mathscr{D}(e^z) = \mathbb{C}(z,e^z)$. -Gäbe es das Minimalpolynom -\begin{equation} -b_m(z)(e^z)^m + b_{m-1}(z)(e^z)^{m-1}+\dots+b_1(z)e^z + b_0(z)=0 -\label{buch:integrale:beweis:exp-analytisch} -\end{equation} -mit Koeffizienten $b_i\in\mathbb{C}(z)$, dann könnte man mit dem -gemeinsamen Nenner der Koeffizienten durchmultiplizieren und erhielte -eine Relation~\eqref{buch:integrale:beweis:exp-analytisch} mit -Koeffizienten in $\mathbb{C}[z]$. -Dividiert man durch $e^{mz}$ erhält man -\[ -b_m(z) + b_{m-1}(z)\frac{1}{e^z} + \dots + b_1(z)\frac{1}{(e^z)^{m-1}} + b_0(z)\frac{1}{(e^z)^m}=0. -\] -Aus der Analysis weiss man, dass die Exponentialfunktion schneller -anwächst als jedes Polynom, alle Terme auf der rechten Seite -konvergieren daher gegen 0 für $z\to\infty$. -Das bedeutet, dass $b_m(z)\to0$ für $z\to \infty$. -Das Polynom~\eqref{buch:integrale:beweis:exp-analytisch} wäre also gar -nicht das Minimalpolynom. -Dieser Widerspruch zeigt, dass $e^z$ nicht algebraisch ist über -$\mathbb{C}(z)$ und damit ein Monom ist\footnote{Etwas unbefriedigend -an diesem Argument ist, dass man hier wieder rein analytische statt -algebraische Eigenschaften von $e^z$ verwendet. -Gäbe es aber eine minimale Relation wie -\eqref{buch:integrale:beweis:exp-analytisch} -mit Polynomkoeffizienten, dann wäre sie von der Form -\[ -P(z,e^z)=p(z)(e^z)^m + q(z,e^z)=0, -\] -wobei Grad von $e^z$ in $q$ höchstens $m-1$ ist. -Die Ableitung wäre dann -\[ -Q(z,e^z) -= -mp(z)(e^z)^m + p'(z)(e^z)^m + r(z,e^z) -= -(mp(z) + p'(z))(e^z)^m + r(z,e^z) -=0, -\] -wobei der Grad von $e^z$ in $r$ wieder höchstens $m-1$ ist. -Bildet man $mP(z,e^z) - Q(z,e^z) = 0$ ensteht eine Relation, -in der der Grad des Koeffizienten von $(e^z)^m$ um eins abgenommen hat. -Wiederholt man dies $m$ mal, verschwindet der Term $(e^z)^m$, die -Relation~\eqref{buch:integrale:beweis:exp-analytisch} -war also gar nicht minimal. -Dieser Widerspruch zeigt wieder, dass $e^z$ nicht algebraisch ist, -verwendet aber nur die algebraischen Eigenschaften der differentiellen -Algebra. -}. -\end{beispiel} - -\begin{beispiel} -Wir hätten auch in $\mathbb{Q}$ arbeiten können und $\mathbb{Q}$ -erst die Exponentialfunktion $e^z$ und dann den Logarithmus $z$ von $e^z$ -hinzufügen können. -Es gibt aber noch weitere Logarithmen von $e^z$ zum Beispiel $z+2\pi i$. -Offenbar ist $\psi=z+2\pi i\not\in \mathbb{Q}(z,e^z)$, wir könnten also -auch noch $\psi$ hinzufügen. -Zwar ist $\psi$ auch nicht algebraisch, aber wenn wir $\psi$ hinzufügen, -dann wird aber die Menge der Konstanten grösser, sie umfasst jetzt -$\mathbb{Q}(2\pi i)$. -Die Bedingung in der Definition~\ref{buch:integrale:def:monom}, -dass die Menge der Konstanten nicht grösser werden darf, ist also -verletzt. - -Hätte man mit $\mathbb{Q}(e^z, z+2\pi i)$ begonnen, wäre $z$ aus -dem gleichen Grund kein Monom, aber $z+2\pi i$ wäre eines im Sinne -der Definition~\ref{buch:integrale:def:monom}. -In allen Rechnungen könnte man $\psi=z+2\pi i$ nicht weiter aufteilen, -da $\pi$ oder seine Potenzen keine Elemente von $\mathbb{Q}(e^z)$ sind. -\end{beispiel} - -Da wir im Folgenden davon ausgehen, dass die Konstanten unserer -differentiellen Körper immer $\mathbb{C}$ sind, wird es jeweils -genügen zu untersuchen, ob eine neu hinzuzufügende Funktion algebraisch -ist oder nicht. - -\subsubsection{Ableitungen von Polynomen und rationalen Funktionen von Monomen} -Fügt man einer differentiellen Algebra ein Monom hinzu, dann lässt -sich etwas mehr über Ableitungen von Polynomen oder Brüchen in diesen -Monomen sagen. -Diese Eigenschaften werden später bei der Auflösung der Partialbruchzerlegung -nützlich sein. - -\begin{satz} -\label{buch:integrale:satz:polynom-ableitung-grad} -Sei -\[ -P -= -A_nX^n + A_{n-1}X^{n-1} + \dots A_1X+A_0 -\in\mathscr{D}[X] -\] -ein Polynom mit Koeffizienten in einer differentiellen Algebra $\mathscr{D}$ -und $\vartheta$ ein Monom über $\mathscr{D}$. -Dann gilt -\begin{enumerate} -\item -\label{buch:integrale:satz:polynom-ableitung-grad-log} -Falls $\vartheta=\log f$ ist, ist $P(\vartheta)'$ ein -Polynom vom Grad $n$ in $\vartheta$, wenn der Leitkoeffizient $A_n$ -nicht konstant ist, andernfalls ein Polynom vom Grad $n-1$. -\item -\label{buch:integrale:satz:polynom-ableitung-grad-exp} -Falls $\vartheta = \exp f$ ist, dann ist $P(\vartheta)'$ ein Polynom -in $\vartheta$ vom Grad $n$. -\end{enumerate} -\end{satz} - -Der Satz macht also genaue Aussagen darüber, wie sich der Grad eines -Polynoms in $\vartheta$ beim Ableiten ändert. - -\begin{proof}[Beweis] -Für Exponentialfunktion ist $\vartheta'=\vartheta f'$, die Ableitung -fügt also einfach einen Faktor $f'$ hinzu. -Terme der Form $A_k\vartheta^k$ haben die Ableitung -\[ -(A_k\vartheta^k) -= -A'_k\vartheta^k + A_kk\vartheta^{k-1}\vartheta' -= -A'_k\vartheta^k + A_kk\vartheta^{k-1}\vartheta f' -= -(A'_k + kA_k f)\vartheta^k. -\] -Damit wird die Ableitung des Polynoms -\begin{equation} -P(\vartheta)' -= -\underbrace{(A'_n+nA_nf')\vartheta^n}_{\displaystyle=(A_n\vartheta^n)'} -+ -(A'_{n-1}+(n-1)A_{n-1}f')\vartheta^{n-1} -+ \dots + -(A'_1+A_1f')\vartheta + A_0'. -\label{buch:integrale:ableitung:polynom} -\end{equation} -Der Grad der Ableitung kann sich also nur ändern, wenn $A_n'+nA_nf'=0$ ist. -Dies bedeutet aber wegen -\( -(A_n\vartheta^n)' -= -0 -\), dass $A_n\vartheta^n=c$ eine Konstante ist. -Da alle Konstanten bereits in $\mathscr{D}$ sind, folgt, dass -\[ -\vartheta^n=\frac{c}{A_n} -\qquad\Rightarrow\qquad -\vartheta^n - \frac{c}{A_n}=0, -\] -also wäre $\vartheta$ algebraisch über $\mathscr{D}$, also auch kein Monom. -Dieser Widerspruch zeigt, dass der Leitkoeffizient nicht verschwinden kann. - -Für die erste Aussage ist die Ableitung der einzelnen Terme des Polynoms -\[ -(A_k\vartheta^k)' -= -A_k'\vartheta^k + A_kk\vartheta^{k-1}\vartheta' -= -A_k'\vartheta^k + A_kk\vartheta^{k-1}\frac{f'}{f} -= -\biggl(A_k'\vartheta + kA_k\frac{f'}{f}\biggr)\vartheta^{k-1}. -\] -Die Ableitung des Polynoms ist daher -\[ -P(\vartheta)' -= -A_n'\vartheta^n + \biggl(nA_n\frac{f'}{f}+ A'_{n-1}\biggr)\vartheta^{n-1}+\dots -\] -Wenn $A_n$ keine Konstante ist, ist $A_n'\ne 0$ und der Grad von -$P(\vartheta)'$ ist $n$. -Wenn $A_n$ eine Konstante ist, müssen wir noch zeigen, dass der nächste -Koeffizient nicht verschwinden kann. -Wäre der zweite Koeffizient $=0$, dann wäre die Ableitung -\[ -(nA_n\vartheta+A_{n-1})' -= -nA_n\vartheta'+A'_{n-1} -= -nA_n\frac{f'}{f}+A'_{n-1} -= -0, -\] -d.h. $nA_n\vartheta+A_{n-1}=c$ wäre eine Konstante. -Da alle Konstanten schon in $\mathscr{D}$ sind, müsste auch -\[ -\vartheta = \frac{c-A_{n-1}}{nA_n} \in \mathscr{D} -\] -sein, wieder wäre $\vartheta$ kein Monom. -\end{proof} - -Der nächste Satz gibt Auskunft über den führenden Term in -$(\log P(\vartheta))' = P(\vartheta)'/P(\vartheta)$. - -\begin{satz} -\label{buch:integrale:satz:log-polynom-ableitung-grad} -Sei $P$ ein Polynom vom Grad $n$ wie in -\label{buch:integrale:satz:log-polynom-ableitung} -welches zusätzlich normiert ist, also $A_n=1$. -\begin{enumerate} -\item -\label{buch:integrale:satz:log-polynom-ableitung-log} -Ist $\vartheta=\log f$, dann ist -$(\log P(\vartheta))' = P(\vartheta)'/P(\vartheta)$ und $P(\vartheta)'$ -hat Grad $n-1$. -\item -\label{buch:integrale:satz:log-polynom-ableitung-exp} -Ist $\vartheta=\exp f$, dann gibt es ein Polynom $N(\vartheta)$ so, dass -$(\log P(\vartheta))' -= -P(\vartheta)'/P(\vartheta) -= -N(\vartheta)/P(\vartheta)+nf'$ -ist. -Falls $P(\vartheta)=\vartheta$ ist $N=0$, andernfalls ist $N(\vartheta)$ -ein Polynom vom Grad $<n$. -\end{enumerate} -\end{satz} - -\begin{proof}[Beweis] -Die Gleichung $(\log P(\vartheta))'=P(\vartheta)'/P(\vartheta)$ ist die -Definition eines Logarithmus, es geht also vor allem um die Frage -des Grades von $P(\vartheta)'$. -Da der Leitkoeffizient als $1$ und damit konstant vorausgesetzt wurde, -folgt die Behauptung \ref{buch:integrale:satz:log-polynom-ableitung-log} -aus -Aussage \ref{buch:integrale:satz:polynom-ableitung-grad-log} -von Satz~\ref{buch:integrale:satz:polynom-ableitung-grad}. - -Für Aussage \ref{buch:integrale:satz:log-polynom-ableitung-exp} -beachten wir wieder die -Ableitungsformel~\eqref{buch:integrale:ableitung:polynom} -und berücksichtigen, dass $A_n=1$ eine Konstante ist. -Da $A_n'=0$ ist, wird -\begin{align*} -P(\vartheta)' -&= -nA_n\vartheta^n f' + \text{Terme niedrigeren Grades in $\vartheta$}. -\intertext{Das Polynom $nf'P(\vartheta)$ hat den gleichen Term vom -Grad $n$, man kann also $P(\vartheta)'$ auch schreiben als} -&= -nf' -P(\vartheta) -+ -\underbrace{ -\text{Terme niedrigeren Grades in $\vartheta$}}_{\displaystyle=N(\vartheta)}. -\end{align*} -Division durch $P(\vartheta)$ ergibt die versprochene Formel. - -Im Fall $P(\vartheta)=\vartheta$ ist $n=1$ und -$(\log P(\vartheta))'=P(\vartheta)'/P(\vartheta) -= -\vartheta f'/\vartheta -= -nf'$ und somit $N(\vartheta)=0$. -\end{proof} - -\subsubsection{Partialbruchzerlegungen} -Der vorangegangene Abschnitt hat gezeigt, dass sich Monome im Sinne -der Definition~\ref{buch:integrale:def:monom} algebraisch wie eine -unabhängige Variable verhalten. -Für die Berechnung von Integralen rationaler Funktionen in einer -Variablen $x$ verwendet -man die Partialbruchzerlegung, um Brüche mit einfachen Nennern zu -erhalten. -Es liegt daher nahe, dieselbe Idee auch auf die -Monome $\vartheta_i$ zu verwenden. -Dazu muss man die Brüche besser verstehen, die in einer Partialbruchzerlegung -vorkommen können. - -Eine Partialbruchzerlegung in der Variablen $X$ setzt sich zusammen -aus Brüchen der Form -\begin{equation} -g(X) -= -\frac{P(X)}{Q(X)^r}, -\label{buch:integrale:eqn:partialbruch-quotient} -\end{equation} -wobei das Nennerpolynom $Q(X)$ ist ein normiertes irreduzibles Polynom -vom Grad $q$ und $P(X)$ ein beliebiges Polynom vom Grad $p<q$. - -Ist der Grad von $P(X)$ -im Quotienten -\eqref{buch:integrale:eqn:partialbruch-quotient} -grösser als $q$, dann kann man $P(X)$ um Vielfache von Potenzen von -$Q(X)$ reduzieren und eine Summe von Termen der Art -\eqref{buch:integrale:eqn:partialbruch-quotient} -erhalten, deren Nenner alle Grad $< q$ haben. -Die Anzahl neu enstehender Terme ist dabei ums grösser, je grösser -der Grad des Zählers ist. -Dies ist der Inhalt des folgenden Satzes. - -\begin{satz} -\label{buch:integrale:satz:partialbruch-reduktion} -Sei $Q(X)$ ein irreduzibles Polynom vom Grad $q$ und $P(X)$ ein beliebiges -Polynom vom Grad $p < (k+1)q$. -Dann gibt es Polynome $P_i(X)$, $i=0,\dots,k$, vom Grad $<q$ derart, -dass -\begin{equation} -\frac{P(X)}{Q(X)^r} -= -\sum_{i=0}^k \frac{P_i(X)}{Q(X)^{r-i}}. -\label{buch:integrale:satz:partialbruch-aufgeloest} -\end{equation} -\end{satz} - -\begin{proof}[Beweis] -Für $k=0$ ist $p<q$ und es muss nichts weiter gezeigt werden. - -Sei jetzt also $k>0$ das kleinste $k$ so, dass $p<(k+1)q$. -Insbesondere ist dann $kq\le p$. -Nach dem euklidischen Satz für die Division von $P(X)$ durch $Q(X)^k$ -gibt es ein Polynom $P_k(X)$ vom Grad $\le p-qk$ derart, dass -\[ -P(X) = P_k(X)Q(X)^k + R_k(X) -\] -mit einem Rest $R_k(X)$ vom Grad $<kq$. -Es folgt -\[ -\frac{ P(X)}{Q(X)^r} -= -\frac{P_k(X)}{Q(X)^{r-k}} -+ -\frac{R_k(X)}{Q(X)^r}. -\] -Der zweite Term ist wieder von der im Satz beschriebenen Art, allerdings -mit einem Wert von $k$, der um $1$ kleiner ist. -Durch rekursive Anwendung der gleichen Prozedur in $k$ weiteren Schritten -erhält man die Form -Das gleiche Argument kann jetzt auf das Polynom $R_k(X)$ anstelle -von $P(X)$ angewendet werden, erhalt man den Ausdruck -\eqref{buch:integrale:satz:partialbruch-aufgeloest}. -\end{proof} - -In der differentiellen Algebra $\mathscr{D}(\vartheta)$ muss man jetzt -auch Bescheid wissen über die Partialbruchzerlegung von Ableitungen solcher -Terme. - -\begin{satz} -\label{buch:integrale:satz:partialbruch-monom} -Sei $\vartheta$ ein Monom über $\mathscr{D}$ und -seien $P(\vartheta),Q(\vartheta)\in\mathscr{D}[\vartheta]$ Polynome, -wobei $Q(\vartheta)$ ein irreduzibles normiertes Polynom vom Grad $q$ -ist und $P(\vartheta)$ ein beliebiges Polynom vom Grad $p<q$. -Dann ist die Ableitung -\begin{equation} -g(\vartheta)' -= -\biggl( -\frac{P(\vartheta)}{Q(\vartheta)^r} -\biggr)' -= --r\frac{P(\vartheta)Q(\vartheta)'}{Q(\vartheta)^{r+1}} -+ -\frac{P(\vartheta)'}{Q(\vartheta)^r}. -\label{buch:integrale:eqn:partialbruch-ableitung} -\end{equation} -Falls $\vartheta=\exp f$ eine Exponentialfunktion ist und -$Q(\vartheta)=\vartheta$, dann hat die Partialbruchzerlegung von $g(X)'$ -die Form -\begin{equation} -g(\vartheta)' -= -\frac{ -{P(\vartheta)'-rP(\vartheta)f} -}{ -\vartheta^{r} -}. -\label{buch:integrale:eqn:partialbruch-ableitung-fall0} -\end{equation} -Für $Q(\vartheta)\ne \vartheta$ oder $\vartheta$ keine Exponentialfunktion -hat die Partialbruchzerlegung von $g(X)'$ die Form -\[ -g(\vartheta)' -= -\frac{R(\vartheta)}{Q(\vartheta)^{r+1}}+\frac{S(\vartheta)}{Q(\vartheta)^r} -\qquad\text{mit $R(\vartheta)\ne 0$}. -\] -\end{satz} - -\begin{proof}[Beweis] -Schreibt man den Quotienten $g(\vartheta)$ als -$g(\vartheta)=P(\vartheta)Q(\vartheta)^{-r}$, dann folgt aus -Produkt- und Potenzregel -\[ -g(\vartheta)' -= -P(\vartheta)'Q(\vartheta)^{-r} -+ -P(\vartheta)\bigl(Q(\vartheta)^{-r}\bigr)' -= -\frac{P(\vartheta)'}{Q(\vartheta)^{r}} --r\frac{P(\vartheta)Q(\vartheta)'}{Q(\vartheta)^{r+1}}, -\] -dies ist -\eqref{buch:integrale:eqn:partialbruch-ableitung}. -Auf die Ableitungen von $P(\vartheta)$ und $Q(\vartheta)$ können -jetzt die Sätze -\ref{buch:integrale:satz:polynom-ableitung-grad}, -\ref{buch:integrale:satz:log-polynom-ableitung-grad} -und -\ref{buch:integrale:satz:partialbruch-monom} -angewendet werden. -Es sind jweils zwei Dinge zu prüfen: es dürfen in der Partialbruchzerlegung -im Nenner keine Potenzen $<r$ vorkommen und wegen $R\ne 0$ muss der Nenner -$Q(\vartheta)^{r+1}$ vorkommen. - -Falls $\vartheta=\log f$ ist, ist $Q(\vartheta)'$ ein Polynom vom -Grad $q-1$ nach Satz~\eqref{buch:integrale:satz:polynom-ableitung-grad} -\ref{buch:integrale:satz:polynom-ableitung-grad-log} -und $P(\vartheta)'$ ist ein Polynom vom Grad höchstens $p$. -Der Zähler $P(\vartheta)Q(\vartheta)'$ im zweiten Term ist nicht -durch $Q(\vartheta)$ teilbar, denn weil $Q(\vartheta)$ irreduzibel -ist, müsste $Q(\vartheta)$ entweder $P(\vartheta)$ oder $Q(\vartheta)'$ -teilen, aber beide haben zu geringen Grad. - -Falls $\vartheta=\exp f$ ist, ist $Q(\vartheta)'$ ein Polynom vom -Grad $q$ und $P(\vartheta)'$ ist eine Polynom vom Grad $p$. -Der Grad von $P(\vartheta)Q(\vartheta)'$ ist $<2q$, daher -werden nach -Satz~\ref{buch:integrale:satz:partialbruch-reduktion} -keine Nenner mit kleinerem Exponenten als $r$ auftreten. -Es ist noch zu prüfen, ob $Q(\vartheta)$ den Nenner des zweiten Termes -von~\eqref{buch:integrale:eqn:partialbruch-ableitung} teilt. -Nehmen wir $Q(\vartheta)\mid P(\vartheta)Q(\vartheta)'$ an, dann muss -$Q(\vartheta)\mid Q(\vartheta)'$ sein. -Für -\[ -Q(\vartheta) = \vartheta^q + q_{q-1}\vartheta^{q-1} + \dots -\] -ist die Ableitung -\[ -Q(\vartheta)' -= -q\vartheta^q f' -+ -\dots -\] -und damit -\[ -\frac{Q(\vartheta)'}{Q(\vartheta)} -= -qf'. -\] -Andererseits ist in der -Aussage~\label{buch:integrale:satz:log-polynom-ableitung-exp} -von -Satz~\ref{buch:integrale:satz:log-polynom-ableitung-grad} -angewendet auf das Polynom $Q(\vartheta)$ das Polynom $N(\vartheta)=0$, -und daher muss $Q(\vartheta)=\vartheta$ und $q=1$ sein. -Dies ist der einzige Ausnahmefall, in die Partialbruchzerlegung die Form -\eqref{buch:integrale:eqn:partialbruch-ableitung-fall0} -annimmt. -\end{proof} - -Der Satz besagt also, dass in fast allen Fällen die einzelnen Terme -der Partialbruchzerlegung der Ableitungen wieder von der gleichen -Form sind. - -\subsection{Der Satz von Liouville -\label{buch:integrale:section:liouville}} -Die Funktion -\[ -f(z) = \frac{(z+1)^2}{(z-1)^3} \in \mathbb{C}(z) = \mathscr{D} -\] -kann mit Hilfe der Partialbruchzerlegung -\[ -f(z) -= -\frac{1}{z-1} -+ -\frac{4}{(z-1)^2} -+ -\frac{4}{(z-1)^3} -\] -integriert werden. -Die Integranden $(z-1)^{-k}$ mit $k>1$ können mit der Potenzregel -integriert werden, aber für eine Stammfunktion $1/(z-1)$ muss -der Logarithmus $\log(z-1)$ hinzugefügt werden. -Die Stammfunktion -\[ -\int f(z)\,dz -= -\int -\frac{1}{z-1} -\,dz -+ -\int -\frac{4}{(z-1)^2} -\,dz -+ -\int -\frac{4}{(z-1)^3} -\,dz -= -\log(z-1) -- -\underbrace{\frac{4z-2}{(z-1)^2}}_{\displaystyle\in\mathscr{D}} -\in \mathscr{D}(\log(z-1)) = \mathscr{F} -\] -hat eine sehr spezielle Form. -Sie besteht aus einem Term in $\mathscr{D}$ und einem Logarithmus -einer Funktion von $\mathscr{D}$, also einem Monom über $\mathscr{D}$. - -\subsubsection{Einfach elementare Stammfunktionen} -Der in diesem Abschnitt zu beweisende Satz von Liouville zeigt, -dass die im einführenden Beispiel konstruierte Form der Stammfunktion -eine allgemeine Eigenschaft elementar integrierbarer -Funktionen ist. -Zunächst aber soll dieses Bespiel etwas verallgemeinert werden. - -\begin{satz}[Liouville-Vorstufe für Monome] -\label{buch:integrale:satz:liouville-vorstufe-1} -Sei $\vartheta$ ein Monom über $\mathscr{D}$ und $g\in\mathscr{D}(\vartheta)$ -mit $g'\in\mathscr{D}$. -Dann hat $g$ die Form $v_0 + c_1\vartheta$ mit $v_0\in\mathscr{D}$ und -$c_1\in\mathbb{C}$. -\end{satz} - -\begin{proof}[Beweis] -In Anlehnung an das einführende Beispiel nehmen wir an, dass die -Stammfunktion $g\in\mathscr{D}[\vartheta]$ für ein Monom $\vartheta$ -über $\mathscr{D}$ ist. -Dann hat $g$ die Partialbruchzerlegung -\[ -g -= -H(\vartheta) -+ -\sum_{j\le r(i)} \frac{P_{ij}(\vartheta)}{Q_i(\vartheta)^j} -\] -mit irreduziblen normierten Polynomen $Q_i(\vartheta)$ und -Polynomen $P_{ij}(\vartheta)$ vom Grad kleiner als $\deg Q_i(\vartheta)$. -Ausserdem ist $H(\vartheta)$ ein Polynom. -Die Ableitung von $g$ muss jetzt aber wieder in $\mathscr{D}$ sein. -Zu ihrer Berechnung können die Sätze -\ref{buch:integrale:satz:polynom-ableitung-grad}, -\ref{buch:integrale:satz:log-polynom-ableitung-grad} -und -\ref{buch:integrale:satz:partialbruch-monom} -verwendet werden. -Diese besagen, dass in der Partialbruchzerlegung die Exponenten der -Nenner die Quotienten in der Summe nicht kleiner werden. -Die Ableitung $g'\in\mathscr{D}$ darf aber gar keine Nenner mit -$\vartheta$ enthalten, also dürfen die Quotienten gar nicht erst -vorkommen. -$g=H(\vartheta)$ muss also ein Polynom in $\vartheta$ sein. -Die Ableitung des Polynoms darf wegen $g'\in\mathscr{d}$ das Monom -$\vartheta$ ebenfalls nicht mehr enthalten, daher kann es höchstens vom -Grad $1$ sein. -Nach Satz~\ref{buch:integrale:satz:log-polynom-ableitung-grad} -muss ausserdem der Leitkoeffizient von $g$ eine Konstante sein, -das Polynom hat also genau die behauptete Form. -\end{proof} - -\begin{satz}[Liouville-Vorstufe für algebraische Elemente] -\label{buch:integrale:satz:liouville-vorstufe-2} -Sei $\vartheta$ algebraische über $\mathscr{D}$ und -$g\in\mathscr{D}(\vartheta)$ mit $g'\in\mathscr{D}$. -\end{satz} - -\subsubsection{Elementare Stammfunktionen} -Nach den Vorbereitungen über einfach elementare Stammfunktionen -in den Sätzen~\label{buch:integrale:satz:liouville-vorstufe-1} -und -\label{buch:integrale:satz:liouville-vorstufe-2} sind wir jetzt -in der Lage, den allgemeinen Satz von Liouville zu formulieren -und zu beweisen. - -\begin{satz}[Liouville] -Sei $\mathscr{D}$ ein Differentialkörper, $\mathscr{F}$ einfach über -$\mathscr{D}$ mit gleichem Konstantenkörper $\mathbb{C}$. -Wenn $g\in \mathscr{F}$ eine Stammfunktion von $f\in\mathscr{D}$ ist, -also $g'=f$, dann gibt es Zahlen $c_i\in\mathbb{C}$ und -$v_0,v_i\in\mathscr{D}$ derart, dass -\begin{equation} -g = v_0 + \sum_{i=1}^k c_i \log v_i -\qquad\Rightarrow\qquad -g' = v_0' + \sum_{i=1}^k c_i \frac{v_i'}{v_i} = f -\label{buch:integrale:satz:liouville-fform} -\end{equation} -gilt. -\end{satz} - -Der Satz hat zur Folge, dass eine elementare Stammfunktion für $f$ -nur dann existieren kann, wenn sich $f$ in der speziellen Form -\eqref{buch:integrale:satz:liouville-fform} -schreiben lässt. -Die Aufgabe~\ref{buch:integrale:aufgabe:existenz-stammfunktion-dalg} -lässt sich damit jetzt lösen. - - -\begin{proof}[Beweis] -Wenn die Stammfunktion $g\in\mathscr{D}$ ist, dann hat $g$ die Form -\eqref{buch:integrale:satz:liouville-fform} mit $v_0=g$, die Summe -wird nicht benötigt. - -Wir verwenden Induktion nach der Anzahl der Elemente, die zu $\mathscr{D}$ -hinzugefügt werden müssen, um einen Differentialkörper -$\mathscr{F}=\mathscr{D}(\vartheta_1,\dots,\vartheta_n)$ zu konstruieren, -der $g$ enthält. -Da $f\in\mathscr{D}\subset\mathscr{D}(\vartheta_1)$ ist, können wir die -Induktionsannahme auf die Erweiterung -\[ -\mathscr{D}(\vartheta_1)\subset\mathscr{D}(\vartheta_1,\vartheta_2) -\subset\cdots\subset \mathscr{D}(\vartheta_1,\cdots,\vartheta_n)=\mathscr{F} -\] -anwenden, die durch Hinzufügen von nur $n-1$ Elemente -$\vartheta_2,\dots,\vartheta_n$ aus $\mathscr{D}(\vartheta_1)$ den -Differentialkörper $\mathscr{F}$ erreicht, der $g$ enthält. -Sie besagt, dass sich $g$ schreiben lässt als -\[ -g = w_0 + \sum_{i=1}^{k_1} c_i\log w_i -\qquad\text{mit $c_i\in\mathbb{C}$ und $w_0,w_i\in\mathscr{D}(\vartheta_1)$.} -\] -Wir müssen jetzt zeigen, dass sich dieser Ausdruck umformen lässt -in den Ausdruck der Form~\eqref{buch:integrale:satz:liouville-fform}. - -Der Term $w_0\in\mathscr{D}(\vartheta_1)$ hat eine Partialbruchzerlegung -\[ -H(\vartheta_1) -+ -\sum_{j\le r(l)} \frac{P_{lj}(\vartheta_1)}{Q_l(\vartheta_1)^j} -\] -in der Variablen $\vartheta_1$. - -Da $w_i\in\mathscr{D}(\vartheta_1)$ ist, kann man Zähler und Nenner -von $w_i$ als Produkt irreduzibler normierter Polynome schreiben: -\[ -w_i -= -\frac{h_i Z_{i1}(\vartheta_1)^{s_{i1}}\cdots Z_{im(i)}^{s_{im(i)}} -}{ -N_{i1}(\vartheta_1)^{t_{i1}}\cdots N_{in(i)}(\vartheta_1)^{t_{in(i)}} -} -\] -Der Logarithmus hat die Form -\begin{align*} -\log w_i -&= \log h_i + -s_{i1} -\log Z_{i1}(\vartheta_1) -+ -\cdots -+ -s_{im(i)} -\log Z_{im(i)} -- -t_{i1} -\log -N_{i1}(\vartheta_1) -- -\cdots -- -t_{in(i)} -\log -N_{in(i)}(\vartheta_1). -\end{align*} -$g$ kann also geschrieben werden als eine Summe von Polynomen, Brüchen, -wie sie in der Partialbruchzerlegung vorkommen, Logarithmen von irreduziblen -normierten Polynomen und Logarithmen von Elementen von $\mathscr{D}$. - -Die Ableitung $g'$ muss jetzt aber wieder in $\mathscr{D}$ sein, beim -Ableiten müssen also alle Terme verschwinden, die $\vartheta_1$ enthalten. -Dabei spielt es eine Rolle, ob $\vartheta_1$ ein Monom oder algebraisch ist. -\begin{enumerate} -\item -Wenn $\vartheta_1$ ein Monom ist, dann kann man wie im Beweis des -Satzes~\ref{buch:integrale:satz:liouville-vorstufe-1} argumentieren, -dass die Brüchterme gar nicht vorkommen und -$H(\vartheta_1)=v_0+c_1\vartheta_1$ sein muss. -Die Ableitung Termen der Form $\log Z(\vartheta_1)$ ist ein Bruchterm -mit dem irreduziblen Nenner $Z(\vartheta_1)$, die ebenfalls verschwinden -müssen. -Ist $\vartheta_1$ eine Exponentialfunktion, dann ist -$\vartheta_1' \in \mathscr{D}(\vartheta_1)\setminus\mathscr{D}$, also muss -$c_1=0$ sein. -Ist $\vartheta_1$ ein Logarithmus, also $\vartheta_1=\log v_1$, dann -kommen nur noch Terme der in -\eqref{buch:integrale:satz:liouville-fform} -erlaubten Form vor. - -\item -Wenn $\vartheta_1$ algebraisch vom Grad $m$ ist, dann ist -\[ -g' = w_0' + \sum_{i=1}^{k_1} d_i\frac{w_i'}{w_i} = f. -\] -Weder $w_0$ noch $\log w_i$ sind in $\mathscr{D}(\vartheta_1)$. -Aber wenn man $\vartheta_1$ durch die $m$ konjugierten Elemente -ersetzt und alle summiert, dann ist -\[ -mf -= -\operatorname{Tr}(w_0) + \sum_{i=1}^{k_1} d_i \log\operatorname{Norm}(w_i). -\] -Da die Spur und die Norm in $\mathscr{D}$ sind, folgt, dass -\[ -f -= -\underbrace{\frac{1}{m} -\operatorname{Tr}(w_0)}_{\displaystyle= v_0} -+ -\sum_{i=1}^{k_1} \underbrace{\frac{d_i}{m}}_{\displaystyle=c_i} -\log -\underbrace{ \operatorname{Norm}(w_i)}_{\displaystyle=v_i} -= -v_0 + \sum_{i=1}^{k_1} c_i\log v_i -\] -die verlangte Form hat. -\qedhere -\end{enumerate} -\end{proof} - -\subsection{Die Fehlerfunktion ist keine elementare Funktion -\label{buch:integrale:section:fehlernichtelementar}} -% \url{https://youtu.be/bIdPQTVF5n4} -Mit Hilfe des Satzes von Liouville kann man jetzt beweisen, dass -die Fehlerfunktion keine elementare Funktion ist. -Dazu braucht man die folgende spezielle Form des Satzes. - -\begin{satz} -\label{buch:integrale:satz:elementarestammfunktion} -Wenn $f(x)$ und $g(x)$ rationale Funktionen von $x$ sind, dann -ist die Stammfunktion von $f(x)e^{g(x)}$ genau dann eine -elementare Funktion, wenn es eine rationale Funktion gibt, die -Lösung der Differentialgleichung -\[ -r'(x) + g'(x)r(x)=f(x) -\] -ist. -\end{satz} - -\begin{satz} -Die Funktion $x\mapsto e^{-x^2}$ hat keine elementare Stammfunktion. -\label{buch:iintegrale:satz:expx2} -\end{satz} - -\begin{proof}[Beweis] -Unter Anwendung des Satzes~\ref{buch:integrale:satz:elementarestammfunktion} -auf $f(x)=1$ und $g(x)=-x^2$ folgt, $e^{-x^2}$ genau dann eine rationale -Stammfunktion hat, wenn es eine rationale Funktion $r(x)$ gibt, die -Lösung der Differentialgleichung -\begin{equation} -r'(x) -2xr(x)=1 -\label{buch:integrale:expx2dgl} -\end{equation} -ist. - -Zunächst halten wir fest, dass $r(x)$ kein Polynom sein kann. -Wäre nämlich -\[ -r(x) -= -a_0 + a_1x + \dots + a_nx^n -= -\sum_{k=0}^n a_kx^k -\quad\Rightarrow\quad -r'(x) -= -a_1 + 2a_2x + \dots + na_nx^{n-1} -= -\sum_{k=1}^n -ka_kx^{k-1} -\] -ein Polynom, dann ergäbe sich beim Einsetzen in die Differentialgleichung -\begin{align*} -1 -&= -r'(x)-2xr(x) -\\ -&= -a_1 + 2a_2x + 3a_3x^2 + \dots + (n-1)a_{n-1}x^{n-2} + na_nx^{n-1} -\\ -&\qquad -- -2a_0x -2a_1x^2 -2a_2x^3 - \dots - 2a_{n-1}x^n - 2a_nx^{n+1} -\\ -& -\hspace{0.7pt} -\renewcommand{\arraycolsep}{1.8pt} -\begin{array}{crcrcrcrcrcrcrcr} -=&a_1&+&2a_2x&+&3a_3x^2&+&\dots&+&(n-1)a_{n-1}x^{n-2}&+&na_{n }x^{n-1}& & & & \\ - & &-&2a_0x&-&2a_1x^2&-&\dots&-& 2a_{n-3}x^{n-2}&-&2a_{n-2}x^{n-1}&-&2a_{n-1}x^n&-&2a_nx^{n+1} -\end{array} -\\ -&= -a_1 -+ -(2a_2-2a_0)x -+ -(3a_3-2a_1)x^2 -%+ -%(4a_4-2a_2)x^3 -+ -\dots -+ -(na_n-2a_{n-2})x^{n-1} -- -2a_{n-1}x^n -- -2a_nx^{n+1}. -\end{align*} -Koeffizientenvergleich zeigt, dass $a_1=1$ sein muss. -Aus den letzten zwei Termen liest man ebenfalls mittels Koeffizientenvergleich -ab, dass $a_n=0$ und $a_{n-1}=0$ sein müssen. -Aus den Koeffizienten $(ka_k-2a_{k-2})=0$ folgt, dass -$a_{k-2}=\frac{k}{2}a_k$ für alle $k>1$ sein muss, diese Koeffizienten -verschwinden also auch, inklusive $a_1=0$. -Dies ist allerdings im Widerspruch zu $a_1=1$. -Es folgt, dass $r(x)$ kein Polynom sein kann. - -Der Nenner der rationalen Funktion $r(x)$ hat also mindestens eine Nullstelle -$\alpha$, man kann daher $r(x)$ auch schreiben als -\[ -r(x) = \frac{s(x)}{(x-\alpha)^n}, -\] -wobei die rationale Funktion $s(x)$ keine Nullstellen und keine Pole hat. -Einsetzen in die Differentialgleichung ergibt: -\[ -1 -= -r'(x) -2xr(x) -= -\frac{s'(x)}{(x-\alpha)^n} --n -\frac{s(x)}{(x-\alpha)^{n+1}} -- -\frac{2xs(x)}{(x-\alpha)^n}. -\] -Multiplizieren mit $(x-\alpha)^{n+1}$ gibt -\[ -(x-\alpha)^{n+1} -= -s'(x)(x-\alpha) -- -ns(x) -- -2xs(x)(x-\alpha) -\] -Setzt man $x=\alpha$ ein, verschwinden alle Terme ausser dem mittleren -auf der rechten Seite, es bleibt -\[ -ns(\alpha) = 0. -\] -Dies widerspricht aber der Wahl der rationalen Funktion $s(x)$, für die -$\alpha$ keine Nullstelle ist. - -Somit kann es keine rationale Funktion $r(x)$ geben, die eine Lösung der -Differentialgleichung~\eqref{buch:integrale:expx2dgl} ist und -die Funktion $e^{-x^2}$ hat keine elementare Stammfunktion. -\end{proof} - -Der Satz~\ref{buch:iintegrale:satz:expx2} rechtfertigt die Einführung -der Fehlerfunktion $\operatorname{erf}(x)$ als neue spezielle Funktion, -mit deren Hilfe die Funktion $e^{-x^2}$ integriert werden kann. - - - +\rhead{Differentialkörper} +Die Einführung einer neuen Funktion $\operatorname{erf}(x)$ wurde +durch die Behauptung gerechtfertigt, dass es für den Integranden +$e^{-x^2}$ keine Stammfunktion in geschlossener Form gäbe. +Die Fehlerfunktion ist bei weitem nicht die einzige mit dieser +Eigenschaft. +Doch woher weiss man, dass es keine solche Funktion gibt, und +was heisst überhaupt ``Stammfunktion in geschlossener Form''? +In diesem Abschnitt wird daher ein algebraischer Rahmen entwickelt, +in dem diese Frage sinnvoll gestellt werden kann. +Das ultimative Ziel, welches aber erst in +Abschnitt~\ref{buch:integral:section:risch} in Angriff genommen +wird, ist ein Computer-Algorithmus, der Integrale in geschlossener +Form findet oder beweist, dass dies für einen gegebenen Integranden +nicht möglich ist. + +\input{chapters/060-integral/rational.tex} +\input{chapters/060-integral/erweiterungen.tex} +\input{chapters/060-integral/diffke.tex} +\input{chapters/060-integral/iproblem.tex} +\input{chapters/060-integral/irat.tex} +\input{chapters/060-integral/sqrat.tex} diff --git a/buch/chapters/060-integral/differentialkoerper2.tex b/buch/chapters/060-integral/differentialkoerper2.tex new file mode 100644 index 0000000..f41d3ba --- /dev/null +++ b/buch/chapters/060-integral/differentialkoerper2.tex @@ -0,0 +1,1953 @@ +% +% differentialalgebren.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\section{Differentialkörper und der Satz von Liouville +\label{buch:integrale:section:dkoerper}} +\rhead{Differentialkörper und der Satz von Liouville} +Das Problem der Darstellbarkeit eines Integrals in geschlossener +Form verlangt zunächst einmal nach einer Definition dessen, was man +als ``geschlossene Form'' akzeptieren will. +Die sogenannten {\em elementaren Funktionen} von +Abschnitt~\ref{buch:integrale:section:elementar} +bilden dafür den theoretischen Rahmen. +Das Problem ist dann die Frage zu beantworten, ob ein Integral eine +Stammfunktion hat, die eine elementare Funktion ist. +Der Satz von Liouville von Abschnitt~\ref{buch:integrale:section:liouville} +löst das Problem. + +\subsection{Eine Analogie +\label{buch:integrale:section:analogie}} +% XXX Analogie: Formel für Polynom-Nullstellen +% XXX Stammfunktion als elementare Funktion +Das Analysis-Problem, eine Stammfunktion zu finden, ist analog zum +wohlbekannten algebraischen Problem, Nullstellen von Polynomen zu finden. +Wir entwickeln diese Analogie in etwas mehr Detail, um zu sehen, ob man +aus dem algebraischen Problem etwas über das Problem der Analysis +lernen kann. + +Für ein Polynom $p(X) = a_nX^n+a_{n-1}X^{n-1}+\dots+a_1X+a_0\in\mathbb{C}[X]$ +mit Koeffizienten $a_k\in\mathbb{C}$ ist es sehr einfach, für jede beliebige +komplexe Zahl $z\in\mathbb{C}$ den Wert $p(z)$ des Polynoms auszurechnen. +Ein paar wenige Rechenregeln genügen dazu, man kann leicht einem Kind +beibringen, mit einem Taschenrechner so einen Wert auszurechnen. + +Ähnlich sieht es mit der Ableitungsoperation aus. +Einige wenige Ableitungsregeln, die man in der Analysis~I lernt, +erlauben, auf mehr oder weniger mechanische Art und Weise, jede +beliebige Funktion abzuleiten. +Man kann auch leicht einen Computer dazu programmieren, solche Ableitungen +symbolisch zu berechnen. + +Aus dem Fundamentalsatz der Algebra, der von Gauss vollständig bewiesen +wurde, ist bekannt, dass jedes Polynom mit Koeffizienten in $\mathbb{C}$ +genau so viele Lösungen in $\mathbb{C}$, wie der Grad des Polynoms angibt. +Dies ist aber ein Existenzsatz, er sagt nichts darüber aus, wie man diese +Lösungen finden kann. +In Spezialfällen, wie zum Beispiel für quadratische Polynome, gibt +es spezialsierte Lösungsverfahren, mit denen man Lösungen angeben kann. +Natürlich existieren numerische Methoden wie zum Beispiel das +Newton-Verfahren, mit dem man Nullstellen von Polynomen beliebig genau +bestimmen kann. + +Der Fundamentalsatz der Integralrechnung besagt, dass jede stetige +Funktion eine Stammfunktion hat, die bis auf eine Konstante eindeutig +bestimmt ist. +Auch dieser Existenzsatz gibt keinerlei Hinweise darauf, wie man die +Stammfunktion finden kann. +In der Analysis-Vorlesung lernt man viele Tricks, die in einer +beindruckenden Zahl von Spezialfällen ermöglichen, ein passende +Funktion anzugeben. +Man lernt auch numerische Verfahren kennen, mit denen sich Werte der +Stammfunktion, also bestimmte Integrale, mit beliebiger Genauigkeit +finden kann. + +Die numerische Lösung des Nullstellenproblems ist insofern unbefriedigend, +als sie nur schwer eine Diskussion der Abhängigkeit der Nullstellen von +den Koeffizienten des Polynoms ermöglichen. +Eine Formel wie die Lösungsformel für die quadratische Gleichung +stellt genau für solche Fälle ein ideales Werkzeug bereit. +Was man sich also wünscht ist nicht nur einfach eine Lösung, sondern eine +einfache Formel zur Bestimmung aller Lösungen. +Im Zusammenhang mit algebraischen Gleichungen erwartet man eine Formel, +in der nur arithmetische Operationen und Wurzeln vorkommen. +Für quadratische Gleichungen ist so eine Formel seit dem Altertum bekannt, +Formeln für die kubische Gleichung und die Gleichung vierten Grades wurden +im 16.~Jahrhundert von Cardano bzw.~Ferrari gefunden. +Erst viel später haben Abel und Ruffini gezeigt, dass so eine allgemeine +Formel für Polynome höheren Grades als 4 nicht existiert. +Die Galois-Theorie, die auf den Ideen von Évariste Galois beruht, +stellt eine vollständige Theorie unter anderem für die Lösbarkeit +von Gleichungen durch Wurzelausdrücke dar. + +Numerische Integralwerte haben ebenfalls den Nachteil, dass damit +Diskussionen wie die Abhängigkeit von Parametern eines Integranden +nur schwer möglich sind. +Was man sich daher wünscht ist eine Formel für die Stammfunktion, +die Werte als Zusammensetzung gut bekannter Funktionen wie der Exponential- +und Logarithmus-Funktionen oder der trigonometrischen Funktionen +sowie Wurzeln, Potenzen und den arithmetischen Operationen. +Man sagt, man möchte die Stammfunktion in ``geschlossener Form'' +dargestellt haben. +Tatsächlich ist dieses Problem auch zu Beginn des 19.~Jahrhunderts +von Joseph Liouville genauer untersucht worden. +Er hat zunächst eine Klasse von ``elementaren Funktionen'' definiert, +die als Darstellungen einer Stammfunktion in Frage kommen. +Der Satz von Liouville besagt dann, dass nur Funktionen mit einer +ganz speziellen Form eine elementare Stammfunktion haben. +Damit wird es möglich, zu entscheiden, ob ein Integrand wie $e^{-x^2}$ +eine elementare Stammfunktion hat. +Seit dieser Zeit weiss man zum Beispiel, dass die Fehlerfunktion nicht +mit den bekannten Funktionen dargestellt werden kann. + +Mit dem Aufkommen der Computer und vor allem der Computer-Algebra-System (CAS) +wurde die Frage nach der Bestimmung einer Stammfunktion erneut aktuell. +Die ebenfalls weiter entwickelte abstrakte Algebra hat ermöglicht, die +Ideen von Liouville in eine erweiterte, sogenannte differentielle +Galois-Theorie zu verpacken, die eine vollständige Lösung des Problems +darstellt. +Robert Henry Risch hat in den Sechzigerjahren auf dieser Basis +einen Algorithmus entwickelt, mit dem es möglich wird, zu entscheiden, +ob eine Funktion eine elementare Stammfunktion hat und diese +gegebenenfalls auch zu finden. +Moderne CAS implementieren diesen Algorithmus +in Teilen, besonders weit zu gehen scheint das quelloffene System +Axiom. + +Der Risch-Algorithmus hat allerdings eine Achillesferse: er benötigt +eine Method zu entscheiden, ob zwei Ausdrücke übereinstimmen. +Dies ist jedoch ein im Allgemeinen nicht entscheidbares Problem. +Moderne CAS treiben einigen Aufwand, um die +Gleichheit von Ausdrücken zu entscheiden, sie können das Problem +aber grundsätzlich nicht vollständig lösen. +Damit kann der Risch-Algorithmus in praktischen Anwendungen das +Stammfunktionsproblem ebenfalls nur mit Einschränkungen lösen, +die durch die Fähigkeiten des Ausdrucksvergleichs in einem CAS +gesetzt werden. + +Im Folgenden sollen elementare Funktionen definiert werden, es sollen +die Grundideen der differentiellen Galois-Theorie zusammengetragen werden +und der Satz von Liouvill vorgestellt werden. +An Hand der Fehler-Funktion soll dann gezeigt werden, wie man jetzt +einsehen kann, dass die Fehlerfunktion nicht elementar darstellbar ist. +Im nächsten Abschnitt dann soll der Risch-Algorithmus skizziert werden. + +\subsection{Elementare Funktionen +\label{buch:integrale:section:elementar}} +Es soll die Frage beantwortet werden, welche Stammfunktionen sich +in ``geschlossener Form'' oder durch ``wohlbekannte Funktionen'' +ausdrücken lassen. +Welche Funktionen dabei als ``wohlbekannt'' gelten dürfen ist +ziemlich willkürlich. +Sicher möchte man Potenzen und Wurzeln, Logarithmus und Exponentialfunktion, +aber auch die trigonometrischen Funktionen dazu zählen dürfen. +Ausserdem will man beliebig mit den arithmetischen Operationen +rechnen. +So entsteht die Menge der Funktionen, die man ``elementar'' nennen +will. + +In der Menge der elementaren Funktionen möchte man jetzt +Stammfunktionen ausgewählter Funktionen suchen. +Dazu muss man von jeder Funktion ihre Ableitung kennen. +Die Ableitungsoperation macht aus der Funktionenmenge eine +differentielle Algebra. +Der Satz von Liouville (Satz~\ref{buch:integrale:satz:liouville1}) +liefert Bedingungen, die erfüllt sein müssen, wenn eine Funktion +eine elementare Stammfunktion hat. +Sind diese Bedingungen nicht erfüllbar, ist auch keine +elementare Stammfunktion möglich. + +In den folgenden Abschnitten soll die differentielle Algebra +der elementaren Funktionen konstruiert werden. + +\subsubsection{Körper} +Die einfachsten Funktionen sind die die Konstanten, für die wir +für die nachfolgenden Betrachtungen fast immer die komplexen Zahlen +$\mathbb{C}$ +zu Grunde legen wollen. +Dabei ist vor allem wichtig, dass sich darin alle arithmetischen +Operationen durchführen lassen mit der einzigen Ausnahme, dass +nicht durch $0$ dividiert werden darf. +Man nennt $\mathbb{C}$ daher ein {\em Körper}. +\index{Körper}% +\label{buch:integrale:def:koerper} + +\subsubsection{Polynome und rationale Funktionen} +Die Polynome einer Variablen beschreiben eine Menge von +Funktionen, in der Addition, Subtraktion, Multiplikation +von Funktionen und Multiplikation mit komplexen Zahlen +uneingeschränkt möglich ist. +Wir bezeichen wie früher die Menge der Polynome in $z$ mit +$\mathbb{C}[z]$. + +Die Division ist erst möglich, wenn man beliebige Brüche +zulässt, deren Zähler und Nenner Polynome sind. +Die Menge +\[ +\mathbb{C}(z) += +\biggl\{ +\frac{p(z)}{q(z)} +\;\bigg|\; +p,q\in \mathbb{C}[z] +\biggr\} +\] +heisst die Menge der {\em rationalen Funktionen}. +\label{buch:integrale:def:rationalefunktion} +\index{Funktion, rationale}% +\index{rationale Funktion}% +In ihr sind jetzt alle arithmetischen Operationen ausführbar +ausser natürlich die Division durch die Nullfunktion. +Die rationalen Funktionen bilden also wieder eine Körper. + +Die Tatsache, dass die rationalen Funktionen einen Körper +bilden bedeutet auch, dass die Konstruktion erneut durchgeführt +werden kann. +Ausgehend von einem beliebigen Körper $K$ können wieder zunächst +die Polynome $K[X]$ und anschliesen die rationalen Funktionen $K[X]$ +in der neuen Variablen, jetzt aber mit Koeffizienten in $K$ +gebildet werden. +So entstehen Funktionen von mehreren Variablen und, indem +wir für die neue Variable $X$ zum Beispiel die im übernächsten +Abschnitt betrachtete Wurzel $X=\sqrt{z}$ +einsetzen, rationale Funktionen in $z$ und $\sqrt{z}$. + +Solche Funktionenkörper werden im folgenden mit geschweiften +Buchstaben $\mathscr{D}$ bezeichnet. +\index{Funktionenkörper}% + +\subsubsection{Ableitungsoperation} +In allen Untersuchungen soll immer die Ableitungsoperation +mit berücksichtigt werden. +In unserer Betrachtungsweise spielt es keine Rolle, dass die +Ableitung aus einem Grenzwert entsteht, es sind nur die algebraischen +Eigenschaften wichtig. +Diese sind in der folgenden Definition zusammengefasst. + +\begin{definition} +\label{buch:integrale:def:derivation} +Ein {\em Ableitungsoperator} oder eine {\em Derivation} einer Algebra +$\mathscr{D}$ von Funktionen ist eine lineare Abbildung +\[ +\frac{d}{dz} +\colon \mathscr{D} \to \mathscr{D} +: +f \mapsto \frac{df}{dz} = f', +\] +die zusätzlich die Produktregel +\begin{equation} +\frac{d}{dz} (fg) += +\frac{df}{dz} \cdot g + f \cdot \frac{dg}{dz} +\qquad\Leftrightarrow\qquad +(fg)' = f' g + fg' +\label{buch:integrale:eqn:produktregel} +\end{equation} +\index{Produktregel}% +erfüllt. +Die Funktion $f'\in \mathscr{D}$ heisst auch die {\em Ableitung} +von $f\in\mathscr{D}$. +\index{Derivation}% +\index{Ableitungsoperator}% +\index{Ableitung}% +\end{definition} + +Die Produktregel hat zum Beispiel auch die bekannten Quotientenregel +zur Folge. +Dazu betrachten wir das Produkt $f= (f/g)\cdot g$ und leiten es mit +Hilfe der Produktregel ab: +\[ +\frac{d}{dz}f += +\frac{d}{dz} +\biggl( +\frac{f}{g}\cdot g +\biggr) += +{\color{darkred} +\frac{d}{dz} +\biggl( +\frac{f}{g} +\biggr)} +\cdot g ++ +\frac{f}{g}\cdot \frac{d}{dz}g. +\] +Jetzt lösen wir nach der {\color{darkred}roten} Ableitung des Quotienten +auf und erhalten +\begin{equation} +\biggl(\frac{f}{g}\biggr)' += +\frac{d}{dz}\biggl(\frac{f}{g}\biggr) += +\frac1g\biggl( +\frac{d}{dz}f - \frac{f}{g}\cdot \frac{d}{dz}g +\biggr) += +\frac{1}{g} +\biggl( +f'-\frac{fg'}{g} +\biggr) += +\frac{f'g-fg'}{g^2}. +\label{buch:integrale:eqn:quotientenregel} +\end{equation} +Dies ist die Quotientenregel. + +Aus der Produktregel folgt natürlich sofort auch die Potenzregel +für die Ableitung der $n$ten Potenz einer Funktion $f\in\mathscr{D}$, +sie lautet: +\begin{equation} +\frac{d}{dz} f^n += +\underbrace{ +f'f^{n-1} + ff'f^{n-2} + f^2f'f^{n-3}+\dots f^{n-1}f' +}_{\displaystyle \text{$n$ Terme}} += +nf^{n-1}f'. +\label{buch:integrale:eqn:potenzregel} +\end{equation} +In dieser Form versteckt sich natürlich auch die Kettenregel, die +Potenzfunktion ist die äussere Funktion, $f$ die innere, $f'$ ist also +die Ableitung er inneren Funktion, wie in der Kettenregel verlangt. +Falls $f$ ein Element von $\mathscr{D}$ ist mit der Eigenschaft +$df/dz=1$, dann entsteht die übliche Produktregel. + +\begin{definition} +Eine Algebra $\mathscr{D}$ von Funktionen mit einem Ableitungsoperator +$d/dz$ heisst eine {\em differentielle Algebra}. +\index{differentielle Algebra}% +\index{Algebra, differentielle}% +In einer differentiellen Algebra gelten die üblichen +Ableitungsregeln. +\end{definition} + +Die Potenzregel war in der Form~\eqref{buch:integrale:eqn:potenzregel} +geschrieben worden, nicht als die Ableitung von $z$. +Der Grund dafür ist, dass wir gar nicht voraussetzen wollen, dass in +unserer differentiellen Algebra eine Funktion existiert, die die +Rolle von $z$ hat. +Dies ist gar nicht nötig, wie das folgende Beispiel zeigt. + +\begin{beispiel} +Als Funktionenmenge $\mathscr{D}$ nehmen wir rationale Funktionen +in zwei Variablen, die wir $\cos x $ und $\sin x$ nennen. +Diese Menge bezeichnen wir mit +$\mathscr{D}=\mathbb{Q}(\cos x,\sin x)$ +Der Ableitungsoperator ist +\begin{align*} +\frac{d}{dx} \cos x &= -\sin x +\\ +\frac{d}{dx} \sin x &= \phantom{-}\cos x. +\end{align*} +Die Funktionen von $\mathbb{Q}(\cos x,\sin x)$ sind also Brüche, +deren Zähler und Nenner Polynome in $\cos x$ und $\sin x$ sind. +Aus den Produkt- und Quotientenregeln und den Ableitungsregeln für +$\cos x$ und $\sin x$ folgt, dass die Ableitung einer Funktion in +$\mathscr{D}$ wieder in $\mathscr{D}$ ist, $\mathscr{D}$ ist eine +differentielle Algebra. +\end{beispiel} + +Die konstanten Funktionen spielen eine besondere Rolle. +Da wir bei der Ableitung nicht von der Vorstellung einer +Funktion mit einem variablen Argument ausgehen wollten und +die Ableitung nicht als Grenzwert definieren wollten, müssen +wir auch bei der Definition der ``Konstanten'' einen neuen +Weg gehen. +In der Analysis sind die Konstanten genau die Funktionen, +deren Ableitung $0$ ist. + +\begin{definition} +\label{buch:integrale:def:konstante} +Ein Element $f\in \mathscr{D}$ mit $df/dz=f'=0$ heissen +{\em Konstante} in $\mathscr{D}$. +\index{Konstante}% +\end{definition} + +Die in der Potenzregel~\eqref{buch:integrale:eqn:potenzregel} +vermisste Funktion $z$ kann man ähnlich zu den Konstanten +zu definieren versuchen. +$z$ müsste ein Element von $\mathscr{D}$ mit $z' = 1$ sein. +Allerdings gibt es viele solche Elemente, ist $c$ eine Konstanten +und $z'=1$, dann ist auch $(z+c)'=1$, $(z+c)$ hat also für +die Zwecke unserer Untersuchung die gleichen Eigenschaften wie +$z$. +Dies deckt sich natürlich auch mit der Erwartung, dass Stammfunktionen +nur bis auf eine Konstante bestimmt sind. +Eine differentielle Algebra muss allerdings kein Element $z$ mit der +Eigenschaft $z'=1$ enthalten. + +\begin{beispiel} +In $\mathscr{D}=\mathbb{Q}(\cos x,\sin x)$ gibt es kein Element $x$. +Ein solches wäre von der Form +\[ +x = \frac{p(\cos x,\sin x)}{q(\cos x,\sin x)}. +\] +Eine solche goniometrische Beziehung würde für $x=\frac{\pi}4$ bedeuten, +dass +\[ +\frac{\pi}4 += +\frac{p(\sqrt{2}/2,\sqrt{2}/2)}{q(\sqrt{2}/2,\sqrt{2}/2)}. +\] +Auf der rechten Seite steht ein Quotient von Polynome, in dessen +Argument nur rationale Zahlen und $\sqrt{2}$ steht. +So ein Ausdruck kann immer in die Form +\[ +\pi += +4\frac{a\sqrt{2}+b}{c\sqrt{2}+d} += +\frac{4(a\sqrt{2}+b)(c\sqrt{2}-d)}{2c^2+d^2} += +r\sqrt{2}+s +\] +gebracht werden. +Die Zahl auf der rechten Seite ist zwar irrational, aber sie ist Nullstelle +des quadratischen Polynoms +\[ +p(x) += +(x-r\sqrt{2}-s)(x+r\sqrt{2}-s) += +x^2 +-2sx +-2r^2+s^2 +\] +mit rationalen Koeffizienten, wie man mit der Lösungsformel für die +quadratische Gleichung nachprüfen kann. +Es ist bekannt, dass $\pi$ als transzendente Zahl nicht Nullstelle +eines Polynoms mit rationalen Koeffizienten ist. +Dieser Widerspruch zeigt, dass $x$ nicht in $\mathbb{Q}(\cos x, \sin x)$ +vorkommen kann. +\end{beispiel} + +In einer differentiellen Algebra kann jetzt die Frage nach der +Existenz einer Stammfunktion gestellt werden. + +\begin{aufgabe} +\label{buch:integrale:aufgabe:existenz-stammfunktion} +Gegeben eine differentielle Algebra $\mathscr{D}$ und ein Element +$f\in\mathscr{D}$, entscheide, ob es ein Element $F\in\mathscr{D}$ +gibt mit der Eigenschaft $F'=f$. +Ein solches $F\in\mathscr{D}$ heisst {\em Stammfunktion} von $f$. +\end{aufgabe} + +\begin{satz} +In einer differentiellen Algebra $\mathscr{D}$ mit $z\in\mathscr{D}$ +hat die Potenzfunktion $f=z^n$ für $n\in\mathbb{N}\setminus\{-1\}$ +ein Stammfunktion, nämlich +\[ +F = \frac{1}{n+1} z^{n+1}. +\] +\label{buch:integrale:satz:potenzstammfunktion} +\end{satz} + +\begin{proof}[Beweis] +Tatsächlich kann man dies sofort nachrechnen, muss allerdings die +Fälle $n+1 >0$ und $n+1<0$ unterscheiden, da die Potenzregel +\eqref{buch:integrale:eqn:potenzregel} nur für natürliche Exponenten +gilt. +Man erhält +\begin{align*} +n+1&>0\colon +& +\frac{d}{dz}\frac{1}{n+1}z^{n+1} +&= +\frac{1}{n+1}(n+1)z^{n+1-1} += +z^n, +\\ +n+1&<0\colon +& +\frac{d}{dz}\frac{1}{n+1}\frac{1}{z^{-(n+1)}} +&= +\frac{1}{n+1}\frac{1'z^{-(n+1)}-1(-(n+1))z^{-n-1-1}}{z^{-2n-2}} +\\ +&& +&= +\frac{1}{n+1} +\frac{(n+1)z^n{-n-2}}{z^{-2n-2}} +\\ +&& +&= +\frac{1}{z^{-n}}=z^n. +\end{align*} +Man beachte, dass in dieser Rechnung nichts anderes als die +algebraischen Eigenschaften der Produkt- und Quotientenregel +verwendet wurden. +\end{proof} + +\subsubsection{Wurzeln} +Die Wurzelfunktionen sollen natürlich als elementare Funktionen +erlaubt sein. +Es ist bekannt, dass $\sqrt{z}\not\in \mathscr{D}=\mathbb{C}(z)$ +ist, ein solches Element müsste also erst noch hinzugefügt werden. +Dabei muss auch seine Ableitung definiert werden. +Auch dabei dürfen wir nicht auf eine Grenzwertüberlegung zurückgreifen, +vielmehr müssen wir die Ableitung auf vollständig algebraische +Weise bestimmen. + +Wir schreiben $f=\sqrt{z}$ und leiten die Gleichung $f^2=z$ nach $z$ ab. +Dabei ergibt sich nach der Potenzregel +\[ +\frac{d}{dz}f^2 = 2f'f = \frac{d}{dz}z=1 +\qquad\Rightarrow\qquad f' = \frac{1}{2f}. +\] +Diese Rechnung lässt sich auch auf $n$-Wurzeln $g=\root{n}\of{z}$ mit +der Gleichung $g^n = z$ verallgemeinern. +Die Ableitung der $n$-ten Wurzel ist +\begin{equation} +\frac{d}{dz}g^n += +ng^{n-1} = \frac{d}{dz}z=1 +\qquad\Rightarrow\qquad +\frac{d}{dz}g = \frac{1}{ng^{n-1}}. +\end{equation} +Es ist also möglich, eine differentielle Algebra $\mathscr{D}$ mit einer +$n$-ten Wurzel $g$ zu einer grösseren differentiellen Algebra $\mathscr{D}(g)$ +zu erweitern, in der wieder alle Regeln für das Rechnen mit Ableitungen +erfüllt sind. + +\subsubsection{Algebraische Elemente} +Die Charakterisierung der Wurzelfunktionen passt zwar zum verlangten +algebraischen Vorgehen, ist aber zu spezielle und nicht gut für die +nachfolgenden Untersuchengen geeignet. +Etwas allgemeiner ist der Begriff der algebraischen Elemente. + +\begin{definition} +\label{buch:integrale:def:algebraisches-element} +Seien $K\subset L$ zwei Körper. +Ein Element $\alpha \in L$ heisst {\em algebraisch} über $K$, +wenn $\alpha$ Nullstelle eines Polynoms $p\in K[X]$ mit Koeffizienten +in $K$ ist. +\index{algebraisch}% +\end{definition} + +Jedes Element $\alpha\in K$ ist algebraisch, da $\alpha$ Nullstelle +von $X-\alpha\in K[X]$ ist. +Die $n$tem Wurzeln eines Elemente $\alpha\in K$ sind ebenfalls algebraisch, +da sie Nullstellen des Polynoms $p(X) = X^n - \alpha$ sind. +Allerdings ist nicht klar, dass diese Wurzeln überhaupt existieren. +Nach dem Satz von Abel~\ref{buch:potenzen:satz:abel} gibt es aber +Nullstellen von Polynomen, die sich nicht als Wurzelausdrücke schreiben +lassen. +Der Begriff der algebraischen Elemente ist also allgemeiner als der +Begriff der Wurzel. + +\begin{definition} +\label{buch:integrale:def:algebraisch-abgeschlossen} +Ein Körper $K$ heisst {\em algebraisch abgeschlossen}, wenn jedes Polynom mit +Koeffizienten in $K$ eine Nullstelle in $K$ hat. +\end{definition} + +Der Körper $\mathbb{C}$ ist nach dem +Fundamentalsatz~\label{buch:potenzen:satz:fundamentalsatz} +der Algebra algebraisch abgeschlossen. +Da wir aber mit Funktionen arbeiten, müssen wir auch Wurzeln +von Funktionen finden können. +Dies ist nicht selbstverständlich, wie das folgende Beispiel zeigt. + +\begin{beispiel} +Es gibt keine stetige Funktion $f\colon \mathbb{C}\to\mathbb{C}$, die +die Gleichung $f(z)^2 = z$ und $f(1)=1$ erfüllt. +Für die Argumente $z(t)= e^{it}$ folgt, dass $f(z(t)) = e^{it/2}$ sein +muss. +Setzt man aber $t=\pm \pi$ ein, ergeben sich die Werte +$f(z(\pm\pi))=e^{\pm i\pi/2}=\pm 1$, die beiden Grenzwerte +für $t\to\pm\pi$ sind also verschieden. +\end{beispiel} + +Die Mathematik hat verschiedene ``Tricks'' entwickelt, wie mit diesem +Problem umgegangen werden kann: Funktionskeime, Garben, Riemannsche +Flächen. +Sie sind alle gleichermassen gut geeignet, das Problem zu lösen. +Für die vorliegende Aufgabe genügt es aber, dass es tatsächlich +immer ein wie auch immer geartetes Element gibt, welches Nullstelle +des Polynoms ist. + +Ist $f$ eine Nullstelle des Polynoms $p(X)$ mit Koeffizienten in +$\mathscr{D}$, dann kann man die Ableitung wie folgt berechnen. +Zunächst leitet man $p(f)$ ab: +\begin{align} +0&= +\frac{d}{dz}(a_nf^n + a_{n-1}f^{n-1}+\ldots+a_1f+a_0) +\notag +\\ +&= +a_n'f^n + a_{n-1}'f^{n-1}+\ldots+a_1'f+a_0' ++ +na_nf^{n-1}f' ++ +(n-1)a_nf^{n-2}f' ++ +\ldots ++ +a_2ff' ++ +a_1f' +\notag +\\ +&= +a_n'f^n + a_{n-1}'f^{n-1}+\ldots+a_1'f+a_0' ++ +( +na_nf^{n-1} ++ +(n-1)a_nf^{n-2} ++ +\ldots ++ +a_2f ++ +a_1 +)f' +\notag +\\ +\Rightarrow +\qquad +f'&=\frac{ +a_n'f^n + a_{n-1}'f^{n-1}+\dots+a_1'f+a_0' +}{ +na_nf^{n-1} ++ +(n-1)a_nf^{n-2} ++ +\dots ++ +a_1 +}. +\label{buch:integrale:eqn:algabl} +\end{align} +Das einzige, was dabei schief gehen könnte ist, dass der Nenner ebenfalls +verschwindet. +Dieses Problem kann man dadurch lösen, dass man als Polynom das +sogenannte Minimalpolynom verwendet. + +\begin{definition} +Das {\em Minimalpolynome} $m(X)$ eines algebraischen Elementes $\alpha$ ist +das Polynom kleinsten Grades, welches $m(\alpha)=0$ erfüllt. +\end{definition} + +Da das Minimalpolynom den kleinstmöglichen Grad hat, kann der Nenner +von~\eqref{buch:integrale:eqn:algabl}, +der noch kleineren Grad hat, unmöglich verschwinden. +Das Minimalpolynom ist auch im wesentlichen eindeutig. +Gäbe es nämlich zwei verschiedene Minimalpolynome $m_1$ und $m_2$, +dann müsste $\alpha$ auch eine Nullstelle des grössten gemeinsamen +Teilers $m_3=\operatorname{ggT}(m_1,m_2)$ sein. +Wären die beiden Polynome wesentlich verschieden, dann hätte $m_3$ +kleineren Grad, im Widerspruch zur Definition des Minimalpolynoms. +Also unterscheiden sich die beiden Polynome $m_1$ und $m_2$ nur um +einen skalaren Faktor. + +\subsubsection{Konjugation, Spur und Norm} +% Konjugation, Spur und Norm +Das Minimalpolynom eines algebraischen Elementes ist nicht +eindeutig bestimmt. +Zum Beispiel ist $\sqrt{2}$ algebraisch über $\mathbb{Q}$, das +Minimalpolynom ist $m(X)=X^2-2\in\mathbb{Q}[X]$. +Es hat aber noch eine zweite Nullstelle $-\sqrt{2}$. +Mit rein algebraischen Mitteln sind die beiden Nullstellen $\pm\sqrt{2}$ +nicht zu unterscheiden, erst die Verwendung der Vergleichsrelation +ermöglicht, sie zu unterscheiden. + +Dasselbe gilt für die imaginäre Einheit $i$, die das Minimalpolynom +$m(X)=X^2+1\in\mathbb{R}[X]$ hat. +Hier gibt es nicht einmal mehr eine Vergleichsrelation, mit der man +die beiden Nullstellen unterscheiden könnte. +In der Tat ändert sich aus algebraischer Sicht nichts, wenn man in +allen Formeln $i$ durch $-i$ ersetzt. + +Etwas komplizierter wird es bei $\root{3}\of{2}$. +Das Polynom $m=x^3-2\in\mathbb{Q}[X]$ hat $\root{3}\of{2}$ als +Nullstelle und dies ist auch tatsächlich das Minimalpolynom. +Das Polynom hat noch zwei weitere Nullstellen +\[ +\alpha_+ = \frac{-1+i\sqrt{3}}{2}\root{3}\of{2} +\qquad\text{und}\qquad +\alpha_- = \frac{-1-i\sqrt{3}}{2}\root{3}\of{2}. +\] +Die beiden Lösungen gehen durch die Vertauschung von $i$ und $-i$ +auseinander hervor. +Betrachtet man dasselbe Polynom aber als Polynom in $\mathbb{R}[X]$, +dann ist es nicht mehr das Minimalpolynom von $\root{3}\of{2}$, da +$X-\root{3}\of{2}\in\mathbb{R}[X]$ kleineren Grad und $\root{3}\of{2}$ +als Nullstelle hat. +Indem man +\[ +m(X)/(X-\root{3}\of{2})=X^2+\root{3}\of{2}X+\root{3}\of{2}^2=m_2(X) +\] +rechnet, bekommt man das Minimalpolynom der beiden Nullstellen $\alpha_+$ +und $\alpha_-$. +Wir lernen aus diesen Beispielen, dass das Minimalpolynom vom Grundkörper +abhängig ist (Die Faktorisierung $(X-\root{3}\of{2})\cdot m_2(X)$ von +$m(X)$ ist in $\mathbb{Q}[X]$ nicht möglich) und dass wir keine +algebraische Möglichkeit haben, die verschiedenen Nullstellen des +Minimalpolynoms zu unterscheiden. + +Die beiden Nullstellen $\alpha_+$ und $\alpha_-$ des Polynoms $m_2(X)$ +erlauben, $m_2(X)=(X-\alpha_+)(X-\alpha_-)$ zu faktorisieren. +Durch Ausmultiplizieren +\[ +(X-\alpha_+)(X-\alpha_-) += +X^2 -(\alpha_++\alpha_-)X+\alpha_+\alpha_- +\] +und Koeffizientenvergleich mit $m_2(X)$ findet man die symmetrischen +Formeln +\[ +\alpha_+ + \alpha_- = \root{3}\of{2} +\qquad\text{und}\qquad +\alpha_+ \alpha_ = \root{3}\of{2}. +\] +Diese Ausdrücke sind nicht mehr abhängig von einer speziellen Wahl +der Nullstellen. + +Das Problem verschärft sich nocheinmal, wenn wir Funktionen betrachten. +Das Polynom $m(X)=X^3-z$ ist das Minimalpolynom der Funktion $\root{3}\of{z}$. +Die komplexe Zahl $z=re^{i\varphi}$ hat aber drei die algebraisch nicht +unterscheidbaren Nullstellen +\[ +\alpha_0(z)=\root{3}\of{r}e^{i\varphi/3}, +\quad +\alpha_1(z)=\root{3}\of{r}e^{i\varphi/3+2\pi/3} +\qquad\text{und}\qquad +\alpha_2(z)=\root{3}\of{r}e^{i\varphi/3+4\pi/3}. +\] +Aus der Faktorisierung $ (X-\alpha_0(z)) (X-\alpha_1(z)) (X-\alpha_2(z))$ +und dem Koeffizientenvergleich mit dem Minimalpolynom kann man wieder +schliessen, dass die Relationen +\[ +\alpha_0(z) + \alpha_1(z) + \alpha_2(z)=0 +\qquad\text{und}\qquad +\alpha_0(z) \alpha_1(z) \alpha_2(z) = z +\] +gelten. + +Wir können also oft keine Aussagen über individuelle Nullstellen +eines Minimalpolynoms machen, sondern nur über deren Summe oder +Produkt. + +\begin{definition} +\index{buch:integrale:def:spur-und-norm} +Sie $m(X)\in K[X]$ das Minimalpolynom eines über $K$ algebraischen +Elements und +\[ +m(X) = a_nX^n + a_{n-1}X^{n-1} + \ldots + a_1X + a_0. +\] +Dann heissen +\[ +\operatorname{Tr}(\alpha) = -a_{n-1} +\qquad\text{und}\qquad +\operatorname{Norm}(\alpha) = (-1)^n a_0 +\] +die {\em Spur} und die {\em Norm} des Elementes $\alpha$. +\index{Spur eines algebraischen Elementes}% +\index{Norm eines algebraischen Elementes}% +\end{definition} + +Die Spur und die Norm können als Spur und Determinante einer Matrix +verstanden werden, diese allgemeineren Definitionen, die man in der +Fachliteratur, z.~B.~in~\cite{buch:lang} nachlesen kann, führen aber +für unsere Zwecke zu weit. + +\begin{hilfssatz} +Die Ableitungen von Spur und Norm sind +\[ +\operatorname{Tr}(\alpha)' += +\operatorname{Tr}(\alpha') +\qquad\text{und}\qquad +\operatorname{Norm}(\alpha)' += +\operatorname{Tr}(\alpha)' +\] +XXX Wirklich? +\end{hilfssatz} + +\subsubsection{Logarithmen und Exponentialfunktionen} +Die Funktion $z^{-1}$ musste im +Satz~\ref{buch:integrale:satz:potenzstammfunktion} +ausgeschlossen werden, sie hat keine Stammfunktion in $\mathbb{C}(z)$. +Aus der Analysis ist bekannt, dass die Logarithmusfunktion $\log z$ +eine Stammfunktion ist. +Der Logarithmus von $z$ aber auch der Logarithmus $\log f(z)$ +einer beliebigen Funktion $f(z)$ oder die Exponentialfunktion $e^{f(z)}$ +sollen ebenfalls elementare Funktionen sein. +Da wir aber auch hier nicht auf die analytischen Eigenschaften zurückgreifen +wollen, brauchen wir ein rein algebraische Definition. + +\begin{definition} +\label{buch:integrale:def:logexp} +Sei $\mathscr{D}$ ein differentielle Algebra und $f\in\mathscr{D}$. +Ein Element $\vartheta\in\mathscr{D}$ heisst ein {\em Logarithmus} +von $f$, geschrieben $\vartheta = \log f$, wenn $f\vartheta' = f'$ gilt. +$\vartheta$ heisst eine Exponentialfunktion von $f$ wenn +$\vartheta'=\vartheta f'$ gilt. +\end{definition} + +Die Formel für die Exponentialfunktion ist etwas vertrauter, sie ist +die bekannte Kettenregel +\begin{equation} +\vartheta' += +\frac{d}{dz} e^f += +e^f \cdot \frac{d}{dz} f += +\vartheta \cdot f'. +\label{buch:integrale:eqn:exponentialableitung} +\end{equation} +Da wir uns vorstellen, dass Logarithmen Umkehrfunktionen von +Exponentialfunktionen sein sollen, +muss die definierende Gleichung genau wie +\eqref{buch:integrale:eqn:exponentialableitung} +aussehen, allerdings mit vertauschten Plätzen von $f$ und $\vartheta$, +also +\begin{equation} +\vartheta' = \vartheta\cdot f' +\qquad +\rightarrow +\qquad +f' = f\cdot \vartheta' +\;\Leftrightarrow\; +\vartheta' = (\log f)' = \frac{f'}{f}. +\label{buch:integrale:eqn:logarithmischeableitung} +\end{equation} +Dies ist die aus der Analysis bekannte Formel für die logarithmische +Ableitung. + +Der Logarithmus von $f$ und die Exponentialfunktion von $f$ sollen +also ebenfalls als elementare Funktionen betrachtet werden. + +\subsubsection{Die trigonometrischen Funktionen} +Die bekannten trigonometrischen Funktionen und ihre Umkehrfunktionen +sollten natürlich auch elementare Funktionen sein. +Dabei kommt uns zur Hilfe, dass sie sich mit Hilfe der Exponentialfunktion +als +\[ +\cos f = \frac{e^{if}+e^{-if}}2 +\qquad\text{und}\qquad +\sin f = \frac{e^{if}-e^{-if}}{2i} +\] +schreiben lassen. +Eine differentielle Algebra, die die Exponentialfunktionen von $if$ und +$-if$ enthält, enthält also automatisch auch die trigonometrischen +Funktionen. +Im Folgenden ist es daher nicht mehr nötig, die trigonometrischen +Funktionen speziell zu untersuchen. + +\subsubsection{Elementare Funktionen} +Damit sind wir nun in der Lage, den Begriff der elementaren Funktion +genau zu fassen. + +\begin{definition} +\label{buch:integrale:def:einfache-elementare-funktion} +Sie $\mathscr{D}$ eine differentielle Algebra über $\mathbb{C}$ und +$\mathscr{D}(\vartheta)$ eine Erweiterung von $\mathscr{D}$ um eine +neue Funktion $\vartheta$, dann heissen $\vartheta$ und die Elemente +von $\mathscr{D}(\vartheta)$ einfach elementar, wenn eine der folgenden +Bedingungen erfüllt ist: +\begin{enumerate} +\item $\vartheta$ ist algebraisch über $\mathscr{D}$, d.~h.~$\vartheta$ +ist eine ``Wurzel''. +\item $\vartheta$ ist ein Logarithmus einer Funktion in $\mathscr{D}$, +d.~h.~es gibt $f\in \mathscr{D}$ mit $f'=f\vartheta'$ +(Definition~\ref{buch:integrale:def:logexp}). +\item $\vartheta$ ist eine Exponentialfunktion einer Funktion in $\mathscr{D}$, +d.~h.~es bit $f\in\mathscr{D}$ mit $\vartheta'=\vartheta f'$ +(Definition~\ref{buch:integrale:def:logexp}). +\end{enumerate} +\end{definition} + +Einfache elementare Funktionen entstehen also ausgehend von einer +differentiellen Algebra, indem man genau einmal eine Wurzel, einen +Logarithmus oder eine Exponentialfunktion hinzufügt. +So etwas wie die zusammengesetzte Funktion $e^{\sqrt{z}}$ ist +damit noch nicht möglich. +Daher erlauben wir, dass man die gesuchten Funktionen in mehreren +Schritten aufbauen kann. + +\begin{definition} +Sei $\mathscr{F}$ eine differentielle Algebra, die die differentielle +Algebra $\mathscr{D}$ enthält, also $\mathscr{D}\subset\mathscr{F}$. +$\mathscr{F}$ und die Elemente von $\mathscr{F}$ heissen einfach, +wenn es endlich viele Elemente $\vartheta_1,\dots,\vartheta_n$ gibt +derart, dass +\[ +\renewcommand{\arraycolsep}{2pt} +\begin{array}{ccccccccccccc} +\mathscr{D} +&\subset& +\mathscr{D}(\vartheta_1) +&\subset& +\mathscr{D}(\vartheta_1,\vartheta_2) +&\subset& +\; +\cdots +\; +&\subset& +\mathscr{D}(\vartheta_1,\vartheta_2,\dots,\vartheta_{n-1}) +&\subset& +\mathscr{D}(\vartheta_1,\vartheta_2,\dots,\vartheta_{n-1},\vartheta_n) +&=& +\mathscr{F} +\\ +\| +&& +\| +&& +\| +&& +&& +\| +&& +\| +&& +\\ +\mathscr{F}_0 +&\subset& +\mathscr{F}_1 +&\subset& +\mathscr{F}_2 +&\subset& +\cdots +&\subset& +\mathscr{F}_{n-1} +&\subset& +\mathscr{F}_{n\mathstrut} +&& +\end{array} +\] +gilt so, dass jedes $\vartheta_{i+1}$ einfach ist über +$\mathscr{F}_i=\mathscr{D}(\vartheta_1,\dots,\vartheta_i)$. +\end{definition} + +In Worten bedeutet dies, dass man den Funktionen von $\mathscr{D}$ +nacheinander Wurzeln, Logarithmen oder Exponentialfunktionen einzelner +Funktionen hinzufügt. +Die Aufgabe~\ref{buch:integrale:aufgabe:existenz-stammfunktion} kann +jetzt so formuliert werden. + +\begin{aufgabe} +\label{buch:integrale:aufgabe:existenz-stammfunktion-dalg} +Gegeben ist eine Differentielle Algebra $\mathscr{D}$ und eine +Funktion $f\in \mathscr{D}$. +Gibt es eine Folge $\vartheta_1,\dots,\vartheta_n$ und eine Funktion +$F\in\mathscr{D}(\vartheta_1,\dots,\vartheta_n)$ derart, dass +$F'=f$. +\end{aufgabe} + +Das folgende Beispiel zeigt, wie man möglicherweise mehrere +Erweiterungsschritte vornehmen muss, um zu einer Stammfunktion +zu kommen. +Es illustriert auch die zentrale Rolle, die der Partialbruchzerlegung +in der weiteren Entwicklung zukommen wird. + +\begin{beispiel} +\label{buch:integrale:beispiel:nichteinfacheelementarefunktion} +Es soll eine Stammfunktion der Funktion +\[ +f(z) += +\frac{z}{(az+b)(cz+d)} +\in +\mathbb{C}(z) +\] +gefunden werden. +In der Analysis lernt man, dass solche Integrale mit der +Partialbruchzerlegung +\[ +\frac{z}{(az+b)(cz+d)} += +\frac{A_1}{az+b}+\frac{A_2}{cz+d} += +\frac{A_1cz+A_1d+A_2az+A_2b}{(az+b)(cz+d)} +\quad\Rightarrow\quad +\left\{ +\renewcommand{\arraycolsep}{2pt} +\begin{array}{rcrcr} +cA_1&+&aA_2&=&1\\ +dA_1&+&bA_2&=&0 +\end{array} +\right. +\] +bestimmt werden. +Die Lösung des Gleichungssystems ergibt +$A_1=b/(bc-ad)$ und $A_2=d/(ad-bc)$. +Die Stammfunktion kann dann aus +\begin{align*} +\int f(z)\,dz +&= +\int\frac{A_1}{az+b}\,dz ++ +\int\frac{A_2}{cz+d}\,dz += +\frac{A_1}{a}\int\frac{a}{az+b}\,dz ++ +\frac{A_2}{c}\int\frac{c}{cz+d}\,dz +\end{align*} +bestimmt werden. +In den Integralen auf der rechten Seite ist der Zähler jeweils die +Ableitung des Nenners, der Integrand hat also die Form $g'/g$. +Genau diese Form tritt in der Definition eines Logarithmus auf. +Die Stammfunktion ist jetzt +\[ +F(z) += +\int f(z)\,dz += +\frac{A_1}{a}\log(az+b) ++ +\frac{A_2}{c}\log(cz+d) += +\frac{b\log(az+b)}{a(bc-ad)} ++ +\frac{d\log(cz+d)}{c(ad-bc)}. +\] +Die beiden Logarithmen kann man nicht durch rein rationale Operationen +ineinander überführen. +Sie müssen daher beide der Algebra $\mathscr{D}$ hinzugefügt werden. +\[ +\left. +\begin{aligned} +\vartheta_1&=\log(az+b)\\ +\vartheta_2&=\log(cz+d) +\end{aligned} +\quad +\right\} +\qquad\Rightarrow\qquad +F(z) \in \mathscr{F}=\mathscr{D}(\vartheta_1,\vartheta_2). +\] +Die Stammfunktion $F(z)$ ist also keine einfache elementare Funktion, +aber $F$ ist immer noch eine elementare Funktion. +\end{beispiel} + +\subsection{Partialbruchzerlegung +\label{buch:integrale:section:partialbruchzerlegung}} +Die Konstruktionen des letzten Abschnitts haben gezeigt, +wie man die Funktionen, die man als Stammfunktionen einer Funktion +zulassen möchte, schrittweise konstruieren kann. +Die Aufgabe~\ref{buch:integrale:aufgabe:existenz-stammfunktion-dalg} +ist eine rein algebraische Formulierung der ursprünglichen +Aufgabe~\ref{buch:integrale:aufgabe:existenz-stammfunktion}. +Schliesslich hat das Beispiel auf +Seite~\pageref{buch:integrale:beispiel:nichteinfacheelementarefunktion} +gezeigt, dass es im allgemeinen mehrere Schritte braucht, um zu einer +elementaren Stammfunktion zu gelangen. +Die Lösung setzt sich aus den Termen der Partialbruchzerlegung. +In diesem Abschnitt soll diese genauer studiert werden. + +In diesem Abschnitt gehen wir immer von einer differentiellen +Algebra über den komplexen Zahlen aus und verlangen, dass die +Konstanten in allen betrachteten differentiellen Algebren +$\mathbb{C}$ sind. + +\subsubsection{Monome} +Die beiden Funktionen $\vartheta-1=\log(az+b)$ und $\vartheta_2=(cz+d)$, +die im Beispiel hinzugefügt werden mussten, verhalten sich ich algebraischer +Hinsicht wie ein Monom: man kann es nicht faktorisieren oder bereits +bekannte Summanden aufspalten. +Solchen Funktionen kommt eine besondere Bedeutung zu. + +\begin{definition} +\label{buch:integrale:def:monom} +Die Funktion $\vartheta$ heisst ein Monom, wenn $\vartheta$ nicht +algebraisch ist über $\mathscr{D}$ und $\mathscr{D}(\vartheta)$ die +gleichen Konstanten enthält wie $\mathscr{D}$. +\end{definition} + +\begin{beispiel} +Als Beispiel beginnen wir mit den komplexen Zahlen $\mathbb{C}$ +und fügen die Funktion $\vartheta_1=z$ hinzu und erhalten +$\mathscr{D}=\mathbb{C}(z)$. +Die Funktionen $z^k$ sind für alle $k$ linear unabhängig, d.~h.~es +gibt keinen Ausdruck +\[ +a_nz^n + a_{n-1}z^{n-1}+\cdots+a_1z+a_0=0. +\] +Dies ist gleichbedeutend damit, dass $z$ nicht algebraisch ist. +Das Monom $z$ ist also auch ein Monom im Sinne der +Definition~\ref{buch:integrale:def:monom}. +\end{beispiel} + +\begin{beispiel} +Wir beginnen wieder mit $\mathbb{C}$ und fügen die Funktion +$e^z$ hinzu. +Gäbe es eine Beziehung +\[ +b_m(e^z)^m + b_{m-1}(e^z)^{m-1}+\dots+b_1e^z + b_0=0 +\] +mit komplexen Koeffizienten $b_i\in\mathbb{C}$, +dann würde daraus durch Einsetzen von $z=1$ die Relation +\[ +b_me^m + b_{m-1}e^{m-1} + \dots + b_1e + b_0=0, +\] +die zeigen würde, dass $e$ eine algebraische Zahl ist. +Es ist aber bekannt, dass $e$ transzendent ist. +Dieser Widersprich zeigt, dass $e^z$ ein Monom ist. +\end{beispiel} + +\begin{beispiel} +Jetzt fügen wir die Exponentialfunktion $\vartheta_2=e^z$ +der differentiellen Algebra $\mathscr{D}=\mathbb{C}(z)$ hinzu +und erhalten $\mathscr{F}_1=\mathscr{D}(e^z) = \mathbb{C}(z,e^z)$. +Gäbe es das Minimalpolynom +\begin{equation} +b_m(z)(e^z)^m + b_{m-1}(z)(e^z)^{m-1}+\dots+b_1(z)e^z + b_0(z)=0 +\label{buch:integrale:beweis:exp-analytisch} +\end{equation} +mit Koeffizienten $b_i\in\mathbb{C}(z)$, dann könnte man mit dem +gemeinsamen Nenner der Koeffizienten durchmultiplizieren und erhielte +eine Relation~\eqref{buch:integrale:beweis:exp-analytisch} mit +Koeffizienten in $\mathbb{C}[z]$. +Dividiert man durch $e^{mz}$ erhält man +\[ +b_m(z) + b_{m-1}(z)\frac{1}{e^z} + \dots + b_1(z)\frac{1}{(e^z)^{m-1}} + b_0(z)\frac{1}{(e^z)^m}=0. +\] +Aus der Analysis weiss man, dass die Exponentialfunktion schneller +anwächst als jedes Polynom, alle Terme auf der rechten Seite +konvergieren daher gegen 0 für $z\to\infty$. +Das bedeutet, dass $b_m(z)\to0$ für $z\to \infty$. +Das Polynom~\eqref{buch:integrale:beweis:exp-analytisch} wäre also gar +nicht das Minimalpolynom. +Dieser Widerspruch zeigt, dass $e^z$ nicht algebraisch ist über +$\mathbb{C}(z)$ und damit ein Monom ist\footnote{Etwas unbefriedigend +an diesem Argument ist, dass man hier wieder rein analytische statt +algebraische Eigenschaften von $e^z$ verwendet. +Gäbe es aber eine minimale Relation wie +\eqref{buch:integrale:beweis:exp-analytisch} +mit Polynomkoeffizienten, dann wäre sie von der Form +\[ +P(z,e^z)=p(z)(e^z)^m + q(z,e^z)=0, +\] +wobei Grad von $e^z$ in $q$ höchstens $m-1$ ist. +Die Ableitung wäre dann +\[ +Q(z,e^z) += +mp(z)(e^z)^m + p'(z)(e^z)^m + r(z,e^z) += +(mp(z) + p'(z))(e^z)^m + r(z,e^z) +=0, +\] +wobei der Grad von $e^z$ in $r$ wieder höchstens $m-1$ ist. +Bildet man $mP(z,e^z) - Q(z,e^z) = 0$ ensteht eine Relation, +in der der Grad des Koeffizienten von $(e^z)^m$ um eins abgenommen hat. +Wiederholt man dies $m$ mal, verschwindet der Term $(e^z)^m$, die +Relation~\eqref{buch:integrale:beweis:exp-analytisch} +war also gar nicht minimal. +Dieser Widerspruch zeigt wieder, dass $e^z$ nicht algebraisch ist, +verwendet aber nur die algebraischen Eigenschaften der differentiellen +Algebra. +}. +\end{beispiel} + +\begin{beispiel} +Wir hätten auch in $\mathbb{Q}$ arbeiten können und $\mathbb{Q}$ +erst die Exponentialfunktion $e^z$ und dann den Logarithmus $z$ von $e^z$ +hinzufügen können. +Es gibt aber noch weitere Logarithmen von $e^z$ zum Beispiel $z+2\pi i$. +Offenbar ist $\psi=z+2\pi i\not\in \mathbb{Q}(z,e^z)$, wir könnten also +auch noch $\psi$ hinzufügen. +Zwar ist $\psi$ auch nicht algebraisch, aber wenn wir $\psi$ hinzufügen, +dann wird aber die Menge der Konstanten grösser, sie umfasst jetzt +$\mathbb{Q}(2\pi i)$. +Die Bedingung in der Definition~\ref{buch:integrale:def:monom}, +dass die Menge der Konstanten nicht grösser werden darf, ist also +verletzt. + +Hätte man mit $\mathbb{Q}(e^z, z+2\pi i)$ begonnen, wäre $z$ aus +dem gleichen Grund kein Monom, aber $z+2\pi i$ wäre eines im Sinne +der Definition~\ref{buch:integrale:def:monom}. +In allen Rechnungen könnte man $\psi=z+2\pi i$ nicht weiter aufteilen, +da $\pi$ oder seine Potenzen keine Elemente von $\mathbb{Q}(e^z)$ sind. +\end{beispiel} + +Da wir im Folgenden davon ausgehen, dass die Konstanten unserer +differentiellen Körper immer $\mathbb{C}$ sind, wird es jeweils +genügen zu untersuchen, ob eine neu hinzuzufügende Funktion algebraisch +ist oder nicht. + +\subsubsection{Ableitungen von Polynomen und rationalen Funktionen von Monomen} +Fügt man einer differentiellen Algebra ein Monom hinzu, dann lässt +sich etwas mehr über Ableitungen von Polynomen oder Brüchen in diesen +Monomen sagen. +Diese Eigenschaften werden später bei der Auflösung der Partialbruchzerlegung +nützlich sein. + +\begin{satz} +\label{buch:integrale:satz:polynom-ableitung-grad} +Sei +\[ +P += +A_nX^n + A_{n-1}X^{n-1} + \dots A_1X+A_0 +\in\mathscr{D}[X] +\] +ein Polynom mit Koeffizienten in einer differentiellen Algebra $\mathscr{D}$ +und $\vartheta$ ein Monom über $\mathscr{D}$. +Dann gilt +\begin{enumerate} +\item +\label{buch:integrale:satz:polynom-ableitung-grad-log} +Falls $\vartheta=\log f$ ist, ist $P(\vartheta)'$ ein +Polynom vom Grad $n$ in $\vartheta$, wenn der Leitkoeffizient $A_n$ +nicht konstant ist, andernfalls ein Polynom vom Grad $n-1$. +\item +\label{buch:integrale:satz:polynom-ableitung-grad-exp} +Falls $\vartheta = \exp f$ ist, dann ist $P(\vartheta)'$ ein Polynom +in $\vartheta$ vom Grad $n$. +\end{enumerate} +\end{satz} + +Der Satz macht also genaue Aussagen darüber, wie sich der Grad eines +Polynoms in $\vartheta$ beim Ableiten ändert. + +\begin{proof}[Beweis] +Für Exponentialfunktion ist $\vartheta'=\vartheta f'$, die Ableitung +fügt also einfach einen Faktor $f'$ hinzu. +Terme der Form $A_k\vartheta^k$ haben die Ableitung +\[ +(A_k\vartheta^k) += +A'_k\vartheta^k + A_kk\vartheta^{k-1}\vartheta' += +A'_k\vartheta^k + A_kk\vartheta^{k-1}\vartheta f' += +(A'_k + kA_k f)\vartheta^k. +\] +Damit wird die Ableitung des Polynoms +\begin{equation} +P(\vartheta)' += +\underbrace{(A'_n+nA_nf')\vartheta^n}_{\displaystyle=(A_n\vartheta^n)'} ++ +(A'_{n-1}+(n-1)A_{n-1}f')\vartheta^{n-1} ++ \dots + +(A'_1+A_1f')\vartheta + A_0'. +\label{buch:integrale:ableitung:polynom} +\end{equation} +Der Grad der Ableitung kann sich also nur ändern, wenn $A_n'+nA_nf'=0$ ist. +Dies bedeutet aber wegen +\( +(A_n\vartheta^n)' += +0 +\), dass $A_n\vartheta^n=c$ eine Konstante ist. +Da alle Konstanten bereits in $\mathscr{D}$ sind, folgt, dass +\[ +\vartheta^n=\frac{c}{A_n} +\qquad\Rightarrow\qquad +\vartheta^n - \frac{c}{A_n}=0, +\] +also wäre $\vartheta$ algebraisch über $\mathscr{D}$, also auch kein Monom. +Dieser Widerspruch zeigt, dass der Leitkoeffizient nicht verschwinden kann. + +Für die erste Aussage ist die Ableitung der einzelnen Terme des Polynoms +\[ +(A_k\vartheta^k)' += +A_k'\vartheta^k + A_kk\vartheta^{k-1}\vartheta' += +A_k'\vartheta^k + A_kk\vartheta^{k-1}\frac{f'}{f} += +\biggl(A_k'\vartheta + kA_k\frac{f'}{f}\biggr)\vartheta^{k-1}. +\] +Die Ableitung des Polynoms ist daher +\[ +P(\vartheta)' += +A_n'\vartheta^n + \biggl(nA_n\frac{f'}{f}+ A'_{n-1}\biggr)\vartheta^{n-1}+\dots +\] +Wenn $A_n$ keine Konstante ist, ist $A_n'\ne 0$ und der Grad von +$P(\vartheta)'$ ist $n$. +Wenn $A_n$ eine Konstante ist, müssen wir noch zeigen, dass der nächste +Koeffizient nicht verschwinden kann. +Wäre der zweite Koeffizient $=0$, dann wäre die Ableitung +\[ +(nA_n\vartheta+A_{n-1})' += +nA_n\vartheta'+A'_{n-1} += +nA_n\frac{f'}{f}+A'_{n-1} += +0, +\] +d.h. $nA_n\vartheta+A_{n-1}=c$ wäre eine Konstante. +Da alle Konstanten schon in $\mathscr{D}$ sind, müsste auch +\[ +\vartheta = \frac{c-A_{n-1}}{nA_n} \in \mathscr{D} +\] +sein, wieder wäre $\vartheta$ kein Monom. +\end{proof} + +Der nächste Satz gibt Auskunft über den führenden Term in +$(\log P(\vartheta))' = P(\vartheta)'/P(\vartheta)$. + +\begin{satz} +\label{buch:integrale:satz:log-polynom-ableitung-grad} +Sei $P$ ein Polynom vom Grad $n$ wie in +\label{buch:integrale:satz:log-polynom-ableitung} +welches zusätzlich normiert ist, also $A_n=1$. +\begin{enumerate} +\item +\label{buch:integrale:satz:log-polynom-ableitung-log} +Ist $\vartheta=\log f$, dann ist +$(\log P(\vartheta))' = P(\vartheta)'/P(\vartheta)$ und $P(\vartheta)'$ +hat Grad $n-1$. +\item +\label{buch:integrale:satz:log-polynom-ableitung-exp} +Ist $\vartheta=\exp f$, dann gibt es ein Polynom $N(\vartheta)$ so, dass +$(\log P(\vartheta))' += +P(\vartheta)'/P(\vartheta) += +N(\vartheta)/P(\vartheta)+nf'$ +ist. +Falls $P(\vartheta)=\vartheta$ ist $N=0$, andernfalls ist $N(\vartheta)$ +ein Polynom vom Grad $<n$. +\end{enumerate} +\end{satz} + +\begin{proof}[Beweis] +Die Gleichung $(\log P(\vartheta))'=P(\vartheta)'/P(\vartheta)$ ist die +Definition eines Logarithmus, es geht also vor allem um die Frage +des Grades von $P(\vartheta)'$. +Da der Leitkoeffizient als $1$ und damit konstant vorausgesetzt wurde, +folgt die Behauptung \ref{buch:integrale:satz:log-polynom-ableitung-log} +aus +Aussage \ref{buch:integrale:satz:polynom-ableitung-grad-log} +von Satz~\ref{buch:integrale:satz:polynom-ableitung-grad}. + +Für Aussage \ref{buch:integrale:satz:log-polynom-ableitung-exp} +beachten wir wieder die +Ableitungsformel~\eqref{buch:integrale:ableitung:polynom} +und berücksichtigen, dass $A_n=1$ eine Konstante ist. +Da $A_n'=0$ ist, wird +\begin{align*} +P(\vartheta)' +&= +nA_n\vartheta^n f' + \text{Terme niedrigeren Grades in $\vartheta$}. +\intertext{Das Polynom $nf'P(\vartheta)$ hat den gleichen Term vom +Grad $n$, man kann also $P(\vartheta)'$ auch schreiben als} +&= +nf' +P(\vartheta) ++ +\underbrace{ +\text{Terme niedrigeren Grades in $\vartheta$}}_{\displaystyle=N(\vartheta)}. +\end{align*} +Division durch $P(\vartheta)$ ergibt die versprochene Formel. + +Im Fall $P(\vartheta)=\vartheta$ ist $n=1$ und +$(\log P(\vartheta))'=P(\vartheta)'/P(\vartheta) += +\vartheta f'/\vartheta += +nf'$ und somit $N(\vartheta)=0$. +\end{proof} + +\subsubsection{Partialbruchzerlegungen} +Der vorangegangene Abschnitt hat gezeigt, dass sich Monome im Sinne +der Definition~\ref{buch:integrale:def:monom} algebraisch wie eine +unabhängige Variable verhalten. +Für die Berechnung von Integralen rationaler Funktionen in einer +Variablen $x$ verwendet +man die Partialbruchzerlegung, um Brüche mit einfachen Nennern zu +erhalten. +Es liegt daher nahe, dieselbe Idee auch auf die +Monome $\vartheta_i$ zu verwenden. +Dazu muss man die Brüche besser verstehen, die in einer Partialbruchzerlegung +vorkommen können. + +Eine Partialbruchzerlegung in der Variablen $X$ setzt sich zusammen +aus Brüchen der Form +\begin{equation} +g(X) += +\frac{P(X)}{Q(X)^r}, +\label{buch:integrale:eqn:partialbruch-quotient} +\end{equation} +wobei das Nennerpolynom $Q(X)$ ist ein normiertes irreduzibles Polynom +vom Grad $q$ und $P(X)$ ein beliebiges Polynom vom Grad $p<q$. + +Ist der Grad von $P(X)$ +im Quotienten +\eqref{buch:integrale:eqn:partialbruch-quotient} +grösser als $q$, dann kann man $P(X)$ um Vielfache von Potenzen von +$Q(X)$ reduzieren und eine Summe von Termen der Art +\eqref{buch:integrale:eqn:partialbruch-quotient} +erhalten, deren Nenner alle Grad $< q$ haben. +Die Anzahl neu enstehender Terme ist dabei ums grösser, je grösser +der Grad des Zählers ist. +Dies ist der Inhalt des folgenden Satzes. + +\begin{satz} +\label{buch:integrale:satz:partialbruch-reduktion} +Sei $Q(X)$ ein irreduzibles Polynom vom Grad $q$ und $P(X)$ ein beliebiges +Polynom vom Grad $p < (k+1)q$. +Dann gibt es Polynome $P_i(X)$, $i=0,\dots,k$, vom Grad $<q$ derart, +dass +\begin{equation} +\frac{P(X)}{Q(X)^r} += +\sum_{i=0}^k \frac{P_i(X)}{Q(X)^{r-i}}. +\label{buch:integrale:satz:partialbruch-aufgeloest} +\end{equation} +\end{satz} + +\begin{proof}[Beweis] +Für $k=0$ ist $p<q$ und es muss nichts weiter gezeigt werden. + +Sei jetzt also $k>0$ das kleinste $k$ so, dass $p<(k+1)q$. +Insbesondere ist dann $kq\le p$. +Nach dem euklidischen Satz für die Division von $P(X)$ durch $Q(X)^k$ +gibt es ein Polynom $P_k(X)$ vom Grad $\le p-qk$ derart, dass +\[ +P(X) = P_k(X)Q(X)^k + R_k(X) +\] +mit einem Rest $R_k(X)$ vom Grad $<kq$. +Es folgt +\[ +\frac{ P(X)}{Q(X)^r} += +\frac{P_k(X)}{Q(X)^{r-k}} ++ +\frac{R_k(X)}{Q(X)^r}. +\] +Der zweite Term ist wieder von der im Satz beschriebenen Art, allerdings +mit einem Wert von $k$, der um $1$ kleiner ist. +Durch rekursive Anwendung der gleichen Prozedur in $k$ weiteren Schritten +erhält man die Form +Das gleiche Argument kann jetzt auf das Polynom $R_k(X)$ anstelle +von $P(X)$ angewendet werden, erhalt man den Ausdruck +\eqref{buch:integrale:satz:partialbruch-aufgeloest}. +\end{proof} + +In der differentiellen Algebra $\mathscr{D}(\vartheta)$ muss man jetzt +auch Bescheid wissen über die Partialbruchzerlegung von Ableitungen solcher +Terme. + +\begin{satz} +\label{buch:integrale:satz:partialbruch-monom} +Sei $\vartheta$ ein Monom über $\mathscr{D}$ und +seien $P(\vartheta),Q(\vartheta)\in\mathscr{D}[\vartheta]$ Polynome, +wobei $Q(\vartheta)$ ein irreduzibles normiertes Polynom vom Grad $q$ +ist und $P(\vartheta)$ ein beliebiges Polynom vom Grad $p<q$. +Dann ist die Ableitung +\begin{equation} +g(\vartheta)' += +\biggl( +\frac{P(\vartheta)}{Q(\vartheta)^r} +\biggr)' += +-r\frac{P(\vartheta)Q(\vartheta)'}{Q(\vartheta)^{r+1}} ++ +\frac{P(\vartheta)'}{Q(\vartheta)^r}. +\label{buch:integrale:eqn:partialbruch-ableitung} +\end{equation} +Falls $\vartheta=\exp f$ eine Exponentialfunktion ist und +$Q(\vartheta)=\vartheta$, dann hat die Partialbruchzerlegung von $g(X)'$ +die Form +\begin{equation} +g(\vartheta)' += +\frac{ +{P(\vartheta)'-rP(\vartheta)f} +}{ +\vartheta^{r} +}. +\label{buch:integrale:eqn:partialbruch-ableitung-fall0} +\end{equation} +Für $Q(\vartheta)\ne \vartheta$ oder $\vartheta$ keine Exponentialfunktion +hat die Partialbruchzerlegung von $g(X)'$ die Form +\[ +g(\vartheta)' += +\frac{R(\vartheta)}{Q(\vartheta)^{r+1}}+\frac{S(\vartheta)}{Q(\vartheta)^r} +\qquad\text{mit $R(\vartheta)\ne 0$}. +\] +\end{satz} + +\begin{proof}[Beweis] +Schreibt man den Quotienten $g(\vartheta)$ als +$g(\vartheta)=P(\vartheta)Q(\vartheta)^{-r}$, dann folgt aus +Produkt- und Potenzregel +\[ +g(\vartheta)' += +P(\vartheta)'Q(\vartheta)^{-r} ++ +P(\vartheta)\bigl(Q(\vartheta)^{-r}\bigr)' += +\frac{P(\vartheta)'}{Q(\vartheta)^{r}} +-r\frac{P(\vartheta)Q(\vartheta)'}{Q(\vartheta)^{r+1}}, +\] +dies ist +\eqref{buch:integrale:eqn:partialbruch-ableitung}. +Auf die Ableitungen von $P(\vartheta)$ und $Q(\vartheta)$ können +jetzt die Sätze +\ref{buch:integrale:satz:polynom-ableitung-grad}, +\ref{buch:integrale:satz:log-polynom-ableitung-grad} +und +\ref{buch:integrale:satz:partialbruch-monom} +angewendet werden. +Es sind jweils zwei Dinge zu prüfen: es dürfen in der Partialbruchzerlegung +im Nenner keine Potenzen $<r$ vorkommen und wegen $R\ne 0$ muss der Nenner +$Q(\vartheta)^{r+1}$ vorkommen. + +Falls $\vartheta=\log f$ ist, ist $Q(\vartheta)'$ ein Polynom vom +Grad $q-1$ nach Satz~\eqref{buch:integrale:satz:polynom-ableitung-grad} +\ref{buch:integrale:satz:polynom-ableitung-grad-log} +und $P(\vartheta)'$ ist ein Polynom vom Grad höchstens $p$. +Der Zähler $P(\vartheta)Q(\vartheta)'$ im zweiten Term ist nicht +durch $Q(\vartheta)$ teilbar, denn weil $Q(\vartheta)$ irreduzibel +ist, müsste $Q(\vartheta)$ entweder $P(\vartheta)$ oder $Q(\vartheta)'$ +teilen, aber beide haben zu geringen Grad. + +Falls $\vartheta=\exp f$ ist, ist $Q(\vartheta)'$ ein Polynom vom +Grad $q$ und $P(\vartheta)'$ ist eine Polynom vom Grad $p$. +Der Grad von $P(\vartheta)Q(\vartheta)'$ ist $<2q$, daher +werden nach +Satz~\ref{buch:integrale:satz:partialbruch-reduktion} +keine Nenner mit kleinerem Exponenten als $r$ auftreten. +Es ist noch zu prüfen, ob $Q(\vartheta)$ den Nenner des zweiten Termes +von~\eqref{buch:integrale:eqn:partialbruch-ableitung} teilt. +Nehmen wir $Q(\vartheta)\mid P(\vartheta)Q(\vartheta)'$ an, dann muss +$Q(\vartheta)\mid Q(\vartheta)'$ sein. +Für +\[ +Q(\vartheta) = \vartheta^q + q_{q-1}\vartheta^{q-1} + \dots +\] +ist die Ableitung +\[ +Q(\vartheta)' += +q\vartheta^q f' ++ +\dots +\] +und damit +\[ +\frac{Q(\vartheta)'}{Q(\vartheta)} += +qf'. +\] +Andererseits ist in der +Aussage~\label{buch:integrale:satz:log-polynom-ableitung-exp} +von +Satz~\ref{buch:integrale:satz:log-polynom-ableitung-grad} +angewendet auf das Polynom $Q(\vartheta)$ das Polynom $N(\vartheta)=0$, +und daher muss $Q(\vartheta)=\vartheta$ und $q=1$ sein. +Dies ist der einzige Ausnahmefall, in die Partialbruchzerlegung die Form +\eqref{buch:integrale:eqn:partialbruch-ableitung-fall0} +annimmt. +\end{proof} + +Der Satz besagt also, dass in fast allen Fällen die einzelnen Terme +der Partialbruchzerlegung der Ableitungen wieder von der gleichen +Form sind. + +\subsection{Der Satz von Liouville +\label{buch:integrale:section:liouville}} +Die Funktion +\[ +f(z) = \frac{(z+1)^2}{(z-1)^3} \in \mathbb{C}(z) = \mathscr{D} +\] +kann mit Hilfe der Partialbruchzerlegung +\[ +f(z) += +\frac{1}{z-1} ++ +\frac{4}{(z-1)^2} ++ +\frac{4}{(z-1)^3} +\] +integriert werden. +Die Integranden $(z-1)^{-k}$ mit $k>1$ können mit der Potenzregel +integriert werden, aber für eine Stammfunktion $1/(z-1)$ muss +der Logarithmus $\log(z-1)$ hinzugefügt werden. +Die Stammfunktion +\[ +\int f(z)\,dz += +\int +\frac{1}{z-1} +\,dz ++ +\int +\frac{4}{(z-1)^2} +\,dz ++ +\int +\frac{4}{(z-1)^3} +\,dz += +\log(z-1) +- +\underbrace{\frac{4z-2}{(z-1)^2}}_{\displaystyle\in\mathscr{D}} +\in \mathscr{D}(\log(z-1)) = \mathscr{F} +\] +hat eine sehr spezielle Form. +Sie besteht aus einem Term in $\mathscr{D}$ und einem Logarithmus +einer Funktion von $\mathscr{D}$, also einem Monom über $\mathscr{D}$. + +\subsubsection{Einfach elementare Stammfunktionen} +Der in diesem Abschnitt zu beweisende Satz von Liouville zeigt, +dass die im einführenden Beispiel konstruierte Form der Stammfunktion +eine allgemeine Eigenschaft elementar integrierbarer +Funktionen ist. +Zunächst aber soll dieses Bespiel etwas verallgemeinert werden. + +\begin{satz}[Liouville-Vorstufe für Monome] +\label{buch:integrale:satz:liouville-vorstufe-1} +Sei $\vartheta$ ein Monom über $\mathscr{D}$ und $g\in\mathscr{D}(\vartheta)$ +mit $g'\in\mathscr{D}$. +Dann hat $g$ die Form $v_0 + c_1\vartheta$ mit $v_0\in\mathscr{D}$ und +$c_1\in\mathbb{C}$. +\end{satz} + +\begin{proof}[Beweis] +In Anlehnung an das einführende Beispiel nehmen wir an, dass die +Stammfunktion $g\in\mathscr{D}[\vartheta]$ für ein Monom $\vartheta$ +über $\mathscr{D}$ ist. +Dann hat $g$ die Partialbruchzerlegung +\[ +g += +H(\vartheta) ++ +\sum_{j\le r(i)} \frac{P_{ij}(\vartheta)}{Q_i(\vartheta)^j} +\] +mit irreduziblen normierten Polynomen $Q_i(\vartheta)$ und +Polynomen $P_{ij}(\vartheta)$ vom Grad kleiner als $\deg Q_i(\vartheta)$. +Ausserdem ist $H(\vartheta)$ ein Polynom. +Die Ableitung von $g$ muss jetzt aber wieder in $\mathscr{D}$ sein. +Zu ihrer Berechnung können die Sätze +\ref{buch:integrale:satz:polynom-ableitung-grad}, +\ref{buch:integrale:satz:log-polynom-ableitung-grad} +und +\ref{buch:integrale:satz:partialbruch-monom} +verwendet werden. +Diese besagen, dass in der Partialbruchzerlegung die Exponenten der +Nenner die Quotienten in der Summe nicht kleiner werden. +Die Ableitung $g'\in\mathscr{D}$ darf aber gar keine Nenner mit +$\vartheta$ enthalten, also dürfen die Quotienten gar nicht erst +vorkommen. +$g=H(\vartheta)$ muss also ein Polynom in $\vartheta$ sein. +Die Ableitung des Polynoms darf wegen $g'\in\mathscr{d}$ das Monom +$\vartheta$ ebenfalls nicht mehr enthalten, daher kann es höchstens vom +Grad $1$ sein. +Nach Satz~\ref{buch:integrale:satz:log-polynom-ableitung-grad} +muss ausserdem der Leitkoeffizient von $g$ eine Konstante sein, +das Polynom hat also genau die behauptete Form. +\end{proof} + +\begin{satz}[Liouville-Vorstufe für algebraische Elemente] +\label{buch:integrale:satz:liouville-vorstufe-2} +Sei $\vartheta$ algebraische über $\mathscr{D}$ und +$g\in\mathscr{D}(\vartheta)$ mit $g'\in\mathscr{D}$. +\end{satz} + +\subsubsection{Elementare Stammfunktionen} +Nach den Vorbereitungen über einfach elementare Stammfunktionen +in den Sätzen~\label{buch:integrale:satz:liouville-vorstufe-1} +und +\label{buch:integrale:satz:liouville-vorstufe-2} sind wir jetzt +in der Lage, den allgemeinen Satz von Liouville zu formulieren +und zu beweisen. + +\begin{satz}[Liouville] +Sei $\mathscr{D}$ ein Differentialkörper, $\mathscr{F}$ einfach über +$\mathscr{D}$ mit gleichem Konstantenkörper $\mathbb{C}$. +Wenn $g\in \mathscr{F}$ eine Stammfunktion von $f\in\mathscr{D}$ ist, +also $g'=f$, dann gibt es Zahlen $c_i\in\mathbb{C}$ und +$v_0,v_i\in\mathscr{D}$ derart, dass +\begin{equation} +g = v_0 + \sum_{i=1}^k c_i \log v_i +\qquad\Rightarrow\qquad +g' = v_0' + \sum_{i=1}^k c_i \frac{v_i'}{v_i} = f +\label{buch:integrale:satz:liouville-fform} +\end{equation} +gilt. +\end{satz} + +Der Satz hat zur Folge, dass eine elementare Stammfunktion für $f$ +nur dann existieren kann, wenn sich $f$ in der speziellen Form +\eqref{buch:integrale:satz:liouville-fform} +schreiben lässt. +Die Aufgabe~\ref{buch:integrale:aufgabe:existenz-stammfunktion-dalg} +lässt sich damit jetzt lösen. + + +\begin{proof}[Beweis] +Wenn die Stammfunktion $g\in\mathscr{D}$ ist, dann hat $g$ die Form +\eqref{buch:integrale:satz:liouville-fform} mit $v_0=g$, die Summe +wird nicht benötigt. + +Wir verwenden Induktion nach der Anzahl der Elemente, die zu $\mathscr{D}$ +hinzugefügt werden müssen, um einen Differentialkörper +$\mathscr{F}=\mathscr{D}(\vartheta_1,\dots,\vartheta_n)$ zu konstruieren, +der $g$ enthält. +Da $f\in\mathscr{D}\subset\mathscr{D}(\vartheta_1)$ ist, können wir die +Induktionsannahme auf die Erweiterung +\[ +\mathscr{D}(\vartheta_1)\subset\mathscr{D}(\vartheta_1,\vartheta_2) +\subset\cdots\subset \mathscr{D}(\vartheta_1,\cdots,\vartheta_n)=\mathscr{F} +\] +anwenden, die durch Hinzufügen von nur $n-1$ Elemente +$\vartheta_2,\dots,\vartheta_n$ aus $\mathscr{D}(\vartheta_1)$ den +Differentialkörper $\mathscr{F}$ erreicht, der $g$ enthält. +Sie besagt, dass sich $g$ schreiben lässt als +\[ +g = w_0 + \sum_{i=1}^{k_1} c_i\log w_i +\qquad\text{mit $c_i\in\mathbb{C}$ und $w_0,w_i\in\mathscr{D}(\vartheta_1)$.} +\] +Wir müssen jetzt zeigen, dass sich dieser Ausdruck umformen lässt +in den Ausdruck der Form~\eqref{buch:integrale:satz:liouville-fform}. + +Der Term $w_0\in\mathscr{D}(\vartheta_1)$ hat eine Partialbruchzerlegung +\[ +H(\vartheta_1) ++ +\sum_{j\le r(l)} \frac{P_{lj}(\vartheta_1)}{Q_l(\vartheta_1)^j} +\] +in der Variablen $\vartheta_1$. + +Da $w_i\in\mathscr{D}(\vartheta_1)$ ist, kann man Zähler und Nenner +von $w_i$ als Produkt irreduzibler normierter Polynome schreiben: +\[ +w_i += +\frac{h_i Z_{i1}(\vartheta_1)^{s_{i1}}\cdots Z_{im(i)}^{s_{im(i)}} +}{ +N_{i1}(\vartheta_1)^{t_{i1}}\cdots N_{in(i)}(\vartheta_1)^{t_{in(i)}} +} +\] +Der Logarithmus hat die Form +\begin{align*} +\log w_i +&= \log h_i + +s_{i1} +\log Z_{i1}(\vartheta_1) ++ +\cdots ++ +s_{im(i)} +\log Z_{im(i)} +- +t_{i1} +\log +N_{i1}(\vartheta_1) +- +\cdots +- +t_{in(i)} +\log +N_{in(i)}(\vartheta_1). +\end{align*} +$g$ kann also geschrieben werden als eine Summe von Polynomen, Brüchen, +wie sie in der Partialbruchzerlegung vorkommen, Logarithmen von irreduziblen +normierten Polynomen und Logarithmen von Elementen von $\mathscr{D}$. + +Die Ableitung $g'$ muss jetzt aber wieder in $\mathscr{D}$ sein, beim +Ableiten müssen also alle Terme verschwinden, die $\vartheta_1$ enthalten. +Dabei spielt es eine Rolle, ob $\vartheta_1$ ein Monom oder algebraisch ist. +\begin{enumerate} +\item +Wenn $\vartheta_1$ ein Monom ist, dann kann man wie im Beweis des +Satzes~\ref{buch:integrale:satz:liouville-vorstufe-1} argumentieren, +dass die Brüchterme gar nicht vorkommen und +$H(\vartheta_1)=v_0+c_1\vartheta_1$ sein muss. +Die Ableitung Termen der Form $\log Z(\vartheta_1)$ ist ein Bruchterm +mit dem irreduziblen Nenner $Z(\vartheta_1)$, die ebenfalls verschwinden +müssen. +Ist $\vartheta_1$ eine Exponentialfunktion, dann ist +$\vartheta_1' \in \mathscr{D}(\vartheta_1)\setminus\mathscr{D}$, also muss +$c_1=0$ sein. +Ist $\vartheta_1$ ein Logarithmus, also $\vartheta_1=\log v_1$, dann +kommen nur noch Terme der in +\eqref{buch:integrale:satz:liouville-fform} +erlaubten Form vor. + +\item +Wenn $\vartheta_1$ algebraisch vom Grad $m$ ist, dann ist +\[ +g' = w_0' + \sum_{i=1}^{k_1} d_i\frac{w_i'}{w_i} = f. +\] +Weder $w_0$ noch $\log w_i$ sind in $\mathscr{D}(\vartheta_1)$. +Aber wenn man $\vartheta_1$ durch die $m$ konjugierten Elemente +ersetzt und alle summiert, dann ist +\[ +mf += +\operatorname{Tr}(w_0) + \sum_{i=1}^{k_1} d_i \log\operatorname{Norm}(w_i). +\] +Da die Spur und die Norm in $\mathscr{D}$ sind, folgt, dass +\[ +f += +\underbrace{\frac{1}{m} +\operatorname{Tr}(w_0)}_{\displaystyle= v_0} ++ +\sum_{i=1}^{k_1} \underbrace{\frac{d_i}{m}}_{\displaystyle=c_i} +\log +\underbrace{ \operatorname{Norm}(w_i)}_{\displaystyle=v_i} += +v_0 + \sum_{i=1}^{k_1} c_i\log v_i +\] +die verlangte Form hat. +\qedhere +\end{enumerate} +\end{proof} + +\subsection{Die Fehlerfunktion ist keine elementare Funktion +\label{buch:integrale:section:fehlernichtelementar}} +% \url{https://youtu.be/bIdPQTVF5n4} +Mit Hilfe des Satzes von Liouville kann man jetzt beweisen, dass +die Fehlerfunktion keine elementare Funktion ist. +Dazu braucht man die folgende spezielle Form des Satzes. + +\begin{satz} +\label{buch:integrale:satz:elementarestammfunktion} +Wenn $f(x)$ und $g(x)$ rationale Funktionen von $x$ sind, dann +ist die Stammfunktion von $f(x)e^{g(x)}$ genau dann eine +elementare Funktion, wenn es eine rationale Funktion gibt, die +Lösung der Differentialgleichung +\[ +r'(x) + g'(x)r(x)=f(x) +\] +ist. +\end{satz} + +\begin{satz} +Die Funktion $x\mapsto e^{-x^2}$ hat keine elementare Stammfunktion. +\label{buch:iintegrale:satz:expx2} +\end{satz} + +\begin{proof}[Beweis] +Unter Anwendung des Satzes~\ref{buch:integrale:satz:elementarestammfunktion} +auf $f(x)=1$ und $g(x)=-x^2$ folgt, $e^{-x^2}$ genau dann eine rationale +Stammfunktion hat, wenn es eine rationale Funktion $r(x)$ gibt, die +Lösung der Differentialgleichung +\begin{equation} +r'(x) -2xr(x)=1 +\label{buch:integrale:expx2dgl} +\end{equation} +ist. + +Zunächst halten wir fest, dass $r(x)$ kein Polynom sein kann. +Wäre nämlich +\[ +r(x) += +a_0 + a_1x + \dots + a_nx^n += +\sum_{k=0}^n a_kx^k +\quad\Rightarrow\quad +r'(x) += +a_1 + 2a_2x + \dots + na_nx^{n-1} += +\sum_{k=1}^n +ka_kx^{k-1} +\] +ein Polynom, dann ergäbe sich beim Einsetzen in die Differentialgleichung +\begin{align*} +1 +&= +r'(x)-2xr(x) +\\ +&= +a_1 + 2a_2x + 3a_3x^2 + \dots + (n-1)a_{n-1}x^{n-2} + na_nx^{n-1} +\\ +&\qquad +- +2a_0x -2a_1x^2 -2a_2x^3 - \dots - 2a_{n-1}x^n - 2a_nx^{n+1} +\\ +& +\hspace{0.7pt} +\renewcommand{\arraycolsep}{1.8pt} +\begin{array}{crcrcrcrcrcrcrcr} +=&a_1&+&2a_2x&+&3a_3x^2&+&\dots&+&(n-1)a_{n-1}x^{n-2}&+&na_{n }x^{n-1}& & & & \\ + & &-&2a_0x&-&2a_1x^2&-&\dots&-& 2a_{n-3}x^{n-2}&-&2a_{n-2}x^{n-1}&-&2a_{n-1}x^n&-&2a_nx^{n+1} +\end{array} +\\ +&= +a_1 ++ +(2a_2-2a_0)x ++ +(3a_3-2a_1)x^2 +%+ +%(4a_4-2a_2)x^3 ++ +\dots ++ +(na_n-2a_{n-2})x^{n-1} +- +2a_{n-1}x^n +- +2a_nx^{n+1}. +\end{align*} +Koeffizientenvergleich zeigt, dass $a_1=1$ sein muss. +Aus den letzten zwei Termen liest man ebenfalls mittels Koeffizientenvergleich +ab, dass $a_n=0$ und $a_{n-1}=0$ sein müssen. +Aus den Koeffizienten $(ka_k-2a_{k-2})=0$ folgt, dass +$a_{k-2}=\frac{k}{2}a_k$ für alle $k>1$ sein muss, diese Koeffizienten +verschwinden also auch, inklusive $a_1=0$. +Dies ist allerdings im Widerspruch zu $a_1=1$. +Es folgt, dass $r(x)$ kein Polynom sein kann. + +Der Nenner der rationalen Funktion $r(x)$ hat also mindestens eine Nullstelle +$\alpha$, man kann daher $r(x)$ auch schreiben als +\[ +r(x) = \frac{s(x)}{(x-\alpha)^n}, +\] +wobei die rationale Funktion $s(x)$ keine Nullstellen und keine Pole hat. +Einsetzen in die Differentialgleichung ergibt: +\[ +1 += +r'(x) -2xr(x) += +\frac{s'(x)}{(x-\alpha)^n} +-n +\frac{s(x)}{(x-\alpha)^{n+1}} +- +\frac{2xs(x)}{(x-\alpha)^n}. +\] +Multiplizieren mit $(x-\alpha)^{n+1}$ gibt +\[ +(x-\alpha)^{n+1} += +s'(x)(x-\alpha) +- +ns(x) +- +2xs(x)(x-\alpha) +\] +Setzt man $x=\alpha$ ein, verschwinden alle Terme ausser dem mittleren +auf der rechten Seite, es bleibt +\[ +ns(\alpha) = 0. +\] +Dies widerspricht aber der Wahl der rationalen Funktion $s(x)$, für die +$\alpha$ keine Nullstelle ist. + +Somit kann es keine rationale Funktion $r(x)$ geben, die eine Lösung der +Differentialgleichung~\eqref{buch:integrale:expx2dgl} ist und +die Funktion $e^{-x^2}$ hat keine elementare Stammfunktion. +\end{proof} + +Der Satz~\ref{buch:iintegrale:satz:expx2} rechtfertigt die Einführung +der Fehlerfunktion $\operatorname{erf}(x)$ als neue spezielle Funktion, +mit deren Hilfe die Funktion $e^{-x^2}$ integriert werden kann. + + + diff --git a/buch/chapters/060-integral/diffke.tex b/buch/chapters/060-integral/diffke.tex new file mode 100644 index 0000000..61badc8 --- /dev/null +++ b/buch/chapters/060-integral/diffke.tex @@ -0,0 +1,237 @@ +% +% diffke.tex +% +% (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschlue +% +\subsection{Differentialkörper und ihre Erweiterungen +\label{buch:integral:subsection:diffke}} +Die Ableitung wird in den Grundvorlesungen der Analysis jeweils +als ein Grenzprozess eingeführt. +Die praktische Berechnung von Ableitungen verwendet aber praktisch +nie diese Definition, sondern fast ausschliesslich die rein algebraischen +Ableitungsregeln. +So wie die Wurzelfunktionen im letzten Abschnitt als algebraische +Körpererweiterungen erkannt wurden, muss jetzt auch für die Ableitung +eine rein algebraische Definition gefunden werden. +Die entstehende Struktur ist der Differentialkörper, der in diesem +Abschnitt definiert werden soll. + +% +% Derivation +% +\subsubsection{Derivation} +Für die praktische Berechnung der Ableitung einer Funktion verwendet +man in erster Linie die bekannten Rechenregeln. +Dazu gehören für zwei Funktionen $f$ und $g$ +\begin{itemize} +\item Linearität: $(\alpha f+\beta g)' = \alpha f' + \beta g'$ für +Konstanten $\alpha$, $\beta$. +\item Produktregel: $(fg)'=f'g+fg'$. +\index{Produktregel}% +\item Quotientenregel: $(f/g)' = (f'g-fg')/g^2$. +\index{Quotientenregel}% +\end{itemize} +Die ebenfalls häufig verwendete Kettenregel $(f\circ g)' = (f'\circ g) g'$ +\index{Kettenregel}% +für zusammengesetzte Funktionen wird später kaum benötigt, da wir +Verkettungen durch Körpererweiterungen ersetzen wollen. +Die Ableitung hat somit die rein algebraischen Eigenschaften +einer Derivation gemäss folgender Definition. + +\begin{definition} +Sei $\mathscr{F}$ ein Körper. +Eine {\em Derivation} ist eine lineare Abbildung +\index{Derivation}% +$D\colon \mathscr{F}\to\mathscr{F}$ +mit der Eigenschaft +\[ +D(fg) = (Df)g+f(Dg). +\] +Ein {\em Differentialkörper} ist ein Körper mit einer Derivation. +\index{Differentialkoerper@Differentialkörper}% +\end{definition} + +Die Ableitung in einem Funktionenkörper ist eine Derivation, +die sich zusätzlich dadurch auszeichnet, dass $Dx=x'=1$. +Sie wird weiterhin mit dem Strich bezeichnet. + +% +% Ableitungsregeln +% +\subsubsection{Ableitungsregeln} +Die Definition einer Derivation macht keine Aussagen über Quotienten, +diese kann man aber aus den Eigenschaften einer Derivation sofort +ableiten. +Wir schreiben $q=f/g$ für $f,g\in\mathscr{F}$, dann ist $f=qg$. +Nach der Kettenregel gilt +\( +f'=q'g+qg' +\). +Substituiert man darin $q=f/g$ und löst nach $q'$ auf, erhält man +\[ +f'=q'g+\frac{fg'}{g} +\qquad\Rightarrow\qquad +q'=\frac1{g}\biggl(f'-\frac{fg'}{g}\biggr) += +\frac{f'g-fg'}{g^2}. +\] + + +% +% Konstantenkörper +% +\subsubsection{Konstantenkörper} +Die Ableitung einer Konstanten verschwindet. +Beim Hinzufügen von Funktionen zu einem Funktionenkörper können weitere +Konstanten hinzukommen, ohne dass dies auf den ersten Blick sichtbar wird. +Zum Beispiel enthält $\mathbb{Q}(x,\!\sqrt{x+\pi})$ wegen +$(\!\sqrt{x+\pi})^2-x=\pi$ auch die Konstante $\pi$. +Eine Derivation ermöglicht dank des nachfolgenden Satzes auch, +solche Konstanten zu erkennen. + +\begin{satz} +Sei $\mathscr{F}$ ein Körper und $D$ eine Derivation in $\mathscr{F}$. +Dann ist die Menge $C=\{a\in\mathscr{F}\;|\;Da=0\}$ ein Körper. +\end{satz} + +\begin{proof}[Beweis] +Es muss gezeigt werden, dass Summe und Produkt von Element von $C$ +wieder in $C$ liegen. +Wenn $Da=Db=0$, dann ist $D(a+b)=Da+Db=0$, also ist $a+b\in C$. +Für das Produkt gilt $D(ab)=(Da)b+a(Db)=0b+a0=0$, also ist auch +$ab\in C$. +\end{proof} + +Die Menge $C$ heisst der {\em Konstantenkörper} von $\mathscr{F}$. +\index{Konstantenkörper}% + +% +% Ableitung algebraischer Elemente +% +\subsubsection{Ableitung und algebraische Körpererweiterungen} +Die Rechenregeln in einem Differentialkörper $\mathscr{F}$ legen auch die +Ableitung eines algebraischen Elements fest. +Sei $m(z)=m_0+m_1z+\ldots+m_{n-1}z^{n-1}+z^n$ das Minimalpolynom eines +über $\mathscr{F}$ algebraischen Elements $f$. +Aus $m(f)=0$ folgt durch Ableiten +\[ +0 += +m(f)' += +m_0' ++ +(m_1'f+m_1f') ++ +(m_2'f + m_12f'f) ++ +\ldots ++ +(m_{n-1}'f^{n-1} + m_{n-1} (n-1)f'f^{n-2}) ++ +nf'f^{n-1}. +\] +Zusammenfassen der Ableitung $f'$ auf der linken Seite liefert die +Gleichung +\[ +f'( +m_1+2m_2f+\ldots+(n-1)m_{n-1}f^{n-2}+nf^{n-1} +) += +m_0' + m_1'f + m_2'f^2 + \ldots + m_{n-1}'f^{n-1} + f^n, +\] +aus der +\[ +f' += +\frac{ +m_0' + m_1'f + m_2'f^2 + \ldots + m_{n-1}'f^{n-1} + f^n +}{ +m_1+2m_2f+\ldots+(n-1)m_{n-1}f^{n-2}+nf^{n-1} +} +\] +als Element von $\mathscr{F}(g)$ berechnet werden kann. +Die Ableitungsoperation lässt sich somit auf die Körpererweiterung +$\mathscr{F}(f)$ fortsetzen. + +\begin{beispiel} +Das über $\mathbb{Q}(x)$ algebraische Element $y=\sqrt{ax^2+bx+c}$ +hat das Minimalpolynom +\[ +m(z) += +z^2 - [ax^2+bx+c] +\in +\mathbb{Q}(x)[z] +\] +mit Koeffizienten $m_0 = ax^2+bx+c,$ $m_1=0$ und $m_2=1$. +Es hat die Ableitung +\[ +y' += +\frac{m_0'}{2m_2y} += +\frac{ +2ax+b +}{ +2y +} +\in +\mathbb{Q}(x,y) +\] +wegen $m_0'=2ax+b$. +\end{beispiel} + +\begin{definition} +Eine differentielle Körpererweiterung ist eine Körpererweiterung +$\mathscr{K}\subset\mathscr{F}$ von Differentialkörpern derart, dass +die Ableitungen $D_{\mathscr{K}}$ in $\mathscr{K}$ +und $D_{\mathscr{F}}$ in $\mathscr{F}$ übereinstimmen: +\( +D_{\mathscr{K}}g= D_{\mathscr{F}} g +\) +für alle $g\in\mathscr{K}$. +\end{definition} + +% +% Logarithmus und Exponantialfunktion +% +\subsubsection{Logarithmus und Exponentialfunktion} +Die Exponentialfunktion und der Logarithmus sind nicht algebraisch +über $\mathbb{Q}(x)$, sie lassen sich nicht durch eine algebraische +Gleichung charakterisieren. +Sie zeichnen sich aber durch besondere Ableitungseigenschaften aus. +Die Theorie der gewöhnlichen Differentialgleichungen garantiert, +dass eine Funktion durch eine Differentialgleichung und Anfangsbedingungen +festgelegt ist. +\label{buch:integral:expundlog} +Für die Exponentialfunktion und der Logarithmus haben die +Ableitungseigenschaften +\[ +\exp'(x) = \exp(x) +\qquad\text{und}\qquad +x \log'(x) = 1. +\] +\index{Exponentialfunktion}% +\index{Logarithmus}% +In der algebraischen Beschreibung eines Funktionenkörpers gibt es +das Konzept des Wertes einer Funktion an einer bestimmten Stelle nicht. +Somit können keine Anfangsbedingungen vorgegeben werden. +Da die Gleichung für $\exp$ linear sind, sind Vielfache einer Lösung wieder +Lösungen, +insbesondere ist mit $\exp(x)$ auch $a\exp(x)$ eine Lösung. +Die Gleichung für $\log$ ist nicht linear, aber es ist +$\log'(x) = 1/x$, $\log$ ist eine Stammfunktion von $1/x$, die +nur bis auf eine Konstante bestimmt ist. +Tatsächlich gilt +\[ +x(\log(x)+a)' += +x\log(x) + xa' = x\log(x)=1, +\] +die Funktion $\log(x)+a$ ist also auch eine Lösung für den Logarithmus. + +Die Eigenschaft, dass die Exponentialfunktion die Umkehrfunktion +des Logarithmus ist, lässt sich mit den Mitteln eines Differentialkörpers +nicht ausdrücken. + diff --git a/buch/chapters/060-integral/elementar.tex b/buch/chapters/060-integral/elementar.tex new file mode 100644 index 0000000..fd5f051 --- /dev/null +++ b/buch/chapters/060-integral/elementar.tex @@ -0,0 +1,214 @@ +% +% elementar.tex +% +% (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschlue +% +\subsection{Elementare Funktionen +\label{buch:integral:subsection:elementar}} +Etwas allgemeiner kann man sagen, dass in den +Beispielen~\eqref{buch:integration:risch:eqn:integralbeispiel2} +algebraische Erweiterungen von $\mathbb{Q}(x)$ und Erweiterungen +um Logarithmen oder Exponentialfunktionen vorgekommen sind. +Die Stammfunktionen verwenden dieselben Funktionen oder höchstens +Erweiterungen um Logarithmen von Funktionen, die man schon im +Integranden gesehen hat. + +% +% Exponentielle und logarithmische Funktione +% +\subsubsection{Exponentielle und logarithmische Funktionen} +In Abschnitt~\ref{buch:integral:subsection:diffke} haben wir +bereits die Exponentialfunktion $e^x$ und die Logarithmusfunktion +$\log x$ charakterisiert als eine Körpererweiterung durch +Elemente, die der Differentialgleichung +\[ +\exp' = \exp +\qquad\text{und}\qquad +\log' = \frac{1}{x} +\] +genügen. +Für die Stammfunktionen, die in +Abschnitt~\ref{buch:integral:subsection:logexp} +gefunden wurden, sind aber Logarithmusfunktionen nicht von +$x$ sondern von beliebigen über $\mathbb{Q}$ algebraischen Elementen +nötig. +Um zu verstehen, wie wir diese Funktion als Körpererweiterung erhalten +könnten, betrachten wir die Ableitung einer Exponentialfunktion +$\vartheta(x) = \exp(f(x))$ und eines +Logarithmus +$\psi(x) = \log(f(x))$, wie man sie mit der Kettenregel +berechnet hätte: +\begin{align*} +\vartheta'(x) +&=\exp(f(x)) \cdot f'(x) +& +\psi'(x) +&= +\frac{f'(x)}{f(x)} +\quad\Leftrightarrow\quad +f(x)\psi'(x) += +f'(x). +\end{align*} +Dies motiviert die folgende Definition + +\begin{definition} +\label{buch:integral:def:explog} +Sei $\mathscr{F}$ ein Differentialklörper und $f\in\mathscr{F}$. +Ein Exponentialfunktion von $f$ ist ein $\vartheta\in \mathscr{F}$mit +$\vartheta' = \vartheta f'$. +Ein Logarithmus von $f$ ist ein $\vartheta\in\mathscr{F}$ mit +$f\vartheta'=f'$. +\end{definition} + +Für $f=x$ mit $f'=1$ reduziert sich die +Definition~\ref{buch:integral:def:explog} +auf die Definition der Exponentialfunktion $\exp(x)$ und +Logarithmusfunktion $\log(x)$ auf Seite~\pageref{buch:integral:expundlog}. + + +% +% +% +\subsubsection{Transzendente Körpererweiterungen} +Die Wurzelfunktionen haben wir früher als algebraische Erweiterungen +eines Differentialkörpers erkannt. +Die logarithmischen und exponentiellen Elemente gemäss +Definition~\ref{buch:integral:def:explog} sind nicht algebraisch. + +\begin{definition} +\label{buch:integral:def:transzendent} +Sei $\mathscr{F}\subset\mathscr{G}$ eine Körpererweiterung und +$\vartheta\in\mathscr{G}$. +$\vartheta$ heisst {\em transzendent}, wenn $\vartheta$ nicht +algebraisch ist. +\end{definition} + +\begin{beispiel} +Die Funktion $f = e^x + e^{2x} + e^{x/2}$ ist sicher transzendent, +in diesem Beispiel zeigen wir, dass es mindestens drei verschiedene +Möglichkeiten gibt, eine Körpererweiterung von $\mathbb{Q}(x)$ zu +konstruieren, die $f$ enthält. + +Erste Möglichkeit: $f=\vartheta_1 + \vartheta_2 + \vartheta_3$ mit +$\vartheta_1=e^x$, +$\vartheta_2=e^{2x}$ +und +$\vartheta_3=e^{x/2}$. +Jedes der Elemente $\vartheta_i$ ist exponentiell über $\mathbb{Q}(x)$ und +$f$ ist in +\[ +\mathbb{Q}(x) +\subset +\mathbb{Q}(x,\vartheta_1) +\subset +\mathbb{Q}(x,\vartheta_1,\vartheta_2) +\subset +\mathbb{Q}(x,\vartheta_1,\vartheta_2,\vartheta_3) +\ni +f. +\] +Jede dieser Körpererweiterungen ist transzendent. + +Zweite Möglichkeit: $\vartheta_1=e^x$ ist exponentiell über +$\mathbb{Q}(x)$ und $\mathbb{Q}(x,\vartheta_1)$ enthält wegen +\[ +(\vartheta_1^2)' += +2\vartheta_1\vartheta_1' += +2\vartheta_1^2, +\] +somit ist $\vartheta_1^2=\vartheta_2$ eine Exponentialfunktion von $2x$ +über $\mathbb{Q}(x)$. +Das Element $\vartheta_3=e^{x/2}$ ist zwar auch exponentiell über +$\mathbb{Q}(x)$, es ist aber auch eine Nullstelle des Polynoms +$m(z)=z^2-[\vartheta_1]$. +Die Erweiterung +$\mathbb{Q}(x,\vartheta_1)\subset\mathbb{Q}(x,\vartheta_1,\vartheta_3)$ +ist eine algebraische Erweiterung, die +$f=\vartheta_1 + \vartheta_1^2+\vartheta_3$ enthält. + +Dritte Möglichkeit: $\vartheta_3=e^{x/2}$ ist exponentiell über +$\mathbb{Q}(x)$. +Die transzendente Körpererweiterung +\[ +\mathbb{Q}(x) \subset \mathbb{Q}(x,\vartheta_3) +\] +enthält das Element +$f=\vartheta_3^4+\vartheta_3^2 + \vartheta_3 $. +\end{beispiel} + +Das Beispiel zeigt, dass man nicht sagen kann, dass eine Funktion +ausschliesslich in einer algebraischen oder transzendenten Körpererweiterung +zu finden ist. +Vielmehr gibt es für die gleiche Funktion möglicherweise verschiedene +Körpererweiterungen, die alle die Funktion enthalten können. + +% +% Elementare Funktionen +% +\subsubsection{Elementare Funktionen} +Die Stammfunktionen~\eqref{buch:integration:risch:eqn:integralbeispiel2} +können aufgebaut werden, indem man dem Körper $\mathbb{Q}(x)$ schrittweise +sowohl algebraische wie auch transzendente Elemente hinzufügt, +wie in der folgenden Definition, die dies für abstrakte +Differentialkörpererweiterungen formuliert. + +\begin{definition} +Eine Körpererweiterung $\mathscr{F}\subset\mathscr{G}$ heisst +{\em transzendente elementare Erweiterung}, wenn +$\mathscr{G} = \mathscr{F}(\vartheta_1,\dots,\vartheta_n)$ und +jedes der Element $\vartheta_i$ transzendent und logarithmisch oder +exponentiell ist über +$\mathscr{F}_{i-1}=\mathscr{F}(\vartheta_1,\dots,\vartheta_{i-1})$. +Die Körpererweiterung $\mathscr{F}\subset\mathscr{G}$ heisst +{\em elementare Erweiterung}, wenn +$\mathscr{G} = \mathscr{F}(\vartheta_1,\dots,\vartheta_n)$ und +jedes Element $\vartheta_i$ ist entweder logarithmisch, exponentiell +oder algebraisch über $\mathscr{F}_{i-1}$. +\end{definition} + +Die Funktionen, die als akzeptable Stammfunktionen für das Integrationsproblem +in Betracht kommen, sind also jene, die in einer geeigneten elementaren +Erweiterung des von $\mathbb{Q}(x)$ liegen. +Ausserdem können auch noch weitere Konstanten nötig sein, sowohl +algebraische Zahlen wie auch Konstanten wie $\pi$ oder $e$. + +\begin{definition} +Sei $\mathscr{K}(x)$ der Differentialklörper der rationalen Funktionen +über dem Konstantenkörper $\mathscr{K}\supset\mathbb{Q}$, der in $\mathbb{C}$ +enthalten ist. +Ist $\mathscr{F}\supset \mathscr{K}(x)$ eine transzendente elementare +Erweiterung von $\mathscr{K}(x)$, dann heisst $\mathscr{F}$ +ein Körper von {\em transzendenten elementaren Funktionen}. +Ist $\mathscr{F}$ eine elementare Erweiterung von $\mathscr{K}(x)$, dann +heisst $\mathscr{F}$ ein Körper von {\em elementaren Funktionen}. +\end{definition} + +\subsubsection{Das Integrationsproblem} +Die elementaren Funktionen enthalten alle Funktionen, die sich mit +arithmetischen Operationen, Wurzeln, Exponentialfunktionen, Logarithmen und +damit auch mit trigonometrischen und hyperbolischen Funktionen und ihren +Umkehrfunktionen aus den rationalen Zahlen, der unabhängigen Variablen $x$ +und möglicherweise einigen zusätzlichen Konstanten aufbauen lassen. +Sei also $f$ eine Funktion in einem Körper von elementaren +Funktionen +\[ +\mathscr(F) += +\mathbb{Q}(\alpha_1,\dots,\alpha_l)(x,\vartheta_1,\dots,\vartheta_n). +\] +Eine elementare Stammfunktion ist eine Funktion $F=\int f$ in einer +elementaren Körpererweiterung +\[ +\mathscr{G} += +\mathbb{Q}(\alpha_1,\dots,\alpha_l,\dots,\alpha_{l+k}) +(x,\vartheta_1,\dots,\vartheta_n,\dots,\vartheta_{n+m}) +\] +mit $F'=f$. +Das Ziel ist, $F$ mit Hilfe eines Algorithmus zu bestimmen. + + + diff --git a/buch/chapters/060-integral/erweiterungen.tex b/buch/chapters/060-integral/erweiterungen.tex new file mode 100644 index 0000000..9138f3e --- /dev/null +++ b/buch/chapters/060-integral/erweiterungen.tex @@ -0,0 +1,343 @@ +% +% erweiterungen.tex +% +% (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschlue +% +\subsection{Körpererweiterungen +\label{buch:integral:subsection:koerpererweiterungen}} +Das Beispiel des Körpers $\mathbb{Q}(\!\sqrt{2})$ auf Seite +\pageref{buch:integral:beispiel:Qsqrt2} illustriert eine Möglichkeit, +einen kleinen Körper zu vergrössern. +Das Prinzip ist verallgemeinerungsfähig und soll in diesem Abschnitt +erarbeitet werden. + +% +% algebraische Zahl-Erweiterungen +\subsubsection{Algebraische Erweiterungen} +Der Körper $\mathbb{Q}(\!\sqrt{2})$ entsteht aus dem Körper $\mathbb{Q}$ +dadurch, dass man die Zahl $\sqrt{2}$ hinzufügt und alle erlaubten +arithmetischen Operationen zulässt. +Die Darstellung von Elementen von $\mathbb{Q}(\!\sqrt{2})$ als +$a+b\sqrt{2}$ ist möglich, weil die Zahl $\alpha=\sqrt{2}$ die +algebraische Relation +\[ +\alpha^2-2 = \sqrt{2}^2 -2 = 0 +\] +erfüllt. +Voraussetzung für diese Aussage ist, dass es die Zahl $\sqrt{2}$ in einem +geeigneten grösseren Körper gibt. +Die reellen oder komplexen Zahlen bilden einen solchen Körper. +Wir verallgemeinern diese Situation wie folgt. + +\begin{definition} +Ist $K$ ein Körper, dann heisst ein Körper $L$ mit $K\subset L$ ein +{\em Erweiterungskörper} von $K$. +\index{Erweiterungskoerper@Erweiterungskörper} +\end{definition} + +\begin{definition} +\label{buch:integral:definition:algebraisch} +Sei $K\subset L$ eine Körpererweiterung. +Das Element $\alpha\in L$ heisst {\em algebraisch} über $K$, wenn es +ein Polynom $p(x)\in K[x]$ gibt derart, dass $\alpha$ eine Nullstelle +von $p(x)$ ist, also gibt mit $p(\alpha)=0$. +Das normierte Polynom $m(x)$ geringsten Grades, welches $m(\alpha)=0$ +erfüllt, heisst das {\em Minimalpolynom} von $\alpha$. +\index{Minimalpolynom}% +\end{definition} + +Man sagt auch $\alpha$ ist algebraisch vom Grad $n$, wenn das Minimalpolynom +den Grad $n$ hat. +Wenn $\alpha\ne 0$ algebraisch ist, dann ist auch $1/\alpha$ algebraisch, +wie das folgende Argument zeigt. +Für das Minimalpolynom $m(x)$ von $\alpha$, ist $m(\alpha)=0$. +Teilt man diese Gleichung durch $\alpha^n$ teilt, erhält man +\[ +m_0\frac{1}{\alpha^n} ++ +m_1\frac{1}{\alpha^{n-1}} ++ +\ldots ++ +m_{n-1}\frac{1}{\alpha} ++ +1 += +0, +\] +das Polynom +\[ +\hat{m}(x) += +m_0x^n + m_1x^{n-1} + \ldots m_{n-1} x + 1 +\in +K[x] +\] +hat also $\alpha^{-1}$ als Nullstelle. +Das Polynom $\hat{m}(x)$ beweist daher, dass $\alpha^{-1}$ algebraisch ist. + +Die Zahl $\sqrt{2}\in\mathbb{R}$ ist also algebraisch über $\mathbb{Q}$ +und jede andere Quadratwurzel von Elementen von $\mathbb{Q}$ ist +ebenfalls algebraisch über $\mathbb{Q}$. +Auch der Körper $\mathbb{Q}(\alpha)$ kann für jede andere Quadratwurzel +auf die genau gleiche Art wie für $\sqrt{2}$ konstruiert werden. + +\begin{definition} +\label{buch:integral:definition:algebraischeerweiterung} +Sei $K\subset L$ eine Körpererweiterung und $\alpha\in L$ ein algebraisches +Element mit Minimalpolynom $m(x)\in K[x]$. +Dann heisst die Menge +\begin{equation} +K(\alpha) += +\{ +a_0 + a_1\alpha + \ldots +a_n\alpha^n +\;|\; +a_i\in K +\} +\label{buch:integral:eqn:algelement} +\end{equation} +mit $n=\deg m(x) - 1$ der durch {\em Adjunktion} oder Hinzufügen +von $\alpha$ erhaltene Erweiterungsköper. +\end{definition} + +Wieder muss nur überprüft werden, dass jedes Produkt oder jeder +Quotient von Ausdrücken der Form~\eqref{buch:integral:eqn:algelement} +wieder in diese Form gebracht werden kann. +Dazu sei +\[ +m(x) += +m_0+m_1x + m_2x^2 ++\ldots +m_{n-1}x^{n-1} + x^n +\] +das Minimalpolynom von $\alpha$. +Die Gleichung $m(\alpha)=0$ kann nach $\alpha^n$ aufgelöst werden und +liefert +\[ +\alpha^n = -m_0 - m_1\alpha - m_2\alpha^2 -\ldots -m_{n-1}\alpha^{n-1}. +\] +Damit kann jede Potenz von $\alpha$ mit einem Exponenten grösser als $n$ +in eine Linearkombination von Potenzen mit kleineren Exponenten +reduziert werden. +Ein Polynom in $\alpha$ kann also immer auf die +Form~\eqref{buch:integral:eqn:algelement} +gebracht werden. + +Es muss aber noch gezeigt werden, dass auch der Kehrwert eines Elements +der Form~\eqref{buch:integral:eqn:algelement} in dieser Form geschrieben +werden kann. +Sei also $a(\alpha)$ so ein Element, dann sind die beiden Polynome +$a(x)$ und $m(x)$ teilerfremd, der grösste gemeinsame Teiler ist $1$. +Mit dem erweiterten euklidischen Algorithmus kann man zwei Polynome +$s(x)$ und $t(x)$ finden derart, dass $s(x)a(x)+t(x)m(x)=1$. +Setzt man $\alpha$ für $x$ ein, verschwindet das Minimalpolynom und +es bleibt +\[ +s(\alpha)a(\alpha) = 1 +\qquad\Rightarrow\qquad +s(\alpha) = \frac{1}{a(\alpha)}. +\] +Damit ist $s(\alpha)$ eine Darstellung von $1/a(\alpha)$ in der +Form~\eqref{buch:integral:eqn:algelement}. + +% +% Komplexe Zahlen +% +\subsubsection{Komplexe Zahlen} +Die imaginäre Einheit $i$ hat die Eigenschaft, dass $i^2=-1$, insbesondere +ist sie Nullstelle des Polynoms $m(x)=x^2+1\in\mathbb{Q}[x]$. +Die Menge $\mathbb{Q}(i)$ ist daher eine algebraische Körpererweiterung +von $\mathbb{Q}$ bestehend aus den komplexen Zahlen mit rationalem +Real- und Imaginärteil. + +% +% Transzendente Körpererweiterungen +% +\subsubsection{Transzendente Erweiterungen} +Nicht alle Zahlen in $\mathbb{R}$ sind algebraisch. +Lindemann bewies 1882 einen allgemeinen Satz, aus dem folgt, +dass $\pi$ und $e$ nicht algebraisch sind, es gibt also +kein Polynom mit rationalen Koeffizienten, welches $\pi$ +oder $e$ als Nullstelle hat. + +\begin{definition} +Eine Zahl $\alpha\in L$ in einer Körpererweiterung $K\subset L$ +heisst {\em transzendent}, wenn $\alpha$ nicht algebraisch ist, +wenn es also kein Polynom in $K[x]$ gibt, welches $\alpha$ als +Nullstelle hat. +\end{definition} + +Die Zahlen $\pi$ und $e$ sind also transzendent. +Eine andere Art, diese Eigenschaft zu beschreiben ist zu sagen, +dass die Potenzen +\[ +1=\pi^0, \pi, \pi^2,\pi^3,\dots +\] +linear unabhängig sind. +Gäbe es nämlich eine lineare Abhängigkeit, dann gäbe es Koeffizienten +$l_i$ derart, dass +\[ +l_0 + l_1\pi^1 + l_2\pi^2 + \ldots + l_{n-1}\pi^{n-1} + l_{n}\pi^n = l(\pi)=0, +\] +und damit wäre dann ein Polynom gefunden, welches $\pi$ als Nullstelle hat. + +Selbstverstländlich kann man zu einem transzendenten Element $\alpha$ +immer noch einen Körper konstruieren, der alle Zahlen enthält, welche man +mit den arithmetischen Operationen aus $\alpha$ bilden kann. +Man kann ihn schreiben als +\[ +K(\alpha) += +\biggl\{ +\frac{p(\alpha)}{q(\alpha)} +\;\bigg|\; +p(x),q(x)\in K[x] \wedge p(x)\ne 0 +\biggr\}, +\] +aber die Vereinfachungen zur +Form~\eqref{buch:integral:eqn:algelement}, die bei einem algebraischen +Element $\alpha$ möglich waren, können jetzt nicht mehr durchgeführt +werden. +$K\subset K(\alpha)$ ist zwar immer noch eine Körpererweiterung, aber +$K(\alpha)$ ist nicht mehr ein endlichdimensionaler Vektorraum. +Die Körpererweiterung $K\subset K(\alpha)$ heisst {\em transzendent}. + +% +% rationale Funktionen als Körpererweiterungen +% +\subsubsection{Rationale Funktionen als Körpererweiterung} +Die unabhängige Variable wird bei Rechnen so behandelt, dass die +Potenzen alle linear unabhängig sind. +Dies ist die Grundlage für den Koeffizientenvergleich. +Der Körper der rationalen Funktion $K(x)$ +ist also eine transzendente Körpererweiterung von $K$. + +% +% Erweiterungen mit algebraischen Funktionen +% +\subsubsection{Algebraische Funktionen} +Für das Integrationsproblem möchten wir nicht nur rationale Funktionen +verwenden können, sondern auch Wurzelfunktionen. +Wir möchten also zum Beispiel auch mit der Funktion $\sqrt{ax^2+bx+c}$ +und allem, was man mit arithmetischen Operationen daraus machen kann, +arbeiten können. +Eine Körpererweiterung, die $\sqrt{ax^2+bx+c}$ enthält, enthält auch +alles, was man daraus bilden kann. +Doch wie bekommen wir die Funktion $\sqrt{ax^2+bx+c}$ in den Körper? + +Die Art und Weise, wie man Wurzeln in der Schule kennenlernt ist als +eine neue Operation, die zu einer Zahl die Quadratwurzel liefert. +Diese Idee, den Körper mit einer weiteren Funktion anzureichern, +führt über nicht auf eine nützliche neue algebraische Struktur. +Wir dürfen daher $\sqrt{ax^2+bx+c}$ nicht als die Zusammensetzung +einer einzelnen neuen Funktion $\sqrt{\phantom{A}}$ mit +einem Polynom betrachten. + +Die Wurzel $\sqrt{ax^2+bx+c}$ ist aber auch die Nullstelle des Polynoms +\[ +p(z) += +z^2 - [ax^2+bx+c] +\in +K(x)[z] +\] +mit Koeffizienten in $K(x)$. +Die eckigen Klammern sollen helfen, die Koeffizienten in $K(x)$ +zu erkennen. +Die Funktion $\sqrt{ax^2+bx+c}$ ist also algebraisch über $K(x)$. +Einen Funktionenkörper, der die Funktion enthält, kann man also erhalten, +indem man den Körper $K(x)$ um das über $K(x)$ algebraische Element +$y=\sqrt{ax^2+bx+c}$ zu $K(x,y)=K(x,\sqrt{ax^2+bx+c}$ erweitert. +Wurzelfunktion werden daher nicht als Zusammensetzungen, sondern als +algebraische Erweiterungen eines Funktionenkörpers betrachtet. + +% +% Konjugation +% +\subsubsection{Konjugation} +Die komplexen Zahlen sind die algebraische Erweiterung der reellen Zahlen +um die Nullstelle $i$ des Polynoms $m(x)=x^2+1$. +Die Zahl $-i$ ist aber auch eine Nullstelle von $m(x)$, die mit algebraischen +Mitteln nicht von $i$ unterscheidbar ist. +Die komplexe Konjugation $a+bi\mapsto a-bi$ vertauscht die beiden +\index{Konjugation, komplexe}% +\index{komplexe Konjugation}% +Nullstellen des Minimalpolynoms. + +Ähnliches gilt für die Körpererweiterung $\mathbb{Q}(\!\sqrt{2})$. +$\sqrt{2}$ und $\sqrt{2}$ sind beide Nullstellen des Minimalpolynoms +$m(x)=x^2-2$, die mit algebraischen Mitteln nicht unterschiedbar sind. +Sie haben zwar verschiedene Vorzeichen, doch ohne eine Ordnungsrelation +können diese nicht unterschieden werden. +\index{Ordnungsrelation}% +Eine Ordnungsrelation zwischen rationalen Zahlen lässt sich zwar +definieren, aber die Zahl $\sqrt{2}$ ist nicht rational, es braucht +also eine zusätzliche Annahme, zum Beispiel die Identifikation von +$\sqrt{2}$ mit einer reellen Zahl in $\mathbb{R}$, wo der Vergleich +möglich ist. + +Auch in $\mathbb{Q}(\!\sqrt{2})$ ist die Konjugation +$a+b\sqrt{2}\mapsto a-b\sqrt{2}$ eine Selbstabbildung, die +die Körperoperationen respektiert. + +Das Polynom $m(x)=x^2-x-1$ hat die Nullstellen +\[ +\frac12 \pm\sqrt{\biggl(\frac12\biggr)^2+1} += +\frac{1\pm\sqrt{5}}{2} += +\left\{ +\bgroup +\renewcommand{\arraystretch}{2.20} +\renewcommand{\arraycolsep}{2pt} +\begin{array}{lcl} +\displaystyle +\frac{1+\sqrt{5}}{2} &=& \phantom{-}\varphi \\ +\displaystyle +\frac{1-\sqrt{5}}{2} &=& \displaystyle-\frac{1}{\varphi}. +\end{array} +\egroup +\right. +\] +Sie erfüllen die gleiche algebraische Relation $x^2=x+1$. +Sie sind sowohl im Vorzeichen wie auch im absoluten Betrag +verschieden, beides verlangt jedoch eine Ordnungsrelation als +Voraussetzung, die uns fehlt. +Aus beiden kann man mit rationalen Operationen $\sqrt{5}$ gewinnen, +denn +\[ +\sqrt{5} += +4\varphi-1 += +-4\biggl(-\frac{1}{\varphi}\biggr)^2-1 +\qquad\Rightarrow\qquad +\mathbb{Q}(\!\sqrt{5}) += +\mathbb{Q}(\varphi) += +\mathbb{Q}(-1/\varphi). +\] +Die Abbildung $a+b\varphi\mapsto a-b/\varphi$ ist eine Selbstabbildung +des Körpers $\mathbb{Q}(\!\sqrt{5})$, welche die beiden Nullstellen +vertauscht. + +Dieses Phänomen gilt für jede algebraische Erweiterung. +Die Nullstellen des Minimalpolynoms, welches die Erweiterung +definiert, sind grundsätzlich nicht unterscheidbar. +Mit der Adjunktion einer Nullstelle enthält der Erweiterungskörper +auch alle anderen. +Sind $\alpha_1$ und $\alpha_2$ zwei Nullstellen des Minimalpolynoms, +dann definiert die Abbildung $\alpha_1\mapsto\alpha_2$ eine Selbstabbildung, +die die Nullstellen permutiert. + +Die algebraische Körpererweiterung +$\mathbb{Q}(x)\subset \mathbb{Q}(x,\sqrt{ax^2+bx+c})$ +ist nicht unterscheidbar von +$\mathbb{Q}(x)\subset \mathbb{Q}(x,-\!\sqrt{ax^2+bx+c})$. +Für das Integrationsproblem bedeutet dies, dass alle Methoden so +formuliert werden müssen, dass die Wahl der Nullstellen auf die +Lösung keinen Einfluss haben. + + diff --git a/buch/chapters/060-integral/eulertransformation.tex b/buch/chapters/060-integral/eulertransformation.tex index a597892..65d48b2 100644 --- a/buch/chapters/060-integral/eulertransformation.tex +++ b/buch/chapters/060-integral/eulertransformation.tex @@ -93,6 +93,7 @@ Durch Auflösung nach der hypergeometrischen Funktion bekommt man die folgende Integraldarstellung. \begin{satz}[Euler] +\index{Satz!Eulertransformation}% \label{buch:integrale:eulertransformation:satz} Die hypergeometrische Funktion $\mathstrut_2F_1$ kann durch das Integral @@ -219,6 +220,7 @@ Funktionen $\mathstrut_{p+1}F_{q+1}$ durch ein Integral, dessen Integrand $\mathstrut_pF_q$ enthält, ausdrücken lässt. \begin{satz} +\index{Satz!Euler-Transformationformel}% Es gilt die sogennannte Euler-Transformationsformel \index{Euler-Transformation}% \[ diff --git a/buch/chapters/060-integral/experiments/rxy.maxima b/buch/chapters/060-integral/experiments/rxy.maxima new file mode 100644 index 0000000..0d5a56d --- /dev/null +++ b/buch/chapters/060-integral/experiments/rxy.maxima @@ -0,0 +1,9 @@ +y: sqrt(a*x^2+b*x+c); + +F: log(x + b/(2 * a) + y/sqrt(a))/sqrt(a); + +f: diff(F, x); + +ratsimp(f); + +ratsimp(y*f); diff --git a/buch/chapters/060-integral/fehlerfunktion.tex b/buch/chapters/060-integral/fehlerfunktion.tex index 581e56a..6b87044 100644 --- a/buch/chapters/060-integral/fehlerfunktion.tex +++ b/buch/chapters/060-integral/fehlerfunktion.tex @@ -622,7 +622,9 @@ Resultat für die Laplace-Transformierte von $f(t)$, sie ist \frac1s\biggl(1-\frac12e^{-a\sqrt{s}} \biggr). \] -\begin{satz} Die Laplace-Transformierte der Fehlerfunktion mit Argument +\begin{satz} +\index{Satz!Laplace-Transformierte der Fehlerfunktion}% +Die Laplace-Transformierte der Fehlerfunktion mit Argument $a/2\sqrt{t}$ ist \begin{equation} f(t) = \operatorname{erf}\biggl(\frac{a}{2\sqrt{t}}\biggr) diff --git a/buch/chapters/060-integral/iproblem.tex b/buch/chapters/060-integral/iproblem.tex new file mode 100644 index 0000000..85db464 --- /dev/null +++ b/buch/chapters/060-integral/iproblem.tex @@ -0,0 +1,93 @@ +% +% iproblem.tex +% +% (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschlue +% +\subsection{Das Integrationsproblem +\label{buch:integral:subsection:integrationsproblem}} +\index{Integrationsproblem}% +Die Ableitung ist ein einem Differentialkörper mit Hilfe der Ableitungsregeln +immer ausführbar, ganz ähnlich wie die Berechnung von Potenzen in einem Körper +immer ausführbar ist. +Die Umkehrung, also eine sogenannte Stammfunktion zu finden, ist dagegen +deutlich schwieriger. + +\begin{definition} +\index{Stammfunktion} +Eine {\em Stammfunktion} einer Funktion $f\in\mathscr{K}$ im Funktionenkörper +$\mathscr{K}$ ist eine Funktion $F\in\mathscr{K}$ derart, dass $F'=f$. +Wir schreiben auch $F=\int f$. +\end{definition} + +Zwei Stammfunktionen $F_1$ und $F_2$ einer Funktion $f\in\mathscr{K}$ +haben die Eigenschaft +\[ +\left.\begin{aligned} +F_1' &= f \\ +F_2' &= f +\end{aligned}\quad\right\} +\qquad +\Rightarrow +\qquad +(F_1-F_2)' = 0 +\qquad\Rightarrow\qquad +F_1-F_2\in\mathscr{C}, +\] +die beiden Stammfunktionen unterscheiden sich daher nur durch eine +Konstante. + +\subsubsection{Stammfunktion von Polynomen} +Für Polynome ist das Problem leicht lösbar. +Aus der Ableitungsregel +\[ +\frac{d}{dx} x^n = nx^{n-1} +\] +folgt, dass +\[ +\int x^n = \frac{1}{n+1} x^{n+1} +\] +eine Stammfunktion von $x^n$ ist. +Da $\int$ linear ist, ergibt sich damit auch eine Stammfunktion für +ein beliebiges Polynom +\[ +g(x) += +g_0 + g_1x + g_2x^2 + \dots g_nx^n += +\sum_{k=0}^n g_kx^k +\in\mathbb{Q}(x) +\] +angeben: +\begin{equation} +\int g(x) += +g_0x + \frac12g_1x^2 + \frac13g_2x^3 + \dots \frac{1}{n+1}g_nx^{n+1} += +\sum_{k=0}^n +\frac{g_k}{k+1}x^{k+1}. +\label{buch:integral:iproblem:eqn:polyintegral} +\end{equation} + +\subsubsection{Körpererweiterungen} +Obwohl die Ableitung in einem Differentialkörper immer ausgeführt werden +kann, gibt es keine Garantie, dass es eine Stammfunktion im gleichen +Körper gibt. +Im kleinsten denkbaren Funktionenkörper $\mathbb{Q}(x)$ +haben die negativen Potenzen linearer Funktionen die Stammfunktionen +\[ +\int +\frac{1}{(x-\alpha)^k} += +\frac{1}{(-k+1)(x-\alpha)^{k-1}} +\] +für $k\ne 1$, sind also wieder in $\mathbb{Q}(x)$. +Für $k=1$ ist aber +\[ +\int \frac{1}{x-\alpha} += +\log(x-\alpha), +\] +es braucht also eine Körpererweiterung um $\log(x-\alpha)$, damit +$(x-\alpha)^{-1}$ eine Stammfunktion in $\mathbb{Q}(x,\log(x-\alpha))$ +hat. + diff --git a/buch/chapters/060-integral/irat.tex b/buch/chapters/060-integral/irat.tex new file mode 100644 index 0000000..4c472ea --- /dev/null +++ b/buch/chapters/060-integral/irat.tex @@ -0,0 +1,140 @@ +% +% irat.tex +% +% (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschlue +% +\subsection{Integration rationaler Funktionen +\label{buch:integral:subsection:rationalefunktionen}} +Für die Integration der rationalen Funktionen lernt man in einem +Analysis-Kurs üblicherweise ein Lösungsverfahren. +Dies zeigt zunächst, dass rationale Funktionen immer eine Stammfunktion +in einem geeigneten Erweiterungskörper haben. +Es deutet aber auch an, dass Stammfunktionen eine ziemlich spezielle +Form haben, die später als +Satz von Liouville~\ref{buch:integral:satz:liouville} +ein besondere Rolle spielen wird. + +% +% Aufgabenstellung +% +\subsubsection{Aufgabenstellung} +In diesem Abschnitt ist eine rationale Funktion $f(x)\in\mathbb{Q}(x)$ +gegeben, deren Stammfunktion bestimmt werden soll. +Als rationale Funktion kann sie als Bruch +\begin{equation} +f(x) = \frac{p(x)}{q(x)} +\label{buch:integral:irat:eqn:quotient} +\end{equation} +mit Polynomen $p(x),q(x)\in\mathbb{Q}[x]$ geschrieben werden. +Gesucht ist ein Erweiterungskörper $\mathscr{K}\supset \mathbb{Q}(x)$ +derart und eine Stammfunktion $F\in\mathscr{K}$ von $f$, also $F'=f$. + +% +% Polynomdivision +% +\subsubsection{Polynomdivision} +Der Quotient~\eqref{buch:integral:irat:eqn:quotient} kann durch Polynomdivision +mit Rest vereinfacht werden in einen polynomialen Teil und einen echten +Bruch: +\begin{equation} +f(x) += +g(x) ++ +\frac{a(x)}{b(x)} +\label{buch:integral:irat:eqn:polydiv} +\end{equation} +mit Polynomen $g(x),a(x),b(x)\in\mathbb[Q](x)$ und $\deg a(x) < \deg b(x)$. +Für den ersten Summanden liefert +\eqref{buch:integral:iproblem:eqn:polyintegral} eine Stammfunktion. +Im Folgenden bleibt also nur noch der zweite Term zu behandeln. + +% +% Partialbruchzerlegung +% +\subsubsection{Partialbruchzerlegung} +Zur Berechnung des Integral des Bruchs +in~\eqref{buch:integral:irat:eqn:polydiv} wird die Partialbruchzerlegung +benötigt. +Der Einfachheit halber nehmen wir an, dass wir den Körper $\mathbb{Q}(x)$ +mit alle Nullstellen $\beta_i$ des Nenner-Polynoms $b(x)$ zu einem Körper +$\mathscr{K}$ erweitert haben, in dem Nenner in Linearfaktoren zerfällt. +Unter diesen Voraussetzungen hat die Partialbruchzerlegung die Form +\begin{equation} +\frac{a(x)}{b(x)} += +\sum_{i=1}^m +\sum_{k=1}^{k_i} +\frac{A_{ik}}{(x-\beta_i)^k}, +\label{buch:integral:irat:eqn:partialbruch} +\end{equation} +wobei $k_i$ die Vielfachheit der Nullstelle $\beta_i$ ist. +Die Koeffizienten $A_{ik}$ können zum Beispiel mit Hilfe eines linearen +Gleichungssystems bestimmt werden. + +Um eine Stammfunktion zu finden, muss man also Stammfunktionen für +jeden einzelnen Summanden bestimmen. +Für Exponenten $k>1$ im Nenner eines Terms der +Partialbruchzerlegung~\eqref{buch:integral:irat:eqn:partialbruch} +kann dazu die Regel +\[ +\int \frac{A_{ik}}{(x-\beta_i)^k} += +\frac{A_{ik}}{(-k+1)(x-\beta_i)^{k-1}} +\] +verwendet werden. +Diese Stammfunktion liegt wieder in $\mathscr{K}(x)$ liegt. + +% +% Körpererweiterungen +% +\subsubsection{Körpererweiterung} +Für $k=1$ ist eine logarithmische Erweiterung um die Funktion +\begin{equation} +\int \frac{A_{i1}}{x-\alpha_i} += +A_{i1} +\log(x-\alpha_i) +\label{buch:integral:irat:eqn:logs} +\end{equation} +nötig. +Es gibt also eine Stammfunktion in einem Erweiterungskörper, sofern +er zusätzlich alle logarithmischen Funktionen +in~\ref{buch:integral:irat:eqn:logs} enthält. +Sie hat die Form +\[ +\sum_{i=1}^m A_{i1} \log(x-\beta_i), +\] +wobei $A_{i1}\in\mathscr{K}$ ist. + +Setzt man alle vorher schon gefundenen Teile der Stammfunktion zusammen, +kann man sehen, dass die Stammfunktion die Form +\begin{equation} +F(x) = v_0(x) + \sum_{i=1}^m c_i \log v_i(x) +\label{buch:integral:irat:eqn:liouvillstammfunktion} +\end{equation} +haben muss. +Dabei ist $v_0(x)\in\mathscr{K}(x)$ und besteht aus der Stammfunktion +des polynomiellen Teils und den Stammfunktionen der Terme der Partialbruchzerlegung mit Exponenten $k>1$. +Die logarithmischen Terme bestehen aus den Konstanten $c_i=A_{i1}$ +und den Logarithmusfunktionen $v_i(x)=x-\beta_i\in\mathscr{K}(x)$. +Die Funktion $f(x)$ muss daher die Form +\[ +f(x) += +v_0'(x) ++ +\sum_{i=1}^m c_i\frac{v'_i(x)}{v_i(x)} +\] +gehabt haben. +Die Form~\eqref{buch:integral:irat:eqn:liouvillstammfunktion} +der Stammfunktion ist nicht eine Spezialität der rationalen Funktionen. +Sie wird auch bei grösseren Funktionenkörpern immer wieder auftreten +und ist als Satz von Liouville bekannt. + +% +% Minimale algebraische Erweiterung +% +\subsubsection{Minimale algebraische Erweiterung} +XXX Rothstein-Trager + diff --git a/buch/chapters/060-integral/logexp.tex b/buch/chapters/060-integral/logexp.tex new file mode 100644 index 0000000..e0efab2 --- /dev/null +++ b/buch/chapters/060-integral/logexp.tex @@ -0,0 +1,146 @@ +% +% logexp.tex +% +% (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschlue +% +\subsection{Log-Exp-Notation für trigonometrische und hyperbolische Funktionen +\label{buch:integral:subsection:logexp}} +Die Integration rationaler Funktionen hat bereits gezeigt, dass +eine Stammfunktion nicht immer im Körper der rationalen Funktionen +existiert. +Es kann notwendig sein, dem Körper logarithmische Erweiterungen der Form +$\log(x-\alpha)$ hinzuzufügen. + +Es können jedoch noch ganz andere neue Funktionen auftreten, wie die +folgende Zusammenstellung einiger Stammfunktionen zeigt: +\begin{equation} +\begin{aligned} +\int\frac{dx}{1+x^2} +&= +\arctan x, +\\ +\int \cos x\,dx +&= +\sin x, +\\ +\int\frac{dx}{\sqrt{1-x^2}} +&= +\arcsin x, +\\ +\int +\operatorname{arcosh} x\,dx +&= +x \operatorname{arcosh} x - \sqrt{x^2-1}. +\end{aligned} +\label{buch:integration:risch:allgform} +\end{equation} +In der Stammfunktion treten Funktionen auf, die auf den ersten +Blick nichts mit den Funktionen im Integranden zu tun haben. + +\subsubsection{Trigonometrische und hyperbolische Funktionen} +Die trigonometrischen und hyperbolichen Funktionen +in~\eqref{buch:integration:risch:allgform} +lassen sich alle durch Exponentialfunktionen ausdrücken. +So gilt +\begin{equation} +\begin{aligned} +\sin x &= \frac{1}{2i}\bigl( e^{ix} - e^{-ix}\bigr), +& +&\qquad& +\cos x &= \frac{1}{2}\bigl( e^{ix} + e^{-ix}\bigr), +\\ +\sinh x &= \frac12\bigl( e^x - e^{-x} \bigr), +& +&\qquad& +\cosh x &= \frac12\bigl( e^x + e^{-x} \bigr). +\end{aligned} +\label{buch:integral:risch:trighyp} +\end{equation} +Nach Multiplikation mit $e^{ix}$ bzw.~$e^{x}$ entsteht eine +quadratische Gleichung in $e^{ix}$ bzw.~$e^{x}$. +Die Lösungsformel für quadratische Gleichungen erlaubt daher, $e^{ix}$ +bzw.~$e^{x}$ zu finden und damit auch die Umkehrfunktionen. +Die Rechnung ergibt +\begin{equation} +\begin{aligned} +\arcsin y +&= +\frac{1}{i}\log\bigl( +iy\pm\sqrt{1-y^2} +\bigr), +& +&\qquad& +\arccos y +&= +\log\bigl( +y\pm \sqrt{y^2-1} +\bigr), +\\ +\operatorname{arsinh}y +&= +\log\bigl( +y \pm \sqrt{1+y^2} +\bigr), +& +&\qquad& +\operatorname{arcosh} y +&= +\log\bigl( +y\pm \sqrt{y^2-1} +\bigr). +\end{aligned} +\label{buch:integral:risch:trighypinv} +\end{equation} +Alle Funktionen, die man aus dem elementaren Analysisunterricht +kennt, können also mit Hilfe von Exponentialfunktionen und Logarithmen +geschrieben werden. +Man nennt dies die $\log$-$\exp$-Notation der trigonometrischen +und hyperbolischen Funktionen. +\index{logexpnotation@$\log$-$\exp$-Notation}% + +\subsubsection{$\log$-$\exp$-Notation} +Wendet man die Substitutionen +\eqref{buch:integral:risch:trighyp} +und +\eqref{buch:integral:risch:trighypinv} +auf die Integrale +\eqref{buch:integration:risch:allgform} +an, entstehen die Beziehungen +\begin{equation} +\begin{aligned} +\int\frac{1}{1+x^2} +&= +\frac12i\bigl( +\log(1-ix) - \log(1+ix) +\bigr), +\\ +\int\bigl( +{\textstyle\frac12} +e^{ix} ++ +{\textstyle\frac12} +e^{-ix} +\bigr) +&= +-{\textstyle\frac12}ie^{ix} ++{\textstyle\frac12}ie^{-ix}, +\\ +\int +\frac{1}{\sqrt{1-x^2}} +&= +-i\log\bigl(ix+\sqrt{1-x^2}), +\\ +\int \log\bigl(x+\sqrt{x^2-1}\bigr) +&= +x\log\bigl(x+\sqrt{x^2-1}\bigr) - \sqrt{x^2-1}. +\end{aligned} +\label{buch:integration:risch:eqn:integralbeispiel2} +\end{equation} +Die in den Stammfuntionen auftretenden Funktionen treten entweder +schon im Integranden auf oder sind Logarithmen von solchen +Funktionen. +Zum Beispiel hat der Nenner im ersten Integral die Faktorisierung +$1+x^2=(1+ix)(1-ix)$, in der Stammfunktion findet man die Logarithmen +der Faktoren. + + diff --git a/buch/chapters/060-integral/rational.tex b/buch/chapters/060-integral/rational.tex new file mode 100644 index 0000000..0ca164d --- /dev/null +++ b/buch/chapters/060-integral/rational.tex @@ -0,0 +1,203 @@ +% +% rational.tex +% +% (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschlue +% +\subsection{Rationale Funktionen und Funktionenkörper +\label{buch:integral:subsection:rational}} +Welche Funktionen sollen als Antwort auf die Frage nach einer Stammfunktion +akzeptiert werden? +Polynome in der unabhängigen Variablen $x$ sollten sicher dazu gehören, +also alles, was man mit Hilfe der Multiplikation, Addition und Subtraktion +aus Koeffizienten zum Beispiel in den rationalen Zahlen $\mathbb{Q}$ und +der unabhängigen Variablen aufbauen kann. +Doch welche weiteren Operationen sollen zugelassen werden und was lässt +sich über die entstehende Funktionenmenge aussagen? + +\subsubsection{Körper} +Die kleinste Zahlenmenge, in der alle arithmetischen Operationen soweit +sinnvoll durchgeführt werden können, ist die Menge $\mathbb{Q}$ der +rationalen Zahlen. +Etwas formaler ist eine solche Menge, in der die Arithmetik uneingeschränkt +ausgeführt werden kann, ein Körper gemäss der folgenden Definition. +\index{Korper@Körper}% + +\begin{definition} +\label{buch:integral:definition:koerper} +Eine {\em Körper} ist eine Menge $K$ mit zwei Verknüpfungen $+$, die Addition, +und $\cdot$, die Multiplikation, +welche die folgenden Eigenschaften haben. +\begin{center} +\renewcommand{\tabcolsep}{0pt} +\begin{tabular}{p{68mm}p{4mm}p{68mm}} +%Eigenschaften der +Addition: +\begin{enumerate}[{\bf A}.1)] +\item assoziativ: $(a+b)+c=a+(b+c)$ +für alle $a,b,c\in K$ +\item kommutativ: $a+b=b+a$ +für alle $a,b\in K$ +\item Neutrales Element der Addition: es gibt ein Element $0\in K$ mit +der Eigenschaft $a+0=a$ für alle $a\in K$ +\item Additiv inverses Element: zu jedem Element $a\in K$ gibt es das Element +$-a$ mit der Eigenschaft $a+(-a)=0$. +\end{enumerate} +&&% +%Eigenschaften der +Multiplikation: +\begin{enumerate}[{\bf M}.1)] +\item assoziativ: $(a\cdot b)\cdot c=a\cdot (b\cdot c)$ +für alle $a,b,c\in K$ +\index{Assoziativgesetz}% +\index{assoziativ}% +\item kommutativ: $a\cdot b=b\cdot a$ +für alle $a,b\in K$ +\index{Kommutativgesetz}% +\index{kommutativ}% +\item Neutrales Element der Multiplikation: es gibt ein Element $1\in K$ mit +der Eigenschaft $a\cdot 1 =a$ für alle $a\in K$ +\index{neutrales Element}% +\item Multiplikativ inverses Element: zu jedem Element +\index{inverses Element}% +$a\in K^*=K\setminus\{0\}$ +gibt es das Element $a^{-1}$ mit der Eigenschaft $a\cdot a^{-1}=1$. +\index{Einheitengruppe}% +\index{Gruppe der invertierbaren Elemente}% +\end{enumerate} +\end{tabular} +\end{center} +\vspace{-22pt} +Ausserdem gilt das Distributivgesetz: für alle $a,b,c\in K$ gilt +$a\cdot(b+c)=a\cdot b + a\cdot c$. +\index{Disitributivgesetz}% +Die Menge $K^*$ heisst auch die {\em Einheitengruppe} oder die +{\em Gruppe der invertierbaren Elemente} des Körpers. +\end{definition} + +Das Assoziativgesetz {\bf A}.1 besagt, dass Summen mit beliebig +vielen Termen ohne Klammern geschrieben werden kann, weil es nicht +darauf ankommt, in welcher Reihenfolge die Additionen ausgeführt werden. +Ebenso für das Assoziativgesetz {\bf M}.1 der Multiplikation. +Die Kommutativgesetze {\bf A}.2 und {\bf M}.2 implizieren, dass man +nicht auf die Reihenfolge der Summanden oder Faktoren achten muss. +Das Distributivgesetz schliesslich besagt, dass man Produkte ausmultiplizieren +oder gemeinsame Faktoren ausklammern kann, wie man es in der Schule +gelernt hat. + +Die rellen Zahlen $\mathbb{R}$ und die komplexen Zahlen $\mathbb{C}$ +bilden ebenfalls einen Körper, die von den rationalen Zahlen geerbten +Eigenschaften der Verknüpfungen setzen sich auf $\mathbb{R}$ und +$\mathbb{C}$ fort. +Es lassen sich allerdings auch Zahlkörper zwischen $\mathbb{Q}$ und +$\mathbb{R}$ konstruieren, wie das folgende Beispiel zeigt. + +\begin{beispiel} +\label{buch:integral:beispiel:Qsqrt2} +Die Menge +\[ +\mathbb{Q}(\!\sqrt{2}) += +\{ +a+b\sqrt{2} +\;|\; +a,b\in \mathbb{Q} +\} +\] +ist eine Teilmenge von $\mathbb{R}$. +Die Rechenoperationen haben alle verlangten Eigenschaften, wenn gezeigt +werden kann, dass Produkte und Quotienten von Zahlen in $\mathbb{Q}(\!\sqrt{2})$ +wieder in $\mathbb{Q}(\!\sqrt{2})$ sind. +Dazu rechnet man +\begin{align*} +(a+b\sqrt{2}) +(c+d\sqrt{2}) +&= +ac + 2bd + (ad+bc)\sqrt{2} \in \mathbb{Q}(\!\sqrt{2}) +\intertext{und} +\frac{a+b\sqrt{2}}{c+d\sqrt{2}} +&= +\frac{a+b\sqrt{2}}{c+d\sqrt{2}} +\cdot +\frac{c-d\sqrt{2}}{c-d\sqrt{2}} += +\frac{ac-2bd +(-ad+bc)\sqrt{2}}{c^2-2d^2} +\\ +&= +\underbrace{\frac{ac-2bd}{c^2-2d^2}}_{\displaystyle\in\mathbb{Q}} ++ +\underbrace{\frac{-ad+bc}{c^2-2d^2}}_{\displaystyle\in\mathbb{Q}} +\sqrt{2} +\in \mathbb{Q}(\!\sqrt{2}). +\qedhere +\end{align*} +\end{beispiel} + +% +% Rationale Funktionen +% +\subsubsection{Rationalen Funktionen} +Die als Antworten auf die Frage nach einer Stammfunktion akzeptablen +Funktionen sollten alle rationalen Zahlen sowie die unabhängige +Variable $x$ enthalten. +Ausserdem sollte man beliebige arithmetische Operationen mit +diesen Ausdrücken durchführen können. +Mit Addition, Subtraktion und Multiplikation entstehen aus den +rationalen Zahlen und der unabhängigen Variablen die Polynome $\mathbb{Q}[x]$ +(siehe auch Abschnitt~\ref{buch:potenzen:section:polynome}). + + +\begin{definition} +Die Menge +\[ +\mathbb{Q}(x) += +\biggl\{ +\frac{p(x)}{q(x)} +\;\bigg|\; +p(x),q(x)\in\mathbb{Q}[x] +\wedge +q(x)\ne 0 +\biggr\}, +\] +bestehend aus allen Quotienten von Polynomen, deren Nenner nicht +das Nullpolynom ist, heisst der Körper der {\em rationalen Funktionen} +\index{rationale Funktion}% +mit Koeffizienten in $\mathbb{Q}$. +\end{definition} + +Die Definition erlaubt, dass der Nenner Nullstellen hat, die sich in +Polen der Funktion äussern. +Die Eigenschaften eines Körpers sind sicher erfüllt, wenn wir uns +nur davon überzeugen können, +dass die arithmetischen Operationen nicht aus dieser Funktionenmenge +herausführen. +Dazu muss man nur verstehen, dass die Operation des gleichnamig Machens +zweier Brüche auch für Nenner funktioniert, die Polynome sind, und die +Summe wzeier Brüche von Polynomen wieder in einen Bruch von Polynomen +umwandelt. + +% +% Warum rationale Zahlen? +% +\subsubsection{Warum die Beschränkung auf rationale Zahlen?} +Aus mathematischer Sicht gibt es gute Gründe, Analysis im Körper $\mathbb{R}$ +oder $\mathbb{C}$ zu betreiben. +Da Ableitung und Integral als Grenzwerte definiert sind, stellt diese +Wahl des Körpers sicher, dass die Grenzwerte auch tatsächlich existieren. +Der Fundamentalsatz der Algebra garantiert, dass über $\mathbb{C}$ +jedes Polynome in Linearfaktoren zerlegt werden kann. + +Der Einfachheit der Analyse in $\mathbb{R}$ oder $\mathbb{C}$ steht +die Schwierigkeit gegenüber, beliebige Elemente von $\mathbb{R}$ in +einem Computer exakt darzustellen. +Für Brüche in $\mathbb{Q}$ gibt es eine solche Darstellung durch +Paare von Ganzzahlen, wie sie die GNU Multiprecision Arithmetic Library +\cite{buch:gmp} realisiert. +Irrationale Zahlen dagegen können nur exakt gehandhabt werden, wenn +man im wesentlichen symbolisch mit ihnen rechnet. +Die Grundlage dafür wird in +Abschnitt~\ref{buch:integral:subsection:koerpererweiterungen} +gelegt. + + + diff --git a/buch/chapters/060-integral/risch.tex b/buch/chapters/060-integral/risch.tex index 6c8ff96..2080ce8 100644 --- a/buch/chapters/060-integral/risch.tex +++ b/buch/chapters/060-integral/risch.tex @@ -6,7 +6,20 @@ \section{Der Risch-Algorithmus \label{buch:integral:section:risch}} \rhead{Risch-Algorithmus} +Die Lösung des Integrationsproblem für $\mathbb{Q}(x)$ und für +$\mathbb{Q}(x,y)$ mit $y=\!\sqrt{ax^2+bx+c}$ hat gezeigt, dass +ein Differentialkörper genau die richtige Bühne für dieses Unterfangen +sein dürfte. +Die Stammfunktionen konnten in einem Erweiterungskörper gefunden +werden, der ein paar Logarithmen hinzugefügt worden sind. +Tatsächlich lässt sich in diesem Rahmen sogar ein Algorithmus +formulieren, der in einem noch zu definierenden Sinn ``elementare'' +Funktionen als Stammfunktionen finden kann oder beweisen kann, dass +eine solche nicht existiert. +Dieser Abschnitt soll einen Überblick darüber geben. +\input{chapters/060-integral/logexp.tex} +\input{chapters/060-integral/elementar.tex} diff --git a/buch/chapters/060-integral/sqrat.tex b/buch/chapters/060-integral/sqrat.tex new file mode 100644 index 0000000..787cfc9 --- /dev/null +++ b/buch/chapters/060-integral/sqrat.tex @@ -0,0 +1,480 @@ +% +% sqrat.tex +% +% (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschlue +% +\subsection{Integranden der Form $R(x,\sqrt{ax^2+bx+c})$ +\label{buch:integral:subsection:rxy}} +Für rationale Funktionen lässt sich immer eine Stammfunktion in einem +Erweiterungskörper angeben, der durch hinzufügen einzelner logarithmischer +Funktionen entsteht. +Die dabei verwendeten Techniken lassen sich verallgemeinern. +Zur Illustration und Motivation des später beschriebenen Risch-Algorithmus +stellen wir uns in diesem Abschnitt der Aufgabe, Integrale +mit einem Integranden zu berechnen, der eine rationale Funktion von $x$ +und $\sqrt{ax^2+bx+c}$ ist. + +% +% Aufgabenstellung +% +\subsubsection{Aufgabenstellung} +Eine rationale Funktion von $x$ und $\sqrt{ax^2+bx+c}$ ist ein +Element des Differentialkörpers, den man aus $\mathbb{Q}(x)$ durch +hinzufügen des Elementes +\[ +y=\sqrt{ax^2+bx+c} +\] +erhält. +Eine Funktion $f\in\mathbb{Q}(x,y)$ kann geschrieben werden als Bruch +\begin{equation} +f += +\frac{ +\tilde{p}_0 + \tilde{p}_1y + \dots + \tilde{p}_n y^n +}{ +\tilde{q}_0 + \tilde{q}_1y + \dots + \tilde{q}_m y^m +} +\label{buch:integral:sqrat:eqn:ftilde} +\end{equation} +mit rationalen Koeffizienten $\tilde{p}_i,\tilde{q}_i\in\mathbb{Q}(x)$. +Gesucht ist eine Stammfunktion von $f$. + +% +% Algebraische Vereinfachungen +% +\subsubsection{Algebraische Vereinfachungen} +Da $x^2=ax^2+bx+c$ ein Polynom ist, sind auch alle geraden Potenzen +von $y$ Polynome in $\mathbb{Q}(x)$, +und die ungeraden Potenzen von $y$ lassen sich als Produkt aus einem +Polynom und dem Faktor $y$ schreiben. +Der Integrand~\eqref{buch:integral:sqrat:eqn:ftilde} +lässt sich daher vereinfachen zu einem Bruch der Form +\begin{equation} +f(x) += +\frac{p_0+p_1y}{q_0+q_1y}, +\label{buch:integral:sqrat:eqn:moebius} +\end{equation} +wobei $p_i$ und $q_i$ rationale Funktionen in $\mathbb{Q}(x)$ sind. + +% +% Rationalisieren +% +\subsubsection{Rationalisieren} +Unschön an der Form~\eqref{buch:integral:sqrat:eqn:moebius} ist die +Tatsache, dass $y$ sowohl im Nenner wie auch im Zähler auftreten kann. +Da aber $y$ die quadratische Identität $y^2=ax^2+bx+c$ erfüllt, +kann das $y$ im Nenner durch Erweitern mit $q_0-q_1y$ zum verschwinden +gebracht werden. +Die Rechnung ergibt +\begin{align*} +\frac{p_0+p_1y}{q_0+q_1y} +&= +\frac{p_0+p_1y}{q_0+q_1y} +\cdot +\frac{q_0-q_1y}{q_0-q_1y} += +\frac{(p_0+p_1y)(q_0-q_1y)}{q_0^2-q_1^2y^2} +\\ +&= +\frac{p_0q_0-p_1q_1(ax^2+bx+c)}{q_0^2-q_1^2(ax^2+bx+c)} ++ +\frac{q_0p_1-q_1p_0}{q_0^2-q_1^2(ax^2+bx+c)} y. +\end{align*} +Die Quotienten enthalten $y$ nicht mehr, sind also in $\mathbb{Q}(x)$. +In der späteren Rechnung stellt sich heraus, dass es praktischer ist, +das $y$ im Nenner zu haben, was man durch erweitern mit $y$ wieder +unter Ausnützung von $y^2=ax^2+bx+c$ erreichen kann. +Die zu integrierende Funktion kann also in der Form +\begin{equation} +f(x) += +W_1 + W_2\frac{1}{y} +\label{buch:integral:sqint:eqn:w1w2y} +\end{equation} +geschrieben werden mit rationalen Funktionen +$W_1,W_2\in\mathbb{Q}(x)$. +Eine Stammfunktion von $W_1$ kann mit der Methode von +Abschnitt~\ref{buch:integral:subsection:rationalefunktionen} +gefunden werden. +Im Folgenden kümmern wir uns daher nur noch um $W_1$. + +% +% Polynomdivision +% +\subsubsection{Polynomdivision} +Die Funktion $W_2$ in \eqref{buch:integral:sqint:eqn:w1w2y} ist eine +rationale Funktion $W_2\in \mathbb{K}(x)$, also ein Bruch mit Polynomen +in $x$ als Zähler und Nenner. +Durch Polynomdivision mit Rest können wir $W_2$ schreiben als +\[ +W_1 = \varphi + W_3, +\] +wobei $\varphi$ ein Polynom in $x$ ist und $W_3$ eine rationale +Funktion, deren Zählergrad kleiner ist als der Nennergrad. +Zur Bestimmung der Stammfunktion bleibt jetzt nur noch +\begin{equation} +\int W_2\frac{1}{y} += +\int \frac{\varphi}{y} ++ +\int W_3\frac1{y} +\label{buch:integral:sqint:eqn:Wy} +\end{equation} +zu berechnen. + +% +% Integranden der Form $\varphi(x)/y$ +% +\subsubsection{Integranden der Form $\varphi(x)/y$} +Der erste Term in~\eqref{buch:integral:sqint:eqn:Wy} ist ein Integral eines +Quotienten eines Polynoms geteilt durch $y$. +Solche Integrale können, wie im Folgenden gezeigt werden soll, reduziert +werden auf das Integral von $1/y$. +Genauer gilt der folgende Satz. + +\begin{satz} +\label{buch:integral:sqint:satz:polyy} +Sei $\varphi\in\mathcal{K}(x)$ ein Polynom in $x$, dann gibt +es ein Polynom $\psi\in\mathcal{K}(x)$ vom Grad $\deg\psi < \deg\varphi$, +und $A\in\mathcal{K}$ derart, dass +\begin{equation} +\int \frac{\varphi}{y} += +\psi y + A\int\frac{1}{y}. +\label{buch:integral:sqint:eqn:phipsi} +\end{equation} +\end{satz} + +\begin{proof}[Beweis] +Wir schreiben die Polynome in der Form +\begin{align*} +\varphi +&= +\varphi_mx^m + \varphi_{m-1}x^{m-1} + \dots + \varphi_2x^2 + \varphi_1x + \varphi_0 +\\ +\psi +&= +\phantom{\varphi_mx^m+\mathstrut} +\psi_{m-1}x^{m-1} + \dots + \psi_2x^2 + \psi_1x + \psi_0 +\intertext{mit der Ableitung} +\psi' +&= +\phantom{\varphi_mx^m+\mathstrut} +\psi_{m-1}(m-1)x^{m-2} + \dots + 2\psi_2x + \psi_1. +\end{align*} +Wir leiten die Gleichung~\eqref{buch:integral:sqint:eqn:phipsi} +nach $x$ ab und erhalten +\begin{align*} +\frac{\varphi}{y} +&= +\psi'y + \psi y' + \frac{A}{y} += +\psi'y + \psi \frac{ax+b/2}{y} + \frac{A}{y}. +\intertext{Durch Multiplikation mit $y$ wird die Gleichung wesentlich +vereinfacht zu} +\varphi +&= +\psi' y^2 + \psi y' y + A += +\psi' \cdot(ax^2+bx+c) + \psi\cdot (ax+b/2) + A. +\end{align*} +Auf beiden Seiten stehen Polynome, man kann daher versuchen, die +Koeffizienten von $\psi$ mit Hilfe eines Koeffizientenvergleichs zu +bestimmen. +Dazu müssen die Produkte auf der rechten Seite ausmultipliziert werden. +So ergeben sich die Gleichungen +\begin{equation} +\renewcommand{\arraycolsep}{2pt} +\begin{array}{lcrcrcrcrcrcrcr} +\varphi_m +&=& +(m-1)\psi_{m-1} a &+& & & +&+& +\psi_{m-1} a & & & & +\\ +\varphi_{m-1} +&=& +(m-2)\psi_{m-2}a +&+& +(m-1)\psi_{m-1}b +& & +&+& +\psi_{m-2}a +&+& +\psi_{m-1}\frac{b}2 +& & +\\ +\varphi_{m-2} +&=& +(m-3)\psi_{m-3}a +&+& +(m-2)\psi_{m-2}b +&+& +(m-1)\psi_{m-1}c +&+& +\psi_{m-3}a +&+& +\psi_{m-2}\frac{b}2 +& & +\\ +&\vdots&&&&&&&&&&& +\\ +\varphi_2 +&=& +\psi_{1\phantom{-m}}a +&+& +2\psi_{2\phantom{-m}}b +&+& +3\psi_{3\phantom{-m}}c +&+& +\psi_{1\phantom{-m}}a +&+& +\psi_{2\phantom{-m}}\frac{b}2 +& & +\\ +\varphi_1 +&=& +& & +\psi_{1\phantom{-m}}b +& & +2\psi_{2\phantom{-m}}c +&+& +\psi_{0\phantom{-m}}a +&+& +\psi_{1\phantom{-m}}\frac{b}2 +\\ +\varphi_0 +&=& +& & +& & +\psi_{1\phantom{-m}}c +& & +&+& +\psi_{0\phantom{-m}}\frac{b}2 +&+&A +\end{array} +\end{equation} +In jeder Gleichung kommen hächstens drei der Koeffizienten von $\psi$ vor. +Fasst man sie zusammen und stellt die Terme etwas um, +erhält man die einfacheren Gleichungen +\begin{equation} +\renewcommand{\arraycolsep}{2pt} +\renewcommand{\arraystretch}{1.3} +\begin{array}{lcrcrcrcrcrcrcr} +\varphi_m +&=& +(m-0){\color{red}\psi_{m-1}}a & & & & +& & +\\ +\varphi_{m-1} +&=& +(m-1+\frac12)\psi_{m-1}b +&+& +(m-1){\color{red}\psi_{m-2}}a +& & +& & +\\ +\varphi_{m-2} +&=& +(m-1)\psi_{m-1}c +&+& +(m-2+\frac12)\psi_{m-2}b +&+& +(m-2){\color{red}\psi_{m-3}}a +& & +\\ +&\vdots&&&&&&&&&&& +\\ +\varphi_2 +&=& +3\psi_{3\phantom{-m}}c +&+& +(2+\frac12)\psi_{2\phantom{-m}}b +&+& +2{\color{red}\psi_{1\phantom{-m}}}a +& & +\\ +\varphi_1 +&=& +2\psi_{2\phantom{-m}}c +&+& +(1+\frac12)\psi_{1\phantom{-m}}b +&+& +{\color{red}\psi_{0\phantom{-m}}}a +& & +\\ +\varphi_0 +&=& +\psi_{1\phantom{-m}}c +& & +&+& +(0+\frac12) \psi_{0\phantom{-m}}b +&+&{\color{red}A} +\end{array} +\end{equation} +Die erste Gleichung kann wegen $a\ne 0$ nach $\psi_{m-1}$ aufgelöst werden, +dadurch ist $\psi_{m-1}$ bestimmt. +In allen folgenden Gleichungen taucht jeweils ein neuer Koeffizient +von $\psi$ auf, der rot hervorgehoben ist. +Wieder wegen $a\ne 0$ kann die Gleichung immer nach dieser Variablen +aufgelöst werden. +Die Gleichungen zeigen daher, dass die Koeffizienten des Polynoms $\psi$ +in absteigender Folge und die Konstanten $A$ eindeutig bestimmt werden. +\end{proof} + +Mit diesem Satz ist das Integral über den Teil $\varphi/y$ auf den +Fall des Integrals von $1/y$ reduziert. +Letzteres wird im nächsten Abschnitt berechnet. + +% +% Das Integral von $1/y$ +% +\subsubsection{Das Integral von $1/y$} +Eine Stammfunktion von $1/y$ kann mit etwas Geschick mit den +Interationstechniken gefunden werden, die man in einem Analysis-Kurs +lernt. +Durch Ableitung der Funktion +\[ +F += +\frac{1}{\sqrt{a}}\log\biggl(x+\frac{b}{2a}+\frac{y}{\sqrt{a}}\biggr) +\] +kann man nachprüfen, dass $F$ eine Stammfunktion von $1/y$ ist, +also +\begin{equation} +\int +\frac{1}{y} += +\frac{1}{\sqrt{a}}\log\biggl(x+\frac{b}{2a}+\frac{y}{\sqrt{a}}\biggr). +\end{equation} + +% +% Partialbruchzerlegung +% +\subsubsection{Partialbruchzerlegung} +In der rationalen Funktion $W_3$ in \eqref{buch:integral:sqint:eqn:Wy} +hat der Zähler kleineren Grad als der Nenner, sie kann daher wieder +in Partialbrüche +\[ +W_3 += +\sum_{i=1}^n +\sum_{k=1}^{k_i} +\frac{A_{ik}}{(x-\alpha_i)^k} +\] +mit den Nullstellen $\alpha_i$ des Nenners von $W_3$ mit Vielfachheiten +$k_i$ zerlegt werden. +Die Stammfunktion von $W_3/y$ wird damit zu +\begin{equation} +\int W_3\frac{1}{y} += +\sum_{i=1}^n +\sum_{k=1}^{k_i} +A_{ik} +\int +\frac{1}{(x-\alpha_i)^ky} += +\sum_{i=1}^n +\sum_{k=1}^{k_i} +A_{ik} +\int +\frac{1}{(x-\alpha_i)^k \sqrt{ax^2+bx+c}}. +\end{equation} +Die Stammfunktion ist damit reduziert auf Integrale der Form +\begin{equation} +\int +\frac{1}{(x-\alpha)^k \sqrt{ax^2+bx+c}} +\label{buch:integral:sqrat:eqn:2teart} +\end{equation} +mit $k>0$. + +% +% Integrale der Form \eqref{buch:integral:sqrat:eqn:2teart} +% +\subsubsection{Integrale der Form \eqref{buch:integral:sqrat:eqn:2teart}} +Die Integrale~\eqref{buch:integral:sqrat:eqn:2teart} +können mit Hilfe der Substution +\[ +t=\frac{1}{x-\alpha} +\qquad\text{oder}\qquad +x=\frac1t+\alpha +\] +In ein Integral verwandelt werden, für welches bereits eine +Berechnungsmethode entwickelt wurde. +Dazu berechnet man +\begin{align*} +y^2 +&= a\biggl(\frac1t+\alpha\biggr)^2 + b\biggl(\frac1t+\alpha\biggr) + c +\\ +&= +a\biggl(\frac{1}{t^2}+2\frac{\alpha}{t}+\alpha^2\biggr) ++\frac{b}{t}+b\alpha+c += +\frac{1}{t^2}\bigl( +\underbrace{a+(2a\alpha+b)t+(a\alpha^2+c)t^2}_{\displaystyle=Y^2} +\bigr) +\intertext{und damit} +y&=\frac{Y}{t}. +\end{align*} +Führt man die Substition +$dx = -dt/t^2$ im Integral aus, erhält man +\begin{align*} +\int\frac{dx}{(x-\alpha)^ky} +&= +- +\int +t^k\cdot\frac{t}{Y}\frac{dt}{t^2} += +-\int\frac{t^{k-1}}{Y}\,dt. +\end{align*} +Das letzte Integral ist wieder von der Form, die in +Satz~\ref{buch:integral:sqint:satz:polyy} behandelt wurde. +Insbesondere gibt es ein Polynom $\psi$ vom Grad $k-2$ und +eine Konstante $A$ derart, dass +\[ +\int\frac{1}{(x-\alpha)^ky} += +\psi Y + A\int\frac{1}{Y} +\] +ist. +Damit ist das Integral von $R(x,y)$ vollständig bestimmt. + +\subsubsection{Beobachtungen} +Die eben dargestellte Berechnung des Integrals von $R(x,y)$ zeigt einige +Gemeinsamkeiten mit der entsprechenden Rechnung für rationale +Integranden, aber auch einige wesentliche Unterschiede. +Wieder zeigt sich, dass Polynomdivision und Partialbruchzerlegung +die zentralen Werkzeuge sind, mit denen der Integrand zerlegt und +leichter integrierbare Funktionen umgeformt werden kann. +Andererseits ist der in +Satz~\ref{buch:integral:sqint:satz:polyy} +zusammengefasste Schritt eine wesentliche zusätzliche Vereinfachung, +die keine Entsprechung bei rationalen Integranden hat. + +Die gefunden Form der Stammfunktion hat jedoch die allgemeine +Form +\[ +\int R(x,y) += +v_0 + +C +\log\biggl(x+\frac{b}{2a}+\frac{y}{\sqrt{a}}\biggr) ++ +\sum_{i=1}^n c_i +\log v_i, +\] +die ganz der bei rationalen Integranden gefunden Form entspricht. +Darin ist $v_0$ die Summe der angefallenen rationalen Teilintegrale, +also $v_0\in\mathcal{K}(x,y)$. +Die $v_i\in\mathcal{K}(x,y)$ sind die entsprechenden Logarithmusfunktionen, +die bei der Berechnung der Integrale \eqref{buch:integral:sqrat:eqn:2teart} +auftreten. +Insbesondere liefert die Rechnung eine Körpererweiterung von +$\mathcal{K}(x,y)$ um die logarithmische Funktionen +$\log(x+b/2a+y/\!\sqrt{y})$ und $\log v_i$, in der $R(x,y)$ eine +Stammfunktion hat. + + + + diff --git a/buch/chapters/070-orthogonalitaet/bessel.tex b/buch/chapters/070-orthogonalitaet/bessel.tex index 3e9412a..0ef28fd 100644 --- a/buch/chapters/070-orthogonalitaet/bessel.tex +++ b/buch/chapters/070-orthogonalitaet/bessel.tex @@ -1,7 +1,8 @@ % % Besselfunktionen also orthogonale Funktionenfamilie % -\section{Bessel-Funktionen als orthogonale Funktionenfamilie} +\section{Bessel-Funktionen als orthogonale Funktionenfamilie +\label{buch:orthogonalitaet:section:bessel}} \rhead{Bessel-Funktionen} Auch die Besselfunktionen sind eine orthogonale Funktionenfamilie. Sie sind Funktionen differenzierbaren Funktionen $f(r)$ für $r>0$ diff --git a/buch/chapters/070-orthogonalitaet/chapter.tex b/buch/chapters/070-orthogonalitaet/chapter.tex index 4756844..fba1298 100644 --- a/buch/chapters/070-orthogonalitaet/chapter.tex +++ b/buch/chapters/070-orthogonalitaet/chapter.tex @@ -8,20 +8,66 @@ \label{buch:chapter:orthogonalitaet}} \lhead{Orthogonalität} \rhead{} +In der linearen Algebra lernt man, dass orthonormierte Basen für die +Lösung vektorgeometrischer Probleme, bei denen auch das Skalarprodukt +involviert ist, besonders günstig sind. +Die Zerlegung eines Vektors in einer Basis verlangt normalerweise nach +der Lösung eines linearen Gleichungssystems, für orthonormierte +Basisvektoren beschränkt sie sich auf die Berechnung von Skalarprodukten. + +Oft dienen spezielle Funktionen als Basis der Lösungen einer linearen +partiellen Differentialgleichung (siehe Kapitel~\ref{buch:chapter:pde}). +Die Randbedingungen müssen dazu in der gewählten Basis von Funktionen +zerlegt werden. +Fourier ist es gelungen, die Idee des Skalarproduktes und der Orthogonalität +auf Funktionen zu verallgemeinern und so zum Beispiel das Wärmeleitungsproblem +zu lösen. + +Der Orthonormalisierungsprozess von Gram-Schmidt wird damit auch auf +Funktionen anwendbar +(Abschnitt~\ref{buch:orthogonalitaet:section:orthogonale-funktionen}), +der Nutzen führt aber noch viel weiter. +Da $K[x]$ ein Vektorraum ist, führt er von der Basis der Monome +$\{1,x,x^2,\dots,x^n\}$ +auf orthonormierte Polynome. +Diese haben jedoch eine ganze Reihe weiterer nützlicher Eigenschaften. +So wird in Abschnitt~\ref{buch:orthogonal:section:drei-term-rekursion} +gezeigt, dass sich die Werte aller Polynome einer solchen Familie mit +einer Rekursionsformel effizient berechnen lassen, die höchstens drei +Terme umfasst. +In Abschnitt~\ref{buch:orthogonalitaet:section:rodrigues} werden +die Rodrigues-Formeln vorgeführt, die Polynome durch Anwendung eines +Differentialoperators hervorbringen. +In Abschnitt~\ref{buch:orthogonal:section:orthogonale-polynome-und-dgl} +schliesslich wird gezeigt, dass diese Polynome auch Eigenfunktionen +eines selbstadjungierten Operators sind. +Da man in der linearen Algebra auch lernt, dass die Eigenvektoren einer +symmetrischen Matrix zu verschiedenen Eigenwerten orthogonal sind, +ist die Orthogonalität plötzlich nicht mehr überraschend. + +Die Bessel-Funktionen von +Abschnitt~\ref{buch:differntialgleichungen:section:bessel} +sind auch Eigenfunktionen eines Differentialoperators. +Abschnitt~\ref{buch:orthogonalitaet:section:bessel} findet das zugehörige +Skalarprodukt, welches andeutet, dass auch für andere Funktionenfamilien +eine entsprechende Konstruktion möglich ist. +Das in Abschnitt~\ref{buch:integrale:subsection:sturm-liouville-problem} +präsentierte Sturm-Liouville-Problem führt sie durch. +Das Kapitel schliesst mit dem +Abschnitt~\ref{buch:orthogonal:section:gauss-quadratur} +über die Gauss-Quadratur, welche die Eigenschaften orthogonaler Polynome +für einen besonders effizienten numerischen Integrationsalgorithmus +ausnutzt. + \input{chapters/070-orthogonalitaet/orthogonal.tex} \input{chapters/070-orthogonalitaet/rekursion.tex} \input{chapters/070-orthogonalitaet/rodrigues.tex} -%\input{chapters/070-orthogonalitaet/jacobi.tex} \input{chapters/070-orthogonalitaet/legendredgl.tex} \input{chapters/070-orthogonalitaet/bessel.tex} \input{chapters/070-orthogonalitaet/sturm.tex} \input{chapters/070-orthogonalitaet/gaussquadratur.tex} -%\section{TODO} -%\begin{itemize} -%\end{itemize} - -\section*{Übungsaufgaben} +\section*{Übungsaufgabe} \rhead{Übungsaufgaben} \aufgabetoplevel{chapters/070-orthogonalitaet/uebungsaufgaben} \begin{uebungsaufgaben} diff --git a/buch/chapters/070-orthogonalitaet/gaussquadratur.tex b/buch/chapters/070-orthogonalitaet/gaussquadratur.tex index 2e43cec..a5af7d2 100644 --- a/buch/chapters/070-orthogonalitaet/gaussquadratur.tex +++ b/buch/chapters/070-orthogonalitaet/gaussquadratur.tex @@ -1,7 +1,8 @@ % % Anwendung: Gauss-Quadratur % -\section{Anwendung: Gauss-Quadratur} +\section{Anwendung: Gauss-Quadratur +\label{buch:orthogonal:section:gauss-quadratur}} \rhead{Gauss-Quadratur} Orthogonale Polynome haben eine etwas unerwartet Anwendung in einem von Gauss erdachten numerischen Integrationsverfahren. @@ -229,6 +230,7 @@ Sei $R_n=\{p(X)\in\mathbb{R}[X] \mid \deg p\le n\}$ der Vektorraum der Polynome vom Grad $n$. \begin{satz} +\index{Satz!Gaussquadratur}% \label{buch:integral:satz:gaussquadratur} Sei $p$ ein Polynom vom Grad $n$, welches auf allen Polynomen in $R_{n-1}$ orthogonal sind. @@ -284,7 +286,7 @@ $p(x)$ sein. Der Satz~\ref{buch:integral:satz:gaussquadratur} begründet das {\em Gausssche Quadraturverfahren}. -Die in Abschnitt~\ref{buch:integral:section:orthogonale-polynome} +Die in Abschnitt~\ref{buch:orthogonal:subsection:legendre-polynome} bestimmten Legendre-Polynome $P_n$ haben die im Satz verlangte Eigenschaft, dass sie auf allen Polynomen geringeren Grades orthogonal sind. @@ -306,6 +308,7 @@ Für eine beliebige Funktion kann man die folgende Fehlerabschätzung angeben \cite[theorem 7.3.4, p.~497]{buch:numal}. \begin{satz} +\index{Satz!Gausssche Quadraturformel und Fehler}% Seien $x_i$ die Stützstellen und $A_i$ die Gewichte einer Gaussschen Quadraturformel mit $n+1$ Stützstellen und sei $f$ eine auf dem Interval $[-1,1]$ $2n+2$-mal stetig differenzierbare @@ -551,7 +554,7 @@ w(x)=e^{-x} \text{ und } g(x)=f(x)e^x. \] -Dann approximiert $g(x)$ man durch ein Interpolationspolynom, +Dann approximiert man $g(x)$ durch ein Interpolationspolynom, so wie man das bei der Gauss-Quadratur gemacht hat. Als Stützstellen müssen dazu die Nullstellen der Laguerre-Polynome verwendet werden. diff --git a/buch/chapters/070-orthogonalitaet/legendredgl.tex b/buch/chapters/070-orthogonalitaet/legendredgl.tex index de8f63f..f3dd53f 100644 --- a/buch/chapters/070-orthogonalitaet/legendredgl.tex +++ b/buch/chapters/070-orthogonalitaet/legendredgl.tex @@ -3,7 +3,8 @@ % % (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule % -\section{Orthogonale Polynome und Differentialgleichungen} +\section{Orthogonale Polynome und Differentialgleichungen +\label{buch:orthogonal:section:orthogonale-polynome-und-dgl}} \rhead{Differentialgleichungen orthogonaler Polynome} Legendre hat einen ganz anderen Zugang zu den nach ihm benannten Polynomen gefunden. @@ -16,8 +17,13 @@ Die Orthogonalität wird dann aus einer Verallgemeinerung der bekannten Eingeschaft folgen, dass Eigenvektoren einer symmetrischen Matrix zu verschiedenen Eigenwerten orthogonal sind. +% +% Legendre-Differentialgleichung +% \subsection{Legendre-Differentialgleichung} Die {\em Legendre-Differentialgleichung} ist die Differentialgleichung +\index{Differentialgleichung!Legendre-}% +\index{Legendre-Differentialgleichung}% \begin{equation} (1-x^2) y'' - 2x y' + n(n+1) y = 0 \label{buch:integral:eqn:legendre-differentialgleichung} @@ -61,7 +67,10 @@ zerlegen, die als Linearkombinationen der beiden Lösungen $y(x)$ und $y_s(x)$ ebenfalls Lösungen der Differentialgleichung sind. -\subsection{Potenzreihenlösung} +% +% Potenzreihenlösungen +% +\subsubsection{Potenzreihenlösung} Wir suchen eine Lösung in Form einer Potenzreihe um $x=0$ und verwenden dazu den Ansatz \[ @@ -170,7 +179,10 @@ eine Polynomlösung $\bar{P}_n(x)$ vom Grad $n$ gibt. Dies kann aber nicht erklären, warum die so gefundenen Polynome orthogonal sind. -\subsection{Eigenfunktionen} +% +% Eigenfunktionen +% +\subsubsection{Eigenfunktionen} Die Differentialgleichung \eqref{buch:integral:eqn:legendre-differentialgleichung} Kann mit dem Differentialoperator @@ -198,7 +210,10 @@ des Operators $D$ zum Eigenwert $n(n+1)$ sind: D\bar{P}_n = -n(n+1) \bar{P}_n. \] -\subsection{Orthogonalität von $\bar{P}_n$ als Eigenfunktionen} +% +% Orthogonalität von P_n als Eigenfunktionen +% +\subsubsection{Orthogonalität von $\bar{P}_n$ als Eigenfunktionen} Ein Operator $A$ auf Funktionen heisst {\em selbstadjungiert}, wenn für zwei beliebige Funktionen $f$ und $g$ gilt \[ @@ -274,7 +289,10 @@ die $\bar{P}_n$ orthogonale Polynome vom Grad $n$ sind, die die gleiche Standardierdisierungsbedingung wie die Legendre-Polyonome erfüllen, also ist $\bar{P}_n(x)=P_n(x)$. -\subsection{Legendre-Funktionen zweiter Art} +% +% Legendre-Funktionen zweiter Art +% +\subsubsection{Legendre-Funktionen zweiter Art} %Siehe Wikipedia-Artikel \url{https://de.wikipedia.org/wiki/Legendre-Polynom} % Die Potenzreihenmethode liefert natürlich auch Lösungen der @@ -368,7 +386,7 @@ Q_1(x) = x \operatorname{artanh}x-1 verwendet werden. % -% +% Laguerre-Differentialgleichung % \subsection{Laguerre-Differentialgleichung \label{buch:orthogonal:subsection:laguerre-differentialgleichung}} @@ -427,11 +445,15 @@ schlägt eine zweite Lösung vor, im vorliegenden Fall mit $b=1$ ist die zweite Lösung jedoch identisch zu ersten, es muss daher ein anderer Weg zu einer zweiten Lösung gesucht werden. -XXX TODO: zweite Lösung der Differentialgleichung. +%XXX TODO: zweite Lösung der Differentialgleichung. +% +% +% \subsubsection{Die assoziierte Laguerre-Differentialgleichung} \index{assoziierte Laguerre-Differentialgleichung}% \index{Laguerre-Differentialgleichung, assoziierte}% +\index{Differentialgleichung!assoziierte Laguerre-}% Die {\em assoziierte Laguerre-Differentialgleichung} ist die Differentialgleichung \begin{equation} diff --git a/buch/chapters/070-orthogonalitaet/orthogonal.tex b/buch/chapters/070-orthogonalitaet/orthogonal.tex index 677e865..df04514 100644 --- a/buch/chapters/070-orthogonalitaet/orthogonal.tex +++ b/buch/chapters/070-orthogonalitaet/orthogonal.tex @@ -11,9 +11,13 @@ Funktionenreihen mit Summanden zu bilden, die im Sinne eines Skalarproduktes orthogonal sind, welches mit Hilfe eines Integrals definiert sind. Solche Funktionenfamilien treten jedoch auch als Lösungen von -Differentialgleichungen. +Differentialgleichungen auf. Besonders interessant wird die Situation, wenn die Funktionen Polynome sind. +In diesem Abschnitt soll zunächst das Skalarprodukt definiert +und an Hand von Beispielen gezeigt werden, wie verschiedenartige +interessante Familien von orthogonalen Polynomen gewonnen werden +können. % % Skalarprodukt @@ -520,7 +524,7 @@ Tabelle~\ref{buch:integral:table:legendre-polynome}. Die Graphen sind in Abbildung~\ref{buch:integral:orthogonal:legendregraphen} dargestellt. Abbildung~\ref{buch:integral:orthogonal:legendreortho} illustriert, -dass die die beiden Polynome $P_4(x)$ und $P_7(x)$ orthogonal sind. +dass die beiden Polynome $P_4(x)$ und $P_7(x)$ orthogonal sind. Das Produkt $P_4(x)\cdot P_7(x)$ hat Integral $=0$. % @@ -634,7 +638,7 @@ Der Vektorraum $H_w$ von auf $(a,b)$ definierten Funktionen sei H_w = \biggl\{ -f:\colon(a,b) \to \mathbb{R} +f\colon(a,b) \to \mathbb{R} \;\bigg|\; \int_a^b |f(x)|^2 w(x)\,dx \biggr\}. diff --git a/buch/chapters/070-orthogonalitaet/rekursion.tex b/buch/chapters/070-orthogonalitaet/rekursion.tex index dc5531b..3dd9de5 100644 --- a/buch/chapters/070-orthogonalitaet/rekursion.tex +++ b/buch/chapters/070-orthogonalitaet/rekursion.tex @@ -31,9 +31,20 @@ für alle $n$, $m$. \end{definition} \subsubsection{Allgemeine Drei-Term-Rekursion für orthogonale Polynome} -Der folgende Satz besagt, dass $p_n$ eine Rekursionsbeziehung erfüllt. +Die Multiplikation mit $x$ macht aus einem Polynom vom Grad $n$ ein +Polynom vom Grad $n+1$. +Das Polynom $xp_n(x)$ lässt sich daher als Linearkombination der +Polynome $p_k(x)$ mit $k\le n+1$ schreiben. +Es muss also eine lineare Beziehung zwischen den Polynomen $p_k(x)$ und +$xp_n(x)$ geben, die man nach $p_{n+1}(x)$ auflösen kann, um eine lineare +Darstellung von $p_{n+1}(x)$ durch die $p_k(x)$ und $p_n(x)$ zu +bekommen. +A priori muss man damit rechnen, dass sehr viele Summanden nötig sind. +Der folgende Satz besagt, dass $p_n(x)$ eine Rekursionsbeziehung mit +nur drei Termen erfüllt. \begin{satz} +\index{Satz!Drei-Term-Rekursion}% \label{buch:orthogonal:satz:drei-term-rekursion} Eine Folge bezüglich $\langle\,\;,\;\rangle_w$ orthogonaler Polynome $p_n$ mit dem Grade $\deg p_n = n$ erfüllt eine Rekursionsbeziehung der Form @@ -55,9 +66,13 @@ C_{n+1} = \frac{A_{n+1}}{A_n}\frac{h_{n+1}}{h_n}. \end{equation} \end{satz} +Die Rekursionsbeziehung~\eqref{buch:orthogonal:eqn:rekursion} bedeutet, +dass sich die Werte $p_n(x)$ für alle $n$ ausgehend von $p_1(x)$ und +$p_0(x)$ mit nur $O(n)$ Operationen ermitteln lassen. + \subsubsection{Multiplikationsoperator mit $x$} -Man kann die Relation auch nach dem Produkt $xp_n(x)$ auflösen, dann -wird sie +Man kann die Relation \eqref{buch:orthogonal:eqn:rekursion} +auch nach dem Produkt $xp_n(x)$ auflösen, dann wird sie \begin{equation} xp_n(x) = @@ -68,9 +83,12 @@ xp_n(x) \frac{C_n}{A_n}p_{n-1}(x). \label{buch:orthogonal:eqn:multixrelation} \end{equation} -Die Multiplikation mit $x$ ist eine lineare Abbildung im Raum der Funktionen. +Die Multiplikation mit $x$ ist eine lineare Abbildung im Raum der Funktionen, +die wir weiter unten auch $M_x$ abkürzen. Die Relation~\eqref{buch:orthogonal:eqn:multixrelation} besagt, dass diese Abbildung in der Basis der Polynome $p_k$ tridiagonale Form hat. +Ein Beispiel dafür ist im nächsten Abschnitt in +\eqref{buch:orthogonal:eqn:Mx} \subsubsection{Drei-Term-Rekursion für die Tschebyscheff-Polynome} Eine Relation der Form~\eqref{buch:orthogonal:eqn:multixrelation} @@ -84,6 +102,22 @@ T_{n+1}(x) = 2x\,T_n(x)-T_{n-1}(x), \] also $A_n=2$, $B_n=0$ und $C_n=1$. +Die Matrixdarstellung des Multiplikationsoperators $M_x$ in der +Basis der Tschebyscheff-Polynome hat wegen +\eqref{buch:orthogonal:eqn:multixrelation} die Form +\begin{equation} +M_x += +\begin{pmatrix} + 0&\frac12& 0& 0& 0&\dots \\ +\frac12& 0&\frac12& 0& 0&\dots \\ + 0&\frac12& 0&\frac12& 0&\dots \\ + 0& 0&\frac12& 0&\frac12&\dots \\ + 0& 0& 0&\frac12& 0&\dots \\ + \vdots& \vdots& \vdots& \vdots& \vdots&\ddots +\end{pmatrix}. +\label{buch:orthogonal:eqn:Mx} +\end{equation} \subsubsection{Beweis von Satz~\ref{buch:orthogonal:satz:drei-term-rekursion}} Die Relation~\eqref{buch:orthogonal:eqn:multixrelation} zeigt auch, diff --git a/buch/chapters/070-orthogonalitaet/rodrigues.tex b/buch/chapters/070-orthogonalitaet/rodrigues.tex index 9fded85..4852624 100644 --- a/buch/chapters/070-orthogonalitaet/rodrigues.tex +++ b/buch/chapters/070-orthogonalitaet/rodrigues.tex @@ -14,7 +14,8 @@ mit der Ableitung kann man den Grad aber auch senken, man könnte daher auch nach einer Rekursionsformel fragen, die bei einem Polynom hohen Grades beginnt und mit Hilfe von Ableitungen zu geringeren Graden absteigt. -Solche Formeln heissen Rodrigues-Formeln nach dem Entdecker Olinde +Solche Formeln heissen {\em Rodrigues-Formeln} nach dem Entdecker Olinde +\index{Rodriguez, Olinde}% Rodrigues, der eine solche Formal als erster für Legendre-Polynome gefunden hat. @@ -27,12 +28,17 @@ Die Skalarprodukte sollen \] sein. +% +% Pearsonsche Differentialgleichung +% \subsection{Pearsonsche Differentialgleichung} Die {\em Pearsonsche Differentialgleichung} ist die Differentialgleichung \begin{equation} B(x) y' - A(x) y = 0, \label{buch:orthogonal:eqn:pearson} \end{equation} +\index{Differentialgleichung!Pearsonsche}% +\index{Pearsonsche Differentialgleichung}% wobei $B(x)$ ein Polynom vom Grad höchstens $2$ ist und $A(x)$ ein höchstens lineares Polynom. Die Gleichung~\eqref{buch:orthogonal:eqn:pearson} @@ -45,33 +51,46 @@ Dann kann man die Gleichung umstellen in = \frac{A(x)}{B(x)} \qquad\Rightarrow\qquad -y = \exp\biggl( \int\frac{A(x)}{B(x)}\biggr)\,dx. +y += +\exp\biggl( +\int\frac{A(x)}{B(x)} +\,dx +\biggr) +. \] -Im folgenden nehmen wir zusätzlich an, dass +Im Folgenden nehmen wir zusätzlich an, dass an den Intervallenden \begin{equation} \lim_{x\to a+} w(x)B(x) = 0, \qquad\text{und}\qquad -\lim_{x\to b-} w(x)B(x) = 0. +\lim_{x\to b-} w(x)B(x) = 0 \end{equation} +gilt. + Falls $w(x)$ an den Intervallenden einen von $0$ verschiedenen Grenzwert hat, bedeutet dies, dass $B(a)=B(b)=0$ sein muss. Falls $w(x)$ am Intervallende divergiert, muss $B(x)$ dort eine Nullstelle höherer Ordnung haben, was aber für ein Polynom zweiten Grades nicht möglich ist. +% +% Rekursionsformel +% \subsection{Rekursionsformel} Multiplikation mit $B(x)$ wird den Grad eines Polynomes typischerweise um $2$ erhöhen, die Ableitung wird ihn wieder um $1$ reduzieren. Etwas formeller kann man dies wie folgt formulieren: \begin{satz} +\index{Satz!Rodrigues-Rekursionsformel}% Für alle $n\ge 0$ ist -\[ +\begin{equation} q_n(x) = \frac{1}{w(x)} \frac{d^n}{dx^n} B(x)^n w(x) -\] +\label{buch:orthogonalitaet:rodrigues:eqn:rekursion} +\end{equation} ein Polynom vom Grad höchstens $n$. \end{satz} @@ -85,51 +104,67 @@ r_0(x) B(x)^n w(x) \\ &= \frac{d^{n-1}}{dx^{n-1}} -\bigl(r_0'(x)B(x)+ nB'(x)B(x)^{n-1}w(x) + B(x)^n w'(x) \bigr) +\bigl(r_0'(x)B(x)+ nr_0(x)B'(x)B(x)^{n-1}w(x) + r_0(x)B(x)^n w'(x) \bigr) \\ &= \frac{d^{n-1}}{dx^{n-1}} -(r_0'(x)B(x)+nB'(x)+A(x)) B(x)^{n-1} w(x) -= +(\underbrace{r_0'(x)B(x)+nr_0(x)B'(x)+r_0(x)A(x)}_{\displaystyle = r_1(x)}) +B(x)^{n-1} w(x) +\\ +&= \frac{d^{n-1}}{dx^{n-1}} r_1(x)B^{n-1}(x) w(x). \end{align*} -Für die Funktionen $r_k$ gilt die Rekursionsformel +Iterativ lässt sich eine Folge von +Funktionen $r_k(x)$ definieren, für die Rekursionsformel \begin{equation} -r_k(x) = r_{k-1}'(x)B(x) + kB'(x) + A(x). +r_k(x) = r_{k-1}'(x)B(x) + \bigl((n+1-k)B'(x) + A(x)\bigr)r_{k-1}(x) \label{buch:orthogonal:rodrigues:rekursion:beweis1} \end{equation} +gilt. Wenn $r_0(x)$ ein Polynom ist, dann sind alle Funktionen $r_k(x)$ ebenfalls Polynome. -Durch wiederholte Anwendung dieser Formel kann man schliessen, dass +Aus der Konstruktion kann man schliessen, dass \[ \frac{d^n}{dx^n} r_0(x) B(x)^n w(x) = r_n(x) w(x). \] -Insbesondere folgt für $r_0(x)=1$, dass man durch $w(x)$ dividieren kann -und dass $r_n(x)=q_n(x)$. +Insbesondere folgt für $r_0(x)=1$, dass die $n$-te Ableitung den +Faktor $w(x)$ enthält und dass somit $r_n(x)=q_n(x)$ ein Polynom ist. -Wir müssen auch noch den Grad von $r_k(x)$ bestimmen. -Dazu verwenden wir -\eqref{buch:orthogonal:rodrigues:rekursion:beweis1} und berechnen den -Grad: +Wir müssen auch noch den Grad von $r_k(x)$ bestimmen, wobei wir +wieder von $r_0(x)=1$ ausgehen. +Wir behaupten, dass $\deg r_k(x)\le k$ ist, und beweisen dies +mit vollständiger Induktion. +Für $k=0$ ist $\deg r_0(x) = 0 \le k$ die Induktionsverankerung. + +Wir nehmen jetzt also an, dass $\deg r_{k-1}(x)\le k-1$ ist und +verwenden +\eqref{buch:orthogonal:rodrigues:rekursion:beweis1} um den Grad zu berechnen: \begin{equation*} \deg r_k(x) = \max \bigl( -\underbrace{\deg(r_{k-1}'(x) B(x))}_{\displaystyle \deg r_{k-1}(x) -1 + 2} +\underbrace{\deg(r_{k-1}'(x) B(x))}_{\displaystyle (k-1) -1 + 2} , -\underbrace{\deg(B'(x))}_{\displaystyle \le 1} +\underbrace{\deg(r_{k-1}(x)B'(x))}_{\displaystyle \le (k-1)+1} , -\underbrace{\deg(A(x))}_{\displaystyle \le 1} +\underbrace{\deg(r_{k-1}(x)A(x))}_{\displaystyle \le (k-1)+1} \bigr) -\le \max r_{k-1}(x) + 1. +\le k. \end{equation*} -Aus $\deg r_0(x)=0$ kann man jetzt ablesen, dass $\deg r_k(x)\le k$ ist. -Damit ist gezeigt, dass $\deg q_n(x)\le n$. +Damit ist der Induktionsschritt und $\deg r_k(x)\le k$ bewiesen. +Damit ist auch gezeigt, dass $\deg q_n(x)\le n$. \end{proof} +Die Rodrigues-Formel~\eqref{buch:orthogonalitaet:rodrigues:eqn:rekursion} +produziert eine Folge von Polynomen aufsteigenden Grades, es ist aber +noch nicht klar, dass diese Polynome bezüglich des gewählten Skalarproduktes +orthogonal sind. +Dies ist der Inhalt des folgenden Satzes. + \begin{satz} +\index{Satz!Rodrigues-Formel für orthonormierte Polynome}% Es gibt Konstanten $c_n$ derart, dass \[ p_n(x) @@ -140,7 +175,7 @@ gilt. \end{satz} \begin{proof}[Beweis] -Wir müssen zeigen, dass die Polynome orthogonal sind auf allen Monomen +Wir zeigen, dass die Polynome orthogonal sind auf allen Monomen von geringerem Grad. \begin{align*} \langle q_n, x^k\rangle_w @@ -148,15 +183,17 @@ von geringerem Grad. \int_a^b q_n(x)x^kw(x)\,dx \\ &= -\int_a^b \frac{1}{w(x)}\frac{d^n}{dx^n}(B(x)^n w(x)) x^k w(x)\,dx +\int_a^b \frac{1}{w(x)} +\biggl(\frac{d^n}{dx^n}\bigl(B(x)^n w(x)\bigr)\biggr) +x^k w(x)\,dx \\ &= -\int_a^b \frac{d^n}{dx^n}(B(x)^n w(x)) x^k \,dx +\int_a^b \frac{d^n}{dx^n}\bigl(B(x)^n w(x)\bigr) x^k \,dx \\ &= -\biggl[\frac{d^{n-1}}{dx^{n-1}}(B(x)^n w(x)) x^k \biggr]_a^b +\biggl[\frac{d^{n-1}}{dx^{n-1}}\bigl(B(x)^n w(x)\bigr) x^k \biggr]_a^b - -\int_a^b \frac{d^{n-1}}{dx^{n-1}}(B(x)^n w(x))kx^{k-1}\,dx +\int_a^b \frac{d^{n-1}}{dx^{n-1}}\bigl(B(x)^n w(x)\bigr)kx^{k-1}\,dx \end{align*} Durch $n$-fache Iteration wird das Integral auf $0$ reduziert. Es bleiben nur die eckigen Klammern stehen, doch wenn man die Produktregel @@ -164,9 +201,32 @@ auswertet, bleibt immer mindestens ein Produkt $B(x)w(x)$ stehen, nach den Voraussetzungen an den Grenzwert dieses Produktes an den Intervallenden verschwinden diese Terme alle. Damit sind die $q_n(x)$ Polynome, die $w$-orthogonal sind auf allen -$x^k$ mit $k<n$, also Vielfache der $w$-Orthgonalpolynome. +$x^k$ mit $k<n$. + +Die Polynome $q_k(x)$ mit $k< n$ haben Grad $<n$ und sind daher +Linearkombinationen von Monomen vom Grad $<n$. +Soeben wurde gezeigt, dass $q_n(x)$ orthogonal auf diesen Monomen +ist, also auch auf $q_k(x)$ mit $k<n$. +Damit ist gezeigt, dass Polynome $q_n(x)$ eine orthogonale Familie +von Polynomen bilden. +Durch Normierung müssen sich daraus die Polynome $p_n(x)$ ergeben. \end{proof} +\subsection{Differentialgleichung} +Man kann auch zeigen (siehe z.~B.~\cite{buch:pearsondgl}, +dass die orthogonalen Polynome, die die +Rodrigues-Formel liefert, einer Differentialgleichung zweiter +Ordnung genügen, deren möglicherweise nicht konstante Koeffizienten +sich direkt aus $A(x)$, $B(x)$ und $w(x)$ bestimmen lassen. + +\subsection{Beispiel} +Im folgenden zeigen wir, wie sich für viele der früher eingeführten +Gewichtsfunktionen Rodrigues-Formeln für die zugehörigen orthogonalen +Polynome konstruieren lassen. + +% +% Legendre-Polynome +% \subsubsection{Legendre-Polynome} Legendre-Polynome sind orthogonale Polynome zum Standardskalarprodukt mit $w(x)=1$. @@ -195,6 +255,9 @@ P_n(x) (x^2-1)^n. \] +% +% Hermite-Polynome +% \subsubsection{Hermite-Polynome} Die Hermite-Polynome sind auf ganz $\mathbb{R}$ definiert und verwenden die Gewichtsfunktion @@ -205,13 +268,13 @@ Für jedes beliebige Polynome $B(x)$, auch für höheren Grad als $2$, ist \[ \lim_{x\to-\infty} B(x) w(x) = -\lim_{x\to-\infty} B(x)^e{-x^2} +\lim_{x\to-\infty} B(x)e^{-x^2} = 0 \qquad\text{und}\qquad \lim_{x\to\infty} B(x) w(x) = -\lim_{x\to\infty} B(x)^e{-x^2} +\lim_{x\to\infty} B(x)e^{-x^2} = 0, \] @@ -222,7 +285,7 @@ Die Ableitung der Gewichtsfunktion ist \[ w'(x) = -2xe^{-x^2}. \] -Eingsetzt in die Pearsonsche Differentialgleichung findet man +Eingesetzt in die Pearsonsche Differentialgleichung findet man \[ \frac{w'(x)}{w(x)} = @@ -238,6 +301,8 @@ B(x) = 1. \] Die Gradbedingung ist also immer erfüllt und es folgt die Rodrigues-Formel für die Hermite-Polynome +\index{Hermite-Polynom}% +\index{Polynome!Hermite}% \begin{equation} H_n(x) = @@ -249,13 +314,15 @@ e^{x^2}\frac{d^n}{dx^n} e^{-x^2}. \label{buch:orthogonal:eqn:hermite-rodrigues} \end{equation} -Die Hermite-Polynome können mit der Rodrigues-Formel berechnen, aber die -Form~\eqref{buch:orthogonal:eqn:hermite-rodrigues} ist dazu nicht gut -geeignet. -Dazu dient die Berechnung +Die Hermite-Polynome können mit der Rodrigues-Formel berechnet werden, +aber die Form~\eqref{buch:orthogonal:eqn:hermite-rodrigues} ist dazu +nicht gut geeignet. +Zur Vereinfachung dient die Berechnung \[ -\frac{d}{dx} +\bigl( e^{-x^2}f(x) +\bigr) = 2xe^{-x^2}f(x) - @@ -270,15 +337,15 @@ vertauscht werden kann, wenn er durch die grosse Klammer auf der rechten Seite ersetzt wird. Die Rodrigues-Formel bekommt daher die Form \[ -H_n(x) = \biggl(\frac{d}{dx}-2x\biggr)^n \cdot 1 +H_n(x) = \biggl(2x-\frac{d}{dx}\biggr)^n \cdot 1. \] -TODO: Relation zu hypergeometrischen Funktionen $\mathstrut_1F_1$ +%TODO: Relation zu hypergeometrischen Funktionen $\mathstrut_1F_1$ %\url{https://en.wikipedia.org/wiki/Rodrigues%27_formula} % -% Jacoib-Gewichtsfunktion +% Jacobi-Gewichtsfunktion % \subsubsection{Jacobi-Gewichtsfunktion} %(%i1) w: (1-x)^a*(1+x)^b; @@ -303,6 +370,8 @@ TODO: Relation zu hypergeometrischen Funktionen $\mathstrut_1F_1$ % x - 1 % Die Jacobi-Gewichtsfunktion +\index{Jacobi-Gewichtsfunktion}% +\index{Gewichtsfunktion!Jacobi}% \[ w(x) = @@ -357,9 +426,14 @@ Die Konstanten $c_n$ werden durch die Normierung % XXX in welchem Abschnitt festgelegt. +% +% Tschebyscheff-Gewichtsfunktion +% \subsubsection{Die Tschebyscheff-Gewichtsfunktion} Die Tschebyscheff-Gewichtsfunktion ist der Spezialfall $a=b=-\frac12$ der Jacobi-Gewichtsfunktion. +\index{Tschebyscheff-Gewichtsfunktion}% +\index{Gewichtsfunktion!Tschebyscheff}% Die Rodrigues-Formel für die Tschebyscheff-Polynome lautet daher \[ T_n(x) @@ -373,8 +447,13 @@ c_n\sqrt{1-x^2} \frac{d^n}{dx^n} \] wobei wir den korrekten Wert von $c_n$ nicht nachgewiesen haben. +% +% Laguerre Gewichtsfunktion +% \subsubsection{Die Laguerre-Gewichtsfunktion} Die Laguerre-Gewichtsfunktion +\index{Laguerre-Gewichtsfunktion}% +\index{Gewichtsfunktion!Laguerre}% \[ w_{\text{Laguerre}}(x) = @@ -387,6 +466,8 @@ hat die Ableitung w'(x) = -e^{-x}, \] die Pearsonsche Differentialgleichung ist daher +\index{Pearsonsche Differentialgleichung}% +\index{Differentialgleichung!Pearsonsche}% \[ \frac{w'(x)}{w(x)}=\frac{-1}{1}. \] @@ -485,6 +566,8 @@ an der Stelle $0$. Wir fassen die Resultate im folgenden Satz zusammen. \begin{satz} +\index{Satz!Laguerre-Polynome}% +\index{Polynome!Laguerre-}% Die Laguerre-Polynome vom Grad $n$ haben die Form \begin{equation} L_n(x) diff --git a/buch/chapters/070-orthogonalitaet/saev.tex b/buch/chapters/070-orthogonalitaet/saev.tex index c667297..599d3a0 100644 --- a/buch/chapters/070-orthogonalitaet/saev.tex +++ b/buch/chapters/070-orthogonalitaet/saev.tex @@ -18,6 +18,7 @@ Der Beweis ist direkt übertragbar, wir halten das Resultat hier für spätere Verwendung fest. \begin{satz} +\index{Satz!orthogonale Eigenvektoren}% Sind $f$ und $g$ Eigenvektoren eines selbstadjungierten Operators $A$ zu verschiedenen Eigenwerten $\lambda$ und $\mu$, dann sind $f$ und $g$ orthogonal. diff --git a/buch/chapters/070-orthogonalitaet/sturm.tex b/buch/chapters/070-orthogonalitaet/sturm.tex index 35054ab..742ec0a 100644 --- a/buch/chapters/070-orthogonalitaet/sturm.tex +++ b/buch/chapters/070-orthogonalitaet/sturm.tex @@ -7,10 +7,14 @@ \label{buch:integrale:subsection:sturm-liouville-problem}} \rhead{Das Sturm-Liouville-Problem} Sowohl bei den Bessel-Funktionen wie bei den Legendre-Polynomen +\index{Bessel-Funktion}% konnte die Orthogonalität der Funktionen dadurch gezeigt werden, dass sie als Eigenfunktionen eines bezüglich eines geeigneten Skalarproduktes selbstadjungierten Operators erkannt wurden. +% +% Differentialgleichungen +% \subsection{Differentialgleichung} Das klassische Sturm-Liouville-Problem ist das folgende Eigenwertproblem. Gesucht sind Lösungen der Differentialgleichung @@ -30,6 +34,9 @@ erfüllen, wobei $|k_i|^2 + |h_i|^2\ne 0$ mit $i=a,b$. Weitere Bedingungen an die Funktionen $p(x)$, $q(x)$, $w(x)$ sowie die Lösungsfunktionen $y(x)$ sollen später geklärt werden. +% +% Das verallgemeinerte Eigenwertproblem für symmetrische Matrizen +% \subsection{Das verallgemeinerte Eigenwertproblem für symmetrische Matrizen} Ein zu \eqref{buch:integrale:eqn:sturm-liouville} analoges Eigenwertproblem für Matrizen ist das folgende verallgemeinerte Eigenwertproblem. @@ -51,6 +58,7 @@ Für symmetrische Matrizen lässt sich dieses Problem auf ein Optimierungsproblem reduzieren. \begin{satz} +\index{Satz!verallgemeinertes Eigenwertproblem}% Seien $A$ und $B$ symmetrische $n\times n$-Matrizen und sei ausserdem $B$ positiv definit. Ist $v$ ein Vektor, der die Grösse @@ -121,6 +129,7 @@ Eigenwert $\lambda$ ist. \end{proof} \begin{satz} +\index{Satz!Orthogonalität verallgemeinerter Eigenvektoren}% Verallgemeinerte Eigenvektoren $u$ und $v$ von $A$ und $B$ zu verschiedenen Eigenwerten erfüllen $u^tBv=0$. \end{satz} @@ -147,6 +156,8 @@ dass $u^tBv=0$ sein muss. Verallgemeinerte Eigenwerte und Eigenvektoren verhalten sich also ganz analog zu den gewöhnlichen Eigenwerten und Eigenvektoren. Da $B$ positiv definit ist, ist $B$ auch invertierbar. +\index{verallgemeinertes Skalarprodukt}% +\index{Skalarprodukt!verallgemeinertes}% Zudem kann $B$ zur Definition des verallgemeinerten Skalarproduktes \[ \langle u,v\rangle_B = u^tBv @@ -175,6 +186,9 @@ ist damit ein gewöhnliches Eigenwertproblem für selbstadjungierte Matrizen des Operators $\tilde{A}$ bezüglich des verallgemeinerten Skalarproduktes $\langle\,\;,\;\rangle_B$. +% +% Der Operator L_0 und die Randbedingung +% \subsection{Der Operator $L_0$ und die Randbedingung} Die Differentialgleichung kann auch in Operatorform geschrieben werden. Dazu schreiben wir @@ -192,6 +206,7 @@ Bezüglich des gewöhnlichen Skalarproduktes für Funktionen auf dem Intervall $[a,b]$ ist der Operator $L_0$ tatsächlich selbstadjungiert. Mit partieller Integration rechnet man nach: +\index{partielle Integration}% \begin{align} \langle f,L_0g\rangle &= @@ -275,6 +290,9 @@ Ausgeschrieben bedeutet dies, dass die Randbedingung \eqref{buch:integrale:sturm:randbedingung} erfüllt sein muss. +% +% Skalarprodukt +% \subsection{Skalarprodukt} Das Ziel der folgenden Abschnitte ist, das Sturm-Liouville-Problem als Eigenwertproblem für einen selbstadjungierten Operator in einem @@ -314,6 +332,9 @@ mit der Gewichtsfunktion $w(x)$ verwendet werden. Damit dies ein vernünftiges Skalarprodukt ist, muss $w(x)>0$ im Innerend es Intervalls sein. +% +% Der Vektorraum H +% \subsection{Der Vektorraum $H$} Damit können wir jetzt die Eigenschaften der in Frage kommenden Funktionen zusammenstellen. @@ -346,17 +367,23 @@ f\in L^2([a,b],w)\;\bigg|\; \biggr\}. \] -\subsection{Differentialoperator} +% +% Der Sturm-Liouville-Differentialoperator +% +\subsection{Der Sturm-Liouville-Differentialoperator} Das verallgemeinerte Eigenwertproblem für $A$ und $B$ ist ein gewöhnliches Eigenwertproblem für die Operator $\tilde{A}=B^{-1}A$ bezüglich des modifizierten Skalarproduktes. Das Sturm-Liouville-Problem ist also ein Eigenwertproblem im Vektorraum $H$ mit dem Skalarprodukt $\langle\,\;,\;\rangle_w$. Der Operator -\[ +\begin{equation} L = \frac{1}{w(x)} \biggl(-\frac{d}{dx} p(x)\frac{d}{dx} + q(x)\biggr) -\] +\label{buch:orthogonal:sturm-liouville:opL1} +\end{equation} heisst der {\em Sturm-Liouville-Operator}. +\index{Sturm-Liouville-Operator}% +\index{Operator!Sturm-Liouville-}% Eine Lösung des Sturm-Liouville-Problems ist eine Funktion $y(x)$ derart, dass \[ @@ -365,13 +392,28 @@ Ly = \lambda y, $\lambda$ ist der zu $y(x)$ gehörige Eigenwert. Der Operator ist definiert auf Funktionen des im vorangegangenen Abschnitt definierten Vektorraumes $H$. +Führt man die Differentiation aus, bekommt der Operator die Form +\begin{equation} +L += +-\frac{p(x)}{w(x)} \frac{d^2}{dx^2} +-\frac{p'(x)}{w(x)} \frac{d}{dx} ++\frac{q(x)}{w(x)}. +\label{buch:orthogonal:sturm-liouville:opL2} +\end{equation} +% +% Beispiele +% \subsection{Beispiele} Die meisten der früher vorgestellten Funktionenfamilien stellen sich als Lösungen eines geeigneten Sturm-Liouville-Problems heraus. Alle Eigenschaften aus der Sturm-Liouville-Theorie gelten daher automatisch für diese Funktionenfamilien. +% +% Trignometrische Funktionen +% \subsubsection{Trigonometrische Funktionen} Die trigonometrischen Funktionen sind Eigenfunktionen des Operators $d^2/dx^2$, also eines Sturm-Liouville-Operators mit $p(x)=1$, $q(x)=0$ @@ -434,6 +476,9 @@ Dann ist wegen die Bedingung~\eqref{buch:integrale:sturm:sabedingung} ebenfalls erfüllt, $L_0$ ist in diesem Raum selbstadjungiert. +% +% Bessel-Funktionen J_n(x) +% \subsubsection{Bessel-Funktionen $J_n(x)$} Der Bessel-Operator \eqref{buch:differentialgleichungen:bessel-operator} kann wie folgt in die Form eines Sturm-Liouville-Operators gebracht @@ -478,6 +523,9 @@ Es folgt damit sofort, dass die Besselfunktionen orthogonale Funktionen bezüglich des Skalarproduktes mit der Gewichtsfunktion $w(x)=1/x$ sind. +% +% Bessel-Funktionen J_n(sx) +% \subsubsection{Bessel-Funktionen $J_n(s x)$} Das Sturm-Liouville-Problem mit den Funktionen \eqref{buch:orthogonal:sturm:bessel:n} @@ -489,7 +537,10 @@ Im Folgenden sollen hingegen die Funktionen $J_n(s x)$ für konstantes $n$, aber verschiedene $s$ untersucht und als orthogonal erkannt werden. -Die Funktion $y(x) = J_n(x)$ ist eine Lösung der Bessel-Differentialgleichung +Die Funktion $y(x) = J_n(x)$ ist eine Lösung der Besselschen +Differentialgleichung +\index{Besselsche Differentialgleichung}% +\index{Differentialgleichung!Besselsche}% \[ x^2y'' + xy' + x^2y = n^2y. \] @@ -576,6 +627,7 @@ des Sturm-Liouville-Problems für den Eigenwert $\lambda = -s^2$. \begin{satz}[Orthogonalität der Bessel-Funktionen] +\index{Satz!Orthogonalität der Bessel-Funktionen}% Die Bessel-Funktionen $J_n(sx)$ für verschiedene $s$ sind orthogonal bezüglich des Skalarproduktes mit der Gewichtsfunktion $w(x)=x$, d.~h. @@ -608,6 +660,9 @@ Damit sind geeignete Randbedingungen für das Sturm-Liouville-Problem gefunden. \end{proof} +% +% Laguerre-Polynome +% \subsubsection{Laguerre-Polynome} Die Laguerre-Polynome sind orthogonal bezüglich des Skalarprodukts mit der Laguerre-Gewichtsfunktion $w(x)=e^{-x}$ und erfüllen die @@ -646,9 +701,15 @@ also die Laguerre-Differentialgleichung. Somit folgt, dass die Laguerre-Polynome orthogonal sind bezüglich des Skalarproduktes mit der Laguerre-Gewichtsfunktion. +% +% Tschebyscheff-Polynome +% \subsubsection{Tschebyscheff-Polynome} Die Tschebyscheff-Polynome sind Lösungen der -Tschebyscheff-Differentialgleichung +bereits in Kapitel~\ref{buch:chapter:potenzen} hergeleiteten +Tschebyscheff-Differentialgleichung~\eqref{buch:potenzen:tschebyscheff:dgl} +\index{Tschebyscheff-Differentialgleichung}% +\index{Differentialgleichung!Tschebyscheff-}% \[ (1-x^2)y'' -xy' = n^2y \] @@ -680,19 +741,100 @@ xy'(x) \lambda y(x). \end{align*} Es folgt, dass die Tschebyscheff-Polynome orthogonal sind +\index{Tschebyscheff-Polynom}% bezüglich des Skalarproduktes \[ \langle f,g\rangle = \int_{-1}^1 f(x)g(x)\frac{dx}{\sqrt{1-x^2}}. \] +% +% Jacobi-Polynome +% \subsubsection{Jacobi-Polynome} -TODO - +Die Jacobi-Polynome sind orthogonal bezüglich des Skalarproduktes +\index{Jacobi-Polynome}% +\index{Polynome!Jacobi-}% +mit der Gewichtsfunktion +\[ +w^{(\alpha,\beta)}(x) = (1-x)^\alpha(1+x)^\beta, +\] +definiert in Definition~\ref{buch:orthogonal:def:jacobi-gewichtsfunktion}. +%Bei der Herleitung der Rodrigues-Formel für die Jacobi-Polynome wurde erkannt, +%dass $B(x)=1-x^2$ und $A(x)=\beta-\alpha-(\alpha+\beta)x$ sein muss. +Man kann zeigen, dass sie Lösungen der +{\em Jacobi-Diffe\-ren\-tial\-gleichung} +\index{Jacobi-Differentialgleichung}% +\index{Differentialgleichung!Jacobi}% +\begin{equation} +(1-x^2)y'' + (\beta-\alpha-(\alpha+\beta + 2)x)y' + n(n+\alpha+\beta+1)y=0 +\label{buch:orthogonal:jacobi:dgl} +\end{equation} +sind. +Es stellt sich die Frage, ob sich Funktionen $p(x)$ und $q(x)$ finden lassen +derart, dass die Differentialgleichung~\eqref{buch:orthogonal:jacobi:dgl} +eine Sturm-Liouville-Gleichung wird. +Gemäss der Form~\eqref{buch:orthogonal:sturm-liouville:opL2} muss +$p(x)$ so gefunden werden, dass +\begin{align*} +\frac{p(x)}{w^{(\alpha,\beta)}(x)} &= 1-x^2 \\ +\frac{p'(x)}{w^{(\alpha,\beta)}(x)} &= \beta-\alpha-(\alpha+\beta+2)x +\end{align*} +gilt. +Der Quotient der beiden Gleichungen ist die logarithmische Ableitung +\[ +(\log p(x))' += +\frac{p'(x)}{p(x)} += +\frac{1-x^2}{\beta-\alpha-(\alpha+\beta+2)x} +\] +von $p(x)$, +die sich in geschlossener Form integrieren lässt. +Man findet als Stammfunktion +\[ +p(x) += +(1-x)^{\alpha+1}(1+x)^{\beta+1}. +\] +Tatsächlich ist +\begin{align*} +\frac{p(x)}{w^{(\alpha,\beta)}(x)} +&= +\frac{(1-x)^{\alpha+1}(1+x)^{\beta+1}}{(1-x)^\alpha(1+x)^\beta} += +(1-x)(1+x)=1-x^2 +\\ +\frac{p'(x)}{w^{(\alpha,\beta)}(x)} +&= +\frac{ +-(\alpha+1) +(1-x)^{\alpha}(1+x)^{\beta+1} ++ +(\beta+1) +(1-x)^{\alpha+1}(1+x)^{\beta} +}{ +(1-x)^{\alpha}(1+x)^{\beta} +} +\\ +&= +-(\alpha+1)(1+x) + (\beta+1)(1-x) += +\beta-\alpha-(\alpha+\beta+2)x. +\end{align*} +Damit ist +die Jacobische Differentialgleichung +als Sturm-Liouville-Differentialgleichung erkannt. +% +% Hypergeometrische Differentialgleichungen +% \subsubsection{Hypergeometrische Differentialgleichungen} %\url{https://encyclopediaofmath.org/wiki/Hypergeometric_equation} Auch die Eulersche hypergeometrische Differentialgleichung +\index{Eulersche hypergeometrische Differentialgleichung}% +\index{Differentialgleichung!Eulersche hypergeometrische}% lässt sich in die Form eines Sturm-Liouville-Operators +\index{Eulersche hypergeometrische Differentialgleichung!als Sturm-Liouville-Gleichung}% bringen. Dazu setzt man \begin{align*} diff --git a/buch/chapters/080-funktionentheorie/analytisch.tex b/buch/chapters/080-funktionentheorie/analytisch.tex index 15ca2e4..08196f1 100644 --- a/buch/chapters/080-funktionentheorie/analytisch.tex +++ b/buch/chapters/080-funktionentheorie/analytisch.tex @@ -9,6 +9,9 @@ Holomorphe Funktionen zeichnen sich dadurch aus, dass sie auch immer eine konvergente Reihenentwicklung haben, sie sind also analytisch. +% +% Definition +% \subsection{Definition} \index{Taylor-Reihe}% \index{Exponentialfunktion}% @@ -90,29 +93,29 @@ Damit ist gezeigt, dass alle Ableitungen $f^{(n)}(0)=0$ sind. Die Taylorreihe von $f(x)$ ist daher die Nullfunktion. \end{beispiel} -Die Klasse der Funktionen, die sich durch ihre Taylor-Reihe darstellen -lassen, zeichnet sich also durch besondere Eigenschaften aus, die in -der folgenden Definition zusammengefasst werden. - -\index{analytisch in einem Punkt}% -\index{analytisch}% -\begin{definition} -Eine auf einem offenen Intervall $I\subset \mathbb {R}$ definierte Funktion -$f\colon U\to\mathbb{R}$ heisst {\em analytisch im Punkt $x_0\in I$}, wenn -es eine in einer Umgebung von $x_0$ konvergente Potenzreihe -\[ -\sum_{k=0}^\infty a_k(x-x_0)^k = f(x) -\] -gibt. -Sie heisst {\em analytisch}, wenn sie analytisch ist in jedem Punkt von $I$. -\end{definition} +%Die Klasse der Funktionen, die sich durch ihre Taylor-Reihe darstellen +%lassen, zeichnet sich also durch besondere Eigenschaften aus, die in +%der folgenden Definition zusammengefasst werden. +% +%\index{analytisch in einem Punkt}% +%\index{analytisch}% +%\begin{definition} +%Eine auf einem offenen Intervall $I\subset \mathbb {R}$ definierte Funktion +%$f\colon U\to\mathbb{R}$ heisst {\em analytisch im Punkt $x_0\in I$}, wenn +%es eine in einer Umgebung von $x_0$ konvergente Potenzreihe +%\[ +%\sum_{k=0}^\infty a_k(x-x_0)^k = f(x) +%\] +%gibt. +%Sie heisst {\em analytisch}, wenn sie analytisch ist in jedem Punkt von $I$. +%\end{definition} -Es ist wohlbekannt aus der elementaren Theorie der Potenzreihen, dass +Es ist bekannt aus der elementaren Theorie der Potenzreihen +in Kapitel~\ref{buch:potenzen:section:potenzreihen}, dass eine analytische Funktion beliebig oft differenzierbar ist und dass die Potenzreihe im Punkt $x_0$ die Taylor-Reihe sein muss. -Ausserdem sidn Summen, Differenzen und Produkte von analytischen Funktionen +Ausserdem sind Summen, Differenzen und Produkte von analytischen Funktionen wieder analytisch. - Für eine komplexe Funktion lässt sich der Begriff der analytischen Funktion genau gleich definieren. @@ -131,8 +134,8 @@ Die Verwendung einer offenen Teilmenge $U\subset\mathbb{C}$ ist wesentlich, denn die Funktion $f\colon z\mapsto \overline{z}$ kann in jedem Punkt $x_0\in\mathbb{R}$ der reellen Achse $\mathbb{R}\subset\mathbb{C}$ durch die Potenzreihe -$f(x) = x_0 + (x-x_0)$ dargestellt werden. -Es gibt aber keine Potenzreihe, die $f(z)$ in einer offenen Teilmenge +$f(x) = x_0 + (x-x_0)$ dargestellt werden, +es gibt aber keine Potenzreihe, die $f(z)$ in einer offenen Teilmenge von $\mathbb{C}$ gegen $f(z)=\overline{z}$ konvergiert. % @@ -140,7 +143,40 @@ von $\mathbb{C}$ gegen $f(z)=\overline{z}$ konvergiert. % \subsection{Konvergenzradius \label{buch:funktionentheorie:subsection:konvergenzradius}} +In der Theorie der Potenzreihen, wie sie in Kapitel~\ref{buch:chapter:potenzen} +zusammengefasst wurde, wird auch untersucht, wie gross +eine Umgebung des Punktes $z_0$ ist, in der die Potenzreihe +im Punkt $z_0$ einer analytischen Funktion konvergiert. +Die Definition des Konvergenzradius gilt auch für komplexe Funktionen. -% XXX auf dem Rand des Konvergenzkreises gibt es immer eine Singularität +\begin{satz} +\index{Satz!Konvergenzradius}% +\label{buch:funktionentheorie:satz:konvergenzradius} +Die Potenzreihe +\[ +f(z) = \sum_{k=0}^\infty a_0(z-z_0)^k +\] +ist konvergent auf einem Kreis um $z_0$ mit Radius $\varrho$ und +\[ +\frac{1}{\varrho} += +\limsup_{n\to\infty} \sqrt[k]{|a_k|}. +\] +Falls $a_k\ne 0$ für alle $k$ und der folgende Grenzwert existiert, +dann gilt auch +\[ +\varrho = \lim_{n\to\infty} \biggl| \frac{a_n}{a_{n+1}}\biggr|. +\] +\end{satz} + +\begin{definition} +\label{buch:funktionentheorie:definition:konvergenzradius} +\index{Konvergenzradius}% +Der in Satz~\ref{buch:funktionentheorie:satz:konvergenzradius} +Radius $\varrho$ des Konvergenzkreises heisst {\em Konvergenzradius}. +\end{definition} +Man kann auch zeigen, dass der Konvergenzkreis immer so gross ist, +dass auf seinem Rand ein Wert $z$ liegt, für den die Potenzreihe nicht +konvergiert. diff --git a/buch/chapters/080-funktionentheorie/anwendungen.tex b/buch/chapters/080-funktionentheorie/anwendungen.tex index 4cdf9be..440d2d3 100644 --- a/buch/chapters/080-funktionentheorie/anwendungen.tex +++ b/buch/chapters/080-funktionentheorie/anwendungen.tex @@ -5,6 +5,10 @@ % \section{Anwendungen \label{buch:funktionentheorie:section:anwendungen}} +\rhead{Anwendungen} +In diesem Abschnitt wird die Theorie der komplex differenzierbaren +Funktionen dazu verwendet, einige früher bereits verwendete oder +angedeutete Resultate herzuleiten. \input{chapters/080-funktionentheorie/gammareflektion.tex} \input{chapters/080-funktionentheorie/carlson.tex} diff --git a/buch/chapters/080-funktionentheorie/carlson.tex b/buch/chapters/080-funktionentheorie/carlson.tex index 1923351..41fb5e8 100644 --- a/buch/chapters/080-funktionentheorie/carlson.tex +++ b/buch/chapters/080-funktionentheorie/carlson.tex @@ -24,6 +24,8 @@ beschränkt ist und an den Stellen $z=1,2,3,\dots$ verschwindet. Dann ist $f(z)=0$. \end{satz} +\index{Satz!von Carlson}% +\index{Carlson, Satz von}% \begin{figure} \centering \includegraphics{chapters/080-funktionentheorie/images/carlsonpath.pdf} diff --git a/buch/chapters/080-funktionentheorie/cauchy.tex b/buch/chapters/080-funktionentheorie/cauchy.tex index 21d8dcf..bd07a2f 100644 --- a/buch/chapters/080-funktionentheorie/cauchy.tex +++ b/buch/chapters/080-funktionentheorie/cauchy.tex @@ -6,6 +6,16 @@ \section{Cauchy-Integral \label{buch:funktionentheorie:section:cauchy}} \rhead{Cauchy-Integral} +In Abschnitt~\ref{buch:funktionentheorie:section:holomorph} hat sich +bereits gezeigt, dass komplexe Differenzierbarkeit einer komplexen +Funktion weit mehr Einschränkungen auferlegt als reelle Differenzierbarkeit. +Sowohl der Real- wie auch der Imaginärteil müssenharmonische Funktionen +sein. +In diesem Abschnitt wird die Cauchy-In\-te\-gral\-formel etabliert, die +sogar zeigt, dass eine komplex differenzierbare Funktion bereits durch +die Werte auf dem Rand eines einfach zusammenhängenden Gebietes +gegeben ist, beliebig oft differenzierbar ist und ausserdem immer +analytisch ist. % % Wegintegrale und die Cauchy-Formel @@ -125,6 +135,7 @@ Wie Wahl der Parametrisierung der Kurve hat keinen Einfluss auf den Wert des Wegintegrals. \begin{satz} +\index{Satz!Kurvenparametrisierung}% Seien $\gamma_1(t), t\in[a,b],$ und $\gamma_2(s),s\in[c,d]$ verschiedene Parametrisierungen \index{Parametrisierung}% diff --git a/buch/chapters/080-funktionentheorie/chapter.tex b/buch/chapters/080-funktionentheorie/chapter.tex index b7b5325..aa1041a 100644 --- a/buch/chapters/080-funktionentheorie/chapter.tex +++ b/buch/chapters/080-funktionentheorie/chapter.tex @@ -37,11 +37,6 @@ auf der rellen Achse hinaus fortsetzen. \input{chapters/080-funktionentheorie/fortsetzung.tex} \input{chapters/080-funktionentheorie/anwendungen.tex} -\section{TODO} -\begin{itemize} -\item Aurgument-Prinzip -\end{itemize} - \section*{Übungsaufgaben} \rhead{Übungsaufgaben} \aufgabetoplevel{chapters/080-funktionentheorie/uebungsaufgaben} diff --git a/buch/chapters/080-funktionentheorie/gammareflektion.tex b/buch/chapters/080-funktionentheorie/gammareflektion.tex index 537fd96..4a8f41f 100644 --- a/buch/chapters/080-funktionentheorie/gammareflektion.tex +++ b/buch/chapters/080-funktionentheorie/gammareflektion.tex @@ -12,12 +12,15 @@ die durch Spiegelung an der Geraden $\operatorname{Re}x=\frac12$ auseinander hervorgehen, und einem speziellen Beta-Integral her. \begin{satz} +\index{Satz!Spiegelungsformel für $\Gamma(x)$}% +\label{buch:funktionentheorie:satz:spiegelungsformel} Für $0<x<1$ gilt \begin{equation} \Gamma(x)\Gamma(1-x) = \frac{\pi}{\sin\pi x}. \end{equation} +\index{Gamma-Funktion!Spiegelungsformel}% \end{satz} \begin{figure} diff --git a/buch/chapters/080-funktionentheorie/holomorph.tex b/buch/chapters/080-funktionentheorie/holomorph.tex index c87b083..b2bacae 100644 --- a/buch/chapters/080-funktionentheorie/holomorph.tex +++ b/buch/chapters/080-funktionentheorie/holomorph.tex @@ -83,6 +83,7 @@ Der Term $x-x_0$ und die Gleichung \eqref{komplex:abldef} sind aber auch für komplexe Argument sinnvoll, wir definieren daher \begin{definition} +\label{buch:funktionentheorie:definition:differenzierbar} Die komplexe Funktion $f(z)$ heisst im Punkt $z_0$ komplex differenzierbar und hat die komplexe Ableitung $f'(z_0)\in\mathbb C$, wenn \index{komplex differenzierbar}% @@ -107,10 +108,10 @@ Differenzenquotienten finden: &= \frac{z^n-z_0^n}{z-z_0} = -\frac{(z-z_0)(z^{n-1}+z^{n-2}z_0+z^{n-3}z_0^2+\dots+z^{n-1})}{z-z_0} +\frac{(z-z_0)(z^{n-1}+z^{n-2}z_0+z^{n-3}z_0^2+\dots+z_0^{n-1})}{z-z_0} \\ &= -\underbrace{z^{n-1}+z^{n-2}z_0+z^{n-3}z_0^2+\dots+z^{n-1} +\underbrace{z^{n-1}+z^{n-2}z_0+z^{n-3}z_0^2+\dots+z_0^{n-1} }_{\displaystyle \text{$n$ Summanden}}. \end{align*} Lassen wir jetzt $z$ gegen $z_0$ gehen, wird die rechte Seite @@ -191,6 +192,7 @@ Dies ist nur möglich, wenn Real- und Imaginärteile übereinstimmen. Es folgt also \begin{satz} +\index{Satz!Cauchy-Riemann Differentialgleichungen}% \label{komplex:satz:cauchy-riemann} Real- und Imaginärteil $u(x,y)$ und $v(x,y)$ einer komplex differenzierbaren Funktion $f(z)$ mit $f(x+iy)=u(x,y)+iv(x,y)$ @@ -258,11 +260,12 @@ Der Operator \frac{\partial^2}{\partial y^2} \] heisst der {\em Laplace-Operator} in zwei Dimensionen. - \index{Laplace-Operator}% +\index{Operator!Laplace-}% \end{definition} \begin{definition} +\label{buch:funktionentheorie:definition:harmonisch} Eine Funktion $h(x,y)$ von zwei Variablen heisst {\em harmonisch}, wenn sie die Gleichung \[ diff --git a/buch/chapters/080-funktionentheorie/singularitaeten.tex b/buch/chapters/080-funktionentheorie/singularitaeten.tex index 71d1844..2a5c62c 100644 --- a/buch/chapters/080-funktionentheorie/singularitaeten.tex +++ b/buch/chapters/080-funktionentheorie/singularitaeten.tex @@ -5,6 +5,9 @@ % \newcommand*\sk{\vcenter{\hbox{\includegraphics[scale=0.8]{chapters/080-funktionentheorie/images/operator-1.pdf}}}} +% +% Löesung linearer Differentialgleichunge mit Singularitäten +% \subsection{Lösungen von linearen Differentialgleichungen mit Singularitäten \label{buch:funktionentheorie:subsection:dglsing}} Die Potenzreihenmethode hat ermöglicht, mindestens eine Lösung gewisser @@ -19,6 +22,9 @@ Ziel dieses Abschnitts ist zu zeigen, warum dies nicht möglich war und wie diese Schwierigkeit mit Hilfe der analytischen Fortsetzung überwunden werden kann. +% +% Differentialgleichungen mit Singularitäten +% \subsubsection{Differentialgleichungen mit Singularitäten} Mit der Besselschen Differentialgleichung~\eqref{buch:differentialgleichungen:eqn:bessel} @@ -76,6 +82,8 @@ in einer Umgebung von $x=0$ wieder nicht. Die Besselsche Differentialgleichung hat auch nicht die Form $y''+p(x)xy'+q(x)=0$, die der Theorie der Indexgleichung zugrunde lag. +\index{Besselsche Differentialgleichung}% +\index{Differentialgleichung!Besselsche}% Daher kann es auch keine Garantie geben, dass die Methode der verallgemeinerten Potenzreihen zwei linear unabhängige Lösungen liefern kann. @@ -93,11 +101,15 @@ Klasse von Singularitäten beschreiben, aber es ist nicht klar, welche weiteren Arten von Singularitäten berücksichtigt werden sollten. Dies soll im Folgenden geklärt werden. +% +% Der Lösungsraum einer Differentialgleichung zweiter Ordnung +% \subsubsection{Der Lösungsraum einer Differentialgleichung zweiter Ordnung} Eine Differentialgleichung $n$-ter Ordnung hat lokal einen $n$-dimensionalen Vektorraum als Lösungsraum. \begin{definition} +\label{buch:funktionentheorie:singularitaeten:def:loesungsraum} Sei \begin{equation} \sum_{k=0}^n a_k(x) y^{(n)}(x) = 0 @@ -124,8 +136,13 @@ der Lösungsraum der Differentialgleichung \eqref{buch:funktionentheorie:singularitaeten:eqn:defdgl}. Wenn der Punkt $x_0$ aus dem Kontext klar ist, kann er auch weggelassen werden: $\mathbb{L}_{x_0}=\mathbb{L}$. +\index{Lösungsraum einer Differentialgleichung}% +\index{Differentialgleichung!Lösungsraum}% \end{definition} +% +% Analytische Fortsetzung auf dem Weg um 0 +% \subsubsection{Analytische Fortsetzung auf einem Weg um $0$} Die betrachteten Differentialgleichungen haben holomorphe Koeffizienten, Lösungen der Differentialgleichung lassen sich @@ -159,11 +176,15 @@ Das Studium dieser analytischen Fortsetzung dürfte daher zusätzliche Informationen über die Lösung hervorbringen. \begin{definition} +\label{buch:funktionentheorie:def:fortsetzungsoperator} +\index{Fortsetzungsoperator}% Der {\em Fortsetzungsoperator} $\sk$ ist der lineare Operator, der eine in einem Punkt $x\in\mathbb{R}^+$ analytische Funktion $f(x)$ entlang eines geschlossenen Weges fortsetzt, der $0$ im Gegenuhrzeigersinn umläuft. Die Einschränkung der analytischen Fortsetzung auf $\mathbb{R}^+$ wird mit $\sk f(x)$ bezeichnet. +\index{analytische Fortsetzung}% +\index{Fortsetzung, analytisch}% \end{definition} Die obengenannten Beispiele lassen sich mit dem Operator $\sk$ als @@ -186,6 +207,9 @@ e^{2\pi i\varrho} z^\varrho \] schreiben. +% +% Rechenregeln für die analytische Fortsetzung +% \subsubsection{Rechenregeln für die analytische Fortsetzung} Der Operator $\sk$ ist ein Algebrahomomorphismus, d.~h.~für zwei analytische Funktionen $f$ und $g$ gilt @@ -215,7 +239,9 @@ vertauscht, dass also \sk(f^{(n)}). \] - +% +% Analytische Fortsetzung von Lösungen einer Differentialgleichung +% \subsubsection{Analytische Fortsetzung von Lösungen einer Differentialgleichung} Wir untersuchen jetzt die Wirkung des Operators $\sk$ auf den Lösungsraum $\mathbb{L}$ einer Differentialgleichung mit @@ -258,7 +284,9 @@ geeigneten Basis in besonders einfache Form gebracht. Wir führen diese Diskussion im folgenden nur für eine Differentialgleichung zweiter Ordnung $n=2$. - +% +% Fall A diagonalisierbar +% \subsubsection{Fall $A$ diagonalisierbar: verallgemeinerte Potenzreihen} In diesem Fall kann man die Lösungsfunktionen $w_1$ und $w_2$ so wählen, dass die Matrix @@ -326,6 +354,9 @@ Falls der Operator $\sk$ also diagonalisierbar ist, dann gibt es zwei linear unabhängige Lösungen der Differentialgleichung in der Form einer verallgemeinerten Potenzreihe. +% +% Fall $A$ nicht diagonalisierbar +% \subsubsection{Fall $A$ nicht diagonalisierbar: logarithmische Lösungen} Falls die Matrix $A$ nicht diagonalisierbar ist, hat sie nur einen Eigenwert $\lambda$ und kann durch geeignete Wahl einer Basis in @@ -421,7 +452,158 @@ in die ursprüngliche Differentialgleichung ein, verschwindet der $\log(z)$-Term und für die verbleibenden Koeffizienten kann die bekannte Methode des Koeffizientenvergleichs verwendet werden. -\subsubsection{Bessel-Funktionen zweiter Art} +% +% Bessel-Funktionen zweiter Art +% +\subsubsection{Bessel-Funktionen zweiter Art +\label{buch:funktionentheorie:subsubsection:bessel2art}} +Im Abschnitt~\ref{buch:differentialgleichungen:subsection:bessel1steart} +waren wir nicht in der Lage, für ganzahlige $\alpha$ zwei linear unabhängige +Lösungen der Besselschen Differentialgleichung zu finden. +Die vorangegangenen Ausführungen erklären dies: der Ansatz als +verallgemeinerte Potenzreihe konnte die Singularität nicht wiedergeben. +Inzwischen wissen wir, dass wir nach einer Lösung mit einer logarithmischen +Singularität suchen müssen. +Um dies nachzuprüfen, setzen wir den Ansatz +\[ +y(x) = \log(x) J_n(x) + z(x) +\] +in die Besselsche Differentialgleichung ein. +Dazu benötigen wir erst die Ableitungen von $y(x)$: +\begin{align*} +y'(x) +&= +\frac{1}{x} J_n(x) + \log(x)J_n'(x) + z'(x) +\\ +xy'(x) +&= +J_n(x) + x\log(x)J_n'(x) + xz'(x) +\\ +y''(x) +&= +-\frac{1}{x^2} J_n(x) ++\frac2x J_n'(x) ++\log(x) J_n''(x) ++z''(x) +\\ +x^2y''(x) +&= +-J_n(x) + 2xJ'_n(x)+x^2\log(x)J_n''(x) + x^2z''(x). +\end{align*} +Die Wirkung des Bessel-Operators auf $y(x)$ ist +\begin{align*} +By +&= +x^2y''+xy'+x^2y +\\ +&= +\log(x) \bigl( +\underbrace{ +x^2J_n''(x) ++xJ_n'(x) ++x^2J_n(x) +}_{\displaystyle = n^2J_n(x)} +\bigr) +-J_n(x)+2xJ_n'(x) ++J_n(x) ++ +xz'(x) ++ +x^2z''(x) +\\ +&= +n^2 \log(x)J_n(x) ++ +2xJ_n(x) ++ +x^2z(x) ++ +xz'(x) ++ +x^2z''(x) +\end{align*} +Damit $y(x)$ eine Eigenfunktion zum Eigenwert $n^2$ wird, muss +dies mit $n^2y(x)$ übereinstimmen, also +\begin{align*} +n^2 \log(x)J_n(x) ++ +2xJ_n(x) ++ +x^2z(x) ++ +xz'(x) ++ +x^2z''(x) +&= +n^2\log(x)J_n(x) + n^2z(x). +\intertext{Die logarithmischen Terme heben sich weg und es bleibt} +x^2z''(x) ++ +xz'(x) ++ +(x^2-n^2)z(x) +&= +-2xJ_n(x). +\end{align*} +Eine Lösung für $z(x)$ kann mit Hilfe eines Potenzreihenansatzes +gefunden werden. +Sie ist aber nur bis auf einen Faktor festgelegt. +Tatsächlich kann man aber auch eine direkte Definition geben. + +\begin{definition} +Die Bessel-Funktionen zweiter Art der Ordnung $\alpha$ sind die Funktionen +\begin{equation} +Y_\alpha(x) += +\frac{J_\alpha(x) \cos \alpha\pi - J_{-\alpha}(x)}{\sin \alpha\pi }. +\label{buch:funktionentheorie:bessel:2teart} +\end{equation} +Für ganzzahliges $\alpha$ verschwindet der Nenner in +\eqref{buch:funktionentheorie:bessel:2teart}, +daher ist +\[ +Y_n(x) += +\lim_{\alpha\to n} Y_{\alpha}(x) += +\frac{1}{\pi}\biggl( +\frac{d}{d\alpha}J_{\alpha}(x)\bigg|_{\alpha=n} ++ +(-1)^n +\frac{d}{d\alpha}J_{\alpha}(x)\bigg|_{\alpha=-n} +\biggr). +\] +\end{definition} +Die Funktionen $Y_\alpha(x)$ sind Linearkombinationen der Lösungen +$J_\alpha(x)$ und $J_{-\alpha}(x)$ und damit automatisch auch Lösungen +der Besselschen Differentialgleichung. +Dies gilt auch für den Grenzwert im Falle ganzahliger Ordnung $\alpha$. +Da $J_{\alpha}(x)$ durch eine Reihenentwicklung definiert ist, kann man +diese Termweise nach $\alpha$ ableiten und damit auch eine +Reihendarstellung von $Y_n(x)$ finden. +Nach einiger Rechnung findet man: +\begin{align*} +Y_n(x) +&= +\frac{2}{\pi}J_n(x)\log\frac{x}2 +- +\frac1{\pi} +\sum_{k=0}^{n-1} \frac{(n-k-1)!}{k!}\biggl(\frac{x}2\biggr)^{2k-n} +\\ +&\qquad\qquad +- +\frac1{\pi} +\sum_{k=0}^\infty \frac{(-1)^k}{k!\,(n+k)!} +\biggl( +\frac{\Gamma'(n+k+1)}{\Gamma(n+k+1)} ++ +\frac{\Gamma'(k+1)}{\Gamma(k+1)} +\biggr) +\biggl( +\frac{x}2 +\biggr)^{2k+n} +\end{align*} +(siehe auch \cite[p.~200]{buch:specialfunctions}). diff --git a/buch/chapters/090-pde/gleichung.tex b/buch/chapters/090-pde/gleichung.tex index 583895d..271dc44 100644 --- a/buch/chapters/090-pde/gleichung.tex +++ b/buch/chapters/090-pde/gleichung.tex @@ -6,10 +6,26 @@ \section{Gleichungen und Randbedingungen \label{buch:pde:section:gleichungen-und-randbedingungen}} \rhead{Gebiete, Gleichungen und Randbedingungen} +Gewöhnliche Differentialgleichungen sind immer auf einem +Intervall als Definitionsgebiet definiert. +Partielle Differentialgleichungen sind Gleichungen, die verschiedene +partielle Ableitungen einer Funktion mehrerer Variablen involvieren, +das Definitionsgebiet ist daher immer eine höherdimensionale Teilmenge +von $\mathbb{R}^n$. +Sowohl das Gebiet wie auch dessen Rand können wesentlich komplexer sein. +Eine sorgfältige Definition ist unabdingbar, um Widersprüchen vorzubeugen. +% +% Gebiete, Differentialoperatoren, Randbedingungen +% \subsection{Gebiete, Differentialoperatoren, Randbedingungen} +In diesem Abschnitt sollen die Begriffe geklärt werden, die zur +korrekten Formulierung eines partiellen Differentialgleichungsproblems +notwendig sind. - +% +% Gebiete +% \subsubsection{Gebiete} Gewöhnliche Differentialgleichungen haben nur eine unabhängige Variable, die gesuchte Lösungsfunktion ist auf eine @@ -20,6 +36,7 @@ ermöglicht wesentlich vielfältigere und kompliziertere Situationen. \begin{definition} +\label{buch:pde:definition:gebiet} Ein Gebiet $G\subset\mathbb{R}^n$ ist eine offene Teilmenge von $\mathbb{R}^n$, d.~h.~für jeden Punkt $x\in G$ gibt es eine kleine Umgebung @@ -29,8 +46,12 @@ U_{\varepsilon}(x) \{y\in\mathbb{R}^n\mid |x-y|<\varepsilon\} \), die ebenfalls in $G$ in enthalten ist, also $U_{\varepsilon}(x)\subset G$. +\index{Gebiet}% \end{definition} +% +% Differentialoperatoren +% \subsubsection{Differentialoperatoren} Eine gewöhnliche Differentialgleichung für eine Funktion ist eine Beziehung zwischen den Werten der Funktion und ihrer @@ -66,9 +87,13 @@ schreiben. Die Koeffizienten $a$, $b_i$, $c_{ij}$ können dabei durchaus auch Funktionen der unabhängigen Variablen sein. +% +% Laplace-Operator +% \subsubsection{Laplace-Operator} -Der Laplace-Operator hat in einem karteischen Koordinatensystem die +Der {\em Laplace-Operator} hat in einem karteischen Koordinatensystem die Form +\index{Laplace-Operator}% \[ \Delta = @@ -86,28 +111,109 @@ nicht ändert. Man könnte sagen, der Laplace-Operator ist symmetrisch bezüglich aller Bewegungen des Raumes. +% +% Wellengleichung +% \subsubsection{Wellengleichung} +Da die physikalischen Gesetze invariant sein müssen unter solchen +Bewegungen, ist zu erwarten, dass der Laplace-Operator in partiellen +Differentialgleichungen +Als Beispiel betrachten wir die Ausbreitung einer Welle, welche sich +in einem Medium mit der Geschwindigkeit $c$ ausbreitet. +Ist $u(x,t)$ die Auslenkung der Welle im Punkt $x\in\mathbb{R}^n$ +zur Zeit $t\in\mathbb{R}$, dann erfüllt die Funktion $u(x,t)$ +die partielle Differentialgleichung +\begin{equation} +\frac{1}{c^2} +\frac{\partial^2 u}{\partial t^2} += +\Delta u. +\label{buch:pde:eqn:waveequation} +\end{equation} +In dieser Gleichung treten nicht nur die partiellen Ableitungen +nach den Ortskoordinaten auf, die der Laplace-Operator miteinander +verknüpft. +Die Funktion $u(x,t)$ ist definiert auf einem Gebiet in +$\mathbb{R}^{n}\times\mathbb{R}=\mathbb{R}^{n+1}$ mit den Koordinaten +$(x_1,\dots,x_n,t)$. +Der Gleichung~\eqref{buch:pde:eqn:waveequation} ist daher eigentlich +die Gleichung +\[ +\square u = 0 +\qquad\text{mit}\quad +\square += +\frac{1}{c^2}\frac{^2}{\partial t^2} +- +\Delta += +\frac{1}{c^2}\frac{\partial^2}{\partial t^2} +- +\frac{\partial^2}{\partial x_1^2} +- +\frac{\partial^2}{\partial x_2^2} +-\dots- +\frac{\partial^2}{\partial x_n^2} +\] +wird. +Der Operator $\square$ heisst auch d'Alembert-Operator. +\index{dAlembertoperator@d'Alembert-Operator}% -\subsubsection{Eigenfunktionen} -Eine besonders einfache - -\subsubsection{Trigonometrische Funktionen} -Die trigonometrischen Funktionen - -\subsection{Orthogonalität} -In der linearen Algebra lernt man, dass die Eigenvektoren einer -symmetrischen Matrix zu verschiedenen Eigenwerten orthgonal sind. -Dies hat zur Folge, dass die Transformation in eine Eigenbasis -mit einer orthogonalen Matrix möglich ist, was wiederum die Basis -von Diagonalisierungsverfahren wie dem Jacobi-Verfahren ist. - -Das Separationsverfahren wird zeigen, wie sich das Finden einer -Lösung der Wellengleichung auf Lösungen des Eigenwertproblems -$\Delta u = \lambda u$ zurückführen lässt. -Damit stellt sich die Frage, welche Eigenschaften - +% +% Randbedingungen +% +\subsubsection{Randbedingungen} +Die Differentialgleichung oder der Differentialoperator legen die +Lösung nicht fest. +Wie bei gewöhnlichen Differentialgleichungen ist dazu die Spezifikation +geeigneter Randbedingungen nötig. -\subsubsection{Gewöhnliche Differentialglichung} +\begin{definition} +\label{buch:pde:definition:randbedingungen} +Eine {\em Randbedingung} für das Gebiet $\Omega$ ist eine Teilmenge +$F\subset\partial\Omega$ sowie eine auf $F$ definierte Funktion +$f\colon F\to\mathbb{R}$. +Eine Funktion $u\colon \overline{\Omega} \to\mathbb{R}$ erfüllt eine +{\em Dirichlet-Randbedingung}, wenn +\index{Dirichlet-Randbedingung}% +\index{Randbedingung!Dirichlet-}% +\( +u(x) = f(x) +\) +für $x\in F$. +Sie erfüllt eine {\em Neumann-Randbedingung}, wenn +\index{Neumann-Randbedingung}% +\index{Randbedingung!Neumann-}% +\[ +\frac{\partial u}{\partial n} += +f(x)\qquad\text{für $x\in F$}. +\] +Dabei ist +\[ +\frac{\partial u}{\partial n} += +\frac{d}{dt} +u(x+tn) +\bigg|_{t=0} += +\operatorname{grad}u\cdot n +\] +\index{Normalableitung}% +die {\em Normalableitung}, die Richtungsableitung in Richtung des +Vektors $n$, der senkrecht ist auf dem Rand $\partial\Omega$ von +$\Omega$. +\end{definition} +Die Vorgabe nur von Ableitungen kann natürlich die Lösung $u(x)$ +einer linearen partiellen Differentialgleichung nicht eindeutig +festlegen, dazu ist noch mindestens ein Funktionswert notwendig. +Die Vorgabe von anderen Ableitungen in Richtungen tangential an den +Rand liefert keine neue Information, denn ausgehend von dem einen +Funktionswert auf dem Rand kann man durch Integration entlang +einer Kurve auf dem Rand eine Neumann-Randbedingung konstruieren, +die die gleiche Information beinhaltet wie Anforderungen an die +tangentialen Ableitungen. +Dirichlet- und Neumann-Randbedingungen sind daher die einzigen +sinnvollen linearen Randbedingungen. -\subsubsection{$n$-dimensionaler Fall} diff --git a/buch/chapters/110-elliptisch/Makefile.inc b/buch/chapters/110-elliptisch/Makefile.inc index 639cb8f..4e2644c 100644 --- a/buch/chapters/110-elliptisch/Makefile.inc +++ b/buch/chapters/110-elliptisch/Makefile.inc @@ -12,4 +12,8 @@ CHAPTERFILES += \ chapters/110-elliptisch/mathpendel.tex \ chapters/110-elliptisch/lemniskate.tex \ chapters/110-elliptisch/uebungsaufgaben/1.tex \ + chapters/110-elliptisch/uebungsaufgaben/2.tex \ + chapters/110-elliptisch/uebungsaufgaben/3.tex \ + chapters/110-elliptisch/uebungsaufgaben/4.tex \ + chapters/110-elliptisch/uebungsaufgaben/5.tex \ chapters/110-elliptisch/chapter.tex diff --git a/buch/chapters/110-elliptisch/agm/Makefile b/buch/chapters/110-elliptisch/agm/Makefile new file mode 100644 index 0000000..8dab511 --- /dev/null +++ b/buch/chapters/110-elliptisch/agm/Makefile @@ -0,0 +1,15 @@ +# +# Makefile +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +all: sn + +sn: sn.cpp + g++ -O -Wall -g -std=c++11 sn.cpp -o sn `pkg-config --cflags gsl` `pkg-config --libs gsl` + + +agm: agm.cpp + g++ -O -Wall -g -std=c++11 agm.cpp -o agm `pkg-config --cflags gsl` `pkg-config --libs gsl` + ./agm + diff --git a/buch/chapters/110-elliptisch/agm/agm.cpp b/buch/chapters/110-elliptisch/agm/agm.cpp new file mode 100644 index 0000000..8abb4b2 --- /dev/null +++ b/buch/chapters/110-elliptisch/agm/agm.cpp @@ -0,0 +1,75 @@ +/* + * agm.cpp + * + * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + */ +#include <cstdlib> +#include <cstdio> +#include <cmath> +#include <iostream> +#include <gsl/gsl_sf_ellint.h> + +inline long double sqrl(long double x) { + return x * x; +} + +long double Xn(long double a, long double b, long double x) { + double long epsilon = fabsl(a - b); + if (epsilon > 0.001) { + return (a - sqrtl(sqrl(a) - sqrl(x) * (a + b) * (a - b))) + / (x * (a - b)); + } + long double d = a + b; + long double x1 = 0; + long double y2 = sqrl(x/a); + long double c = 1; + long double s = 0; + int k = 1; + while (c > 0.0000000000001) { + c *= (0.5 - (k - 1)) / k; + c *= (d - epsilon) * y2; + s += c; + c *= epsilon; + c = -c; + k++; + } + return s * a / x; +} + +int main(int argc, char *argv[]) { + long double a = 1; + long double b = sqrtl(2.)/2; + long double x = 0.7; + if (argc >= 3) { + a = std::stod(argv[1]); + b = std::stod(argv[2]); + } + if (argc >= 4) { + x = std::stod(argv[3]); + } + + { + long double an = a; + long double bn = b; + long double xn = x; + for (int i = 0; i < 10; i++) { + printf("%d %24.18Lf %24.18Lf %24.18Lf %24.18Lf\n", + i, an, bn, xn, a * asin(xn) / an); + long double A = (an + bn) / 2; + xn = Xn(an, bn, xn); + bn = sqrtl(an * bn); + an = A; + } + } + + { + double k = b/a; + k = sqrt(1 - k*k); + double K = gsl_sf_ellint_Kcomp(k, GSL_PREC_DOUBLE); + printf(" %24.18f %24.18f\n", k, K); + double F = gsl_sf_ellint_F(asinl(x), k, GSL_PREC_DOUBLE); + printf(" %24.18f %24.18f\n", k, F); + } + + return EXIT_SUCCESS; +} diff --git a/buch/chapters/110-elliptisch/agm/agm.m b/buch/chapters/110-elliptisch/agm/agm.m new file mode 100644 index 0000000..dcb3ad8 --- /dev/null +++ b/buch/chapters/110-elliptisch/agm/agm.m @@ -0,0 +1,20 @@ +# +# agm.m +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +format long + +n = 10; +a = 1; +b = sqrt(0.5); + +for i = (1:n) + printf("%20.16f %20.16f\n", a, b); + A = (a+b)/2; + b = sqrt(a*b); + a = A; +end + +K = pi / (2 * a) + diff --git a/buch/chapters/110-elliptisch/agm/agm.maxima b/buch/chapters/110-elliptisch/agm/agm.maxima new file mode 100644 index 0000000..c7facd4 --- /dev/null +++ b/buch/chapters/110-elliptisch/agm/agm.maxima @@ -0,0 +1,26 @@ +/* + * agm.maxima + * + * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + */ + +S: 2*a*sin(theta1) / (a+b+(a-b)*sin(theta1)^2); + +C2: ratsimp(diff(S, theta1)^2 / (1 - S^2)); +C2: ratsimp(subst(sqrt(1-sin(theta1)^2), cos(theta1), C2)); +C2: ratsimp(subst(S, sin(theta), C2)); +C2: ratsimp(subst(sqrt(1-S^2), cos(theta), C2)); + +D2: (a^2 * cos(theta)^2 + b^2 * sin(theta)^2) + / + (a1^2 * cos(theta1)^2 + b1^2 * sin(theta1)^2); +D2: subst((a+b)/2, a1, D2); +D2: subst(sqrt(a*b), b1, D2); +D2: ratsimp(subst(1-S^2, cos(theta)^2, D2)); +D2: ratsimp(subst(S, sin(theta), D2)); +D2: ratsimp(subst(1-sin(theta1)^2, cos(theta1)^2, D2)); + +Q: D2/C2; +Q: ratsimp(subst(x, sin(theta1), Q)); + +Q: ratsimp(expand(ratsimp(Q))); diff --git a/buch/chapters/110-elliptisch/agm/sn.cpp b/buch/chapters/110-elliptisch/agm/sn.cpp new file mode 100644 index 0000000..9e1b047 --- /dev/null +++ b/buch/chapters/110-elliptisch/agm/sn.cpp @@ -0,0 +1,52 @@ +/* + * sn.cpp + * + * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + */ +#include <cstdlib> +#include <cstdio> +#include <cmath> +#include <iostream> +#include <gsl/gsl_sf_ellint.h> +#include <gsl/gsl_sf_elljac.h> + +static const int N = 10; + +inline long double sqrl(long double x) { + return x * x; +} + +int main(int argc, char *argv[]) { + long double u = 0.6; + long double k = 0.9; + long double kprime = sqrt(1 - sqrl(k)); + + long double a[N], b[N], x[N+1]; + a[0] = 1; + b[0] = kprime; + + for (int n = 0; n < N-1; n++) { + printf("a[%d] = %22.18Lf b[%d] = %22.18Lf\n", n, a[n], n, b[n]); + a[n+1] = (a[n] + b[n]) / 2; + b[n+1] = sqrtl(a[n] * b[n]); + } + + x[N] = sinl(u * a[N-1]); + printf("x[%d] = %22.18Lf\n", N, x[N]); + + for (int n = N - 1; n >= 0; n--) { + x[n] = 2 * a[n] * x[n+1] / (a[n] + b[n] + (a[n] - b[n]) * sqrl(x[n+1])); + printf("x[%2d] = %22.18Lf\n", n, x[n]); + } + + printf("sn(%7.4Lf, %7.4Lf) = %20.24Lf\n", u, k, x[0]); + + double sn, cn, dn; + double m = sqrl(k); + gsl_sf_elljac_e((double)u, m, &sn, &cn, &dn); + printf("sn(%7.4Lf, %7.4Lf) = %20.24f\n", u, k, sn); + printf("cn(%7.4Lf, %7.4Lf) = %20.24f\n", u, k, cn); + printf("dn(%7.4Lf, %7.4Lf) = %20.24f\n", u, k, dn); + + return EXIT_SUCCESS; +} diff --git a/buch/chapters/110-elliptisch/chapter.tex b/buch/chapters/110-elliptisch/chapter.tex index e05f3bd..21fc986 100644 --- a/buch/chapters/110-elliptisch/chapter.tex +++ b/buch/chapters/110-elliptisch/chapter.tex @@ -35,11 +35,15 @@ wieder hergestellt. \input{chapters/110-elliptisch/lemniskate.tex} -\section*{Übungsaufgabe} -\rhead{Übungsaufgabe} +\section*{Übungsaufgaben} +\rhead{Übungsaufgaben} \aufgabetoplevel{chapters/110-elliptisch/uebungsaufgaben} \begin{uebungsaufgaben} %\uebungsaufgabe{0} \uebungsaufgabe{1} +\uebungsaufgabe{2} +\uebungsaufgabe{3} +\uebungsaufgabe{4} +\uebungsaufgabe{5} \end{uebungsaufgaben} diff --git a/buch/chapters/110-elliptisch/dglsol.tex b/buch/chapters/110-elliptisch/dglsol.tex index 7eaab38..c5b3a5c 100644 --- a/buch/chapters/110-elliptisch/dglsol.tex +++ b/buch/chapters/110-elliptisch/dglsol.tex @@ -228,8 +228,10 @@ Nach Multiplikation mit $\operatorname{qp}(u,k)^4$ erhält man den folgenden Satz. \begin{satz} +\index{Satz!Differentialgleichung von $1/\operatorname{pq}(u,k)$}% Wenn die Jacobische elliptische Funktion $\operatorname{pq}(u,k)$ -der Differentialgleichung genügt, dann genügt der Kehrwert +der Differentialgleichung~\eqref{buch:elliptisch:eqn:1storderdglell} +genügt, dann genügt der Kehrwert $\operatorname{qp}(u,k) = 1/\operatorname{pq}(u,k)$ der Differentialgleichung \begin{equation} (\operatorname{qp}'(u,k))^2 @@ -276,8 +278,8 @@ vertauscht worden sind. % Differentialgleichung zweiter Ordnung % \subsubsection{Differentialgleichung zweiter Ordnung} -Leitet die Differentialgleichung~\eqref{buch:elliptisch:eqn:1storderdglell} -man dies nochmals nach $u$ ab, erhält man die Differentialgleichung +Leitet man die Differentialgleichung~\eqref{buch:elliptisch:eqn:1storderdglell} +nochmals nach $u$ ab, erhält man die Differentialgleichung \[ 2\operatorname{pq}''(u,k)\operatorname{pq}'(u,k) = @@ -339,19 +341,231 @@ y(u) = F^{-1}(u+C). Die Jacobischen elliptischen Funktionen sind daher inverse Funktionen der unvollständigen elliptischen Integrale. +\begin{beispiel} +Die Differentialgleichung der Funktion $y=\operatorname{sn}(u,k)$ ist +\[ +(y')^2 += +(1-y^2)(1-k^2y^2). +\] +Aus \eqref{buch:elliptisch:eqn:yintegral} folgt daher, dass +\[ +u+C += +\int\frac{dy}{(1-y^2)(1-k^2y^2)}. +\] +Das Integral ist das unvollständige elliptische Integral erster Art. +Mit der Wahl der Konstanten $C$ so, dass $y(0)=0$ ist, ist +$y(u)=\operatorname{sn}(u,k)$ daher die Umkehrfunktion von +$y\mapsto F(y,k)=u$. +\end{beispiel} + +% +% Numerische Berechnung mit dem arithmetisch-geometrischen Mittel +% +\subsubsection{Numerische Berechnung mit dem arithmetisch-geometrischen Mittel +\label{buch:elliptisch:jacobi:agm}} +\begin{table} +\centering +\begin{tikzpicture}[>=latex,thick] + +\begin{scope}[xshift=-2.4cm,yshift=1.2cm] +\fill[color=red!20] + (-1.0,0) -- (-1.0,-2.1) -- (-1.8,-2.1) -- (0,-3.0) + -- (1.8,-2.1) -- (1.0,-2.1) -- (1.0,0) -- cycle; +\node[color=white] at (0,-1.2) [scale=7] {\sf 1}; +\end{scope} + +\begin{scope}[xshift=2.9cm,yshift=-1.8cm] +\fill[color=blue!20] + (0.8,0) -- (0.8,2.1) -- (1.4,2.1) -- (0,3.0) -- (-1.4,2.1) + -- (-0.8,2.1) -- (-0.8,0) -- cycle; +\node[color=white] at (0,1.2) [scale=7] {\sf 2}; +\end{scope} + +\node at (0,0) { +\begin{tabular}{|>{$}c<{$}|>{$}c<{$}>{$}c<{$}|>{$}c<{$}>{$}l<{$}|} +\hline +n & a_n & b_n & x_n & +\mathstrut\text{\vrule height12pt depth6pt width0pt}\\ +\hline +0 & 1.0000000000000000 & 0.4358898943540673 & 0.5422823228691580 & = \operatorname{sn}(u,k)% +\mathstrut\text{\vrule height12pt depth0pt width0pt}\\ +1 & 0.7179449471770336 & 0.6602195804079634 & 0.4157689781689663 & \mathstrut\\ +2 & 0.6890822637924985 & 0.6884775317911533 & 0.4017521410983242 & \mathstrut\\ +3 & 0.6887798977918259 & 0.6887798314243237 & 0.4016042867931862 & \mathstrut\\ +4 & 0.6887798646080748 & 0.6887798646080740 & 0.4016042705654757 & \mathstrut\\ +5 & 0.6887798646080744 & 0.6887798646080744 & 0.4016042705654755 & \mathstrut\\ +6 & & & 0.4016042705654755 & = \sin(a_5u) +\mathstrut\text{\vrule height0pt depth6pt width0pt}\\ +\hline +\end{tabular} +}; +\end{tikzpicture} +\caption{Berechnung von $\operatorname{sn}(u,k)$ für $u=0.6$ und $k=0.$2 +mit Hilfe des arithmetisch-geo\-me\-tri\-schen Mittels. +In der ersten Phase des Algorithmus (rot) wird die Folge der arithmetischen +\index{Algorithmus!arithmetisch-geometrisches Mittel}% +und geometrischen Mittel berechnet, in der zweiten Phase werden die +Approximationen von $x_0=\operatorname{sn}(u,k)$. +Bei $n=5$ erreicht die Iteration des arithmetisch-geometrischen Mittels +Maschinengenauigkeit, was sich auch darin äussert, dass sich $x_5$ und +$x_6=\sin(a_5u)$ nicht unterscheiden. +\label{buch:elliptisch:agm:table:snberechnung}} +\end{table} +In Abschnitt~\ref{buch:elliptisch:subsection:agm} auf +Seite~\pageref{buch:elliptisch:subsubection:berechnung-fxk-agm} +wurde erklärt, wie das unvollständige elliptische Integral $F(x,k)$ mit +Hilfe des arithmetisch-geometrischen Mittels berechnet werden kann. +\index{Algorithmus!arithmetisch-geometrisches Mittel}% +\index{arithmetisch-geometrisches Mittel!Algorithmus}% +Da $\operatorname{sn}^{-1}(x,k) = F(x,k)$ die Umkehrfunktion ist, kann +man den Algorithmus auch zur Berechnung von $\operatorname{sn}(u,k)$ +verwenden. +Dazu geht man wie folgt vor: +\begin{enumerate} +\item +$k'=\sqrt{1-k^2}$. +\item +Berechne die Folgen des arithmetisch-geometrischen Mittels +$a_n$ und $b_n$ mit $a_0=1$ und $b_0=k'$, bis zum Folgenindex $N$, +bei dem ausreichende Konvergenz eintegreten ist. +\item +Setze $x_N = \sin(a_N \cdot u)$. +\item +Berechnet für absteigende $n=N-1,N-2,\dots$ die Folge $x_n$ mit Hilfe +der Rekursionsformel +\begin{equation} +x_{n} += +\frac{2a_nx_{n+1}}{a_n+b_n+(a_n-b_n)x_{n+1}^2}, +\label{buch:elliptisch:agm:xnrek} +\end{equation} +die aus \eqref{buch:elliptisch:agm:subst} +durch die Substitution $x_n = \sin t_n$ entsteht. +\item +Setze $\operatorname{sn}(u,k) = x_0$. +\end{enumerate} +Da die Formel \eqref{buch:elliptisch:agm:xnrek} nicht unter den +numerischen Stabilitätsproblemen leidet, die früher auf +Seite~\pageref{buch:elliptisch:agm:ellintegral-stabilitaet} +diskutiert wurden, ist die Berechnung stabil und sehr schnell. +Tabelle~\ref{buch:elliptisch:agm:table:snberechnung} +zeigt die Berechnung am Beispiel $u=0.6$ und $k=0.2$. + +% +% Pole und Nullstellen der Jacobischen elliptischen Funktionen +% +\subsubsection{Pole und Nullstellen der Jacobischen elliptischen Funktionen} +\begin{figure} +\centering +\includegraphics{chapters/110-elliptisch/images/ellpolnul.pdf} +\caption{Werte der grundlegenden Jacobischen elliptischen Funktionen +$\operatorname{sn}(u,k)$, +$\operatorname{cn}(u,k)$ +und +$\operatorname{dn}(u,k)$ +in den Ecken des Rechtecks mit Ecken $(0,0)$ und $(K,K+iK')$. +Links der Definitionsbereich, rechts die Werte der drei Funktionen. +Pole sind mit einem Kreuz ($\times$) bezeichnet, Nullstellen mit einem +Kreis ($\ocircle$). +\label{buch:elliptisch:fig:ellpolnul}} +\end{figure} +\begin{figure} +\centering +\includegraphics{chapters/110-elliptisch/images/ellall.pdf} +\caption{Pole und Nullstellen aller Jacobischen elliptischen Funktionen +mit den gleichen Darstellungskonventionen wie in +Abbildung~\ref{buch:elliptisch:fig:ellpolnul} +\label{buch:elliptisch:fig:ellall}} +\end{figure} +\begin{figure} +\centering +\includegraphics{chapters/110-elliptisch/images/ellselection.pdf} +\caption{Auswahl einer Jacobischen elliptischen Funktion mit bestimmten +Nullstellen und Polen. +Nullstellen und Pole können in jeder der vier Ecken des fundamentalen +Rechtecks (gelb, oberer rechter Viertel des Periodenrechtecks) liegen. +Der erste Buchstabe des Namens der gesuchten Funktion ist der Buchstabe +der Ecke der Nullstelle, der zweite Buchstabe ist der Buchstabe der +Ecke des Poles. +Im Beispiel die Funktion $\operatorname{cd}(u,k)$, welche eine +Nullstelle in $K$ hat und einen Pol in $K+iK'$. +\label{buch:elliptisch:fig:selectell}} +\end{figure} +Für die Funktion $y=\operatorname{sn}(u,k)$ erfüllt die Differentialgleichung +\[ +\frac{dy}{du} += +\sqrt{(1-y^2)(1-k^2y^2)}, +\] +welche mit dem unbestimmten Integral +\begin{equation} +u + C = \int\frac{dy}{\sqrt{(1-y^2)(1-k^2y^2)}} +\label{buch:elliptisch:eqn:uyintegral} +\end{equation} +gelöst werden kann. +Der Wertebereich des Integrals in \eqref{buch:elliptisch:eqn:uyintegral} +wurde bereits in +Abschnitt~\ref{buch:elliptisch:subsection:unvollstintegral} +auf Seite~\pageref{buch:elliptische:subsubsection:wertebereich} +diskutiert. +Daraus können jetzt Nullstellen und Pole der Funktion $\operatorname{sn}(u,k)$ +und mit Hilfe von Tabelle~\ref{buch:elliptisch:fig:jacobi-relationen} +auch für $\operatorname{cn}(u,k)$ und $\operatorname{dn}(u,k)$ +abgelesen werden: +\begin{equation} +\begin{aligned} +\operatorname{sn}(0,k)&=0 +&&\qquad& +\operatorname{cn}(0,k)&=1 +&&\qquad& +\operatorname{dn}(0,k)&=1 +\\ +\operatorname{sn}(iK',k)&=\infty +&&\qquad& +\operatorname{cn}(iK',k)&=\infty +&&\qquad& +\operatorname{dn}(iK',k)&=\infty +\\ +\operatorname{sn}(K,k)&=1 +&&\qquad& +\operatorname{cn}(K,k)&=0 +&&\qquad& +\operatorname{dn}(K,k)&=k' +\\ +\operatorname{sn}(K+iK',k)&=\frac{1}{k} +&&\qquad& +\operatorname{cn}(K+iK',k)&=\frac{k'}{ik} +&&\qquad& +\operatorname{dn}(K+iK',k)&=0 +\end{aligned} +\label{buch:elliptische:eqn:eckwerte} +\end{equation} +Abbildung~\ref{buch:elliptisch:fig:ellpolnul} zeigt diese Werte +an einer schematischen Darstellung des Definitionsbereiches auf. +Daraus lassen sich jetzt auch die Werte der abgeleiteten Jacobischen +elliptischen Funktionen ablesen, Pole und Nullstellen sind in +Abbildung~\ref{buch:elliptisch:fig:ellall} +zusammengestellt. + + + + % % Differentialgleichung des anharmonischen Oszillators % \subsubsection{Differentialgleichung des anharmonischen Oszillators} Wir möchten die nichtlineare Differentialgleichung +\index{Differentialgleichung!das anharmonischen Oszillators}% \begin{equation} \biggl( \frac{dx}{dt} \biggr)^2 = Ax^4+Bx^2 + C -\label{buch:elliptisch:eqn:allgdgl} +\label{buch:elliptisch:eqn:anhdgl} \end{equation} mit Hilfe elliptischer Funktionen lösen. Wir nehmen also an, dass die gesuchte Lösung eine Funktion der Form @@ -368,7 +582,7 @@ a\operatorname{zn}'(bt,k). \] Indem wir diesen Lösungsansatz in die -Differentialgleichung~\eqref{buch:elliptisch:eqn:allgdgl} +Differentialgleichung~\eqref{buch:elliptisch:eqn:anhdgl} einsetzen, erhalten wir \begin{equation} a^2b^2 \operatorname{zn}'(bt,k)^2 @@ -478,13 +692,13 @@ Da alle Parameter im Lösungsansatz~\eqref{buch:elliptisch:eqn:loesungsansatz} bereits festgelegt sind stellt sich die Frage, woher man einen weiteren Parameter nehmen kann, mit dem Anfangsbedingungen erfüllen kann. -Die Differentialgleichung~\eqref{buch:elliptisch:eqn:allgdgl} ist +Die Differentialgleichung~\eqref{buch:elliptisch:eqn:anhdgl} ist autonom, die Koeffizienten der rechten Seite der Differentialgleichung sind nicht von der Zeit abhängig. Damit ist eine zeitverschobene Funktion $x(t-t_0)$ ebenfalls eine Lösung der Differentialgleichung. Die allgmeine Lösung der -Differentialgleichung~\eqref{buch:elliptisch:eqn:allgdgl} hat +Differentialgleichung~\eqref{buch:elliptisch:eqn:anhdgl} hat also die Form \[ x(t) = a\operatorname{zn}(b(t-t_0)), @@ -492,3 +706,7 @@ x(t) = a\operatorname{zn}(b(t-t_0)), wobei die Funktion $\operatorname{zn}(u,k)$ auf Grund der Vorzeichen von $A$, $B$ und $C$ gewählt werden müssen. +Die Übungsaufgaben~\ref{buch:elliptisch:aufgabe:1} ist als +Lernaufgabe konzipiert, mit der die Lösung der Differentialgleichung +des harmonischen Oszillators beispielhaft durchgearbeitet +werden kann. diff --git a/buch/chapters/110-elliptisch/ellintegral.tex b/buch/chapters/110-elliptisch/ellintegral.tex index 4cb2ba3..466aeb7 100644 --- a/buch/chapters/110-elliptisch/ellintegral.tex +++ b/buch/chapters/110-elliptisch/ellintegral.tex @@ -179,6 +179,7 @@ Da im Integral nur $k^2$ auftaucht, wird sich $K(k)$ als hypergeometrische Funktion von $k^2$ ausdrücken lassen. \begin{satz} +\index{Satz!vollständiges elliptisches Integral als hypergeometrische Funktion}% \label{buch:elliptisch:satz:hyperK} Das vollständige elliptische Integral $K(k)$ lässt sich durch die hypergeometrische Funktion $\mathstrut_2F_1$ als @@ -355,9 +356,9 @@ K(k) dies beweist die Behauptung. \end{proof} - - - +% +% Umfang einer Ellipse +% \subsubsection{Umfang einer Ellipse} \begin{figure} \centering @@ -430,7 +431,7 @@ Für $\varepsilon=1$ ist $a=0$, es entsteht eine Strecke mit Länge $E(1)=1$. \begin{satz} \label{buch:elliptisch:satz:hyperE} -Das volständige elliptische Integral $E(k)$ ist +Das vollständige elliptische Integral $E(k)$ ist \[ E(k) = @@ -451,13 +452,331 @@ Hilfe einer Entwicklung der Wurzel mit der Binomialreihe gefunden werden. \end{proof} -\subsubsection{Komplementäre Integrale} +Die Darstellung von $E(k)$ als hypergeometrische Reihe ermöglicht +jetzt zum Beispiel auch die Berechnung der Ableitung nach dem +Parameter $k$ mit der Ableitungsformel für die Funktion $\mathstrut_2F_1$. + + +% +% Berechnung mit dem arithmetisch-geometrischen Mittel +% +\subsection{Berechnung mit dem arithmetisch-geometrischen Mittel +\label{buch:elliptisch:subsection:agm}} +Die numerische Berechnung von elliptischer Integrale mit gewöhnlichen +numerischen Integrationsroutinen ist nicht sehr effizient. +Das in diesem Abschnitt vorgestellte arithmetisch-geometrische Mittel +\index{arithmetisch-geometrisches Mittel}% +liefert einen Algorithmus mit sehr viel besserer Konvergenz. +Die Methode lässt sich auch auf die unvollständigen elliptischen +Integrale von Abschnitt~\eqref{buch:elliptisch:subsection:unvollstintegral} +verallgemeinern. +Sie ist ein Speziallfall der sogenannten Landen-Transformation, +\index{Landen-Transformation}% +welche ausser für die elliptischen Integrale auch für die +Jacobischen elliptischen Funktionen formuliert werden kann und +für letztere ebenfalls sehr schnelle numerische Algorithmen liefert +(siehe dazu auch die +Aufgaben~\ref{buch:elliptisch:aufgabe:2}--\ref{buch:elliptisch:aufgabe:4}). +Sie kann auch verwendet werden, um die Werte der Jacobischen elliptischen +Funktionen für komplexe Argument zu berechnen. +Eine weiter Anwendung ist die Berechnung einer grossen Zahl von +Stellen der Kreiszahl $\pi$, siehe Aufgaben~\ref{buch:elliptisch:aufgabe:5}. + +% +% Das arithmetisch-geometrische Mittel +% +\subsubsection{Das arithmetisch-geometrische Mittel} +Seien $a$ und $b$ zwei nichtnegative reelle Zahlen. +Aus $a$ und $b$ werden jetzt zwei Folgen konstruiert, deren Glieder +durch +\begin{align*} +a_0&=a &&\text{und}& a_{n+1} &= \frac{a_n+b_n}2 &&\text{arithmetisches Mittel} +\\ +b_0&=b &&\text{und}& b_{n+1} &= \sqrt{a_nb_n} &&\text{geometrisches Mittel} +\end{align*} +definiert sind. + +\begin{satz} +\index{Satz!arithmetisch-geometrisches Mittel}% +Falls $a>b>0$ ist, nimmt die Folge $(a_k)_{k\ge 0}$ monoton ab und +$(b_k)_{k\ge 0}$ nimmt monoton zu. +Beide konvergieren quadratisch gegen einen gemeinsamen Grenzwert. +\end{satz} + +\begin{definition} +Der gemeinsame Grenzwert von $a_n$ und $b_n$ heisst das +{\em arithmetisch-geometrische Mittel} und wird mit +\[ +M(a,b) += +\lim_{n\to\infty} a_n += +\lim_{n\to\infty} b_n +\] +bezeichnet. +\index{arithmetisch-geometrisches Mittel}% +\end{definition} + +\begin{proof}[Beweis] +Zunächst ist zu zeigen, dass die Folgen monoton sind. +Dies folgt sofort aus der Definition der Folgen: +\begin{align*} +a_{n+1} &= \frac{a_n+b_n}{2} \ge \frac{a_n+a_n}{2} = a_n +\\ +b_{n+1} &= \sqrt{a_nb_n} \ge \sqrt{b_nb_n} = b_n. +\end{align*} +Die Konvergenz folgt aus +\[ +a_{n+1}-b_{n+1} +\le +a_{n+1}-b_n += +\frac{a_n+b_n}{2}-b_n += +\frac{a_n-b_n}2 +\le +\frac{a-b}{2^{n+1}}. +\] +Dies zeigt jedoch nur, dass die Konvergenz mindestens ein +Bit in jeder Iteration ist. +Aus +\[ +a_{n+1}^2 - b_{n+1}^2 += +\frac{(a_n+b_n)^2}{4} - a_nb_n += +\frac{a_n^2 -2a_nb_n+b_n^2}{4} += +\frac{(a_n-b_n)^2}{4} +\] +folgt +\[ +a_{n+1}-b_{n+1} += +\frac{(a_n-b_n)^2}{2(a_{n+1}+b_{n+1})}. +\] +Da der Nenner gegen $2M(a,b)$ konvergiert, wird der Fehler für in +jeder Iteration quadriert, die Zahl korrekter Stellen verdoppelt sich +in jeder Iteration, es liegt also quadratische Konvergenz vor. +\end{proof} + +% +% Transformation des elliptischen Integrals +% +\subsubsection{Transformation des elliptischen Integrals} +In diesem Abschnitt soll das Integral +\[ +I(a,b) += +\int_0^{\frac{\pi}2} +\frac{dt}{\sqrt{a^2\cos^2 t + b^2\sin^2t}} +\] +berechnet werden. +Es ist klar, dass +\[ +I(sa,sb) += +\frac{1}{s} I(a,b). +\] + +Gauss hat gefunden, dass die Substitution +\begin{equation} +\sin t += +\frac{2a\sin t_1}{a+b+(a-b)\sin^2 t_1} +\label{buch:elliptisch:agm:subst} +\end{equation} +zu +\begin{equation} +\frac{dt}{\sqrt{a^2_{\phantom{1}}\cos^2 t + b^2_{\phantom{1}} \sin^2 t}} += +\frac{dt_1}{\sqrt{a_1^2\cos^2 t_1 + b_1^2 \sin^2 t_1}} +\label{buch:elliptisch:agm:dtdt1} +\end{equation} +führt. +Um dies nachzuprüfen, muss man zunächst +\eqref{buch:elliptisch:agm:subst} +nach $t_1$ ableiten, was +\[ +\frac{d}{dt_1}\sin t += +\cos t +\frac{dt}{dt_1} +\qquad\Rightarrow\qquad +\biggl( +\frac{d}{dt_1}\sin t +\biggr)^2 += +(1-\sin^2t)\biggl(\frac{dt}{dt_1}\biggr)^2 +\] +ergibt. +Die Ableitung von $t$ nach $t_1$ kann auch aus +\eqref{buch:elliptisch:agm:dtdt1} +ableiten, es ist +\[ +\biggl( +\frac{dt}{dt_1} +\biggr)^2 += +\frac{a^2_{\phantom{1}} \cos^2 t + b^2_{\phantom{1}} \sin^2 t}{a_1^2 \cos^2 t_1 + b_1^2 \sin^2 t_1}. +\] +Man muss also nachprüfen, dass +\begin{equation} +\frac{1}{1-\sin^2 t} +\frac{d}{dt_1}\sin t += +\frac{a^2 \cos^2 t + b^2 \sin^2 t}{a_1^2 \cos^2 t_1 + b_1^2 \sin^2 t_1}. +\label{buch:elliptisch:agm:deq} +\end{equation} +Dazu muss man zunächst $a_1=(a+b)/2$, $b_1=\!\sqrt{ab}$ setzen. +Ausserdem muss man $\cos^2 t$ durch $1-\sin^2t$ ersetzen und +$\sin t$ durch \eqref{buch:elliptisch:agm:subst}. +Auch $\cos^2 t_1$ muss man durch $1-\sin^2t_1$ ersetzt werden. +Dann kann man nach einer langwierigen Rechnung, die sich am leichtesten +mit einem Computer-Algebra-System ausführen lässt finden, dass +\eqref{buch:elliptisch:agm:deq} +tatsächlich korrekt ist. + +\begin{satz} +\index{Satz!Gauss-Integrale}% +\label{buch:elliptisch:agm:integrale} +Für $a_1=(a+b)/2$ und $b_1=\sqrt{ab}$ gilt +\[ +\int_0^{\frac{\pi}2} +\frac{dt}{a^2\cos^2 t + b^2 \sin^2 t} += +\int_0^{\frac{\pi}2} +\frac{dt_1}{a_1^2\cos^2 t_1 + b_1^2 \sin^2 t_1}. +\] +\end{satz} + +Der Satz~\ref{buch:elliptisch:agm:integrale} zeigt, dass die Ersetzung +von $a$ und $b$ durch $a_1$ und $b_1$ das Integral $I(a,b)$ nicht ändert. +Dies gilt natürlich für alle Glieder der Folge zur Bestimmung des +arithmetisch-geometrischen Mittels. + +\begin{satz} +\index{Satz!Iab@$I(a,b)$ und arithmetisch geometrisches Mittel}% +Für $a\ge b>0$ gilt +\begin{equation} +I(a,b) += +\int_0^{\frac{\pi}2} +\frac{dt}{a^2\cos^2 t + b^2\sin^2t} += +\frac{\pi}{2M(a,b)} +\end{equation} +\end{satz} + +\begin{proof}[Beweis] +Zunächst folgt aus Satz~\ref{buch:elliptisch:agm:integrale}, dass +\[ +I(a,b) += +I(a_1,b_1) += +\dots += +I(a_n,b_n). +\] +Ausserdem ist $a_n\to M(a,b)$ und $b_n\to M(a,b)$, +damit wird +\[ +I(a,b) += +\frac{1}{M(a,b)} +\int_0^{\frac{\pi}2} +\frac{dt}{\sqrt{\cos^2 t + \sin^2 t}} += +\frac{\pi}{2M(a,b)}. +\qedhere +\] +\end{proof} + +% +% Berechnung des elliptischen Integrals +% +\subsubsection{Berechnung des elliptischen Integrals} +Das elliptische Integral erster Art hat eine Form, die dem Integral +$I(a,b)$ bereits sehr ähnlich ist. +Im die Verbindung herzustellen, berechnen wir +\begin{align*} +I(a,b) +&= +\int_0^{\frac{\pi}2} +\frac{dt}{\sqrt{a^2\cos^2 t + b^2 \sin^2 t}} +\\ +&= +\frac{1}{a} +\int_0^{\frac{\pi}2} +\frac{dt}{\sqrt{1-\sin^2 t + \frac{b^2}{a^2} \sin^2 t}} +\\ +&= +\frac{1}{a} +\int_0^{\frac{\pi}2} +\frac{dt}{\sqrt{1-(1-\frac{b^2}{a^2})\sin^2 t}} += +K(k) +\qquad\text{mit}\qquad +k'=\frac{b^2}{a^2},\; +k=\sqrt{1-k^{\prime 2}} +\end{align*} + +\begin{satz} +\index{Satz!vollständige elliptische Integrale und arithmetisch-geometrisches Mittel}% +\label{buch:elliptisch:agm:satz:Ek} +Für $0<k\le 1$ ist +\[ +K(k) = I(1,\sqrt{1-k^2}) = \frac{\pi}{2M(1,\sqrt{1-k^2})} +\] +\end{satz} -\subsubsection{Ableitung} -XXX Ableitung \\ -XXX Stammfunktion \\ +% +% Numerisches Beispiel +% +\subsubsection{Numerisches Beispiel} +\begin{table} +\centering +\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} +\hline +n& a_n & b_n & \pi/2a_n \mathstrut\text{\vrule height12pt depth6pt width0pt}\\ +\hline +\text{\vrule height12pt depth0pt width0pt}% +0 & 1.0000000000000000000 & 0.7071067811865475243 & 1.5707963267948965579 \\ +1 & 0.8535533905932737621 & 0.8408964152537145430 & 1.\underline{8}403023690212201581 \\ +2 & 0.8472249029234941526 & 0.8472012667468914603 & 1.\underline{8540}488143993356315 \\ +3 & 0.8472130848351928064 & 0.8472130847527653666 & 1.\underline{854074677}2111781089 \\ +4 & 0.8472130847939790865 & 0.8472130847939790865 & 1.\underline{854074677301371}8463 \\ +\infty& & & 1.8540746773013719184% +\text{\vrule height12pt depth6pt width0pt}\\ +\hline +\end{tabular} +\caption{Die Berechnung des arithmetisch-geometrischen Mittels für +$a=1$ und $b=\sqrt{2}/2$ zeigt die sehr rasche Konvergenz. +\label{buch:elliptisch:agm:numerisch}} +\end{table} +In diesem Abschnitt soll als Zahlenbeispiel $E(k)$ für $k=\sqrt{2}/2$ +berechnet werden. +In diesem speziellen Fall ist $k'=k$. +Tabelle~\ref{buch:elliptisch:agm:numerisch} zeigt die sehr rasche +Konvergenz der Berechnung des arithmetisch-geometrischen Mittels +von $1$ und $\sqrt{2}/2$. +Mit Satz~\ref{buch:elliptisch:agm:satz:Ek} folgt jetzt +\[ +K(\!\sqrt{2}/2) += +\frac{\pi}{2M(1,\!\sqrt{2}/2)} += +1.854074677301372. +\] +Die Berechnung hat nur 4 Mittelwerte, 4 Produkte, 4 Quadratwurzeln und +eine Division erfordert. -\subsection{Unvollständige elliptische Integrale} +% +% Unvollständige elliptische Integrale +% +\subsection{Unvollständige elliptische Integrale +\label{buch:elliptisch:subsection:unvollstintegral}} Die Funktionen $K(k)$ und $E(k)$ sind als bestimmte Integrale über ein festes Intervall definiert. Die {\em unvollständigen elliptischen Integrale} entstehen, indem die @@ -522,12 +841,18 @@ Die Abbildung~\ref{buch:elliptisch:fig:unvollstaendigeintegrale} zeigt Graphen der unvollständigen elliptischen Integrale für verschiedene Werte des Parameters. +% +% Symmetrieeigenschaften +% \subsubsection{Symmetrieeigenschaften} Die Integranden aller drei unvollständigen elliptischen Integrale sind gerade Funktionen der reellen Variablen $t$. Die Funktionen $F(x,k)$, $E(x,k)$ und $\Pi(n,x,k)$ sind daher ungeraden Funktionen von $x$. +% +% Elliptische Integrale als komplexe Funktionen +% \subsubsection{Elliptische Integrale als komplexe Funktionen} Die unvollständigen elliptischen Integrale $F(x,k)$, $F(x,k)$ und $\Pi(n,x,k)$ in Jacobi-Form lassen sich auch für komplexe Argumente interpretieren. @@ -538,10 +863,14 @@ Die Faktoren, die in den Integranden der unvollständigen elliptischen Integrale vorkommen, haben Nullstellen bei $\pm1$, $\pm1/k$ und $\pm 1/\sqrt{n}$ -XXX Additionstheoreme \\ -XXX Parameterkonventionen \\ +% XXX Additionstheoreme \\ +% XXX Parameterkonventionen \\ +% +% Wertebereich +% \subsubsection{Wertebereich} +\label{buch:elliptische:subsubsection:wertebereich} Die unvollständigen elliptischen Integrale betrachtet als reelle Funktionen haben nur positive relle Werte. Zum Beispiel nimmt das unvollständige elliptische Integral erster Art @@ -631,6 +960,9 @@ l({\textstyle\frac{1}{k}})=\int_1^{\frac1{k}} \end{equation} ausgewertet werden. +% +% Komplementärmodul +% \subsubsection{Komplementärmodul} Im vorangegangen Abschnitt wurde gezeigt, dass der Wertebereicht des unvollständigen elliptischen Integrals der ersten Art als komplexe @@ -651,7 +983,7 @@ werden, dass $1-k'^2=k^2$ ist. \begin{definition} Ist $0\le k\le 1$ der Modul eines elliptischen Integrals, dann heisst -$k' = \sqrt{1-k^2}$ er {\em Komplementärmodul} oder {\em Komplement +$k' = \sqrt{1-k^2}$ der {\em Komplementärmodul} oder {\em Komplement des Moduls}. Es ist $k^2+k'^2=1$. \end{definition} @@ -734,6 +1066,9 @@ in das blaue. \label{buch:elliptisch:fig:rechteck}} \end{figure} +% +% Reelle Argument > 1/k +% \subsubsection{Reelle Argument $> 1/k$} Für Argument $x> 1/k$ sind beide Faktoren im Integranden des unvollständigen elliptischen Integrals negativ, das Integral kann @@ -780,7 +1115,141 @@ F(x,k) = iK(k') - F\biggl(\frac1{kx},k\biggr) für die Werte des elliptischen Integrals erster Art für grosse Argumentwerte fest. -\subsection{Potenzreihe} -XXX Potenzreihen \\ -XXX Als hypergeometrische Funktionen \url{https://www.youtube.com/watch?v=j0t1yWrvKmE} \\ -XXX Berechnung mit der Landen-Transformation https://en.wikipedia.org/wiki/Landen%27s_transformation +% +% AGM und Berechnung von F(x,k) +% +\subsubsection{Berechnung von $F(x,k)$ mit dem arithmetisch-geometrischen +Mittel\label{buch:elliptisch:subsubection:berechnung-fxk-agm}} +Wie das vollständige elliptische Integral $K(k)$ kann auch das +unvollständige elliptische Integral +\begin{align*} +F(x,k) +&= +\int_0^x \frac{d\xi}{\sqrt{(1-\xi^2)(1-k^{\prime 2}\xi^2)}} += +\int_0^{\varphi} +\frac{dt}{\sqrt{1-k^2 \sin^2 t}} +&&\text{mit $x=\sin\varphi$} +\\ +&= +a +\int_0^{\varphi} \frac{dt}{a^2 \cos^2 t + b^2 \sin^2 t} +&&\text{mit $k=b/a$} +\end{align*} +mit dem arithmetisch-geometrischen Mittel berechnet werden. +Dazu muss die Substitution +\eqref{buch:elliptisch:agm:subst} +verwendet werden, um auch den Winkel $\varphi_1$ zu berechnen. +Zunächst wird \eqref{buch:elliptisch:agm:subst} nach $x_1=\sin t_1$ +aufgelöst. +Durch Multiplikation mit dem Nenner erhält man mit der Abkürzung +$x=\sin t$ %und $x_1=\sin t_1$ +die quadratische Gleichung +\[ +(a-b)x x_1^2 +- +2ax_1 ++ +(a+b)x += +0, +\] +mit der Lösung +\begin{equation} +x_1 += +\frac{a-\sqrt{a^2-(a^2-b^2)x^2}}{(a-b)x}. +\label{buch:elliptisch:unvollstagm:xrek} +\end{equation} +Der Algorithmus zur Berechnung des arithmetisch-geometrischen Mittels +muss daher verallgemeinert werden zu +\begin{equation} +\left. +\begin{aligned} +a_{n+1} &= \frac{a_n+b_n}2, &\qquad a_0 &= a +\\ +b_{n+1} &= \sqrt{a_nb_n}, & b_0 &= b +\\ +x_{n+1} &= \frac{a_n-\sqrt{a_n^2-(a_n^2-b_n^2)x_n^2}}{(a_n-b_n)x_n}, & x_0 &= x +\end{aligned} +\quad +\right\} +\label{buch:elliptisch:unvollstagm:rek} +\end{equation} +Die Folge $x_n$ konvergiert gegen einen Wert $x_{\infty} = \lim_{n\to\infty} x_n$. +Der Wert des unvollständigen elliptischen Integrals ist dann der Grenzwert +\[ +F(x,k) += +\lim_{n\to\infty} +\frac{\arcsin x_n}{M(a_n,b_n)} += +\frac{\arcsin x_{\infty}}{M(1,\sqrt{1-k^2})}. +\] + +In dieser Form ist die Berechnung allerdings nicht praktisch durchführbar. +Das Problem ist, dass die Differenz $a_n-b_n$, die in +\eqref{buch:elliptisch:unvollstagm:rek} +im Nenner vorkommt, sehr schnell gegen Null geht. +Ausserdem ist die Quadratwurzel im Zähler fast gleich gross wie +$a_n$, was zu Auslöschung und damit ungenauen Resultaten führt. +\label{buch:elliptisch:agm:ellintegral-stabilitaet} + +Eine Möglichkeit, das Problem zu entschärfen, ist, die Rekursionsformel +nach $\varepsilon = a-b$ zu entwickeln. +Mit $a+b=2a+\varepsilon$ kann man $b$ aus der Formel elimineren und erhält +mit Hilfe der binomischen Reihe +\begin{align*} +x_1 +&= +\frac{a}{x\varepsilon} +\left(1-\sqrt{1-\varepsilon(2a-\varepsilon)x^2/a^2}\right) +\\ +&= +\frac{a}{x\varepsilon} +\biggl( +1-\sum_{k=0}^\infty +(-1)^k +\frac{(\frac12)_k}{k!} \varepsilon^k(2a-\varepsilon)^k\frac{x^{2k}}{a^{2k}} +\biggr) +\\ +&= +\sum_{k=1}^\infty +(-1)^{k-1} +\frac{(\frac12)_k}{k!} \varepsilon^{k-1}(2a-\varepsilon)^k\frac{x^{2k-1}}{a^{2k-1}} +\\ +&= +\frac{\frac12}{1!}(2a-\varepsilon)\frac{x}{a} +- +\frac{\frac12\cdot(\frac12-1)}{2!}\varepsilon(2a-\varepsilon)^2\frac{x^3}{a^3} ++ +\frac{\frac12\cdot(\frac12-1)(\frac12-2)}{3!}\varepsilon^2(2a-\varepsilon)^3\frac{x^5}{a^5} +- +\dots +\\ +&= +x\biggl(1-\frac{\varepsilon}{2a}\biggr) +\biggl( +1 +- +\frac{\frac12-1}{2!}\varepsilon(2a-\varepsilon)\frac{x^2}{a^2} ++ +\frac{(\frac12-1)(\frac12-2)}{3!}\varepsilon^2(2a-\varepsilon)^2\frac{x^4}{a^4} +- +\dots +\biggr) +\\ +&= +x\biggl(1-\frac{\varepsilon}{2a}\biggr) +\cdot +\mathstrut_2F_1\biggl( +\begin{matrix}-\frac12,1\\2\end{matrix};-\varepsilon(2a-\varepsilon)\frac{x^2}{a^2} +\biggr). +\end{align*} +Diese Form ist wesentlich besser, aber leider kann es bei der numerischen +Rechnung passieren, dass $\varepsilon < 0$ wird. + +%\subsection{Potenzreihe} +%XXX Potenzreihen \\ +%XXX Als hypergeometrische Funktionen \url{https://www.youtube.com/watch?v=j0t1yWrvKmE} \\ +%XXX Berechnung mit der Landen-Transformation https://en.wikipedia.org/wiki/Landen%27s_transformation diff --git a/buch/chapters/110-elliptisch/elltrigo.tex b/buch/chapters/110-elliptisch/elltrigo.tex index d600243..49e6686 100644 --- a/buch/chapters/110-elliptisch/elltrigo.tex +++ b/buch/chapters/110-elliptisch/elltrigo.tex @@ -18,6 +18,19 @@ auf einer Ellipse. \end{figure} % based on Willliam Schwalm, Elliptic functions and elliptic integrals % https://youtu.be/DCXItCajCyo +Die Ellipse wurde in Abschnitt~\ref{buch:geometrie:subsection:kegelschnitte} +als Kegelschnitt erkannt und auf verschiedene Arten parametrisiert. +In diesem Abschnitt soll gezeigt werden, wie man die Parametrisierung +eines Kreises mit trigonometrischen Funktionen verallgemeinern kann +auf eine Parametrisierung einer Ellipse mit den drei +Funktionen $\operatorname{sn}(u,k)$, +$\operatorname{cn}(u,k)$ und $\operatorname{dn}(u,k)$, +die ähnliche Eigenschaften haben wie die trigonometrischen Funktionen. + +Die nachstehende Darstellung ist stark inspiriert von William Schwalms +sehr zielorientierten Einführung +\cite{buch:schwalm}, welche auch als Youtube-Videovorlesung +\cite{buch:schwalm-youtube} zur Verfügung steht. % % Geometrie einer Ellipse @@ -112,7 +125,7 @@ Punktes auf dem Einheitskreis interpretieren. Für die Koordinaten eines Punktes auf der Ellipse ist dies nicht so einfach, weil es nicht nur eine Ellipse gibt, sondern für jede numerische Exzentrizität -mindestens eine mit Halbeachse $1$. +mindestens eine mit Halbachse $1$. Wir wählen die Ellipsen so, dass $a$ die grosse Halbachse ist, also $a>b$. Als Normierungsbedingung verwenden wir, dass $b=1$ sein soll, wie in Abbildung~\ref{buch:elliptisch:fig:jacobidef}. @@ -161,7 +174,7 @@ x^2(k^2-1) + y^2 = 1. an einer Ellipse mit Halbachsen $a$ und $1$. \label{buch:elliptisch:fig:jacobidef}} \end{figure} -\subsubsection{Definition der elliptischen Funktionen} +\subsubsection{Definition der Jacobischen elliptischen Funktionen} Die elliptischen Funktionen für einen Punkt $P$ auf der Ellipse mit Modulus $k$ können jetzt als Verhältnisse der Koordinaten des Punktes definieren. Es stellt sich aber die Frage, was man als Argument verwenden soll. @@ -472,6 +485,7 @@ wählt, dass Damit haben wir die grundlegenden Ableitungsregeln \begin{satz} +\index{Satz!Ableitungen der Jacobischen elliptischen Funktionen}% \label{buch:elliptisch:satz:ableitungen} Die Jacobischen elliptischen Funktionen haben die Ableitungen \begin{equation} @@ -1003,10 +1017,60 @@ finden. Man beachte, dass in jeder Identität alle Funktionen den gleichen zweiten Buchstaben haben. -\subsubsection{TODO} -XXX algebraische Beziehungen \\ -XXX Additionstheoreme \\ -XXX Perioden +\subsubsection{Weitere Beziehungen} +Für die Jacobischen elliptischen Funktionen lässt sich eine grosse +Zahl weiterer Eigenschaften und Identitäten beweisen. +Zum Beispiel gibt es Aditionstheoreme, die im Grenzfall $k\to 0$ zu +den Additionstheoremen für die trigonometrischen Funktionen werden. +\index{Additionstheorem}% +Ebenso kann man weitere algebraische Identitäten finden. +So lässt sich zum Beispiel die einzige reelle Nullstelle von $x^5+x=w$ +mit Jacobischen elliptischen Funktionen darstellen, während es +nicht möglich ist, diese Lösung als Wurzelausdruck zu schreiben. + +Die Jacobischen elliptischen Funktionen lassen sich statt auf dem +hier gewählten trigonometrischen Weg auch mit Hilfe der Jacobischen +Theta-Funktionen definieren, die Lösungen einer Wärmeleitungsgleichung +\index{Theta-Funktionen}% +\index{Wärmeleitungs-Gleichung}% +mit geeigneten Randbedingungen sind. +Diese Vorgehensweise hat den Vorteil, ziemlich direkt zu +Reihen- und Produktentwicklungen für die Funktionen zu führen. +Auch die Additionstheorem ergeben sich vergleichsweise leicht. +Dieser Zugang zu den Jacobischen elliptischen Funktionen wird in der +Standardreferenz~\cite{buch:ellfun-applications} gewählt. + +Bei anderen speziellen Funktionen waren Reihenentwicklungen ein +wichtiges Hilfsmittel zu deren numerischer Berechnung. +Bei den Jacobischen elliptischen Funktionen ist diese Methode +nicht zielführend. +Im Abschnitt~\ref{buch:elliptisch:subsection:differentialgleichungen} +wird gezeigt, dass Jacobische elliptische Funktionen gewisse nichtlineare +Differentialgleichungen zu lösen ermöglichen. +Dies zeigt auch, dass Jacobischen elliptischen Funktionen +Umkehrfunktionen der elliptischen Integrale sind, die in +Abschnitt~\ref{buch:elliptisch:subsection:agm} mit dem +arithmetisch-geometrischen Mittel berechnet wurden. +Die dort angetroffenen numerischen Schwierigkeiten treten bei der +Berechnung der Umkehrfunktion jedoch nicht auf. + +Die grundlegende Mechanik dieser Berechnungsmethode wird auf +Seite~\pageref{buch:elliptisch:jacobi:agm} dargestellt und +und in den Übungsaufgaben +\ref{buch:elliptisch:aufgabe:2} bis \ref{buch:elliptisch:aufgabe:5} +etwas näher untersucht wird. + +Aus der Theorie das arithmetisch-geometrischen Mittels lässt sich +die sogenannte Landen-Trans\-formation herleiten. +\index{Landen-Transformation}% +Sie stellt eine Verbindung zwischen +den Werten der elliptischen Funktionen zu verschiedenen Moduli $k$ her. +Sie ist die Basis aller effizienten Berechnungsmethoden. + + +% algebraische Beziehungen \\ +% Additionstheoreme \\ +% Perioden % use https://math.stackexchange.com/questions/3013692/how-to-show-that-jacobi-sine-function-is-doubly-periodic diff --git a/buch/chapters/110-elliptisch/experiments/KK.pdf b/buch/chapters/110-elliptisch/experiments/KK.pdf Binary files differnew file mode 100644 index 0000000..13a2739 --- /dev/null +++ b/buch/chapters/110-elliptisch/experiments/KK.pdf diff --git a/buch/chapters/110-elliptisch/experiments/KK.tex b/buch/chapters/110-elliptisch/experiments/KK.tex new file mode 100644 index 0000000..a3ae425 --- /dev/null +++ b/buch/chapters/110-elliptisch/experiments/KK.tex @@ -0,0 +1,66 @@ +% +% KK.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\dx{10} +\def\dy{3} +\input{KKpath.tex} + +\draw[->] (-0.1,0) -- (10.3,0) coordinate[label={$k$}]; +\draw[->] (0,-0.1) -- (0,{2*\dy+0.3}) coordinate[label={right:$y$}]; + +\node at (3,{1.2*\dy}) {$\displaystyle y = \frac{K(k)}{K(\!\sqrt{1-k^2})}$}; + +\begin{scope} +\clip (0,0) rectangle (10,{2*\dy}); +\draw[color=red,line width=1.4pt] \KKpath; +\end{scope} + +\draw[line width=0.2pt] (10,0) -- (10,{2*\dy}); + +\foreach \y in {0.0,0.2,0.4,0.6,0.8,1.0,1.2,1.4,1.6,1.8,2.0}{ + \draw (-0.05,{\y*\dy}) -- (0.05,{\y*\dy}); + \node at (0,{\y*\dy}) [left] {$\y\mathstrut$}; +} + +\foreach \k in {1,...,9}{ + \draw ({\k*\dx/10},-0.05) -- ({\k*\dx/10},0.05); + \node at ({\k*\dx/10},0) [below] {$0.\k\mathstrut$}; +} +\node at (0,0) [below] {$0\mathstrut$}; +\node at (10,0) [below] {$1\mathstrut$}; + +\draw[color=blue] ({\knull*\dx},0) -- ({\knull*\dx},{\KKnull*\dy}); +\foreach \y in {1,2,3,4}{ + \draw[color=blue] + ({\knull*\dx-0.05},{\y*\KKnull*\dy/5}) + -- + ({\knull*\dx+0.05},{\y*\KKnull*\dy/5}); +} +\draw[color=black,line width=0.1pt] (0,{\KKnull*\dy}) -- ({\knull*\dx},{\KKnull*\dy}); +\draw[color=black,line width=0.1pt] (0,{\KKnull*\dy/5}) -- ({\kone*\dx},{\KKnull*\dy/5}); +\node at ({0.6*\dx},{\KKnull*\dy}) [above] {$y=1.7732$}; +\node at ({0.6*\dx},{\KKnull*\dy/5}) [above] {$y=0.3546$}; +\draw[color=blue] ({\kone*\dx},0) -- ({\kone*\dx},{\KKnull*\dy/5}); +\draw[color=blue] ({\kone*\dx},{\KKnull*\dy/5}) -- ({\knull*\dx},{\KKnull*\dy/5}); +\fill[color=blue] ({\kone*\dx},{\KKnull*\dy/5}) circle[radius=0.05]; +\fill[color=blue] ({\knull*\dx},{\KKnull*\dy/5}) circle[radius=0.05]; +\fill[color=blue] ({\knull*\dx},{\KKnull*\dy}) circle[radius=0.05]; +\node[color=blue] at ({\knull*\dx},0) [left,rotate=90] {$k=0.97\mathstrut$}; +\node[color=blue] at ({\kone*\dx},0) [left,rotate=90] {$k_1=0.0477$}; + +\end{tikzpicture} +\end{document} + diff --git a/buch/chapters/110-elliptisch/experiments/KN.cpp b/buch/chapters/110-elliptisch/experiments/KN.cpp new file mode 100644 index 0000000..1dcca9e --- /dev/null +++ b/buch/chapters/110-elliptisch/experiments/KN.cpp @@ -0,0 +1,177 @@ +/* + * KN.cpp + * + * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + */ +#include <cstdlib> +#include <cstdio> +#include <cmath> +#include <iostream> +#include <fstream> +#include <sstream> +#include <getopt.h> +#include <vector> +#include <gsl/gsl_sf_elljac.h> +#include <gsl/gsl_sf_ellint.h> + +namespace KN { + +bool debug = false; + +static struct option longopts[] { +{ "debug", no_argument, NULL, 'd' }, +{ "N", required_argument, NULL, 'N' }, +{ "outfile", required_argument, NULL, 'o' }, +{ "min", required_argument, NULL, 'm' }, +{ NULL, 0, NULL, 0 } +}; + +double KprimeK(double k) { + double kprime = sqrt(1-k*k); + if (debug) + printf("%s:%d: k = %f, k' = %f\n", __FILE__, __LINE__, k, kprime); + double v + = + gsl_sf_ellint_Kcomp(k, GSL_PREC_DOUBLE) + / + gsl_sf_ellint_Kcomp(kprime, GSL_PREC_DOUBLE) + ; + if (debug) + printf("%s:%d: KprimeK(k = %f) = %f\n", __FILE__, __LINE__, k, v); + return v; +} + +static const int L = 100000000; +static const double h = 1. / L; + +double Kd(double k) { + double m = 0; + if (k < h) { + m = 2 * (KprimeK(k) - KprimeK(k / 2)) / k; + } else if (k > 1-h) { + m = 2 * (KprimeK((1 + k) / 2) - KprimeK(k)) / (1 - k); + + } else { + m = L * (KprimeK(k + h) - KprimeK(k)); + } + if (debug) + printf("%s:%d: Kd(%f) = %f\n", __FILE__, __LINE__, k, m); + return m; +} + +double k1(double y) { + if (debug) + printf("%s:%d: Newton for y = %f\n", __FILE__, __LINE__, y); + double kn = 0.5; + double delta = 1; + int n = 0; + while ((fabs(delta) > 0.000001) && (n < 10)) { + double yn = KprimeK(kn); + if (debug) + printf("%s:%d: k%d = %f, y%d = %f\n", __FILE__, __LINE__, n, kn, n, yn); + delta = (yn - y) / Kd(kn); + if (debug) + printf("%s:%d: delta = %f\n", __FILE__, __LINE__, delta); + double kneu = kn - delta; + if (kneu <= 0) { + kneu = kn / 4; + } + if (kneu >= 1) { + kneu = (3 + kn) / 4; + } + kn = kneu; + if (debug) + printf("%s:%d: kneu = %f, kn = %f\n", __FILE__, __LINE__, kneu, kn); + n++; + } + if (debug) + printf("%s:%d: Newton result: k = %f\n", __FILE__, __LINE__, kn); + return kn; +} + +double k1(int N, double k) { + return k1(KprimeK(k) / N); +} + +/** + * \brief Main function for the slcl program + */ +int main(int argc, char *argv[]) { + int longindex; + int c; + int N = 5; + double kmin = 0.01; + std::string outfilename; + while (EOF != (c = getopt_long(argc, argv, "d:N:o:m:", + longopts, &longindex))) + switch (c) { + case 'd': + debug = true; + break; + case 'N': + N = std::stoi(optarg); + break; + case 'o': + outfilename = std::string(optarg); + break; + case 'm': + kmin = std::stod(optarg); + break; + } + + double d = 0.01; + if (outfilename.size() > 0) { + FILE *fn = fopen(outfilename.c_str(), "w"); + fprintf(fn, "\\def\\KKpath{ "); + double k = d; + fprintf(fn, " (0,0)"); + double k0 = k/16; + while (k0 < k) { + fprintf(fn, "\n\t-- ({%.4f*\\dx},{%.4f*\\dy})", k0, KprimeK(k0)); + k0 *= 2; + } + while (k < 1-0.5*d) { + fprintf(fn, "\n\t-- ({%.4f*\\dx},{%.4f*\\dy})", k, KprimeK(k)); + k += d; + } + fprintf(fn, "}\n"); + + k0 = 0.97; + fprintf(fn, "\\def\\knull{%.4f}\n", k0); + double KK = KprimeK(k0); + fprintf(fn, "\\def\\KKnull{%.4f}\n", KK); + fprintf(fn, "\\def\\kone{%.4f}\n", k1(N, k0)); + + fclose(fn); + return EXIT_SUCCESS; + } + + for (double k = kmin; k < (1 - d/2); k += d) { + if (debug) + printf("%s:%d: k = %f\n", __FILE__, __LINE__, k); + double y = KprimeK(k); + double k0 = k1(y); + double kone = k1(N, k0); + printf("g(%4.2f) = %10.6f,", k, y); + printf(" g'(%.2f) = %10.6f,", k, Kd(k)); + printf(" g^{-1} = %10.6f,", k0); + printf(" k1 = %10.6f,", kone); + printf(" g(k1) = %10.6f\n", KprimeK(kone)); + } + + return EXIT_SUCCESS; +} + +} // namespace KN + +int main(int argc, char *argv[]) { + try { + return KN::main(argc, argv); + } catch (const std::exception& e) { + std::cerr << "terminated by exception: " << e.what(); + std::cerr << std::endl; + } catch (...) { + std::cerr << "terminated by unknown exception" << std::endl; + } + return EXIT_FAILURE; +} diff --git a/buch/chapters/110-elliptisch/experiments/Makefile b/buch/chapters/110-elliptisch/experiments/Makefile new file mode 100644 index 0000000..fac4fbc --- /dev/null +++ b/buch/chapters/110-elliptisch/experiments/Makefile @@ -0,0 +1,15 @@ +# +# Makefile +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschlue +# +all: KK.pdf + +KN: KN.cpp + g++ -O -Wall -std=c++11 KN.cpp -o KN `pkg-config --cflags gsl` `pkg-config --libs gsl` + +KKpath.tex: KN + ./KN --outfile KKpath.tex + +KK.pdf: KK.tex KKpath.tex + pdflatex KK.tex diff --git a/buch/chapters/110-elliptisch/images/Makefile b/buch/chapters/110-elliptisch/images/Makefile index a7c9e74..7636e65 100644 --- a/buch/chapters/110-elliptisch/images/Makefile +++ b/buch/chapters/110-elliptisch/images/Makefile @@ -5,7 +5,8 @@ # all: lemniskate.pdf ellipsenumfang.pdf unvollstaendig.pdf rechteck.pdf \ ellipse.pdf pendel.pdf jacobiplots.pdf jacobidef.pdf jacobi12.pdf \ - sncnlimit.pdf slcl.pdf + sncnlimit.pdf slcl.pdf torusschnitt.pdf kegelpara.pdf lemnispara.pdf \ + ellpolnul.pdf ellall.pdf ellselection.pdf lemniskate.pdf: lemniskate.tex pdflatex lemniskate.tex @@ -78,3 +79,52 @@ slcldata.tex: slcl ./slcl --outfile=slcldata.tex --a=0 --b=13.4 --steps=200 slcl.pdf: slcl.tex slcldata.tex pdflatex slcl.tex + +KEGELSIZE = -W256 -H256 +KEGELSIZE = -W128 -H128 +KEGELSIZE = -W1080 -H1080 +kegelpara.png: kegelpara.pov + povray +A0.1 $(KEGELSIZE) -Okegelpara.png kegelpara.pov + +kegelpara.jpg: kegelpara.png Makefile + convert -extract 1080x1040+0+0 kegelpara.png \ + -density 300 -units PixelsPerInch kegelpara.jpg + +kegelpara.pdf: kegelpara.tex kegelpara.jpg + pdflatex kegelpara.tex + +torusschnitt.png: torusschnitt.pov + povray +A0.1 -W1920 -H1080 -Otorusschnitt.png torusschnitt.pov + +torusschnitt.jpg: torusschnitt.png Makefile + convert -extract 1640x1080+140+0 torusschnitt.png \ + -density 300 -units PixelsPerInch torusschnitt.jpg + +torusschnitt.pdf: torusschnitt.tex torusschnitt.jpg + pdflatex torusschnitt.tex + +lemnispara: lemnispara.cpp + g++ -O2 -Wall -g -o lemnispara `pkg-config --cflags gsl` \ + lemnispara.cpp `pkg-config --libs gsl` + +lemnisparadata.tex: lemnispara + ./lemnispara + +lemnispara.pdf: lemnispara.tex lemnisparadata.tex + pdflatex lemnispara.tex + +ltest: lemnispara.pdf + +ellpolnul.pdf: ellpolnul.tex ellcommon.tex + pdflatex ellpolnul.tex +ellall.pdf: ellall.tex ellcommon.tex + pdflatex ellall.tex + +rechteckpfade2.tex: rechteck Makefile + ./rechteck --outfile rechteckpfade2.tex --k 0.87 --vsteps=1 +ellselection.pdf: ellselection.tex rechteckpfade2.tex + pdflatex ellselection.tex + +rechteckpfade3.tex: rechteck + ./rechteck --outfile rechteckpfade3.tex --k 0.70710678118654752440 \ + --vsteps=4 diff --git a/buch/chapters/110-elliptisch/images/ellall.pdf b/buch/chapters/110-elliptisch/images/ellall.pdf Binary files differnew file mode 100644 index 0000000..fd0a5dd --- /dev/null +++ b/buch/chapters/110-elliptisch/images/ellall.pdf diff --git a/buch/chapters/110-elliptisch/images/ellall.tex b/buch/chapters/110-elliptisch/images/ellall.tex new file mode 100644 index 0000000..b37fe12 --- /dev/null +++ b/buch/chapters/110-elliptisch/images/ellall.tex @@ -0,0 +1,215 @@ +% +% ellpolnul.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} +\input{ellcommon.tex} +\def\skala{1} +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +%\draw (-1,-1) rectangle (1,1); +%\node at (-1,-1) [below left] {$0$}; +%\node at (1,-1) [below right] {$K$}; +%\node at (1,1) [above right] {$K+iK'$}; +%\node at (-1,1) [above left] {$iK'$}; +%\node at (0,0) {$u$}; + +\fill[color=rot!10,opacity=0.5] (-5.5,-4.3) rectangle (7.3,-1.7); +\fill[color=blau!10,opacity=0.5] (-5.5,-7.3) rectangle (7.3,-4.7); +\fill[color=gruen!10,opacity=0.5] (-5.5,-10.3) rectangle (7.3,-7.7); + +\fill[color=rot!10,opacity=0.5] (-1.3,-10.5) rectangle (1.3,2.5); +\fill[color=blau!10,opacity=0.5] (1.7,-10.5) rectangle (4.3,2.5); +\fill[color=gruen!10,opacity=0.5] (4.7,-10.5) rectangle (7.3,2.5); + +\begin{scope}[xshift=1.5cm,yshift=2cm] +\node at (0,0) {Zähler}; +\draw[<-] (-4.5,0) -- (-1,0); +\draw[->] (1,0) -- (4.5,0); +\node[color=black] at (-4.5,-0.4) {\Large n}; +\node[color=rot] at (-1.5,-0.4) {\Large s}; +\node[color=blau] at (1.5,-0.4) {\Large c}; +\node[color=gruen] at (4.5,-0.4) {\Large d}; +\end{scope} + +\begin{scope}[xshift=-5.1cm,yshift=-4.5cm] +\node at (0,0) [rotate=90] {Nenner}; +\draw[<-] (0,-4.5) -- (0,-1); +\draw[->] (0,1) -- (0,4.5); +\node[color=gruen] at (0.4,-4.5) [rotate=90] {\Large d}; +\node[color=blau] at (0.4,-1.5) [rotate=90] {\Large c}; +\node[color=rot] at (0.4,1.5) [rotate=90] {\Large s}; +\node[color=black] at (0.4,4.5) [rotate=90] {\Large n}; +\end{scope} + +\begin{scope}[xshift=-3cm,yshift=0cm] +\node at (0,0) {$1$}; +\draw[color=gray!20] (-1,-1) rectangle (1,1); +\end{scope} + +\definecolor{sccolor}{rgb}{0.8,0.0,1.0} +\definecolor{sdcolor}{rgb}{0.6,0.6,0.0} +\definecolor{cdcolor}{rgb}{0.0,0.6,1.0} + +\begin{scope}[xshift=0cm] +\rechteck{rot}{\operatorname{sn}(u,k)} +\nullstelle{(-1,-1)}{rot} +\pol{(-1,1)}{rot} +\node at (-1,-1) {$0$}; +\node at (1,-1) {$1$}; +\node at (1,1) {$\frac1k$}; +\node at (-1,1) {$\infty$}; +\end{scope} + +\begin{scope}[xshift=3cm] +\rechteck{blau}{\operatorname{cn}(u,k)} +\nullstelle{(1,-1)}{blau} +\pol{(-1,1)}{blau} +\node at (-1,-1) {$1$}; +\node at (1,-1) {$0$}; +\node at (1,1) {$\frac{k'}{ik}$}; +\node at (-1,1) {$\infty$}; +\end{scope} + +\begin{scope}[xshift=6cm] +\rechteck{gruen}{\operatorname{dn}(u,k)} +\nullstelle{(1,1)}{gruen} +\pol{(-1,1)}{gruen} +\node at (-1,-1) {$1$}; +\node at (1,-1) {$k'$}; +\node at (1,1) {$0$}; +\node at (-1,1) {$\infty$}; +\end{scope} + +% +% start row with denominator sn(u,k) +% + +\begin{scope}[xshift=-3cm,yshift=-3cm] +\rechteck{rot}{\operatorname{ns}(u,k)} +\pol{(-1,-1)}{rot} +\nullstelle{(-1,1)}{rot} +\node at (-1,-1) {$\infty$}; +\node at (1,-1) {$1$}; +\node at (1,1) {$k$}; +\node at (-1,1) {$0$}; +\end{scope} + +\begin{scope}[xshift=0cm,yshift=-3cm] +%\rechteck{gray}{1} +\fill[color=white] (-1,-1) rectangle (1,1); +\node[color=gray] at (0,0) {$1$}; +\end{scope} + +\begin{scope}[xshift=3cm,yshift=-3cm] +\rechteck{sccolor}{\operatorname{cs}(u,k)} +\pol{(-1,-1)}{sccolor} +\nullstelle{(1,-1)}{sccolor} +\node at (-1,-1) {$\infty$}; +\node at (1,-1) {$0$}; +\node at (1,1) {$\frac{k'}{i}$}; +\node at (-1,1) {$ $}; +\end{scope} + +\begin{scope}[xshift=6cm,yshift=-3cm] +\rechteck{sdcolor}{\operatorname{ds}(u,k)} +\pol{(-1,-1)}{sdcolor} +\nullstelle{(1,1)}{sdcolor} +\node at (-1,-1) {$\infty$}; +\node at (1,-1) {$k'$}; +\node at (1,1) {$0$}; +\node at (-1,1) {$ $}; +\end{scope} + +% +% start row with denominator cn(u,k) +% + +\begin{scope}[xshift=-3cm,yshift=-6cm] +\rechteck{blau}{\operatorname{nc}(u,k)} +\pol{(1,-1)}{blau} +\nullstelle{(-1,1)}{blau} +\node at (-1,-1) {$1$}; +\node at (-1,1) {$0$}; +\node at (1,-1) {$\infty$}; +\node at (1,1) {$\frac{ik}{k'}$}; +\end{scope} + +\begin{scope}[xshift=0cm,yshift=-6cm] +\rechteck{sccolor}{\operatorname{sc}(u,k)} +\nullstelle{(-1,-1)}{sccolor} +\pol{(1,-1)}{sccolor} +\node at (-1,-1) {$0$}; +\node at (1,-1) {$\infty$}; +\node at (-1,1) {$ $}; +\node at (1,1) {$\frac{i}{k'}$}; +\end{scope} + +\begin{scope}[xshift=3cm,yshift=-6cm] +%\rechteck{gray}{1} +\fill[color=white] (-1,-1) rectangle (1,1); +\node[color=gray] at (0,0) {$1$}; +\end{scope} + +\begin{scope}[xshift=6cm,yshift=-6cm] +\rechteck{cdcolor}{\operatorname{dc}(u,k)} +\nullstelle{(1,1)}{cdcolor} +\pol{(1,-1)}{cdcolor} +\node at (-1,-1) {$1$}; +\node at (1,-1) {$\infty$}; +\node at (-1,1) {$k$}; +\node at (1,1) {$0$}; +\end{scope} + +% +% start row with denominator dn(u,k) +% + +\begin{scope}[xshift=-3cm,yshift=-9cm] +\rechteck{gruen}{\operatorname{nd}(u,k)} +\pol{(1,1)}{gruen} +\nullstelle{(-1,1)}{gruen} +\node at (-1,-1) {$1$}; +\node at (-1,1) {$0$}; +\node at (1,-1) {$\frac{1}{k'}$}; +\node at (1,1) {$\infty$}; +\end{scope} + +\begin{scope}[xshift=0cm,yshift=-9cm] +\rechteck{sdcolor}{\operatorname{sd}(u,k)} +\nullstelle{(-1,-1)}{sdcolor} +\pol{(1,1)}{sdcolor} +\node at (-1,-1) {$0$}; +\node at (1,-1) {$\frac{1}{k'}$}; +\node at (-1,1) {$ $}; +\node at (1,1) {$\infty$}; +\end{scope} + +\begin{scope}[xshift=3cm,yshift=-9cm] +\rechteck{cdcolor}{\operatorname{cd}(u,k)} +\pol{(1,1)}{cdcolor} +\nullstelle{(1,-1)}{cdcolor} +\node at (-1,-1) {$1$}; +\node at (-1,1) {$\frac1k $}; +\node at (1,-1) {$0$}; +\node at (1,1) {$\infty$}; +\end{scope} + +\begin{scope}[xshift=6cm,yshift=-9cm] +%\rechteck{gray}{1} +\fill[color=white] (-1,-1) rectangle (1,1); +\node[color=gray] at (0,0) {$1$}; +\end{scope} + + +\end{tikzpicture} +\end{document} + diff --git a/buch/chapters/110-elliptisch/images/ellcommon.tex b/buch/chapters/110-elliptisch/images/ellcommon.tex new file mode 100644 index 0000000..cd3245d --- /dev/null +++ b/buch/chapters/110-elliptisch/images/ellcommon.tex @@ -0,0 +1,24 @@ +% +% ellcommon.tex -- common macros/definitions for elliptic function +% values display +% +% (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\definecolor{rot}{rgb}{0.8,0,0} +\definecolor{blau}{rgb}{0,0,1} +\definecolor{gruen}{rgb}{0,0.6,0} +\def\l{0.2} + +\def\pol#1#2{ + \draw[color=#2!50,line width=3.0pt] + ($#1+(-\l,-\l)$) -- ($#1+(\l,\l)$); + \draw[color=#2!50,line width=3.0pt] + ($#1+(-\l,\l)$) -- ($#1+(\l,-\l)$); +} +\def\nullstelle#1#2{ + \draw[color=#2!50,line width=3.0pt] #1 circle[radius=\l]; +} +\def\rechteck#1#2{ + \fill[color=#1!20] (-1,-1) rectangle (1,1); + \node[color=#1] at (0,0) {$#2\mathstrut$}; +} diff --git a/buch/chapters/110-elliptisch/images/ellpolnul.pdf b/buch/chapters/110-elliptisch/images/ellpolnul.pdf Binary files differnew file mode 100644 index 0000000..d798169 --- /dev/null +++ b/buch/chapters/110-elliptisch/images/ellpolnul.pdf diff --git a/buch/chapters/110-elliptisch/images/ellpolnul.tex b/buch/chapters/110-elliptisch/images/ellpolnul.tex new file mode 100644 index 0000000..dfa04d3 --- /dev/null +++ b/buch/chapters/110-elliptisch/images/ellpolnul.tex @@ -0,0 +1,69 @@ +% +% ellpolnul.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} +\input{ellcommon.tex} +\def\skala{1} +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\input rechteckpfade3.tex + +\pgfmathparse{2/\xmax} +\xdef\dx{\pgfmathresult} +\xdef\dy{\dx} + +\begin{scope}[xshift=-1cm,yshift=-1cm] +\clip (0,0) rectangle (2,2); +\netz{0.4pt} +\draw[line width=0.4pt] (-1,0) -- (1,0); +\end{scope} +\fill[color=white,opacity=0.7] (-1,-1) rectangle (1,1); +\draw (-1,-1) rectangle (1,1); +\node at (-1,-1) [below left] {$0$}; +\node at (1,-1) [below right] {$K$}; +\node at (1,1) [above right] {$K+iK'$}; +\node at (-1,1) [above left] {$iK'$}; +\node at (0,0) {$u$}; + +\begin{scope}[xshift=4cm] +\rechteck{rot}{\operatorname{sn}(u,k)} +\nullstelle{(-1,-1)}{rot} +\pol{(-1,1)}{rot} +\node at (-1,-1) {$0$}; +\node at (1,-1) {$1$}; +\node at (1,1) {$\frac1k$}; +\node at (-1,1) {$\infty$}; +\end{scope} + +\begin{scope}[xshift=7cm] +\rechteck{blau}{\operatorname{cn}(u,k)} +\nullstelle{(1,-1)}{blau} +\pol{(-1,1)}{blau} +\node at (-1,-1) {$1$}; +\node at (1,-1) {$0$}; +\node at (1,1) {$\frac{k'}{ik}$}; +\node at (-1,1) {$\infty$}; +\end{scope} + +\begin{scope}[xshift=10cm] +\rechteck{gruen}{\operatorname{dn}(u,k)} +\nullstelle{(1,1)}{gruen} +\pol{(-1,1)}{gruen} +\node at (-1,-1) {$1$}; +\node at (1,-1) {$k'$}; +\node at (1,1) {$0$}; +\node at (-1,1) {$\infty$}; +\end{scope} + +\end{tikzpicture} +\end{document} + diff --git a/buch/chapters/110-elliptisch/images/ellselection.pdf b/buch/chapters/110-elliptisch/images/ellselection.pdf Binary files differnew file mode 100644 index 0000000..7c98db1 --- /dev/null +++ b/buch/chapters/110-elliptisch/images/ellselection.pdf diff --git a/buch/chapters/110-elliptisch/images/ellselection.tex b/buch/chapters/110-elliptisch/images/ellselection.tex new file mode 100644 index 0000000..d8afeb1 --- /dev/null +++ b/buch/chapters/110-elliptisch/images/ellselection.tex @@ -0,0 +1,141 @@ +% +% ellselection.tex -- Wahl einer elliptischen Funktion +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math} +\begin{document} +\def\skala{1} +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\input{rechteckpfade2.tex} + +\def\l{0.45} +\pgfmathparse{\l*72/2.54} +\xdef\L{\pgfmathresult} + +\pgfmathparse{4.1/\xmax} +\xdef\dx{\pgfmathresult} +\xdef\dy{\dx} + +\def\sx{4.1} +\pgfmathparse{\sx*72/2.54} +\xdef\Sx{\pgfmathresult} + +\pgfmathparse{\dx*\ymax} +\xdef\sy{\pgfmathresult} +\pgfmathparse{\sy*72/2.54} +\xdef\Sy{\pgfmathresult} + +\pgfmathparse{\sx/2-\l} +\xdef\linksx{\pgfmathresult} +\pgfmathparse{\sy/2-\l} +\xdef\linksy{\pgfmathresult} + +\pgfmathparse{\sx/2+2*\l} +\xdef\rechtsx{\pgfmathresult} +\pgfmathparse{\sy/2} +\xdef\rechtsy{\pgfmathresult} + +\begin{scope} + \clip (-\sx,-\sy) rectangle (\sx,\sy); + \begin{scope}[xshift={-\Sx}] + \hintergrund + \netz{0.7pt} + \end{scope} + \begin{scope}[xshift={\Sx}] + \hintergrund + \netz{0.7pt} + \end{scope} +\end{scope} + +\fill[color=red!14,opacity=0.7] ({-\sx},0) rectangle (\sx,\sy); +\fill[color=blue!14,opacity=0.7] ({-\sx},{-\sy}) rectangle (\sx,0); +\fill[color=yellow!40,opacity=0.5] (0,0) rectangle (\sx,\sy); + +\draw (-\sx,-\sy) rectangle (\sx,\sy); + +\draw[->] ({-1.4*\sx},0) -- ({1.4*\sx},0) coordinate[label={$\Re u$}]; +\draw[->] (0,{-\sy-1}) -- (0,{\sy+1}) coordinate[label={right:$\Im u$}]; + +\definecolor{darkgreen}{rgb}{0,0.6,0} + +\draw[->,line width=1.9pt,color=darkgreen] + (\sx,0) to[out=180,in=-79] (\linksx,\linksy); +\draw[->,line width=1.9pt,color=darkgreen] + (\sx,{\sy-\l}) to[out=-90,in=0] (\rechtsx,\rechtsy); + +\def\rect#1#2{ + \fill[color=white] (-\l,-\l) rectangle (\l,\l); + #2 + \draw (-\l,-\l) rectangle (\l,\l); + \node at (0,0) {\Huge #1\strut}; +} + +\def\kreuz{ + \begin{scope} + \clip ({-\l},{-\l}) rectangle ({\l},{\l}); + \fill[color=white] ({-2*\l},{-2*\l}) rectangle ({2*\l},{2*\l}); + \draw[color=darkgreen!30,line width=3pt] (-\l,-\l) -- (\l,\l); + \draw[color=darkgreen!30,line width=3pt] (-\l,\l) -- (\l,-\l); + \end{scope} +} + +\def\kreis{ + \begin{scope} + \clip ({-\l},{-\l}) rectangle ({\l},{\l}); + \fill[color=white] ({-2*\l},{-2*\l}) rectangle ({2*\l},{2*\l}); + \draw[color=darkgreen!30,line width=3pt] + (0,0) circle[radius={\l*(\L-1.5)/\L}]; + \end{scope} +} + +\begin{scope}[xshift={0},yshift={0}] + \rect{s}{} +\end{scope} + +\begin{scope}[xshift={\Sx},yshift={0}] + \rect{c}{\kreis} +\end{scope} + +\begin{scope}[xshift={\Sx},yshift={\Sy}] + \rect{d}{\kreuz} +\end{scope} + +\begin{scope}[xshift={0},yshift={\Sy}] + \rect{n}{} +\end{scope} + +\node at ({-\l+0.1},{\sy+\l-0.1}) [above left] {$iK'\mathstrut$}; +\node at ({-\l+0.1},{-\l+0.1}) [below left] {$0\mathstrut$}; +\node at ({\sx+\l-0.1},{-\l+0.1}) [below right] {$K\mathstrut$}; +\node at ({\sx+\l-0.1},{\sy+\l-0.1}) [above right] {$K+iK'\mathstrut$}; +\node at ({-\sx},0) [below left] {$-K\mathstrut$}; +\node at (0,{-\sy+0.05}) [below left] {$-iK'\mathstrut$}; +\node at ({\sx-0.1},{-\sy+0.1}) [below right] {$K-iK'\mathstrut$}; +\node at ({-\sx+0.1},{-\sy+0.1}) [below left] {$-K-iK'\mathstrut$}; +\node at ({-\sx+0.1},{\sy-0.1}) [above left] {$-K+iK'\mathstrut$}; + +\begin{scope}[xshift={-\L+0.5*\Sx},yshift={0.5*\Sy}] + \node at ({-\l},{\l-0.1}) [above] {Nullstelle\strut}; + \kreis + \node[color=darkgreen] at (0,0) {\Huge c\strut}; + \draw[line width=0.2pt] (-\l,-\l) rectangle (\l,\l); +\end{scope} + +\begin{scope}[xshift={\L+0.5*\Sx},yshift={0.5*\Sy}] + \node at ({\l},{\l-0.1}) [above] {Pol\strut}; + \kreuz + \node[color=darkgreen] at (0,0) {\Huge d\strut}; + \draw[line width=0.2pt] (-\l,-\l) rectangle (\l,\l); +\end{scope} + +\end{tikzpicture} +\end{document} + diff --git a/buch/chapters/110-elliptisch/images/jacobiplots.pdf b/buch/chapters/110-elliptisch/images/jacobiplots.pdf Binary files differindex f0e6e78..eb9d7f1 100644 --- a/buch/chapters/110-elliptisch/images/jacobiplots.pdf +++ b/buch/chapters/110-elliptisch/images/jacobiplots.pdf diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pdf b/buch/chapters/110-elliptisch/images/kegelpara.pdf Binary files differnew file mode 100644 index 0000000..2bbd428 --- /dev/null +++ b/buch/chapters/110-elliptisch/images/kegelpara.pdf diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pov b/buch/chapters/110-elliptisch/images/kegelpara.pov new file mode 100644 index 0000000..13b66cc --- /dev/null +++ b/buch/chapters/110-elliptisch/images/kegelpara.pov @@ -0,0 +1,329 @@ +// +// kegelpara.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#version 3.7; +#include "colors.inc" + +#declare O = <0,0,0>; + +global_settings { + assumed_gamma 1 +} + +#declare imagescale = 0.08; + +camera { + location <28, 20, -40> + look_at <0, 0.1, 0> + right x * imagescale + up y * imagescale +} + +light_source { + <30, 10, -40> color White + area_light <1,0,0> <0,0,1>, 10, 10 + adaptive 1 + jitter +} + +sky_sphere { + pigment { + color rgb<1,1,1> + } +} + + +// +// draw an arrow from <from> to <to> with thickness <arrowthickness> with +// color <c> +// +#macro arrow(from, to, arrowthickness, c) +#declare arrowdirection = vnormalize(to - from); +#declare arrowlength = vlength(to - from); +union { + sphere { + from, 1.1 * arrowthickness + } + cylinder { + from, + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + arrowthickness + } + cone { + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + 2 * arrowthickness, + to, + 0 + } + pigment { + color c + } + finish { + specular 0.9 + metallic + } +} +#end + +arrow(<-2.6,0,0>,<2.5,0,0>,0.02,White) +arrow(<0,-2,0>,<0,2.3,0>,0.02,White) +arrow(<0,0,-3.2>,<0,0,3.7>,0.02,White) + +#declare epsilon = 0.0001; +#declare l = 1.5; + +#macro Kegel(farbe) +union { + difference { + cone { O, 0, <l, 0, 0>, l } + cone { O + <epsilon, 0,0>, 0, <l+epsilon, 0, 0>, l } + } + difference { + cone { O, 0, <-l, 0, 0>, l } + cone { O + <-epsilon, 0, 0>, 0, <-l-epsilon, 0, 0>, l } + } + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } +} +#end + +#macro Kegelpunkt(xx, phi) + < xx, xx * sin(phi), xx * cos(phi) > +#end + +#macro Kegelgitter(farbe, r) +union { + #declare s = 0; + #declare smax = 2 * pi; + #declare sstep = pi / 6; + #while (s < smax - sstep/2) + cylinder { Kegelpunkt(l, s), Kegelpunkt(-l, s), r } + #declare s = s + sstep; + #end + #declare phimax = 2 * pi; + #declare phisteps = 100; + #declare phistep = phimax / phisteps; + #declare xxstep = 0.5; + #declare xxmax = 2; + #declare xx = xxstep; + #while (xx < xxmax - xxstep/2) + #declare phi = 0; + #while (phi < phimax - phistep/2) + cylinder { + Kegelpunkt(xx, phi), + Kegelpunkt(xx, phi + phistep), + r + } + sphere { Kegelpunkt(xx, phi), r } + cylinder { + Kegelpunkt(-xx, phi), + Kegelpunkt(-xx, phi + phistep), + r + } + sphere { Kegelpunkt(-xx, phi), r } + #declare phi = phi + phistep; + #end + #declare xx = xx + xxstep; + #end + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } +} +#end + +#macro F(w, r) + <r * cos(w), r * r/sqrt(2), r * sin(w) > +#end + +#macro Paraboloid(farbe) +mesh { + #declare phi = 0; + #declare phimax = 2 * pi; + #declare phisteps = 100; + #declare phistep = pi / phisteps; + #declare rsteps = 100; + #declare rmax = 1.5; + #declare rstep = rmax / rsteps; + #while (phi < phimax - phistep/2) + #declare r = rstep; + #declare h = r * r / sqrt(2); + triangle { + O, F(phi, r), F(phi + phistep, r) + } + #while (r < rmax - rstep/2) + // ring + triangle { + F(phi, r), + F(phi + phistep, r), + F(phi + phistep, r + rstep) + } + triangle { + F(phi, r), + F(phi + phistep, r + rstep), + F(phi, r + rstep) + } + #declare r = r + rstep; + #end + #declare phi = phi + phistep; + #end + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } +} +#end + +#macro Paraboloidgitter(farbe, gr) +union { + #declare phi = 0; + #declare phimax = 2 * pi; + #declare phistep = pi / 6; + + #declare rmax = 1.5; + #declare rsteps = 100; + #declare rstep = rmax / rsteps; + + #while (phi < phimax - phistep/2) + #declare r = rstep; + #while (r < rmax - rstep/2) + cylinder { F(phi, r), F(phi, r + rstep), gr } + sphere { F(phi, r), gr } + #declare r = r + rstep; + #end + #declare phi = phi + phistep; + #end + + #declare rstep = 0.2; + #declare r = rstep; + + #declare phisteps = 100; + #declare phistep = phimax / phisteps; + #while (r < rmax) + #declare phi = 0; + #while (phi < phimax - phistep/2) + cylinder { F(phi, r), F(phi + phistep, r), gr } + sphere { F(phi, r), gr } + #declare phi = phi + phistep; + #end + #declare r = r + rstep; + #end + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } +} +#end + +#declare a = sqrt(2); +#macro G(phi,sg) + < a*sg*sqrt(cos(2*phi))*cos(phi), a*cos(2*phi), a*sqrt(cos(2*phi))*sin(phi)> +#end + +#macro Lemniskate3D(s, farbe) +union { + #declare phi = -pi / 4; + #declare phimax = pi / 4; + #declare phisteps = 100; + #declare phistep = phimax / phisteps; + #while (phi < phimax - phistep/2) + sphere { G(phi,1), s } + cylinder { G(phi,1), G(phi+phistep,1), s } + sphere { G(phi,-1), s } + cylinder { G(phi,-1), G(phi+phistep,-1), s } + #declare phi = phi + phistep; + #end + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } +} +#end + +#declare a = sqrt(2); +#macro G2(phi,sg) + a * sqrt(cos(2*phi)) * < sg * cos(phi), 0, sin(phi)> +#end + +#macro Lemniskate(s, farbe) +union { + #declare phi = -pi / 4; + #declare phimax = pi / 4; + #declare phisteps = 100; + #declare phistep = phimax / phisteps; + #while (phi < phimax - phistep/2) + sphere { G2(phi,1), s } + cylinder { G2(phi,1), G2(phi+phistep,1), s } + sphere { G2(phi,-1), s } + cylinder { G2(phi,-1), G2(phi+phistep,-1), s } + #declare phi = phi + phistep; + #end + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } +} +#end + +#macro Projektion(s, farbe) +union { + #declare phistep = pi / 16; + #declare phi = -pi / 4 + phistep; + #declare phimax = pi / 4; + #while (phi < phimax - phistep/2) + cylinder { G(phi, 1), G2(phi, 1), s } + cylinder { G(phi, -1), G2(phi, -1), s } + #declare phi = phi + phistep; + #end + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } +} +#end + +#declare kegelfarbe = rgbf<0.2,0.6,0.2,0.2>; +#declare kegelgitterfarbe = rgb<0.2,0.8,0.2>; +#declare paraboloidfarbe = rgbf<0.2,0.6,1.0,0.2>; +#declare paraboloidgitterfarbe = rgb<0.4,1,1>; + +//intersection { +// union { + Paraboloid(paraboloidfarbe) + Paraboloidgitter(paraboloidgitterfarbe, 0.004) + + Kegel(kegelfarbe) + Kegelgitter(kegelgitterfarbe, 0.004) +// } +// plane { <0, 0, -1>, 0.6 } +//} + + +Lemniskate3D(0.02, rgb<0.8,0.0,0.8>) +Lemniskate(0.02, Red) +Projektion(0.01, Yellow) diff --git a/buch/chapters/110-elliptisch/images/kegelpara.tex b/buch/chapters/110-elliptisch/images/kegelpara.tex new file mode 100644 index 0000000..8fcefbf --- /dev/null +++ b/buch/chapters/110-elliptisch/images/kegelpara.tex @@ -0,0 +1,41 @@ +% +% kegelpara.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=8cm]{kegelpara.jpg}}; + +% Gitter +\ifthenelse{\boolean{showgrid}}{ +\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw (-\breite,-\hoehe) grid (\breite, \hoehe); +\fill (0,0) circle[radius=0.05]; +}{} + +\node at (4.1,-1.4) {$X$}; +\node at (0.2,3.8) {$Z$}; +\node at (4.0,1.8) {$Y$}; + +\end{tikzpicture} + +\end{document} + diff --git a/buch/chapters/110-elliptisch/images/lemnispara.cpp b/buch/chapters/110-elliptisch/images/lemnispara.cpp new file mode 100644 index 0000000..6f4d55d --- /dev/null +++ b/buch/chapters/110-elliptisch/images/lemnispara.cpp @@ -0,0 +1,126 @@ +/* + * lemnispara.cpp -- Display parametrisation of the lemniskate + * + * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + */ +#include <cstdio> +#include <cstdlib> +#include <cmath> +#include <gsl/gsl_sf_elljac.h> +#include <iostream> +#include <fstream> +#include <map> +#include <string.h> +#include <string> + +const static double s = sqrt(2); +const static double k = 1 / s; +const static double m = k * k; + +typedef std::pair<double, double> point_t; + +point_t operator*(const point_t& p, double s) { + return point_t(s * p.first, s * p.second); +} + +static double norm(const point_t& p) { + return hypot(p.first, p.second); +} + +static point_t normalize(const point_t& p) { + return p * (1/norm(p)); +} + +static point_t normal(const point_t& p) { + return std::make_pair(p.second, -p.first); +} + +class lemniscate : public point_t { + double sn, cn, dn; +public: + lemniscate(double t) { + gsl_sf_elljac_e(t, m, &sn, &cn, &dn); + first = s * cn * dn; + second = cn * sn; + } + point_t tangent() const { + return std::make_pair(-s * sn * (1.5 - sn * sn), + dn * (1 - 2 * sn * sn)); + } + point_t unittangent() const { + return normalize(tangent()); + } + point_t normal() const { + return ::normal(tangent()); + } + point_t unitnormal() const { + return ::normal(unittangent()); + } +}; + +std::ostream& operator<<(std::ostream& out, const point_t& p) { + char b[1024]; + snprintf(b, sizeof(b), "({%.4f*\\dx},{%.4f*\\dy})", p.first, p.second); + out << b; + return out; +} + +int main(int argc, char *argv[]) { + std::ofstream out("lemnisparadata.tex"); + + // the curve + double tstep = 0.01; + double tmax = 4.05; + out << "\\def\\lemnispath{ "; + out << lemniscate(0); + for (double t = tstep; t < tmax; t += tstep) { + out << std::endl << "\t" << "-- " << lemniscate(t); + } + out << std::endl; + out << "}" << std::endl; + + out << "\\def\\lemnispathmore{ "; + out << lemniscate(tmax); + double tmax2 = 7.5; + for (double t = tmax + tstep; t < tmax2; t += tstep) { + out << std::endl << "\t" << "-- " << lemniscate(t); + } + out << std::endl; + out << "}" << std::endl; + + // individual points + tstep = 0.2; + int i = 0; + char name[3]; + strcpy(name, "L0"); + for (double t = 0; t <= tmax; t += tstep) { + char c = 'A' + i++; + char buffer[128]; + lemniscate l(t); + name[0] = 'L'; + name[1] = c; + out << "\\coordinate (" << name << ") at "; + out << l << ";" << std::endl; + name[0] = 'T'; + out << "\\coordinate (" << name << ") at "; + out << l.unittangent() << ";" << std::endl; + name[0] = 'N'; + out << "\\coordinate (" << name << ") at "; + out << l.unitnormal() << ";" << std::endl; + name[0] = 'C'; + out << "\\def\\" << name << "{ "; + out << "\\node[color=red] at ($(L" << c << ")+0.06*(N" << c << ")$) "; + out << "[rotate={"; + double w = 180 * atan2(l.unitnormal().second, + l.unitnormal().first) / M_PI; + snprintf(buffer, sizeof(buffer), "%.1f", w); + out << buffer; + out << "-90}]"; + snprintf(buffer, sizeof(buffer), "%.1f", t); + out << " {$\\scriptstyle " << buffer << "$};" << std::endl; + out << "}" << std::endl; + } + + out.close(); + return EXIT_SUCCESS; +} diff --git a/buch/chapters/110-elliptisch/images/lemnispara.pdf b/buch/chapters/110-elliptisch/images/lemnispara.pdf Binary files differnew file mode 100644 index 0000000..16731d3 --- /dev/null +++ b/buch/chapters/110-elliptisch/images/lemnispara.pdf diff --git a/buch/chapters/110-elliptisch/images/lemnispara.tex b/buch/chapters/110-elliptisch/images/lemnispara.tex new file mode 100644 index 0000000..c6e32d7 --- /dev/null +++ b/buch/chapters/110-elliptisch/images/lemnispara.tex @@ -0,0 +1,94 @@ +% +% lemnispara.tex -- parametrization of the lemniscate +% +% (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] +\def\dx{4} +\def\dy{4} +\input{lemnisparadata.tex} + +% add image content here +\draw[color=red!20,line width=1.4pt] \lemnispathmore; +\draw[color=red,line width=1.4pt] \lemnispath; + +\draw[->] ({-1.6*\dx},0) -- ({1.8*\dx},0) coordinate[label={$X$}]; +\draw[->] (0,{-0.7*\dy}) -- (0,{0.7*\dy}) coordinate[label={right:$Y$}]; + +\draw ({1.5*\dx},-0.05) -- ({1.5*\dx},0.05); +\draw ({\dx},-0.05) -- ({\dx},0.05); +\draw ({0.5*\dx},-0.05) -- ({0.5*\dx},0.05); +\draw ({-0.5*\dx},-0.05) -- ({-0.5*\dx},0.05); +\draw ({-\dx},-0.05) -- ({-\dx},0.05); +\draw ({-1.5*\dx},-0.05) -- ({-1.5*\dx},0.05); +\draw (-0.05,{0.5*\dy}) -- (0.05,{0.5*\dy}); +\draw (-0.05,{-0.5*\dy}) -- (0.05,{-0.5*\dy}); + +\node at ({\dx},0) [above] {$1$}; +\node at ({-\dx},0) [above] {$-1$}; +\node at ({-0.5*\dx},0) [above] {$-\frac12$}; +\node at ({0.5*\dx},0) [above] {$\frac12$}; +\node at (0,{0.5*\dy}) [left] {$\frac12$}; +\node at (0,{-0.5*\dy}) [left] {$-\frac12$}; + +\def\s{0.02} + +\draw[color=red] ($(LA)-\s*(NA)$) -- ($(LA)+\s*(NA)$); +\draw[color=red] ($(LB)-\s*(NB)$) -- ($(LB)+\s*(NB)$); +\draw[color=red] ($(LC)-\s*(NC)$) -- ($(LC)+\s*(NC)$); +\draw[color=red] ($(LD)-\s*(ND)$) -- ($(LD)+\s*(ND)$); +\draw[color=red] ($(LE)-\s*(NE)$) -- ($(LE)+\s*(NE)$); +\draw[color=red] ($(LF)-\s*(NF)$) -- ($(LF)+\s*(NF)$); +\draw[color=red] ($(LG)-\s*(NG)$) -- ($(LG)+\s*(NG)$); +\draw[color=red] ($(LH)-\s*(NH)$) -- ($(LH)+\s*(NH)$); +\draw[color=red] ($(LI)-\s*(NI)$) -- ($(LI)+\s*(NI)$); +\draw[color=red] ($(LJ)-\s*(NJ)$) -- ($(LJ)+\s*(NJ)$); +\draw[color=red] ($(LK)-\s*(NK)$) -- ($(LK)+\s*(NK)$); +\draw[color=red] ($(LL)-\s*(NL)$) -- ($(LL)+\s*(NL)$); +\draw[color=red] ($(LM)-\s*(NM)$) -- ($(LM)+\s*(NM)$); +\draw[color=red] ($(LN)-\s*(NN)$) -- ($(LN)+\s*(NN)$); +\draw[color=red] ($(LO)-\s*(NO)$) -- ($(LO)+\s*(NO)$); +\draw[color=red] ($(LP)-\s*(NP)$) -- ($(LP)+\s*(NP)$); +\draw[color=red] ($(LQ)-\s*(NQ)$) -- ($(LQ)+\s*(NQ)$); +\draw[color=red] ($(LR)-\s*(NR)$) -- ($(LR)+\s*(NR)$); +\draw[color=red] ($(LS)-\s*(NS)$) -- ($(LS)+\s*(NS)$); +\draw[color=red] ($(LT)-\s*(NT)$) -- ($(LT)+\s*(NT)$); +\draw[color=red] ($(LU)-\s*(NU)$) -- ($(LU)+\s*(NU)$); + +\CB +\CC +\CD +\CE +\CF +\CG +\CH +\CI +\CJ +\CK +\CL +\CM +\CN +\CO +\CP +\CQ +\CR +\CS +\CT +\CU + +\fill[color=blue] (LA) circle[radius=0.07]; +\node[color=blue] at (LA) [above right] {$S$}; + +\end{tikzpicture} +\end{document} + diff --git a/buch/chapters/110-elliptisch/images/rechteck.cpp b/buch/chapters/110-elliptisch/images/rechteck.cpp index c65ae0f..b5ad0ec 100644 --- a/buch/chapters/110-elliptisch/images/rechteck.cpp +++ b/buch/chapters/110-elliptisch/images/rechteck.cpp @@ -163,7 +163,7 @@ curvetracer::curve_t curvetracer::trace(const std::complex<double>& startz, } catch (const toomanyiterations& x) { std::cerr << "iterations exceeded after "; std::cerr << result.size(); - std::cerr << " points"; + std::cerr << " points" << std::endl; maxsteps = 0; } } @@ -230,7 +230,7 @@ void curvedrawer::operator()(const curvetracer::curve_t& curve) { double first = true; for (auto z : curve) { if (first) { - *_out << "\\draw[color=" << _color << "] "; + *_out << "\\draw[color=" << _color << ",line width=#1] "; first = false; } else { *_out << std::endl << " -- "; @@ -244,6 +244,7 @@ static struct option longopts[] = { { "outfile", required_argument, NULL, 'o' }, { "k", required_argument, NULL, 'k' }, { "deltax", required_argument, NULL, 'd' }, +{ "vsteps", required_argument, NULL, 'v' }, { NULL, 0, NULL, 0 } }; @@ -252,7 +253,8 @@ static struct option longopts[] = { */ int main(int argc, char *argv[]) { double k = 0.625; - double deltax = 0.2; + double Deltax = 0.2; + int vsteps = 4; int c; int longindex; @@ -261,7 +263,7 @@ int main(int argc, char *argv[]) { &longindex))) switch (c) { case 'd': - deltax = std::stod(optarg); + Deltax = std::stod(optarg); break; case 'o': outfilename = std::string(optarg); @@ -269,6 +271,9 @@ int main(int argc, char *argv[]) { case 'k': k = std::stod(optarg); break; + case 'v': + vsteps = std::stoi(optarg); + break; } double kprime = integrand::kprime(k); @@ -293,15 +298,21 @@ int main(int argc, char *argv[]) { curvetracer ct(f); // fill + (*cdp->out()) << "\\def\\hintergrund{" << std::endl; (*cdp->out()) << "\\fill[color=red!10] ({" << (-xmax) << "*\\dx},0) " << "rectangle ({" << xmax << "*\\dx},{" << ymax << "*\\dy});" << std::endl; (*cdp->out()) << "\\fill[color=blue!10] ({" << (-xmax) << "*\\dx},{" << (-ymax) << "*\\dy}) rectangle ({" << xmax << "*\\dx},0);" << std::endl; + (*cdp->out()) << "}" << std::endl; + + // macro for grid + (*cdp->out()) << "\\def\\netz#1{" << std::endl; // "circles" std::complex<double> dir(0.01, 0); + double deltax = Deltax; for (double im = deltax; im < 3; im += deltax) { std::complex<double> startz(0, im); std::complex<double> startw = ct.startpoint(startz); @@ -316,9 +327,9 @@ int main(int argc, char *argv[]) { } // imaginary axis - (*cdp->out()) << "\\draw[color=red] (0,0) -- (0,{" << ymax + (*cdp->out()) << "\\draw[color=red,line width=#1] (0,0) -- (0,{" << ymax << "*\\dy});" << std::endl; - (*cdp->out()) << "\\draw[color=blue] (0,0) -- (0,{" << (-ymax) + (*cdp->out()) << "\\draw[color=blue,line width=#1] (0,0) -- (0,{" << (-ymax) << "*\\dy});" << std::endl; // arguments between 0 and 1 @@ -353,7 +364,8 @@ int main(int argc, char *argv[]) { // arguments between 1 and 1/k { - for (double x0 = 1 + deltax; x0 < 1/k; x0 += deltax) { + deltax = (1/k - 1) / vsteps; + for (double x0 = 1 + deltax; x0 < 1/k + 0.00001; x0 += deltax) { double y0 = sqrt(1-1/(x0*x0))/kprime; //std::cout << "y0 = " << y0 << std::endl; double y = gsl_sf_ellint_F(asin(y0), kprime, @@ -389,8 +401,9 @@ int main(int argc, char *argv[]) { // arguments larger than 1/k { + deltax = Deltax; dir = std::complex<double>(0, 0.01); - double x0 = 1; + double x0 = 1/k; while (x0 <= 1/k + 0.0001) { x0 += deltax; } for (; x0 < 4; x0 += deltax) { std::complex<double> startz(x0); @@ -407,6 +420,8 @@ int main(int argc, char *argv[]) { } } + (*cdp->out()) << "}" << std::endl; + // border (*cdp->out()) << "\\def\\xmax{" << xmax << "}" << std::endl; (*cdp->out()) << "\\def\\ymax{" << ymax << "}" << std::endl; diff --git a/buch/chapters/110-elliptisch/images/rechteck.pdf b/buch/chapters/110-elliptisch/images/rechteck.pdf Binary files differindex 6209897..46f2376 100644 --- a/buch/chapters/110-elliptisch/images/rechteck.pdf +++ b/buch/chapters/110-elliptisch/images/rechteck.pdf diff --git a/buch/chapters/110-elliptisch/images/rechteck.tex b/buch/chapters/110-elliptisch/images/rechteck.tex index 622a9e9..12535ba 100644 --- a/buch/chapters/110-elliptisch/images/rechteck.tex +++ b/buch/chapters/110-elliptisch/images/rechteck.tex @@ -18,6 +18,8 @@ \def\dy{3} \input{rechteckpfade.tex} +\hintergrund +\netz{0.7pt} \begin{scope} \clip ({-\xmax*\dx},{-\ymax*\dy}) rectangle ({\xmax*\dx},{\ymax*\dy}); diff --git a/buch/chapters/110-elliptisch/images/slcl.pdf b/buch/chapters/110-elliptisch/images/slcl.pdf Binary files differindex c15051b..71645e3 100644 --- a/buch/chapters/110-elliptisch/images/slcl.pdf +++ b/buch/chapters/110-elliptisch/images/slcl.pdf diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pdf b/buch/chapters/110-elliptisch/images/torusschnitt.pdf Binary files differnew file mode 100644 index 0000000..9b64ab2 --- /dev/null +++ b/buch/chapters/110-elliptisch/images/torusschnitt.pdf diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pov b/buch/chapters/110-elliptisch/images/torusschnitt.pov new file mode 100644 index 0000000..e5602df --- /dev/null +++ b/buch/chapters/110-elliptisch/images/torusschnitt.pov @@ -0,0 +1,308 @@ +// +// kegelpara.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#version 3.7; +#include "colors.inc" + +#declare O = <0,0,0>; + +global_settings { + assumed_gamma 1 +} + +#declare imagescale = 0.060; + +camera { + location <28, 20, -40> + look_at <0, 0.55, 0> + right (16/9) * x * imagescale + up y * imagescale +} + +light_source { + <30, 10, -40> color White + area_light <1,0,0> <0,0,1>, 10, 10 + adaptive 1 + jitter +} + +sky_sphere { + pigment { + color rgb<1,1,1> + } +} + + +// +// draw an arrow from <from> to <to> with thickness <arrowthickness> with +// color <c> +// +#macro arrow(from, to, arrowthickness, c) +#declare arrowdirection = vnormalize(to - from); +#declare arrowlength = vlength(to - from); +union { + sphere { + from, 1.1 * arrowthickness + } + cylinder { + from, + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + arrowthickness + } + cone { + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + 2 * arrowthickness, + to, + 0 + } + pigment { + color c + } + finish { + specular 0.9 + metallic + } +} +#end + + +#macro Ticks(tl, tr) +union { + #declare s = 1; + #while (s <= 3.1) + cylinder { <-0.5*s-tl, 0, 0>, <-0.5*s+tl, 0, 0>, tr } + cylinder { < 0.5*s-tl, 0, 0>, < 0.5*s+tl, 0, 0>, tr } + #declare s = s + 1; + #end + + #declare s = 1; + #while (s <= 4.1) + cylinder { <0, 0.5*s-tl, 0>, <0, 0.5*s+tl, 0>, tr } + #declare s = s + 1; + #end + #declare s = 1; + #while (s <= 2.1) + cylinder { <0,-0.5*s-tl, 0>, <0,-0.5*s+tl, 0>, tr } + #declare s = s + 1; + #end + + #declare s = 1; + #while (s <= 4) + cylinder { <0, 0, 0.5*s-tl>, <0, 0, 0.5*s+tl>, tr } + #declare s = s + 1; + #end + #declare s = 1; + #while (s <= 3) + cylinder { <0, 0, -0.5*s-tl>, <0, 0, -0.5*s+tl>, tr } + #declare s = s + 1; + #end + + pigment { + color White + } + finish { + specular 0.9 + metallic + } +} +#end + +#declare epsilon = 0.001; +#declare l = 1.5; + +#declare a = sqrt(2); +#macro G2(phi,sg) + a * sqrt(cos(2*phi)) * < sg * cos(phi), 0, sin(phi)> +#end + +#macro Lemniskate(s, farbe) +union { + #declare phi = -pi / 4; + #declare phimax = pi / 4; + #declare phisteps = 100; + #declare phistep = phimax / phisteps; + #while (phi < phimax - phistep/2) + sphere { G2(phi,1), s } + cylinder { G2(phi,1), G2(phi+phistep,1), s } + sphere { G2(phi,-1), s } + cylinder { G2(phi,-1), G2(phi+phistep,-1), s } + #declare phi = phi + phistep; + #end + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } +} +#end + +#macro Projektion(s, farbe) +union { + #declare phistep = pi / 16; + #declare phi = -pi / 4 + phistep; + #declare phimax = pi / 4; + #while (phi < phimax - phistep/2) + cylinder { G(phi, 1), G2(phi, 1), s } + cylinder { G(phi, -1), G2(phi, -1), s } + #declare phi = phi + phistep; + #end + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } +} +#end + +#macro Ebene(l, b, farbe) +mesh { + triangle { <-l, 0, -b>, < l, 0, -b>, < l, 0, b> } + triangle { <-l, 0, -b>, < l, 0, b>, <-l, 0, b> } + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } +} +#end + +#macro Ebenengitter(l, b, s, r, farbe) +union { + #declare lmax = floor(l / s); + #declare ll = -lmax; + #while (ll <= lmax) + cylinder { <ll * s, 0, -b>, <ll * s, 0, b>, r } + #declare ll = ll + 1; + #end + #declare bmax = floor(b / s); + #declare bb = -bmax; + #while (bb <= bmax) + cylinder { <-l, 0, bb * s>, <l, 0, bb * s>, r } + #declare bb = bb + 1; + #end + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } +} +#end + +#declare b = 0.5; +#macro T(phi, theta) + b * < (2 + cos(theta)) * cos(phi), (2 + cos(theta)) * sin(phi) + 1, sin(theta) > +#end + +#macro breitenkreis(theta, r) + #declare phi = 0; + #declare phimax = 2 * pi; + #declare phisteps = 200; + #declare phistep = phimax / phisteps; + #while (phi < phimax - phistep/2) + cylinder { T(phi, theta), T(phi + phistep, theta), r } + sphere { T(phi, theta), r } + #declare phi = phi + phistep; + #end +#end + +#macro laengenkreis(phi, r) + #declare theta = 0; + #declare thetamax = 2 * pi; + #declare thetasteps = 200; + #declare thetastep = thetamax / thetasteps; + #while (theta < thetamax - thetastep/2) + cylinder { T(phi, theta), T(phi, theta + thetastep), r } + sphere { T(phi, theta), r } + #declare theta = theta + thetastep; + #end +#end + +#macro Torusgitter(farbe, r) +union { + #declare phi = 0; + #declare phimax = 2 * pi; + #declare phistep = pi / 6; + #while (phi < phimax - phistep/2) + laengenkreis(phi, r) + #declare phi = phi + phistep; + #end + #declare thetamax = pi; + #declare thetastep = pi / 6; + #declare theta = thetastep; + #while (theta < thetamax - thetastep/2) + breitenkreis(theta, r) + breitenkreis(thetamax + theta, r) + #declare theta = theta + thetastep; + #end + breitenkreis(0, 1.5 * r) + breitenkreis(pi, 1.5 * r) + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } +} +#end + +#macro Torus(farbe) +mesh { + #declare phi = 0; + #declare phimax = 2 * pi; + #declare phisteps = 200; + #declare phistep = phimax/phisteps; + #while (phi < phimax - phistep/2) + #declare theta = 0; + #declare thetamax = 2 * pi; + #declare thetasteps = 200; + #declare thetastep = thetamax / thetasteps; + #while (theta < thetamax - thetastep/2) + triangle { + T(phi, theta), + T(phi + phistep, theta), + T(phi + phistep, theta + thetastep) + } + triangle { + T(phi, theta), + T(phi + phistep, theta + thetastep), + T(phi, theta + thetastep) + } + #declare theta = theta + thetastep; + #end + #declare phi = phi + phistep; + #end + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } +} +#end + +#declare torusfarbe = rgbt<0.2,0.6,0.2,0.2>; +#declare ebenenfarbe = rgbt<0.2,0.6,1.0,0.2>; + +arrow(<-2,0,0>,<2,0,0>,0.02,White) +arrow(<0,-1.1,0>,<0,2.2,0>,0.02,White) +arrow(<0,0,-1.7>,<0,0,2.4>,0.02,White) +Ticks(0.007,0.036) + +Lemniskate(0.02, Red) +Ebene(1.8, 1.6, ebenenfarbe) +Ebenengitter(1.8, 1.6, 0.5, 0.005, rgb<0.4,1,1>) +Torus(torusfarbe) +Torusgitter(Yellow, 0.005) + diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.tex b/buch/chapters/110-elliptisch/images/torusschnitt.tex new file mode 100644 index 0000000..63351ad --- /dev/null +++ b/buch/chapters/110-elliptisch/images/torusschnitt.tex @@ -0,0 +1,41 @@ +% +% torusschnitt.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{6} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=11.98cm]{torusschnitt.jpg}}; + +% Gitter +\ifthenelse{\boolean{showgrid}}{ +\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw (-\breite,-\hoehe) grid (\breite, \hoehe); +\fill (0,0) circle[radius=0.05]; +}{} + +\node at (4.4,-2.4) {$X$}; +\node at (3.5,0.6) {$Y$}; +\node at (0.3,3.8) {$Z$}; + +\end{tikzpicture} + +\end{document} + diff --git a/buch/chapters/110-elliptisch/lemniskate.tex b/buch/chapters/110-elliptisch/lemniskate.tex index 0df27a7..04c137d 100644 --- a/buch/chapters/110-elliptisch/lemniskate.tex +++ b/buch/chapters/110-elliptisch/lemniskate.tex @@ -12,34 +12,40 @@ veröffentlich hat. In diesem Abschnitt soll die Verbindung zu den Jacobischen elliptischen Funktionen hergestellt werden. +% +% Lemniskate +% \subsection{Lemniskate \label{buch:gemotrie:subsection:lemniskate}} -\begin{figure} -\centering -\includegraphics{chapters/110-elliptisch/images/lemniskate.pdf} -\caption{Bogenlänge und Radius der Lemniskate von Bernoulli. -\label{buch:elliptisch:fig:lemniskate}} -\end{figure} -Die Lemniskate von Bernoulli ist die Kurve vierten Grades mit der Gleichung +Die {\em Lemniskate von Bernoulli} ist die Kurve vierten Grades +mit der Gleichung +\index{Lemniskate von Bernoulli}% \begin{equation} (X^2+Y^2)^2 = 2a^2(X^2-Y^2). \label{buch:elliptisch:eqn:lemniskate} \end{equation} Sie ist in Abbildung~\ref{buch:elliptisch:fig:lemniskate} dargestellt. -Die beiden Scheitel der Lemniskate befinden sich bei $X_s=\pm a\sqrt{2}$. +Der Fall $a=1/\!\sqrt{2}$ ist eine Kurve mit der Gleichung +\[ +(x^2+y^2)^2 = x^2-y^2, +\] +wir nennen sie die {\em Standard-Lemniskate}. + +\subsubsection{Scheitelpunkte} +Die beiden Scheitel der Lemniskate befinden sich bei $X_s=\pm a\!\sqrt{2}$. Dividiert man die Gleichung der Lemniskate durch $X_s^2=4a^4$ entsteht \begin{equation} \biggl( -\biggl(\frac{X}{a\sqrt{2}}\biggr)^2 +\biggl(\frac{X}{a\!\sqrt{2}}\biggr)^2 + -\biggl(\frac{Y}{a\sqrt{2}}\biggr)^2 +\biggl(\frac{Y}{a\!\sqrt{2}}\biggr)^2 \biggr)^2 = 2\frac{a^2}{2a^2}\biggl( -\biggl(\frac{X}{a\sqrt{2}}\biggr)^2 +\biggl(\frac{X}{a\!\sqrt{2}}\biggr)^2 - -\biggl(\frac{Y}{a\sqrt{2}}\biggr)^2 +\biggl(\frac{Y}{a\!\sqrt{2}}\biggr)^2 \biggr). \qquad \Leftrightarrow @@ -47,11 +53,19 @@ Dividiert man die Gleichung der Lemniskate durch $X_s^2=4a^4$ entsteht (x^2+y^2)^2 = x^2-y^2, \label{buch:elliptisch:eqn:lemniskatenormiert} \end{equation} -wobei wir $x=X/a\sqrt{2}$ und $y=Y/a\sqrt{2}$ gesetzt haben. -In dieser Normierung liegen die Scheitel bei $\pm 1$. +wobei wir $x=X/a\!\sqrt{2}$ und $y=Y/a\!\sqrt{2}$ gesetzt haben. +In dieser Normierung, der Standard-Lemniskaten, liegen die Scheitel +bei $\pm 1$. Dies ist die Skalierung, die für die Definition des lemniskatischen Sinus und Kosinus verwendet werden soll. +\begin{figure} +\centering +\includegraphics{chapters/110-elliptisch/images/lemniskate.pdf} +\caption{Bogenlänge und Radius der Lemniskate von Bernoulli. +\label{buch:elliptisch:fig:lemniskate}} +\end{figure} +\subsubsection{Polarkoordinaten} In Polarkoordinaten $x=r\cos\varphi$ und $y=r\sin\varphi$ gilt nach Einsetzen in \eqref{buch:elliptisch:eqn:lemniskatenormiert} \begin{equation} @@ -69,12 +83,180 @@ Sie gilt für Winkel $\varphi\in[-\frac{\pi}4,\frac{\pi}4]$ für das rechte Blatt und $\varphi\in[\frac{3\pi}4,\frac{5\pi}4]$ für das linke Blatt der Lemniskate. +% +% Schnitt eines Kegels mit einem Paraboloid +% +\subsubsection{Schnitt eines Kegels mit einem Paraboloid} +\begin{figure} +\center +\includegraphics{chapters/110-elliptisch/images/kegelpara.pdf} +\caption{Leminiskate (rot) als Projektion (gelb) der Schnittkurve (pink) +eines geraden +Kreiskegels (grün) mit einem Rotationsparaboloid (hellblau). +\label{buch:elliptisch:lemniskate:kegelpara}} +\end{figure}% +\index{Kegel}% +\index{Paraboloid}% +Schreibt man in der Gleichung~\eqref{buch:elliptisch:eqn:lemniskate} +für die Klammer auf der rechten Seite $Z^2 = X^2 - Y^2$, dann wird die +Lemniskate die Projektion in die $X$-$Y$-Ebene der Schnittkurve der Flächen, +die durch die Gleichungen +\begin{equation} +X^2-Y^2 = Z^2 +\qquad\text{und}\qquad +(X^2+Y^2) = R^2 = \!\sqrt{2}aZ +\label{buch:elliptisch:eqn:kegelparabolschnitt} +\end{equation} +beschrieben wird. +Die linke Gleichung in +\eqref{buch:elliptisch:eqn:kegelparabolschnitt} +beschreibt einen geraden Kreiskegel, die rechte ist ein Rotationsparaboloid. +Die Schnittkurve ist in Abbildung~\ref{buch:elliptisch:lemniskate:kegelpara} +dargestellt. + +\subsubsection{Schnitt eines Torus mit einer Ebene} +\begin{figure} +\centering +\includegraphics{chapters/110-elliptisch/images/torusschnitt.pdf} +\caption{Die Schnittkurve (rot) eines Torus (grün) +mit einer zur Torusachse parallelen Ebene (blau), +die den inneren Äquator des Torus berührt, ist eine Lemniskate. +\label{buch:elliptisch:lemniskate:torusschnitt}} +\end{figure} +\index{Torus}% +Schneidet man einen Torus mit einer Ebene, die zur Achse des Torus +parallel ist und den inneren Äquator des Torus berührt, wie in +Abbildung~\ref{buch:elliptisch:lemniskate:torusschnitt}, +entsteht ebenfalls eine Lemniskate, wie in diesem Abschnitt nachgewiesen +werden soll. + +Der in Abbildung~\ref{buch:elliptisch:lemniskate:torusschnitt} +dargestellte Torus mit den Radien $2$ und $1$ hat als Achse die +um eine Einheit in $Z$-Richtung verschobene $Y$-Achse und die +$X$-$Z$-Ebene als Äquatorebene. +Der Torus kann mit +\[ +(u,v) +\mapsto +\begin{pmatrix} +(2+\cos u) \cos v \\ + \sin u \\ +(2+\cos u) \sin v + 1 +\end{pmatrix} +\] +parametrisiert werden, die $u$- und $v$-Koordinatenlinien sind +in der Abbildung gelb eingezeichnet. +Die $v$-Koordinatenlinien sind Breitenkreise um die Achse des Torus. +Aus $u=0$ und $u=\pi$ ergeben sich die Äquatoren des Torus. + +Die Gleichung $Z=0$ beschreibt eine achsparallele Ebene, die den +inneren Äquator berührt. +Die Schnittkurve erfüllt daher +\[ +(2+\cos u)\sin v + 1 = 0, +\] +was wir auch als $2 +\cos u = -1/\sin v$ schreiben können. +Wir müssen nachprüfen, dass die Koordinaten +$X=(2+\cos u)\cos v$ und $Y=\sin u$ die Gleichung einer Lemniskate +erfüllen. + +Zunächst können wir in der $X$-Koordinate den Klammerausdruck durch +$\sin v$ ausdrücken und erhalten +\begin{equation} +X += +(2+\cos u) \cos v += +-\frac{1}{\sin v}\cos v += +-\frac{\cos v}{\sin v} +\qquad\Rightarrow\qquad +X^2 += +\frac{\cos^2v}{\sin^2 v} += +\frac{1-\sin^2v}{\sin^2 v}. +\label{buch:elliptisch:lemniskate:Xsin} +\end{equation} +Auch die $Y$-Koordinaten können wir durch $v$ ausdrücken, +nämlich +\begin{equation} +Y^2=\sin^2 u = 1-\cos^2 u += +1- +\biggl( +\frac{1}{\sin v} +-2 +\biggr)^2 += +\frac{-3\sin^2 v+4\sin v-1}{\sin^2 v}. +\label{buch:elliptisch:lemniskate:Ysin} +\end{equation} +Die Gleichungen +\eqref{buch:elliptisch:lemniskate:Xsin} +und +\eqref{buch:elliptisch:lemniskate:Ysin} +zeigen, dass man $X^2$ und $Y^2$ sogar einzig durch $\sin v$ +parametrisieren kann. +Um die Ausdrücke etwas zu vereinfachen, schreiben wir $S=\sin v$ +und erhalten zusammenfassend +\begin{equation} +\begin{aligned} +X^2 +&= +\frac{1-S^2}{S^2} +\\ +Y^2 +&= +\frac{-3S^2+4S-1}{S^2}. +\end{aligned} +\end{equation} +Daraus kann man jetzt die Summen und Differenzen der Quadrate +berechnen, sie sind +\begin{equation} +\begin{aligned} +X^2+Y^2 +&= +\frac{-4S^2+4S}{S^2} += +\frac{4S(1-S)}{S^2} += +\frac{4(1-S)}{S} += +4\frac{1-S}{S} +\\ +X^2-Y^2 +&= +\frac{2-4S+2S^2}{S^2} += +\frac{2(1-S)^2}{S^2} += +2\biggl(\frac{1-S}{S}\biggr)^2. +\end{aligned} +\end{equation} +Die Berechnung des Quadrates von $X^2+Y^2$ ergibt die Gleichung +\[ +(X^2+Y^2)^2 += +16 +\biggl(\frac{1-S}{S}\biggr)^2 += +8 \cdot 2 +\biggl(\frac{1-S}{S}\biggr)^2 += +2\cdot 2^2\cdot (X^2-Y^2). +\] +Sie ist eine Lemniskaten-Gleichung für $a=2$. + +% +% Bogenlänge der Lemniskate +% \subsection{Bogenlänge} Die Funktionen \begin{equation} -x(r) = \frac{r}{\sqrt{2}}\sqrt{1+r^2}, +x(r) = \frac{r}{\!\sqrt{2}}\sqrt{1+r^2}, \quad -y(r) = \frac{r}{\sqrt{2}}\sqrt{1-r^2} +y(r) = \frac{r}{\!\sqrt{2}}\sqrt{1-r^2} \label{buch:geometrie:eqn:lemniskateparam} \end{equation} erfüllen @@ -89,7 +271,7 @@ r^4 = (x(r)^2 + y(r)^2)^2, \end{align*} -sie stellen also eine Parametrisierung der Lemniskate dar. +sie stellen also eine Parametrisierung der Standard-Lemniskate dar. Mit Hilfe der Parametrisierung~\eqref{buch:geometrie:eqn:lemniskateparam} kann man die Länge $s$ des in Abbildung~\ref{buch:elliptisch:fig:lemniskate} @@ -99,9 +281,9 @@ Kettenregel berechnen kann: \begin{align*} \dot{x}(r) &= -\frac{\sqrt{1+r^2}}{\sqrt{2}} +\frac{\!\sqrt{1+r^2}}{\!\sqrt{2}} + -\frac{r^2}{\sqrt{2}\sqrt{1+r^2}} +\frac{r^2}{\!\sqrt{2}\sqrt{1+r^2}} &&\Rightarrow& \dot{x}(r)^2 &= @@ -109,13 +291,13 @@ Kettenregel berechnen kann: \\ \dot{y}(r) &= -\frac{\sqrt{1-r^2}}{\sqrt{2}} +\frac{\!\sqrt{1-r^2}}{\!\sqrt{2}} - \frac{r^2}{\sqrt{2}\sqrt{1-r^2}} &&\Rightarrow& \dot{y}(r)^2 &= -\frac{1-r^2}{2} -r^2 + \frac{r^4}{2(1-r^2)} +\frac{1-r^2}{2} -r^2 + \frac{r^4}{2(1-r^2)}. \end{align*} Die Summe der Quadrate ist \begin{align*} @@ -134,7 +316,7 @@ Durch Einsetzen in das Integral für die Bogenlänge bekommt man s(r) = \int_0^r -\frac{1}{\sqrt{1-t^4}}\,dt. +\frac{1}{\!\sqrt{1-t^4}}\,dt. \label{buch:elliptisch:eqn:lemniskatebogenlaenge} \end{equation} @@ -147,11 +329,11 @@ $k^2=-1$ oder $k=i$ ist \[ K(r,i) = -\int_0^x \frac{dt}{\sqrt{(1-t^2)(1-i^2 t^2)}} +\int_0^x \frac{dt}{\!\sqrt{(1-t^2)(1-i^2 t^2)}} = -\int_0^x \frac{dt}{\sqrt{(1-t^2)(1-(-1)t^2)}} +\int_0^x \frac{dt}{\!\sqrt{(1-t^2)(1-(-1)t^2)}} = -\int_0^x \frac{dt}{\sqrt{1-t^4}} +\int_0^x \frac{dt}{\!\sqrt{1-t^4}} = s(r). \] @@ -161,13 +343,14 @@ Parameters $k$. Die Länge des rechten Blattes der Lemniskate wird mit $\varpi$ bezeichnet und hat den numerischen Wert -\[ +\begin{equation} \varpi = 2\int_0^1\sqrt{\frac{1}{1-t^4}}\,dt = 2.6220575542. -\] +\label{buch:elliptisch:eqn:varpi} +\end{equation} $\varpi$ ist auch als die {\em lemniskatische Konstante} bekannt. \index{lemniskatische Konstante}% Der Lemniskatenbogen zwischen dem Nullpunkt und $(1,0)$ hat die Länge @@ -177,15 +360,22 @@ $\varpi/2$. % Bogenlängenparametrisierung % \subsection{Bogenlängenparametrisierung} +\begin{figure} +\centering +\includegraphics{chapters/110-elliptisch/images/lemnispara.pdf} +\caption{Parametrisierung der Lemniskate mit Jacobischen elliptischen +Funktion wie in \eqref{buch:elliptisch:lemniskate:bogeneqn} +\label{buch:elliptisch:lemniskate:bogenpara}} +\end{figure} Die Lemniskate mit der Gleichung \[ -(X^2+X^2)^2=2(X^2-X^2) +(X^2+Y^2)^2=2(X^2-Y^2) \] (der Fall $a=1$ in \eqref{buch:elliptisch:eqn:lemniskate}) kann mit Jacobischen elliptischen Funktionen parametrisiert werden. Dazu schreibt man -\[ +\begin{equation} \left. \begin{aligned} X(t) @@ -198,11 +388,23 @@ Y(t) \operatorname{cn}(t,k) \operatorname{sn}(t,k) \end{aligned} \quad\right\} -\qquad\text{mit $k=\displaystyle\frac{1}{\sqrt{2}}$} -\] -und berechnet die beiden Seiten der definierenden Gleichung der -Lemniskate. -Zunächst ist +\qquad\text{mit $k=\displaystyle\frac{1}{\sqrt{2}}.$} +\label{buch:elliptisch:lemniskate:bogeneqn} +\end{equation} +Abbildung~\ref{buch:elliptisch:lemniskate:bogenpara} zeigt die +Parametrisierung. +Dem Parameterwert $t=0$ entspricht der Scheitelpunkt +$S=(\!\sqrt{2},0)$ der Lemniskate. + +% +% Lemniskatengleichung +% +\subsubsection{Verfikation der Lemniskatengleichung} +Dass \eqref{buch:elliptisch:lemniskate:bogeneqn} +tatsächlich eine Parametrisierung ist, kann dadurch nachgewiesen werden, +dass man die beiden Seiten der definierenden Gleichung der +Lemniskate berechnet. +Zunächst sind die Quadrate von $X(t)$ und $Y(t)$ \begin{align*} X(t)^2 &= @@ -212,8 +414,8 @@ X(t)^2 Y(t)^2 &= \operatorname{cn}(t,k)^2 -\operatorname{sn}(t,k)^2 -\\ +\operatorname{sn}(t,k)^2. +\intertext{Für Summe und Differenz der Quadrate findet man jetzt} X(t)^2+Y(t)^2 &= 2\operatorname{cn}(t,k)^2 @@ -245,54 +447,49 @@ X(t)^2-Y(t)^2 \bigr) \\ &= -2\operatorname{cn}(t,k)^4 -\\ +2\operatorname{cn}(t,k)^4. +\intertext{Beide lassen sich also durch $\operatorname{cn}(t,k)^2$ +ausdrücken. +Zusammengefasst erhält man} \Rightarrow\qquad (X(t)^2+Y(t)^2)^2 &= 4\operatorname{cn}(t,k)^4 = -2(X(t)^2-Y(t)^2). +2(X(t)^2-Y(t)^2), \end{align*} +eine Lemniskaten-Gleichung. + +% +% Berechnung der Bogenlänge +% +\subsubsection{Berechnung der Bogenlänge} Wir zeigen jetzt, dass dies tatsächlich eine Bogenlängenparametrisierung der Lemniskate ist. Dazu berechnen wir die Ableitungen \begin{align*} \dot{X}(t) &= -\sqrt{2}\operatorname{cn}'(t,k)\operatorname{dn}(t,k) +\!\sqrt{2}\operatorname{cn}'(t,k)\operatorname{dn}(t,k) + -\sqrt{2}\operatorname{cn}(t,k)\operatorname{dn}'(t,k) +\!\sqrt{2}\operatorname{cn}(t,k)\operatorname{dn}'(t,k) \\ &= --\sqrt{2}\operatorname{sn}(t,k)\operatorname{dn}(t,k)^2 +-\!\sqrt{2}\operatorname{sn}(t,k)\operatorname{dn}(t,k)^2 -\frac12\sqrt{2}\operatorname{sn}(t,k)\operatorname{cn}(t,k)^2 \\ &= --\sqrt{2}\operatorname{sn}(t,k)\bigl( +-\!\sqrt{2}\operatorname{sn}(t,k)\bigl( 1-{\textstyle\frac12}\operatorname{sn}(t,k)^2 -+{\textstyle\frac12}-{\textstyle\frac12}\operatorname{sn}(u,t)^2 ++{\textstyle\frac12}-{\textstyle\frac12}\operatorname{sn}(t,k)^2 \bigr) \\ &= -\sqrt{2}\operatorname{sn}(t,k) +\!\sqrt{2}\operatorname{sn}(t,k) \bigl( {\textstyle \frac32}-\operatorname{sn}(t,k)^2 \bigr) \\ -\dot{X}(t)^2 -&= -2\operatorname{sn}(t,k)^2 -\bigl( -{\textstyle \frac32}-\operatorname{sn}(t,k)^2 -\bigr)^2 -\\ -&= -{\textstyle\frac{9}{2}}\operatorname{sn}(t,k)^2 -- -6\operatorname{sn}(t,k)^4 -+2\operatorname{sn}(t,k)^6 -\\ \dot{Y}(t) &= \operatorname{cn}'(t,k)\operatorname{sn}(t,k) @@ -307,6 +504,19 @@ Dazu berechnen wir die Ableitungen \\ &= \operatorname{dn}(t,k)\bigl(1-2\operatorname{sn}(t,k)^2\bigr) +\intertext{und davon die Quadrate} +\dot{X}(t)^2 +&= +2\operatorname{sn}(t,k)^2 +\bigl( +{\textstyle \frac32}-\operatorname{sn}(t,k)^2 +\bigr)^2 +\\ +&= +{\textstyle\frac{9}{2}}\operatorname{sn}(t,k)^2 +- +6\operatorname{sn}(t,k)^4 ++2\operatorname{sn}(t,k)^6 \\ \dot{Y}(t)^2 &= @@ -316,24 +526,28 @@ Dazu berechnen wir die Ableitungen &= 1-{\textstyle\frac{9}{2}}\operatorname{sn}(t,k)^2 +6\operatorname{sn}(t,k)^4 --2\operatorname{sn}(t,k)^6 -\\ +-2\operatorname{sn}(t,k)^6. +\intertext{Für das Bogenlängenintegral wird die Quadratsumme der Ableitungen +benötigt, diese ist} \dot{X}(t)^2 + \dot{Y}(t)^2 &= 1. -\end{align*} -Dies bedeutet, dass die Bogenlänge zwischen den Parameterwerten $0$ und $s$ -\[ -\int_0^s -\sqrt{\dot{X}(t)^2 + \dot{Y}(t)^2} -\,dt -= -\int_0^s\,dt +\intertext{Dies bedeutet, dass die Bogenlänge zwischen den +Parameterwerten $0$ und $t$} +\int_0^t +\sqrt{\dot{X}(\tau)^2 + \dot{Y}(\tau)^2} +\,d\tau +&= +\int_0^s\,d\tau = -s, -\] +t, +\end{align*} der Parameter $t$ ist also ein Bogenlängenparameter. +% +% Bogenlängenparametrisierung der Standard-Lemniskate +% +\subsubsection{Bogenlängenparametrisierung der Standard-Lemniskate} Die mit dem Faktor $1/\sqrt{2}$ skalierte Standard-Lemniskate mit der Gleichung \[ @@ -341,56 +555,132 @@ Gleichung \] hat daher eine Bogenlängenparametrisierung mit \begin{equation} +\left. \begin{aligned} x(t) &= -\phantom{\frac{1}{\sqrt{2}}} -\operatorname{cn}(\sqrt{2}t,k)\operatorname{dn}(\sqrt{2}t,k) +\phantom{\frac{1}{\!\sqrt{2}}} +\operatorname{cn}(\!\sqrt{2}t,k)\operatorname{dn}(\!\sqrt{2}t,k) \\ y(t) &= -\frac{1}{\sqrt{2}}\operatorname{cn}(\sqrt{2}t,k)\operatorname{sn}(\sqrt{2}t,k) +\frac{1}{\!\sqrt{2}} +\operatorname{cn}(\!\sqrt{2}t,k)\operatorname{sn}(\!\sqrt{2}t,k) \end{aligned} +\quad +\right\} +\qquad +\text{mit $\displaystyle k=\frac{1}{\!\sqrt{2}}.$} \label{buch:elliptisch:lemniskate:bogenlaenge} \end{equation} +Der Punkt $t=0$ entspricht dem Scheitelpunkt $S=(1,0)$ der Lemniskate. +Der Parameter misst also die Bogenlänge entlang der Lemniskate ausgehend +vom Scheitel. +% +% der lemniskatische Sinus und Kosinus +% \subsection{Der lemniskatische Sinus und Kosinus} -Der Sinus Berechnet die Gegenkathete zu einer gegebenen Bogenlänge des +Der Sinus berechnet die Gegenkathete zu einer gegebenen Bogenlänge des Kreises, er ist die Umkehrfunktion der Funktion, die der Gegenkathete die Bogenlänge zuordnet. - Daher ist es naheliegend, die Umkehrfunktion von $s(r)$ in \eqref{buch:elliptisch:eqn:lemniskatebogenlaenge} den {\em lemniskatischen Sinus} zu nennen mit der Bezeichnung -$r=\operatorname{sl} s$. +\index{lemniskatischer Sinus}% +\index{Sinus, lemniskatischer}% +$r=r(s)=\operatorname{sl} s$. +\index{komplementäre Bogenlänge} +% +% die komplementäre Bogenlänge +% +\subsubsection{Die komplementäre Bogenlänge} Der Kosinus ist der Sinus des komplementären Winkels. Auch für die lemniskatische Bogenlänge $s(r)$ lässt sich eine -komplementäre Bogenlänge definieren, nämlich die Bogenlänge zwischen -dem Punkt $(x(r), y(r))$ und $(1,0)$. - -Da die Parametrisierung~\eqref{buch:elliptisch:lemniskate:bogenlaenge} -eine Bogenlängenparametrisierung ist, darf man $t=s$ schreiben. -Dann kann man aber auch $r(s)$ daraus berechnen, -es ist -\[ -r(s)^2 -= -x(s)^2 + y(s)^2 -= -\operatorname{cn}(s\sqrt{2},k)^2 -\qquad\Rightarrow\qquad -r(s) -= -\operatorname{cn}(s\sqrt{2},k) -\] +komplementäre Bogenlänge $t$ definieren, nämlich die Bogenlänge +zwischen dem Punkt $(x(r), y(r))$ und dem Scheitelpunkt $S=(1,0)$. +Dies ist der Parameter der Parametrisierung +\eqref{buch:elliptisch:lemniskate:bogenlaenge} +des vorangegangenen Abschnittes. +Die Bogenlänge zwischen $O=(0,0)$ und $S=(1,0)$ wurde in +\eqref{buch:elliptisch:eqn:varpi} bereits bereichnet, +sie ist $\varpi/2$. +Damit folgt für die beiden Parameter $s$ und $t$ die Beziehung +$t = \varpi/2 - s$. +\subsubsection{Der lemniskatische Kosinus} \begin{figure} \centering \includegraphics[width=\textwidth]{chapters/110-elliptisch/images/slcl.pdf} \caption{ Lemniskatischer Sinus und Kosinus sowie Sinus und Kosinus -mit derart skaliertem Argument, dass die Funktionen die gleichen Nullstellen -haben. +mit derart skaliertem Argument, dass die Funktionen die +gleichen Nullstellen haben. \label{buch:elliptisch:figure:slcl}} \end{figure} +Der {\em lemniskatische Kosinus} ist daher +$\operatorname{cl}(s) = \operatorname{sl}(\varpi/2-s)$. +Graphen des lemniskatische Sinus und Kosinus sind in +Abbildung~\ref{buch:elliptisch:figure:slcl} dargestellt. + +Die Parametrisierung~\eqref{buch:elliptisch:lemniskate:bogenlaenge} +ist eine Bogenlängenparametrisierung der Standard-Lemniskate. +Man kann sie verwenden, um $r(t)$ zu berechnen. +Es ist +\[ +r(t)^2 += +x(t)^2 + y(t)^2 += +\operatorname{cn}(\!\sqrt{2}t,k)^2 +\biggl( +\operatorname{dn}(\!\sqrt{2}t,k)^2 ++ +\frac12 +\operatorname{sn}(\!\sqrt{2}t,k)^2 +\biggr) += +\operatorname{cn}(\!\sqrt{2}t,k)^2. +\] +Die Wurzel ist +\[ +r(t) += +\operatorname{cn}(\!\sqrt{2}t,{\textstyle\frac{1}{\!\sqrt{2}}}) +. +\] +Der lemniskatische Sinus wurde aber in Abhängigkeit von +$s=\varpi/2-t$ mittels +\[ +\operatorname{sl}s += +r(s) += +\operatorname{cn}(\!\sqrt{2}(\varpi/2-s),k)^2 +\] +definiert. +Der lemniskatische Kosinus ist definiert als der lemniskatische Sinus +\index{lemniskatischer Kosinus}% +\index{Kosinus, lemniskatischer}% +der komplementären Bogenlänge, also +\[ +\operatorname{cl}(s) += +\operatorname{sl}(\varpi/2-s) += +\operatorname{cn}(\!\sqrt{2}s,k)^2. +\] +Die Funktion $\operatorname{sl}(s)$ und $\operatorname{cl}(s)$ sind +in Abbildung~\ref{buch:elliptisch:figure:slcl} dargestellt. +Sie sind beide $2\varpi$-periodisch. +Die Abbildung zeigt ausserdem die Funktionen $\sin (\pi s/\varpi)$ +und $\cos(\pi s/\varpi)$, die ebenfalls $2\varpi$-periodisch sind. + +Die Darstellung des lemniskatischen Sinus und Kosinus durch die +Jacobische elliptische Funktion $\operatorname{cn}(\!\sqrt{2}s,k)$ +zeigt einmal mehr den Nutzen der Jacobischen elliptischen Funktionen. + + + + diff --git a/buch/chapters/110-elliptisch/mathpendel.tex b/buch/chapters/110-elliptisch/mathpendel.tex index d61bcf6..e029ffd 100644 --- a/buch/chapters/110-elliptisch/mathpendel.tex +++ b/buch/chapters/110-elliptisch/mathpendel.tex @@ -53,7 +53,7 @@ enthält. Der Energieerhaltungssatz kann uns eine solche Gleichung geben. Die Summe von kinetischer und potentieller Energie muss konstant sein. Dies führt auf -\[ +\begin{equation} E_{\text{kinetisch}} + E_{\text{potentiell}} @@ -66,8 +66,9 @@ mgl(1-\cos\vartheta) + mgl(1-\cos\vartheta) = -E -\] +E. +\label{buch:elliptisch:mathpendel:energiegleichung} +\end{equation} Durch Auflösen nach $\dot{\vartheta}$ kann man jetzt die Differentialgleichung \[ @@ -94,72 +95,155 @@ Für $E>2mgl$ wird sich das Pendel im Kreis bewegen, für sehr grosse Energie ist die kinetische Energie dominant, die Verlangsamung im höchsten Punkt wird immer weniger ausgeprägt sein. + % % Koordinatentransformation auf elliptische Funktionen % \subsubsection{Koordinatentransformation auf elliptische Funktionen} Wir verwenden als neue Variable -\[ -y = \sin\frac{\vartheta}2 -\] -mit der Ableitung -\[ -\dot{y}=\frac12\cos\frac{\vartheta}{2}\cdot \dot{\vartheta}. -\] -Man beachte, dass $y$ nicht eine Koordinate in -Abbildung~\ref{buch:elliptisch:fig:mathpendel} ist. - -Aus den Halbwinkelformeln finden wir -\[ +\begin{align} +y +&= +\sin\frac{\vartheta}2 +&&\Rightarrow& +\cos^2\frac{\vartheta}2 +&= +1-y^2. +\label{buch:elliptisch:mathpendel:ydef} +\intertext{Die Ableitung ist} +\dot{y} +&= +\frac12\cos\frac{\vartheta}{2}\cdot \dot{\vartheta} +&&\Rightarrow& +\dot{y}^2 +&= +\frac14\cos^2\frac{\vartheta}2\cdot\dot{\vartheta}^2. +\label{buch:elliptisch:mathpendel:yabl} +\intertext{% +Man beachte, dass die Koordinate senkrecht zur $x$-Achse in +Abbildung~\ref{buch:elliptisch:fig:mathpendel} die Auslenkung +$l\sin\vartheta$ ist, $y$ ist also nicht die Auslenkung senkrecht +zur $x$-Achse! +Aus den Halbwinkelformeln finden wir ausserdem +} \cos\vartheta -= +&= 1-2\sin^2 \frac{\vartheta}2 = -1-2y^2. -\] -Dies können wir zusammen mit der -Identität $\cos^2\vartheta/2 = 1-\sin^2\vartheta/2 = 1-y^2$ -in die Energiegleichung einsetzen und erhalten -\[ -\frac12ml^2\dot{\vartheta}^2 + mgly^2 = E -\qquad\Rightarrow\qquad -\frac14 \dot{\vartheta}^2 = \frac{E}{2ml^2} - \frac{g}{2l}y^2. -\] -Der konstante Term auf der rechten Seite ist grösser oder kleiner als -$1$ je nachdem, ob das Pendel sich im Kreis bewegt oder nicht. +1-2y^2 +&&\Rightarrow& +1-\cos\vartheta +&= +2y^2. +\label{buch:elliptisch:mathpendel:halbwinkel} +\end{align} +Die Grösse $1-\cos\vartheta$ haben wir in der Energiegleichung +\eqref{buch:elliptisch:mathpendel:energiegleichung} +bereits angetroffen. -Durch Multiplizieren mit $\cos^2\frac{\vartheta}{2}=1-y^2$ +Die Identitäten +\eqref{buch:elliptisch:mathpendel:halbwinkel} +%und +%\eqref{buch:elliptisch:mathpendel:ydef} +können wir jetzt in die +Energiegleichung~\eqref{buch:elliptisch:mathpendel:energiegleichung} +einsetzen und erhalten +\begin{align} +\frac12ml^2\dot{\vartheta}^2 + 2mgly^2 +&= +E +\intertext{und nach Division durch $2ml^2$} +\frac14 \dot{\vartheta}^2 +&= +\frac{E}{2ml^2} - \frac{g}{l}y^2. +\label{buch:elliptisch:mathpendel:thetadgl} +\end{align} +%Der konstante Term auf der rechten Seite ist grösser oder kleiner als +%$1$ je nachdem, ob das Pendel sich im Kreis bewegt oder nicht. +Durch Multiplizieren mit der rechten Gleichung von +\eqref{buch:elliptisch:mathpendel:ydef} erhalten wir auf der linken Seite einen Ausdruck, den wir +mit Hilfe von \eqref{buch:elliptisch:mathpendel:yabl} als Funktion von $\dot{y}$ ausdrücken können. Wir erhalten -\begin{align*} -\frac14 +\begin{align} +\underbrace{\frac14 \cos^2\frac{\vartheta}2 \cdot -\dot{\vartheta}^2 +\dot{\vartheta}^2}_{\displaystyle=\dot{y}^2} &= -\frac14 (1-y^2) -\biggl(\frac{E}{2ml^2} -\frac{g}{2l}y^2\biggr) +\biggl(\frac{E}{2ml^2} -\frac{g}{l}y^2\biggr) +\notag \\ \dot{y}^2 &= -\frac{1}{4} (1-y^2) -\biggl(\frac{E}{2ml^2} -\frac{g}{2l}y^2\biggr) -\end{align*} +\biggl(\frac{E}{2ml^2} -\frac{g}{l}y^2\biggr) +\label{buch:elliptisch:mathpendel:ydgl} +\end{align} Die letzte Gleichung hat die Form einer Differentialgleichung für elliptische Funktionen. -Welche Funktion verwendet werden muss, hängt von der Grösse der -Koeffizienten in der zweiten Klammer ab. -Die Tabelle~\ref{buch:elliptisch:tabelle:loesungsfunktionen} -zeigt, dass in der zweiten Klammer jeweils einer der Terme -$1$ sein muss. +Welche Funktion verwendet werden muss, hängt von der relativen +Grösse der Koeffizienten in der zweiten Klammer ab. % -% Der Fall E < 2mgl +% Zeittransformation zur Elimination des konstanten Faktors % -\subsubsection{Der Fall $E<2mgl$} +\subsubsection{Zeittransformation} +Die Gleichung~\eqref{buch:elliptisch:mathpendel:ydgl} kann auch in +die Form +\begin{equation} +\frac{2ml^2}{E}\dot{y}^2 += +(1-y^2)\biggl(1-\frac{2mgl}{E}y^2\biggr) +\label{buch:elliptisch:mathpendel:ydgl2} +\end{equation} +gebracht werden. +Der konstante Faktor auf der linken Seite kann wie in der Diskussion +des anharmonischen Oszillators durch eine lineare +Transformation der Zeit zum Verschwinden gebracht werden. +Dazu setzt man $z(t) = y(bt)$ und bekommt +\[ +\frac{d}{dt}z(t) += +\frac{d}{dt}y(bt) \frac{d\,bt}{dt} += +b\,\dot{y}(bt). +\] +Die Zeit muss also mit dem Faktor $\sqrt{2ml^2/E}$ skaliert werden. + +% +% Nullstellen der rechten Seite der Differentialgleichung +% +\subsubsection{Nullstellen der rechten Seite} +Die rechte Seite von \eqref{buch:elliptisch:mathpendel:ydgl2} +hat die beiden Nullstellen $1$ und +\begin{equation} +y_0=\sqrt{\frac{E}{2mgl}}. +\label{buch:elliptisch:mathpendel:y0} +\end{equation} +Die Differentialgleichung kann damit als +\begin{equation} +\dot{y}^2 += +(1-y^2)\biggl(1-\frac{1}{y_0^2}y^2\biggr) +\label{buch:elliptisch:mathpendel:y0dgl} +\end{equation} +geschrieben werden. +Da die linke Seite $\ge 0$ sein muss, muss +\( +y\le \min(1,y_0) +\) +sein. +Damit ergeben sich zwei Fälle. +Wenn $y_0<1$ ist, dann schwingt das Pendel. +Der Fall $y_0>1$ entspricht einer Bewegung, bei der das Pendel +um den Punkt $O$ rotiert. +In den folgenden zwei Abschnitten werden die beiden Fälle ausführlicher +diskutiert. + + \begin{figure} \centering \includegraphics[width=\textwidth]{chapters/110-elliptisch/images/jacobiplots.pdf} @@ -179,72 +263,63 @@ erreichen kann, was es für $m$ macht. \label{buch:elliptisch:fig:jacobiplots}} \end{figure} - -Wir verwenden als neue Variable +\subsubsection{Der Fall $E>2mgl$} +In diesem Fall ist die zweite Nullstelle $y_0>1$ oder $1/y_0^2 < 1$. +Die Differentialgleichung~\eqref{buch:elliptisch:mathpendel:y0dgl} +sieht ganz ähnlich aus wie die Differentialgleichung der +Funktion $\operatorname{sn}(u,k)$, tatsächlich wird sie zur +Differentialgleichung von $\operatorname{sn}(u,k)$ wenn man \[ -y = \sin\frac{\vartheta}2 -\] -mit der Ableitung -\[ -\dot{y}=\frac12\cos\frac{\vartheta}{2}\cdot \dot{\vartheta}. -\] -Man beachte, dass $y$ nicht eine Koordinate in -Abbildung~\ref{buch:elliptisch:fig:mathpendel} ist. - -Aus den Halbwinkelformeln finden wir -\[ -\cos\vartheta +k^2 = -1-2\sin^2 \frac{\vartheta}2 +1/y_0^2 = -1-2y^2. +\frac{2mgl}{E} \] -Dies können wir zusammen mit der -Identität $\cos^2\vartheta/2 = 1-\sin^2\vartheta/2 = 1-y^2$ -in die Energiegleichung einsetzen und erhalten -\[ -\frac12ml^2\dot{\vartheta}^2 + mgly^2 = E. -\] -Durch Multiplizieren mit $\cos^2\frac{\vartheta}{2}=1-y^2$ -erhalten wir auf der linken Seite einen Ausdruck, den wir -als Funktion von $\dot{y}$ ausdrücken können. -Wir erhalten -\begin{align*} -\frac12ml^2 -\cos^2\frac{\vartheta}2 -\dot{\vartheta}^2 -&= -(1-y^2) -(E -mgly^2) -\\ -\frac{1}{4}\cos^2\frac{\vartheta}{2}\dot{\vartheta}^2 -&= -\frac{1}{2} -(1-y^2) -\biggl(\frac{E}{ml^2} -\frac{g}{l}y^2\biggr) -\\ +wählt. +In diesem Fall ist also $y=\operatorname{sn}(u,1/y_0)$ eine Lösung +der Differentialgleichung, wobei $u$ eine lineare Funktion der Zeit +ist. + +Wenn $y_0 \gg 1$ ist, dann ist $k\approx 0$ und die Bewegung ist +entspricht einer gleichförmigen Kreisbewegung. +Je näher $y_0$ an $1$ liegt, desto näher an $1$ ist auch $k$ und +desto grösser wird die Verlangsamung der Bewgung in der Nähe des +Scheitels, das Pendel verweilt sehr lange. +Dies äussert sich in Abbildung~\ref{buch:elliptisch:fig:jacobiplots} +durch die lange Verweildauer der Funktion nahe der Extrema. + +% +% Der Fall E < 2mgl +% +\subsubsection{Der Fall $E<2mgl$} +In diesem Fall ist $y_0<1$ und die +Differentialgleichung~\eqref{buch:elliptisch:mathpendel:y0dgl} +sieht zwar immer noch wie eine Differentialgleichung für +$\operatorname{sn}(u,k)$ aus, aber die Lage der Nullstellen +der rechten Seite ist verkehrt. +Indem wir $y=y_0z$ schreiben, erhalten wir +\begin{equation} \dot{y}^2 -&= -\frac{E}{2ml^2} -(1-y^2)\biggl( -1-\frac{2gml}{E}y^2 -\biggr). -\end{align*} -Dies ist genau die Form der Differentialgleichung für die elliptische -Funktion $\operatorname{sn}(u,k)$ -mit $k^2 = 2gml/E< 1$. - -%% -%% Der Fall E > 2mgl -%% -%\subsection{Der Fall $E > 2mgl$} -%In diesem Fall hat das Pendel im höchsten Punkte immer noch genügend -%kinetische Energie, so dass es sich im Kreise dreht. -%Indem wir die Gleichung - - -%\subsection{Soliton-Lösungen der Sinus-Gordon-Gleichung} - -%\subsection{Nichtlineare Differentialgleichung vierter Ordnung} -%XXX Möbius-Transformation \\ -%XXX Reduktion auf die Differentialgleichung elliptischer Funktionen += +y_0^2 \dot{z}^2 += +(1-y_0^2z^2)(1-z^2). +\end{equation} +Wieder kann durch eine lineare Transformation der Zeit der Faktor $y_0^2$ +auf der linken Seite zum Verschwinden gebracht werden, es bleibt +die Differentialgleichung der Funktion $\operatorname{sn}(u,k)$ +mit $k=y_0$. +Daraus liest man ab, dass $y_0\operatorname{sn}(u,k)$ die Bewegung +des Pendels im oszillatorischen Fall beschreibt, wobei $u$ wieder +eine lineare Funktion der Zeit ist. + +Wenn $y_0\ll 1$ ist, dann ist auch $k$ sehr klein und die lineare +Näherung ist sehr gut, das Pendel verhält sich wie ein harmonischer +Oszillator mit einer Sinus-Schwingung als Lösung. +Für $y_0=k$ nahe an $1$ dagegen erreicht die Schwingung fast den +die maximale Höhe und wird dort sehr langsam. +Dies äussert sich in Abbildung~ +Dies äussert sich in Abbildung~\ref{buch:elliptisch:fig:jacobiplots} +wiederum durch die lange Verweildauer der Funktion nahe der Extrema. + diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/1.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/1.tex index 694f18a..af094c6 100644 --- a/buch/chapters/110-elliptisch/uebungsaufgaben/1.tex +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/1.tex @@ -1,3 +1,4 @@ +\label{buch:elliptisch:aufgabe:1} In einem anharmonische Oszillator oszilliert eine Masse $m$ unter dem Einfluss einer Kraft, die nach dem Gesetz \[ diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/2.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/2.tex new file mode 100644 index 0000000..dbf184a --- /dev/null +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/2.tex @@ -0,0 +1,65 @@ +\label{buch:elliptisch:aufgabe:2}% +Die Landen-Transformation basiert auf der Iteration +\begin{equation} +\begin{aligned} +k_{n+1} +&= +\frac{1-k_n'}{1+k_n'} +& +&\text{und}& +k_{n+1}' +&= +\sqrt{1-k_{n+1}^2} +\end{aligned} +\label{buch:elliptisch:aufgabe:2:iteration} +\end{equation} +mit den Startwerten $k_0 = k$ und $k_0' = \sqrt{1-k_0^2}$. +Zeigen Sie, dass $k_n\to 0$ und $k_n'\to 1$ mit quadratischer Konvergenz. + +\begin{loesung} +\begin{table} +\centering +\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} +\hline +n & k & k'% +\mathstrut\text{\vrule height12pt depth6pt width0pt}% +\\ +\hline +\mathstrut\text{\vrule height12pt depth0pt width0pt}% +0 & 0.200000000000000 & 0.979795897113271 \\ +1 & 0.010205144336438 & 0.999947926158694 \\ +2 & 0.000026037598592 & 0.999999999661022 \\ +3 & 0.000000000169489 & 1.000000000000000 \\ +4 & 0.000000000000000 & 1.000000000000000% +\mathstrut\text{\vrule height0pt depth6pt width0pt}\\ +\hline +\end{tabular} +\caption{Numerisches Experiment zur Folge $(k_n,k_n')$ +gemäss \eqref{buch:elliptisch:aufgabe:2:iteration} +mit $k_0=0.2$ +\label{buch:ellptisch:aufgabe:2:numerisch}} +\end{table} +Es ist klar, dass $k'_n\to 1$ folgt, wenn man zeigen kann, dass +$k_n\to 0$ gilt. +Wir berechnen daher +\begin{align*} +k_{n+1} +&= +\frac{1-k_n'}{1+k_n'} += +\frac{1-\sqrt{1-k_n^2}}{1+\sqrt{1-k_n^2}} +\intertext{und erweitern mit dem Nenner $1+\sqrt{1-k_n^2}$ um} +&= +\frac{1-(1-k_n^2)}{(1+\sqrt{1-k_n^2})^2} += +\frac{ k_n^2 }{(1+\sqrt{1-k_n^2})^2} +\le +k_n^2 +\end{align*} +zu erhalten. +Daraus folgt jetzt sofort die quadratische Konvergenz von $k_n$ gegen $0$. + +Ein einfaches numerisches Experiment (siehe +Tabelle~\ref{buch:ellptisch:aufgabe:2:numerisch}) +bestätigt die quadratische Konvergenz der Folgen. +\end{loesung} diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/3.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/3.tex new file mode 100644 index 0000000..a5d118f --- /dev/null +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/3.tex @@ -0,0 +1,135 @@ +\label{buch:elliptisch:aufgabe:3}% +Aus der in Aufgabe~\ref{buch:elliptisch:aufgabe:2} konstruierten Folge +$k_n$ kann zu einem vorgegebenen $u$ ausserdem die Folge $u_n$ +mit der Rekursionsformel +\[ +u_{n+1} = \frac{u_n}{1+k_{n+1}} +\] +und Anfangswert $u_0=u$ konstruiert werden. +Die Landen-Transformation (siehe \cite[80]{buch:ellfun-applications}) +\index{Landen-Transformation}% +führt auf die folgenden Formeln für die Jacobischen elliptischen Funktionen: +\begin{equation} +\left.\qquad +\begin{aligned} +\operatorname{sn}(u_n,k_n) +&= +\frac{ +(1+k_{n+1})\operatorname{sn}(u_{n+1},k_{n+1}) +}{ +1 + k_{n+1} \operatorname{sn}(u_{n+1},k_{n+1})^2 +} +\\ +\operatorname{cn}(u_n,k_n) +&= +\frac{ +\operatorname{cn}(u_{n+1},k_{n+1}) +\operatorname{dn}(u_{n+1},k_{n+1}) +}{ +1 + k_{n+1} \operatorname{sn}(u_{n+1},k_{n+1})^2 +} +\\ +\operatorname{dn}(u_n,k_n) +&= +\frac{ +1 - k_{n+1} \operatorname{sn}(u_{n+1},k_{n+1})^2 +}{ +1 + k_{n+1} \operatorname{sn}(u_{n+1},k_{n+1})^2 +} +\end{aligned} +\qquad\right\} +\label{buch:elliptisch:aufgabe:3:gauss} +\end{equation} +Die Transformationsformeln +\eqref{buch:elliptisch:aufgabe:3:gauss} +sind auch als Gauss-Transformation bekannt. +\index{Gauss-Transformation}% +Konstruieren Sie daraus einen numerischen Algorithmus, mit dem sich +gleichzeitig die Werte aller drei Jacobischen elliptischen Funktionen +für vorgegebene Parameterwerte $u$ und $k$ berechnen lassen. + +\begin{loesung} +In der ersten Phase des Algorithmus werden die Folgen $k_n$ und $k_n'$ +sowie $u_n$ bis zum Folgenindex $N$ berechnet, bis $k_N\approx 0$ +angenommen werden darf. +Dann gilt +\begin{align*} +\operatorname{sn}(u_N, k_N) &= \operatorname{sn}(u_N,0) = \sin u_N +\\ +\operatorname{cn}(u_N, k_N) &= \operatorname{cn}(u_N,0) = \cos u_N +\\ +\operatorname{dn}(u_N, k_N) &= \operatorname{dn}(u_N,0) = 1. +\end{align*} +In der zweiten Phase des Algorithmus können für absteigende +$n$ jeweils die Formeln~\eqref{buch:elliptisch:aufgabe:3:gauss} +angewendet werden um nacheinander die Werte der Jacobischen +elliptischen Funktionen für Argument $u_n$ und Parameter $k_n$ +für $n=N-1,N-2,\dots,0$ zu bekommen. +\end{loesung} +\begin{table} +\centering +\begin{tikzpicture}[>=latex,thick] +\def\pfeil#1#2{ + \fill[color=#1!30] (-0.5,1) -- (-0.5,-1) -- (-0.8,-1) + -- (0,-1.5) -- (0.8,-1) -- (0.5,-1) -- (0.5,1) -- cycle; + \node[color=white] at (0,-0.2) [scale=5] {\sf #2\strut}; +} +\begin{scope}[xshift=-4.9cm,yshift=0.2cm] +\pfeil{red}{1} +\end{scope} + +\begin{scope}[xshift=-2.3cm,yshift=0.2cm] +\pfeil{red}{1} +\end{scope} + +\begin{scope}[xshift=0.35cm,yshift=-0.3cm,yscale=-1] +\pfeil{blue}{2} +\end{scope} + +\begin{scope}[xshift=2.92cm,yshift=-0.3cm,yscale=-1] +\pfeil{blue}{2} +\end{scope} + +\begin{scope}[xshift=5.60cm,yshift=-0.3cm,yscale=-1] +\pfeil{blue}{2} +\end{scope} + +\node at (0,0) { +\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} +\hline +n & k_n & u_n & \operatorname{sn}(u_n,k_n) & \operatorname{cn}(u_n,k_n) & \operatorname{dn}(u_n,k_n)% +\mathstrut\text{\vrule height12pt depth6pt width0pt} \\ +\hline +\mathstrut\text{\vrule height12pt depth0pt width0pt}% +%\small +0 & 0.90000000000 & 0.60000000000 & 0.54228232286 & 0.84019633556 & 0.87281338478 \\ +1 & 0.39286445838 & 0.43076696830 & 0.41576897816 & 0.90947026163 & 0.98656969610 \\ +2 & 0.04188568608 & 0.41344935827 & 0.40175214109 & 0.91574844642 & 0.99985840483 \\ +3 & 0.00043898784 & 0.41326793867 & 0.40160428679 & 0.91581329801 & 0.99999998445 \\ +4 & 0.00000004817 & 0.41326791876 & 0.40160427056 & 0.91581330513 & 1.00000000000 \\ +5 & 0.00000000000 & 0.41326791876 & 0.40160427056 & 0.91581330513 & 1.00000000000 \\ +%N & 0.00000000000 & 0.41326791876 & 0.40160427056 & 0.91581330513 & 1.00000000000% +N & & 0.41326791876 & \sin u_N & \cos u_N & 1% +%0 & 0.900000000000000 & 0.600000000000000 & 0.542282322869158 & 0.840196335569032 & 0.872813384788490 \\ +%1 & 0.392864458385019 & 0.430766968306220 & 0.415768978168966 & 0.909470261631645 & 0.986569696107075 \\ +%2 & 0.041885686080039 & 0.413449358275499 & 0.401752141098324 & 0.915748446421239 & 0.999858404836479 \\ +%3 & 0.000438987841605 & 0.413267938675096 & 0.401604286793186 & 0.915813298019491 & 0.999999984459261 \\ +%4 & 0.000000048177586 & 0.413267918764845 & 0.401604270565476 & 0.915813305135699 & 1.000000000000000 \\ +%5 & 0.000000000000001 & 0.413267918764845 & 0.401604270565476 & 0.915813305135699 & 1.000000000000000 \\ +%N & 0.000000000000000 & 0.413267918764845 & 0.401604270565476 & 0.915813305135699 & 1.000000000000000 \\ +\mathstrut\text{\vrule height12pt depth6pt width0pt} \\ +\hline +\end{tabular} +}; +\end{tikzpicture} +\caption{Durchführung des auf der Landen-Transformation basierenden +Algorithmus zur Berechnung der Jacobischen elliptischen Funktionen +für $u=0.6$ und $k=0.9$. +Die erste Phase (rot) berechnet die Folgen $k_n$ und $u_n$, die zweite +(blau) +transformiert die Wert der trigonometrischen Funktionen in die Werte +der Jacobischen elliptischen Funktionen. +\label{buch:elliptisch:aufgabe:3:resultate}} +\end{table} + + diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/4.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/4.tex new file mode 100644 index 0000000..8814090 --- /dev/null +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/4.tex @@ -0,0 +1,75 @@ +\label{buch:elliptisch:aufgabe:4} +Es ist bekannt, dass $\operatorname{sn}(K+iK', k) = 1/k$ gilt. +Verwenden Sie den Algorithmus von Aufgabe~\ref{buch:elliptisch:aufgabe:3}, +um dies für $k=\frac12$ nachzurechnen. + +\begin{loesung} +\begin{table} +\centering +\renewcommand{\tabcolsep}{5pt} +\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} +\hline + n & k_n & u_n & \operatorname{sn}(u_n,k_n)% +\mathstrut\text{\vrule height12pt depth6pt width0pt}% +\\ +\hline +\mathstrut\text{\vrule height12pt depth0pt width0pt}% + 0 & 0.500000000000000 & 1.685750354812596 + 2.156515647499643i & 2.000000000000000 \\ + 1 & 0.071796769724491 & 1.572826493259468 + 2.012056490946491i & 3.732050807568877 \\ + 2 & 0.001292026239995 & 1.570796982340579 + 2.009460215619685i & 3.796651109009551 \\ + 3 & 0.000000417333300 & 1.570796326794965 + 2.009459377005374i & 3.796672364209438 \\ + 4 & 0.000000000000044 & 1.570796326794897 + 2.009459377005286i & 3.796672364211658 \\ + N & 0.000000000000000 & 1.570796326794897 + 2.009459377005286i & 3.796672364211658% +\mathstrut\text{\vrule height12pt depth6pt width0pt}% +\\ +\hline +\end{tabular} +\caption{Berechnung von $\operatorname{sn}(K+iK',k)=1/k$ mit Hilfe der Landen-Transformation. +Konvergenz der Folge $k_n$ ist bei $N=5$ eintegreten. +\label{buch:elliptisch:aufgabe:4:table}} +\end{table} +Zunächst müssen wir mit dem Algorithmus des arithmetisch-geometrischen +Mittels +\[ +K(k) +\approx +1.685750354812596 +\qquad\text{und}\qquad +K(k') +\approx +2.156515647499643 +\] +berechnen. +Aus $k=\frac12$ kann man jetzt die Folgen $k_n$ und $u_n$ berechnen, die innert +$N=5$ Iterationen konvergiert. +Sie führt auf +\[ +u_N += +\frac{\pi}2 + 2.009459377005286i += +\frac{\pi}2 + bi. +\] +Jetzt muss der Sinus von $u_N$ berechnet werden. +Dazu verwenden wir die komplexe Darstellung: +\[ +\sin u_N += +\frac{e^{i\frac{\pi}2-b} - e^{-i\frac{\pi}2+b}}{2i} += +\frac{ie^{-b}+ie^{b}}{2i} += +\cosh b += +3.796672364211658. +\] +Da der Wert $\operatorname{sn}(u_N,k_N) = \sin u_N$ reell ist, wird auch +die daraus wie in Aufgabe~\ref{buch:elliptisch:aufgabe:3} +konstruierte Folge $\operatorname{sn}(u_n,k_n)$ reell sein. +Die Werte von $\operatorname{cn}(u_n,k_n)$ und $\operatorname{dn}(u_n,k_n)$ +werden für die Iterationsformeln~\eqref{buch:elliptisch:aufgabe:3:gauss} +für $\operatorname{sn}(u_n,k_n)$ nicht benötigt. +Die Berechnung ist in Tabelle~\ref{buch:elliptisch:aufgabe:4:table} +zusammengefasst. +Man liest ab, dass $\operatorname{sn}(K+iK',k)=2 = 1/k$, wie erwartet. +\end{loesung} diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/5.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/5.tex new file mode 100644 index 0000000..fa018ca --- /dev/null +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/5.tex @@ -0,0 +1,59 @@ +\label{buch:elliptisch:aufgabe:5} +Die sehr schnelle Konvergenz des arithmetisch-geometrische Mittels +kann auch dazu ausgenutzt werden, eine grosse Zahl von Stellen der +Kreiszahl $\pi$ zu berechnen. +Almkvist und Berndt haben gezeigt \cite{buch:almkvist-berndt}, dass +\[ +\pi += +\frac{4 M(1,\!\sqrt{2}/2)^2}{ +\displaystyle 1-\sum_{n=1}^\infty 2^{n+1}(a_n^2-b_n^2) +}. +\] +Verwenden Sie diese Formel, um Approximationen von $\pi$ zu berechnen. + +\begin{loesung} +\begin{table} +\centering +\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} +\hline +n & a_n & b_n & \pi_n% +\mathstrut\text{\vrule height12pt depth6pt width0pt}\\ +\hline +\mathstrut\text{\vrule height12pt depth0pt width0pt}% +0 & 1.000000000000000 & 0.707106781186548 & +\mathstrut\text{\vrule height12pt depth0pt width0pt}\\ +1 & 0.853553390593274 & 0.840896415253715 & 3.\underline{1}87672642712106 \\ +2 & 0.847224902923494 & 0.847201266746892 & 3.\underline{141}680293297648 \\ +3 & 0.847213084835193 & 0.847213084752765 & 3.\underline{141592653}895451 \\ +4 & 0.847213084793979 & 0.847213084793979 & 3.\underline{141592653589}822 \\ +5 & 0.847213084793979 & 0.847213084793979 & 3.\underline{141592653589}871% +\mathstrut\text{\vrule height0pt depth6pt width0pt}\\ +\hline +\infty & & & 3.141592653589793% +\mathstrut\text{\vrule height12pt depth6pt width0pt}\\ +\hline +\end{tabular} +\caption{Approximationen der Kreiszahl $\pi$ mit Hilfe des Algorithmus +des arithmetisch-geometrischen Mittels. +In nur 4 Schritten werden 12 Stellen Genauigkeit erreicht. +\label{buch:elliptisch:aufgabe:5:table}} +\end{table} +Wir schreiben +\[ +\pi_n += +\frac{4 a_k^2}{ +\displaystyle +1-\sum_{k=1}^\infty 2^{k+1}(a_k^2-b_k^2) +} +\] +für die Approximationen von $\pi$, +wobei $a_k$ und $b_k$ die Folgen der arithmetischen und geometrischen +Mittel von $1$ und $\!\sqrt{2}/2$ sind. +Die Tabelle~\ref{buch:elliptisch:aufgabe:5:table} zeigt die Resultat. +In nur 4 Schritten können 12 Stellen Genauigkeit erreicht werden, +dann beginnen jedoch bereits Rundungsfehler das Resultat zu beinträchtigen. +Für die Berechnung einer grösseren Zahl von Stellen muss daher mit +grösserer Präzision gerechnet werden. +\end{loesung} diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/landen.m b/buch/chapters/110-elliptisch/uebungsaufgaben/landen.m new file mode 100644 index 0000000..bba5549 --- /dev/null +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/landen.m @@ -0,0 +1,60 @@ +# +# landen.m +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +N = 10; + +function retval = M(a,b) + for i = (1:10) + A = (a+b)/2; + b = sqrt(a*b); + a = A; + endfor + retval = a; +endfunction; + +function retval = EllipticKk(k) + retval = pi / (2 * M(1, sqrt(1-k^2))); +endfunction + +k = 0.5; +kprime = sqrt(1-k^2); + +EK = EllipticKk(k); +EKprime = EllipticKk(kprime); + +u = EK + EKprime * i; + +K = zeros(N,3); +K(1,1) = k; +K(1,2) = kprime; +K(1,3) = u; + +format long + +for n = (2:N) + K(n,1) = (1-K(n-1,2)) / (1+K(n-1,2)); + K(n,2) = sqrt(1-K(n,1)^2); + K(n,3) = K(n-1,3) / (1 + K(n,1)); +end + +K(:,[1,3]) + +pi / 2 + +scd = zeros(N,3); +scd(N,1) = sin(K(N,3)); +scd(N,2) = cos(K(N,3)); +scd(N,3) = 1; + +for n = (N:-1:2) + nenner = 1 + K(n,1) * scd(n, 1)^2; + scd(n-1,1) = (1+K(n,1)) * scd(n, 1) / nenner; + scd(n-1,2) = scd(n, 2) * scd(n, 3) / nenner; + scd(n-1,3) = (1 - K(n,1) * scd(n,1)^2) / nenner; +end + +scd(:,1) + +cosh(2.009459377005286) diff --git a/buch/chapters/part1.tex b/buch/chapters/part1.tex index bee4416..52b18a0 100644 --- a/buch/chapters/part1.tex +++ b/buch/chapters/part1.tex @@ -35,6 +35,7 @@ %\end{appendices} \vfill \pagebreak + \ifodd\value{page}\else\null\clearpage\fi \lhead{Literatur} \rhead{} diff --git a/buch/chapters/references.bib b/buch/chapters/references.bib index 17ef273..d14a3d2 100644 --- a/buch/chapters/references.bib +++ b/buch/chapters/references.bib @@ -111,3 +111,62 @@ publisher = { Addison-Wesley } } +@online{buch:gmp, + title = {GNU Multiprecision Arithmetic Library}, + DAY = 26, + MONTH = 5, + YEAR = 2022, + url = {https://de.wikipedia.org/wiki/GNU_Multiple_Precision_Arithmetic_Library} +} +@article{buch:pearsondgl, + title = {Orthogonal matrix polynomials, scalar-type Rordigues' formulas and Pearson equations}, + author = { Antonio J. Dur\'an and F. Alberto Grünbaum }, + year = 2005, + journal = { Journal of Approximation theory }, + volume = 134, + pages = {267-280} +} + +@book{buch:specialfunctions, + author = { George E. Andrews and Richard Askey and Ranjan Roy }, + title = { Special Functions }, + series = { Encyclopedia of Mathematics and its applications }, + volume = { 71 }, + publisher = { Cambridge University Press }, + ISBN = { 0-521-78988-5 }, + year = 2004 +} + +@book{buch:ellfun-applications, + author = { Derek F. Lawden }, + title = { Elliptic Functions and Applications }, + series = { Applied Mathematical Sciences }, + volume = { 80 }, + publisher = { Springer-Verlag }, + year = 2010, + ISBN = { 978-1-4419-3090-3 } +} + +@article{buch:almkvist-berndt, + author = { Gert Almkvist und Bruce Berndt }, + title = { Gauss, Landen, Ramanjujan, the Arithmetic-Geometric Mean, Ellipses $\pi$, and the {\em Ladies Diary} }, + journal = { The American Mathematical Monthly }, + volume = { 95 }, + pages = { 585--608 }, + year = 1988 +} + +@book{buch:schwalm, + author = { William A. Schwalm }, + title = { Lectures on Selected Topics in Mathematical Physics: Elliptic Functions and Elliptic Integrals }, + publisher = { IOP Science }, + year = 2015, + ISBN = { 978-1-6817-4166-6 } +} + +@misc{buch:schwalm-youtube, + author = { William A. Schwalm }, + title = { Elliptic Functions and Elliptic Integrals }, + howpublished = { \url{https://youtu.be/DCXItCajCyo} }, + year = 2018 +} diff --git a/buch/common/packages.tex b/buch/common/packages.tex index 2ab2ad8..eef17c1 100644 --- a/buch/common/packages.tex +++ b/buch/common/packages.tex @@ -43,6 +43,7 @@ \usepackage{wasysym} \usepackage{environ} \usepackage{appendix} +\usepackage{wrapfig} \usepackage{placeins} \usepackage[all]{xy} \usetikzlibrary{calc,intersections,through,backgrounds,graphs,positioning,shapes,arrows,fit,math} diff --git a/buch/common/teilnehmer.tex b/buch/common/teilnehmer.tex index c14790a..c1408cb 100644 --- a/buch/common/teilnehmer.tex +++ b/buch/common/teilnehmer.tex @@ -11,20 +11,20 @@ Fabian Dünki%, % E \\ %Robin Eberle, % E Enez Erdem, % B -Nilakshan Eswararajah, % B -Réda Haddouche%, % E -\\ +%Nilakshan Eswararajah, % B +Réda Haddouche, % E David Hugentobler, % E -Alain Keller, % E -Yanik Kuster, % E -Marc Kühne%, % B +Alain Keller%, % E \\ +Yanik Kuster, % E +Marc Kühne, % B Erik Löffler, % E -Kevin Meili, % M-I -Andrea Mozzini Vellen%, % E +Kevin Meili%, % M-I \\ +Andrea Mozzini Vellen, % E Patrik Müller, % MSE -Naoki Pross, % E +Naoki Pross%, % E +\\ Thierry Schwaller, % E Tim Tönz % E diff --git a/buch/papers/dreieck/main.tex b/buch/papers/dreieck/main.tex index 75ba410..d7bc769 100644 --- a/buch/papers/dreieck/main.tex +++ b/buch/papers/dreieck/main.tex @@ -3,19 +3,21 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Dreieckstest und Beta-Funktion\label{chapter:dreieck}} -\lhead{Dreieckstest und Beta-Funktion} +\chapter{$\int P(t) e^{-t^2} \,dt$ in geschlossener Form? +\label{chapter:dreieck}} +\lhead{Integrierbarkeit in geschlossener Form} \begin{refsection} \chapterauthor{Andreas Müller} \noindent -Mit dem Dreieckstest kann man feststellen, wie gut ein Geruchs- -oder Geschmackstester verschiedene Gerüche oder Geschmäcker -unterscheiden kann. -Seine wahrscheinlichkeitstheoretische Erklärung benötigt die Beta-Funktion, -man kann die Beta-Funktion als durchaus als die mathematische Grundlage -der Weindegustation -bezeichnen. +Der Risch-Algorithmus erlaubt, eine definitive Antwort darauf zu geben, +\index{Risch-Algorithmus}% +\index{elementare Stammfunktion}% +ob eine elementare Funktion eine Stammfunktion in geschlossener Form hat. +Der Algorithmus ist jedoch ziemlich kompliziert. +In diesem Kapitel soll ein spezieller Fall mit Hilfe der Theorie der +orthogonale Polynome, speziell der Hermite-Polynome, behandelt werden, +wie er in der Arbeit \cite{dreieck:polint} untersucht wurde. \input{papers/dreieck/teil0.tex} \input{papers/dreieck/teil1.tex} diff --git a/buch/papers/dreieck/references.bib b/buch/papers/dreieck/references.bib index d2bbe08..47bd865 100644 --- a/buch/papers/dreieck/references.bib +++ b/buch/papers/dreieck/references.bib @@ -4,32 +4,12 @@ % (c) 2020 Autor, Hochschule Rapperswil % -@online{dreieck:bibtex, - title = {BibTeX}, - url = {https://de.wikipedia.org/wiki/BibTeX}, - date = {2020-02-06}, - year = {2020}, - month = {2}, - day = {6} +@article{dreieck:polint, + author = { George Stoica }, + title = { Polynomials and Integration in Finite Terms }, + journal = { Amer. Math. Monthly }, + volume = 129, + year = 2022, + number = 1, + pages = {80--81} } - -@book{dreieck:numerical-analysis, - title = {Numerical Analysis}, - author = {David Kincaid and Ward Cheney}, - publisher = {American Mathematical Society}, - year = {2002}, - isbn = {978-8-8218-4788-6}, - inseries = {Pure and applied undegraduate texts}, - volume = {2} -} - -@article{dreieck:mendezmueller, - author = { Tabea Méndez and Andreas Müller }, - title = { Noncommutative harmonic analysis and image registration }, - journal = { Appl. Comput. Harmon. Anal.}, - year = 2019, - volume = 47, - pages = {607--627}, - url = {https://doi.org/10.1016/j.acha.2017.11.004} -} - diff --git a/buch/papers/dreieck/teil0.tex b/buch/papers/dreieck/teil0.tex index bcf2cf8..f9affe7 100644 --- a/buch/papers/dreieck/teil0.tex +++ b/buch/papers/dreieck/teil0.tex @@ -3,7 +3,48 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Testprinzip\label{dreieck:section:testprinzip}} -\rhead{Testprinzip} +\section{Problemstellung\label{dreieck:section:problemstellung}} +\rhead{Problemstellung} +Es ist bekannt, dass das Fehlerintegral +\[ +\frac{1}{\sqrt{2\pi}\sigma} \int_{-\infty}^x e^{-\frac{t^2}{2\sigma}}\,dt +\] +nicht in geschlossener Form dargestellt werden kann. +Mit der in Kapitel~\ref{buch:chapter:integral} skizzierten Theorie von +Liouville und dem Risch-Algorithmus kann dies strengt gezeigt werden. +Andererseits gibt es durchaus Integranden, die $e^{-t^2}$ enthalten, +für die eine Stammfunktion in geschlossener Form gefunden werden kann. +Zum Beispiel folgt aus der Ableitung +\[ +\frac{d}{dt} e^{-t^2} += +-2te^{-t^2} +\] +die Stammfunktion +\[ +\int te^{-t^2}\,dt += +-\frac12 e^{-t^2}. +\] +Leitet man $e^{-t^2}$ zweimal ab, erhält man +\[ +\frac{d^2}{dt^2} e^{-t^2} += +(4t^2-2) e^{-t^2} +\qquad\Rightarrow\qquad +\int (t^2-{\textstyle\frac12}) e^{-t^2}\,dt += +{\textstyle\frac14} +e^{-t^2}. +\] +Es gibt also viele weitere Polynome $P(t)$, für die der Integrand +$P(t)e^{-t^2}$ eine Stammfunktion in geschlossener Form hat. +Damit stellt sich jetzt das folgende allgemeine Problem. + +\begin{problem} +\label{dreieck:problem} +Für welche Polynome $P(t)$ hat der Integrand $P(t)e^{-t^2}$ +eine elementare Stammfunktion? +\end{problem} diff --git a/buch/papers/dreieck/teil1.tex b/buch/papers/dreieck/teil1.tex index 4abe2e1..45c1a23 100644 --- a/buch/papers/dreieck/teil1.tex +++ b/buch/papers/dreieck/teil1.tex @@ -3,9 +3,92 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Ordnungsstatistik und Beta-Funktion -\label{dreieck:section:ordnungsstatistik}} -\rhead{} +\section{Hermite-Polynome +\label{dreieck:section:hermite-polynome}} +\rhead{Hermite-Polyome} +In Abschnitt~\ref{dreieck:section:problemstellung} hat sich schon angedeutet, +dass die Polynome, die man durch Ableiten von $e^{-t^2}$ erhalten +kann, bezüglich des gestellten Problems besondere Eigenschaften +haben. +Zunächst halten wir fest, dass die Ableitung einer Funktion der Form +$P(t)e^{-t^2}$ mit einem Polynom $P(t)$ +\begin{equation} +\frac{d}{dt} P(t)e^{-t^2} += +P'(t)e^{-t^2} -2tP(t)e^{-t^2} += +(P'(t)-2tP(t)) e^{-t^2} +\label{dreieck:eqn:ableitung} +\end{equation} +ist. +Insbesondere hat die Ableitung wieder die Form $Q(t)e^{-t^2}$ +mit einem Polynome $Q(t)$, welches man auch als +\[ +Q(t) += +e^{t^2}\frac{d}{dt}P(t)e^{-t^2} +\] +erhalten kann. +Die Polynome, die man aus der Funktion $H_0(t)=e^{-t^2}$ durch +Ableiten erhalten kann, wurden bereits in +Abschnitt~\ref{buch:orthogonalitaet:section:rodrigues} +bis auf ein Vorzeichen hergeleitet, sie heissen die Hermite-Polynome +\index{Hermite-Polynome}% +und es gilt +\[ +H_n(t) += +(-1)^n +e^{t^2} \frac{d^n}{dt^n} e^{-t^2}. +\] +Das Vorzeichen dient dazu sicherzustellen, dass der Leitkoeffizient +immer $1$ ist. +Das Polynom $H_n(t)$ hat den Grad $n$. + +In Abschnitt wurde auch gezeigt, dass die Polynome $H_n(t)$ +bezüglich des Skalarproduktes +\[ +\langle f,g\rangle_{w} += +\int_{-\infty}^\infty f(t)g(t)e^{-t^2}\,dt, +\qquad +w(t)=e^{-t^2}, +\] +orthogonal sind. +Ausserdem folgt aus \eqref{dreieck:eqn:ableitung} +die Rekursionsbeziehung +\begin{equation} +H_{n}(t) += +2tH_{n-1}(t) +- +H_{n-1}'(t) +\label{dreieck:eqn:rekursion} +\end{equation} +für $n>0$. + +Im Hinblick auf die Problemstellung ist jetzt die Frage interessant, +ob die Integranden $H_n(t)e^{-t^2}$ eine Stammfunktion in geschlossener +Form haben. +Mit Hilfe der Rekursionsbeziehung~\eqref{dreieck:eqn:rekursion} +kann man für $n>0$ unmittelbar verifizieren, dass +\begin{align*} +\int H_n(t)e^{-t^2}\,dt +&= +\int \bigl( 2tH_{n-1}(t) - H'_{n-1}(t)\bigr)e^{-t^2}\,dt +\\ +&= +-\int \bigl( \exp'(-t^2) H_{n-1}(t) + H'_{n-1}(t)\bigr)e^{-t^2}\,dt +\\ +&= +-\int \bigl( e^{-t^2}H_{n-1}(t)\bigr)' \,dt += +-e^{-t^2}H_{n-1}(t) +\end{align*} +ist. +Für $n>0$ hat also $H_n(t)e^{-t^2}$ eine elementare Stammfunktion. +Die Hermite-Polynome sind also Lösungen für das +Problem~\ref{dreieck:problem}. diff --git a/buch/papers/dreieck/teil2.tex b/buch/papers/dreieck/teil2.tex index 83ea3cb..8e89f6a 100644 --- a/buch/papers/dreieck/teil2.tex +++ b/buch/papers/dreieck/teil2.tex @@ -3,7 +3,113 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Wahrscheinlichkeiten im Dreieckstest -\label{dreieck:section:wahrscheinlichkeiten}} -\rhead{Wahrscheinlichkeiten} +\section{Beliebige Polynome +\label{dreieck:section:beliebig}} +\rhead{Beliebige Polynome} +Im Abschnitt~\ref{dreieck:section:hermite-polynome} wurden die +Hermite-Polynome $H_n(t)$ mit $n>0$ als Lösungen des gestellten +Problems erkannt. +Eine Linearkombination von solchen Polynomen hat natürlich +ebenfalls eine elementare Stammfunktion. +Das Problem kann daher neu formuliert werden: + +\begin{problem} +\label{dreieck:problem2} +Welche Polynome $P(t)$ lassen sich aus den Hermite-Polynomen +$H_n(t)$ mit $n>0$ linear kombinieren? +\end{problem} + +Sei also +\[ +P(t) = p_0 + p_1t + \ldots + p_{n-1}t^{n-1} + p_nt^n +\] +ein beliebiges Polynom vom Grad $n$. +Eine elementare Stammfunktion von $P(t)e^{-t^2}$ existiert sicher, +wenn sich $P(t)$ aus den Funktionen $H_n(t)$ mit $n>0$ linear +kombinieren lässt. +Gesucht ist also zunächst eine Darstellung von $P(t)$ als Linearkombination +von Hermite-Polynomen. + +\begin{lemma} +Jedes Polynome $P(t)$ vom Grad $n$ lässt sich auf eindeutige Art und +Weise als Linearkombination +\begin{equation} +P(t) = a_0H_0(t) + a_1H_1(t) + \ldots + a_nH_n(t) += +\sum_{k=0}^n a_nH_n(t) +\label{dreieck:lemma} +\end{equation} +von Hermite-Polynomen schreiben. +\end{lemma} + +\begin{proof}[Beweis] +Zunächst halten wir fest, dass aus der +Rekursionsformel~\eqref{dreieck:eqn:rekursion} +folgt, dass der Leitkoeffizient bei jedem Rekursionsschnitt +mit $2$ multipliziert wird. +Der Leitkoeffizient von $H_n(t)$ ist also $2^n$. + +Wir führen den Beweis mit vollständiger Induktion. +Für $n=0$ ist $P(t)=p_0 = p_0 H_0(t)$ als Linearkombination von +Hermite-Polynomen darstellbar, dies ist die Induktionsverankerung. + +Wir nehmen jetzt im Sinne der Induktionsannahme an, +dass sich ein Polynom vom Grad $n-1$ als +Linearkombination der Polynome $H_0(t),\dots,H_{n-1}(t)$ schreiben +lässt und untersuchen ein Polynom $P(t)$ vom Grad $n$. +Da der Leitkoeffizient des Polynoms $H_n(t)$ ist $2^n$, ist zerlegen +wir +\[ +P(t) += +\underbrace{\biggl(P(t) - \frac{p_n}{2^n} H_n(t)\biggr)}_{\displaystyle = Q(t)} ++ +\frac{p_n}{2^n} H_n(t). +\] +Das Polynom $Q(t)$ hat Grad $n-1$, besitzt also nach Induktionsannahme +eine Darstellung +\[ +Q(t) = a_0H_0(t)+a_1H_1(t)+\ldots+a_{n-1}H_{n-1}(t) +\] +als Linearkombination der Polynome $H_0(t),\dots,H_{n-1}(t)$. +Somit ist +\[ +P(t) += a_0H_0(t)+a_1H_1(t)+\ldots+a_{n-1}H_{n-1}(t) + +\frac{p_n}{2^n} H_n(t) +\] +eine Darstellung von $P(t)$ als Linearkombination der Polynome +$H_0(t),\dots,H_n(t)$. +Damit ist der Induktionsschritt vollzogen und das Lemma für alle +$n$ bewiesen. +\end{proof} + +\begin{satz} +\label{dreieck:satz1} +Die Funktion $P(t)e^{-t^2}$ hat genau dann eine elementare Stammfunktion, +wenn in der Darstellung~\eqref{dreieck:lemma} +von $P(t)$ als Linearkombination von Hermite-Polynomen $a_0=0$ gilt. +\end{satz} + +\begin{proof}[Beweis] +Es ist +\begin{align*} +\int P(t)e^{-t^2}\,dt +&= +a_0\int e^{-t^2}\,dt ++ +\int +\sum_{k=1} a_kH_k(t)\,dt +\\ +&= +a_0 +\frac{\sqrt{\pi}}2 +\operatorname{erf}(t) ++ +\sum_{k=1} a_k\int H_k(t)\,dt. +\end{align*} +Da die Integrale in der Summe alle elementar darstellbar sind, +ist das Integral genau dann elementar, wenn $a_0=0$ ist. +\end{proof} + diff --git a/buch/papers/dreieck/teil3.tex b/buch/papers/dreieck/teil3.tex index e2dfd6b..c0c046a 100644 --- a/buch/papers/dreieck/teil3.tex +++ b/buch/papers/dreieck/teil3.tex @@ -3,8 +3,75 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Erweiterungen -\label{dreieck:section:erweiterungen}} -\rhead{Erweiterungen} +\section{Integralbedingung +\label{dreieck:section:integralbedingung}} +\rhead{Lösung} +Die Tatsache, dass die Hermite-Polynome orthogonal sind, erlaubt, das +Kriterium von Satz~\ref{dreieck:satz1} in einer besonders attraktiven +Integralform zu formulieren. + +Aus den Polynomen $H_n(t)$ lassen sich durch Normierung die +\index{orthogonale Polynome}% +\index{Polynome, orthogonale}% +orthonormierten Polynome +\[ +\tilde{H}_n(t) += +\frac{1}{\| H_n\|_w} H_n(t) +\qquad\text{mit}\quad +\|H_n\|_w^2 += +\int_{-\infty}^\infty H_n(t)e^{-t^2}\,dt +\] +bilden. +Da diese Polynome eine orthonormierte Basis des Vektorraums der Polynome +bilden, kann die gesuchte Zerlegung eines Polynoms $P(t)$ auch mit +Hilfe des Skalarproduktes gefunden werden: +\begin{align*} +P(t) +&= +\sum_{k=1}^n +\langle \tilde{H}_k, P\rangle_w +\tilde{H}_k(t) += +\sum_{k=1}^n +\biggl\langle \frac{H_k}{\|H_k\|_w}, P\biggr\rangle_w +\frac{H_k(t)}{\|H_k\|_w} += +\sum_{k=1}^n +\underbrace{ +\frac{ \langle H_k, P\rangle_w }{\|H_k\|_w^2} +}_{\displaystyle =a_k} +H_k(t). +\end{align*} +Die Darstellung von $P(t)$ als Linearkombination von Hermite-Polynomen +hat somit die Koeffizienten +\[ +a_k = \frac{\langle H_k,P\rangle_w}{\|H_k\|_w^2}. +\] +Aus dem Kriterium $a_0=0$ dafür, dass eine elementare Stammfunktion +von $P(t)e^{-t^2}$ existiert, wird daher die Bedingung, dass +$\langle H_0,P\rangle_w=0$ ist. +Da $H_0(t)=1$ ist, folgt als Bedingung +\[ +a_0 += +\langle H_0,P\rangle_w += +\int_{-\infty}^\infty P(t) e^{-t^2}\,dt += +0. +\] + +\begin{satz} +Ein Integrand der Form $P(t)e^{-t^2}$ mit einem Polynom $P(t)$ +hat genau dann eine elementare Stammfunktion, wenn +\[ +\int_{-\infty}^\infty P(t)e^{-t^2}\,dt = 0 +\] +ist. +\end{satz} + + diff --git a/buch/papers/ellfilter/Makefile.inc b/buch/papers/ellfilter/Makefile.inc index 8f20278..97e4089 100644 --- a/buch/papers/ellfilter/Makefile.inc +++ b/buch/papers/ellfilter/Makefile.inc @@ -3,12 +3,11 @@ # # (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule # -dependencies-ellfilter = \ - papers/ellfilter/packages.tex \ - papers/ellfilter/main.tex \ - papers/ellfilter/references.bib \ - papers/ellfilter/teil0.tex \ - papers/ellfilter/teil1.tex \ - papers/ellfilter/teil2.tex \ - papers/ellfilter/teil3.tex - +dependencies-ellfilter = \ + papers/ellfilter/packages.tex \ + papers/ellfilter/main.tex \ + papers/ellfilter/references.bib \ + papers/ellfilter/einleitung.tex \ + papers/ellfilter/tschebyscheff.tex \ + papers/ellfilter/jacobi.tex \ + papers/ellfilter/elliptic.tex diff --git a/buch/papers/ellfilter/einleitung.tex b/buch/papers/ellfilter/einleitung.tex new file mode 100644 index 0000000..37fd89f --- /dev/null +++ b/buch/papers/ellfilter/einleitung.tex @@ -0,0 +1,56 @@ +\section{Einleitung} + +% Lineare filter + +% Filter, Signalverarbeitung + + +Der womöglich wichtigste Filtertyp ist das Tiefpassfilter. +Dieses soll im Durchlassbereich unter der Grenzfrequenz $\Omega_p$ unverstärkt durchlassen und alle anderen Frequenzen vollständig auslöschen. + +% Bei der Implementierung von Filtern + +In der Elektrotechnik führen Schaltungen mit linearen Bauelementen wie Kondensatoren, Spulen und Widerständen immer zu linearen zeitinvarianten Systemen (LTI-System von englich \textit{time-invariant system}). +Die Übertragungsfunktion im Frequenzbereich $|H(\Omega)|$ eines solchen Systems ist dabei immer eine rationale Funktion, also eine Division von zwei Polynomen. +Die Polynome habe dabei immer reelle oder komplex-konjugierte Nullstellen. + + +\begin{equation} \label{ellfilter:eq:h_omega} + | H(\Omega)|^2 = \frac{1}{1 + \varepsilon_p^2 F_N^2(w)}, \quad w=\frac{\Omega}{\Omega_p} +\end{equation} + +$\Omega = 2 \pi f$ ist die analoge Frequenz + + +% Linear filter +Damit das Filter implementierbar und stabil ist, muss $H(\Omega)^2$ eine rationale Funktion sein, deren Nullstellen und Pole auf der linken Halbebene liegen. + +$N \in \mathbb{N} $ gibt dabei die Ordnung des Filters vor, also die maximale Anzahl Pole oder Nullstellen. + +Damit ein Filter die Passband Kondition erfüllt muss $|F_N(w)| \leq 1 \forall |w| \leq 1$ und für $|w| \geq 1$ sollte die Funktion möglichst schnell divergieren. +Eine einfaches Polynom, dass das erfüllt, erhalten wir wenn $F_N(w) = w^N$. +Tatsächlich erhalten wir damit das Butterworth Filter, wie in Abbildung \ref{ellfilter:fig:butterworth} ersichtlich. +\begin{figure} + \centering + \input{papers/ellfilter/python/F_N_butterworth.pgf} + \caption{$F_N$ für Butterworth filter. Der grüne Bereich definiert die erlaubten Werte für alle $F_N$-Funktionen.} + \label{ellfilter:fig:butterworth} +\end{figure} + +wenn $F_N(w)$ eine rationale Funktion ist, ist auch $H(\Omega)$ eine rationale Funktion und daher ein lineares Filter. %proof? + +\begin{align} + F_N(w) & = + \begin{cases} + w^N & \text{Butterworth} \\ + T_N(w) & \text{Tschebyscheff, Typ 1} \\ + [k_1 T_N (k^{-1} w^{-1})]^{-1} & \text{Tschebyscheff, Typ 2} \\ + R_N(w, \xi) & \text{Elliptisch (Cauer)} \\ + \end{cases} +\end{align} + +Mit der Ausnahme vom Butterworth filter sind alle Filter nach speziellen Funktionen benannt. +Alle diese Filter sind optimal für unterschiedliche Anwendungsgebiete. +Das Butterworth-Filter, zum Beispiel, ist maximal flach im Durchlassbereich. +Das Tschebyscheff-1 Filter sind maximal steil für eine definierte Welligkeit im Durchlassbereich, währendem es im Sperrbereich monoton abfallend ist. +Es scheint so als sind gewisse Eigenschaften dieser speziellen Funktionen verantwortlich für die Optimalität dieser Filter. diff --git a/buch/papers/ellfilter/elliptic.tex b/buch/papers/ellfilter/elliptic.tex new file mode 100644 index 0000000..88bfbfe --- /dev/null +++ b/buch/papers/ellfilter/elliptic.tex @@ -0,0 +1,92 @@ +\section{Elliptische rationale Funktionen} + +Kommen wir nun zum eigentlichen Teil dieses Papers, den elliptischen rationalen Funktionen +\begin{align} + R_N(\xi, w) &= \cd \left(N~f_1(\xi)~\cd^{-1}(w, 1/\xi), f_2(\xi)\right) \\ + &= \cd \left(N~\frac{K_1}{K}~\cd^{-1}(w, k), k_1)\right) , \quad k= 1/\xi, k_1 = 1/f(\xi) \\ + &= \cd \left(N~K_1~z , k_1 \right), \quad w= \cd(z K, k) +\end{align} + + +sieht ähnlich aus wie die trigonometrische Darstellung der Tschebyschef-Polynome \eqref{ellfilter:eq:chebychef_polynomials} +Anstelle vom Kosinus kommt hier die $\cd$-Funktion zum Einsatz. +Die Ordnungszahl $N$ kommt auch als Faktor for. +Zusätzlich werden noch zwei verschiedene elliptische Module $k$ und $k_1$ gebraucht. + + + +Sinus entspricht $\sn$ + +Damit die Nullstellen an ähnlichen Positionen zu liegen kommen wie bei den Tschebyscheff-Polynomen, muss die $\cd$-Funktion gewählt werden. + +Die $\cd^{-1}(w, k)$-Funktion ist um $K$ verschoben zur $\sn^{-1}(w, k)$-Funktion, wie ersichtlich in Abbildung \ref{ellfilter:fig:cd}. +\begin{figure} + \centering + \input{papers/ellfilter/tikz/cd.tikz.tex} + \caption{ + $z$-Ebene der Funktion $z = \sn^{-1}(w, k)$. + Die Funktion ist in der realen Achse $4K$-periodisch und in der imaginären Achse $2jK^\prime$-periodisch. + } + \label{ellfilter:fig:cd} +\end{figure} +Auffallend ist, dass sich alle Nullstellen und Polstellen um $K$ verschoben haben. + +Durch das Konzept vom fundamentalen Rechteck, siehe Abbildung \ref{ellfilter:fig:fundamental_rectangle} können für alle inversen Jaccobi elliptischen Funktionen die Positionen der Null- und Polstellen anhand eines Diagramms ermittelt werden. +Der erste Buchstabe bestimmt die Position der Nullstelle und der zweite Buchstabe die Polstelle. +\begin{figure} + \centering + \input{papers/ellfilter/tikz/fundamental_rectangle.tikz.tex} + \caption{ + Fundamentales Rechteck der inversen Jaccobi elliptischen Funktionen. + } + \label{ellfilter:fig:fundamental_rectangle} +\end{figure} + +Auffallend an der $w = \sn(z, k)$-Funktion ist, dass sich $w$ auf der reellen Achse wie der Kosinus immer zwischen $-1$ und $1$ bewegt, während bei $\mathrm{Im(z) = K^\prime}$ die Werte zwischen $\pm 1/k$ und $\pm \infty$ verlaufen. +Die Funktion hat also Equirippel-Verhalten um $w=0$ und um $w=\pm \infty$. +Falls es möglich ist diese Werte abzufahren im Sti der Tschebyscheff-Polynome, kann ein Filter gebaut werden, dass Equirippel-Verhalten im Durchlass- und Sperrbereich aufweist. + + + +Analog zu Abbildung \ref{ellfilter:fig:arccos2} können wir auch bei den elliptisch rationalen Funktionen die komplexe $z$-Ebene betrachten, wie ersichtlich in Abbildung \ref{ellfilter:fig:cd2}, um die besser zu verstehen. +\begin{figure} + \centering + \input{papers/ellfilter/tikz/cd2.tikz.tex} + \caption{ + $z_1$-Ebene der elliptischen rationalen Funktionen. + Je grösser die Ordnung $N$ gewählt wird, desto mehr Nullstellen passiert. + } + \label{ellfilter:fig:cd2} +\end{figure} +% Da die $\cd^{-1}$-Funktion + + + +\begin{figure} + \centering + \input{papers/ellfilter/python/F_N_elliptic.pgf} + \caption{$F_N$ für ein elliptischs filter.} + \label{ellfilter:fig:elliptic} +\end{figure} + +\subsection{Degree Equation} + +Der $\cd^{-1}$ Term muss so verzogen werden, dass die umgebene $\cd$-Funktion die Nullstellen und Pole trifft. +Dies trifft ein wenn die Degree Equation erfüllt ist. + +\begin{equation} + N \frac{K^\prime}{K} = \frac{K^\prime_1}{K_1} +\end{equation} + + +Leider ist das lösen dieser Gleichung nicht trivial. +Die Rechnung wird in \ref{ellfilter:bib:orfanidis} im Detail angeschaut. + + +\subsection{Polynome?} + +Bei den Tschebyscheff-Polynomen haben wir gesehen, dass die Trigonometrische Formel zu einfachen Polynomen umgewandelt werden kann. +Im gegensatz zum $\cos^{-1}$ hat der $\cd^{-1}$ nicht nur Nullstellen sondern auch Pole. +Somit entstehen bei den elliptischen rationalen Funktionen, wie es der name auch deutet, rationale Funktionen, also ein Bruch von zwei Polynomen. + +Da Transformationen einer rationalen Funktionen mit Grundrechenarten, wie es in \eqref{ellfilter:eq:h_omega} der Fall ist, immer noch rationale Funktionen ergeben, stellt dies kein Problem für die Implementierung dar. diff --git a/buch/papers/ellfilter/jacobi.tex b/buch/papers/ellfilter/jacobi.tex new file mode 100644 index 0000000..6a208fa --- /dev/null +++ b/buch/papers/ellfilter/jacobi.tex @@ -0,0 +1,189 @@ +\section{Jacobische elliptische Funktionen} + +%TODO $z$ or $u$ for parameter? + +Für das elliptische Filter wird statt der, für das Tschebyscheff-Filter benutzen Kreis-Trigonometrie die elliptischen Funktionen gebraucht. +Der Begriff elliptische Funktion wird für sehr viele Funktionen gebraucht, daher ist es hier wichtig zu erwähnen, dass es ausschliesslich um die Jacobischen elliptischen Funktionen geht. + +Im Wesentlichen erweitern die Jacobi elliptischen Funktionen die trigonometrische Funktionen für Ellipsen. +Zum Beispiel gibt es analog zum Sinus den elliptischen $\sn(z, k)$. +Im Gegensatz zum den trigonometrischen Funktionen haben die elliptischen Funktionen zwei parameter. +Zum einen gibt es den \textit{elliptische Modul} $k$, der die Exzentrizität der Ellipse parametrisiert. +Zum andern das Winkelargument $z$. +Im Kreis ist der Radius für alle Winkel konstant, bei Ellipsen ändert sich das. +Dies hat zur Folge, dass bei einer Ellipse die Kreisbodenstrecke nicht linear zum Winkel verläuft. +Darum kann hier nicht der gewohnte Winkel verwendet werden. +Das Winkelargument $z$ kann durch das elliptische Integral erster Art +\begin{equation} + z + = + F(\phi, k) + = + \int_{0}^{\phi} + \frac{ + d\theta + }{ + \sqrt{ + 1-k^2 \sin^2 \theta + } + } + = + \int_{0}^{\phi} + \frac{ + dt + }{ + \sqrt{ + (1-t^2)(1-k^2 t^2) + } + } %TODO which is right? are both functions from phi? +\end{equation} +mit dem Winkel $\phi$ in Verbindung liegt. + +Dabei wird das vollständige und unvollständige Elliptische integral unterschieden. +Beim vollständigen Integral +\begin{equation} + K(k) + = + \int_{0}^{\pi / 2} + \frac{ + d\theta + }{ + \sqrt{ + 1-k^2 \sin^2 \theta + } + } +\end{equation} +wird über ein viertel Ellipsenbogen integriert also bis $\phi=\pi/2$ und liefert das Winkelargument für eine Vierteldrehung. +Die Zahl wird oft auch abgekürzt mit $K = K(k)$ und ist für das elliptische Filter sehr relevant. +Alle elliptishen Funktionen sind somit $4K$-periodisch. + +Neben dem $\sn$ gibt es zwei weitere basis-elliptische Funktionen $\cn$ und $\dn$. +Dazu kommen noch weitere abgeleitete Funktionen, die durch Quotienten und Kehrwerte dieser Funktionen zustande kommen. +Insgesamt sind es die zwölf Funktionen +\begin{equation*} + \sn \quad + \ns \quad + \scelliptic \quad + \sd \quad + \cn \quad + \nc \quad + \cs \quad + \cd \quad + \dn \quad + \nd \quad + \ds \quad + \dc. +\end{equation*} + +Die Jacobischen elliptischen Funktionen können mit der inversen Funktion des kompletten elliptischen Integrals erster Art +\begin{equation} + \phi = F^{-1}(z, k) +\end{equation} +definiert werden. Dabei ist zu beachten dass nur das $z$ Argument der Funktion invertiert wird, also +\begin{equation} + z = F(\phi, k) + \Leftrightarrow + \phi = F^{-1}(z, k). +\end{equation} +Mithilfe von $F^{-1}$ kann zum Beispiel $sn^{-1}$ mit dem Elliptischen integral dargestellt werden: +\begin{equation} + \sin(\phi) + = + \sin \left( F^{-1}(z, k) \right) + = + \sn(z, k) + = + w +\end{equation} + +\begin{equation} + \phi + = + F^{-1}(z, k) + = + \sin^{-1} \big( \sn (z, k ) \big) + = + \sin^{-1} ( w ) +\end{equation} + +\begin{equation} + F(\phi, k) + = + z + = + F( \sin^{-1} \big( \sn (z, k ) \big) , k) + = + F( \sin^{-1} ( w ), k) +\end{equation} + +\begin{equation} + \sn^{-1}(w, k) + = + F(\phi, k), + \quad + \phi = \sin^{-1}(w) +\end{equation} + +\begin{align} + \sn^{-1}(w, k) + & = + \int_{0}^{\phi} + \frac{ + d\theta + }{ + \sqrt{ + 1-k^2 \sin^2 \theta + } + }, + \quad + \phi = \sin^{-1}(w) + \\ + & = + \int_{0}^{w} + \frac{ + dt + }{ + \sqrt{ + (1-t^2)(1-k^2 t^2) + } + } +\end{align} + +Beim $\cos^{-1}(x)$ haben wir gesehen, dass die analytische Fortsetzung bei $x < -1$ und $x > 1$ rechtwinklig in die Komplexen zahlen wandert. +Wenn man das gleiche mit $\sn^{-1}(w, k)$ macht, erkennt man zwei interessante Stellen. +Die erste ist die gleiche wie beim $\cos^{-1}(x)$ nämlich bei $t = \pm 1$. +Der erste Term unter der Wurzel wird dann negativ, während der zweite noch positiv ist, da $k \leq 1$. +\begin{equation} + \frac{ + 1 + }{ + \sqrt{ + (1-t^2)(1-k^2 t^2) + } + } + \in \mathbb{R} + \quad \forall \quad + -1 \leq t \leq 1 +\end{equation} +Die zweite stelle passiert wenn beide Faktoren unter der Wurzel negativ werden, was bei $t = 1/k$ der Fall ist. + + + + +Funktion in relle und komplexe Richtung periodisch + +In der reellen Richtung ist sie $4K(k)$-periodisch und in der imaginären Richtung $4K^\prime(k)$-periodisch. + + + +%TODO sn^{-1} grafik + +\begin{figure} + \centering + \input{papers/ellfilter/tikz/sn.tikz.tex} + \caption{ + $z$-Ebene der Funktion $z = \sn^{-1}(w, k)$. + Die Funktion ist in der realen Achse $4K$-periodisch und in der imaginären Achse $2jK^\prime$-periodisch. + } + % \label{ellfilter:fig:cd2} +\end{figure} diff --git a/buch/papers/ellfilter/main.tex b/buch/papers/ellfilter/main.tex index 26aaec1..c58dfa7 100644 --- a/buch/papers/ellfilter/main.tex +++ b/buch/papers/ellfilter/main.tex @@ -8,29 +8,10 @@ \begin{refsection} \chapterauthor{Nicolas Tobler} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} - -\input{papers/ellfilter/teil0.tex} -\input{papers/ellfilter/teil1.tex} -\input{papers/ellfilter/teil2.tex} -\input{papers/ellfilter/teil3.tex} +\input{papers/ellfilter/einleitung.tex} +\input{papers/ellfilter/tschebyscheff.tex} +\input{papers/ellfilter/jacobi.tex} +\input{papers/ellfilter/elliptic.tex} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/ellfilter/packages.tex b/buch/papers/ellfilter/packages.tex index c94db34..9a550e2 100644 --- a/buch/papers/ellfilter/packages.tex +++ b/buch/papers/ellfilter/packages.tex @@ -8,3 +8,20 @@ % following example %\usepackage{packagename} +% \usepackage[dvipsnames]{xcolor} + +\usetikzlibrary{trees,shapes,decorations} + +\DeclareMathOperator{\sn}{\mathrm{sn}} +\DeclareMathOperator{\ns}{\mathrm{ns}} +\DeclareMathOperator{\scelliptic}{\mathrm{sc}} +\DeclareMathOperator{\sd}{\mathrm{sd}} +\DeclareMathOperator{\cn}{\mathrm{cn}} +\DeclareMathOperator{\nc}{\mathrm{nc}} +\DeclareMathOperator{\cs}{\mathrm{cs}} +\DeclareMathOperator{\cd}{\mathrm{cd}} +\DeclareMathOperator{\dn}{\mathrm{dn}} +\DeclareMathOperator{\nd}{\mathrm{nd}} +\DeclareMathOperator{\ds}{\mathrm{ds}} +\DeclareMathOperator{\dc}{\mathrm{dc}} + diff --git a/buch/papers/ellfilter/presentation/presentation.tex b/buch/papers/ellfilter/presentation/presentation.tex new file mode 100644 index 0000000..7fdb864 --- /dev/null +++ b/buch/papers/ellfilter/presentation/presentation.tex @@ -0,0 +1,413 @@ +\documentclass[ngerman, aspectratio=169, xcolor={rgb}]{beamer} + +% style +\mode<presentation>{ + \usetheme{Frankfurt} +} +%packages +\usepackage[utf8]{inputenc}\DeclareUnicodeCharacter{2212}{-} +\usepackage[english]{babel} +\usepackage{graphicx} +\usepackage{array} + +\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} +\usepackage{ragged2e} + +\usepackage{bm} % bold math +\usepackage{amsfonts} +\usepackage{amssymb} +\usepackage{mathtools} +\usepackage{amsmath} +\usepackage{multirow} % multi row in tables +\usepackage{booktabs} %toprule midrule bottomrue in tables +\usepackage{scrextend} +\usepackage{textgreek} +\usepackage[rgb]{xcolor} + +\usepackage{ marvosym } % \Lightning + +\usepackage{multimedia} % embedded videos + +\usepackage{tikz} +\usepackage{pgf} +\usepackage{pgfplots} + +\usepackage{algorithmic} + +%citations +\usepackage[style=verbose,backend=biber]{biblatex} +\addbibresource{references.bib} + + +%math font +\usefonttheme[onlymath]{serif} + +%Beamer Template modifications +%\definecolor{mainColor}{HTML}{0065A3} % HSR blue +\definecolor{mainColor}{HTML}{D72864} % OST pink +\definecolor{invColor}{HTML}{28d79b} % OST pink +\definecolor{dgreen}{HTML}{38ad36} % Dark green + +%\definecolor{mainColor}{HTML}{000000} % HSR blue +\setbeamercolor{palette primary}{bg=white,fg=mainColor} +\setbeamercolor{palette secondary}{bg=orange,fg=mainColor} +\setbeamercolor{palette tertiary}{bg=yellow,fg=red} +\setbeamercolor{palette quaternary}{bg=mainColor,fg=white} %bg = Top bar, fg = active top bar topic +\setbeamercolor{structure}{fg=black} % itemize, enumerate, etc (bullet points) +\setbeamercolor{section in toc}{fg=black} % TOC sections +\setbeamertemplate{section in toc}[sections numbered] +\setbeamertemplate{subsection in toc}{% + \hspace{1.2em}{$\bullet$}~\inserttocsubsection\par} + +\setbeamertemplate{itemize items}[circle] +\setbeamertemplate{description item}[circle] +\setbeamertemplate{title page}[default][colsep=-4bp,rounded=true] +\beamertemplatenavigationsymbolsempty + +\setbeamercolor{footline}{fg=gray} +\setbeamertemplate{footline}{% + \hfill\usebeamertemplate***{navigation symbols} + \hspace{0.5cm} + \insertframenumber{}\hspace{0.2cm}\vspace{0.2cm} +} + +\usepackage{caption} +\captionsetup{labelformat=empty} + +%Title Page +\title{Elliptische Filter} +\subtitle{Eine Anwendung der Jaccobi elliptischen Funktionen} +\author{Nicolas Tobler} +% \institute{OST Ostschweizer Fachhochschule} +% \institute{\includegraphics[scale=0.3]{../img/ost_logo.png}} +\date{\today} + +\input{../packages.tex} + +\newcommand*{\QED}{\hfill\ensuremath{\blacksquare}}% + +\newcommand*{\HL}{\textcolor{mainColor}} +\newcommand*{\RD}{\textcolor{red}} +\newcommand*{\BL}{\textcolor{blue}} +\newcommand*{\GN}{\textcolor{dgreen}} + +\definecolor{darkgreen}{rgb}{0,0.6,0} + + +\makeatletter +\newcount\my@repeat@count +\newcommand{\myrepeat}[2]{% + \begingroup + \my@repeat@count=\z@ + \@whilenum\my@repeat@count<#1\do{#2\advance\my@repeat@count\@ne}% + \endgroup +} +\makeatother + +\usetikzlibrary{automata,arrows,positioning,calc,shapes.geometric, fadings} + +\begin{document} + + \begin{frame} + \titlepage + \end{frame} + + \begin{frame} + \frametitle{Content} + \tableofcontents + \end{frame} + + \section{Linear Filter} + + \begin{frame} + \frametitle{Lineare Filter} + + + \begin{equation} + | H(\Omega)|^2 = \frac{1}{1 + \varepsilon_p^2 F_N^2(w)}, \quad w=\frac{\Omega}{\Omega_p} + \end{equation} + + \pause + + \begin{equation} + F_N(w) = w^N + \end{equation} + + \end{frame} + + \begin{frame} + \frametitle{Beispiel: Butterworth Filter} + + \begin{equation} + F_N(w) = w^N + \end{equation} + + \begin{center} + \input{../python/F_N_butterworth.pgf} + \end{center} + + \end{frame} + + + \begin{frame} + \frametitle{Arten von linearen filtern} + + \begin{align*} + F_N(w) & = + \begin{cases} + w^N & \text{Butterworth} \\ + T_N(w) & \text{Tschebyscheff, Typ 1} \\ + [k_1 T_N (k^{-1} w^{-1})]^{-1} & \text{Tschebyscheff, Typ 2} \\ + R_N(w,\xi) & \text{Elliptisch (Cauer)} \\ + \end{cases} + \end{align*} + + \end{frame} + + \section{Tschebycheff Filter} + + \begin{frame} + \frametitle{Tschebyscheff-Polynome} + + + \begin{columns} + \begin{column}[T]{0.35\textwidth} + + \begin{align*} + T_{0}(x)&=1\\ + T_{1}(x)&=x\\ + T_{2}(x)&=2x^{2}-1\\ + T_{3}(x)&=4x^{3}-3x\\ + T_{n+1}(x)&=2x~T_{n}(x)-T_{n-1}(x) + \end{align*} + + \end{column} + \begin{column}[T]{0.65\textwidth} + + \begin{center} + \resizebox{\textwidth}{!}{ + \input{../python/F_N_chebychev2.pgf} + } + \end{center} + + \end{column} + \end{columns} + + + + \end{frame} + + \begin{frame} + \frametitle{Tschebyscheff-Filter} + + \begin{equation*} + | H(\Omega)|^2 = \frac{1}{1 + \varepsilon_p^2 T_N^2(w)}, \quad w=\frac{\Omega}{\Omega_p} + \end{equation*} + + \begin{center} + \scalebox{0.9}{ + \input{../python/F_N_chebychev.pgf} + } + \end{center} + + \end{frame} + + + \begin{frame} + \frametitle{Tschebyscheff-Filter} + + Darstellung mit trigonometrischen Funktionen: + + \begin{align} \label{ellfilter:eq:chebychef_polynomials} + T_N(w) &= \cos \left( N \cos^{-1}(w) \right) \\ + &= \cos \left(N~z \right), \quad w= \cos(z) + \end{align} + + + \end{frame} + + \begin{frame} + \frametitle{Tschebyscheff-Filter} + + \begin{equation*} + z = \cos^{-1}(w) + \end{equation*} + + \begin{center} + \scalebox{0.85}{ + \input{../tikz/arccos.tikz.tex} + } + \end{center} + + \end{frame} + + \begin{frame} + \frametitle{Tschebyscheff-Filter} + + \begin{equation*} + z_1 = N~\cos^{-1}(w) + \end{equation*} + + \begin{center} + \scalebox{0.85}{ + \input{../tikz/arccos2.tikz.tex} + } + \end{center} + + \end{frame} + + + \section{Jaccobi elliptische Funktionen} + + \begin{frame} + \frametitle{Jaccobi elliptische Funktionen} + + + \begin{equation} + z + = + F(\phi, k) + = + \int_{0}^{\phi} + \frac{ + d\theta + }{ + \sqrt{ + 1-k^2 \sin^2 \theta + } + } + = + \int_{0}^{\phi} + \frac{ + dt + }{ + \sqrt{ + (1-t^2)(1-k^2 t^2) + } + } + \end{equation} + + \begin{equation} + K(k) + = + \int_{0}^{\pi / 2} + \frac{ + d\theta + }{ + \sqrt{ + 1-k^2 \sin^2 \theta + } + } + \end{equation} + + + + \end{frame} + + \begin{frame} + \frametitle{Jaccobi elliptische Funktionen} + + \begin{equation*} + z = \sn^{-1}(w, k) + \end{equation*} + + \begin{center} + \scalebox{0.7}{ + \input{../tikz/sn.tikz.tex} + } + \end{center} + + \end{frame} + + \begin{frame} + \frametitle{Fundamentales Rechteck} + + Nullstelle beim ersten Buchstabe, Polstelle beim zweiten Buchstabe + + \begin{center} + \scalebox{0.8}{ + \input{../tikz/fundamental_rectangle.tikz.tex} + } + \end{center} + + \end{frame} + + + \begin{frame} + \frametitle{Jaccobi elliptische Funktionen} + + \begin{equation*} + z = \cd^{-1}(w, k) + \end{equation*} + + \begin{center} + \scalebox{0.7}{ + \input{../tikz/cd.tikz.tex} + + } + \end{center} + + \end{frame} + + \begin{frame} + \frametitle{Periodizität in realer und imaginärer Richtung} + + \begin{center} + \input{../python/k.pgf} + \end{center} + + + \end{frame} + + \begin{frame} + \frametitle{Elliptisches Filter} + + \begin{equation*} + z_1 = N~\frac{K_1}{K}~\cd^{-1}(w, k) + \end{equation*} + + \begin{center} + \scalebox{0.8}{ + \input{../tikz/cd2.tikz.tex} + } + \end{center} + + \end{frame} + + \begin{frame} + \frametitle{Elliptisches Filter} + + \begin{columns} + + \begin{column}[T]{0.5\textwidth} + + \begin{center} + \resizebox{\textwidth}{!}{ + \input{../python/F_N_elliptic.pgf} + } + \end{center} + + \end{column} + \begin{column}[T]{0.5\textwidth} + + \begin{center} + \resizebox{\textwidth}{!}{ + \input{../python/elliptic.pgf} + } + \end{center} + + \end{column} + \end{columns} + + \end{frame} + + \begin{frame} + \frametitle{Gradgleichung} + + \begin{equation} + N \frac{K^\prime}{K} = \frac{K^\prime_1}{K_1} + \end{equation} + + \end{frame} + + \end{document} diff --git a/buch/papers/ellfilter/python/F_N_butterworth.pgf b/buch/papers/ellfilter/python/F_N_butterworth.pgf new file mode 100644 index 0000000..857e363 --- /dev/null +++ b/buch/papers/ellfilter/python/F_N_butterworth.pgf @@ -0,0 +1,1083 @@ +%% Creator: Matplotlib, PGF backend +%% +%% To include the figure in your LaTeX document, write +%% \input{<filename>.pgf} +%% +%% Make sure the required packages are loaded in your preamble +%% \usepackage{pgf} +%% +%% Also ensure that all the required font packages are loaded; for instance, +%% the lmodern package is sometimes necessary when using math font. +%% \usepackage{lmodern} +%% +%% Figures using additional raster images can only be included by \input if +%% they are in the same directory as the main LaTeX file. For loading figures +%% from other directories you can use the `import` package +%% \usepackage{import} +%% +%% and then include the figures with +%% \import{<path to file>}{<filename>.pgf} +%% +%% Matplotlib used the following preamble +%% +\begingroup% +\makeatletter% +\begin{pgfpicture}% +\pgfpathrectangle{\pgfpointorigin}{\pgfqpoint{4.000000in}{2.500000in}}% +\pgfusepath{use as bounding box, clip}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.000000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{4.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{4.000000in}{2.500000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{2.500000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathclose% +\pgfusepath{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.000000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{0.630330in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{0.000000,0.501961,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetfillopacity{0.200000}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.200000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.694779in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.694779in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{0.630330in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,0.647059,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetfillopacity{0.200000}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.200000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.694779in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{2.694779in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{2.694779in}{1.425362in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.630330in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.630330in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.630330in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.00}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{1.146442in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{1.146442in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.146442in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.146442in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.25}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{1.662555in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{1.662555in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.662555in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.662555in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.50}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.178667in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.178667in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.178667in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.178667in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.75}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.694779in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.694779in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.694779in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.694779in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.00}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{3.210892in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.210892in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.210892in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.210892in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.25}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{3.727004in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.727004in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.727004in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.50}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.178667in,y=0.272534in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle w\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{0.548769in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.630330in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.355638in, y=0.500544in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.987065in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{0.987065in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.630330in}{0.987065in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.355638in, y=0.938840in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.5}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{1.425362in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.630330in}{1.425362in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.355638in, y=1.377137in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{1.863658in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{1.863658in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.630330in}{1.863658in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.355638in, y=1.815433in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.5}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.630330in}{2.301955in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.355638in, y=2.253730in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {2.0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.300082in,y=1.425362in,,bottom,rotate=90.000000]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle F^2_N(w)\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.661609in}{0.548970in}}% +\pgfpathlineto{\pgfqpoint{0.692889in}{0.549574in}}% +\pgfpathlineto{\pgfqpoint{0.724168in}{0.550580in}}% +\pgfpathlineto{\pgfqpoint{0.755448in}{0.551989in}}% +\pgfpathlineto{\pgfqpoint{0.786727in}{0.553800in}}% +\pgfpathlineto{\pgfqpoint{0.818007in}{0.556013in}}% +\pgfpathlineto{\pgfqpoint{0.849287in}{0.558629in}}% +\pgfpathlineto{\pgfqpoint{0.880566in}{0.561648in}}% +\pgfpathlineto{\pgfqpoint{0.911846in}{0.565069in}}% +\pgfpathlineto{\pgfqpoint{0.943125in}{0.568893in}}% +\pgfpathlineto{\pgfqpoint{0.974405in}{0.573119in}}% +\pgfpathlineto{\pgfqpoint{1.005684in}{0.577747in}}% +\pgfpathlineto{\pgfqpoint{1.036964in}{0.582778in}}% +\pgfpathlineto{\pgfqpoint{1.068243in}{0.588211in}}% +\pgfpathlineto{\pgfqpoint{1.099523in}{0.594047in}}% +\pgfpathlineto{\pgfqpoint{1.130802in}{0.600286in}}% +\pgfpathlineto{\pgfqpoint{1.162082in}{0.606927in}}% +\pgfpathlineto{\pgfqpoint{1.193361in}{0.613970in}}% +\pgfpathlineto{\pgfqpoint{1.224641in}{0.621416in}}% +\pgfpathlineto{\pgfqpoint{1.255921in}{0.629264in}}% +\pgfpathlineto{\pgfqpoint{1.287200in}{0.637515in}}% +\pgfpathlineto{\pgfqpoint{1.318480in}{0.646168in}}% +\pgfpathlineto{\pgfqpoint{1.349759in}{0.655224in}}% +\pgfpathlineto{\pgfqpoint{1.381039in}{0.664682in}}% +\pgfpathlineto{\pgfqpoint{1.412318in}{0.674543in}}% +\pgfpathlineto{\pgfqpoint{1.443598in}{0.684806in}}% +\pgfpathlineto{\pgfqpoint{1.474877in}{0.695471in}}% +\pgfpathlineto{\pgfqpoint{1.506157in}{0.706539in}}% +\pgfpathlineto{\pgfqpoint{1.537436in}{0.718010in}}% +\pgfpathlineto{\pgfqpoint{1.568716in}{0.729883in}}% +\pgfpathlineto{\pgfqpoint{1.599995in}{0.742159in}}% +\pgfpathlineto{\pgfqpoint{1.631275in}{0.754837in}}% +\pgfpathlineto{\pgfqpoint{1.662555in}{0.767917in}}% +\pgfpathlineto{\pgfqpoint{1.693834in}{0.781400in}}% +\pgfpathlineto{\pgfqpoint{1.725114in}{0.795285in}}% +\pgfpathlineto{\pgfqpoint{1.756393in}{0.809573in}}% +\pgfpathlineto{\pgfqpoint{1.787673in}{0.824264in}}% +\pgfpathlineto{\pgfqpoint{1.818952in}{0.839357in}}% +\pgfpathlineto{\pgfqpoint{1.850232in}{0.854852in}}% +\pgfpathlineto{\pgfqpoint{1.881511in}{0.870750in}}% +\pgfpathlineto{\pgfqpoint{1.912791in}{0.887050in}}% +\pgfpathlineto{\pgfqpoint{1.944070in}{0.903753in}}% +\pgfpathlineto{\pgfqpoint{1.975350in}{0.920858in}}% +\pgfpathlineto{\pgfqpoint{2.006629in}{0.938366in}}% +\pgfpathlineto{\pgfqpoint{2.037909in}{0.956276in}}% +\pgfpathlineto{\pgfqpoint{2.069189in}{0.974589in}}% +\pgfpathlineto{\pgfqpoint{2.100468in}{0.993304in}}% +\pgfpathlineto{\pgfqpoint{2.131748in}{1.012421in}}% +\pgfpathlineto{\pgfqpoint{2.163027in}{1.031941in}}% +\pgfpathlineto{\pgfqpoint{2.194307in}{1.051864in}}% +\pgfpathlineto{\pgfqpoint{2.225586in}{1.072189in}}% +\pgfpathlineto{\pgfqpoint{2.256866in}{1.092917in}}% +\pgfpathlineto{\pgfqpoint{2.288145in}{1.114047in}}% +\pgfpathlineto{\pgfqpoint{2.319425in}{1.135579in}}% +\pgfpathlineto{\pgfqpoint{2.350704in}{1.157514in}}% +\pgfpathlineto{\pgfqpoint{2.381984in}{1.179851in}}% +\pgfpathlineto{\pgfqpoint{2.413263in}{1.202591in}}% +\pgfpathlineto{\pgfqpoint{2.444543in}{1.225734in}}% +\pgfpathlineto{\pgfqpoint{2.475823in}{1.249279in}}% +\pgfpathlineto{\pgfqpoint{2.507102in}{1.273226in}}% +\pgfpathlineto{\pgfqpoint{2.538382in}{1.297576in}}% +\pgfpathlineto{\pgfqpoint{2.569661in}{1.322328in}}% +\pgfpathlineto{\pgfqpoint{2.600941in}{1.347483in}}% +\pgfpathlineto{\pgfqpoint{2.632220in}{1.373040in}}% +\pgfpathlineto{\pgfqpoint{2.663500in}{1.399000in}}% +\pgfpathlineto{\pgfqpoint{2.694779in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{2.726059in}{1.452126in}}% +\pgfpathlineto{\pgfqpoint{2.757338in}{1.479294in}}% +\pgfpathlineto{\pgfqpoint{2.788618in}{1.506863in}}% +\pgfpathlineto{\pgfqpoint{2.819897in}{1.534835in}}% +\pgfpathlineto{\pgfqpoint{2.851177in}{1.563210in}}% +\pgfpathlineto{\pgfqpoint{2.882457in}{1.591987in}}% +\pgfpathlineto{\pgfqpoint{2.913736in}{1.621166in}}% +\pgfpathlineto{\pgfqpoint{2.945016in}{1.650748in}}% +\pgfpathlineto{\pgfqpoint{2.976295in}{1.680733in}}% +\pgfpathlineto{\pgfqpoint{3.007575in}{1.711120in}}% +\pgfpathlineto{\pgfqpoint{3.038854in}{1.741909in}}% +\pgfpathlineto{\pgfqpoint{3.070134in}{1.773101in}}% +\pgfpathlineto{\pgfqpoint{3.101413in}{1.804696in}}% +\pgfpathlineto{\pgfqpoint{3.132693in}{1.836692in}}% +\pgfpathlineto{\pgfqpoint{3.163972in}{1.869092in}}% +\pgfpathlineto{\pgfqpoint{3.195252in}{1.901894in}}% +\pgfpathlineto{\pgfqpoint{3.226531in}{1.935098in}}% +\pgfpathlineto{\pgfqpoint{3.257811in}{1.968705in}}% +\pgfpathlineto{\pgfqpoint{3.289091in}{2.002714in}}% +\pgfpathlineto{\pgfqpoint{3.320370in}{2.037126in}}% +\pgfpathlineto{\pgfqpoint{3.351650in}{2.071940in}}% +\pgfpathlineto{\pgfqpoint{3.382929in}{2.107156in}}% +\pgfpathlineto{\pgfqpoint{3.414209in}{2.142776in}}% +\pgfpathlineto{\pgfqpoint{3.445488in}{2.178797in}}% +\pgfpathlineto{\pgfqpoint{3.476768in}{2.215221in}}% +\pgfpathlineto{\pgfqpoint{3.508047in}{2.252048in}}% +\pgfpathlineto{\pgfqpoint{3.539327in}{2.289277in}}% +\pgfpathlineto{\pgfqpoint{3.561409in}{2.315844in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{1.000000,0.498039,0.054902}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.661609in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.692889in}{0.548770in}}% +\pgfpathlineto{\pgfqpoint{0.724168in}{0.548773in}}% +\pgfpathlineto{\pgfqpoint{0.755448in}{0.548781in}}% +\pgfpathlineto{\pgfqpoint{0.786727in}{0.548798in}}% +\pgfpathlineto{\pgfqpoint{0.818007in}{0.548829in}}% +\pgfpathlineto{\pgfqpoint{0.849287in}{0.548880in}}% +\pgfpathlineto{\pgfqpoint{0.880566in}{0.548958in}}% +\pgfpathlineto{\pgfqpoint{0.911846in}{0.549072in}}% +\pgfpathlineto{\pgfqpoint{0.943125in}{0.549231in}}% +\pgfpathlineto{\pgfqpoint{0.974405in}{0.549445in}}% +\pgfpathlineto{\pgfqpoint{1.005684in}{0.549727in}}% +\pgfpathlineto{\pgfqpoint{1.036964in}{0.550088in}}% +\pgfpathlineto{\pgfqpoint{1.068243in}{0.550544in}}% +\pgfpathlineto{\pgfqpoint{1.099523in}{0.551108in}}% +\pgfpathlineto{\pgfqpoint{1.130802in}{0.551796in}}% +\pgfpathlineto{\pgfqpoint{1.162082in}{0.552627in}}% +\pgfpathlineto{\pgfqpoint{1.193361in}{0.553618in}}% +\pgfpathlineto{\pgfqpoint{1.224641in}{0.554789in}}% +\pgfpathlineto{\pgfqpoint{1.255921in}{0.556160in}}% +\pgfpathlineto{\pgfqpoint{1.287200in}{0.557753in}}% +\pgfpathlineto{\pgfqpoint{1.318480in}{0.559591in}}% +\pgfpathlineto{\pgfqpoint{1.349759in}{0.561697in}}% +\pgfpathlineto{\pgfqpoint{1.381039in}{0.564096in}}% +\pgfpathlineto{\pgfqpoint{1.412318in}{0.566815in}}% +\pgfpathlineto{\pgfqpoint{1.443598in}{0.569880in}}% +\pgfpathlineto{\pgfqpoint{1.474877in}{0.573320in}}% +\pgfpathlineto{\pgfqpoint{1.506157in}{0.577165in}}% +\pgfpathlineto{\pgfqpoint{1.537436in}{0.581444in}}% +\pgfpathlineto{\pgfqpoint{1.568716in}{0.586189in}}% +\pgfpathlineto{\pgfqpoint{1.599995in}{0.591434in}}% +\pgfpathlineto{\pgfqpoint{1.631275in}{0.597211in}}% +\pgfpathlineto{\pgfqpoint{1.662555in}{0.603556in}}% +\pgfpathlineto{\pgfqpoint{1.693834in}{0.610505in}}% +\pgfpathlineto{\pgfqpoint{1.725114in}{0.618095in}}% +\pgfpathlineto{\pgfqpoint{1.756393in}{0.626364in}}% +\pgfpathlineto{\pgfqpoint{1.787673in}{0.635351in}}% +\pgfpathlineto{\pgfqpoint{1.818952in}{0.645098in}}% +\pgfpathlineto{\pgfqpoint{1.850232in}{0.655645in}}% +\pgfpathlineto{\pgfqpoint{1.881511in}{0.667035in}}% +\pgfpathlineto{\pgfqpoint{1.912791in}{0.679313in}}% +\pgfpathlineto{\pgfqpoint{1.944070in}{0.692523in}}% +\pgfpathlineto{\pgfqpoint{1.975350in}{0.706710in}}% +\pgfpathlineto{\pgfqpoint{2.006629in}{0.721923in}}% +\pgfpathlineto{\pgfqpoint{2.037909in}{0.738209in}}% +\pgfpathlineto{\pgfqpoint{2.069189in}{0.755618in}}% +\pgfpathlineto{\pgfqpoint{2.100468in}{0.774200in}}% +\pgfpathlineto{\pgfqpoint{2.131748in}{0.794006in}}% +\pgfpathlineto{\pgfqpoint{2.163027in}{0.815091in}}% +\pgfpathlineto{\pgfqpoint{2.194307in}{0.837506in}}% +\pgfpathlineto{\pgfqpoint{2.225586in}{0.861307in}}% +\pgfpathlineto{\pgfqpoint{2.256866in}{0.886550in}}% +\pgfpathlineto{\pgfqpoint{2.288145in}{0.913292in}}% +\pgfpathlineto{\pgfqpoint{2.319425in}{0.941592in}}% +\pgfpathlineto{\pgfqpoint{2.350704in}{0.971508in}}% +\pgfpathlineto{\pgfqpoint{2.381984in}{1.003102in}}% +\pgfpathlineto{\pgfqpoint{2.413263in}{1.036434in}}% +\pgfpathlineto{\pgfqpoint{2.444543in}{1.071567in}}% +\pgfpathlineto{\pgfqpoint{2.475823in}{1.108565in}}% +\pgfpathlineto{\pgfqpoint{2.507102in}{1.147494in}}% +\pgfpathlineto{\pgfqpoint{2.538382in}{1.188418in}}% +\pgfpathlineto{\pgfqpoint{2.569661in}{1.231405in}}% +\pgfpathlineto{\pgfqpoint{2.600941in}{1.276523in}}% +\pgfpathlineto{\pgfqpoint{2.632220in}{1.323841in}}% +\pgfpathlineto{\pgfqpoint{2.663500in}{1.373430in}}% +\pgfpathlineto{\pgfqpoint{2.694779in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{2.726059in}{1.479708in}}% +\pgfpathlineto{\pgfqpoint{2.757338in}{1.536544in}}% +\pgfpathlineto{\pgfqpoint{2.788618in}{1.595942in}}% +\pgfpathlineto{\pgfqpoint{2.819897in}{1.657980in}}% +\pgfpathlineto{\pgfqpoint{2.851177in}{1.722735in}}% +\pgfpathlineto{\pgfqpoint{2.882457in}{1.790285in}}% +\pgfpathlineto{\pgfqpoint{2.913736in}{1.860708in}}% +\pgfpathlineto{\pgfqpoint{2.945016in}{1.934086in}}% +\pgfpathlineto{\pgfqpoint{2.976295in}{2.010499in}}% +\pgfpathlineto{\pgfqpoint{3.007575in}{2.090031in}}% +\pgfpathlineto{\pgfqpoint{3.038854in}{2.172766in}}% +\pgfpathlineto{\pgfqpoint{3.070134in}{2.258787in}}% +\pgfpathlineto{\pgfqpoint{3.090098in}{2.315844in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{0.172549,0.627451,0.172549}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.661609in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.692889in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.724168in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.755448in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.786727in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.818007in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.849287in}{0.548770in}}% +\pgfpathlineto{\pgfqpoint{0.880566in}{0.548772in}}% +\pgfpathlineto{\pgfqpoint{0.911846in}{0.548774in}}% +\pgfpathlineto{\pgfqpoint{0.943125in}{0.548779in}}% +\pgfpathlineto{\pgfqpoint{0.974405in}{0.548788in}}% +\pgfpathlineto{\pgfqpoint{1.005684in}{0.548800in}}% +\pgfpathlineto{\pgfqpoint{1.036964in}{0.548820in}}% +\pgfpathlineto{\pgfqpoint{1.068243in}{0.548849in}}% +\pgfpathlineto{\pgfqpoint{1.099523in}{0.548890in}}% +\pgfpathlineto{\pgfqpoint{1.130802in}{0.548947in}}% +\pgfpathlineto{\pgfqpoint{1.162082in}{0.549025in}}% +\pgfpathlineto{\pgfqpoint{1.193361in}{0.549130in}}% +\pgfpathlineto{\pgfqpoint{1.224641in}{0.549268in}}% +\pgfpathlineto{\pgfqpoint{1.255921in}{0.549448in}}% +\pgfpathlineto{\pgfqpoint{1.287200in}{0.549678in}}% +\pgfpathlineto{\pgfqpoint{1.318480in}{0.549971in}}% +\pgfpathlineto{\pgfqpoint{1.349759in}{0.550339in}}% +\pgfpathlineto{\pgfqpoint{1.381039in}{0.550796in}}% +\pgfpathlineto{\pgfqpoint{1.412318in}{0.551358in}}% +\pgfpathlineto{\pgfqpoint{1.443598in}{0.552045in}}% +\pgfpathlineto{\pgfqpoint{1.474877in}{0.552878in}}% +\pgfpathlineto{\pgfqpoint{1.506157in}{0.553880in}}% +\pgfpathlineto{\pgfqpoint{1.537436in}{0.555077in}}% +\pgfpathlineto{\pgfqpoint{1.568716in}{0.556500in}}% +\pgfpathlineto{\pgfqpoint{1.599995in}{0.558181in}}% +\pgfpathlineto{\pgfqpoint{1.631275in}{0.560156in}}% +\pgfpathlineto{\pgfqpoint{1.662555in}{0.562466in}}% +\pgfpathlineto{\pgfqpoint{1.693834in}{0.565152in}}% +\pgfpathlineto{\pgfqpoint{1.725114in}{0.568265in}}% +\pgfpathlineto{\pgfqpoint{1.756393in}{0.571855in}}% +\pgfpathlineto{\pgfqpoint{1.787673in}{0.575980in}}% +\pgfpathlineto{\pgfqpoint{1.818952in}{0.580702in}}% +\pgfpathlineto{\pgfqpoint{1.850232in}{0.586087in}}% +\pgfpathlineto{\pgfqpoint{1.881511in}{0.592209in}}% +\pgfpathlineto{\pgfqpoint{1.912791in}{0.599146in}}% +\pgfpathlineto{\pgfqpoint{1.944070in}{0.606983in}}% +\pgfpathlineto{\pgfqpoint{1.975350in}{0.615811in}}% +\pgfpathlineto{\pgfqpoint{2.006629in}{0.625726in}}% +\pgfpathlineto{\pgfqpoint{2.037909in}{0.636835in}}% +\pgfpathlineto{\pgfqpoint{2.069189in}{0.649249in}}% +\pgfpathlineto{\pgfqpoint{2.100468in}{0.663089in}}% +\pgfpathlineto{\pgfqpoint{2.131748in}{0.678481in}}% +\pgfpathlineto{\pgfqpoint{2.163027in}{0.695564in}}% +\pgfpathlineto{\pgfqpoint{2.194307in}{0.714481in}}% +\pgfpathlineto{\pgfqpoint{2.225586in}{0.735388in}}% +\pgfpathlineto{\pgfqpoint{2.256866in}{0.758448in}}% +\pgfpathlineto{\pgfqpoint{2.288145in}{0.783835in}}% +\pgfpathlineto{\pgfqpoint{2.319425in}{0.811733in}}% +\pgfpathlineto{\pgfqpoint{2.350704in}{0.842338in}}% +\pgfpathlineto{\pgfqpoint{2.381984in}{0.875855in}}% +\pgfpathlineto{\pgfqpoint{2.413263in}{0.912502in}}% +\pgfpathlineto{\pgfqpoint{2.444543in}{0.952509in}}% +\pgfpathlineto{\pgfqpoint{2.475823in}{0.996118in}}% +\pgfpathlineto{\pgfqpoint{2.507102in}{1.043583in}}% +\pgfpathlineto{\pgfqpoint{2.538382in}{1.095172in}}% +\pgfpathlineto{\pgfqpoint{2.569661in}{1.151168in}}% +\pgfpathlineto{\pgfqpoint{2.600941in}{1.211867in}}% +\pgfpathlineto{\pgfqpoint{2.632220in}{1.277579in}}% +\pgfpathlineto{\pgfqpoint{2.663500in}{1.348630in}}% +\pgfpathlineto{\pgfqpoint{2.694779in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{2.726059in}{1.508132in}}% +\pgfpathlineto{\pgfqpoint{2.757338in}{1.597316in}}% +\pgfpathlineto{\pgfqpoint{2.788618in}{1.693303in}}% +\pgfpathlineto{\pgfqpoint{2.819897in}{1.796505in}}% +\pgfpathlineto{\pgfqpoint{2.851177in}{1.907347in}}% +\pgfpathlineto{\pgfqpoint{2.882457in}{2.026275in}}% +\pgfpathlineto{\pgfqpoint{2.913736in}{2.153756in}}% +\pgfpathlineto{\pgfqpoint{2.945016in}{2.290274in}}% +\pgfpathlineto{\pgfqpoint{2.950492in}{2.315844in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{0.839216,0.152941,0.156863}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.661609in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.692889in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.724168in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.755448in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.786727in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.818007in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.849287in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.880566in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.911846in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.943125in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.974405in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{1.005684in}{0.548770in}}% +\pgfpathlineto{\pgfqpoint{1.036964in}{0.548771in}}% +\pgfpathlineto{\pgfqpoint{1.068243in}{0.548772in}}% +\pgfpathlineto{\pgfqpoint{1.099523in}{0.548775in}}% +\pgfpathlineto{\pgfqpoint{1.130802in}{0.548779in}}% +\pgfpathlineto{\pgfqpoint{1.162082in}{0.548786in}}% +\pgfpathlineto{\pgfqpoint{1.193361in}{0.548796in}}% +\pgfpathlineto{\pgfqpoint{1.224641in}{0.548810in}}% +\pgfpathlineto{\pgfqpoint{1.255921in}{0.548831in}}% +\pgfpathlineto{\pgfqpoint{1.287200in}{0.548861in}}% +\pgfpathlineto{\pgfqpoint{1.318480in}{0.548902in}}% +\pgfpathlineto{\pgfqpoint{1.349759in}{0.548959in}}% +\pgfpathlineto{\pgfqpoint{1.381039in}{0.549037in}}% +\pgfpathlineto{\pgfqpoint{1.412318in}{0.549140in}}% +\pgfpathlineto{\pgfqpoint{1.443598in}{0.549277in}}% +\pgfpathlineto{\pgfqpoint{1.474877in}{0.549456in}}% +\pgfpathlineto{\pgfqpoint{1.506157in}{0.549689in}}% +\pgfpathlineto{\pgfqpoint{1.537436in}{0.549987in}}% +\pgfpathlineto{\pgfqpoint{1.568716in}{0.550366in}}% +\pgfpathlineto{\pgfqpoint{1.599995in}{0.550845in}}% +\pgfpathlineto{\pgfqpoint{1.631275in}{0.551446in}}% +\pgfpathlineto{\pgfqpoint{1.662555in}{0.552193in}}% +\pgfpathlineto{\pgfqpoint{1.693834in}{0.553117in}}% +\pgfpathlineto{\pgfqpoint{1.725114in}{0.554251in}}% +\pgfpathlineto{\pgfqpoint{1.756393in}{0.555637in}}% +\pgfpathlineto{\pgfqpoint{1.787673in}{0.557321in}}% +\pgfpathlineto{\pgfqpoint{1.818952in}{0.559354in}}% +\pgfpathlineto{\pgfqpoint{1.850232in}{0.561799in}}% +\pgfpathlineto{\pgfqpoint{1.881511in}{0.564725in}}% +\pgfpathlineto{\pgfqpoint{1.912791in}{0.568210in}}% +\pgfpathlineto{\pgfqpoint{1.944070in}{0.572343in}}% +\pgfpathlineto{\pgfqpoint{1.975350in}{0.577226in}}% +\pgfpathlineto{\pgfqpoint{2.006629in}{0.582972in}}% +\pgfpathlineto{\pgfqpoint{2.037909in}{0.589709in}}% +\pgfpathlineto{\pgfqpoint{2.069189in}{0.597579in}}% +\pgfpathlineto{\pgfqpoint{2.100468in}{0.606742in}}% +\pgfpathlineto{\pgfqpoint{2.131748in}{0.617377in}}% +\pgfpathlineto{\pgfqpoint{2.163027in}{0.629681in}}% +\pgfpathlineto{\pgfqpoint{2.194307in}{0.643875in}}% +\pgfpathlineto{\pgfqpoint{2.225586in}{0.660200in}}% +\pgfpathlineto{\pgfqpoint{2.256866in}{0.678928in}}% +\pgfpathlineto{\pgfqpoint{2.288145in}{0.700353in}}% +\pgfpathlineto{\pgfqpoint{2.319425in}{0.724803in}}% +\pgfpathlineto{\pgfqpoint{2.350704in}{0.752636in}}% +\pgfpathlineto{\pgfqpoint{2.381984in}{0.784247in}}% +\pgfpathlineto{\pgfqpoint{2.413263in}{0.820066in}}% +\pgfpathlineto{\pgfqpoint{2.444543in}{0.860565in}}% +\pgfpathlineto{\pgfqpoint{2.475823in}{0.906258in}}% +\pgfpathlineto{\pgfqpoint{2.507102in}{0.957706in}}% +\pgfpathlineto{\pgfqpoint{2.538382in}{1.015520in}}% +\pgfpathlineto{\pgfqpoint{2.569661in}{1.080363in}}% +\pgfpathlineto{\pgfqpoint{2.600941in}{1.152955in}}% +\pgfpathlineto{\pgfqpoint{2.632220in}{1.234078in}}% +\pgfpathlineto{\pgfqpoint{2.663500in}{1.324575in}}% +\pgfpathlineto{\pgfqpoint{2.694779in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{2.726059in}{1.537424in}}% +\pgfpathlineto{\pgfqpoint{2.757338in}{1.661827in}}% +\pgfpathlineto{\pgfqpoint{2.788618in}{1.799717in}}% +\pgfpathlineto{\pgfqpoint{2.819897in}{1.952328in}}% +\pgfpathlineto{\pgfqpoint{2.851177in}{2.120989in}}% +\pgfpathlineto{\pgfqpoint{2.882457in}{2.307124in}}% +\pgfpathlineto{\pgfqpoint{2.883786in}{2.315844in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.630330in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{3.727004in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{0.548769in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetfillopacity{0.800000}% +\pgfsetlinewidth{1.003750pt}% +\definecolor{currentstroke}{rgb}{0.800000,0.800000,0.800000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.800000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.727552in}{1.416153in}}% +\pgfpathlineto{\pgfqpoint{1.553360in}{1.416153in}}% +\pgfpathquadraticcurveto{\pgfqpoint{1.581138in}{1.416153in}}{\pgfqpoint{1.581138in}{1.443930in}}% +\pgfpathlineto{\pgfqpoint{1.581138in}{2.204733in}}% +\pgfpathquadraticcurveto{\pgfqpoint{1.581138in}{2.232510in}}{\pgfqpoint{1.553360in}{2.232510in}}% +\pgfpathlineto{\pgfqpoint{0.727552in}{2.232510in}}% +\pgfpathquadraticcurveto{\pgfqpoint{0.699774in}{2.232510in}}{\pgfqpoint{0.699774in}{2.204733in}}% +\pgfpathlineto{\pgfqpoint{0.699774in}{1.443930in}}% +\pgfpathquadraticcurveto{\pgfqpoint{0.699774in}{1.416153in}}{\pgfqpoint{0.727552in}{1.416153in}}% +\pgfpathlineto{\pgfqpoint{0.727552in}{1.416153in}}% +\pgfpathclose% +\pgfusepath{stroke,fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.755330in}{2.128344in}}% +\pgfpathlineto{\pgfqpoint{0.894219in}{2.128344in}}% +\pgfpathlineto{\pgfqpoint{1.033108in}{2.128344in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.144219in,y=2.079733in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle N=1\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{1.000000,0.498039,0.054902}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.755330in}{1.934671in}}% +\pgfpathlineto{\pgfqpoint{0.894219in}{1.934671in}}% +\pgfpathlineto{\pgfqpoint{1.033108in}{1.934671in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.144219in,y=1.886060in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle N=2\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{0.172549,0.627451,0.172549}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.755330in}{1.740998in}}% +\pgfpathlineto{\pgfqpoint{0.894219in}{1.740998in}}% +\pgfpathlineto{\pgfqpoint{1.033108in}{1.740998in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.144219in,y=1.692387in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle N=3\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{0.839216,0.152941,0.156863}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.755330in}{1.547325in}}% +\pgfpathlineto{\pgfqpoint{0.894219in}{1.547325in}}% +\pgfpathlineto{\pgfqpoint{1.033108in}{1.547325in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.144219in,y=1.498714in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle N=4\)}% +\end{pgfscope}% +\end{pgfpicture}% +\makeatother% +\endgroup% diff --git a/buch/papers/ellfilter/python/F_N_chebychev.pgf b/buch/papers/ellfilter/python/F_N_chebychev.pgf new file mode 100644 index 0000000..72d5834 --- /dev/null +++ b/buch/papers/ellfilter/python/F_N_chebychev.pgf @@ -0,0 +1,1066 @@ +%% Creator: Matplotlib, PGF backend +%% +%% To include the figure in your LaTeX document, write +%% \input{<filename>.pgf} +%% +%% Make sure the required packages are loaded in your preamble +%% \usepackage{pgf} +%% +%% Also ensure that all the required font packages are loaded; for instance, +%% the lmodern package is sometimes necessary when using math font. +%% \usepackage{lmodern} +%% +%% Figures using additional raster images can only be included by \input if +%% they are in the same directory as the main LaTeX file. For loading figures +%% from other directories you can use the `import` package +%% \usepackage{import} +%% +%% and then include the figures with +%% \import{<path to file>}{<filename>.pgf} +%% +%% Matplotlib used the following preamble +%% +\begingroup% +\makeatletter% +\begin{pgfpicture}% +\pgfpathrectangle{\pgfpointorigin}{\pgfqpoint{4.000000in}{2.500000in}}% +\pgfusepath{use as bounding box, clip}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.000000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{4.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{4.000000in}{2.500000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{2.500000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathclose% +\pgfusepath{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.000000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{0.630330in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{0.000000,0.501961,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetfillopacity{0.200000}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.200000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.694779in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.694779in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{0.630330in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,0.647059,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetfillopacity{0.200000}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.200000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.694779in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{2.694779in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{2.694779in}{1.425362in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.630330in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.630330in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.630330in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.00}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{1.146442in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{1.146442in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.146442in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.146442in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.25}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{1.662555in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{1.662555in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.662555in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.662555in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.50}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.178667in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.178667in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.178667in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.178667in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.75}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.694779in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.694779in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.694779in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.694779in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.00}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{3.210892in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.210892in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.210892in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.210892in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.25}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{3.727004in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.727004in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.727004in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.50}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.178667in,y=0.272534in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle w\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{0.548769in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.630330in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.355638in, y=0.500544in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.987065in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{0.987065in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.630330in}{0.987065in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.355638in, y=0.938840in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.5}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{1.425362in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.630330in}{1.425362in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.355638in, y=1.377137in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{1.863658in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{1.863658in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.630330in}{1.863658in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.355638in, y=1.815433in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.5}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.630330in}{2.301955in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.355638in, y=2.253730in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {2.0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.300082in,y=1.425362in,,bottom,rotate=90.000000]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle F^2_N(w)\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.661609in}{0.548970in}}% +\pgfpathlineto{\pgfqpoint{0.692889in}{0.549574in}}% +\pgfpathlineto{\pgfqpoint{0.724168in}{0.550580in}}% +\pgfpathlineto{\pgfqpoint{0.755448in}{0.551989in}}% +\pgfpathlineto{\pgfqpoint{0.786727in}{0.553800in}}% +\pgfpathlineto{\pgfqpoint{0.818007in}{0.556013in}}% +\pgfpathlineto{\pgfqpoint{0.849287in}{0.558629in}}% +\pgfpathlineto{\pgfqpoint{0.880566in}{0.561648in}}% +\pgfpathlineto{\pgfqpoint{0.911846in}{0.565069in}}% +\pgfpathlineto{\pgfqpoint{0.943125in}{0.568893in}}% +\pgfpathlineto{\pgfqpoint{0.974405in}{0.573119in}}% +\pgfpathlineto{\pgfqpoint{1.005684in}{0.577747in}}% +\pgfpathlineto{\pgfqpoint{1.036964in}{0.582778in}}% +\pgfpathlineto{\pgfqpoint{1.068243in}{0.588211in}}% +\pgfpathlineto{\pgfqpoint{1.099523in}{0.594047in}}% +\pgfpathlineto{\pgfqpoint{1.130802in}{0.600286in}}% +\pgfpathlineto{\pgfqpoint{1.162082in}{0.606927in}}% +\pgfpathlineto{\pgfqpoint{1.193361in}{0.613970in}}% +\pgfpathlineto{\pgfqpoint{1.224641in}{0.621416in}}% +\pgfpathlineto{\pgfqpoint{1.255921in}{0.629264in}}% +\pgfpathlineto{\pgfqpoint{1.287200in}{0.637515in}}% +\pgfpathlineto{\pgfqpoint{1.318480in}{0.646168in}}% +\pgfpathlineto{\pgfqpoint{1.349759in}{0.655224in}}% +\pgfpathlineto{\pgfqpoint{1.381039in}{0.664682in}}% +\pgfpathlineto{\pgfqpoint{1.412318in}{0.674543in}}% +\pgfpathlineto{\pgfqpoint{1.443598in}{0.684806in}}% +\pgfpathlineto{\pgfqpoint{1.474877in}{0.695471in}}% +\pgfpathlineto{\pgfqpoint{1.506157in}{0.706539in}}% +\pgfpathlineto{\pgfqpoint{1.537436in}{0.718010in}}% +\pgfpathlineto{\pgfqpoint{1.568716in}{0.729883in}}% +\pgfpathlineto{\pgfqpoint{1.599995in}{0.742159in}}% +\pgfpathlineto{\pgfqpoint{1.631275in}{0.754837in}}% +\pgfpathlineto{\pgfqpoint{1.662555in}{0.767917in}}% +\pgfpathlineto{\pgfqpoint{1.693834in}{0.781400in}}% +\pgfpathlineto{\pgfqpoint{1.725114in}{0.795285in}}% +\pgfpathlineto{\pgfqpoint{1.756393in}{0.809573in}}% +\pgfpathlineto{\pgfqpoint{1.787673in}{0.824264in}}% +\pgfpathlineto{\pgfqpoint{1.818952in}{0.839357in}}% +\pgfpathlineto{\pgfqpoint{1.850232in}{0.854852in}}% +\pgfpathlineto{\pgfqpoint{1.881511in}{0.870750in}}% +\pgfpathlineto{\pgfqpoint{1.912791in}{0.887050in}}% +\pgfpathlineto{\pgfqpoint{1.944070in}{0.903753in}}% +\pgfpathlineto{\pgfqpoint{1.975350in}{0.920858in}}% +\pgfpathlineto{\pgfqpoint{2.006629in}{0.938366in}}% +\pgfpathlineto{\pgfqpoint{2.037909in}{0.956276in}}% +\pgfpathlineto{\pgfqpoint{2.069189in}{0.974589in}}% +\pgfpathlineto{\pgfqpoint{2.100468in}{0.993304in}}% +\pgfpathlineto{\pgfqpoint{2.131748in}{1.012421in}}% +\pgfpathlineto{\pgfqpoint{2.163027in}{1.031941in}}% +\pgfpathlineto{\pgfqpoint{2.194307in}{1.051864in}}% +\pgfpathlineto{\pgfqpoint{2.225586in}{1.072189in}}% +\pgfpathlineto{\pgfqpoint{2.256866in}{1.092917in}}% +\pgfpathlineto{\pgfqpoint{2.288145in}{1.114047in}}% +\pgfpathlineto{\pgfqpoint{2.319425in}{1.135579in}}% +\pgfpathlineto{\pgfqpoint{2.350704in}{1.157514in}}% +\pgfpathlineto{\pgfqpoint{2.381984in}{1.179851in}}% +\pgfpathlineto{\pgfqpoint{2.413263in}{1.202591in}}% +\pgfpathlineto{\pgfqpoint{2.444543in}{1.225734in}}% +\pgfpathlineto{\pgfqpoint{2.475823in}{1.249279in}}% +\pgfpathlineto{\pgfqpoint{2.507102in}{1.273226in}}% +\pgfpathlineto{\pgfqpoint{2.538382in}{1.297576in}}% +\pgfpathlineto{\pgfqpoint{2.569661in}{1.322328in}}% +\pgfpathlineto{\pgfqpoint{2.600941in}{1.347483in}}% +\pgfpathlineto{\pgfqpoint{2.632220in}{1.373040in}}% +\pgfpathlineto{\pgfqpoint{2.663500in}{1.399000in}}% +\pgfpathlineto{\pgfqpoint{2.694779in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{2.726059in}{1.452126in}}% +\pgfpathlineto{\pgfqpoint{2.757338in}{1.479294in}}% +\pgfpathlineto{\pgfqpoint{2.788618in}{1.506863in}}% +\pgfpathlineto{\pgfqpoint{2.819897in}{1.534835in}}% +\pgfpathlineto{\pgfqpoint{2.851177in}{1.563210in}}% +\pgfpathlineto{\pgfqpoint{2.882457in}{1.591987in}}% +\pgfpathlineto{\pgfqpoint{2.913736in}{1.621166in}}% +\pgfpathlineto{\pgfqpoint{2.945016in}{1.650748in}}% +\pgfpathlineto{\pgfqpoint{2.976295in}{1.680733in}}% +\pgfpathlineto{\pgfqpoint{3.007575in}{1.711120in}}% +\pgfpathlineto{\pgfqpoint{3.038854in}{1.741909in}}% +\pgfpathlineto{\pgfqpoint{3.070134in}{1.773101in}}% +\pgfpathlineto{\pgfqpoint{3.101413in}{1.804696in}}% +\pgfpathlineto{\pgfqpoint{3.132693in}{1.836692in}}% +\pgfpathlineto{\pgfqpoint{3.163972in}{1.869092in}}% +\pgfpathlineto{\pgfqpoint{3.195252in}{1.901894in}}% +\pgfpathlineto{\pgfqpoint{3.226531in}{1.935098in}}% +\pgfpathlineto{\pgfqpoint{3.257811in}{1.968705in}}% +\pgfpathlineto{\pgfqpoint{3.289091in}{2.002714in}}% +\pgfpathlineto{\pgfqpoint{3.320370in}{2.037126in}}% +\pgfpathlineto{\pgfqpoint{3.351650in}{2.071940in}}% +\pgfpathlineto{\pgfqpoint{3.382929in}{2.107156in}}% +\pgfpathlineto{\pgfqpoint{3.414209in}{2.142776in}}% +\pgfpathlineto{\pgfqpoint{3.445488in}{2.178797in}}% +\pgfpathlineto{\pgfqpoint{3.476768in}{2.215221in}}% +\pgfpathlineto{\pgfqpoint{3.508047in}{2.252048in}}% +\pgfpathlineto{\pgfqpoint{3.539327in}{2.289277in}}% +\pgfpathlineto{\pgfqpoint{3.561409in}{2.315844in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{1.000000,0.498039,0.054902}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{0.661609in}{1.424557in}}% +\pgfpathlineto{\pgfqpoint{0.692889in}{1.422145in}}% +\pgfpathlineto{\pgfqpoint{0.724168in}{1.418132in}}% +\pgfpathlineto{\pgfqpoint{0.755448in}{1.412530in}}% +\pgfpathlineto{\pgfqpoint{0.786727in}{1.405354in}}% +\pgfpathlineto{\pgfqpoint{0.818007in}{1.396623in}}% +\pgfpathlineto{\pgfqpoint{0.849287in}{1.386363in}}% +\pgfpathlineto{\pgfqpoint{0.880566in}{1.374602in}}% +\pgfpathlineto{\pgfqpoint{0.911846in}{1.361373in}}% +\pgfpathlineto{\pgfqpoint{0.943125in}{1.346715in}}% +\pgfpathlineto{\pgfqpoint{0.974405in}{1.330668in}}% +\pgfpathlineto{\pgfqpoint{1.005684in}{1.313281in}}% +\pgfpathlineto{\pgfqpoint{1.036964in}{1.294603in}}% +\pgfpathlineto{\pgfqpoint{1.068243in}{1.274690in}}% +\pgfpathlineto{\pgfqpoint{1.099523in}{1.253603in}}% +\pgfpathlineto{\pgfqpoint{1.130802in}{1.231405in}}% +\pgfpathlineto{\pgfqpoint{1.162082in}{1.208165in}}% +\pgfpathlineto{\pgfqpoint{1.193361in}{1.183956in}}% +\pgfpathlineto{\pgfqpoint{1.224641in}{1.158856in}}% +\pgfpathlineto{\pgfqpoint{1.255921in}{1.132948in}}% +\pgfpathlineto{\pgfqpoint{1.287200in}{1.106316in}}% +\pgfpathlineto{\pgfqpoint{1.318480in}{1.079053in}}% +\pgfpathlineto{\pgfqpoint{1.349759in}{1.051254in}}% +\pgfpathlineto{\pgfqpoint{1.381039in}{1.023019in}}% +\pgfpathlineto{\pgfqpoint{1.412318in}{0.994451in}}% +\pgfpathlineto{\pgfqpoint{1.443598in}{0.965659in}}% +\pgfpathlineto{\pgfqpoint{1.474877in}{0.936757in}}% +\pgfpathlineto{\pgfqpoint{1.506157in}{0.907863in}}% +\pgfpathlineto{\pgfqpoint{1.537436in}{0.879097in}}% +\pgfpathlineto{\pgfqpoint{1.568716in}{0.850586in}}% +\pgfpathlineto{\pgfqpoint{1.599995in}{0.822462in}}% +\pgfpathlineto{\pgfqpoint{1.631275in}{0.794859in}}% +\pgfpathlineto{\pgfqpoint{1.662555in}{0.767917in}}% +\pgfpathlineto{\pgfqpoint{1.693834in}{0.741781in}}% +\pgfpathlineto{\pgfqpoint{1.725114in}{0.716598in}}% +\pgfpathlineto{\pgfqpoint{1.756393in}{0.692523in}}% +\pgfpathlineto{\pgfqpoint{1.787673in}{0.669711in}}% +\pgfpathlineto{\pgfqpoint{1.818952in}{0.648326in}}% +\pgfpathlineto{\pgfqpoint{1.850232in}{0.628534in}}% +\pgfpathlineto{\pgfqpoint{1.881511in}{0.610505in}}% +\pgfpathlineto{\pgfqpoint{1.912791in}{0.594414in}}% +\pgfpathlineto{\pgfqpoint{1.944070in}{0.580441in}}% +\pgfpathlineto{\pgfqpoint{1.975350in}{0.568771in}}% +\pgfpathlineto{\pgfqpoint{2.006629in}{0.559591in}}% +\pgfpathlineto{\pgfqpoint{2.037909in}{0.553095in}}% +\pgfpathlineto{\pgfqpoint{2.069189in}{0.549479in}}% +\pgfpathlineto{\pgfqpoint{2.100468in}{0.548946in}}% +\pgfpathlineto{\pgfqpoint{2.131748in}{0.551703in}}% +\pgfpathlineto{\pgfqpoint{2.163027in}{0.557958in}}% +\pgfpathlineto{\pgfqpoint{2.194307in}{0.567929in}}% +\pgfpathlineto{\pgfqpoint{2.225586in}{0.581833in}}% +\pgfpathlineto{\pgfqpoint{2.256866in}{0.599896in}}% +\pgfpathlineto{\pgfqpoint{2.288145in}{0.622346in}}% +\pgfpathlineto{\pgfqpoint{2.319425in}{0.649414in}}% +\pgfpathlineto{\pgfqpoint{2.350704in}{0.681340in}}% +\pgfpathlineto{\pgfqpoint{2.381984in}{0.718364in}}% +\pgfpathlineto{\pgfqpoint{2.413263in}{0.760732in}}% +\pgfpathlineto{\pgfqpoint{2.444543in}{0.808696in}}% +\pgfpathlineto{\pgfqpoint{2.475823in}{0.862510in}}% +\pgfpathlineto{\pgfqpoint{2.507102in}{0.922433in}}% +\pgfpathlineto{\pgfqpoint{2.538382in}{0.988730in}}% +\pgfpathlineto{\pgfqpoint{2.569661in}{1.061668in}}% +\pgfpathlineto{\pgfqpoint{2.600941in}{1.141521in}}% +\pgfpathlineto{\pgfqpoint{2.632220in}{1.228566in}}% +\pgfpathlineto{\pgfqpoint{2.663500in}{1.323084in}}% +\pgfpathlineto{\pgfqpoint{2.694779in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{2.726059in}{1.535689in}}% +\pgfpathlineto{\pgfqpoint{2.757338in}{1.654362in}}% +\pgfpathlineto{\pgfqpoint{2.788618in}{1.781678in}}% +\pgfpathlineto{\pgfqpoint{2.819897in}{1.917942in}}% +\pgfpathlineto{\pgfqpoint{2.851177in}{2.063463in}}% +\pgfpathlineto{\pgfqpoint{2.882457in}{2.218553in}}% +\pgfpathlineto{\pgfqpoint{2.900903in}{2.315844in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{0.172549,0.627451,0.172549}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.661609in}{0.550579in}}% +\pgfpathlineto{\pgfqpoint{0.692889in}{0.555996in}}% +\pgfpathlineto{\pgfqpoint{0.724168in}{0.564979in}}% +\pgfpathlineto{\pgfqpoint{0.755448in}{0.577464in}}% +\pgfpathlineto{\pgfqpoint{0.786727in}{0.593357in}}% +\pgfpathlineto{\pgfqpoint{0.818007in}{0.612541in}}% +\pgfpathlineto{\pgfqpoint{0.849287in}{0.634873in}}% +\pgfpathlineto{\pgfqpoint{0.880566in}{0.660185in}}% +\pgfpathlineto{\pgfqpoint{0.911846in}{0.688287in}}% +\pgfpathlineto{\pgfqpoint{0.943125in}{0.718965in}}% +\pgfpathlineto{\pgfqpoint{0.974405in}{0.751984in}}% +\pgfpathlineto{\pgfqpoint{1.005684in}{0.787089in}}% +\pgfpathlineto{\pgfqpoint{1.036964in}{0.824004in}}% +\pgfpathlineto{\pgfqpoint{1.068243in}{0.862437in}}% +\pgfpathlineto{\pgfqpoint{1.099523in}{0.902078in}}% +\pgfpathlineto{\pgfqpoint{1.130802in}{0.942605in}}% +\pgfpathlineto{\pgfqpoint{1.162082in}{0.983681in}}% +\pgfpathlineto{\pgfqpoint{1.193361in}{1.024958in}}% +\pgfpathlineto{\pgfqpoint{1.224641in}{1.066081in}}% +\pgfpathlineto{\pgfqpoint{1.255921in}{1.106686in}}% +\pgfpathlineto{\pgfqpoint{1.287200in}{1.146406in}}% +\pgfpathlineto{\pgfqpoint{1.318480in}{1.184870in}}% +\pgfpathlineto{\pgfqpoint{1.349759in}{1.221710in}}% +\pgfpathlineto{\pgfqpoint{1.381039in}{1.256559in}}% +\pgfpathlineto{\pgfqpoint{1.412318in}{1.289056in}}% +\pgfpathlineto{\pgfqpoint{1.443598in}{1.318849in}}% +\pgfpathlineto{\pgfqpoint{1.474877in}{1.345598in}}% +\pgfpathlineto{\pgfqpoint{1.506157in}{1.368977in}}% +\pgfpathlineto{\pgfqpoint{1.537436in}{1.388677in}}% +\pgfpathlineto{\pgfqpoint{1.568716in}{1.404413in}}% +\pgfpathlineto{\pgfqpoint{1.599995in}{1.415923in}}% +\pgfpathlineto{\pgfqpoint{1.631275in}{1.422973in}}% +\pgfpathlineto{\pgfqpoint{1.662555in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{1.693834in}{1.422924in}}% +\pgfpathlineto{\pgfqpoint{1.725114in}{1.415535in}}% +\pgfpathlineto{\pgfqpoint{1.756393in}{1.403113in}}% +\pgfpathlineto{\pgfqpoint{1.787673in}{1.385624in}}% +\pgfpathlineto{\pgfqpoint{1.818952in}{1.363088in}}% +\pgfpathlineto{\pgfqpoint{1.850232in}{1.335583in}}% +\pgfpathlineto{\pgfqpoint{1.881511in}{1.303245in}}% +\pgfpathlineto{\pgfqpoint{1.912791in}{1.266280in}}% +\pgfpathlineto{\pgfqpoint{1.944070in}{1.224962in}}% +\pgfpathlineto{\pgfqpoint{1.975350in}{1.179644in}}% +\pgfpathlineto{\pgfqpoint{2.006629in}{1.130759in}}% +\pgfpathlineto{\pgfqpoint{2.037909in}{1.078826in}}% +\pgfpathlineto{\pgfqpoint{2.069189in}{1.024455in}}% +\pgfpathlineto{\pgfqpoint{2.100468in}{0.968355in}}% +\pgfpathlineto{\pgfqpoint{2.131748in}{0.911337in}}% +\pgfpathlineto{\pgfqpoint{2.163027in}{0.854319in}}% +\pgfpathlineto{\pgfqpoint{2.194307in}{0.798335in}}% +\pgfpathlineto{\pgfqpoint{2.225586in}{0.744537in}}% +\pgfpathlineto{\pgfqpoint{2.256866in}{0.694207in}}% +\pgfpathlineto{\pgfqpoint{2.288145in}{0.648754in}}% +\pgfpathlineto{\pgfqpoint{2.319425in}{0.609730in}}% +\pgfpathlineto{\pgfqpoint{2.350704in}{0.578830in}}% +\pgfpathlineto{\pgfqpoint{2.381984in}{0.557901in}}% +\pgfpathlineto{\pgfqpoint{2.413263in}{0.548947in}}% +\pgfpathlineto{\pgfqpoint{2.444543in}{0.554140in}}% +\pgfpathlineto{\pgfqpoint{2.475823in}{0.575820in}}% +\pgfpathlineto{\pgfqpoint{2.507102in}{0.616509in}}% +\pgfpathlineto{\pgfqpoint{2.538382in}{0.678913in}}% +\pgfpathlineto{\pgfqpoint{2.569661in}{0.765934in}}% +\pgfpathlineto{\pgfqpoint{2.600941in}{0.880671in}}% +\pgfpathlineto{\pgfqpoint{2.632220in}{1.026434in}}% +\pgfpathlineto{\pgfqpoint{2.663500in}{1.206748in}}% +\pgfpathlineto{\pgfqpoint{2.694779in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{2.726059in}{1.686256in}}% +\pgfpathlineto{\pgfqpoint{2.757338in}{1.993649in}}% +\pgfpathlineto{\pgfqpoint{2.785461in}{2.315844in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630330in}{0.548769in}}{\pgfqpoint{3.096674in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{0.839216,0.152941,0.156863}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{0.661609in}{1.422146in}}% +\pgfpathlineto{\pgfqpoint{0.692889in}{1.412542in}}% +\pgfpathlineto{\pgfqpoint{0.724168in}{1.396682in}}% +\pgfpathlineto{\pgfqpoint{0.755448in}{1.374785in}}% +\pgfpathlineto{\pgfqpoint{0.786727in}{1.347155in}}% +\pgfpathlineto{\pgfqpoint{0.818007in}{1.314175in}}% +\pgfpathlineto{\pgfqpoint{0.849287in}{1.276306in}}% +\pgfpathlineto{\pgfqpoint{0.880566in}{1.234079in}}% +\pgfpathlineto{\pgfqpoint{0.911846in}{1.188091in}}% +\pgfpathlineto{\pgfqpoint{0.943125in}{1.138997in}}% +\pgfpathlineto{\pgfqpoint{0.974405in}{1.087504in}}% +\pgfpathlineto{\pgfqpoint{1.005684in}{1.034360in}}% +\pgfpathlineto{\pgfqpoint{1.036964in}{0.980345in}}% +\pgfpathlineto{\pgfqpoint{1.068243in}{0.926267in}}% +\pgfpathlineto{\pgfqpoint{1.099523in}{0.872943in}}% +\pgfpathlineto{\pgfqpoint{1.130802in}{0.821195in}}% +\pgfpathlineto{\pgfqpoint{1.162082in}{0.771836in}}% +\pgfpathlineto{\pgfqpoint{1.193361in}{0.725662in}}% +\pgfpathlineto{\pgfqpoint{1.224641in}{0.683436in}}% +\pgfpathlineto{\pgfqpoint{1.255921in}{0.645879in}}% +\pgfpathlineto{\pgfqpoint{1.287200in}{0.613660in}}% +\pgfpathlineto{\pgfqpoint{1.318480in}{0.587381in}}% +\pgfpathlineto{\pgfqpoint{1.349759in}{0.567570in}}% +\pgfpathlineto{\pgfqpoint{1.381039in}{0.554667in}}% +\pgfpathlineto{\pgfqpoint{1.412318in}{0.549018in}}% +\pgfpathlineto{\pgfqpoint{1.443598in}{0.550860in}}% +\pgfpathlineto{\pgfqpoint{1.474877in}{0.560318in}}% +\pgfpathlineto{\pgfqpoint{1.506157in}{0.577394in}}% +\pgfpathlineto{\pgfqpoint{1.537436in}{0.601962in}}% +\pgfpathlineto{\pgfqpoint{1.568716in}{0.633764in}}% +\pgfpathlineto{\pgfqpoint{1.599995in}{0.672404in}}% +\pgfpathlineto{\pgfqpoint{1.631275in}{0.717346in}}% +\pgfpathlineto{\pgfqpoint{1.662555in}{0.767917in}}% +\pgfpathlineto{\pgfqpoint{1.693834in}{0.823307in}}% +\pgfpathlineto{\pgfqpoint{1.725114in}{0.882572in}}% +\pgfpathlineto{\pgfqpoint{1.756393in}{0.944644in}}% +\pgfpathlineto{\pgfqpoint{1.787673in}{1.008337in}}% +\pgfpathlineto{\pgfqpoint{1.818952in}{1.072360in}}% +\pgfpathlineto{\pgfqpoint{1.850232in}{1.135334in}}% +\pgfpathlineto{\pgfqpoint{1.881511in}{1.195810in}}% +\pgfpathlineto{\pgfqpoint{1.912791in}{1.252288in}}% +\pgfpathlineto{\pgfqpoint{1.944070in}{1.303249in}}% +\pgfpathlineto{\pgfqpoint{1.975350in}{1.347179in}}% +\pgfpathlineto{\pgfqpoint{2.006629in}{1.382608in}}% +\pgfpathlineto{\pgfqpoint{2.037909in}{1.408144in}}% +\pgfpathlineto{\pgfqpoint{2.069189in}{1.422523in}}% +\pgfpathlineto{\pgfqpoint{2.100468in}{1.424652in}}% +\pgfpathlineto{\pgfqpoint{2.131748in}{1.413666in}}% +\pgfpathlineto{\pgfqpoint{2.163027in}{1.388989in}}% +\pgfpathlineto{\pgfqpoint{2.194307in}{1.350397in}}% +\pgfpathlineto{\pgfqpoint{2.225586in}{1.298092in}}% +\pgfpathlineto{\pgfqpoint{2.256866in}{1.232780in}}% +\pgfpathlineto{\pgfqpoint{2.288145in}{1.155757in}}% +\pgfpathlineto{\pgfqpoint{2.319425in}{1.069002in}}% +\pgfpathlineto{\pgfqpoint{2.350704in}{0.975275in}}% +\pgfpathlineto{\pgfqpoint{2.381984in}{0.878228in}}% +\pgfpathlineto{\pgfqpoint{2.413263in}{0.782522in}}% +\pgfpathlineto{\pgfqpoint{2.444543in}{0.693947in}}% +\pgfpathlineto{\pgfqpoint{2.475823in}{0.619562in}}% +\pgfpathlineto{\pgfqpoint{2.507102in}{0.567831in}}% +\pgfpathlineto{\pgfqpoint{2.538382in}{0.548781in}}% +\pgfpathlineto{\pgfqpoint{2.569661in}{0.574165in}}% +\pgfpathlineto{\pgfqpoint{2.600941in}{0.657630in}}% +\pgfpathlineto{\pgfqpoint{2.632220in}{0.814902in}}% +\pgfpathlineto{\pgfqpoint{2.663500in}{1.063985in}}% +\pgfpathlineto{\pgfqpoint{2.694779in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{2.726059in}{1.922215in}}% +\pgfpathlineto{\pgfqpoint{2.744758in}{2.315844in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.630330in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{3.727004in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{0.548769in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630330in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{3.727004in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetfillopacity{0.800000}% +\pgfsetlinewidth{1.003750pt}% +\definecolor{currentstroke}{rgb}{0.800000,0.800000,0.800000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.800000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.803974in}{0.618213in}}% +\pgfpathlineto{\pgfqpoint{3.629782in}{0.618213in}}% +\pgfpathquadraticcurveto{\pgfqpoint{3.657560in}{0.618213in}}{\pgfqpoint{3.657560in}{0.645991in}}% +\pgfpathlineto{\pgfqpoint{3.657560in}{1.406793in}}% +\pgfpathquadraticcurveto{\pgfqpoint{3.657560in}{1.434571in}}{\pgfqpoint{3.629782in}{1.434571in}}% +\pgfpathlineto{\pgfqpoint{2.803974in}{1.434571in}}% +\pgfpathquadraticcurveto{\pgfqpoint{2.776196in}{1.434571in}}{\pgfqpoint{2.776196in}{1.406793in}}% +\pgfpathlineto{\pgfqpoint{2.776196in}{0.645991in}}% +\pgfpathquadraticcurveto{\pgfqpoint{2.776196in}{0.618213in}}{\pgfqpoint{2.803974in}{0.618213in}}% +\pgfpathlineto{\pgfqpoint{2.803974in}{0.618213in}}% +\pgfpathclose% +\pgfusepath{stroke,fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.831751in}{1.330404in}}% +\pgfpathlineto{\pgfqpoint{2.970640in}{1.330404in}}% +\pgfpathlineto{\pgfqpoint{3.109529in}{1.330404in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.220640in,y=1.281793in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle N=1\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{1.000000,0.498039,0.054902}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.831751in}{1.136732in}}% +\pgfpathlineto{\pgfqpoint{2.970640in}{1.136732in}}% +\pgfpathlineto{\pgfqpoint{3.109529in}{1.136732in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.220640in,y=1.088120in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle N=2\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{0.172549,0.627451,0.172549}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.831751in}{0.943059in}}% +\pgfpathlineto{\pgfqpoint{2.970640in}{0.943059in}}% +\pgfpathlineto{\pgfqpoint{3.109529in}{0.943059in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.220640in,y=0.894448in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle N=3\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{0.839216,0.152941,0.156863}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.831751in}{0.749386in}}% +\pgfpathlineto{\pgfqpoint{2.970640in}{0.749386in}}% +\pgfpathlineto{\pgfqpoint{3.109529in}{0.749386in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.220640in,y=0.700775in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle N=4\)}% +\end{pgfscope}% +\end{pgfpicture}% +\makeatother% +\endgroup% diff --git a/buch/papers/ellfilter/python/F_N_chebychev2.pgf b/buch/papers/ellfilter/python/F_N_chebychev2.pgf new file mode 100644 index 0000000..43ebb91 --- /dev/null +++ b/buch/papers/ellfilter/python/F_N_chebychev2.pgf @@ -0,0 +1,1023 @@ +%% Creator: Matplotlib, PGF backend +%% +%% To include the figure in your LaTeX document, write +%% \input{<filename>.pgf} +%% +%% Make sure the required packages are loaded in your preamble +%% \usepackage{pgf} +%% +%% Also ensure that all the required font packages are loaded; for instance, +%% the lmodern package is sometimes necessary when using math font. +%% \usepackage{lmodern} +%% +%% Figures using additional raster images can only be included by \input if +%% they are in the same directory as the main LaTeX file. For loading figures +%% from other directories you can use the `import` package +%% \usepackage{import} +%% +%% and then include the figures with +%% \import{<path to file>}{<filename>.pgf} +%% +%% Matplotlib used the following preamble +%% +\begingroup% +\makeatletter% +\begin{pgfpicture}% +\pgfpathrectangle{\pgfpointorigin}{\pgfqpoint{5.500000in}{2.500000in}}% +\pgfusepath{use as bounding box, clip}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.000000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{5.500000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{5.500000in}{2.500000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{2.500000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathclose% +\pgfusepath{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.000000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{5.350000in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{5.350000in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{0.617954in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{0.617954in}{0.548769in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{4.732046in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{1.012292in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{1.012292in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.012292in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.012292in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {\ensuremath{-}1.0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{4.732046in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{1.998134in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{1.998134in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.998134in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.998134in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {\ensuremath{-}0.5}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{4.732046in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.983977in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.983977in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.983977in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.983977in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{4.732046in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{3.969820in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.969820in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.969820in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.969820in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.5}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{4.732046in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{4.955663in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.955663in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.955663in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=4.955663in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.983977in,y=0.272534in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle w\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{4.732046in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{5.350000in}{0.548769in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.617954in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.343262in, y=0.500544in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {\ensuremath{-}2}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{4.732046in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{0.987065in}}% +\pgfpathlineto{\pgfqpoint{5.350000in}{0.987065in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.617954in}{0.987065in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.343262in, y=0.938840in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {\ensuremath{-}1}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{4.732046in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{1.425362in}}% +\pgfpathlineto{\pgfqpoint{5.350000in}{1.425362in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.617954in}{1.425362in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.451287in, y=1.377137in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{4.732046in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{1.863658in}}% +\pgfpathlineto{\pgfqpoint{5.350000in}{1.863658in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.617954in}{1.863658in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.451287in, y=1.815433in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{4.732046in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{5.350000in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.617954in}{2.301955in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.451287in, y=2.253730in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {2}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.287707in,y=1.425362in,,bottom,rotate=90.000000]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle T_N(w)\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{4.732046in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.815123in}{0.538250in}}% +\pgfpathlineto{\pgfqpoint{0.867228in}{0.667673in}}% +\pgfpathlineto{\pgfqpoint{0.919332in}{0.789210in}}% +\pgfpathlineto{\pgfqpoint{0.971437in}{0.903055in}}% +\pgfpathlineto{\pgfqpoint{1.023541in}{1.009402in}}% +\pgfpathlineto{\pgfqpoint{1.075646in}{1.108444in}}% +\pgfpathlineto{\pgfqpoint{1.123409in}{1.192982in}}% +\pgfpathlineto{\pgfqpoint{1.171171in}{1.271695in}}% +\pgfpathlineto{\pgfqpoint{1.218934in}{1.344733in}}% +\pgfpathlineto{\pgfqpoint{1.266696in}{1.412244in}}% +\pgfpathlineto{\pgfqpoint{1.314459in}{1.474380in}}% +\pgfpathlineto{\pgfqpoint{1.362221in}{1.531289in}}% +\pgfpathlineto{\pgfqpoint{1.409984in}{1.583121in}}% +\pgfpathlineto{\pgfqpoint{1.453404in}{1.625960in}}% +\pgfpathlineto{\pgfqpoint{1.496825in}{1.664840in}}% +\pgfpathlineto{\pgfqpoint{1.540245in}{1.699871in}}% +\pgfpathlineto{\pgfqpoint{1.583666in}{1.731168in}}% +\pgfpathlineto{\pgfqpoint{1.627086in}{1.758841in}}% +\pgfpathlineto{\pgfqpoint{1.670507in}{1.783003in}}% +\pgfpathlineto{\pgfqpoint{1.713927in}{1.803767in}}% +\pgfpathlineto{\pgfqpoint{1.757348in}{1.821245in}}% +\pgfpathlineto{\pgfqpoint{1.800768in}{1.835549in}}% +\pgfpathlineto{\pgfqpoint{1.844189in}{1.846792in}}% +\pgfpathlineto{\pgfqpoint{1.887609in}{1.855086in}}% +\pgfpathlineto{\pgfqpoint{1.935372in}{1.860937in}}% +\pgfpathlineto{\pgfqpoint{1.983135in}{1.863505in}}% +\pgfpathlineto{\pgfqpoint{2.030897in}{1.862940in}}% +\pgfpathlineto{\pgfqpoint{2.078660in}{1.859391in}}% +\pgfpathlineto{\pgfqpoint{2.130764in}{1.852293in}}% +\pgfpathlineto{\pgfqpoint{2.182869in}{1.842015in}}% +\pgfpathlineto{\pgfqpoint{2.239316in}{1.827518in}}% +\pgfpathlineto{\pgfqpoint{2.295762in}{1.809766in}}% +\pgfpathlineto{\pgfqpoint{2.356551in}{1.787290in}}% +\pgfpathlineto{\pgfqpoint{2.421682in}{1.759685in}}% +\pgfpathlineto{\pgfqpoint{2.491154in}{1.726641in}}% +\pgfpathlineto{\pgfqpoint{2.564969in}{1.687966in}}% +\pgfpathlineto{\pgfqpoint{2.647468in}{1.641059in}}% +\pgfpathlineto{\pgfqpoint{2.738651in}{1.585589in}}% +\pgfpathlineto{\pgfqpoint{2.851545in}{1.513148in}}% +\pgfpathlineto{\pgfqpoint{3.064305in}{1.371911in}}% +\pgfpathlineto{\pgfqpoint{3.207593in}{1.278793in}}% +\pgfpathlineto{\pgfqpoint{3.307460in}{1.217378in}}% +\pgfpathlineto{\pgfqpoint{3.394301in}{1.167524in}}% +\pgfpathlineto{\pgfqpoint{3.472458in}{1.126261in}}% +\pgfpathlineto{\pgfqpoint{3.541931in}{1.093000in}}% +\pgfpathlineto{\pgfqpoint{3.607061in}{1.065165in}}% +\pgfpathlineto{\pgfqpoint{3.667850in}{1.042451in}}% +\pgfpathlineto{\pgfqpoint{3.724297in}{1.024458in}}% +\pgfpathlineto{\pgfqpoint{3.780743in}{1.009703in}}% +\pgfpathlineto{\pgfqpoint{3.832848in}{0.999169in}}% +\pgfpathlineto{\pgfqpoint{3.884953in}{0.991798in}}% +\pgfpathlineto{\pgfqpoint{3.932715in}{0.987985in}}% +\pgfpathlineto{\pgfqpoint{3.980478in}{0.987142in}}% +\pgfpathlineto{\pgfqpoint{4.028240in}{0.989420in}}% +\pgfpathlineto{\pgfqpoint{4.076003in}{0.994966in}}% +\pgfpathlineto{\pgfqpoint{4.119423in}{1.002971in}}% +\pgfpathlineto{\pgfqpoint{4.162844in}{1.013914in}}% +\pgfpathlineto{\pgfqpoint{4.206264in}{1.027907in}}% +\pgfpathlineto{\pgfqpoint{4.249685in}{1.045063in}}% +\pgfpathlineto{\pgfqpoint{4.293105in}{1.065493in}}% +\pgfpathlineto{\pgfqpoint{4.336526in}{1.089310in}}% +\pgfpathlineto{\pgfqpoint{4.379946in}{1.116627in}}% +\pgfpathlineto{\pgfqpoint{4.423367in}{1.147556in}}% +\pgfpathlineto{\pgfqpoint{4.466787in}{1.182209in}}% +\pgfpathlineto{\pgfqpoint{4.510208in}{1.220699in}}% +\pgfpathlineto{\pgfqpoint{4.553628in}{1.263138in}}% +\pgfpathlineto{\pgfqpoint{4.597049in}{1.309638in}}% +\pgfpathlineto{\pgfqpoint{4.644812in}{1.365612in}}% +\pgfpathlineto{\pgfqpoint{4.692574in}{1.426786in}}% +\pgfpathlineto{\pgfqpoint{4.740337in}{1.493310in}}% +\pgfpathlineto{\pgfqpoint{4.788099in}{1.565332in}}% +\pgfpathlineto{\pgfqpoint{4.835862in}{1.643002in}}% +\pgfpathlineto{\pgfqpoint{4.883624in}{1.726469in}}% +\pgfpathlineto{\pgfqpoint{4.931387in}{1.815884in}}% +\pgfpathlineto{\pgfqpoint{4.983491in}{1.920387in}}% +\pgfpathlineto{\pgfqpoint{5.035596in}{2.032338in}}% +\pgfpathlineto{\pgfqpoint{5.087701in}{2.151934in}}% +\pgfpathlineto{\pgfqpoint{5.139805in}{2.279368in}}% +\pgfpathlineto{\pgfqpoint{5.152831in}{2.312474in}}% +\pgfpathlineto{\pgfqpoint{5.152831in}{2.312474in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{4.732046in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{1.000000,0.498039,0.054902}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.963285in}{2.315844in}}% +\pgfpathlineto{\pgfqpoint{0.988805in}{2.065008in}}% +\pgfpathlineto{\pgfqpoint{1.014857in}{1.843281in}}% +\pgfpathlineto{\pgfqpoint{1.036568in}{1.682977in}}% +\pgfpathlineto{\pgfqpoint{1.058278in}{1.543280in}}% +\pgfpathlineto{\pgfqpoint{1.079988in}{1.422723in}}% +\pgfpathlineto{\pgfqpoint{1.101698in}{1.319903in}}% +\pgfpathlineto{\pgfqpoint{1.123409in}{1.233476in}}% +\pgfpathlineto{\pgfqpoint{1.140777in}{1.175276in}}% +\pgfpathlineto{\pgfqpoint{1.158145in}{1.126117in}}% +\pgfpathlineto{\pgfqpoint{1.175513in}{1.085395in}}% +\pgfpathlineto{\pgfqpoint{1.192881in}{1.052526in}}% +\pgfpathlineto{\pgfqpoint{1.210250in}{1.026952in}}% +\pgfpathlineto{\pgfqpoint{1.223276in}{1.012233in}}% +\pgfpathlineto{\pgfqpoint{1.236302in}{1.001095in}}% +\pgfpathlineto{\pgfqpoint{1.249328in}{0.993325in}}% +\pgfpathlineto{\pgfqpoint{1.262354in}{0.988718in}}% +\pgfpathlineto{\pgfqpoint{1.275380in}{0.987075in}}% +\pgfpathlineto{\pgfqpoint{1.288407in}{0.988202in}}% +\pgfpathlineto{\pgfqpoint{1.301433in}{0.991914in}}% +\pgfpathlineto{\pgfqpoint{1.318801in}{1.000572in}}% +\pgfpathlineto{\pgfqpoint{1.336169in}{1.013093in}}% +\pgfpathlineto{\pgfqpoint{1.353537in}{1.029086in}}% +\pgfpathlineto{\pgfqpoint{1.375248in}{1.053389in}}% +\pgfpathlineto{\pgfqpoint{1.401300in}{1.087971in}}% +\pgfpathlineto{\pgfqpoint{1.431694in}{1.134386in}}% +\pgfpathlineto{\pgfqpoint{1.466431in}{1.193454in}}% +\pgfpathlineto{\pgfqpoint{1.514193in}{1.281335in}}% +\pgfpathlineto{\pgfqpoint{1.648797in}{1.533319in}}% +\pgfpathlineto{\pgfqpoint{1.692217in}{1.606504in}}% +\pgfpathlineto{\pgfqpoint{1.731296in}{1.666194in}}% +\pgfpathlineto{\pgfqpoint{1.766032in}{1.713499in}}% +\pgfpathlineto{\pgfqpoint{1.796426in}{1.750004in}}% +\pgfpathlineto{\pgfqpoint{1.826821in}{1.781659in}}% +\pgfpathlineto{\pgfqpoint{1.852873in}{1.804782in}}% +\pgfpathlineto{\pgfqpoint{1.878925in}{1.824113in}}% +\pgfpathlineto{\pgfqpoint{1.904978in}{1.839604in}}% +\pgfpathlineto{\pgfqpoint{1.931030in}{1.851242in}}% +\pgfpathlineto{\pgfqpoint{1.957082in}{1.859041in}}% +\pgfpathlineto{\pgfqpoint{1.983135in}{1.863047in}}% +\pgfpathlineto{\pgfqpoint{2.009187in}{1.863329in}}% +\pgfpathlineto{\pgfqpoint{2.035239in}{1.859984in}}% +\pgfpathlineto{\pgfqpoint{2.061291in}{1.853128in}}% +\pgfpathlineto{\pgfqpoint{2.087344in}{1.842898in}}% +\pgfpathlineto{\pgfqpoint{2.113396in}{1.829452in}}% +\pgfpathlineto{\pgfqpoint{2.143790in}{1.809929in}}% +\pgfpathlineto{\pgfqpoint{2.174185in}{1.786560in}}% +\pgfpathlineto{\pgfqpoint{2.208921in}{1.755558in}}% +\pgfpathlineto{\pgfqpoint{2.243658in}{1.720467in}}% +\pgfpathlineto{\pgfqpoint{2.282736in}{1.676770in}}% +\pgfpathlineto{\pgfqpoint{2.330499in}{1.618420in}}% +\pgfpathlineto{\pgfqpoint{2.386945in}{1.544378in}}% +\pgfpathlineto{\pgfqpoint{2.491154in}{1.401257in}}% +\pgfpathlineto{\pgfqpoint{2.573653in}{1.290423in}}% +\pgfpathlineto{\pgfqpoint{2.630100in}{1.219842in}}% +\pgfpathlineto{\pgfqpoint{2.677863in}{1.165204in}}% +\pgfpathlineto{\pgfqpoint{2.716941in}{1.124786in}}% +\pgfpathlineto{\pgfqpoint{2.756020in}{1.088796in}}% +\pgfpathlineto{\pgfqpoint{2.790756in}{1.060903in}}% +\pgfpathlineto{\pgfqpoint{2.825492in}{1.037164in}}% +\pgfpathlineto{\pgfqpoint{2.855887in}{1.019988in}}% +\pgfpathlineto{\pgfqpoint{2.886281in}{1.006308in}}% +\pgfpathlineto{\pgfqpoint{2.916675in}{0.996229in}}% +\pgfpathlineto{\pgfqpoint{2.947070in}{0.989827in}}% +\pgfpathlineto{\pgfqpoint{2.973122in}{0.987304in}}% +\pgfpathlineto{\pgfqpoint{2.999174in}{0.987534in}}% +\pgfpathlineto{\pgfqpoint{3.025227in}{0.990514in}}% +\pgfpathlineto{\pgfqpoint{3.051279in}{0.996229in}}% +\pgfpathlineto{\pgfqpoint{3.081673in}{1.006308in}}% +\pgfpathlineto{\pgfqpoint{3.112068in}{1.019988in}}% +\pgfpathlineto{\pgfqpoint{3.142462in}{1.037164in}}% +\pgfpathlineto{\pgfqpoint{3.172856in}{1.057704in}}% +\pgfpathlineto{\pgfqpoint{3.207593in}{1.085092in}}% +\pgfpathlineto{\pgfqpoint{3.242329in}{1.116388in}}% +\pgfpathlineto{\pgfqpoint{3.281408in}{1.155866in}}% +\pgfpathlineto{\pgfqpoint{3.324828in}{1.204423in}}% +\pgfpathlineto{\pgfqpoint{3.372591in}{1.262618in}}% +\pgfpathlineto{\pgfqpoint{3.433379in}{1.342111in}}% +\pgfpathlineto{\pgfqpoint{3.533247in}{1.479174in}}% +\pgfpathlineto{\pgfqpoint{3.615746in}{1.590473in}}% +\pgfpathlineto{\pgfqpoint{3.667850in}{1.656113in}}% +\pgfpathlineto{\pgfqpoint{3.711271in}{1.706362in}}% +\pgfpathlineto{\pgfqpoint{3.750349in}{1.747148in}}% +\pgfpathlineto{\pgfqpoint{3.785086in}{1.779222in}}% +\pgfpathlineto{\pgfqpoint{3.815480in}{1.803631in}}% +\pgfpathlineto{\pgfqpoint{3.845874in}{1.824284in}}% +\pgfpathlineto{\pgfqpoint{3.876269in}{1.840876in}}% +\pgfpathlineto{\pgfqpoint{3.902321in}{1.851653in}}% +\pgfpathlineto{\pgfqpoint{3.928373in}{1.859081in}}% +\pgfpathlineto{\pgfqpoint{3.954425in}{1.863021in}}% +\pgfpathlineto{\pgfqpoint{3.980478in}{1.863350in}}% +\pgfpathlineto{\pgfqpoint{4.002188in}{1.860795in}}% +\pgfpathlineto{\pgfqpoint{4.023898in}{1.855619in}}% +\pgfpathlineto{\pgfqpoint{4.049951in}{1.845904in}}% +\pgfpathlineto{\pgfqpoint{4.076003in}{1.832340in}}% +\pgfpathlineto{\pgfqpoint{4.102055in}{1.814925in}}% +\pgfpathlineto{\pgfqpoint{4.128108in}{1.793690in}}% +\pgfpathlineto{\pgfqpoint{4.154160in}{1.768700in}}% +\pgfpathlineto{\pgfqpoint{4.184554in}{1.734938in}}% +\pgfpathlineto{\pgfqpoint{4.214949in}{1.696434in}}% +\pgfpathlineto{\pgfqpoint{4.249685in}{1.647018in}}% +\pgfpathlineto{\pgfqpoint{4.288763in}{1.585242in}}% +\pgfpathlineto{\pgfqpoint{4.332184in}{1.510192in}}% +\pgfpathlineto{\pgfqpoint{4.388631in}{1.405562in}}% +\pgfpathlineto{\pgfqpoint{4.505866in}{1.185791in}}% +\pgfpathlineto{\pgfqpoint{4.544944in}{1.120547in}}% +\pgfpathlineto{\pgfqpoint{4.575339in}{1.075851in}}% +\pgfpathlineto{\pgfqpoint{4.601391in}{1.043132in}}% +\pgfpathlineto{\pgfqpoint{4.623101in}{1.020680in}}% +\pgfpathlineto{\pgfqpoint{4.640469in}{1.006375in}}% +\pgfpathlineto{\pgfqpoint{4.657838in}{0.995735in}}% +\pgfpathlineto{\pgfqpoint{4.675206in}{0.989161in}}% +\pgfpathlineto{\pgfqpoint{4.688232in}{0.987152in}}% +\pgfpathlineto{\pgfqpoint{4.701258in}{0.987850in}}% +\pgfpathlineto{\pgfqpoint{4.714284in}{0.991448in}}% +\pgfpathlineto{\pgfqpoint{4.727310in}{0.998141in}}% +\pgfpathlineto{\pgfqpoint{4.740337in}{1.008133in}}% +\pgfpathlineto{\pgfqpoint{4.753363in}{1.021634in}}% +\pgfpathlineto{\pgfqpoint{4.766389in}{1.038861in}}% +\pgfpathlineto{\pgfqpoint{4.783757in}{1.068014in}}% +\pgfpathlineto{\pgfqpoint{4.801125in}{1.104738in}}% +\pgfpathlineto{\pgfqpoint{4.818494in}{1.149605in}}% +\pgfpathlineto{\pgfqpoint{4.835862in}{1.203207in}}% +\pgfpathlineto{\pgfqpoint{4.853230in}{1.266163in}}% +\pgfpathlineto{\pgfqpoint{4.870598in}{1.339113in}}% +\pgfpathlineto{\pgfqpoint{4.892308in}{1.445372in}}% +\pgfpathlineto{\pgfqpoint{4.914019in}{1.569642in}}% +\pgfpathlineto{\pgfqpoint{4.935729in}{1.713341in}}% +\pgfpathlineto{\pgfqpoint{4.957439in}{1.877948in}}% +\pgfpathlineto{\pgfqpoint{4.979149in}{2.065008in}}% +\pgfpathlineto{\pgfqpoint{5.004669in}{2.315844in}}% +\pgfpathlineto{\pgfqpoint{5.004669in}{2.315844in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{4.732046in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{0.172549,0.627451,0.172549}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.997762in}{0.534880in}}% +\pgfpathlineto{\pgfqpoint{1.010515in}{0.938420in}}% +\pgfpathlineto{\pgfqpoint{1.023541in}{1.256633in}}% +\pgfpathlineto{\pgfqpoint{1.036568in}{1.493946in}}% +\pgfpathlineto{\pgfqpoint{1.049594in}{1.662731in}}% +\pgfpathlineto{\pgfqpoint{1.058278in}{1.742696in}}% +\pgfpathlineto{\pgfqpoint{1.066962in}{1.800120in}}% +\pgfpathlineto{\pgfqpoint{1.075646in}{1.837754in}}% +\pgfpathlineto{\pgfqpoint{1.084330in}{1.858134in}}% +\pgfpathlineto{\pgfqpoint{1.088672in}{1.862591in}}% +\pgfpathlineto{\pgfqpoint{1.093014in}{1.863596in}}% +\pgfpathlineto{\pgfqpoint{1.097356in}{1.861410in}}% +\pgfpathlineto{\pgfqpoint{1.101698in}{1.856284in}}% +\pgfpathlineto{\pgfqpoint{1.110382in}{1.838165in}}% +\pgfpathlineto{\pgfqpoint{1.119067in}{1.811034in}}% +\pgfpathlineto{\pgfqpoint{1.132093in}{1.756980in}}% +\pgfpathlineto{\pgfqpoint{1.149461in}{1.667415in}}% +\pgfpathlineto{\pgfqpoint{1.179855in}{1.488530in}}% +\pgfpathlineto{\pgfqpoint{1.214592in}{1.289910in}}% +\pgfpathlineto{\pgfqpoint{1.236302in}{1.184400in}}% +\pgfpathlineto{\pgfqpoint{1.253670in}{1.114719in}}% +\pgfpathlineto{\pgfqpoint{1.266696in}{1.072074in}}% +\pgfpathlineto{\pgfqpoint{1.279722in}{1.038054in}}% +\pgfpathlineto{\pgfqpoint{1.292749in}{1.012779in}}% +\pgfpathlineto{\pgfqpoint{1.301433in}{1.000762in}}% +\pgfpathlineto{\pgfqpoint{1.310117in}{0.992549in}}% +\pgfpathlineto{\pgfqpoint{1.318801in}{0.988057in}}% +\pgfpathlineto{\pgfqpoint{1.327485in}{0.987177in}}% +\pgfpathlineto{\pgfqpoint{1.336169in}{0.989782in}}% +\pgfpathlineto{\pgfqpoint{1.344853in}{0.995723in}}% +\pgfpathlineto{\pgfqpoint{1.353537in}{1.004838in}}% +\pgfpathlineto{\pgfqpoint{1.366563in}{1.024074in}}% +\pgfpathlineto{\pgfqpoint{1.379590in}{1.049416in}}% +\pgfpathlineto{\pgfqpoint{1.396958in}{1.091524in}}% +\pgfpathlineto{\pgfqpoint{1.418668in}{1.155158in}}% +\pgfpathlineto{\pgfqpoint{1.444720in}{1.243239in}}% +\pgfpathlineto{\pgfqpoint{1.488141in}{1.403898in}}% +\pgfpathlineto{\pgfqpoint{1.531561in}{1.561511in}}% +\pgfpathlineto{\pgfqpoint{1.557614in}{1.646386in}}% +\pgfpathlineto{\pgfqpoint{1.579324in}{1.708574in}}% +\pgfpathlineto{\pgfqpoint{1.601034in}{1.761436in}}% +\pgfpathlineto{\pgfqpoint{1.618402in}{1.796276in}}% +\pgfpathlineto{\pgfqpoint{1.635771in}{1.824067in}}% +\pgfpathlineto{\pgfqpoint{1.648797in}{1.840132in}}% +\pgfpathlineto{\pgfqpoint{1.661823in}{1.852039in}}% +\pgfpathlineto{\pgfqpoint{1.674849in}{1.859776in}}% +\pgfpathlineto{\pgfqpoint{1.687875in}{1.863368in}}% +\pgfpathlineto{\pgfqpoint{1.700901in}{1.862878in}}% +\pgfpathlineto{\pgfqpoint{1.713927in}{1.858401in}}% +\pgfpathlineto{\pgfqpoint{1.726954in}{1.850065in}}% +\pgfpathlineto{\pgfqpoint{1.739980in}{1.838024in}}% +\pgfpathlineto{\pgfqpoint{1.757348in}{1.816524in}}% +\pgfpathlineto{\pgfqpoint{1.774716in}{1.789256in}}% +\pgfpathlineto{\pgfqpoint{1.796426in}{1.747911in}}% +\pgfpathlineto{\pgfqpoint{1.818137in}{1.699616in}}% +\pgfpathlineto{\pgfqpoint{1.844189in}{1.634299in}}% +\pgfpathlineto{\pgfqpoint{1.878925in}{1.538536in}}% +\pgfpathlineto{\pgfqpoint{1.983135in}{1.243956in}}% +\pgfpathlineto{\pgfqpoint{2.013529in}{1.169800in}}% +\pgfpathlineto{\pgfqpoint{2.039581in}{1.114392in}}% +\pgfpathlineto{\pgfqpoint{2.061291in}{1.074988in}}% +\pgfpathlineto{\pgfqpoint{2.083002in}{1.042391in}}% +\pgfpathlineto{\pgfqpoint{2.100370in}{1.021533in}}% +\pgfpathlineto{\pgfqpoint{2.117738in}{1.005506in}}% +\pgfpathlineto{\pgfqpoint{2.135106in}{0.994424in}}% +\pgfpathlineto{\pgfqpoint{2.148132in}{0.989394in}}% +\pgfpathlineto{\pgfqpoint{2.161159in}{0.987181in}}% +\pgfpathlineto{\pgfqpoint{2.174185in}{0.987773in}}% +\pgfpathlineto{\pgfqpoint{2.187211in}{0.991136in}}% +\pgfpathlineto{\pgfqpoint{2.200237in}{0.997224in}}% +\pgfpathlineto{\pgfqpoint{2.217605in}{1.009467in}}% +\pgfpathlineto{\pgfqpoint{2.234974in}{1.026248in}}% +\pgfpathlineto{\pgfqpoint{2.252342in}{1.047331in}}% +\pgfpathlineto{\pgfqpoint{2.274052in}{1.079308in}}% +\pgfpathlineto{\pgfqpoint{2.295762in}{1.116953in}}% +\pgfpathlineto{\pgfqpoint{2.321815in}{1.168623in}}% +\pgfpathlineto{\pgfqpoint{2.352209in}{1.236174in}}% +\pgfpathlineto{\pgfqpoint{2.391287in}{1.331016in}}% +\pgfpathlineto{\pgfqpoint{2.504181in}{1.611124in}}% +\pgfpathlineto{\pgfqpoint{2.534575in}{1.677221in}}% +\pgfpathlineto{\pgfqpoint{2.560627in}{1.727693in}}% +\pgfpathlineto{\pgfqpoint{2.586680in}{1.771344in}}% +\pgfpathlineto{\pgfqpoint{2.608390in}{1.801859in}}% +\pgfpathlineto{\pgfqpoint{2.630100in}{1.826589in}}% +\pgfpathlineto{\pgfqpoint{2.647468in}{1.841982in}}% +\pgfpathlineto{\pgfqpoint{2.664837in}{1.853327in}}% +\pgfpathlineto{\pgfqpoint{2.682205in}{1.860536in}}% +\pgfpathlineto{\pgfqpoint{2.699573in}{1.863558in}}% +\pgfpathlineto{\pgfqpoint{2.712599in}{1.863067in}}% +\pgfpathlineto{\pgfqpoint{2.725625in}{1.860222in}}% +\pgfpathlineto{\pgfqpoint{2.742993in}{1.852807in}}% +\pgfpathlineto{\pgfqpoint{2.760362in}{1.841331in}}% +\pgfpathlineto{\pgfqpoint{2.777730in}{1.825916in}}% +\pgfpathlineto{\pgfqpoint{2.795098in}{1.806716in}}% +\pgfpathlineto{\pgfqpoint{2.816808in}{1.777690in}}% +\pgfpathlineto{\pgfqpoint{2.838519in}{1.743493in}}% +\pgfpathlineto{\pgfqpoint{2.864571in}{1.696359in}}% +\pgfpathlineto{\pgfqpoint{2.894965in}{1.634247in}}% +\pgfpathlineto{\pgfqpoint{2.929702in}{1.556076in}}% +\pgfpathlineto{\pgfqpoint{2.986148in}{1.420053in}}% +\pgfpathlineto{\pgfqpoint{3.051279in}{1.264602in}}% +\pgfpathlineto{\pgfqpoint{3.086015in}{1.189019in}}% +\pgfpathlineto{\pgfqpoint{3.116410in}{1.130020in}}% +\pgfpathlineto{\pgfqpoint{3.142462in}{1.086119in}}% +\pgfpathlineto{\pgfqpoint{3.164172in}{1.054967in}}% +\pgfpathlineto{\pgfqpoint{3.185883in}{1.029260in}}% +\pgfpathlineto{\pgfqpoint{3.203251in}{1.012882in}}% +\pgfpathlineto{\pgfqpoint{3.220619in}{1.000409in}}% +\pgfpathlineto{\pgfqpoint{3.237987in}{0.991969in}}% +\pgfpathlineto{\pgfqpoint{3.255355in}{0.987657in}}% +\pgfpathlineto{\pgfqpoint{3.268382in}{0.987166in}}% +\pgfpathlineto{\pgfqpoint{3.281408in}{0.989038in}}% +\pgfpathlineto{\pgfqpoint{3.298776in}{0.995204in}}% +\pgfpathlineto{\pgfqpoint{3.316144in}{1.005522in}}% +\pgfpathlineto{\pgfqpoint{3.333512in}{1.019913in}}% +\pgfpathlineto{\pgfqpoint{3.350880in}{1.038258in}}% +\pgfpathlineto{\pgfqpoint{3.372591in}{1.066505in}}% +\pgfpathlineto{\pgfqpoint{3.394301in}{1.100293in}}% +\pgfpathlineto{\pgfqpoint{3.420353in}{1.147476in}}% +\pgfpathlineto{\pgfqpoint{3.446406in}{1.200975in}}% +\pgfpathlineto{\pgfqpoint{3.481142in}{1.280166in}}% +\pgfpathlineto{\pgfqpoint{3.528905in}{1.398487in}}% +\pgfpathlineto{\pgfqpoint{3.611404in}{1.604382in}}% +\pgfpathlineto{\pgfqpoint{3.646140in}{1.682101in}}% +\pgfpathlineto{\pgfqpoint{3.672192in}{1.733770in}}% +\pgfpathlineto{\pgfqpoint{3.698245in}{1.778285in}}% +\pgfpathlineto{\pgfqpoint{3.719955in}{1.809052in}}% +\pgfpathlineto{\pgfqpoint{3.737323in}{1.829084in}}% +\pgfpathlineto{\pgfqpoint{3.754691in}{1.844751in}}% +\pgfpathlineto{\pgfqpoint{3.772059in}{1.855828in}}% +\pgfpathlineto{\pgfqpoint{3.785086in}{1.861014in}}% +\pgfpathlineto{\pgfqpoint{3.798112in}{1.863458in}}% +\pgfpathlineto{\pgfqpoint{3.811138in}{1.863117in}}% +\pgfpathlineto{\pgfqpoint{3.824164in}{1.859967in}}% +\pgfpathlineto{\pgfqpoint{3.837190in}{1.853997in}}% +\pgfpathlineto{\pgfqpoint{3.850216in}{1.845218in}}% +\pgfpathlineto{\pgfqpoint{3.867584in}{1.829191in}}% +\pgfpathlineto{\pgfqpoint{3.884953in}{1.808333in}}% +\pgfpathlineto{\pgfqpoint{3.902321in}{1.782817in}}% +\pgfpathlineto{\pgfqpoint{3.924031in}{1.744730in}}% +\pgfpathlineto{\pgfqpoint{3.945741in}{1.700309in}}% +\pgfpathlineto{\pgfqpoint{3.971794in}{1.639665in}}% +\pgfpathlineto{\pgfqpoint{4.002188in}{1.560701in}}% +\pgfpathlineto{\pgfqpoint{4.045609in}{1.437971in}}% +\pgfpathlineto{\pgfqpoint{4.119423in}{1.227942in}}% +\pgfpathlineto{\pgfqpoint{4.149818in}{1.151107in}}% +\pgfpathlineto{\pgfqpoint{4.175870in}{1.093948in}}% +\pgfpathlineto{\pgfqpoint{4.197580in}{1.054139in}}% +\pgfpathlineto{\pgfqpoint{4.214949in}{1.028264in}}% +\pgfpathlineto{\pgfqpoint{4.232317in}{1.008285in}}% +\pgfpathlineto{\pgfqpoint{4.245343in}{0.997460in}}% +\pgfpathlineto{\pgfqpoint{4.258369in}{0.990394in}}% +\pgfpathlineto{\pgfqpoint{4.271395in}{0.987234in}}% +\pgfpathlineto{\pgfqpoint{4.284421in}{0.988096in}}% +\pgfpathlineto{\pgfqpoint{4.297447in}{0.993064in}}% +\pgfpathlineto{\pgfqpoint{4.310474in}{1.002190in}}% +\pgfpathlineto{\pgfqpoint{4.323500in}{1.015487in}}% +\pgfpathlineto{\pgfqpoint{4.336526in}{1.032928in}}% +\pgfpathlineto{\pgfqpoint{4.353894in}{1.062510in}}% +\pgfpathlineto{\pgfqpoint{4.371262in}{1.099057in}}% +\pgfpathlineto{\pgfqpoint{4.392973in}{1.153882in}}% +\pgfpathlineto{\pgfqpoint{4.414683in}{1.217773in}}% +\pgfpathlineto{\pgfqpoint{4.440735in}{1.304246in}}% +\pgfpathlineto{\pgfqpoint{4.479814in}{1.446826in}}% +\pgfpathlineto{\pgfqpoint{4.536260in}{1.652803in}}% +\pgfpathlineto{\pgfqpoint{4.562313in}{1.735052in}}% +\pgfpathlineto{\pgfqpoint{4.579681in}{1.781356in}}% +\pgfpathlineto{\pgfqpoint{4.597049in}{1.818848in}}% +\pgfpathlineto{\pgfqpoint{4.610075in}{1.840192in}}% +\pgfpathlineto{\pgfqpoint{4.623101in}{1.855001in}}% +\pgfpathlineto{\pgfqpoint{4.631785in}{1.860942in}}% +\pgfpathlineto{\pgfqpoint{4.640469in}{1.863546in}}% +\pgfpathlineto{\pgfqpoint{4.649154in}{1.862667in}}% +\pgfpathlineto{\pgfqpoint{4.657838in}{1.858175in}}% +\pgfpathlineto{\pgfqpoint{4.666522in}{1.849962in}}% +\pgfpathlineto{\pgfqpoint{4.675206in}{1.837945in}}% +\pgfpathlineto{\pgfqpoint{4.688232in}{1.812669in}}% +\pgfpathlineto{\pgfqpoint{4.701258in}{1.778650in}}% +\pgfpathlineto{\pgfqpoint{4.714284in}{1.736005in}}% +\pgfpathlineto{\pgfqpoint{4.731653in}{1.666324in}}% +\pgfpathlineto{\pgfqpoint{4.749021in}{1.583371in}}% +\pgfpathlineto{\pgfqpoint{4.770731in}{1.464716in}}% +\pgfpathlineto{\pgfqpoint{4.835862in}{1.093743in}}% +\pgfpathlineto{\pgfqpoint{4.848888in}{1.039690in}}% +\pgfpathlineto{\pgfqpoint{4.857572in}{1.012559in}}% +\pgfpathlineto{\pgfqpoint{4.866256in}{0.994439in}}% +\pgfpathlineto{\pgfqpoint{4.870598in}{0.989314in}}% +\pgfpathlineto{\pgfqpoint{4.874940in}{0.987128in}}% +\pgfpathlineto{\pgfqpoint{4.879282in}{0.988132in}}% +\pgfpathlineto{\pgfqpoint{4.883624in}{0.992590in}}% +\pgfpathlineto{\pgfqpoint{4.887966in}{1.000774in}}% +\pgfpathlineto{\pgfqpoint{4.896650in}{1.029477in}}% +\pgfpathlineto{\pgfqpoint{4.905335in}{1.076675in}}% +\pgfpathlineto{\pgfqpoint{4.914019in}{1.145012in}}% +\pgfpathlineto{\pgfqpoint{4.922703in}{1.237348in}}% +\pgfpathlineto{\pgfqpoint{4.931387in}{1.356777in}}% +\pgfpathlineto{\pgfqpoint{4.944413in}{1.594091in}}% +\pgfpathlineto{\pgfqpoint{4.957439in}{1.912304in}}% +\pgfpathlineto{\pgfqpoint{4.970193in}{2.315844in}}% +\pgfpathlineto{\pgfqpoint{4.970193in}{2.315844in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.617954in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{5.350000in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{5.350000in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{5.350000in}{0.548769in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{5.350000in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetfillopacity{0.800000}% +\pgfsetlinewidth{1.003750pt}% +\definecolor{currentstroke}{rgb}{0.800000,0.800000,0.800000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.800000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.715177in}{1.609825in}}% +\pgfpathlineto{\pgfqpoint{1.610430in}{1.609825in}}% +\pgfpathquadraticcurveto{\pgfqpoint{1.638207in}{1.609825in}}{\pgfqpoint{1.638207in}{1.637603in}}% +\pgfpathlineto{\pgfqpoint{1.638207in}{2.204733in}}% +\pgfpathquadraticcurveto{\pgfqpoint{1.638207in}{2.232510in}}{\pgfqpoint{1.610430in}{2.232510in}}% +\pgfpathlineto{\pgfqpoint{0.715177in}{2.232510in}}% +\pgfpathquadraticcurveto{\pgfqpoint{0.687399in}{2.232510in}}{\pgfqpoint{0.687399in}{2.204733in}}% +\pgfpathlineto{\pgfqpoint{0.687399in}{1.637603in}}% +\pgfpathquadraticcurveto{\pgfqpoint{0.687399in}{1.609825in}}{\pgfqpoint{0.715177in}{1.609825in}}% +\pgfpathlineto{\pgfqpoint{0.715177in}{1.609825in}}% +\pgfpathclose% +\pgfusepath{stroke,fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.742954in}{2.128344in}}% +\pgfpathlineto{\pgfqpoint{0.881843in}{2.128344in}}% +\pgfpathlineto{\pgfqpoint{1.020732in}{2.128344in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.131843in,y=2.079733in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle N=3\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{1.000000,0.498039,0.054902}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.742954in}{1.934671in}}% +\pgfpathlineto{\pgfqpoint{0.881843in}{1.934671in}}% +\pgfpathlineto{\pgfqpoint{1.020732in}{1.934671in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.131843in,y=1.886060in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle N=6\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{0.172549,0.627451,0.172549}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.742954in}{1.740998in}}% +\pgfpathlineto{\pgfqpoint{0.881843in}{1.740998in}}% +\pgfpathlineto{\pgfqpoint{1.020732in}{1.740998in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.131843in,y=1.692387in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle N=11\)}% +\end{pgfscope}% +\end{pgfpicture}% +\makeatother% +\endgroup% diff --git a/buch/papers/ellfilter/python/F_N_elliptic.pgf b/buch/papers/ellfilter/python/F_N_elliptic.pgf new file mode 100644 index 0000000..03084c6 --- /dev/null +++ b/buch/papers/ellfilter/python/F_N_elliptic.pgf @@ -0,0 +1,847 @@ +%% Creator: Matplotlib, PGF backend +%% +%% To include the figure in your LaTeX document, write +%% \input{<filename>.pgf} +%% +%% Make sure the required packages are loaded in your preamble +%% \usepackage{pgf} +%% +%% Also ensure that all the required font packages are loaded; for instance, +%% the lmodern package is sometimes necessary when using math font. +%% \usepackage{lmodern} +%% +%% Figures using additional raster images can only be included by \input if +%% they are in the same directory as the main LaTeX file. For loading figures +%% from other directories you can use the `import` package +%% \usepackage{import} +%% +%% and then include the figures with +%% \import{<path to file>}{<filename>.pgf} +%% +%% Matplotlib used the following preamble +%% +\begingroup% +\makeatletter% +\begin{pgfpicture}% +\pgfpathrectangle{\pgfpointorigin}{\pgfqpoint{4.000000in}{2.500000in}}% +\pgfusepath{use as bounding box, clip}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.000000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{4.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{4.000000in}{2.500000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{2.500000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathclose% +\pgfusepath{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.000000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.733531in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{0.733531in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{0.733531in}{0.548769in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.733531in}{0.548769in}}{\pgfqpoint{3.028066in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{0.000000,0.501961,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetfillopacity{0.200000}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.200000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.733531in}{-174.068564in}}% +\pgfpathlineto{\pgfqpoint{2.247564in}{-174.068564in}}% +\pgfpathlineto{\pgfqpoint{2.247564in}{1.250043in}}% +\pgfpathlineto{\pgfqpoint{0.733531in}{1.250043in}}% +\pgfpathlineto{\pgfqpoint{0.733531in}{-174.068564in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.733531in}{0.548769in}}{\pgfqpoint{3.028066in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,0.647059,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetfillopacity{0.200000}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.200000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.247564in}{1.250043in}}% +\pgfpathlineto{\pgfqpoint{2.262704in}{1.250043in}}% +\pgfpathlineto{\pgfqpoint{2.262704in}{1.600680in}}% +\pgfpathlineto{\pgfqpoint{2.247564in}{1.600680in}}% +\pgfpathlineto{\pgfqpoint{2.247564in}{1.250043in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.733531in}{0.548769in}}{\pgfqpoint{3.028066in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetfillopacity{0.200000}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.200000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.262704in}{1.600680in}}% +\pgfpathlineto{\pgfqpoint{3.776737in}{1.600680in}}% +\pgfpathlineto{\pgfqpoint{3.776737in}{2.301962in}}% +\pgfpathlineto{\pgfqpoint{2.262704in}{2.301962in}}% +\pgfpathlineto{\pgfqpoint{2.262704in}{1.600680in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.733531in}{0.548769in}}{\pgfqpoint{3.028066in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.733531in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.733531in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.733531in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.733531in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.733531in}{0.548769in}}{\pgfqpoint{3.028066in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{1.490547in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{1.490547in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.490547in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.490547in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.5}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.733531in}{0.548769in}}{\pgfqpoint{3.028066in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.247564in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.247564in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.247564in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.247564in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.733531in}{0.548769in}}{\pgfqpoint{3.028066in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{3.004580in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.004580in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.004580in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.004580in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.5}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.733531in}{0.548769in}}{\pgfqpoint{3.028066in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{3.761597in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.761597in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.761597in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {2.0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.247564in,y=0.272534in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle w\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.733531in}{0.548769in}}{\pgfqpoint{3.028066in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.733531in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{0.548769in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.733531in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.348306in, y=0.500544in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {10^{-4}}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.733531in}{0.548769in}}{\pgfqpoint{3.028066in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.733531in}{0.899406in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{0.899406in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.733531in}{0.899406in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.348306in, y=0.851181in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {10^{-2}}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.733531in}{0.548769in}}{\pgfqpoint{3.028066in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.733531in}{1.250043in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{1.250043in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.733531in}{1.250043in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.435112in, y=1.201818in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {10^{0}}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.733531in}{0.548769in}}{\pgfqpoint{3.028066in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.733531in}{1.600680in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{1.600680in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.733531in}{1.600680in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.435112in, y=1.552455in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {10^{2}}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.733531in}{0.548769in}}{\pgfqpoint{3.028066in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.733531in}{1.951318in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{1.951318in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.733531in}{1.951318in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.435112in, y=1.903092in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {10^{4}}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.733531in}{0.548769in}}{\pgfqpoint{3.028066in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.733531in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.733531in}{2.301955in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.435112in, y=2.253730in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {10^{6}}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.292751in,y=1.425362in,,bottom,rotate=90.000000]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle F^2_N(w)\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.733531in}{0.548769in}}{\pgfqpoint{3.028066in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.003750pt}% +\definecolor{currentstroke}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.739446in}{0.534880in}}% +\pgfpathlineto{\pgfqpoint{0.744132in}{0.623916in}}% +\pgfpathlineto{\pgfqpoint{0.750947in}{0.699506in}}% +\pgfpathlineto{\pgfqpoint{0.759276in}{0.759013in}}% +\pgfpathlineto{\pgfqpoint{0.769120in}{0.808295in}}% +\pgfpathlineto{\pgfqpoint{0.781235in}{0.852871in}}% +\pgfpathlineto{\pgfqpoint{0.794865in}{0.891083in}}% +\pgfpathlineto{\pgfqpoint{0.810009in}{0.924604in}}% +\pgfpathlineto{\pgfqpoint{0.827425in}{0.955729in}}% +\pgfpathlineto{\pgfqpoint{0.847112in}{0.984554in}}% +\pgfpathlineto{\pgfqpoint{0.869071in}{1.011252in}}% +\pgfpathlineto{\pgfqpoint{0.894059in}{1.036721in}}% +\pgfpathlineto{\pgfqpoint{0.922075in}{1.060823in}}% +\pgfpathlineto{\pgfqpoint{0.953878in}{1.084028in}}% +\pgfpathlineto{\pgfqpoint{0.989467in}{1.106127in}}% +\pgfpathlineto{\pgfqpoint{1.029598in}{1.127375in}}% +\pgfpathlineto{\pgfqpoint{1.075031in}{1.147865in}}% +\pgfpathlineto{\pgfqpoint{1.125764in}{1.167300in}}% +\pgfpathlineto{\pgfqpoint{1.182554in}{1.185675in}}% +\pgfpathlineto{\pgfqpoint{1.244645in}{1.202480in}}% +\pgfpathlineto{\pgfqpoint{1.312036in}{1.217494in}}% +\pgfpathlineto{\pgfqpoint{1.383214in}{1.230171in}}% +\pgfpathlineto{\pgfqpoint{1.455905in}{1.239991in}}% +\pgfpathlineto{\pgfqpoint{1.527083in}{1.246540in}}% +\pgfpathlineto{\pgfqpoint{1.594474in}{1.249707in}}% +\pgfpathlineto{\pgfqpoint{1.655808in}{1.249589in}}% +\pgfpathlineto{\pgfqpoint{1.711084in}{1.246442in}}% +\pgfpathlineto{\pgfqpoint{1.758788in}{1.240733in}}% +\pgfpathlineto{\pgfqpoint{1.800434in}{1.232740in}}% +\pgfpathlineto{\pgfqpoint{1.836780in}{1.222684in}}% +\pgfpathlineto{\pgfqpoint{1.867825in}{1.211013in}}% +\pgfpathlineto{\pgfqpoint{1.895085in}{1.197575in}}% +\pgfpathlineto{\pgfqpoint{1.919315in}{1.182199in}}% +\pgfpathlineto{\pgfqpoint{1.940517in}{1.165082in}}% +\pgfpathlineto{\pgfqpoint{1.959447in}{1.145758in}}% +\pgfpathlineto{\pgfqpoint{1.976106in}{1.124277in}}% +\pgfpathlineto{\pgfqpoint{1.991250in}{1.099472in}}% +\pgfpathlineto{\pgfqpoint{2.004122in}{1.072523in}}% +\pgfpathlineto{\pgfqpoint{2.015480in}{1.041896in}}% +\pgfpathlineto{\pgfqpoint{2.026081in}{1.004016in}}% +\pgfpathlineto{\pgfqpoint{2.035168in}{0.959254in}}% +\pgfpathlineto{\pgfqpoint{2.042740in}{0.905583in}}% +\pgfpathlineto{\pgfqpoint{2.048797in}{0.840043in}}% +\pgfpathlineto{\pgfqpoint{2.053341in}{0.758643in}}% +\pgfpathlineto{\pgfqpoint{2.056369in}{0.659102in}}% +\pgfpathlineto{\pgfqpoint{2.058129in}{0.534880in}}% +\pgfpathmoveto{\pgfqpoint{2.061041in}{0.534880in}}% +\pgfpathlineto{\pgfqpoint{2.064699in}{0.731366in}}% +\pgfpathlineto{\pgfqpoint{2.069999in}{0.841854in}}% +\pgfpathlineto{\pgfqpoint{2.076814in}{0.921040in}}% +\pgfpathlineto{\pgfqpoint{2.085143in}{0.984050in}}% +\pgfpathlineto{\pgfqpoint{2.095744in}{1.040507in}}% +\pgfpathlineto{\pgfqpoint{2.107859in}{1.088435in}}% +\pgfpathlineto{\pgfqpoint{2.121489in}{1.130355in}}% +\pgfpathlineto{\pgfqpoint{2.136633in}{1.167522in}}% +\pgfpathlineto{\pgfqpoint{2.153292in}{1.200289in}}% +\pgfpathlineto{\pgfqpoint{2.169193in}{1.224889in}}% +\pgfpathlineto{\pgfqpoint{2.182823in}{1.240496in}}% +\pgfpathlineto{\pgfqpoint{2.192666in}{1.247725in}}% +\pgfpathlineto{\pgfqpoint{2.200239in}{1.250017in}}% +\pgfpathlineto{\pgfqpoint{2.206296in}{1.248902in}}% +\pgfpathlineto{\pgfqpoint{2.211597in}{1.244804in}}% +\pgfpathlineto{\pgfqpoint{2.216897in}{1.236352in}}% +\pgfpathlineto{\pgfqpoint{2.222197in}{1.220917in}}% +\pgfpathlineto{\pgfqpoint{2.226741in}{1.197982in}}% +\pgfpathlineto{\pgfqpoint{2.231284in}{1.157051in}}% +\pgfpathlineto{\pgfqpoint{2.235070in}{1.089329in}}% +\pgfpathlineto{\pgfqpoint{2.237342in}{1.003949in}}% +\pgfpathlineto{\pgfqpoint{2.238856in}{0.869518in}}% +\pgfpathlineto{\pgfqpoint{2.239613in}{0.638914in}}% +\pgfpathlineto{\pgfqpoint{2.240370in}{0.794881in}}% +\pgfpathlineto{\pgfqpoint{2.243399in}{1.100517in}}% +\pgfpathlineto{\pgfqpoint{2.248700in}{1.280424in}}% +\pgfpathlineto{\pgfqpoint{2.266873in}{1.753784in}}% +\pgfpathlineto{\pgfqpoint{2.269144in}{1.924021in}}% +\pgfpathlineto{\pgfqpoint{2.270659in}{2.202839in}}% +\pgfpathlineto{\pgfqpoint{2.272930in}{1.848446in}}% +\pgfpathlineto{\pgfqpoint{2.276716in}{1.730165in}}% +\pgfpathlineto{\pgfqpoint{2.281260in}{1.672036in}}% +\pgfpathlineto{\pgfqpoint{2.286560in}{1.637950in}}% +\pgfpathlineto{\pgfqpoint{2.292618in}{1.617444in}}% +\pgfpathlineto{\pgfqpoint{2.298675in}{1.606779in}}% +\pgfpathlineto{\pgfqpoint{2.304733in}{1.601737in}}% +\pgfpathlineto{\pgfqpoint{2.311548in}{1.600286in}}% +\pgfpathlineto{\pgfqpoint{2.319120in}{1.602150in}}% +\pgfpathlineto{\pgfqpoint{2.328206in}{1.607676in}}% +\pgfpathlineto{\pgfqpoint{2.340322in}{1.618928in}}% +\pgfpathlineto{\pgfqpoint{2.355466in}{1.637536in}}% +\pgfpathlineto{\pgfqpoint{2.372881in}{1.664058in}}% +\pgfpathlineto{\pgfqpoint{2.391054in}{1.697587in}}% +\pgfpathlineto{\pgfqpoint{2.407713in}{1.734758in}}% +\pgfpathlineto{\pgfqpoint{2.422857in}{1.776122in}}% +\pgfpathlineto{\pgfqpoint{2.435729in}{1.820082in}}% +\pgfpathlineto{\pgfqpoint{2.447088in}{1.870149in}}% +\pgfpathlineto{\pgfqpoint{2.456174in}{1.923894in}}% +\pgfpathlineto{\pgfqpoint{2.463746in}{1.987030in}}% +\pgfpathlineto{\pgfqpoint{2.469804in}{2.064340in}}% +\pgfpathlineto{\pgfqpoint{2.474347in}{2.165039in}}% +\pgfpathlineto{\pgfqpoint{2.477435in}{2.315844in}}% +\pgfpathmoveto{\pgfqpoint{2.481180in}{2.315844in}}% +\pgfpathlineto{\pgfqpoint{2.484948in}{2.149178in}}% +\pgfpathlineto{\pgfqpoint{2.490248in}{2.050240in}}% +\pgfpathlineto{\pgfqpoint{2.497063in}{1.978983in}}% +\pgfpathlineto{\pgfqpoint{2.505392in}{1.923413in}}% +\pgfpathlineto{\pgfqpoint{2.515236in}{1.878185in}}% +\pgfpathlineto{\pgfqpoint{2.526594in}{1.840393in}}% +\pgfpathlineto{\pgfqpoint{2.539467in}{1.808260in}}% +\pgfpathlineto{\pgfqpoint{2.553854in}{1.780613in}}% +\pgfpathlineto{\pgfqpoint{2.569755in}{1.756622in}}% +\pgfpathlineto{\pgfqpoint{2.587928in}{1.734871in}}% +\pgfpathlineto{\pgfqpoint{2.608372in}{1.715370in}}% +\pgfpathlineto{\pgfqpoint{2.631089in}{1.698028in}}% +\pgfpathlineto{\pgfqpoint{2.656834in}{1.682284in}}% +\pgfpathlineto{\pgfqpoint{2.686365in}{1.667895in}}% +\pgfpathlineto{\pgfqpoint{2.720439in}{1.654789in}}% +\pgfpathlineto{\pgfqpoint{2.759814in}{1.642992in}}% +\pgfpathlineto{\pgfqpoint{2.806760in}{1.632261in}}% +\pgfpathlineto{\pgfqpoint{2.862036in}{1.622901in}}% +\pgfpathlineto{\pgfqpoint{2.928670in}{1.614877in}}% +\pgfpathlineto{\pgfqpoint{3.008934in}{1.608422in}}% +\pgfpathlineto{\pgfqpoint{3.108128in}{1.603650in}}% +\pgfpathlineto{\pgfqpoint{3.233824in}{1.600841in}}% +\pgfpathlineto{\pgfqpoint{3.396624in}{1.600449in}}% +\pgfpathlineto{\pgfqpoint{3.619242in}{1.603198in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{1.606074in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{1.606074in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.733531in}{0.548769in}}{\pgfqpoint{3.028066in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetfillopacity{0.000000}% +\pgfsetlinewidth{1.003750pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.041667in}{-0.041667in}}{\pgfqpoint{0.041667in}{0.041667in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{-0.041667in}}% +\pgfpathcurveto{\pgfqpoint{0.011050in}{-0.041667in}}{\pgfqpoint{0.021649in}{-0.037276in}}{\pgfqpoint{0.029463in}{-0.029463in}}% +\pgfpathcurveto{\pgfqpoint{0.037276in}{-0.021649in}}{\pgfqpoint{0.041667in}{-0.011050in}}{\pgfqpoint{0.041667in}{0.000000in}}% +\pgfpathcurveto{\pgfqpoint{0.041667in}{0.011050in}}{\pgfqpoint{0.037276in}{0.021649in}}{\pgfqpoint{0.029463in}{0.029463in}}% +\pgfpathcurveto{\pgfqpoint{0.021649in}{0.037276in}}{\pgfqpoint{0.011050in}{0.041667in}}{\pgfqpoint{0.000000in}{0.041667in}}% +\pgfpathcurveto{\pgfqpoint{-0.011050in}{0.041667in}}{\pgfqpoint{-0.021649in}{0.037276in}}{\pgfqpoint{-0.029463in}{0.029463in}}% +\pgfpathcurveto{\pgfqpoint{-0.037276in}{0.021649in}}{\pgfqpoint{-0.041667in}{0.011050in}}{\pgfqpoint{-0.041667in}{0.000000in}}% +\pgfpathcurveto{\pgfqpoint{-0.041667in}{-0.011050in}}{\pgfqpoint{-0.037276in}{-0.021649in}}{\pgfqpoint{-0.029463in}{-0.029463in}}% +\pgfpathcurveto{\pgfqpoint{-0.021649in}{-0.037276in}}{\pgfqpoint{-0.011050in}{-0.041667in}}{\pgfqpoint{0.000000in}{-0.041667in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.041667in}}% +\pgfpathclose% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.733531in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{2.050740in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{2.247564in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.733531in}{0.548769in}}{\pgfqpoint{3.028066in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetfillopacity{0.000000}% +\pgfsetlinewidth{1.003750pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.041667in}{-0.041667in}}{\pgfqpoint{0.041667in}{0.041667in}}{% +\pgfpathmoveto{\pgfqpoint{-0.041667in}{-0.041667in}}% +\pgfpathlineto{\pgfqpoint{0.041667in}{0.041667in}}% +\pgfpathmoveto{\pgfqpoint{-0.041667in}{0.041667in}}% +\pgfpathlineto{\pgfqpoint{0.041667in}{-0.041667in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.262704in}{2.301955in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{2.482239in}{2.301955in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.733531in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.733531in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{3.761597in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.733531in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{0.548769in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.733531in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetfillopacity{0.800000}% +\pgfsetlinewidth{1.003750pt}% +\definecolor{currentstroke}{rgb}{0.800000,0.800000,0.800000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.800000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.830753in}{1.997171in}}% +\pgfpathlineto{\pgfqpoint{2.157621in}{1.997171in}}% +\pgfpathquadraticcurveto{\pgfqpoint{2.185399in}{1.997171in}}{\pgfqpoint{2.185399in}{2.024949in}}% +\pgfpathlineto{\pgfqpoint{2.185399in}{2.204733in}}% +\pgfpathquadraticcurveto{\pgfqpoint{2.185399in}{2.232510in}}{\pgfqpoint{2.157621in}{2.232510in}}% +\pgfpathlineto{\pgfqpoint{0.830753in}{2.232510in}}% +\pgfpathquadraticcurveto{\pgfqpoint{0.802975in}{2.232510in}}{\pgfqpoint{0.802975in}{2.204733in}}% +\pgfpathlineto{\pgfqpoint{0.802975in}{2.024949in}}% +\pgfpathquadraticcurveto{\pgfqpoint{0.802975in}{1.997171in}}{\pgfqpoint{0.830753in}{1.997171in}}% +\pgfpathlineto{\pgfqpoint{0.830753in}{1.997171in}}% +\pgfpathclose% +\pgfusepath{stroke,fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.003750pt}% +\definecolor{currentstroke}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.858531in}{2.128344in}}% +\pgfpathlineto{\pgfqpoint{0.997420in}{2.128344in}}% +\pgfpathlineto{\pgfqpoint{1.136309in}{2.128344in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.247420in,y=2.079733in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle N=5, k=0.1\)}% +\end{pgfscope}% +\end{pgfpicture}% +\makeatother% +\endgroup% diff --git a/buch/papers/ellfilter/python/chebychef.py b/buch/papers/ellfilter/python/chebychef.py new file mode 100644 index 0000000..254ad4b --- /dev/null +++ b/buch/papers/ellfilter/python/chebychef.py @@ -0,0 +1,66 @@ +# %% + +import matplotlib.pyplot as plt +import scipy.signal +import numpy as np + + +order = 5 +passband_ripple_db = 1 +omega_c = 1000 + +a, b = scipy.signal.cheby1( + order, + passband_ripple_db, + omega_c, + btype='low', + analog=True, + output='ba', + fs=None, +) + +w, mag, phase = scipy.signal.bode((a, b), w=np.linspace(0,2000,256)) +f, axs = plt.subplots(2,1, sharex=True) +axs[0].plot(w, 10**(mag/20)) +axs[0].set_ylabel("$|H(\omega)| /$ db") +axs[0].grid(True, "both") +axs[1].plot(w, phase) +axs[1].set_ylabel(r"$arg H (\omega) / $ deg") +axs[1].grid(True, "both") +axs[1].set_xlim([0, 2000]) +axs[1].set_xlabel("$\omega$") +plt.show() + + +# %% Cheychev filter F_N plot + +w = np.linspace(-1.1,1.1, 1000) +plt.figure(figsize=(5.5,2.5)) +for N in [3,6,11]: + # F_N = np.cos(N * np.arccos(w)) + F_N = scipy.special.eval_chebyt(N, w) + plt.plot(w, F_N, label=f"$N={N}$") +plt.xlim([-1.2,1.2]) +plt.ylim([-2,2]) +plt.grid() +plt.xlabel("$w$") +plt.ylabel("$T_N(w)$") +plt.legend() +plt.tight_layout() +plt.savefig("F_N_chebychev2.pgf") +plt.show() + +# %% Build Chebychev polynomials + +N = 11 + +zeros = (np.arange(N)+0.5) * np.pi +zeros = np.cos(zeros/N) + +x = np.linspace(-1.2,1.2,1000) +y = np.prod(x[:, None] - zeros[None, :], axis=-1)*2**(N-1) + +plt.plot(x, y) +plt.ylim([-1,1]) +plt.grid() +plt.show() diff --git a/buch/papers/ellfilter/python/elliptic.pgf b/buch/papers/ellfilter/python/elliptic.pgf new file mode 100644 index 0000000..31b77d4 --- /dev/null +++ b/buch/papers/ellfilter/python/elliptic.pgf @@ -0,0 +1,709 @@ +%% Creator: Matplotlib, PGF backend +%% +%% To include the figure in your LaTeX document, write +%% \input{<filename>.pgf} +%% +%% Make sure the required packages are loaded in your preamble +%% \usepackage{pgf} +%% +%% Also ensure that all the required font packages are loaded; for instance, +%% the lmodern package is sometimes necessary when using math font. +%% \usepackage{lmodern} +%% +%% Figures using additional raster images can only be included by \input if +%% they are in the same directory as the main LaTeX file. For loading figures +%% from other directories you can use the `import` package +%% \usepackage{import} +%% +%% and then include the figures with +%% \import{<path to file>}{<filename>.pgf} +%% +%% Matplotlib used the following preamble +%% +\begingroup% +\makeatletter% +\begin{pgfpicture}% +\pgfpathrectangle{\pgfpointorigin}{\pgfqpoint{4.000000in}{2.500000in}}% +\pgfusepath{use as bounding box, clip}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.000000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{4.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{4.000000in}{2.500000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{2.500000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathclose% +\pgfusepath{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.000000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{0.617954in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{0.617954in}{0.548769in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{3.143642in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{0.000000,0.501961,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetfillopacity{0.200000}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.200000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{1.788459in}}% +\pgfpathlineto{\pgfqpoint{2.189776in}{1.788459in}}% +\pgfpathlineto{\pgfqpoint{2.189776in}{3.541645in}}% +\pgfpathlineto{\pgfqpoint{0.617954in}{3.541645in}}% +\pgfpathlineto{\pgfqpoint{0.617954in}{1.788459in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{3.143642in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,0.647059,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetfillopacity{0.200000}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.200000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.189776in}{0.724087in}}% +\pgfpathlineto{\pgfqpoint{2.205494in}{0.724087in}}% +\pgfpathlineto{\pgfqpoint{2.205494in}{1.788459in}}% +\pgfpathlineto{\pgfqpoint{2.189776in}{1.788459in}}% +\pgfpathlineto{\pgfqpoint{2.189776in}{0.724087in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{3.143642in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetfillopacity{0.200000}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.200000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.205494in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.777315in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.777315in}{0.724087in}}% +\pgfpathlineto{\pgfqpoint{2.205494in}{0.724087in}}% +\pgfpathlineto{\pgfqpoint{2.205494in}{0.548769in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{3.143642in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.617954in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.617954in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.617954in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{3.143642in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{1.403865in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{1.403865in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.403865in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.403865in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.5}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{3.143642in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.189776in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.189776in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.189776in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.189776in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{3.143642in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.975686in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.975686in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.975686in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.975686in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.5}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{3.143642in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{3.761597in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.761597in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.761597in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {2.0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.189776in,y=0.272534in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle w\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{3.143642in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{0.548769in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.617954in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.343262in, y=0.500544in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{3.143642in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{0.899406in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{0.899406in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.617954in}{0.899406in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.343262in, y=0.851181in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.2}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{3.143642in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{1.250043in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{1.250043in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.617954in}{1.250043in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.343262in, y=1.201818in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.4}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{3.143642in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{1.600680in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{1.600680in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.617954in}{1.600680in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.343262in, y=1.552455in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.6}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{3.143642in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{1.951318in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{1.951318in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.617954in}{1.951318in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.343262in, y=1.903092in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.8}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{3.143642in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.617954in}{2.301955in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.343262in, y=2.253730in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.287707in,y=1.425362in,,bottom,rotate=90.000000]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle |H(w)|\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.617954in}{0.548769in}}{\pgfqpoint{3.143642in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.003750pt}% +\definecolor{currentstroke}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{0.646254in}{2.300410in}}% +\pgfpathlineto{\pgfqpoint{0.674554in}{2.295805in}}% +\pgfpathlineto{\pgfqpoint{0.703640in}{2.287983in}}% +\pgfpathlineto{\pgfqpoint{0.734298in}{2.276528in}}% +\pgfpathlineto{\pgfqpoint{0.767315in}{2.260797in}}% +\pgfpathlineto{\pgfqpoint{0.802690in}{2.240472in}}% +\pgfpathlineto{\pgfqpoint{0.842781in}{2.213774in}}% +\pgfpathlineto{\pgfqpoint{0.889947in}{2.178486in}}% +\pgfpathlineto{\pgfqpoint{0.952050in}{2.127836in}}% +\pgfpathlineto{\pgfqpoint{1.147791in}{1.965399in}}% +\pgfpathlineto{\pgfqpoint{1.205963in}{1.922684in}}% +\pgfpathlineto{\pgfqpoint{1.257846in}{1.888382in}}% +\pgfpathlineto{\pgfqpoint{1.305012in}{1.860803in}}% +\pgfpathlineto{\pgfqpoint{1.349034in}{1.838524in}}% +\pgfpathlineto{\pgfqpoint{1.390698in}{1.820826in}}% +\pgfpathlineto{\pgfqpoint{1.430003in}{1.807434in}}% +\pgfpathlineto{\pgfqpoint{1.466950in}{1.798051in}}% +\pgfpathlineto{\pgfqpoint{1.501539in}{1.792361in}}% +\pgfpathlineto{\pgfqpoint{1.534555in}{1.790011in}}% +\pgfpathlineto{\pgfqpoint{1.566000in}{1.790875in}}% +\pgfpathlineto{\pgfqpoint{1.595872in}{1.794823in}}% +\pgfpathlineto{\pgfqpoint{1.624172in}{1.801709in}}% +\pgfpathlineto{\pgfqpoint{1.650899in}{1.811365in}}% +\pgfpathlineto{\pgfqpoint{1.676841in}{1.824030in}}% +\pgfpathlineto{\pgfqpoint{1.701996in}{1.839797in}}% +\pgfpathlineto{\pgfqpoint{1.726365in}{1.858757in}}% +\pgfpathlineto{\pgfqpoint{1.749949in}{1.880985in}}% +\pgfpathlineto{\pgfqpoint{1.773532in}{1.907483in}}% +\pgfpathlineto{\pgfqpoint{1.797115in}{1.938719in}}% +\pgfpathlineto{\pgfqpoint{1.820698in}{1.975139in}}% +\pgfpathlineto{\pgfqpoint{1.845068in}{2.018557in}}% +\pgfpathlineto{\pgfqpoint{1.871009in}{2.071217in}}% +\pgfpathlineto{\pgfqpoint{1.903240in}{2.144258in}}% +\pgfpathlineto{\pgfqpoint{1.949620in}{2.249449in}}% +\pgfpathlineto{\pgfqpoint{1.965342in}{2.277408in}}% +\pgfpathlineto{\pgfqpoint{1.977134in}{2.292569in}}% +\pgfpathlineto{\pgfqpoint{1.986567in}{2.299856in}}% +\pgfpathlineto{\pgfqpoint{1.993642in}{2.301922in}}% +\pgfpathlineto{\pgfqpoint{2.000717in}{2.300685in}}% +\pgfpathlineto{\pgfqpoint{2.007792in}{2.295839in}}% +\pgfpathlineto{\pgfqpoint{2.014867in}{2.287135in}}% +\pgfpathlineto{\pgfqpoint{2.023514in}{2.271025in}}% +\pgfpathlineto{\pgfqpoint{2.032947in}{2.246492in}}% +\pgfpathlineto{\pgfqpoint{2.043953in}{2.209014in}}% +\pgfpathlineto{\pgfqpoint{2.057317in}{2.152165in}}% +\pgfpathlineto{\pgfqpoint{2.076183in}{2.056775in}}% +\pgfpathlineto{\pgfqpoint{2.114702in}{1.858945in}}% +\pgfpathlineto{\pgfqpoint{2.126494in}{1.815249in}}% +\pgfpathlineto{\pgfqpoint{2.134355in}{1.796399in}}% +\pgfpathlineto{\pgfqpoint{2.139858in}{1.790308in}}% +\pgfpathlineto{\pgfqpoint{2.143002in}{1.790254in}}% +\pgfpathlineto{\pgfqpoint{2.146147in}{1.793264in}}% +\pgfpathlineto{\pgfqpoint{2.150077in}{1.802263in}}% +\pgfpathlineto{\pgfqpoint{2.154794in}{1.822852in}}% +\pgfpathlineto{\pgfqpoint{2.159510in}{1.857784in}}% +\pgfpathlineto{\pgfqpoint{2.165013in}{1.924261in}}% +\pgfpathlineto{\pgfqpoint{2.170516in}{2.030210in}}% +\pgfpathlineto{\pgfqpoint{2.181521in}{2.301670in}}% +\pgfpathlineto{\pgfqpoint{2.182308in}{2.299748in}}% +\pgfpathlineto{\pgfqpoint{2.183880in}{2.267565in}}% +\pgfpathlineto{\pgfqpoint{2.186238in}{2.135783in}}% +\pgfpathlineto{\pgfqpoint{2.192527in}{1.496420in}}% +\pgfpathlineto{\pgfqpoint{2.198816in}{1.001269in}}% +\pgfpathlineto{\pgfqpoint{2.205105in}{0.731898in}}% +\pgfpathlineto{\pgfqpoint{2.211393in}{0.583247in}}% +\pgfpathlineto{\pgfqpoint{2.213752in}{0.552138in}}% +\pgfpathlineto{\pgfqpoint{2.220827in}{0.630495in}}% +\pgfpathlineto{\pgfqpoint{2.227902in}{0.675607in}}% +\pgfpathlineto{\pgfqpoint{2.234977in}{0.701566in}}% +\pgfpathlineto{\pgfqpoint{2.241266in}{0.714626in}}% +\pgfpathlineto{\pgfqpoint{2.247554in}{0.721456in}}% +\pgfpathlineto{\pgfqpoint{2.253843in}{0.723972in}}% +\pgfpathlineto{\pgfqpoint{2.260918in}{0.723210in}}% +\pgfpathlineto{\pgfqpoint{2.269565in}{0.718770in}}% +\pgfpathlineto{\pgfqpoint{2.281357in}{0.708826in}}% +\pgfpathlineto{\pgfqpoint{2.300224in}{0.688160in}}% +\pgfpathlineto{\pgfqpoint{2.385123in}{0.590361in}}% +\pgfpathlineto{\pgfqpoint{2.417354in}{0.559882in}}% +\pgfpathlineto{\pgfqpoint{2.430717in}{0.549063in}}% +\pgfpathlineto{\pgfqpoint{2.463734in}{0.574407in}}% +\pgfpathlineto{\pgfqpoint{2.498323in}{0.597083in}}% +\pgfpathlineto{\pgfqpoint{2.535270in}{0.617584in}}% +\pgfpathlineto{\pgfqpoint{2.574575in}{0.635868in}}% +\pgfpathlineto{\pgfqpoint{2.617811in}{0.652529in}}% +\pgfpathlineto{\pgfqpoint{2.664977in}{0.667359in}}% +\pgfpathlineto{\pgfqpoint{2.717646in}{0.680619in}}% +\pgfpathlineto{\pgfqpoint{2.776604in}{0.692216in}}% +\pgfpathlineto{\pgfqpoint{2.843424in}{0.702155in}}% +\pgfpathlineto{\pgfqpoint{2.920462in}{0.710422in}}% +\pgfpathlineto{\pgfqpoint{3.010864in}{0.716921in}}% +\pgfpathlineto{\pgfqpoint{3.118561in}{0.721464in}}% +\pgfpathlineto{\pgfqpoint{3.250627in}{0.723829in}}% +\pgfpathlineto{\pgfqpoint{3.419640in}{0.723619in}}% +\pgfpathlineto{\pgfqpoint{3.651542in}{0.720038in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{0.717600in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{0.717600in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.617954in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{3.761597in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{0.548769in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.617954in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{3.761597in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\end{pgfpicture}% +\makeatother% +\endgroup% diff --git a/buch/papers/ellfilter/python/elliptic.py b/buch/papers/ellfilter/python/elliptic.py new file mode 100644 index 0000000..b3336a1 --- /dev/null +++ b/buch/papers/ellfilter/python/elliptic.py @@ -0,0 +1,356 @@ + +# %% + +import scipy.special +import scipyx as spx +import numpy as np +import matplotlib.pyplot as plt +from matplotlib.patches import Rectangle + +import plot_params + +def last_color(): + return plt.gca().lines[-1].get_color() + +# define elliptic functions + +def ell_int(k): + """ Calculate K(k) """ + m = k**2 + return scipy.special.ellipk(m) + +def sn(z, k): + return spx.ellipj(z, k**2)[0] + +def cn(z, k): + return spx.ellipj(z, k**2)[1] + +def dn(z, k): + return spx.ellipj(z, k**2)[2] + +def cd(z, k): + sn, cn, dn, ph = spx.ellipj(z, k**2) + return cn / dn + +# https://mathworld.wolfram.com/JacobiEllipticFunctions.html eq 3-8 + +def sn_inv(z, k): + m = k**2 + return scipy.special.ellipkinc(np.arcsin(z), m) + +def cn_inv(z, k): + m = k**2 + return scipy.special.ellipkinc(np.arccos(z), m) + +def dn_inv(z, k): + m = k**2 + x = np.sqrt((1-z**2) / k**2) + return scipy.special.ellipkinc(np.arcsin(x), m) + +def cd_inv(z, k): + m = k**2 + x = np.sqrt(((m - 1) * z**2) / (m*z**2 - 1)) + return scipy.special.ellipkinc(np.arccos(x), m) + + +k = 0.8 +z = 0.5 + +assert np.allclose(sn_inv(sn(z ,k), k), z) +assert np.allclose(cn_inv(cn(z ,k), k), z) +assert np.allclose(dn_inv(dn(z ,k), k), z) +assert np.allclose(cd_inv(cd(z ,k), k), z) + + +# %% Buttwerworth filter F_N plot + +w = np.linspace(0,1.5, 100) +plt.figure(figsize=(4,2.5)) + +for N in range(1,5): + F_N = w**N + plt.plot(w, F_N**2, label=f"$N={N}$") +plt.gca().add_patch(Rectangle( + (0, 0), + 1, 1, + fc ='green', + alpha=0.2, + lw = 10, +)) +plt.gca().add_patch(Rectangle( + (1, 1), + 0.5, 1, + fc ='orange', + alpha=0.2, + lw = 10, +)) +plt.xlim([0,1.5]) +plt.ylim([0,2]) +plt.grid() +plt.xlabel("$w$") +plt.ylabel("$F^2_N(w)$") +plt.legend() +plt.tight_layout() +plt.savefig("F_N_butterworth.pgf") +plt.show() + +# %% Cheychev filter F_N plot + +w = np.linspace(0,1.5, 100) + +plt.figure(figsize=(4,2.5)) +for N in range(1,5): + # F_N = np.cos(N * np.arccos(w)) + F_N = scipy.special.eval_chebyt(N, w) + plt.plot(w, F_N**2, label=f"$N={N}$") +plt.gca().add_patch(Rectangle( + (0, 0), + 1, 1, + fc ='green', + alpha=0.2, + lw = 10, +)) +plt.gca().add_patch(Rectangle( + (1, 1), + 0.5, 1, + fc ='orange', + alpha=0.2, + lw = 10, +)) +plt.xlim([0,1.5]) +plt.ylim([0,2]) +plt.grid() +plt.xlabel("$w$") +plt.ylabel("$F^2_N(w)$") +plt.legend() +plt.tight_layout() +plt.savefig("F_N_chebychev.pgf") +plt.show() + + +# %% plot arcsin + +def lattice(a1, b1, c1, a2, b2, c2): + r1 = np.logspace(a1, b1, c1) + x1 = np.concatenate((-np.flip(r1), [0], r1), axis=0) + x1 = x1.astype(np.complex128) + r2 = np.logspace(a2, b2, c2) + x2 = np.concatenate((-np.flip(r2), [0], r2), axis=0) + x2 = x2.astype(np.complex128) + x = (x1[:, None] + (x2[None, :] * 1j)) + return x + +plt.figure(figsize=(12,12)) +y = np.arcsin(lattice(-1,6,1000, -1,5,10)) +plt.plot(np.real(y), np.imag(y), "-", color="red", lw=0.5) +y = np.arcsin(lattice(-1,6,10, -1,5,100)).T +plt.plot(np.real(y), np.imag(y), "-", color="red", lw=0.5) +y = np.arcsin(lattice(-1,6,10, -1,5,10)) +plt.plot(np.real(y), np.imag(y), ".", color="red", lw=0.5) +plt.show() + +# %% plot cd^-1 TODO complex cd^-1 missing + + +r = np.logspace(-1,8, 50) + + + +x = np.concatenate((-np.flip(r), [0], r), axis=0) +y = cd_inv(x, 0.99) + +plt.figure(figsize=(12,12)) +plt.plot(np.real(y), np.imag(y), "-") +plt.show() + +# %%plot cd +plt.figure(figsize=(10,6)) +z = np.linspace(-4,4, 500) +for k in [0, 0.9, 0.99, 0.999, 0.99999]: + w = cd(z*ell_int(k), k) + plt.plot(z, w, label=f"$k={k}$") +plt.grid() +plt.legend() +# plt.xlim([-4,4]) +plt.xlabel("$u$") +plt.ylabel("$cd(uK, k)$") +plt.show() + +# %% Test ???? + +N = 5 +k = 0.9 +k1 = k**N + +assert np.allclose(k**(-N), k1**(-1)) + +K = ell_int(k) +Kp = ell_int(np.sqrt(1-k**2)) + +K1 = ell_int(k1) +Kp1 = ell_int(np.sqrt(1-k1**2)) + +print(Kp * (K1 / K) * N, Kp1) + + +# %% + + +k = 0.9 +k_prim = np.sqrt(1 - k**2) +K = ell_int(k) +Kp = ell_int(k_prim) + +print(K, Kp) + +zs = [ + 0 + (K + 0j) * np.linspace(0,1,25), + K + (Kp*1j) * np.linspace(0,1,25), + (K + Kp*1j) + (-K) * np.linspace(0,1,25), +] + + +for z in zs: + plt.plot(np.real(z), np.imag(z)) +plt.show() + + + +for z in zs: + w = cd(z, k) + plt.plot(np.real(w), np.imag(w)) +plt.show() + + + + + +# %% + +for i in range(10): + x = np.linspace(i*1,i*1+1,10, dtype=np.complex64) + w = np.arccos(x) + + x2 = np.cos(w) + x4 = np.cos(w+ 2*np.pi) + x3 = np.cos(np.conj(w)) + + assert np.allclose(x2, x4, rtol=0.001, atol=1e-5) + + assert np.allclose(x2, x3) + assert np.allclose(x2, x, rtol=0.001, atol=1e-5) + + plt.plot(np.real(w), np.imag(w), ".-") + +for i in range(10): + x = -np.linspace(i*1,i*1+1,100, dtype=np.complex64) + w = np.arccos(x) + plt.plot(np.real(w), np.imag(w), ".-") + +plt.grid() +plt.show() + + + + +# %% + +plt.plot(omega, np.abs(G)) +plt.show() + + +def cd_inv(u, m): + return K(1/2) - F(np.arcsin()) + +def K(m): + return scipy.special.ellipk(m) + +def L(n, xi): + return 1 #TODO + +def R(n, xi, x): + cn(n*K(1/L(n, xi))/K(1/xi) * cd_inv(x, 1/xi, 1/L(n, xi))) + +epsilon = 0.1 +n = 3 +omega = np.linspace(0, np.pi, 1000) +omega_0 = 1 +xi = 1.1 + +G = 1 / np.sqrt(1 + epsilon**2 * R(n, xi, omega/omega_0)**2) + + +plt.plot(omega, np.abs(G)) +plt.show() + + + +# %% Chebychef + +epsilon = 0.5 +omega = np.linspace(0, np.pi, 1000) +omega_0 = 1 +n = 4 + +def chebychef_poly(n, x): + x = x.astype(np.complex64) + y = np.cos(n* np.arccos(x)) + return np.real(y) + +F_omega = chebychef_poly + +for n in (1,2,3,4): + plt.plot(omega, F_omega(n, omega/omega_0)**2) +plt.ylim([0,5]) +plt.xlim([0,1.5]) +plt.grid() +plt.show() + +for n in (1,2,3,4): + G = 1 / np.sqrt(1 + epsilon**2 * F_omega(n, omega/omega_0)**2) + plt.plot(omega, np.abs(G)) +plt.grid() +plt.show() + + + + +# %% + + +k = np.concatenate(([0.00001,0.0001,0.001], np.linspace(0,1,101)[1:-1], [0.999,0.9999, 0.99999]), axis=0) +K = ell_int(k) +K_prime = ell_int(np.sqrt(1-k**2)) + + +f, axs = plt.subplots(1,2, figsize=(5,2.5)) +axs[0].plot(k, K, linewidth=0.1) +axs[0].text(k[30], K[30]+0.1, f"$K$") +axs[0].plot(k, K_prime, linewidth=0.1) +axs[0].text(k[30], K_prime[30]+0.1, f"$K^\prime$") +axs[0].set_xlim([0,1]) +axs[0].set_ylim([0,4]) +axs[0].set_xlabel("$k$") + +axs[1].axvline(x=np.pi/2, color="gray", linewidth=0.5) +axs[1].axhline(y=np.pi/2, color="gray", linewidth=0.5) +axs[1].text(0.1, np.pi/2 + 0.1, "$\pi/2$") +axs[1].text(np.pi/2+0.1, 0.1, "$\pi/2$") +axs[1].plot(K, K_prime, linewidth=1) + +k = np.array([0.1,0.2,0.4,0.6,0.9,0.99]) +K = ell_int(k) +K_prime = ell_int(np.sqrt(1-k**2)) + +axs[1].plot(K, K_prime, '.', color=last_color(), markersize=2) +for x, y, n in zip(K, K_prime, k): + axs[1].text(x+0.1, y+0.1, f"$k={n:.2f}$", rotation_mode="anchor") +axs[1].set_ylabel("$K^\prime$") +axs[1].set_xlabel("$K$") +axs[1].set_xlim([0,6]) +axs[1].set_ylim([0,5]) +plt.tight_layout() +plt.savefig("k.pgf") +plt.show() + +print(K[0], K[-1]) diff --git a/buch/papers/ellfilter/python/elliptic2.py b/buch/papers/ellfilter/python/elliptic2.py new file mode 100644 index 0000000..29c6f47 --- /dev/null +++ b/buch/papers/ellfilter/python/elliptic2.py @@ -0,0 +1,149 @@ +# %% + +import matplotlib.pyplot as plt +import scipy.signal +import numpy as np +import matplotlib +from matplotlib.patches import Rectangle + +import plot_params + +def ellip_filter(N): + + order = N + passband_ripple_db = 3 + stopband_attenuation_db = 20 + omega_c = 1 + + a, b = scipy.signal.ellip( + order, + passband_ripple_db, + stopband_attenuation_db, + omega_c, + btype='low', + analog=True, + output='ba', + fs=None + ) + + w, mag_db, phase = scipy.signal.bode((a, b), w=np.linspace(0*omega_c,2*omega_c, 4000)) + + mag = 10**(mag_db/20) + + passband_ripple = 10**(-passband_ripple_db/20) + epsilon2 = (1/passband_ripple)**2 - 1 + + FN2 = ((1/mag**2) - 1) + + return w/omega_c, FN2 / epsilon2, mag, a, b + + +plt.figure(figsize=(4,2.5)) + +for N in [5]: + w, FN2, mag, a, b = ellip_filter(N) + plt.semilogy(w, FN2, label=f"$N={N}, k=0.1$", linewidth=1) + +plt.gca().add_patch(Rectangle( + (0, 0), + 1, 1, + fc ='green', + alpha=0.2, + lw = 10, +)) +plt.gca().add_patch(Rectangle( + (1, 1), + 0.01, 1e2-1, + fc ='orange', + alpha=0.2, + lw = 10, +)) + +plt.gca().add_patch(Rectangle( + (1.01, 100), + 1, 1e6, + fc ='red', + alpha=0.2, + lw = 10, +)) + +zeros = [0,0.87,1] +poles = [1.01,1.155] + +import matplotlib.transforms +plt.plot( # mark errors as vertical bars + zeros, + np.zeros_like(zeros), + "o", + mfc='none', + color='black', + transform=matplotlib.transforms.blended_transform_factory( + plt.gca().transData, + plt.gca().transAxes, + ), +) +plt.plot( # mark errors as vertical bars + poles, + np.ones_like(poles), + "x", + mfc='none', + color='black', + transform=matplotlib.transforms.blended_transform_factory( + plt.gca().transData, + plt.gca().transAxes, + ), +) + +plt.xlim([0,2]) +plt.ylim([1e-4,1e6]) +plt.grid() +plt.xlabel("$w$") +plt.ylabel("$F^2_N(w)$") +plt.legend() +plt.tight_layout() +plt.savefig("F_N_elliptic.pgf") +plt.show() + + + +plt.figure(figsize=(4,2.5)) +plt.plot(w, mag, linewidth=1) + +plt.gca().add_patch(Rectangle( + (0, np.sqrt(2)/2), + 1, 1, + fc ='green', + alpha=0.2, + lw = 10, +)) +plt.gca().add_patch(Rectangle( + (1, 0.1), + 0.01, np.sqrt(2)/2 - 0.1, + fc ='orange', + alpha=0.2, + lw = 10, +)) + +plt.gca().add_patch(Rectangle( + (1.01, 0), + 1, 0.1, + fc ='red', + alpha=0.2, + lw = 10, +)) + +plt.grid() +plt.xlim([0,2]) +plt.ylim([0,1]) +plt.xlabel("$w$") +plt.ylabel("$|H(w)|$") +plt.tight_layout() +plt.savefig("elliptic.pgf") +plt.show() + +print("zeros", a) +print("poles", b) + + + + diff --git a/buch/papers/ellfilter/python/k.pgf b/buch/papers/ellfilter/python/k.pgf new file mode 100644 index 0000000..95d61d4 --- /dev/null +++ b/buch/papers/ellfilter/python/k.pgf @@ -0,0 +1,1157 @@ +%% Creator: Matplotlib, PGF backend +%% +%% To include the figure in your LaTeX document, write +%% \input{<filename>.pgf} +%% +%% Make sure the required packages are loaded in your preamble +%% \usepackage{pgf} +%% +%% Also ensure that all the required font packages are loaded; for instance, +%% the lmodern package is sometimes necessary when using math font. +%% \usepackage{lmodern} +%% +%% Figures using additional raster images can only be included by \input if +%% they are in the same directory as the main LaTeX file. For loading figures +%% from other directories you can use the `import` package +%% \usepackage{import} +%% +%% and then include the figures with +%% \import{<path to file>}{<filename>.pgf} +%% +%% Matplotlib used the following preamble +%% +\begingroup% +\makeatletter% +\begin{pgfpicture}% +\pgfpathrectangle{\pgfpointorigin}{\pgfqpoint{5.000000in}{2.500000in}}% +\pgfusepath{use as bounding box, clip}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.000000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{5.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{5.000000in}{2.500000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{2.500000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathclose% +\pgfusepath{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.000000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.316407in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.256930in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.256930in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{0.316407in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{0.316407in}{0.548769in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.316407in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.316407in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.00}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.801538in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.801538in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.25}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.286669in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.286669in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.50}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.771800in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.771800in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.75}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.256930in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.256930in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.00}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.286669in,y=0.272534in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle k\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.316407in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.149740in, y=0.500544in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.316407in}{0.987065in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.149740in, y=0.938840in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.316407in}{1.425362in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.149740in, y=1.377137in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {2}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.316407in}{1.863658in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.149740in, y=1.815433in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {3}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.316407in}{2.301955in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.149740in, y=2.253730in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {4}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.316407in}{0.548769in}}{\pgfqpoint{1.940523in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.100375pt}% +\definecolor{currentstroke}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.316427in}{1.237243in}}% +\pgfpathlineto{\pgfqpoint{0.316601in}{1.237243in}}% +\pgfpathlineto{\pgfqpoint{0.318348in}{1.237244in}}% +\pgfpathlineto{\pgfqpoint{0.335813in}{1.237261in}}% +\pgfpathlineto{\pgfqpoint{0.355218in}{1.237312in}}% +\pgfpathlineto{\pgfqpoint{0.374623in}{1.237398in}}% +\pgfpathlineto{\pgfqpoint{0.394028in}{1.237519in}}% +\pgfpathlineto{\pgfqpoint{0.413434in}{1.237674in}}% +\pgfpathlineto{\pgfqpoint{0.432839in}{1.237864in}}% +\pgfpathlineto{\pgfqpoint{0.452244in}{1.238089in}}% +\pgfpathlineto{\pgfqpoint{0.471649in}{1.238349in}}% +\pgfpathlineto{\pgfqpoint{0.491054in}{1.238644in}}% +\pgfpathlineto{\pgfqpoint{0.510460in}{1.238974in}}% +\pgfpathlineto{\pgfqpoint{0.529865in}{1.239340in}}% +\pgfpathlineto{\pgfqpoint{0.549270in}{1.239742in}}% +\pgfpathlineto{\pgfqpoint{0.568675in}{1.240180in}}% +\pgfpathlineto{\pgfqpoint{0.588081in}{1.240655in}}% +\pgfpathlineto{\pgfqpoint{0.607486in}{1.241166in}}% +\pgfpathlineto{\pgfqpoint{0.626891in}{1.241714in}}% +\pgfpathlineto{\pgfqpoint{0.646296in}{1.242300in}}% +\pgfpathlineto{\pgfqpoint{0.665702in}{1.242924in}}% +\pgfpathlineto{\pgfqpoint{0.685107in}{1.243586in}}% +\pgfpathlineto{\pgfqpoint{0.704512in}{1.244287in}}% +\pgfpathlineto{\pgfqpoint{0.723917in}{1.245028in}}% +\pgfpathlineto{\pgfqpoint{0.743322in}{1.245809in}}% +\pgfpathlineto{\pgfqpoint{0.762728in}{1.246630in}}% +\pgfpathlineto{\pgfqpoint{0.782133in}{1.247492in}}% +\pgfpathlineto{\pgfqpoint{0.801538in}{1.248396in}}% +\pgfpathlineto{\pgfqpoint{0.820943in}{1.249343in}}% +\pgfpathlineto{\pgfqpoint{0.840349in}{1.250333in}}% +\pgfpathlineto{\pgfqpoint{0.859754in}{1.251367in}}% +\pgfpathlineto{\pgfqpoint{0.879159in}{1.252446in}}% +\pgfpathlineto{\pgfqpoint{0.898564in}{1.253571in}}% +\pgfpathlineto{\pgfqpoint{0.917969in}{1.254743in}}% +\pgfpathlineto{\pgfqpoint{0.937375in}{1.255962in}}% +\pgfpathlineto{\pgfqpoint{0.956780in}{1.257230in}}% +\pgfpathlineto{\pgfqpoint{0.976185in}{1.258548in}}% +\pgfpathlineto{\pgfqpoint{0.995590in}{1.259917in}}% +\pgfpathlineto{\pgfqpoint{1.014996in}{1.261339in}}% +\pgfpathlineto{\pgfqpoint{1.034401in}{1.262814in}}% +\pgfpathlineto{\pgfqpoint{1.053806in}{1.264344in}}% +\pgfpathlineto{\pgfqpoint{1.073211in}{1.265930in}}% +\pgfpathlineto{\pgfqpoint{1.092617in}{1.267575in}}% +\pgfpathlineto{\pgfqpoint{1.112022in}{1.269279in}}% +\pgfpathlineto{\pgfqpoint{1.131427in}{1.271045in}}% +\pgfpathlineto{\pgfqpoint{1.150832in}{1.272874in}}% +\pgfpathlineto{\pgfqpoint{1.170237in}{1.274768in}}% +\pgfpathlineto{\pgfqpoint{1.189643in}{1.276729in}}% +\pgfpathlineto{\pgfqpoint{1.209048in}{1.278760in}}% +\pgfpathlineto{\pgfqpoint{1.228453in}{1.280863in}}% +\pgfpathlineto{\pgfqpoint{1.247858in}{1.283040in}}% +\pgfpathlineto{\pgfqpoint{1.267264in}{1.285294in}}% +\pgfpathlineto{\pgfqpoint{1.286669in}{1.287627in}}% +\pgfpathlineto{\pgfqpoint{1.306074in}{1.290044in}}% +\pgfpathlineto{\pgfqpoint{1.325479in}{1.292546in}}% +\pgfpathlineto{\pgfqpoint{1.344884in}{1.295137in}}% +\pgfpathlineto{\pgfqpoint{1.364290in}{1.297822in}}% +\pgfpathlineto{\pgfqpoint{1.383695in}{1.300603in}}% +\pgfpathlineto{\pgfqpoint{1.403100in}{1.303485in}}% +\pgfpathlineto{\pgfqpoint{1.422505in}{1.306473in}}% +\pgfpathlineto{\pgfqpoint{1.441911in}{1.309570in}}% +\pgfpathlineto{\pgfqpoint{1.461316in}{1.312784in}}% +\pgfpathlineto{\pgfqpoint{1.480721in}{1.316118in}}% +\pgfpathlineto{\pgfqpoint{1.500126in}{1.319579in}}% +\pgfpathlineto{\pgfqpoint{1.519532in}{1.323174in}}% +\pgfpathlineto{\pgfqpoint{1.538937in}{1.326910in}}% +\pgfpathlineto{\pgfqpoint{1.558342in}{1.330793in}}% +\pgfpathlineto{\pgfqpoint{1.577747in}{1.334833in}}% +\pgfpathlineto{\pgfqpoint{1.597152in}{1.339039in}}% +\pgfpathlineto{\pgfqpoint{1.616558in}{1.343420in}}% +\pgfpathlineto{\pgfqpoint{1.635963in}{1.347988in}}% +\pgfpathlineto{\pgfqpoint{1.655368in}{1.352753in}}% +\pgfpathlineto{\pgfqpoint{1.674773in}{1.357730in}}% +\pgfpathlineto{\pgfqpoint{1.694179in}{1.362933in}}% +\pgfpathlineto{\pgfqpoint{1.713584in}{1.368377in}}% +\pgfpathlineto{\pgfqpoint{1.732989in}{1.374081in}}% +\pgfpathlineto{\pgfqpoint{1.752394in}{1.380064in}}% +\pgfpathlineto{\pgfqpoint{1.771800in}{1.386349in}}% +\pgfpathlineto{\pgfqpoint{1.791205in}{1.392961in}}% +\pgfpathlineto{\pgfqpoint{1.810610in}{1.399927in}}% +\pgfpathlineto{\pgfqpoint{1.830015in}{1.407281in}}% +\pgfpathlineto{\pgfqpoint{1.849420in}{1.415059in}}% +\pgfpathlineto{\pgfqpoint{1.868826in}{1.423303in}}% +\pgfpathlineto{\pgfqpoint{1.888231in}{1.432062in}}% +\pgfpathlineto{\pgfqpoint{1.907636in}{1.441392in}}% +\pgfpathlineto{\pgfqpoint{1.927041in}{1.451361in}}% +\pgfpathlineto{\pgfqpoint{1.946447in}{1.462048in}}% +\pgfpathlineto{\pgfqpoint{1.965852in}{1.473546in}}% +\pgfpathlineto{\pgfqpoint{1.985257in}{1.485971in}}% +\pgfpathlineto{\pgfqpoint{2.004662in}{1.499462in}}% +\pgfpathlineto{\pgfqpoint{2.024067in}{1.514194in}}% +\pgfpathlineto{\pgfqpoint{2.043473in}{1.530388in}}% +\pgfpathlineto{\pgfqpoint{2.062878in}{1.548326in}}% +\pgfpathlineto{\pgfqpoint{2.082283in}{1.568383in}}% +\pgfpathlineto{\pgfqpoint{2.101688in}{1.591069in}}% +\pgfpathlineto{\pgfqpoint{2.121094in}{1.617098in}}% +\pgfpathlineto{\pgfqpoint{2.140499in}{1.647519in}}% +\pgfpathlineto{\pgfqpoint{2.159904in}{1.683962in}}% +\pgfpathlineto{\pgfqpoint{2.179309in}{1.729164in}}% +\pgfpathlineto{\pgfqpoint{2.198715in}{1.788269in}}% +\pgfpathlineto{\pgfqpoint{2.218120in}{1.872854in}}% +\pgfpathlineto{\pgfqpoint{2.237525in}{2.019955in}}% +\pgfpathlineto{\pgfqpoint{2.247876in}{2.315844in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.316407in}{0.548769in}}{\pgfqpoint{1.940523in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.100375pt}% +\definecolor{currentstroke}{rgb}{1.000000,0.498039,0.054902}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.454821in}{2.315844in}}% +\pgfpathlineto{\pgfqpoint{0.471649in}{2.265444in}}% +\pgfpathlineto{\pgfqpoint{0.491054in}{2.214262in}}% +\pgfpathlineto{\pgfqpoint{0.510460in}{2.168554in}}% +\pgfpathlineto{\pgfqpoint{0.529865in}{2.127278in}}% +\pgfpathlineto{\pgfqpoint{0.549270in}{2.089666in}}% +\pgfpathlineto{\pgfqpoint{0.568675in}{2.055132in}}% +\pgfpathlineto{\pgfqpoint{0.588081in}{2.023222in}}% +\pgfpathlineto{\pgfqpoint{0.607486in}{1.993575in}}% +\pgfpathlineto{\pgfqpoint{0.626891in}{1.965899in}}% +\pgfpathlineto{\pgfqpoint{0.646296in}{1.939958in}}% +\pgfpathlineto{\pgfqpoint{0.665702in}{1.915554in}}% +\pgfpathlineto{\pgfqpoint{0.685107in}{1.892522in}}% +\pgfpathlineto{\pgfqpoint{0.704512in}{1.870720in}}% +\pgfpathlineto{\pgfqpoint{0.723917in}{1.850031in}}% +\pgfpathlineto{\pgfqpoint{0.743322in}{1.830351in}}% +\pgfpathlineto{\pgfqpoint{0.762728in}{1.811591in}}% +\pgfpathlineto{\pgfqpoint{0.782133in}{1.793672in}}% +\pgfpathlineto{\pgfqpoint{0.801538in}{1.776528in}}% +\pgfpathlineto{\pgfqpoint{0.820943in}{1.760096in}}% +\pgfpathlineto{\pgfqpoint{0.840349in}{1.744324in}}% +\pgfpathlineto{\pgfqpoint{0.859754in}{1.729164in}}% +\pgfpathlineto{\pgfqpoint{0.879159in}{1.714573in}}% +\pgfpathlineto{\pgfqpoint{0.898564in}{1.700513in}}% +\pgfpathlineto{\pgfqpoint{0.917969in}{1.686948in}}% +\pgfpathlineto{\pgfqpoint{0.937375in}{1.673849in}}% +\pgfpathlineto{\pgfqpoint{0.956780in}{1.661185in}}% +\pgfpathlineto{\pgfqpoint{0.976185in}{1.648932in}}% +\pgfpathlineto{\pgfqpoint{0.995590in}{1.637065in}}% +\pgfpathlineto{\pgfqpoint{1.014996in}{1.625563in}}% +\pgfpathlineto{\pgfqpoint{1.034401in}{1.614406in}}% +\pgfpathlineto{\pgfqpoint{1.053806in}{1.603575in}}% +\pgfpathlineto{\pgfqpoint{1.073211in}{1.593053in}}% +\pgfpathlineto{\pgfqpoint{1.092617in}{1.582826in}}% +\pgfpathlineto{\pgfqpoint{1.112022in}{1.572877in}}% +\pgfpathlineto{\pgfqpoint{1.131427in}{1.563195in}}% +\pgfpathlineto{\pgfqpoint{1.150832in}{1.553766in}}% +\pgfpathlineto{\pgfqpoint{1.170237in}{1.544578in}}% +\pgfpathlineto{\pgfqpoint{1.189643in}{1.535621in}}% +\pgfpathlineto{\pgfqpoint{1.209048in}{1.526884in}}% +\pgfpathlineto{\pgfqpoint{1.228453in}{1.518359in}}% +\pgfpathlineto{\pgfqpoint{1.247858in}{1.510036in}}% +\pgfpathlineto{\pgfqpoint{1.267264in}{1.501906in}}% +\pgfpathlineto{\pgfqpoint{1.286669in}{1.493962in}}% +\pgfpathlineto{\pgfqpoint{1.306074in}{1.486197in}}% +\pgfpathlineto{\pgfqpoint{1.325479in}{1.478603in}}% +\pgfpathlineto{\pgfqpoint{1.344884in}{1.471174in}}% +\pgfpathlineto{\pgfqpoint{1.364290in}{1.463903in}}% +\pgfpathlineto{\pgfqpoint{1.383695in}{1.456785in}}% +\pgfpathlineto{\pgfqpoint{1.403100in}{1.449815in}}% +\pgfpathlineto{\pgfqpoint{1.422505in}{1.442986in}}% +\pgfpathlineto{\pgfqpoint{1.441911in}{1.436294in}}% +\pgfpathlineto{\pgfqpoint{1.461316in}{1.429735in}}% +\pgfpathlineto{\pgfqpoint{1.480721in}{1.423303in}}% +\pgfpathlineto{\pgfqpoint{1.500126in}{1.416995in}}% +\pgfpathlineto{\pgfqpoint{1.519532in}{1.410805in}}% +\pgfpathlineto{\pgfqpoint{1.538937in}{1.404732in}}% +\pgfpathlineto{\pgfqpoint{1.558342in}{1.398770in}}% +\pgfpathlineto{\pgfqpoint{1.577747in}{1.392916in}}% +\pgfpathlineto{\pgfqpoint{1.597152in}{1.387167in}}% +\pgfpathlineto{\pgfqpoint{1.616558in}{1.381520in}}% +\pgfpathlineto{\pgfqpoint{1.635963in}{1.375971in}}% +\pgfpathlineto{\pgfqpoint{1.655368in}{1.370518in}}% +\pgfpathlineto{\pgfqpoint{1.674773in}{1.365158in}}% +\pgfpathlineto{\pgfqpoint{1.694179in}{1.359888in}}% +\pgfpathlineto{\pgfqpoint{1.713584in}{1.354705in}}% +\pgfpathlineto{\pgfqpoint{1.732989in}{1.349607in}}% +\pgfpathlineto{\pgfqpoint{1.752394in}{1.344593in}}% +\pgfpathlineto{\pgfqpoint{1.771800in}{1.339658in}}% +\pgfpathlineto{\pgfqpoint{1.791205in}{1.334802in}}% +\pgfpathlineto{\pgfqpoint{1.810610in}{1.330022in}}% +\pgfpathlineto{\pgfqpoint{1.830015in}{1.325316in}}% +\pgfpathlineto{\pgfqpoint{1.849420in}{1.320682in}}% +\pgfpathlineto{\pgfqpoint{1.868826in}{1.316118in}}% +\pgfpathlineto{\pgfqpoint{1.888231in}{1.311623in}}% +\pgfpathlineto{\pgfqpoint{1.907636in}{1.307195in}}% +\pgfpathlineto{\pgfqpoint{1.927041in}{1.302831in}}% +\pgfpathlineto{\pgfqpoint{1.946447in}{1.298531in}}% +\pgfpathlineto{\pgfqpoint{1.965852in}{1.294293in}}% +\pgfpathlineto{\pgfqpoint{1.985257in}{1.290116in}}% +\pgfpathlineto{\pgfqpoint{2.004662in}{1.285997in}}% +\pgfpathlineto{\pgfqpoint{2.024067in}{1.281936in}}% +\pgfpathlineto{\pgfqpoint{2.043473in}{1.277931in}}% +\pgfpathlineto{\pgfqpoint{2.062878in}{1.273982in}}% +\pgfpathlineto{\pgfqpoint{2.082283in}{1.270085in}}% +\pgfpathlineto{\pgfqpoint{2.101688in}{1.266241in}}% +\pgfpathlineto{\pgfqpoint{2.121094in}{1.262449in}}% +\pgfpathlineto{\pgfqpoint{2.140499in}{1.258706in}}% +\pgfpathlineto{\pgfqpoint{2.159904in}{1.255013in}}% +\pgfpathlineto{\pgfqpoint{2.179309in}{1.251367in}}% +\pgfpathlineto{\pgfqpoint{2.198715in}{1.247768in}}% +\pgfpathlineto{\pgfqpoint{2.218120in}{1.244215in}}% +\pgfpathlineto{\pgfqpoint{2.237525in}{1.240707in}}% +\pgfpathlineto{\pgfqpoint{2.254990in}{1.237588in}}% +\pgfpathlineto{\pgfqpoint{2.256736in}{1.237278in}}% +\pgfpathlineto{\pgfqpoint{2.256911in}{1.237247in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.316407in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.316407in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.256930in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.256930in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.316407in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.256930in}{0.548769in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.316407in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{2.256930in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.859754in,y=1.295197in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle K\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.859754in,y=1.772994in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle K^\prime\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.000000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.874885in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.815407in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.815407in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{2.874885in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{2.874885in}{0.548769in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.874885in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.874885in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.521726in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.521726in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {2}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.168566in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=4.168566in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {4}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.815407in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=4.815407in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {6}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.845146in,y=0.272534in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle K\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.874885in}{0.548769in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.708218in, y=0.500544in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.874885in}{0.899406in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.708218in, y=0.851181in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.874885in}{1.250043in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.708218in, y=1.201818in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {2}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.874885in}{1.600680in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.708218in, y=1.552455in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {3}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.874885in}{1.951318in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.708218in, y=1.903092in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {4}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.874885in}{2.301955in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.708218in, y=2.253730in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {5}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.652662in,y=1.425362in,,bottom,rotate=90.000000]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle K^\prime\)}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{2.874885in}{0.548769in}}{\pgfqpoint{1.940523in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.501875pt}% +\definecolor{currentstroke}{rgb}{0.501961,0.501961,0.501961}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{3.382912in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.382912in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{2.874885in}{0.548769in}}{\pgfqpoint{1.940523in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{0.501875pt}% +\definecolor{currentstroke}{rgb}{0.501961,0.501961,0.501961}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.874885in}{1.099548in}}% +\pgfpathlineto{\pgfqpoint{4.815407in}{1.099548in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{2.874885in}{0.548769in}}{\pgfqpoint{1.940523in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.003750pt}% +\definecolor{currentstroke}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{3.383004in}{2.315844in}}% +\pgfpathlineto{\pgfqpoint{3.383027in}{2.264692in}}% +\pgfpathlineto{\pgfqpoint{3.383116in}{2.164019in}}% +\pgfpathlineto{\pgfqpoint{3.383230in}{2.086013in}}% +\pgfpathlineto{\pgfqpoint{3.383370in}{2.022353in}}% +\pgfpathlineto{\pgfqpoint{3.383536in}{1.968602in}}% +\pgfpathlineto{\pgfqpoint{3.383728in}{1.922109in}}% +\pgfpathlineto{\pgfqpoint{3.383946in}{1.881163in}}% +\pgfpathlineto{\pgfqpoint{3.384190in}{1.844597in}}% +\pgfpathlineto{\pgfqpoint{3.384460in}{1.811577in}}% +\pgfpathlineto{\pgfqpoint{3.384756in}{1.781487in}}% +\pgfpathlineto{\pgfqpoint{3.385079in}{1.753859in}}% +\pgfpathlineto{\pgfqpoint{3.385429in}{1.728331in}}% +\pgfpathlineto{\pgfqpoint{3.385807in}{1.704613in}}% +\pgfpathlineto{\pgfqpoint{3.386211in}{1.682473in}}% +\pgfpathlineto{\pgfqpoint{3.386644in}{1.661720in}}% +\pgfpathlineto{\pgfqpoint{3.387104in}{1.642197in}}% +\pgfpathlineto{\pgfqpoint{3.387593in}{1.623771in}}% +\pgfpathlineto{\pgfqpoint{3.388110in}{1.606330in}}% +\pgfpathlineto{\pgfqpoint{3.388657in}{1.589779in}}% +\pgfpathlineto{\pgfqpoint{3.389233in}{1.574035in}}% +\pgfpathlineto{\pgfqpoint{3.389839in}{1.559026in}}% +\pgfpathlineto{\pgfqpoint{3.390475in}{1.544692in}}% +\pgfpathlineto{\pgfqpoint{3.391142in}{1.530976in}}% +\pgfpathlineto{\pgfqpoint{3.391841in}{1.517831in}}% +\pgfpathlineto{\pgfqpoint{3.392571in}{1.505213in}}% +\pgfpathlineto{\pgfqpoint{3.393334in}{1.493085in}}% +\pgfpathlineto{\pgfqpoint{3.394130in}{1.481412in}}% +\pgfpathlineto{\pgfqpoint{3.394960in}{1.470164in}}% +\pgfpathlineto{\pgfqpoint{3.395825in}{1.459313in}}% +\pgfpathlineto{\pgfqpoint{3.396725in}{1.448833in}}% +\pgfpathlineto{\pgfqpoint{3.397661in}{1.438702in}}% +\pgfpathlineto{\pgfqpoint{3.398633in}{1.428899in}}% +\pgfpathlineto{\pgfqpoint{3.399643in}{1.419406in}}% +\pgfpathlineto{\pgfqpoint{3.400692in}{1.410204in}}% +\pgfpathlineto{\pgfqpoint{3.401781in}{1.401278in}}% +\pgfpathlineto{\pgfqpoint{3.402910in}{1.392614in}}% +\pgfpathlineto{\pgfqpoint{3.404081in}{1.384197in}}% +\pgfpathlineto{\pgfqpoint{3.405294in}{1.376014in}}% +\pgfpathlineto{\pgfqpoint{3.406552in}{1.368056in}}% +\pgfpathlineto{\pgfqpoint{3.407855in}{1.360310in}}% +\pgfpathlineto{\pgfqpoint{3.409204in}{1.352766in}}% +\pgfpathlineto{\pgfqpoint{3.410602in}{1.345416in}}% +\pgfpathlineto{\pgfqpoint{3.412049in}{1.338250in}}% +\pgfpathlineto{\pgfqpoint{3.413548in}{1.331261in}}% +\pgfpathlineto{\pgfqpoint{3.415099in}{1.324441in}}% +\pgfpathlineto{\pgfqpoint{3.416706in}{1.317782in}}% +\pgfpathlineto{\pgfqpoint{3.418369in}{1.311279in}}% +\pgfpathlineto{\pgfqpoint{3.420091in}{1.304923in}}% +\pgfpathlineto{\pgfqpoint{3.421874in}{1.298711in}}% +\pgfpathlineto{\pgfqpoint{3.423720in}{1.292636in}}% +\pgfpathlineto{\pgfqpoint{3.425632in}{1.286693in}}% +\pgfpathlineto{\pgfqpoint{3.427613in}{1.280876in}}% +\pgfpathlineto{\pgfqpoint{3.429665in}{1.275182in}}% +\pgfpathlineto{\pgfqpoint{3.431792in}{1.269606in}}% +\pgfpathlineto{\pgfqpoint{3.433997in}{1.264143in}}% +\pgfpathlineto{\pgfqpoint{3.436283in}{1.258789in}}% +\pgfpathlineto{\pgfqpoint{3.438654in}{1.253542in}}% +\pgfpathlineto{\pgfqpoint{3.441114in}{1.248396in}}% +\pgfpathlineto{\pgfqpoint{3.443668in}{1.243349in}}% +\pgfpathlineto{\pgfqpoint{3.446321in}{1.238398in}}% +\pgfpathlineto{\pgfqpoint{3.449077in}{1.233539in}}% +\pgfpathlineto{\pgfqpoint{3.451943in}{1.228770in}}% +\pgfpathlineto{\pgfqpoint{3.454924in}{1.224087in}}% +\pgfpathlineto{\pgfqpoint{3.458028in}{1.219487in}}% +\pgfpathlineto{\pgfqpoint{3.461261in}{1.214970in}}% +\pgfpathlineto{\pgfqpoint{3.464631in}{1.210531in}}% +\pgfpathlineto{\pgfqpoint{3.468147in}{1.206168in}}% +\pgfpathlineto{\pgfqpoint{3.471820in}{1.201880in}}% +\pgfpathlineto{\pgfqpoint{3.475659in}{1.197664in}}% +\pgfpathlineto{\pgfqpoint{3.479676in}{1.193518in}}% +\pgfpathlineto{\pgfqpoint{3.483885in}{1.189440in}}% +\pgfpathlineto{\pgfqpoint{3.488300in}{1.185428in}}% +\pgfpathlineto{\pgfqpoint{3.492938in}{1.181480in}}% +\pgfpathlineto{\pgfqpoint{3.497817in}{1.177595in}}% +\pgfpathlineto{\pgfqpoint{3.502957in}{1.173771in}}% +\pgfpathlineto{\pgfqpoint{3.508384in}{1.170006in}}% +\pgfpathlineto{\pgfqpoint{3.514123in}{1.166299in}}% +\pgfpathlineto{\pgfqpoint{3.520206in}{1.162648in}}% +\pgfpathlineto{\pgfqpoint{3.526670in}{1.159052in}}% +\pgfpathlineto{\pgfqpoint{3.533555in}{1.155509in}}% +\pgfpathlineto{\pgfqpoint{3.540911in}{1.152019in}}% +\pgfpathlineto{\pgfqpoint{3.548796in}{1.148579in}}% +\pgfpathlineto{\pgfqpoint{3.557281in}{1.145189in}}% +\pgfpathlineto{\pgfqpoint{3.566449in}{1.141846in}}% +\pgfpathlineto{\pgfqpoint{3.576405in}{1.138552in}}% +\pgfpathlineto{\pgfqpoint{3.587275in}{1.135303in}}% +\pgfpathlineto{\pgfqpoint{3.599224in}{1.132099in}}% +\pgfpathlineto{\pgfqpoint{3.612461in}{1.128939in}}% +\pgfpathlineto{\pgfqpoint{3.627261in}{1.125822in}}% +\pgfpathlineto{\pgfqpoint{3.644002in}{1.122747in}}% +\pgfpathlineto{\pgfqpoint{3.663208in}{1.119713in}}% +\pgfpathlineto{\pgfqpoint{3.685656in}{1.116719in}}% +\pgfpathlineto{\pgfqpoint{3.712547in}{1.113764in}}% +\pgfpathlineto{\pgfqpoint{3.745902in}{1.110847in}}% +\pgfpathlineto{\pgfqpoint{3.789516in}{1.107968in}}% +\pgfpathlineto{\pgfqpoint{3.851932in}{1.105126in}}% +\pgfpathlineto{\pgfqpoint{3.960478in}{1.102320in}}% +\pgfpathlineto{\pgfqpoint{4.328852in}{1.099824in}}% +\pgfpathlineto{\pgfqpoint{4.700641in}{1.099576in}}% +\pgfpathlineto{\pgfqpoint{4.829296in}{1.099567in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{2.874885in}{0.548769in}}{\pgfqpoint{1.940523in}{1.753186in}}% +\pgfusepath{clip}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{1.003750pt}% +\definecolor{currentstroke}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.006944in}{-0.006944in}}{\pgfqpoint{0.006944in}{0.006944in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{-0.006944in}}% +\pgfpathcurveto{\pgfqpoint{0.001842in}{-0.006944in}}{\pgfqpoint{0.003608in}{-0.006213in}}{\pgfqpoint{0.004910in}{-0.004910in}}% +\pgfpathcurveto{\pgfqpoint{0.006213in}{-0.003608in}}{\pgfqpoint{0.006944in}{-0.001842in}}{\pgfqpoint{0.006944in}{0.000000in}}% +\pgfpathcurveto{\pgfqpoint{0.006944in}{0.001842in}}{\pgfqpoint{0.006213in}{0.003608in}}{\pgfqpoint{0.004910in}{0.004910in}}% +\pgfpathcurveto{\pgfqpoint{0.003608in}{0.006213in}}{\pgfqpoint{0.001842in}{0.006944in}}{\pgfqpoint{0.000000in}{0.006944in}}% +\pgfpathcurveto{\pgfqpoint{-0.001842in}{0.006944in}}{\pgfqpoint{-0.003608in}{0.006213in}}{\pgfqpoint{-0.004910in}{0.004910in}}% +\pgfpathcurveto{\pgfqpoint{-0.006213in}{0.003608in}}{\pgfqpoint{-0.006944in}{0.001842in}}{\pgfqpoint{-0.006944in}{0.000000in}}% +\pgfpathcurveto{\pgfqpoint{-0.006944in}{-0.001842in}}{\pgfqpoint{-0.006213in}{-0.003608in}}{\pgfqpoint{-0.004910in}{-0.004910in}}% +\pgfpathcurveto{\pgfqpoint{-0.003608in}{-0.006213in}}{\pgfqpoint{-0.001842in}{-0.006944in}}{\pgfqpoint{0.000000in}{-0.006944in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.006944in}}% +\pgfpathclose% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.384190in}{1.844597in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{3.388110in}{1.606330in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{3.405294in}{1.376014in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{3.441114in}{1.248396in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{3.612461in}{1.128939in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{3.960478in}{1.102320in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.874885in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.874885in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{4.815407in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.815407in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.874885in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.815407in}{0.548769in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.874885in}{2.301955in}}% +\pgfpathlineto{\pgfqpoint{4.815407in}{2.301955in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.907227in,y=1.134612in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle \pi/2\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.415254in,y=0.583833in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle \pi/2\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.416532in,y=1.879661in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle k=0.10\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.420452in,y=1.641394in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle k=0.20\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.437636in,y=1.411078in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle k=0.40\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.473456in,y=1.283460in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle k=0.60\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.644803in,y=1.164003in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle k=0.90\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.992820in,y=1.137383in,left,base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle k=0.99\)}% +\end{pgfscope}% +\end{pgfpicture}% +\makeatother% +\endgroup% diff --git a/buch/papers/ellfilter/python/plot_params.py b/buch/papers/ellfilter/python/plot_params.py new file mode 100644 index 0000000..4ddd1d8 --- /dev/null +++ b/buch/papers/ellfilter/python/plot_params.py @@ -0,0 +1,9 @@ +import matplotlib + +matplotlib.rcParams.update({ + "pgf.texsystem": "pdflatex", + 'font.family': 'serif', + 'font.size': 9, + 'text.usetex': True, + 'pgf.rcfonts': False, +}) diff --git a/buch/papers/ellfilter/references.bib b/buch/papers/ellfilter/references.bib index 81b3577..8f21971 100644 --- a/buch/papers/ellfilter/references.bib +++ b/buch/papers/ellfilter/references.bib @@ -4,32 +4,19 @@ % (c) 2020 Autor, Hochschule Rapperswil % -@online{ellfilter:bibtex, - title = {BibTeX}, - url = {https://de.wikipedia.org/wiki/BibTeX}, - date = {2020-02-06}, - year = {2020}, - month = {2}, - day = {6} -} - -@book{ellfilter:numerical-analysis, - title = {Numerical Analysis}, - author = {David Kincaid and Ward Cheney}, - publisher = {American Mathematical Society}, - year = {2002}, - isbn = {978-8-8218-4788-6}, - inseries = {Pure and applied undegraduate texts}, - volume = {2} -} - -@article{ellfilter:mendezmueller, - author = { Tabea Méndez and Andreas Müller }, - title = { Noncommutative harmonic analysis and image registration }, - journal = { Appl. Comput. Harmon. Anal.}, - year = 2019, - volume = 47, - pages = {607--627}, - url = {https://doi.org/10.1016/j.acha.2017.11.004} +@online{ellfilter:bib:orfanidis, + author = { Sophocles J. Orfanidis}, + title = { LECTURE NOTES ON ELLIPTIC FILTER DESIGN }, + year = 2006, + url = {https://www.ece.rutgers.edu/~orfanidi/ece521/notes.pdf} } +% Schwalm +% https://en.wikipedia.org/wiki/Elliptic_rational_functions +% https://en.wikipedia.org/wiki/Rational_function +% https://en.wikipedia.org/wiki/Jacobi_elliptic_functions +% https://de.wikipedia.org/wiki/Elliptisches_Integral +% https://de.wikipedia.org/wiki/Tschebyschow-Polynom +% https://en.wikipedia.org/wiki/Chebyshev_filter +% https://mathworld.wolfram.com/JacobiEllipticFunctions.html +% https://mathworld.wolfram.com/EllipticIntegraloftheFirstKind.html diff --git a/buch/papers/ellfilter/teil0.tex b/buch/papers/ellfilter/teil0.tex deleted file mode 100644 index fd04ba9..0000000 --- a/buch/papers/ellfilter/teil0.tex +++ /dev/null @@ -1,22 +0,0 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 0\label{ellfilter:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{ellfilter:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. - - diff --git a/buch/papers/ellfilter/teil1.tex b/buch/papers/ellfilter/teil1.tex deleted file mode 100644 index 7e62a2f..0000000 --- a/buch/papers/ellfilter/teil1.tex +++ /dev/null @@ -1,55 +0,0 @@ -% -% teil1.tex -- Beispiel-File für das Paper -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 1 -\label{ellfilter:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{ellfilter:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{ellfilter:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. - -Et harum quidem rerum facilis est et expedita distinctio -\ref{ellfilter:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{ellfilter:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. - - diff --git a/buch/papers/ellfilter/teil2.tex b/buch/papers/ellfilter/teil2.tex deleted file mode 100644 index 71fdc6d..0000000 --- a/buch/papers/ellfilter/teil2.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil2.tex -- Beispiel-File für teil2 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 2 -\label{ellfilter:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{ellfilter:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/ellfilter/teil3.tex b/buch/papers/ellfilter/teil3.tex deleted file mode 100644 index 79a5f3d..0000000 --- a/buch/papers/ellfilter/teil3.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil3.tex -- Beispiel-File für Teil 3 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 3 -\label{ellfilter:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{ellfilter:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/ellfilter/tikz/arccos.tikz.tex b/buch/papers/ellfilter/tikz/arccos.tikz.tex new file mode 100644 index 0000000..2772620 --- /dev/null +++ b/buch/papers/ellfilter/tikz/arccos.tikz.tex @@ -0,0 +1,66 @@ +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] + + \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] + \tikzset{pole/.style={cross out, draw=black, minimum size=(0.15cm-\pgflinewidth), inner sep=0pt, outer sep=0pt}} + + \draw[gray, ->] (0,-2) -- (0,2) node[anchor=south]{$\mathrm{Im}~z$}; + \draw[gray, ->] (-5,0) -- (5,0) node[anchor=west]{$\mathrm{Re}~z$}; + + \begin{scope}[xscale=0.6] + + \clip(-7.5,-2) rectangle (7.5,2); + + \draw[thick, ->, darkgreen] (0, 0) -- (0,1.5); + \draw[thick, ->, orange] (1, 0) -- (0,0); + \draw[thick, ->, red] (2, 0) -- (1,0); + \draw[thick, ->, blue] (2,1.5) -- (2, 0); + + \foreach \i in {-2,...,1} { + \begin{scope}[opacity=0.5, xshift=\i*4cm] + \draw[->, orange] (-1, 0) -- (0,0); + \draw[->, darkgreen] (0, 0) -- (0,1.5); + \draw[->, darkgreen] (0, 0) -- (0,-1.5); + \draw[->, orange] (1, 0) -- (0,0); + \draw[->, red] (2, 0) -- (1,0); + \draw[->, blue] (2,1.5) -- (2, 0); + \draw[->, blue] (2,-1.5) -- (2, 0); + \draw[->, red] (2, 0) -- (3,0); + + \node[zero] at (1,0) {}; + \node[zero] at (3,0) {}; + \end{scope} + } + + \node[gray, anchor=north] at (-6,0) {$-3\pi$}; + \node[gray, anchor=north] at (-4,0) {$-2\pi$}; + \node[gray, anchor=north] at (-2,0) {$-\pi$}; + % \node[gray, anchor=north] at (0,0) {$0$}; + \node[gray, anchor=north] at (2,0) {$\pi$}; + \node[gray, anchor=north] at (4,0) {$2\pi$}; + \node[gray, anchor=north] at (6,0) {$3\pi$}; + + \node[gray, anchor=east] at (0,-1.5) {$-\infty$}; + % \node[gray, anchor=south east] at (0, 0) {$0$}; + \node[gray, anchor=east] at (0, 1.5) {$\infty$}; + + \end{scope} + + \begin{scope}[yshift=-2.5cm] + + \draw[gray, ->] (-5,0) -- (5,0) node[anchor=west]{$w$}; + + \draw[thick, ->, blue] (-4, 0) -- (-2, 0); + \draw[thick, ->, red] (-2, 0) -- (0, 0); + \draw[thick, ->, orange] (0, 0) -- (2, 0); + \draw[thick, ->, darkgreen] (2, 0) -- (4, 0); + + \node[anchor=south] at (-4,0) {$-\infty$}; + \node[anchor=south] at (-2,0) {$-1$}; + \node[anchor=south] at (0,0) {$0$}; + \node[anchor=south] at (2,0) {$1$}; + \node[anchor=south] at (4,0) {$\infty$}; + + \end{scope} + + +\end{tikzpicture}
\ No newline at end of file diff --git a/buch/papers/ellfilter/tikz/arccos2.tikz.tex b/buch/papers/ellfilter/tikz/arccos2.tikz.tex new file mode 100644 index 0000000..3fc3cc6 --- /dev/null +++ b/buch/papers/ellfilter/tikz/arccos2.tikz.tex @@ -0,0 +1,45 @@ +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] + + \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] + \tikzset{pole/.style={cross out, draw=black, minimum size=(0.15cm-\pgflinewidth), inner sep=0pt, outer sep=0pt}} + + \begin{scope}[xscale=0.5] + + \draw[gray, ->] (0,-2) -- (0,2) node[anchor=south]{$\mathrm{Im}~z_1$}; + \draw[gray, ->] (-10,0) -- (10,0) node[anchor=west]{$\mathrm{Re}~z_1$}; + + \begin{scope} + + \draw[>->, line width=0.05, thick, blue] (2, 1.5) -- (2,0.05) -- node[anchor=south, pos=0.5]{$N=1$} (0.1,0.05) -- (0.1,1.5); + \draw[>->, line width=0.05, thick, orange] (4, 1.5) -- (4,0) -- node[anchor=south, pos=0.25]{$N=2$} (0,0) -- (0,1.5); + \draw[>->, line width=0.05, thick, red] (6, 1.5) node[anchor=north west]{$-\infty$} -- (6,-0.05) node[anchor=west]{$-1$} -- node[anchor=north]{$0$} node[anchor=south, pos=0.1666]{$N=3$} (-0.1,-0.05) node[anchor=east]{$1$} -- (-0.1,1.5) node[anchor=north east]{$\infty$}; + + + \node[zero] at (-7,0) {}; + \node[zero] at (-5,0) {}; + \node[zero] at (-3,0) {}; + \node[zero] at (-1,0) {}; + \node[zero] at (1,0) {}; + \node[zero] at (3,0) {}; + \node[zero] at (5,0) {}; + \node[zero] at (7,0) {}; + + + \end{scope} + + \node[gray, anchor=north] at (-8,0) {$-4\pi$}; + \node[gray, anchor=north] at (-6,0) {$-3\pi$}; + \node[gray, anchor=north] at (-4,0) {$-2\pi$}; + \node[gray, anchor=north] at (-2,0) {$-\pi$}; + \node[gray, anchor=north] at (2,0) {$\pi$}; + \node[gray, anchor=north] at (4,0) {$2\pi$}; + \node[gray, anchor=north] at (6,0) {$3\pi$}; + \node[gray, anchor=north] at (8,0) {$4\pi$}; + + + \node[gray, anchor=east] at (0,-1.5) {$-\infty$}; + \node[gray, anchor=east] at (0, 1.5) {$\infty$}; + + \end{scope} + +\end{tikzpicture}
\ No newline at end of file diff --git a/buch/papers/ellfilter/tikz/cd.tikz.tex b/buch/papers/ellfilter/tikz/cd.tikz.tex new file mode 100644 index 0000000..7155a85 --- /dev/null +++ b/buch/papers/ellfilter/tikz/cd.tikz.tex @@ -0,0 +1,87 @@ +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] + + \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] + + \tikzset{pole/.style={cross out, draw=black, minimum size=(0.15cm-\pgflinewidth), inner sep=0pt, outer sep=0pt}} + + \begin{scope}[xscale=1, yscale=2] + + \draw[gray, ->] (0,-1.5) -- (0,1.5) node[anchor=south]{$\mathrm{Im}~z$}; + \draw[gray, ->] (-5,0) -- (5,0) node[anchor=west]{$\mathrm{Re}~z$}; + + \draw[gray] ( 1,0) +(0,0.1) -- +(0, -0.1) node[inner sep=0, anchor=north] {\small $K$}; + + \draw[gray] (0, 0.5) +(0.1, 0) -- +(-0.1, 0) node[inner sep=0, anchor=east]{\small $jK^\prime$}; + + + \begin{scope} + + \begin{scope}[xshift=0cm] + + \clip(-4.5,-1.25) rectangle (4.5,1.25); + + \fill[yellow!30] (0,0) rectangle (1, 0.5); + + + \draw[thick, ->, darkgreen] (0, 0) -- (0,0.5); + \draw[thick, ->, orange] (1, 0) -- (0,0); + \draw[thick, ->, red] (2, 0) -- (1,0); + \draw[thick, ->, blue] (2,0.5) -- (2, 0); + \draw[thick, ->, purple] (1, 0.5) -- (2,0.5); + \draw[thick, ->, cyan] (0, 0.5) -- (1,0.5); + + + + \foreach \i in {-2,...,1} { + \foreach \j in {-2,...,1} { + \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] + \draw[opacity=0.5, ->, darkgreen] (0, 0) -- (0,0.5); + \draw[opacity=0.5, ->, orange] (1, 0) -- (0,0); + \draw[opacity=0.5, ->, red] (2, 0) -- (1,0); + \draw[opacity=0.5, ->, blue] (2,0.5) -- (2, 0); + \draw[opacity=0.5, ->, purple] (1, 0.5) -- (2,0.5); + \draw[opacity=0.5, ->, cyan] (0, 0.5) -- (1,0.5); + \draw[opacity=0.5, ->, darkgreen] (0,1) -- (0,0.5); + \draw[opacity=0.5, ->, blue] (2,0.5) -- (2, 1); + \draw[opacity=0.5, ->, purple] (3, 0.5) -- (2,0.5); + \draw[opacity=0.5, ->, cyan] (4, 0.5) -- (3,0.5); + \draw[opacity=0.5, ->, red] (2, 0) -- (3,0); + \draw[opacity=0.5, ->, orange] (3, 0) -- (4,0); + + \node[zero] at ( 1, 0) {}; + \node[zero] at ( 3, 0) {}; + \node[pole] at ( 1,0.5) {}; + \node[pole] at ( 3,0.5) {}; + + \end{scope} + } + } + + \end{scope} + + \end{scope} + + \end{scope} + + \begin{scope}[yshift=-3.5cm, xscale=0.75] + + \draw[gray, ->] (-6,0) -- (6,0) node[anchor=west]{$w$}; + + \draw[thick, ->, purple] (-5, 0) -- (-3, 0); + \draw[thick, ->, blue] (-3, 0) -- (-2, 0); + \draw[thick, ->, red] (-2, 0) -- (0, 0); + \draw[thick, ->, orange] (0, 0) -- (2, 0); + \draw[thick, ->, darkgreen] (2, 0) -- (3, 0); + \draw[thick, ->, cyan] (3, 0) -- (5, 0); + + \node[anchor=south] at (-5,0) {$-\infty$}; + \node[anchor=south] at (-3,0) {$-1/k$}; + \node[anchor=south] at (-2,0) {$-1$}; + \node[anchor=south] at (0,0) {$0$}; + \node[anchor=south] at (2,0) {$1$}; + \node[anchor=south] at (3,0) {$1/k$}; + \node[anchor=south] at (5,0) {$\infty$}; + + \end{scope} + +\end{tikzpicture}
\ No newline at end of file diff --git a/buch/papers/ellfilter/tikz/cd2.tikz.tex b/buch/papers/ellfilter/tikz/cd2.tikz.tex new file mode 100644 index 0000000..0743f7d --- /dev/null +++ b/buch/papers/ellfilter/tikz/cd2.tikz.tex @@ -0,0 +1,84 @@ +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] + + \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] + \tikzstyle{dot} = [fill, circle, inner sep =0, minimum height=0.1cm] + + \tikzset{pole/.style={cross out, draw=black, minimum size=(0.15cm-\pgflinewidth), inner sep=0pt, outer sep=0pt}} + + \begin{scope}[xscale=1.25, yscale=2.5] + + \draw[gray, ->] (0,-0.75) -- (0,1.25) node[anchor=south]{$\mathrm{Im}~z_1$}; + \draw[gray, ->] (-1.5,0) -- (6,0) node[anchor=west]{$\mathrm{Re}~z_1$}; + + \draw[gray] ( 1,0) +(0,0.05) -- +(0, -0.05) node[inner sep=0, anchor=north] {\small $K_1$}; + \draw[gray] ( 5,0) +(0,0.05) -- +(0, -0.05) node[inner sep=0, anchor=north] {\small $5K_1$}; + \draw[gray] (0, 0.5) +(0.1, 0) -- +(-0.1, 0) node[inner sep=0, anchor=east]{\small $jK^\prime_1$}; + + \begin{scope} + + \clip(-1.5,-0.75) rectangle (6.8,1.25); + + % \draw[>->, line width=0.05, thick, blue] (1, 0.45) -- (2, 0.45) -- (2, 0.05) -- ( 0.1, 0.05) -- ( 0.1,0.45) -- (1, 0.45); + % \draw[>->, line width=0.05, thick, orange] (2, 0.5 ) -- (4, 0.5 ) -- (4, 0 ) -- ( 0 , 0 ) -- ( 0 ,0.5 ) -- (2, 0.5 ); + % \draw[>->, line width=0.05, thick, red] (3, 0.55) -- (6, 0.55) -- (6,-0.05) -- (-0.1,-0.05) -- (-0.1,0.55) -- (3, 0.55); + % \node[blue] at (1, 0.25) {$N=1$}; + % \node[orange] at (3, 0.25) {$N=2$}; + % \node[red] at (5, 0.25) {$N=3$}; + + + + % \draw[line width=0.1cm, fill, red!50] (0,0) rectangle (3, 0.5); + % \draw[line width=0.05cm, fill, orange!50] (0,0) rectangle (2, 0.5); + % \fill[yellow!50] (0,0) rectangle (1, 0.5); + % \node[] at (0.5, 0.25) {\small $N=1$}; + % \node[] at (1.5, 0.25) {\small $N=2$}; + % \node[] at (2.5, 0.25) {\small $N=3$}; + + \fill[orange!30] (0,0) rectangle (5, 0.5); + \fill[yellow!30] (0,0) rectangle (1, 0.5); + \node[] at (2.5, 0.25) {\small $N=5$}; + + + \draw[decorate,decoration={brace,amplitude=3pt,mirror}, yshift=0.05cm] + (5,0.5) node(t_k_unten){} -- node[above, yshift=0.1cm]{$NK$} + (0,0.5) node(t_k_opt_unten){}; + + \draw[decorate,decoration={brace,amplitude=3pt,mirror}, xshift=0.1cm] + (5,0) node(t_k_unten){} -- node[right, xshift=0.1cm]{$K^\prime \frac{K_1N}{K} = K^\prime_1$} + (5,0.5) node(t_k_opt_unten){}; + + \foreach \i in {-2,...,1} { + \foreach \j in {-2,...,1} { + \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] + + \node[zero] at ( 1, 0) {}; + \node[zero] at ( 3, 0) {}; + \node[pole] at ( 1,0.5) {}; + \node[pole] at ( 3,0.5) {}; + + \end{scope} + } + } + + + + + \draw[thick, ->, darkgreen] (5, 0) -- node[yshift=-0.5cm]{Durchlassbereich} (0,0); + \draw[thick, ->, orange] (-0, 0) -- node[align=center]{Übergangs-\\berech} (0,0.5); + \draw[thick, ->, red] (0,0.5) -- node[align=center, yshift=0.5cm]{Sperrbereich} (5, 0.5); + + \draw (4,0 ) node[dot]{} node[anchor=south] {\small $1$}; + \draw (2,0 ) node[dot]{} node[anchor=south] {\small $-1$}; + \draw (0,0 ) node[dot]{} node[anchor=south west] {\small $1$}; + \draw (0,0.5) node[dot]{} node[anchor=north west] {\small $1/k$}; + \draw (2,0.5) node[dot]{} node[anchor=north] {\small $-1/k$}; + \draw (4,0.5) node[dot]{} node[anchor=north] {\small $1/k$}; + + + + \end{scope} + + + \end{scope} + +\end{tikzpicture}
\ No newline at end of file diff --git a/buch/papers/ellfilter/tikz/fundamental_rectangle.tikz.tex b/buch/papers/ellfilter/tikz/fundamental_rectangle.tikz.tex new file mode 100644 index 0000000..921dbfa --- /dev/null +++ b/buch/papers/ellfilter/tikz/fundamental_rectangle.tikz.tex @@ -0,0 +1,26 @@ +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] + + \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] + + \tikzset{pole/.style={cross out, draw=black, minimum size=(0.15cm-\pgflinewidth), inner sep=0pt, outer sep=0pt}} + + \begin{scope}[xscale=2, yscale=2] + + \draw[gray, ->] (0,-0.25) -- (0,1.25) node[anchor=south]{$\mathrm{Im}~z$}; + \draw[gray, ->] (-0.25,0) -- (1.5,0) node[anchor=west]{$\mathrm{Re}~z$}; + + \draw[gray] ( 1,0) +(0,0.05) -- +(0, -0.05) node[inner sep=0, anchor=north] {\small $K$}; + + \draw[gray] (0, 1) +(0.05, 0) -- +(-0.05, 0) node[inner sep=0, anchor=east]{\small $jK^\prime$}; + + \fill[yellow!50] (0,0) rectangle (1, 1); + + \node[anchor=south east] at ( 1,0) {$c$}; + \node[anchor=north east] at ( 1,1) {$d$}; + \node[anchor=north west] at ( 0,1) {$n$}; + \node[anchor=south west] at ( 0,0) {$s$}; + + \end{scope} + + +\end{tikzpicture}
\ No newline at end of file diff --git a/buch/papers/ellfilter/tikz/sn.tikz.tex b/buch/papers/ellfilter/tikz/sn.tikz.tex new file mode 100644 index 0000000..87c63c0 --- /dev/null +++ b/buch/papers/ellfilter/tikz/sn.tikz.tex @@ -0,0 +1,86 @@ +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] + + \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] + + \tikzset{pole/.style={cross out, draw=black, minimum size=(0.15cm-\pgflinewidth), inner sep=0pt, outer sep=0pt}} + + \begin{scope}[xscale=1, yscale=2] + + \draw[gray, ->] (0,-1.5) -- (0,1.5) node[anchor=south]{$\mathrm{Im}~z$}; + \draw[gray, ->] (-5,0) -- (5,0) node[anchor=west]{$\mathrm{Re}~z$}; + + \begin{scope} + + \clip(-4.5,-1.25) rectangle (4.5,1.25); + + \fill[yellow!30] (0,0) rectangle (1, 0.5); + + \begin{scope}[xshift=-1cm] + + \draw[thick, ->, darkgreen] (0, 0) -- (0,0.5); + \draw[thick, ->, orange] (1, 0) -- (0,0); + \draw[thick, ->, red] (2, 0) -- (1,0); + \draw[thick, ->, blue] (2,0.5) -- (2, 0); + \draw[thick, ->, purple] (1, 0.5) -- (2,0.5); + \draw[thick, ->, cyan] (0, 0.5) -- (1,0.5); + + + \foreach \i in {-2,...,2} { + \foreach \j in {-2,...,1} { + \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] + \draw[opacity=0.5, ->, darkgreen] (0, 0) -- (0,0.5); + \draw[opacity=0.5, ->, orange] (1, 0) -- (0,0); + \draw[opacity=0.5, ->, red] (2, 0) -- (1,0); + \draw[opacity=0.5, ->, blue] (2,0.5) -- (2, 0); + \draw[opacity=0.5, ->, purple] (1, 0.5) -- (2,0.5); + \draw[opacity=0.5, ->, cyan] (0, 0.5) -- (1,0.5); + \draw[opacity=0.5, ->, darkgreen] (0,1) -- (0,0.5); + \draw[opacity=0.5, ->, blue] (2,0.5) -- (2, 1); + \draw[opacity=0.5, ->, purple] (3, 0.5) -- (2,0.5); + \draw[opacity=0.5, ->, cyan] (4, 0.5) -- (3,0.5); + \draw[opacity=0.5, ->, red] (2, 0) -- (3,0); + \draw[opacity=0.5, ->, orange] (3, 0) -- (4,0); + + \node[zero] at ( 1, 0) {}; + \node[zero] at ( 3, 0) {}; + \node[pole] at ( 1,0.5) {}; + \node[pole] at ( 3,0.5) {}; + + \end{scope} + } + } + + \end{scope} + + \end{scope} + + \draw[gray] ( 1,0) +(0,0.1) -- +(0, -0.1) node[inner sep=0, anchor=north] {\small $K$}; + \draw[gray] (0, 0.5) +(0.1, 0) -- +(-0.1, 0) node[inner sep=0, anchor=east]{\small $jK^\prime$}; + + + + \end{scope} + + \begin{scope}[yshift=-3.5cm, xscale=0.75] + + \draw[gray, ->] (-6,0) -- (6,0) node[anchor=west]{$w$}; + + \draw[thick, ->, purple] (-5, 0) -- (-3, 0); + \draw[thick, ->, blue] (-3, 0) -- (-2, 0); + \draw[thick, ->, red] (-2, 0) -- (0, 0); + \draw[thick, ->, orange] (0, 0) -- (2, 0); + \draw[thick, ->, darkgreen] (2, 0) -- (3, 0); + \draw[thick, ->, cyan] (3, 0) -- (5, 0); + + \node[anchor=south] at (-5,0) {$-\infty$}; + \node[anchor=south] at (-3,0) {$-1/k$}; + \node[anchor=south] at (-2,0) {$-1$}; + \node[anchor=south] at (0,0) {$0$}; + \node[anchor=south] at (2,0) {$1$}; + \node[anchor=south] at (3,0) {$1/k$}; + \node[anchor=south] at (5,0) {$\infty$}; + + \end{scope} + + +\end{tikzpicture}
\ No newline at end of file diff --git a/buch/papers/ellfilter/tschebyscheff.tex b/buch/papers/ellfilter/tschebyscheff.tex new file mode 100644 index 0000000..7d426b6 --- /dev/null +++ b/buch/papers/ellfilter/tschebyscheff.tex @@ -0,0 +1,133 @@ +\section{Tschebyscheff-Filter} + +Als Einstieg betrachent Wir das Tschebyscheff-Filter, welches sehr verwand ist mit dem elliptischen Filter. +Genauer ausgedrückt sind die Tschebyscheff-1 und -2 Filter Spezialfälle davon. + +Der Name des Filters deutet schon an, dass die Tschebyscheff-Polynome $T_N$ für das Filter relevant sind: +\begin{align} + T_{0}(x)&=1\\ + T_{1}(x)&=x\\ + T_{2}(x)&=2x^{2}-1\\ + T_{3}(x)&=4x^{3}-3x\\ + T_{n+1}(x)&=2x~T_{n}(x)-T_{n-1}(x). +\end{align} +Bemerkenswert ist, dass die Polynome im Intervall $[-1, 1]$ mit der trigonometrischen Funktion +\begin{align} \label{ellfilter:eq:chebychef_polynomials} + T_N(w) &= \cos \left( N \cos^{-1}(w) \right) \\ + &= \cos \left(N~z \right), \quad w= \cos(z) +\end{align} +übereinstimmt. +Der Zusammenhang lässt sich mit den Doppel- und Mehrfachwinkelfunktionen der trigonometrischen Funktionen erklären. +Abbildung \ref{ellfilter:fig:chebychef_polynomials} zeigt einige Tschebyscheff-Polynome. +\begin{figure} + \centering + \input{papers/ellfilter/python/F_N_chebychev2.pgf} + \caption{Die Tschebyscheff-Polynome $C_N$.} + \label{ellfilter:fig:chebychef_polynomials} +\end{figure} +Da der Kosinus begrenzt zwischen $-1$ und $1$ ist, sind auch die Tschebyscheff-Polynome begrenzt. +Geht man aber über das Intervall $[-1, 1]$ hinaus, divergieren die Funktionen mit zunehmender Ordnung immer steiler gegen $\pm \infty$. +Diese Eigenschaft ist sehr nützlich für ein Filter. +Wenn wir die Tschebyscheff-Polynome quadrieren, passen sie perfekt in die Voraussetzungen für Filterfunktionen, wie es Abbildung \ref{ellfiter:fig:chebychef} demonstriert. +\begin{figure} + \centering + \input{papers/ellfilter/python/F_N_chebychev.pgf} + \caption{Die Tschebyscheff-Polynome füllen den erlaubten Bereich besser, und erhalten dadurch eine steilere Flanke im Sperrbereich.} + \label{ellfiter:fig:chebychef} +\end{figure} + + +Die analytische Fortsetzung von \eqref{ellfilter:eq:chebychef_polynomials} über das Intervall $[-1,1]$ hinaus stimmt mit den Polynomen überein, wie es zu erwarten ist. +Die genauere Betrachtung wird uns dann helfen die elliptischen Filter besser zu verstehen. + +Starten wir mit der Funktion, die als erstes auf $w$ angewendet wird, dem Arcuscosinus. +Die invertierte Funktion des Kosinus kann als definites Integral dargestellt werden: +\begin{align} + \cos^{-1}(x) + &= + \int_{x}^{1} + \frac{ + dz + }{ + \sqrt{ + 1-z^2 + } + }\\ + &= + \int_{0}^{x} + \frac{ + -1 + }{ + \sqrt{ + 1-z^2 + } + } + ~dz + + \frac{\pi}{2} +\end{align} +Der Integrand oder auch die Ableitung +\begin{equation} + \frac{ + -1 + }{ + \sqrt{ + 1-z^2 + } + } +\end{equation} +bestimmt dabei die Richtung, in der die Funktion verläuft. +Der reelle Arcuscosinus is bekanntlich nur für $|z| \leq 1$ definiert. +Hier bleibt der Wert unter der Wurzel positiv und das Integral liefert reelle Werte. +Doch wenn $|z|$ über 1 hinausgeht, wird der Term unter der Wurzel negativ. +Durch die Quadratwurzel entstehen für den Integranden zwei rein komplexe Lösungen. +Der Wert des Arcuscosinus verlässt also bei $z= \pm 1$ den reellen Zahlenstrahl und knickt in die komplexe Ebene ab. +Abbildung \ref{ellfilter:fig:arccos} zeigt den $\arccos$ in der komplexen Ebene. +\begin{figure} + \centering + \input{papers/ellfilter/tikz/arccos.tikz.tex} + \caption{Die Funktion $z = \cos^{-1}(w)$ dargestellt in der komplexen ebene.} + \label{ellfilter:fig:arccos} +\end{figure} +Wegen der Periodizität des Kosinus ist auch der Arcuscosinus $2\pi$-periodisch und es entstehen periodische Nullstellen. +% \begin{equation} +% \frac{ +% 1 +% }{ +% \sqrt{ +% 1-z^2 +% } +% } +% \in \mathbb{R} +% \quad +% \forall +% \quad +% -1 \leq z \leq 1 +% \end{equation} +% \begin{equation} +% \frac{ +% 1 +% }{ +% \sqrt{ +% 1-z^2 +% } +% } +% = i \xi \quad | \quad \xi \in \mathbb{R} +% \quad +% \forall +% \quad +% z \leq -1 \cup z \geq 1 +% \end{equation} + +Die Tschebyscheff-Polynome skalieren diese Nullstellen mit dem Ordnungsfaktor $N$, wie dargestellt in Abbildung \ref{ellfilter:fig:arccos2}. +\begin{figure} + \centering + \input{papers/ellfilter/tikz/arccos2.tikz.tex} + \caption{ + $z_1=N \cos^{-1}(w)$-Ebene der Tschebyscheff-Funktion. + Die eingefärbten Pfade sind Verläufe von $w~\forall~[-\infty, \infty]$ für verschiedene Ordnungen $N$. + Je grösser die Ordnung $N$ gewählt wird, desto mehr Nullstellen werden passiert. + } + \label{ellfilter:fig:arccos2} +\end{figure} +Somit passert $\cos( N~\cos^{-1}(w))$ im Intervall $[-1, 1]$ $N$ Nullstellen. +Durch die spezielle Anordnung der Nullstellen hat die Funktion Equirippel-Verhalten und ist dennoch ein Polynom, was sich perfekt für linear Filter eignet. diff --git a/buch/papers/fm/.vscode/settings.json b/buch/papers/fm/.vscode/settings.json new file mode 100644 index 0000000..5125289 --- /dev/null +++ b/buch/papers/fm/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "notebook.cellFocusIndicator": "border" +}
\ No newline at end of file diff --git a/buch/papers/fm/teil0.tex b/buch/papers/fm/01_AM-FM.tex index 55697df..55697df 100644 --- a/buch/papers/fm/teil0.tex +++ b/buch/papers/fm/01_AM-FM.tex diff --git a/buch/papers/fm/teil1.tex b/buch/papers/fm/02_frequenzyspectrum.tex index 6f9edf1..6f9edf1 100644 --- a/buch/papers/fm/teil1.tex +++ b/buch/papers/fm/02_frequenzyspectrum.tex diff --git a/buch/papers/fm/teil2.tex b/buch/papers/fm/03_bessel.tex index 6ab6fa0..6ab6fa0 100644 --- a/buch/papers/fm/teil2.tex +++ b/buch/papers/fm/03_bessel.tex diff --git a/buch/papers/fm/teil3.tex b/buch/papers/fm/04_fazit.tex index 3bcfc4d..3bcfc4d 100644 --- a/buch/papers/fm/teil3.tex +++ b/buch/papers/fm/04_fazit.tex diff --git a/buch/papers/fm/Makefile.inc b/buch/papers/fm/Makefile.inc index 0f144b6..e5cd9f6 100644 --- a/buch/papers/fm/Makefile.inc +++ b/buch/papers/fm/Makefile.inc @@ -6,9 +6,9 @@ dependencies-fm = \ papers/fm/packages.tex \ papers/fm/main.tex \ - papers/fm/references.bib \ - papers/fm/teil0.tex \ - papers/fm/teil1.tex \ - papers/fm/teil2.tex \ - papers/fm/teil3.tex + papers/fm/01_AM-FM.tex \ + papers/fm/02_frequenzyspectrum.tex \ + papers/fm/03_bessel.tex \ + papers/fm/04_fazit.tex \ + papers/fm/references.bib diff --git a/buch/papers/fm/Python animation/Bessel-FM.ipynb b/buch/papers/fm/Python animation/Bessel-FM.ipynb new file mode 100644 index 0000000..bfbb83d --- /dev/null +++ b/buch/papers/fm/Python animation/Bessel-FM.ipynb @@ -0,0 +1,233 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 117, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from scipy import signal\n", + "from scipy.fft import fft, ifft, fftfreq\n", + "import scipy.special as sc\n", + "import scipy.fftpack\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib.widgets import Slider\n", + "def fm(beta):\n", + " # Number of samplepoints\n", + " N = 600\n", + " # sample spacing\n", + " T = 1.0 / 1000.0\n", + " fc = 100.0\n", + " fm = 30.0\n", + " x = np.linspace(0.01, N*T, N)\n", + " #beta = 1.0\n", + " y_old = np.sin(fc * 2.0*np.pi*x+beta*np.sin(fm * 2.0*np.pi*x))\n", + " y = 0*x;\n", + " xf = fftfreq(N, 1 / 400)\n", + " for k in range (-4, 4):\n", + " y = sc.jv(k,beta)*np.sin((fc+k*fm) * 2.0*np.pi*x)\n", + " yf = fft(y)/(fc*np.pi)\n", + " plt.plot(xf, np.abs(yf))\n", + " plt.xlim(-150, 150)\n", + " plt.show()\n", + " #yf_old = fft(y_old)\n", + " #plt.plot(xf, np.abs(yf_old))\n", + " #plt.show()\n", + " \n" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD6CAYAAACxrrxPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAAcIUlEQVR4nO3de5Bc5Xnn8e+jGd01uqEBZI2EBAgbOQ4LjLmEmFDYiQV2oVR8KXA5xolj1a6N1y6zu8bxFuslySZA7TqbMjHROk5CYlsW9m6sxYpl7OBy1gZZEheBJCCDBLoije7SzGiuz/7Rp3vO9PT0nJFOd59++/epmuo+F/W8b2vm1+885z3nmLsjIiL1b1KtGyAiIulQoIuIBEKBLiISCAW6iEggFOgiIoFQoIuIBGLcQDezb5jZYTN7aYztZmZ/YWYdZrbNzK5Jv5kiIjKe5gT7/C3wVeCxMbbfBiyPvq4HvhY9lrVgwQJfunRpokaKiEjO1q1bj7h7a6lt4wa6u//MzJaW2WUV8JjnzlB6xszmmtlCdz9Y7nWXLl3Kli1bxvv2IiISY2ZvjLUtjRr6ImBvbHlftE5ERKqoqgdFzWy1mW0xsy2dnZ3V/NYiIsFLI9D3A4tjy23RulHcfY27t7t7e2tryRKQiIicozQCfT3wsWi2yw3AyfHq5yIikr5xD4qa2beBW4AFZrYP+C/AZAB3fxTYANwOdADdwO9VqrEiIjK2JLNc7hpnuwOfTq1FIiJyTnSmqIhIIBTokknuzne37uNs/2Ctm1I1P95xiEOnzta6GVLHFOiSST/ZeZj/8PgL/PcfvVLrplTNHzy2hd/5y1/UuhlSxxTokkmnzvYDcORMX41bUl37T/TUuglSxxToIiKBUKCLZIBu1i5pUKCLiARCgS6SARqgSxoU6CIigVCgi2SABuiSBgW6iEggFOgiGaBZLpIGBbqISCAU6CIZoPG5pEGBLpmmUoRIcgp0kQzQ55akQYEumWZmtW5CVbiKLpICBbqISCAU6CIZoJKLpEGBLiISCAW6iEggFOgiIoFQoItkgGrokgYFuohIIBToIhmgeeiSBgW6iEggFOgiGaAauqRBgS4iEggFukgGaIAuaVCgi2SALhMsaVCgi4gEQoEukgEan0saEgW6ma00s1fMrMPM7iuxfYmZPWVmz5nZNjO7Pf2miohIOeMGupk1AY8AtwErgLvMbEXRbv8ZWOfuVwN3An+ZdkNFQqYSuqQhyQj9OqDD3Xe5ex+wFlhVtI8Ds6Pnc4AD6TVRRESSaE6wzyJgb2x5H3B90T5fBn5kZp8BZgLvSaV1Io1CI3RJQVoHRe8C/tbd24Dbgb83s1GvbWarzWyLmW3p7OxM6VuLiAgkC/T9wOLYclu0Lu4TwDoAd38amAYsKH4hd1/j7u3u3t7a2npuLRYJkC7OJWlIEuibgeVmtszMppA76Lm+aJ89wLsBzOxKcoGuIbiISBWNG+juPgDcA2wEdpKbzbLdzB4wszui3e4FPmlmLwDfBj7uOvVNJDH9tkgakhwUxd03ABuK1t0fe74DuCndpok0DuW5pEFnioqIBEKBLpIBqlBKGhToIiKBUKCLZIDG55IGBbpkmkoRIskp0EUyQJ9bkgYFumSamdW6CSJ1Q4EukgE69V/SoEAXEQmEAl0kCzRAlxQo0EUyQHkuaVCgi4gEQoEukgGatihpUKCLiARCgS6SAZq2KGlQoEum6dR/keQU6CIZoM8tSYMCXTJNp/6LJKdAF8kADdAlDQp0EZFAKNBFMkAHfyUNCnSRDFCeSxoU6CIigVCgi4gEQoEumabaskhyCnSRDNDnlqRBgS4iEggFukgG6OJckgYFumSaTv0XSU6BLpIBqqFLGhToIiKBUKCLZIAG6JKGRIFuZivN7BUz6zCz+8bY58NmtsPMtpvZt9JtpoiIjKd5vB3MrAl4BPhNYB+w2czWu/uO2D7LgS8CN7n7cTO7sFINFgmRTqCSNCQZoV8HdLj7LnfvA9YCq4r2+STwiLsfB3D3w+k2UyRsinNJQ5JAXwTsjS3vi9bFXQFcYWY/N7NnzGxlWg2UxqaRq0hy45ZcJvA6y4FbgDbgZ2b2Dnc/Ed/JzFYDqwGWLFmS0rcWqX/63JI0JBmh7wcWx5bbonVx+4D17t7v7ruBV8kF/Ajuvsbd2929vbW19VzbLA1EJxaJJJck0DcDy81smZlNAe4E1hft84/kRueY2QJyJZhd6TVTJHQaosv5GzfQ3X0AuAfYCOwE1rn7djN7wMzuiHbbCBw1sx3AU8B/dPejlWq0iIiMlqiG7u4bgA1F6+6PPXfg89GXiEyQauiSBp0pKiISCAW6SAZogC5pUKCLiARCgS6Z4O4NfRJRqa43+nsiE6dAl0y4/r/9hBv+9Ce1bkbNlLpj0df/ZTfLvriBk939NWiR1KO0zhQVOS+HT/eWXN/II9S1m/cA0HnmLHNmTK5xa6QeaIQumdRoOd5o/ZXKUKBLJuXzrZFP/VfGy0Qp0EUyQCN0SYMCXTKpkWvneY37t4mcKwW6SAaUmuUiMlEKdMkkxZvIxCnQRTJAFSZJgwJdsqlEwH1n8x7uXfdC9dtSAd9/fj+f/taztW6GBEaBLpkWPzj6he+9yPee3VfD1qTns2uf5wfbDta6GRIYBbpkUqMdJCx5LZfqN0PqnAJdJPM0gVGSUaBLJjXaQcJG+4tEKkOBLpmkU/9FJk6BLpIB5f8i0ehdklGgSyY1WsmlFP1tIhOlQBfJAH1+SRoU6JJJOkgoMnEKdJEMKHV1SX2kyUQp0CWTVEMXmTgFumRao1wXvXwvdXhUklGgSyY1RowPf2A1yOeWVJgCXbKpQRJuKFE3G+O9kPOnQBepoeGS0tih3SCfbZICBbpkUqOc+p8kq5XnkpQCXaSGhhLU0DVCl6QU6JJJjRJiSfqpk6wkqUSBbmYrzewVM+sws/vK7PcBM3Mza0+viSLhU2RLGsYNdDNrAh4BbgNWAHeZ2YoS+7UAnwU2pd1IaTyNMv98KEE/G+StkBQkGaFfB3S4+y537wPWAqtK7PdHwIPA2RTbJxK0fFirhi5pSBLoi4C9seV90boCM7sGWOzuP0ixbdLAGiXDEo3QG+bdkPN13gdFzWwS8D+AexPsu9rMtpjZls7OzvP91tIAQi+9FGahl+ln4G+BpChJoO8HFseW26J1eS3ArwA/NbPXgRuA9aUOjLr7Gndvd/f21tbWc2+1BK9RQqxR+inVkSTQNwPLzWyZmU0B7gTW5ze6+0l3X+DuS919KfAMcIe7b6lIi6UhlDuxKKRRe+FaLmX3qU5bpP6NG+juPgDcA2wEdgLr3H27mT1gZndUuoEixUIKuEQHRVVDl4Sak+zk7huADUXr7h9j31vOv1nS6MrWlKvYjkrTvaElTTpTVOpOkpkh9aJw6r8uziUpUKBL3Qkp4JKd+i+SjAJd6k5INeVCaalUl6xoH5FxKNAlkxrlzEldPlfSpECXTAt9dFpugF68j8h4FOiSSY1ykDDZAd6AOiwVpUCXuhNUDT3/2CAlJqksBbpkUrkQS3Zj5fpQtqQUUD+lOhTokkmNc+p/9FiuxFSltkj9U6BL3Qkp4HQ9dEmTAl0yqVECLtkdiwLqsFSUAl3qT0D55kWP5fYRGY8CXTKpfE05nIhLMvrWAF2SUqBL3Qkp4IYKNfQSncqf+h/QB5hUlgJdMqn8tMWQAk5X55L0KNAl00qNXEPKt8IIvdTGkDoqVaFAl7oT0gBdl8+VNCnQpe6EVFMu9KVBpmlKZSnQJZMa5ZT4oaHx9wnpA0wqS4EumZTP85Kn/le5LZWUD+tGubqkVJYCXepOSAGX6NT/6jRFAqBAl0wqF2IhTVtMdFA0oP5KZSnQpe6EFG+FkotG6JICBbpkUvmLc4UTceWu7e6jnoiUp0CXTCt5YlFAAZfvX0BdkhpSoEsmNcpUvXK9tMI+jfFeyPlToEvdCXKEXqZTIfVXKkuBLplU/iBhOAmXbJZL5dshYVCgS90J6ibRRY/l9hEZjwJdMqlswAU0ZB1K8OkUUn+lshTokk1lZn+EFG+FEbrmoUsKFOhSd0IasA6f9aqDonL+EgW6ma00s1fMrMPM7iux/fNmtsPMtpnZT8zskvSbKo2k/Mg1oITTyFxSNG6gm1kT8AhwG7ACuMvMVhTt9hzQ7u6/CnwXeCjthorkhTRiTVJyUbRLUklG6NcBHe6+y937gLXAqvgO7v6Uu3dHi88Abek2UxrF8LzsaLnUPtVrTsUludBYSB9gUllJAn0RsDe2vC9aN5ZPAP90Po0SySs1wyPEqy1q2qKkoTnNFzOzjwLtwG+MsX01sBpgyZIlaX5rqWPx0HYHs8a54UOiU/8D6q9UVpIR+n5gcWy5LVo3gpm9B/gScIe795Z6IXdf4+7t7t7e2tp6Lu2VAMUDqzi7SpZcAgq4oaISUykhnRkrlZUk0DcDy81smZlNAe4E1sd3MLOrgb8iF+aH02+mhCweV8U19NL7BxRwOvVfUjRuoLv7AHAPsBHYCaxz9+1m9oCZ3RHt9jAwC3jczJ43s/VjvJzIKCNKLkWPpQIvpIArjNDLlZiq1Ripe4lq6O6+AdhQtO7+2PP3pNwuaVAhhXUSOkNU0qQzRaXmRpRcim7JVmrkGtQsl/xjg9yhSSpLgS41N+KgaIPVlEP6cJLaU6BLzZUahZe7eXJIEZhoHnpIHZaKUqBLzSUZoY+cqx5Owg0OJbhjUVAfYVJJCnTJlEJ45R+ix/7B0TNhQjAwNDTuPgF9fkmFKdCl5pLMOY8HX0gBF/+gGktI/ZXKUqBL1bk7e452Dy8TL6fk143UPzByLkwo+gfHHqEXTv2PrTt6ppczvQMVbZPULwW6VN0/bNrDzQ8/xfN7T4zaNurU/3zJJTZCD+Geohal9UAU6EkP/l77xz/mlod/WrF2SX1ToEvVbXn9GAC7j5wBig+Klj5IGB/JhlCCaJ6US/S+RCWXkfscOVPyUkkiCnSpvVLFlOLSy0D8oGgAid48KferVxih69R/SYECXWqu+PK5pYwYoVe6QVWQH6EPJKkfhdBhqQoFulSdFS17iYXikfqIaYsBBFxTU1RyGRi7hp6neeiSlAJdqs5sZKSPvB566fAaOUIf3mfrG8c4fbY/3QZWwC9eO1II7zjNQ5c0KdCl6kbdiafEmaLDIZZ7MmJ6X7Tt1Nl+PvC1p/nMt5+rUEvTsePAKT7yvzbxJz/YUVhX/JeHrrooaVCgS82NmIdevC1aEa8155929w4CucDMsvxfEDsODrczf1Gu/sJB0bFphC5JKdCl5kpNWyy+CmH/wOiSS09/LtAnN2X7x3hyc659I0ouhRH62CWXwhROjdEloWz/JkiYoppLuZFn78DIkWt/iRF6V3TG5NTmbP8YN0XHDHoH4idHRZc0KJRcxg/toRDOqJKKyvZvgjSEUvPQe6PRd+9A7nEgNpI9G23r7ss9Tsl4oOcPfBbKK+6cHcivy/W4t8QB0/zB41JlJ5FSsv2bIEEbnpo4ekri2SjIu6I6ebw00dOX35YboWc90Pui69D0RX3oGxwqXDY336/uvuHrsxSP1vNLgwp0GUe2fxMkSBbVXPIlhFK3oDvbPzLo4vPQu6J1+ces19DzoZ2voecP5sLw6L0rtm7UaD1fnkkwxVEaW7Z/EyRoA4WbO8RWRs97JzJCz3ig54O4EOj9w+GdH73HR+jFgV7q8gcipWT7N0GCNjg0+jom+WfFI/T4JWO7+0aGfb2UXPJ/ZfTEwvtMb25KY1dfbIQeC3xQDV2Sy/ZvggQpf6JooYxS4sSi/IHPfNAdPdMHQNMkKwR6d72WXKL2N08yjnflAr079oGV/zDLy9fUVUOX8TTXugHSuAbL1tBzodc3MET/4BDHu/uYO2My7sMj3DPRCN2KLw6TMYWSy+DIQF80bzpHu3IfVPERev6A8PA89Jxyc9ZFQCN0qYF8/pYqIXihhj4cXt29gxzt6mP+jCnMmNI0aoSe9aAbebel4WMAbfOmc7y7D3cfWUPvL90fjdBlPAp0qZlSd+uJ19BnTc39AXno9FmOnull/swptExr5mRPrkyRr6tnPdD7itqXb/+S+TMZHHJOdPfz5smztET9zY/Q84Zr6Nnup9SeAl2qrjBro1ByGX3zip6+Aa5c2ALA7iNddBw+w7IFM1k4ZzoHTvYAw9P/ktxouZbiJ0UNDjn7T+Taf9PlFwDw8pun2XushysXzgaGZ+/kFb9fImNRoEvV5eefD5aYtuieu5hVV98g71w6H4CfvdrJkTN9XLlwNovmTefAibPA8Dz0rI/Q4x84Pf2DHDjRw7wZk7n2knkAPLHtAH2DQ7xzWW758KmRt5jzossEiIxFgS5Vlx9p9hemLY508GQusN96cQtXtc3hm5v2AHDzFa20zZvOsa4+Tvb0F0ayWQ/0eMmlq3eAN4520zZvBhfPnsZbL2op9O+D1y4GKPwFUkwjdBmPAl2qLj8yH+vCVPmSxFvmTudzv3kFLdOaufvGS7j8wln8m7a5QO7GFnuO9Yx4nayKt29XZxfP7TnOVYvnYGZ84ba30jK1mY//2lKWLZhJa8tUDkT9H3Utl4x/cEntadqiVNwvdx9j4ZxpLJ4/Axg+uHc8mrIXz/OTPf1s23sSM7jiwhbmzJjMi19+b2H71Uvm0TK1mT/5wU6OnMmVJrr7Rh5EzJru/uGa+Jf+8UW6+ga5eXkrALe+7SJe/K/D/XvrRS1s23cSGL6Oev4Yw7Ho/YJc2WrSJGNgcIgNL73J+9+xkEmTMj5/UypOI3SpuA//1dP8xsNPFZbzI9b8SDxu58FTPLnzTVYsnM2cGZNHbZ8+pYnVN1/Ka51dzJjSxO9cs4gDJ3oKZZdXD53m4Bgli2rpGxjiFx1HCst7j3Vz6YKZ/PrlC9jV2cXb3zKbW992Ycl/e+NlF/Dym6d5af9JjpwZ+YGXL0XBcBnnr//fbv79t5/j/247UKHeSD1JFOhmttLMXjGzDjO7r8T2qWb2nWj7JjNbmnpLpS7l51zHy7+vH+0CSgf6/d/fzkv7T3H3jUvHfM17br2cx37/Otbf8+v82mULGBhy9h7rBuC3vvIzbvzTf67pnO17H3+Bj3x9Ey/tz420d3V2sWzBTL720Wt49KPX8K1P3kDzGGe3fujaNqZPbuJDjz49atuB2Pu1J+pv/jEf/tLYxg10M2sCHgFuA1YAd5nZiqLdPgEcd/fLga8AD6bdUKlPxQf4jnX1setIF9MmT2Lf8R46Dp/h8Olc6eQj1y/hyoUtfPbdy/lQe9uYr2lm3HxFa66mvngOABu3H+JU7GbR+Q+NWvjR9jeB3K3xdh/p4pVDp7lq8Vxapk1m5a8sZM700X955F04exprPnYtb3/LbFbffClTmifRebqXoSHnX/71SOFmHlvfOA4MH4+IXx9GGleSGvp1QIe77wIws7XAKmBHbJ9VwJej598Fvmpm5kluwyJ1zd3pHRiiu2+Qnv5BDp06y67OLtovmceBkz08se1gYd/vP7+f72zeC8DXP/ZOPvXNrXz8b37JZa2zAPjMrZezcM70CX3/yy9s4eYrWnlo48s8vnVvYf1TLx+mbd50DOPnrx3hxksvYNrkphR6PJK7s/WN47TNm0Fry1T2HOsunOX64A9fZsidWVOay35AFXvX8lbeFdXYN+0+xhPbDrL3eDc7Dp7ioQ/8Kt/4+W4e+uHLTG6axHN7TgCw4cU3uXLhbJbMn8G+Ez0MDDpXLZ7DrKnNNE0ymidNYpINH2iVMNl4mWtmHwRWuvsfRMu/C1zv7vfE9nkp2mdftPxatM+RUq8J0N7e7lu2bJlwg5/fe4LffuTnE/53ki2XXDCDN452j1i3ZP6Mc7ouy+mzAyMOGGbRJRfMOKd/V+o9ypdZpH798HPv4m0Xzz6nf2tmW929vdS2qs5yMbPVwGqAJUuWnNNrzJ8xJc0mScom2XC9vLVlKpe1zuTi2dPYfuAUB070cONlFxRO6b968Vz6B52ndx3l6sVzaZmWzo/jmd4BfrzzcCqvdS7esWgOl7XOTOW1rmqby6bdR7n8wlm0zpoKwDVL5jLk8Oye4xzv6uPWKy+ip2+QVw+dZt/xbjRdPfvKld3OR5LfoP3A4thyW7Su1D77zKwZmAMcLX4hd18DrIHcCP1cGrzkghm8/mfvO5d/KiIStCSzXDYDy81smZlNAe4E1hftsx64O3r+QeCfVT8XEamucUfo7j5gZvcAG4Em4Bvuvt3MHgC2uPt64K+BvzezDuAYudAXEZEqSlS0dPcNwIaidffHnp8FPpRu00REZCJ0pqiISCAU6CIigVCgi4gEQoEuIhIIBbqISCDGPfW/Yt/YrBN4oybf/PwsAMa8pEGg1OfGoD7Xh0vcvbXUhpoFer0ysy1jXUchVOpzY1Cf659KLiIigVCgi4gEQoE+cWtq3YAaUJ8bg/pc51RDFxEJhEboIiKBUKCPw8zuNTM3swXRspnZX0Q3xN5mZtfE9r3bzP41+rp77FfNJjN72Mxejvr1f8xsbmzbF6M+v2Jm742tL3sD8XoTWn/yzGyxmT1lZjvMbLuZfTZaP9/Mnox+Zp80s3nR+jF/zuuNmTWZ2XNm9kS0vCy6mX1HdHP7KdH6+r/Zvbvra4wvcjft2EhuvvyCaN3twD8BBtwAbIrWzwd2RY/zoufzat2HCfb3t4Dm6PmDwIPR8xXAC8BUYBnwGrlLKTdFzy8FpkT7rKh1P86j/0H1p6hvC4FrouctwKvR/+tDwH3R+vti/+clf87r8Qv4PPAt4IloeR1wZ/T8UeDfRc8/BTwaPb8T+E6t2z7RL43Qy/sK8J+A+IGGVcBjnvMMMNfMFgLvBZ5092Pufhx4ElhZ9RafB3f/kbvnbx//DLm7U0Guz2vdvdfddwMd5G4eXriBuLv3AfkbiNer0PpT4O4H3f3Z6PlpYCewiFz//i7a7e+A346ej/VzXlfMrA14H/D1aNmAW8ndzB5G9zn/XnwXeLfV2V21FehjMLNVwH53f6Fo0yJgb2x5X7RurPX16vfJjdCgcfocWn9KikoJVwObgIvc/WC06U3gouh5KO/Fn5MblA1FyxcAJ2IDl3i/Cn2Otp+M9q8bVb1JdNaY2Y+Bi0ts+hLwh+RKEEEp12d3/360z5eAAeCb1WybVJ6ZzQK+B3zO3U/FB6Du7mYWzLQ3M3s/cNjdt5rZLTVuTlU0dKC7+3tKrTezd5CrFb8Q/cC3Ac+a2XWMfdPs/cAtRet/mnqjz9NYfc4zs48D7wfe7VExkfI3Ch/vBuL1JMkN0euWmU0mF+bfdPf/Ha0+ZGYL3f1gVFI5HK0P4b24CbjDzG4HpgGzgf9JrnzUHI3C4/1KdLP7TKt1Eb8evoDXGT4o+j5GHiz6ZbR+PrCb3AHRedHz+bVu+wT7uRLYAbQWrX87Iw+K7iJ3ALE5er6M4YOIb691P86j/0H1p6hvBjwG/HnR+ocZeVD0oeh5yZ/zev0iN9jKHxR9nJEHRT8VPf80Iw+Krqt1uyf61dAj9HO0gdwMgA6gG/g9AHc/ZmZ/BGyO9nvA3Y/Vponn7KvkQvvJ6C+TZ9z933rupuDryIX9APBpdx8EKHUD8do0/fz5GDdEr3Gz0nIT8LvAi2b2fLTuD4E/A9aZ2SfIzeb6cLSt5M95IL4ArDWzPwaeI3eTewjgZvc6U1REJBCa5SIiEggFuohIIBToIiKBUKCLiARCgS4iEggFuohIIBToIiKBUKCLiATi/wO3Cq7Lzsky6gAAAABJRU5ErkJggg==", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Number of samplepoints\n", + "N = 800\n", + "# sample spacing\n", + "T = 1.0 / 1000.0\n", + "x = np.linspace(0.01, N*T, N)\n", + "\n", + "y_old = np.sin(100* 2.0*np.pi*x+1*np.sin(15* 2.0*np.pi*x))\n", + "yf_old = fft(y_old)/(100*np.pi)\n", + "xf = fftfreq(N, 1 / 1000)\n", + "plt.plot(xf, np.abs(yf_old))\n", + "#plt.xlim(-150, 150)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fm(1)" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.7651976865579666\n" + ] + } + ], + "source": [ + "\n", + "for n in range (-4,4):\n", + " x = np.linspace(0,11,1000)\n", + " y = sc.jv(n,x)\n", + " plt.plot(x, y, '-')\n", + "plt.plot([1,1],[sc.jv(0,1),sc.jv(-1,1)],)\n", + "plt.xlim(0,10)\n", + "plt.grid(True)\n", + "plt.ylabel('Bessel J_n(b)')\n", + "plt.xlabel('b')\n", + "plt.plot(x, y)\n", + "plt.show()\n", + "\n", + "print(sc.jv(0,1))" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from scipy import special\n", + "\n", + "def drumhead_height(n, k, distance, angle, t):\n", + " kth_zero = special.jn_zeros(n, k)[-1]\n", + " return np.cos(t) * np.cos(n*angle) * special.jn(n, distance*kth_zero)\n", + "\n", + "theta = np.r_[0:2*np.pi:50j]\n", + "radius = np.r_[0:1:50j]\n", + "x = np.array([r * np.cos(theta) for r in radius])\n", + "y = np.array([r * np.sin(theta) for r in radius])\n", + "z = np.array([drumhead_height(1, 1, r, theta, 0.5) for r in radius])\n", + "\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure()\n", + "ax = fig.add_axes(rect=(0, 0.05, 0.95, 0.95), projection='3d')\n", + "ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap='RdBu_r', vmin=-0.5, vmax=0.5)\n", + "ax.set_xlabel('X')\n", + "ax.set_ylabel('Y')\n", + "ax.set_xticks(np.arange(-1, 1.1, 0.5))\n", + "ax.set_yticks(np.arange(-1, 1.1, 0.5))\n", + "ax.set_zlabel('Z')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "x = np.linspace(0,0.1,1000)\n", + "y = np.sin(100 * 2.0*np.pi*x+1.5*np.sin(30 * 2.0*np.pi*x))\n", + "plt.plot(x, y, '-')\n", + "plt.show()" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "916dbcbb3f70747c44a77c7bcd40155683ae19c65e1c03b4aa3499c5328201f1" + }, + "kernelspec": { + "display_name": "Python 3.8.10 64-bit", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/buch/papers/fm/Python animation/Bessel-FM.py b/buch/papers/fm/Python animation/Bessel-FM.py new file mode 100644 index 0000000..cf30e16 --- /dev/null +++ b/buch/papers/fm/Python animation/Bessel-FM.py @@ -0,0 +1,42 @@ +import numpy as np +from scipy import signal +from scipy.fft import fft, ifft, fftfreq +import scipy.special as sc +import scipy.fftpack +import matplotlib.pyplot as plt +from matplotlib.widgets import Slider + +# Number of samplepoints +N = 600 +# sample spacing +T = 1.0 / 800.0 +x = np.linspace(0.01, N*T, N) +beta = 1.0 +y_old = np.sin(100.0 * 2.0*np.pi*x+beta*np.sin(50.0 * 2.0*np.pi*x)) +y = 0*x; +xf = fftfreq(N, 1 / 400) +for k in range (-5, 5): + y = sc.jv(k,beta)*np.sin((100.0+k*50) * 2.0*np.pi*x) + yf = fft(y) + plt.plot(xf, np.abs(yf)) + +axbeta =plt.axes([0.25, 0.1, 0.65, 0.03]) +beta_slider = Slider( +ax=axbeta, +label="Beta", +valmin=0.1, +valmax=3, +valinit=beta, +) + +def update(val): + line.set_ydata(fm(beta_slider.val)) + fig.canvas.draw_idle() + + +beta_slider.on_changed(update) +plt.show() + +yf_old = fft(y_old) +plt.plot(xf, np.abs(yf_old)) +plt.show()
\ No newline at end of file diff --git a/buch/papers/fm/RS presentation/FM_presentation.pdf b/buch/papers/fm/RS presentation/FM_presentation.pdf Binary files differnew file mode 100644 index 0000000..496e35e --- /dev/null +++ b/buch/papers/fm/RS presentation/FM_presentation.pdf diff --git a/buch/papers/fm/RS presentation/FM_presentation.tex b/buch/papers/fm/RS presentation/FM_presentation.tex new file mode 100644 index 0000000..92cb501 --- /dev/null +++ b/buch/papers/fm/RS presentation/FM_presentation.tex @@ -0,0 +1,125 @@ +%% !TeX root = RS.tex + +\documentclass[11pt,aspectratio=169]{beamer} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage[ngerman]{babel} +\usepackage{tikz} +\usetheme{Hannover} + +\begin{document} + \author{Joshua Bär} + \title{FM - Bessel} + \subtitle{} + \logo{} + \institute{OST Ostschweizer Fachhochschule} + \date{16.5.2022} + \subject{Mathematisches Seminar} + %\setbeamercovered{transparent} + \setbeamercovered{invisible} + \setbeamertemplate{navigation symbols}{} + \begin{frame}[plain] + \maketitle + \end{frame} +%------------------------------------------------------------------------------- +\section{Einführung} + \begin{frame} + \frametitle{Frequenzmodulation} + + \visible<1->{ + \begin{equation} \cos(\omega_c t+\beta\sin(\omega_mt)) + \end{equation}} + + \only<2>{\includegraphics[scale= 0.7]{images/fm_in_time.png}} + \only<3>{\includegraphics[scale= 0.7]{images/fm_frequenz.png}} + \only<4>{\includegraphics[scale= 0.7]{images/bessel_frequenz.png}} + + + \end{frame} +%------------------------------------------------------------------------------- +\section{Proof} +\begin{frame} + \frametitle{Bessel} + + \visible<1->{\begin{align} + \cos(\beta\sin\varphi) + &= + J_0(\beta) + 2\sum_{m=1}^\infty J_{2m}(\beta) \cos(2m\varphi) + \\ + \sin(\beta\sin\varphi) + &= + J_0(\beta) + 2\sum_{m=1}^\infty J_{2m}(\beta) \cos(2m\varphi) + \\ + J_{-n}(\beta) &= (-1)^n J_n(\beta) + \end{align}} + \visible<2->{\begin{align} + \cos(A + B) + &= + \cos(A)\cos(B)-\sin(A)\sin(B) + \\ + 2\cos (A)\cos (B) + &= + \cos(A-B)+\cos(A+B) + \\ + 2\sin(A)\sin(B) + &= + \cos(A-B)-\cos(A+B) + \end{align}} +\end{frame} + +%------------------------------------------------------------------------------- +\begin{frame} + \frametitle{Prof->Done} + \begin{align} + \cos(\omega_ct+\beta\sin(\omega_mt)) + &= + \sum_{k= -\infty}^\infty J_{k}(\beta) \cos((\omega_c+k\omega_m)t) + \end{align} + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \begin{figure} + \only<1>{\includegraphics[scale = 0.75]{images/fm_frequenz.png}} + \only<2>{\includegraphics[scale = 0.75]{images/bessel_frequenz.png}} + \end{figure} + \end{frame} +%------------------------------------------------------------------------------- +\section{Input Parameter} + \begin{frame} + \frametitle{Träger-Frequenz Parameter} + \onslide<1->{\begin{equation}\cos(\omega_ct+\beta\sin(\omega_mt))\end{equation}} + \only<1>{\includegraphics[scale=0.75]{images/100HZ.png}} + \only<2>{\includegraphics[scale=0.75]{images/200HZ.png}} + \only<3>{\includegraphics[scale=0.75]{images/300HZ.png}} + \only<4>{\includegraphics[scale=0.75]{images/400HZ.png}} + \end{frame} +%------------------------------------------------------------------------------- +\begin{frame} +\frametitle{Modulations-Frequenz Parameter} +\onslide<1->{\begin{equation}\cos(\omega_ct+\beta\sin(\omega_mt))\end{equation}} +\only<1>{\includegraphics[scale=0.75]{images/fm_3Hz.png}} +\only<2>{\includegraphics[scale=0.75]{images/fm_5Hz.png}} +\only<3>{\includegraphics[scale=0.75]{images/fm_7Hz.png}} +\only<4>{\includegraphics[scale=0.75]{images/fm_10Hz.png}} +\only<5>{\includegraphics[scale=0.75]{images/fm_20Hz.png}} +\only<6>{\includegraphics[scale=0.75]{images/fm_30Hz.png}} +\end{frame} +%------------------------------------------------------------------------------- +\begin{frame} +\frametitle{Beta Parameter} + \onslide<1->{\begin{equation}\sum_{k= -\infty}^\infty J_{k}(\beta) \cos((\omega_c+k\omega_m)t)\end{equation}} + \only<1>{\includegraphics[scale=0.7]{images/beta_0.001.png}} + \only<2>{\includegraphics[scale=0.7]{images/beta_0.1.png}} + \only<3>{\includegraphics[scale=0.7]{images/beta_0.5.png}} + \only<4>{\includegraphics[scale=0.7]{images/beta_1.png}} + \only<5>{\includegraphics[scale=0.7]{images/beta_2.png}} + \only<6>{\includegraphics[scale=0.7]{images/beta_3.png}} + \only<7>{\includegraphics[scale=0.7]{images/bessel.png}} +\end{frame} +%------------------------------------------------------------------------------- +\begin{frame} + \includegraphics[scale=0.5]{images/beta_1.png} + \includegraphics[scale=0.5]{images/bessel.png} +\end{frame} +\end{document} diff --git a/buch/papers/fm/RS presentation/Frequency modulation (FM) and Bessel functions.pdf b/buch/papers/fm/RS presentation/Frequency modulation (FM) and Bessel functions.pdf Binary files differnew file mode 100644 index 0000000..a6e701c --- /dev/null +++ b/buch/papers/fm/RS presentation/Frequency modulation (FM) and Bessel functions.pdf diff --git a/buch/papers/fm/RS presentation/README.txt b/buch/papers/fm/RS presentation/README.txt new file mode 100644 index 0000000..4d0620f --- /dev/null +++ b/buch/papers/fm/RS presentation/README.txt @@ -0,0 +1 @@ +Dies ist die Presentation des Reed-Solomon-Code
\ No newline at end of file diff --git a/buch/papers/fm/RS presentation/RS.tex b/buch/papers/fm/RS presentation/RS.tex new file mode 100644 index 0000000..8a67619 --- /dev/null +++ b/buch/papers/fm/RS presentation/RS.tex @@ -0,0 +1,123 @@ +%% !TeX root = RS.tex + +\documentclass[11pt,aspectratio=169]{beamer} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage[ngerman]{babel} +\usepackage{tikz} +\usetheme{Hannover} + +\begin{document} + \author{Joshua Bär} + \title{FM - Bessel} + \subtitle{} + \logo{} + \institute{OST Ostschweizer Fachhochschule} + \date{16.5.2022} + \subject{Mathematisches Seminar- Spezielle Funktionen} + %\setbeamercovered{transparent} + \setbeamercovered{invisible} + \setbeamertemplate{navigation symbols}{} + \begin{frame}[plain] + \maketitle + \end{frame} +%------------------------------------------------------------------------------- +\section{Einführung} + \begin{frame} + \frametitle{Frequenzmodulation} + + \visible<1->{\begin{equation} \cos(\omega_c t+\beta\sin(\omega_mt))\end{equation}} + + \only<2>{\includegraphics[scale= 0.7]{images/fm_in_time.png}} + \only<3>{\includegraphics[scale= 0.7]{images/fm_frequenz.png}} + \only<4>{\includegraphics[scale= 0.7]{images/bessel_frequenz.png}} + + + \end{frame} +%------------------------------------------------------------------------------- +\section{Proof} +\begin{frame} + \frametitle{Bessel} + + \visible<1->{\begin{align} + \cos(\beta\sin\varphi) + &= + J_0(\beat) + 2\sum_{m=1}^\infty J_{2m}(\beta) \cos(2m\varphi) + \\ + \sin(\beta\sin\varphi) + &= + J_0(\beat) + 2\sum_{m=1}^\infty J_{2m}(\beta) \cos(2m\varphi) + \\ + J_{-n}(\beat) &= (-1)^n J_n(\beta) + \end{align}} + \visible<2->{\begin{align} + \cos(A + B) + &= + \cos(A)\cos(B)-\sin(A)\sin(B) + \\ + 2\cos (A)\cos (B) + &= + \cos(A-B)+\cos(A+B) + \\ + 2\sin(A)\sin(B) + &= + \cos(A-B)-\cos(A+B) + \end{align}} +\end{frame} + +%------------------------------------------------------------------------------- +\begin{frame} + \frametitle{Prof->Done} + \begin{align} + \cos(\omega_ct+\beta\sin(\omega_mt)) + &= + \sum_{k= -\infty}^\infty J_{k}(\beta) \cos((\omega_c+k\omgea_m)t) + \end{align} + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \begin{figure} + \only<1>{\includegraphics[scale = 0.75]{images/fm_frequenz.png}} + \only<2>{\includegraphics[scale = 0.75]{images/bessel_frequenz.png}} + \end{figure} + \end{frame} +%------------------------------------------------------------------------------- +\section{Input Parameter} + \begin{frame} + \frametitle{Träger-Frequenz Parameter} + \onslide<1->{\begin{equation}\cos(\omega_ct+\beta\sin(\omega_mt))\end{equation}} + \only<1>{\includegraphics[scale=0.75]{images/100HZ.png}} + \only<2>{\includegraphics[scale=0.75]{images/200HZ.png}} + \only<3>{\includegraphics[scale=0.75]{images/300HZ.png}} + \only<4>{\includegraphics[scale=0.75]{images/400HZ.png}} + \end{frame} +%------------------------------------------------------------------------------- +\begin{frame} +\frametitle{Modulations-Frequenz Parameter} +\onslide<1->{\begin{equation}\cos(\omega_ct+\beta\sin(\omega_mt))\end{equation}} +\only<1>{\includegraphics[scale=0.75]{images/fm_3Hz.png}} +\only<2>{\includegraphics[scale=0.75]{images/fm_5Hz.png}} +\only<3>{\includegraphics[scale=0.75]{images/fm_7Hz.png}} +\only<4>{\includegraphics[scale=0.75]{images/fm_10Hz.png}} +\only<5>{\includegraphics[scale=0.75]{images/fm_20Hz.png}} +\only<6>{\includegraphics[scale=0.75]{images/fm_30Hz.png}} +\end{frame} +%------------------------------------------------------------------------------- +\begin{frame} +\frametitle{Beta Parameter} + \onslide<1->{\begin{equation}\sum_{k= -\infty}^\infty J_{k}(\beta) \cos((\omega_c+k\omgea_m)t)\end{equation}} + \only<1>{\includegraphics[scale=0.7]{images/beta_0.001.png}} + \only<2>{\includegraphics[scale=0.7]{images/beta_0.1.png}} + \only<3>{\includegraphics[scale=0.7]{images/beta_0.5.png}} + \only<4>{\includegraphics[scale=0.7]{images/beta_1.png}} + \only<5>{\includegraphics[scale=0.7]{images/beta_2.png}} + \only<6>{\includegraphics[scale=0.7]{images/beta_3.png}} + \only<7>{\includegraphics[scale=0.7]{images/bessel.png}} +\end{frame} +%------------------------------------------------------------------------------- +\begin{frame} + \includegraphics[scale=0.5]{images/beta_1.png} + \includegraphics[scale=0.5]{images/bessel.png} +\end{frame} +\end{document} diff --git a/buch/papers/fm/RS presentation/images/100HZ.png b/buch/papers/fm/RS presentation/images/100HZ.png Binary files differnew file mode 100644 index 0000000..371b9bf --- /dev/null +++ b/buch/papers/fm/RS presentation/images/100HZ.png diff --git a/buch/papers/fm/RS presentation/images/200HZ.png b/buch/papers/fm/RS presentation/images/200HZ.png Binary files differnew file mode 100644 index 0000000..f6836bd --- /dev/null +++ b/buch/papers/fm/RS presentation/images/200HZ.png diff --git a/buch/papers/fm/RS presentation/images/300HZ.png b/buch/papers/fm/RS presentation/images/300HZ.png Binary files differnew file mode 100644 index 0000000..6762c1a --- /dev/null +++ b/buch/papers/fm/RS presentation/images/300HZ.png diff --git a/buch/papers/fm/RS presentation/images/400HZ.png b/buch/papers/fm/RS presentation/images/400HZ.png Binary files differnew file mode 100644 index 0000000..236c428 --- /dev/null +++ b/buch/papers/fm/RS presentation/images/400HZ.png diff --git a/buch/papers/fm/RS presentation/images/bessel.png b/buch/papers/fm/RS presentation/images/bessel.png Binary files differnew file mode 100644 index 0000000..f4c83ea --- /dev/null +++ b/buch/papers/fm/RS presentation/images/bessel.png diff --git a/buch/papers/fm/RS presentation/images/bessel2.png b/buch/papers/fm/RS presentation/images/bessel2.png Binary files differnew file mode 100644 index 0000000..ccda3f9 --- /dev/null +++ b/buch/papers/fm/RS presentation/images/bessel2.png diff --git a/buch/papers/fm/RS presentation/images/bessel_beta1.png b/buch/papers/fm/RS presentation/images/bessel_beta1.png Binary files differnew file mode 100644 index 0000000..1f5c47e --- /dev/null +++ b/buch/papers/fm/RS presentation/images/bessel_beta1.png diff --git a/buch/papers/fm/RS presentation/images/bessel_frequenz.png b/buch/papers/fm/RS presentation/images/bessel_frequenz.png Binary files differnew file mode 100644 index 0000000..4f228b9 --- /dev/null +++ b/buch/papers/fm/RS presentation/images/bessel_frequenz.png diff --git a/buch/papers/fm/RS presentation/images/beta_0.001.png b/buch/papers/fm/RS presentation/images/beta_0.001.png Binary files differnew file mode 100644 index 0000000..7e4e276 --- /dev/null +++ b/buch/papers/fm/RS presentation/images/beta_0.001.png diff --git a/buch/papers/fm/RS presentation/images/beta_0.1.png b/buch/papers/fm/RS presentation/images/beta_0.1.png Binary files differnew file mode 100644 index 0000000..e7722b3 --- /dev/null +++ b/buch/papers/fm/RS presentation/images/beta_0.1.png diff --git a/buch/papers/fm/RS presentation/images/beta_0.5.png b/buch/papers/fm/RS presentation/images/beta_0.5.png Binary files differnew file mode 100644 index 0000000..5261b43 --- /dev/null +++ b/buch/papers/fm/RS presentation/images/beta_0.5.png diff --git a/buch/papers/fm/RS presentation/images/beta_1.png b/buch/papers/fm/RS presentation/images/beta_1.png Binary files differnew file mode 100644 index 0000000..6d3535c --- /dev/null +++ b/buch/papers/fm/RS presentation/images/beta_1.png diff --git a/buch/papers/fm/RS presentation/images/beta_2.png b/buch/papers/fm/RS presentation/images/beta_2.png Binary files differnew file mode 100644 index 0000000..6930eae --- /dev/null +++ b/buch/papers/fm/RS presentation/images/beta_2.png diff --git a/buch/papers/fm/RS presentation/images/beta_3.png b/buch/papers/fm/RS presentation/images/beta_3.png Binary files differnew file mode 100644 index 0000000..c6df82c --- /dev/null +++ b/buch/papers/fm/RS presentation/images/beta_3.png diff --git a/buch/papers/fm/RS presentation/images/fm_10Hz.png b/buch/papers/fm/RS presentation/images/fm_10Hz.png Binary files differnew file mode 100644 index 0000000..51bddc7 --- /dev/null +++ b/buch/papers/fm/RS presentation/images/fm_10Hz.png diff --git a/buch/papers/fm/RS presentation/images/fm_20hz.png b/buch/papers/fm/RS presentation/images/fm_20hz.png Binary files differnew file mode 100644 index 0000000..126ecf3 --- /dev/null +++ b/buch/papers/fm/RS presentation/images/fm_20hz.png diff --git a/buch/papers/fm/RS presentation/images/fm_30Hz.png b/buch/papers/fm/RS presentation/images/fm_30Hz.png Binary files differnew file mode 100644 index 0000000..371b9bf --- /dev/null +++ b/buch/papers/fm/RS presentation/images/fm_30Hz.png diff --git a/buch/papers/fm/RS presentation/images/fm_3Hz.png b/buch/papers/fm/RS presentation/images/fm_3Hz.png Binary files differnew file mode 100644 index 0000000..d4098af --- /dev/null +++ b/buch/papers/fm/RS presentation/images/fm_3Hz.png diff --git a/buch/papers/fm/RS presentation/images/fm_40Hz.png b/buch/papers/fm/RS presentation/images/fm_40Hz.png Binary files differnew file mode 100644 index 0000000..4cf11d4 --- /dev/null +++ b/buch/papers/fm/RS presentation/images/fm_40Hz.png diff --git a/buch/papers/fm/RS presentation/images/fm_5Hz.png b/buch/papers/fm/RS presentation/images/fm_5Hz.png Binary files differnew file mode 100644 index 0000000..e495b5c --- /dev/null +++ b/buch/papers/fm/RS presentation/images/fm_5Hz.png diff --git a/buch/papers/fm/RS presentation/images/fm_7Hz.png b/buch/papers/fm/RS presentation/images/fm_7Hz.png Binary files differnew file mode 100644 index 0000000..b3dd7e3 --- /dev/null +++ b/buch/papers/fm/RS presentation/images/fm_7Hz.png diff --git a/buch/papers/fm/RS presentation/images/fm_frequenz.png b/buch/papers/fm/RS presentation/images/fm_frequenz.png Binary files differnew file mode 100644 index 0000000..26bfd86 --- /dev/null +++ b/buch/papers/fm/RS presentation/images/fm_frequenz.png diff --git a/buch/papers/fm/RS presentation/images/fm_in_time.png b/buch/papers/fm/RS presentation/images/fm_in_time.png Binary files differnew file mode 100644 index 0000000..068eafc --- /dev/null +++ b/buch/papers/fm/RS presentation/images/fm_in_time.png diff --git a/buch/papers/fm/main.tex b/buch/papers/fm/main.tex index 1e75235..1f8ebde 100644 --- a/buch/papers/fm/main.tex +++ b/buch/papers/fm/main.tex @@ -2,35 +2,42 @@ % main.tex -- Paper zum Thema <fm> % % (c) 2020 Hochschule Rapperswil -% +% +% !TeX root = buch.tex +%\begin {document} \chapter{Thema\label{chapter:fm}} \lhead{Thema} \begin{refsection} -\chapterauthor{Hans Muster} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} +\chapterauthor{Joshua Bär} + +Dieser Abschnitt beschreibt die Beziehung von der Besselfunktion(Ref) zur Frequenz Modulatrion (FM)(acronym?). -\input{papers/fm/teil0.tex} -\input{papers/fm/teil1.tex} -\input{papers/fm/teil2.tex} -\input{papers/fm/teil3.tex} +%Ein paar Hinweise für die korrekte Formatierung des Textes +%\begin{itemize} +%\item +%Absätze werden gebildet, indem man eine Leerzeile einfügt. +%Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. +%\item +%Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende +%Optionen werden gelöscht. +%Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. +%\item +%Beginnen Sie jeden Satz auf einer neuen Zeile. +%Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen +%in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt +%anzuwenden. +%\item +%Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren +%Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. +%\end{itemize} + +\input{papers/fm/01_AM-FM.tex} +\input{papers/fm/02_frequenzyspectrum.tex} +\input{papers/fm/03_bessel.tex} +\input{papers/fm/04_fazit.tex} \printbibliography[heading=subbibliography] \end{refsection} + +%\end {document} diff --git a/buch/papers/fresnel/Makefile b/buch/papers/fresnel/Makefile index 11af3a7..ed74861 100644 --- a/buch/papers/fresnel/Makefile +++ b/buch/papers/fresnel/Makefile @@ -3,20 +3,6 @@ # # (c) 2022 Prof Dr Andreas Mueller # -all: fresnelgraph.pdf eulerspirale.pdf pfad.pdf - images: @echo "no images to be created in fresnel" -eulerpath.tex: eulerspirale.m - octave eulerspirale.m - -fresnelgraph.pdf: fresnelgraph.tex eulerpath.tex - pdflatex fresnelgraph.tex - -eulerspirale.pdf: eulerspirale.tex eulerpath.tex - pdflatex eulerspirale.tex - -pfad.pdf: pfad.tex - pdflatex pfad.tex - diff --git a/buch/papers/fresnel/images/Makefile b/buch/papers/fresnel/images/Makefile new file mode 100644 index 0000000..eb7dc57 --- /dev/null +++ b/buch/papers/fresnel/images/Makefile @@ -0,0 +1,38 @@ +# +# Makefile +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +all: schale.pdf \ + fresnelgraph.pdf \ + eulerspirale.pdf \ + pfad.pdf \ + apfel.pdf \ + kruemmung.pdf + +schale.png: schale.pov + povray +A0.1 -W1920 -H1080 -Oschale.png schale.pov + +schale.jpg: schale.png Makefile + convert -extract 1240x1080+340 schale.png -density 300 -units PixelsPerInch schale.jpg + +schale.pdf: schale.tex schale.jpg + pdflatex schale.tex + +eulerpath.tex: eulerspirale.m + octave eulerspirale.m + +fresnelgraph.pdf: fresnelgraph.tex eulerpath.tex + pdflatex fresnelgraph.tex + +eulerspirale.pdf: eulerspirale.tex eulerpath.tex + pdflatex eulerspirale.tex + +pfad.pdf: pfad.tex + pdflatex pfad.tex + +apfel.pdf: apfel.tex apfel.jpg eulerpath.tex + pdflatex apfel.tex + +kruemmung.pdf: kruemmung.tex + pdflatex kruemmung.tex diff --git a/buch/papers/fresnel/images/apfel.jpg b/buch/papers/fresnel/images/apfel.jpg Binary files differnew file mode 100644 index 0000000..76e48e7 --- /dev/null +++ b/buch/papers/fresnel/images/apfel.jpg diff --git a/buch/papers/fresnel/images/apfel.pdf b/buch/papers/fresnel/images/apfel.pdf Binary files differnew file mode 100644 index 0000000..69e5092 --- /dev/null +++ b/buch/papers/fresnel/images/apfel.pdf diff --git a/buch/papers/fresnel/images/apfel.tex b/buch/papers/fresnel/images/apfel.tex new file mode 100644 index 0000000..754886b --- /dev/null +++ b/buch/papers/fresnel/images/apfel.tex @@ -0,0 +1,49 @@ +% +% apfel.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{7} +\def\hoehe{4} + +\input{eulerpath.tex} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\begin{scope} +\clip(-0.6,-0.6) rectangle (7,6); +\node at (3.1,2.2) [rotate=-3] {\includegraphics[width=9.4cm]{apfel.jpg}}; +\end{scope} + +% Gitter +\ifthenelse{\boolean{showgrid}}{ +\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw (-\breite,-\hoehe) grid (\breite, \hoehe); +\fill (0,0) circle[radius=0.05]; +}{} + +\draw[color=gray!50] (0,0) rectangle (4,4); +\draw[->] (-0.5,0) -- (7.5,0) coordinate[label={$C(t)$}]; +\draw[->] (0,-0.5) -- (0,6.0) coordinate[label={left:$S(t)$}]; +\begin{scope}[scale=8] +\draw[color=red,opacity=0.5,line width=1.4pt] \fresnela; +\end{scope} + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/fresnel/eulerspirale.m b/buch/papers/fresnel/images/eulerspirale.m index 84e3696..84e3696 100644 --- a/buch/papers/fresnel/eulerspirale.m +++ b/buch/papers/fresnel/images/eulerspirale.m diff --git a/buch/papers/fresnel/eulerspirale.pdf b/buch/papers/fresnel/images/eulerspirale.pdf Binary files differindex 4a85a50..db74e4b 100644 --- a/buch/papers/fresnel/eulerspirale.pdf +++ b/buch/papers/fresnel/images/eulerspirale.pdf diff --git a/buch/papers/fresnel/eulerspirale.tex b/buch/papers/fresnel/images/eulerspirale.tex index 38ef756..38ef756 100644 --- a/buch/papers/fresnel/eulerspirale.tex +++ b/buch/papers/fresnel/images/eulerspirale.tex diff --git a/buch/papers/fresnel/fresnelgraph.pdf b/buch/papers/fresnel/images/fresnelgraph.pdf Binary files differindex 9ccad56..c658901 100644 --- a/buch/papers/fresnel/fresnelgraph.pdf +++ b/buch/papers/fresnel/images/fresnelgraph.pdf diff --git a/buch/papers/fresnel/fresnelgraph.tex b/buch/papers/fresnel/images/fresnelgraph.tex index 20df951..20df951 100644 --- a/buch/papers/fresnel/fresnelgraph.tex +++ b/buch/papers/fresnel/images/fresnelgraph.tex diff --git a/buch/papers/fresnel/images/kruemmung.pdf b/buch/papers/fresnel/images/kruemmung.pdf Binary files differnew file mode 100644 index 0000000..1180116 --- /dev/null +++ b/buch/papers/fresnel/images/kruemmung.pdf diff --git a/buch/papers/fresnel/images/kruemmung.tex b/buch/papers/fresnel/images/kruemmung.tex new file mode 100644 index 0000000..af0a1a9 --- /dev/null +++ b/buch/papers/fresnel/images/kruemmung.tex @@ -0,0 +1,51 @@ +% +% kruemmung.tex -- Krümmung einer ebenen Kurve +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math,calc} +\begin{document} +\def\skala{1} +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\begin{scope} +\clip (-1,-1) rectangle (4,4); + +\def\r{3} +\def\winkel{30} + +\fill[color=blue!20] (0,0) -- (0:{0.6*\r}) arc (0:\winkel:{0.6*\r}) -- cycle; +\fill[color=blue!20] (\winkel:\r) + -- ($(\winkel:\r)+(0,{0.6*\r})$) arc (90:{90+\winkel}:{0.6*\r}) -- cycle; +\node[color=blue] at ({0.5*\winkel}:{0.45*\r}) {$\Delta\varphi$}; + +\node[color=blue] at ($(\winkel:\r)+({90+0.5*\winkel}:{0.45*\r})$) + {$\Delta\varphi$}; + +\draw[line width=0.3pt] (0,0) circle[radius=\r]; + +\draw[->] (0,0) -- (0:\r); +\draw[->] (0,0) -- (\winkel:\r); + +\draw[->] (0:\r) -- ($(0:\r)+(90:0.7*\r)$); +\draw[->] (\winkel:\r) -- ($(\winkel:\r)+({90+\winkel}:0.7*\r)$); +\draw[->,color=gray] (\winkel:\r) -- ($(\winkel:\r)+(0,0.7*\r)$); + +\draw[color=red,line width=1.4pt] (0:\r) arc (0:\winkel:\r); +\node[color=red] at ({0.5*\winkel}:\r) [left] {$\Delta s$}; +\fill[color=red] (0:\r) circle[radius=0.05]; +\fill[color=red] (\winkel:\r) circle[radius=0.05]; + +\node at (\winkel:{0.5*\r}) [above] {$r$}; +\node at (0:{0.5*\r}) [below] {$r$}; +\end{scope} + +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/fresnel/pfad.pdf b/buch/papers/fresnel/images/pfad.pdf Binary files differindex ff514cc..df3c7af 100644 --- a/buch/papers/fresnel/pfad.pdf +++ b/buch/papers/fresnel/images/pfad.pdf diff --git a/buch/papers/fresnel/pfad.tex b/buch/papers/fresnel/images/pfad.tex index 5439a71..680cd78 100644 --- a/buch/papers/fresnel/pfad.tex +++ b/buch/papers/fresnel/images/pfad.tex @@ -15,6 +15,9 @@ \definecolor{darkgreen}{rgb}{0,0.6,0} \begin{tikzpicture}[>=latex,thick,scale=\skala] +\fill[color=gray!40] (0,0) -- (2,0) arc (0:45:2) -- cycle; +\node at (22.5:1.4) {$\displaystyle\frac{\pi}4$}; + \draw[->] (-1,0) -- (9,0) coordinate[label={$\operatorname{Re}$}]; \draw[->] (0,-1) -- (0,6) coordinate[label={left:$\operatorname{Im}$}]; diff --git a/buch/papers/fresnel/images/schale.pdf b/buch/papers/fresnel/images/schale.pdf Binary files differnew file mode 100644 index 0000000..9c21951 --- /dev/null +++ b/buch/papers/fresnel/images/schale.pdf diff --git a/buch/papers/fresnel/images/schale.pov b/buch/papers/fresnel/images/schale.pov new file mode 100644 index 0000000..085a6a4 --- /dev/null +++ b/buch/papers/fresnel/images/schale.pov @@ -0,0 +1,191 @@ +// +// schale.pov -- +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#version 3.7; +#include "colors.inc" + +#declare O = <0,0,0>; + +global_settings { + assumed_gamma 1 +} + +#declare imagescale = 0.036; + +camera { + location <40, 20, -20> + look_at <0, 0.5, 0> + right 16/9 * x * imagescale + up y * imagescale +} + +light_source { + <10, 10, -40> color White + area_light <1,0,0> <0,0,1>, 10, 10 + adaptive 1 + jitter +} + +sky_sphere { + pigment { + color rgb<1,1,1> + } +} + +sphere { + <0, 0, 0>, 1 + pigment { + color rgb<0.8,0.8,0.8> + } + finish { + specular 0.95 + metallic + } +} + +#declare stripcolor = rgb<0.2,0.2,0.8>; + +#declare R = 1.002; + +#macro punkt(phi,theta) +R * < cos(phi) * cos(theta), sin(theta), sin(phi) * cos(theta) > +#end + +#declare N = 24; +#declare thetaphi = 0.01; +#declare thetawidth = pi * 0.008; +#declare theta = function(phi) { phi * thetaphi } + +#declare axisdiameter = 0.007; + +cylinder { + < 0, -2, 0>, < 0, 2, 0>, axisdiameter + pigment { + color White + } + finish { + specular 0.95 + metallic + } +} + +#declare curvaturecircle = 0.008; +#declare curvaturecirclecolor = rgb<0.4,0.8,0.4>; + +#declare phit = 12.8 * 2 * pi; +#declare P = punkt(phit, theta(phit)); +#declare Q = <0, R / sin(theta(phit)), 0>; + +#declare e1 = vnormalize(P - Q) / tan(theta(phit)); +#declare e2 = vnormalize(vcross(e1, <0,1,0>)) / tan(theta(phit)); +#declare psimin = -0.1 * pi; +#declare psimax = 0.1 * pi; +#declare psistep = (psimax - psimin) / 30; + +union { + #declare psi = psimin; + #declare K = Q + cos(psi) * e1 + sin(psi) * e2; + #while (psi < psimax - psistep/2) + sphere { K, curvaturecircle } + #declare psi = psi + psistep; + #declare K2 = Q + cos(psi) * e1 + sin(psi) * e2; + cylinder { K, K2, curvaturecircle } + #declare K = K2; + #end + sphere { K, curvaturecircle } + pigment { + color curvaturecirclecolor + } + finish { + specular 0.95 + metallic + } +} + +object { + mesh { + #declare psi = psimin; + #declare K = Q + cos(psi) * e1 + sin(psi) * e2; + #while (psi < psimax - psistep/2) + #declare psi = psi + psistep; + #declare K2 = Q + cos(psi) * e1 + sin(psi) * e2; + triangle { K, K2, Q } + #declare K = K2; + #end + } + pigment { + color rgbt<0.4,0.8,0.4,0.5> + } + finish { + specular 0.95 + metallic + } +} + +union { + sphere { P, 0.02 } + sphere { Q, 0.02 } + cylinder { P, Q, 0.01 } + pigment { + color Red + } + finish { + specular 0.95 + metallic + } +} + +#declare phisteps = 300; +#declare phistep = 2 * pi / phisteps; +#declare phimin = 0; +#declare phimax = N * 2 * pi; + +object { + mesh { + #declare phi = phimin; + #declare Poben = punkt(phi, theta(phi) + thetawidth); + #declare Punten = punkt(phi, theta(phi) - thetawidth); + triangle { O, Punten, Poben } + #while (phi < phimax - phistep/2) + #declare phi = phi + phistep; + #declare Poben2 = punkt(phi, theta(phi) + thetawidth); + #declare Punten2 = punkt(phi, theta(phi) - thetawidth); + triangle { O, Punten, Punten2 } + triangle { O, Poben, Poben2 } + triangle { Punten, Punten2, Poben } + triangle { Punten2, Poben2, Poben } + #declare Poben = Poben2; + #declare Punten = Punten2; + #end + triangle { O, Punten, Poben } + } + pigment { + color stripcolor + } + finish { + specular 0.8 + metallic + } +} + +union { + #declare phi = phimin; + #declare P = punkt(phi, theta(phi)); + #while (phi < phimax - phistep/2) + sphere { P, 0.003 } + #declare phi = phi + phistep; + #declare P2 = punkt(phi, theta(phi)); + cylinder { P, P2, 0.003 } + #declare P = P2; + #end + sphere { P, 0.003 } + pigment { + color stripcolor + } + finish { + specular 0.8 + metallic + } +} diff --git a/buch/papers/fresnel/images/schale.tex b/buch/papers/fresnel/images/schale.tex new file mode 100644 index 0000000..577ede4 --- /dev/null +++ b/buch/papers/fresnel/images/schale.tex @@ -0,0 +1,77 @@ +% +% schlange.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math,calc} +\usepackage{ifthen} +\begin{document} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} +\def\a{47} +\def\r{3.3} +\def\skala{0.95} + +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\begin{scope}[xshift=-7.4cm,yshift=-1.2cm] + \clip (-3.6,-2.2) rectangle (3.6,5.1); + + \fill[color=blue!20] (0,0) + -- ({180-\a}:{0.4*\r}) arc ({180-\a}:180:{0.4*\r}) + -- cycle; + \node[color=blue] at ({180-\a/2}:{0.3*\r}) {$\vartheta$}; + + \fill[color=blue!20] (0,{\r/sin(\a)}) + -- ($(0,{\r/sin(\a)})+({270-\a}:{0.3*\r})$) + arc ({270-\a}:270:{0.3*\r}) + -- cycle; + \node[color=blue] at ($(0,{\r/sin(\a)})+({270-\a/2}:{0.2*\r})$) + {$\vartheta$}; + + + \draw (0,0) circle[radius=\r]; + \draw[->] (0,-3.0) -- (0,5); + \draw ({-\r-0.2},0) -- ({\r+0.2},0); + \fill (0,0) circle[radius=0.06]; + + \draw (0,0) -- ({180-\a}:\r); + \node at ({180-\a+3}:{0.65*\r}) [above right] {$1$}; + + \draw[color=red,line width=1.4pt] + ({180-\a}:\r) -- (0,{\r/cos(90-\a)}); + \fill[color=red] ({180-\a}:\r) circle[radius=0.08]; + \fill[color=red] (0,{\r/cos(90-\a)}) circle[radius=0.08]; + \node[color=red] at (-1.0,3.7) [left] {$r=\cot\vartheta$}; + \node[color=red] at ({180-\a}:\r) [above left] {$P$}; + \node[color=red] at (0,{\r/sin(\a)}) [right] {$Q$}; +\end{scope} + +% Povray Bild +\node at (0,0) {\includegraphics[width=7.6cm]{schale.jpg}}; + +% Gitter +\ifthenelse{\boolean{showgrid}}{ +\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw (-\breite,-\hoehe) grid (\breite, \hoehe); +\fill (0,0) circle[radius=0.05]; +}{} + +\node[color=red] at (-1.4,1.4) {$r$}; +\node[color=red] at (-2.2,-0.2) {$P$}; +\node[color=red] at (0,3.3) [right] {$Q$}; + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/fresnel/main.tex b/buch/papers/fresnel/main.tex index e6ee3b5..2050fd4 100644 --- a/buch/papers/fresnel/main.tex +++ b/buch/papers/fresnel/main.tex @@ -8,6 +8,11 @@ \begin{refsection} \chapterauthor{Andreas Müller} +{\parindent0pt Die} Fresnel-Integrale tauchen in der Untersuchung der Beugung +in paraxialer Näherung auf, auch bekannt als die Fresnel-Approximation. +In diesem Kapitel betrachen wir jedoch nur die geometrische +Anwendung der Fresnel-Integrale als Parametrisierung der Euler-Spirale +und zeigen, dass letztere eine Klothoide ist. \input{papers/fresnel/teil0.tex} \input{papers/fresnel/teil1.tex} diff --git a/buch/papers/fresnel/references.bib b/buch/papers/fresnel/references.bib index 58e9242..cf8fb21 100644 --- a/buch/papers/fresnel/references.bib +++ b/buch/papers/fresnel/references.bib @@ -44,3 +44,9 @@ title = { Fresnel Integral }, date = { 2022-05-13 } } + +@online{fresnel:schale, + url = { https://www.youtube.com/watch?v=D3tdW9l1690 }, + title = { A Strange Map Projection (Euler Spiral) - Numberphile }, + date = { 2022-05-14 } +} diff --git a/buch/papers/fresnel/teil0.tex b/buch/papers/fresnel/teil0.tex index 253e2f3..85b8bf7 100644 --- a/buch/papers/fresnel/teil0.tex +++ b/buch/papers/fresnel/teil0.tex @@ -20,7 +20,7 @@ C(x) &= \int_0^x \cos\biggl(\frac{\pi}2 t^2\biggr)\,dt \\ S(x) &= \int_0^x \sin\biggl(\frac{\pi}2 t^2\biggr)\,dt \end{align*} -heissen die Fesnel-Integrale. +heissen die Fresnel-Integrale. \end{definition} Der Faktor $\frac{\pi}2$ ist einigermassen willkürlich, man könnte @@ -39,7 +39,7 @@ C(x) &= C_{\frac{\pi}2}(x), S(x) &= S_{\frac{\pi}2}(x). \end{aligned} \] -Durch eine Substution $t=bs$ erhält man +Durch eine Substitution $t=bs$ erhält man \begin{align*} C_a(x) &= @@ -91,7 +91,7 @@ $C_1(x)$ und $S_1(x)$ betrachten, da in diesem Fall die Formeln einfacher werden. \begin{figure} \centering -\includegraphics{papers/fresnel/fresnelgraph.pdf} +\includegraphics{papers/fresnel/images/fresnelgraph.pdf} \caption{Graph der Funktionen $C(x)$ ({\color{red}rot}) und $S(x)$ ({\color{blue}blau}) \label{fresnel:figure:plot}} diff --git a/buch/papers/fresnel/teil1.tex b/buch/papers/fresnel/teil1.tex index a41ddb7..c716cd7 100644 --- a/buch/papers/fresnel/teil1.tex +++ b/buch/papers/fresnel/teil1.tex @@ -8,7 +8,7 @@ \rhead{Euler-Spirale} \begin{figure} \centering -\includegraphics{papers/fresnel/eulerspirale.pdf} +\includegraphics{papers/fresnel/images/eulerspirale.pdf} \caption{Die Eulerspirale ist die Kurve mit der Parameterdarstellung $x\mapsto (C(x),S(x))$, sie ist rot dargestellt. Sie windet sich unendlich oft um die beiden Punkte $(\pm\frac12,\pm\frac12)$. @@ -25,7 +25,7 @@ $(\pm\frac12,\pm\frac12)$ zu winden. \begin{figure} \centering -\includegraphics{papers/fresnel/pfad.pdf} +\includegraphics{papers/fresnel/images/pfad.pdf} \caption{Pfad zur Berechnung der Grenzwerte $C_1(\infty)$ und $S_1(\infty)$ mit Hilfe des Cauchy-Integralsatzes \label{fresnel:figure:pfad}} @@ -182,7 +182,7 @@ muss, folgt $C_1(\infty)=S_1(\infty)$. Nach Multlikation mit $\sqrt{2}$ folgt aus der Tatsache, dass auch der Realteil verschwinden muss \[ -\frac{\sqrt{\pi}}{\sqrt{2}} = C_1(\infty)+S_1(\infty) +\sqrt{\frac{\pi}{2}} = C_1(\infty)+S_1(\infty) \qquad \Rightarrow \qquad @@ -190,7 +190,10 @@ C_1(\infty) = S_1(\infty) = -\frac{\sqrt{\pi}}{2\sqrt{2}}. +\frac12 +\sqrt{ +\frac{\pi}{2} +}. \] Aus \eqref{fresnel:equation:arg} diff --git a/buch/papers/fresnel/teil2.tex b/buch/papers/fresnel/teil2.tex index 22d2a89..ec8c896 100644 --- a/buch/papers/fresnel/teil2.tex +++ b/buch/papers/fresnel/teil2.tex @@ -15,10 +15,165 @@ Eine ebene Kurve, deren Krümmung proportionale zur Kurvenlänge ist, heisst {\em Klothoide}. \end{definition} -Die Klothoide wird zum Beispiel im Strassenbau bei Autobahnkurven -angewendet. -Fährt man mit konstanter Geschwindigkeit mit entlang einer Klothoide, +Die Klothoide wird zum Beispiel im Strassenbau für Autobahnkurven +verwendet. +Fährt man mit konstanter Geschwindigkeit entlang einer Klothoide, muss man die Krümmung mit konstaner Geschwindigkeit ändern, also das Lenkrad mit konstanter Geschwindigkeit drehen. Dies ermöglicht eine ruhige Fahrweise. +\subsection{Krümmung einer ebenen Kurve} +\begin{figure} +\centering +\includegraphics{papers/fresnel/images/kruemmung.pdf} +\caption{Berechnung der Krümmung einer ebenen Kurve. +\label{fresnel:figure:kruemmung}} +\end{figure} +Abbildung~\ref{fresnel:figure:kruemmung} erinnert daran, dass der +Bogen eines Kreises vom Radius $r$, entlang dem sich die Richtung +der Tangente um $\Delta\varphi$ ändert, die Länge +$\Delta s = r\Delta\varphi$. +Die Krümmung ist der Kehrwert des Krümmungsradius, daraus kann +man ablesen, dass +\[ +\kappa = \frac{1}{r} = \frac{\Delta \varphi}{\Delta s}. +\] +Für eine beliebige ebene Kurve ist daher die Krümmung +\[ +\kappa = \frac{d\varphi}{ds}. +\] + +\subsection{Krümmung der Euler-Spirale} +Wir betrachten jetzt die Euler-Spirale mit der Parametrisierung +$\gamma(s) = (C_1(s),S_1(s))$. +Zunächst stellen wir fest, dass die Länge der Tangente +\[ +\dot{\gamma}(s) += +\frac{d\gamma}{ds} += +\begin{pmatrix} +\dot{C}_1(s)\\ +\dot{S}_1(s) +\end{pmatrix} += +\begin{pmatrix} +\cos s^2\\ +\sin s^2 +\end{pmatrix} +\qquad\Rightarrow\qquad +|\dot{\gamma}(s)| += +\sqrt{\cos^2s^2+\sin^2s^2} += +1. +\] +Insbesondere ist der Parameter $s$ der Kurve $\gamma(s)$ die +Bogenlänge. + +Der zu $\dot{\gamma}(s)$ gehörige Polarwinkel kann aus dem Vergleich +mit einem Vektor mit bekanntem Polarwinkel $\varphi$ abgelesen werden: +\[ +\begin{pmatrix} +\cos \varphi\\ +\sin \varphi +\end{pmatrix} += +\dot{\gamma}(s) += +\begin{pmatrix} +\cos s^2\\\sin s^2 +\end{pmatrix}, +\] +der Polarwinkel +ist daher $\varphi = s^2$. +Die Krümmung ist die Ableitung des Polarwinkels nach $s$, also +\[ +\kappa += +\frac{d\varphi}{ds} += +\frac{ds^2}{ds} += +2s, +\] +sie ist somit proportional zur Bogenlänge $s$. +Damit folgt, dass die Euler-Spirale eine Klothoide ist. + +\subsection{Eine Kugel schälen} +\begin{figure} +\centering +\includegraphics[width=\textwidth]{papers/fresnel/images/schale.pdf} +\caption{Schält man eine einen Streifen konstanter Breite beginnend am +Äquator von einer Kugel ab und breitet ihn in der Ebene aus, entsteht +eine Klothoide. +\label{fresnel:figure:schale}} +\end{figure} +\begin{figure} +\centering +\includegraphics{papers/fresnel/images/apfel.pdf} +\caption{Klothoide erhalten durch Abschälen eines Streifens von einem +Apfel (vgl.~Abbildung~\ref{fresnel:figure:schale}) +\label{fresnel:figure:apfel}} +\end{figure} +Schält man einen Streifen konstanter Breite beginnend parallel zum Äquator +von einer Kugel ab und breitet ihn in die Ebene aus, entsteht eine +Approximation einer Klothoide. +Abbildung~\ref{fresnel:figure:schale} zeigt blau den abgeschälten Streifen, +Abbildung~\ref{fresnel:figure:apfel} zeigt das Resultat dieses Versuches +an einem Apfel, das Youtube-Video \cite{fresnel:schale} des +Numberphile-Kanals illustriert das Problem anhand eines aufblasbaren +Globus. + +Windet sich die Kurve in Abbildung~\ref{fresnel:figure:schale} $n$ +mal um die vertikale Achse, bevor sie den Nordpol erreicht, dann kann +die Kurve mit der Funktion +\[ +\gamma(t) += +\begin{pmatrix} +\cos(t) \cos(t/n) \\ +\sin(t) \cos(t/n) \\ +\sin(t/n) +\end{pmatrix} +\] +parametrisiert werden. +Der Tangentialvektor +\[ +\dot{\gamma}(t) += +\begin{pmatrix} +-\sin(t)\cos(t/n) - \cos(t)\sin(t/n)/n \\ +\cos(t)\cos(t/n) - \sin(t)\sin(t/n)/n \\ +\cos(t/n)/n +\end{pmatrix} +\] +hat die Länge +\[ +| \dot{\gamma}(t) |^2 += +\frac{1}{n^2} ++ +\cos^2\frac{t}{n}. +\] +Die Ableitung der Bogenlänge ist daher +\[ +\dot{s}(t) += +\sqrt{ +\frac{1}{n^2} ++ +\cos^2\frac{t}{n} +}. +\] + + +Der Krümmungsradius des blauen Streifens, der die Kugel im Punkt $P$ bei +geographischer $\vartheta$ berührt, hat die Länge der Tangente, die +die Kugel im Punkt $P$ berührt und im Punkt $Q$ durch die Achse der +Kugel geht (Abbildung~\ref{fresnel:figure:schale}). +Die Krümmung in Abhängigkeit von $\vartheta$ ist daher $\tan\vartheta$. + + + + diff --git a/buch/papers/fresnel/teil3.tex b/buch/papers/fresnel/teil3.tex index 37e6bee..ceddbe0 100644 --- a/buch/papers/fresnel/teil3.tex +++ b/buch/papers/fresnel/teil3.tex @@ -42,8 +42,8 @@ C'(x) = \cos \biggl(\frac{\pi}2 x^2\biggr) \qquad\text{und}\qquad S'(x) = \sin \biggl(\frac{\pi}2 x^2\biggr) \] -erfüllen, kann man eine Methode zur Lösung von Differentialgleichung -verwenden. +erfüllen, kann man eine Methode zur numerischen Lösung von +Differentialgleichung verwenden. Die Abbildungen~\ref{fresnel:figure:plot} und \ref{fresnel:figure:eulerspirale} wurden auf diese Weise erzeugt. diff --git a/buch/papers/kugel/images/Makefile b/buch/papers/kugel/images/Makefile new file mode 100644 index 0000000..4226dab --- /dev/null +++ b/buch/papers/kugel/images/Makefile @@ -0,0 +1,30 @@ +# +# Makefile -- build images +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +all: curvature.jpg spherecurve.jpg + +curvature.inc: curvgraph.m + octave curvgraph.m + +curvature.png: curvature.pov curvature.inc + povray +A0.1 +W1920 +H1080 +Ocurvature.png curvature.pov + +curvature.jpg: curvature.png + convert curvature.png -density 300 -units PixelsPerInch curvature.jpg + +spherecurve2.inc: spherecurve.m + octave spherecurve.m + +spherecurve.png: spherecurve.pov spherecurve.inc + povray +A0.1 +W1080 +H1080 +Ospherecurve.png spherecurve.pov + +spherecurve.jpg: spherecurve.png + convert spherecurve.png -density 300 -units PixelsPerInch spherecurve.jpg + +spherecurve: spherecurve.cpp + g++ -o spherecurve -g -Wall -O spherecurve.cpp + +spherecurve.inc: spherecurve + ./spherecurve diff --git a/buch/papers/kugel/images/curvature.maxima b/buch/papers/kugel/images/curvature.maxima new file mode 100644 index 0000000..6313642 --- /dev/null +++ b/buch/papers/kugel/images/curvature.maxima @@ -0,0 +1,6 @@ + +f: exp(-r^2/sigma^2)/sigma; +laplacef: ratsimp(diff(r * diff(f,r), r) / r); +f: exp(-r^2/(2*sigma^2))/(sqrt(2)*sigma); +laplacef: ratsimp(diff(r * diff(f,r), r) / r); + diff --git a/buch/papers/kugel/images/curvature.pov b/buch/papers/kugel/images/curvature.pov new file mode 100644 index 0000000..3b15d77 --- /dev/null +++ b/buch/papers/kugel/images/curvature.pov @@ -0,0 +1,139 @@ +// +// curvature.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// + +#version 3.7; +#include "colors.inc" + +global_settings { + assumed_gamma 1 +} + +#declare imagescale = 0.09; + +camera { + location <10, 10, -40> + look_at <0, 0, 0> + right 16/9 * x * imagescale + up y * imagescale +} + +light_source { + <-10, 10, -40> color White + area_light <1,0,0> <0,0,1>, 10, 10 + adaptive 1 + jitter +} + +sky_sphere { + pigment { + color rgb<1,1,1> + } +} + +// +// draw an arrow from <from> to <to> with thickness <arrowthickness> with +// color <c> +// +#macro arrow(from, to, arrowthickness, c) +#declare arrowdirection = vnormalize(to - from); +#declare arrowlength = vlength(to - from); +union { + sphere { + from, 1.1 * arrowthickness + } + cylinder { + from, + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + arrowthickness + } + cone { + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + 2 * arrowthickness, + to, + 0 + } + pigment { + color c + } + finish { + specular 0.9 + metallic + } +} +#end + +arrow(<-3.1,0,0>, <3.1,0,0>, 0.01, White) +arrow(<0,-1,0>, <0,1,0>, 0.01, White) +arrow(<0,0,-2.1>, <0,0,2.1>, 0.01, White) + +#include "curvature.inc" + +#declare sigma = 1; +#declare s = 1.4; +#declare N0 = 0.4; +#declare funktion = function(r) { + (exp(-r*r/(sigma*sigma)) / sigma + - + exp(-r*r/(2*sigma*sigma)) / (sqrt(2)*sigma)) / N0 +}; +#declare hypot = function(xx, yy) { sqrt(xx*xx+yy*yy) }; + +#declare Funktion = function(x,y) { funktion(hypot(x+s,y)) - funktion(hypot(x-s,y)) }; +#macro punkt(xx,yy) + <xx, Funktion(xx, yy), yy> +#end + +#declare griddiameter = 0.006; +union { + #declare xmin = -3; + #declare xmax = 3; + #declare ymin = -2; + #declare ymax = 2; + + + #declare xstep = 0.2; + #declare ystep = 0.02; + #declare xx = xmin; + #while (xx < xmax + xstep/2) + #declare yy = ymin; + #declare P = punkt(xx, yy); + #while (yy < ymax - ystep/2) + #declare yy = yy + ystep; + #declare Q = punkt(xx, yy); + sphere { P, griddiameter } + cylinder { P, Q, griddiameter } + #declare P = Q; + #end + sphere { P, griddiameter } + #declare xx = xx + xstep; + #end + + #declare xstep = 0.02; + #declare ystep = 0.2; + #declare yy = ymin; + #while (yy < ymax + ystep/2) + #declare xx = xmin; + #declare P = punkt(xx, yy); + #while (xx < xmax - xstep/2) + #declare xx = xx + xstep; + #declare Q = punkt(xx, yy); + sphere { P, griddiameter } + cylinder { P, Q, griddiameter } + #declare P = Q; + #end + sphere { P, griddiameter } + #declare yy = yy + ystep; + #end + + pigment { + color rgb<0.8,0.8,0.8> + } + finish { + metallic + specular 0.8 + } +} + diff --git a/buch/papers/kugel/images/curvgraph.m b/buch/papers/kugel/images/curvgraph.m new file mode 100644 index 0000000..75effd6 --- /dev/null +++ b/buch/papers/kugel/images/curvgraph.m @@ -0,0 +1,140 @@ +# +# curvature.m +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# + +global N; +N = 10; + +global sigma2; +sigma2 = 1; + +global s; +s = 1.4; + +global cmax; +cmax = 0.9; +global cmin; +cmin = -0.9; + +global Cmax; +global Cmin; +Cmax = 0; +Cmin = 0; + +xmin = -3; +xmax = 3; +xsteps = 200; +hx = (xmax - xmin) / xsteps; + +ymin = -2; +ymax = 2; +ysteps = 200; +hy = (ymax - ymin) / ysteps; + +function retval = f0(r) + global sigma2; + retval = exp(-r^2/sigma2)/sqrt(sigma2) - exp(-r^2/(2*sigma2))/(sqrt(2*sigma2)); +end + +global N0; +N0 = f0(0) +N0 = 0.4; + +function retval = f1(x,y) + global N0; + retval = f0(hypot(x, y)) / N0; +endfunction + +function retval = f(x, y) + global s; + retval = f1(x+s, y) - f1(x-s, y); +endfunction + +function retval = curvature0(r) + global sigma2; + retval = ( + -4*(sigma2-r^2)*exp(-r^2/sigma2) + + + (2*sigma2-r^2)*exp(-r^2/(2*sigma2)) + ) / (sigma2^(5/2)); +endfunction + +function retval = curvature1(x, y) + retval = curvature0(hypot(x, y)); +endfunction + +function retval = curvature(x, y) + global s; + retval = curvature1(x+s, y) - curvature1(x-s, y); +endfunction + +function retval = farbe(x, y) + global Cmax; + global Cmin; + global cmax; + global cmin; + c = curvature(x, y); + if (c < Cmin) + Cmin = c + endif + if (c > Cmax) + Cmax = c + endif + u = (c - cmin) / (cmax - cmin); + if (u > 1) + u = 1; + endif + if (u < 0) + u = 0; + endif + color = [ u, 0.5, 1-u ]; + color = color/max(color); + color(1,4) = c/2; + retval = color; +endfunction + +function dreieck(fn, A, B, C) + fprintf(fn, "\ttriangle {\n"); + fprintf(fn, "\t <%.4f,%.4f,%.4f>,\n", A(1,1), A(1,3), A(1,2)); + fprintf(fn, "\t <%.4f,%.4f,%.4f>,\n", B(1,1), B(1,3), B(1,2)); + fprintf(fn, "\t <%.4f,%.4f,%.4f>\n", C(1,1), C(1,3), C(1,2)); + fprintf(fn, "\t}\n"); +endfunction + +function viereck(fn, punkte) + color = farbe(mean(punkte(:,1)), mean(punkte(:,2))); + fprintf(fn, " mesh {\n"); + dreieck(fn, punkte(1,:), punkte(2,:), punkte(3,:)); + dreieck(fn, punkte(2,:), punkte(3,:), punkte(4,:)); + fprintf(fn, "\tpigment { color rgb<%.4f,%.4f,%.4f> } // %.4f\n", + color(1,1), color(1,2), color(1,3), color(1,4)); + fprintf(fn, " }\n"); +endfunction + +fn = fopen("curvature.inc", "w"); +punkte = zeros(4,3); +for ix = (0:xsteps-1) + x = xmin + ix * hx; + punkte(1,1) = x; + punkte(2,1) = x; + punkte(3,1) = x + hx; + punkte(4,1) = x + hx; + for iy = (0:ysteps-1) + y = ymin + iy * hy; + punkte(1,2) = y; + punkte(2,2) = y + hy; + punkte(3,2) = y; + punkte(4,2) = y + hy; + for i = (1:4) + punkte(i,3) = f(punkte(i,1), punkte(i,2)); + endfor + viereck(fn, punkte); + end +end +#fprintf(fn, " finish { metallic specular 0.5 }\n"); +fclose(fn); + +printf("Cmax = %.4f\n", Cmax); +printf("Cmin = %.4f\n", Cmin); diff --git a/buch/papers/kugel/images/spherecurve.cpp b/buch/papers/kugel/images/spherecurve.cpp new file mode 100644 index 0000000..8ddf5e5 --- /dev/null +++ b/buch/papers/kugel/images/spherecurve.cpp @@ -0,0 +1,292 @@ +/* + * spherecurve.cpp + * + * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + */ +#include <cstdio> +#include <cstdlib> +#include <cmath> +#include <string> +#include <iostream> + +inline double sqr(double x) { return x * x; } + +/** + * \brief Class for 3d vectors (also used as colors) + */ +class vector { + double X[3]; +public: + vector() { X[0] = X[1] = X[2] = 0; } + vector(double a) { X[0] = X[1] = X[2] = a; } + vector(double x, double y, double z) { + X[0] = x; X[1] = y; X[2] = z; + } + vector(double theta, double phi) { + double s = sin(theta); + X[0] = cos(phi) * s; + X[1] = sin(phi) * s; + X[2] = cos(theta); + } + vector(const vector& other) { + for (int i = 0; i < 3; i++) { + X[i] = other.X[i]; + } + } + vector operator+(const vector& other) const { + return vector(X[0] + other.X[0], + X[1] + other.X[1], + X[2] + other.X[2]); + } + vector operator*(double l) const { + return vector(X[0] * l, X[1] * l, X[2] * l); + } + double operator*(const vector& other) const { + double s = 0; + for (int i = 0; i < 3; i++) { + s += X[i] * other.X[i]; + } + return s; + } + double norm() const { + double s = 0; + for (int i = 0; i < 3; i++) { + s += sqr(X[i]); + } + return sqrt(s); + } + vector normalize() const { + double l = norm(); + return vector(X[0]/l, X[1]/l, X[2]/l); + } + double max() const { + return std::max(X[0], std::max(X[1], X[2])); + } + double l0norm() const { + double l = 0; + for (int i = 0; i < 3; i++) { + if (fabs(X[i]) > l) { + l = fabs(X[i]); + } + } + return l; + } + vector l0normalize() const { + double l = l0norm(); + vector result(X[0]/l, X[1]/l, X[2]/l); + return result; + } + const double& operator[](int i) const { return X[i]; } + double& operator[](int i) { return X[i]; } +}; + +/** + * \brief Derived 3d vector class implementing color + * + * The constructor in this class converts a single value into a + * color on a suitable gradient. + */ +class color : public vector { +public: + static double utop; + static double ubottom; + static double green; +public: + color(double u) { + u = (u - ubottom) / (utop - ubottom); + if (u > 1) { + u = 1; + } + if (u < 0) { + u = 0; + } + u = pow(u,2); + (*this)[0] = u; + (*this)[1] = green * u * (1 - u); + (*this)[2] = 1-u; + double l = l0norm(); + for (int i = 0; i < 3; i++) { + (*this)[i] /= l; + } + } +}; + +double color::utop = 12; +double color::ubottom = -31; +double color::green = 0.5; + +/** + * \brief Surface model + * + * This class contains the definitions of the functions to plot + * and the parameters to + */ +class surfacefunction { + static vector axes[6]; + + double _a; + double _A; + + double _umin; + double _umax; +public: + double a() const { return _a; } + double A() const { return _A; } + + double umin() const { return _umin; } + double umax() const { return _umax; } + + surfacefunction(double a, double A) : _a(a), _A(A), _umin(0), _umax(0) { + } + + double f(double z) { + return A() * exp(a() * (sqr(z) - 1)); + } + + double g(double z) { + return -f(z) * 2*a() * ((2*a()*sqr(z) + (3-2*a()))*sqr(z) - 1); + } + + double F(const vector& v) { + double s = 0; + for (int i = 0; i < 6; i++) { + s += f(axes[i] * v); + } + return s / 6; + } + + double G(const vector& v) { + double s = 0; + for (int i = 0; i < 6; i++) { + s += g(axes[i] * v); + } + return s / 6; + } +protected: + color farbe(const vector& v) { + double u = G(v); + if (u < _umin) { + _umin = u; + } + if (u > _umax) { + _umax = u; + } + return color(u); + } +}; + +static double phi = (1 + sqrt(5)) / 2; +static double sl = sqrt(sqr(phi) + 1); +vector surfacefunction::axes[6] = { + vector( 0. , -1./sl, phi/sl ), + vector( 0. , 1./sl, phi/sl ), + vector( 1./sl, phi/sl, 0. ), + vector( -1./sl, phi/sl, 0. ), + vector( phi/sl, 0. , 1./sl ), + vector( -phi/sl, 0. , 1./sl ) +}; + +/** + * \brief Class to construct the plot + */ +class surface : public surfacefunction { + FILE *outfile; + + int _phisteps; + int _thetasteps; + double _hphi; + double _htheta; +public: + int phisteps() const { return _phisteps; } + int thetasteps() const { return _thetasteps; } + double hphi() const { return _hphi; } + double htheta() const { return _htheta; } + void phisteps(int s) { _phisteps = s; _hphi = 2 * M_PI / s; } + void thetasteps(int s) { _thetasteps = s; _htheta = M_PI / s; } + + surface(const std::string& filename, double a, double A) + : surfacefunction(a, A) { + outfile = fopen(filename.c_str(), "w"); + phisteps(400); + thetasteps(200); + } + + ~surface() { + fclose(outfile); + } + +private: + void triangle(const vector& v0, const vector& v1, const vector& v2) { + fprintf(outfile, " mesh {\n"); + vector c = (v0 + v1 + v2) * (1./3.); + vector color = farbe(c.normalize()); + vector V0 = v0 * (1 + F(v0)); + vector V1 = v1 * (1 + F(v1)); + vector V2 = v2 * (1 + F(v2)); + fprintf(outfile, "\ttriangle {\n"); + fprintf(outfile, "\t <%.6f,%.6f,%.6f>,\n", + V0[0], V0[2], V0[1]); + fprintf(outfile, "\t <%.6f,%.6f,%.6f>,\n", + V1[0], V1[2], V1[1]); + fprintf(outfile, "\t <%.6f,%.6f,%.6f>\n", + V2[0], V2[2], V2[1]); + fprintf(outfile, "\t}\n"); + fprintf(outfile, "\tpigment { color rgb<%.4f,%.4f,%.4f> }\n", + color[0], color[1], color[2]); + fprintf(outfile, "\tfinish { metallic specular 0.5 }\n"); + fprintf(outfile, " }\n"); + } + + void northcap() { + vector v0(0, 0, 1); + for (int i = 1; i <= phisteps(); i++) { + fprintf(outfile, " // northcap i = %d\n", i); + vector v1(htheta(), (i - 1) * hphi()); + vector v2(htheta(), i * hphi()); + triangle(v0, v1, v2); + } + } + + void southcap() { + vector v0(0, 0, -1); + for (int i = 1; i <= phisteps(); i++) { + fprintf(outfile, " // southcap i = %d\n", i); + vector v1(M_PI - htheta(), (i - 1) * hphi()); + vector v2(M_PI - htheta(), i * hphi()); + triangle(v0, v1, v2); + } + } + + void zone() { + for (int j = 1; j < thetasteps() - 1; j++) { + for (int i = 1; i <= phisteps(); i++) { + fprintf(outfile, " // zone j = %d, i = %d\n", + j, i); + vector v0( j * htheta(), (i-1) * hphi()); + vector v1((j+1) * htheta(), (i-1) * hphi()); + vector v2( j * htheta(), i * hphi()); + vector v3((j+1) * htheta(), i * hphi()); + triangle(v0, v1, v2); + triangle(v1, v2, v3); + } + } + } +public: + void draw() { + northcap(); + southcap(); + zone(); + } +}; + +/** + * \brief main function + */ +int main(int argc, char *argv[]) { + surface S("spherecurve.inc", 5, 10); + color::green = 1.0; + S.draw(); + std::cout << "umin: " << S.umin() << std::endl; + std::cout << "umax: " << S.umax() << std::endl; + return EXIT_SUCCESS; +} diff --git a/buch/papers/kugel/images/spherecurve.m b/buch/papers/kugel/images/spherecurve.m new file mode 100644 index 0000000..99d5c9a --- /dev/null +++ b/buch/papers/kugel/images/spherecurve.m @@ -0,0 +1,160 @@ +# +# spherecurve.m +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +global a; +a = 5; +global A; +A = 10; + +phisteps = 400; +hphi = 2 * pi / phisteps; +thetasteps = 200; +htheta = pi / thetasteps; + +function retval = f(z) + global a; + global A; + retval = A * exp(a * (z^2 - 1)); +endfunction + +function retval = g(z) + global a; + retval = -f(z) * 2 * a * (2 * a * z^4 + (3 - 2*a) * z^2 - 1); + # 2 + # - a 2 4 2 2 a z + #(%o6) - %e (4 a z + (6 a - 4 a ) z - 2 a) %e +endfunction + +phi = (1 + sqrt(5)) / 2; + +global axes; +axes = [ + 0, 0, 1, -1, phi, -phi; + 1, -1, phi, phi, 0, 0; + phi, phi, 0, 0, 1, 1; +]; +axes = axes / (sqrt(phi^2+1)); + +function retval = kugel(theta, phi) + retval = [ + cos(phi) * sin(theta); + sin(phi) * sin(theta); + cos(theta) + ]; +endfunction + +function retval = F(v) + global axes; + s = 0; + for i = (1:6) + z = axes(:,i)' * v; + s = s + f(z); + endfor + retval = s / 6; +endfunction + +function retval = F2(theta, phi) + v = kugel(theta, phi); + retval = F(v); +endfunction + +function retval = G(v) + global axes; + s = 0; + for i = (1:6) + s = s + g(axes(:,i)' * v); + endfor + retval = s / 6; +endfunction + +function retval = G2(theta, phi) + v = kugel(theta, phi); + retval = G(v); +endfunction + +function retval = cnormalize(u) + utop = 11; + ubottom = -30; + retval = (u - ubottom) / (utop - ubottom); + if (retval > 1) + retval = 1; + endif + if (retval < 0) + retval = 0; + endif +endfunction + +global umin; +umin = 0; +global umax; +umax = 0; + +function color = farbe(v) + global umin; + global umax; + u = G(v); + if (u < umin) + umin = u; + endif + if (u > umax) + umax = u; + endif + u = cnormalize(u); + color = [ u, 0.5, 1-u ]; + color = color/max(color); +endfunction + +function dreieck(fn, v0, v1, v2) + fprintf(fn, " mesh {\n"); + c = (v0 + v1 + v2) / 3; + c = c / norm(c); + color = farbe(c); + v0 = v0 * (1 + F(v0)); + v1 = v1 * (1 + F(v1)); + v2 = v2 * (1 + F(v2)); + fprintf(fn, "\ttriangle {\n"); + fprintf(fn, "\t <%.6f,%.6f,%.6f>,\n", v0(1,1), v0(3,1), v0(2,1)); + fprintf(fn, "\t <%.6f,%.6f,%.6f>,\n", v1(1,1), v1(3,1), v1(2,1)); + fprintf(fn, "\t <%.6f,%.6f,%.6f>\n", v2(1,1), v2(3,1), v2(2,1)); + fprintf(fn, "\t}\n"); + fprintf(fn, "\tpigment { color rgb<%.4f,%.4f,%.4f> }\n", + color(1,1), color(1,2), color(1,3)); + fprintf(fn, "\tfinish { metallic specular 0.5 }\n"); + fprintf(fn, " }\n"); +endfunction + +fn = fopen("spherecurve2.inc", "w"); + + for i = (1:phisteps) + # Polkappe nord + v0 = [ 0; 0; 1 ]; + v1 = kugel(htheta, (i-1) * hphi); + v2 = kugel(htheta, i * hphi); + fprintf(fn, " // i = %d\n", i); + dreieck(fn, v0, v1, v2); + + # Polkappe sued + v0 = [ 0; 0; -1 ]; + v1 = kugel(pi-htheta, (i-1) * hphi); + v2 = kugel(pi-htheta, i * hphi); + dreieck(fn, v0, v1, v2); + endfor + + for j = (1:thetasteps-2) + for i = (1:phisteps) + v0 = kugel( j * htheta, (i-1) * hphi); + v1 = kugel((j+1) * htheta, (i-1) * hphi); + v2 = kugel( j * htheta, i * hphi); + v3 = kugel((j+1) * htheta, i * hphi); + fprintf(fn, " // i = %d, j = %d\n", i, j); + dreieck(fn, v0, v1, v2); + dreieck(fn, v1, v2, v3); + endfor + endfor + +fclose(fn); + +umin +umax diff --git a/buch/papers/kugel/images/spherecurve.maxima b/buch/papers/kugel/images/spherecurve.maxima new file mode 100644 index 0000000..1e9077c --- /dev/null +++ b/buch/papers/kugel/images/spherecurve.maxima @@ -0,0 +1,13 @@ +/* + * spherecurv.maxima + * + * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + */ +f: exp(-a * sin(theta)^2); + +g: ratsimp(diff(sin(theta) * diff(f, theta), theta)/sin(theta)); +g: subst(z, cos(theta), g); +g: subst(sqrt(1-z^2), sin(theta), g); +ratsimp(g); + +f: ratsimp(subst(sqrt(1-z^2), sin(theta), f)); diff --git a/buch/papers/kugel/images/spherecurve.pov b/buch/papers/kugel/images/spherecurve.pov new file mode 100644 index 0000000..b1bf4b8 --- /dev/null +++ b/buch/papers/kugel/images/spherecurve.pov @@ -0,0 +1,73 @@ +// +// curvature.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// + +#version 3.7; +#include "colors.inc" + +global_settings { + assumed_gamma 1 +} + +#declare imagescale = 0.13; + +camera { + location <10, 10, -40> + look_at <0, 0, 0> + right x * imagescale + up y * imagescale +} + +light_source { + <-10, 10, -40> color White + area_light <1,0,0> <0,0,1>, 10, 10 + adaptive 1 + jitter +} + +sky_sphere { + pigment { + color rgb<1,1,1> + } +} + +// +// draw an arrow from <from> to <to> with thickness <arrowthickness> with +// color <c> +// +#macro arrow(from, to, arrowthickness, c) +#declare arrowdirection = vnormalize(to - from); +#declare arrowlength = vlength(to - from); +union { + sphere { + from, 1.1 * arrowthickness + } + cylinder { + from, + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + arrowthickness + } + cone { + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + 2 * arrowthickness, + to, + 0 + } + pigment { + color c + } + finish { + specular 0.9 + metallic + } +} +#end + +arrow(<-2.7,0,0>, <2.7,0,0>, 0.03, White) +arrow(<0,-2.7,0>, <0,2.7,0>, 0.03, White) +arrow(<0,0,-2.7>, <0,0,2.7>, 0.03, White) + +#include "spherecurve.inc" + diff --git a/buch/papers/nav/Makefile.inc b/buch/papers/nav/Makefile.inc index b30377e..5e86543 100644 --- a/buch/papers/nav/Makefile.inc +++ b/buch/papers/nav/Makefile.inc @@ -6,9 +6,10 @@ dependencies-nav = \ papers/nav/packages.tex \ papers/nav/main.tex \ - papers/nav/references.bib \ - papers/nav/teil0.tex \ - papers/nav/teil1.tex \ - papers/nav/teil2.tex \ - papers/nav/teil3.tex + papers/nav/einleitung.tex \ + papers/nav/flatearth.tex \ + papers/nav/nautischesdreieck.tex \ + papers/nav/sincos.tex \ + papers/nav/trigo.tex \ + papers/nav/references.bib diff --git a/buch/papers/nav/beispiel.txt b/buch/papers/nav/beispiel.txt new file mode 100644 index 0000000..b8716fc --- /dev/null +++ b/buch/papers/nav/beispiel.txt @@ -0,0 +1,24 @@ +Datum: 28. 5. 2022 +Zeit: 15:29:49 UTC +Sternzeit: 7h 54m 26.593s 7.90738694h + +Deneb + +RA 20h 42m 12.14s 20.703372h +DEC 45 21' 40.3" 45.361194 + +H 50g 15' 17.1" 50.254750 +Azi 59g 36' 02.0" 59.600555 + +Spica + +RA 13h 26m 23.44s 13.439844h +DEC -11g 16' 46.8" 11.279666 + +H 18g 27' 30.0" 18.458333 +Azi 240g 23' 52.5" 240.397916 + +Position: + +l = 140 14' 00.01" E 140.233336 E +b = 35 43' 00.02" N 35.716672 N diff --git a/buch/papers/nav/bilder/beispiele1.pdf b/buch/papers/nav/bilder/beispiele1.pdf Binary files differnew file mode 100644 index 0000000..1f91809 --- /dev/null +++ b/buch/papers/nav/bilder/beispiele1.pdf diff --git a/buch/papers/nav/bilder/beispiele2.pdf b/buch/papers/nav/bilder/beispiele2.pdf Binary files differnew file mode 100644 index 0000000..4b28f2f --- /dev/null +++ b/buch/papers/nav/bilder/beispiele2.pdf diff --git a/buch/papers/nav/bilder/dreieck.pdf b/buch/papers/nav/bilder/dreieck.pdf Binary files differnew file mode 100644 index 0000000..9d630aa --- /dev/null +++ b/buch/papers/nav/bilder/dreieck.pdf diff --git a/buch/papers/nav/bilder/dreieck.png b/buch/papers/nav/bilder/dreieck.png Binary files differnew file mode 100644 index 0000000..2b02105 --- /dev/null +++ b/buch/papers/nav/bilder/dreieck.png diff --git a/buch/papers/nav/bilder/ephe.png b/buch/papers/nav/bilder/ephe.png Binary files differnew file mode 100644 index 0000000..3f99a36 --- /dev/null +++ b/buch/papers/nav/bilder/ephe.png diff --git a/buch/papers/nav/bilder/kugel1.png b/buch/papers/nav/bilder/kugel1.png Binary files differnew file mode 100644 index 0000000..b3188b7 --- /dev/null +++ b/buch/papers/nav/bilder/kugel1.png diff --git a/buch/papers/nav/bilder/kugel2.png b/buch/papers/nav/bilder/kugel2.png Binary files differnew file mode 100644 index 0000000..057740f --- /dev/null +++ b/buch/papers/nav/bilder/kugel2.png diff --git a/buch/papers/nav/bilder/kugel3.png b/buch/papers/nav/bilder/kugel3.png Binary files differnew file mode 100644 index 0000000..97066a2 --- /dev/null +++ b/buch/papers/nav/bilder/kugel3.png diff --git a/buch/papers/nav/bilder/position1.pdf b/buch/papers/nav/bilder/position1.pdf Binary files differnew file mode 100644 index 0000000..ba7755f --- /dev/null +++ b/buch/papers/nav/bilder/position1.pdf diff --git a/buch/papers/nav/bilder/position2.pdf b/buch/papers/nav/bilder/position2.pdf Binary files differnew file mode 100644 index 0000000..3333dd4 --- /dev/null +++ b/buch/papers/nav/bilder/position2.pdf diff --git a/buch/papers/nav/bilder/position3.pdf b/buch/papers/nav/bilder/position3.pdf Binary files differnew file mode 100644 index 0000000..fae0b85 --- /dev/null +++ b/buch/papers/nav/bilder/position3.pdf diff --git a/buch/papers/nav/bilder/position4.pdf b/buch/papers/nav/bilder/position4.pdf Binary files differnew file mode 100644 index 0000000..ac80c46 --- /dev/null +++ b/buch/papers/nav/bilder/position4.pdf diff --git a/buch/papers/nav/bilder/position5.pdf b/buch/papers/nav/bilder/position5.pdf Binary files differnew file mode 100644 index 0000000..afe120e --- /dev/null +++ b/buch/papers/nav/bilder/position5.pdf diff --git a/buch/papers/nav/bilder/projektion.png b/buch/papers/nav/bilder/projektion.png Binary files differnew file mode 100644 index 0000000..5dcc0c8 --- /dev/null +++ b/buch/papers/nav/bilder/projektion.png diff --git a/buch/papers/nav/bilder/recht.jpg b/buch/papers/nav/bilder/recht.jpg Binary files differnew file mode 100644 index 0000000..3f60370 --- /dev/null +++ b/buch/papers/nav/bilder/recht.jpg diff --git a/buch/papers/nav/bilder/sextant.jpg b/buch/papers/nav/bilder/sextant.jpg Binary files differnew file mode 100644 index 0000000..472e61f --- /dev/null +++ b/buch/papers/nav/bilder/sextant.jpg diff --git a/buch/papers/nav/bsp.tex b/buch/papers/nav/bsp.tex new file mode 100644 index 0000000..ff01828 --- /dev/null +++ b/buch/papers/nav/bsp.tex @@ -0,0 +1,182 @@ +\section{Beispielrechnung} +\rhead{Beispielrechnung} + +\subsection{Einführung} +In diesem Abschnitt wird die Theorie vom Abschnitt 21.6 in einem Praxisbeispiel angewendet. +Wir haben die Deklination, Rektaszension, Höhe der beiden Planeten Deneb und Arktur und die Sternzeit von Greenwich als Ausgangslage. +Die Deklinationen und Rektaszensionen sind von einem vergangenen Datum und die Höhe der Gestirne und die Sternzeit wurden von unserem Dozenten digital in einer Stadt in Japan mit den Koordinaten 35.716672 N, 140.233336 E bestimmt. +Wir werden rechnerisch beweisen, dass wir mit diesen Ergebnissen genau auf diese Koordinaten kommen. +\subsection{Vorgehen} + +\begin{center} + \begin{tabular}{l l l} + 1. & Koordinaten der Bildpunkte der Gestirne bestimmen \\ + 2. & Dreiecke aufzeichnen und richtig beschriften\\ + 3. & Dreieck ABC bestimmmen\\ + 4. & Dreieck BPC bestimmen \\ + 5. & Dreieck ABP bestimmen \\ + 6. & Geographische Breite bestimmen \\ + 7. & Geographische Länge bestimmen \\ + \end{tabular} +\end{center} + +\subsection{Ausgangslage} +\begin{wrapfigure}{R}{5.6cm} + \includegraphics{papers/nav/bilder/position1.pdf} + \caption{Ausgangslage} +\end{wrapfigure} +Die Rektaszension und die Sternzeit sind in der Regeln in Stunden angegeben. +Für die Umrechnung in Grad kann folgender Zusammenhang verwendet werden: +\[ Stunden \cdot 15 = Grad\]. +Dies wurde hier bereits gemacht. +\begin{center} + \begin{tabular}{l l l} + Sternzeit $s$ & $118.610804^\circ$ \\ + Deneb&\\ + & Rektaszension $RA_{Deneb}$& $310.55058^\circ$ \\ + & Deklination $DEC_{Deneb}$& $45.361194^\circ$ \\ + & Höhe $h_c$ & $50.256027^\circ$ \\ + Arktur &\\ + & Rektaszension $RA_{Arktur}$& $214.17558^\circ$ \\ + & Deklination $DEC_{Arktur}$& $19.063222^\circ$ \\ + & Höhe $h_b$ & $47.427444^\circ$ \\ + \end{tabular} +\end{center} +\subsection{Koordinaten der Bildpunkte} +Als erstes benötigen wir die Koordinaten der Bildpunkte von Arktur und Deneb. +$\delta$ ist die Breite, $\lambda$ die Länge. +\begin{align} +\delta_{Deneb}&=DEC_{Deneb} = \underline{\underline{45.361194^\circ}} \nonumber \\ +\lambda_{Deneb}&=RA_{Deneb} - s = 310.55058^\circ -118.610804^\circ =\underline{\underline{191.939776^\circ}} \nonumber \\ +\delta_{Arktur}&=DEC_{Arktur} = \underline{\underline{19.063222^\circ}} \nonumber \\ +\lambda_{Arktur}&=RA_{Arktur} - s = 214.17558^\circ -118.610804^\circ = \underline{\underline{5.5647759^\circ}} \nonumber +\end{align} + + +\subsection{Dreiecke definieren} +\begin{figure} + \begin{center} + \includegraphics[width=6cm]{papers/nav/bilder/beispiele1.pdf} + \includegraphics[width=6cm]{papers/nav/bilder/beispiele2.pdf} + \caption{Arktur-Deneb; Spica-Altiar} +\end{center} +\end{figure} +Das Festlegen der Dreiecke ist essenziell für die korrekten Berechnungen. +Ein Problem, welches in der Theorie nicht berücksichtigt wurde ist, dass der Punkt $P$ nicht zwingend unterhalb der Seite $a$ sein muss. +Wenn man das nicht berücksichtigt, erhält man falsche oder keine Ergebnisse. +In der Realität weiss man jedoch ungefähr auf welchem Breitengrad man ist, so kann man relativ einfach entscheiden, ob der eigene Standort über $a$ ist oder nicht. +Beim unserem genutzten Paar Arktur-Deneb ist dies kein Problem, da der Punkt unterhalb der Seite $a$ liegt. +Würde man aber das Paar Altair-Spica nehmen, liegt $P$ über $a$ (vgl. Abbildung 21.11) und man müsste trigonometrisch anders vorgehen. + +\subsection{Dreieck $ABC$} +\begin{wrapfigure}{R}{5.6cm} + \includegraphics{papers/nav/bilder/position2.pdf} + \caption{Dreieck ABC} +\end{wrapfigure} +Nun berechnen wir alle Seitenlängen $a$, $b$, $c$ und die Innnenwinkel $\alpha$, $\beta$ und $\gamma$ +Wir können $b$ und $c$ mit den geltenten Zusammenhängen des nautischen Dreiecks wie folgt bestimmen: +\begin{align} + b=90^\circ-DEC_{Deneb} = 90^\circ - 45.361194^\circ = \underline{\underline{44.638806^\circ}}\nonumber \\ + c=90^\circ-DEC_{Arktur} = 90^\circ - 19.063222^\circ = \underline{\underline{70.936778^\circ}} \nonumber +\end{align} +Um $a$ zu bestimmen, benötigen wir zuerst den Winkel \[\alpha= RA_{Deneb} - RA_{Arktur} = 310.55058^\circ -214.17558^\circ = \underline{\underline{96.375^\circ}}.\] +Danach nutzen wir den sphärischen Winkelkosinussatz, um $a$ zu berechnen: +\begin{align} + a &= \cos^{-1}(\cos(b) \cdot \cos(c) + \sin(b) \cdot \sin(c) \cdot \cos(\alpha)) \nonumber \\ + &= \cos^{-1}(\cos(44.638806) \cdot \cos(70.936778) + \sin(44.638806) \cdot \sin(70.936778) \cdot \cos(96.375)) \nonumber \\ + &= \underline{\underline{80.8707801^\circ}} \nonumber +\end{align} +Für $\beta$ und $\gamma$ nutzen wir den sphärischen Seitenkosinussatz: +\begin{align} + \beta &= \cos^{-1} \bigg[\frac{\cos(b)-\cos(a) \cdot \cos(c)}{\sin(a) \cdot \sin(c)}\bigg] \nonumber \\ + &= \cos^{-1} \bigg[\frac{\cos(44.638806)-\cos(80.8707801) \cdot \cos(70.936778)}{\sin(80.8707801) \cdot \sin(70.936778)}\bigg] \nonumber \\ + &= \underline{\underline{45.0115314^\circ}} \nonumber +\end{align} + + \begin{align} + \gamma &= \cos^{-1} \bigg[\frac{\cos(c)-\cos(b) \cdot \cos(a)}{\sin(a) \cdot \sin(b)}\bigg] \nonumber \\ + &= \cos^{-1} \bigg[\frac{\cos(70.936778)-\cos(44.638806) \cdot \cos(80.8707801)}{\sin(80.8707801) \cdot \sin(44.638806)}\bigg] \nonumber \\ + &=\underline{\underline{72.0573328^\circ}} \nonumber +\end{align} +\subsection{Dreieck $BPC$} +\begin{wrapfigure}{R}{5.6cm} + \includegraphics{papers/nav/bilder/position3.pdf} + \caption{Dreieck BPC} +\end{wrapfigure} +Als nächstes berechnen wir die Seiten $h_b$, $h_c$ und die Innenwinkel $\beta_1$ und $\gamma_1$. +\begin{align} + h_b&=90^\circ - h_b \nonumber \\ + &= 90^\circ - 47.42744^\circ \nonumber \\ + &= \underline{\underline{42.572556^\circ}} \nonumber +\end{align} +\begin{align} + h_c &= 90^\circ - h_c \nonumber \\ + &= 90^\circ - 50.256027^\circ \nonumber \\ + &= \underline{\underline{39.743973^\circ}} \nonumber +\end{align} +\begin{align} + \beta_1 &= \cos^{-1} \bigg[\frac{\cos(h_c)-\cos(a) \cdot \cos(h_b)}{\sin(a) \cdot \sin(h_b)}\bigg] \nonumber \\ + &= \cos^{-1} \bigg[\frac{\cos(39.743973)-\cos(80.8707801) \cdot \cos(42.572556)}{\sin(80.8707801) \cdot \sin(42.572556)}\bigg] \nonumber \\ + &=\underline{\underline{12.5211127^\circ}} \nonumber +\end{align} +\begin{align} + \gamma_1 &= \cos^{-1} \bigg[\frac{\cos(h_b)-\cos(a) \cdot \cos(h_c)}{\sin(a) \cdot \sin(h_c)}\bigg] \nonumber \\ + &= \cos^{-1} \bigg[\frac{\cos(42.572556)-\cos(80.8707801) \cdot \cos(39.743973)}{\sin(80.8707801) \cdot \sin(39.743973)}\bigg] \nonumber \\ + &=\underline{\underline{13.2618475^\circ}} \nonumber +\end{align} + +\subsection{Dreieck $ABP$} +\begin{wrapfigure}{R}{5.6cm} + \includegraphics{papers/nav/bilder/position4.pdf} + \caption{Dreieck ABP} +\end{wrapfigure} +Als erster müssen wir den Winkel $\beta_2$ berechnen: +\begin{align} + \beta_2 &= \beta + \beta_1 = 45.011513^\circ + 12.5211127^\circ \nonumber \\ + &=\underline{\underline{44.6687451^\circ}} \nonumber +\end{align} +Danach können wir mithilfe von $\beta_2$, $c$ und $h_b$ die Seite $l$ berechnen: +\begin{align} + l &= \cos^{-1}(\cos(c) \cdot \cos(h_b) + \sin(c) \cdot \sin(h_b) \cdot \cos(\beta_2)) \nonumber \\ + &= \cos^{-1}(\cos(70.936778) \cdot \cos(42.572556) + \sin(70.936778) \cdot \sin(42.572556) \cdot \cos(57.5326442)) \nonumber \\ + &= \underline{\underline{54.2833404^\circ}} \nonumber +\end{align} +Damit wir gleich den Längengrad berechnen können, benötigen wir noch den Winkel $\omega$: +\begin{align} + \omega &= \cos^{-1} \bigg[\frac{\cos(h_b)-\cos(c) \cdot \cos(l)}{\sin(c) \cdot \sin(l)}\bigg] \nonumber \\ + &=\cos^{-1} \bigg[\frac{\cos(42.572556)-\cos(70.936778) \cdot \cos(54.2833404)}{\sin(70.936778) \cdot \sin(54.2833404)}\bigg] \nonumber \\ + &= \underline{\underline{44.6687451^\circ}} \nonumber +\end{align} + +\subsection{Längengrad und Breitengrad bestimmen} + +\begin{align} + \delta &= 90^\circ - l \nonumber \\ + &= 90^\circ - 54.2833404 \nonumber \\ + &= \underline{\underline{35.7166596^\circ}} \nonumber +\end{align} +\begin{align} + \lambda &= \lambda_{Arktur} + \omega \nonumber \\ + &= 95.5647759^\circ + 44.6687451^\circ \nonumber \\ + &= \underline{\underline{140.233521^\circ}} \nonumber +\end{align} +Wie wir sehen, stimmen die berechneten Koordinaten mit den Koordinaten des Punktes, an welchem gemessen wurde überein. + +\subsection{Fazit} +Die theoretische Anleitung im Abschnitt 21.6 scheint grundsätzlich zu funktionieren. +Allerdings gab es zwei interessante Probleme. + +Einerseits das Problem, ob der Punkt P sich oberhalb oder unterhalb von $a$ befindet. +Da wir eigentlich wussten, wo der gesuchte Punkt P ist, konnten wir das Dreieck anhand der Koordinaten der Bildpunkte richtig aufstellen. +In der Praxis muss man aber schon wissen, auf welchem Breitengrad man ungefähr ist. +Dies weis man in der Regeln aber, da die eigene Breite die Höhe des Polarsterns ist. +Diese Höhe wird mit dem Sextant gemessen. + +Andererseits ist da noch ein Problem mit dem Sinussatz. +Beim Sinussatz gibt es immer zwei Lösungen, weil \[ \sin(\pi-a)=\sin(a).\] +Da kann es sein (und war in unserem Fall auch so), dass man das falsche Ergebnis erwischt. +Durch diese Erkenntnis haben wir nur Kosinussätze verwendet und dies ebenfalls im Abschnitt 21.6 abgeändert, da es für den Leser auch relevant sein kann, wenn er es Probieren möchte. + + + + diff --git a/buch/papers/nav/bsp2.tex b/buch/papers/nav/bsp2.tex new file mode 100644 index 0000000..8d9083b --- /dev/null +++ b/buch/papers/nav/bsp2.tex @@ -0,0 +1,236 @@ +\section{Beispielrechnung} +\rhead{Beispielrechnung} + +\subsection{Einführung} +In diesem Abschnitt wird die Theorie vom Abschnitt \ref{sta} in einem Praxisbeispiel angewendet. +Wir haben die Deklination, Rektaszension, Höhe der beiden Planeten Deneb und Arktur und die Sternzeit von Greenwich als Ausgangslage. +Die Deklinationen und Rektaszensionen sind von einem vergangenen Datum und die Höhe der Gestirne und die Sternzeit wurden digital in einer Stadt in Japan mit den Koordinaten 35.716672 N, 140.233336 E bestimmt. +Wir werden nachrechnen, dass wir mit unserer Methode genau auf diese Koordinaten kommen. +\subsection{Vorgehen} +Unser Vorgehen erschliesst sich aus unserer Methode, die wir im Abschnitt \ref{p} theoretisch erklärt haben. +\begin{compactenum} +\item +Koordinaten der Bildpunkte der Gestirne bestimmen +\item +Dreiecke aufzeichnen und richtig beschriften +\item +Dreieck ABC bestimmmen +\item +Dreieck BPC bestimmen +\item +Dreieck ABP bestimmen +\item +Geographische Breite bestimmen +\item +Geographische Länge bestimmen +\end{compactenum} + +\subsection{Ausgangslage} +\hbox to\textwidth{% +\begin{minipage}{8.4cm} +Die Rektaszension und die Sternzeit sind in der Regel in Stunden angegeben. +Für die Umrechnung in Grad kann folgender Zusammenhang verwendet werden: +\[ +\text{Stunden} \cdot 15 = \text{Grad}. +\] +Dies wurde hier bereits gemacht. +\begin{center} +\begin{tabular}{l l >{$}l<{$}} +Sternzeit $s$ & $118.610804^\circ$ \\ +Deneb &\\ + & Rektaszension $RA_{\text{Deneb}}$ & 310.55058^\circ\\ + & Deklination $DEC_{\text{Deneb}}$ & \phantom{0}45.361194^\circ \\ + & Höhe $h_c$ & \phantom{0}50.256027^\circ \\ +Arktur &\\ + & Rektaszension $RA_{\text{Arktur}}$& 214.17558^\circ \\ + & Deklination $DEC_{\text{Arktur}}$ & \phantom{0}19.063222^\circ \\ + & Höhe $h_b$ & \phantom{0}47.427444^\circ \\ +\end{tabular} +\end{center} +\end{minipage}% +\hfill% +\raisebox{-2cm}{\includegraphics{papers/nav/bilder/position1.pdf}}% +} +\medskip + +\subsection{Koordinaten der Bildpunkte} +Als erstes benötigen wir die Koordinaten der Bildpunkte von Arktur und Deneb. +$\delta$ ist die Breite, $\lambda$ die Länge. +\begin{align} +\delta_{\text{Deneb}}&=DEC_{\text{Deneb}} = \underline{\underline{45.361194^\circ}} \nonumber \\ +\lambda_{\text{Deneb}}&=RA_{\text{Deneb}} - s = 310.55058^\circ -118.610804^\circ =\underline{\underline{191.939776^\circ}} \nonumber \\ +\delta_{\text{Arktur}}&=DEC_{\text{Arktur}} = \underline{\underline{19.063222^\circ}} \nonumber \\ +\lambda_{\text{Arktur}}&=RA_{\text{Arktur}} - s = 214.17558^\circ -118.610804^\circ = \underline{\underline{5.5647759^\circ}} \nonumber +\end{align} + + +\subsection{Dreiecke definieren} +\begin{figure} +\hbox{% +\includegraphics{papers/nav/bilder/beispiele1.pdf}% +\hfill% +\includegraphics{papers/nav/bilder/beispiele2.pdf}} +\caption{Arktur-Deneb; Spica-Altiar +\label{nav:beispiele}} +\end{figure} +Das Festlegen der Dreiecke ist essenziell für die korrekten Berechnungen. +Ein Problem, welches in der Theorie nicht berücksichtigt wurde ist, dass der Punkt $P$ nicht zwingend unterhalb der Seite $a$ sein muss. +Wenn man das nicht berücksichtigt, erhält man falsche oder keine Ergebnisse. +In der Realität weiss man jedoch ungefähr auf welchem Breitengrad man ist, so kann man relativ einfach entscheiden, ob der eigene Standort über $a$ ist oder nicht. +Beim unserem genutzten Paar Arktur-Deneb ist dies kein Problem, da der Punkt unterhalb der Seite $a$ liegt. +Würde man aber das Paar Altair-Spica nehmen, liegt $P$ über $a$ +(vgl. Abbildung\ref{nav:beispiele}) und man müsste trigonometrisch +anders vorgehen. + +\subsection{Dreieck $ABC$} +\vspace*{-3mm} +\hbox to\textwidth{% +\begin{minipage}{8.4cm}% +Nun berechnen wir alle Seitenlängen $a$, $b$, $c$ und die +Innnenwinkel $\alpha$, $\beta$ und $\gamma$. +Wir können $b$ und $c$ mit den geltenten Zusammenhängen des nautischen Dreiecks wie folgt bestimmen: +\begin{align*} +b +&= +90^\circ-DEC_{\text{Deneb}} += +90^\circ - 45.361194^\circ +\\ +&= +\underline{\underline{44.638806^\circ}} +\\ +c +&= +90^\circ-DEC_{\text{Arktur}} += +90^\circ - 19.063222^\circ +\\ +&= +\underline{\underline{70.936778^\circ}} +\end{align*} +\end{minipage}% +\hfill% +\raisebox{-2.4cm}{\includegraphics{papers/nav/bilder/position2.pdf}}% +} +Um $a$ zu bestimmen, benötigen wir zuerst den Winkel +\begin{align*} +\alpha +&= +RA_{\text{Deneb}} - RA_{\text{Arktur}} += +310.55058^\circ -214.17558^\circ +\\ +&= +\underline{\underline{96.375^\circ}}. +\end{align*} +Danach nutzen wir den sphärischen Winkelkosinussatz, um $a$ zu berechnen: +\begin{align*} + a &= \cos^{-1}(\cos(b) \cdot \cos(c) + \sin(b) \cdot \sin(c) \cdot \cos(\alpha)) \\ + &= \cos^{-1}(\cos(44.638806^\circ) \cdot \cos(70.936778^\circ) + \sin(44.638806^\circ) \cdot \sin(70.936778^\circ) \cdot \cos(96.375^\circ)) \\ + &= \underline{\underline{80.8707801^\circ}} +\end{align*} +Für $\beta$ und $\gamma$ nutzen wir den sphärischen Seitenkosinussatz: +\begin{align*} + \beta &= \cos^{-1} \bigg[\frac{\cos(b)-\cos(a) \cdot \cos(c)}{\sin(a) \cdot \sin(c)}\bigg] \\ + &= \cos^{-1} \bigg[\frac{\cos(44.638806^\circ)-\cos(80.8707801^\circ) \cdot \cos(70.936778^\circ)}{\sin(80.8707801^\circ) \cdot \sin(70.936778^\circ)}\bigg] \\ + &= \underline{\underline{45.0115314^\circ}} +\\ +\gamma &= \cos^{-1} \bigg[\frac{\cos(c)-\cos(b) \cdot \cos(a)}{\sin(a) \cdot \sin(b)}\bigg] \\ + &= \cos^{-1} \bigg[\frac{\cos(70.936778^\circ)-\cos(44.638806^\circ) \cdot \cos(80.8707801^\circ)}{\sin(80.8707801^\circ) \cdot \sin(44.638806^\circ)}\bigg] \\ + &=\underline{\underline{72.0573328^\circ}} +\end{align*} + + + +\subsection{Dreieck $BPC$} +\vspace*{-4mm} +\hbox to\textwidth{% +\begin{minipage}{8.4cm}% +Als nächstes berechnen wir die Seiten $h_B$, $h_B$ und die Innenwinkel $\beta_1$ und $\gamma_1$. +\begin{align*} +h_B&=90^\circ - pbb + = 90^\circ - 47.42744^\circ \\ + &= \underline{\underline{42.572556^\circ}} +\\ + h_C &= 90^\circ - pc + = 90^\circ - 50.256027^\circ \\ + &= \underline{\underline{39.743973^\circ}} +\end{align*} +\end{minipage}% +\hfill% +\raisebox{-2.8cm}{\includegraphics{papers/nav/bilder/position3.pdf}}% +} +\begin{align*} +\beta_1 &= \cos^{-1} \bigg[\frac{\cos(h_c)-\cos(a) \cdot \cos(h_B)}{\sin(a) \cdot \sin(h_B)}\bigg] \\ + &= \cos^{-1} \bigg[\frac{\cos(39.743973^\circ)-\cos(80.8707801^\circ) \cdot \cos(42.572556^\circ)}{\sin(80.8707801^\circ) \cdot \sin(42.572556^\circ)}\bigg] \\ + &=\underline{\underline{12.5211127^\circ}} +\\ +\gamma_1 &= \cos^{-1} \bigg[\frac{\cos(h_b)-\cos(a) \cdot \cos(h_C)}{\sin(a) \cdot \sin(h_C)}\bigg] \\ + &= \cos^{-1} \bigg[\frac{\cos(42.572556^\circ)-\cos(80.8707801^\circ) \cdot \cos(39.743973^\circ)}{\sin(80.8707801^\circ) \cdot \sin(39.743973^\circ)}\bigg] \\ + &=\underline{\underline{13.2618475^\circ}} +\end{align*} + +\subsection{Dreieck $ABP$} +\vspace*{-2mm} +\hbox to\textwidth{% +\begin{minipage}{8.4cm}% +Als erstes müssen wir den Winkel $\beta_2$ berechnen: +\begin{align*} + \beta_2 &= \beta + \beta_1 = 45.011513^\circ + 12.5211127^\circ \\ + &=\underline{\underline{44.6687451^\circ}} +\end{align*} +Danach können wir mithilfe von $\beta_2$, $c$ und $h_B$ die Seite $l$ berechnen: +\begin{align*} +l +&= +\cos^{-1}(\cos(c) \cdot \cos(h_B) + + \sin(c) \cdot \sin(h_B) \cdot \cos(\beta_2)) \\ +&= +\cos^{-1}(\cos(70.936778^\circ) \cdot \cos(42.572556^\circ)\\ +&\qquad + \sin(70.936778^\circ) \cdot \sin(42.572556^\circ) \cdot \cos(57.5326442^\circ)) \\ +&= \underline{\underline{54.2833404^\circ}} +\end{align*} +\end{minipage}% +\hfill% +\raisebox{-2.0cm}{\includegraphics{papers/nav/bilder/position4.pdf}}% +} + +\medskip + +Damit wir gleich den Längengrad berechnen können, benötigen wir noch den Winkel $\omega$: +\begin{align*} + \omega &= \cos^{-1} \bigg[\frac{\cos(h_B)-\cos(c) \cdot \cos(l)}{\sin(c) \cdot \sin(l)}\bigg] \\ + &=\cos^{-1} \bigg[\frac{\cos(42.572556^\circ)-\cos(70.936778^\circ) \cdot \cos(54.2833404^\circ)}{\sin(70.936778^\circ) \cdot \sin(54.2833404^\circ)}\bigg] \\ + &= \underline{\underline{44.6687451^\circ}} +\end{align*} + +\subsection{Längengrad und Breitengrad bestimmen} + +\begin{align*} +\delta &= 90^\circ - l & + \lambda &= \lambda_{\text{Arktur}} + \omega \\ +&= 90^\circ - 54.2833404 & + &= 95.5647759^\circ + 44.6687451^\circ \\ +&= \underline{\underline{35.7166596^\circ}} & + &= \underline{\underline{140.233521^\circ}} +\end{align*} +Wie wir sehen, stimmen die berechneten Koordinaten mit den Koordinaten des Punktes, an welchem gemessen wurde überein. + +\subsection{Fazit} +Die theoretische Anleitung im Abschnitt \ref{sta} scheint grundsätzlich zu funktionieren. +Allerdings gab es zwei interessante Probleme. + +Einerseits das Problem, ob der Punkt $P$ sich oberhalb oder unterhalb von $a$ befindet. +Da wir eigentlich wussten, wo der gesuchte Punkt $P$ ist, konnten wir das Dreieck anhand der Koordinaten der Bildpunkte richtig aufstellen. +In der Praxis muss man aber schon wissen, auf welchem Breitengrad man ungefähr ist. +Dies weis man in der Regeln aber, da die eigene Breite die Höhe des Polarsterns ist. +Diese Höhe wird mit dem Sextant gemessen. + +Andererseits ist da noch ein Problem mit dem Sinussatz. +Beim Sinussatz gibt es immer zwei Lösungen, weil \[ \sin(\pi-a)=\sin(a).\] +Da kann es sein (und war in unserem Fall auch so), dass man das falsche Ergebnis erwischt. +Wegen dieser Erkenntnis haben wir nur Kosinussätze verwendet und dies ebenfalls im Abschnitt \ref{sta} abgeändert, da es für den Leser auch relevant sein kann, wenn er es Probieren möchte. + + + + diff --git a/buch/papers/nav/einleitung.tex b/buch/papers/nav/einleitung.tex new file mode 100644 index 0000000..c778d5c --- /dev/null +++ b/buch/papers/nav/einleitung.tex @@ -0,0 +1,10 @@ + + +\section{Einleitung} +\rhead{Einleitung} +Heutzutage ist die Navigation ein Teil des Lebens. +Man sendet dem Kollegen seinen eigenen Standort, um sich das ewige Erklären zu sparen oder gibt die Adresse des Ziels ein, damit man seinen Aufenthaltsort zum Beispiel auf einer riesigen Wiese am See findet. +Dies wird durch Technologien wie Funknavigation, welches ein auf Laufzeitmessung beruhendes Hyperbelverfahren mit Langwellen ist, oder die verbreitete Satellitennavigation, welche vier Satelliten für eine Messung zur Standortbestimmung nutzt. +Vor all diesen technologischen Fortschritten gab es lediglich die Astronavigation, welche heute noch auf Schiffen verwendet wird im Falle eines Stromausfalls. +Aber wie funktioniert die Navigation mit den Sternen? Welche Hilfsmittel benötigt man, welche Rolle spielt die Mathematik und weshalb kann die Erde nicht flach sein? +In diesem Kapitel werden genau diese Fragen mithilfe des nautischen Dreiecks, der sphärischen Trigonometrie und einigen Hilfsmitteln und Messgeräten beantwortet.
\ No newline at end of file diff --git a/buch/papers/nav/flatearth.tex b/buch/papers/nav/flatearth.tex new file mode 100644 index 0000000..9745cdc --- /dev/null +++ b/buch/papers/nav/flatearth.tex @@ -0,0 +1,28 @@ + + +\section{Warum ist die Erde nicht flach?} +\rhead{Warum ist die Erde nicht flach?} +\begin{figure} + \begin{center} + \includegraphics[width=10cm]{papers/nav/bilder/projektion.png} + \caption[Mercator Projektion]{Mercator Projektion} + \label{merc} + \end{center} +\end{figure} + +Es gibt heutzutage viele Beweise dafür, dass die Erde eine Kugel ist. +Die Fotos von unserem Planeten oder die Berichte der Astronauten. +Aber schon vor ca. 2300 Jahren hat Aristoteles bemerkt, dass Schiffe im Horizont verschwinden und die einzige Erklärung dafür die Kugelgestalt der Erde ist. +Auch der Erdschatten bei einer Mondfinsternis ist immer rund. +Eratosthenes konnte etwa 100 Jahre später den Erdumfang berechnen. +Er beobachtete, dass die Sonne in Syene mittags im Zenit steht und gleichzeitig in Alexandria unter einem Winkel einfällt. +Mithilfe der Trigonometrie konnte er mit dem Abstand der Städte und dem Einfallswinkel den Umfang berechnen. + +Der Kartograph Gerhard Mercator projizierte die Erdkugel wie in Abbildung \ref{merc} dargestellt auf ein Papier und erstellte so eine winkeltreue Karte. +Jedoch wurden die Länder, die einen grösseren Abstand zum Äquator haben vergrössert, damit die Winkel stimmen können. +Wurde man also nun davon ausgehen, dass die Erde flach ist so würden wir nie dort ankommen wo wir es wollen. +Dies sieht man zum Beispiel sehr gut, wenn man die Anwendung Google Earth und eine Weltkarte vergleicht. +Grönland ist auf der Weltkarte so gross wie Afrika. +In der Anwendung Google Earth jedoch ist Grönland etwa so gross wie Algerien. +Das liegt daran, das man die 3D – Weltkarte nicht einfach auslegen kann. + diff --git a/buch/papers/nav/images/2k_earth_daymap.png b/buch/papers/nav/images/2k_earth_daymap.png Binary files differnew file mode 100644 index 0000000..4d55da8 --- /dev/null +++ b/buch/papers/nav/images/2k_earth_daymap.png diff --git a/buch/papers/nav/images/Makefile b/buch/papers/nav/images/Makefile index c9dcacc..39bfbcf 100644 --- a/buch/papers/nav/images/Makefile +++ b/buch/papers/nav/images/Makefile @@ -50,59 +50,81 @@ DREIECKE3D = \ dreieck3d4.pdf \ dreieck3d5.pdf \ dreieck3d6.pdf \ - dreieck3d7.pdf + dreieck3d7.pdf \ + dreieck3d8.pdf dreiecke3d: $(DREIECKE3D) POVRAYOPTIONS = -W1080 -H1080 #POVRAYOPTIONS = -W480 -H480 -dreieck3d1.png: dreieck3d1.pov common.inc +dreieck3d1.png: dreieck3d1.pov common.inc macros.inc povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d1.png dreieck3d1.pov dreieck3d1.jpg: dreieck3d1.png convert dreieck3d1.png -density 300 -units PixelsPerInch dreieck3d1.jpg dreieck3d1.pdf: dreieck3d1.tex dreieck3d1.jpg pdflatex dreieck3d1.tex -dreieck3d2.png: dreieck3d2.pov common.inc +dreieck3d2.png: dreieck3d2.pov common.inc macros.inc povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d2.png dreieck3d2.pov dreieck3d2.jpg: dreieck3d2.png convert dreieck3d2.png -density 300 -units PixelsPerInch dreieck3d2.jpg dreieck3d2.pdf: dreieck3d2.tex dreieck3d2.jpg pdflatex dreieck3d2.tex -dreieck3d3.png: dreieck3d3.pov common.inc +dreieck3d3.png: dreieck3d3.pov common.inc macros.inc povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d3.png dreieck3d3.pov dreieck3d3.jpg: dreieck3d3.png convert dreieck3d3.png -density 300 -units PixelsPerInch dreieck3d3.jpg dreieck3d3.pdf: dreieck3d3.tex dreieck3d3.jpg pdflatex dreieck3d3.tex -dreieck3d4.png: dreieck3d4.pov common.inc +dreieck3d4.png: dreieck3d4.pov common.inc macros.inc povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d4.png dreieck3d4.pov dreieck3d4.jpg: dreieck3d4.png convert dreieck3d4.png -density 300 -units PixelsPerInch dreieck3d4.jpg dreieck3d4.pdf: dreieck3d4.tex dreieck3d4.jpg pdflatex dreieck3d4.tex -dreieck3d5.png: dreieck3d5.pov common.inc +dreieck3d5.png: dreieck3d5.pov common.inc macros.inc povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d5.png dreieck3d5.pov dreieck3d5.jpg: dreieck3d5.png convert dreieck3d5.png -density 300 -units PixelsPerInch dreieck3d5.jpg dreieck3d5.pdf: dreieck3d5.tex dreieck3d5.jpg pdflatex dreieck3d5.tex -dreieck3d6.png: dreieck3d6.pov common.inc +dreieck3d6.png: dreieck3d6.pov common.inc macros.inc povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d6.png dreieck3d6.pov dreieck3d6.jpg: dreieck3d6.png convert dreieck3d6.png -density 300 -units PixelsPerInch dreieck3d6.jpg dreieck3d6.pdf: dreieck3d6.tex dreieck3d6.jpg pdflatex dreieck3d6.tex -dreieck3d7.png: dreieck3d7.pov common.inc +dreieck3d7.png: dreieck3d7.pov common.inc macros.inc povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d7.png dreieck3d7.pov dreieck3d7.jpg: dreieck3d7.png convert dreieck3d7.png -density 300 -units PixelsPerInch dreieck3d7.jpg dreieck3d7.pdf: dreieck3d7.tex dreieck3d7.jpg pdflatex dreieck3d7.tex +dreieck3d8.png: dreieck3d8.pov common.inc macros.inc + povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d8.png dreieck3d8.pov +dreieck3d8.jpg: dreieck3d8.png + convert dreieck3d8.png -density 300 -units PixelsPerInch dreieck3d8.jpg +dreieck3d8.pdf: dreieck3d8.tex dreieck3d8.jpg + pdflatex dreieck3d8.tex + +dreieck3d9.png: dreieck3d9.pov common.inc macros.inc + povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d9.png dreieck3d9.pov +dreieck3d9.jpg: dreieck3d9.png + convert dreieck3d9.png -density 300 -units PixelsPerInch dreieck3d9.jpg +dreieck3d9.pdf: dreieck3d9.tex dreieck3d9.jpg + pdflatex dreieck3d9.tex + +dreieck3d10.png: dreieck3d10.pov common.inc macros.inc + povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d10.png dreieck3d10.pov +dreieck3d10.jpg: dreieck3d10.png + convert dreieck3d10.png -density 300 -units PixelsPerInch dreieck3d10.jpg +dreieck3d10.pdf: dreieck3d10.tex dreieck3d10.jpg macros.inc + pdflatex dreieck3d10.tex + diff --git a/buch/papers/nav/images/beispiele/2k_earth_daymap.png b/buch/papers/nav/images/beispiele/2k_earth_daymap.png Binary files differnew file mode 100644 index 0000000..4d55da8 --- /dev/null +++ b/buch/papers/nav/images/beispiele/2k_earth_daymap.png diff --git a/buch/papers/nav/images/beispiele/Makefile b/buch/papers/nav/images/beispiele/Makefile new file mode 100644 index 0000000..9546c8e --- /dev/null +++ b/buch/papers/nav/images/beispiele/Makefile @@ -0,0 +1,38 @@ +# +# Makefile to build images +# +# (c) 2022 +# +all: beispiele + +POSITION = \ + beispiele1.pdf \ + beispiele2.pdf \ + beispiele3.pdf + +beispiele: $(POSITION) + +POVRAYOPTIONS = -W1080 -H1080 +#POVRAYOPTIONS = -W480 -H480 + +beispiele1.png: beispiele1.pov common.inc geometrie.inc ../macros.inc + povray +A0.1 $(POVRAYOPTIONS) -Obeispiele1.png beispiele1.pov +beispiele1.jpg: beispiele1.png + convert beispiele1.png -density 300 -units PixelsPerInch beispiele1.jpg +beispiele1.pdf: beispiele1.tex common.tex beispiele1.jpg + pdflatex beispiele1.tex + +beispiele2.png: beispiele2.pov common.inc geometrie.inc ../macros.inc + povray +A0.1 $(POVRAYOPTIONS) -Obeispiele2.png beispiele2.pov +beispiele2.jpg: beispiele2.png + convert beispiele2.png -density 300 -units PixelsPerInch beispiele2.jpg +beispiele2.pdf: beispiele2.tex common.tex beispiele2.jpg + pdflatex beispiele2.tex + +beispiele3.png: beispiele3.pov common.inc geometrie.inc ../macros.inc + povray +A0.1 $(POVRAYOPTIONS) -Obeispiele3.png beispiele3.pov +beispiele3.jpg: beispiele3.png + convert beispiele3.png -density 300 -units PixelsPerInch beispiele3.jpg +beispiele3.pdf: beispiele3.tex common.tex beispiele3.jpg + pdflatex beispiele3.tex + diff --git a/buch/papers/nav/images/beispiele/beispiele1.pdf b/buch/papers/nav/images/beispiele/beispiele1.pdf Binary files differnew file mode 100644 index 0000000..1f91809 --- /dev/null +++ b/buch/papers/nav/images/beispiele/beispiele1.pdf diff --git a/buch/papers/nav/images/beispiele/beispiele1.pov b/buch/papers/nav/images/beispiele/beispiele1.pov new file mode 100644 index 0000000..7fb3de2 --- /dev/null +++ b/buch/papers/nav/images/beispiele/beispiele1.pov @@ -0,0 +1,12 @@ +// +// beispiele1.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#include "common.inc" + +#declare Stern1 = Deneb; +#declare Stern2 = Arktur; + +#include "geometrie.inc" + diff --git a/buch/papers/nav/images/beispiele/beispiele1.tex b/buch/papers/nav/images/beispiele/beispiele1.tex new file mode 100644 index 0000000..0dfae2f --- /dev/null +++ b/buch/papers/nav/images/beispiele/beispiele1.tex @@ -0,0 +1,49 @@ +% +% beispiele1.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} + +\input{common.tex} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick,scale=0.8125] + +% Povray Bild +\node at (0,0) {\includegraphics[width=6.5cm]{beispiele1.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]; +}{} + +\labelA +\labelP +\labelDeneb +\labelArktur +\labelhDeneb +\labelhArktur +\labellone +\labeldDeneb +\labeldArktur + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/beispiele/beispiele2.pdf b/buch/papers/nav/images/beispiele/beispiele2.pdf Binary files differnew file mode 100644 index 0000000..4b28f2f --- /dev/null +++ b/buch/papers/nav/images/beispiele/beispiele2.pdf diff --git a/buch/papers/nav/images/beispiele/beispiele2.pov b/buch/papers/nav/images/beispiele/beispiele2.pov new file mode 100644 index 0000000..b69f0f9 --- /dev/null +++ b/buch/papers/nav/images/beispiele/beispiele2.pov @@ -0,0 +1,12 @@ +// +// beispiele1.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#include "common.inc" + +#declare Stern1 = Altair; +#declare Stern2 = Spica; + +#include "geometrie.inc" + diff --git a/buch/papers/nav/images/beispiele/beispiele2.tex b/buch/papers/nav/images/beispiele/beispiele2.tex new file mode 100644 index 0000000..04c1e4d --- /dev/null +++ b/buch/papers/nav/images/beispiele/beispiele2.tex @@ -0,0 +1,50 @@ +% +% beispiele2.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} + +\input{common.tex} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick,scale=0.8125] + +% Povray Bild +\node at (0,0) {\includegraphics[width=6.5cm]{beispiele2.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]; +}{} + +\labelA +\labelP +\labelAltair +\labelSpica +\labelhAltair +\labelhSpica +\labelltwo +\labeldAltair +\labeldSpica + + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/beispiele/beispiele3.pdf b/buch/papers/nav/images/beispiele/beispiele3.pdf Binary files differnew file mode 100644 index 0000000..049ccdf --- /dev/null +++ b/buch/papers/nav/images/beispiele/beispiele3.pdf diff --git a/buch/papers/nav/images/beispiele/beispiele3.pov b/buch/papers/nav/images/beispiele/beispiele3.pov new file mode 100644 index 0000000..af9a468 --- /dev/null +++ b/buch/papers/nav/images/beispiele/beispiele3.pov @@ -0,0 +1,12 @@ +// +// beispiele1.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#include "common.inc" + +#declare Stern1 = Deneb; +#declare Stern2 = Altair; + +#include "geometrie.inc" + diff --git a/buch/papers/nav/images/beispiele/beispiele3.tex b/buch/papers/nav/images/beispiele/beispiele3.tex new file mode 100644 index 0000000..2573199 --- /dev/null +++ b/buch/papers/nav/images/beispiele/beispiele3.tex @@ -0,0 +1,49 @@ +% +% beispiele3.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} + +\input{common.tex} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=8cm]{beispiele3.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]; +}{} + +\labelA +\labelP +\labelDeneb +\labelAltair +\labelhDeneb +\labelhAltair +\labellone +%\labeldDeneb +%\labeldAltair + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/beispiele/common.inc b/buch/papers/nav/images/beispiele/common.inc new file mode 100644 index 0000000..51fbd1f --- /dev/null +++ b/buch/papers/nav/images/beispiele/common.inc @@ -0,0 +1,50 @@ +// +// common.inc -- 3d Darstellung +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#version 3.7; +#include "colors.inc" +#include "../macros.inc" + +global_settings { + assumed_gamma 1 +} + +#declare imagescale = 0.034; + +camera { + location <40, 20, -20> + look_at <0, 0.24, -0.20> + right x * imagescale + up y * imagescale +} + +light_source { + <30, 10, -40> color White + area_light <1,0,0> <0,0,1>, 10, 10 + adaptive 1 + jitter +} + +sky_sphere { + pigment { + color rgb<1,1,1> + } +} + +erde(0) +achse(fein, White) +koordinatennetz(gitterfarbe, 9, 0.001) + +union { + punkt(Sakura, fett) + pigment { + color rot + } + finish { + metallic + specular 0.9 + } +} + diff --git a/buch/papers/nav/images/beispiele/common.tex b/buch/papers/nav/images/beispiele/common.tex new file mode 100644 index 0000000..81dc037 --- /dev/null +++ b/buch/papers/nav/images/beispiele/common.tex @@ -0,0 +1,79 @@ +% +% common.tex +% +% (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% + +\def\labelA{\node at (0.7,3.8) {$A$};} + +\def\labelSpica{ + \node at (-3.6,-2.8) {Spica}; +} +\def\labelAltair{ + \node at (3.0,-2.3) {Altair}; +} +\def\labelArktur{ + \node at (-3.3,-0.7) {Arktur}; +} +\def\labelDeneb{ + \node at (3.4,0.9) {Deneb}; +} + +\def\labelP{\node at (0,-0.2) {$P$};} + +\def\labellone{\node at (0.1,1.9) {$l$};} +\def\labelltwo{\node at (0.1,2.0) {$l$};} + +\def\labelhSpica{ + \coordinate (Spica) at (-1.8,-0.3); + \node at (Spica) {$h_{\text{Spica}}\mathstrut$}; +} +\def\labelhAltair{ + \coordinate (Altair) at (1.1,-1.0); + \node at (Altair) {$h_{\text{Altair}}\mathstrut$}; +} +\def\labelhArktur{ + \coordinate (Arktur) at (-1.3,-0.3); + \node at (Arktur) {$h_{\text{Arktur}}\mathstrut$}; +} +\def\labelhDeneb{ + \coordinate (Deneb) at (1.6,0.45); + \node at (Deneb) {$h_{\text{Deneb}}\mathstrut$}; +} + +\def\labeldSpica{ + \coordinate (dSpica) at (-1.5,2.6); + \fill[color=white,opacity=0.5] + ($(dSpica)+(-1.8,0.13)$) + rectangle + ($(dSpica)+(-0.06,0.60)$); + \node at (dSpica) [above left] + {$90^\circ-\delta_{\text{Spica}}\mathstrut$}; +} +\def\labeldAltair{ + \coordinate (dAltair) at (2.0,2.1); + \fill[color=white,opacity=0.5] + ($(dAltair)+(0.10,0.10)$) + rectangle + ($(dAltair)+(2.0,0.60)$); + \node at (dAltair) [above right] + {$90^\circ-\delta_{\text{Altair}}\mathstrut$}; +} +\def\labeldArktur{ + \coordinate (dArktur) at (-1.2,2.5); + \fill[color=white,opacity=0.5] + ($(dArktur)+(-1.8,0.10)$) + rectangle + ($(dArktur)+(-0.06,0.55)$); + \node at (dArktur) [above left] + {$90^\circ-\delta_{\text{Arktur}}\mathstrut$}; +} +\def\labeldDeneb{ + \coordinate (dDeneb) at (2.0,2.8); + \fill[color=white,opacity=0.5] + ($(dDeneb)+(0.05,0.60)$) + rectangle + ($(dDeneb)+(1.87,0.10)$); + \node at (dDeneb) [above right] + {$90^\circ-\delta_{\text{Deneb}}\mathstrut$}; +} diff --git a/buch/papers/nav/images/beispiele/geometrie.inc b/buch/papers/nav/images/beispiele/geometrie.inc new file mode 100644 index 0000000..2f6084e --- /dev/null +++ b/buch/papers/nav/images/beispiele/geometrie.inc @@ -0,0 +1,41 @@ +union { + punkt(A, fett) + punkt(Stern1, fein) + punkt(Stern2, fein) + seite(Stern1, Stern2, fein) + pigment { + color kugelfarbe + } + finish { + metallic + specular 0.9 + } +} + +union { + seite(A, Stern1, fein) + seite(A, Stern2, fein) + seite(Stern1, Sakura, fein) + seite(Stern2, Sakura, fein) + winkel(A, Stern1, Stern2, 0.5*fein, gross) + pigment { + color bekannt + } + finish { + metallic + specular 0.9 + } +} + +union { + seite(A, Sakura, fein) + winkel(A, Sakura, Stern1, 0.5*fett, klein) + pigment { + color unbekannt + } + finish { + metallic + specular 0.9 + } +} + diff --git a/buch/papers/nav/images/common.inc b/buch/papers/nav/images/common.inc index 33d9384..7b861de 100644 --- a/buch/papers/nav/images/common.inc +++ b/buch/papers/nav/images/common.inc @@ -5,6 +5,7 @@ // #version 3.7; #include "colors.inc" +#include "macros.inc" global_settings { assumed_gamma 1 @@ -12,11 +13,6 @@ global_settings { #declare imagescale = 0.034; -#declare A = vnormalize(< 0, 1, 0>); -#declare B = vnormalize(< 1, 2, -8>); -#declare C = vnormalize(< 5, 1, 0>); -#declare P = vnormalize(< 5, -1, -7>); - camera { location <40, 20, -20> look_at <0, 0.24, -0.20> @@ -25,7 +21,7 @@ camera { } light_source { - <10, 10, -40> color White + <30, 10, -40> color White area_light <1,0,0> <0,0,1>, 10, 10 adaptive 1 jitter @@ -37,113 +33,3 @@ sky_sphere { } } -// -// draw an arrow from <from> to <to> with thickness <arrowthickness> with -// color <c> -// -#macro arrow(from, to, arrowthickness, c) -#declare arrowdirection = vnormalize(to - from); -#declare arrowlength = vlength(to - from); -union { - sphere { - from, 1.1 * arrowthickness - } - cylinder { - from, - from + (arrowlength - 5 * arrowthickness) * arrowdirection, - arrowthickness - } - cone { - from + (arrowlength - 5 * arrowthickness) * arrowdirection, - 2 * arrowthickness, - to, - 0 - } - pigment { - color c - } - finish { - specular 0.9 - metallic - } -} -#end - -#macro grosskreis(normale, staerke) -union { - #declare v1 = vcross(normale, <normale.x, normale.z, normale.y>); - #declare v1 = vnormalize(v1); - #declare v2 = vnormalize(vcross(v1, normale)); - #declare phisteps = 100; - #declare phistep = pi / phisteps; - #declare phi = 0; - #declare p1 = v1; - #while (phi < 2 * pi - phistep/2) - sphere { p1, staerke } - #declare phi = phi + phistep; - #declare p2 = v1 * cos(phi) + v2 * sin(phi); - cylinder { p1, p2, staerke } - #declare p1 = p2; - #end -} -#end - -#macro seite(p, q, staerke) - #declare n = vcross(p, q); - intersection { - grosskreis(n, staerke) - plane { -vcross(n, q) * vdot(vcross(n, q), p), 0 } - plane { -vcross(n, p) * vdot(vcross(n, p), q), 0 } - } -#end - -#macro winkel(w, p, q, staerke) - #declare n = vnormalize(w); - #declare pp = vnormalize(p - vdot(n, p) * n); - #declare qq = vnormalize(q - vdot(n, q) * n); - intersection { - sphere { <0, 0, 0>, 1 + staerke } - cone { <0, 0, 0>, 0, 1.2 * vnormalize(w), 0.4 } - plane { -vcross(n, qq) * vdot(vcross(n, qq), pp), 0 } - plane { -vcross(n, pp) * vdot(vcross(n, pp), qq), 0 } - } -#end - -#macro punkt(p, staerke) - sphere { p, 1.5 * staerke } -#end - -#declare fett = 0.015; -#declare fine = 0.010; - -#declare dreieckfarbe = rgb<0.6,0.6,0.6>; -#declare rot = rgb<0.8,0.2,0.2>; -#declare gruen = rgb<0,0.6,0>; -#declare blau = rgb<0.2,0.2,0.8>; - -sphere { - <0, 0, 0>, 1 - pigment { - color rgb<0.8,0.8,0.8> - } -} - -//union { -// sphere { A, 0.02 } -// sphere { B, 0.02 } -// sphere { C, 0.02 } -// sphere { P, 0.02 } -// pigment { -// color Red -// } -//} - -//union { -// winkel(A, B, C) -// winkel(B, P, C) -// seite(B, C, 0.01) -// seite(B, P, 0.01) -// pigment { -// color rgb<0,0.6,0> -// } -//} diff --git a/buch/papers/nav/images/dreieck3d1.pdf b/buch/papers/nav/images/dreieck3d1.pdf Binary files differnew file mode 100644 index 0000000..fecaece --- /dev/null +++ b/buch/papers/nav/images/dreieck3d1.pdf diff --git a/buch/papers/nav/images/dreieck3d1.pov b/buch/papers/nav/images/dreieck3d1.pov index 8afe60e..336161c 100644 --- a/buch/papers/nav/images/dreieck3d1.pov +++ b/buch/papers/nav/images/dreieck3d1.pov @@ -3,8 +3,11 @@ // // (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule // +#version 3.7; #include "common.inc" +kugel(kugeldunkel) + union { seite(A, B, fett) seite(B, C, fett) @@ -12,9 +15,9 @@ union { punkt(A, fett) punkt(B, fett) punkt(C, fett) - punkt(P, fine) - seite(B, P, fine) - seite(C, P, fine) + punkt(P, fein) + seite(B, P, fein) + seite(C, P, fein) pigment { color dreieckfarbe } @@ -25,7 +28,7 @@ union { } object { - winkel(A, B, C, fine) + winkel(A, B, C, fein, gross) pigment { color rot } @@ -36,7 +39,7 @@ object { } object { - winkel(B, C, A, fine) + winkel(B, C, A, fein, gross) pigment { color gruen } @@ -47,7 +50,7 @@ object { } object { - winkel(C, A, B, fine) + winkel(C, A, B, fein, gross) pigment { color blau } diff --git a/buch/papers/nav/images/dreieck3d10.pov b/buch/papers/nav/images/dreieck3d10.pov new file mode 100644 index 0000000..2dd7c79 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d10.pov @@ -0,0 +1,46 @@ +// +// dreiecke3d10.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#include "common.inc" + +erde() + +#declare Stern1 = Deneb; +#declare Stern2 = Spica; + +koordinatennetz(gitterfarbe, 9, 0.001) + +union { + seite(A, Stern1, 0.5*fein) + seite(A, Stern2, 0.5*fein) + seite(A, Sakura, 0.5*fein) + seite(Stern1, Sakura, 0.5*fein) + seite(Stern2, Sakura, 0.5*fein) + seite(Stern1, Stern2, 0.5*fein) + + punkt(A, fein) + punkt(Sakura, fett) + punkt(Deneb, fein) + punkt(Spica, fein) + punkt(Altair, fein) + punkt(Arktur, fein) + pigment { + color Red + } +} + +//arrow(<-1.3,0,0>, <1.3,0,0>, fein, White) +arrow(<0,-1.3,0>, <0,1.3,0>, fein, White) +//arrow(<0,0,-1.3>, <0,0,1.3>, fein, White) + +#declare imagescale = 0.044; + +camera { + location <40, 20, -20> + look_at <0, 0.24, -0.20> + right x * imagescale + up y * imagescale +} + diff --git a/buch/papers/nav/images/dreieck3d2.pdf b/buch/papers/nav/images/dreieck3d2.pdf Binary files differnew file mode 100644 index 0000000..28af5fe --- /dev/null +++ b/buch/papers/nav/images/dreieck3d2.pdf diff --git a/buch/papers/nav/images/dreieck3d2.pov b/buch/papers/nav/images/dreieck3d2.pov index c23a54c..9e57d22 100644 --- a/buch/papers/nav/images/dreieck3d2.pov +++ b/buch/papers/nav/images/dreieck3d2.pov @@ -5,6 +5,8 @@ // #include "common.inc" +kugel(kugeldunkel) + union { seite(A, B, fett) seite(B, C, fett) @@ -12,9 +14,9 @@ union { punkt(A, fett) punkt(B, fett) punkt(C, fett) - punkt(P, fine) - seite(B, P, fine) - seite(C, P, fine) + punkt(P, fein) + seite(B, P, fein) + seite(C, P, fein) pigment { color dreieckfarbe } diff --git a/buch/papers/nav/images/dreieck3d3.pdf b/buch/papers/nav/images/dreieck3d3.pdf Binary files differnew file mode 100644 index 0000000..4fc4fc1 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d3.pdf diff --git a/buch/papers/nav/images/dreieck3d3.pov b/buch/papers/nav/images/dreieck3d3.pov index f2496b5..bde780b 100644 --- a/buch/papers/nav/images/dreieck3d3.pov +++ b/buch/papers/nav/images/dreieck3d3.pov @@ -5,6 +5,8 @@ // #include "common.inc" +kugel(kugeldunkel) + union { seite(A, B, fett) seite(B, C, fett) @@ -12,9 +14,9 @@ union { punkt(A, fett) punkt(B, fett) punkt(C, fett) - punkt(P, fine) - seite(B, P, fine) - seite(C, P, fine) + punkt(P, fein) + seite(B, P, fein) + seite(C, P, fein) pigment { color dreieckfarbe } @@ -25,7 +27,7 @@ union { } object { - winkel(A, B, C, fine) + winkel(A, B, C, fein, gross) pigment { color rot } diff --git a/buch/papers/nav/images/dreieck3d4.pdf b/buch/papers/nav/images/dreieck3d4.pdf Binary files differnew file mode 100644 index 0000000..0d57fc2 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d4.pdf diff --git a/buch/papers/nav/images/dreieck3d4.pov b/buch/papers/nav/images/dreieck3d4.pov index bddcf7c..08f266b 100644 --- a/buch/papers/nav/images/dreieck3d4.pov +++ b/buch/papers/nav/images/dreieck3d4.pov @@ -5,10 +5,12 @@ // #include "common.inc" +kugel(kugelfarbe) + union { - seite(A, B, fine) - seite(A, C, fine) - punkt(A, fine) + seite(A, B, fein) + seite(A, C, fein) + punkt(A, fein) punkt(B, fett) punkt(C, fett) punkt(P, fett) @@ -25,7 +27,7 @@ union { } object { - winkel(B, C, P, fine) + winkel(B, C, P, fein, gross) pigment { color rgb<0.6,0.4,0.2> } diff --git a/buch/papers/nav/images/dreieck3d5.pdf b/buch/papers/nav/images/dreieck3d5.pdf Binary files differnew file mode 100644 index 0000000..a5dd0ae --- /dev/null +++ b/buch/papers/nav/images/dreieck3d5.pdf diff --git a/buch/papers/nav/images/dreieck3d5.pov b/buch/papers/nav/images/dreieck3d5.pov index 32fc9e6..1aac0dc 100644 --- a/buch/papers/nav/images/dreieck3d5.pov +++ b/buch/papers/nav/images/dreieck3d5.pov @@ -5,10 +5,12 @@ // #include "common.inc" +kugel(kugeldunkel) + union { - seite(A, B, fine) - seite(A, C, fine) - punkt(A, fine) + seite(A, B, fein) + seite(A, C, fein) + punkt(A, fein) punkt(B, fett) punkt(C, fett) punkt(P, fett) diff --git a/buch/papers/nav/images/dreieck3d6.pov b/buch/papers/nav/images/dreieck3d6.pov index 7611950..6bbd1a9 100644 --- a/buch/papers/nav/images/dreieck3d6.pov +++ b/buch/papers/nav/images/dreieck3d6.pov @@ -5,6 +5,8 @@ // #include "common.inc" +kugel(kugeldunkel) + union { seite(A, B, fett) seite(A, C, fett) @@ -25,7 +27,7 @@ union { } object { - winkel(B, A, P, fine) + winkel(B, A, P, fein, gross) pigment { color rgb<0.6,0.2,0.6> } diff --git a/buch/papers/nav/images/dreieck3d7.pov b/buch/papers/nav/images/dreieck3d7.pov index fa48f5b..45dc5d6 100644 --- a/buch/papers/nav/images/dreieck3d7.pov +++ b/buch/papers/nav/images/dreieck3d7.pov @@ -5,18 +5,20 @@ // #include "common.inc" +kugel(kugeldunkel) + union { seite(A, C, fett) seite(A, P, fett) seite(C, P, fett) - seite(A, B, fine) - seite(B, C, fine) - seite(B, P, fine) + seite(A, B, fein) + seite(B, C, fein) + seite(B, P, fein) punkt(A, fett) punkt(C, fett) punkt(P, fett) - punkt(B, fine) + punkt(B, fein) pigment { color dreieckfarbe } @@ -27,7 +29,7 @@ union { } object { - winkel(A, P, C, fine) + winkel(A, P, C, fein, gross) pigment { color rgb<0.4,0.4,1> } diff --git a/buch/papers/nav/images/dreieck3d8.jpg b/buch/papers/nav/images/dreieck3d8.jpg Binary files differnew file mode 100644 index 0000000..f24ea33 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d8.jpg diff --git a/buch/papers/nav/images/dreieck3d8.pdf b/buch/papers/nav/images/dreieck3d8.pdf Binary files differnew file mode 100644 index 0000000..da3b110 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d8.pdf diff --git a/buch/papers/nav/images/dreieck3d8.pov b/buch/papers/nav/images/dreieck3d8.pov new file mode 100644 index 0000000..dae7f67 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d8.pov @@ -0,0 +1,97 @@ +// +// dreiecke3d8.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#include "common.inc" + +union { + seite(A, B, fett) + seite(B, C, fett) + seite(A, C, fett) + seite(A, P, fein) + seite(B, P, fett) + seite(C, P, fett) + punkt(A, fett) + punkt(B, fett) + punkt(C, fett) + punkt(P, fett) + pigment { + color dreieckfarbe + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(A, B, C, fein, klein) + pigment { + color rot + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(B, C, A, fein, klein) + pigment { + color gruen + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(C, A, B, fein, gross) + pigment { + color blau + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(A, P, C, fein/2, gross) + pigment { + color rgb<0.8,0,0.8> + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(B, P, C, fein, klein) + pigment { + color rgb<1,0.8,0> + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(B, P, A, fein/2, gross) + pigment { + color rgb<0.4,0.6,0.8> + } + finish { + specular 0.95 + metallic + } +} + +dreieck(A, B, C, White) + +kugel(kugeldunkel) + diff --git a/buch/papers/nav/images/dreieck3d8.tex b/buch/papers/nav/images/dreieck3d8.tex new file mode 100644 index 0000000..c59c7b0 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d8.tex @@ -0,0 +1,57 @@ +% +% dreieck3d8.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=8cm]{dreieck3d8.jpg}}; + +% Gitter +\ifthenelse{\boolean{showgrid}}{ +\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw (-\breite,-\hoehe) grid (\breite, \hoehe); +\fill (0,0) circle[radius=0.05]; +}{} + +\node at (0.7,3.8) {$A$}; +\node at (-3.4,-0.8) {$B$}; +\node at (3.3,-2.1) {$C$}; +\node at (-1.4,-3.5) {$P$}; + +\node at (-1.9,2.1) {$c$}; +\node at (-0.2,-1.2) {$a$}; +\node at (2.6,1.5) {$b$}; +\node at (-0.8,0) {$l$}; + +\node at (-2.6,-2.2) {$p_b$}; +\node at (1,-2.9) {$p_c$}; + +\node at (0.7,3.3) {$\alpha$}; +\node at (0.8,2.85) {$\omega$}; +\node at (-2.6,-0.6) {$\beta$}; +\node at (2.3,-1.2) {$\gamma$}; +\node at (-2.6,-1.3) {$\beta_1$}; +\node at (-2.1,-0.8) {$\kappa$}; + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/dreieck3d9.pov b/buch/papers/nav/images/dreieck3d9.pov new file mode 100644 index 0000000..24d3843 --- /dev/null +++ b/buch/papers/nav/images/dreieck3d9.pov @@ -0,0 +1,66 @@ +// +// dreiecke3d8.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#include "common.inc" + +//union { +// seite(A, B, fein) +// seite(B, C, fein) +// seite(A, C, fein) +// seite(A, P, fein) +// seite(B, P, fett) +// seite(C, P, fett) +// punkt(A, fein) +// punkt(B, fett) +// punkt(C, fett) +// punkt(P, fett) +// pigment { +// color dreieckfarbe +// } +// finish { +// specular 0.95 +// metallic +// } +//} + +//dreieck(A, B, C, White) + +kugel(kugeltransparent) + +ebenerwinkel(O, C, P, 0.01, 1.001, rot) +ebenerwinkel(P, C, P, 0.01, 0.3, rot) +komplement(P, C, P, 0.01, 0.3, Yellow) + +ebenerwinkel(O, B, P, 0.01, 1.001, blau) +ebenerwinkel(P, B, P, 0.01, 0.3, blau) +komplement(P, B, P, 0.01, 0.3, Green) + +arrow(B, 1.5 * B, 0.015, White) +arrow(C, 1.5 * C, 0.015, White) +arrow(P, 1.5 * P, 0.015, White) + +union { + cylinder { O, P, 0.7 * fein } + + cylinder { P, P + 3 * B, 0.7 * fein } + cylinder { O, B + 3 * B, 0.7 * fein } + + cylinder { P, P + 3 * C, 0.7 * fein } + cylinder { O, C + 3 * C, 0.7 * fein } + + pigment { + color White + } +} + +#declare imagescale = 0.044; + +camera { + location <40, 20, -20> + look_at <0, 0.24, -0.20> + right x * imagescale + up y * imagescale +} + diff --git a/buch/papers/nav/images/macros.inc b/buch/papers/nav/images/macros.inc new file mode 100644 index 0000000..20cb2ff --- /dev/null +++ b/buch/papers/nav/images/macros.inc @@ -0,0 +1,345 @@ +// +// macros.inc -- 3d Darstellung +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#version 3.7; +#include "colors.inc" + +// +// Dimensions +// +#declare fett = 0.015; +#declare fein = 0.010; + +#declare klein = 0.3; +#declare gross = 0.4; + +// +// colors +// +#declare dreieckfarbe = rgb<0.6,0.6,0.6>; +#declare rot = rgb<0.8,0.2,0.2>; +#declare gruen = rgb<0,0.6,0>; +#declare blau = rgb<0.2,0.2,0.8>; + +#declare bekannt = rgb<0.2,0.6,1>; +#declare unbekannt = rgb<1.0,0.6,0.8>; + +#declare kugelfarbe = rgb<0.8,0.8,0.8>; +#declare kugeldunkel = rgb<0.4,0.4,0.4>; +#declare kugeltransparent = rgbt<0.8,0.8,0.8,0.5>; + +#declare gitterfarbe = rgb<0.2,0.6,1>; +#declare gitterfarbe = rgb<1.0,0.8,0>; + +// +// Points Points +// +#declare O = <0, 0, 0>; +#declare Nordpol = vnormalize(< 0, 1, 0>); +#declare A = vnormalize(< 0, 1, 0>); +#declare B = vnormalize(< 1, 2, -8>); +#declare C = vnormalize(< 5, 1, 0>); +#declare P = vnormalize(< 5, -1, -7>); + +// +// \brief convert spherical coordinates to recctangular coordinates +// +// \param phi +// \param theta +// +#macro kugelpunkt(phi, theta) + < sin(theta) * cos(phi - pi), cos(theta), sin(theta) * sin(phi - pi) > +#end + +#declare Sakura = kugelpunkt(radians(140.2325498), radians(90 - 35.71548014)); +#declare Deneb = kugelpunkt(radians(191.9397759), radians(90 - 45.361194)); +#declare Spica = kugelpunkt(radians(82.9868559), radians(90 - (-11.279666))); +#declare Altair = kugelpunkt(radians(179.3616609), radians(90 - 8.928416)); +#declare Arktur = kugelpunkt(radians(95.5647759), radians(90 - 19.063222)); + +// +// draw an arrow from <from> to <to> with thickness <arrowthickness> with +// color <c> +// +#macro arrow(from, to, arrowthickness, c) +#declare arrowdirection = vnormalize(to - from); +#declare arrowlength = vlength(to - from); +union { + sphere { + from, 1.1 * arrowthickness + } + cylinder { + from, + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + arrowthickness + } + cone { + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + 2 * arrowthickness, + to, + 0 + } + pigment { + color c + } + finish { + specular 0.9 + metallic + } +} +#end + +#declare ntsteps = 100; + +// +// \brief Draw a circle +// +// \param b1 basis vector for a coordinate system of the plane containing +// the circle +// \param b2 the other basis vector +// \param o center of the circle +// \param thick diameter of the circular tube +// +#macro kreis(b1, b2, o, thick, maxwinkel) + #declare tpstep = pi / ntsteps; + #declare tp = tpstep; + #declare p1 = b1 + o; + sphere { p1, thick } + #declare tpstep = pi/ntsteps; + #while (tp < (maxwinkel - tpstep/2)) + #declare p2 = cos(tp) * b1 + sin(tp) * b2 + o; + cylinder { p1, p2, thick } + sphere { p2, thick } + #declare p1 = p2; + #declare tp = tp + tpstep; + #end + #if ((tp - tpstep) < maxwinkel) + #declare p2 = cos(maxwinkel) * b1 + sin(maxwinkel) * b2 + o; + cylinder { p1, p2, thick } + sphere { p2, thick } + #end +#end + +// +// \brief Draw a great circle +// +// \param normale the normal of the plane containing the great circle +// \param thick diameter +// +#macro grosskreis(normale, thick) + #declare other = < normale.y, -normale.x, normale.z >; + #declare b1 = vnormalize(vcross(other, normale)); + #declare b2 = vnormalize(vcross(normale, b1)); + kreis(b1, b2, <0,0,0>, thick, 2*pi) +#end + +// +// \brief Draw a circle of latitude +// +// \param theta latitude +// \param thick diameter +// +#macro breitenkreis(theta, thick) + #declare b1 = sin(theta) * kugelpunkt(0, pi/2); + #declare b2 = sin(theta) * kugelpunkt(pi/2, pi/2); + #declare o = < 0, cos(theta), 0 >; + kreis(b1, b2, o, thick, 2*pi) +#end + +// +// \brief Draw the great circle connecting the two points +// +// \param p first point +// \param q second point +// \param staerke diameter +// + +#macro seite(p, q, staerke) + #declare s1 = vnormalize(p); + #declare s2 = vnormalize(q); + #declare w = acos(vdot(s1, s2)); + #declare n = vnormalize(vcross(p, q)); + #declare s2 = vnormalize(vcross(n, s1)); + kreis(s1, s2, O, staerke, w) +#end + +// +// \brief Draw an angle +// +// \param w the edge where the angle is located +// \param p point on the first leg +// \param q point on the second leg +// \param r diameter of the angle +// +#macro winkel(w, p, q, staerke, r) + #declare n = vnormalize(w); + #declare pp = vnormalize(p - vdot(n, p) * n); + #declare qq = vnormalize(q - vdot(n, q) * n); + intersection { + sphere { O, 1 + staerke } + cone { O, 0, 1.2 * vnormalize(w), r } + plane { -vcross(n, qq) * vdot(vcross(n, qq), pp), 0 } + plane { -vcross(n, pp) * vdot(vcross(n, pp), qq), 0 } + } +#end + +// +// \brief Draw a point on the sphere as a circle +// +// \param p the point +// \param staerke the diameter of the point +// +#macro punkt(p, staerke) + sphere { p, 1.5 * staerke } +#end + +// +// \brief Draw a circle as a part of the differently colored cutout from +// the sphere +// +// \param p first point of the triangle +// \param q second point of the triangle +// \param r third point of the triangle +// \param farbe color +// +#macro dreieck(p, q, r, farbe) + #declare n1 = vnormalize(vcross(p, q)); + #declare n2 = vnormalize(vcross(q, r)); + #declare n3 = vnormalize(vcross(r, p)); + intersection { + plane { n1, 0 } + plane { n2, 0 } + plane { n3, 0 } + sphere { <0, 0, 0>, 1 + 0.001 } + pigment { + color farbe + } + finish { + metallic + specular 0.4 + } + } +#end + +// +// \brief +// +// \param a axis of the angle +// \param p first leg +// \param q second leg +// \param s thickness of the angle disk +// \param r radius of the angle disk +// \param farbe color +// +#macro ebenerwinkel(a, p, q, s, r, farbe) + #declare n = vnormalize(-vcross(p, q)); + #declare np = vnormalize(-vcross(p, n)); + #declare nq = -vnormalize(-vcross(q, n)); +// arrow(a, a + n, 0.02, White) +// arrow(a, a + np, 0.01, Red) +// arrow(a, a + nq, 0.01, Blue) + intersection { + cylinder { a - (s/2) * n, a + (s/2) * n, r } + plane { np, vdot(np, a) } + plane { nq, vdot(nq, a) } + pigment { + farbe + } + finish { + metallic + specular 0.5 + } + } +#end + +// +// \brief Show the complement angle +// +// +#macro komplement(a, p, q, s, r, farbe) + #declare n = vnormalize(-vcross(p, q)); +// arrow(a, a + n, 0.015, Orange) + #declare m = vnormalize(-vcross(q, n)); +// arrow(a, a + m, 0.015, Pink) + ebenerwinkel(a, p, m, s, r, farbe) +#end + +// +// \brief Show a coordinate grid on the sphere +// +// \param farbe the color of the grid +// \param thick the line thickness +// +#macro koordinatennetz(farbe, netzschritte, thick) +union { + // circles of latitude + #declare theta = pi/(2*netzschritte); + #declare thetastep = pi/(2*netzschritte); + #while (theta < pi - thetastep/2) + breitenkreis(theta, thick) + #declare theta = theta + thetastep; + #end + // cirles of longitude + #declare phi = 0; + #declare phistep = pi/(2*netzschritte); + #while (phi < pi-phistep/2) + grosskreis(kugelpunkt(phi, pi/2), thick) + #declare phi = phi + phistep; + #end + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } +} +#end + +// +// \brief Display a color of given color +// +// \param farbe the color +// +#macro kugel(farbe) +sphere { + <0, 0, 0>, 1 + pigment { + color farbe + } +} +#end + +// +// \brief Display the earth +// +#macro erde(winkel) +sphere { + <0, 0, 0>, 1 + pigment { + image_map { + png "2k_earth_daymap.png" gamma 1.0 + map_type 1 + } + } + rotate <0,winkel,0> +} +#end + +// +// achse +// +#macro achse(durchmesser, farbe) + cylinder { + < 0, -1.2, 0 >, <0, 1.2, 0 >, durchmesser + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } + } +#end diff --git a/buch/papers/nav/images/position/2k_earth_daymap.png b/buch/papers/nav/images/position/2k_earth_daymap.png Binary files differnew file mode 100644 index 0000000..4d55da8 --- /dev/null +++ b/buch/papers/nav/images/position/2k_earth_daymap.png diff --git a/buch/papers/nav/images/position/Makefile b/buch/papers/nav/images/position/Makefile new file mode 100644 index 0000000..eed2e56 --- /dev/null +++ b/buch/papers/nav/images/position/Makefile @@ -0,0 +1,69 @@ +# +# Makefile to build images +# +# (c) 2022 +# +all: position + +POSITION = \ + position1.pdf position1-small.pdf \ + position2.pdf position2-small.pdf \ + position3.pdf position3-small.pdf \ + position4.pdf position4-small.pdf \ + position5.pdf position5-small.pdf + +position: $(POSITION) + +POVRAYOPTIONS = -W1080 -H1080 +#POVRAYOPTIONS = -W480 -H480 + +position1.png: position1.pov common.inc ../macros.inc + povray +A0.1 $(POVRAYOPTIONS) -Oposition1.png position1.pov +position1.jpg: position1.png + convert position1.png -density 300 -units PixelsPerInch position1.jpg +position1.pdf: position1.tex common.tex position1.jpg + pdflatex position1.tex + +position2.png: position2.pov common.inc ../macros.inc + povray +A0.1 $(POVRAYOPTIONS) -Oposition2.png position2.pov +position2.jpg: position2.png + convert position2.png -density 300 -units PixelsPerInch position2.jpg +position2.pdf: position2.tex common.tex position2.jpg + pdflatex position2.tex + +position3.png: position3.pov common.inc ../macros.inc + povray +A0.1 $(POVRAYOPTIONS) -Oposition3.png position3.pov +position3.jpg: position3.png + convert position3.png -density 300 -units PixelsPerInch position3.jpg +position3.pdf: position3.tex common.tex position3.jpg + pdflatex position3.tex + +position4.png: position4.pov common.inc ../macros.inc + povray +A0.1 $(POVRAYOPTIONS) -Oposition4.png position4.pov +position4.jpg: position4.png + convert position4.png -density 300 -units PixelsPerInch position4.jpg +position4.pdf: position4.tex common.tex position4.jpg + pdflatex position4.tex + +position5.png: position5.pov common.inc ../macros.inc + povray +A0.1 $(POVRAYOPTIONS) -Oposition5.png position5.pov +position5.jpg: position5.png + convert position5.png -density 300 -units PixelsPerInch position5.jpg +position5.pdf: position5.tex common.tex position5.jpg + pdflatex position5.tex + +position1-small.pdf: position1-small.tex common.tex position1.jpg + pdflatex position1-small.tex +position2-small.pdf: position2-small.tex common.tex position2.jpg + pdflatex position2-small.tex +position3-small.pdf: position3-small.tex common.tex position3.jpg + pdflatex position3-small.tex +position4-small.pdf: position4-small.tex common.tex position4.jpg + pdflatex position4-small.tex +position5-small.pdf: position5-small.tex common.tex position5.jpg + pdflatex position5-small.tex + +test: test.pdf + +test.pdf: test.tex $(POSITION) + pdflatex test.tex diff --git a/buch/papers/nav/images/position/common-small.tex b/buch/papers/nav/images/position/common-small.tex new file mode 100644 index 0000000..9430608 --- /dev/null +++ b/buch/papers/nav/images/position/common-small.tex @@ -0,0 +1,32 @@ +% +% common.tex +% +% (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% + +\def\labelA{\node at (0.7,3.8) {$A$};} +\def\labelB{\node at (-3.4,-0.8) {$B$};} +\def\labelC{\node at (3.3,-2.1) {$C$};} +\def\labelP{\node at (-1.4,-3.5) {$P$};} + +\def\labelc{\node at (-1.9,2.1) {$c$};} +\def\labela{\node at (-0.2,-1.2) {$a$};} +\def\labelb{\node at (2.6,1.5) {$b$};} + +\def\labelhb{\node at (-2.6,-2.2) {$h_B$};} +\def\labelhc{\node at (1,-2.9) {$h_C$};} +\def\labell{\node at (-0.7,0.3) {$l$};} + +\def\labelalpha{\node at (0.6,2.85) {$\alpha$};} +\def\labelbeta{\node at (-2.5,-0.5) {$\beta$};} +\def\labelgamma{\node at (2.3,-1.2) {$\gamma$};} +\def\labelomega{\node at (0.85,3.3) {$\omega$};} + +\def\labelgammaone{\node at (2.1,-2.0) {$\gamma_1$};} +\def\labelgammatwo{\node at (2.3,-1.3) {$\gamma_2$};} +\def\labelbetaone{\node at (-2.4,-1.4) {$\beta_1$};} +\def\labelbetatwo{\node at (-2.5,-0.8) {$\beta_2$};} + +\def\labelomegalinks{\node at (0.25,3.25) {$\omega$};} +\def\labelomegarechts{\node at (0.85,3.1) {$\omega$};} + diff --git a/buch/papers/nav/images/position/common.inc b/buch/papers/nav/images/position/common.inc new file mode 100644 index 0000000..56e2836 --- /dev/null +++ b/buch/papers/nav/images/position/common.inc @@ -0,0 +1,39 @@ +// +// common.inc -- 3d Darstellung +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#version 3.7; +#include "colors.inc" +#include "../macros.inc" + +global_settings { + assumed_gamma 1 +} + +#declare imagescale = 0.034; + +camera { + location <40, 20, -20> + look_at <0, 0.24, -0.20> + right x * imagescale + up y * imagescale +} + +light_source { + <30, 10, -40> color White + area_light <1,0,0> <0,0,1>, 10, 10 + adaptive 1 + jitter +} + +sky_sphere { + pigment { + color rgb<1,1,1> + } +} + +//kugel(kugeldunkel) +erde(-100) +koordinatennetz(gitterfarbe, 9, 0.001) +achse(fein, White) diff --git a/buch/papers/nav/images/position/common.tex b/buch/papers/nav/images/position/common.tex new file mode 100644 index 0000000..9430608 --- /dev/null +++ b/buch/papers/nav/images/position/common.tex @@ -0,0 +1,32 @@ +% +% common.tex +% +% (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% + +\def\labelA{\node at (0.7,3.8) {$A$};} +\def\labelB{\node at (-3.4,-0.8) {$B$};} +\def\labelC{\node at (3.3,-2.1) {$C$};} +\def\labelP{\node at (-1.4,-3.5) {$P$};} + +\def\labelc{\node at (-1.9,2.1) {$c$};} +\def\labela{\node at (-0.2,-1.2) {$a$};} +\def\labelb{\node at (2.6,1.5) {$b$};} + +\def\labelhb{\node at (-2.6,-2.2) {$h_B$};} +\def\labelhc{\node at (1,-2.9) {$h_C$};} +\def\labell{\node at (-0.7,0.3) {$l$};} + +\def\labelalpha{\node at (0.6,2.85) {$\alpha$};} +\def\labelbeta{\node at (-2.5,-0.5) {$\beta$};} +\def\labelgamma{\node at (2.3,-1.2) {$\gamma$};} +\def\labelomega{\node at (0.85,3.3) {$\omega$};} + +\def\labelgammaone{\node at (2.1,-2.0) {$\gamma_1$};} +\def\labelgammatwo{\node at (2.3,-1.3) {$\gamma_2$};} +\def\labelbetaone{\node at (-2.4,-1.4) {$\beta_1$};} +\def\labelbetatwo{\node at (-2.5,-0.8) {$\beta_2$};} + +\def\labelomegalinks{\node at (0.25,3.25) {$\omega$};} +\def\labelomegarechts{\node at (0.85,3.1) {$\omega$};} + diff --git a/buch/papers/nav/images/position/position1-small.pdf b/buch/papers/nav/images/position/position1-small.pdf Binary files differnew file mode 100644 index 0000000..ba7755f --- /dev/null +++ b/buch/papers/nav/images/position/position1-small.pdf diff --git a/buch/papers/nav/images/position/position1-small.tex b/buch/papers/nav/images/position/position1-small.tex new file mode 100644 index 0000000..05fad44 --- /dev/null +++ b/buch/papers/nav/images/position/position1-small.tex @@ -0,0 +1,55 @@ +% +% position1-small.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\input{common-small.tex} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick,scale=0.625] + +% Povray Bild +\node at (0,0) {\includegraphics[width=5cm]{position1.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]; +}{} + +\labelA +\labelB +\labelC +\labelP + +\labelc +\labela +\labelb +\labell + +\labelhb +\labelhc + +\labelalpha +\labelomega + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/position/position1.pdf b/buch/papers/nav/images/position/position1.pdf Binary files differnew file mode 100644 index 0000000..fc4f760 --- /dev/null +++ b/buch/papers/nav/images/position/position1.pdf diff --git a/buch/papers/nav/images/position/position1.pov b/buch/papers/nav/images/position/position1.pov new file mode 100644 index 0000000..a79a9f1 --- /dev/null +++ b/buch/papers/nav/images/position/position1.pov @@ -0,0 +1,71 @@ +// +// position1.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#version 3.7; +#include "common.inc" + +union { + seite(B, C, fett) + punkt(A, fett) + punkt(B, fett) + punkt(C, fett) + punkt(P, fett) + pigment { + color dreieckfarbe + } + finish { + specular 0.95 + metallic + } +} + +union { + seite(A, P, fett) + pigment { + color rot + } + finish { + specular 0.95 + metallic + } +} + + +union { + seite(A, B, fett) + seite(A, C, fett) + seite(B, P, fett) + seite(C, P, fett) + pigment { + color bekannt + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(A, B, C, fein, gross) + pigment { + color bekannt + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(A, P, C, fett, klein) + pigment { + color rot + } + finish { + specular 0.95 + metallic + } +} + diff --git a/buch/papers/nav/images/position/position1.tex b/buch/papers/nav/images/position/position1.tex new file mode 100644 index 0000000..d6c21c3 --- /dev/null +++ b/buch/papers/nav/images/position/position1.tex @@ -0,0 +1,55 @@ +% +% dreieck3d1.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\input{common.tex} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=8cm]{position1.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]; +}{} + +\labelA +\labelB +\labelC +\labelP + +\labelc +\labela +\labelb +\labell + +\labelhb +\labelhc + +\labelalpha +\labelomega + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/position/position2-small.pdf b/buch/papers/nav/images/position/position2-small.pdf Binary files differnew file mode 100644 index 0000000..3333dd4 --- /dev/null +++ b/buch/papers/nav/images/position/position2-small.pdf diff --git a/buch/papers/nav/images/position/position2-small.tex b/buch/papers/nav/images/position/position2-small.tex new file mode 100644 index 0000000..e5c33cf --- /dev/null +++ b/buch/papers/nav/images/position/position2-small.tex @@ -0,0 +1,53 @@ +% +% position2-small.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\input{common-small.tex} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick,scale=0.625] + +% Povray Bild +\node at (0,0) {\includegraphics[width=5cm]{position2.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]; +}{} + +\labelA +\labelB +\labelC + +\labelc +\labela +\labelb + +\begin{scope}[yshift=0.3cm,xshift=0.1cm] +\labelalpha +\end{scope} +\labelbeta +\labelgamma + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/position/position2.pdf b/buch/papers/nav/images/position/position2.pdf Binary files differnew file mode 100644 index 0000000..dbd2ea9 --- /dev/null +++ b/buch/papers/nav/images/position/position2.pdf diff --git a/buch/papers/nav/images/position/position2.pov b/buch/papers/nav/images/position/position2.pov new file mode 100644 index 0000000..2abcd94 --- /dev/null +++ b/buch/papers/nav/images/position/position2.pov @@ -0,0 +1,70 @@ +// +// position3.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#version 3.7; +#include "common.inc" + +dreieck(A, B, C, kugelfarbe) + +union { + punkt(A, fett) + punkt(B, fett) + punkt(C, fett) + pigment { + color dreieckfarbe + } + finish { + specular 0.95 + metallic + } +} + +union { + seite(A, B, fett) + seite(A, C, fett) + pigment { + color bekannt + } + finish { + specular 0.95 + metallic + } +} + +union { + seite(B, C, fett) + pigment { + color unbekannt + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(A, B, C, fein, gross) + pigment { + color bekannt + } + finish { + specular 0.95 + metallic + } +} + +union { + winkel(B, C, A, fein, gross) + winkel(C, A, B, fein, gross) + pigment { + color unbekannt + } + finish { + specular 0.95 + metallic + } +} + + diff --git a/buch/papers/nav/images/position/position2.tex b/buch/papers/nav/images/position/position2.tex new file mode 100644 index 0000000..339592c --- /dev/null +++ b/buch/papers/nav/images/position/position2.tex @@ -0,0 +1,53 @@ +% +% position2.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\input{common.tex} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=8cm]{position2.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]; +}{} + +\labelA +\labelB +\labelC + +\labelc +\labela +\labelb + +\begin{scope}[yshift=0.3cm,xshift=0.1cm] +\labelalpha +\end{scope} +\labelbeta +\labelgamma + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/position/position3-small.pdf b/buch/papers/nav/images/position/position3-small.pdf Binary files differnew file mode 100644 index 0000000..fae0b85 --- /dev/null +++ b/buch/papers/nav/images/position/position3-small.pdf diff --git a/buch/papers/nav/images/position/position3-small.tex b/buch/papers/nav/images/position/position3-small.tex new file mode 100644 index 0000000..4f7b0e9 --- /dev/null +++ b/buch/papers/nav/images/position/position3-small.tex @@ -0,0 +1,51 @@ +% +% position3-small.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\input{common-small.tex} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick,scale=0.625] + +% Povray Bild +\node at (0,0) {\includegraphics[width=5cm]{position3.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]; +}{} + +\labelB +\labelC +\labelP + +\labela + +\labelhb +\labelhc + +\labelbetaone +\labelgammaone + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/position/position3.pdf b/buch/papers/nav/images/position/position3.pdf Binary files differnew file mode 100644 index 0000000..2c940d2 --- /dev/null +++ b/buch/papers/nav/images/position/position3.pdf diff --git a/buch/papers/nav/images/position/position3.pov b/buch/papers/nav/images/position/position3.pov new file mode 100644 index 0000000..f6823eb --- /dev/null +++ b/buch/papers/nav/images/position/position3.pov @@ -0,0 +1,48 @@ +// +// position3.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#version 3.7; +#include "common.inc" + +dreieck(B, P, C, kugelfarbe) + +union { + punkt(B, fett) + punkt(C, fett) + punkt(P, fett) + pigment { + color dreieckfarbe + } + finish { + specular 0.95 + metallic + } +} + +union { + seite(B, C, fett) + seite(B, P, fett) + seite(C, P, fett) + pigment { + color bekannt + } + finish { + specular 0.95 + metallic + } +} + +union { + winkel(B, P, C, fein, gross) + winkel(C, B, P, fein, gross) + pigment { + color unbekannt + } + finish { + specular 0.95 + metallic + } +} + diff --git a/buch/papers/nav/images/position/position3.tex b/buch/papers/nav/images/position/position3.tex new file mode 100644 index 0000000..d5480da --- /dev/null +++ b/buch/papers/nav/images/position/position3.tex @@ -0,0 +1,51 @@ +% +% dreieck3d1.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\input{common.tex} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=8cm]{position3.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]; +}{} + +\labelB +\labelC +\labelP + +\labela + +\labelhb +\labelhc + +\labelbetaone +\labelgammaone + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/position/position4-small.pdf b/buch/papers/nav/images/position/position4-small.pdf Binary files differnew file mode 100644 index 0000000..ac80c46 --- /dev/null +++ b/buch/papers/nav/images/position/position4-small.pdf diff --git a/buch/papers/nav/images/position/position4-small.tex b/buch/papers/nav/images/position/position4-small.tex new file mode 100644 index 0000000..e06523b --- /dev/null +++ b/buch/papers/nav/images/position/position4-small.tex @@ -0,0 +1,50 @@ +% +% position4-small.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\input{common-small.tex} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick,scale=0.625] + +% Povray Bild +\node at (0,0) {\includegraphics[width=5cm]{position4.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]; +}{} + +\labelA +\labelB +\labelP + +\labelc +\labell +\labelhb + +\labelomegalinks +\labelbetatwo + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/position/position4.pdf b/buch/papers/nav/images/position/position4.pdf Binary files differnew file mode 100644 index 0000000..8eeeaac --- /dev/null +++ b/buch/papers/nav/images/position/position4.pdf diff --git a/buch/papers/nav/images/position/position4.pov b/buch/papers/nav/images/position/position4.pov new file mode 100644 index 0000000..80628f9 --- /dev/null +++ b/buch/papers/nav/images/position/position4.pov @@ -0,0 +1,69 @@ +// +// position4.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#version 3.7; +#include "common.inc" + +dreieck(A, B, P, kugelfarbe) + +union { + punkt(A, fett) + punkt(B, fett) + punkt(P, fett) + pigment { + color dreieckfarbe + } + finish { + specular 0.95 + metallic + } +} + +union { + seite(A, P, fett) + pigment { + color unbekannt + } + finish { + specular 0.95 + metallic + } +} + + +union { + seite(A, B, fett) + seite(B, P, fett) + pigment { + color bekannt + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(B, P, A, fein, gross) + pigment { + color bekannt + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(A, B, P, fein, gross) + pigment { + color unbekannt + } + finish { + specular 0.95 + metallic + } +} + diff --git a/buch/papers/nav/images/position/position4.tex b/buch/papers/nav/images/position/position4.tex new file mode 100644 index 0000000..27c1757 --- /dev/null +++ b/buch/papers/nav/images/position/position4.tex @@ -0,0 +1,50 @@ +% +% position4.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\input{common.tex} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=8cm]{position4.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]; +}{} + +\labelA +\labelB +\labelP + +\labelc +\labell +\labelhb + +\labelomegalinks +\labelbetatwo + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/position/position5-small.pdf b/buch/papers/nav/images/position/position5-small.pdf Binary files differnew file mode 100644 index 0000000..afe120e --- /dev/null +++ b/buch/papers/nav/images/position/position5-small.pdf diff --git a/buch/papers/nav/images/position/position5-small.tex b/buch/papers/nav/images/position/position5-small.tex new file mode 100644 index 0000000..0a0e229 --- /dev/null +++ b/buch/papers/nav/images/position/position5-small.tex @@ -0,0 +1,50 @@ +% +% position5-small.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\input{common-small.tex} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick,scale=0.625] + +% Povray Bild +\node at (0,0) {\includegraphics[width=5cm]{position5.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]; +}{} + +\labelA +\labelC +\labelP + +\labelb +\labell +\labelhc + +\labelomegarechts +\labelgammatwo + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/position/position5.pdf b/buch/papers/nav/images/position/position5.pdf Binary files differnew file mode 100644 index 0000000..05a64cb --- /dev/null +++ b/buch/papers/nav/images/position/position5.pdf diff --git a/buch/papers/nav/images/position/position5.pov b/buch/papers/nav/images/position/position5.pov new file mode 100644 index 0000000..7ed33c5 --- /dev/null +++ b/buch/papers/nav/images/position/position5.pov @@ -0,0 +1,69 @@ +// +// position5.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#version 3.7; +#include "common.inc" + +dreieck(A, P, C, kugelfarbe) + +union { + punkt(A, fett) + punkt(C, fett) + punkt(P, fett) + pigment { + color dreieckfarbe + } + finish { + specular 0.95 + metallic + } +} + +union { + seite(A, P, fett) + pigment { + color unbekannt + } + finish { + specular 0.95 + metallic + } +} + + +union { + seite(A, C, fett) + seite(C, P, fett) + pigment { + color bekannt + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(C, P, A, fein, gross) + pigment { + color bekannt + } + finish { + specular 0.95 + metallic + } +} + +object { + winkel(A, C, P, fein, gross) + pigment { + color unbekannt + } + finish { + specular 0.95 + metallic + } +} + diff --git a/buch/papers/nav/images/position/position5.tex b/buch/papers/nav/images/position/position5.tex new file mode 100644 index 0000000..b234429 --- /dev/null +++ b/buch/papers/nav/images/position/position5.tex @@ -0,0 +1,50 @@ +% +% position5.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\input{common.tex} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{4} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=8cm]{position5.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]; +}{} + +\labelA +\labelC +\labelP + +\labelb +\labell +\labelhc + +\labelomegarechts +\labelgammatwo + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/nav/images/position/test.tex b/buch/papers/nav/images/position/test.tex new file mode 100644 index 0000000..3247ed1 --- /dev/null +++ b/buch/papers/nav/images/position/test.tex @@ -0,0 +1,135 @@ +% +% test.tex +% +% (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[12pt]{article} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{etex} +\usepackage[ngerman]{babel} +\usepackage{times} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{graphicx} +\usepackage{wrapfig} +\begin{document} + +\begin{wrapfigure}{R}{5.6cm} +\includegraphics{position1-small.pdf} +\end{wrapfigure} +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. +Aenean +commodo ligula eget dolor. +Aenean massa. +Cum sociis natoque penatibus +et magnis dis parturient montes, nascetur ridiculus mus. +Donec quam +felis, ultricies nec, pellentesque eu, pretium quis, sem. +Nulla +consequat massa quis enim. +Donec pede justo, fringilla vel, aliquet +nec, vulputate eget, arcu. +In enim justo, rhoncus ut, imperdiet a, +venenatis vitae, justo. +Nullam dictum felis eu pede mollis pretium. +Integer tincidunt. +Cras dapibus. +Vivamus elementum semper nisi. +Aenean vulputate eleifend tellus. +Aenean leo ligula, porttitor eu, +consequat vitae, eleifend ac, enim. +Aliquam lorem ante, dapibus in, +viverra quis, feugiat a, tellus. + +\begin{wrapfigure}{R}{5.2cm} +\includegraphics{position2-small.pdf} +\end{wrapfigure} +Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper +libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, +blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec +odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis +faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus +tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec +sodales sagittis magna. Sed consequat, leo eget bibendum sodales, +augue velit cursus nunc, quis gravida magna mi a libero. Fusce +vulputate eleifend sapien. Vestibulum purus quam, scelerisque ut, +mollis sed, nonummy id, metus. Nullam accumsan lorem in dui. Cras +ultricies mi eu turpis hendrerit fringilla. Vestibulum ante ipsum +primis in faucibus orci luctus et ultrices posuere cubilia Curae; + +\pagebreak + +\begin{wrapfigure}{R}{5.2cm} +\includegraphics{position3-small.pdf} +\end{wrapfigure} +Integer ante arcu, accumsan a, consectetuer eget, posuere ut, mauris. +Praesent adipiscing. Phasellus ullamcorper ipsum rutrum nunc. Nunc +nonummy metus. Vestibulum volutpat pretium libero. Cras id dui. +Aenean ut eros et nisl sagittis vestibulum. Nullam nulla eros, +ultricies sit amet, nonummy id, imperdiet feugiat, pede. Sed lectus. +Donec mollis hendrerit risus. Phasellus nec sem in justo pellentesque +facilisis. Etiam imperdiet imperdiet orci. Nunc nec neque. Phasellus +leo dolor, tempus non, auctor et, hendrerit quis, nisi. Curabitur +ligula sapien, tincidunt non, euismod vitae, posuere imperdiet, +leo. Maecenas malesuada. Praesent congue erat at massa. Sed cursus +turpis vitae tortor. Donec posuere vulputate arcu. Phasellus accumsan +cursus velit. Vestibulum ante ipsum primis in faucibus orci luctus +et ultrices posuere cubilia Curae; Sed aliquam, nisi quis porttitor +congue, elit erat euismod orci, ac placerat dolor lectus quis orci. +Phasellus consectetuer vestibulum elit. + +\begin{wrapfigure}{R}{5.2cm} +\includegraphics{position4-small.pdf} +\end{wrapfigure} +Aenean tellus metus, bibendum sed, posuere ac, mattis non, nunc. +Vestibulum fringilla pede sit amet augue. In turpis. Pellentesque +posuere. Praesent turpis. Aenean posuere, tortor sed cursus feugiat, +nunc augue blandit nunc, eu sollicitudin urna dolor sagittis lacus. +Donec elit libero, sodales nec, volutpat a, suscipit non, turpis. +Nullam sagittis. Suspendisse pulvinar, augue ac venenatis condimentum, +sem libero volutpat nibh, nec pellentesque velit pede quis nunc. +Vestibulum ante ipsum primis in faucibus orci luctus et ultrices +posuere cubilia Curae; Fusce id purus. Ut varius tincidunt libero. +Phasellus dolor. Maecenas vestibulum mollis diam. Pellentesque ut +neque. Pellentesque habitant morbi tristique senectus et netus et +malesuada fames ac turpis egestas. In dui magna, posuere eget, +vestibulum et, tempor auctor, justo. In ac felis quis tortor malesuada +pretium. Pellentesque auctor neque nec urna. + +\pagebreak + +\begin{wrapfigure}{R}{5.2cm} +\includegraphics{position5-small.pdf} +\end{wrapfigure} +Proin sapien ipsum, porta a, auctor quis, euismod ut, mi. Aenean +viverra rhoncus pede. Pellentesque habitant morbi tristique senectus +et netus et malesuada fames ac turpis egestas. Ut non enim eleifend +felis pretium feugiat. Vivamus quis mi. Phasellus a est. Phasellus +magna. In hac habitasse platea dictumst. Curabitur at lacus ac velit +ornare lobortis. Curabitur a felis in nunc fringilla tristique. +Morbi mattis ullamcorper velit. Phasellus gravida semper nisi. +Nullam vel sem. Pellentesque libero tortor, tincidunt et, tincidunt +eget, semper nec, quam. Sed hendrerit. Morbi ac felis. Nunc egestas, +augue at pellentesque laoreet, felis eros vehicula leo, at malesuada +velit leo quis pede. Donec interdum, metus et hendrerit aliquet, +dolor diam sagittis ligula, eget egestas libero turpis vel mi. Nunc +nulla. Fusce risus nisl, viverra et, tempor et, pretium in, sapien. +Donec venenatis vulputate lorem. Morbi nec metus. Phasellus blandit +leo ut odio. Maecenas ullamcorper, dui et placerat feugiat, eros +pede varius nisi, condimentum viverra felis nunc et lorem. Sed magna +purus, fermentum eu, tincidunt eu, varius ut, felis. In auctor +lobortis lacus. Quisque libero metus, condimentum nec, tempor a, +commodo mollis, magna. Vestibulum ullamcorper mauris at ligula. +Fusce fermentum. Nullam cursus lacinia erat. Praesent blandit laoreet +nibh. Fusce convallis metus id felis luctus adipiscing. Pellentesque +egestas, neque sit amet convallis pulvinar, justo nulla eleifend +augue, ac auctor orci leo non est. Quisque id mi. Ut tincidunt +tincidunt erat. Etiam feugiat lorem non metus. Vestibulum dapibus +nunc ac augue. Curabitur vestibulum aliquam leo. Praesent egestas +neque eu enim. In hac habitasse platea dictumst. Fusce a quam. Etiam +ut purus mattis mauris + +\end{document} diff --git a/buch/papers/nav/main.tex b/buch/papers/nav/main.tex index e11e2c0..f993559 100644 --- a/buch/papers/nav/main.tex +++ b/buch/papers/nav/main.tex @@ -3,34 +3,21 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:nav}} -\lhead{Thema} +\chapter{Sphärische Navigation\label{chapter:nav}} +\lhead{Sphärische Navigation} \begin{refsection} -\chapterauthor{Hans Muster} +\chapterauthor{Enez Erdem und Marc Kühne} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} -\input{papers/nav/teil0.tex} -\input{papers/nav/teil1.tex} -\input{papers/nav/teil2.tex} -\input{papers/nav/teil3.tex} + +\input{papers/nav/einleitung.tex} +\input{papers/nav/flatearth.tex} +\input{papers/nav/sincos.tex} +\input{papers/nav/trigo.tex} +\input{papers/nav/nautischesdreieck.tex} +\input{papers/nav/bsp2.tex} + \printbibliography[heading=subbibliography] \end{refsection} + diff --git a/buch/papers/nav/nautischesdreieck.tex b/buch/papers/nav/nautischesdreieck.tex new file mode 100644 index 0000000..32d1b8b --- /dev/null +++ b/buch/papers/nav/nautischesdreieck.tex @@ -0,0 +1,172 @@ +\section{Das Nautische Dreieck} +\rhead{Das nautische Dreieck} +\subsection{Definition des Nautischen Dreiecks} +Die Himmelskugel ist eine gedachte Kugel, welche die Erde und dessen Beobachter umgibt und als Rechenfläche für Koordinaten in der Astronomie und Geodäsie dient. +Der Zenit ist jener Punkt, der vom Erdmittelpunkt durch denn eigenen Standort an die Himmelskugel verlängert wird. +Als Gestirne kommen Sterne und Planeten in Frage, zu welchen in diversen Jahrbüchern die für die Navigation nötigen Daten publiziert sind. +Der Himmelspol ist der Nordpol an die Himmelskugel projiziert. +Das nautische Dreieck hat die Ecken Zenit, Gestirn und Himmelspol, wie man in der Abbildung \ref{naut} sehen kann. + +Ursprünglich ist das nautische Dreieck ein Hilfsmittel der sphärischen Astronomie um die momentane Position eines Fixsterns oder Planeten an der Himmelskugel zu bestimmen. + +\subsection{Das Bilddreieck} +\begin{figure} + \begin{center} + \includegraphics[width=8cm]{papers/nav/bilder/kugel3.png} + \caption[Nautisches Dreieck]{Nautisches Dreieck} + \label{naut} + \end{center} +\end{figure} + Man kann das nautische Dreieck auf die Erdkugel projizieren. +Dieses Dreieck nennt man dann Bilddreieck. +Als Bildpunkt wird in der astronomischen Navigation der Punkt bezeichnet, an dem eine gedachte Linie vom Mittelpunkt eines beobachteten Gestirns zum Mittelpunkt der Erde die Erdoberfläche schneidet. +Die Projektion des nautischen Dreiecks auf die Erdkugel hat die Ecken Nordpol, Standort und Bildpunkt. + +\section{Standortbestimmung ohne elektronische Hilfsmittel} +\label{sta} +Um den eigenen Standort herauszufinden, wird in diesem Kapitel die Projektion des nautische Dreiecks auf die Erdkugel zur Hilfe genommen. +Mithilfe eines Sextanten, einem Jahrbuch und der sphärischen Trigonometrie kann man dann die Längen- und Breitengrade des eigenen Standortes bestimmen. +Was ein Sextant und ein Jahrbuch ist, wird im Abschnitt \ref{ephe} erklärt. +\begin{figure} + \begin{center} + \includegraphics[width=10cm]{papers/nav/bilder/dreieck.pdf} + \caption[Dreieck für die Standortbestimmung]{Dreieck für die Standortbestimmung} + \label{d1} + \end{center} +\end{figure} + + + + +\subsection{Ecke $P$ und $A$} +Unser eigener Standort ist der gesuchte Ecke $P$ und die Ecke $A$ ist in unserem Fall der Nordpol. +Der Vorteil an der Idee des nautischen Dreiecks ist, dass eine Ecke immer der Nordpol ist. +Somit ist diese Ecke immer bekannt und nur deswegen sind die Zusammenhänge von Rektaszension, Sternzeit und Deklination so einfach. + +\subsection{Ecke $B$ und $C$ - Bildpunkt von $X$ und $Y$} +Für die Standortermittlung benötigt man als weiteren Punkt ein Gestirn bzw. seinen Bildpunkt auf der Erdkugel. +Damit das trigonometrische Rechnen einfacher wird, werden hier zwei Gestirne zur Hilfe genommen. +Es gibt diverse Gestirne, die man nutzen kann wie zum Beispiel die Sonne, der Mond oder die vier Navigationsplaneten Venus, Mars, Jupiter und Saturn. + +Die Bildpunkte von den beiden Gestirnen $X$ und $Y$ bilden die beiden Ecken $B$ und $C$ im Dreieck der Abbildung \ref{d1}. +\subsection{Ephemeriden} +\label{ephe} +Zu all diesen Gestirnen gibt es Ephemeridentabellen. +Diese Tabellen enthalten die Rektaszensionen und Deklinationen in Abhängigkeit von der Zeit. + +\begin{figure} + \begin{center} + \includegraphics[width=\textwidth]{papers/nav/bilder/ephe.png} + \caption[Nautical Almanac Mai 2002]{Nautical Almanac Mai 2002} + \end{center} +\end{figure} + +\subsubsection{Deklination} +Die Deklination $\delta$ beschreibt den Winkel zwischen dem Himmelsäquator und Gestirn und entspricht dem Breitengrad des Gestirns. + +\subsubsection{Rektaszension und Sternzeit} +Die Rektaszension $\alpha$ gibt an, in welchem Winkel das Gestirn zum Frühlingspunkt, welcher der Nullpunkt auf dem Himmelsäquator ist, steht und geht vom Koordinatensystem der Himmelskugel aus. + +Die Tatsache, dass sich die Himmelskugel ca. vier Minuten schneller um die eigene Achse dreht als die Erdkugel, stellt hier ein kleines Problem dar. +Die Lösung ist die Sternzeit $\theta$. +Mit dieser können wir die schnellere Drehung der Himmelskugel ausgleichen. +Die Sternzeit geht vom Frühlungspunkt aus, an welchem die Sonne den Himmelsäquator schneidet und $\theta=0$ ist. +Für die Standortermittlung auf der Erdkugel ist es am einfachsten, wenn man die Sternzeit von Greenwich berechnet. +Für die Sternzeit von Greenwich $\theta$ braucht man als erstes das Julianische Datum $T$ vom aktuellen Tag, welches sich leicht nachschlagen lässt. +Im Anschluss berechnet man die Sternzeit von Greenwich + +\[\theta = 6^h 41^m 50^s.54841 + 8640184^s.812866 \cdot T + 0^s.093104 \cdot T^2 - 0^s.0000062 \cdot T^3.\] + +Wenn man die Sternzeit von Greenwich ausgerechnet hat, kann man den Längengrad des Gestirns $\lambda = \theta - \alpha$ bestimmen, wobei $\alpha$ die Rektaszension und $\theta$ die Sternzeit von Greenwich ist. +Dies gilt analog auch für das zweite Gestirn. +\subsubsection{Sextant} +Ein Sextant ist ein nautisches Messinstrument, mit dem man den Winkel zwischen der Blickrichtung zu weit entfernten Objekten bestimmen kann. Es wird vor allem der Winkelabstand vom Horizont zum Gestirn gemessen. +Man benutzt ihn vor allem für die astronomische Navigation auf See. + +\begin{figure} + \begin{center} + \includegraphics[width=10cm]{papers/nav/bilder/sextant.jpg} + \caption[Sextant]{Sextant} + \end{center} +\end{figure} +\subsection{Bestimmung des eigenen Standortes $P$} \label{p} +Wir nehmen die Abbildung \ref{d2} zur Hilfe. +Nun hat man die Koordinaten der beiden Gestirne und man weiss die Koordinaten des Nordpols. +Damit wir unseren Standort bestimmen können, bilden wir zuerst das Dreieck $ABC$, dann das Dreieck $BPC$ und zum Schluss noch das Dreieck $ABP$. +Auf diese Dreiecke können wir die einfachen Sätze der sphärischen Trigonometrie anwenden und benötigen lediglich ein Ephemeride zu den Gestirnen und einen Sextant. + +\begin{figure} + \begin{center} + \includegraphics[width=8cm]{papers/nav/bilder/dreieck.pdf} + \caption[Dreieck für die Standortbestimmung]{Dreieck für die Standortbestimmung} + \label{d2} + \end{center} +\end{figure} + +\subsubsection{Dreieck $ABC$} + +\begin{center} + \begin{tabular}{ l l l } + Ecke && Name \\ + \hline + $A$ && Nordpol \\ + $B$ && Bildpunkt des Gestirns $X$ \\ + $C$&& Bildpunkt des Gestirns $Y$ + \end{tabular} +\end{center} + +Mit unserem erlangten Wissen können wir nun alle Seiten des Dreiecks $ABC$ berechnen. +Dazu sind die folgenden vorbereiteten Berechnungen nötigt: + +\begin{enumerate} + \item Die Seite vom Nordpol zum Bildpunkt $X$ sei $c$, dann ist $c = \frac{\pi}{2} - \delta_1$. + \item Die Seite vom Nordpol zum Bildpunkt $Y$ sei $b$, dann ist $b = \frac{\pi}{2} - \delta_2$. + \item Der Innenwinkel bei der Ecke, wo der Nordpol ist sei $\alpha$, dann ist $ \alpha = |\lambda_1 - \lambda_2|$. +\end{enumerate} + +mit +\begin{center} + \begin{tabular}{ l l l } + Ecke && Name \\ + \hline + $\delta_1$ && Deklination vom Bildpunkt $X$ \\ + $\delta_2$ && Deklination vom Bildpunk $Y$ \\ + $\lambda_1 $&& Längengrad vom Bildpunkt $X$\\ + $\lambda_2$ && Längengrad vom Bildpunkt $Y$ + \end{tabular} +\end{center} + +Nun haben wir die beiden Seiten $c$ und $b$ und den Winkel $\alpha$, der sich zwischen diesen Seiten befindet. +Mithilfe des Seiten-Kosinussatzes +$\cos(a) = \cos(b)\cdot \cos(c) + \sin(b) \cdot \sin(c)\cdot \cos(\alpha)$ +können wir nun die dritte Seitenlänge bestimmen. +Es ist darauf zu achten, dass hier natürlich die Seitenlängen in Bogenmass sind und dementsprechend der Kosinus und Sinus verwendet wird. + +Jetzt fehlen noch die beiden anderen Innenwinkel $\beta$ und\ $\gamma$. +Diese bestimmen wir mithilfe des Kosinussatzes: \[\beta=\cos^{-1} \bigg[\frac{\cos(b)-\cos(a) \cdot \cos(c)}{\sin(a) \cdot \sin(c)}\bigg]\] und \[\gamma = \cos^{-1} \bigg[\frac{\cos(c)-\cos(b) \cdot \cos(a)}{\sin(a) \cdot \sin(b)}\bigg]\]. + +Schlussendlich haben wir die Seiten $a$, $b$ und $c$, die Ecken $A$,$B$ und $C$ und die Winkel $\alpha$, $\beta$ und $\gamma$ bestimmt und somit das ganze Kugeldreieck $ABC$ berechnet. + +\subsubsection{Dreieck $BPC$} +Wir bilden nun ein zweites Dreieck, welches die Ecken $B$ und $C$ des ersten Dreiecks besitzt. +Die dritte Ecke ist der eigene Standort $P$. +Unser Standort definiere sich aus einer geographischen Breite $\delta$ und einer geographischen Länge $\lambda$. + +Die Seite von $P$ zu $B$ sei $pb$ und die Seite von $P$ zu $C$ sei $pc$. +Die beiden Seitenlängen kann man mit dem Sextant messen und durch eine einfache Formel bestimmen, nämlich $pb=\frac{\pi}{2} - h_{B}$ und $pc=\frac{\pi}{2} - h_{C}$ +mit $h_B=$ Höhe von Gestirn in $B$ und $h_C=$ Höhe von Gestirn in $C$ mit Sextant gemessen. + +Zum Schluss müssen wir noch den Winkel $\beta_1$ mithilfe des Seiten-Kosinussatzes \[\cos(pb)=\cos(pc)\cdot\cos(a)+\sin(pc)\cdot\sin(a)\cdot\cos(\beta_1)\] mit den bekannten Seiten $pc$, $pb$ und $a$ bestimmen. +\subsubsection{Dreieck $ABP$} +Nun muss man eine Verbindungslinie des Standorts zwischen $P$ und $A$ ziehen. Die Länge $l$ dieser Linie entspricht der gesuchten geographischen Breite $\delta$. Diese lässt sich mithilfe des Dreiecks $ABP$, den bekannten Seiten $c$ und $pb$ und des Seiten-Kosinussatzes berechnen. +Für den Seiten-Kosinussatz benötigt es noch $\kappa=\beta + \beta_1$. +Somit ist \[\cos(l) = \cos(c)\cdot \cos(pb) + \sin(c) \cdot \sin(pb) \cdot \cos(\kappa)\] +und +\[ +\delta =\cos^{-1} [\cos(c) \cdot \cos(pb) + \sin(c) \cdot \sin(pb) \cdot \cos(\kappa)]. +\] + +Für die geographische Länge $\lambda$ des eigenen Standortes nutzt man den Winkel $\omega$, welcher sich im Dreieck $ACP$ in der Ecke bei $A$ befindet. +Mithilfe des Kosinussatzes können wir \[\omega = \cos^{-1} \bigg[\frac{\cos(pb)-\cos(c) \cdot \cos(l)}{\sin(c) \cdot \sin(l)}\bigg]\] berechnen und bekommen schlussendlich die geographische Länge +\[\lambda=\lambda_1 - \omega,\] +wobei $\lambda_1$ die Länge des Bildpunktes $X$ von $C$ ist. diff --git a/buch/papers/nav/packages.tex b/buch/papers/nav/packages.tex index 9faa48d..bedaccd 100644 --- a/buch/papers/nav/packages.tex +++ b/buch/papers/nav/packages.tex @@ -8,3 +8,5 @@ % following example %\usepackage{packagename} +\usepackage{amsmath} +\usepackage{cancel} diff --git a/buch/papers/nav/references.bib b/buch/papers/nav/references.bib index 236323b..c67aaac 100644 --- a/buch/papers/nav/references.bib +++ b/buch/papers/nav/references.bib @@ -32,4 +32,10 @@ pages = {607--627}, url = {https://doi.org/10.1016/j.acha.2017.11.004} } +@online{nav:winkel, + editor={Unbekannt}, + title = {Sphärische Trigonometrie}, + year={2022}, + url = {https://de.wikipedia.org/wiki/Sphärische_Trigonometrie} +} diff --git a/buch/papers/nav/sincos.tex b/buch/papers/nav/sincos.tex new file mode 100644 index 0000000..b64d100 --- /dev/null +++ b/buch/papers/nav/sincos.tex @@ -0,0 +1,24 @@ + + + +\section{Sphärische Navigation und Winkelfunktionen} +\rhead{Sphärische Navigation und Winkelfunktionen} +Es gibt Hinweise, dass sich schon die Babylonier und Ägypter vor 4000 Jahren mit Problemen der sphärischen Trigonometrie beschäftigt haben, um den Lauf von Gestirnen zu berechnen. +Jedoch konnten sie dieses Problem nicht lösen. +Die Geschichte der sphärischen Trigonometrie ist daher eng mit der Astronomie verknüpft. Ca. 350 BCE dachten die Griechen über Kugelgeometrie nach, sie wurde damit zu einer Hilfswissenschaft der Astronomen. + +Zwischen 190 v. Chr. und 120 v. Chr. lebte ein griechischer Astronom namens Hipparchos. +Dieser entwickelte unter anderem die Chordentafeln, welche die Chordfunktionen, auch Chord genannt, beinhalten. +Chord ist der Vorgänger der Sinusfunktion und galt damals als wichtigste Grundlage der Trigonometrie. +In dieser Zeit wurden auch die ersten Sternenkarten angefertigt. Damals kannte man die Sinusfunktionen noch nicht. + +Die Definition der trigonometrischen Funktionen aus Griechenland ermöglicht nur, rechtwinklige Dreiecke zu berechnen. +Aus Indien stammten die ersten Ansätze zu den Kosinussätzen. +Aufbauend auf den indischen und griechischen Forschungen entwickeln die Araber um das 9. Jahrhundert den Sinussatz. +Die Beziehung zwischen Seiten und Winkeln sind komplizierter und als Sinus- und Kosinussätze bekannt. +Doch ein paar weitere Jahrhunderte vergingen bis zu diesem Thema wieder verstärkt Forschung betrieben wurde, da im 15. Jahrhundert grosse Entdeckungsreisen, hauptsächlich per Schiff, erfolgten und die Orientierung mit Sternen vermehrt an Wichtigkeit gewann. +Man nutzte für die Kartographie nun die Kugelgeometrie, um die Genauigkeit zu erhöhen. +Der Sinussatz, die Tangensfunktion und der neu entwickelte Seitenkosinussatz wurden in dieser Zeit bereits verwendet und im darauffolgenden Jahrhundert folgte der Winkelkosinussatz. + +Durch weitere mathematische Entwicklungen wie den Logarithmus wurden im Laufe des nächsten Jahrhunderts viele neue Methoden und kartographische Anwendungen der Kugelgeometrie entdeckt. +Im 19. und 20. Jahrhundert wurden weitere nicht-euklidische Geometrien entwickelt und die sphärische Trigonometrie fand auch ihre Anwendung in der Relativitätstheorie.
\ No newline at end of file diff --git a/buch/papers/nav/teil0.tex b/buch/papers/nav/teil0.tex deleted file mode 100644 index f3323a9..0000000 --- a/buch/papers/nav/teil0.tex +++ /dev/null @@ -1,22 +0,0 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 0\label{nav:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{nav:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. - - diff --git a/buch/papers/nav/teil1.tex b/buch/papers/nav/teil1.tex deleted file mode 100644 index 996202f..0000000 --- a/buch/papers/nav/teil1.tex +++ /dev/null @@ -1,55 +0,0 @@ -% -% teil1.tex -- Beispiel-File für das Paper -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 1 -\label{nav:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{nav:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{nav:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. - -Et harum quidem rerum facilis est et expedita distinctio -\ref{nav:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{nav:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. - - diff --git a/buch/papers/nav/teil2.tex b/buch/papers/nav/teil2.tex deleted file mode 100644 index 5a52e03..0000000 --- a/buch/papers/nav/teil2.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil2.tex -- Beispiel-File für teil2 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 2 -\label{nav:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{nav:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/nav/teil3.tex b/buch/papers/nav/teil3.tex deleted file mode 100644 index 2b5d2d5..0000000 --- a/buch/papers/nav/teil3.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil3.tex -- Beispiel-File für Teil 3 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 3 -\label{nav:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{nav:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/nav/trigo.tex b/buch/papers/nav/trigo.tex new file mode 100644 index 0000000..483b612 --- /dev/null +++ b/buch/papers/nav/trigo.tex @@ -0,0 +1,140 @@ + +\section{Sphärische Trigonometrie} +\rhead{Sphärische Trigonometrie} + +\subsection{Das Kugeldreieck} +Damit man die Definition des Kugeldreiecks versteht, müssen wir zuerst Begriffe wie Grosskreisebene und Grosskreisbögen verstehen. +Ein Grosskreis ist ein grösstmöglicher Kreis auf einer Kugeloberfläche. +Sein Mittelpunkt fällt immer mit dem Mittelpunkt der Kugel zusammen und ein Schnitt auf dem Großkreis teilt die Kugel in jedem Fall in zwei gleich grosse Hälften. +Da es unendlich viele Möglichkeiten gibt, eine Kugel so zu zerschneiden, dass die Schnittebene den Kugelmittelpunkt trifft, gibt es auch unendlich viele Grosskreise. +Grosskreisbögen sind die kürzesten Verbindungslinien zwischen zwei Punkten auf der Kugel. + +Da die Länge der Grosskreisbögen wegen der Abhängigkeit vom Kugelradius ungeeignet ist, wird die Grösse einer Seite mit dem zugehörigen Mittelpunktwinkel des Grosskreisbogens angegeben. +Laut dieser Definition ist die Seite $c$ der Winkel $AMB$, wobei der Punkt $M$ die Erdmitte ist. + +Man kann bei Kugeldreiecken nicht so einfach unterscheiden, was Innen oder Aussen ist. +Wenn man drei Eckpunkte miteinander verbindet, ergeben sich immer 16 Kugeldreiecke. + +Werden drei voneinander verschiedene Punkte, die sich nicht auf derselben Grosskreisebene befinden, mit Grosskreisbögen verbunden werden, so entsteht ein Kugeldreieck $ABC$. +Für ein Kugeldreieck gilt, dass die Summe der drei Seiten kleiner als $3\pi$ aber grösser als 0 ist. +$A$, $B$ und $C$ sind die Ecken des Dreiecks und dessen Seiten sind die Grosskreisbögen zwischen den Eckpunkten (siehe Abbildung \ref{kugel}). + +\begin{figure} + \begin{center} + \includegraphics[width=3.5cm]{papers/nav/bilder/kugel1.png} + \caption[Das Kugeldreieck]{Das Kugeldreieck} + \label{kugel} + \end{center} + +\end{figure} + +\subsection{Rechtwinkliges Dreieck und rechtseitiges Dreieck} +In der sphärischen Trigonometrie gibt es eine Symmetrie zwischen Seiten und Winkeln, also zu jedem Satz über Seiten und Winkel gibt es einen entsprechenden Satz, mit dem man Winkel durch Seiten und Seiten durch Winkel ersetzt hat. + +Wie auch im ebenen Dreieck gibt es beim Kugeldreieck auch ein rechtwinkliges Kugeldreieck, bei dem ein Winkel $\frac{\pi}{2}$ ist. +Ein rechtseitiges Dreieck gibt es jedoch nur beim Kugeldreieck, weil dort eine Seitenlänge $\frac{\pi}{2}$ lang sein muss, wie man in der Abbildung \ref{recht} sehen kann. + +\begin{figure} + + \begin{center} + \includegraphics[width=5cm]{papers/nav/bilder/recht.jpg} + \caption[Rechtseitiges und rechtwinkliges Kugeldreieck]{Rechtseitiges und rechtwinkliges Kugeldreieck} + \label{recht} + \end{center} +\end{figure} + +\subsection{Winkelsumme und Flächeninhalt} +\label{trigo} +%\begin{figure} ----- Brauche das Bild eigentlich nicht! + +% \begin{center} +% \includegraphics[width=8cm]{papers/nav/bilder/kugel2.png} +% \caption[Winkelangabe im Kugeldreieck]{Winkelangabe im Kugeldreieck} +% \end{center} +%\end{figure} + + +Die Winkel eines Kugeldreiecks sind die, welche die Halbtangenten in den Eckpunkten einschliessen. +Für die Summe der Innenwinkel gilt +\begin{align} + \alpha+\beta+\gamma &= \frac{F}{r^2} + \pi \quad \text{und} \quad \alpha+\beta+\gamma > \pi, \nonumber +\end{align} +wobei $F$ der Flächeninhalt des Kugeldreiecks ist. +\subsubsection{Sphärischer Exzess} +Der sphärische Exzess +\begin{align} + \epsilon = \alpha+\beta+\gamma - \pi \nonumber +\end{align} +beschreibt die Abweichung der Innenwinkelsumme von $\pi$ und ist proportional zum Flächeninhalt des Kugeldreiecks. + +\subsubsection{Flächeninnhalt} +Mithilfe des Radius $r$ und dem sphärischen Exzess $\epsilon$ gilt für den Flächeninhalt +\[ F=\frac{\pi \cdot r^2}{\frac{\pi}{2}} \cdot \epsilon = 2 \cdot r^2 \cdot \epsilon.\] + +In diesem Kapitel sind keine Begründungen für die erhaltenen Resultate im Abschnitt \ref{trigo} zu erwarten und können in der Referenz \cite{nav:winkel} nachgeschlagen werden. +\subsection{Seiten und Winkelberechnung} +Es gibt in der sphärischen Trigonometrie eigentlich gar keinen Satz des Pythagoras, wie man ihn aus der zweidimensionalen Geometrie kennt. +Es gibt aber einen Satz, der alle drei Seiten eines rechtwinkligen Kugeldreiecks in eine Beziehung bringt. Dieser Satz gilt jedoch nicht für das rechtseitige Kugeldreieck. +Die Approximation im nächsten Abschnitt wird erklären, warum man dies als eine Form des Satzes des Pythagoras sehen kann. +Es gilt nämlich: +\begin{align} + \cos c = \cos a \cdot \cos b \quad \text{wenn} \nonumber & + \quad \alpha = \frac{\pi}{2}. \nonumber +\end{align} + +\subsubsection{Approximation von kleinen Dreiecken} +Die Sätze in der ebenen Trigonometrie sind eigentlich Approximationen der sphärischen Trigonometrie. +So ist der Sinussatz in der Ebene nur eine Annäherung des sphärischen Sinussatzes. Das Gleiche gilt für den Kosinussatz und dem Satz des Pythagoras. +So kann mit dem Taylorpolynom 2. Grades den Sinus und den Kosinus vom Sphärischen in die Ebene approximieren: +\begin{align} + \sin(a) &\approx a \nonumber \intertext{und} + \cos(a)&\approx 1-\frac{a^2}{2}.\nonumber +\end{align} +Es gibt ebenfalls folgende Approximierung der Seiten von der Sphäre in die Ebene: +\begin{align} + a &\approx \sin(a) \nonumber \intertext{und} + \frac{a^2}{2} &\approx 1-\cos(a). \nonumber +\end{align} +Die Korrespondenzen zwischen der ebenen und sphärischen Trigonometrie werden in den kommenden Abschnitten erläutert. + +\subsubsection{Sphärischer Satz des Pythagoras} +Die Korrespondenz \[ a^2 \approx 1- \cos(a)\] liefert unter anderem einen entsprechenden Satz des Pythagoras, nämlich + +\begin{align*} + \cos(a)\cdot \cos(b) &= \cos(c), \\ + \bigg[1-\frac{a^2}{2}\bigg] \cdot \bigg[1-\frac{b^2}{2}\bigg] &= 1-\frac{c^2}{2}. + \intertext{Höhere Potenzen vernachlässigen:} + \xcancel{1}- \frac{a^2}{2} - \frac{b^2}{2} + \xcancel{\frac{a^2b^2}{4}}&= \xcancel{1}- \frac{c^2}{2} \\ + -a^2-b^2 &=-c^2\\ + a^2+b^2&=c^2. +\end{align*} +Dies ist der wohlbekannte ebene Satz des Pythagoras. + +\subsubsection{Sphärischer Sinussatz} +Den sphärischen Sinussatz +\begin{align} + \frac{\sin (a)}{\sin (\alpha)} =\frac{\sin (b)}{\sin (\beta)} = \frac{\sin (c)}{\sin (\gamma)} \nonumber +\end{align} +kann man ebenfalls mit der Korrespondenz \[a \approx \sin(a) \] zum entsprechenden ebenen Sinussatz \[\frac{a}{\sin (\alpha)} =\frac{b}{\sin (\beta)} = \frac{c}{\sin (\gamma)}\] approximieren. + + +\subsubsection{Sphärische Kosinussätze} +In der sphärischen Trigonometrie gibt es den Seitenkosinussatz +\begin{align} + \cos \ a = \cos b \cdot \cos c + \sin b \cdot \sin c \cdot \cos \alpha \nonumber +\end{align} %Seitenkosinussatz +und den Winkelkosinussatz +\begin{align} + \cos \gamma = -\cos \alpha \cdot \cos \beta + \sin \alpha \cdot \sin \beta \cdot \cos c, \nonumber +\end{align} der nur in der sphärischen Trigonometrie vorhanden ist. + +Analog gibt es auch beim Seitenkosinussatz eine Korrespondenz zu \[ a^2 \leftrightarrow 1-\cos(a),\] die den ebenen Kosinussatz herleiten lässt, nämlich +\begin{align} + \cos(a)&= \cos(b)\cdot \cos(c) + \sin(b) \cdot \sin(c)\cdot \cos(\alpha) \\ + 1-\frac{a^2}{2} &= \bigg[1-\frac{b^2}{2}\bigg]\bigg[1-\frac{c^2}{2}\bigg]+bc\cdot\cos(\alpha). \intertext{Höhere Potenzen vernachlässigen:} + \xcancel{1}-\frac{a^2}{2} &= \xcancel{1}-\frac{b^2}{2}-\frac{c^2}{2} \xcancel{+\frac{b^2c^2}{4}}+bc \cdot \cos(\alpha)\\ + a^2&=b^2+c^2-2bc \cdot \cos(\alpha). +\end{align} + + +
\ No newline at end of file diff --git a/buch/papers/zeta/analytic_continuation.tex b/buch/papers/zeta/analytic_continuation.tex index bb95b92..0ccc116 100644 --- a/buch/papers/zeta/analytic_continuation.tex +++ b/buch/papers/zeta/analytic_continuation.tex @@ -1,7 +1,26 @@ \section{Analytische Fortsetzung} \label{zeta:section:analytische_fortsetzung} \rhead{Analytische Fortsetzung} -%TODO missing Text +Die analytische Fortsetzung der Riemannschen Zetafunktion ist äusserst interessant. +Sie ermöglicht die Berechnung von $\zeta(-1)$ und weiterer spannender Werte. +So liegen zum Beispiel unendlich viele Nullstellen der Zetafunktion bei $\Re(s) = 0.5$. +Diese sind relevant für die Primzahlverteilung und sind Gegenstand der Riemannschen Vermutung. + +Es werden zwei verschiedene Fortsetzungen benötigt. +Die erste erweitert die Zetafunktion auf $\Re(s) > 0$. +Die zweite verwendet eine Spiegelung an der $\Re(s) = 0.5$ Linie und erschliesst damit die ganze komplexe Ebene. +Eine grafische Darstellung dieses Plans ist in Abbildung \ref{zeta:fig:continuation_overview} zu sehen. +\begin{figure} + \centering + \input{papers/zeta/continuation_overview.tikz.tex} + \caption{ + Die verschiedenen Abschnitte der Riemannschen Zetafunktion. + Die originale Definition von \eqref{zeta:equation1} ist im grünen Bereich gültig. + Für den blauen Bereich gilt \eqref{zeta:equation:fortsetzung1}. + Um den roten Bereich zu bekommen verwendet die Funktionalgleichung \eqref{zeta:equation:functional} eine Spiegelung an $\Re(s) = 0.5$. + } + \label{zeta:fig:continuation_overview} +\end{figure} \subsection{Fortsetzung auf $\Re(s) > 0$} \label{zeta:subsection:auf_bereich_ge_0} Zuerst definieren die Dirichletsche Etafunktion als @@ -14,8 +33,8 @@ Zuerst definieren die Dirichletsche Etafunktion als wobei die Reihe bis auf die alternierenden Vorzeichen die selbe wie in der Zetafunktion ist. Diese Etafunktion konvergiert gemäss dem Leibnitz-Kriterium im Bereich $\Re(s) > 0$, da dann die einzelnen Glieder monoton fallend sind. -Wenn wir es nun schaffen, die sehr ähnliche Zetafunktion mit der Etafunktion auszudrücken, dann haben die gesuchte Fortsetzung. -Die folgenden Schritte zeigen, wie man dazu kommt: +Wenn wir es nun schaffen, die sehr ähnliche Zetafunktion durch die Etafunktion auszudrücken, dann haben die gesuchte Fortsetzung. +Zuerst wiederholen wir zweimal die Definition der Zetafunktion \eqref{zeta:equation1}, wobei wir sie einmal durch $2^{s-1}$ teilen \begin{align} \zeta(s) &= @@ -26,8 +45,10 @@ Die folgenden Schritte zeigen, wie man dazu kommt: \zeta(s) &= \sum_{n=1}^{\infty} - \frac{2}{(2n)^s} \label{zeta:align2} - \\ + \frac{2}{(2n)^s}. \label{zeta:align2} +\end{align} +Durch Subtraktion der beiden Gleichungen \eqref{zeta:align1} minus \eqref{zeta:align2}, ergibt sich +\begin{align} \left(1 - \frac{1}{2^{s-1}} \right) \zeta(s) &= @@ -36,14 +57,15 @@ Die folgenden Schritte zeigen, wie man dazu kommt: + \frac{1}{3^s} \underbrace{-\frac{2}{4^s} + \frac{1}{4^s}}_{-\frac{1}{4^s}} \ldots - && \text{\eqref{zeta:align1}} - \text{\eqref{zeta:align2}} - \\ - &= \eta(s) \\ + &= \eta(s). +\end{align} +Dies ist die Fortsetzung auf den noch unbekannten Bereich $0 < \Re(s) < 1$ +\begin{equation} \label{zeta:equation:fortsetzung1} \zeta(s) - &= + := \left(1 - \frac{1}{2^{s-1}} \right)^{-1} \eta(s). -\end{align} +\end{equation} \subsection{Fortsetzung auf ganz $\mathbb{C}$} \label{zeta:subsection:auf_ganz} Für die Fortsetzung auf den Rest von $\mathbb{C}$, verwenden wir den Zusammenhang von Gamma- und Zetafunktion aus \ref{zeta:section:zusammenhang_mit_gammafunktion}. @@ -54,125 +76,198 @@ Wir beginnen damit, die Gammafunktion für den halben Funktionswert zu berechnen \int_0^{\infty} t^{\frac{s}{2}-1} e^{-t} dt. \end{equation} Nun substituieren wir $t$ mit $t = \pi n^2 x$ und $dt=\pi n^2 dx$ und erhalten -\begin{align} +\begin{equation} \Gamma \left( \frac{s}{2} \right) - &= + = \int_0^{\infty} (\pi n^2)^{\frac{s}{2}} x^{\frac{s}{2}-1} e^{-\pi n^2 x} - dx - && \text{Division durch } (\pi n^2)^{\frac{s}{2}} - \\ + \,dx. +\end{equation} +Analog zum Abschnitt \ref{zeta:section:zusammenhang_mit_gammafunktion} teilen wir durch $(\pi n^2)^{\frac{s}{2}}$ +\begin{equation} \frac{\Gamma \left( \frac{s}{2} \right)}{\pi^{\frac{s}{2}} n^s} - &= + = \int_0^{\infty} x^{\frac{s}{2}-1} e^{-\pi n^2 x} - dx - && \text{Zeta durch Summenbildung } \sum_{n=1}^{\infty} - \\ + \,dx, +\end{equation} +und finden Zeta durch die Summenbildung $\sum_{n=1}^{\infty}$ +\begin{equation} \frac{\Gamma \left( \frac{s}{2} \right)}{\pi^{\frac{s}{2}}} \zeta(s) - &= + = \int_0^{\infty} x^{\frac{s}{2}-1} \sum_{n=1}^{\infty} e^{-\pi n^2 x} - dx. \label{zeta:equation:integral1} -\end{align} + \,dx. \label{zeta:equation:integral1} +\end{equation} Die Summe kürzen wir ab als $\psi(x) = \sum_{n=1}^{\infty} e^{-\pi n^2 x}$. -%TODO Wieso folgendes -> aus Fourier Signal -Es gilt +Im Abschnitt \ref{zeta:subsec:poisson_summation} wird die poissonsche Summenformel $\sum f(n) = \sum F(n)$ bewiesen. +In unserem Problem ist $f(n) = e^{-\pi n^2 x}$ und die zugehörige Fouriertransformation $F(n)$ ist +\begin{equation} + F(n) + = + \mathcal{F} + ( + e^{-\pi n^2 x} + ) + = + \frac{1}{\sqrt{x}} + e^{\frac{-n^2 \pi}{x}}. +\end{equation} +Dadurch ergibt sich \begin{equation}\label{zeta:equation:psi} - \psi(x) + \sum_{n=-\infty}^{\infty} + e^{-\pi n^2 x} = + \frac{1}{\sqrt{x}} + \sum_{n=-\infty}^{\infty} + e^{\frac{-n^2 \pi}{x}}, +\end{equation} +wobei wir die Summen so verändern müssen, dass sie bei $n=1$ beginnen und wir $\psi(x)$ erhalten als +\begin{align} + 2 + \sum_{n=1}^{\infty} + e^{-\pi n^2 x} + + + 1 + &= + \frac{1}{\sqrt{x}} + \left( + 2 + \sum_{n=1}^{\infty} + e^{\frac{-n^2 \pi}{x}} + + + 1 + \right) + \\ + 2 + \psi(x) + + + 1 + &= + \frac{1}{\sqrt{x}} + \left( + 2 + \psi\left(\frac{1}{x}\right) + + + 1 + \right) + \\ + \psi(x) + &= - \frac{1}{2} + \frac{\psi\left(\frac{1}{x} \right)}{\sqrt{x}} - + \frac{1}{2 \sqrt{x}}. -\end{equation} + + \frac{1}{2 \sqrt{x}}.\label{zeta:equation:psi} +\end{align} +Diese Gleichung wird später wichtig werden. Zunächst teilen wir nun das Integral aus \eqref{zeta:equation:integral1} auf als \begin{equation}\label{zeta:equation:integral2} \int_0^{\infty} x^{\frac{s}{2}-1} \psi(x) - dx + \,dx = + \underbrace{ \int_0^{1} x^{\frac{s}{2}-1} \psi(x) - dx + \,dx + }_{I_1} + + \underbrace{ \int_1^{\infty} x^{\frac{s}{2}-1} \psi(x) - dx, + \,dx + }_{I_2} + = + I_1 + I_2, \end{equation} -wobei wir uns nun auf den ersten Teil konzentrieren werden. -Dabei setzen wir das Wissen aus \eqref{zeta:equation:psi} ein und erhalten +wobei wir uns nun auf den ersten Teil $I_1$ konzentrieren werden. +Dabei setzen wir die Definition von $\psi(x)$ aus \eqref{zeta:equation:psi} ein und erhalten \begin{align} + I_1 + = \int_0^{1} x^{\frac{s}{2}-1} \psi(x) - dx + \,dx &= \int_0^{1} x^{\frac{s}{2}-1} \left( - \frac{1}{2} + \frac{\psi\left(\frac{1}{x} \right)}{\sqrt{x}} - + \frac{1}{2 \sqrt{x}}. + + \frac{1}{2 \sqrt{x}} \right) - dx + \,dx \\ &= \int_0^{1} x^{\frac{s}{2}-\frac{3}{2}} \psi \left( \frac{1}{x} \right) + \frac{1}{2} - \left( + \biggl( x^{\frac{s}{2}-\frac{3}{2}} - x^{\frac{s}{2}-1} - \right) - dx + \biggl) + \,dx \\ &= + \underbrace{ \int_0^{1} x^{\frac{s}{2}-\frac{3}{2}} \psi \left( \frac{1}{x} \right) - dx - + \frac{1}{2} + \,dx + }_{I_3} + + + \underbrace{ + \frac{1}{2} \int_0^1 x^{\frac{s}{2}-\frac{3}{2}} - x^{\frac{s}{2}-1} - dx. \label{zeta:equation:integral3} + \,dx + }_{I_4}. \label{zeta:equation:integral3} \end{align} -Dabei kann das zweite Integral gelöst werden als +Dabei kann das zweite Integral $I_4$ gelöst werden als \begin{equation} + I_4 + = \frac{1}{2} \int_0^1 x^{\frac{s}{2}-\frac{3}{2}} - x^{\frac{s}{2}-1} - dx + \,dx = \frac{1}{s(s-1)}. \end{equation} -Das erste Integral aus \eqref{zeta:equation:integral3} mit $\psi \left(\frac{1}{x} \right)$ ist nicht lösbar in dieser Form. +Das erste Integral $I_3$ aus \eqref{zeta:equation:integral3} mit $\psi \left(\frac{1}{x} \right)$ ist nicht lösbar in dieser Form. Deshalb substituieren wir $x = \frac{1}{u}$ und $dx = -\frac{1}{u^2}du$. Die untere Integralgrenze wechselt ebenfalls zu $x_0 = 0 \rightarrow u_0 = \infty$. Dies ergibt \begin{align} + I_3 + = \int_{\infty}^{1} - {\frac{1}{u}}^{\frac{s}{2}-\frac{3}{2}} + \left( + \frac{1}{u} + \right)^{\frac{s}{2}-\frac{3}{2}} \psi(u) \frac{-du}{u^2} &= \int_{1}^{\infty} - {\frac{1}{u}}^{\frac{s}{2}-\frac{3}{2}} + \left( + \frac{1}{u} + \right)^{\frac{s}{2}-\frac{3}{2}} \psi(u) \frac{du}{u^2} \\ @@ -180,21 +275,23 @@ Dies ergibt \int_{1}^{\infty} x^{(-1) \left(\frac{s}{2}+\frac{1}{2}\right)} \psi(x) - dx, + \,dx, \end{align} wobei wir durch Multiplikation mit $(-1)$ die Integralgrenzen tauschen dürfen. Es ist zu beachten das diese Grenzen nun identisch mit den Grenzen des zweiten Integrals von \eqref{zeta:equation:integral2} sind. Wir setzen beide Lösungen ein in Gleichung \eqref{zeta:equation:integral3} und erhalten \begin{equation} + I_1 + = \int_0^{1} x^{\frac{s}{2}-1} \psi(x) - dx + \,dx = \int_{1}^{\infty} x^{(-1) \left(\frac{s}{2}+\frac{1}{2}\right)} \psi(x) - dx + \,dx + \frac{1}{s(s-1)}. \end{equation} @@ -206,12 +303,12 @@ Dieses Resultat setzen wir wiederum ein in \eqref{zeta:equation:integral2}, um s \int_0^{1} x^{\frac{s}{2}-1} \psi(x) - dx + \,dx + \int_1^{\infty} x^{\frac{s}{2}-1} \psi(x) - dx + \,dx \nonumber \\ &= @@ -220,12 +317,12 @@ Dieses Resultat setzen wir wiederum ein in \eqref{zeta:equation:integral2}, um s \int_{1}^{\infty} x^{(-1) \left(\frac{s}{2}+\frac{1}{2}\right)} \psi(x) - dx + \,dx + \int_1^{\infty} x^{\frac{s}{2}-1} \psi(x) - dx + \,dx \\ &= \frac{1}{s(s-1)} @@ -237,7 +334,7 @@ Dieses Resultat setzen wir wiederum ein in \eqref{zeta:equation:integral2}, um s x^{\frac{s}{2}-1} \right) \psi(x) - dx + \,dx \\ &= \frac{-1}{s(1-s)} @@ -249,7 +346,7 @@ Dieses Resultat setzen wir wiederum ein in \eqref{zeta:equation:integral2}, um s x^{\frac{s}{2}} \right) \frac{\psi(x)}{x} - dx, + \,dx, \end{align} zu erhalten. Wenn wir dieses Resultat genau anschauen, erkennen wir dass sich nichts verändert wenn $s$ mit $1-s$ ersetzt wird. @@ -261,4 +358,120 @@ Somit haben wir die analytische Fortsetzung gefunden als \frac{\Gamma \left( \frac{1-s}{2} \right)}{\pi^{\frac{1-s}{2}}} \zeta(1-s). \end{equation} +%TODO Definitionen und Gleichungen klarer unterscheiden + +\subsection{Poissonsche Summenformel} \label{zeta:subsec:poisson_summation} + +Der Beweis für Gleichung \ref{zeta:equation:psi} folgt direkt durch die poissonsche Summenformel. +Um diese zu beweisen, berechnen wir zunächst die Fourierreihe der Dirac Delta Funktion. + +\begin{lemma} + Die Fourierreihe der periodischen Dirac Delta Funktion $\sum \delta(x - 2\pi k)$ ist + \begin{equation} \label{zeta:equation:fourier_dirac} + \sum_{k=-\infty}^{\infty} + \delta(x - 2\pi k) + = + \frac{1}{2\pi} + \sum_{n=-\infty}^{\infty} + e^{i n x}. + \end{equation} +\end{lemma} + +\begin{proof}[Beweis] + Eine Fourierreihe einer beliebigen periodischen Funktion $f(x)$ berechnet sich als + \begin{align} + f(x) + &= + \sum_{n=-\infty}^{\infty} + c_n + e^{i n x} \\ + c_n + &= + \frac{1}{2\pi} + \int_{-\pi}^{\pi} + f(x) + e^{-i n x} + \, dx. + \end{align} + Wenn $f(x)=\delta(x)$ eingesetz wird ergeben sich konstante Koeffizienten + \begin{equation} + c_n + = + \frac{1}{2\pi} + \int_{-\pi}^{\pi} + \delta(x) + e^{-i n x} + \, dx + = + \frac{1}{2\pi}, + \end{equation} + womit die sehr einfache Fourierreihe der Dirac Delta Funktion berechnet wäre. +\end{proof} + +\begin{satz}[Poissonsche Summernformel] + Die Summe einer Funktion $f(n)$ über alle ganzen Zahlen $n$ ist äquivalent zur Summe ihrer Fouriertransformation $F(k)$ über alle ganzen Zahlen $k$ + \begin{equation} + \sum_{n=-\infty}^{\infty} + f(n) + = + \sum_{k=-\infty}^{\infty} + F(k). + \end{equation} +\end{satz} +\begin{proof}[Beweis] + Wir schreiben die Summe über die Fouriertransformation aus + \begin{align} + \sum_{k=-\infty}^{\infty} + F(k) + &= + \sum_{k=-\infty}^{\infty} + \int_{-\infty}^{\infty} + f(x) + e^{-i 2\pi x k} + \, dx + \\ + &= + \int_{-\infty}^{\infty} + f(x) + \underbrace{ + \sum_{k=-\infty}^{\infty} + e^{-i 2\pi x k} + }_{\text{\eqref{zeta:equation:fourier_dirac}}} + \, dx, + \end{align} + und verwenden die Fouriertransformation der Dirac Funktion aus \eqref{zeta:equation:fourier_dirac} + \begin{align} + \sum_{k=-\infty}^{\infty} + e^{-i 2\pi x k} + &= + 2 \pi + \sum_{k=-\infty}^{\infty} + \delta(-2\pi x - 2\pi k) + \\ + &= + \frac{2 \pi}{2 \pi} + \sum_{k=-\infty}^{\infty} + \delta(x + k). + \end{align} + Wenn wir dies einsetzen und erhalten wir den gesuchten Beweis für die poissonsche Summenformel + \begin{equation} + \sum_{k=-\infty}^{\infty} + F(k) + = + \int_{-\infty}^{\infty} + f(x) + \sum_{k=-\infty}^{\infty} + \delta(x + k) + \, dx + = + \sum_{k=-\infty}^{\infty} + \int_{-\infty}^{\infty} + f(x) + \delta(x + k) + \, dx + = + \sum_{k=-\infty}^{\infty} + f(k). + \end{equation} +\end{proof} diff --git a/buch/papers/zeta/continuation_overview.tikz.tex b/buch/papers/zeta/continuation_overview.tikz.tex new file mode 100644 index 0000000..836ab1d --- /dev/null +++ b/buch/papers/zeta/continuation_overview.tikz.tex @@ -0,0 +1,18 @@ +\begin{tikzpicture}[>=stealth', auto, node distance=0.9cm, scale=2, + dot/.style={fill, circle, inner sep=0, minimum size=0.1cm}] + + \draw[->] (-2,0) -- (-1,0) node[dot]{} node[anchor=north]{$-1$} -- (0,0) node[anchor=north west]{$0$} -- (0.5,0) node[anchor=north west]{$0.5$}-- (1,0) node[anchor=north west]{$1$} -- (2,0) node[anchor=west]{$\Re(s)$}; + + \draw[->] (0,-1.2) -- (0,1.2) node[anchor=south]{$\Im(s)$}; + \begin{scope}[yscale=0.1] + \draw[] (1,-1) -- (1,1); + \end{scope} + \draw[dotted] (0.5,-1) -- (0.5,1); + + \begin{scope}[] + \fill[opacity=0.2, red] (-1.8,1) rectangle (0, -1); + \fill[opacity=0.2, blue] (0,1) rectangle (1, -1); + \fill[opacity=0.2, green] (1,1) rectangle (1.8, -1); + \end{scope} + +\end{tikzpicture} diff --git a/buch/papers/zeta/euler_product.tex b/buch/papers/zeta/euler_product.tex new file mode 100644 index 0000000..a6ed512 --- /dev/null +++ b/buch/papers/zeta/euler_product.tex @@ -0,0 +1,85 @@ +\section{Eulerprodukt} \label{zeta:section:eulerprodukt} +\rhead{Eulerprodukt} + +Das Eulerprodukt stellt die Verbindung der Zetafunktion und der Primzahlen her. +Diese Verbindung ist sehr wichtig, da durch sie eine Aussage zur Primzahlverteilung gemacht werden kann. +Die Verteilung der Primzahlen ist Gegenstand der Riemannschen Vermutung, welche eines der grössten ungelösten Probleme der Mathematik ist. + +\begin{satz} + Für alle Zahlen $s$ mit $\Re(s) > 1$ ist die Zetafunktion identisch mit dem unendlichen Eulerprodukt + \begin{equation}\label{zeta:eq:eulerprodukt} + \zeta(s) + = + \sum_{n=1}^\infty + \frac{1}{n^s} + = + \prod_{p \in P} + \frac{1}{1-p^{-s}} + \end{equation} + wobei $P$ die Menge aller Primzahlen darstellt. +\end{satz} + +\begin{proof}[Beweis] + Der Beweis startet mit dem Eulerprodukt und stellt dieses so um, dass die Zetafunktion erscheint. + Als erstes ersetzen wir die Faktoren durch geometrische Reihen + \begin{equation} + \prod_{i=1}^{\infty} + \frac{1}{1-p^{-s}} + = + \prod_{p \in P} + \sum_{k_i=0}^{\infty} + \left( + \frac{1}{p_i^s} + \right)^{k_i} + = + \prod_{p \in P} + \sum_{k_i=0}^{\infty} + \frac{1}{p_i^{s k_i}}, + \end{equation} + dabei iteriert der Index $i$ über alle Primzahlen $p_i$. + Durch Ausschreiben der Multiplikation und Ausklammern der Summen erhalten wir + \begin{align} + \prod_{p \in P} + \sum_{k_i=0}^{\infty} + \frac{1}{p_i^{s k_i}} + &= + \sum_{k_1=0}^{\infty} + \frac{1}{p_1^{s k_1}} + \sum_{k_2=0}^{\infty} + \frac{1}{p_2^{s k_2}} + \ldots + \nonumber \\ + &= + \sum_{k_1=0}^{\infty} + \sum_{k_2=0}^{\infty} + \ldots + \left( + \frac{1}{p_1^{k_1}} + \frac{1}{p_2^{k_2}} + \ldots + \right)^s. + \label{zeta:equation:eulerprodukt2} + \end{align} + Der Fundamentalsatz der Arithmetik (Primfaktorzerlegung) besagt, dass jede beliebige Zahl $n \in \mathbb{N}$ durch eine eindeutige Primfaktorzerlegung beschrieben werden kann + \begin{equation} + n = \prod_i p_i^{k_i} \quad \forall \quad n \in \mathbb{N}. + \end{equation} + Jeder Summand der Summen in \eqref{zeta:equation:eulerprodukt2} ist somit eine Zahl $n$. + Da die Summen alle möglichen Kombinationen von Exponenten und Primzahlen in \eqref{zeta:equation:eulerprodukt2} enthält haben wir + \begin{equation} + \sum_{k_1=0}^{\infty} + \sum_{k_2=0}^{\infty} + \ldots + \left( + \frac{1}{p_1^{k_1}} + \frac{1}{p_2^{k_2}} + \ldots + \right)^s + = + \sum_{n=1}^\infty + \frac{1}{n^s} + = + \zeta(s) + \end{equation} +\end{proof} + diff --git a/buch/papers/zeta/main.tex b/buch/papers/zeta/main.tex index e0ea8e1..caddace 100644 --- a/buch/papers/zeta/main.tex +++ b/buch/papers/zeta/main.tex @@ -11,6 +11,7 @@ %TODO Einleitung \input{papers/zeta/einleitung.tex} +\input{papers/zeta/euler_product.tex} \input{papers/zeta/zeta_gamma.tex} \input{papers/zeta/analytic_continuation.tex} diff --git a/buch/papers/zeta/zeta_gamma.tex b/buch/papers/zeta/zeta_gamma.tex index 59c8744..db41676 100644 --- a/buch/papers/zeta/zeta_gamma.tex +++ b/buch/papers/zeta/zeta_gamma.tex @@ -1,38 +1,46 @@ -\section{Zusammenhang mit Gammafunktion} \label{zeta:section:zusammenhang_mit_gammafunktion} -\rhead{Zusammenhang mit Gammafunktion} +\section{Zusammenhang mit der Gammafunktion} \label{zeta:section:zusammenhang_mit_gammafunktion} +\rhead{Zusammenhang mit der Gammafunktion} -Dieser Abschnitt stellt die Verbindung zwischen der Gamma- und der Zetafunktion her. +In diesem Abschnitt wird gezeigt, wie sich die Zetafunktion durch die Gammafunktion $\Gamma(s)$ ausdrücken lässt. +Dieser Zusammenhang der Art $\zeta(s) = f(\Gamma(s))$ ist nicht nur interessant, er wird später auch für die Herleitung der analytischen Fortsetzung gebraucht. -%TODO ref Gamma -Wenn in der Gammafunkion die Integrationsvariable $t$ substituieren mit $t = nu$ und $dt = n du$, dann können wir die Gleichung umstellen und erhalten den Zusammenhang mit der Zetafunktion -\begin{align} +Wir erinnern uns an die Definition der Gammafunktion in \eqref{buch:rekursion:gamma:integralbeweis} +\begin{equation*} + \Gamma(s) + = + \int_0^{\infty} t^{s-1} e^{-t} \,dt, +\end{equation*} +wobei die Notation an die Zetafunktion angepasst ist. +Durch die Substitution von $t$ mit $t = nu$ und $dt = n\,du$ wird daraus +\begin{align*} \Gamma(s) &= - \int_0^{\infty} t^{s-1} e^{-t} dt - \\ + \int_0^{\infty} n^{s-1}u^{s-1} e^{-nu} n \,du \\ &= - \int_0^{\infty} n^{s\cancel{-1}}u^{s-1} e^{-nu} \cancel{n}du - && - \text{Division durch }n^s - \\ + \int_0^{\infty} n^s u^{s-1} e^{-nu} \,du. +\end{align*} +Durch Division mit durch $n^s$ ergibt sich die Quotienten +\begin{equation*} \frac{\Gamma(s)}{n^s} - &= - \int_0^{\infty} u^{s-1} e^{-nu}du - && - \text{Zeta durch Summenbildung } \sum_{n=1}^{\infty} - \\ + = + \int_0^{\infty} u^{s-1} e^{-nu} \,du, +\end{equation*} +welche sich zur Zetafunktion summieren +\begin{equation} + \sum_{n=1}^{\infty} \frac{\Gamma(s)}{n^s} + = \Gamma(s) \zeta(s) - &= + = \int_0^{\infty} u^{s-1} \sum_{n=1}^{\infty}e^{-nu} - du. + \,du. \label{zeta:equation:zeta_gamma1} -\end{align} +\end{equation} Die Summe über $e^{-nu}$ können wir als geometrische Reihe schreiben und erhalten \begin{align} - \sum_{n=1}^{\infty}e^{-u^n} + \sum_{n=1}^{\infty}\left(e^{-u}\right)^n &= - \sum_{n=0}^{\infty}e^{-u^n} + \sum_{n=0}^{\infty}\left(e^{-u}\right)^n - 1 \\ @@ -42,12 +50,12 @@ Die Summe über $e^{-nu}$ können wir als geometrische Reihe schreiben und erhal &= \frac{1}{e^u - 1}. \end{align} -Wenn wir dieses Resultat einsetzen in \eqref{zeta:equation:zeta_gamma1} und durch $\Gamma(s)$ teilen, erhalten wir +Wenn wir dieses Resultat einsetzen in \eqref{zeta:equation:zeta_gamma1} und durch $\Gamma(s)$ teilen, erhalten wir den gewünschten Zusammenhang \begin{equation}\label{zeta:equation:zeta_gamma_final} \zeta(s) = \frac{1}{\Gamma(s)} \int_0^{\infty} \frac{u^{s-1}}{e^u -1} - du. + du \qed \end{equation} diff --git a/buch/splitpapers b/buch/splitpapers index 9ae5aae..e1b6834 100755 --- a/buch/splitpapers +++ b/buch/splitpapers @@ -16,7 +16,7 @@ then fi awk 'BEGIN { - offsetpage = 10 + offsetpage = 12 startpage = 0 identifier = "" chapterno = 0 diff --git a/cover/backcover.jpg b/cover/backcover.jpg Binary files differindex fbde01f..b1736d1 100644 --- a/cover/backcover.jpg +++ b/cover/backcover.jpg diff --git a/cover/backcover.png b/cover/backcover.png Binary files differindex 6425910..c604266 100644 --- a/cover/backcover.png +++ b/cover/backcover.png diff --git a/cover/buchcover.jpg b/cover/buchcover.jpg Binary files differindex 52d17d1..158c6a4 100644 --- a/cover/buchcover.jpg +++ b/cover/buchcover.jpg diff --git a/cover/buchcover.png b/cover/buchcover.png Binary files differindex 02590e0..96f5123 100644 --- a/cover/buchcover.png +++ b/cover/buchcover.png diff --git a/cover/buchcover.tex b/cover/buchcover.tex index 49519af..d6ad7ec 100644 --- a/cover/buchcover.tex +++ b/cover/buchcover.tex @@ -88,35 +88,35 @@ \sf \fontsize{13}{5}\selectfont %Robin Eberle, % E Enez Erdem, % B - Nilakshan Eswararajah, % B - Réda Haddouche%, % E + %Nilakshan Eswararajah, % B + Réda Haddouche, % E + David Hugentobler, % E + Alain Keller%, % E }}; \node at ({\einschlag+2*\gelenk+\ruecken+1.5*\breite},17.1) [color=white,scale=1] {\hbox to\hsize{\hfill% \sf \fontsize{13}{5}\selectfont - David Hugentobler, % E - Alain Keller, % E Yanik Kuster, % E - Marc Kühne%, % B + Marc Kühne, % B + Erik Löffler, % E + Kevin Meili%, % M-I }}; \node at ({\einschlag+2*\gelenk+\ruecken+1.5*\breite},16.45) [color=white,scale=1] {\hbox to\hsize{\hfill% \sf \fontsize{13}{5}\selectfont - Erik Löffler, % E - Kevin Meili, % M-I - Andrea Mozzini Vellen%, % E + Andrea Mozzini Vellen, % E + Patrick Müller, % MSE + Naoki Pross%, % E }}; \node at ({\einschlag+2*\gelenk+\ruecken+1.5*\breite},15.8) [color=white,scale=1] {\hbox to\hsize{\hfill% \sf \fontsize{13}{5}\selectfont - Patrick Müller, % MSE - Naoki Pross, % E Thierry Schwaller, % E Tim Tönz% % E % diff --git a/vorlesungen/12_dreieck/common.tex b/vorlesungen/12_dreieck/common.tex index 9414e42..1be1b4f 100644 --- a/vorlesungen/12_dreieck/common.tex +++ b/vorlesungen/12_dreieck/common.tex @@ -9,7 +9,7 @@ \usetheme[hideothersubsections,hidetitle]{Hannover} } \beamertemplatenavigationsymbolsempty -\title[Dreieckstest]{Dreieckstest} +\title[Ordnungsstatistik]{Ordnungsstatistik und Beta-Funktion} \author[A.~Müller]{Prof. Dr. Andreas Müller} \date[]{30.~Mai 2022} \newboolean{presentation} diff --git a/vorlesungen/12_dreieck/slides.tex b/vorlesungen/12_dreieck/slides.tex index 211a105..19b7417 100644 --- a/vorlesungen/12_dreieck/slides.tex +++ b/vorlesungen/12_dreieck/slides.tex @@ -6,3 +6,7 @@ \folie{dreieck/stichprobe.tex} \folie{dreieck/minmax.tex} \folie{dreieck/ordnungsstatistik.tex} +\folie{dreieck/dichte.tex} +\folie{dreieck/orderplot.tex} +\folie{dreieck/beta.tex} +\folie{dreieck/betaplot.tex} diff --git a/vorlesungen/18_hermiteintegrierbar/Makefile b/vorlesungen/18_hermiteintegrierbar/Makefile new file mode 100644 index 0000000..a2dfb87 --- /dev/null +++ b/vorlesungen/18_hermiteintegrierbar/Makefile @@ -0,0 +1,33 @@ +# +# Makefile -- hermiteintegrierbar +# +# (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil +# +all: hermiteintegrierbar-handout.pdf MathSem-18-hermiteintegrierbar.pdf + +include ../slides/Makefile.inc + +SOURCES = common.tex slides.tex $(slides) + +MathSem-18-hermiteintegrierbar.pdf: MathSem-18-hermiteintegrierbar.tex $(SOURCES) + pdflatex MathSem-18-hermiteintegrierbar.tex + +hermiteintegrierbar-handout.pdf: hermiteintegrierbar-handout.tex $(SOURCES) + pdflatex hermiteintegrierbar-handout.tex + +thumbnail: thumbnail.jpg # fix1.jpg + +thumbnail.pdf: MathSem-18-hermiteintegrierbar.pdf + pdfjam --outfile thumbnail.pdf --papersize '{16cm,9cm}' \ + MathSem-18-hermiteintegrierbar.pdf 1 +thumbnail.jpg: thumbnail.pdf + convert -density 300 thumbnail.pdf \ + -resize 1920x1080 -units PixelsPerInch thumbnail.jpg + +fix1.pdf: MathSem-18-hermiteintegrierbar.pdf + pdfjam --outfile fix1.pdf --papersize '{16cm,9cm}' \ + MathSem-18-hermiteintegrierbar.pdf 1 +fix1.jpg: fix1.pdf + convert -density 300 fix1.pdf \ + -resize 1920x1080 -units PixelsPerInch fix1.jpg + diff --git a/vorlesungen/18_hermiteintegrierbar/MathSem-18-hermiteintegrierbar.tex b/vorlesungen/18_hermiteintegrierbar/MathSem-18-hermiteintegrierbar.tex new file mode 100644 index 0000000..7a3a647 --- /dev/null +++ b/vorlesungen/18_hermiteintegrierbar/MathSem-18-hermiteintegrierbar.tex @@ -0,0 +1,14 @@ +% +% MathSem-18-hermiteintegrierbar.tex -- Präsentation +% +% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\documentclass[aspectratio=169]{beamer} +\input{common.tex} +\setboolean{presentation}{true} +\begin{document} +\begin{frame} +\titlepage +\end{frame} +\input{slides.tex} +\end{document} diff --git a/vorlesungen/18_hermiteintegrierbar/common.tex b/vorlesungen/18_hermiteintegrierbar/common.tex new file mode 100644 index 0000000..8b1c71f --- /dev/null +++ b/vorlesungen/18_hermiteintegrierbar/common.tex @@ -0,0 +1,17 @@ +% +% common.tex -- gemeinsame definition +% +% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\input{../common/packages.tex} +\input{../common/common.tex} +\mode<beamer>{% +\usetheme[hideothersubsections,hidetitle]{Hannover} +} +\beamertemplatenavigationsymbolsempty +\title[$\int P(t)e^{-t^2}\,dt$]{Elementare Stammfunktion für +$\displaystyle\int P(t)e^{-t^2}\,dt$?} +\author[A.~Müller]{Prof. Dr. Andreas Müller} +\date[]{} +\newboolean{presentation} + diff --git a/vorlesungen/18_hermiteintegrierbar/hermiteintegrierbar-handout.tex b/vorlesungen/18_hermiteintegrierbar/hermiteintegrierbar-handout.tex new file mode 100644 index 0000000..a466024 --- /dev/null +++ b/vorlesungen/18_hermiteintegrierbar/hermiteintegrierbar-handout.tex @@ -0,0 +1,11 @@ +% +% hermiteintegrierbar-handout.tex -- Handout XXX +% +% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\documentclass[handout,aspectratio=169]{beamer} +\input{common.tex} +\setboolean{presentation}{false} +\begin{document} +\input{slides.tex} +\end{document} diff --git a/vorlesungen/18_hermiteintegrierbar/slides.tex b/vorlesungen/18_hermiteintegrierbar/slides.tex new file mode 100644 index 0000000..cb3bbea --- /dev/null +++ b/vorlesungen/18_hermiteintegrierbar/slides.tex @@ -0,0 +1,11 @@ +% +% slides.tex -- XXX +% +% (c) 2017 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\folie{hermite/normalintegrale.tex} +\folie{hermite/normalhermite.tex} +\folie{hermite/hermiteentwicklung.tex} +\folie{hermite/loesung.tex} +\folie{hermite/skalarprodukt.tex} + diff --git a/vorlesungen/slides/dreieck/Makefile.inc b/vorlesungen/slides/dreieck/Makefile.inc index 0575397..bbc19b6 100644 --- a/vorlesungen/slides/dreieck/Makefile.inc +++ b/vorlesungen/slides/dreieck/Makefile.inc @@ -4,6 +4,11 @@ # (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule # chapterdreieck = \ + ../slides/dreieck/stichprobe.tex \ ../slides/dreieck/minmax.tex \ ../slides/dreieck/ordnungsstatistik.tex \ + ../slides/dreieck/orderplot.tex \ + ../slides/dreieck/dichte.tex \ + ../slides/dreieck/beta.tex \ + ../slides/dreieck/betaplot.tex \ ../slides/dreieck/test.tex diff --git a/vorlesungen/slides/dreieck/beta.tex b/vorlesungen/slides/dreieck/beta.tex new file mode 100644 index 0000000..fc3606a --- /dev/null +++ b/vorlesungen/slides/dreieck/beta.tex @@ -0,0 +1,70 @@ +% +% beta.tex -- slide template +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\bgroup +\begin{frame}[t] +\setlength{\abovedisplayskip}{5pt} +\setlength{\belowdisplayskip}{5pt} +\frametitle{Beta-Verteilung} +\vspace{-20pt} +\begin{columns}[t,onlytextwidth] +\begin{column}{0.40\textwidth} +\begin{block}{Ordnungsstatistik} +\begin{align*} +\varphi(x) +&= +{\color{blue}N} x^{k-1} (1-x)^{n-k} +\\ +&\uncover<8->{ += +\beta_{k,n-k+1}(x) +} +\end{align*} +\end{block} +\uncover<8->{% +\begin{block}{Risch-Algorithmus} +Die Beta-Verteilungen haben ausser in Spezialfällen +keine Stammfunktion in geschlossener Form. +\end{block}} +\end{column} +\begin{column}{0.56\textwidth} +\uncover<2->{% +\begin{definition} +Beta-Verteilung +\[ +\beta_{a,b}(x) += +\begin{cases} +\displaystyle +\uncover<7->{ +{\color{blue} +\frac{1}{B(a,b)} +} +} +x^{a-1}(1-x)^{b-1} +&0\le x\le 1 +\\ +0&\text{sonst} +\end{cases} +\] +\end{definition}} +\uncover<3->{% +\begin{block}{Normierung} +\begin{align*} +{\color{blue}\frac{1}{{N}}} +&\uncover<4->{= +\int_{-\infty}^\infty \beta_{a,b}(x)\,dx} +\\ +&\uncover<5->{= +\int_{0}^1 x^{a-1}(1-x)^{b-1}\,dx} +\\ +&\uncover<6->{= +B(a,b)} +\end{align*} +\end{block}} +\end{column} +\end{columns} +\end{frame} +\egroup diff --git a/vorlesungen/slides/dreieck/betaplot.tex b/vorlesungen/slides/dreieck/betaplot.tex new file mode 100644 index 0000000..ee932e8 --- /dev/null +++ b/vorlesungen/slides/dreieck/betaplot.tex @@ -0,0 +1,38 @@ +% +% betaplot.tex -- slide template +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\bgroup +\begin{frame}[t] +\setlength{\abovedisplayskip}{5pt} +\setlength{\belowdisplayskip}{5pt} +\frametitle{Beta-Verteilungen} +\begin{center} +\begin{tikzpicture}[>=latex] + +\only<1>{ +\begin{scope} + \clip (-7,-3.2) rectangle (7,3.2); + \node at (0,-6.5) {\includegraphics[width=13.5cm]{../../buch/chapters/040-rekursion/images/beta.pdf}}; +\end{scope} +} + +\only<2>{ +\begin{scope} + \clip (-7,-3.2) rectangle (7,3.2); + \node at (0,-0) {\includegraphics[width=13.5cm]{../../buch/chapters/040-rekursion/images/beta.pdf}}; +\end{scope} +} + +\only<3>{ +\begin{scope} + \clip (-7,-3.2) rectangle (7,3.2); + \node at (0,6.5) {\includegraphics[width=13.5cm]{../../buch/chapters/040-rekursion/images/beta.pdf}}; +\end{scope} +} + +\end{tikzpicture} +\end{center} +\end{frame} +\egroup diff --git a/vorlesungen/slides/dreieck/chapter.tex b/vorlesungen/slides/dreieck/chapter.tex index 2c91eb5..0f58c4c 100644 --- a/vorlesungen/slides/dreieck/chapter.tex +++ b/vorlesungen/slides/dreieck/chapter.tex @@ -6,3 +6,6 @@ \folie{dreieck/test.tex} \folie{dreieck/minmax.tex} \folie{dreieck/ordnungsstatistik.tex} +\folie{dreieck/dichte.tex} +\folie{dreieck/beta.tex} +\folie{dreieck/betaplot.tex} diff --git a/vorlesungen/slides/dreieck/dichte.tex b/vorlesungen/slides/dreieck/dichte.tex new file mode 100644 index 0000000..168523a --- /dev/null +++ b/vorlesungen/slides/dreieck/dichte.tex @@ -0,0 +1,67 @@ +% +% dichte.tex -- Wahrscheinlichkeitsdichte +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\bgroup +\definecolor{darkgreen}{rgb}{0,0.6,0} +\begin{frame}[t] +\setlength{\abovedisplayskip}{5pt} +\setlength{\belowdisplayskip}{5pt} +\frametitle{Wahrscheinlichkeitsdichte} +\vspace{-20pt} +\begin{columns}[t,onlytextwidth] +\begin{column}{0.40\textwidth} +\begin{block}{Definition} +\[ +\varphi_{X_{k:n}}(x) += +\frac{d}{dx} F_{X_{k:n}}(x) +\] +\end{block} +\end{column} +\begin{column}{0.60\textwidth} +\uncover<4->{% +\begin{block}{Gleichverteilung} +\[ +{\color{darkgreen}F(x)}=\begin{cases} +0&x \le 0\\ +x&0\le x \le 1,\\ +1&x\ge 1 +\end{cases} +\quad +\uncover<5->{ +{\color{red}\varphi(x)} += +\begin{cases} +1&0\le x \le 1\\ +0&\text{sonst} +\end{cases}} +\] +\end{block}} +\end{column} +\end{columns} +\uncover<2->{% +\begin{block}{Ordnungsstatistik} +nach einiger Rechnung: +\begin{align*} +\varphi_{X_{k:n}}(x) +&= +{\color<3->{red}\varphi_X(x)}\,k\binom{n}{k}{\color<3->{darkgreen}F_X(x)}^{k-1} +(1-{\color<3->{darkgreen}F_X(x)})^{n-k} +\intertext{\uncover<4->{für Gleichverteilung}} +\uncover<6->{ +\varphi_{X_{k:n}}(x) +&= +\begin{cases} +\displaystyle +{\color<7->{blue}k\binom{n}{k}}{\color{darkgreen}x}^{k-1}(1-{\color{darkgreen}x})^{n-k} +&0\le x \le 1\\ +0&\text{sonst} +\end{cases} +\qquad\uncover<7->{\text{({\color{blue}Normierung})}} +} +\end{align*} +\end{block}} +\end{frame} +\egroup diff --git a/vorlesungen/slides/dreieck/minmax.tex b/vorlesungen/slides/dreieck/minmax.tex index 9ef8d1a..ff3a231 100644 --- a/vorlesungen/slides/dreieck/minmax.tex +++ b/vorlesungen/slides/dreieck/minmax.tex @@ -17,48 +17,66 @@ Verteilungsfunktion von Z=\operatorname{max}(X_1,\dots,X_n) \] \begin{align*} +\uncover<3->{ F_Z(x) &= -P(Z\le x) +P(Z\le x)} \\ +\uncover<4->{ &= P(X_1\le x\wedge\dots\wedge X_n\le x) +} \\ +\uncover<5->{ &= P(X_1\le x)\cdot \ldots\cdot P(X_n\le x) +} \\ +\uncover<6->{ &= F_X(x)^n +} \end{align*} \end{block} \end{column} \begin{column}{0.48\textwidth} +\uncover<2->{% \begin{block}{Minimum} Verteilungsfunktion von \[ Z=\operatorname{min}(X_1,\dots,X_n) \] \begin{align*} +\uncover<7->{ F_Z(x) &= P(Z\le x) +} \\ +\uncover<8->{ &=P(\overline{ X_1\le x\wedge\dots\wedge X_n \le x }) +} \\ +\uncover<9->{ &= 1-P( X_1> x\wedge\dots\wedge X_n > x ) +} \\ +\uncover<10->{ &= 1-(P(X_1>x)\cdot\ldots\cdot P(X_n>x)) +} \\ +\uncover<11->{ &= 1-(1-F_X(x))^n +} \end{align*} -\end{block} +\end{block}} \end{column} \end{columns} \end{frame} diff --git a/vorlesungen/slides/dreieck/orderplot.tex b/vorlesungen/slides/dreieck/orderplot.tex new file mode 100644 index 0000000..7cf10c6 --- /dev/null +++ b/vorlesungen/slides/dreieck/orderplot.tex @@ -0,0 +1,16 @@ +% +% orderplot.tex -- slide template +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\bgroup +\begin{frame}[t] +\setlength{\abovedisplayskip}{5pt} +\setlength{\belowdisplayskip}{5pt} +\frametitle{Ordnungstatistik} +\vspace*{-18pt} +\begin{center} +\includegraphics[width=10cm]{../../buch/chapters/040-rekursion/images/order.pdf} +\end{center} +\end{frame} +\egroup diff --git a/vorlesungen/slides/dreieck/ordnungsstatistik.tex b/vorlesungen/slides/dreieck/ordnungsstatistik.tex index 6346953..c968e79 100644 --- a/vorlesungen/slides/dreieck/ordnungsstatistik.tex +++ b/vorlesungen/slides/dreieck/ordnungsstatistik.tex @@ -8,11 +8,76 @@ \setlength{\abovedisplayskip}{5pt} \setlength{\belowdisplayskip}{5pt} \frametitle{Ordnungstatistik} +\vspace{-10pt} +\begin{block}{Angeordnete Stichprobe} +\[ +X_{1:n} +\le +X_{2:n} +\le +\dots +\le +X_{(n-1):n} +\le +X_{n:n} +\] +$X_{k:n} = \mathstrut$der $k$-te von $n$ Werten +\end{block} \vspace{-20pt} \begin{columns}[t,onlytextwidth] -\begin{column}{0.48\textwidth} +\begin{column}{0.44\textwidth} +\uncover<2->{% +\begin{block}{Verteilungsfunktion} +\begin{align*} +F_{X_{k:n}}(x) +&= +P(X_{k:n} \le x) +\\ +&\uncover<3->{= +P\bigl( +|\{i\;|\; {\color<4>{red}X_i\le x}\}| \ge k +\bigr)} +\\ +&\uncover<5->{= +P(\text{Anzahl $A_i$}\ge k)} +\\ +&\uncover<9->{= +P(K\ge k)} +\\ +\uncover<6->{ +F_{X_i}(x)&= P(X_i\le x)}\uncover<7->{ = P(A_i)}\uncover<10->{ = p} +} +\end{align*} +\uncover<4->{$A_i=\{X_i\le x\}$}\uncover<7->{ ist ein Beroulli- Experiment +\uncover<10->{mit Eintretens- wahrscheinlichkeit $p$} +\end{block}} \end{column} -\begin{column}{0.48\textwidth} +\begin{column}{0.52\textwidth} +\uncover<8->{% +\begin{block}{Wiederholtes Bernoulli-Experiment} +$K=\mathstrut$Anzahl $k$, für die $A$ eingetreten +ist\only<11->{, ist binomialverteilt:} +\begin{align*} +\uncover<12->{P(K=k) +&= +\phantom{\sum_{i=k}^n\mathstrut} +\binom{n}{k} p^k (1-p)^{n-k} +} +\\ +\uncover<13->{ +P(K\ge k) +&= +\sum_{i=k}^n +\binom{n}{i} p^i (1-p)^{n-i} +} +\\ +\uncover<14->{ +&= +\sum_{i=k}^n +\binom{n}{i} F_X(x)^i (1-F_X(x))^{n-i} +} +\end{align*} +\end{block}} \end{column} \end{columns} \end{frame} diff --git a/vorlesungen/slides/dreieck/stichprobe.tex b/vorlesungen/slides/dreieck/stichprobe.tex index da3a20e..4b2eff0 100644 --- a/vorlesungen/slides/dreieck/stichprobe.tex +++ b/vorlesungen/slides/dreieck/stichprobe.tex @@ -12,21 +12,22 @@ \begin{columns}[t,onlytextwidth] \begin{column}{0.48\textwidth} \begin{block}{Zufallsvariable} -Gegeben eine Zufallsvariable $X$ mit +Gegeben eine Zufallsvariable $X$ \uncover<5->{mit Verteilungsfunktion \[ F_X(x) = P(X\le x) -\] -und +\]} +\uncover<6->{und Wahrscheinlichkeitsdichte \[ \varphi_X(x) = \frac{d}{dx} F_X(x) -\] +\]} \end{block} +\uncover<7->{% \begin{block}{Gleichverteilung} \[ F(x) = \begin{cases} @@ -34,6 +35,7 @@ F(x) = \begin{cases} x&\qquad 0\le x \le 1\\ 1&\qquad 1<x \end{cases} +\uncover<8->{ \qquad\Rightarrow\qquad \varphi(x) = @@ -41,19 +43,21 @@ x&\qquad 0\le x \le 1\\ 1&\qquad 0\le x \le 1\\ 0&\qquad\text{sonst}. \end{cases} +} \] -\end{block} +\end{block}} \end{column} \begin{column}{0.48\textwidth} +\uncover<2->{% \begin{block}{Stichprobe} $n$ Zufallsvariablen $X_1,\dots,X_n$ \begin{itemize} -\item +\item<3-> alle $X_i$ haben die gleiche Verteilung wie $X$ -\item +\item<4-> die $X_i$ sind unabhängig \end{itemize} -\end{block} +\end{block}} \end{column} \end{columns} \end{frame} diff --git a/vorlesungen/slides/hermite/Makefile.inc b/vorlesungen/slides/hermite/Makefile.inc index 5c55467..58c21f2 100644 --- a/vorlesungen/slides/hermite/Makefile.inc +++ b/vorlesungen/slides/hermite/Makefile.inc @@ -4,4 +4,9 @@ # (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule # chapterhermite = \ + ../slides/hermite/normalintegrale.tex \ + ../slides/hermite/normalhermite.tex \ + ../slides/hermite/hermiteentwicklung.tex \ + ../slides/hermite/loesung.tex \ + ../slides/hermite/skalarprodukt.tex \ ../slides/hermite/test.tex diff --git a/vorlesungen/slides/hermite/hermiteentwicklung.tex b/vorlesungen/slides/hermite/hermiteentwicklung.tex new file mode 100644 index 0000000..5f6e1c9 --- /dev/null +++ b/vorlesungen/slides/hermite/hermiteentwicklung.tex @@ -0,0 +1,72 @@ +% +% hermiteentwicklung.tex -- slide template +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\bgroup +\begin{frame}[t] +\setlength{\abovedisplayskip}{5pt} +\setlength{\belowdisplayskip}{5pt} +\frametitle{Beliebige Polynome} +\vspace{-20pt} +\begin{columns}[t,onlytextwidth] +\begin{column}{0.48\textwidth} +\begin{block}{Polynom} +\[ +P(x) += +p_0 + p_1x + p_2x^2 + \dots + p_nx^n +\] +\uncover<2->{% +als Linearkombination von Hermite-Polynome schreiben: +\begin{align*} +P(x) +&= +a_0H_0(x)% + a_1H_1(x) ++ \dots + a_nH_n(x) +\\ +&= +a_0\cdot 1 +\\ +&\quad + a_1\cdot 2x +\\ +&\quad + a_2\cdot(4x^2-2) +\\ +&\quad + a_3\cdot(8x^3-12x) +\\ +&\quad + a_4\cdot(16x^4-48x^2+12) +\\ +&\quad\;\;\vdots +\\ +&\quad + a_n(2^nx^n + \dots) +\end{align*}} +\end{block} +\end{column} +\begin{column}{0.48\textwidth} +\uncover<3->{% +\begin{block}{Koeffizientenvergleich} +führt auf ein Gleichungssystem +\begin{center} +\begin{tabular}{|>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}r<{$}>{$}c<{$}|>{$}c<{$}|} +\hline +a_0&a_1&a_2&a_3&a_4&\dots&\\ +\hline + 1& 0& 0& 0& 0&\dots&p_0\\ + 0& 2& 0& 0& 0&\dots&p_1\\ +-2& 0& 4& 0& 0&\dots&p_2\\ + 0&-12& 0& 8& 0&\dots&p_3\\ +12& 0&-48& 0& 16&\dots&p_4\\ +\vdots&\vdots&\vdots&\vdots&\vdots&\ddots&\vdots\\ +\hline +\end{tabular} +\end{center} +\uncover<4->{% +Dreiecksmatrix}\uncover<5->{, Diagonalelement +$\ne 0$} +\uncover<6->{$\Rightarrow$ +$\exists$ eindeutige Lösung} +\end{block}} +\end{column} +\end{columns} +\end{frame} +\egroup diff --git a/vorlesungen/slides/hermite/loesung.tex b/vorlesungen/slides/hermite/loesung.tex new file mode 100644 index 0000000..68ee32e --- /dev/null +++ b/vorlesungen/slides/hermite/loesung.tex @@ -0,0 +1,65 @@ +% +% loesung.tex -- slide template +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\bgroup +\begin{frame}[t] +\setlength{\abovedisplayskip}{5pt} +\setlength{\belowdisplayskip}{5pt} +\frametitle{Lösung} +\vspace{-20pt} +\begin{columns}[t,onlytextwidth] +\begin{column}{0.48\textwidth} +\begin{block}{Frage} +Für welche Polynome $P(t)$ kann man eine Stammfunktion +\[ +\int +P(t)e^{-\frac{t^2}2} +\,dt +\] +in geschlossener Form angeben? +\end{block} +\uncover<2->{% +\begin{block}{``Hermite-Antwort''} +\[ +\int H_n(x)e^{-x^2}\,dx +\] +kann genau für $n>0$ in geschlossener Form angegeben werden. +\end{block}} +\end{column} +\begin{column}{0.48\textwidth} +\uncover<3->{% +\begin{block}{Allgemein} +\begin{align*} +\int P(x)e^{-x^2}\,dx +&\uncover<4->{= +\int \sum_{k=0}^n a_kH_k(x)e^{-x^2}\,dx} +\\ +\uncover<5->{ +&= +\sum_{k=0}^n +a_k +\int +H_k(x)e^{-x^2}\,dx +} +\\ +\uncover<6->{ +&= +a_0\operatorname{erf}(x) + C +} +\\ +\uncover<6->{ +&\hspace*{2mm} + \sum_{k=1}^n a_k\int H_k(x)e^{-x^2}\,dx +} +\end{align*} +\end{block}} +\uncover<7->{% +\begin{theorem} +Das Integral von $P(x)e^{-x^2}$ ist genau dann elementar darstellbar, wenn +$a_0=0$ +\end{theorem}} +\end{column} +\end{columns} +\end{frame} +\egroup diff --git a/vorlesungen/slides/hermite/normalhermite.tex b/vorlesungen/slides/hermite/normalhermite.tex new file mode 100644 index 0000000..98721dc --- /dev/null +++ b/vorlesungen/slides/hermite/normalhermite.tex @@ -0,0 +1,103 @@ +% +% normalhermite.tex -- integrability of hermite polynomials +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\bgroup +\begin{frame}[t] +\setlength{\abovedisplayskip}{5pt} +\setlength{\belowdisplayskip}{5pt} +\frametitle{Hermite-Polynome} +\vspace{-20pt} +\begin{columns}[t,onlytextwidth] +\begin{column}{0.48\textwidth} +\begin{block}{Definition (Rodrigues-Formel)} +\[ +H_n(x) += +(-1)^n e^{x^2} \frac{d^n}{dx^n} e^{-x^2} +\] +\end{block} +\vspace{-10pt} +\uncover<2->{% +\begin{block}{Orthogonalität} +$H_n(x)$ sind orthogonale Polynome bezüglich $w(x)=e^{-x^2}$, d.~h. +\begin{align*} +\langle H_n,H_m\rangle_w +&= +\int H_n(x)H_m(x)e^{-x^2}\,dx +\\ +&= +\biggl\{ +\renewcommand{\arraycolsep}{1pt} +\begin{array}{l@{\quad}l} +1&\text{falls $n=m$}\\ +0&\text{sonst} +\end{array} +\biggr\} += +\delta_{mn} +\end{align*} +\end{block}} +\vspace{-10pt} +\uncover<3->{% +\begin{block}{Rekursion: Auf-/Absteigeoperatoren} +Rekursionsformel: +\[ +H_n(x) += +2x\cdot H_{n-1}(x) - H_{n-1}'(x) +\] +\end{block}} +\end{column} +\begin{column}{0.48\textwidth} +\uncover<4->{% +\begin{block}{Stammfunktion} +\begin{align*} +\uncover<4->{ +\int H_n(x) e^{-x^2}\,dx} +&\uncover<5->{= +\int \bigl({\color{red}2x}H_{n-1}(x)} +\\ +\uncover<5->{ +&\qquad -H_{n-1}'(x)\bigr) e^{-x^2}\,dx +} +\\ +\uncover<6->{ +{\color{gray}((e^{-x^2})'=-2x)} +&= +{\color{red}-}\int {\color{red}(e^{-x^2})'} H_{n-1}(x)\,dx +} +\\ +\uncover<6->{ +&\qquad +- +\int H_{n-1}'(x) e^{-x^2}\,dx +} +\\ +\uncover<7->{ +\text{\color{gray}(Produktregel)} +&= +\int (e^{-x^2}H_{n-1}(x))'\,dx +} +\\ +\uncover<8->{ +\text{\color{gray}(Ableitung)} +&= +e^{-x^2}H_{n-1}(x) +} +\end{align*} +\uncover<9->{% +ausser für $n=0$: +\[ +\int +H_0(x)e^{-x^2}\,dx += +\int +e^{-x^2}\,dx +\]} +\end{block}} +\end{column} +\end{columns} +\end{frame} +\egroup diff --git a/vorlesungen/slides/hermite/normalintegrale.tex b/vorlesungen/slides/hermite/normalintegrale.tex new file mode 100644 index 0000000..32333cd --- /dev/null +++ b/vorlesungen/slides/hermite/normalintegrale.tex @@ -0,0 +1,57 @@ +% +% normalintegrale.tex -- +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\bgroup +\begin{frame}[t] +\setlength{\abovedisplayskip}{5pt} +\setlength{\belowdisplayskip}{5pt} +\frametitle{Integranden $P(t)e^{-t^2}$} +\vspace{-20pt} +\begin{columns}[t,onlytextwidth] +\begin{column}{0.48\textwidth} +\begin{block}{Frage} +Für welche Polynome $P(t)$ kann man eine Stammfunktion +\[ +\int +P(t)e^{-t^2} +\,dt +\] +in geschlossener Form angeben? +\end{block} +\uncover<4->{% +\begin{block}{Allgemeine Antwort} +Satz von Liouville und +Risch- Algorithmus können entscheiden, ob es eine elementare Stammfunktion gibt +\end{block}} +\end{column} +\begin{column}{0.48\textwidth} +\uncover<2->{% +\begin{block}{Negativbeispiel} +$P(t) = 1$, das Normalverteilungsintegral +\[ +F(x) += +\frac{1}{\sqrt{2\pi}} \int_{-\infty}^x e^{-t^2}\,dt +\] +ist nicht elementar darstellbar. +\end{block}} +\uncover<3->{% +\begin{block}{Positivbeispiel} +$P(t)=t$. Wegen +\begin{align*} +\frac{d}{dx}e^{-x^2} +&= +-xe^{-x^2} +\intertext{ist} +\int te^{-t^2}\,dt +&= +-e^{-x^2}+C +\end{align*} +elementar darstellbar. +\end{block}} +\end{column} +\end{columns} +\end{frame} +\egroup diff --git a/vorlesungen/slides/hermite/skalarprodukt.tex b/vorlesungen/slides/hermite/skalarprodukt.tex new file mode 100644 index 0000000..a51e9f6 --- /dev/null +++ b/vorlesungen/slides/hermite/skalarprodukt.tex @@ -0,0 +1,82 @@ +% +% skalarprodukt.tex -- slide template +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\bgroup +\begin{frame}[t] +\setlength{\abovedisplayskip}{5pt} +\setlength{\belowdisplayskip}{5pt} +\frametitle{Skalarprodukt} +\vspace{-20pt} +\begin{columns}[t,onlytextwidth] +\begin{column}{0.48\textwidth} +\begin{block}{Orthogonale Zerlegung} +Orthogonale $H_k$ normalisieren: +\[ +\tilde{H}_k(x) = \frac{1}{\|H_k\|_w} H_k(x) +\] +mit Gewichtsfunktion $w(x)=e^{-x^2}$ +\end{block} +\uncover<2->{% +\begin{block}{``Hermite''-Analyse} +\begin{align*} +P(x) +&= +\sum_{k=1}^\infty a_k H_k(x) += +\sum_{k=1}^\infty \tilde{a}_k \tilde{H}_k(x) +\\ +\uncover<3->{ +\tilde{a}_k +&= +\| H_k\|_w\, a_k +} +\\ +\uncover<4->{ +a_k +&= +\frac{1}{\|H_k\|} +\langle \tilde{H}_k, P\rangle_w +}\uncover<5->{= +\frac{1}{\|H_k\|^2} +\langle H_k, P\rangle_w +} +\end{align*} +\end{block}} +\end{column} +\begin{column}{0.48\textwidth} +\uncover<6->{% +\begin{block}{Integrationsproblem} +Bedingung: +\begin{align*} +a_0=0 +\uncover<7->{% +\qquad\Leftrightarrow\qquad +\langle H_0,P\rangle_w +&= +0} +\\ +\uncover<8->{% +\int_{-\infty}^\infty +P(t) w(t) \,dt +}\uncover<9->{% += +\int_{-\infty}^\infty +P(t) e^{-t^2} \,dt +&= +0} +\end{align*} +\end{block}} +\uncover<10->{% +\begin{theorem} +Das Integral von $P(t)e^{-t^2}$ ist in geschlossener Form darstellbar +genau dann, wenn +\[ +\int_{-\infty}^\infty P(t)e^{-t^2}\,dt = 0 +\] +\end{theorem}} +\end{column} +\end{columns} +\end{frame} +\egroup diff --git a/vorlesungen/slides/test.tex b/vorlesungen/slides/test.tex index 6aa09f8..ca4ccc9 100644 --- a/vorlesungen/slides/test.tex +++ b/vorlesungen/slides/test.tex @@ -3,4 +3,8 @@ % % (c) 2019 Prof Dr Andreas Müller, Hochschule Rapperswil % -\folie{0/intro.tex} +\folie{hermite/normalintegrale.tex} +\folie{hermite/normalhermite.tex} +\folie{hermite/hermiteentwicklung.tex} +\folie{hermite/loesung.tex} +\folie{hermite/skalarprodukt.tex} diff --git a/vorlesungen/stream/countdown.html b/vorlesungen/stream/countdown.html index d8ec82e..e9d7d6e 100644 --- a/vorlesungen/stream/countdown.html +++ b/vorlesungen/stream/countdown.html @@ -25,7 +25,7 @@ function checkfor(d) { console.log("time string: " + ds); let start = new Date(ds).getTime(); console.log("now: " + now); - if ((start > now) && ((start-now) < 3600*1000)) { + if ((start > now) && ((start-now) < 3300*1000)) { deadline = start; console.log("set deadline to: " + ds); } else { |