Wintersemester 2023/24
© 2023 Prof. Dr. Rüdiger W. Braun
$$ \exp(\ln(y)) = y \quad\text{und}\quad \ln(\exp(x)) = x $$
Zeit [h] | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
Konzentration [$mm^{-2}$] | 10000 | 8500 | 7225 | 6141 | 5220 | 4437 | 3771 | 3206 |
k(x) = 10000 \cdot e^{-A \cdot x}
$$8500 = 10000 e^{-A}
$$0.85 = e^{-A}
$$\ln(0.85) = -A
$$e^{-0.1625\cdot x_{\text{hw}}} = 0.5
$$-0.1625 \cdot x_{\text{hw}} = \ln(0.5) = -0.6931
$$x_{\text{hw}} = \frac{-0.6931}{-0.1625} = 4.266
$$k(x) = e^{A \cdot x}
$$k(7) = 5 = e^{A\cdot7}
$$\ln(5) = A \cdot 7
$$e^{0.2299\cdot x_{\text{d}}} = 2
$$0.2299 \cdot x_{\text{d}} = \ln(2) = 0.6931
$$x_{\text{d}} = \frac{0.6931}{0.2299} = 3.015
$$Photo Credit: Jerry Reid, U.S. Fish and Wildlife Service
e^{-A\cdot 140} = 0.01
$$-A \cdot 140 = \ln(0.01) = -4.605
$$A = \frac{4.605}{140} = 0.03289
$$e^{-0.03289\cdot x_{\text{hw}}} = 0.5
$$x_{\text{hw}} = - \frac{\ln(0.5)}{0.03289} = 21.07
$$%run wasser.py
Installationshinweise auf https://www.math.uni-duesseldorf.de/~internet/bio2324/software.html
123456 * 987654
121931812224
88/12
7.333333333333333
+
-
*
/
**
2**10
1024
import numpy as np
np.exp(2)
7.38905609893065
Der Logarithmus wird aufgerufen als
np.log(7.389)
1.9999924078065106
Im Notebook
nur im Editiermodus ist der Zelleninhalt veränderlich
Im Kommandomodus kann die Art der Zelle geändert werden
jeweils Ausführung durch <Umschalt>
-<Eingabe>
oder "$\blacktriangleright$ Run" aus der Werkzeugleiste
Wir schauen uns die Daten aus dem Beispiel "Bakterien" an
zeit = np.arange(8)
zeit
array([0, 1, 2, 3, 4, 5, 6, 7])
konzentration = np.array([10000, 8500, 7225, 6141, 5220, 4437, 3771, 3206])
konzentration
array([10000, 8500, 7225, 6141, 5220, 4437, 3771, 3206])
np.array([ , , , ])
Liste von Zahlennp.arange(n)
Spezieller array von 0 bis n
-1 (für n
konkrete Zahl einsetzen)Python beginnt Zählungen bei 0
import seaborn as sns
sns.scatterplot(x=zeit, y=konzentration)
<Axes: >
Wir wollen die Achsen beschriften
ax = sns.scatterplot(x=zeit, y=konzentration)
ax.set_xlabel("Zeit")
ax.set_ylabel("Konzentration")
Text(4.444444444444452, 0.5, 'Konzentration')
Die Grafik muss nun explizit aufgerufen werden
ax.figure
Es wird immer das Objekt aus der letzten Zeile einer Zelle dargestellt
Jetzt malen wir noch die Kurve $10000 \cdot e^{-0.1625\cdot x}$ dazu.
zeitstrahl = np.linspace(0, 7)
# 50 Zeitpunkte zwischen 0 und 7
zeitstrahl
array([0. , 0.14285714, 0.28571429, 0.42857143, 0.57142857, 0.71428571, 0.85714286, 1. , 1.14285714, 1.28571429, 1.42857143, 1.57142857, 1.71428571, 1.85714286, 2. , 2.14285714, 2.28571429, 2.42857143, 2.57142857, 2.71428571, 2.85714286, 3. , 3.14285714, 3.28571429, 3.42857143, 3.57142857, 3.71428571, 3.85714286, 4. , 4.14285714, 4.28571429, 4.42857143, 4.57142857, 4.71428571, 4.85714286, 5. , 5.14285714, 5.28571429, 5.42857143, 5.57142857, 5.71428571, 5.85714286, 6. , 6.14285714, 6.28571429, 6.42857143, 6.57142857, 6.71428571, 6.85714286, 7. ])
werte = 10000 * np.exp(-0.1625*zeitstrahl)
werte
array([10000. , 9770.53092819, 9546.32746188, 9327.2687717 , 9113.23680095, 8904.11620196, 8699.79427395, 8500.16090225, 8305.10849901, 8114.53194516, 7928.3285338 , 7746.39791484, 7568.6420409 , 7394.96511451, 7225.27353642, 7059.47585523, 6897.48271803, 6739.20682232, 6584.5628689 , 6433.46751592, 6285.83933399, 6141.59876224, 6000.6680655 , 5862.97129238, 5728.43423433, 5596.98438567, 5468.55090448, 5343.06457446, 5220.45776761, 5100.66440778, 4983.61993505, 4869.26127098, 4757.52678456, 4648.35625902, 4541.6908594 , 4437.47310081, 4335.64681745, 4236.15713236, 4138.95042784, 4043.97431655, 3951.17761327, 3860.51030732, 3771.92353563, 3685.36955637, 3600.80172323, 3518.17446031, 3437.44323753, 3358.56454662, 3281.49587771, 3206.19569639])
sns.lineplot(x=zeitstrahl, y=werte)
<Axes: >
Das malen wir jetzt in die andere Achse hinein
ax2 = sns.lineplot(x=zeitstrahl, y=werte, ax=ax)
ax2.figure
sns.scatterplot
einzelne Punktesns.lineplot
durchgezogene LinieEs gibt eine Unzahl von statistischen Zeichenfunktionen. Die wichtigsten werde ich nach und nach vorstellen.
tiefe = np.linspace(0, 24)
blau = np.exp(-0.03289*tiefe)
blau
array([1. , 0.98401967, 0.96829472, 0.95282105, 0.93759466, 0.9226116 , 0.90786796, 0.89335994, 0.87908375, 0.86503571, 0.85121216, 0.83760951, 0.82422424, 0.81105287, 0.79809198, 0.78533821, 0.77278825, 0.76043884, 0.74828678, 0.73632891, 0.72456214, 0.7129834 , 0.70158969, 0.69037806, 0.67934559, 0.66848943, 0.65780675, 0.64729479, 0.6369508 , 0.62677212, 0.6167561 , 0.60690014, 0.59720168, 0.5876582 , 0.57826723, 0.56902633, 0.5599331 , 0.55098519, 0.54218027, 0.53351605, 0.52499029, 0.51660078, 0.50834533, 0.5002218 , 0.4922281 , 0.48436213, 0.47662187, 0.46900529, 0.46151044, 0.45413535])
gruen = np.exp(-.1151*tiefe)
rot = np.exp(-.3466*tiefe)
sns.lineplot(x=tiefe, y=blau, color='blue')
sns.lineplot(x=tiefe, y=gruen, color='green')
ax = sns.lineplot(x=tiefe, y=rot, color='red')
ax.set_xlabel('Tiefe [m]')
ax.set_ylabel('Anteil')
Text(0, 0.5, 'Anteil')
ax.grid(True)
ax.figure