Normalverteilte Zufallsvariablen - Nichtlineare Abbildungen

Viele Meßgrößen von Sensoren sowie Zustände von Systeme lassen sich in der Praxis durch normalverteile Zufallsvariablen sehr gut beschreiben. Dies ist eine Konsequenz auf dem zentralen Grenzwertsatz (central limit theorem), nachdem der Stichprobenmittelwert als Zufallsvariable näherungsweise normalverteilt ist.

Die Argumentation dabei ist, dass die Meßgröße eines Sensors als Überlagerung des eigentlichen wahren Zustandes \(\textbf{x}\) mit normalverteiltem Rauschen \(\epsilon\sim\mathcal{N}\) gesehen werden kann. Das Rauschen wird als Überlagerung (Mittelwert) unendlich vieler kleiner Störeinflüße modelliert und ist daher aufgrund des zentralen Grenzwertsatzes normalverteilt.

Wird der Systemzustand nun aufgrund dieser normalverteilten Meßgrößen geschätzt und zusätzlich noch von ebenfalls normalverteilten Störeinflüßen überlagert, so ist es plausibel anzunehmen das ebendieser Systemzustand auch normalverteilt ist.

Eine normalverteilte Zufallsvariable wird dabei vollständig durch Angabe ihres (ggf. mehr-dimensionalen) Mittelwertes sowie der dazugehörigen Kovarianzmatrix beschrieben. Man sagt der Vektor von Zufallsvariablen

\[\begin{split}\boldsymbol{x} = \begin{pmatrix}x_1\\\vdots\\x_n\end{pmatrix}\end{split}\]

ist multivariat Normalverteilt mit Mittelwert

\[\begin{split}\boldsymbol{\mu} = \begin{pmatrix}\mu_1\\\vdots\\\mu_n\end{pmatrix}\end{split}\]

und Kovarianz

\[\begin{split}\Sigma = \begin{pmatrix} \sigma_{1}^2 & \sigma_{12} & \dots & \sigma_{1n} \\ \sigma_{21} & \sigma_{22}^2 & \dots & \sigma_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ \sigma_{n1} & \sigma_{n2} & \dots & \sigma_n^2 \end{pmatrix}\end{split}\]

Dabei beschreibt die Kovarianzmatrix auf ihrer Hauptdiagonale die Varianzen \((\sigma_{1}^2,\dots,\sigma_{n}^2)\) der Zufallsvariablen. Der Term \(\sigma_{ij}\) entspricht dann der Kovarianz zwischen \(x_i\) und \(x_j\).

Lineare Abbildungen von Zufallsvariablen

Im folgenden betrachten wir eine multivariat normalverteilte Zufallsvariable \(\boldsymbol{x}\in\mathbb{R}^n\), also

\[\boldsymbol{x} \sim \mathcal{N}\left(\boldsymbol{\mu}, \Sigma\right)\]

sowie eine lineare Abbildung ebendieser

\[\boldsymbol{y} = A\cdot \boldsymbol{x}\]

mit einer Matrix \(A\in\mathbb{R}^{n\times n}\) Da die Summe normalverteilter Zufallsvariablen ebenfalls wieder normalverteilt ist gilt für lineare Abbildungen einfach

\[E[A\cdot \boldsymbol{x}] = A\cdot E[\boldsymbol{x}] = A \cdot \boldsymbol{\mu}\]

Für die Kovarianz von \(\boldsymbol{y}\) finden wir entsprechend

\[Cov[A\cdot \boldsymbol{x}] = A\cdot Cov[\boldsymbol{x}]\cdot A^T = A \cdot \Sigma \cdot A^T\]

Lineare Abbildung - Ein Beispiel

In dem folgenden Beispiel wurde eine multivariate Zufallsvariable mit Mittelwert \(\boldsymbol{\mu} = (1.5, 0.5)\) und Kovarianz

\[\begin{split}\Sigma = \begin{pmatrix} 0.7 & -0.4 \\ -0.4 & 1.4 \end{pmatrix}\end{split}\]

über eine lineare Abbildung \(\boldsymbol{y} = A\cdot\boldsymbol{x}\) mit

\[\begin{split}A = \begin{pmatrix} 0.76 & 0.64\\ -0.64 & 0.76 \end{pmatrix}\end{split}\]

abgebildet. Für die neue Zufallsvariable ergibt sich

\[\begin{split}E[A\cdot\boldsymbol{x}] = A\cdot\boldsymbol{\mu} = \begin{pmatrix} 1.47\\ -0.58 \end{pmatrix}\end{split}\]

Für die Kovarianz der neuen Zufallsvariable finden wir entsprechend

\[\begin{split}Cov[A\cdot\boldsymbol{x}] = A\cdot\Sigma\cdot A^T = \begin{pmatrix} 0.6 & 0.28\\ 0.28 & 1.5 \end{pmatrix}\end{split}\]
Linear Mapping of Random Variablen

Gezeigt sind die Kovarianzellipsen (Regionen konstanter Mahalanobis-Distanz) sowie eine Stichprobe von 512 zufälligen Samples (Ausprägungen) der Zufallsvariable. Im linken Teil der Grafik ist die Zufallsvariable \(\boldsymbol{x}\) abgebildet.

Die Samples wurden individuell mit der linearen Abbildungsmatrix in das neue Koordinatensystem überführt und anschließend wieder der sich ergebende Mittelwert sowie die Kovarianz der Punktwolke bestimmt. Die so entstehende Punkte sowie Ellipsen wurden hellblau in das rechte Koordinatensystem eingezeichnet.

Gleichzeitig wurde die tatsächliche Kovarianz und der tatsächliche Mittelwert als dunkelblaue Ellipsen eingezeichnet. Beide sind nahezu deckungsgleich. Die beobachtete Abweichung ergibt sich daraus, dass für die Stichprobe lediglich 512 zufällige Samples gezogen wurden, die Stichprobe also zu klein ist.

Nicht-Lineare Abbildungen von Zufallsvariablen

Wird eine multivariat normalverteilte Zufallsvariable \(\boldsymbol{X}\) durch eine nicht-lineare Funktion \(f: \mathbb{R}^n\mapsto\mathbb{R}^m\) abgebildet, so ist \(\boldsymbol{Y} = f(\boldsymbol{X})\) ebenfalls eine Zufallsvariable. In der Regel ist \(\boldsymbol{Y}\) jedoch nicht mehr normalverteilt.

Non-linear mapping of random variables

Die Abbildung zeigt ein einfaches Beispiel. Links ist das Histogram von 400.000 Samples einer normalverteilten Zufallsvariable mit Mittelwert \(\mu=3\) und Varianz \(\sigma^2 = 1\) gezeigt. Wird die Zufallsvariable durch \(f(x) = x^2\) auf eine neue Zufallsvariable \(\boldsymbol{Y} = f(\boldsymbol{X})\) abgebildet, so ist diese offensichtlich nicht mehr normalverteilt (siehe dazu das rechte Histogram der sich ergebenden Verteilung).

Um dennoch eine Näherung für die Verteilung von \(\boldsymbol{Y}\) zu erhalten, kann die nicht-lineare Abbildung \(f(\boldsymbol{X})\) im Punkt des Erwartungswerts \(\boldsymbol{\mu}_X = \mathbb{E}[\boldsymbol{X}]\) durch eine lineare Funktion approximiert werden. Dies geschieht durch eine Taylor-Entwicklung erster Ordnung:

\[f(\boldsymbol{X}) \approx f(\boldsymbol{\mu}_X) + J_f(\boldsymbol{\mu}_X) (\boldsymbol{X} - \boldsymbol{\mu}_X),\]

wobei \(J_f(\boldsymbol{\mu}_X)\) die Jacobi-Matrix von \(f\) an der Stelle \(\boldsymbol{\mu}_X\) ist.

Da die Linearkombination einer normalverteilten Zufallsvariablen wieder normalverteilt ist, lässt sich auf Basis dieser Approximation eine multivariate Normalverteilung für \(\boldsymbol{Y}\) angeben:

  • Der approximierte Erwartungswert ergibt sich zu

    \[\mathbb{E}[\boldsymbol{Y}] \approx f(\boldsymbol{\mu}_X),\]
  • und die approximierte Kovarianzmatrix zu

    \[\Sigma_Y \approx J_f(\boldsymbol{\mu}_X) \, \Sigma_X \, J_f(\boldsymbol{\mu}_X)^\top,\]

wobei \(\Sigma_X\) die Kovarianzmatrix von \(\boldsymbol{X}\) ist.

Diese Methode entspricht einer Taylor-Entwicklung erster Ordnung und wird typischerweise im Extended Kalman Filter (EKF) verwendet. Für genauere Approximationen existieren alternative Methoden wie die Unscented Transform, bei der deterministisch gewählte Sigma-Punkte durch die nichtlineare Abbildung propagiert werden.

Die Jacobi-Matrix

Die Jacobi-Matrix ist eine Matrix, die alle ersten partiellen Ableitungen einer vektorwertigen Funktion enthält. Betrachtet man eine Funktion \(f: \mathbb{R}^n \rightarrow \mathbb{R}^m\), so ergibt sich die Jacobi-Matrix \(J_f(\boldsymbol{x})\) als eine \(m \times n\)-Matrix:

\[\begin{split}J_f(\boldsymbol{x}) = \begin{bmatrix} \frac{\partial f_1}{\partial x_1} & \cdots & \frac{\partial f_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial f_m}{\partial x_1} & \cdots & \frac{\partial f_m}{\partial x_n} \end{bmatrix}\end{split}\]

Jede Zeile enthält dabei die partiellen Ableitungen einer Komponente von \(f\). Mit anderen Worten: Die Jacobi-Matrix beschreibt, wie sich kleine Änderungen in \(\boldsymbol{X}\) auf jede Komponente von \(f(\boldsymbol{X})\) auswirken. Sie ist die natürliche Verallgemeinerung der Ableitung aus der eindimensionalen Analysis auf mehrdimensionale Vektorfunktionen.

In unserem Kontext wird die Jacobi-Matrix verwendet, um eine nichtlineare Funktion im Punkt \(\boldsymbol{\mu}_X\) durch eine lineare Abbildung zu approximieren.

Die Jacobi-Matrix - Ein Beispiel

Es sei \((r, \alpha)\) ein zwei-dimensionaler Punkt in Polarkoordinaten, also dargestellt über seinen Abstand zum Ursprung \(r\) sowie den Winkel zum x-Achse \(\alpha\).

Die Abbildung in gewohnte kartesische Koordinaten läßt sich über die nicht-lineare Funktion

\[\begin{split}f(r, \alpha) = \begin{pmatrix} r\cdot \cos(\alpha)\\ r\cdot \sin(\alpha) \end{pmatrix}\end{split}\]

darstellen. Für die Jacobi-Matrix finden wir dann

\[\begin{split}J_f(r, \alpha) = \begin{bmatrix} \frac{\partial}{\partial r}(r \cos(\alpha)) & \frac{\partial}{\partial \alpha}(r \cos(\alpha)) \\ \frac{\partial}{\partial r}(r \sin(\alpha)) & \frac{\partial}{\partial \alpha}(r \sin(\alpha)) \end{bmatrix} = \begin{bmatrix} \cos(\alpha) & -r \sin(\alpha) \\ \sin(\alpha) & r \cos(\alpha) \end{bmatrix}\end{split}\]

Diese Matrix beschreibt die lokale lineare Approximation der Koordinatentransformation am Punkt \((r, \alpha)\). Sie zeigt insbesondere, wie Änderungen in Radius und Winkel sich auf die kartesischen Koordinaten auswirken.

Kennt man den Erwartungswert \(\boldsymbol{\mu}_{(r,\alpha)}\) sowie die Kovarianzmatrix \(\Sigma_{(r,\alpha)}\) der ursprünglichen (in Polarkoordinaten beschriebenen) Zufallsvariablen, so lässt sich durch Einsetzen der Jacobi-Matrix in die Approximation

\[\Sigma_{(x,y)} \approx J_f(\boldsymbol{\mu}_{(r,\alpha)}) \, \Sigma_{(r,\alpha)} \, J_f(\boldsymbol{\mu}_{(r,\alpha)})^\top\]

eine Näherung der Kovarianzmatrix im kartesischen Raum berechnen.

Non-Linear Mapping of Random Variable

Der obige Plot zeigt ein Beispiel für eine solche Transformation. Links ist die normalverteilte Zufallsvariable \(\boldsymbol{X}\) zu sehen. Die Zufallsvariable weißt in \(r\)-Richtung (horizontal) nur eine geringe Unsicherheit auf. Das entspricht einer hohen Genauigkeit was Entfernungsschätzungen angeht. In \(\alpha\)-Richtung (vertikal) ist die Unsicherheit deutlich größer, die Winkelgenauigkeit ist also deutlich schlechter. Das entspricht dem typischen Unsicherheitsprofil eines Radars.

Rechts ist die nicht-lineare Transformation dieser Zufallsvariable in den kartesischen Raum zu sehen. Solange die Winkelunsicherheit nicht zu groß ist kann die entstehende Verteilung hinreichend gut durch eine Normalverteilung beschrieben werden.

Was passiert nun wenn die Winkelunsicherheit zu groß wird?

Non-Linear Mapping of Random Variable

Im obigen Plot wurde die Winkelunsicherheit deutlich erhöht. Die möglichen Meßwerte (die einzelnen Punkte der Punktwolke) decken nun einen so großen Bereich ab, dass die Transformation in kartesische Koordinate nicht mehr sinnvoll durch eine Normalverteilung beschrieben werden kann. Dies zeigt sich auch daran das die durch Linearisierung geschätzten Parameter (Mittelwert und Kovarianz, gezeichnet in Dunkelblau) deutlich von dem tatsächlichen Mittelwert und der tatsächlchen Kovarianz der transformierten Punkte (gezeichnet in Hellblau) abweichen.

Aufgabe 1: Lineare Abbildung

In dieser Aufgabe arbeiten Sie in der Datei

nonlinearmapping/linear.py

Implementieren Sie die Methode linear.map_samples(). Folgen Sie den Anweisungen im Code.

linear.map_samples(samples, alpha)[Quellcode]

TODO Assume you have a normal distributed random variable \(\boldsymbol{X}\) with mean

\[\mu = (1.5 ,0.5)\]

and covariance

\[\begin{split}\Sigma = \begin{pmatrix}0.7&-0.4\\-0.4&1.4\end{pmatrix}\end{split}\]

Assume further that \(\boldsymbol{Y}\) is another random variable with

\[\boldsymbol{Y} = A\cdot \boldsymbol{X}\]

and

\[\begin{split}A = \begin{pmatrix}\cos(\alpha)&-\sin(\alpha)\\\sin(\alpha)&\cos(\alpha)\end{pmatrix}\end{split}\]

The samples parameter holds 512 samples of this random variable.

Apply the linear mapping to the samples and calculate the exact new mean and covariance of \(\boldsymbol{Y}\), namely

\[E[\boldsymbol{Y}] = E[A\cdot\boldsymbol{X}] = A\cdot\boldsymbol{\mu}\]
\[Cov[\boldsymbol{Y}] = Cov[A\cdot\boldsymbol{X}] = A\cdot Cov[\boldsymbol{X}] \cdot A^T\]

Return the mapped samples as well as the exact mean and covariance of the mapped random variable. Do not estimate the mean and covariance from the mapped samples.

Parameter:
  • samples – (np.array 2x512) 512 Samples from \(\boldsymbol{X}\)

  • alpha – Parameter \(\alpha\) of the Matrix \(A\) (see above)

Rückgabe:

3-tuple (mapped_samples, mapped_mu, mapped_cov)

Lösung anzeigen

def map_samples(samples, alpha):
   # TODO: Calculate Matrix A
   s, c = np.sin(alpha), np.cos(alpha)

   A = np.array([[ c, s],
                 [-s, c]])

   # TODO: Map the samples and calculate the exact mean and covariance of the Y
   mu  = np.array([1.5, 0.5])
   cov = np.array([[0.7, -0.4],[-0.4, 1.4]])

   mapped_samples = A @ samples
   mapped_mu = A @ mu.reshape(-1,1)
   mapped_cov = A @ cov @ A.T

   # TODO: Return your mapped samples, the mapped mean and the mapped covariance
   return mapped_samples, mapped_mu, mapped_cov

Starten Sie dann das Program. Wenn Sie alles richig gemacht haben sehen Sie einen animierten Plot ähnlich zu dem oben gezeigten Bild. Sie sollten sehen das die aus der Punktwolke geschätzten Kovarianzellipsen (hellblau) stets nahezu identisch sind mit denen von ihnen berechneten sind.

Aufgabe 2: Polarkoordinaten nach Kartesisch

In dieser Aufgabe arbeiten Sie in der Datei

nonlinearmapping/polar.py

Implementieren Sie die Methode polar.map_samples(). Folgen Sie den Anweisungen im Code.

polar.map_samples(samples, radius, alpha, cov)[Quellcode]

TODO Assume you have a normal distributed random variable \(\boldsymbol{X}\) with mean

\[\mu = (r, \alpha)\]

and given covariance (cov-Parameter). \(\boldsymbol{X}\) represents a random point in polar coordinates. We want to transform that point into cartesian coordinates by applying the following transformation

\[\begin{split}\boldsymbol{Y} = \begin{pmatrix} r\cdot\cos(\alpha)\\ r\cdot\sin(\alpha) \end{pmatrix}\end{split}\]

The samples parameter holds 512 samples of this random variable.

Apply the non-linear mapping to the samples and calculate the exact new mean and covariance of \(\boldsymbol{Y}\) after linearization using the Jacobian Matrix :\(J\), namely

\[E[\boldsymbol{Y}] = f(\boldsymbol{\mu})\]
\[Cov[\boldsymbol{Y}] = J\cdot Cov[\boldsymbol{X}] \cdot J^T\]

Return the mapped samples as well as the derived mean and covariance of the mapped random variable. Do not estimate the mean and covariance from the mapped samples.

Parameter:
  • samples – (np.array 2x512) 512 Samples from \(\boldsymbol{X}\)

  • radius – The mean radius in polar coordinates

  • alpha – The mean angle in polar coordinates

Rückgabe:

3-tuple (mapped_samples, mapped_mu, mapped_cov)

Lösung anzeigen

def map_samples(samples, alpha):
   # TODO: Map all samples from polar to cartesian coordinates
   r, a = samples[0, :], samples[1, :]

   mapped_samples = np.zeros_like(samples)
   mapped_samples[0, :] = r * np.cos(a)
   mapped_samples[1, :] = r * np.sin(a)

   # TODO: Calculate Jacobian
   J = np.array([[np.cos(alpha), -radius*np.sin(alpha)],
                 [np.sin(alpha),  radius*np.cos(alpha)]])

   # TODO: Calculate mean and covariance of Y after linearization
   mapped_mu = np.array([radius * np.cos(alpha), radius * np.sin(alpha)])
   mapped_cov = J @ cov @ J.T

   # TODO: Return your mapped samples, the mapped mean and the mapped covariance
   return mapped_samples, mapped_mu, mapped_cov

Starten Sie dann das Program. Wenn Sie alles richig gemacht haben sehen Sie einen animierten Plot ähnlich zu dem oben gezeigten Bild. Sie sollten sehen das die aus der Punktwolke geschätzten Kovarianzellipsen (hellblau) stets nahezu identisch sind mit denen von ihnen berechneten sind.

Aufgabe 3: Polarkoordinaten nach Kartesisch - Teil 2

Erhöhen Sie im Skript den Wert der Variable

STD_ALPHA = 5 # Standard deviation of angular values (degrees)

auf z.B. 25° und schauen Sie was passiert.

Praxisbeispiel für nichtlineare Transformation: Sauerstoffsättigung im Blut

Medizinischer Hintergrund

Die Sauerstoffsättigung des Hämoglobins im menschlichen Blut ist eine wichtige medizinische Messgröße. Sie beschreibt, wie viel Prozent des verfügbaren Hämoglobins mit Sauerstoff beladen ist – ein zentraler Indikator für die Versorgung des Körpers mit Sauerstoff.

Direkt gemessen wird in der Regel jedoch nicht die Sättigung selbst, sondern der Sauerstoffpartialdruck (\(p\)) im arteriellen Blut, beispielsweise mit einem Pulsoxymeter oder einer Blutgasanalyse. Zwischen dem Partialdruck und der Sättigung besteht ein nichtlinearer Zusammenhang, der durch die sogenannte Hill-Gleichung beschrieben werden kann.

Die Hill-Gleichung

Die Sauerstoffsättigung \(S\) in Abhängigkeit vom Sauerstoffpartialdruck \(p\) lässt sich durch die folgende Funktion annähern:

\[S(p) = \frac{p^n}{p^n + K^n}\]

Dabei sind: - \(p\) der Sauerstoffpartialdruck in mmHg, - \(n\) der sogenannte Hill-Koeffizient (beschreibt die Kooperativität der Sauerstoffbindung), - \(K\) der Partialdruck, bei dem 50 % des Hämoglobins gesättigt sind.

Typische Werte für menschliches Hämoglobin sind \(n = 2{,}7\) und \(K = 26\) mmHg.

Ziel dieser Aufgabe ist es, zu untersuchen, wie sich Unsicherheiten bei der Messung des Sauerstoffpartialdrucks auf die Verteilung der Sauerstoffsättigung auswirken – insbesondere bei Verwendung einer linearen Approximation mittels Taylor-Entwicklung erster Ordnung.

Das Experiment

Ein typisches Experiment in diesem Bereich sieht so aus:

  1. Gegeben ist eine normalverteilte Zufallsvariable für den Sauerstoffpartialdruck:

    \[p \sim \mathcal{N}(\mu_p = 40\,\text{mmHg}, \sigma_p^2 = 25\,\text{mmHg}^2)\]

    Bestimmen Sie den Erwartungswert \(\mu_S\) und die Varianz \(\sigma_S^2\) der Sauerstoffsättigung \(S(p)\) unter Verwendung einer linearen Approximation im Punkt \(\mu_p\).

  2. Leiten Sie dazu die erste Ableitung der Funktion \(S(p)\) nach \(p\) her und verwenden Sie diese zur Approximation mittels Taylor-Entwicklung erster Ordnung.

  3. Führen Sie eine Monte-Carlo-Simulation mit mindestens 10.000 Zufallswerten \(p_i \sim \mathcal{N}(\mu_p, \sigma_p^2)\) durch. Transformieren Sie jeden Wert mit \(S(p_i)\) und schätzen Sie den empirischen Mittelwert und die Varianz der resultierenden Verteilung.

  4. Vergleichen Sie die Ergebnisse der Simulation mit den Werten aus der linearen Approximation.

  5. Wiederholen Sie die Schritte 1–4 für folgende alternative Mittelwerte: - \(\mu_p = 20\) mmHg - \(\mu_p = 80\) mmHg

  6. Diskutieren Sie Ihre Beobachtungen: - Wann funktioniert die lineare Approximation gut? - In welchen Fällen weicht sie stark vom Simulationsergebnis ab? - Was ist der Einfluss der Lage von \(\mu_p\) relativ zur Sättigungskurve?

Wir wollen dieses Experiment im folgenden in Python mit NumPy durchführen.

Aufgabe 4: Sauerstoffsättigung bestimmen

In dieser Aufgabe arbeiten Sie in der Datei

nonlinearmapping/oxygen.py

Implementieren Sie die Methode oxygen.map_samples(). Folgen Sie den Anweisungen im Code.

oxygen.map_samples(samples)[Quellcode]

TODO: Transform samples of a normally distributed oxygen partial pressure (p) using the Hill equation to approximate blood oxygen saturation.

\[S(p) = \frac{p^n}{p^n + K^n}\]

Note: You need to estimate the mean and variance of the samples by using np.mean and np.var.

Additionally compute an analytical approximation of the mean and variance of the transformed values via first-order Taylor expansion.

Parameter:

samples – A 1D array of sampled oxygen partial pressures (in mmHg), assumed to be normally distributed with unknown mean and variance.

Returns:

return:

3-Tuple of mapped_samples, the estimated mean and the estimated variance of the saturation (via Taylor expansion)

Lösung anzeigen

def map_samples(samples):
   N, K = 2.7, 26

   # TODO: Apply the Hill function to each sample to get saturation values
   mapped_samples = np.power(samples, N) / (np.power(samples, N) + np.power(K, N))

   # TODO: Use np.mean and np.var to compute mean and variance of the original input samples
   mu = np.mean(samples)
   V = np.var(samples)

   # TODO: Compute the derivative (Jacobian) of the Hill function at the mean
   J = N * np.power(K, N) * np.power(mu, N-1) / ((np.power(mu, N) + np.power(K, N))**2)

   # TODO: Compute the transformed mean using the Hill function
   mapped_mu = np.power(mu, N) / (np.power(mu,N) + np.power(K, N))

   # TODO: Approximate the transformed variance via linear error propagation
   mapped_var = J * V * J

   # TODO: Return the mapped samples, the mapped mean and the mapped variance
   return mapped_samples, mapped_mu, mapped_var

Aufgabe 5: Experimentieren mit den Werten

Experimentieren Sie im Skript mit verschiedenen Werten für den Mittelwert \(\mu_p\) und die Standardabweichung \(\sigma_p\)
  • \(\mu_p = 20\) mmHg

  • \(\mu_p = 80\) mmHg

  • \(\sigma_p = 2.5\) mmHg

  • \(\sigma_p = 10\) mmHg

Diskutieren Sie dann Ihre Beobachtungen:
  • Wann funktioniert die lineare Approximation gut?

  • In welchen Fällen weicht sie stark vom Simulationsergebnis ab?

  • Was ist der Einfluss der Lage von \(\mu_p\) relativ zur Sättigungskurve?

Musterlösung