1
0
Fork 0
mirror of https://gitlab.rlp.net/pgp/pgp1-python-einfuehrung synced 2024-10-12 13:24:22 +00:00

Updated Chapter 1 and preparation for Chapter 1.

This commit is contained in:
dwenz 2020-03-13 08:05:36 +01:00
parent 5f235de550
commit 6414b474a3
2 changed files with 485 additions and 120 deletions

View file

@ -1001,11 +1001,13 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Noch mehr über komplexere Programme und Algorithmen lernen Sie in Veranstaltungen wie\n",
"Für das Grundpraktikum sind längere und kompliziertere Funktionen eher die ausnahme. Sie werden in Veranstaltungen wie \n",
"\n",
"* Computer in der Wissenschaft \n",
"* Programmieren für Physiker\n",
"* Einführung in die Programmierung"
"* Einführung in die Programmierung\n",
"\n",
"noch mehr über Programme und Algorithmen lernen."
]
},
{
@ -1016,9 +1018,9 @@
" \n",
"#### Aufgabe 3. Umgang mit dem Ohmschen Gesetz:\n",
"\n",
"Bei einem $500\\,\\Omega$ Widerstand wird eine Spannung von 5, 10, 20 und 50 Volt angelegt. Wie hoch sollte der jeweils entsprechende Strom ausfallen und welche Leistung wird in dem Widerstand umgesetzt? \n",
"Bei einem $500\\,\\Omega$ Widerstand wird eine Spannung $U$ von 5, 10, 20 und 50 Volt angelegt. Wie hoch sollte der jeweils entsprechende Strom $I$ ausfallen und welche Leistung wird in dem Widerstand umgesetzt? \n",
"\n",
"Des Weiteren nehmt an, dass euer Widerstand einen Fehler von $+/-20\\,\\Omega$ und eure angelegte Spannung eine Ungenauigkeit von $10\\,\\%$ aufweist. Wie groß wäre der Fehler des gemessenen Stroms bei der Messung mit $50\\,$V? Benutzt hierfür die Gaus'sche Fehlerfortpflanzung und definiert die entsprechende Funktion in Python.\n",
"Des Weiteren nehmen Sie an, dass Ihr Widerstand einen Fehler von $+/-20\\,\\Omega$ und ihre angelegte Spannung eine Ungenauigkeit von $+/-10\\,\\%$ aufweist. Wie groß wäre der Fehler des gemessenen Stroms bei ihrer $50\\,$V Messung? Benutzen Sie hierfür die Gaus'sche Fehlerfortpflanzung und definieren Sie die entsprechende Funktion in Python.\n",
"\n",
"**Tipp:**\n",
"\n",
@ -1026,7 +1028,7 @@
"\n",
"$P(U, I ) = U \\cdot I $\n",
"\n",
"berechnen, wobei $U$ die angelegte Spannung ist und $I$ der elektrische Strom welcher durch den Widerstand fließt. \n",
"berechnen, wobei $U$ die angelegte Spannung und $I$ der elektrische Strom ist. \n",
"<div>"
]
},
@ -1035,7 +1037,7 @@
"metadata": {},
"source": [
"### Tipp: \n",
"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 unser Beispiel des Ohmschen Gesetzes:"
"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:"
]
},
{
@ -1072,7 +1074,7 @@
"source": [
"## Messtabellen in Python:\n",
"\n",
"Damit euch eine Programmiersprache wie Python Arbeit abnehmen kann, sollte es natürlich auch möglich sein, größere Datenmengen, z.B. die Werte einer Messtabelle, in einer Variablen zu speichern. Python bietet hierfür mehrer verschiedene Konzepte an, alle mit unterschiedlichen Stärken und Schwächen. Die gängigsten Methoden sind listen, tuple, bzw. sogenannte numpy.arrays und pandas.dataframes. Aufgrund der limitierten Zeit im PGP 1 werden wir uns hier lediglich mit zwei dieser vier Methoden auseinander setzen. \n",
"Damit uns eine Programmiersprache wie Python Arbeit abnehmen kann, sollte es auch möglich sein größere Datenmengen, wie z.B. die Werte einer Messtabelle, in einer Variablen zu speichern. Python bietet hierfür mehrer verschiedene Konzepte an. Jedes dieser Konzepte hat unterschiedlichen Stärken und Schwächen. Die gängigsten Methoden sind listen, tuple, bzw. sogenannte numpy.arrays und pandas.dataframes. Aufgrund der limitierten Zeit im PGP 1 werden wir uns hier lediglich mit zwei dieser vier Methoden auseinander setzen. \n",
"\n",
"Fangen wir zunächst mit Listen an. Eine Liste ist eine Ansammlung von Werten, welche alle den gleichen oder ganz unterschiedliche Datentypen haben können. Eine Liste kann auf zwei unterschiedliche Art und Weisen erstellt werden:"
]
@ -1152,7 +1154,7 @@
"source": [
"Ups, was ist denn in der letzten Zelle passiert? Wert4 wurde ja garnicht an Stelle 4 der Liste gesetzt, Python scheint nicht zählen zu können... \n",
"\n",
"Leider zählt Python doch richtig. In Python läuft der Index von Objekten in einer Liste oder ähnlichem immer von 0,1,2,3...n. Dies können wir auch ganz einfach überprüfen in dem wir unsere Liste in verschiedene \"Scheiben\" schneiden (so genanntes slicing). Dies geht wie folgt:"
"Leider zählt Python doch richtig. In Python läuft der Index von Objekten in einer Liste immer von 0,1,2,3...n. Dies können wir auch ganz einfach überprüfen in dem wir unsere Liste in verschiedene \"Scheiben\" schneiden (so genanntes slicing). Dies geht wie folgt:"
]
},
{
@ -1272,7 +1274,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Neben `insert`, `append` und `slicing` bietet Python noch ein paar weitere Listenmanipulationen an. Mit Hilfe des `+` Operators könnt ihr die Werte in einer Liste direkt an eine andere Liste anfügen."
"Neben `insert`, `append` und `slicing` bietet Python noch ein paar weitere Listenmanipulationen an. Mit Hilfe des `+` Operators können Sie die Werte in einer Liste direkt an eine andere Liste anfügen."
]
},
{
@ -1392,7 +1394,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Ihr könnt die `range` Rückgabe auch wieder in eine Liste umwandeln mit"
"SIe können die `range` Rückgabe auch wieder in eine Liste umwandeln"
]
},
{
@ -1422,7 +1424,7 @@
" \n",
"#### Aufgabe 4.a.: Erstellen von Messwerttabellen:\n",
"\n",
"Erstelle für jede Spalte (außer der Messwertnummer) der nachfolgende Messtabelle eine Liste, welche die Messdaten beinhaltet. Benutze anschließend den `append` Befehl um deine Spaltendaten an eine weitere Liste namens *daten* anzuhängen. \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",
"\n",
"| Messwertnummer | Spannung [V] | Strom [mA] | Fehler der Spannung [V] | Fehler des Stroms [mA] |\n",
"|----------------|--------------|------------|-------------------------|---------------------------|\n",
@ -1434,11 +1436,11 @@
"| 6 | 11.94 | 95 | 0.17 | 10 |\n",
"\n",
"\n",
"Verwende anschließend das Slicing um die umgesetzte Leistung im Widerstand für die Meswerte 3 und 5 zu berechnen.\n",
"Verwenden Sie anschließend das Slicing um die umgesetzte Leistung im Widerstand für die Meswerte 3 und 5 zu berechnen.\n",
"\n",
"**Tipp:**\n",
"\n",
"1. Ihr habt bereits die Funktionen für die Leistung in Aufgabe 3 definiert und könnt sie hier erneut verwenden. \n",
"1. Sie haben bereits die Funktionen für die Leistung in Aufgabe 3 definiert und könnt sie hier erneut verwenden. \n",
"2. Das Slicen von verschachtelten Listen funktioniert genauso wie bei normalen Listen: \n",
"\n",
"```python\n",
@ -1448,7 +1450,33 @@
"daten[0][2] \n",
"```\n",
"\n",
"3. Wie verhält sich die Messwertnummer zum Listenindex?\n",
"3. Geben Sie an wie sich die Messwertnummer zum Listenindex verhält.\n",
"<div>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2020-02-09T08:32:29.596168Z",
"start_time": "2020-02-09T08:32:29.564926Z"
}
},
"source": [
"<div class=task>\n",
" \n",
"#### Vorbereitungsaufgabe 1.: Werte der Schiefen Ebene in Pyhton übertragen:\n",
"\n",
"Am Python-Versuchstag selbst wollen wir anhand der Messdaten von Vorversuch 1. Aufgabe 1, *Erdbeschleunigung mit der Schiefen Ebene* das fitten von Funktionen mittels $\\chi^2$ üben. Als Vorbereitung hierfür sollen Sie die Messdaten der gemessenen Zeiten und Höhen so wie ihre Fehler als Listen in Python eintippen. \n",
"\n",
"Darüber hinaus definieren Sie sich eine Funktion $h(t)$ welche proportional zu $1/g$ ist. Diese Funktion soll am Ende gegen die Messdaten in einem Höhe-gegen-Zeit Diagramm gefittet werden. \n",
"<div>"
]
},

File diff suppressed because one or more lines are too long