график::

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 проекции решений задачи с начальными значениями, данной f, t0 и 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, эти значения должны быть в порядке возрастания.

t0, t1, … эквивалентен атрибуту 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, Lines, 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 графические примитивы

Для просмотра документации необходимо авторизоваться на сайте