mirror of
https://gitlab.gwdg.de/j.hahn02/university.git
synced 2026-01-01 14:54:25 -05:00
init
This commit is contained in:
98
S1/ExPhyI/ha3.py
Normal file
98
S1/ExPhyI/ha3.py
Normal file
@@ -0,0 +1,98 @@
|
||||
"""
|
||||
"# Hausaufgabe Blatt 3\n",
|
||||
|
||||
"## Gleichförmig beschleunigte, geradlinige Bewegung - Revisited\n",
|
||||
|
||||
"In dieser Aufgabe werden wir die Bahnkurve eines gleichförmig beschleunigten Objektes in einer Dimension berechnen und dieses mal auch visualisieren. Die Position $x$ zum Zeitpunkt $t$ ist, wie auf dem Blatt 2, gegeben durch folgende Gleichung:\n",
|
||||
"\\begin{equation*}\n",
|
||||
"x\\!\\left( t \\right) = x_0 + v_0 t + \\frac{1}{2} a t^2 \n",
|
||||
"\\end{equation*}\n",
|
||||
"wobei $x_0$ und $v_0$ die Anfangsposition und -geschwindigkeit sind und $a$ die konstante Beschleunigung, die auf das Objekt wirkt. \n",
|
||||
"## 1. Numpy Arrays: Linspace\n",
|
||||
"Anstelle, dass wir die Einträge in numpy arrays \"per Hand\" definieren, können wir eine nützliche Funktion verwenden. \n",
|
||||
|
||||
"**a)**",
|
||||
"Machen Sie sich mit der nachstehenden Zelle vertraut. Verstehen Sie die Syntax?"
|
||||
"""
|
||||
|
||||
import numpy as np
|
||||
|
||||
x = np.linspace(0, 1, 5)
|
||||
|
||||
print(x)
|
||||
|
||||
"""
|
||||
"**b)** Erstellen sie ein numpy array für die Zeit `t`
|
||||
indem sie `np.linspace()` korrekt verwenden.
|
||||
Dabei soll gelten $t_0 = 0$
|
||||
und $t_N = 5$ mit der Anzahl der Einträge $N = 50$."
|
||||
"""
|
||||
|
||||
t = np.linspace(0, 5, 50)
|
||||
|
||||
"""
|
||||
"**c)** Benutzen Sie die in ha2 Aufgabe 2 definierte Funktion `printBahnkurve()`
|
||||
um sich nun die Bahnkurve für das gerade erstellte array `t` ausgeben zu lassen.
|
||||
Verwenden Sie die Werte $x_0=3$ und $v_0=10$ wie auf Blatt 2."
|
||||
"""
|
||||
|
||||
def printBahnkurve(x0, v0, t):
|
||||
g = -9.81
|
||||
x = x0 + v0 * t + 1/2 * g * t ** 2
|
||||
print(x)
|
||||
|
||||
x0 = 3
|
||||
v0 = 10
|
||||
|
||||
printBahnkurve(x0, v0, t)
|
||||
"""
|
||||
|
||||
"## Return\n",
|
||||
"Bisher hat unsere definierte Funktion lediglich einen `print()` Befehl ausgeführt.
|
||||
Wir wollen nun, dass unsere Funktion einen Wert zurück gibt.
|
||||
Dadurch kann der Wert in einer Variablen gespeichert und somit weiterverarbeitet werden. Dazu verwenden wir das `return` Statement. \n",
|
||||
|
||||
"**d)** Betrachten Sie die folgenden zwei Funktionen. Beschreiben Sie kurz (1-2 Sätze), was hier geschieht. "
|
||||
|
||||
"""
|
||||
|
||||
# Funktion nimmt ein Argument und gibt es wieder zurueck
|
||||
def identity(x):
|
||||
return x
|
||||
|
||||
# Funktion nimmt ein Argument und probiert das Quadrat dieses zurueckzugeben
|
||||
def square(x):
|
||||
return x**2
|
||||
|
||||
# Weise dem Namen 'id2' den Rueckgabewert der Identityfunktion mit dem Argument 2 zu. id2 = 2
|
||||
id2 = identity(2) # definiere id2 über Zugriff auf identity
|
||||
|
||||
# Weise dem Namen 'square2' den Rueckgabewert der squarefunktion mit dem Argument 2 zu. square2 = 4
|
||||
square2 = square(2)# definiere square über Zugriff auf square
|
||||
|
||||
print(id2, square2) # Ausgabe der Werte
|
||||
|
||||
"""
|
||||
"**e)** Schreiben Sie eine neue Funktion,
|
||||
indem Sie den `print()` Befehl in der Funktion `printBahnkurve()` durch das `return` Statement ersetzen.
|
||||
Wählen Sie einen geeigneten Namen für die neue Funktion. "
|
||||
"""
|
||||
|
||||
def returnBahnkurve(x0, v0, t):
|
||||
g = -9.81
|
||||
x = x0 + v0 * t + 1/2 * g * t ** 2
|
||||
return x
|
||||
|
||||
|
||||
"""
|
||||
"## Visualisierung\n",
|
||||
"Da Sie nun dazu in der Lage sind,
|
||||
viele Datenpunkte zu erzeugen,
|
||||
wollen wir als nächsten Schritt die berechnete Bahnkurve in einem plot mithilfe von `matplotlib.pyplot` visualisieren. `Matplotlib` ist eine beliebte und sehr vielseitige plot Bibliothek,
|
||||
die es uns ermöglicht Daten zu visualisieren. Wer einen Eindruck davon gewinnen möchte, was alles mit `matplotlib` möglich ist, kann ja mal [hier](https://matplotlib.org/3.1.1/gallery/index.html) vorbeischauen!\n",
|
||||
"Wir haben folgendes Grundgerüst vorbereitet, in dem die Funktion $f(x) = x^2$ beispielhaft geplottet wird."
|
||||
"""
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user