Легко видеть, что комплексная плоскость будет содержать
области притяжения точек и
относительно функции
Область притяжения точки
состоит из точек с положительной ординатой
-
, а точки
- с
отрицательной ординатой. Точки
, для которых
, будут составлять границу для каждой их
этих областей.
В общем случае уравнение решается
с помощью итерации преобразования комплексной плоскости
,
где
производная в точке
Если
-
полином степени
, то комплексная плоскость будет
содержать области притяжения корней этого уравнения. Границы этих областей
называются фракталами Ньютона.
Рассмотрим, например, уравнение . Оно
имеет корни:
,
,
Для изображения на экране компьютера
областей притяжения этих точек относительно преобразования
в приведенной ниже программе пробегаются
точки комплексной плоскости, пока значение
не
станет достаточно малым. Затем исходные точки окрашиваются в цвета,
соответствующие корням.
Текст программы
// newtcube.cpp
#include<graphics.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<complex.h>
#include<math.h>
#define MITER 100
double xmin=-1.5, ymin=-1, xmax=1.5, ymax=1;
int left=0, top=0, right=639, bottom=479;
int colors[6]={RED,LIGHTRED,GREEN,LIGHTGREEN,BLUE,LIGHTBLUE};
complex f(complex z)
{
return z*z*z-1;
}
complex fs(complex z)
{
return 3*z*z;
}
complex i(0.,1.);
complex root[3];
void putpoint (double x, double y, int color)
{
if(x<xmax&&x>xmin&&y<ymax&&y>ymin)
putpixel(left+(x-xmin)*(right-left)/(xmax-xmin),
top+(ymax-y)*(bottom-top)/(ymax-ymin),color);
}
int main()
{
int gd=VGA, gm=VGAHI, j;
double re, im, xinc=(xmax-xmin)/640, yinc=(ymax-ymin)/480;
int pput, ncolors=0,n;
initgraph(&gd,&gm,"..\\BGI");
complex z;
ncolors=3; root[0]=1.; root[1]= -0.5+i*sqrt(3.)/2; root[2]=-0.5-i*sqrt(3.)/2;
for (re=xmin; re<xmax; re+=xinc)
for (im=ymin; im<ymax; im+=yinc)
{
z=re+i*im; n=0;
do
{
if (abs(fs(z))<0.0001) n=-1;
else {z = z- f(z)/fs(z); n++;}
} while ( n>=0&& n<MITER && abs(f(z))>=0.01);
if (n<0) continue;
for (j=0; j<ncolors; j++)
{
if (abs(z-root[j])<0.01)
putpoint(re,im,colors[2*j+n%2]); //pput=1;
}
}
getch(); closegraph(); return 0;
}
Область притяжения точки будет
выведена красным цветом, для точки
- зеленым, а для точки
- синим:
Результат работы программы:
Если указанная точность приближения корня достигнута через четное число шагов, то исходная точка окрашивается светлым, а если через нечетное, то темным цветом, соответствующим корню.
Более общий случай полинома третьей
степени будет рассмотрен как пример выполнения задания 2 из РГЗ2
(«Интерактивные графические системы. Практика»). Там будет применен аналогичный
метод построения областей притяжения корней.
Размерности алгебраических фракталов в настоящее время изучены не полностью. Многие работы посвящены вычислению и оценке размерностей этих фракталов. Разработаны алгоритмы и программы вычисления фрактальных размерностей. Размерность Хаусдорфа-Безиковича и другие фрактальные размерности ограничены сверху размерностью Булигана, которая определяется следующим образом:
· пусть
- ограниченное подмножество (или, более
общим образом, вполне ограниченное подмножество произвольного метрического
пространства). Для каждого
обозначим через
наименьшее число множеств диаметра не превышающего
, которым можно покрыть
Это число будет конечным для каждого
, ибо
ограничено.
Если
бесконечно, то
стремится
к бесконечности при
Размерностью Булигана
называется верхний предел
Пример 11. Для кривой Коха,
получающейся из отрезка заменой его ломаной, начало и конец которой совпадают с
вершинами отрезка, с последующей итерацией этой процедуры, как это описано в
примере 6, значения будут равны
…,
…. Следовательно,
5. Варианты заданий к лабораторной работе
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.