Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| talit:python_advanced_problems [2025-10-20 11:08] – [Mandelbrot Menge] sca | talit:python_advanced_problems [2025-10-20 11:14] (aktuell) – sca | ||
|---|---|---|---|
| Zeile 487: | Zeile 487: | ||
| 1. Punkte, die den Schwellenwert nicht erreichen, gelten als Teil der Mandelbrot-Menge (meist schwarz). | 1. Punkte, die den Schwellenwert nicht erreichen, gelten als Teil der Mandelbrot-Menge (meist schwarz). | ||
| 1. Speichere in einem **Array für jeden Pixelpunkt** also die Anzahl Schritte bis der Schwellenwert erreicht wird resp. $0$ falls der Punkt zur Mandelbrotmenge gehört. | 1. Speichere in einem **Array für jeden Pixelpunkt** also die Anzahl Schritte bis der Schwellenwert erreicht wird resp. $0$ falls der Punkt zur Mandelbrotmenge gehört. | ||
| - | 1. **Visualisiere** die Mandelbrot-Menge mit einer Colormap: Verschiedene Werte im Array werden durch verschiedene Zahlen dargestellt. Tipp: Wenn man die Werte verändert, indem man z.B. das ganze Array mit eine Zahl multipliziert oder eine Funktion auf dieses anwendet, so kann man die Darstellung verändern. | + | 1. **Visualisiere** die Mandelbrot-Menge mit einer Colormap: Verschiedene Werte im Array werden durch verschiedene Zahlen dargestellt. Tipp: Wenn man die Werte verändert, indem man z.B. das ganze Array mit eine Zahl multipliziert oder eine Funktion auf dieses anwendet, so kann man die Darstellung verändern. Siehe unten für ein Code-Beispiel. |
| 1. Da diese Berechnung für eine vernünftige Auflösung ziemlich lange geht, sollten die Berechnungen **parallelisiert** werden. Verwende dazu z.B. [[python_advanced# | 1. Da diese Berechnung für eine vernünftige Auflösung ziemlich lange geht, sollten die Berechnungen **parallelisiert** werden. Verwende dazu z.B. [[python_advanced# | ||
| - | 1. Optional: **Zoom:** Schreibe eine Animation, die immer weiter ins Fraktal hinein zoomt. | + | |
| + | **Beispiel: Code für Visualisierung** | ||
| <code python> | <code python> | ||
| Zeile 497: | Zeile 498: | ||
| import matplotlib.pyplot as plt | import matplotlib.pyplot as plt | ||
| - | array = ... # ist numpy array, Wert für jedes Pixel | + | array_pixels |
| - | img_fn = Image.fromarray(array) | + | img_fn = Image.fromarray(array_pixels) |
| cm = " | cm = " | ||
| Zeile 509: | Zeile 510: | ||
| cmap_hot = plt.get_cmap(cm) | cmap_hot = plt.get_cmap(cm) | ||
| - | norm = plt.Normalize(vmin=array.min(), vmax=array.max()) | + | norm = plt.Normalize(vmin=array_pixels.min(), vmax=array_pixels.max()) |
| - | rgba = (cmap_hot(norm(array)) * 255).astype(np.uint8) | + | rgba = (cmap_hot(norm(array_pixels)) * 255).astype(np.uint8) |
| - | img_hot | + | img = Image.fromarray(rgba, |
| - | img_hot.save(" | + | img.save(" |
| </ | </ | ||
| + | |||
| ==== Newton Fraktale ==== | ==== Newton Fraktale ==== | ||