ddeset

Создайте или измените структуру опций дифференциальных уравнений с задержкой

Синтаксис

options = ddeset('name1',value1,'name2',value2,...)
options = ddeset(oldopts,'name1',value1,...)
options = ddeset(oldopts,newopts)
ddeset

Описание

options = ddeset('name1',value1,'name2',value2,...) создает структуру опций интегратора options в котором именованные свойства имеют заданные значения. Все неопределенные свойства имеют значения по умолчанию. Достаточно ввести только начальные символы, которые уникально идентифицируют свойство. ddeset игнорирует регистр для имен свойства.

options = ddeset(oldopts,'name1',value1,...) изменяет существующую структуру опций oldopts. Это перезаписывает любые значения в oldopts которые заданы с помощью пар имя/значение и возвращают измененную структуру в качестве выходного аргумента.

options = ddeset(oldopts,newopts) объединяет существующую структуру опций oldopts с новой структурой опций newopts. Любые значения, установленные в newopts перезаписать соответствующие значения в oldopts.

ddeset без входных параметров отображаются все имена свойства и их возможные значения, что указывает на значения по умолчанию с помощью скобок {}.

Вы можете использовать функцию ddeget чтобы запросить options структура для значения определенного свойства.

Свойства DDE

В следующих разделах описываются свойства, которые можно задать с помощью ddeset. Существует несколько категорий свойств:

Свойства управления ошибками

На каждом шаге решатели DDE оценивают ошибку e. The dde23 функция оценивает локальную ошибку усечения, а другие решатели оценивают невязку. В любом случае эта ошибка должна быть меньше или равной допустимой ошибке, которая является функцией заданной относительной погрешности RelTol, и заданная абсолютная погрешность, AbsTol.

|e(i)|*max(RelTol*abs(y(i)),AbsTol(i))

Для рутинных задач решатели обеспечивают точность, примерно эквивалентную точности, которую вы запрашиваете. Они обеспечивают меньшую точность для задач, интегрированных на «длинных» интервалах и задачах, которые умеренно нестабильны. Сложные задачи могут потребовать более жестких допусков, чем значения по умолчанию. Для относительной точности настройте RelTol. Для абсолютного допуска ошибок важно масштабирование компонентов решения: если |y| несколько меньше AbsTolрешатель не ограничен получением каких-либо правильных цифр в y. Возможно, вам придется решить проблему более одного раза, чтобы обнаружить шкалу компонентов решения.

Грубо говоря, это значит, что ты хочешь RelTol правильные цифры во всех компонентах решения, кроме тех, которые меньше порогов AbsTol(i). Даже если вы не заинтересованы в компоненте y(i) когда он маленький, вам, вероятно, придется задать AbsTol(i) достаточно маленькие, чтобы получить некоторые правильные цифры в y(i) чтобы можно было точно вычислить более интересные компоненты.

В следующей таблице описаны свойства управления ошибками.

Свойства управления ошибками DDE

Свойство

Значение

Описание

RelTol

Положительная скалярная величина {1e-3}

Относительная погрешность, который применяется ко всем компонентам вектора решения y. Это мера ошибки относительно размера каждого компонента решения. Примерно, он управляет количеством правильных цифр во всех компонентах решения, кроме тех, которые меньше порогов AbsTol(i). Значение по умолчанию, 1e-3, соответствует 0,1% точности.

Предполагаемая ошибка в каждом шаге интегрирования удовлетворяет |<reservedrangesplaceholder0>.

AbsTol

Положительная скалярная величина или вектор {1e-6}

Абсолютные допуски ошибок, которые применяются к отдельным компонентам вектора решения. AbsTol(i) - порог, ниже которого значение iкомпонент решения неважен. Абсолютная ошибка допусков определить точность, когда решение приближается к нулю. Даже если вы не заинтересованы в компоненте y(i) когда он маленький, вам, вероятно, придется задать AbsTol(i) достаточно маленькие, чтобы получить некоторые правильные цифры в y(i) чтобы можно было точно вычислить более интересные компоненты.

Если AbsTol - вектор, длина AbsTol должно совпадать с длиной вектора решения y. Если AbsTol является скаляром, значение применяется ко всем компонентам y.

NormControl

on | {off}

Управляйте ошибкой относительно нормы решения. Установите это свойство on запросить, чтобы решатели управляли ошибкой в каждом шаге интегрирования с norm(e)<= max(RelTol*norm(y),AbsTol). По умолчанию решатели используют более строгий компонентный контроль ошибок.

Выходные свойства решателя

Можно использовать выходные свойства решателя, чтобы управлять выходом, который генерируют решатели.

Выходные свойства решателя DDE

Свойство

Значение

Описание

OutputFcn

Указатель на функцию {@odeplot}

Выходная функция является функцией, которую решатель вызывает после каждого успешного шага интегрирования. Чтобы задать выходную функцию, задайте 'OutputFcn' в указатель на функцию. Для примера,

options = ddeset('OutputFcn',...
@myfun)

устанавливает 'OutputFcn'to @ myfun, указатель на функцию myfun. Для получения дополнительной информации см. раздел «Создание указателя на функцию».

Выходная функция должна иметь вид

status = myfun(t,y,flag)

Параметризация функций объясняет, как обеспечить дополнительные параметры для myfun, при необходимости.

Решатель вызывает указанную выходную функцию со следующими флагами. Обратите внимание, что синтаксис вызова отличается флагом. Функция должна реагировать должным образом:

  • init - Решатель вызывает myfun([tspan(1) tspan(end)],y0,'init') перед началом интегрирования, чтобы позволить выходной функции инициализировать. tspan - входной параметр к решателям. y0 - начальное значение решения, либо от history(t0) или указанный в initialY опция.

  • {none} - решатель вызывает status = myfun(t,y) после каждого шага интегрирования, на котором запрашиваются выходы. t содержит точки, где вывод был сгенерирован во время шага, и y - численное решение в точках в t. Если t является вектором, i1-й столбец y соответствует iпервый элемент t.

    myfun должен вернуть status выходное значение 0 или 1. Если status = 1решатель останавливает интегрирование. Можно использовать этот механизм, например, для реализации кнопки Stop.

  • done - решатель вызывает myfun([],[],'done') когда интегрирование завершено, чтобы позволить выходной функции выполнять любые операции очистки.

Можно использовать эти выходные функции общего назначения или отредактировать их для создания собственных. Тип help functionname в командной строке для получения дополнительной информации.

  • odeplot - графическое изображение временных рядов (по умолчанию, когда вы вызываете решатель без выходного аргумента и не задаете выходную функцию)

  • odephas2 - двумерное графическое изображение графика фазовой плоскости

  • odephas3 - трехмерная плоскость фазы графического изображения

  • odeprint - решение печати, когда решатель вычисляет его

OutputSel

Вектор индексов

Вектор индексов, определяющий, какие компоненты вектора решения решатели передают в выходную функцию. Для примера, если вы хотите использовать odeplot выходная функция, но вы хотите построить график только первого и третьего компонентов решения, вы можете сделать это используя

options = ddeset...
('OutputFcn',@odeplot,...
'OutputSel',[1 3]);

По умолчанию решатель передает все компоненты решения в выходную функцию.

Stats

on | {off}

Определяет, должен ли решатель отображать статистику о своих расчетах. По умолчанию Stats является off. Если это on, после решения задачи решатель отображает:

  • Количество успешных шагов

  • Количество неудачных попыток

  • Количество вызовов функции DDE

Свойства размера шага

Свойства размера шага позволяют вам задать размер первого шага, который пытается решатель, потенциально помогая ему лучше распознать масштаб задачи. В сложение можно задать ограничения на размеры последующих временных шагов.

В следующей таблице описываются свойства размера шага.

Свойства размера шага DDE

Свойство

Значение

Описание

InitialStep

Положительная скалярная величина

Предлагаемый начальный размер шага. InitialStep устанавливает верхнюю границу на величину размера первого шага, который пытается выполнить решатель. Если вы не устанавливаете InitialStepрешатель основывает начальный размер шага на наклоне решения в начальное время tspan(1). Размер начального шага ограничен самой короткой задержкой. Если наклон всех компонентов решения равен нулю, процедура может попробовать слишком большой размер шага. Если вы знаете, что это происходит или хотите быть уверенным, что решатель разрешает важное поведение в начале интегрирования, помогите коду начать с предоставления подходящего InitialStep.

MaxStep

Положительная скалярная величина
{0.1*
abs (t0-tf)
}

Верхняя граница размера шага решателя. Если дифференциальное уравнение имеет периодические коэффициенты или решения, может быть хорошей идеей задать MaxStep к некоторой дроби (такой как 1/4) периода. Это гарантирует, что решатель не увеличивает временной шаг слишком много и шагает в течение интересующего периода. Не уменьшайте MaxStep:

  • Когда решение выглядит недостаточно точным. Вместо этого уменьшите отклонение относительной погрешности RelTolи используйте только что вычисленное решение, чтобы определить соответствующие значения для вектора допуска абсолютной ошибки AbsTol. (Описание свойств допуска ошибок см. в разделе Свойства управления ошибками.)

  • Чтобы убедиться, что решатель не переходит через некоторое поведение, которое происходит только один раз во время интервала симуляции. Если вы знаете время, в которое происходит изменение, разбейте интервал симуляции на две части и дважды вызовите решатель. Если вы не знаете времени, в которое происходит изменение, попробуйте уменьшить допуски на ошибки RelTol и AbsTol. Использование MaxStep в крайнем случае.

Свойство местоположения события

В некоторых задачах DDE важны времена конкретных событий. Решая задачу, решатели могут обнаруживать такие события путем определения местоположения переходов к, от или через нули определяемых пользователем функций.

Следующая таблица описывает Events свойство.

Свойство событий DDE

Свойство

Значение

Описание

Events

Указатель на функцию

Указатель на функцию, который включает одну или несколько функций события. Для dde23 и ddesdэта функция имеет следующий синтаксис:

[value,isterminal,direction] = events(t,y,YDEL)

Для ddensd, синтаксис:

[value,isterminal,direction] = events(t,y,YDEL,YPDEL)

Выходные аргументы, value, isterminal, и direction, являются векторами, для которых ith-й элемент соответствует iпервая функция события:

  • value(i) - значение iпервая функция события.

  • isterminal(i) = 1 если вы хотите, чтобы интегрирование завершилось в нуле этой функции события, и 0 в противном случае.

  • direction(i) = 0 если вы хотите, чтобы решатель обнаружил все нули (значение по умолчанию), +1 если только нули, где функция события увеличивается, и -1 если только нули, где функция события уменьшается.

    Если вы задаете функцию событий и события обнаруживаются, решатель возвращает три дополнительных поля в структуре решения sol:

  • sol.xe - вектор-строка раз, когда происходят события.

  • sol.ye - матрица, столбцы которой являются значениями решения, соответствующими временам в sol.xe.

  • sol.ie - вектор, содержащий индексы, которые определяют, какое событие произошло в соответствующий момент времени в sol.xe.

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

Свойства разрыва графика

Функции решателя могут решить задачи с разрывами в истории или в коэффициентах уравнений. Следующие свойства позволяют вам предоставить этим решателям другое начальное значение, и, для dde23, местоположения известных разрывов. Для получения дополнительной информации см. Раздел «Разрывы в DDE».

Следующая таблица описывает свойства разрыва.

Свойства разрыва DDE

Свойство

Значение

Описание

Jumps

Вектор

Расположение разрывов. Точки t, где история или решение могут иметь разрыв перехода в производной низкого порядка. Это относится только к dde23 решатель.

InitialY

Вектор

Начальное значение решения. По умолчанию начальное значение решения является значением, возвращаемым history в начальной точке. Задайте другое начальное значение как значение InitialY свойство.

Примеры

Чтобы создать структуру опций, которая изменяет относительную погрешность отклонение решателя от значения по умолчанию 1e-3 на 1e-4, введите

options = ddeset('RelTol',1e-4);

Чтобы восстановить значение 'RelTol' от options, введите

ddeget(options,'RelTol')

ans =

  1.0000e-004
Представлено до R2006a