Блоґ одного кібера

Історія хвороби контуженого інформаційним вибухом

Множина Мандельброта

with 2 comments

Леонард: Ну, что ж — у Пенни небольшой беспорядок…
Шелдон: Небольшой беспорядок? Формула Мандельброта всего лишь кучка цифр, если это небольшой беспорядок. Это хаос!

Теорія Великого Вибуху

Ох ця множина Мандельброта. Вперше я побачив її десь в десятому класі, коли вчителька інформатики сказала: “Любиш графіку? А не цікавився фрактальною графікою?”. І дала мені чорно-білий спецвипуск газети “Інформатика”.

Я тоді доволі слабенько програмував на Паскалі. І хоча я ніби знав що таке комплексні числа, і де треба написати uses graph;, але в результаті в центрі екрана з’явилась кольорова горизонтальна риска.

Тим не менш, фрактали це така річ, яку раз зустрівши будеш помічати знову та знову. І от, гортаючи вікіпедію, я набрів на пісню про фрактал:

Jonathan Coulton – Mandelbrot Set

Офіційний сайт. Де можна і mp3 дістати.

Pathological monsters! cried the terrified mathematician
Every one of them is a splinter in my eye
I hate the Peano Space and the Koch Curve
I fear the Cantor Ternary Set
And the Sierpinski Gasket makes me want to cry
And a million miles away a butterfly flapped its wings
On a cold November day a man named Benoit Mandelbrot was born

His disdain for pure mathematics and his unique geometrical insights
Left him well equipped to face those demons down
He saw that infinite complexity could be described by simple rules
He used his giant brain to turn the game around
And he looked below the storm and saw a vision in his head
A bulbous pointy form
He picked his pencil up and he wrote his secret down

Take a point called Z in the complex plane
Let Z1 be Z squared plus C
And Z2 is Z1 squared plus C
And Z3 is Z2 squared plus C and so on
If the series of Z’s should always stay
Close to Z and never trend away
That point is in the Mandelbrot Set

Mandelbrot Set you’re a Rorschach Test on fire
You’re a day-glo pterodactyl
You’re a heart-shaped box of springs and wire
You’re one badass fucking fractal
And you’re just in time to save the day
Sweeping all our fears away
You can change the world in a tiny way

Mandelbrot’s in heaven, at least he will be when he’s dead
Right now he’s still alive and teaching math at Yale*
He gave us order out of chaos, he gave us hope where there was none
And his geometry succeeds where others fail
If you ever lose your way, a butterfly will flap its wings
From a million miles away, a little miracle will come to take you home

Послухав її (mp3), і до мене таки дійшло, що намалювати цей фрактал надзвичайно просто.

Для цього, в програму побудови графіка від двох функцій, яку я недавно писав, потрібно додати функцію:

def manfunc(x,y):
	z=0+0j
	c=complex(x,y)
	i=0
	while abs(z)<2:
		z=z*z+c
		i+=1
		if i>10: break
	return i

і коли просять ввести функцію, написати manfunc(x,y).

Правда, хоча в пісні кажуть що треба розглядати границю послідовності, але доведено, що коли z попаде за межі кола з центром в початку координат і радіусом 2, то більше ніколи не повернеться. Тому при малюванні фракталу, колір позначає кількість ітерацій які були потрібні, щоб вийти за межі цього кола.

Ну, і який це пост про графіку, без картинки?

Множина мандельброта

Множина мандельброта

Ну, і в процесі, я виявив що моя програмка для малювання графіків мала баги (виправлена версія буде там же), і намалював інший графік з більшою кількістю ітерацій і іншими межами:

Інша область цього відомого фракталу

Інша область цього відомого фракталу

Хоча, для малювання і вивчення фракталів, є спеціальні програми ( наприклад fraqtive), які малюють кращі картинки (як на початку статті), і ними зручніше керувати. А оце я просто хотів проілюструвати як класно приспів пісні кодиться на Python.

Advertisements

Written by bunyk

Листопад 18, 2009 at 21:33

Оприлюднено в Графіка

Tagged with , , ,

Відповідей: 2

Subscribe to comments with RSS.

  1. В програмці Xaos (apt-get install xaos) можна оцінити всю красу множини Мандельброта.

    ulidtko

    Листопад 22, 2009 at 02:26

  2. If you ever lose your way, a butterfly will flap its wings
    From a million miles away, a little miracle will come to take you home

    класно звучить)

    danbst

    Листопад 25, 2009 at 22:53


Залишити відповідь

Заповніть поля нижче або авторизуйтесь клікнувши по іконці

Лого WordPress.com

Ви коментуєте, використовуючи свій обліковий запис WordPress.com. Log Out / Змінити )

Twitter picture

Ви коментуєте, використовуючи свій обліковий запис Twitter. Log Out / Змінити )

Facebook photo

Ви коментуєте, використовуючи свій обліковий запис Facebook. Log Out / Змінити )

Google+ photo

Ви коментуєте, використовуючи свій обліковий запис Google+. Log Out / Змінити )

З’єднання з %s

%d блогерам подобається це: