{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "c7e29619-aaac-4f7f-b32f-01b7b29ec597",
   "metadata": {},
   "source": [
    "# Fehleranalyse - Kondition und Stabilität"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8c90d859-9026-4d89-af07-a6709e6aaea3",
   "metadata": {},
   "source": [
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c5f5a86c-173b-4d98-b336-c7b213bb740b",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-danger\">\n",
    "<b>Ziele des Notebooks:</b>\n",
    "  \n",
    "- Sie erfahren die Bedeutsamkeit von Genauigkeit.\n",
    "- Sie erweitern den Normbegriff um die induzierte Matrixnorm.\n",
    "- Sie lernen Möglichkeiten zum Quantifizieren und Reduzieren von Fehlern kennen.\n",
    "- Sie bilden ein Verständnis über die Begriffe _Kondition eines Problems_ und _Stabilität eines Algorithmus_.\n",
    "- Sie erfahren und verstehen den Effekt der Auslöschung.\n",
    "       \n",
    "<b>Mathematische Tools, die vorausgesetzt werden:<b>\n",
    "    \n",
    "- Verkornormen\n",
    "- TAYLORsche Formel\n",
    "- Partielle Ableitungen \\& Jacobi-Matrix\n",
    "- Inverse Matrix"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a9ae7943-7420-4aff-9f5a-2f4ad6853cc0",
   "metadata": {},
   "source": [
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9fb9af22-2d23-47c1-918a-7abad2c01f98",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-success\">\n",
    "    \n",
    "### Aufgabe 1\n",
    "***\n",
    "Am 25. Februar 1991, während des 1. Golfkriegs, verfehlte eine in Dharan (Saudi-Arabien) abgefeuerte amerikanische Patriot-Abwehrrakete ihr Ziel, eine irakische Scud-Rakete. Infolgedessen konnte die feindliche Rakete ungehindert in ein amerikanisches Militärlager einschlagen. Dabei kamen 29 US-Soldaten ums Leben und es wurden etwa 100 weitere verletzt. Der Grund dafür war die Verstärkung eines Rundungsfehlers: Das Abwehrsystem, welches die amerikanische Patriot-Abwehrrakete starten ließ, war seit 100 Stunden in Betrieb. Seitdem speicherte die integrierte Zeiterfassung des Systems die Zeit in Zehntelsekunden. Pro Sekunde führte eine interne Rundung zu einem Fehler von $9.5 \\cdot 10^{-8}$ Sekunden.\n",
    "    \n",
    "a) Berechnen Sie die gesamte Zeitabweichung, die durch den beschriebenen Fehler entstanden ist.\n",
    "    \n",
    "Die Zeitmessung bildete das Fundament für die Positionsbestimmung der abzufangenden Rakete, die sich mit einer Geschwindigkeit 1676 Metern pro Sekunde durch die Luft bewegte. \n",
    "    \n",
    "b) Bestimmen Sie, wie viele Meter die Patriot-Abwehrrakete in ihrer Zielberechnung daneben lag?\n"
   ]
  },
  {
   "attachments": {
    "f99024ac-27e9-4d21-b576-fd77eab16e63.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "id": "c2789d27-53ab-4485-9d20-33baf8ac7a1f",
   "metadata": {},
   "source": [
    "Die Tragik dieses Beispiels illustiert die Relevanz von Genauigkeit in Messwerten, Rechenverfahren sowie in Ergebnissen.\n",
    "\n",
    "Fehler in einem Ergebnis resultieren sowohl aus Eingabe- bzw. Datenfehlern als auch aus Fehlern im Algorithmus (Verfahrens- und Rundungsfehlern).\n",
    "\n",
    "<img src=\"attachment:f99024ac-27e9-4d21-b576-fd77eab16e63.png\" width=\"550\" height=\"550\"/>\n",
    "\n",
    "Während Datenfehler häufig nicht vermieden werden können, besteht jedoch bei Fehlern im Algorithmus durch das Verändern des Verfahrens die Option, diese zu verringern oder gar zu umgehen. Das Differenzieren der beiden Arten von Fehlern wird uns im Zuge dieses Notebooks zu den Begriffen **_Kondition eines Problems_** und **_Stabilität eines Algorithmus_** führen. Doch vorab wird als Grundlage der Normbegriff durch die **_induzierte Matrixnorm_** erweitert."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "424e46d6-fa8c-4f51-9415-79eda4133cca",
   "metadata": {
    "tags": []
   },
   "source": [
    "***\n",
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9a7bdf00-342e-4902-b072-62780f2fcd1c",
   "metadata": {},
   "source": [
    "### 1. Grundlage: Matrixnorm"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5f441cdf-9bf0-4af2-8d0b-117d457ff526",
   "metadata": {},
   "source": [
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "80c230b1-3e88-4995-bc23-8340dcb4f274",
   "metadata": {},
   "source": [
    "Vektornormen sollten bereits aus der Analysis bekannt sein. Im Folgenden werden sie nun auch für Matrizen eingeführt:"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f5678d1e-d53c-4d70-8b2a-b7c8813d3799",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-info\">\n",
    "    \n",
    "### Definition _Induzierte Matrixnorm_ \n",
    "***\n",
    "Für eine Matrix $A \\in \\mathbb{R}^{m \\times n}$ heißt eine Abbildung $\\left\\|\\cdot\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m}:\\mathbb{R}^{m \\times n} \\rightarrow\\mathbb{R}$ _Matrixnorm_, wenn die drei Normaxiome \n",
    "    \n",
    "(N.1) $\\left\\|0\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m}=0, \\left\\|A\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m}>0$ für alle $0\\neq A \\in \\mathbb{R}^{m \\times n},$\n",
    "    \n",
    "(N.2) $\\left\\|\\alpha A\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m} = |\\alpha| \\cdot \\left\\|A\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m}$ für alle $A \\in \\mathbb{R}^{m \\times n}, \\alpha \\in \\mathbb{R},$\n",
    "    \n",
    "(N.3) (_Dreiecksungleichung_) $\\left\\|A+B\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m} \\leq \\left\\|A\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m} + \\left\\|B\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m}$ für alle $A,B \\in \\mathbb{R}^{m \\times n}$\n",
    "\n",
    "erfüllt sind. Unsere temporäre Notation $\\left\\|\\cdot\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m}$ trägt dabei der Tatsache Rechnung, dass Matrizen $A \\in \\mathbb{R}^{m \\times n}$ die Darstellungsmatrizen linearer Abbildungen von $\\mathbb{R}^n$ nach $\\mathbb{R}^m$ sind. Eine Matrixnorm heißt _von der Vektornorm_ $\\left\\| \\cdot \\right\\|_{\\mathbb{R}^n}$ _induziert_, wenn \n",
    "    \n",
    "$$\\left\\|A\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m}:= \\sup_{0 \\neq x \\in \\mathbb{R}^n} \\frac{\\left\\|Ax\\right\\|_{\\mathbb{R}^m}}{\\left\\|x\\right\\|_{\\mathbb{R}^n}} = \\sup_{\\|x\\|_{\\mathbb{R}^n} = 1} \\left\\|Ax\\right\\|_{\\mathbb{R}^m}$$\n",
    "   \n",
    "gilt."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b4857416-95ce-41f7-8ef5-88d378567b24",
   "metadata": {},
   "source": [
    "Anschaulich gibt die induzierte Matrixnorm den maximalen Streckungsfaktor an, der durch Anwendung der Matrix $A$ auf einen Einheitsvektor möglich ist."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0c129f7e-47f1-4c61-82b1-688557c2e6d2",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-warning\">\n",
    "\n",
    "**Satz 1.1**\n",
    "    \n",
    "Seien $\\left\\|\\cdot\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m}$, $\\left\\|\\cdot\\right\\|_{\\mathbb{R}^l \\rightarrow\\mathbb{R}^n}$ und $\\left\\|\\cdot\\right\\|_{\\mathbb{R}^l \\rightarrow\\mathbb{R}^m}$ induzierte Matrixnormen, dann gilt zusätzlich\n",
    "    \n",
    "- $\\left\\|Ax\\right\\|_{\\mathbb{R}^m} \\leq  \\left\\|A\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m} \\left\\|x\\right\\|_{\\mathbb{R}^n}$ für alle $A \\in \\mathbb{R}^{m \\times n}$ und $x \\in \\mathbb{R}^n$\n",
    "\n",
    "- $\\left\\|AB\\right\\|_{\\mathbb{R}^l \\rightarrow\\mathbb{R}^m} \\leq  \\left\\|A\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m} \\left\\|B\\right\\|_{\\mathbb{R}^l \\rightarrow\\mathbb{R}^n}$ für alle $A \\in \\mathbb{R}^{m \\times n}$ und alle $B \\in \\mathbb{R}^{n \\times l}$.\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "93b63bd1-6dda-461a-acc5-b5933819bbe4",
   "metadata": {},
   "source": [
    "$A \\in \\mathbb{R}^{m \\times n}$. Die von den Vektornormen $\\left\\| \\cdot \\right\\|_1$, $\\left\\| \\cdot \\right\\|_\\infty$ und $\\left\\| \\cdot \\right\\|_2$  induzierten Matrixnormen sind die _Zeilensummennorm_\n",
    "\n",
    "$$\\left\\|A\\right\\|_1 := \\max_{j=1,...,n} \\sum_{i=1}^m |a_{i,j}|, $$\n",
    "\n",
    "die _Spaltensummennorm_\n",
    "\n",
    "$$\\left\\|A\\right\\|_\\infty := \\max_{i=1,...,m} \\sum_{j=1}^n |a_{i,j}| $$\n",
    "\n",
    "und die _Spektralnorm_\n",
    "\n",
    "$$ \\left\\|A\\right\\|_2 := \\sqrt{\\lambda_{max}(A^TA)},$$\n",
    "\n",
    "wobei $\\lambda_{max}(A^TA)$ der größte Eigenwert von $A^TA$ ist."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "32645a17-a9f7-453b-bbb9-369bbe987d7d",
   "metadata": {},
   "source": [
    "***\n",
    "**Beispiel 1.2**\n",
    "\n",
    "Für $A=\\begin{pmatrix} 1 & 3 \\\\ 1 & -3 \\\\ 2 & 2 \\end{pmatrix}$ ergibt sich $\\left\\|A\\right\\|_1 = 8$, $\\left\\|A\\right\\|_\\infty = 4$ und $\\left\\|A\\right\\|_2 = \\sqrt {14 + \\sqrt{80}}$, denn die Eigenwerte von $A^TA = \\begin{pmatrix} 6 & 4 \\\\ 4 & 22 \\end{pmatrix}$ kann man über \n",
    "\n",
    "$$det(A^TA - \\lambda I) = 0 \\Leftrightarrow (6- \\lambda)(22- \\lambda) -16 = 0$$\n",
    "\n",
    "bestimmen und damit $\\lambda_1 = 14 - \\sqrt{80}, \\lambda_2 = 14 + \\sqrt{80}$."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "06fcb97f-3145-4a9e-a3d6-9abd8e067d5e",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-success\">\n",
    "    \n",
    "### Aufgabe 2\n",
    "*** \n",
    "a) Beweisen Sie Satz 1.1.\n",
    "    \n",
    "b) Widerlegen Sie durch ein Gegenbeispiel die Ungültigkeit der folgenden Aussage:\n",
    "    \n",
    "Sei $\\left\\|\\cdot\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m}$ eine induzierte Matrixnormen, dann gilt\n",
    "    \n",
    "$$\\left\\|A-B\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m} \\leq  \\left\\|A\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m} - \\left\\|B\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m} \\ \\forall \\ A, B \\in \\mathbb{R}^{m \\times n}.$$\n",
    "    \n",
    "c) Sei $A \\in \\mathbb{R}^{m \\times n}$. Zeigen Sie, dass für die durch die $\\left\\|\\cdot\\right\\|_\\infty$-Vektornorm induzierte Matrixnorm die obige Charakterisierung\n",
    "    \n",
    "$$\\left\\|A\\right\\|_\\infty := \\max_{i=1,...,m} \\sum_{j=1}^n |a_{i,j}| $$\n",
    "    \n",
    "gilt.\n",
    "    \n",
    "**Hinweis:** Zum Lösen der Aufgaben a) und b) können Sie die Normenbeschriftungen weglassen.\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bc523e68-7efd-4f48-be9a-ad26d9439625",
   "metadata": {},
   "source": [
    "***\n",
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e8cc2062-9974-4b26-aca8-fd15d28df8b1",
   "metadata": {
    "tags": []
   },
   "source": [
    "### 2. Kondition eines Problems"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "19b114c2-35df-4a11-8c3e-65c1cf161ccd",
   "metadata": {},
   "source": [
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "768f57d8-d7ad-4a17-9f77-e3f498f2f144",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-success\">\n",
    "    \n",
    "### Aufgabe 3\n",
    "***\n",
    "Sei $0<\\epsilon\\ll1$.\n",
    "\n",
    "a) Lösen Sie das LGS $Ax=b$ durch mit\n",
    "    \n",
    "   $$ A=\\begin{pmatrix} 1 & 1 \\\\ 1 & 1+\\epsilon \\end{pmatrix}, b=\\begin{pmatrix} 1 \\\\ 1 \\end{pmatrix} $$\n",
    "    \n",
    "b) Sei nun $b$ minimal gestört mit \n",
    "    \n",
    "   $$ \\tilde{b} = b +  \\begin{pmatrix} 0 \\\\ \\epsilon \\end{pmatrix} $$\n",
    "    \n",
    "   Lösen Sie das gestörte LGS $A\\tilde{x}=\\tilde{b}$.\n",
    "    \n",
    "c) Was fällt Ihnen auf? Beschreiben Sie das vorliegende Phänomen."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b5296f60-1b70-4df6-b88b-b9a8c3183b3e",
   "metadata": {},
   "source": [
    "Die obige Aufgabe zeigt, dass bereits eine geringfügige Störung in den Eingabedaten bei einer exakten Berechnung erhebliche Auswirkungen auf das Ergebnis haben kann. Das mathematische Untersuchen der Auswirkungen von Datenfehlern basiert auf dem Konzept der **_Kondition eines Problems_**. Dieses ist vorerst _unabhängig_ von einem spezifischen Lösungsweg (Algorithmus) und macht lediglich sichtbar, welche Genauigkeit man im besten Fall (bei exakter Berechnung) bei gestörten Eingangsdaten erwarten kann. \n",
    "\n",
    "Um dies zum einen genauer darstellen und zum anderen auf möglichst viele diverse mathematische Probleme anwenden zu können, werden sie als Aufgabe begriffen, eine gegebene Funktion\n",
    "\n",
    "$$ f: X \\rightarrow Y $$\n",
    "\n",
    "an einer Stelle $ x \\in X $ zu untersuchen. $X \\subseteq \\mathbb{R}^n$ und $Y \\subseteq \\mathbb{R}^m$ stehen hier für die Menge der Ein- bzw. Ausgabedaten. Dass das Begreifen als eine derartige Aufgabe wertvoll und nützlich ist, veranschaulichen die beiden folgenden elementaren Beispiele:\n",
    "\n",
    "***\n",
    "\n",
    "**Beispiel 2.1** \n",
    "\n",
    "Die Berechnung der Summe von zwei reellen Zahlen $x_1$ und $x_2$ führt zur Untersuchung der Funktion $f(x_1,x_2) = x_1 +x_2$, wobei $X = \\mathbb{R}^2, Y = \\mathbb{R}$ ist.\n",
    "\n",
    "***\n",
    "\n",
    "**Beispiel 2.2** \n",
    "\n",
    "Die Berechnung des Produkts von zwei reellen Zahlen $x_1$ und $x_2$ führt zur Untersuchung der Funktion $f(x_1,x_2) = x_1 \\cdot x_2$, wobei $X = \\mathbb{R}^2, Y = \\mathbb{R}$ ist.\n",
    "\n",
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7c7ba2e2-0bfd-492b-9cdb-00da88a42822",
   "metadata": {
    "tags": []
   },
   "source": [
    "Dadurch das Probleme als solche Aufgaben begriffen werden, wird ein ungestörtes Problem \n",
    "\n",
    "$$\\underbrace{x}_{ungestörte Eingabedaten} \\in X \\xrightarrow[\\text{f}]{\\text{Problem}} \\underbrace{y = f(x)}_{ungestörte Ausgabedaten} \\in Y$$\n",
    "\n",
    "und ein gestörtes Problem\n",
    "\n",
    "$$\\underbrace{\\tilde{x}}_{gestörte Eingabedaten} \\in X \\xrightarrow[\\text{f}]{\\text{Problem}} \\underbrace{\\tilde{y} = f(\\tilde{x})}_{gestörte Ausgabedaten} \\in Y$$\n",
    "\n",
    "mit Eingabefehler $\\Delta x := \\tilde{x} - x$ und Ausgabefehler $\\Delta y := \\tilde{y} - y = f(\\tilde{x}) - f(x)$ derart aufgefasst. Folglich geht es darum, den Ausgabefehler $\\Delta y$ ins Verhältnis zum Eingabefehler $\\Delta x$ zu setzen. Für eine Fehleranalyse und die Quantifizierung des Konditionsbegriffs sind die folgenden Größen von Relevanz:\n",
    "\n",
    "- absoluter Eingabefehler: $\\left\\|\\Delta x\\right\\|_{\\mathbb{R}^n} = \\left\\|\\tilde{x} - x\\right\\|_{\\mathbb{R}^n}$\n",
    "\n",
    "- absoluter Ausgabefehler: $\\left\\|\\Delta y\\right\\|_{\\mathbb{R}^m} =\\left\\|f(\\tilde{x}) - f(x)\\right\\|_{\\mathbb{R}^m}$\n",
    "\n",
    "- relativer Eingabefehler: $\\delta_x = \\frac{\\left\\|\\Delta x\\right\\|_{\\mathbb{R}^n}}{\\left\\|x\\right\\|_{\\mathbb{R}^n}} = \\frac{\\left\\|\\tilde{x} - x\\right\\|_{\\mathbb{R}^n}}{\\left\\|x\\right\\|_{\\mathbb{R}^n}}$ für $x \\neq 0$\n",
    "\n",
    "- relativer Ausgabefehler: $\\delta_y = \\frac{\\left\\|\\Delta y\\right\\|_{\\mathbb{R}^m}}{\\left\\|y\\right\\|_{\\mathbb{R}^m}} = \\frac{\\left\\|f(\\tilde{x}) - f(x)\\right\\|_{\\mathbb{R}^m}}{\\left\\|f(x)\\right\\|_{\\mathbb{R}^m}}$ für $y \\neq 0$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "81e9d472-cb2a-456a-9ac3-fb0768b6a509",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-info\">\n",
    "    \n",
    "### Definition _Absolute und relative Kondition_ \n",
    "***\n",
    "Die _Kondition_ drückt aus, wie empfindlich eine Funktion $f: X \\rightarrow Y$ mit $X \\subseteq \\mathbb{R}^n$ und $Y \\subseteq \\mathbb{R}^m$ auf Störungen ihres Arguments $x$ reagiert. Die _absolute Kondition_ von $f$ an der Stelle $x \\in X$ ist definiert als die kleinste Zahl $\\kappa_{\\text{abs}}(f)(x)>0$, für die gilt:\n",
    "\n",
    "$$\\left\\|f(\\tilde{x})-f(x)\\right\\|_{\\mathbb{R}^m} \\leq \\kappa_{\\text{abs}}(f)(x) \\cdot \\left\\|\\tilde{x}-x\\right\\|_{\\mathbb{R}^n}, \\ x \\rightarrow \\tilde{x}.$$\n",
    "\n",
    "Die _relative Kondition_ von $f$ an der Stelle $x \\in X$ ist definiert die kleinste Zahl $\\kappa_{\\text{rel}}(f)(x)>0$, für die gilt:\n",
    "\n",
    "$$\\frac{\\left\\|f(\\tilde{x})-f(x)\\right\\|_{\\mathbb{R}^m}}{\\left\\|f(x)\\right\\|_{\\mathbb{R}^m}} \\leq \\kappa_{\\text{rel}}(f)(x) \\cdot \\frac{\\left\\|\\tilde{x}-x\\right\\|_{\\mathbb{R}^n}}{\\left\\|x\\right\\|_{\\mathbb{R}^n}}, \\ x \\rightarrow \\tilde{x}.$$\n",
    "\n",
    "Je kleiner (bzw. größer) die relative Kondition eines Problems ist, desto _besser_ (bzw. _schlechter_) - so spricht man - ist das Problem konditioniert."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eb575f8d-a15f-40cc-be26-a2e4687ce2de",
   "metadata": {},
   "source": [
    "Nach der Definition beschreibt die _relative_ (bzw. _absolute_) _Kondition_ eines Problems den im ungünstigsten Fall auftretende Vergrößerungsfaktor für den Einfluss von relativen (bzw. absoluten) Eingabefehlern auf relative (bzw. absolute) Ausgabefehlern.\n",
    "\n",
    "Wir werden die TAYLORsche Formel aus Analysis für eine quantitative Präzisierung der Kondition einer stetig differenzierbaren Funktion $f: X \\rightarrow Y$ mit $X \\subseteq \\mathbb{R}^n$ und $Y \\subseteq \\mathbb{R}^m$ verwenden. Lässt man in der TAYLORschen Formel Terme höherer Ordnung unberücksichtig, ergibt sich\n",
    "\n",
    "$$f(\\tilde{x}) \\ \\dot{=} \\ f(x) + f'(x)(\\tilde{x}-x),$$\n",
    "\n",
    "wobei $ \\ \\dot{=} \\ $ Gleichheit erster Ordnung bedeutet, also dass beide Seiten nur in den Anteilen nullter und erster Ordnung übereinstimmen. $f'(x)$ ist die Jacobi-Matrix von $f$. Daraus und aus Satz 1.1 folgt für die absolute Kondition\n",
    "\n",
    "$$\\|f(\\tilde{x}) - f(x)\\|_{\\mathbb{R}^m} \\ \\dot{\\leq} \\ \\|f'(x)\\|_{\\mathbb{R}^n \\rightarrow \\mathbb{R}^m} \\cdot \\|\\tilde{x} - x\\|_{\\mathbb{R}^n},$$\n",
    "\n",
    "wobei $ \\ \\dot{\\leq} \\ $ entsprechend zu $ \\ \\dot{=} \\ $  zu verstehen ist. Die relative Kondition erhalten wir ebenfalls mit Satz 1.1 wie folgt:\n",
    "\n",
    "$$f(\\tilde{x}) \\ \\dot{=} \\ f(x) + f'(x)(\\tilde{x}-x)$$\n",
    "\n",
    "$$\\Rightarrow \\frac {\\left\\|f(\\tilde{x}) - f(x)\\right\\|_{\\mathbb{R}^m}}{\\left\\|f(x)\\right\\|_{\\mathbb{R}^m}} \\ \\dot{=} \\  \\frac{\\left\\|f'(x)(\\tilde{x}-x)\\right\\|_{\\mathbb{R}^m}}{\\left\\|f(x)\\right\\|_{\\mathbb{R}^m}} \\frac{\\left\\|x\\right\\|_{\\mathbb{R}^n}}{\\left\\|x\\right\\|_{\\mathbb{R}^n}}$$ \n",
    "\n",
    "$$\\Rightarrow \\frac {\\left\\|f(\\tilde{x}) - f(x)\\right\\|_{\\mathbb{R}^m}}{\\left\\|f(x)\\right\\|_{\\mathbb{R}^m}} \\ \\dot{\\leq} \\  \\left\\|f'(x)\\right\\|_{\\mathbb{R}^n \\rightarrow \\mathbb{R}^m} \\frac{\\left\\|x\\right\\|_{\\mathbb{R}^n}}{\\left\\|f(x)\\right\\|_{\\mathbb{R}^m}} \\frac{\\left\\|\\tilde{x}-x\\right\\|_{\\mathbb{R}^n}}{\\left\\|x\\right\\|_{\\mathbb{R}^n}}$$\n",
    "\n",
    "Insgesamt erhält man daraus das folgende Lemma.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "07a578f5-ee5e-4bea-809d-16f36c341711",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-warning\">\n",
    "\n",
    "**Lemma 2.5**\n",
    "\n",
    "Sei $f: X \\rightarrow Y$ eine stetig differenzierbare Funktion mit $X \\subseteq \\mathbb{R}^n$ und $Y \\subseteq \\mathbb{R}^m$, dann gelten\n",
    "\n",
    "$$\\kappa_{\\text{abs}}(f)(x)\\ \\dot{=} \\ \\left\\|f'(x)\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m}$$\n",
    "\n",
    "und\n",
    "\n",
    "$$\\kappa_{\\text{rel}}(f)(x)\\ \\dot{=} \\ \\left\\|f'(x)\\right\\|_{\\mathbb{R}^n \\rightarrow\\mathbb{R}^m} \\frac{\\left\\|x\\right\\|_{\\mathbb{R}^n}}{\\left\\|f(x)\\right\\|_{\\mathbb{R}^m}}.$$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cac09570-1a06-4661-af95-5c9e93ff4e8c",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-success\">\n",
    "    \n",
    "### Aufgabe 4\n",
    "***\n",
    "Beweisen oder widerlegen Sie die folgende Aussage durch Betrachtung der relativen Kondition bzgl. der $\\left\\|\\cdot\\right\\|_1$-Norm:\n",
    "    \n",
    "Die Addition (vgl. Beispiel 2.1) ist für alle Eingabedaten gut konditioniert."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "adaa77c4-bdba-4dff-9901-b1789dcde856",
   "metadata": {},
   "source": [
    "Anhand dieses elementaren Beispiels wird sichtbar, dass die Kondition eines Problems stark von der Stelle $x$, an der die Funktion ausgewertet wird, abhängen kann. Der Faktor $\\kappa_{\\text{rel}}$ lässt sich nicht durch eine Konstante abschätzen. Die Addition ist problematisch, da die relativen Fehler extrem verstärkt werden können. Wenn diese Fehler in $x$ durch Rundung entstehen und $\\kappa_{\\text{rel}}$ groß ist, wird die entsprechende Fehlerverstärkung _**Auslöschung**_ genannt. Durch diesen Effekt droht der Verlust von entscheidenden Nachkommastellen. Genaueres folgt im späteren Verlauf des Notebooks."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8ae59b22-77e5-4356-aa28-8d6d190c33eb",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-success\">\n",
    "    \n",
    "### Aufgabe 5\n",
    "***\n",
    "Es seien $f,g: f: \\mathbb{R} \\rightarrow \\mathbb{R}$ zweimal stetig differenzierbar, $a>0$ und $x \\in \\mathbb{R}$ so, dass $f(x) \\neq 0, \\ g(x) \\neq 0$ und $(f \\circ g)(x) \\neq 0$. Zeigen oder widerlegen Sie die folgenden Aussagen:\n",
    "    \n",
    "a) $\\kappa_{\\text{rel}}(\\alpha f)(x) = \\kappa_{\\text{rel}}(f)(x)$,\n",
    "    \n",
    "b) $\\kappa_{\\text{rel}}(f+g)(x) = \\kappa_{\\text{rel}}(f)(x)+ \\kappa_{\\text{rel}}(g)(x)$,\n",
    "    \n",
    "c) $\\kappa_{\\text{rel}}(fg)(x) \\leq \\kappa_{\\text{rel}}(f)(x)+ \\kappa_{\\text{rel}}(g)(x)$,\n",
    "    \n",
    "d) $\\kappa_{\\text{rel}}(\\frac{f}{g})(x) \\leq \\kappa_{\\text{rel}}(f)(x)+ \\kappa_{\\text{rel}}(g)(x)$,\n",
    "  \n",
    "e) $\\kappa_{\\text{rel}}(f\\circ g)(x) = \\kappa_{\\text{rel}}(f) (g(x))+ \\kappa_{\\text{rel}}(g)(x)$."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4b271945-c7fe-4980-91c9-b9008d8c81b9",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-success\">\n",
    "    \n",
    "### Aufgabe 6\n",
    "***\n",
    "In einem Produktionsbetrieb werden Präzisionswellen hergestellt, die in Motoren eingesetzt werden. Die Länge der Wellen muss sehr genau sein, um die Funktion des Motors nicht zu beeinträchtigen. Abweichungen von der Solllänge ($100 mm$) können aufgrund von Änderungen der Umgebungstemperatur und der mechanischen Spannung im Material auftreten.\n",
    "\n",
    "Die Länge $L$ der Wellen hängt in erster Annäherung linear von der Umgebungstemperatur $x_1$ (in Grad Celsius) und der mechanischen Spannung $x_2$ (in Megapascal) ab. Diese Abhängigkeit wird durch die folgende Funktion modelliert:\n",
    "    \n",
    "$$L(x_1,x_2)=100+0.1(x_1-18)-0.05(x_2 -10)$$\n",
    "    \n",
    "Bei der Auswertung von $L$ ist $\\tilde{x}_1$ ein Näherungswert für die ideale Reverenztemperatur von $18°C$ und $\\tilde{x}_2$ ein Näherungswert für die ideale Reverenzspannung von $10MPa$. $\\tilde{x}= \\begin{pmatrix} \\ \\tilde{x}_1 \\\\ \\tilde{x}_2 \\end{pmatrix}$ ist durch Messungenauigkeiten durch einen relativen Fehler bzgl. der $\\left\\|\\cdot\\right\\|_1$-Norm von maximal $5\\%$ behaftet.\n",
    "    \n",
    "a) Schätzen Sie den relativen Fehler in $L$ in erster Näherung ab. Ist die modellierte Wellenlängenberechnung gut konditioniert?\n",
    "    \n",
    "b) Für den Verkauf ist es notwendig, dass die Wellenlänge maximal um $0.1\\%$ abweicht. Wie groß dürfen nach dieser Forderung die Messungenauigkeiten maximal sein?\n",
    "    \n",
    "c) Welche weitere physikalische Bedingung kann in diesem Modell integriert werden, damit es in Bezug auf seine Realitätsnähe optimiert wird? \n",
    "    \n",
    "d) Überlegen Sie sich eine weitere beispielhafte Anwendungssituation, in der es sinnvoll ist, die Kondition des modellierten Problems zu untersuchen."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4533f880-c71f-4c77-b12a-ec39f9132949",
   "metadata": {},
   "source": [
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c6ba3d44-2ead-445d-bae9-93068019bc56",
   "metadata": {},
   "source": [
    "### 2.1. Die Kondition eines linearen Gleichungssystems"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "529aee09-e061-4e65-a4e3-93088bc6dd3f",
   "metadata": {},
   "source": [
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "25267fde-09d3-464a-8f07-a9d361bddeaa",
   "metadata": {},
   "source": [
    "Wie bereits Aufgabe 2 zeigt, ist die Kondition bei der numerischen Lösung von linearen Gleichungssystemen $Ax=b$ mit $A \\in \\mathbb{R}^{n \\times n}$ regulär und $b \\in \\mathbb{R}^{n}$ von besonderer Relevanz. Betrachtet man dabei nur den Vektor $b$ als Eingabegröße, so wird das Problem durch die Abbildung\n",
    "\n",
    "$$f: \\mathbb{R}^n \\rightarrow \\mathbb{R}^n, b \\mapsto f(b):= A^{-1}b$$ \n",
    "\n",
    "beschrieben. Die Ableitung ist daher $f'(b)=A^{-1}$, so dass sich das nachstehende Lemma ergibt."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "275946aa-1624-40e4-9d83-456d10ec95b9",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-warning\">\n",
    "\n",
    "**Lemma 2.1.1**\n",
    "\n",
    "Sei $A \\in \\mathbb{R}^{n \\times n}$ regulär und $b \\in \\mathbb{R}^{n}$. Die absolute Kondition des linearen Gleichungssystems $Ax=b$ bei Störungen in $b$ ist\n",
    "\n",
    "\n",
    "$$\\kappa_{\\text{abs}}(f)(b)\\ \\dot{=} \\ \\left\\|A^{-1}\\right\\|$$\n",
    "\n",
    "und die relative Kondition ist\n",
    "\n",
    "$$\\kappa_{\\text{rel}}(f)(b) \\ \\dot{=} \\ \\left\\|A^{-1}\\right\\|\\frac{\\left\\|b\\right\\|}{\\left\\|A^{-1}b\\right\\|} = \\left\\|A^{-1}\\right\\|\\frac{\\left\\|Ax\\right\\|}{\\left\\|x\\right\\|}.$$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3b8064ff-0e7b-400a-a215-cbe5004c3b3e",
   "metadata": {},
   "source": [
    "Da nach Satz 1.1 $\\left\\|Ax\\right\\| \\leq \\left\\|A\\right\\| \\cdot \\left\\|x\\right\\|$ gilt, verwendet man die folgende Definition:"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3ae48b0d-3009-441a-850e-06522fa917a5",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-info\">\n",
    "    \n",
    "### Definition _Kondition einer Matrix_ \n",
    "***\n",
    "Sei $A \\in \\mathbb{R}^{n \\times n}$ regulär und $b \\in \\mathbb{R}^{n}$. Dann ist die relative Kondition eines linearen Gleichungssystems $Ax=b$ definiert als die _Kondition der Matrix_ $A$,\n",
    "    \n",
    "$$\\kappa(A) := \\left\\|A\\right\\| \\cdot \\left\\|A^{-1}\\right\\|.$$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "38a4dac9-57dc-4d74-86f8-494993d7c722",
   "metadata": {},
   "source": [
    "Diese Definition bzw. Abschätzung hat den Vorteil, dass durch sie die relative Kondition eines linearen Gleichungssystems $Ax=b$ für alle möglichen rechten Seiten $b \\in \\mathbb{R}^{n}$ beschrieben werden kann."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3143ecd4-68a3-4d4e-ae03-8d76aff8913e",
   "metadata": {},
   "source": [
    "***\n",
    "**Bermerkung 2.1.2**\n",
    "\n",
    "Bei weiteren Überlegungen kann man sehen, dass man auch bei der Betrachtung von Störungen in der Matrix $A$ auf denselben Ausdruck kommt. In der Praxis sind meist beide Größen, Matrix $A$ und die rechte Seite $b$, durch Messfehler etc. gestört. Dies soll in dem Notebook nicht vertieft werden.\n",
    "\n",
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f95046b6-ec37-473b-abdd-ffd50775f8ca",
   "metadata": {},
   "source": [
    "**Beispiel 2.1.3**\n",
    "\n",
    "Die Berechnung des Schnittpunktes zweier Geraden\n",
    "\n",
    "$$G_1 = \\{(x_1,x_2)\\in\\mathbb{R}^2 | a_{1,1}x_1+a_{1,2}x_2 = b_1\\}$$\n",
    "$$G_2 = \\{(x_1,x_2)\\in\\mathbb{R}^2 | a_{2,1}x_1+a_{2,2}x_2 = b_2\\},$$\n",
    "\n",
    "wobei $b=(b_1,b_2)^T\\in\\mathbb{R}^2$ und die Koeffizienten $a_{i,j}$ für $i, j = 1, 2$ gegeben sind, so dass $det(A)\\neq 0$ gilt. Mit\n",
    "\n",
    "$$A= \\begin{pmatrix} a_{1,1} & a_{1,2} \\\\ a_{2,1} & a_{2,2} \\end{pmatrix}$$\n",
    "\n",
    "ergibt sich das _lineare Gleichungssystem_\n",
    "\n",
    "$$Ax = b.$$\n",
    "\n",
    "In diesem Fall besteht simultan zu oben das Problem in der Untersuchung der Funktion \n",
    "\n",
    "$$f: \\mathbb{R}^n \\rightarrow \\mathbb{R}^n, b \\mapsto f(b):= A^{-1}b.$$\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c4a35171-f49f-48f0-9e4e-ecbcdb763854",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-success\">\n",
    "    \n",
    "### Aufgabe 7\n",
    "***\n",
    "Gegeben sind die drei Geraden \n",
    " \n",
    "$$G_1 = \\{(x_1,x_2)\\in\\mathbb{R}^2 | x_1+x_2 = 1\\}$$\n",
    "$$G_2 = \\{(x_1,x_2)\\in\\mathbb{R}^2 | x_1-x_2 = 1\\}$$\n",
    "$$G_3 = \\{(x_1,x_2)\\in\\mathbb{R}^2 | x_1+1,2x_2 = 1\\}.$$\n",
    "    \n",
    "a) Berechnen Sie analog zum Beispiel 2.1.3 die Schnittpunkte zwischen den Geraden $G_1$ und $G_2$ sowie zwischen $G_1$ und $G_3$. Fertigen Sie zu jedem Schnittpunkt eine Skizze an. \n",
    "    \n",
    "b) Sei nun die Gerade $G_1$ auf der rechten Seite gestört mit\n",
    "    \n",
    "$$\\tilde{G}_1 = \\{(\\tilde{x}_1,\\tilde{x}_2)\\in\\mathbb{R}^2 | \\tilde{x}_1+\\tilde{x}_2 = 0\\}.$$   \n",
    "    \n",
    "Berechnen Sie die gestörten Schnittpunkte zwischen den Geraden $\\tilde{G}_1$ und $G_2$ sowie zwischen $\\tilde{G}_1$ und $G_3$. Bestimmen Sie darüber hinaus jeweils bzgl. der $\\left\\|\\cdot\\right\\|_\\infty$-Norm\n",
    "- den relativen Eingabe- sowie Ausgabefehler und\n",
    "- die Kondition der Matrix. \n",
    "\n",
    "Ergänzen Sie die gestörte Gerade $\\tilde{G}_1$ in den beiden Skizzen. Was fällt Ihnen dabei auf? Beschreiben Sie das vorliegende Phänomen."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c54911af-3659-4ebc-a939-da5b88c67d31",
   "metadata": {},
   "source": [
    "In der Aufgabe soll vor allem durch die Skizze erkannt werden, dass das Verhältnis zwischen dem relativen Ein- und Ausgabefehler stark vom Schnittwinkel der Geraden abhängt. Stehen sie (fast) senkrecht aufeinander, so wie $G_1$ und $G_2$, ist der Fehler im Resultat von der Größenordnung des Eingabefehlers. Sind die Geraden jedoch nahezu parallel, so wie $G_1$ und $G_3$, das heißt, $B$ ist fast singulär, wird der relative Ausgabefehler in Relation zum relativen Eingabefehler beliebig groß. Folglich ist der erste Fall gut und der zweite Fall schlecht konditioniert. "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "124f08ad-8c12-44d0-a3e0-cd1419eddf2c",
   "metadata": {},
   "source": [
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0f770ecd-2473-425f-99e0-1b6cce51d679",
   "metadata": {},
   "source": [
    "### 2.2. Die komponentenweise Konditionsanalyse"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c82d23e1-a223-4adc-a60f-826b1c7aeed9",
   "metadata": {},
   "source": [
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e12f689f-66e7-4c56-b3e8-38c36bea6c29",
   "metadata": {},
   "source": [
    "**Beispiel 2.2.1**\n",
    "\n",
    "Sei $\\epsilon > 0$. Die Lösung eines Gleichungssystems $Ax=b$ mit einer Diagonalmatrix\n",
    "\n",
    "$$ A=\\begin{pmatrix} 1 & 0 \\\\ 0 & \\epsilon \\end{pmatrix},\\ A^{-1}=\\begin{pmatrix} 1 & 0 \\\\ 0 & \\frac{1}{\\epsilon} \\end{pmatrix}, $$\n",
    "\n",
    "ist trivialerweise ein gutkonditioniertes Problem, da die beiden Gleichungen vollkommen unabhängig voneinander sind. Die Kondition der Matrix $A$ bzgl. der $\\left\\|\\cdot\\right\\|_\\infty$-Norm,\n",
    "\n",
    "$$\\kappa(A) = \\left\\|A\\right\\|_\\infty \\cdot \\left\\|A^{-1}\\right\\|_\\infty = \\frac{1}{\\epsilon},$$\n",
    "\n",
    "wird für kleine $\\epsilon\\ll1$ allerdings beliebig groß.\n",
    "\n",
    "***\n",
    "\n",
    "Dieses Beispiel verdeutlicht, dass der vorher eingeführte Konditionsbegriff in manchen Situationen Mängel aufweist. Intuitiv hätte man erwartet, dass die Kondition einer Diagonalmatrix immer $1$ ist. Auf eine solche Kondition wird die folgende komponentenweise Analyse führen. Hierbei werden die Normen durch komponentenweise Beträge ersetzt. Nun wird das jetzt für das relative Konzept vorgestellt.   "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4a64b568-e422-4cde-a281-20e66a53b19e",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-info\">\n",
    "    \n",
    "### Definition _Komponentenweise Kondition_ \n",
    "***\n",
    "\n",
    "Die _komponentenweise Kondition_ von $f$ an der Stelle $x \\in X \\subseteq \\mathbb{R}^n$ ist definiert die kleinste Zahl $\\kappa_{\\text{rel}}(f)(x)>0$, für die gilt:\n",
    "    \n",
    "$$\\frac{\\left\\|f(\\tilde{x})-f(x)\\right\\|_{\\infty}}{\\left\\|f(x)\\right\\|_{\\infty}} \\leq \\kappa_{\\text{rel}}(f)(x) \\max_{i=1,..,n} \\frac{|\\tilde{x}_i-x_i|}{|x_i|}, \\ x \\rightarrow \\tilde{x}.$$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "33aafd56-acf5-49c9-8a7c-cbae820d7283",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-warning\">\n",
    "\n",
    "**Lemma 2.2.2**\n",
    "    \n",
    "Sei $f: X \\rightarrow Y$ eine stetig differenzierbare Funktion mit $X \\subseteq \\mathbb{R}^n$ und $Y \\subseteq \\mathbb{R}^m$, dann gilt für die Komponentenweise Kondition \n",
    "    \n",
    "$$\\kappa_{\\text{rel}}(f)(x)\\ \\dot{=} \\ \\frac{\\left\\| \\ |f'(x)| \\cdot |x| \\ \\right\\|_{\\infty}}{\\left\\|f(x)\\right\\|_{\\infty}},$$\n",
    "    \n",
    "wobei $|f'(x)|$ bzw. $|x|$ derart zu verstehen sind, dass alle Elemente von $f'(x)$ bzw. $x$ im Betrag stehen. Die Multiplikation ist hier die Matrix-Vektor-Multiplikation. "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2e644c46-42d0-4c1f-9d8b-315394b5b4a7",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-success\">\n",
    "    \n",
    "### Aufgabe 8\n",
    "*** \n",
    " \n",
    "Beweisen oder widerlegen Sie die folgende Aussage durch Betrachtung der komponentenweise Kondition:\n",
    "    \n",
    "Die Multiplikation (vgl. Beispiel 2.2) ist für alle Eingabedaten gut konditioniert."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7ecb9f7a-6f9c-45b8-9e84-eeefd46bab42",
   "metadata": {},
   "source": [
    "***\n",
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2540ba79-3134-497e-9608-dc7bfc20edba",
   "metadata": {
    "tags": []
   },
   "source": [
    "### 3. Stabilität eines Algorithmus"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d495e510-8817-4731-be7c-27e8037e3de0",
   "metadata": {},
   "source": [
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0d32218e-98f5-4baa-843a-e4987d0324d6",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-success\">\n",
    "    \n",
    "### Aufgabe 9\n",
    "***\n",
    "Die Funktion $f:\\mathbb{R}_{\\geq0}\\rightarrow\\mathbb{R}, x\\mapsto f(x):=\\sqrt{x+1}-\\sqrt{x}$ soll für große $x$ (etwa $x \\approx 10^4$) untersucht werden. Betrachten Sie dafür die beiden folgenden Algorithmen:\n",
    "\n",
    "<table>\n",
    "  <tr>\n",
    "    <th>1. Algorithmus</th>\n",
    "    <th>2. Algorithmus</th>\n",
    "  </tr>\n",
    "  <tr>\n",
    "    <td>$y_1:=x+1$</td>\n",
    "    <td>$y_1:=x+1$</td>\n",
    "  </tr>\n",
    "  <tr>\n",
    "    <td>$y_2:=\\sqrt{y_1}$</td>\n",
    "    <td>$y_2:=\\sqrt{y_1}$</td>\n",
    "  </tr>\n",
    "  <tr>\n",
    "    <td>$y_3:=\\sqrt{x}$</td>\n",
    "    <td>$y_3:=\\sqrt{x}$</td>\n",
    "  </tr>\n",
    "  <tr>\n",
    "    <td>$\\tilde{f_1}:=y_2-y_3$</td>\n",
    "    <td>$y_4:=y_2+y_3$</td>\n",
    "  </tr>\n",
    "  <tr>\n",
    "    <td> </td>\n",
    "      <td>$\\tilde{f_2}:=\\frac{1}{y_4}$</td>\n",
    "  </tr>\n",
    "</table>\n",
    "    \n",
    "a) Zeigen Sie, dass bei exakter Rechnung $f = \\tilde{f_1} = \\tilde{f_2}$ gilt.\n",
    "    \n",
    "b) Zeigen Sie, dass die relative Kondition von $f$ für große $x$ näherungsweise $\\frac{1}{2}$ ist.\n",
    "    \n",
    "c) Führen Sie die beiden Algorithmen zur Berechnung von $f(10^4)$ durch. Runden Sie dabei nach jedem Schritt auf fünf signifikante Stellen, d.h. dass die Zwischenergebnisse derart gerundet werden sollen, dass sie insgesamt fünf Ziffern $\\neq 0$ enthalten. Was fällt Ihnen dabei auf? Beschreiben Sie das vorliegende Phänomen. Welcher Algorithmus ist dementsprechend vorzuziehen? Begründen Sie Ihre Antwort.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ceeaca4d-459e-41fb-91dd-37a9a430a266",
   "metadata": {},
   "source": [
    "Die Abbildung $f$, die das zu untersuchende Problem beschreibt, wird bei der numerischen Lösung durch eine Abbildung $\\tilde{f}$ realisiert. Sie inkludiert alle Rundungs- sowie Approximationsfehler und liefert anstelle von $f(x)$ ein gestörtes Ergebnis $\\tilde{f}(x)$. Die Aufgabe zeigt, dass es sich bei einem Algorithmus nicht um eine einzige Abbildung $\\tilde{f}$ sondern um eine ganze Klasse $\\{\\tilde{f}\\}$ handelt. Damit die Notation handlich bleibt, wird die Familie $\\{\\tilde{f}\\}$ ebenfalls mit $\\tilde{f}$ bezeichnet.\n",
    "\n",
    "Insgesamt verdeutlicht die Aufgabe, wie durch Auslöschungseffekte in einem einfachen Algorithmus das Ergebnis von Rundungsfehlern dominiert wird. Betrachten wir dazu die Kondition der letzten Operation vom 2. Algorithmus als Funktion $g$ von $y_3$, also $g(y_3):= y_2-y_3$. Diese berechnet sich zu\n",
    "\n",
    "$$\\kappa_{\\text{rel}}(g)(y_3)=\\left|g'(y_3)\\frac{y_3}{g(y_3)}\\right|=\\left|-\\frac{y_3}{y_2-y_3}\\right|=\\left|-\\frac{\\sqrt{10 000}}{\\sqrt{10 001}-\\sqrt{10 000}}\\right|\\approx 20 000.$$\n",
    "\n",
    "Die Kondition dieses Schrittes ist also $40000$-mal größer als die Kondition von $f$ selbst, was genau an dem Phänomen Auslöschung liegt. $\\tilde{f_1}$ ist daher sehr viel _instabiler_ als $\\tilde{f_2}$."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1f6d34bb-1673-476a-abc6-371e728454b1",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-info\">\n",
    "    \n",
    "### Definition _Stabilität_\n",
    "***\n",
    "\n",
    "Ein Algorithmus heißt _stabil_, wenn die durch ihn im Laufe der Rechnung erzeugten Fehler $\\tilde{f}(x)-f(x)$ in der Größenordnung des durch die Kondition des Problems bedingten unvermeidbaren Fehlers $f(\\tilde{x})-f(x)$ bleiben."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1030f4a1-13c4-46b3-b0e4-7b13856d1b73",
   "metadata": {},
   "source": [
    "An der Aufgabe wird ersichtlich, dass die so ähnlich formulieren Begriffe _Kondition_ und _Stabilität_ doch verschiedene Sachverhalte beschreiben. Die Funktion $f$ hat eine kleine Kondition für große $x$. Jedoch kann ein Algorithmus so wie der 1. zur Berechnung von $f$ an einer solchen $x$-Stelle instabil sein. Andersherum kann man, wenn ein Problem schlecht konditioniert ist, nicht erwarten, dass ein stabiler Algorithmus gute Resultate liefert."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "740bb3a9-e473-446a-8fcd-3110fcb85165",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-success\">\n",
    "    \n",
    "### Aufgabe 10\n",
    "***\n",
    "Bringen Sie die beiden folgenden Ausdrücke in eine Form, bei der eine große Fehlerverstärkung durch Auslöschung nahe $x=0$ vermieden wird. Wir nehmen dazu an, dass diese genauso ausgewertet werden, wie sie jeweils dargestellt sind. \n",
    "    \n",
    "a) $\\tilde{f}(x):=\\frac{1}{1+2x}-\\frac{1-x}{1+x}$,\n",
    "    \n",
    "b) $\\tilde{g}(x):=\\frac{x^2}{1-cos(x)}$."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b1a708e7-fc2e-4fe1-b460-fe945ae6f0f6",
   "metadata": {},
   "source": [
    "***\n",
    "***"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e3bd788b-b605-489d-8926-bd9c203aa0d5",
   "metadata": {
    "tags": []
   },
   "source": [
    "### Literatur\n",
    "- Dahmen, W. & Reusken, A. (2022). _Numerik für Ingenieure und Naturwissenschaftler. Methoden, Konzepte, Matlab-Demos, E-Learning._ (3. Aufl.). Berlin: Springer.\n",
    "- Deuflhard, P. & Hohmann, A. (2019). _Numerische Mathematik 1. Eine algorithmisch orientierte Einführung._ (5. Aufl.). Berlin/Bosten: De Gruyter.\n",
    "- Meister, A. & Sonar, T. (2019). _Numerik. Eine lebendige und gut verständliche Einführung mit vielen Beispielen._ Berlin: Springer.\n",
    "- Schäfer, U. (2008). _Das lineare Komplementaritätsproblem. Eine Einführung._ Berlin/Heidelberg: Springer.\n",
    "- Titz, M. (2021). _Zentrale Ideen der numerischen Mathematik. Vorschlag eines Katalogs\n",
    "und unterrichtliche Umsetzungen._ Aachen: Fakultät für Mathematik, Informatik und Naturwissenschaften der RWTH Aachen University."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
