为一阶隐式找到一致的初始条件与代数约束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
。
减少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
findDecoupledBlocks
|daeFunction
|incidenceMatrix
|isLowIndexDAE
|massMatrixForm
|odeFunction
|reduceDAEIndex
|reduceDAEToODE
|reduceDifferentialOrder
|reduceRedundancies