Сводные данные опций ОДУ

Решение ОДУ часто требует параметров подстройки, корректировка ошибочных допусков или передача дополнительной информации к решателю. Эта тема показывает, как задать опции, и с какими решателями для дифференциальных уравнений каждая опция совместима.

Синтаксис опций

Используйте odeset функция, чтобы создать структуру опций, которую вы затем передаете решателю как четвертый входной параметр. Например, чтобы настроить допуски относительной и абсолютной погрешности:

opts = odeset('RelTol',1e-2,'AbsTol',1e-5);
[t,y] = ode45(@odefun,tspan,y0,opts);

Если вы используете команду odeset без входных параметров затем MATLAB® отображает список возможных значений для каждой опции со значениями по умолчанию, обозначенными фигурными скобками {}.

odeget функционируйте запрашивает значение опции в существующей структуре, которую можно использовать, чтобы динамически изменить значения опции на основе условий. Например, этот код обнаруживает ли Stats установлен в 'on', и изменяет значение при необходимости:

if isempty(odeget(opts,'Stats'))
  odeset(opts,'Stats','on')
end

Совместимость опций с каждым решателем

Некоторые опции в odeset являются типовыми и совместимыми с любым решателем, в то время как другие специфичны для решателя. Эта таблица суммирует совместимость каждой опции с другими решателями.

Опцияode45ode23ode113ode15sode23sode23tode23tbode15i

'RelTol'
'AbsTol'
'NormControl'

'OutputFcn'
'OutputSel'
Совершенствовать
Статистика

NonNegative

✓*

✓*

✓*

Events

✓**

'MaxStep'
'InitialStep'

Якобиан
'JPattern'
Векторизованный

Масса
'MStateDependence'
'MvPattern'
'MassSingular'

























InitialSlope

'MaxOrder'
BDF


* используют NonNegative параметр с ode15sode23t, и ode23tb только для тех проблем, в которых нет никакой большой матрицы.

** События функционируют для ode15i должен принять третий входной параметр для yp.

Примеры использования

MATLAB включает несколько файлов в качестве примера, которые показывают, как использовать различные варианты. Например, введите edit ballode видеть пример, который использует 'Events' задавать функцию событий или edit batonode видеть пример, который использует 'Mass' задавать большую матрицу. Для полных сводных данных файлов в качестве примера и какие опции они используют, см. Сводные данные Примеров ОДУ и Файлов.

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

|

Похожие темы