plot::Rootlocus

Кривые корней рациональных выражений

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

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

Синтаксис

plot::Rootlocus(p(z, u), u = umin .. umax, <a = amin .. amax>, options)

Описание

plot::Rootlocus(p(z, u), u = umin.. umax) создает 2D график кривых в комплексной плоскости, данной полностью p (z, u) = 0 (решенный для z) как параметр, u варьируется между umin и umax.

Для любого данного значения u, plot::Rootlocus решает уравнение p (z, u) = 0 для z. Решения задают точки с координатами x = (z), y = (z) в комплексной плоскости. Как параметр варьируется u, решения формируют непрерывные кривые что изображенный plot::Rootlocus.

Корни числителя p(z, u) рассматриваются. Все сложные решения этого полинома в z вычисляются численно через numeric::polyroots.

Полином первоначально решен для некоторых значений u из области значений u = `u_{min}` .. `u_{max}`. Дополнительный аргумент Mesh = n может использоваться, чтобы задать номер n этих начальных точек (значение по умолчанию равняется 51). Эти точки не равномерно распределены, но накапливаются близко к концу области значений.

Стандартная программа затем пытается разделить на пары корни для смежных значений u путем выбора самых близких друг к другу.

Наконец, стандартная программа пытается проследить различные кривые путем соединения смежных точек с линейными сегментами. Если сегменты смежной строки показывают углы, которые не являются близко к 180 градусам, дополнительные корни вычисляются для значений параметров u между значениями начальной mesh. До m такие шаги bisectioning возможны, где m задан дополнительным аргументом AdaptiveMesh = m (значение по умолчанию равняется 4). С AdaptiveMesh = 0, этот адаптивный механизм может быть выключен.

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

  • Область значений параметра u = `u_{min}` .. `u_{max}` может быть необоснованно большим. Уменьшайте эту область значений до разумного размера!

  • Увеличьте размер n начальной mesh с помощью опции Mesh = n. Обратите внимание на то, что увеличение n некоторым фактором может увеличить время выполнения графика того же фактора!

  • Увеличьте число m возможных адаптивных шагов bisectioning с помощью опции AdaptiveMesh = m. Обратите внимание на то, что увеличение m 1 может увеличить время выполнения графика фактора 2!

  • Используя опции LinesVisible = FALSE в сочетании с PointsVisible = TRUE, корни отображены как отдельные точки, не соединяя линейные сегменты.

См. пример 2.

Анимации инициированы путем указания диапазона a = `a_{min}` .. `a_{max}` для параметра a это отличается от переменных z и u. См. пример 3.

Кривые могут быть окрашены схемой определяемого пользователем цвета. Только передайте опцию LineColorFunction = mycolor, где mycolor пользователь definied процедура, которая возвращает RGB значение цвета. Стандартный plot::Rootlocus вызовы mycolor(u, x, y), где u является значением параметров и x, y действительные и мнимые части корня p (x + i y, u) = 0. См. Пример 4.

Атрибуты

АтрибутЦельЗначение по умолчанию
AdaptiveMeshадаптивная выборка4
AffectViewingBoxвлияние объектов на ViewingBox из сценыTRUE
AntiAliasedсглаженные линии и точки?TRUE
Framesколичество систем координат в анимации50
Legendделает запись легенды 
LegendTextкороткий объяснительный текст для легенды 
LegendEntryдобавить этот объект в легенду?FALSE
LineColorцвет линийRGB::Blue
LineWidthширина линий0.35
LineStyleтело, подчеркнутые штриховой линией или пунктирные линии?Solid
LinesVisibleвидимость линийTRUE
LineColorTypeтипы окраски линииFlat
LineColorFunctionфункциональная окраска линии 
Meshколичество точек выборки51
Nameимя объекта графика (для браузера и легенды) 
ParameterEndзакончите значение параметра анимации 
ParameterNameимя параметра анимации 
ParameterBeginначальное значение параметра анимации 
ParameterRangeобласть значений параметра анимации 
PointSizeразмер точек1.0
PointStyleстиль презентации точекFilledCircles
PointsVisibleвидимость точек meshFALSE
RationalExpressionрациональное выражение в графике rootlocus 
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 компонент 
UMaxокончательное значение параметра “u” 
UMeshколичество точек выборки для параметра “u”51
UMinначальное значение параметра “u” 
UNameимя параметра “u” 
URangeобласть значений параметра “u” 
VisibleвидимостьTRUE
VisibleAfterобъект, видимый после этой временной стоимости 
VisibleBeforeобъект, видимый до этой временной стоимости 
VisibleFromToобъект, видимый в это время, располагается 
VisibleAfterEndобъект, видимый после его законченного времени анимации?TRUE
VisibleBeforeBeginобъект, видимый перед его временем анимации, запускается?TRUE

Примеры

Пример 1

Корнями полиномиального z 2 - 2 u z + 1 дают и. Мы визуализируем эти две кривые с помощью графика rootlocus:

plot(plot::Rootlocus(z^2 - 2*u*z + 1, u = -1.5..1.5))

Для рациональных выражений рассматриваются корни числителя. Следующий график отображает корни полинома числителя (z 2 - u) 2 + u   (z - u) 3:

plot(plot::Rootlocus(1 + u * (z - u)^3/(z^2 - u)^2, u = -1..1)):

Вот различные другие примеры:

plot(plot::Rootlocus((z^2 - 2*u*z + 1)^2 + u, u = -1..1))

plot(plot::Rootlocus((z^2 - u)^6 + u^2, u = -2..2,
                                 Color = RGB::Red))

plot(plot::Rootlocus((z^5  - 1)^3 + u, u = -1..1, PointsVisible,
                                                  PointSize = 1.5))

Пример 2

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

plot(plot::Rootlocus((z-u)^3 - u/z^3, u = -10^3 .. 10^3)):

Мы получаем лучшее разрешение путем уменьшения области значений параметра u к разумному размеру. Существует все еще несколько точек, которые правильно не подходятся в кривых:

plot(plot::Rootlocus((z-u)^3 - u/z^3, u = -10 .. 10)):

Мы увеличиваем размер mesh, чтобы исправить эту проблему:

plot(plot::Rootlocus((z-u)^3 - u/z^3, u = -10 .. 10, Mesh = 251)):

Мы строим корни как отдельные точки, не отображая сегменты соединительной линии:

plot(plot::Rootlocus((z-u)^3 - u/z^3, u = -10 .. 10, Mesh = 501,
                     LinesVisible = FALSE, PointsVisible)):

Пример 3

Мы анимируем выражение, корни которого к нанесенному на график:

plot(plot::Rootlocus(z^2 - 2*u*z + a, u = -1..1, a = -0.2 .. 2, Mesh = 10),
     plot::Text2d(a -> "a = ".stringlib::formatf(a, 2, 5), [1.2, 1.0], a = -0.2 .. 1));

Мы анимируем область значений параметра:

plot(plot::Rootlocus(z^2 - 2*u*z + 0.81, u = -1 .. a, a = -1 .. 1, Mesh = 10))

Пример 4

Мы обеспечиваем функцию управления цветом: поддерживает маленькие значения параметра, u отображен в красном, тогда как поддерживает большие значения параметров, отображены в синем:

plot(plot::Rootlocus(z^2 - 2*u*z + 0.81, u = -1..1,
                     LineColorFunction = ((u, x, y) -> [(1 - u)/2, 0, (1 + u)/2])))

Параметры

p(z, u)

Арифметическое выражение в двух неизвестных z и u и, возможно, параметр анимации a. Это должно быть рациональное выражение в z.

p(z, u) эквивалентно атрибуту RationalExpression.

z

Имя неизвестного: идентификатор или индексируемый идентификатор.

u

Имя параметра кривой: идентификатор или индексируемый идентификатор.

u эквивалентно атрибуту UName.

umin .. umax

Область значений параметра кривой: umin, umax должны быть числовые действительные значения или выражения параметра анимации a.

umin .. umax эквивалентно атрибутам URange, UMin, UMax.

a

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

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

Функции MuPAD

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