Mandelbrotmængden
Denne artikel behøver tilretning af sproget. Sproget i denne artikel er af lav kvalitet på grund af stavefejl, grammatikfejl, uklare formuleringer eller sin uencyklopædiske stil.december 2015) (Lær hvordan og hvornår man kan fjerne denne skabelonbesked) ( |
Mandelbrotmængden er en berømt fraktal opkaldt efter den franske matematiker Benoît B. Mandelbrot.
Matematisk set er Mandelbrotmængden ikke vigtig, men den er vigtig for at forstå, hvordan simple formler kan frembringe komplekse strukturer.
Historie
Funktionen, som ligger bag Mandelbrotmængden, blev oprindeligt opdaget i 1905 af den franske matematiker Pierre Fatou og studeredes senere videre af hans kollega Gaston Julia, som i slutningen af 1920'erne arbejdede med metoder som itererer enkle komplekse funktioner. Julia opdagede også de med Mandelbrotmængden beslægtede Juliamængder. Fatou og Julia undersøgte først og fremmest konvergenser af bestemte parametre; Julia lavede nogle afbildninger med lav opløsning, mens vore dages bedre visualiseringer kræver mere datakraft til de omfattende beregninger.
Benoît B. Mandelbrot var ansat ved IBM og arbejdede blandt andet med at forsøge at få bugt med visse typer af støj, et kaosfænomen kaldet cantorstøv, som opstår ved datakommunikation, hvilket foranledigede ham til at eksperimentere med kaotiske forløb. Da han genopdagede Julias arbejder, havde han fordelen af at være blandt de første med adgang til den nødvendige datakraft. Der skabte han det første billede af mandelbrotmængden, en sort/hvid udskrift på papir. Han beskrev sine resultater i 1982.
Definition
Mandelbrotmængden er en mængde af punkter i den komplekse talplan, nemlig de komplekse tal c = c1+ic2 for hvilke den rekursive talfølge zn, definieret af
ikke går mod uendelig, når startværdien er z0 = 0.
For at beregne et billede af Mandelbrotmængden, antager man, at hvert billedpunkt modsvarer et specifikt c, hvilket genererer en specifik talfølge, og efter som et digitalt billede indeholder et endeligt antal billedpunkter, indebærer det, at et endeligt antal talfølger behøver at blive undersøgt med hensyn til divergens.
Man kan vise, at talfølgen altid divergerer, hvis den absolutte værdi (modulus) af noget zn bliver større end 2. Eftersom det ikke er muligt at udføre et uendeligt antal iterationer på endelig tid vælges i praksis et forudbestemt, maksimalt antal iterationer, og hvis |zn| for en specifik talfølge ikke overstiger 2 inden, at man når denne iteration, så antager man, at modsvarende c tilhører mandelbrotmængden, ellers ikke.
Formlen ovenfor er skrevet med komplekse tal, men det går tillige at udtrykke det samme med reelle tal. I stedet for det komplekse tal c undersøges da punktet (a,b), og i stedet for den komplekse talfølge zn fås da to reelle talfølger xn og yn:
Formelens funktion
Først bestemmes hvor mange gange, funktionen skal itereres eller det maksimale beløb indexregneren n kan antage. Dette for at det ikke går at eksakt beregne fraktalen, men hvad der nås, er en approximation af den. Det i sin tur bero på, at visse punkter kan tage nærmere uendeligt mange iterationer på sig inden de forlader systemet, og det går jo ikke at beregne. Næste trin er at vælge et punkt (eller koordinatpar om man vil). Den modsvarer punkter i det komplekse talplanet, som skal analyseres for, hvorvidt det er et punkt i mandelbrotmængden eller ej. Siden sættes parameteren z til att pege på origo, altså nulpunktet. Også indexregneren nulstilles:
max n = præcisionsgrad Antal iterationer c = [a, b] Punkterne som analyseres z(n = 0) = [0, 0]. Nulstillet z og n
Dette er udgangssituationen, for at siden prøve om punktet c tilhører mandelbrotmængden, itereres formlen oven for og ved hver iteration testes, om absolutbeløbet af z har nået over grænseværdien som anger størrelsen på fangstmængden som bruges, i dette tilfælde er det |z| < 2,0 som er fangstmængde. Om udtrykket er sandt, så gøres næste gentagelse; i andet fald er z den for radien 2,0 og kommer garanteret at gå mod uendelighed. Om z derimod ikke går mod uendelighed, så afbrydes beregningerne når indexregneren n har nået sin maxværdi "max n" og punktet antages at være en delmængde af mandelbrotmængden. (Det betyder, at punktet ligger inden for det sorte område i billede 1a. Det store cirkelsegment, som synes lidt utydeligt længst til venstre i billedet, modsvarer |z| == 2.0, og er grænsen for, hvor z er faldet uden for fangstmængden efter den første iteration. Næste kurve i ordningen modsvarer den anden gentagelse osv.)
For at beregne absolutbeløbet af z så kvadreres x og y siden drages roden af summen:
Absolutbeløb; (to dimensioner)
|z| = sqrt(x² + y²)
Jævnfør; Pythagoras sætning, længden på hypotenusen.
Men da |z| < max er analog med |z|² < max², så gælder tillige (x² + y²) < max², hvilket indebærer, at det går at undgå beregningsbesværet i roduddragningen og teste direkte på max², (i dette tilfælde 4,0), i stedet [1].
Algoritme
Nu regner det altså ikke med kun en formel, men der behøves tillige en algoritme. Algoritmens opgaver er at inddele talplanet i et rudenet, som har samme opløsning som billedfladen, som fraktalen skal vises på, udføre beregningerne og teste vilkår for fangstmængde og indexregnere og der efter gentage eller afbryde. Rudenettet modsvarer koordinaterna (c) som skal approximeres og arbejdes af punkt for punkt til hele billedet er klart. Afbrydes beregningen på grund af, at z falder uden for fangstmængden, så betyder det, at c peger på en punkt i auraen og gives da sædvanligvis en farve fra en præ-definieret palet (egentlig en tabel), så anvendes normalt den opnåede værdi for n som index, når farven hentes fra tabellen. Siden skrives punktet der i den aktuelle farve ved koordinaten c. Opnår indexregneren der imod maxværdien, så skrives vanligvis et sort punkt der for at markere, at den tilhører mandelbrotmængden.
Pseudokode (hvor operanderne er i normal tekst og operatorerne i fed stil) .
Regn b fra -2,0 til 2,0 Regn a fra -2,0 til 2,0 Sæt c til [a, b] Sæt z til [0, 0] Sæt n til 0 Hvis |z| < 2 Og n < max n Sæt z til z² + c Forøg n med 1 Gentag Sæt aktuel farve til n Skriv_pixel [a, b] Næste a Næste b
I populærkultur
- Jonathan Coultons sang "Mandelbrot Set" (det engelske navn for Mandelbrotmængden) er en hyldest både til Mandelbrotmængden og Benoît Mandelbrot.
- Arthur C. Clarkes roman The Ghost from the Grand Banks nævnes en kunstig sø der er lavet i samme form som Mandelbrotmængden.
- Kuko De Kobras sang "Mandelbrot X" omhandler livets mange gentagelser set som en art fraktaler.
Billedgalleri
Wikimedia Commons har medier relateret til: |
Se også
- Mandelbulb – et forsøg på at lave en 3D-analogi til Mandelbrotmængden
Litteratur
- Jesper Frandsen (1992). Komplekse tal og fraktaler (1. udgave). Systime. ISBN 87-7783-188-8.
Eksterne henvisninger
- Søg efter billeder på mandelbrotmængden (med google)
- Søg efter java applets hvor man kan zoome i mandelbrotmængden (med google)
- Online Fractal Explorer — En hurtig webbaseret mandelbrotudforsker. Genererede fraktaler kan spares, kommenteres og værdisættes.
- Besøg Benoît B. Mandelbrots personlige hjemmeside ved Yale University Arkiveret 22. juni 2004 hos Wayback Machine
Noter
- ^ (at beregne fraktaler er vældigt proceskrævende således, at intet gøres unødvendigt)
Medier brugt på denne side
Upper; Julia set at point C = [-1.404289, 0.0], Bottom; Section from midpoint .
Forfatter/Opretter: Alex Tav, Licens: CC BY-SA 3.0
Animation of the set for d from 2 to 4
Used Zom-B's library with my own code and a golden gradient (similar to the default gradient used in Ultra Fractal). Each scene is 6x supersampled to remove sharp edges. Took... a while to render
Links to Java source code: Zom-B version project directory containing DoubleDouble class, adjustments made by Simpsons Contributor to keep max iteration and anti-aliasing factor at more conservative values for faster rendering. New golden gradient added. Includes animated gif encoder.
Zom-B version
Mandelbrot zoom with center at (-0.743643887037158704752191506114774, 0.131825904205311970493132056385139) and magnification 1 .. 3.18 × 1031 created using my own Java program, using:
- Double-double precision (self-written library),
- Adaptive maxiter depending on the inverse square root of the magnification
- Adaptive per-pixel antialiasing strength depending on the maximum iteration of nearby pixels (15x AA max), (during antialiasing phase, maxiter is quadrupled),
- Iteration smoothing,
- New warm gradient which also gives clearer details, applied to the base-2 log of the smoothed iteration number,
- Modified periodicity checking algorithm from Fractint, for significant speedup,
- Main cardioid and period-2 bulb checking for another speedup,
- Multi-threaded calculation
- 136 hours calculation time on two PC's (6 cores combined)
Forfatter/Opretter: UnreifeKirsche, Licens: CC BY 3.0
En sammensat Buddhabrot (en speciel rendering af Mandelbrot-fraktalen ved 20.000 (violet), 100.000 (blå) og 1.000.000 (hvid) iterationer.
Forfatter/Opretter: PantheraLeo1359531 😺 (diskussion), Licens: CC0
An example for the zoom into the Mandelbrot set. This video is a renewed version of File:Fractal-zoom-1-15-rupture.ogv. The video resolution is out of date and shows significant compression artifacts. This version here tries to meet technical standards from today with 8000 x 4500 ("8K"/"FUHD") at 60 frames per second. Of course, this video will be too old for future standards.
sv:Mandelbrotmängden, (en sv:fraktal).