From f0b45599547e396ca6a3a229473b7c7ccdc68754 Mon Sep 17 00:00:00 2001 From: Manuel Thalmann Date: Thu, 23 Feb 2023 15:27:39 +0100 Subject: [PATCH] Solve HM2 exercise --- .../Week 1/Miguel_S1_Aufg1.py | 84 +++++++++++++++++++ Pipfile | 1 + Pipfile.lock | 17 +++- 3 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 Notes/Semester 4/HM2 - Höhere Mathematik 2/Week 1/Miguel_S1_Aufg1.py diff --git a/Notes/Semester 4/HM2 - Höhere Mathematik 2/Week 1/Miguel_S1_Aufg1.py b/Notes/Semester 4/HM2 - Höhere Mathematik 2/Week 1/Miguel_S1_Aufg1.py new file mode 100644 index 0000000..d1db9f0 --- /dev/null +++ b/Notes/Semester 4/HM2 - Höhere Mathematik 2/Week 1/Miguel_S1_Aufg1.py @@ -0,0 +1,84 @@ +# %% +from numpy import pi, sin +import matplotlib.pyplot as plt +from IPython import get_ipython + +def draw3D(x, y, z, title, xlabel, ylabel, zlabel): + fig = plt.figure() + + surface = fig.add_subplot(projection="3d") + plot = surface.plot_surface(x, y, z, cmap="rainbow") + fig.colorbar(plot, shrink=0.5, aspect=5) + + fig = plt.figure() + wireframe = fig.add_subplot(projection="3d") + wireframe.plot_wireframe(x, y, z) + + for axes in [surface, wireframe]: + axes.set_title(title) + axes.set_xlabel(xlabel) + axes.set_ylabel(ylabel) + axes.set_zlabel(zlabel) + + plt.show() + +def drawContour(x, y, z, title, xlabel, ylabel): + fig = plt.figure() + axes = fig.add_subplot() + plot = axes.contour(x, y, z, cmap="rainbow") + fig.colorbar(plot, shrink=0.5, aspect=5) + axes.set_title(title) + axes.set_xlabel(xlabel) + axes.set_ylabel(ylabel) + plt.show() + +def drawPlots(x, y, z, title, xlabel, ylabel, zlabel): + draw3D(x, y, z, title, xlabel, ylabel, zlabel) + drawContour(x, y, z, title, xlabel, ylabel) + +# %% +g = 9.81 + +def W(v, a): + return ((v ** 2) * sin(a * 2)) / g + +import numpy as np + +[v, a] = np.meshgrid(np.linspace(0, 100), np.linspace(0, pi / 2)) +z = W(v, a) + +get_ipython().run_cell("%matplotlib widget") +drawPlots(v, a, z, "Wurfdistanz", "v_0", "alpha", "W") +# %% + +R = 3.81 + +def calcP(V, T): + return (R * T) / V + +def calcV(p, T): + return (R * T) / p + +def calcT(p, V): + return (p * V) / R + +# %% + +[V, T] = np.meshgrid(np.linspace(0, 0.2), np.linspace(0, 10 ** 4)) +p = calcP(V, T) + +drawPlots(V, T, p, "Druck", "V", "T", "p") + +# %% + +[p, T] = np.meshgrid(np.linspace(10 ** 4, 10 ** 5), np.linspace(0, 10 ** 4)) +V = calcV(p, T) +drawPlots(p, T, V, "Volumen", "p", "T", "V") + +# %% + +[p, V] = np.meshgrid(np.linspace(10 ** 4, 10 ** 6), np.linspace(0, 10)) +T = calcT(p, V) +drawPlots(p, V, T, "Temperatur in K°", "p", "V", "T") + +# %% diff --git a/Pipfile b/Pipfile index 9376f77..86fd447 100644 --- a/Pipfile +++ b/Pipfile @@ -11,6 +11,7 @@ scipy = "*" pexpect = "*" pandas = "*" ipympl = "*" +sympy = "*" [dev-packages] diff --git a/Pipfile.lock b/Pipfile.lock index 5facda4..70ded2d 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "feb57859ef42912639d544346f6a70df45acd233855c030f52a04d4069257a88" + "sha256": "8c86c6849809fd6594aed0bf17bcfecc16e4e0e68b7949900346649d7b23c60a" }, "pipfile-spec": 6, "requires": { @@ -353,6 +353,13 @@ "markers": "python_version >= '3.5'", "version": "==0.1.6" }, + "mpmath": { + "hashes": [ + "sha256:604bc21bd22d2322a177c73bdb573994ef76e62edd595d17e00aff24b0667e5c", + "sha256:79ffb45cf9f4b101a807595bcb3e72e0396202e0b1d25d689134b48c4216a81a" + ], + "version": "==1.2.1" + }, "nest-asyncio": { "hashes": [ "sha256:b9a953fb40dceaa587d109609098db21900182b16440652454a146cffb06e8b8", @@ -747,6 +754,14 @@ ], "version": "==0.6.2" }, + "sympy": { + "hashes": [ + "sha256:938f984ee2b1e8eae8a07b884c8b7a1146010040fccddc6539c54f401c8f6fcf", + "sha256:e32380dce63cb7c0108ed525570092fd45168bdae2faa17e528221ef72e88658" + ], + "index": "pypi", + "version": "==1.11.1" + }, "tornado": { "hashes": [ "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca",