Files
university/S1/ExPhyI/ha3.py
2025-04-16 10:50:38 +02:00

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."
"""