From e6dfa9a04550a127df36bca3ae614ebca99401c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Sat, 8 Jan 2022 13:14:17 +0100 Subject: Pole und Nullstellen der Gewichtsfunktion --- buch/chapters/070-orthogonalitaet/images/Makefile | 9 +- buch/chapters/070-orthogonalitaet/images/weight.m | 59 +++++++ .../chapters/070-orthogonalitaet/images/weight.pdf | Bin 0 -> 22822 bytes .../chapters/070-orthogonalitaet/images/weight.tex | 174 +++++++++++++++++++ buch/chapters/070-orthogonalitaet/jacobi.tex | 189 +++++++++++++++++++++ buch/chapters/070-orthogonalitaet/orthogonal.tex | 2 + 6 files changed, 432 insertions(+), 1 deletion(-) create mode 100644 buch/chapters/070-orthogonalitaet/images/weight.m create mode 100644 buch/chapters/070-orthogonalitaet/images/weight.pdf create mode 100644 buch/chapters/070-orthogonalitaet/images/weight.tex diff --git a/buch/chapters/070-orthogonalitaet/images/Makefile b/buch/chapters/070-orthogonalitaet/images/Makefile index e3a988a..900ae7f 100644 --- a/buch/chapters/070-orthogonalitaet/images/Makefile +++ b/buch/chapters/070-orthogonalitaet/images/Makefile @@ -4,11 +4,18 @@ # # (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule # -all: legendre.pdf orthogonal.pdf +all: legendre.pdf orthogonal.pdf weight.pdf legendrepaths.tex: legendre.m octave legendre.m legendre.pdf: legendre.tex legendrepaths.tex pdflatex legendre.tex + orthogonal.pdf: orthogonal.tex legendrepaths.tex pdflatex orthogonal.tex + +weight.pdf: weight.tex weightfunction.tex + pdflatex weight.tex +weightfunction.tex: weight.m + octave weight.m + diff --git a/buch/chapters/070-orthogonalitaet/images/weight.m b/buch/chapters/070-orthogonalitaet/images/weight.m new file mode 100644 index 0000000..62ea447 --- /dev/null +++ b/buch/chapters/070-orthogonalitaet/images/weight.m @@ -0,0 +1,59 @@ +# +# weight.m +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +global N; +N = 200; +global s; +s = 8; +global l; +l = 10; +global A; +A = 0.3; + +function retval = gewicht(x) + global s; + retval = (x + 1)^(-2) * (x + 1/3)^(-0.9) * (x - 1/3) * (x - 1)^2 * exp(s * x); +endfunction + +h = 2 / N; +x = (-1:h:1); + +function punkt(fn, x, y) + global A; + fprintf(fn, "(%.4f,%.4f)", x, A * abs(y)); +endfunction + +fn = fopen("weightfunction.tex", "w"); +plotting = 0; +drittelsuchen = 1; +for i = (1:N+1) + if (drittelsuchen > 0) + if (x(i) > (1/3)) + fprintf(fn, "\n\t-- "); + punkt(fn, 1/3, 0); + fprintf(fn, "% drittel"); + drittelsuchen = 0 + end + end + y = gewicht(x(i)); + if (plotting > 0) + if (abs(y) > l) + fprintf(fn, ";\n"); + plotting = 0; + end + fprintf(fn, "\t\n-- "); + punkt(fn, x(i), y); + else + if (abs(y) < l) + fprintf(fn, "\\draw[color=red,line width=2.0pt] "); + punkt(fn, x(i), y); + plotting = 1; + end + end +endfor +if (plotting > 0) + fprintf(fn, ";\n"); +end +fclose(fn); diff --git a/buch/chapters/070-orthogonalitaet/images/weight.pdf b/buch/chapters/070-orthogonalitaet/images/weight.pdf new file mode 100644 index 0000000..164af55 Binary files /dev/null and b/buch/chapters/070-orthogonalitaet/images/weight.pdf differ diff --git a/buch/chapters/070-orthogonalitaet/images/weight.tex b/buch/chapters/070-orthogonalitaet/images/weight.tex new file mode 100644 index 0000000..796f09a --- /dev/null +++ b/buch/chapters/070-orthogonalitaet/images/weight.tex @@ -0,0 +1,174 @@ +% +% weight.tex -- Einfluss der Gewichtsfunktion auf die möglichen Funktionen +% +% (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{6} +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\definecolor{hell}{rgb}{0.4,0.4,1} + +\xdef\sfour{0.16} +\xdef\sthree{0.20} +\xdef\stwo{0.27} +\xdef\sone{0.45} + +\begin{scope} + \clip (-1,-1) rectangle (1,1); + + \xdef\s{0.16} + \fill[color=blue!40] + plot[domain=0.7:0.99,samples=20] + ({\x},{\s*exp(-0.48*ln(1-\x))}) + -- (1,1) -- (1,-1) -- + plot[domain=0.99:0.7,samples=20] + ({\x},{-\s*exp(-0.48*ln(1-\x))}) + -- cycle; + + \xdef\s{0.20} + \fill[color=blue!40] + plot[domain=0.033:0.33,samples=20] + ({\x},{\s*exp(-0.28*ln(1/3-\x))}) + -- ({1/3},1) -- + plot[domain=0.34:0.6333,samples=20] + ({\x},{\s*exp(-0.28*ln(\x-1/3))}) + -- + plot[domain=0.6333:0.34,samples=20] + ({\x},{-\s*exp(-0.28*ln(\x-1/3))}) + -- ({1/3},-1) -- + plot[domain=0.333:0.033,samples=20] + ({\x},{-\s*exp(-0.28*ln(1/3-\x))}) + -- cycle; + + \xdef\s{0.27} + \fill[color=blue!40] + (-0.6333,-\s) rectangle (-0.0333,\s); + + \xdef\s{0.45} + \fill[color=blue!40] + (-1,0) + -- + plot[domain=-0.99:-0.7,samples=100] + ({\x},{\s*exp(0.48*ln(1+\x))}) + -- + plot[domain=-0.7:-0.99,samples=100] + ({\x},{-\s*exp(0.48*ln(1+\x))}) + -- + cycle; + +\end{scope} + +\def\rechteck#1#2{ + \fill[color=hell!#1] + ({#2/300},1) rectangle ({(#2+1.1)/300},-1); +} + +\def\verlauf{ + \foreach\x in {0,1,...,100.1}{ + \rechteck{\x}{\x} + \rechteck{\x}{-\x} + } +} + +\def\rand{ + plot[domain=0.7:0.99,samples=20] + ({\x},{\sfour*exp(-0.48*ln(1-\x))}) + -- (1,1) -- (1,-1) -- + plot[domain=0.99:0.7,samples=20] + ({\x},{-\sfour*exp(-0.48*ln(1-\x))}) + -- + plot[domain=0.6333:0.34,samples=20] + ({\x},{-\sthree*exp(-0.28*ln(\x-1/3))}) + -- ({1/3},-1) -- + plot[domain=0.333:0.033,samples=20] + ({\x},{-\sthree*exp(-0.28*ln(1/3-\x))}) + -- + (-0.0333,-\stwo) -- (-0.6333,-\stwo) + -- + plot[domain=-0.7:-0.998,samples=100] + ({\x},{-\sone*exp(0.48*ln(1+\x))}) + -- + (-1,0) + -- + plot[domain=-0.998:-0.7,samples=100] + ({\x},{\sone*exp(0.48*ln(1+\x))}) + -- + (-0.6333,\stwo) -- (-0.0333,\stwo) + -- + plot[domain=0.033:0.33,samples=20] + ({\x},{\sthree*exp(-0.28*ln(1/3-\x))}) + -- ({1/3},1) -- + plot[domain=0.34:0.6333,samples=20] + ({\x},{\sthree*exp(-0.28*ln(\x-1/3))}) + -- cycle; +} + +\begin{scope} + \clip (-1,-1) rectangle (1,1); + \begin{scope} + \clip \rand; + \fill[left color=hell,right color=white] + (-1,-1) rectangle (-0.6666,1); + \fill[left color=white,right color=hell] + (-0.6666,-1) rectangle (-0.3333,1); + \fill[left color=hell,right color=white] + (-0.3333,-1) rectangle (0,1); + \fill[left color=white,right color=hell] + (0,-1) rectangle (0.3333,1); + \fill[left color=hell,right color=white] + (0.3333,-1) rectangle (0.6666,1); + \fill[left color=white,right color=hell] + (0.6666,-1) rectangle (1,1); + \end{scope} + \draw[color=white,line width=0.5pt] \rand; + \draw[color=white,line width=0.5pt] ({-2/3},-1) -- ({-2/3},1); + \draw[color=white,line width=0.5pt] ({2/3},-1) -- ({2/3},1); +\end{scope} + +\draw[->] (-1.1,0) -- (1.1,0) coordinate[label={$x$}]; +\draw[->] (0,-1.1) -- (0,1.1) coordinate[label={right:$y$}]; + +\begin{scope} + \clip (-1,-1) rectangle (1,1); + + \input{weightfunction.tex} + +\end{scope} + +\draw[line width=0.2pt] (-1,-1) -- (-1,1); +\draw[line width=0.2pt] ({-1/3},-1) -- ({-1/3},1); + +\draw ({-1/3},{-0.1/\skala}) -- ({-1/3},{0.1/\skala}); +\draw ({1/3},{-0.1/\skala}) -- ({1/3},{0.1/\skala}); +\draw (1,{-0.1/\skala}) -- (1,{0.1/\skala}); + +\node at (-1,0) [below left] {$-1$}; +\node at (1,0) [below right] {$1$}; + +\def\marke#1#2#3{ + \fill[color=white,opacity=0.7] + ({#1-0.03},{#2-0.12}) + rectangle + ({#1+0.03},{#2+0.12}); +} + +\marke{-1}{0.2}{} +\node at (-1,0.2) [rotate=90] {$\alpha=-1.9$}; +\marke{-1/3}{0.2}{} +\node at ({-1/3},0.2) [rotate=90] {$\alpha=-0.9$}; +\marke{1/3}{0.2}{} +\node at ({1/3},0.2) [rotate=90] {$\alpha=1$}; +\marke{1}{0.2}{} +\node at (1,0.2) [rotate=90] {$\alpha=2$}; + +\end{tikzpicture} +\end{document} + diff --git a/buch/chapters/070-orthogonalitaet/jacobi.tex b/buch/chapters/070-orthogonalitaet/jacobi.tex index fb7d5ff..3dcf523 100644 --- a/buch/chapters/070-orthogonalitaet/jacobi.tex +++ b/buch/chapters/070-orthogonalitaet/jacobi.tex @@ -6,4 +6,193 @@ \section{Jacobi-Polynome \label{buch:integrale:subsection:jacobi-polynome}} \rhead{Jacobi-Polynome} +Das $L^2$-Skalarprodukt von +Definition~\label{buch:orthogonal:def:skalarprodukt} +ist nicht das einzige Skalarprodukt von Funktionen, bezüglich dem +orthogonale Funktionenfamilien konstruiert werden können. +Die Definition~\label{buch:orthogonal:def:skalarproduktw} +erlaubt, das Skalarprodukt mit einer Gewichtsfunktion +zu erweitern. +Auch in diesem Abschnitt geht es um Polynome, deren Werte auf +dem Intervall $(-1,1)$ interessieren. +Die Legendre-Polynome waren aus den Monomen konstruiert worden durch +Orthogonalisierung bezüglich des gewöhnlichen $L^2$-Skalarproduktes. +Die Normierung war einigermassen willkürlich gewählt worden und +hatte nichts mit dem Skalarprodukt zu tun. + +\begin{figure} +\centering +\includegraphics{chapters/070-orthogonalitaet/images/weight.pdf} +\caption{Nullstellen und Pole der Gewichtsfunktion (rot) legen Ort +und Grad von Polen und Nullstellen der Funktionen fest, die beschränkte +$\|\,\cdot\,\|_w$-Norm haben. +An den Stellen $\pm 1$ und $\pm\frac12$ hat die Gewichtsfunktion +Pole bzw.~Nullstellen mit Grad $\alpha$. +Der blaue Bereich deutet an, wie schnell die Funktion $f$ in diesem +Bereich anwachsen kann, bzw.~wie schnell nahe der Polstelle gegen $0$ +gehen muss. +\label{buch:orthogonalitaet:fig:gewicht}} +\end{figure} +% +% Pole und Nullstellen der Gewichtsfunktion +% +\subsection{Pole und Nullstellen +\label{buch:orthogonal:pole-und-nullstellen}} +Das Skalarprodukt $\langle\,\;,\;\rangle_w$ ist nur sinnvoll +für Funktionen $f(x)$, für die die Norm $\|f\|_w$ definiert ist. +An einer Nullstelle $x_0$ der Gewichtsfunktion $w$ darf die Funktion $f$ +einen Pol haben. +Solange $f(x)$ für $x\to x_0$ nicht zu schnell divergiert, kann +das Produkt $|f(x)|^2 w(x)$ immer noch integrierbar sein. + + +Um dies etwas genauer zu quantifizieren, nehmen wir an, dass +$w(x)$ an der Stelle $x_0$ eine Nullstelle vom Grad $\alpha$ hat. +Dies bedeutet, dass $w(x) \approx C|x-x_0|^\alpha$ ist für eine geeignete +Konstante $C$ und für $|x-x_0|<\varepsilon$. +Ein Pol von $f$ vom Grad $a$ an der Stelle $x_0$ führt entsprechend auf +eine Abschätzung $|f(x)| \approx D|f(x)|^{-a}$ für $|x-x_0|<\varepsilon$. +Dann ist +\[ +|f(x)|^2 w(x) \approx CD |x-x_0|^{\alpha-2a}. +\] +Für das Integral in der Nähe von $x_0$ ist +\begin{align*} +\int_{x_0-\varepsilon}^{x_0+\varepsilon} +|f(x)|^2 w(x)\,dx +&\approx +CD +\int_{x_0-\varepsilon}^{x_0+\varepsilon} +|x-x_0|^{\alpha-2a}\,dx += +2CD +\int_0^\varepsilon +t^{\alpha-2a} +\,dt +\\ +&= +2CD +\begin{cases} +\displaystyle +\; +\biggl[\frac{t^{\alpha-2a+1}}{\alpha-2a+1}\biggr]_0^\varepsilon +&\qquad +\alpha-2a=-1 +\\[7pt] +\displaystyle +\; +\biggl[ \log t \biggr]_0^\varepsilon +&\qquad +\text{sonst.} +\end{cases} +\end{align*} +Der Zähler $t^{\alpha-2a+1}$ divergiert für $t\to 0$ genau dann, +wenn $\alpha-2a+1<0$ oder $\alpha<2a-1$. +Auch im zweiten Fall, für $\alpha-2a+1=0$, divergiert das Integral. +Damit die Norm $\|f\|_w$ definiert ist, muss also $a<\frac12(\alpha+1)$ +sein. + +Ganz ähnlich führt eine Polstelle von $w$ vom Grad $\alpha$ +an der Stelle $x_0$ dazu, dass $f$ dort eine Nullstelle vom Grad +$a$ haben muss. +Das Normintegral konvergiert nur, wenn $2a-\alpha > -1$ ist +oder $a > \frac12(\alpha+1)$. + +Pole der Gewichtsfunktion schränken also ein, welche Funktionen +überhaupt der Untersuchung mit Hilfe des Skalarproduktes +$\langle\,\;,\;\rangle$ zugänglich sind +(Abbildung~\ref{buch:orthogonalitaet:fig:gewicht}). +Ist die Ordnung $\alpha$ des Poles grösser als $1$, dann müssen die Funktionen +eine Nullstelle mindestens vom Grad $\frac12(a+1)$ haben. +Nullstellen der Gewichtsfunktion erweitern die Klasse der Funktionen. +Ist die Ordnung der Nullstelle $\alpha$, dann dürfen die Funktionen einen +Pol der Ordnung kleiner als $\frac12(\alpha+1)$ haben. + + +% +% Die Jacobische Gewichtsfunktion +% +\subsection{Jacobische Gewichtsfunktion} +Die Gewichtsfunktion für die Legendrepolynome war $w(x)=1$, alle +Punkte im Intervall $(-1,1)$ hatten das gleiche Gewicht. +Diese soll jetzt ersetzt werden durch eine Gewichtsfunktion, die +den Punkten an den Intervallenden mehr oder weniger Gewicht gibt, +wobei auch zugelassen sein soll, dass die Gewichtung nicht symmetrisch +ist. + +\begin{definition} +Die {\em Jacobi-Gewichtsfunktion} ist die Funktion +\[ +w^{(\alpha,\beta)} +\colon (-1,1)\to\mathbb{R} +: +x\mapsto w^{(\alpha,\beta)}(x) = (1-x)^\alpha(1+x)^\beta +\] +mit $\alpha,\beta\in\mathbb{R}$. +Das Skalarprodukt zugehörige Skalarprodukt wird auch als +\[ +\langle\,\;,\;\rangle_{w^{(\alpha,\beta)}} += +\langle\,\;,\;\rangle_{(\alpha,\beta)} +\] +bezeichnet und die zugehörige Norm mit +\[ +\|f\|_{(\alpha,\beta)} += +\langle f,f\rangle_{(\alpha,\beta)} += +\int_{-1}^1 |f(x)|^2 w^{(\alpha,\beta)}(x)\,dx. +\] +\end{definition} + +\begin{definition} +Die {\em Jacobi-Polynome} $P^{(\alpha,\beta)}_n(x)$ sind +Polynome vom Grad $n$, die bezüglich des Skalarproduktes +$\langle\,\;,\;\rangle_{w^{(\alpha,\beta)}}$ orthogonal sind +und mit +\[ +P_n^{(\alpha,\beta)}(1) = \binom{n+\alpha}n +\] +normiert sind. +\end{definition} + +Für $\alpha=\beta=0$ entsteht die Gewichtsfunktion +$w^{(0,0)}(x)=1$, die Legendre-Polynome sind also der Spezialfall +$\alpha=\beta=0$ der Jacobi-Polynome. + +Der Exponent $\alpha$ in der Gewichtsfunktion $w^{(\alpha,\beta)}(x)$ +steuert das Gewicht, welches Punkte am rechten Rand des Intervalls +erhalten. +Für positive Werte von $\alpha$ hat $w^{(\alpha,\beta)}(x)$ eine +Nullstelle vom Grad $\alpha$ an der Stelle $x=1$, nach +Abschnitt~\ref{buch:orthogonal:pole-und-nullstellen} +dürfen die Funktionen einen Pole der Ordnung $<\frac12(\alpha-1)$ haben. +Je grösser $\alpha$ ist, desto weniger Gewicht haben die Punkte +am rechten Rand des Intervalls und desto schneller darf eine Funktion +für $x\to 1$ divergieren. + +Für negative Werte von $\alpha$ hat $w^{(\alpha,\beta)}(x)$ einen +Pol vom Grad $-\alpha$ an der Stelle $x=1$. +Funktionen müssen daher also ein Nullstelle mindestens vom Grad +$\frac12(1-\alpha)$ haben. + +% +% +% +\subsection{Jacobi-Polynome niedrigen Grades} + +% +% +% +\subsection{Jacobi-Polynome als hypergeometrische Funktionen} + +% +% +% +\subsection{Jacobi-Differentialgleichung} + +% +% +% +\subsection{Ableitung und Rodrigues-Formel} diff --git a/buch/chapters/070-orthogonalitaet/orthogonal.tex b/buch/chapters/070-orthogonalitaet/orthogonal.tex index 2b7bf41..7849e2d 100644 --- a/buch/chapters/070-orthogonalitaet/orthogonal.tex +++ b/buch/chapters/070-orthogonalitaet/orthogonal.tex @@ -105,6 +105,7 @@ Das Integral ermöglicht jetzt, ein Skalarprodukt auf dem reellen Vektorraum der stetigen Funktionen auf einem Intervall zu definieren. \begin{definition} +\label{buch:orthogonal:def:skalarprodukt} Sei $V$ der reelle Vektorraum $C([a,b])$ der reellwertigen, stetigen Funktion auf dem Intervall $[a,b]$. Dann ist @@ -162,6 +163,7 @@ die Funktionswerte nicht überall auf dem Definitionsbereich gleich gewichtet werden. \begin{definition} +\label{buch:orthogonal:def:skalarproduktw} Sei $w\colon [a,b]\to \mathbb{R}^+$ eine positive, stetige Funktion, dann ist \[ -- cgit v1.2.1