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 использует формулу коллокации, численное решение основано на mesh точек, в которых выполняются уравнения коллокации. Выбор сетки и управление ошибками основаны на невязке этого решения, таким образом, что вычисленное решение S (x) является точным решением возмущенной задачи S (x) = f (x, S (x)) + res (x). На каждом подынтервале mesh невязки в 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 (<reservedrangesplaceholder8>) является точное решение <reservedrangesplaceholder7>  (<reservedrangesplaceholder6>) = F (x, S (<reservedrangesplaceholder2>)) + res (<reservedrangesplaceholder1>). На каждом подынтервале mesh остаточный res (x) удовлетворяет

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

AbsTol

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

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

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

Следующая таблица описывает свойство векторизации BVP. Векторизация функции ODE, используемой 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® обозначение массива, обычно легко векторизировать функцию ODE. В 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 может быть более эффективным, если Вы обеспечиваете аналитические частные производные  <reservedrangesplaceholder9> /  <reservedrangesplaceholder8> дифференциальных уравнений и аналитические частные производные,  <reservedrangesplaceholder7> /  <reservedrangesplaceholder6> и  <reservedrangesplaceholder5> /  <reservedrangesplaceholder4>, граничных условий. Если проблема включает неизвестные параметры, Вы должны также обеспечить частные производные,  <reservedrangesplaceholder3> /  <reservedrangesplaceholder2> и  <reservedrangesplaceholder1> /  <reservedrangesplaceholder0>, относительно параметров.

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

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) оценивает частные производные  <reservedrangesplaceholder5> /  <reservedrangesplaceholder4> и  <reservedrangesplaceholder3> /  <reservedrangesplaceholder2>. Если проблема связана с неизвестными параметрами 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

Матрица констант

Сингулярный термин сингулярных BVPs. Установите в матрицу констант S для уравнений вида

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

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

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

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

В следующей таблице описано свойство mesh size.

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

Свойство

Значение

Описание

NMax

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

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

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

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

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

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

Свойство

Значение

Описание

Stats

on | {off}

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

  • Число точек в mesh

  • Максимальная невязка решения

  • Количество вызовов функции дифференциального уравнения 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