{"id":930477,"date":"2019-02-17T20:59:07","date_gmt":"2019-02-17T19:59:07","guid":{"rendered":"https:\/\/sindik.at\/?p=930477"},"modified":"2019-02-17T21:49:44","modified_gmt":"2019-02-17T20:49:44","slug":"mandelbrotova-mnozina-e7-87","status":"publish","type":"post","link":"https:\/\/sindik.at\/?p=930477","title":{"rendered":"Mandelbrotova mno\u017eina (E7\/87)"},"content":{"rendered":"\n<p>Op\u00e4\u0165 tu m\u00e1me nede\u013en\u00fd retro \u010dl\u00e1nok s ob\u013e\u00faben\u00fdm matematick\u00fdm orie\u0161kom.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\" style=\"text-align:center\"><strong>Mandelbrotova mno\u017eina, alebo, ako zamestna\u0165 osobn\u00fd mikropo\u010d\u00edta\u010d<\/strong><\/h3>\n\n\n\n<p style=\"text-align:left\"><strong>Ke\u010f sa matematik Gaston Julia (1893\u20131978) zaoberal probl\u00e9mami zostrojovania frakt\u00e1lnych (zlomkov\u00fdch) kriviek, iste netu\u0161il ich ve\u013ek\u00fa bud\u00facnos\u0165. V\u00fdsledky jeho pr\u00e1ce sa pou\u017e\u00edvaj\u00fa v po\u010d\u00edta\u010dovej grafike pri vytv\u00e1ran\u00ed vierohodn\u00fdch obr\u00e1zkov horsk\u00fdch chrbtov \u010di morsk\u00fdch pobre\u017e\u00ed. Jeho nasledovn\u00edk bol v\u00fdskumn\u00edk firmy IBM \u2013 Benoit Mandelbrot. Na\u0161iel v rovine komplexn\u00fdch \u010d\u00edsel zauj\u00edmav\u00fa mno\u017einu. Dnes nesie jeho meno &#8211; Mandelbrotova mno\u017eina.<br><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"554\" src=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img1.jpg\" alt=\"\" class=\"wp-image-930478\" srcset=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img1.jpg 800w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img1-300x208.jpg 300w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img1-768x532.jpg 768w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img1-433x300.jpg 433w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>Povedzme si o nej nie\u010do viac. Ka\u017ed\u00e9 komplexn\u00e9 \u010d\u00edslo z mo\u017eno zobrazi\u0165 ako bod komplexnej roviny. S\u00faradnica bodu na osi x je ur\u010den\u00e1 re\u00e1lnou \u010das\u0165ou a s\u00faradnica na osi y imagin\u00e1rnou \u010das\u0165ou komplexn\u00e9ho \u010d\u00edsla. Po\u010d\u00edtajme hodnotu v\u00fdrazu zn = z(n-1)^2 &nbsp;+ u[mi]. Zn je premenn\u00e1 s po\u010diato\u010dnou hodnotou z0 = u[mi] a u[mi] je komplexn\u00e1 kon\u0161tanta. Nech napr\u00edklad z0 = u[mi] = 1 + 2i. Prv\u00e9 tri kroky v\u00fdpo\u010dtu daj\u00fa v\u00fdsledky: <br>z1=-2 +6i <br>z2 =-31 &#8211; 22i<br>z3=-374 + 684i<br>Pozrime sa na absol\u00fatnu hodnotu v\u00fdsledkov Zn. Mus\u00edme s\u010d\u00edta\u0165 \u0161tvorce ich re\u00e1lnej a imagin\u00e1rnej \u010dasti a celkov\u00fd s\u00fa\u010det odmocni\u0165. Absolutne hodnoty s\u00fa 6,325; 38,013; 1 445,33. Vid\u00edme, \u017ee r\u00fdchlo rast\u00fa. \u010c\u00edsla u[mi] s takouto vlastnos\u0165ou nie s\u00fa pre n\u00e1s zauj\u00edmav\u00e9. <\/p>\n\n\n\n<p>Mandelbrotova mno\u017eina je mno\u017eina tak\u00fdch komplexn\u00fdch \u010d\u00edsel u[mi], pre ktor\u00e9 ve\u013ekos\u0165 |zn| ost\u00e1va kone\u010dn\u00e1 aj po l&#8217;ubovolnom po\u010dte krokov n\u00e1\u0161ho v\u00fdpo\u010dtu. V te\u00f3rii sa hovor\u00ed, \u017ee na\u0161e komplexn\u00e9 \u010d\u00edslo |zn| utek\u00e1 do nekone\u010dna pr\u00e1ve vtedy, ak po istom po\u010dte krokov dosiahne jeho absol\u00fatna hodnota ve\u013ekos\u0165 2 a viac. Pri v\u00fdpo\u010dtoch sa ukazuje, \u017ee dostato\u010dne ve\u013ea utekaj\u00facich bodov dosiahne hodnotu 2 u\u017e po nieko\u013ek\u00fdch krokoch. Pri vo\u013ebe rozumn\u00e9ho po\u010dtu krokov k, v\u0161etky body u na komplexnej rovine, pre ktor\u00e9 plat\u00ed |zk| &lt; 2, patria do Mandelbrotovej mno\u017einy. Obvykle sa ud\u00e1vaj\u00fa potrebn\u00e9 po\u010dty krokov k r\u00e1dovo v stovk\u00e1ch.<\/p>\n\n\n\n<p>Pop\u00ed\u0161me si postup, ktor\u00fd n\u00e1m umo\u017en\u00ed vidie\u0165 Mandelbrotovu mno\u017einu a jej okolie na farebnom monitore mikropo\u010d\u00edta\u010da. Najprv si vyberieme \u0161tvorcov\u00fa alebo obdl\u017enikov\u00fa oblas\u0165 komplexnej roviny, ktor\u00fa chceme zvidite\u013eni\u0165. Ur\u010d\u00edme jej s\u00faradnice na re\u00e1lnej osi XD, XH a na imagin\u00e1rnej osi YD, YH. Rozmery matice \u0161achovnicovo rozmiestnen\u00fdch obrazov\u00fdch bodov (\u010falej ich budeme naz\u00fdva\u0165 pixelmi) mus\u00edme prisp\u00f4sobi\u0165 mo\u017enostiam n\u00e1\u0161ho mikropo\u010d\u00edta\u010da. Sna\u017e\u00edme sa plne vyu\u017ei\u0165 kapacitu obrazovej pam\u00e4ti. Rozmery str\u00e1n ka\u017ed\u00e9ho pixelu DX, DY vypo\u010d\u00edtame tak, \u017ee dl\u017eku x-ovej (y-ovej) s\u00faradnice str\u00e1n oblasti podel\u00edme po\u010dtom stlpcov (riadkov) obrazu. Zvolen\u00fd po\u010det krokov pre z\u00edskanie Mandelbrotovej mno\u017einy ozna\u010d\u00edme KH.<br>Teraz nasleduje jadro postupu, ktor\u00fd je uveden\u00fd pre pixel v M-tom riadku a N-tom st\u013apci. Algoritmus m\u00e1 \u0161tyri \u010dasti. Treba ho opakova\u0165 pre ka\u017ed\u00fd pixel. <\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Vypo\u010d\u00edtame re\u00e1lnu \u010dast \u010d\u00edsla zodpovedaj\u00facu dan\u00e9mu pixelu ako N-DX + XD a jeho imagin\u00e1rnu \u010das\u0165 ako M-DY+YD. <\/li><li>Vlo\u017e\u00edme po\u010diato\u010dn\u00e9 hodnoty premennej z a premennej uchov\u00e1vaj\u00facej po\u010det vykonan\u00fdch opakovan\u00ed k na: zo = u[mi] a k0 = 0<\/li><li>Pokia\u013e k nedosiahne hodnotu v\u00e4\u010d\u0161iu alebo rovn\u00fa KH, alebo nez\u00e1visle na tom |z| nie je v\u00e4\u010d\u0161ia alebo rovn\u00e1 2, vykon\u00e1me nasleduj\u00face oper\u00e1cie: z &lt;- z^2 + u[mi]; k &lt;- k+1 <\/li><li> Ur\u010dime farbu pixelu v M-tom riadku a N-tom stlpci podla hodnoty, ktor\u00fa dosiahla premenn\u00e1 k v tretej \u010dasti algoritmu.<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"522\" src=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img2.jpg\" alt=\"\" class=\"wp-image-930479\" srcset=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img2.jpg 800w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img2-300x196.jpg 300w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img2-768x501.jpg 768w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img2-460x300.jpg 460w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>Ak sa k = kH, nech je pixel \u010dierny. Tieto pixely tvoria samotn\u00fa Mandelbrotovu &#8211; mno\u017einu. V ostatn\u00fdch pr\u00edpadoch je mo\u017en\u00e9 pixel vysvieti\u0165 farbou pod\u013ea na\u0161ich estetick\u00fdch z\u00e1merov a pod\u013ea po\u010dtu farieb, ktor\u00fdm disponujeme. M\u00f4\u017eeme zvoli\u0165 napr\u00edklad tak\u00fd postup, aby sa ka\u017ed\u00e1 farba vyskytovala v obr\u00e1zku iba raz, alebo naopak, aby ka\u017ed\u00e1 zmena k o jednotku zmenila farbu pixelov. Okolie \u010diernej Mandelbrotovej mno\u017einy bude h\u00fdri\u0165 farbami. Ak s\u00fa na\u0161e zobrazovacie mo\u017enosti iba \u010diernobiele, pri k rovnom kH pixel nech je \u010dierny, v ostatn\u00fdch pr\u00edpadoch nech je biely.<br><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"621\" src=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img3.jpg\" alt=\"\" class=\"wp-image-930480\" srcset=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img3.jpg 800w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img3-300x233.jpg 300w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img3-768x596.jpg 768w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img3-386x300.jpg 386w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>Pri podrobnej\u0161om poh\u013eade na z\u00edskan\u00e9 obr\u00e1zky vid\u00edme, \u017ee matersk\u00e1 mno\u017eina m\u00e1 na krajoch prilepen\u00e9 mno\u017estvo men\u0161\u00edch v\u00fd\u010dnelkov pripom\u00ednaj\u00facich bradavice. V\u0161etky \u010dierne oblasti s\u00fa spojen\u00e9 aspo\u0148 tenk\u00fdmi prielivmi. Mo\u017eno toti\u017e dok\u00e1za\u0165, \u017ee Mendelbrotova mno\u017eina je spojit\u00e1.<\/p>\n\n\n\n<p>Samotn\u00fd program je jednoduch\u00fd, ale vzh\u013eadom na obrovsk\u00fd po\u010det pixelov a ve\u013ek\u00fd po\u010det opakovan\u00ed trvaj\u00fa v\u00fdpo\u010dty pomerne dlho. Na mikropo\u010d\u00edta\u010di PP01 trv\u00e1 v\u00fdpo\u010det obr\u00e1zku rozmerov 256 X 256 pixelov, hodnote kH=100 a programe v BASICU viac ako 12 hod\u00edn. Mo\u017eno s\u00edce zn\u00ed\u017ei\u0165 po\u010det pixelov i opakovan\u00ed, ale zaplat\u00edme za to zn\u00ed\u017eenou jemnos\u0165ou obr\u00e1zku. Pri dlhom \u010dakan\u00ed na v\u00fdsledok l&#8217;ahko pochop\u00edme, pre\u010do je Mandelbrotova mno\u017eina ob\u013e\u00faben\u00fdm testom r\u00fdchlosti pre paralelne pracuj\u00face po\u010d\u00edta\u010de. Napriklad OMS T 414 zvl\u00e1dne obr\u00e1zok 512 X 512 pixelov pri 256 krokoch r\u00e1dovo za desatiny sekundy&#8230;<br>T\u00fdm, ktor\u00ed bud\u00fa ma\u0165 \u0161\u0165astn\u00fa ruku pri v\u00fdbere zvidite\u013e\u0148ovanej oblasti komplexnej roviny, sa mikropo\u010d\u00edta\u010d odv\u010fa\u010d\u00ed za trpezlivos\u0165 neoby\u010dajn\u00fdmi pestrofarebn\u00fdmi poh\u013eadmi na jeden z najzlo\u017eitej\u0161\u00edch matematick\u00fdch objektov s\u00fa\u010dasnosti. Obr\u00e1zok v \u017eiadnej svojej oblasti pritom neposkytuje opakuj\u00faci sa poh\u013ead. Pr\u00edklady poh\u013eadov na r\u00f4zne \u010dasti Mandelbrotovej mno\u017einy m\u00f4\u017eete vidie\u0165 na obr\u00e1zkoch.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"499\" src=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img4.jpg\" alt=\"\" class=\"wp-image-930481\" srcset=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img4.jpg 800w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img4-300x187.jpg 300w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img4-768x479.jpg 768w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_img4-481x300.jpg 481w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>Ing. IVAN H\u00c1BOV\u010c\u00cdK<\/p>\n\n\n\n<p>Elektr\u00f3n 7 \/ 1987, strana 44 a 45<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><br><strong>5 PAPER 7: CLEAR: INK 1<br>10 REM **** MANDELBROTOVA MNOZINA ****<br>15 REM *** ODPORUCANE HODNOTY: XU=-2,XO=0.5,YU=-1.25,YO=1.25 <br>17 REM ** KX=50,S=4,PX=255 <br>20 PRINT \"VSTUP PARAMETROV\"<br>30 PRINT \"VSTUP ROZMEROV ZVIDITELNOVANEJ OBLASTI\"<br>40 PRINT \"X-DOLNE=\": INPUT XU <br>50 PRINT \"X-HORNE=\": INPUT XO<br>60 PRINT \"Y-DOLNE=\": INPUT YL<br>70 PRINT \"Y-HORNE=\": INPUT YO <br>80 PRINT \"ZADAJ POCET CYKLOV\": INPUT KX<br>90 PRINT \"ZADAJ HRANICNU SUMU\": INPUT S<br>100 PRINT \"ZADAJ POCET PIXELOV STRAN OBRAZKU\": INPUT PX<br>110 SCALE 0,PX,0,PX: PAPER 0: CLEAR<br>120 DX=(XO-XU)\/PX<br>130 DY=(YO-YU)\/PX<br>140 FOR M=0 TO PX<br>150 FOR N=0 TO PX<br>160 XC=XU+N*DX: YC=YU+M*DY<br>170 K=0: XZ=0: YZ=0<br>180 K=K+1<br>190 XX=XZ*XZ: YY=YZ*YZ <br>200 YZ=2*XZ*YZ+YC<br>210 XZ=XX-YY+XC<br>220 IF K=KX+1 THEN 270<br>230 IF XX+YY&lt;S THEN 180<br>240 L=K-TRUNC(K\/C)*C+1: F=TRUNC(L\/A): INK F<br>250 MOVE N,M<br>260 PLOT N,M<br>270 NEXT N<br>280 NEXT M<br>290 BEEP 200,200<br>300 GOTO 300<\/strong><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p><em>Jedna pozn\u00e1mka pod \u010diarou k uverejnen\u00e9mu programu: Riadok 240 vyzer\u00e1 ako z &#8222;in\u00e9ho sveta&#8220;. Premenn\u00e9 C a A nie s\u00fa pred pou\u017eit\u00edm definovan\u00e9, rovnako ani F, tak\u017ee samozrejme to nem\u00f4\u017ee fungova\u0165. Ak m\u00e1te predstavu ako to m\u00e1 spr\u00e1vne vyzera\u0165 pode\u013ete sa  o \u0148u, pros\u00edm, v koment\u00e1ri. V\u010faka.<\/em><\/p>\n\n\n\n<p><em>\/ikon<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"705\" height=\"1024\" src=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_1_crp-705x1024.jpg\" alt=\"\" class=\"wp-image-930482\" srcset=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_1_crp-705x1024.jpg 705w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_1_crp-206x300.jpg 206w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_1_crp-768x1116.jpg 768w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_1_crp.jpg 1932w\" sizes=\"auto, (max-width: 705px) 100vw, 705px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"684\" height=\"1024\" src=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_2_crp-684x1024.jpg\" alt=\"\" class=\"wp-image-930483\" srcset=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_2_crp-684x1024.jpg 684w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_2_crp-201x300.jpg 201w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_2_crp-768x1149.jpg 768w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/02\/Mandel_E7_87_2_crp.jpg 1917w\" sizes=\"auto, (max-width: 684px) 100vw, 684px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Op\u00e4\u0165 tu m\u00e1me nede\u013en\u00fd retro \u010dl\u00e1nok s ob\u013e\u00faben\u00fdm matematick\u00fdm orie\u0161kom.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[6],"tags":[],"class_list":["post-930477","post","type-post","status-publish","format-standard","hentry","category-tema-3-software-php"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5aqy8-3U3H","jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts\/930477","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=930477"}],"version-history":[{"count":5,"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts\/930477\/revisions"}],"predecessor-version":[{"id":930489,"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts\/930477\/revisions\/930489"}],"wp:attachment":[{"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=930477"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=930477"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=930477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}