MathGroup Archive 2008

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

Search the Archive

Re: NDSolve[] and Differential Equations: Problem solving two

  • To: mathgroup at smc.vnet.net
  • Subject: [mg85761] Re: NDSolve[] and Differential Equations: Problem solving two
  • From: Gopinath Venkatesan <gopinathv at ou.edu>
  • Date: Thu, 21 Feb 2008 18:00:56 -0500 (EST)

Dear Daniel

Thanks for the suggestion.

I looked into the set of equations once again to verify it, but the equation phieq contains the phi terms and along with phicon1 and phicon2 (initial conditions) they are all included in the equation as shown below:

eqn1 = Table[
   Flatten[{wdef1icon1, wdef1icon2, wdef2icon1, wdef2icon2, sdeficon1,
      sdeficon2, phicon1, phicon2, phieq, v3eq, v1eq, v2eq, 
     modsetitr[[im]]}], {im, 1, nmx}];

So it is something I messed up with solving several different differential equations related to each other. I don't see any example in the Help section. All discusses one differential equation only. If you have any examples please post here.

Also one problem I experienced is that in the definition (used in the code) like below:

reactP1[t_] := (\[Pi]^4 \[Kappa] wrf1^2)/
   24 (Chop[wdef1itr[t]] - Chop[func[t, t]]);

or simply r1[t_]:=k*(a[x,t]-b[t]) for easy understanding,

I am only checking if the entire term i.e., k(a[x,t]-b[t]) is positive and if not positive, substitute zero for that term. For that I am using the below syntax.

r[t] = r[t] /. t_?Negative -> 0; (This only checks if the argument is negative or not. Isn't it? If so, then I have to store the a[x,t]-b[t] to another variable and check if that variable is negative).

Problem is, if b[t] evaluates to negative, it removes it and shows only k*a[x,t] i.e. r1[t]=k*(a[x,t]-1) becomes r1[t]=k*a[x,t]. If the entire term is not computable i.e. a[x,t] is yet to be found, then I want it to be r1[t]=k*(a[x,t]-1) only and not k*a[x,t]. However in the later steps, (after I introduce Do loop) a[x,t] values will be available and hence it will evaluate the whole term and see if it is negative. That case works fine for me.

Do you know workaround for that? Currently I can do one simple thing, I will check the step number, if step is zero (in the Do loop with step=0 in the beginning), I keep it as k*(a[x,t]-1), and as step increments, I do the check so it evaluates the whole term.

Thank you for the suggestions. I wish you and others pour some more hints for solving this problem.

Gopinath Venkatesan
University of Oklahoma


  • Prev by Date: Re: .NET/Link: Explicitly define data type to be sent to .NET object?
  • Next by Date: Re: find and count partially identical sublist
  • Previous by thread: Re: squared norm in Mathematica
  • Next by thread: Re: NDSolve[] and Differential Equations: Problem solving two