Markku Leino
Lounais-Suomen LUMA-keskus
Kuva tietokoneessa on RGB-muodossa, eli jokaisen värin komponentilla on oma voimakkuutensa. Esimerkiksi, jos R=255, G=0 ja B=0, niin pikseli on punainen.
Matt Parkerin, {koom,matemaat}ikko, sivuilla http://think-maths.co.uk/spreadsheet on valmis kilke, joka muuttaa kuvan taulukoksi. Ladattavan tiedoston päätteestä huolimatta myös LO avaa tiedoston ja näyttää sen oikein.
Solujen taustavärit muutetaan sen arvon mukaiseksi. Solut ovat päällekkäin kolmen ryhmissä.
Solujen tekstit voidaan piilottaa muuttamalla muotoilua. Muuta solun muotoiluksi (Type tai Numbers → Format Code) ;;;.
Värittämällä Pascalin kolmiosta parilliset luvut mustiksi ja parittomat valkoisiksi saadaan Sierpinskin kolmio. Eli lasketaan jokaisen solun arvo modulossa 2.
Sierpinksin kolmion pinta-ala on nolla!
Kirjoita soluun
Kopioi ensin solua C4 paljon (esim. 128 solua) oikealle. Sitten kopioi riviä 4 alaspäin riittäävästi (esim. 127 riviä). Muuta vielä solujen leveydeksi 3 yksikköä.
Poistetaan nollat näkyvistä: File → options → Advanced: "Show a zero in cells. . ." Tai LO:ssa Tools → Options → ja sieltä Zero Values.
Joukko on helppo laskea, sillä siinä toistetaan vain laskua $$z_{n+1} \to z_n^2 + c$$ missä \(z_0=c\) ja \( z \) on kompleksitason luku. Käytämme Table-operaatiota, joka laskee aika kätevästi taulukon arvot.
Aluksi kirjoitetaan perustiedot. Kirjoita soluihin
Huomaa, että taulukko (n: 0,1,2,3,...) saadaan vetämällä alanurkan neliöstä.
Sen jälkeen iteroidaan, eli lasketaan paikkaa \(x_n\) ja \(y_n\) useampia kertoja. Yhtälöt ovat $$x_{n+1}=x_n^2 - y_n^2 + x_0 $$ ja $$y_{n+1} = 2x_n \cdot y_n + y_0$$
Kirjoita yhtälöt soluihin C4 ja C5:
Kopioi niitä eteenpäin \(n\):n alle:
Oleellista on tietää millä indeksillä \(n\) iteraatio hajaantuu. Iteraatio suppenee indeksillä \(n\), jos $$x_n^2 + y_n^2 < 2$$
Kirjoita allaolevat yhtälöt soluihin ja kopio C6:n sisältö jokaiselle \(n\):lle
Lopuksi tehdään taulukko ja täytetään se.
Kirjoita ensin \(x\)- ja \(y\)-koordinaatit vaakariville 10 ja pystyriville D. Kaksi riittää molempiin suuntiin; ohjelma osaa jatkaa aritmeettista sarjaa. Kirjoita taulukon vasempaan yläkulmaan (soluun D10) yhtälö, joka ratkaistaan kaikilla taulukon arvoilla. Nyt se on =B8 eli taulukon jokaiseen soluun kirjoitetaan värin numero.
Maalaa äskeinen taulukko ja etsi ylhäältä Data → What-If-Analysis → Data Table tai LO:lla Data → Multiple Operations:
Kirjoita dialogiin, minkä paikalle yhtälössä D10 tulee vaakarivit (B2) ja minkä sijaan pystyrivit (B3). Lisäksi väritetään solut kuten äsken.
Siis Format / Home → Conditional Formatting → Color Scales.
Vielä pitää muuttaa solujen leveys mukavaksi ja zoomata pois.
Voit myös piirtää maalatusta alueesta pinnan Insert → Other Charts → Surface -käskyllä. LO:hon ei ole vielä implementoitu pinnan piirtoa.
Ilmestyvästä kuvasta kannattaa poistaa kaikki ylimääräinen ja kääntää kuvaa kivaan asentoon. Kääntö onnistuu klikkaamalla kuvaa oikealla napilla ja valitsemalla 3D-rotation. Sopivia arvoja on esimerkiksi:
Gaston Julia keksi nimeään kantavan joukon jo vuonna 1918. Se on melkein sama kuin Mandelbrotin, eli $$z_{n+1} = z_n^2 +c$$ mutta parametrin \(c\) saa valita itse. Siis Julian joukkoja on ääretön määrä.
Kannattaa kopioida kaikki muu paitsi taulukko edellisestä työstä ja liittää se uuteen. Tee samanlainen taulukko kuin edellä, mutta nyt sinne annetaan arvot B4 ja B5.
LO:ssa Data → Multiple Operations.
Huomaa, että vastaavasti voit tehdä vaikka Conwayn Game of Lifen.
Kaaosteoria paljasti alkuarvojen merkityksen kappaleen radan määrityksessä. Syntyneet kuvat nimetään yhtälön parametrien mukaan.
Ratkaistava yhtälön \(x\)-koordinaatti on $$x_\textrm{uusi} = ax + by +e $$ ja \(y\)-koordinaatti vastaavasti $$u_\textrm{uusi} = cx + dy +f\textrm{.}$$ Otetaan kaksi kappaletta molempia yhtälöitä. Ensin muunnetaan kirjaimet numeroiksi.
Muunnos on =(CODE(UPPER(C2))-65)/10-1,2. Nyt kaikki kirjaimet ovat välillä \(-1.2 \leq x \leq 1.2\). Miksi?
Lasketaan parametreja kuvaavat todennäköisyydet eli pinta-alat (determinantit). Yhtälö on \(J = | ad - bc|\), eli koodina kirjoitettuna alla olevan kuvan mukainen.
Tee sama molemmille yhtälöille.
Alapuolella lasketaan pinta-alan \(J_0\) suhde kokonaispinta-alaan \(J_0+J_1\).
Sarakkeeseen A kirjoitetaan =RAND() eli pseudosatunnainen luku. B-sarakkeeseen (Yhtalo) lasketaan satunnaislukua hyödyntäen kumpaa parametrisarjaa käytetään. Jos satunnaisluku on pienempi kuin pinta-alan \(J_0\) suhde kokonaisalaan, niin käytä \(0\)-parametrisointia.
Käytä taulukkolaskennan IF-funktiota. Huomaa $-merkit.
Kopioidaan oikeat parametrit ylhäältä. Jokaisen alle kirjoitetaan vastaava IF-lause ja sitä vastaavat parametrit. Jos Yhtalo on nolla, niin käytetään nolla-parametreja.
Lopuksi kirjoitetaan liikeyhtälöt \(x\)- ja \(y\)-suunnille käyttäen vieressä olevia oikeita parametreja. Ensimmäinen rivi (vaakarivilla 10) on alkuarvo joka on tässä nolla.
Koska ensimmäisellä rivillä (rivi 10) on alkuarvot, älä kopioi sitä. Siis ensin pitää kopioida muut sarakkeet riville 11 ja sitten kopioida riviä 11 alaspäin n. 1500 riviä.
Piirrä \(xy\)-kuvio, se on siinä.
Kokeile muita parametrisointeja. Esimerkiksi parametreillä
Vielä lisää parametrisointeja.
Lisäksi, Piirrä Lorenz-attraktori.
Lisää mielenkiintoisia juttua
ainakin kaikille satakuntalaisille ja varsinais-suomalaisille kouluille sekä muille netin käyttäjille.
Ota yhteyttä Markku.LeinoⒶutu.fi
Tai ilmoittaudu sähköpostilistalle
Tarjoaa Lounais-Suomen LUMA-keskus.
Kaikki materiaali on netistä lainattu.