plot::Ode3d

3D графики решений для ОДУ

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

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

Синтаксис

plot::Ode3d(f, [t0, t1, …], Y0, <[G1, <Style = style1>, <Color = c1>], [G2, <Style = style2>, <Color = c2>], …>, <method>, <RelativeError = rtol>, <AbsoluteError = atol>, <Stepsize = h>, <a = amin .. amax>, options)
plot::Ode3d(f, [Automatic, tstart, tend, tstep], Y0, <[G1, <Style = style1>, <Color = c1>], [G2, <Style = style2>, <Color = c2>], …>, <method>, <RelativeError = rtol>, <AbsoluteError = atol>, <Stepsize = h>, <a = amin .. amax>, options)
plot::Ode3d([t0, t1, …], f, Y0, <[G1, <Style = style1>, <Color = c1>], [G2, <Style = style2>, <Color = c2>], …>, <method>, <RelativeError = rtol>, <AbsoluteError = atol>, <Stepsize = h>, <a = amin .. amax>, options)
plot::Ode3d([Automatic, tstart, tend, tstep], f, Y0, <[G1, <Style = style1>, <Color = c1>], [G2, <Style = style2>, <Color = c2>], …>, <method>, <RelativeError = rtol>, <AbsoluteError = atol>, <Stepsize = h>, <a = amin .. amax>, options)

Описание

plot::Ode3d(f, [t0, t1,...], Y0) представляет 3D проекции решений задачи с начальными значениями, данной ft0 и Y0.

plot::Ode3d(f, [t0, t1,...], Y0, [G]) вычисляет mesh числовых точек выборки Y (t 0), Y (t 1), … представление решения Y (t) дифференциального уравнения первого порядка (динамическая система)

.

Процедура

карты эти точки решения (t i, Y (t i)) в ×ℂn к сетке 3D точек графика [x i, y i, z i]. Эти точки могут быть соединены прямыми линиями или интерполирующими сплайнами.

Внутренне, последовательность числовых точек выборки

Y_1 := numeric::odesolve(f, t_0..t_1, Y_0, Options),

Y_2 := numeric::odesolve(f, t_1..t_2, Y_1, Options), и так далее

вычисляется, где Options некоторая комбинация method, RelativeError = rtol, AbsoluteError = atol, и Stepsize = h. Смотрите numeric::odesolve для получения дополнительной информации о векторной полевой процедуре f, начальное условие Y0, и опции.

Служебная функция numeric::ode2vectorfield может использоваться, чтобы произвести входные параметры f, t0, Y0 от набора дифференциальных выражений, представляющих ОДУ.

Каждый из “генераторов данных о графике” G1, G2 и т.д. создает графическую кривую решения из числовых точек выборки Y0, Y1 и т.д. Каждый генератор G, Скажем, внутренне называется в форме G(t0, Y0), G(t1, Y1), … произвести последовательность графика указывает в 3D.

Решатель numeric::odesolve возвращается решение указывает Y0, Y1, и так далее, как списки или одномерные массивы (фактический тип определяется начальным значением Y0). Следовательно, каждый генератор G должен принять два аргумента (t, Y)T действительный параметр, Y “вектор” (или список или 1-мерный массив).

Каждый генератор должен возвратить список с 3 элементами, представляющими (x, y, z), координаты графической точки, сопоставленной с решением, указывают (t, Y) из ОДУ. Все генераторы должны произвести графические данные той же размерности, то есть, для plot::Ode3d, 3D данные как списки с 3 элементами. Например, G := (t, Y) -> [Y_1, Y_2, Y_3] создает 3D график фазы первых трех компонентов кривой решения.

Если никакие генераторы не даны, plot::Ode3d графиками по умолчанию каждая группа из двух компонентов как функции времени с тем же стилем.

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

Несколько генераторов G1, G2, и так далее, может быть задан, чтобы сгенерировать несколько кривых, сопоставленных с той же числовой mesh Y0, Y1, ….

Графические данные, произведенные каждым из генераторов G1, G2,... состоит из последовательности точек mesh в 3D.

  • С Style = Points, графические данные отображены как дискретный набор точек.

  • С Style = Lines, точки графических данных отображены как кривая, состоящая из сегментов прямой линии между точками выборки. Сами точки не отображены.

  • С Style = Splines, точки графических данных отображены как сглаженная сплайновая кривая, соединяющая точки выборки. Сами точки не отображены.

  • С Style = [Splines, Points] и Style = [Lines, Points], эффекты используемых стилей объединены, то есть, и точки оценки и прямые линии, или сплайны, соответственно, отображены.

Атрибуты графика приняты plot::Ode3d включайте Submesh = n, где n является некоторым положительным целым числом. Этот атрибут только оказывает влияние на кривые, которые возвращены для графических генераторов с Style = Splines и Style = [Splines, Points], соответственно. Это служит для сглаживания графической сплайновой кривой с помощью достаточно высокого количества точек графика.

n количество точек графика между двумя последовательными числовыми точками, соответствующими mesh времени. Значением по умолчанию является n = 4, то есть, сплайны построены как пять сегментов прямой линии, соединяющих числовые точки выборки.

Атрибуты

АтрибутЦельЗначение по умолчанию
AbsoluteErrorмаксимальная абсолютная ошибка дискретизации 
AffectViewingBoxвлияние объектов на ViewingBox из сценыTRUE
Colorsсписок цветов, чтобы использовать[RGB::Blue, RGB::Red, RGB::Green, RGB::MuPADGold, RGB::Orange, RGB::Cyan, RGB::Magenta, RGB::LimeGreen, RGB::CadmiumYellowLight, RGB::AlizarinCrimson, RGB::Aqua, RGB::Lavender, RGB::SeaGreen, RGB::AureolineYellow, RGB::Banana, RGB::Beige, RGB::YellowGreen, RGB::Wheat, RGB::IndianRed, RGB::Black]
Framesколичество систем координат в анимации50
Functionвыражение function или процедура 
InitialConditionsначальные условия ОДУ 
Legendделает запись легенды 
LegendTextкороткий объяснительный текст для легенды 
LegendEntryдобавить этот объект в легенду?FALSE
LineWidthширина линий0.35
LineStyleтело, подчеркнутые штриховой линией или пунктирные линии?Solid
LinesVisibleвидимость линийTRUE
Nameимя объекта графика (для браузера и легенды) 
ODEMethodчисловая схема, используемая в том, что решила ОДУDOPRI78
ParameterEndзакончите значение параметра анимации 
ParameterNameимя параметра анимации 
ParameterBeginначальное значение параметра анимации 
ParameterRangeобласть значений параметра анимации 
PointSizeразмер точек1.5
PointStyleстиль презентации точекFilledCircles
PointsVisibleвидимость точек meshTRUE
Projectorsспроектируйте решение для ОДУ графических точек 
RelativeErrorмаксимальная относительная ошибка дискретизации 
Stepsizeустановите постоянный размер шага 
Submeshплотность подmesh (дополнительные точки выборки)4
TimeEndвремя окончания анимации10.0
TimeMeshчисловая mesh времени 
TimeBeginвремя начала анимации0.0
TimeRangeоперативный промежуток анимации0.0.. 10.0
Titleобъектный заголовок 
TitleFontшрифт объектных заголовков[" sans-serif ", 11]
TitlePositionположение объектных заголовков 
TitleAlignmentвыравнивание по горизонтали заголовков w.r.t. их координатыCenter
TitlePositionXположение объектных заголовков, x компонент 
TitlePositionYположение объектных заголовков, y компонент 
TitlePositionZположение объектных заголовков, z компонент 
USubmeshплотность дополнительных точек выборки для параметра “u”4
VisibleвидимостьTRUE
VisibleAfterобъект, видимый после этой временной стоимости 
VisibleBeforeобъект, видимый до этой временной стоимости 
VisibleFromToобъект, видимый в это время, располагается 
VisibleAfterEndобъект, видимый после его законченного времени анимации?TRUE
VisibleBeforeBeginобъект, видимый перед его временем анимации, запускается?TRUE

Примеры

Пример 1

Рассмотрите нелинейный генератор. Как динамическая система для, решите следующую задачу с начальными значениями, Y (0) = Y 0:

f := (t, Y) -> [Y[2], sin(t) - Y[1]^3]: 
Y0 := [0, 0.5]:

Следующий генератор производит фазу в графике (x, y) плоскость, встроенная в 3D график:

G1 := (t, Y) -> [Y[1], Y[2], 0]:

Далее, используйте координату z 3D графика отобразить значение “энергетической” функции по кривой фазы:

G2 := (t, Y) -> [Y[1], Y[2], (Y[1]^2 + Y[2]^2)/2]:

Фаза изгибается (x, y), плоскость объединена с графиком энергетической функции:

p := plot::Ode3d(f, [i/5 $ i = 0..100], Y0,
                 [G1, Style = Splines, Color = RGB::Red],
                 [G2, Style = Points, Color = RGB::Black],
                 [G2, Style = Lines, Color = RGB::Blue]):

Установите явный размер точек, используемых в представлении энергии:

p::PointSize := 2*unit::mm:

Средство отображения называется:

plot(p, AxesTitles = ["y", "y'", "E"],
     CameraDirection = [10, -15, 5]):

Пример 2

ОДУ Лоренца является системой

фиксированными параметрами p, r, b. Как динамическая система для Y = [x, y, z], решает ОДУ со следующим векторным полем:

f := proc(t, Y)
     local x, y, z;
     begin
        [x, y, z] := Y:
        [p*(y - x), -x*z + r*x - y, x*y - b*z]
     end_proc:

Считайте следующие параметры и следующее начальное условие Y0:

p := 10: r := 28: b := 1: 
Y0 := [1, 1, 1]:

Следующий генератор Gxyz производит 3D график фазы решения. Генератор Gyz проектирует кривую решения к (y, z) плоскость с x = 20; генератор Gxz проектирует кривую решения к (x, z) плоскость с y = - 15; генератор Gxy проектирует кривую решения к (x, y) плоскость с z = 0:

Gxyz := (t, Y) -> Y:
Gyz := (t, Y) -> [ 20,  Y[2], Y[3]]:
Gxz := (t, Y) -> [Y[1], -15,  Y[3]]:
Gxy := (t, Y) -> [Y[1], Y[2],   0 ]:

С этими генераторами создайте 3D объект графика, состоящий из кривой фазы и ее проекций.

object := plot::Ode3d(f, [i/10 $ i=1..100], Y0,
           [Gxyz, Style = Splines, Color = RGB::Red],
           [Gyz, Style = Splines, Color = RGB::Grey50],
           [Gxz, Style = Splines, Color = RGB::Grey50],
           [Gxy, Style = Splines, Color = RGB::Grey50],
           Submesh = 7):

Наконец, график представляется. Этот вызов является несколько трудоемким, потому что он вызывает числовой решатель numeric::odesolve произвести графические данные:

plot(object, CameraDirection = [-220, 110, 150])

Параметры

f

Векторное поле ОДУ: процедура. Смотрите numeric::odesolve для деталей.

f эквивалентно атрибуту Function.

t0, t1, …

Mesh времени: действительные численные значения. Если данные отображены с Style = Splines, эти значения должны быть в порядке возрастания.

t0t1 , … эквивалентен атрибуту TimeMesh.

tstart, tend, tstep

Mesh времени: действительные численные значения. tend должно быть больше, чем tstart и tstep должно быть положительным и должен быть меньшим, чем t e nd - t s tart.

tstart, tend, tstep эквивалентны атрибуту TimeMesh.

Y0

Начальное условие ОДУ: список или 1-мерный массив. Смотрите numeric::odesolve.

Y0 эквивалентно атрибуту InitialConditions.

G1, G2, …

“генераторы отображают данные на графике”: процедуры, сопоставляющие решение, указывают (t, Y(t)) к списку [x, y] или [x, y, z] представление графика указывает в 2D или 3D, соответственно.

G1, G2, … эквивалентен атрибуту Projectors.

method

Используйте определенную числовую схему (см. numeric::odesolve)

a

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

Опции

Style

Опция, заданная как Style = style

Устанавливает стиль, в котором отображены данные о графике. Следующие стили доступны: PointsСтроки, Splines, [Lines, Points], и [Splines, Points]. Стилем по умолчанию является [Splines, Points].

Color

Опция, заданная как Color = c

Выбирает цвет RGB c в котором отображены данные о графике. Цветом по умолчанию i th генератор является i th запись атрибута Colors.

RelErr

Опция, заданная как RelErr = rtol

Устанавливает числовой допуск дискретизации (см. numeric::odesolve)

AbsErr

Опция, заданная как AbsErr = atol

Устанавливает числовой допуск дискретизации (см. numeric::odesolve)

Stepsize

Опция, заданная как Stepsize = h

Устанавливает постоянный stepsize (см. numeric::odesolve)

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

Функции MuPAD

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