# NDSolve a large System of linear ODEs [closed]

I want to solve a 'large' System of ODEs in the form:

$$\frac{d\mathbf{y}(t)}{dt}+M(t)\cdot\mathbf{y}(t)=0 \label{a} \tag{1}$$

Where M is an NxN Matrix, N is in the order of 600 and involves interpolating functions.

By just using the brute force approach:

NDSolve[{ListofEquations,InitialConditions},{yList},{t,tstart,tend}]


where I just give Mathematica the raw list of flattened-out equations. Mathematica fails and suggests me to use:

Method -> {"EquationSimplification" -> "Residual"}


This leads to an overwhelming long initialization time before the algorithm then starts to solve the Equations (i tracked this by monitoring t). My Question are now:

• How can I provide Mathematica directly a solvable equation-form without the need of the long initialization using Method -> {"EquationSimplification" -> "Residual"}. This Tutorial explains the method but i dont see how I can provide a form like $F(y',y,t)=0$ directly
• What is the most efficient (or efficient) way to solve an equation like \ref{a}, where M involves interpolating function?
• Should we assume that there are no symmetries or other additional structures in the equations or initial conditions? – aardvark2012 Oct 23 '17 at 22:48
• Have a look at in the section Transient PDEs. Even if this is for FEM it does deal with large sets of ODEs. – user21 Oct 23 '17 at 23:36
• Can M be diagonalized? – bbgodfrey Oct 24 '17 at 0:07
• Have you tried the vector form of NDSolve? Something like NDSolve[{y'[t] + M[t] . y[t] ==0, y[0] == {..}}, y, {t, tstart, tend}]? – Carl Woll Dec 26 '17 at 21:37