график::

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

Блокноты 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):

Значения x, y является координатами текущей точки.

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

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

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

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

Cf. Пример 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 - компонент векторного поля: арифметические выражения в x, y, и, возможно, параметре анимации a.

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

V

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

x, y

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

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

xmin .. xmax, ymin .. ymax

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

xmin .. xmax, ymin.. ymax эквивалентен атрибутам XRange, YRange, XMin, XMax, YMin, YMax.

a

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

Алгоритмы

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

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

Функции MuPAD

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