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