plot::PointList2d

Конечные списки 2D точек

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

plot::PointList2d(pts, <a = amin .. amax>, options)
plot::PointList2d(M2d, <a = amin .. amax>, options)

Описание

plot::PointList2d сдерживает списки 2D точек.

Это - контейнер для большого конечного числа точек. Это позволяет вам постараться не создавать большие количества объектов типа plot::Point2d по двум причинам. Во-первых, типы точки имеют ненезначительные издержки и построение, и графический вывод большого количества их (скажите, пять тысяч) занимает больше времени, чем графический вывод того же числа точек в одном контейнерном объекте. Во-вторых, наличие пяти тысяч точек в обозревателе объектов берет существенное количество памяти и не так ясно как наличие одного списка точек.

Атрибут Points2d отображен в инспекторе в пользовательском интерфейсе только для коротких списков.

plot::PointList2d внутренне использование перечисляет для хранения точек. Поэтому не рекомендуется добавить большое количество точек один за другим. Смотрите Пример 1 для лучшего метода сбора данных.

Если вы задаете цвет одной точки, необходимо задать цвета всех других точек в списке. Смотрите Пример 2.

Атрибуты

АтрибутЦельЗначение по умолчанию
AffectViewingBoxвлияние объектов на ViewingBox из сценыTRUE
AntiAliasedсглаженные линии и точки?TRUE
Colorосновной цветRGB::MidnightBlue
Framesколичество систем координат в анимации50
Legendделает запись легенды 
LegendTextкороткий объяснительный текст для легенды 
LegendEntryдобавить этот объект в легенду?FALSE
Nameимя объекта графика (для браузера и легенды) 
ParameterEndзакончите значение параметра анимации 
ParameterNameимя параметра анимации 
ParameterBeginначальное значение параметра анимации 
ParameterRangeобласть значений параметра анимации 
Points2dсписок 2D точек 
PointSizeразмер точек1.5
PointColorцвет точекRGB::MidnightBlue
PointStyleстиль презентации точекFilledCircles
TimeEndвремя окончания анимации10.0
TimeBeginвремя начала анимации0.0
TimeRangeоперативный промежуток анимации0.0.. 10.0
Titleобъектный заголовок 
TitleFontшрифт объектных заголовков[" sans-serif ", 11]
TitlePositionположение объектных заголовков 
TitleAlignmentвыравнивание по горизонтали заголовков w.r.t. их координатыCenter
TitlePositionXположение объектных заголовков, x компонент 
TitlePositionYположение объектных заголовков, y компонент 
VisibleвидимостьTRUE
VisibleAfterобъект, видимый после этой временной стоимости 
VisibleBeforeобъект, видимый до этой временной стоимости 
VisibleFromToобъект, видимый в это время, располагается 
VisibleAfterEndобъект, видимый после его законченного времени анимации?TRUE
VisibleBeforeBeginобъект, видимый перед его временем анимации, запускается?TRUE

Примеры

Пример 1

Следующая итерация приводит к так называемому аттрактору Hénon (от теории хаоса):

c1 := 1.4:
c2 := 0.3:
henon_iter := (x, y) -> [c1*x^2+y-1, c2*x]:

Запустите в (0, 0), сотня, которой позволяют, циклов итерации проходит мимо (чтобы только построить аттрактор), и затем собрать следующие три тысячи точек:

[x, y] := [0, 0]:
for i from 1 to 100 do
  [x, y] := henon_iter(x, y);
end_for:
data := {}:
for i from 1 to 3000 do
  [x, y] := henon_iter(x, y);
  data := data union {[x, y]};
end_for:

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

data := coerce(data, DOM_LIST):
plot(plot::PointList2d(data))

Пример 2

plot::PointList2d позволяет вам задать цвета точек. Например, следующий список содержит две точки. Когда вы строите этот список, первая точка появляется в красном, и вторая точка появляется в зеленом:

Coords := [[3, 4, RGB::Red], [5, 5, RGB::Green]];
plotCoords := plot::PointList2d(Coords):
plot(plotCoords,  PointSize=5)

Если вы задаете цвет одной точки, необходимо также задать цвета всех других точек в списке:

Coords := [[3, 4, RGB::Red], [5, 5]];
plotCoords := plot::PointList2d(Coords)

Error: Attribute 'Points2d' in the 'PointList2d' object must be a list of lists of two expressions and an optional color value. [plot]

Пример 3

(Маршрут удвоения периода Файгенбаума к хаосу)

Считайте итерацию x n + 1 = f p (x n), где является “логистической картой” параметром p. Карта итерации f p сопоставляет интервал [0, 1] к себе для 0 ≤ p ≤ 4. Для маленьких значений p последовательность (x n) имеет конечное число предельных точек, которые посещают циклически. Увеличивая p, разделение предельных точек в 2 отдельных предельных точки для определенных критических значений p (“удвоение периода”). Поскольку, существует бесконечно много предельных точек, и последовательность (x n) ведет себя хаотично.

Визуализируйте предельные точки как функции p (“схема Feigenbaum”).

Для P близко расположенные значения p создайте последовательность (x n) начиная с x 0 = 0.5. Проигнорируйте первые значения N, ожидая что следующий цикл значений M по предельным точкам. Эти точки добавляются к списку plotdata это наконец подано в PointList2d для графического вывода:

f:= (p, x) -> p*x*(1-x):

 P:= 500: // number of steps in p direction
N:= 200: // transitional steps before we are close to the cycle
M:= 300: // maximal number of points on the cycle

 pmin:= 2.8: // Consider p between
pmax:= 4.0: // pmin and pmax
plotdata:= [ ]:
for p in [pmin + i*(pmax - pmin)/P $ i = 0..P] do
    // First, do N iterations to drive the 
    // point x towards the limit cycle 
    x:= 0.5:
    for i from 1 to N do
      x:= f(p, x):
    end_for:

     // consider the next M iterates and use them as plot data:
    xSequence:= table():
    xSequence[1]:= x;
    for i from 2 to M do
        x:= f(p, x):
        if abs(x - xSequence[1]) < 10^(-5) then
           // We are back at the beginning of the cycle;
           // the points will repeat. Go to the next p.
           break;
        else
           xSequence[i]:= x;
        end_if;
    end_for:
    plotdata:= plotdata . [[p, rhs(x)] $ x in xSequence];
end_for:

 plot(plot::PointList2d(plotdata, 
                       PointColor = RGB::Black,
                       PointSize = 0.5*unit::mm)):

delete f, P, N, M, pmin, pmax, plotdata, x, xSequence, i;

Пример 4

Создайте следующую спираль номера путем графического вывода только простых чисел. Этот график показывает, что кластер начал вдоль конкретных кривых вызвал главно генерирующие кривые.

plot(
     plot::PointList2d([[sqrt(n)*cos(2*PI*sqrt(n)),
                         sqrt(n)*sin(2*PI*sqrt(n))]
                $ n in [ithprime(j) $ j = 1..2345]],
                                      PointSize = 1
     ),
      Axes = None, Scaling = Constrained,
      Height = 100, Width = 100)

Параметры

pts

Список точек. Точка не должна иметь типа plot::Point2d. Каждая точка должна быть списком двух выражений с действительным знаком (координаты) и дополнительный цвет RGB. Списки, задающие точки и цвета, должны все иметь ту же длину.

pts эквивалентно атрибутам Points2d.

M2d

Массив или матрица с двумя столбцами. Каждая строка обеспечивает координаты одной точки.

M2d эквивалентно атрибуту Points2d.

a

Параметр анимации, заданный как a = amin..amax, где amin начальное значение параметров и amax итоговое значение параметров.

Смотрите также

Функции MuPAD

MuPAD графические примитивы