Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Mathematica 5. ╨б╨░╨╝╨╛╤Г╤З╨╕╤В╨╡╨╗╤М

.pdf
Скачиваний:
2
Добавлен:
19.11.2023
Размер:
33.75 Mб
Скачать

Таким образом, мы задали начальный член последовательности XQ = 0,5. Теперь положим, г = 3,83, и вычислим первые пятьдесят членов последовательности.

t4=Table[х[3.83][n],{n,1,50}]

{0.9575/0.155857,0.503896,0.957442,0.156061,0.504433,0.957425,0.156121

,0.504592,0.957419,0.15614,0.504642,0.957417,0.156146,0.504658,0.95741 7 . 0 . 156148.0.504664.0.957417.0.156149.0.504666.0.957417.0.156149.0.504 6 6 6 . 0 . 957417.0.156149.0.504666.0.957417.0.156149.0.504666.0.957417.0.1 56149.0. 504666.0.957417.0.156149.0.504666.0.957417.0.156149.0.504666.0

.957417,0.156149,0.504666,0.957417,0.156149,0.504666,0.957417,0.156149

,0.504666,0.957417,0.156149}

Вот как все это выглядит на графике.

ListPlot[t4,PlotJoined->True];

Вот теперь действительно есть чему удивиться! Численность популяции оказалась периодической функцией.

Конечно, здесь проведены вычисления только для г= 3,83, а нам нужно провести вычисления для разных г. Давайте проведем их для 250 значений г, равномерно рас­ пределенных между г = 2,8 и г = 4,0.

tl=Table [ {г, х [г ] [п]

},

{ г, 2 . 8 , 4 , 1 . 2 / 2 4 9}, {п, 10 1 , 3 0 0 }

] ;

 

Здесь для каждого

из

250 значений г строится список

х„ для п = 101,

300.

Вот что получается (конец опущен).

 

 

{1(2.8,0.642857},{2.8,0.642857},{2.8,0.642857},{2.8,0.642857},{2.8,

0.642857},{2.8,0.642857},{2.8,0.642857},{2.8,0.642857},{2.8,0.642857}, 12.8,0.642857}, {2.8,0.642857},{2.8,0.642857},{2.8,0.642857},{2.8, 0.642857},{2.8,0.642857},{2.8,0.642857},{2.8,0.642857},{2.8,0.642857},

Чтобы построить график, этот список нужно сделать плоским:

toshow=Flatten [11,1] ;

Теперь список будет иметь вид (конец опущен)

1(2.8,0.642857}, {2.8,0.642857}, {2.8,0.642857}, {2.8,0.642857}, {2.8,0.64 2857},{2.8,0.642857}, {2.8,0.642857}, {2.8,0.642857},

ймы можем построить график, наглядно демонстрирующий поведение последова­

Iтельности {хп} при различных значениях параметра г в отображении хл+1 = гхп( \- х „ ) .

За гранью простого

371

ListPlot[toshow,AxesLabel->{"r", "x"}];

x

2.8

3.2

3.4

3.6

3.8

4

 

Из графика видно, насколько сложно зависит поведение популяции от г.

Еще раз обратим внимание на простенькую формулу хп+1 = гхп( \ —хп).

При неболь­

ших г (0<К1) х п стремится к

нулю

независимо

от выбора XQ. Судя

по формуле

хп+1 = гх„(\—х п), вид, численность которого вначале равна х^, выжить не может, сколь­ ко бы животных ни было вначале. Поведение последовательности в этом и в других случаях удобно представлять графически. Нарисуем кривую у=Л *) при заданном

значении г и прямую у =

х. Отложим х, по оси абсцисс, проведем вертикаль до пере­

сечения с кривой у — j{x )

(точка А), а затем из точки пересечения горизонталь до пе­

ресечения с линией у = х

(точка В). Теперь вновь проведем вертикаль до пересечения

с кривой у = Лх), что даст нам точку С с координатой х2. Тогда х2 = А * \)- Взяв точкух2 за начальную и повторив все те же операции, получим х3, затем х4 и т.д.

х1=0.4; A={xl,x2=f[xl,1] }

{0.4,0.24}

B={x2,x3=f[х2,1]}

{0.24,0.1824} С={хЗ,x4=f[хЗ,1] } {0.1824,0.14913} х1=0.4; A={xl,x2=f[xl,1]};

В={х2,x3=f[х2,1]}; С={хЗ,x4=f[хЗ,1] };

p3=Graphics[Line[{{xl,0},А,{х2,х2},В,{хЗ,хЗ},С}]]; p2=Plot[{х,f [х,1]}, {х, 0,1} ];

pl=ListPlot[{А,В,С},PlotStyle->PointSize[0.02],PlotRange->{0,1}];

Теперь рисуем график, чтобы представить поведение последовательности х„ при

Show[р1,р2,рЗ];

\

372

Глава 11

Из рисунка видно, что х„-»0 при о.

Из формулы хя+, = гхп( \ - х п) следует, что функция Л*) переводит отрезок [0, 1] в отрезок‘[0, г /4]. Если г< 4, то все значения хя лежат на отрезке [0, 1] при условии, что 0<х<1. Так что формула хя+, = /хя(1—хя) задает отображение отрезка [0, 1] в себя.

Пусть теперь г немного больше 1, например г = 2.

х=0.01;

plist={ {0, х} };

D o [ { y = f [ х / г ] , plist=Append[plist,{х,х}], plist=Append[plist,{хгу}]f x=y},{10}];

p2=Plot [{x, f [x, r] }, {x, 0 , 1} ]; p3=Graphics[Line[plist]]; Show[p2,p3] ;

Видим, что при этом значении г последовательность {*„} ведет себя по-другому: хп Iстремится к постоянному, отличному от нуля, значению х *при л-><». В применении к исходной биологической задаче это означает, что численность такого вида по проше­ ствии нескольких лет стабилизируется и перестанет меняться со временем.

Значение х может быть найдено из уравнения х = f i x ) .

Все точки, удовлетворяющие этому уравнению, являются неподвижными точками Функции/, так как если х, = х\ то и х2 = х\ хл = х* при любом п.

При К1 квадратное уравнение х=/х(1~х) имеет один неотрицательный корень

х==0. При r>1 неотрицательных корня два: х

= 0 их* = (/—1)/г. При г = 1 происходит

За гранью простого

373

бифуркация: неподвижная точка х = 0 теряет устойчивость, а вновь появившаяся точка становится устойчивой.

Можно довольно просто определить, будет ли устойчивой неподвижная точка х отображения J{x). Пусть хп = х + Дхл, где Ахп — малое число. Если точка устойчива, то с ростом п величина |Дх„| должна уменьшаться. Перепишем формулу хл+1 =У(дсл, г) в

виде х + Дхл+1 = f ix + Дх„) = f i x )+ d^ jX- - A x n +о(Ах„). ах

Если в последнем равенстве опустить член о(Дхл), то полученное приближенное равенство будет выполняться тем точнее, чем меньше Дхл (мы пренебрегли членами, пропорциональными (Дхл)2, (Дхл)3 и т.д.). Поскольку х = Л**)» то

Дхп+| =

) Ах„ +о(Дх„).

 

 

ах

 

И для того чтобы Дхл+1->0 при

должно выполняться неравенство d f ( x )

< 1.

 

dx

 

Это и есть условие устойчивости точки х \ Будем дальше увеличивать параметр г. Поведение системы снова изменится: в по­

следовательности {*„}, начиная с достаточно больших л, будут чередоваться числа, близкие к некоторым двум числам а х и а2. (Точнее говоря, последовательность устрое­ на так, что *2r»+i->Яц * 2 п+\ ~ > а 2 ПРИл->°°-) Эти числа связаны соотношениями а х = У(я2),

а2 = A a i)-

Иными словами, в этом случае отображение хл+1

= гх„(\—хп) имеет устойчи­

вый цикл

с периодом 2. Обозначим этот цикл S 2. Наличие

цикла 5 2 в нашей модели

означает, что численность популяции будет меняться с периодом в 2 года.

Выясним, как выглядят циклы на графике. Для этого определим программу cobwebPlot.

cobwebPlot [f_, у__,у0_, n_, а_, b_, opts___]:=Module [{pi, р2, х=уО}, pl=Plot[{у, f},{у7a,b},DisplayFunction->Identity]; p2=Graphics[{Line[Prepend[Flatten[Table[{{x,x=f/.y->x},{x, x}},

{n}],1],{yO,0}]]}]; Show[pi,p2, DisplayFunction->$DisplayFunction, opts]]

Сначала протестируем эту программу.

cobwebPlot[-0.8 z+0.2,z,0.6,20,-0.4,0.7, PlotRange->{-0.35,0.5}];

Теперь нарисуем картинку для случая г= 1.

374

Глава 11

r=i; cobwebPlot[r*y*(1-y)fy,0.6,20,-0.4f0.7,PlotRange->{-0.35,0.6}]

Теперь нарисуем картинку для случая г = 2.

г=2;

cobwebPlot [г*у*(1-у),у,0.1,20,-0.4,0.7,PlotRange->{-0.35,0.6}]

Наконец, выясним, как выглядит двойной цикл (цикл с периодом 2).

г=3.3;

cobwebPlot [г*у* (1-у) ,у, 0.479427,20,-0.4,1, PlotRange->{ {-0.35,1}., {-0.35,1}}];

За гранью простого

Переход от неподвижной точки, которую можно считать циклом S 1, к циклу S1 произошел в результате бифуркации, которая получила название бифуркации удвоения периода. Точка х при этом не исчезла и осталась неподвижной, однако величина

d f ( x ) стала больше 1. dx

При дальнейшем увеличении г поведение последовательности {*„} опять изменяет­

ся. Возникает цикл S A: х4п-* а х, x4/J+1-»tf2>х4 П+2 -* аз> х4 п+з~ ^ а 4 ПРИл->°°, причем а2 = Лах\

аз = Л ^ 2)у o4 = J { a 3), а х = /(д4). Численность популяции начинает колебаться с перио­ дом в 4 года.

г=3.52; cobwebPlot[г*у*(1-у),у,0.512,20,-0.4,1,

PlotRange->{{-0.35,1},{-0.35,1}}];

Но и это еще не все. Приведем еще несколько примеров поведения наших после­ довательностей.

Block[{$DisplayFunction=Identity}, pl=cobwebPlot[1.5 у(1-у),у, 0.05,20, 0, 0.4]; p2=cobwebPlot[3.3 у(1-у),у,0.03,20,0,0.9]; p3=cobwebPlot[3.52 у(1-у),у,0.08,30,0,0.95]; p4=cobwebPlot[3.7'40 у(1-у),у,0.02'40,40,0,1];] Show[GraphicsArray[{{pi,р2},{рЗ,р4}}]];

376

Глава 11

Последовательно увеличивая значение параметра, мы увидим циклы S8, S 16, S n и

т.д. При этом каждый раз цикл S 2' теряет устойчивость, и устойчивым становится

цикл S 2P X Наконец, при некотором значении г (его иногда обозначают rj) формула хп+1 = гхп( \ —хп) дает уже непериодическую последовательность {*„}.

Полученная нами картина оказалась очень интересной. Во-первых, в поразительно простой модели хп+{ = гхп( \ —хп) заложено очень сложное поведение. Во-вторых, в ней удается проследить большое количество бифуркаций, приводящих к усложнению ре­ шения. Сделать это в более сложных моделях гораздо труднее. Как это ни удивитель­ но, но пока встречались только циклы, период которых равен степени 2.

Чтобы понять, чем это вызвано, и изучить поведение модели более подробно, на­ ряду с функцией fix ) удобно рассмотреть отображение ДДх)), обозначаемое далее через f \x ), и вообще положитьf n+l(x) = М п(х)), считая, конечно, чтоf ](x) = f i x ) -

Построим график/2(х).

Вот нужные нам определения.

f[x_,r_] :=г*х* (1-х) ;

ff[х_, r_, n j :=Module [{t=x},Do [{t=f [x, r] ,x=t}, {n} ];t]

Сначала рассмотрим случай устойчивой неподвижной точки. Вот что получим для

случая г = 3 .

cobwebPlot [f f [у, r= 3 , 2] , y f 0, 20, - 0 . 4 , 1 ,

PlotRange->{{-0 i35,1},{-0.35,1}}];

За гранью простого

377

Теперь рассмотрим случай устойчивого цикла S 2.

cobwebPlot[ff[у, r=l+Sqrt[5], 2] ,у,0,20,-0.4,1, PlotRange->{{-0.35,1}, {-0.35,1}}];

График функции / 2(х) пересекается с прямой у = х во всех неподвижных точках

отображения / (ведь

для

любой неподвижной точки х отображения / имеем

f \ x ) = ААХ )) = А Х ) = х*),

а также в точках, принадлежащих циклам S 2

(потому что

а2 = А<*\) = ЛЛ^2)) и

= А<*2) = ЛА<*\)))- Увеличивая параметр г, мы

растягиваем

функцию Ах) вдоль оси у.

И если при некотором значении г линии у = х и у = Дх)

пересекаются в одной точке, то с увеличением г могут появиться еще две точки пере­ сечения. Они-то и будут определять цикл S 2.

Таким образом, переход от S x к S 2 в отображении Ах)обусловлен тем, что в ото­

бражении f 2(x) одна из неподвижных точек теряет устойчивость и в ее окрестности появляются две новые устойчивые неподвижные точки. Здесь вновь происходит би­ фуркация. Рассматривая функции / 4(х), /®(х) и так далее, можно посмотреть, как про­ исходят следующие удвоения.

cobwebPlot[ff[у,г=3.52,4],у,0,20,-0.4,1, PlotRange->{{-0.35,1},{-0.35,1}}];

cobwebPlot[ff[у,r=3.6,8],у,0,20,-0.4,1,' PlotRange->{{-0.35,1},{-0.35,1}}];

378

Глава 11

На примере модели хп+] = гхп( \ - х п) можно понять не только качественные, но и удивительные количественные закономерности. Чтобы проследить за ними, построим график х(г): по оси х будем откладывать х ъ ..., лежащие на устойчивом цикле, по оси г — значения параметра. Циклу S 2 будут соответствовать две точки на одной вер­ тикали, циклу S 4— четыре и т.д. Тогда получим ранее приведенный график, отра­ жающий усложнение устойчивых циклов в отображении х„+1 = гх п( \ —хп), происходя­ щее в результате бифуркаций удвоения периода.

Обозначим через

Я2, Яь

те значения параметра г, в которых происходили уд­

воения, а через /■„ гъ

г3, ... — значения параметра, при которых х = 1/2 является эле­

ментом цикла S 2, S 4, S 8 и т. д. Введем также величины d u d2i ..., d„, .., равные рас­

стоянию между х = 1/2 и ближайшим к нему элементом цикла S r при г = /*„. Расче­ тыпоказали, что числа Rn и гп при больших п ведут себя как геометрическая прогрес­

сия со знаменателем 8 = 4,6692016... Другими словами, *4 1 К

8 и отношение

^л+2“ К *

 

djdn+l также имеет предел, равный некоторому числу а, причем а = 2,5029078...

Что будет, если вместо функции хп+1 = гх п( \- х „ ) взять любую другую симметрич­ ную функцию, которая имеет на отрезке [0, 1] один максимум и около вершины близка к квадратичной параболе. Пусть в ней также происходит бесконечная последо­ вательность бифуркаций удвоения при изменении некоторого параметра. Оказалось, что в любой такой модели числа а и 8 будут одними и теми же! Более того, независи­

мо от вида функции предел Н т(-а)и/ 2"[(д:-0,5)/(—а)и,г ] существует и будет одной и

х -* о о

той же универсальной функцией, обозначаемой часто через & (х).

Эти удивительные закономерности были обнаружены и поняты американским ма­ тематиком М. Фейгенбаумом в 1978 году. В силу универсальности чисел а и 8 и функ­ ции &(*), а также других функций такого типа эту теорию называют теорией универ­ сальности.

Что же означают эти результаты?

В природе можно выделить два совершенно различных на первый взгляд типа яв­ лений. Одни — регулярные и упорядоченные. Это большинство процессов, исполь­ зуемых в технике и технологии, процессы, в которых возникают структуры. Как пра­ вило, ход таких процессов можно предсказывать, зная управляющие ими законы.

Другие процессы — случайные, хаотические. К ним относится турбулентное Движение жидкости, шумы в различных электронных системах и т.д. Они требуют Другого, статистического описания, которое позволяет получить некоторые усред­ ненные характеристики процессов. Такие явления также очень важны, но использу­ ются гораздо реже из-за их сложности и недостаточной изученности. В одних случаях

За гранью простого

379

турбулентное движение жидкости позволяет транспортировать уголь, руду и многое другое по трубам. В других — с турбулентными вихрями приходится бороться. Хоро­ шо зная законы турбулентного движения, можно было бы строить более быстрые и экономичные суда и самолеты.

Теория Фейгенбаума приводит к парадоксальному выводу: между хаосом и поряд­ ком есть глубокая внутренняя связь. Непериодический, случайный процесс возникает

как предел все более сложных структур (циклов S r ). Хаос возникает как сверхслож­

ная организация (цикл S 2~ )! Этот вывод является очень общим: он может относиться к моделям экологии, гидродинамике — к любым системам, где есть последователь­ ность бифуркаций удвоения периода.

Возможно, вы подумали, что сложность взаимоотношений порядка и хаоса, имеющая место в данной модели, связана с участием вещественных чисел. Тогда вспомните график функции Эйлера, график количества единиц в двоичной записи целых чисел. На этих графиках, где нет ничего, кроме целых чисел, также наблюдает­ ся сложная картина чередования хаоса и. циклов.

Еще более сложная картина может наблюдаться в многомерном (например, в двухмерном) случае. Если модель к трму еше и дискретная, то можно говорить о кле­ точных автоматах.

Клеточные автоматы

Клеточный автомат — это совокупность клеток пространства (возможно, много­ мерного), каждая из которых может находиться в одном из нескольких состояний. Клеточные автоматы представляют собой дискретную модель, основанную на рекур­ рентных правилах: следующий шаг является результатом применения правил к кон­ фигурации, достигнутой на предыдущем шаге. Вот как эволюционирует Вселенная (иногда ее удобно рассматривать тоже как клеточный автомат), населенная такими ав­ томатами. Все пространство (Вселенная) разбито на клетки, каждая из которых может находиться в одном из нескольких состояний. (Сами клетки тоже можно рассматри­ вать как простейшие автоматы. Тогда можно сказать, что в некоторых клетках “живут” простейшие автоматы.) Эти клетки (простейшие автоматы) подчиняются оп­ ределенным правилам (законам населяемой ими Вселенной). Сами правила обычно настолько просты, что могут быть занумерованы числами. Однако получающиеся в результате жизнедеятельности таких организмов конфигурации могут быть очень сложными. Иными словами, сообщество примитивных организмов (т.е. организмов, живущих по весьма примитивным правилам) может создать весьма сложную социаль­ ную структуру. Возможна и другая трактовка: хотя сами элементарные частицы уст­ роены просто и подчиняются весьма простым законам, они образуют нашу Вселен­ ную. (Разумеется, Вселенная устроена весьма сложно.)

Чтобы увидеть все это на экране, нам понадобится предварительно познакомиться с несколькими функциями. Функция CellularAutomaton [правило, начальная кон­

фигурация, число ш агов] генерирует представление (список) конфигурации, в кото­ рую переходит начальная конфигурация после указанного числа ш агов в соответствии с заданным правилом. Функция Raster [{ { а и , а ]2, }, }] является двухмерным

графическим примитивом, который представляет прямоугольный массив ячеек в гра­ дациях серого. (Состояние клетки удобно изображать определенным цветом или гра­ дацией серого.) Вот пример.

Show[Graphics[Raster[N[Table[ Mod[i,j]/9,{i,10},{j/10}]]]]];

380

Глава 11