Znalost moderního programování otevírá dveře budoucností.

Mandelbrotová množina jako pokročilá metoda výuky algoritmizace

Mandelbrotová množina

jako pokročilá metoda

výuky algoritmizace

Sdílet příspěvek

Mandelbrotova množina patří mezi nejznámější fraktální objekty a představuje mimořádně vhodné rozšiřující téma pro výuku algoritmizace a programování v jazyce Python. Na relativně jednoduchém matematickém základu umožňuje studentům pochopit pokročilé koncepty, jako jsou iterace, práce s komplexními čísly, řízení výpočetní složitosti a převod abstraktních výpočtů do vizuální podoby.

Z didaktického hlediska jde o ideální most mezi matematikou, algoritmickým myšlením a počítačovou grafikou. Studenti zde jasně vidí, že krátký a formálně jednoduchý algoritmus může generovat velmi složité a esteticky působivé struktury.

Matematický a algoritmický princip

Mandelbrotova množina je definována pomocí iterativního vztahu nad komplexními čísly:

$$ z_{n+1} = z_n^2 + c $$

kde:

z0 = O,

c je komplexní číslo odpovídající bodu v komplexní rovině.

Pro každou hodnotu ccc sledujeme, zda posloupnost znz_nzn​ zůstává omezená. Pokud absolutní hodnota zn​ nepřekročí danou mez (obvykle 2) ani po určitém počtu iterací, považujeme bod za součást Mandelbrotovy množiny.

Z algoritmického pohledu zde studenti pracují s těmito klíčovými prvky:

vnořenými cykly pro průchod obrazovou maticí,

iterativním výpočtem s pevně daným limitem,

podmíněným ukončením smyčky,

mapováním matematického prostoru na obrazové souřadnice.

Přínos pro výuku Pythonu

Zařazení Mandelbrotovy množiny do výuky umožňuje:

procvičit práci s komplexními čísly (complex, abs()),

pochopit význam iterací a limitů,

rozvíjet schopnost optimalizace algoritmu (počet iterací, rozlišení),

propojit čistě výpočetní úlohu s grafickým výstupem,

motivovat studenty vizuálním a okamžitě ověřitelným výsledkem.

Téma je vhodné jako rozšiřující úloha pro pokročilejší žáky nebo jako projektová práce v rámci algoritmizace.

Ukázková implementace v Pythonu:

Následující příklad demonstruje základní algoritmus pro vykreslení Mandelbrotovy množiny pomocí knihoven matplotlib a numpy. Kód je záměrně psán přehledně a bez nadbytečných optimalizací, aby byl dobře čitelný pro výukové účely.


    import numpy as np
    import matplotlib.pyplot as plt

    # Nastavení rozlišení a rozsahu komplexní roviny
    width, height = 800, 600
    max_iter = 100

    re_min, re_max = -2.0, 1.0
    im_min, im_max = -1.2, 1.2

    # Příprava pole pro výsledek
    mandelbrot = np.zeros((height, width))

    for y in range(height):
        for x in range(width):
            # Převod pixelu na komplexní číslo
            re = re_min + (x / width) * (re_max - re_min)
            im = im_min + (y / height) * (im_max - im_min)
            c = complex(re, im)

            z = 0
            iteration = 0

            # Iterační výpočet
            while abs(z) <= 2 and iteration < max_iter:
                z = z * z + c
                iteration += 1

            mandelbrot[y, x] = iteration

    # Vykreslení výsledku
    plt.figure(figsize=(10, 6))
    plt.imshow(mandelbrot, cmap="inferno", extent=[re_min, re_max, im_min, im_max])
    plt.colorbar(label="Počet iterací")
    plt.title("Mandelbrotova množina")
    plt.xlabel("Reálná osa")
    plt.ylabel("Imaginární osa")
    plt.show()
    

Didaktické rozšíření a úlohy pro studenty

Pro další práci lze studentům zadat například:

změnu barevného mapování podle počtu iterací,

implementaci plynulého přechodu barev,

přidání možnosti přiblížení (zoomu) vybrané oblasti,

porovnání výkonu algoritmu při různém rozlišení,

úpravu programu tak, aby využíval funkce nebo modulární strukturu.

Mandelbrotova množina je výjimečným příkladem tématu, které spojuje matematickou přesnost s programátorskou kreativitou. Ve výuce Pythonu slouží nejen jako nástroj k procvičení algoritmického myšlení, ale také jako silný motivační prvek, který studentům ukazuje, že programování není pouze o textových výstupech, ale i o tvorbě komplexních vizuálních struktur vycházejících z jednoduchých pravidel.

Zdroje

MANDELBROT, Benoît B. The Fractal Geometry of Nature. New York: W. H. Freeman and Company, 1982. ISBN 0-7167-1186-9.

DOWNEY, Allen B. Think Python: How to Think Like a Computer Scientist. 2nd ed. Sebastopol: O’Reilly Media, 2016. ISBN 978-1-491-93936-9.

PEITGEN, Heinz-Otto, JÜRGENS, Hartmut a SAUPE, Dietmar. Chaos and Fractals: New Frontiers of Science. 2nd ed. New York: Springer-Verlag, 2004. ISBN 978-0-387-20229-7.

PYTHON SOFTWARE FOUNDATION. Python Documentation [online]. Wilmington (DE): Python Software Foundation, 2025 [cit. 2026-01-20].

WEISSTEIN, Eric W. Mandelbrot Set [online]. In: MathWorld – A Wolfram Web Resource. Champaign: Wolfram Research, 2025 [cit. 2026-01-20].

PUBLIKOVÁNO
20.01.2026, 8:25
ODKAZ
https://www.weloveit.education/Article/20260120-Mandelbrotova-mnozina-jako-pokrocila-metoda-vyuky-algoritmizace/
asfdasd
asfdasd
asfdasd
asfdasd
asfdasd
asfdasd

Začni hned teď
pracovat na zlepšení svých znalostí.

Vytvoř si vlastní síť zkušeností, přesně tak, jak potřebuješ.