Вычислите сопоставимые начальные условия для 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.