是否可以使用在仿真时间内solve_ivp每个求解器时间步返回的求解向量?



我一直在努力寻找一种方法来访问我在运行期间其他计算的每个求解器成功时间步返回的解决方案向量。 将我的问题简化为: 对于时间跨度[0,.001]我求解微分方程Xdot =A*X+B*U(状态空间方程( 用

sol=solve_ivp(conv,tspan,X0)

在每个sol.t点,都会计算一个X解。我想在运行期间访问该解决方案。sol.y在模拟结束时返回整个数组,但我希望在每个时间点都X解决方案,以便在运行期间conv函数中使用它。

在导数函数中,您可以访问 y。 每次solve_ivp访问它时,您都可以将 y 存储在使用 "args=" 传递给函数的数据数组中。 您还可以写入磁盘或更新绘图等。

如何包装你的函数conv

def fun(t,y):
print(t)
return conv(t,y)

每次调用函数时,它都会打印t的值。

最新更新