MathGroup Archive 2009

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

Search the Archive

Re: Re: NDSolve Mathematica 6 and 7

  • To: mathgroup at smc.vnet.net
  • Subject: [mg103373] Re: [mg103355] Re: [mg103336] NDSolve Mathematica 6 and 7
  • From: DrMajorBob <btreat1 at austin.rr.com>
  • Date: Fri, 18 Sep 2009 05:38:35 -0400 (EDT)
  • References: <200909160946.FAA12985@smc.vnet.net>
  • Reply-to: drmajorbob at yahoo.com

A few things I notice right away:

1) You use SetDelayed (":=") when Set ("=") would be faster. I use  
SetDelayed ONLY if variables on the right hand side (a) have a value when  
I'm defining the left hand side, and (b) may have a DIFFERENT value when I  
USE the left hand side. You also do not need a semicolon to suppress  
output after SetDelayed. You DO need it after Set.

2) There are cases where I'd use Boole, not PieceWise, namely:

istim[t_, x_] = -36 Boole[10 < t + curtime < 11 && 0 <= x < 1/20];

\[Alpha]h = 0.057*E^(-((V[t, x] + 80)/6.8)) Boole[V[t, x] < -40];


\[Alpha]j = (-25428 E^(0.2444 V[t, x]) -
      6.948*10^-6 E^(-0.04391 V[t, x])) (V[t, x] + 37.78)/(1 + E^(
       0.311 (V[t, x] + 79.23))) Boole[V[t, x] < -40];

3) If you'll ever use exact methods (DSolve rather than NDSolve, Solve  
rather than NSolve, etc.), you should avoid Reals and use Rationals  
instead. (As in the first Boole example above.) If you don't need exact  
methods, then by all means, proceed with Reals.

4) In NDSolve, you've used MaxStepSize -> {1, 0.01}, but I see nothing in  
documentation to support ordered pairs here. Since it isn't documented, it  
can easily change or disappear from one version to another.

5) In your NDSolve, all but two of the initial condition right hand sides  
SEEM to be undefined because they're highlighted in blue. I think that's  
only because they're subscripted, and defining, for instance, Subscript[V,  
0] leaves V undefined. But it makes finding errors more difficult, when  
one can't see what is or is not defined. (I don't use subscripts. Ever.)

6) Related to that, I can see how a solver might be confused by Rprime  
(for instance), which is used both as a constant (with subscript zero) and  
as a function name in the variable list. All your initial conditions are  
like that, other than the last two. For now, that's my best guess as to  
what's happening, but I admit it's speculative. I can't test this in  
earlier versions, so I'm guessing.

That's all I see at the moment. Good luck!

Bobby

On Thu, 17 Sep 2009 05:20:04 -0500, Mark Perrin <m.perrin at me.com> wrote:

> Well it is a system of partial differential equations describing a
> wave of electrical depolarisation passing through a cable.
>
> EQN1 := D[V[t, x],
>      t] == -1/
>       1 (iK1 + iKr + iKs + iNa + ibCa + ibNa + ipCa + iCaL + ipK +
>        iNaCa + iNaK + istim[t, x] + ito);
>
> EQN2 := D[Xs[t, x], t] == 2.57 ((xas - Xs[t, x])/tauxs);
>
> EQN3 := D[s[t, x], t] == (sinf - s[t, x])/taus;
>
> etc.
>
> I can post the notebook here:
>
> http://dl.getdropbox.com/u/127753/cablenotebook.nb
>
> Other details:
> 	- running Mathematica 6 and 7 (depending on need)
> 	- Mac 10.6 Snow Leopard - but tested also on a windows computer
> running Mathematica 6 and 7 - same issue
> 	
>
> Regards,
>
> Mark P
>
> On 17/09/2009, at 12:58 AM, DrMajorBob wrote:
>
>> Send details, Mark. Details.
>>
>> Bobby
>>
>> On Wed, 16 Sep 2009 04:46:29 -0500, Mark Perrin <m.perrin at me.com>
>> wrote:
>>
>>> I was wondering if anyone could help me. I am solving a set of
>>> partial
>>> and ordinary differential equations in Mathematica 7. For the same
>>> set
>>> of equations and same expression i.e.
>>>
>>> solution =
>>>  NDSolve[EQNS, STATES, {t, 0, 500}, {x, 0, 1.6}, MaxStepSize -> {1,
>>> 0.01},
>>>   MaxSteps -> Infinity, AccuracyGoal -> 5, PrecisionGoal -> 5]
>>>
>>> where EQNS are the ODEs.
>>>
>>> Mathematica 6 solves this in < 5 minutes.
>>> Mathematica 7 takes about 40-45 minutes.
>>> for the same solution.
>>>
>>> Same hardware etc.
>>>
>>> Can anyone please tell me if it is possible to speed up the solution
>>> in Mathematica 7. Why would the two be so different?
>>>
>>> Kind Regards,
>>>
>>> Patch
>>>
>>
>>
>> --
>> DrMajorBob at yahoo.com
>
>


-- 
DrMajorBob at yahoo.com


  • Prev by Date: Re: PlotRange
  • Next by Date: Re: Wolfram workbench on MacOsX
  • Previous by thread: Re: NDSolve Mathematica 6 and 7
  • Next by thread: Re: Re: NDSolve Mathematica 6 and 7