检查方程组的微分指数是否小于2
检查一阶半线性dae系统是否具有较低的微分指数(0
或1
).
创建以下两个微分代数方程的系统。在这里,x (t)
而且y (t)
是系统的状态变量。将方程和变量指定为两个符号向量:将方程指定为符号方程的向量,将变量指定为符号函数调用的向量。
信谊x (t) y (t)方程式= [diff (x (t) t) = = x (t) + y (t) x (t) ^ 2 + y (t) ^ 2 = = 1];Vars = [x(t), y(t)];
使用isLowIndexDAE
检查系统的微分顺序。这个方程组的微分阶是1
.对于索引系统0
而且1
,isLowIndexDAE
返回1
(真正的
).
isLowIndexDAE(方程式一样,var)
Ans =逻辑1
检查下列DAE系统是否具有低或高的差异索引。如果指数大于1
,然后使用reduceDAEIndex
减少它。
创建以下两个微分代数方程的系统。在这里,x (t)
,y (t)
,z (t)
是系统的状态变量。将方程和变量指定为两个符号向量:将方程指定为符号方程的向量,将变量指定为符号函数调用的向量。
信谊x (t) y (t) z (t) f (t)方程式= [diff (x (t) t) = = x (t) + z (t)……Diff (y(t),t) == f(t), x(t) == y(t)];Vars = [x(t), y(t), z(t)];
使用isLowIndexDAE
检查系统的差动指标。对于这个系统isLowIndexDAE
返回0
(假
).这意味着系统的微分指标为2
或更高版本。
isLowIndexDAE(方程式一样,var)
Ans =逻辑0
使用reduceDAEIndex
重写方程组,使微分下标为1
.用四个输出参数调用这个函数还会显示原始系统的差异索引。新系统有一个额外的状态变量,Dyt (t)
.
[newEqs, newVars, ~, oldIndex] = reduceDAEIndex(eqs, vars)
newEqs = diff (x (t), t) - z (t) x (t) Dyt (t) - f (t) x (t) - y (t) diff (x (t) t) - Dyt (t) newVars = x (t) y (t) z (t) Dyt (t) oldIndex = 2
检查新系统的差阶是否小于2
.
isLowIndexDAE (newEqs newVars)
Ans =逻辑1
daeFunction
|decic
|findDecoupledBlocks
|incidenceMatrix
|massMatrixForm
|odeFunction
|reduceDAEIndex
|reduceDAEToODE
|reduceDifferentialOrder
|reduceRedundancies