Нахождение неподвижных точек / аттракторов / репеллеров тентовой карты - PullRequest
6 голосов
/ 16 апреля 2011

Мне нужно найти фиксированные точки и аттракторы функции карты Tent, заданные приведенным ниже определением:

    x<sub>t</sub> =  (3/2) * x<sub>t-1</sub>      when 0 <= x <= (2/3)

    and

    x<sub>t</sub> = 3* (1-x<sub>t-1</sub>)        when (2/3) <= x <= 1

Я использую приведенный ниже код MATLAB, чтобы сгенерировать диаграмму паутины (показанную под кодом), чтобыпосмотрим, смогу ли я получить некоторое представление об этой конкретной функции карты палатки.Как видите, я начинаю с установки t = 1 (и x (1) = 0.2001), но есть бесконечно много возможных мест, с которых можно начинать.Как вы можете определить фиксированные точки / аттракторы, если не проверяете каждую начальную точку?

clear
close all

% Initial condition 0.2001, must be symbolic.
nmax=200;
t=sym(zeros(1,nmax));t1=sym(zeros(1,nmax));t2=sym(zeros(1,nmax));
t(1)=sym(2001/10000);
mu=2;
halfm=(2/3) *nmax;
axis([0 1 0 1]);
for n=2:nmax
    if (double(t(n-1)))>0 && (double(t(n-1)))<=2/3         % 0 <= x <= (2/3)
            t(n)=sym((3/2)*t(n-1));                        % x(t) = (3/2) * x(t-1)
        else
            if (double(t(n-1)))<1                          % else (2/3) <= x <= 1
                t(n)=sym(3*(1-t(n-1)));                    % x(t) = 3* (1-x(t-1))
            end
    end
end



for n=1:halfm
    t1(2*n-1)=t(n);
    t1(2*n)=t(n);
end


t2(1)=0;t2(2)=double(t(2));
for n=2:halfm
    t2(2*n-1)=double(t(n));
    t2(2*n)=double(t(n+1));
end

hold on
fsize=20;
plot(double(t1),double(t2),'r');


x=[0 (2/3) 1];y=[0 mu/2 0];
plot(x,y,'b');

Следующая диаграмма паутины для t (1) = 0.2001 enter image description here

Ответы [ 4 ]

8 голосов
/ 16 апреля 2011

Это всего лишь некоторые идеи о том, как разобраться в проблеме.Сейчас я продолжу использовать Mathematica, так как это более удобно (и, судя по приведенному выше коду, вы сможете управлять этим в MATLAB, если нет, я постараюсь преобразовать его).Однако, если у вас есть Mathematica, и вы можете проверить их, это было бы здорово.

Фиксированная точка : Фиксированная точка функции f(x) - это точка, которая является решением f(x)=x;другими словами, точка, в которой функция отображает ее на себя.

Решая для вашей функции, вы получаете x=0 и x=3/4 в качестве фиксированных точек.

In:= Solve[Min[3/2 x, 3 - 3 x] - x == 0, x]

Out= {{x -> 0}, {x -> 3/4}}

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

Manipulate[
 CobwebDiagram[xstart, steps], {xstart, 0, 1, 1/1000}, {steps, 1, 200,
   1}] 

Природа неподвижных точек

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

Итак, попробовав следующее

eps = 10^-16;
CobwebDiagram[0.75 + eps, 200]

, мы получим

Рис.(1)

enter image description here

, который, конечно, не выглядит как сходящийся к фиксированной точке.Действительно, если вы посмотрите на эволюцию x[t], вы увидите, что она расходится

Clear[f]
f[1] = 0.75 + eps;
f[t_] := f[t] = 
   Piecewise[{{3/2 f[t - 1], 0 <= f[t - 1] <= 2/3}}, 3 (1 - f[t - 1])];
ListLinePlot[Table[f[n], {n, 1, 200}]]

Рис.(2)

enter image description here

Результат будет аналогичным, если вы возмущаете его в другом направлении, то есть f[1]=0.75-eps.

Для другой фиксированной точки (на этот раз она может возмущаться только в одном направлении, так как функция определена для x>=0), вы увидите, что поведение такое же, и, следовательно, два фиксированныхточки кажутся расходящимися.

Рис.(3)

enter image description here

Рис.(4)

enter image description here

Теперь рассмотрим начальную точку x[1]=18/25.

CobwebDiagram[18/25, 200] 

Рис.(5)

enter image description here

Вау !!Это выглядит как предельный цикл !

Предельный цикл: Предельный цикл - это замкнутая траектория системы, из которой нет возможностидостижения точки не на траектории, даже как t->Infinity.Итак, когда вы смотрите на x[t], вы видите что-то вроде

Рис.(6)

enter image description here

, что повторяется всего в 3 точках (сжатие изображения создает шаблон Муар , но на самом деле, если вы строите его длянебольшое количество шагов, вы увидите 3 балла. Я просто слишком сонный, чтобы вернуться и переселить его).Три точки: 12/25, 18/25 и 21/25.Начиная с любой из этих трех точек, вы попадете в один и тот же предельный цикл.

Теперь, если к нему сходятся траектории, достаточно близкие к предельному циклу, это притягивающий / устойчивый предельный цикл, иначе это отталкивающий / нестабильныйпредельный цикл.Возмущаясь на eps в любом направлении, как и раньше, мы видим, что траектория расходится (я только показываю направление + ve ниже).

Рис.(7)

enter image description here

Рис.(8)

enter image description here

Интересно, что начиная с x[1]=19/25 отображает его на 18/25 на следующем шаге, который затем продолжается бесконечно на траектории предельного цикла.Легко понять, почему это происходит, поскольку строка от 19/25 до y=x является просто продолжением строки от 12/25 до y=x (то есть от первого фрагмента функции).По той же логике, должны быть точки, соответствующие 18/25 и 21/25, но я не собираюсь их сейчас искать.В свете этого я не совсем уверен, действительно ли предельный цикл действительно притягивает или отталкивает (в соответствии со строгим определением предельного цикла, должна быть только одна другая траектория, которая входит в него, и мы 'мы нашли три! Возможно, кто-то, кто знает больше об этом, может повлиять на это).

Еще несколько мыслей

Начальная точка 1/2 также интересна, поскольку на следующем шаге вы переходите к 3/4, который является фиксированной точкой иследовательно, остается там навсегда.Точно так же точка 2/3 переносит вас в другую фиксированную точку в 0.

CobwebDiagram[1/2, 200]

Рис.(9)

enter image description here

CobwebDiagram[2/3, 200]

Рис.(10)

enter image description here

Поведение колебаний также говорит вам кое-что о системе.Если вы посмотрите на траекторию в Рис.(2,4) , системе требуется больше времени для превращения в хаос в случае с фиксированной точкой 0, чем в другом.Кроме того, на обоих графиках, когда траектории приближаются к 0, для его восстановления требуется больше времени, чем на 3/4, где он просто быстро развевается.Они похожи на релаксационные колебания (представьте себе, что конденсатор медленно заряжается и мгновенно разряжается при коротком замыкании).

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

7 голосов
/ 16 апреля 2011

Чтобы облегчить ответы на вопросы для искушенных в Mathematica людей, вот перевод Mathematica по приведенному выше коду:

CobwebDiagram[xstart_, steps_] := Module[{path, x, t},
  path = RecurrenceTable[{x[t] == 
      Piecewise[{{3/2 x[t - 1], 0 <= x[t - 1] <= 2/3}}, 
       3 (1 - x[t - 1])], x[1] == xstart}, x, {t, 1, steps}];
  Plot[Piecewise[{{3/2 x, 0 <= x < 2/3}}, 3 (1 - x)], {x, 0, 1}, 
   Epilog -> {Red, 
     Line[Riffle[Partition[path, 2, 1], {#, #} & /@ Rest[path]]]}]]

enter image description here

3 голосов
/ 18 апреля 2011

Почему-то я подумал, что это домашний вопрос, когда впервые увидел его, и ответ ОП на ответ Йоды подтверждает это.Не обязательно неправильно задавать домашние вопросы, но это должно быть четко обозначено как таковое.По этой ссылке есть несколько разумных политик для домашних заданий: https://meta.stackexchange.com/questions/18242/what-is-the-policy-here-on-homework

Принимая во внимание политику "нет решений для домашних заданий; подталкивания приветствуются", есть один комментарий, который я бы добавил к обсуждению решений, которое япредоставлено до сих пор.Изучите графики итераций функции f.Под этим я подразумеваю графики f (f (x)), f (f (f (x))) и т. Д. Например, третья итерация f (x) = x ^ 2 - это f (f (f (х))) = х ^ 8.Точки пересечения между графиком n-й итерации f и линией y = x включают периодические орбиты порядка n (и чуть больше).Изучая эти картинки, должно стать ясно, что существует множество отталкивающих орбит.

Правильный способ полностью классифицировать динамику - это использовать символическую динамику, которую ваш класс мог бы или не мог охватить.

1 голос
/ 17 апреля 2011

Я не могу сказать, какая часть CobwebDiagram приходит раньше, а какая позже. Я не нашел цветовой функции, которая действительно работает, но может быть улучшение по следующим направлениям:

Clear[cobWebDiagram, f, x]
f[x_] = Piecewise[{{3/2 x, 0 <= x <= 2/3}, {3 (1 - x), True}}];
colorName = RandomChoice@ColorData["Gradients"]
color = ColorData@colorName

cobWebDiagram[f_, xstart_, steps_, low_, hi_, color_] := 
 Module[{path, x, t, range = color[[3]], scale1},
  path = Partition[NestList[f, .75 + eps, steps], 2, 1];
  scale1 = Rescale[#, {1, Length@path}, range] &;
  scale2 = Rescale[#, {1, Length@path}, {0, .005}] &;
  Show[Plot[f@x, {x, low, hi}], 
   Graphics@
    Table[{color@scale1@k, Thickness@scale2@k, 
      Arrow@path[[{k, k + 1}]]}, {k, -1 + Length@path}]]]

eps = 10^-16;
cobWebDiagram[f, .75 + eps, 100, 0, 1, color]

Вы можете поэкспериментировать с цветами, используя RandomChoice или выше, или приличный выбор может быть

colorName="CMYKColors"
...