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 Properties

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

Error Control Properties

На каждом шаге решатели DDE оценивают ошибку e. 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%.

Предполагаемая ошибка в каждом этапе интеграции удовлетворяет |e(i)|max(RelTol*abs(y(i)),AbsTol(i)).

AbsTol

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

Допуски абсолютной погрешности, которые применяются к отдельным компонентам вектора решения. AbsTol(i) порог ниже который значение iкомпонент решения th неважен. Допуски абсолютной погрешности определяют точность, когда решение приближается к нулю. Даже если вы не интересуетесь 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'к @myfun, указателю на функцию myfun. См. Создание указателя на функцию для получения дополнительной информации.

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

status = myfun(t,y,flag)

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

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

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

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

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

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

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

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

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

  • odephas3 – 3D графический вывод плоскости фазы

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

OutputSel

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

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

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

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

Stats

on | {off}

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

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

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

  • Число раз функция DDE было названо

Step Size Properties

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

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

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

Свойство

Значение

Описание

InitialStep

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

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

MaxStep

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

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

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

  • Убедиться, что решатель не переступает через некоторое поведение, которое происходит только однажды во время интервала симуляции. Если вы знаете время, в которое происходит изменение, разбейте интервал симуляции на две части и вызовите решатель дважды. Если вы не знаете время, в которое происходит изменение, попытайтесь уменьшать ошибочные допуски 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, векторы для который iэлемент th соответствует iфункция события th:

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

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

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

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

  • sol.xe вектор-строка времен, в которые события имеют место.

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

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

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

Discontinuity Properties

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

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

Свойства разрыва 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