连续微分方程组转换为离散差分方程组的求解咨询
我有如下形式的连续微分方程组:
$$
\begin{cases}
\dot{X}(t) = A_1X(t) + B_1U(t) \
\dot{Y}(t) = A_2Y(t) + B_2U(t)+CX(t)
\end{cases}
$$
我需要将其转换为如下形式的离散差分方程组:
$$
\begin{cases}
X(t_{k+1}) = k_{11} X(t_{k}) + k_{12} U(t_k) \
Y(t_{k+1}) = k_{21} Y(t_{k}) + k_{22} X(t_{k})+ k_{23} U(t_k)
\end{cases}
$$
我已经用解析法求出了第一个方程(假设在区间$(t_k, t_{k+1})$内$U$为常数),但完全不知道怎么处理第二个方程里的$X(t)$项,求各位大佬帮忙出出主意!编辑:我好像有点思路了,是不是在解析求解第二个方程的时候,直接用...
别担心,这个问题其实就是要利用第一个方程的解析解来代入第二个方程的积分过程里,咱们一步步拆解:
第一步:明确第一个方程的解析解(你已经完成的部分)
因为假设$U(t)$在$[t_k, t_{k+1}]$上是常数$U_k=U(t_k)$,第一个线性微分方程的解析解可以写成:
$$X(t) = e^{A_1(t-t_k)}X(t_k) + \int_{t_k}^t e^{A_1(t-\tau)}B_1U_k d\tau$$
计算这个积分后就能得到你已经求出的离散形式:
$$X(t_{k+1}) = e^{A_1T}X(t_k) + \left(\int_0^T e^{A_1s}ds\right)B_1U_k$$
这里$T=t_{k+1}-t_k$是离散步长,对应你说的$k_{11}=e{A_1T}$,$k_{12}=\left(\int_0T e^{A_1s}ds\right)B_1$。
第二步:处理第二个方程的离散化
第二个方程是$\dot{Y}(t) = A_2Y(t) + B_2U_k + CX(t)$,这是典型的非齐次线性微分方程,它的通解形式为:
$$Y(t) = e^{A_2(t-t_k)}Y(t_k) + \int_{t_k}^t e^{A_2(t-\tau)}\left(B_2U_k + CX(\tau)\right)d\tau$$
现在把第一步得到的$X(\tau)$的解析解代入这个积分,把积分拆成两个独立的部分:
$$Y(t_{k+1}) = e^{A_2T}Y(t_k) + \int_0^T e^{A_2(T-s)}B_2U_k ds + \int_0^T e^{A_2(T-s)}CX(s+t_k)ds$$
接下来把$X(s+t_k)$的表达式代入第三个积分:
$$X(s+t_k) = e^{A_1s}X(t_k) + \left(\int_0^s e^{A_1\sigma}d\sigma\right)B_1U_k$$
代入后,第三个积分可以拆成分别关于$X(t_k)$和$U_k$的两个积分:
$$\int_0^T e{A_2(T-s)}C\left[e{A_1s}X(t_k) + \left(\int_0^s e^{A_1\sigma}d\sigma\right)B_1U_k\right]ds$$
$$= C\left(\int_0^T e{A_2(T-s)}e{A_1s}ds\right)X(t_k) + CB_1\left(\int_0^T e{A_2(T-s)}\left(\int_0s e^{A_1\sigma}d\sigma\right)ds\right)U_k$$
最后把所有项合并,就能得到你想要的离散形式:
$$Y(t_{k+1}) = k_{21}Y(t_k) + k_{22}X(t_k) + k_{23}U_k$$
其中各个系数对应:
- $k_{21} = e^{A_2T}$
- $k_{22} = C\int_0^T e{A_2(T-s)}e{A_1s}ds$
- $k_{23} = \left(\int_0^T e^{A_2s}ds\right)B_2 + CB_1\int_0^T e{A_2(T-s)}\left(\int_0s e^{A_1\sigma}d\sigma\right)ds$
补充小技巧
如果矩阵$A_1$和$A_2$是可交换的(即$A_1A_2=A_2A_1$),上面的积分可以简化,比如$\int_0^T e{A_2(T-s)}e{A_1s}ds = e{A_2T}\int_0T e^{(A_1-A_2)s}ds$,计算起来会更省事;如果矩阵不可交换,就只能按原积分形式计算数值解或者符号解啦。
备注:内容来源于stack exchange,提问作者Nrits

