Легко видеть, что комплексная плоскость будет содержать области притяжения точек и относительно функции Область притяжения точки состоит из точек с положительной ординатой - , а точки - с отрицательной ординатой. Точки , для которых , будут составлять границу для каждой их этих областей.
В общем случае уравнение решается с помощью итерации преобразования комплексной плоскости , где производная в точке Если - полином степени , то комплексная плоскость будет содержать области притяжения корней этого уравнения. Границы этих областей называются фракталами Ньютона.
Рассмотрим, например, уравнение . Оно имеет корни: , , Для изображения на экране компьютера областей притяжения этих точек относительно преобразования в приведенной ниже программе пробегаются точки комплексной плоскости, пока значение не станет достаточно малым. Затем исходные точки окрашиваются в цвета, соответствующие корням.
Текст программы
// 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).
Ссылка на скачивание - внизу страницы.