如何数值求解该微分方程组?

时间:2020-06-07 12:21:06

标签: differential-equations

system of differential equations

请看上面的图片

如何为该系统建立派生函数以使用scipy.integrate.odeint? 我试图将3个DE表示为坐标(q,alpha,beta)的二阶导数的线性组合,并在具有一阶或非导数项的微分函数(由odeint接受)中对其进行计算。 但是我发现系数矩阵具有退化性,并带来了一些麻烦。 我该如何解决这种系统?

1 个答案:

答案 0 :(得分:0)

您有一个系统

M(z)*D*z'' = F(t,z,z')

您可以使用numpy的线性系统求解器来实现它

def system(t,u):
    z,Dz = np.reshape(u,[-1,2])
    D2z = diag([1,1/q,1/b]).dot( np.linalg.solve(M(z), F(t,z,Dz)) )
    return np.concatenate(Dz, D2z)

或类似的