Создание или изменение структуры опций дифференциальных уравнений задержки
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 структура для значения определенного свойства.
В следующих разделах описаны свойства, которые можно задать с помощью ddeset. Существует несколько категорий свойств:
На каждом шаге решатели 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
Свойства вывода решателя можно использовать для управления выводом, который генерируют решатели.
Выходные свойства решателя DDE
Собственность | Стоимость | Описание |
|---|---|---|
| Дескриптор функции { | Функция вывода - это функция, которую решатель вызывает после каждого успешного шага интеграции. Чтобы задать функцию вывода, установите options = ddeset('OutputFcn',...
@myfun)наборы " Функция вывода должна иметь вид status = myfun(t,y,flag) Параметризация функций объясняет, как предоставить дополнительные параметры Решатель вызывает указанную функцию вывода со следующими флагами. Обратите внимание, что синтаксис вызова отличается от флага. Функция должна отвечать соответствующим образом:
Эти общие функции вывода можно использовать или редактировать для создания собственных. Напечатать |
| Вектор индексов | Вектор индексов, указывающих, какие компоненты вектора решения решатели передают выходной функции. Например, если вы хотите использовать options = ddeset...
('OutputFcn',@odeplot,...
'OutputSel',[1 3]);По умолчанию решатель передает все компоненты решения функции вывода. |
|
| Указывает, должен ли решатель отображать статистику о своих вычислениях. По умолчанию
|
Свойства размера шага позволяют указать размер первого шага, который решатель пытается выполнить, что может помочь ему лучше распознать масштаб проблемы. Кроме того, можно задать границы для размеров последующих шагов времени.
В следующей таблице описаны свойства размера шага.
Свойства размера шага DDE
Собственность | Стоимость | Описание |
|---|---|---|
| Положительный скаляр | Предлагаемый начальный размер шага. |
| Положительный скаляр | Верхняя граница для размера шага решателя. Если дифференциальное уравнение имеет периодические коэффициенты или решения, может быть хорошей идеей установить
|
В некоторых проблемах DDE время конкретных событий имеет важное значение. При решении задачи решатели могут обнаруживать такие события, размещая переходы в, из или через нули пользовательских функций.
Следующая таблица описывает Events собственность.
Свойство событий DDE
Собственность | Стоимость | Описание |
|---|---|---|
| Дескриптор функции | Дескриптор функции, включающий одну или несколько функций события. Для [value,isterminal,direction] = events(t,y,YDEL) Для [value,isterminal,direction] = events(t,y,YDEL,YPDEL) Выходные аргументы,
Примеры использования функции события при решении обычных задач дифференциальных уравнений см. в разделе Расположение события ОДУ. |
Функции решателя могут решать задачи с разрывами в истории или в коэффициентах уравнений. Следующие свойства позволяют предоставить этим решателям другое начальное значение, и, для dde23, местоположения известных разрывов. Дополнительные сведения см. в разделе Разрывы в DDE.
В следующей таблице описаны свойства неоднородности.
Свойства дискретности DDE
Собственность | Стоимость | Описание |
|---|---|---|
| Вектор | Расположение разрывов. Точки t, в которых история или решение могут иметь скачкообразный разрыв в производной низкого порядка. Это относится только к |
| Вектор | Исходное значение раствора. По умолчанию начальным значением решения является значение, возвращаемое |
Создание структуры опций, которая изменяет относительный допуск ошибки решателя от значения по умолчанию 1e-3 кому 1e-4, введите
options = ddeset('RelTol',1e-4);Восстановление значения 'RelTol' от options, введите
ddeget(options,'RelTol') ans = 1.0000e-004