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-10-20 11:00] – [Mandelbrot Menge] scatalit:python_advanced_problems [2025-10-20 11:14] (aktuell) sca
Zeile 470: Zeile 470:
  
 Im Bild oben sind alle *schwarzen Punkte* diejenigen, die zur Mandelbrot-Menge gehören. Die farbigen gehören nicht dazu. Im Bild oben sind alle *schwarzen Punkte* diejenigen, die zur Mandelbrot-Menge gehören. Die farbigen gehören nicht dazu.
 +
 +**Umgang mit AI:**
 +
 +   * Der **Weg ist das Ziel**!
 +   * Es geht darum, dass du Fraktale wirklich verstehst ...
 +   * ... und diese Programmieren kannst.
 +   * Challenge:
 +     * Verwende keine AI.
 +     * Schalter WLAN aus, verwende nur um Module zu installieren.
  
 **Vorgehen:** **Vorgehen:**
Zeile 478: 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#numba]]    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#numba]]
-   1. Optional**Zoom:** Schreibe eine Animation, die immer weiter ins Fraktal hinein zoomt.+   1. (Optional**Zoom:** Schreibe eine Animation, die immer weiter ins Fraktal hinein zoomt. 
 + 
 +**Beispiel: Code für Visualisierung** 
 + 
 +<code python> 
 +import numpy as np 
 +from PIL import Image 
 +import matplotlib.pyplot as plt 
 + 
 +array_pixels = ... # ist numpy array, Wert für jedes Pixel 
 + 
 +img_fn = Image.fromarray(array_pixels) 
 + 
 +cm = "magma" # colormap 
 + 
 +plt.figure(figsize=(10,10)) 
 +plt.imshow(img_fn, cmap=cm)  
 +plt.axis("off"
 +plt.show() 
 + 
 +cmap_hot = plt.get_cmap(cm) 
 +norm = plt.Normalize(vmin=array_pixels.min(), vmax=array_pixels.max()) 
 +rgba = (cmap_hot(norm(array_pixels)) * 255).astype(np.uint8)  # shape (H,W,4) 
 +img = Image.fromarray(rgba, mode="RGBA"
 +img.save("file_name.png", format="PNG", compress_level=6) 
 +</code>
  
 ==== Newton Fraktale ==== ==== Newton Fraktale ====
  • talit/python_advanced_problems.1760958057.txt.gz
  • Zuletzt geändert: 2025-10-20 11:00
  • von sca