Fraktaalikuvioiden aitous

Seuraa 
Viestejä8558
Liittynyt16.3.2005

Askarruttaa noitten fraktaalikuvioitten laskennassa se, että laskentaa tekee väistämättä epätarkka tietokone. Miten on kuvioitten syntymisessä estetty epätarkkuuden vaikutus? Ovatko esimerkiksi mandelbrottin syvimmät laaksot "aitoja" vai onko niissä jo mukana numeerisia pyöristyksiä?

Hiirimeluexpertti. Majoneesitehtailija. Luonnontieteet: Maailman suurin uskonto. Avatar on halkaistu tykin kuula

Kommentit (12)

Loptio
Seuraa 
Viestejä1187
Liittynyt12.4.2005
Paul M
Askarruttaa noitten fraktaalikuvioitten laskennassa se, että laskentaa tekee väistämättä epätarkka tietokone. Miten on kuvioitten syntymisessä estetty epätarkkuuden vaikutus? Ovatko esimerkiksi mandelbrottin syvimmät laaksot "aitoja" vai onko niissä jo mukana numeerisia pyöristyksiä?

Tämähän riippuu täydelleen käytettävän ohjelman toiminnasta ja käytettävästä tietokoneesta. Eli vastaukseni kysymykseen oli kattavasti oikein, mutta muutoin luultavasti täysin hyödytön.

H
Seuraa 
Viestejä2622
Liittynyt16.3.2005

Olin 80-luvun alkupuolella kiinnostunut fraktaaleista ja tein pari ohjelmaakin. Kun iteroidaan monta kertaa ja zoomataan hyvin pieneen alueseen niin tarkkuus tulee ongelmaksi. En muista enää miten se meni, mutta luvut piti skaalata alueeseen niin että koko lukualue saatiin käyttöön.

Kosh
Seuraa 
Viestejä21228
Liittynyt16.3.2005

Kyllä käsittääkseni rajallinen tarkkuus jossakin vaiheessa tuottaa ongelmia. Pyöristysvirheet, vaikka kuinka skaalailtaisiin, alkavat jossakin vaiheessa synnyttää "kohinaa" ja vieläpä kumuloituvat, jolloin tarkkuutta katoaa. Riippuu kyllä aika paljon algoritmeista.

Se oli kivaa niin kauan kuin sitä kesti.

H
Seuraa 
Viestejä2622
Liittynyt16.3.2005
Kosh
Kyllä käsittääkseni rajallinen tarkkuus jossakin vaiheessa tuottaa ongelmia. Pyöristysvirheet, vaikka kuinka skaalailtaisiin, alkavat jossakin vaiheessa synnyttää "kohinaa" ja vieläpä kumuloituvat, jolloin tarkkuutta katoaa. Riippuu kyllä aika paljon algoritmeista.

Tottakai. Skaalaamalla vaan pääsee pidemmälle.

Mandelbrot tyyppiset iteratiiviset fraktaalit eivät koskaan voi olla täysin "aitoja". Teoriassa se musta alue kuvaa pisteitä, joiden iteraatio pysyy aina äärellisenä, mutta tietenkin iteraatio joudutaan aina pysäyttämään johonkin.

Vierailija

Hienoimmissa fraktaalinpiirto-ohjelmissa on yleensä valittavana mielivaltaisen tarkat (tietenkin tietokoneen muistin rajoissa) liukuluvut (yleensä "arbitrary precision"). Tämä on tiestysti erittäin hidasta laskentaa, eikä sillä saavuteta juuri hyötyjä muulloin kuin erittäin pieniin mittakaavoihin zoomattaessa.

Vierailija

No tonhan voi piirtää myös käsin, tosin kestäisi "aika" kauan. Siinä voisi käyttää tarkkoja arvoja ja virheitä/kohinaa ei ilmenisi.

Vierailija
teini
No tonhan voi piirtää myös käsin, tosin kestäisi "aika" kauan. Siinä voisi käyttää tarkkoja arvoja ja virheitä/kohinaa ei ilmenisi.

niin tai sitten syöttäis valmiit lasketut arvot tietokonelle ja tarkistais käsin kaikki algoritmit ja muut

Neutroni
Seuraa 
Viestejä23104
Liittynyt16.3.2005
Paul M
Askarruttaa noitten fraktaalikuvioitten laskennassa se, että laskentaa tekee väistämättä epätarkka tietokone. Miten on kuvioitten syntymisessä estetty epätarkkuuden vaikutus? Ovatko esimerkiksi mandelbrottin syvimmät laaksot "aitoja" vai onko niissä jo mukana numeerisia pyöristyksiä?

Kyllä noissa voi tulla pieniä virheitä. Mutta lopputuloksen visuaaliseen ilmeeseen niillä ei ole merkitystä. Jos joku pikseli kahden värin rajalla on vaikkapa 256 värin asteikolla yhden pielessä, ei sitä huomaa. Eikä myöskään sitä, että itse joukon reunalla on yksi joukonvärinen oikeasti joukkoon kuulumaton pikseli äärellisestä iteroinnista huolimatta. Rajallinen laskentatarkkuus tuottaa (ainakin yksinkertaisimmilla algoritmeillä, mutta ei kai muita usein nopeussyistä käytetä) kuviin pikselöitymistä, jonka huomaa hyvin.

Neutroni
Seuraa 
Viestejä23104
Liittynyt16.3.2005
pepe+
Ja eikös niissä värit tule ihan tekijän hatusta. Eli kuvat pitäis kai olla värittömiä. Mutta onhan ne aika komeita.
yst. pn

Fraktaalikuvissa toistetaan jokaisen pikselin kohdalla tiettyä algortimiä kunnes tietty lopetusehto täyttyy. Alueelta saadaan siis kaksiulotteinen matriisi lukuja, jotka kertovat kuinka monta kertaa iteraatio on missäkin pikselissä tehty ennen lopetusehdon täyttymistä. Nämä lukuarvot muutetaan sitten väreiksi, oikealla värivalinnalla saadaan taiteellista vaikutelmaa lisättyä paljon.

Paul M
Seuraa 
Viestejä8558
Liittynyt16.3.2005
Neutroni
[Kyllä noissa voi tulla pieniä virheitä. Mutta lopputuloksen visuaaliseen ilmeeseen niillä ei ole merkitystä. Jos joku pikseli kahden värin rajalla on vaikkapa 256 värin asteikolla yhden pielessä, ei sitä huomaa. Eikä myöskään sitä, että itse joukon reunalla on yksi joukonvärinen oikeasti joukkoon kuulumaton pikseli äärellisestä iteroinnista huolimatta. Rajallinen laskentatarkkuus tuottaa (ainakin yksinkertaisimmilla algoritmeillä, mutta ei kai muita usein nopeussyistä käytetä) kuviin pikselöitymistä, jonka huomaa hyvin.

Minusta virheet ovat kumuloituvia ja lopputulos on jotain muuta kuin absoluuttisen tarkalla kompuutterilla.

Vai onko sittenkään? Todellisessa fysiikassa tapahtumat ovat kvantittuneita. Ylittääkö laskennan tarkkuus kvantittumisen aiheuttaman "epätarkkuuden".

Hiirimeluexpertti. Majoneesitehtailija. Luonnontieteet: Maailman suurin uskonto. Avatar on halkaistu tykin kuula

Neutroni
Seuraa 
Viestejä23104
Liittynyt16.3.2005
Paul M

Minusta virheet ovat kumuloituvia ja lopputulos on jotain muuta kuin absoluuttisen tarkalla kompuutterilla.

Noita virheitä on helppo tutkia. Laskee saman kuvan vaikka 32 bitin kokonaisluvuilla ja 53 bitin (mantissa, mutta ekponnetti ei ole tärkeä tässä) liukuluvuilla. Omien kokeilujeni mukaan ainakin mandelbrotin perusalgoritmi
[code:248rjpsh]
a=x
b=y
a2=a*a
b2=b*b
i=0
while(a2+b2<4.0 && i
b=2*a*b+y
a=a2-b2+x
a2=a*a
b2=b*b
i=i+1
}
[/code:248rjpsh]

toimii virheiden osalta rauhallisesti. Kuvat ovat 16, 32 ja 53 bitin tarkkuuksilla silmämääräisesti samallaisia, kunnes tarpeeksi zoomattaessa 32 bitin luvuilla alkaa tulla siistiä pikselöitymistä. Myös 53 bitin luvuilla pikselöityminen alkaa siististi. Algoritmi käyttäytyy samoin Motorolan 68000-sarjan prosessoreilla konekielellä koodattuna ja pentiumeilla eri C-kääntäjien tekemällä koodilla.

Uusimmat

Suosituimmat