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