Dynamical Systems seminar is supported by RFBR project 20-01-00420-a and Laboratory Poncelet.

Файл:Herman-ring-1.png

Материал из DSWiki
Перейти к навигацииПерейти к поиску

Исходный файл(4000 × 2000 пкс, размер файла: 512 Кб, MIME-тип: image/png)

Этот файл из на Викискладе и может использоваться в других проектах. Информация с его страницы описания приведена ниже.

Краткое описание

Описание
English: Julia set for rational map with Herman rings.
Русский: Множество Жюлиа для рационального отображения, обладающее кольцами Эрмана
Дата
Источник Собственная работа
Автор Ilya Voyager


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

Я, владелец авторских прав на это произведение, добровольно публикую его на условиях следующих лицензий:
w:ru:Creative Commons
атрибуция распространение на тех же условиях
Этот файл доступен на условиях лицензий Creative Commons Attribution-Share Alike 3.0 Unported, 2.5 Generic, 2.0 Generic и 1.0 Generic.
Вы можете свободно:
  • делиться произведением – копировать, распространять и передавать данное произведение
  • создавать производные – переделывать данное произведение
При соблюдении следующих условий:
  • атрибуция – Вы должны указать авторство, предоставить ссылку на лицензию и указать, внёс ли автор какие-либо изменения. Это можно сделать любым разумным способом, но не создавая впечатление, что лицензиат поддерживает вас или использование вами данного произведения.
  • распространение на тех же условиях – Если вы изменяете, преобразуете или создаёте иное произведение на основе данного, то обязаны использовать лицензию исходного произведения или лицензию, совместимую с исходной.
GNU head Разрешается копировать, распространять и/или изменять этот документ в соответствии с условиями GNU Free Documentation License версии 1.2 или более поздней, опубликованной Фондом свободного программного обеспечения, без неизменяемых разделов, без текстов, помещаемых на первой и последней обложке. Копия лицензии включена в раздел, озаглавленный GNU Free Documentation License.
Вы можете выбрать любую из этих лицензий.

Compare with :

Source code

This is a Julia set of the following rational map:

where t=0.6151732.

We used rather straightforward boundary scanning method (see e.g. D. Saupe, Efficient computation of Julia sets and their fractal dimension, Physica D, v.28 n.3, p.358-370, Oct. 1987 [1]). C++ source code follows. It's available under CC BY-SA, GFDL and GPLv2+.

See also discussion for some notes about compiling and running the program.

#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <iostream>
#include <complex>

inline double max(double a,double b)
{
	return a>b?a:b;
}

using namespace std;

const double t=0.6151732;
const complex<double> rot=exp(2*M_PI*complex<double>(0,1)*t);//e^{2 \pi i t}

complex<double> f(complex<double> z)
{
//    f(z) = e^{2 \pi i t}\cdot \frac{z^2(z - 4)}{1 - 4z}, 
	return rot*(z*z*(z-4.))/(complex<double>(1,0)-4.*z);
}

int main()
{
	//z=x+iy;
	double xmin=-4.0,xmax=8.0,deltax,ymin=-3,ymax=3,deltay;
	int precx=400, precy=200;
	deltax=(xmax-xmin)/precx;
	deltay=(ymax-ymin)/precy;
	int iterations=4000;
	double threshold=iterations/30*sqrt(deltax*deltax+deltay*deltay);
	double x,y;

	complex<double> zlt,zlb,zrt,zrb;
	int i,k,l;
	double maxdistance;
	int color, MaxColor=15;
	double infty=1.E4;
	bool inf_zlt,inf_zlb,inf_zrt,inf_zrb;


	cout << "P2" << endl << precx << " " << precy << endl << MaxColor << endl;
	for(k=0;k<precy;k++)
	{
		y=ymax-k*deltay;
		cerr << y << endl;
		for(l=0;l<precx;l++)
		{
			x=xmin+l*deltax;
			zlt=complex<double>(x-deltax/2,y+deltay/2);
			zlb=complex<double>(x-deltax/2,y-deltay/2);
			zrt=complex<double>(x+deltax/2,y+deltay/2);
			zrb=complex<double>(x+deltax/2,y-deltay/2);
			inf_zlt=false;
			inf_zlb=false;
			inf_zrt=false;
			inf_zrb=false;
			for(i=0;i<iterations;i++)
			{
				if(!inf_zlt){zlt=f(zlt);}
				if(!inf_zlb){zlb=f(zlb);}
				if(!inf_zrt){zrt=f(zrt);}
				if(!inf_zrb){zrb=f(zrb);}
				if(abs(zlt)>infty)
				{
					zlt=infty;
					inf_zlt=true;
				}
				if(abs(zrt)>infty)
				{
					zrt=infty;
					inf_zrt=true;
				}
				if(abs(zlb)>infty)
				{
					zlb=infty;
					inf_zlb=true;
				}
				if(abs(zrb)>infty)
				{
					zrb=infty;
					inf_zrb=true;
				}
			}
			maxdistance=max(abs(zlt-zlb),max(abs(zlt-zrt),max(abs(zlt-zrb),max(abs(zlb-zrt),max(abs(zlb-zrb),abs(zrt-zrb))))));
			if(maxdistance>threshold*8)
			{
				color=0;
			}
			else 
			{
				if(maxdistance<threshold/8.)
				{
					color=MaxColor;
				}
				else
				{
					color=MaxColor-(int(log(maxdistance/threshold)/log(8)*7.)+7);
                                        				}
			}
			//if (x>0 && y>0) color=MaxColor-color;  /* check the orientation of Z-plane by marking first quadrant */

			cout << color << " ";
		}
		cout << endl;
	}
	return 0;
}

Краткие подписи

Добавьте однострочное описание того, что собой представляет этот файл

Элементы, изображённые на этом файле

изображённый объект

524 438 байт

2000 пиксель

4000 пиксель

image/png

История файла

Нажмите на дату/время, чтобы увидеть версию файла от того времени.

Дата/времяМиниатюраРазмерыУчастникПримечание
текущий10:18, 15 июля 2011Миниатюра для версии от 10:18, 15 июля 20114000 × 2000 (512 Кб)wikimediacommons>Soul windsurferreversed Y axis and bigger size

Следующая страница использует этот файл: