Wintersemester 2023/24
10.01.2024
© 2024 Prof. Dr. Rüdiger W. Braun
import numpy as np
import pandas as pd
import seaborn as sns
sns.set_theme()
df = pd.DataFrame()
x = np.linspace(0, 10, 1000)
df['x'] = x
df['y'] = x**2 * np.exp(-x)
df['ys'] = (2*x - x**2) * np.exp(-x)
ax = sns.lineplot(data=df, x='x', y='y')
ax = sns.lineplot(data=df, x='x', y='ys')
Das bedeutet: Für einen Hoch- oder Tiefpunkt $x_0$ von $f$ gilt $f'(x_0)=0$.
seaborn
df
von oben benötigen wir dazu ein DataFrame in d0 = pd.DataFrame()
d0['x'] = x
d0['y'] = x**2 * np.exp(-x)
d0['Ableitung'] = "nullte"
d1 = pd.DataFrame()
d1['x'] = x
d1['y'] = (2*x - x**2) * np.exp(-x)
d1['Ableitung'] = "erste"
df = pd.concat([d0, d1])
d2 = pd.DataFrame()
d2['x'] = x
d2['y'] = (2-4*x+x**2) * np.exp(-x)
d2['Ableitung'] = "zweite"
df = pd.concat([d0, d1, d2], ignore_index=True)
df[990:1010]
x | y | Ableitung | |
---|---|---|---|
990 | 9.90991 | 0.004879 | nullte |
991 | 9.91992 | 0.004840 | nullte |
992 | 9.92993 | 0.004802 | nullte |
993 | 9.93994 | 0.004763 | nullte |
994 | 9.94995 | 0.004725 | nullte |
995 | 9.95996 | 0.004688 | nullte |
996 | 9.96997 | 0.004650 | nullte |
997 | 9.97998 | 0.004613 | nullte |
998 | 9.98999 | 0.004576 | nullte |
999 | 10.00000 | 0.004540 | nullte |
1000 | 0.00000 | 0.000000 | erste |
1001 | 0.01001 | 0.019721 | erste |
1002 | 0.02002 | 0.038854 | erste |
1003 | 0.03003 | 0.057408 | erste |
1004 | 0.04004 | 0.075397 | erste |
1005 | 0.05005 | 0.092831 | erste |
1006 | 0.06006 | 0.109721 | erste |
1007 | 0.07007 | 0.126079 | erste |
1008 | 0.08008 | 0.141915 | erste |
1009 | 0.09009 | 0.157240 | erste |
import warnings
warnings.filterwarnings('ignore', message='The figure layout has changed')
sns.relplot(data=df, x='x', y='y', hue='Ableitung', kind='line');
sns.relplot(data=df, x='x', y='y', col='Ableitung', kind='line');
sns.lineplot
: Eine einzelne Kurvesns.relplot(…, kind='line')
: mehrere Kurvenhue
oder col
zur Unterscheidung benutzt wird, erhält man einen oder mehrere Graphensns.scatterplot
: Eine einzelne Punktwolkesns.relplot(…, kind='scatter')
: mehrere PunktwolkenWir haben zwei Gleichungen
Einsetzen
$f'(2) = 0$, also $ (A - 2Ab) \cdot \exp(-2b) = 0 $
$\exp(-2b)$ ist nicht Null, also muss $ A -2b = 0$ gelten, d.h. $b=0.5$
Unser Modell ist also
$$ f(t) = 0.8t \cdot \exp(-0.5t) $$t = np.linspace(0, 8)
y = 0.8*t * np.exp(-0.5*t)
ax = sns.lineplot(x=t, y=y)
0.8 * 2 * np.exp(-0.5*2)
0.5886071058743078
Der Inhalt der grünen Fläche abzüglich des Inhalts der roten Fläche ist $\int_a^b f(x) dx$
Falls $$ F'(x) = f(x) $$
\int f(x) dx = F(x)
$$Wenn $F(x)$ eine Stammfunktion von $f(x)$ ist, dann $$ \int_a^b f(x) dx = F(b) - F(a) $$
Man schreibt $$ \int_a^b f(x) = F(x) \Bigr|_a^b $$
Beispiel $$ \int_0^5 x\, dx = \frac12 x^2 \Bigr|_0^5 = \frac12 5^2 - \frac12 0^2 = \frac{25}2 = 12.5 $$
Das Dreieck füllt das Quadrat mit der Seitenlänge 5 zur Hälfte aus. Sein Flächeninhalt ist also tatsächlich gleich 12.5
Eine Zufallsvariable $X$ heißt kontinuierlich mit Dichte $f$, wenn $$ P(a \le X < b) = \int_a^b f(x) dx $$
Man bezeichnet
Wegen $ \int_a^a f(x) dx = 0 $ gilt dann auch $$ P(a\le X \le b) = P(a<X<b) = P(a<X\le b) = F(b) - F(a) $$
Wenn $f$ die Dichte einer Zufallsvariablen sein kann, müssen Bedingungen erfüllt sein
$$ f(x) \ge 0 \text{ für alle $x$} $$$$ \int_{-\infty}^\infty f(x) dx = 1 $$from scipy import stats
Phi = stats.norm() # Normalverteilung
d1 = pd.DataFrame()
x = np.linspace(-4, 4)
d1['x'] = x
d1['y'] = np.exp(-0.5*x**2) / np.sqrt(2*np.pi)
d1['Name'] = "Dichte"
d2 = pd.DataFrame()
d2['x'] = x
d2['y'] = Phi.cdf(x)
d2['Name'] = "Verteilungsfunktion"
df = pd.concat([d1, d2], ignore_index=True)
sns.relplot(data=df, x='x', y='y', hue='Name', kind='line');
Welcher Anteil der Halme hat eine Länge zwischen 9cm und 11cm?
Antwort $$ P(-1\le X<1) = \int_{-1}^1 \varphi(x) dx = \Phi(1) - \Phi(-1) $$
Phi = stats.norm()
Phi.cdf(1) - Phi.cdf(-1)
0.6826894921370859
Welcher Anteil der Halme hat eine Länge von mindestens 10cm?
Antwort $$ P(0\le X) = \int_{0}^\infty \phi(x) dx = 1 - \Phi(0) $$
1 - Phi.cdf(0)
0.5
Welcher Anteil der Halme hat eine Länge von höchstens 8.2cm?
Antwort $$ P(X\le-1.8) = \int_{-\infty}^{-1.8} \phi(x) dx = \Phi(-1.8) $$
Hinweis: $10-8.2=-1.8$
Phi.cdf(-1.8)
0.03593031911292579