diff options
author | Patrik Müller <36931350+p1mueller@users.noreply.github.com> | 2022-07-19 07:55:33 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-19 07:55:33 +0200 |
commit | 2f2762eb04c6d881c902dc5e4e31d0122717aaf6 (patch) | |
tree | f15e603f580872868c7024f723cc82b3f3cbe2c4 /buch/chapters/010-potenzen/polynome.tex | |
parent | Fix merge issue (diff) | |
parent | makefile fix (diff) | |
download | SeminarSpezielleFunktionen-2f2762eb04c6d881c902dc5e4e31d0122717aaf6.tar.gz SeminarSpezielleFunktionen-2f2762eb04c6d881c902dc5e4e31d0122717aaf6.zip |
Merge branch 'AndreasFMueller:master' into master
Diffstat (limited to '')
-rw-r--r-- | buch/chapters/010-potenzen/polynome.tex | 404 |
1 files changed, 388 insertions, 16 deletions
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. |