Re: matrix diffential equations
- To: mathgroup at smc.vnet.net
- Subject: [mg27517] Re: matrix diffential equations
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Sat, 3 Mar 2001 03:39:59 -0500 (EST)
- Organization: Universitaet Leipzig
- References: <97l4gb$jjt@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
> Simple way to crash Mathematica is by writing
> y := Array[y, {3, 3}]
> Even Quit Kernel doesn't stop Mathematica, and I have experience application
> error and crashes (both in Mathematica dll and Mathematica.exe for simple
> programs) and in so cases Mathematica has to be closed from the Task Manager
> (Windows 2000). Regarding Mathematica exception coding, I'm not impressed,
> just IMHO.
If you code a recursion you have to live with the result.
My personal opinion is that Mathemtica should format
the hard drive in such a case and overheat the CPU.
This will teach clever users to *think* before they
use a computer algebra.
A vector is typical not identical with it's components.
>
> Just have to buss it out :-(
>
> My question is the following: Is there a simple way to define matrix
> diffential equation in Mathematica, I have tried something like:
> A[t_]:= {{1,1,1},{1,1,1},{1,1,1}}*t
> y := Array[ytmp, {3, 3}]
> eqns = {y'[u] == A[u]. y[u], y[s] == A[s]}
> NDSolve[eqns, y, {u, s, t}]
>
> But this is not the way.
Perhaps ?
yvec = Map[#[u] & , Array[y, {3, 3}], {2}]
eqns = Flatten [
Thread /@ Flatten[
Thread[#, List] & /@
{D[yvec, u] == A[u].yvec,
(yvec /. u -> s) == A[s]}]]
NDSolve[eqns /. s -> 0, Flatten[yvec], {u, 0, 2}]
BTW is the SetDealyed[] in
y := Array[ytmp, {3, 3}]
a habit or has it deeper reasons.
Regards
Jens