主要内容

decic

为一阶隐式找到一致的初始条件与代数约束ODE体系

描述

例子

(y0,yp0)= decic (方程式,var,constraintEqs,t0,y0_est,fixedVars,yp0_est,选项)发现一致的初始条件对系统的一阶隐式返回的常微分方程和代数约束reduceDAEToODE函数。

调用[方程式,constraintEqs] = reduceDAEToODE (DA_eqs var)降低了微分代数方程组DA_eqs系统的常微分方程方程式。它还返回约束方程过程中遇到系统还原。变量的赋系统及其衍生物,decic发现一致的初始条件y0,yp0当时t0

用的数值y0,yp0的微分方程潜艇(方程式,[t;var (t);diff (var (t))]、[t0;y0;yp0])和约束方程潜艇(若干,[t;var (t);diff (var (t))]、[t0;y0;yp0])生产零向量。在这里,var必须是一个列向量。

y0_est对变量的值指定数值估计var当时t0,fixedVars显示的值y0_est期间,不得改变数值搜索。可选参数yp0_est允许您指定数值估计变量的导数的值var当时t0

例子

寻找ODE体系一致的初始条件

减少DAE系统系统的常微分方程。然后,找到一致的初始条件的变量产生的ODE体系及其一阶导数。

创建以下微分代数系统。

信谊x (t) y (t) DA_eqs = [diff (x (t) t) = = cos (t) + y (t)……x (t) ^ 2 + y (t) ^ 2 = = 1];var = [x (t);y (t)];

使用reduceDAEToODE这个系统转换为一个系统的常微分方程。

[方程式,constraintEqs] = reduceDAEToODE (DA_eqs var)
方程式= diff (x (t), t) - y (t) - cos (t) - 2 * x (t) * diff (x (t) t) - 2 * y (t) * diff (y (t) t) constraintEqs = 1 - y (t) ^ 2 - x (t) ^ 2

创建一个选项设置,指定数值公差数值搜索。

选择= odeset (RelTol, 10.0 ^ (7)、“AbsTol”, 10.0 ^ (7));

固定的值t0 = 0的时间和数值估计的变量及其导数值一致。

t0 = 0;y0_est = [0.1, 0.9];yp0_est = [0.0, 0.0];

你可以把约束作为变量的代数方程x固定的参数y。为此,设置fixedVars = [0, 1]。或者,你可以把它当作一个代数方程的变量y固定的参数x。为此,设置fixedVars = [1 0]

首先,设置初始值x (t0) = y0_est (1) = 0.1

fixedVars = [1 0];[y0, yp0] = decic(方程式一样,var, constraintEqs t0、y0_est fixedVars, yp0_est,选项)
y0 yp0 = 1.9950 - -0.2005 = 0.1000 0.9950

现在,改变fixedVars[0 1]。这个补丁y (t0) = y0_est (2) = 0.9

fixedVars = [0 1];[y0, yp0] = decic(方程式一样,var, constraintEqs t0、y0_est fixedVars, yp0_est,选项)
y0 yp0 = 1.9000 - 0.9202 = -0.4359 0.9000

确认这些初始值初始值满足方程和约束条件一致。

潜艇(方程式,[t;var;diff (var, t)]、[t0;y0;yp0])
ans = 0 0
潜艇(constraintEqs [t;var;diff (var, t)]、[t0;y0;yp0])
ans = 0

输入参数

全部折叠

隐式的常微分方程组,指定为一个向量符号方程或表达式。这里,表达式表示与零方程的右边。

通常,您可以使用表达式返回的reduceDAEToODE

原始DAE系统的状态变量指定为一个向量的符号函数或函数调用,如x (t)

例子:[x (t), y (t))[x (t); y (t))

约束方程过程中遇到系统还原,指定为一个向量符号方程或表达式。这些表达式或方程取决于变量var,但不是在他们的衍生品。

通常,您可以使用返回的约束方程reduceDAEToODE

最初的时间,指定为一个数字。

估计这些变量的值var在最初的时间t0,指定为一个数值向量。

输入向量表示的元素y0_est是固定的值,指定为一个向量0年代或1年代,固定的值y0_est对应的值1fixedVars。这些值在数值搜索不修改。零条目fixedVars对应于这些变量y0_estdecic解决了约束方程。的数量0年代必须配合约束方程的数量。的雅可比矩阵约束的变量var (fixedVars = = 0)必须是可逆的。

估计变量的一阶导数的值var在最初的时间t0,指定为一个数值向量。

选择数值搜索,指定结构作为一个选项,返回的odeset。例如,您可以指定公差数值搜索。

输出参数

全部折叠

一致的初始值为变量,返回一个数字列向量。

一致的初始值对变量的一阶导数值,作为一个数字列向量返回。

介绍了R2014b