MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: NDSolve Errors: icfail and ntdv


if you have a system of differential equations
Mathematica trys to bring the system in an explicit form
so that one get equations

if this can't be done Mathematica try to
solve the implicit equations.
Fot the implicit equations it is so, that the initial
conditions you gave, must fullfill the implicit equations
at t=0. And in your case that is not true because

deqn = {Derivative[2][Lc][t] == g*(1 - \[Rho]d/\[Rho]w),
     t] == ((8*\[Alpha]*rs[t]^2 - rc[t]^2)/(4*rs[t]))*
      Derivative[1][Ls][t] +
   Derivative[1][Ls][t] == (1/(2*\[Alpha]))*Derivative[1][rs][t],
      t] + (((\[Kappa]*(24/(rs[t]*Derivative[1][Ls][t]) +
                4/(rs[t]*Derivative[1][Ls][t])^(1/3)) +

              Derivative[1][Ls][t])^2 +
          40*((3*\[Kappa] + 2)/(rs[t]*Derivative[1][Ls][t])) +
          15*\[Kappa] + 10)/
               ((1 + \[Kappa])*(5 + (rs[t]*
          ms[t]))*Derivative[1][Ls][t]^2 - (1 - \[Rho]w/\[Rho]s[t])*g ==
      Derivative[1][ms][t] ==
    8*Pi*\[Alpha]*\[Rho]w*Derivative[1][Ls][t]*rs[t]^2 +
      rc[t]^2*(Derivative[1][Lc][t] - Derivative[1][Ls][t]),
     t] == (3/(4*Pi*rs[t]^3))*
      Derivative[1][ms][t] - ((9*ms[t])/(4*Pi*rs[t]^4))*


init = {ms[0] == (4/3)*Pi*\[Rho]d*rso^3, \[Rho]s[0] == \[Rho]d,
   Lc[0] == 0, Ls[0] == 0, rc[0] == 0, rs[0] == rso,
   Derivative[1][Ls][0] == vso,
      Derivative[1][Lc][0] == 0, Derivative[1][ms][0] == 0,
   Derivative[1][\[Rho]s][0] == 0, Derivative[1][rs][0] == 0,
   Derivative[2][Ls][0] == 0};


FullSimplify[(seqn /. t -> 0) /. (init /. Equal -> Rule)]

{10000*(-1 + \[Rho]d) + Derivative[2][Lc][0] == 0, False, False,
  1.0000075093357965/\[Rho]d == 1., False, True}

as you can see you have 3 times a false in your equations at the
initial point and you have to choose initial conditions, that
fullfill you equations at t==0.


ehicks wrote:
> Hi,
>    I am trying to solve a set of equations with NDSolve.  The problem
> is no matter what I do, I keep getting errors of various kinds.  I've
> used NDSolve successfully in the past, so I am starting to wonder if
> maybe this set of equations just doesn't have a solution.   My set is
> diffeo-alegbraic, so at first I got the NDSolve::icfail error.  I
> tried to circumvent that by taking the derivative of one of the
> equations.  Then I got the NDSolve::ntdv error.  So I tried
> SolveDelayed->True, which just got me right back to the icfail error.
> Does anyone have any ideas on ways to circumvent these errors?
> Thanks!
> -Elizabeth
> See the Mathematica File at:
> The text of the errors is:
> NDSolve::icfail: Unable to find initial conditions which satisfy the
> residual function within specified tolerances.  Try giving initial
> conditions for both values and derivatives of the functions.
> NDSolve::ntdv: Cannot solve to find an explicit formula for the
> derivatives.  Consider using the option setting SolveDelayed->True.

  • Prev by Date: Time, Inverse, Simulation simple dynamical system, speed issue
  • Next by Date: Re: Re: Re: Problem with Mathematica 6
  • Previous by thread: NDSolve Errors: icfail and ntdv
  • Next by thread: on a pure function for a list of integrals