matlab - 积分微分方程

标签 matlab differential-equations

我有一组以下形式的微分方程:

x1dot = x3;
x2dot = x2;
x3dot = x1;
x4dot = x2 + integral(x1,t,tend)

我在 tstartx3x4< 处有 x1x2 的边界条件tend。没有积分项,它是使用 BVP4C 的直接实现。

我想知道是否有可能从 BVP 求解器中获得先前的状态解,该解可用于积分。

一种可能性是结合使用 ode45fsolve 来解决边界值问题,我可以得到以前的解决方案,但这种方法不如 BVP 快设置。

我也觉得用之前的解法x1做积分可能收敛有些困难。

是否有更好/更快或更简单的方法来解决这个问题?

最佳答案

设置

x5 = integral(x1,t,tend)

然后

x5dot = -x1  with  x5(tend) = 0

因为 x5dot + x3dot = 0,所以 x5 + x3 = C = const。因此,您可以使用替换 x5 → C - x3

常量 C 就是 C = x3(tend) + x5(tend) = x3(tend)(因为 x5(tend) = 0)。

关于matlab - 积分微分方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41228805/

相关文章:

matlab - 如何在 matlab 中求解具有某些终端条件的 ODE 系统?

python - 实现数值求解微分方程的初始条件

arrays - MATLAB:如何找到长度大于阈值的单元格的索引?

matlab/octave - 广义矩阵乘法

julia - 如何在 Julia 中快速求解多项式方程?

matlab - 如何在matlab中绘制坡度场

matlab - 生成具有 N 个非零元素的随机稀疏矩阵

matlab - 从盈透证券获取 future 合约列表

matlab - matlab 中 pca 的系数不是 p*p 矩阵

python - tensorflow 中是否有一个函数可以对索引函数进行转换?