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:13] scatalit:python_advanced_problems [2025-09-15 11:17] (aktuell) – [Auftrag] sca
Zeile 264: Zeile 264:
 === Auftrag === === Auftrag ===
  
-In Jupiter-Notebook: `doppelpendel.ipynb'+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 315: Zeile 315:
 {{ :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'+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 375: Zeile 375:
 ==== Aufträge ==== ==== Aufträge ====
  
-In Jupiter-Notebook: `eigener_dgl_solver.ipynb'+In Jupiter-Notebook: `eigener_dgl_solver.ipynb`
  
 === Auftrag 1 === === Auftrag 1 ===
Zeile 389: Zeile 389:
 ===== - Gravitationspotenzial ===== ===== - Gravitationspotenzial =====
  
-Gravitationspotenzial einer homogenen Kugel (Masse $m_k$, Radius $R_k$ an Position $(x_k,y_k)$):+**Gravitationspotenzial 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)$$
  
-Da das Gravitationspotenzial an vielen Punkten berechnet werden soll, macht es Sinn [[python_advanced&s[]=numba#numba|Numba]] zu verwenden, um die Performance des Python-Codes massiv zu optimieren.+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.
  
-In Jupiter-Notebook: `gravitationspotenzial.ipynb'+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:** 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. 
  • talit/python_advanced_problems.1756728805.txt.gz
  • Zuletzt geändert: 2025-09-01 12:13
  • von sca