Вычислите сопоставимые начальные условия для ode15i
[y0_new,yp0_new] = decic(odefun,t0,y0,fixed_y0,yp0,fixed_yp0)
[y0_new,yp0_new] = decic(odefun,t0,y0,fixed_y0,yp0,fixed_yp0,options)
[y0_new,yp0_new,resnrm] = decic(___)
использует [y0_new,yp0_new] = decic(odefun,t0,y0,fixed_y0,yp0,fixed_yp0)
y0
и yp0
как предположения для начальных условий полностью неявной функции odefun
, содержит компоненты, заданные fixed_y0
и fixed_yp0
, как зафиксировано, затем вычисляет значения для нефиксированных компонентов. Результатом является полный набор сопоставимых начальных условий. Новые значения yo_new
и yp0_new
удовлетворяют odefun(t0,y0_new,yp0_new) = 0
и подходят, чтобы использоваться в качестве начальных условий с ode15i
.
также использует структуру опций [y0_new,yp0_new] = decic(odefun,t0,y0,fixed_y0,yp0,fixed_yp0,options)
options
, чтобы задать значения для AbsTol
и RelTol
. Создайте структуру опций с помощью odeset
.
возвращает норму [y0_new,yp0_new,resnrm] = decic(___)
odefun(t0,y0_new,yp0_new)
как resnrm
. Если норма кажется незаконно большой, то используйте options
, чтобы уменьшить допуск относительной погрешности RelTol
, который имеет значение по умолчанию 1e-3
.
ihb1dae
и файлы iburgersode
в качестве примера используют decic
, чтобы вычислить сопоставимые начальные условия прежде, чем решить с ode15i
. Введите edit ihb1dae
или edit iburgersode
, чтобы просмотреть код.
Можно дополнительно использовать decic
, чтобы вычислить сопоставимые начальные условия для ДАУ, решенных ode15s
или ode23t
. Для этого выполните эти шаги.
Перепишите систему уравнений в полностью неявной форме f(t,y,y') = 0
.
Вызовите decic
, чтобы вычислить сопоставимые начальные условия для уравнений.
Задайте y0_new
как начальное условие в вызове решателя и задайте yp_new
как значение опции InitialSlope
odeset
.