Consider the following test case:
mMax = 50;
Ffuncs[r_] = Table[F[n, m][r], {n, mMax}, {m, mMax}];
NDSolve[Flatten@{
Thread[Flatten[D[Ffuncs[r], r]] == Flatten[Ffuncs[r].Ffuncs[r]]],
Thread[Flatten@Ffuncs[0] == Table[0, {mMax*mMax}]]
}, Flatten@Ffuncs[r], {r, 0, 2}];
When I set mMax to 49 or less, it works without any problems. But with 50 or higher, I get
NDSolve::ntdv: Cannot solve to find an explicit formula for the derivatives. Consider using the option Method->{"EquationSimplification"->"Residual"}.
That was Mathematica 11. Mathematica 9 gives a better message and a better suggestion, which actually works, unlike the suggestion above, which takes forever to complete the solution and eventually crashes the kernel. Here's Mathematica 9's message:
NDSolve::ndsdtc: The time constraint of 1.` seconds was exceeded trying to solve for derivatives, so the system will be treated as a system of differential-algebraic equations. You can use Method->{"EquationSimplification"->"Solve"} to have the system solved as ordinary differential equations. >>
But anyway, I've already gave NDSolve a system of equations explicitly solved for derivatives! Why does it still need to solve for derivatives?
NDSolveeven need to solve anything algebraically if the derivatives are already given to it? – Ruslan Nov 18 '16 at 18:55NDSolveconstructs a function that represents the "right-hand side" of the system ${\bf x}'(r) = f({\bf x}, r)$. It does that by solving the *equations* you pass it (I surmise). You don't actually pass derivatives toNDSolve. Each expression hasEqualas its head. It has to inspect them somehow to see what's there. I don't understand why it should take so long, though. – Michael E2 Nov 18 '16 at 20:24mMax. – Ruslan Dec 08 '16 at 12:29Method -> {"EquationSimplification" -> "Solve"}still works. – Michael E2 Dec 08 '16 at 12:43sol=NDSolve[...]part in your answer in V10, it gives >"The value of SystemOption !("PreemptiveCheckUseThreads") cannotbe modified". – user55777 Mar 05 '19 at 03:44
SystemOptions::nosetbelow the code already. Is it a problem for you? – Michael E2 Mar 05 '19 at 13:16