Mandelbrotmængden

Fra Wikipedia, den frie encyklopædi
Version fra 7. mar. 2015, 18:03 af Steenthbot (diskussion | bidrag) Steenthbot (diskussion | bidrag) (bot: Ret tag br - WPCW fejl 2; kosmetiske ændringer)
Billede 1a. Mandelbrotmængden, Mandelbrotfraktalen, er det helt sorte område på billedet. Resten kan siges at være fraktalens aura. 1b. Delbillede af øvre højre kant.
Billede 2. Ved et nærmere studie ser man, at grænselandet mellem mandelbrotmængden og auraen har en yderst kompleks struktur. På visse steder synes snarlige kopier af den oprindelige figur i mindre skala. (Eng. "minimandels".).
Billede 3. Et stadigt tilbagevendende tema er, at der gentages et lignende mønster gang på gang i stadig mindre skala. Mønsteret forsvinder ned i "sorte huller" og desuden i serier, hvor hullerne gentages i lange rækker eller spiraler ved siden af hinanden. Mønsteret varierer også alt efter hvor stor skala, som vises.
Billede 4. I normale tilfælde testes, om absolutbeløbet af z er mindre end to, men det går tillige for eksempel som i billedet oven for at anvende absolutbeløbet af alene realdelen |(Re z = x)| < 2 eller lignende med y koordinaten. Man kan desuden addere op begge eller finde på noget andet intressant, mulighederne er mange. Sådanne variationer af fraktalen påvirker oftest ikke udseendet på mængden i nogen særlig udstrækning, men kan derimod give auraen forskellig karakter; i dette tilfælde et blomsterladslignende bølgemønster, hvor det ellers kun er jævne kurver.

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 var vigtig for, at forstå, hvordan simple formler kan producere 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 Gaston Julia, som i slutningen af 1920'erne arbejdede med metoder som itererer enkle kompleksværdi funktioner. Julia opdagede også de med mandelbrotmængden beslægtede juliamængder. Fatou og Julia undersøgte først og fremmest konvergenser af enkelte parametre; Julia skabte nogle billeder med lav opløsning, som bedre visualiserer krævede datakræfter til de omfattende beregninger.

Benoît B. Mandelbrot var ansat ved IBM og arbejdede der 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 resultat i 1982.

Definition

Mandelbrotmængden er en mængde af punkter i det komplekse talplan. Punkterne i mængden er de komplekse tal c for hvilke den rekursive talfølge zn, definieret af

ikke går mod uendelighed, 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.

Formelen 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 sats, 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

Billedgalleri

Zoom i en mandelbrotmængde
Zoom i mandelbrotmængden, hvor det kan ses at man kan finde mandelbrotmængden selv i mandelbrotmængden.
Animation de l'ensemble pour n allant de 2 à 5
Animation af den generaliserede Mandelbrotmængden skrevet med formlen med d fra 2 til 5.
Billede af juliamængden, på billedsiden findes en fordybelse, hvor man kan læse om teknikken, som har skabt billederne på siden.
Højopløst billede af mandelbrotmængden
Buddhabrot er en speciel rendering af mandelbrotmængden.
Wikimedia Commons har medier relateret til:


Se også

  • Mandelbulb – et forsøg på at lave en 3D-analogi til Mandelbrotmængden

Eksterne henvisninger

Noter

  1. ^ (at beregne fraktaler er vældigt proceskrævende således, at intet gøres unødvendigt)