Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
talit:python_advanced_problems [2025-09-01 12:01] – [6. Gravitationspotential] scatalit:python_advanced_problems [2025-09-15 11:17] (aktuell) – [Auftrag] sca
Zeile 263: Zeile 263:
  
 === Auftrag === === Auftrag ===
 +
 +In Jupiter-Notebook: `doppelpendel.ipynb`
  
    1. **Integriere die Bewegungsgleichungen** des Doppelpendels mit odeint, genau so, wie du es bereits vom Harmonischen Oszillator kennst. Stelle die beiden Winkel $\theta\_1$ und $\theta\_2$ als Funktionen der Zeit dar. Verzichte hier auf AI.    1. **Integriere die Bewegungsgleichungen** des Doppelpendels mit odeint, genau so, wie du es bereits vom Harmonischen Oszillator kennst. Stelle die beiden Winkel $\theta\_1$ und $\theta\_2$ als Funktionen der Zeit dar. Verzichte hier auf AI.
Zeile 312: Zeile 314:
  
 {{ :talit:lorenz_attractor.png?400 |}} {{ :talit:lorenz_attractor.png?400 |}}
 +
 +Programmiere den Lorenz-Attraktor und stelle das Bild schön dar. Ob das Bild auf 1x oder fortlaufend angezeigt wird, ist dir überlassen. Erstelle dazu ein Jupiter-Notebook: `lorenz_attraktor.ipynb`
  
 ===== - Eigener DGL Solver ===== ===== - Eigener DGL Solver =====
Zeile 370: Zeile 374:
  
 ==== Aufträge ==== ==== Aufträge ====
 +
 +In Jupiter-Notebook: `eigener_dgl_solver.ipynb`
  
 === Auftrag 1 === === Auftrag 1 ===
Zeile 381: Zeile 387:
 Modifiziere eines der Lösungsverfahren von oben so, dass du Differentialgleichungen 2. Ordnung, also mit 2. Ableitungen, lösen kannst. Löse damit z.B. den harmonischen Oszillator. Modifiziere eines der Lösungsverfahren von oben so, dass du Differentialgleichungen 2. Ordnung, also mit 2. Ableitungen, lösen kannst. Löse damit z.B. den harmonischen Oszillator.
  
-===== - Gravitationspotential =====+===== - Gravitationspotenzial =====
  
- +**Gravitationspotenzial einer homogenen Kugel** (Masse $m_k$, Radius $R_k$ an Position $(x_k,y_k)$):
- +
-Gravitationspotential einer homogenen Kugel (Masse $m_k$, Radius $R_k$ an Position $(x_k,y_k)$):+
 $$\Phi_k(x,y) = - \frac{G m_k}{r} \quad \text{falls } r > R_k$$ $$\Phi_k(x,y) = - \frac{G m_k}{r} \quad \text{falls } r > R_k$$
-$$\Phi_k(x,y) = - \frac{G m_k}{2\cdot R_k^3}(3\cdot R_k^2 - r^2) \quad \text{falls } r>R_k$$+$$\Phi_k(x,y) = - \frac{G m_k}{2\cdot R_k^3}(3\cdot R_k^2 - r^2) \quad \text{falls } r \leq R_k$$
 wobei $r = \sqrt{(x-x_k)^2 + (y-y_k)^2}$. wobei $r = \sqrt{(x-x_k)^2 + (y-y_k)^2}$.
  
-Gravitationspotential von $n$ solcher homogenen Kugeln:+**Gravitationspotential von $n$ homogenen Kugeln**:
 $$\Phi(x,y) = \sum_{k=1}^{n} \Phi_k(x,y)$$ $$\Phi(x,y) = \sum_{k=1}^{n} \Phi_k(x,y)$$
  
-Zusammenhang Kraft und PotentialKraft, die auf eine bestimmte Masse $m_j$ wirkt: +Da das Gravitationspotenzial an vielen Punkten berechnet werden soll, macht es Sinn **[[talit:python_advanced#numba|Numba]]** zu verwenden, um die Performance des Python-Codes massiv zu optimieren. 
-$$\vec{F}_j = -m \cdot \nabla\Phi_{\neq j}$$ + 
-$$\begin{pmatrix} x_{1} \\ x_2 \end{pmatrix}$$+Fun-Fact: Aus dem Gravitationspotenzial kann wortwörtlich die **Gravitationskraft** abgeleitet werden. Die Gravitationskraft, die auf Masse $m_j$ wirkt, ist
 +$$\vec{F}_j = - m \cdot \nabla \Phi$$ 
 +Dabei ist $$\nabla \Phi = \begin{pmatrix} \partial_x \Phi \\ \partial_y \Phi \end{pmatrix}$$ 
 +wobei $\partial_x \Phi$ und $\partial_y \Phi$ die Ableitung von $\Phi$ nach $x$, resp. nach $y$ ist. 
 + 
 +==== Auftrag ==== 
 + 
 +In Jupiter-Notebook: `gravitationspotenzial.ipynb` 
 + 
 +**Auftrag I:** Visualisiere das Gravitationspotenzial von $n$ homogener Kugeln (konstante Dichte), welche sich in einer Ebene (also in 2D) befinden. Verwende AI nur für die Anzeige des Potenzials. 
 + 
 +**Auftrag II:** Implementiere nun die Dynamik: Die Massen sollen sich aufgrund ihrer Gravitation bewegen. Das Gravitationspotenzial soll sich also fortlaufend ändern. Schön wäre, wenn man oben die Massen und unterhalb das Potenzial sehen würde.  
 + 
 +===== - Game of Life ===== 
 + 
 +{{ :talit:game_of_life_rules.pdf |Theorie & Auftrag}}
  
-**Auftrag I:** Visualisiere das Gravitationspotenzial von $n$ homogener Kugeln (konstante Dichte), welche sich in einer Ebene (also in 2D) befinden. 
  
-**Auftrag II:** Mithilfe des Gravitationspotenzials kann man nun auch die Dynamik 
  • talit/python_advanced_problems.1756728094.txt.gz
  • Zuletzt geändert: 2025-09-01 12:01
  • von sca