如何在Python中求解矩阵微分方程?

问题描述 投票:0回答:1

dx/dt = Ax其中Ax属于n x n数组。我曾尝试在solve_ivp中使用odeintscipy.integrate功能,但是这两个功能仅适用于n x 1数组。

python controls linear-algebra ode
1个回答
1
投票

集成商希望ODE函数使用平面的一维数组作为状态变量,并返回同样平面的导数向量。该输入数组包含矩阵的条目。要对其执行矩阵运算,您需要从平面输入数组构建矩阵,最后将其与导数函数的输出相反。

x0 = x0.reshape(-1);         # make data 1-dimensional
def odefun(t,x):
    x=x.reshape([n,n]);      # restore to matrix form
    dx=A.dot(x);             # perform matrix operations
    return dx.reshape(-1);   # return 1-dimensional vector

sol = solve_ivp(odefun, [t0, tf], x0)
© www.soinside.com 2019 - 2024. All rights reserved.