Re: Q: NDSolve
- To: mathgroup at smc.vnet.net
- Subject: [mg21785] Re: Q: NDSolve
- From: Paul Abbott <paul at physics.uwa.edu.au>
- Date: Thu, 27 Jan 2000 22:57:08 -0500 (EST)
- Organization: University of Western Australia
- References: <85mmgb$268@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Christoph Handel wrote:
> is there a nice way to solve an equation like this:
>
> x'[t] == aMatrix[t] . x[t]
>
> where x ist a Vector.
>
> I tried something like this:
>
> NDSolve[{x'[t]== aMatrix[t] . x[t], x[0]=={1,2,3...}},x,{t,0,42}]
Here is a "reasonably" nice way which makes use of Through and Thread:
For the vector
x = {a, b, c};
and the matrix
A[t_] = {{1, 2 t, 7}, {4, 3, 9 - t^2}, {0, 0, 1}};
the set of differential equations can be written as
eqn = Thread[D[Through[x[t]], t] == A[t] . Through[x[t]]]
Specifying the initial conditions,
ics = Thread[Through[x[0]] == {1, 0, 2}]
we can now use NDSolve directly:
NDSolve[Join[eqn, ics], x, {t, 0, 1}]
Cheers,
Paul