reduceDAEToODE

一阶的转换系统半线性代数方程至差分索引为0的等效系统

描述

newEqs= reduceDAEToODE(公式瓦尔转换第一阶半线性代数方程的高指数系统公式到常微分方程的等效系统,newEqs。新系统的差分索引是0,也就是说,雅可比newEqs相对于所述变量的衍生物瓦尔是可逆的。

[newEqsconstraintEqs] = reduceDAEToODE(公式瓦尔返回约束方程的矢量。

[newEqsconstraintEqsoldIndex] = reduceDAEToODE(公式瓦尔返回差分索引oldIndex半线性DAE的原有系统,公式

例子

转换DAE系统,以隐式ODE系统

转换微分代数方程模块(DAE)的一个系统,以隐式常微分方程(常微分方程)的系统。

创建两个差分代数方程组的下列系统。在这里,象征性的功能X(t)的Y(t)的Z(t)的表示该系统的状态变量。指定方程和变量作为两个符号载体:方程式符号方程的矢量和变量为符号函数调用的向量。

SYMS X(t)Y(t)的Z(t)的等式= [DIFF(X,T)+ X *的diff(Y,T)== Y,... X *的diff(X,T)+ X ^ 2* DIFF(Y)==的sin(x),... X ^ 2 + Y ^ 2 == T * Z];瓦尔= [X(t),Y(t)的,Z(T)];

reduceDAEToODE重写系统,使得所述差分索引是0

newEqs = reduceDAEToODE(均衡器,VARS)
newEqs = X(t)·DIFF(Y(T),T) -  Y(t)的+ DIFF(X(t),T)的diff(X(t),T)*(cos(X(t)) -Y(t))的 -  X(t)·DIFF(Y(T),T)z的(T) -  2 * X(t)*差异(X(t),T) -  2 * Y(t)的* DIFF(Y(T),T)+ T *的diff(Z(T),T)

降低系统和回报更多详细信息

检查以下DAE系统具有低(0要么1)或高(> 1)差分索引。如果该指数高于1,首先尝试使用,以减少索引reduceDAEIndex然后使用reduceDAEToODE

创建微分代数方程的系统。在这里,功能X1(t)的X2(t)的X3(t)的表示该系统的状态变量。该系统还包含了功能Q1(t)的Q2(t)的Q3(t)的。这些功能并不代表状态变量。指定方程和变量作为两个符号载体:方程式符号方程的矢量和变量为符号函数调用的向量。

SYMS X1(t)的X2(t)的X3(t)的Q1(t)的Q2(t)的Q3(t)的等式= [DIFF(×2)== Q1  -  X1,DIFF(×3)== Q2  -  2 * X2  -T *(Q1-X1),Q3  -  T * X2  -  X3的];瓦尔= [X1(吨),X2(t)的X3(吨)];

isLowIndexDAE检查系统的差分索引。对于这个系统,isLowIndexDAE回报0)。这意味着,系统的差分索引是2或更高。

isLowIndexDAE(均衡器,VARS)
ANS = 0逻辑

reduceDAEIndex作为你的第一次尝试重写系统,使差分指数1。对于这个系统,reduceDAEIndex发出警告,因为它不能在系统的差分指数降低0要么1

[newEqs,newVars] = reduceDAEIndex(方程,乏)
警告:索引减少的DAE的是大于1。newEqs = X1(T) -  Q1(t)的+ DIFF(X2(t)的,T)Dx3t(T) -  Q2(吨)+ 2 * X2(t)的+吨*(Q1(T) -  X1(t))的Q 3(t)的 -  X3(T) -  T * X2(t)的差异(Q3(T),T) -  X2(t)的 -  T *的diff(X2(吨),T) -  Dx3t(t)的newVars = X1(t)的X2(t)的X3(t)的Dx3t(t)的

如果reduceDAEIndex因此,该指数是不能减少半线性系统0要么1,请尝试使用reduceDAEToODE。此函数可以是慢得多,因此不建议作为首选。使用语法有两个输出参数也返回约束方程。

[newEqs,constraintEqs] = reduceDAEToODE(方程,乏)
newEqs = X1(T) -  Q1(t)的+ DIFF(X2(t)的,T)2 * X2(吨) -  Q2(t)的+ T * Q1(T) -  T * X1(t)的+ DIFF(X3(T),T)的diff(X1(t)的,T) -  DIFF(Q1(T),T)+ DIFF(Q2(t)的,T,T) -  DIFF(Q3(T),T,T,T)constraintEqs= x1(t) - q1(t) + diff(q2(t), t) - diff(q3(t), t, t) x3(t) - q3(t) + t*x2(t) x2(t) - q2(t) + diff(q3(t), t)

使用语法有三个输出参数,返回新方程,约束方程,与原系统的差分指数,公式

[newEqs,constraintEqs,oldIndex] = reduceDAEToODE(方程,乏)
newEqs = X1(T) -  Q1(t)的+ DIFF(X2(t)的,T)2 * X2(吨) -  Q2(t)的+ T * Q1(T) -  T * X1(t)的+ DIFF(X3(T),T)的diff(X1(t)的,T) -  DIFF(Q1(T),T)+ DIFF(Q2(t)的,T,T) -  DIFF(Q3(T),T,T,T)constraintEqs= x1(t) - q1(t) + diff(q2(t), t) - diff(q3(t), t, t) x3(t) - q3(t) + t*x2(t) x2(t) - q2(t) + diff(q3(t), t) oldIndex = 3

输入参数

全部收缩

一阶半线性DAE的,指定为符号方程或表达式向量的系统。

状态变量,指定为象征性的函数或函数调用,如向量X(t)的

例:[X(t),Y(t)的]要么[X(t); Y(t)的]

输出参数

全部收缩

隐式常微分方程,返回作为符号表达式的列向量的系统。该系统的差动指数是0

系统还原过程中遇到的约束方程,返回作为符号表达式的列向量。这些表达式取决于变量瓦尔,但不是在它们的衍生物。的约束是保守的微分方程的数量在newEqs的,这意味着每个约束消失的时间导数模在方程newEqs

您可以使用这些方程,以确定DAE系统一致的初始条件。

原DAE系统的差异指数公式,返回一个整数。

算法

实施reduceDAEToODE基于高斯消元法。该算法比Pantelides算法使用更可靠reduceDAEIndex,但它可以慢得多。

介绍了在R2014b