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 Properties

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

Error Tolerance Properties

Поскольку bvp4c использует формулу словосочетания, числовое решение основано на сетке точек, в которых удовлетворены уравнения словосочетания. Поймайте в сети выбор, и контроль ошибок основаны на невязке этого решения, такого, что вычисленное решение S (x) является точным решением встревоженной проблемы S ′ (x) = f (x, S (x)) + res (x). На каждом подынтервале mesh норма невязки в i th компонент решения, 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). На каждом подынтервале mesh удовлетворяет невязка 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, что вы закодировали функцию ОДУ 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}.

Сингулярный BVPs

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 в текущей mesh (N). Когда позволенное количество точек mesh исчерпывается, остановки вычисления, bvp4c отображает предупреждающее сообщение и возвращает решение, которое это нашло до сих пор. Это решение не удовлетворяет ошибочный допуск, но это может обеспечить превосходное исходное предположение для вычислений, перезапущенных с расслабленными ошибочными допусками или увеличенным значением NMax.

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

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

Свойство

Значение

Описание

NMax

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

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

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

Свойство 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

Для просмотра документации необходимо авторизоваться на сайте