[1] Fractalii Newton ai rădăcinilor unităţii - partea I
[2] Fractalii Newton ai rădăcinilor unităţii - partea a doua
[3] Fractalii Newton ai rădăcinilor unităţii - partea a treia
Rămânând la nivelul de experiment numeric, avem o "soluţie" chiar banală, pentru a tranşa dilema locului punctelor periodice (v. [3]): generăm fractalul respectiv şi adăugăm pe desen punctele periodice (observând apoi dacă sunt sau nu, incluse şi ele în fractal).
În [2] am aproximat fractalul ca mulţimea preimaginilor până la un anumit ordin de iterare, ale originii; n-am avea decât să explicităm pe desenul respectiv, punctele periodice. Desigur că această procedură este banală şi odată menţionată, nu mai merită atenţie…
Să procedăm mai interesant - verificând numeric următorul rezultat clasic: The Julia set for any rational map of degree ≥ 2 is equal to the closure of its set of repelling periodic points (în timp ce atractorii şi bazinele de atragere aferente aparţin complementarei mulţimii Julia); precizăm că teorema redată (într-o exprimare actuală) a fost stabilită acum 100 de ani, de către Gaston Julia şi Pierre Fatou - creatorii recunoscuţi ai teoriei iterării funcţiilor de variabilă complexă.
Practic, ar însemna că putem genera fractalul plecând de la unul dintre punctele 2-periodice - colectând preimaginile acestuia până la un anumit ordin de iterare (iar în final nu avem decât să plotăm şi punctele 2-periodice, marcându-le în mod distinct faţă de celelalte):
gen_fractal_periodic_point <- function(n, iter, radius) { cycle <- frc <- get_invariant(n) # punctele 2-periodice ale lui N() - v. [3] frc <- frc[1] # pleacă de la unul dintre punctele 2-periodice, ζ pN <- poly_newton(n) # (n-1)z^n - nζz^(n-1) + 1 (v. [2]) for(i in 1:iter) # preimaginile punctului (până la ordinul 'iter') frc <- as.vector(sapply(frc, function(r) polyroot(pN(r)))) plot(frc[abs(frc) < radius], pch=".", col="blue", asp=1) points(cycle, pch=20, col="red") # marchează punctele 2-periodice }
png <- png("gen_frc.png", units="px", width=1200, height=600, bg="white") opar <- par(mfrow = c(1, 2), mar=c(0, 0, 0, 0), bty="n") gen_fractal_periodic_point(3, 16, 1.01) gen_fractal_periodic_point(4, 13, 1.5) dev.off()
Pe albastru, avem aceleaşi forme ca acelea obţinute (pe alte căi) în [2] şi [1] - aproximând mulţimile Julia (trunchiate la câte un anumit disc centrat în origine) ale transformării lui Newton asociate rădăcinilor de ordinul trei şi respectiv patru, ale unităţii. Cele 6 şi respectiv 12 puncte roşii (mărite faţă de celelalte) marchează punctele 2-periodice, pentru n = 3 şi respectiv n = 4; vedem pe imagine că ele ţin într-adevăr, de mulţimea Julia.
Desigur… uităm mereu că de fapt nu vedem decât o aproximare mai mult sau mai puţin palidă, a lucrurilor (calculată numeric - pe un număr finit de puncte, reprezentate aproximativ); imaginea doar sprijină supoziţia că "ele ţin într-adevăr, de mulţimea Julia" - dar teoretic, dilema persistă.
vezi Cărţile mele (de programare)