ODEMethod, Stepsize

Числовая схема, используемая для того, чтобы решить ОДУ

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

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

Сводные данные значения

ODEMethod, StepsizeДополнительныйВыражение MuPAD®

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

ОбъектыЗначения по умолчанию
plot::Ode2d, plot::Ode3d

ODEMethod: DOPRI78

plot::Streamlines2d

ODEMethod: ABM4

Описание

ODEMethod = method определяет числовую схему того, чтобы решить ОДУ. Параметр method является именем, таким как EULER1, RK4, RKF78 и т.д.

Stepsize = h устанавливает постоянный размер шага h, который используется, чтобы вычислить числовое решение.

Внутренне, plot::Ode2d, plot::Ode3d и plot::Streamlines2d вызывают стандартный numeric::odesolve для того, чтобы решить данный ОДУ численно. Метод, установленный атрибутом ODEMethod = method и/или размер шага, установленный Stepsize = h, передается numeric::odesolve. Смотрите соответствующую страницу справки для полного списка всех доступных методов и для получения дальнейшей информации на размере шага.

Установка ODEMethod = ABM4 является исключением к вышеупомянутому: Это только доступно с plot::Streamlines2d и заставляет график использовать быстрый интегратор корректора предиктора Адамса-Бэшфорта-Маултона четвертого порядка с фиксированным размером шага. Это игнорирует настройки RelativeError и AbsoluteError.

Примеры

Пример 1

Мы решаем задачу с начальными значениями численно согласно классическому 4-му порядку схема Runge-Kutta RK4 с помощью постоянного размера шага 0.1:

f := (t, Y) -> [-Y[1]]:
Y0 := [1]:
timemesh:= [0, 1, 2, 3, 4, 5]:
plot(plot::Ode2d(f, timemesh, Y0, ODEMethod = RK4,
                 Stepsize = 0.1))

delete f, Y0, timemesh:

Пример 2

С настройками по умолчанию 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))

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

Функции MuPAD