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

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

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

Используйте функцию 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 с ode15s, ode23t и ode23tb только для тех проблем, в которых нет никакой большой матрицы.

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

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

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

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

|

Похожие темы