diff --git a/Aufgaben_zur_Vorbereitung_von_Kapitel_1.ipynb b/Aufgaben_zur_Vorbereitung_von_Kapitel_1.ipynb
index 37bb914..0712451 100644
--- a/Aufgaben_zur_Vorbereitung_von_Kapitel_1.ipynb
+++ b/Aufgaben_zur_Vorbereitung_von_Kapitel_1.ipynb
@@ -449,7 +449,7 @@
"\n",
"Die zurückgelegte Distanz eines Objekts, welches eine beschleunigte Bewegung ausführt (z.B. der freie Fall einer Kugel in einem Gravitationsfeld), kann mit Hilfe von \n",
"\n",
- "$s(t) = \\frac{1}{2}\\cdot a \\cdot t^2 + v_0 \\cdot t + s_0$\n",
+ "$$s(t) = \\frac{1}{2}\\cdot a \\cdot t^2 + v_0 \\cdot t + s_0$$\n",
"\n",
"beschrieben werden. Hierbei beschreibt $t$ die verstrichene Zeit, $a$ die Beschleunigung, $v_0$ die Startgeschwindigkeit und $s_0$ die Startposition des Objekts. Ersteklen Sie unterhalb der Aufgabe eine neue Code-Zelle und berechnen Sie die folgenden Werte:\n",
"\n",
@@ -811,7 +811,7 @@
"\n",
"Die Leistung, welche in einem ohmschen Widerstand umgesetzt wird, lässt sich durch\n",
"\n",
- "$P(U, I ) = U \\cdot I $\n",
+ "$$P(U, I ) = U \\cdot I $$\n",
"\n",
"berechnen, wobei $U$ die angelegte Spannung und $I$ der elektrische Strom ist. \n",
"
"
@@ -825,6 +825,15 @@
"Es ist ratsam gleich von Anfang an Funktionen zu dokumentieren. Hierzu dienen in Python die sogenannten `Doc-Strings`. Sie beinhalten Informationen über die Funktion selbst, ihre verwendeten Parameter und ihrer Ausgabe. Zum Beispiel für das Ohmschen Gesetzes würde ein solcher Doc-String wie folgt aussehen:"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "Spannung"
+ ]
+ },
{
"cell_type": "code",
"execution_count": null,
@@ -846,7 +855,6 @@
" Widerstand (float): Der Wert des verwendeten Widerstands\n",
" in Ohm.\n",
" \n",
- " \n",
" Returns:\n",
" float: Die Berechnete Spannung in V.\n",
" '''\n",
@@ -944,7 +952,7 @@
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": null,
"metadata": {
"ExecuteTime": {
"end_time": "2019-10-27T12:25:06.524167Z",
@@ -965,50 +973,28 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": null,
"metadata": {
"ExecuteTime": {
"end_time": "2019-10-27T12:25:06.540756Z",
"start_time": "2019-10-27T12:25:06.525161Z"
}
},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'Wert1'"
- ]
- },
- "execution_count": 2,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"NeueWerte[0] # Hier seht ihr, dass der erste Wert den Index 0 hat."
]
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": null,
"metadata": {
"ExecuteTime": {
"end_time": "2019-10-27T12:25:06.556003Z",
"start_time": "2019-10-27T12:25:06.541754Z"
}
},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'Wert3'"
- ]
- },
- "execution_count": 3,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"wert_index_2 = NeueWerte[2] \n",
"wert_index_2"
@@ -1023,50 +1009,28 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": null,
"metadata": {
"ExecuteTime": {
"end_time": "2019-10-27T12:25:06.571456Z",
"start_time": "2019-10-27T12:25:06.561307Z"
}
},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['Wert1', 'Wert2', 'Wert3']"
- ]
- },
- "execution_count": 4,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
- "NeueWerte[0:3] "
+ "NeueWerte[0:3]"
]
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": null,
"metadata": {
"ExecuteTime": {
"end_time": "2019-10-27T12:25:06.603263Z",
"start_time": "2019-10-27T12:25:06.579819Z"
}
},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['Wert3', 'Wert4', 'Wert5']"
- ]
- },
- "execution_count": 5,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"NeueWerte[2:5] # Ihr seht Python behandelt den letzten Wert wie in einem offenen Intervall [2,5)"
]
@@ -1253,7 +1217,7 @@
" \n",
"#### Aufgabe 4.a.: Erstellen von Messwerttabellen:\n",
"\n",
- "Erstellen Sie für jede Spalte (außer der Messwertnummer) der nachfolgende Messtabelle eine Liste, welche die Messdaten beinhaltet. Benutzen Sie anschließend den `append` Befehl um die Daten jeder Spalte an eine weitere Liste namens *daten* anzuhängen. \n",
+ "Erstellen Sie für jede Spalte der nachfolgende Messtabelle eine Liste, welche die Messdaten beinhaltet. Benutzen Sie anschließend den `append` Befehl um die Daten jeder Spalte an eine weitere Liste namens *daten* anzuhängen. \n",
"\n",
"| Messwertnummer | Spannung [V] | Strom [mA] | Fehler der Spannung [V] | Fehler des Stroms [mA] |\n",
"|----------------|--------------|------------|-------------------------|---------------------------|\n",
diff --git a/Kapitel_1._Einstieg_in_die_Welt_von_Python.ipynb b/Kapitel_1._Einstieg_in_die_Welt_von_Python.ipynb
index 12613b9..19b6e36 100644
--- a/Kapitel_1._Einstieg_in_die_Welt_von_Python.ipynb
+++ b/Kapitel_1._Einstieg_in_die_Welt_von_Python.ipynb
@@ -88,6 +88,29 @@
"Statt das Ergebnis lediglich per `print`-Anweisung darstellen zu lassen, können wir auch unser Wissen um Listen benutzen und die berechneten Werte einer neuen Liste anfügen:"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# (Funktion haben wir bereits in der Vorbereitung definiert)\n",
+ "def Spannung(Strom, Widerstand):\n",
+ " '''\n",
+ " Diese Funktion berechnet die Spannung eines Ohmschen \n",
+ " Widerstands.\n",
+ " \n",
+ " Args:\n",
+ " Strom (float): Der gemessene Strom in mA.\n",
+ " Widerstand (float): Der Wert des verwendeten Widerstands\n",
+ " in Ohm.\n",
+ " \n",
+ " Returns:\n",
+ " float: Die Berechnete Spannung in V.\n",
+ " '''\n",
+ " return Widerstand * Strom/1000"
+ ]
+ },
{
"cell_type": "code",
"execution_count": null,
@@ -104,7 +127,8 @@
"Widerstand = 100 # Ohm\n",
"\n",
"for Strom in Stromwerte:\n",
- " Spannungswerte.append(Spannung(Strom, Widerstand))\n",
+ " res = Spannung(Strom, Widerstand)\n",
+ " Spannungswerte.append(res)\n",
"\n",
"Spannungswerte"
]
@@ -181,7 +205,7 @@
"# Variante 1:\n",
"schallgeschindigkeiten = [] # m/s\n",
"\n",
- "for f,l in zip(frequenzen, wellenlängen):\n",
+ "for f, l in zip(frequenzen, wellenlängen):\n",
" schallgeschindigkeiten.append(f*l)\n",
"\n",
"print(schallgeschindigkeiten)\n",
@@ -239,6 +263,8 @@
},
"outputs": [],
"source": [
+ "# Hier eine kleine Hilfestellung für den Start:\n",
+ "# Messwerttabelle aus Aufgabe 4. a.:\n",
"messwert_nummer = list(range(1,7,1))\n",
"spannungs_wert = [12., 11.78, 12.56, 12.34, 12.01, 11.94]\n",
"strom_werte = [110, 98, 102, 124, 105, 95]\n",
@@ -248,14 +274,18 @@
"\n",
"daten = [messwert_nummer, spannungs_wert, strom_werte, dspannung_wetre, dstrom_werte]\n",
"\n",
+ "# Beispiel für die Berechnung des Widerstandes:\n",
"def res(i, u):\n",
" r = u/i\n",
" return r\n",
"\n",
- "for strom, spannung in zip(daten[1], daten[2]):\n",
+ "for strom, spannung in zip(daten[2], daten[1]):\n",
" widerstand.append(res(strom, spannung))\n",
" \n",
- "daten.append(widerstand)"
+ "daten.append(widerstand)\n",
+ "\n",
+ "# Jetzt seid ihr gefragt:\n",
+ "\n"
]
},
{
@@ -359,7 +389,7 @@
"plt.plot(xdaten, ydaten, # <-- Wie eben die x und y daten\n",
" color = 'red', # <-- Farbe der Linie\n",
" linestyle='dashed', # <-- Linientyp\n",
- " label='Graph 1' # <-- Name der Linie\n",
+ " label='Spannungskurve' # <-- Name der Linie\n",
" )\n",
"plt.xlabel('X-Achse') # <-- Beschriftung der x-Achse\n",
"plt.ylabel('Y-Achse') # <-- Beschiftung der y-Achse\n",
@@ -485,7 +515,7 @@
"\n",
"\n",
"x1 = list(range(-3, 4, 1)) # <- Werte zwischen -3 und 3\n",
- "x2 = [i/10 for i in range(-30,31,1)] # <- 10 mal mehr Werte\n",
+ "x2 = [i/10 for i in range(-30, 31, 1)] # <- 10 mal mehr Werte\n",
"\n",
"y1 = [cubic(j) for j in x1]\n",
"y2 = [cubic(value) for value in x2]\n",
@@ -524,17 +554,7 @@
"spannung_error = [0.3]*len(spannung) # Konstanter Ablesefehler [V]\n",
"strom_error = [14, 9, 12, 8, 7, 11] # gemessener schwankender Fehler[mA]\n",
"\n",
- "plt.errorbar(strom, spannung, xerr=strom_error, yerr=spannung_error,\n",
- " \n",
- " linestyle='', # <-- Schaltet den Linienstyle aus | ls=''\n",
- " marker='d', # <-- Ändert den Markertyp in Diamanten | -----\n",
- " markerfacecolor='orange', # <-- Ändert die Markerfarbe zu Orange | mfc='orange'\n",
- " markeredgecolor='k', # <-- Setzt die Kantenfarbe auf schwarz | mec='k'\n",
- " markersize=7 # <-- Ändert die Markergröße | ms='7'\n",
- "\n",
- " \n",
- " ) # <--- Wie verwende ich den errorbar plot?\n",
- "\n",
+ "# plt.errorbar() # <--- Wie verwende ich den errorbar plot?\n",
"plt.ylabel('Spannung [V]')\n",
"plt.xlabel('Strom [mA]')\n",
"plt.show()"
@@ -727,7 +747,7 @@
},
"outputs": [],
"source": [
- "rnd_numbers2 = np.random.normal(1,2,1000)\n",
+ "rnd_numbers2 = np.random.normal(1, 2, 1000)\n",
"\n",
"\n",
"plt.hist(rnd_numbers, \n",
@@ -906,13 +926,6 @@
"Hierbei stellt curve_fit eine Methode dar, Fit-Funktionen nach der obigen vorgestellten Methode der *kleinsten Quadraten* zu bestimmen. Dies hat zur Folge, dass lediglich die y-Fehler eurer Messwerte für den Fit verwendet werden können. "
]
},
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
- },
{
"cell_type": "code",
"execution_count": null,
@@ -951,8 +964,10 @@
" spannung # <-- gemessenen \"Y\"-Werte \n",
" )\n",
"\n",
- "print(para)\n",
- "print(pcov)"
+ "print(para[0])\n",
+ "print(pcov[0,0]**0.5)\n",
+ "\n",
+ "print(f'Widerstand R {para[0]:.2f} +/- {pcov[0,0]**0.5:.2f} Ohm')"
]
},
{
@@ -1035,6 +1050,13 @@
" # wir in der Regel absolute und keine relativen \n",
" # Unsicherheiten messen.\n",
" )\n",
+ "\n",
+ "plt.plot(strom, \n",
+ " [Spannung(value, para2[0]) for value in strom], \n",
+ " ls ='dashed',\n",
+ " color='orange',\n",
+ " label = f'Fitgerade mit R = {para2[0]:0.2f} +/- {pcov2[0,0]**(1/2):0.2f} ohm'\n",
+ " )\n",
"plt.errorbar(strom, \n",
" spannung,\n",
" xerr=strom_error,\n",
@@ -1050,12 +1072,7 @@
" capthick=2, \n",
" label='Messwerte aus A. 5'\n",
" ) \n",
- "plt.plot(strom, \n",
- " [Spannung(value, para2[0]) for value in strom], \n",
- " ls ='dashed',\n",
- " color='orange',\n",
- " label = f'Fitgerade mit R = {para2[0]:0.2f} +/- {pcov2[0,0]**(1/2):0.2f} ohm'\n",
- " )\n",
+ "\n",
"\n",
"plt.legend()\n",
"plt.ylabel('Spannung [V]')\n",
@@ -1104,6 +1121,8 @@
"source": [
"Wie vergleicht sich dieses $\\chi^2$ nun mit einer Funktion welche unsere Daten schlechter beschreibt. Zum Beispiel sofern wir die Spannung über die Funktion \n",
"\n",
+ "$$ U(R,I) = R \\cdot I $$\n",
+ "\n",
"$$ U(R,I) = R \\cdot I^2 $$\n",
"\n",
"beschreiben würden."