exponenta event banner

bvpset

Создание или изменение структуры параметров проблемы граничных значений

Синтаксис

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

Описание

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

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

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

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

Можно использовать функцию bvpget для запроса options структура для значения определенного свойства.

Свойства BVP

bvpset позволяет задать свойства для решателя проблем с граничными значениями bvp4c. Можно задать несколько категорий свойств:

Свойства допуска ошибки

Поскольку bvp4c использует формулу словосочетания, численное решение основано на сетке точек, в которых удовлетворяются уравнения словосочетания. Сетчатый выбор и ошибочный контроль основаны на остатке этого решения, такого, что вычисленное решение S (x) - точное решение встревоженной проблемы S ′ (x) = f (x, S (x)) + res (x). На каждом субинтервале сетки норма остатка вi-й компонент раствора, res(i), оценивается и должен быть меньше или равен допуску. Этот допуск является функцией относительного и абсолютного допусков, RelTol и AbsTol, определяется пользователем.

(res (i )/max (abs (f (i)), AbsTol (i )/RelTol)) ∥ ≤RelTol

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

Свойства допуска ошибок BVP

Собственность

Стоимость

Описание

RelTol

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

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

Вычисленное решение S (x) является точным решением S (x) = F (x, S (x)) + res (x). На каждом субинтервале сетки остаточный res (x) удовлетворяет

(res (i )/max (abs (F (i)), AbsTol (i )/RelTol)) ∥ ≤RelTol

AbsTol

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

Абсолютные допуски ошибок, применяемые к соответствующим компонентам остаточного вектора. AbsTol(i) - порог, ниже которого значения соответствующих компонентов не важны. Если задано скалярное значение, оно применяется ко всем компонентам.

Векторизация

В следующей таблице описывается свойство векторизации BVP. Векторизация функции ОДУ, используемой bvp4c отличается от векторизации, используемой решателями ОДУ:

  • Для bvp4c, функция ОДУ должна быть векторизирована относительно первого аргумента, а также второго аргумента, так что F([x1 x2 ...],[y1 y2 ...]) прибыль [F(x1,y1) F(x2,y2)...].

  • bvp4c выгоды от векторизации даже при предоставлении аналитических якобинцев. Для жестких решателей ОДУ векторизация игнорируется при использовании аналитических якобианов.

Свойства векторизации

Собственность

Стоимость

Описание

Vectorized

on | {off}

Включить для информирования bvp4c что вы закодировали функцию ODE F так, что F([x1 x2 ...],[y1 y2 ...]) прибыль [F(x1,y1) F(x2,y2) ...]. То есть функция ОДУ может передать решателю сразу целый массив векторов столбцов. Это позволяет решателю сократить количество оценок функций и может значительно сократить время решения.

При использовании обозначений массива MATLAB ® векторизацию функции ОДУ обычно является простым делом. В shockbvp пример, показанный ранее, функция shockODE была векторизирована с помощью двоеточия в подстрочные значения и с помощью умножения массива (.*) оператор.

function dydx = shockODE(x,y,e)
pix = pi*x;
dydx = [ y(2,:)... 
-x/e.*y(2,:)-pi^2*cos(pix)-
pix/e.*sin(pix)];

Аналитические частные дериваты

По умолчанию bvp4c решатель аппроксимирует все частные производные с конечными разностями. bvp4c может быть более эффективным, если предоставить аналитические частные производные, ∂f/∂y дифференциальные уравнения, и аналитические частные производные, ∂bc/∂ya и ∂bc/∂yb, граничных условий. Если проблема связана с неизвестными параметрами, необходимо также предоставить частные производные, ∂f/∂p и ∂bc/∂p, относительно параметров.

В следующей таблице описаны аналитические свойства частных производных.

Аналитические свойства частных производных BVP

Собственность

Стоимость

Описание

FJacobian

Дескриптор функции

Дескриптор функции, который вычисляет аналитические частные производные f (x, y). При решении y= f (x, y) задайте для этого свойства значение@fjac если dfdy = fjac(x,y) оценивает якобинскую ∂f/∂y. Если проблема включает неизвестные параметры p, [dfdy,dfdp] = fjac(x,y,p) также должен возвращать частную производную ∂f/∂p. Для проблем с постоянными частными производными установите для этого свойства значение dfdy или к массиву ячеек {dfdy,dfdp}.

BCJacobian

Дескриптор функции

Дескриптор функции, вычисляющий аналитические частные производные bc (ya, yb). Для граничных условий bc (ya, yb) задайте для этого свойства значение@bcjac если [dbcdya,dbcdyb] = bcjac(ya,yb) вычисляет ∂bc/∂ya частных производных и ∂bc/∂yb. Если проблема включает неизвестные параметры p, [dbcdya,dbcdyb,dbcdp] = bcjac(ya,yb,p) также должен возвращать частную производную ∂bc/∂p. Для проблем с постоянными частными производными задайте для этого свойства массив ячеек {dbcdya,dbcdyb} или {dbcdya,dbcdyb,dbcdp}.

Сингулярные BVP

bvp4c может решать единичные задачи формы

y′=Syx+f (x, y, p)

на интервале [0, b], где b > 0. Для таких задач укажите постоянную матрицу S как значение SingularTerm. Для уравнений этой формы, odefun вычисляет только член f (x, y, p), где p представляет неизвестные параметры, если таковые имеются.

Свойство BVP в единственном числе

Собственность

Стоимость

Описание

SingularTerm

Постоянная матрица

Сингулярный член сингулярных BVP. Установить в постоянную матрицу S для уравнений вида

y′=Syx+f (x, y, p)

на интервале [0, b], где b > 0 .

Свойство «Размер сетки»

bvp4c решает систему алгебраических уравнений для определения численного решения BVP в каждой из точек сетки. Размер алгебраической системы зависит от количества дифференциальных уравнений (nи количество точек сетки в текущей сетке (N). Когда допустимое количество точек сетки исчерпано, вычисление прекращается, bvp4c отображает предупреждающее сообщение и возвращает найденное решение. Это решение не удовлетворяет допуску ошибок, но может обеспечить отличное начальное предположение для вычислений, перезапущенных с ослабленными допусками ошибок или увеличенным значением NMax.

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

Свойство размера сетки BVP

Собственность

Стоимость

Описание

NMax

положительное целое число {floor(1000/n)}

Максимальное количество точек сети, разрешенное при решении BVP, где n - количество дифференциальных уравнений в задаче. Значение по умолчанию NMax ограничивает размер алгебраической системы примерно 1000 уравнениями. Для систем с несколькими дифференциальными уравнениями значение по умолчанию NMax должно быть достаточно для получения точного решения.

Свойство статистики решения

Stats позволяет просматривать статистику решения.

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

Свойство статистики решения BVP

Собственность

Стоимость

Описание

Stats

on | {off}

Указывает, отображаются ли статистические данные о вычислениях. Если stats свойство - on, после решения проблемы, bvp4c отображает:

  • Количество точек в сетке

  • Максимальный остаток раствора

  • Количество вызовов функции дифференциального уравнения odefun для оценки f (x, y)

  • Количество вызовов функции граничного условия bcfun для оценки bc (y (a), y (b))

Примеры

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

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

Восстановление значения 'RelTol' от options, введите

bvpget(options,'RelTol')

ans =

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