plot::Streamlines2d

Потоки векторных полей

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

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

Синтаксис

plot::Streamlines2d([v1, v2], x = xmin .. xmax, y = ymin .. ymax, <a = amin .. amax>, options)
plot::Streamlines2d(v1, v2, x = xmin .. xmax, y = ymin .. ymax, <a = amin .. amax>, options)
plot::Streamlines2d(V, x = xmin .. xmax, y = ymin .. ymax, <a = amin .. amax>, options)

Описание

plot::Streamlines2d( [v1, v2] , x = `x_{min}`..`x_{max}` , y = `y_{min}`..`y_{max}` ) создает потоки векторного поля, заданного с (x, y) ∈ [x min, x max] × [y min, y max].

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

Как показывает опыт: уменьшение значения MinimumDistance фактором 2 приводит к увеличению времени выполнения фактором 4.

Схема определяемого пользователем цвета может быть задана LineColorFunction = color, где color процедура MuPAD®, принимающая 6 входных параметров и возвращающая список RGB значения. Во время графического вывода эта функция вызвана в форме color(x, y, v1, v2, t, l, n):

Значения xY координаты текущей точки.

Значения v1, v2 компоненты векторного поля в текущей точке.

Значение t “время” текущей точки (x, y) на текущем потоке. Масштабирование этого параметра зависит от векторного поля.

Значение l длина кривой текущего потока от его начальной точки текущая точка (x, y), как Евклидово расстояние. Этот параметр является инвариантным относительно скалярных изменений векторного поля (до изменения направления потока).

Целочисленное значение n количество текущего потока. Каждый отдельный поток имеет различное значение.

См. пример 3.

Атрибуты

АтрибутЦельЗначение по умолчанию
AbsoluteErrorмаксимальная абсолютная ошибка дискретизации 
AffectViewingBoxвлияние объектов на ViewingBox из сценыTRUE
AntiAliasedсглаженные линии и точки?TRUE
Framesколичество систем координат в анимации50
Legendделает запись легенды 
LegendTextкороткий объяснительный текст для легенды 
LegendEntryдобавить этот объект в легенду?FALSE
LineColorцвет линийRGB::Black
LineWidthширина линий0.35*unit::mm
LineColor2цвет линийRGB::DeepPink
LineStyleтело, подчеркнутые штриховой линией или пунктирные линии?Solid
LineColorTypeтипы окраски линииFlat
LineColorFunctionфункциональная окраска линии 
MinimumDistanceпробел между линиями потоков 
Nameимя объекта графика (для браузера и легенды) 
ODEMethodчисловая схема, используемая в том, что решила ОДУABM4
ParameterEndзакончите значение параметра анимации 
ParameterNameимя параметра анимации 
ParameterBeginначальное значение параметра анимации 
ParameterRangeобласть значений параметра анимации 
RelativeErrorмаксимальная относительная ошибка дискретизации1/100000
Stepsizeустановите постоянный размер шага 
TimeEndвремя окончания анимации10.0
TimeBeginвремя начала анимации0.0
TimeRangeоперативный промежуток анимации0.0.. 10.0
TipAngleвводный угол наконечников стрелки(2*PI)/15
TipStyleстиль презентации наконечников стрелкиFilled
TipLengthдлина наконечников стрелки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
XFunctionфункция для x значений 
XMaxокончательное значение параметра “x” 
XMinначальное значение параметра “x” 
XNameимя параметра “x” 
XRangeобласть значений параметра “x” 
YFunctionфункция для y значений 
YMaxокончательное значение параметра “y” 
YMinначальное значение параметра “y” 
YNameимя параметра “y” 
YRangeобласть значений параметра “y” 

Примеры

Пример 1

plot::Streamlines2d изображает векторные поля (более или менее) равноотстоящими линиями потоков:

plot(plot::Streamlines2d(-x, -y, x=-2..2, y=-2..2))

Обратите внимание на то, что этот стиль отображения обязательно повреждает симметрии, в этом случае совершенная осевая симметрия векторного поля.

Кроме того, циклы не будут закрыты, но оставят разрыв:

plot(plot::Streamlines2d(-y, x, x=-2..2, y=-2..2))

Пример 2

Кроме “обычных” параметров, таких как параметр располагается, цвет линии, или ширина линии, plot::Streamlines2d может управляться с атрибутом MinimumDistance, который устанавливает минимальное расстояние между линиями потоков:

plot(plot::Streamlines2d(sin(x^2+y^2), cos(x^2+y^2),
                         x = -3..3, y = -2..2))

plot(plot::Streamlines2d(sin(x^2+y^2), cos(x^2+y^2),
                         x = -3..3, y = -2..2,
                         MinimumDistance = 0.2))

plot(plot::Streamlines2d(sin(x^2+y^2), cos(x^2+y^2),
                         x = -3..3, y = -2..2,
                         MinimumDistance = 0.05))

Пример 3

Функция цвета линии для plot::Streamlines2d имеет доступ к текущим координатам, к компонентам векторного поля в текущей точке, к текущей длине на кривой (и в терминах параметра “времени” и в терминах Евклидова расстояния) и целочисленное количество текущей кривой (которые не найдены в некотором предопределенном порядке). Мы используем номер кривой, чтобы сгенерировать красочное отображение:

num2col := (x, y, vx, vy, t, l, n) -> RGB::fromHSV([111*n, 1, 1]):
plot(plot::Streamlines2d(sin(x^2+y^2), cos(x^2+y^2),
                         x = -3..3, y = -2..2,
                         LineColorFunction = num2col))

Используя кривую информация о длине позволяет нам включать направленную информацию в отображение:

l2col := (x, y, vx, vy, t, l) -> [frac(5*l) $ 3]:
plot(plot::Streamlines2d(sin(x^2+y^2), cos(x^2+y^2),
                         x = -3..3, y = -2..2,
                         LineWidth = 0.75,
                         LineColorFunction = l2col))

Часто, более легкий способ построить ориентацию линий потоков состоит в том, чтобы активировать наконечники стрелки plot::Streamlines2d графики в середину каждого достаточно долго) линия потоков. Они сделаны невидимыми длиной совета по умолчанию 0:

plot(plot::Streamlines2d(0.3*x-y, 0.3*y+x,
                         x = -3..3, y = -2..2,
                         TipLength = 3*unit::mm))

Пример 4

Поскольку размещение линий потоков трудно предсказать, plot::Streamlines2d не действительно подходит для анимаций. Возможно анимировать plot::Streamlines2d, но когерентность между кадрами анимации меньше чем обычно:

plot(plot::Streamlines2d(sin(x^2+y^2), cos(x^2-y^2+a),
                         x = -2..2, y = -2..2, a = -PI..PI,
                         MinimumDistance = 0.1,
                         Frames=10))

Пример 5

С настройками по умолчанию, plot::Streamlines2d не может построить векторное поле (который не является непрерывным Липшицом) удовлетворяющим способом:

plot(plot::Streamlines2d([1, surd(3,y)^2], 
                         x=-3..3, y=-2..2))

При помощи различного числового интегратора проблемы могут быть преодолены (за счет более длительного расчета):

plot(plot::Streamlines2d([1, surd(3,y)^2], 
                         x=-3..3, y=-2..2,
                         ODEMethod=RKF43,
                         RelativeError=1e-3))

Параметры

v1, v2

x - и y - компонент векторного поля: арифметические выражения в xY, и, возможно, параметр анимации a.

v1, v2 эквивалентны атрибутам XFunctionYFunction .

V

Матрица A категории Cat::Matrix с двумя записями, которые предоставляют компонентам v1, v2 из векторного поля.

xY

Идентификаторы.

xY эквивалентны атрибутам XName, YName.

xmin .. xmax, ymin .. ymax

Действительные численные значения.

xmin xmax ymin ymax эквивалентны атрибутам XRangeYRange xmin xmax ymin ymax .

a

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

Алгоритмы

Алгоритм используется в plot::Streamlines2d был опубликован в “Создании Равномерно распределенных Потоков Произвольной Плотности” Бруно Джобардом и Уилфридом Лефером на Еврографическом Семинаре в Boulogne-sur-Mer, Франция.

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

Функции MuPAD

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