mirror of
https://gitlab.gwdg.de/j.hahn02/university.git
synced 2026-01-01 06:44:25 -05:00
99 lines
3.5 KiB
Python
99 lines
3.5 KiB
Python
"""
|
|
"# 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."
|
|
"""
|
|
|
|
|
|
|
|
|