NDSolve in matrix form

*To*: mathgroup at smc.vnet.net*Subject*: [mg120460] NDSolve in matrix form*From*: gcarlson <gcarlson at xannah.org>*Date*: Sun, 24 Jul 2011 03:19:03 -0400 (EDT)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com

I am trying to numerically solve systems of ODEs using Mathematica 7. The desired accuracy that I am striving for depends on the number of solution functions so I want to structure my solution algorithm to allow different numbers of solution functions. Solving the problem as a system of ODEs in matrix form seems the logical choice: dX/dt = f[X[t]], where f[X[t]] is a specified function, and X[t] is a vector of solution functions {x1[t],x2[t],...}. The initial conditions are specified by a vector X[0] = {x1[0],x2[0],...}. In my problem, the number of solution functions will usually vary from 3 to 7, but could be any number. One approach that doesn't work is: f := {f[[1]][t], f[[2]][t], f[[3]][t]} fInit := {0, 0, 2} mat := {(-3*f[[1]][t] - f[[2]][t]), 26.5*f[[1]][t] - f[[2]][t] - f[[1]][t]*f[[3]][t], f[[1]][t]*f[[2]][t] - f[[3]][t]} solution = NDSolve[{Derivative[1][f][t] == mat, f[0] == fInit}, f, {t, 0, 17}] I don't know if the problem is in the way f is specified or in my expression for NDSolve. I'd appreciate any assistance. Thanks and regards, Glenn