Fractal : Mandelbrot Set di Sage

Untuk membuat pendekatan terhadap perbatasan atau boundary dari Mandelbrot Set di Sage, dalam percobaan ini digunakan type data ring CDF (Complex Double Field) yang presisinya digandakan di setiap level, dan ring polynomialnya di-return melalui fungsi polygen(). Fungsi polygen() akan menggenerate polynomial di sekitar bilangan kompleks dengan menggunakan floating point numbers, misalnya b.

Apabila ditanya type(CDF), objek ini bertype :

sage.rings.complex_double.ComplexDoubleField_class.

Hal lain mengenai CDF ini ialah hasil kalkulasi terhadap pendekatan CDF ini bisa berbeda tergantung dari rounding error-nya dan juga tergantung dari true field dari bilangan kompleks dimana kalkulasi tersebut dilakukan. Jadi dengan demikian polynomialnya indeterminate.

Mendefiniskan level pendekatan plotting :

def mandelbrot(m):
… b = polygen(CDF, ‘b’)
… z = 0
… for i in range(m):
… … z = z*z + b
… def f(x, y):
… … val = z(CDF(x, y))
… … return val.norm() – 4
… return f

(… dihapus saja).

Di Python, blok-blok kode tidak ditandai dengan tanda khusus, atau dengan begin dan end seperti di bahasa lainnya, melainkan ditandai dengan indentation. Jadi harus hati-hati dalam membuat indentation ini, karena kalau kurang menjorok atau lebih sedikit saja akibatnya syntax error. Misalnya dalam meletakan statemen return seperti di atas.

Selanjutnya untuk menampilkan hasil plotting pada field data tertentu yang kita inginkan digunakan fungsi implicit_plot(). Berbeda dengan fungsi plot() atau contour_plot(), implicit_plot() hanya mendisplay hasil pada kisaran nilai xrange dan yrange yang kita tentukan saja, tidak semuanya. Jadi implicit_plot() lebih tepat digunakan dalam kasus ini.

Untuk menampilkan hasil pendekatan di level pertama ketikan baris berikut :

implicit_plot(mandelbrot(1), (-2.5, 2.5), (-2.5, 2.5)).show(aspect_ratio=1)

Lalu tekan Shift+Enter untuk mengevaluasinya. Hasilnya hanya sebuah cincin (ring) seperti di bawah ini :

Untuk menampilkan hasil pendekatan di level kelima, ketikan baris berikut :

implicit_plot(mandelbrot(5), (-2, 1), (-1.5, 1.5)).show(aspect_ratio=1)

Hasilnya tampak seperti gambar di bawah :

Yang paling bagus dari semua pekerjaan ini adalah hasil di level ketujuh :

implicit_plot(mandelbrot(7), (-1.5, 1.5), (-1.5, 1.5), plot_points=200, fill=True).show(aspect_ratio=1)

Yang hasilnya :

Kalau dibandingkan dengan image Mandelbrot Set dengan menggunakan Ultra Fractal (trial version), hasil pendekatan di level ketujuh ini yang paling mendekati.

[SAGE], SAGE Mathematical Software, Version 3.2.3, http://www.sagemath.org/

Advertisements

Fractal : Mandelbrot Set di Ultra Fractal

Saya coba Ultra Fractal versi 5.02, yang trial version. Tertarik mencoba penggunaan software ini karena image fraktalnya bagus-bagus (saya pernah lihat hasil imaging yang asli, yang trial version di image filenya sengaja dikasih banyak kendala/cacat dari pabriknya). Selain itu setelah saya coba penggunaan software ini sederhana dan mudah, lebih terasa seperti menggunakan software photo editing ketimbang software matematik atau image processing. Namun dengan banyaknya formula fractal dan juga opsi parameter yang disuguhkan software ini bisa memberikan pengalaman imaging yang cukup lumayan. Tidak terlalu membutuhkan keahlian matematik atau programming khusus untuk bisa menghasilkan image fractal yang sangat berkualitas, artistik, dan dengan ekspresi digital yang sangat mengesankan. Dari hasil search saya temukan website Sven Geier, misalnya, ia memberikan beberapa galeri fractal images yang very beautiful yang digenerate melalui software ini.

Ini bukan promosi lho. Gak ada untungnya buat saya. Ini hanya studi percontohan saja, dan studi banding. Dan supaya kalau ada yang mau beli tidak menyesal di kemudian. Syukur-syukur kalau ada yang mau membelikan software ini buat saya :), maka saya akan senang bisa mendapatkannya.

Untuk bisa mendapatkan Ultra Fractal 5.02 trial version, klik di sini. Terdapat 2 pilihan, yaitu standard edition dan animation edition. Untuk percobaan kali ini saya coba yang standar edition.

Pada saat pertama kali Ultra Fractal dijalankan, default fractal image yang ditampilkan adalah Mandelbrot Set. Sebenarnya kalau di buka file > New > Fractal dan diklik dua kali pada bagian Standard.ufm terdapat beberapa pilihan formula fractal yang dihidangkan. Untuk percobaan kali ini saya pilih defaultnya, yaitu Mandelbrot Set.

Di bagian kanan screen terdapat Tool Windows yang berisi Layer Properties di bagian atas, Fractal Properties di bagian tengah, dan Fractal Mode di bagian paling bawah. Untuk mengubah parameter formula, klik pada pada tab Formula di bagian Layer Properties. Opsi yang ada, yang saya pilih, ialah Drawing Method=Multi-Pass Linear, Periodicity Checking=Normal, Additional Precision=0, dan Maximum Iterations=100, dst. Parameter khusus untuk formula ini saya pilih Starting point Re=0 dan Im=0, Power Re=2 dan Im=0, serta Bailout Value=128. Sebenarnya ini adalah opsi-opsi basic karena masih banyak lagi opsi-opsi lain.

Langkah inti selanjutnya adalah meng-apply coloring algorithm, klik Outside di bagian layer Properties, dan pilih jenis Transfer Function yang diinginkan. Dalam kasus ini saya coba dengan Log. Dst.

Setelah selesai ber-experimen, langkah selanjutnya adalah File > Save Parameters (text-only Parameter File) atau pun Export ke bentuk file lainnya. Hasilnya untuk percobaan kali ini adalah :

Tulisan ‘evaluation copy’ pada image di atas menandakan bahwa software ini adalah trial version.