график::
Конечные списки 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 |
Следующая итерация приводит к так называемому аттрактору 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))
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]
(Маршрут удвоения периода Файгенбаума к хаосу)
Считайте итерацию 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;
Создайте следующую спираль номера путем графического вывода только простых чисел. Этот график показывает, что кластер начал вдоль конкретных кривых вызвал главно генерирующие кривые.
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)
|
Список точек. Точка не должна иметь типа
|
|
Массив или матрица с двумя столбцами. Каждая строка обеспечивает координаты одной точки.
|
|
Параметр анимации, заданный как |