Juliamängden
Juliamängder är en familj av fraktaler som fått sitt namn efter sin skapare Gaston Julia. Mängderna är besläktad med mandelbrotmängden och i definitionen av mängderna används samma iterationsformel:
Skillnaden är att när man vid mandelbrotmängden hela tiden utgår från z0=0 och varierar c, så varierar man för en fixerad juliamängd startvärdet z0 och använder samma värde på c. Juliamängden för ett visst c-värde är alltså alla startpunkter z0 för vilken ovanstående formel konvergerar mot ett ändligt värde. På så sätt kan man säga att det för varje punkt c i mandelbrotmängden finns det en juliamängd. På sidan Mandelbrotmängden finns en utförlig beskrivning av hur kvadrerande fraktaler som denna, (och andra), kan åskådliggöras i ett tidflyktssystem.
Andra funktioner
Det man vanligen menar med juliamängder är den mängd som fås genom iteration av formeln där startvärdet varierar. Mer generellt, kan man utan problem definiera juliamängder för iterationer av där är en godtycklig kvot av två polynom. Dessa har studerats ganska flitigt. Det har bland annat visats att juliamängden man får från en sådan rationell funktion alltid består av 0,1,2 eller oändligt många sammanhängande komponenter.
Reverserad formel
Det går även att med en reverserad formel att konvergera en punkt mot juliamängden. Metoden som beskrivs ovan utesluter de punkter som inte tillhör mängden men brukar formeln:
Om man därefter slumpvis väljer vilken av de två rötterna som skall ligga till grund för nästa iteration och sedan upprepar den ett stort antal gånger, så kommer punkten Zn att konvergera mot juliamängdens kant, och när den väl nått den att "hoppa" från punkt till punkt på randen av fraktalen. Denna algoritm lämpar sig i bäst för att rita de delmängder som är helt sammanhängande i randen då de två huvudattraktorerna är svåra att nå med konvergensen. Det på grund av att slumpvalet med chans hela tiden gör att riktningen ändras. Men det går att undvika det till en viss grad om man upprepar val, (roterad 180º eller ej), ett antal gånger. Då låter man ett slumptal välja hur många upprepningar av samma val som skall genomföras, (maxiamalt 4-6 är tillräckligt), det ger fortfarande i sannolikhetsfördelning på lång sikt men större differenser vid några få utfall.
Exempel från Juliamängden
- Wikimedia Commons har media som rör Juliamängden.
Externa länkar
Media som används på denna webbplats
Författare/Upphovsman: Maxter315, Licens: CC BY-SA 4.0
The animation of the Julia set for the complex quadratic polinomial fc(z)=z^2+C. Values of C for each frame evaluates by equation: C=r*cos(a)+i*r*sin(a), where: a=(0..2*Pi), r=0.7885. Thus, parameter С outlines circle with a radius r=0.7885 and a center at origin of the complex plane.
Created in Matlab R2011b using escape-time algorithm:A=10e6, max_iter=81. Colormap - mirorred jet(40).
Övre; Juliamängden vid punkten C = [-1.404289, 0.0], Under; Utsnitt från mittpunkten.
Bilden skapad av Solkoll.
Datorgrafik
Den övre delbilden visar en fraktal, juliamängden, på det sätt som normalt brukas när datorgrafik används, med en mer eller mindre slumpvis vald fallande färgskala som visar en ganska uppenbart digital bild av det fraktala mönstret.
Tidflyktssystem
Vid beräkningen så har ett tidflyktssystem (eng: time escape) brukats för att approximera juliamängden¹ genom att dela in det komplexa talplanet i ett rutnät där varje cell motsvarar exakt 1 pixel på skärmen. Sedan itereras (upprepas) formeln som ger fraktalen för varje punkt tills den antingen faller ur fångstmängden som begränsar systemet eller iterationsräknaren når sitt maxvärde. Då antas punkten vara en delmängd av fraktalen och markeras normalt med en kontrasterande färg, vanligtvis, men inte nödvändigtvis, svart. I annat fall antas den inte tillhöra den fraktala mängden och markeras som tillhörande fraktalens aura. Det uppnådda värdet på iterationsräknaren används sedan som index när färgen till den aktuella pixeln hämtas från en tabell innehållande en fördefinerad palett. Det som egentligen visas och beräknas är alltså inte fraktalen utan man undersöker vilka punkter som flyr systemet, vilka som inte tillhör fraktalen.
- ¹ I det här fallet men samma slags system brukas även för att visa mandelbrotmängden och andra liknande fraktaler.
Färgskala
Vanligtvis används en färgpalett med ett litet begränsat antal färger, ofta högst 256. Om man har valt att upprepa beräkningen av fraktalen fler gånger än antalet tillgängliga färger så brukar det vanligtvis lösas genom att starta om från början och återanvända samma färger på nytt. Om man genomför ett stort antal upprepningar så kan i stället en funktion användas där nivån för den röda, gröna och blå komponenterna i färgen hämtas från en sinusfunktion där dom olika grundfärgerna har olika frekvens och fas. På så sätt nås en färgskala där alla färger är unika. Funktionen kan sedan varieras med frekvensmodulationer och in eller uttoningar av nivåerna o.s.v. Färgskalan i den övre delbilden har skapats på det sättet och även bilderna på sidorna som beskriver Mandelbrotmängden och Juliamängden har den typen av färgsättning.
Sampling
Vid rendering av datorgrafik som visar en bild av något som har en högere upplösning än bildytan så uppstår ett problem. Bilden som visas är inte analog med funktionen utan vad som visas är en sampling av färgen vid pixlarnas mittpunkter. Man kan säga att det är en trunkering av bilden där den multipliceras med en konstant = storleken på bildytan som sedan ger ett heltal, (det går inte att visa mindre än 1 pixel). Det här gör i sint tur att bilden som visas är digitaliserad och skiftningarna menllan nivåerna är ganska hackiga i kanten eller vid hög komplexitet mer eller mindre slumpmässig.
[[:sv:Bild:Mandelbrot pixel.jpg|thumb|256px||right|Till vänster mandelbrotmängden och till höger ytan som motsvaras av en pixel i den första bilden.]]
Mandelbrotbilden till höger visar hur antagandet att punkten tillhör mängden kan vara fel om man betraktar hela ytan av den pixel som skall visas. Pixlar som ligger i gränslandet mellan fraktalen och auran kommer att mer eller mindre få en slumpvis vald färg på det här viset, liknande problematik uppstår vid ljudsampling där ljudet är rikt på övertoner, tex en tvärflöjt eller en cymbal som går högere än samplingsfrekvensen hos en CD-spelare vilket resulterar i mer eller mindre "färgat" brus.
Inom raytracing|¹ så brukar man lösa problemet med en metod som kallas "super sampling". Då delas pixeln in i ett antal subpixlar, vanliigtvis n² stycken, till exempel 2x2, 3x3 eller 5x5. Subpixlarna beräknas sedan separat och skärmens punkt får sedan en färg som motsvarar medelvärdet av summan från beräkningarna. Det tar bort en del av "grynigheten" i bilden men skapar i gengäld en viss suddighet. Samma resutat uppnås även om man använder samma metod vid beräkning av fraktaler. Nu har fraktaler den fördelen mot bilder som återskapar verkliga miljöer att angränsande punkter nästan alltid har närliggande färger som dessutom beror på närliggande resultat i beräkningarna. Det kan man utnyttja genom att inte använda medelvärdet från subpixlarna utan i stället välja det resutltat som fallit ur fångstmängden vid det minsta antalet upprepningar och förkasta dom övriga vilket resulterar i att punkten troligen får en färg som är närliggande de färger dom angränsande pixlarna har. Det tar bort mycket av suddigheten, redan vid det låga antalet 3x3 subpixlar så upphör grynigheten nästan helt. Nackdelen med metoden är att renderingstiden mångfaldigas (9 ggr vid 3x3).
- ¹ Raytracing, rendering av verklighetstrogen datorgrafik där den resulterande bilden visar dom ljusstrålar som når ögat från den aktuella vyn. Tekniken används till exempel för att skapa datoranimerad film.
Bilden av Juliamängden
Julia set for c = 0.4 + 0.3i. Made with IIM
Juliamängden c = -0.220858, -0.650752
sv:Juliamängden, vid C = [0.386015, 0.140758]. Detaljbild: sv:Bild:Juliamängden (0.386015, 0.140758) 2.jpg
sv:Mandelbrotmängden, (en sv:fraktal).