From 02b31342e0dba3703c1a3a91352f7ae19764d7ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Mon, 29 Nov 2021 13:18:22 +0100 Subject: gauss quadratur zeugs --- buch/chapters/060-integral/Makefile.inc | 1 + buch/chapters/060-integral/gaussquadratur.tex | 484 +++++++++++++++ buch/chapters/060-integral/gq/Makefile | 22 + buch/chapters/060-integral/gq/gq.cpp | 64 ++ buch/chapters/060-integral/gq/gq.pdf | Bin 0 -> 25439 bytes buch/chapters/060-integral/gq/gq.tex | 57 ++ buch/chapters/060-integral/gq/kreis.cpp | 66 +++ buch/chapters/060-integral/orthogonal.tex | 816 +++++++++++++++----------- buch/chapters/references.bib | 2 +- 9 files changed, 1181 insertions(+), 331 deletions(-) create mode 100644 buch/chapters/060-integral/gaussquadratur.tex create mode 100644 buch/chapters/060-integral/gq/Makefile create mode 100644 buch/chapters/060-integral/gq/gq.cpp create mode 100644 buch/chapters/060-integral/gq/gq.pdf create mode 100644 buch/chapters/060-integral/gq/gq.tex create mode 100644 buch/chapters/060-integral/gq/kreis.cpp diff --git a/buch/chapters/060-integral/Makefile.inc b/buch/chapters/060-integral/Makefile.inc index 1485e40..9cc5356 100644 --- a/buch/chapters/060-integral/Makefile.inc +++ b/buch/chapters/060-integral/Makefile.inc @@ -9,4 +9,5 @@ CHAPTERFILES = $(CHAPTERFILES) \ chapters/060-integral/differentialkoerper.tex \ chapters/060-integral/risch.tex \ chapters/060-integral/orthogonal.tex \ + chapters/060-integral/gaussquadratur.tex \ chapters/060-integral/chapter.tex diff --git a/buch/chapters/060-integral/gaussquadratur.tex b/buch/chapters/060-integral/gaussquadratur.tex new file mode 100644 index 0000000..81d6c28 --- /dev/null +++ b/buch/chapters/060-integral/gaussquadratur.tex @@ -0,0 +1,484 @@ +% +% Anwendung: Gauss-Quadratur +% +\subsection{Anwendung: Gauss-Quadratur} +Orthogonale Polynome haben eine etwas unerwartet Anwendung in einem +von Gauss erdachten numerischen Integrationsverfahren. +Es basiert auf der Beobachtung, dass viele Funktionen sich sehr +gut durch Polynome approximieren lassen. +Wenn man also sicherstellt, dass ein Verfahren für Polynome +sehr gut funktioniert, darf man auch davon ausgehen, dass es für +andere Funktionen nicht allzu schlecht sein wird. + +\subsubsection{Interpolationspolynome} +Zu einer stetigen Funktion $f(x)$ auf dem Intervall $[-1,1]$ +ist ein Polynome vom Grad $n$ gesucht, welches in den Punkten +$x_0{$}c<{$}|>{$}r<{$}|>{$}r<{$}|} +\hline + n & \text{Gauss-Quadratur} & \text{Trapezregel} \\ +\hline +\phantom{0}2 & 0.\u{95}74271077563381 & 0.\u{95}63709682242596 \\ +\phantom{0}4 & 0.\u{95661}28333449730 & 0.\u{956}5513401768598 \\ +\phantom{0}6 & 0.\u{9566114}812034364 & 0.\u{956}5847489712136 \\ +\phantom{0}8 & 0.\u{956611477}5028123 & 0.\u{956}5964425360520 \\ + 10 & 0.\u{9566114774905}637 & 0.\u{9566}018550715587 \\ + 12 & 0.\u{956611477490518}7 & 0.\u{9566}047952369826 \\ + 14 & 0.\u{95661147749051}72 & 0.\u{9566}065680717177 \\ + 16 & 0.\u{956611477490518}7 & 0.\u{9566}077187127541 \\ + 18 & 0.\u{956611477490518}3 & 0.\u{9566}085075898731 \\ + 20 & 0.\u{956611477490518}4 & 0.\u{9566}090718697414 \\ +\hline + \infty & 0.9566114774905183 & 0.9566114774905183 \\ +\hline +\end{tabular} +\caption{Integral von $\sqrt{1-x^2}$ zwischen $-\frac12$ und $\frac12$ +berechnet mit Gauss-Quadratur und der Trapezregel, aber mit zehnmal +so vielen Stützstellen. +Bereits mit 12 Stützstellen erreicht die Gauss-Quadratur +Maschinengenauigkeit, die Trapezregel liefert auch mit 200 Stützstellen +nicht mehr als 4 korrekte Nachkommastellen. +\label{buch:integral:gaussquadratur:table0.5}} +\end{table} + +%\begin{table} +%\def\u#1{\underline{#1}} +%\centering +%\begin{tabular}{|>{$}c<{$}|>{$}r<{$}|>{$}r<{$}|} +%\hline +% n & \text{Gauss-Quadratur} & \text{Trapezregel} \\ +%\hline +%\phantom{0}2 & 1.\u{5}379206741571556 & 1.\u{5}093105464758343 \\ +%\phantom{0}4 & 1.\u{51}32373472933831 & 1.\u{51}13754509594814 \\ +%\phantom{0}6 & 1.\u{512}1624557410367 & 1.\u{51}17610879524799 \\ +%\phantom{0}8 & 1.\u{51207}93479994321 & 1.\u{51}18963282632112 \\ +% 10 & 1.\u{51207}13859966004 & 1.\u{51}19589735776959 \\ +% 12 & 1.\u{512070}5317779943 & 1.\u{51}19930161260693 \\ +% 14 & 1.\u{5120704}334802813 & 1.\u{5120}135471596636 \\ +% 16 & 1.\u{5120704}216176006 & 1.\u{5120}268743889558 \\ +% 18 & 1.\u{5120704}201359081 & 1.\u{5120}360123137213 \\ +% 20 & 1.\u{5120704199}459651 & 1.\u{5120}425490275837 \\ +%\hline +% \infty & 1.5120704199172947 & 1.5120704199172947 \\ +%\hline +%\end{tabular} +%\end{table} + +%\begin{table} +%\def\u#1{\underline{#1}} +%\centering +%\begin{tabular}{|>{$}c<{$}|>{$}r<{$}|>{$}r<{$}|} +%\hline +% n & \text{Gauss-Quadratur} & \text{Trapezregel} \\ +%\hline +%\phantom{0}2 & 1.\u{}6246862220133462 & 1.\u{5}597986803933712 \\ +%\phantom{0}4 & 1.\u{5}759105515463101 & 1.\u{56}63563456168101 \\ +%\phantom{0}6 & 1.\u{5}706630058381434 & 1.\u{56}77252866190838 \\ +%\phantom{0}8 & 1.\u{56}94851106536780 & 1.\u{568}2298707696152 \\ +% 10 & 1.\u{56}91283195332679 & 1.\u{568}4701957758742 \\ +% 12 & 1.\u{56}90013806299465 & 1.\u{568}6030805941198 \\ +% 14 & 1.\u{5689}515434853885 & 1.\u{568}6841603070025 \\ +% 16 & 1.\u{5689}306507843050 & 1.\u{568}7372230731711 \\ +% 18 & 1.\u{5689}214761291217 & 1.\u{568}7738235496322 \\ +% 20 & 1.\u{56891}73062385982 & 1.\u{568}8001228530786 \\ +%\hline +% \infty & 1.5689135396691616 & 1.5689135396691616 \\ +%\hline +%\end{tabular} +%\end{table} + +\begin{table} +\def\u#1{\underline{#1}} +\centering +\begin{tabular}{|>{$}c<{$}|>{$}r<{$}|>{$}r<{$}|} +\hline + n & \text{Gauss-Quadratur} & \text{Trapezregel} \\ +\hline +\phantom{0}2 & 1.\u{}6321752373234928 & 1.\u{5}561048774629949 \\ +\phantom{0}4 & 1.\u{57}98691557134743 & 1.\u{5}660124134617943 \\ +\phantom{0}6 & 1.\u{57}35853681692993 & 1.\u{5}683353001877542 \\ +\phantom{0}8 & 1.\u{57}19413565928206 & 1.\u{5}692627503425400 \\ + 10 & 1.\u{57}13388119633434 & 1.\u{5}697323578543481 \\ + 12 & 1.\u{57}10710489948883 & 1.\u{570}0051217458713 \\ + 14 & 1.\u{570}9362135398341 & 1.\u{570}1784766276063 \\ + 16 & 1.\u{570}8621102742815 & 1.\u{570}2959121005231 \\ + 18 & 1.\u{570}8186779483588 & 1.\u{570}3793521168343 \\ + 20 & 1.\u{5707}919411931615 & 1.\u{570}4408749735932 \\ +\hline + \infty & 1.5707367072605671 & 1.5707367072605671 \\ +\hline +\end{tabular} +\caption{Integral von $\sqrt{1-x^2}$ zwischen $-0.999$ und $0.999$ +berechnet mit Gauss-Quadratur und der Trapezregel, aber mit zehnmal +so vielen Stützstellen. +Wegen der divergierenden Steigung des Integranden bei $\pm 1$ tun +sich beide Verfahren sehr schwer. +Trotzdem erreich die Gauss-Quadrator 4 korrekte Nachkommastellen +mit 20 Stütztstellen, während die Trapezregel auch mit 200 Stützstellen +nur 3 korrekte Nachkommastellen findet. +\label{buch:integral:gaussquadratur:table0.999}} +\end{table} + +\begin{figure} +\centering +\includegraphics{chapters/060-integral/gq/gq.pdf} +\caption{Approximationsfehler des +Integrals~\eqref{buch:integral:gaussquadratur:bspintegral} +in Abhängigkeit von $a$. +Die Divergenz der Ableitung des Integranden an den Intervallenden +$\pm 1$ führt zu schlechter Konvergenz des Verfahrens, wenn $a$ +nahe an $1$ ist. +\label{buch:integral:gaussquadratur:fehler}} +\end{figure} + +Zur Illustration der Genauigkeit der Gauss-Quadratur berechnen wir +das Integral +\begin{equation} +\int_{-a}^a \sqrt{1-x^2}\,dx += +\arcsin a + a \sqrt{1-a^2} +\label{buch:integral:gaussquadratur:bspintegral} +\end{equation} +mit Gauss-Quadratur einerseits und dem Trapezverfahren +andererseits. +Da Gauss-Quadratur mit sehr viel weniger Sützstellen auskommt, +berechnen wir die Trapeznäherung mit zehnmal so vielen Stützstelln. +In den Tabellen~\ref{buch:integral:gaussquadratur:table0.5} +und +\ref{buch:integral:gaussquadratur:table0.999} +sind die Resultate zusammengestellt. +Für $a =\frac12$ zeigt +Tabelle~\ref{buch:integral:gaussquadratur:table0.5} +die sehr schnelle Konvergenz der Gauss-Quadratur, schon mit +12 Stützstellen wird Maschinengenauigkeit erreicht. +Das Trapezverfahren dagegen erreicht auch mit 200 Stützstellen nur +4 korrekte Nachkommastellen. + +An den Stellen $x=\pm 1$ divergiert die Ableitung des Integranden +des Integrals \eqref{buch:integral:gaussquadratur:bspintegral}. +Da grösste und kleinste Stützstelle der Gauss-Quadratur immer +deutlich vom Rand des Intervalls entfernt ist, kann das Verfahren +diese ``schwierigen'' Stellen nicht erkennen. +Tabelle~\ref{buch:integral:gaussquadratur:table0.999} zeigt, wie +die Konvergenz des Verfahrens in diesem Fall sehr viel schlechter ist. +Dies zeigt auch der Graph in +Abbildung~\ref{buch:integral:gaussquadratur:fehler}. + +\subsubsection{Skalarprodukte mit Gewichtsfunktion} + diff --git a/buch/chapters/060-integral/gq/Makefile b/buch/chapters/060-integral/gq/Makefile new file mode 100644 index 0000000..2ce859c --- /dev/null +++ b/buch/chapters/060-integral/gq/Makefile @@ -0,0 +1,22 @@ +# +# Makefile -- Gauss quadrature experiments +# +# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +all: kreis gq.pdf + +gq.o: gq.cpp + g++ `pkg-config --cflags gsl` -o gq.o -g -Wall -O2 -c gq.cpp + +gq: gq.o + g++ -g -Wall -O2 gq.o `pkg-config --libs gsl` -o gq + +kreis: kreis.cpp + g++ `pkg-config --cflags gsl` -g -Wall -O2 kreis.cpp \ + `pkg-config --libs gsl` -o kreis + +gqpaths.tex: gq + ./gq > gqpaths.tex + +gq.pdf: gq.tex gqpaths.tex + pdflatex gq.tex diff --git a/buch/chapters/060-integral/gq/gq.cpp b/buch/chapters/060-integral/gq/gq.cpp new file mode 100644 index 0000000..3eb3ac8 --- /dev/null +++ b/buch/chapters/060-integral/gq/gq.cpp @@ -0,0 +1,64 @@ +/* + * gq.cpp -- Gauss Quadrature Example + * + * (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + */ +#include +#include +#include +#include +#include +#include + +int counter; + +double f(double x, void *) { + counter++; + return sqrt(1-x*x); +} + +void do_integration(size_t n, const char *name) { + double scaling = 1e6; + // set up integration gauss quadrature + counter = 0; + gsl_function func; + func.function = f; + func.params = NULL; + + // prepare plotting of results + int steps = 200; + double h = 1. / steps; + + printf("\\def\\%s{\n\t(0,0)", name); + for (int i = 1; i <= steps; i++) { + double a = i * h; + a = 1 - (1 - a) * (1 - a); + double expected = (asin(a) + a * sqrt(1 - a*a)) / 2; + gsl_integration_fixed_workspace *ws + = gsl_integration_fixed_alloc( + gsl_integration_fixed_legendre, + n, 0, a, 0, 0); + double result = 0; + gsl_integration_fixed(&func, &result, ws); + double y = fabs(scaling * (result - expected)); + if (y > 10) { + y = 10; + } + printf("\n\t--({\\dx*%.4f},{\\dy*%.6f})", a, y); + gsl_integration_fixed_free(ws); + } + printf("\n}\n"); +} + +int main(int argc, char *argv[]) { + do_integration(2, "two"); + do_integration(4, "four"); + do_integration(6, "six"); + do_integration(8, "eight"); + do_integration(10, "ten"); + do_integration(12, "twelve"); + do_integration(14, "fourteen"); + do_integration(16, "sixteen"); + + return EXIT_SUCCESS; +} diff --git a/buch/chapters/060-integral/gq/gq.pdf b/buch/chapters/060-integral/gq/gq.pdf new file mode 100644 index 0000000..7a0b3c4 Binary files /dev/null and b/buch/chapters/060-integral/gq/gq.pdf differ diff --git a/buch/chapters/060-integral/gq/gq.tex b/buch/chapters/060-integral/gq/gq.tex new file mode 100644 index 0000000..e5a9c4d --- /dev/null +++ b/buch/chapters/060-integral/gq/gq.tex @@ -0,0 +1,57 @@ +% +% gq.tex -- Fehler +% +% (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} +\def\dx{12} +\def\dy{8} +\input{gqpaths.tex} +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\begin{scope} +\clip (0,0) rectangle ({\dx*1},{\dy*1}); +\draw[color=red,line width=1.4pt] \two; +\draw[color=red,line width=1.4pt] \four; +\draw[color=red,line width=1.4pt] \six; +\draw[color=red,line width=1.4pt] \eight; +\draw[color=red,line width=1.4pt] \ten; +\draw[color=red,line width=1.4pt] \twelve; +\draw[color=red,line width=1.4pt] \fourteen; +\draw[color=red,line width=1.4pt] \sixteen; +\end{scope} + +% add image content here +\draw[->] (0,-0.1) -- (0,{\dy+0.5}) coordinate[label={right:$e$}]; +\draw[->] (-0.1,0) -- ({\dx+0.5},0) coordinate[label={$a$}]; + +\draw ({\dx},-0.1) -- ({\dx},0.1); +\draw[line width=0.3pt] ({\dx},0) -- ({\dx},{\dy}); +\node at ({\dx},0) [below] {$1$}; +\node at (0,0) [below] {$0$}; + +\draw (-0.1,\dy) -- (0.1,\dy); +\node at (0,\dy) [left] {$10^{-6}$}; + +\node at ({0.227*\dx},{0.7*\dy}) [rotate=83.5] {$n=2$}; +\node at ({0.678*\dx},{0.7*\dy}) [rotate=83] {$n=4$}; +\node at ({0.850*\dx},{0.7*\dy}) [rotate=84] {$n=6$}; +\node at ({0.915*\dx},{0.7*\dy}) [rotate=85] {$n=8$}; +\node at ({1.015*\dx},{0.7*\dy}) [rotate=90] {$n=16$}; + +\foreach \x in {0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9}{ + \draw ({\x*\dx},-0.1) -- ({\x*\dx},0.1); + \node at ({\x*\dx},0) [below] {$\x$}; +} + +\end{tikzpicture} +\end{document} + diff --git a/buch/chapters/060-integral/gq/kreis.cpp b/buch/chapters/060-integral/gq/kreis.cpp new file mode 100644 index 0000000..c9723cc --- /dev/null +++ b/buch/chapters/060-integral/gq/kreis.cpp @@ -0,0 +1,66 @@ +/* + * kreis.cpp -- Gauss Quadrature Example + * + * (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + */ +#include +#include +#include +#include +#include +#include + +double xmax = 0.990; + +double f(double x, void *) { + return sqrt(1-x*x); +} + +double do_integration(size_t n) { + // set up integration gauss quadrature + gsl_function func; + func.function = f; + func.params = NULL; + + gsl_integration_fixed_workspace *ws + = gsl_integration_fixed_alloc( + gsl_integration_fixed_legendre, + n, -xmax, xmax, 0, 0); + double result = 0; + gsl_integration_fixed(&func, &result, ws); + gsl_integration_fixed_free(ws); + return result; +} + +double do_trapez(size_t n) { + double h = 2 * xmax / n; + double s = 0; + for (int i = 0; i <= n; i++) { + double x = -xmax + i * h; + double a = f(x, NULL); + if ((i == 0) || (i == n)) { + a = a * 0.5; + } + s += a; + } + return h * s; +} + +void do_table(double limit) { + xmax = limit; + for (int n = 2; n <= 20; n += 2) { + printf("%d & %.16f & %.16f \\\\\n", n, do_integration(n), + do_trapez(10 * n)); + } + double amax = acos(xmax); + double expected = (M_PI / 2 - amax) + sin(amax) * cos(amax); + printf("\\infty & %.16f & %.16f \\\\\n", expected, expected); +} + +int main(int argc, char *argv[]) { + do_table(0.5); + do_table(0.9); + do_table(0.99); + do_table(0.999); + return EXIT_SUCCESS; +} diff --git a/buch/chapters/060-integral/orthogonal.tex b/buch/chapters/060-integral/orthogonal.tex index 4ffbbde..ceba53a 100644 --- a/buch/chapters/060-integral/orthogonal.tex +++ b/buch/chapters/060-integral/orthogonal.tex @@ -5,6 +5,7 @@ % \section{Orthogonalität \label{buch:integral:section:orthogonale-polynome}} +\rhead{Orthogonale Polynome} Die Fourier-Theorie basiert auf der Idee, Funktionen durch Funktionenreihen mit Summanden zu bilden, die im Sinne eines Skalarproduktes orthogonal sind, welches mit Hilfe eines Integrals @@ -294,6 +295,7 @@ sind sie jedoch nicht orthogonal, denn es ist \biggl[\frac{x^{i+j+1}}{i+j+1}\biggr]_{-1}^1 = \begin{cases} +\displaystyle \frac{2}{i+j+1}&\qquad\text{$i+j$ gerade}\\ 0&\qquad\text{$i+j$ ungerade}. \end{cases} @@ -454,7 +456,8 @@ x^4 &= x^4 -\frac47 P_2(x) - \frac15 P_0(x) -= +\\ +&= x^4 - \frac{6}{7}x^2 + \frac{3}{35} \end{align*} mit $p(1)=\frac{8}{35}$, so dass man @@ -514,334 +517,487 @@ Tabelle~\ref{buch:integral:table:legendre-polynome}. \subsubsection{Legendre-Funktionen zweiter Art} Siehe Wikipedia-Artikel \url{https://de.wikipedia.org/wiki/Legendre-Polynom} +%% +%% Anwendung: Gauss-Quadratur +%% +%\subsection{Anwendung: Gauss-Quadratur} +%Orthogonale Polynome haben eine etwas unerwartet Anwendung in einem +%von Gauss erdachten numerischen Integrationsverfahren. +%Es basiert auf der Beobachtung, dass viele Funktionen sich sehr +%gut durch Polynome approximieren lassen. +%Wenn man also sicherstellt, dass ein Verfahren für Polynome +%sehr gut funktioniert, darf man auch davon ausgehen, dass es für +%andere Funktionen nicht allzu schlecht sein wird. % -% Anwendung: Gauss-Quadratur +%\subsubsection{Interpolationspolynome} +%Zu einer stetigen Funktion $f(x)$ auf dem Intervall $[-1,1]$ +%ist ein Polynome vom Grad $n$ gesucht, welches in den Punkten +%$x_0{$}c<{$}|>{$}r<{$}|>{$}r<{$}|} +%\hline +% n & \text{Gauss-Quadratur} & \text{Trapezregel} \\ +%\hline +%\phantom{0}2 & 0.\u{95}74271077563381 & 0.\u{95}63709682242596 \\ +%\phantom{0}4 & 0.\u{95661}28333449730 & 0.\u{956}5513401768598 \\ +%\phantom{0}6 & 0.\u{9566114}812034364 & 0.\u{956}5847489712136 \\ +%\phantom{0}8 & 0.\u{956611477}5028123 & 0.\u{956}5964425360520 \\ +% 10 & 0.\u{9566114774905}637 & 0.\u{9566}018550715587 \\ +% 12 & 0.\u{956611477490518}7 & 0.\u{9566}047952369826 \\ +% 14 & 0.\u{95661147749051}72 & 0.\u{9566}065680717177 \\ +% 16 & 0.\u{956611477490518}7 & 0.\u{9566}077187127541 \\ +% 18 & 0.\u{956611477490518}3 & 0.\u{9566}085075898731 \\ +% 20 & 0.\u{956611477490518}4 & 0.\u{9566}090718697414 \\ +%\hline +% \infty & 0.9566114774905183 & 0.9566114774905183 \\ +%\hline +%\end{tabular} +%\caption{Integral von $\sqrt{1-x^2}$ zwischen $-\frac12$ und $\frac12$ +%berechnet mit Gauss-Quadratur und der Trapezregel, aber mit zehnmal +%so vielen Stützstellen. +%Bereits mit 12 Stützstellen erreicht die Gauss-Quadratur +%Maschinengenauigkeit, die Trapezregel liefert auch mit 200 Stützstellen +%nicht mehr als 4 korrekte Nachkommastellen. +%\label{buch:integral:gaussquadratur:table0.5}} +%\end{table} +% +%%\begin{table} +%%\def\u#1{\underline{#1}} +%%\centering +%%\begin{tabular}{|>{$}c<{$}|>{$}r<{$}|>{$}r<{$}|} +%%\hline +%% n & \text{Gauss-Quadratur} & \text{Trapezregel} \\ +%%\hline +%%\phantom{0}2 & 1.\u{5}379206741571556 & 1.\u{5}093105464758343 \\ +%%\phantom{0}4 & 1.\u{51}32373472933831 & 1.\u{51}13754509594814 \\ +%%\phantom{0}6 & 1.\u{512}1624557410367 & 1.\u{51}17610879524799 \\ +%%\phantom{0}8 & 1.\u{51207}93479994321 & 1.\u{51}18963282632112 \\ +%% 10 & 1.\u{51207}13859966004 & 1.\u{51}19589735776959 \\ +%% 12 & 1.\u{512070}5317779943 & 1.\u{51}19930161260693 \\ +%% 14 & 1.\u{5120704}334802813 & 1.\u{5120}135471596636 \\ +%% 16 & 1.\u{5120704}216176006 & 1.\u{5120}268743889558 \\ +%% 18 & 1.\u{5120704}201359081 & 1.\u{5120}360123137213 \\ +%% 20 & 1.\u{5120704199}459651 & 1.\u{5120}425490275837 \\ +%%\hline +%% \infty & 1.5120704199172947 & 1.5120704199172947 \\ +%%\hline +%%\end{tabular} +%%\end{table} +% +%%\begin{table} +%%\def\u#1{\underline{#1}} +%%\centering +%%\begin{tabular}{|>{$}c<{$}|>{$}r<{$}|>{$}r<{$}|} +%%\hline +%% n & \text{Gauss-Quadratur} & \text{Trapezregel} \\ +%%\hline +%%\phantom{0}2 & 1.\u{}6246862220133462 & 1.\u{5}597986803933712 \\ +%%\phantom{0}4 & 1.\u{5}759105515463101 & 1.\u{56}63563456168101 \\ +%%\phantom{0}6 & 1.\u{5}706630058381434 & 1.\u{56}77252866190838 \\ +%%\phantom{0}8 & 1.\u{56}94851106536780 & 1.\u{568}2298707696152 \\ +%% 10 & 1.\u{56}91283195332679 & 1.\u{568}4701957758742 \\ +%% 12 & 1.\u{56}90013806299465 & 1.\u{568}6030805941198 \\ +%% 14 & 1.\u{5689}515434853885 & 1.\u{568}6841603070025 \\ +%% 16 & 1.\u{5689}306507843050 & 1.\u{568}7372230731711 \\ +%% 18 & 1.\u{5689}214761291217 & 1.\u{568}7738235496322 \\ +%% 20 & 1.\u{56891}73062385982 & 1.\u{568}8001228530786 \\ +%%\hline +%% \infty & 1.5689135396691616 & 1.5689135396691616 \\ +%%\hline +%%\end{tabular} +%%\end{table} +% +%\begin{table} +%\def\u#1{\underline{#1}} +%\centering +%\begin{tabular}{|>{$}c<{$}|>{$}r<{$}|>{$}r<{$}|} +%\hline +% n & \text{Gauss-Quadratur} & \text{Trapezregel} \\ +%\hline +%\phantom{0}2 & 1.\u{}6321752373234928 & 1.\u{5}561048774629949 \\ +%\phantom{0}4 & 1.\u{57}98691557134743 & 1.\u{5}660124134617943 \\ +%\phantom{0}6 & 1.\u{57}35853681692993 & 1.\u{5}683353001877542 \\ +%\phantom{0}8 & 1.\u{57}19413565928206 & 1.\u{5}692627503425400 \\ +% 10 & 1.\u{57}13388119633434 & 1.\u{5}697323578543481 \\ +% 12 & 1.\u{57}10710489948883 & 1.\u{570}0051217458713 \\ +% 14 & 1.\u{570}9362135398341 & 1.\u{570}1784766276063 \\ +% 16 & 1.\u{570}8621102742815 & 1.\u{570}2959121005231 \\ +% 18 & 1.\u{570}8186779483588 & 1.\u{570}3793521168343 \\ +% 20 & 1.\u{5707}919411931615 & 1.\u{570}4408749735932 \\ +%\hline +% \infty & 1.5707367072605671 & 1.5707367072605671 \\ +%\hline +%\end{tabular} +%\caption{Integral von $\sqrt{1-x^2}$ zwischen $-0.999$ und $0.999$ +%berechnet mit Gauss-Quadratur und der Trapezregel, aber mit zehnmal +%so vielen Stützstellen. +%Wegen der divergierenden Steigung des Integranden bei $\pm 1$ tun +%sich beide Verfahren sehr schwer. +%Trotzdem erreich die Gauss-Quadrator 4 korrekte Nachkommastellen +%mit 20 Stütztstellen, während die Trapezregel auch mit 200 Stützstellen +%nur 3 korrekte Nachkommastellen findet. +%\label{buch:integral:gaussquadratur:table0.999}} +%\end{table} +% +%\begin{figure} +%\centering +%\includegraphics{chapters/060-integral/gq/gq.pdf} +%\caption{Approximationsfehler des +%Integrals~\eqref{buch:integral:gaussquadratur:bspintegral} +%in Abhängigkeit von $a$. +%Die Divergenz der Ableitung des Integranden an den Intervallenden +%$\pm 1$ führt zu schlechter Konvergenz des Verfahrens, wenn $a$ +%nahe an $1$ ist. +%\label{buch:integral:gaussquadratur:fehler}} +%\end{figure} +% +%Zur Illustration der Genauigkeit der Gauss-Quadratur berechnen wir +%das Integral +%\begin{equation} +%\int_{-a}^a \sqrt{1-x^2}\,dx +%= +%\arcsin a + a \sqrt{1-a^2} +%\label{buch:integral:gaussquadratur:bspintegral} +%\end{equation} +%mit Gauss-Quadratur einerseits und dem Trapezverfahren +%andererseits. +%Da Gauss-Quadratur mit sehr viel weniger Sützstellen auskommt, +%berechnen wir die Trapeznäherung mit zehnmal so vielen Stützstelln. +%In den Tabellen~\ref{buch:integral:gaussquadratur:table0.5} +%und +%\ref{buch:integral:gaussquadratur:table0.999} +%sind die Resultate zusammengestellt. +%Für $a =\frac12$ zeigt +%Tabelle~\ref{buch:integral:gaussquadratur:table0.5} +%die sehr schnelle Konvergenz der Gauss-Quadratur, schon mit +%12 Stützstellen wird Maschinengenauigkeit erreicht. +%Das Trapezverfahren dagegen erreicht auch mit 200 Stützstellen nur +%4 korrekte Nachkommastellen. +% +%An den Stellen $x=\pm 1$ divergiert die Ableitung des Integranden +%des Integrals \eqref{buch:integral:gaussquadratur:bspintegral}. +%Da grösste und kleinste Stützstelle der Gauss-Quadratur immer +%deutlich vom Rand des Intervalls entfernt ist, kann das Verfahren +%diese ``schwierigen'' Stellen nicht erkennen. +%Tabelle~\ref{buch:integral:gaussquadratur:table0.999} zeigt, wie +%die Konvergenz des Verfahrens in diesem Fall sehr viel schlechter ist. +%Dies zeigt auch der Graph in +%Abbildung~\ref{buch:integral:gaussquadratur:fehler}. +% +%\subsubsection{Skalarprodukte mit Gewichtsfunktion} +\input{chapters/060-integral/gaussquadratur.tex} diff --git a/buch/chapters/references.bib b/buch/chapters/references.bib index 20215a9..80a8379 100644 --- a/buch/chapters/references.bib +++ b/buch/chapters/references.bib @@ -78,7 +78,7 @@ @book{buch:ab, title = {$A = B$}, - author = {Marko Petkov\v sek, Herbert S. Wilf and Doron Zeilberger}, + author = {Marko Petkov\v{s}ek and Herbert S. Wilf and Doron Zeilberger}, year = 1996, publisher = {A K Peters, Ltd}, ISBN = {978-1-56881-063-8} -- cgit v1.2.1