Файл:Разбиение динамической плоскости квадратичного полинома для 9 56.svg

Исходный файл (Файл SVG, номинально 1000 × 1000 пикселей, размер файла: 1,4 МБ)

Краткое содержание

ОписаниеРазбиение динамической плоскости квадратичного полинома для 9 56.svg
Русский: Разбиение динамической плоскости критически предпериодического квадратичного полинома для внешнего луча t = 9/56, приземляющегося на критическом значении [1] z = c = -0,101096363845622 +0,956286510809142*i. Также: ф 9 / 56 = ф 11 / 56 = ф 15 / 56 {\displaystyle f_{9/56}=f_{11/56}=f_{15/56}}
Дата
ИсточникСобственная работа
АвторАдам Маевский
Другие версии
SVG-разработка
Инфополе
 
Код SVG действителен .
 
Эта диаграмма была создана с помощью Gnuplot.
 
 В этом графике используется встроенный текст, который можно легко перевести с помощью текстового редактора.

Лицензирование

Я, владелец авторских прав на данную работу, настоящим публикую ее на условиях следующей лицензии:
w:ru:Creative Commons
атрибуция доля одинаково
Этот файл лицензирован в соответствии с лицензией Creative Commons Attribution-Share Alike 4.0 International.
Вы свободны:
  • делиться – копировать, распространять и передавать работу
  • ремиксовать – адаптировать произведение
При следующих условиях:
  • атрибуция – Вы должны указать соответствующее авторство, предоставить ссылку на лицензию и указать, были ли внесены изменения. Вы можете сделать это любым разумным способом, но не таким образом, который подразумевает, что лицензиар одобряет вас или ваше использование.
  • распространяйте на равных условиях – если вы делаете ремиксы, преобразуете или дополняете материал, вы должны распространять свои вклады по той же или совместимой лицензии, что и оригинал.
https://creativecommons.org/licenses/by-sa/4.0CC BY-SA 4.0Creative Commons Attribution-Share Alike 4.0истинныйистинный


Максима CAS исходный код

/* пакетный файл для Maxima CASмаксимумыпакет("r.mac")-------------Угол 9/56 или 001p010имеет предпериод = 3 и период = 3.Соответствующий параметр луча приземляетсяв точке Мисюревича препериода 3 ипериод деления 3.Вы хотите нарисовать луч и сместить c?до точки приземления?-------------------Пример. Один из восьми корней уравнения p~(O) = -p:(O) приблизительно равен -0,10 1 096 + 0,956287 i , с множеством Жюлиа, показанным на рисунке 1.6. Один изЛучи, приземляющиеся на критическое значение, имеют угол 9/56. Но легко проверить, что9/56, 11/56 и 15/56 все имеют последовательность замешивания RRPR относительно9/56, т.е. если круг разрезать на две половины 9/112 и 65/112 от 9/56 иR — символ половины, содержащей 9/56. Таким образом, три луча с этимиуглы достигают критического значения. */начало:прошедшее_время_выполнения ();убить(всех);остаточное значение(все); /* -------------------------- определения функций ------------------------------*/ f(z,c):=z*z+c; /* Комплексное квадратичное отображение */ finverseplus(z,c):=sqrt(zc)$ finverseminus(z,c):=-sqrt(zc)$/* */fn(p, z, c) := если р=0 то z иначеесли p=1 тогда f(z,c) иначе f(fn(p-1, z, c),c)$/*Стандартный многочлен F_p \, корнями которого являются периодические z-точки периода p и его делители */F(p, z, c) := fn(p, z, c) - z $/* Функция для вычисления редуцированного многочлена G_p\, корни которого являются периодическими z-точками периода p без его делителей*/Г[п,з,с]:=блокировать([f:делители(p),t:1], /* t — временная переменная = произведение Gn для (делителей p), отличных от p */f:delete(p,f), /* удалить p из списка делителей */если р=1затем вернуть (F(p,z,c)),для i в f делать т:т*Г[я,з,с],г: F(p,z,c)/t,возврат(ratsimp(g)))$ДатьКорни(г):= блокировать( [cc], cc:bfallroots(расширить(%i*g)=0), cc:map(rhs,cc),/* удалить строку "c=" */ cc:map('float,cc), возврат(cc) )$/* endcons комплексная точка для вывода в формате для пакета draw */endconsD(точка,список):=endcons([реальнаячасть(точка),образнаячасть(точка)],список)$consD(точка,список):=cons([действительнаячасть(точка),образнаячасть(точка)],список)$GiveForwardOrbit(z0,c,iMax):= /* вычисляет (без теста на выход) прямая орбита точки z0 и сохраняет его в списке для пакета draw */блокировать( [z,орбита,темп], z:z0, /* первая точка = критическая точка z:0+0*%i */ орбита:[[действительнаячасть(z),образнаячасть(z)]], для i:1 через iMax шаг 1 сделать ( z:расширить(f(z,c)), орбита:endcons([действительнаячасть(z),образнаячасть(z)],орбита)),  возвращение(орбита))$ /* Дает точки обратной орбиты z=repeller */ GiveBackwardOrbit(c,repeller,zxMin,zxMax,zyMin,zyMax,iXmax,iYmax):= блокировать( hit_limit:10, /* пропорционально количеству деталей и времени рисования */ Ширина пикселя: (zxMax-zxMin)/iXmax, PixelHeight:(zyMax-zyMin)/iYmax, /* Двумерный массив пикселей попаданий. Попадание > 0 означает, что точка была на орбите */ array(Hits,fixnum,iXmax,iYmax), /* для начала нет хитов */ /* выберите отпугиватель z=repeller в качестве отправной точки */ стек:[repeller], /*сохранить репеллер в стеке */ /* сохранить первую точку в списке пикселей */ x_y:[отпугиватель], /* обратная итерация репеллера */ петля, /* pop = взять одно очко из стека */ z:last(стек), стек:удалить(z,стек), /*обратная итерация - первый прообраз (корень) */ z:finverseplus(z,c), /* перевод из мировых координат в экранные */ iX:fix((realpart(z)-zxMin)/PixelWidth), iY:fix((imagpart(z)-zyMin)/PixelHeight), хит:Попадания[iX,iY], если хит<hit_limit  затем ( Попаданий[iX,iY]:попаданий+1, stack:endcons(z,stack), /* push = добавить z в конец списка стека */ если hit=0 тогда x_y:endcons( z,x_y) ), /*обратная итерация - второй прообраз (корень) */ з:-з, /* перевод из мировых координат в экранные, преобразование в целые числа */ iX:fix((realpart(z)-zxMin)/PixelWidth), iY:fix((imagpart(z)-zyMin)/PixelHeight), хит:Попадания[iX,iY], если хит<hit_limit  затем ( Попаданий[iX,iY]:попаданий+1, stack:endcons(z,stack), /* push = добавить z в конец списка стека для продолжения итерации */ если hit=0 тогда x_y:endcons( z,x_y) ), если есть(не пустой(стек)) тогда иди(цикл), return(x_y) /* список пикселей в форме [z1,z2] */ )$   /*-----------------------------------*/ Psi_n(r,t,z_last, Max_R):= /* */ блокировать( [iМакс:200, iМакс2:0], /* ----- прямая итерация 2 точек: z_last и w --------------*/ array(forward,iMax-1), /* прямая орбита z_last для сравнения */ вперед[0]:z_last, я:0, в то время как cabs(forward[i])<Max_R и i< ( iMax-2) делают (  /* прямая итерация z в плоскости fc и сохранение ее в прямом массиве */ вперед[i+1]:вперед[i]*вперед[i] + c, /* z*z+c */ /* прямая итерация w в плоскости f0: w(n+1):=wn^2 */ r:r*2, /* квадратный радиус = R^2=2^(2*r), потому что R=2^r */ т:мод(2*т,1), /* */ iМакс2:iМакс2+1, я:я+1 ), /* вычислить последнюю точку w; она равна точке z */ Р:2^р, /* w:R*exp(2*%pi*%i*t), z:w, */ массив(обратный,iMax-1), backward[iMax2]:rectform(ev(R*exp(2*%pi*%i*t))), /* использовать последний w как отправную точку для обратной итерации к новому z */ /* ----- обратная точка итерации z=w в плоскости fc --------------*/ для i:iMax2 шаг -1 через 1 сделать ( temp:float(rectform(sqrt(backward[i]-c))), /* sqrt(zc) */ скалярное_произведение:действительнаячасть(temp)*действительнаячасть(forward[i-1])+образнаячасть(temp)*образнаячасть(forward[i-1]), если (0>scalar_product) then temp:-temp, /* выбрать прообраз */ назад[i-1]:temp ), возврат(назад[0]) )$   GiveRay(t,c):= блокировать( [р], /* диапазон для рисования R=2^r ; при стремлении r к 0 R стремится к 1 */ rMin:1E-10, /* 1E-4; rMin > 0 ; если rMin=0, то программа имеет бесконечный цикл !!!!! */ рМакс:2, caution:0.9330329915368074, /* r:r*caution ; это дает меньшее r */ /* верхний предел для итерации */ R_макс:300, /* */ zz:[], /* массив для z точек луча в плоскости fc */ /* некоторые w-точки внешнего луча в плоскости f0 */ р:рМакс, while 2^r<R_max do r:2*r, /* найти точку w на луче вблизи бесконечности (R>=R_max) в плоскости f0 */ Р:2^р, w:rectform(ev(R*exp(2*%pi*%i*t))), z:w, /* около бесконечности z=w */ zz:конс(z,zz), если r<rMin не делать ( /* новый меньший R */ r:r*осторожно,  Р:2^р, /* */ w:rectform(ev(R*exp(2*%pi*%i*t))), /* */ последний_з:з, z:Psi_n(r,t,last_z,R_max), /* z=Psi_n(w) */ zz:конс(z,zz) ), возврат(zz) )$ /*преобразует комплексное число z = x*y*%iв список в формате жеребьевки: [х,у]*/d(z):=[float(realpart(z)), float(imagpart(z))]$ToPoints(myList):= точки(map(d,myList))$/* дать список рисования из одной точки*/ToPoint(z):=точки([d(z)])$компилировать(все)$ /* ----------------------- основной ----------------------------------------------------*/  /* внешний угол в поворотах */ /* разрешение пропорционально количеству деталей и времени прорисовки */ iX_макс:1000$ iY_макс:1000$ /* определение z-плоскости (динамической) */ ZxMin:-2.0$