ddeset

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

Синтаксис

опции = ddeset ('name1', value1, 'name2', value2...)
опции = ddeset (oldopts, 'name1', value1...)
опции = 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 Error Control Properties

Свойство

Значение

Описание

'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 – трехмерное графическое изображение плоскости фазы

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

'OutputSel'

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

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

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

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

Статистика

on | {off}

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

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

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

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

Step Size Properties

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

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

DDE Step Size Properties

Свойство

Значение

Описание

'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

Свойство

Значение

Описание

События

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

Указатель на функцию, который включает одну или несколько функций события. Для 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 Discontinuity Properties

Свойство

Значение

Описание

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

Была ли эта тема полезной?