график::
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 | видимость точек mesh | TRUE |
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 |
Рассмотрите нелинейный осциллятор. Как динамическая система для, решите следующую задачу с начальными значениями, 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]):
ОДУ Лоренца является системой
с фиксированными параметрами 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])
|
Векторное поле ОДУ: процедура. Смотрите
|
|
Mesh времени: действительные численные значения. Если данные отображены с
|
|
Mesh времени: действительные численные значения.
|
|
Начальное условие ОДУ: список или 1-мерный массив. Смотрите
|
|
“генераторы отображают данные на графике”: процедуры, сопоставляющие решение, указывают
|
|
Используйте определенную числовую схему (см. |
|
Параметр анимации, заданный как |
|
Опция, заданная как Устанавливает стиль, в котором отображены данные о графике. Следующие стили доступны: |
|
Опция, заданная как Выбирает цвет RGB |
|
Опция, заданная как Устанавливает числовой допуск дискретизации (см. |
|
Опция, заданная как Устанавливает числовой допуск дискретизации (см. |
|
Опция, заданная как Устанавливает постоянный stepsize (см. |