trouble with NDSolve: how to diagnose a problem with initial conditions?

• To: mathgroup at smc.vnet.net
• Subject: [mg127778] trouble with NDSolve: how to diagnose a problem with initial conditions?
• From: dantimatter <google at dantimatter.com>
• Date: Wed, 22 Aug 2012 02:24:59 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• Delivered-to: l-mathgroup@wolfram.com
• Delivered-to: mathgroup-newout@smc.vnet.net
• Delivered-to: mathgroup-newsend@smc.vnet.net

```Hello All,
I've been trying to use NDSolve to solve a rather large set of equations of differential and algebraic equations, but I keep getting a cryptic error: "NDSolve::icfail: Unable to find initial conditions that satisfy the residual function within specified tolerances. Try giving initial conditions for both values and derivatives of the functions".  Are there other functions that I could use to better determine what's wrong with the way I set up the problem?   Code is below.
Many thanks!

---------------------------------------------

eqs={Derivative[1][PparDE][t] == -100 E70[t] PparDE[t] -
100 parDcomplex[t] PparDE[t] +
50 (0.5 - PparDE[t] - PparDEbound[t]) + 50 PparDEbound[t],
Derivative[1][PparDEbound][t] ==
100 E70[t] PparDE[t] - 50 PparDEbound[t],
Derivative[1][GFPmRNA][t] == -0.001 GFPmRNA[t] + 0.05 PparDEbound[t],
Derivative[1][GFPd][t] == -0.002 GFPd[t] + (0.05 GFPmRNA[t] R0[t])/(
500 + R0[t]), Derivative[1][GFP][t] == 0.002 GFPd[t],
Derivative[1][P70][t] == 50 (0.005 - P70[t]) - 100 E70[t] P70[t],
Derivative[1][S28mRNA][t] ==
0.05 (0.005 - P70[t]) - 0.001 S28mRNA[t],
Derivative[1][S28][t] ==
400 E28[t] - 800 E0[t] S28[t] + (0.05 R0[t] S28mRNA[t])/(
50 + R0[t]), S70[t] == 29.995 - E70[t] + P70[t] - PparDEbound[t],
Derivative[1][P28][t] == 50 (P28tot - P28[t]) - 100 E28[t] P28[t],
Derivative[1][parDmRNA][t] ==
0.05 (P28tot - P28[t]) - 0.001 parDmRNA[t],
Derivative[1][parD][t] == -2 (100 parD[t]^2 - 50 parDcomplex[t]) + (
0.05 parDmRNA[t] R0[t])/(500 + R0[t]),
Derivative[1][parDcomplex][t] ==
100 parD[t]^2 - 50 parDcomplex[t] - 100 parDcomplex[t] PparDE[t] +
50 (0.5 - PparDE[t] - PparDEbound[t]),
Derivative[1][E70][t] == -400 E70[t] + 50 (0.005 - P70[t]) -
100 E70[t] P70[t] - 100 E70[t] PparDE[t] + 50 PparDEbound[t] +
800 E0[t] S70[t],
Derivative[1][E28][t] == -400 E28[t] + 50 (P28tot - P28[t]) -
100 E28[t] P28[t] + 800 E0[t] S28[t],
E0[t] == 100 - E28[t] - E70[t] - 6. (P28tot - P28[t]) -
14.3333 (0.005 - P70[t]) - 14.3333 PparDEbound[t],
Rgfp[t] == (21. GFPmRNA[t] R0[t])/(500 + R0[t]),
R28[t] == (21. R0[t] S28mRNA[t])/(50 + R0[t]),
RparD[t] == (8.5 parDmRNA[t] R0[t])/(500 + R0[t]),
R0[t] == 1500 - R28[t] - Rgfp[t] - RparD[t], PparDE[0] == 0.5,
PparDEbound[0] == 0, GFPmRNA[0] == 0, GFPd[0] == 0, GFP[0] ==
= 0,
P70[0] == 0.005, S28mRNA[0] == 0, S28[0] == 0, P28[0] == P28tot,
parDmRNA[0] == 0, parD[0] == 0, parDcomplex[0] == 0, E70[0] == 0,
E28[0] == 0};

vars = {PparDE[t], PparDEbound[t], GFPmRNA[t], GFPd[t], GFP[t],
P70[t], S28mRNA[t], S28[t], S70[t], P28[t], parDmRNA[t], parD[t],
parDcomplex[t], E70[t], E28[t], E0[t], Rgfp[t], R28[t], RparD[t],
R0[t]};

sols = NDSolve[eqs /. P28tot -> 0, vars, {t, 0, 1000000}]

```

• Prev by Date: Re: V8 slow like a snail
• Next by Date: Re: Constraining a Location to Move Along a Plot in a Manipulate
• Previous by thread: Re: Constraining a Location to Move Along a Plot in a Manipulate
• Next by thread: Washington DC Area Mathematica SIG