MathGroup Archive 2011

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

Search the Archive

Re: Piecewise bug in Mathematica 8.01?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg123124] Re: Piecewise bug in Mathematica 8.01?
  • From: Daniel Lichtblau <danl at wolfram.com>
  • Date: Thu, 24 Nov 2011 06:55:06 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201111231209.HAA15055@smc.vnet.net>

On 11/23/2011 06:09 AM, Dario wrote:
> Hello everyone
>
> I'm currently simulating some turbulent processes that incorporate a
> large number of random steps.
> I used Mathematica's 8.01 Piecewise to produce a function that has
> different (random) values at different times. This function is then
> used to calculate some differential equations.
> Through some debugging I figured out that there is something wrong
> with Mathematica's Piecewise when a large number of intervals is used.
> Here is the isolated piece of code that I use to generate the random
> values function.
>
> ******************************************************************
> list3 = {};
> list4 = {};
> j = 0;
> Maxt = 40000;
> dt = 1;
> list3 = Table[RandomReal[{0.01, 0.03}], {i, 0, Maxt, dt}];
> list4 = Table[j<  t<= j + dt, {j, 0, Maxt, dt}];
> anoise = Thread[{list3, list4}];
> a = Piecewise[anoise];
> Plot[a, {t, 0, Maxt}]
> *****************************************************************
>
> The problem I detected has to do with the number of intervals that
> Piecewise uses, in this specific case is defined by Maxt.
> If Maxt is bigger then 45000 then Mathematica crashes and all values
> in memory are lost.
> I've tried this in different PCs with different OS (Windows 7 and
> Linux) and the same thing happens.
> I've also tried to play around with $MaxPiecewiseCases but still no
> luck.
> Does someone has any idea what might be causing this?
>
> Best Regards
> D=E1rio Passos
>

This much is fine.

Maxt = 40000;
dt = 1;
list3 = Table[RandomReal[{0.01, 0.03}], {i, 0, Maxt, dt}];
list4 = Table[j < t <= j + dt, {j, 0, Maxt, dt}];
anoise = Thread[{list3, list4}];
a = Piecewise[anoise];

This next blows up the recursion stack in trying to produce a compiled 
function for fast evaluation.

Plot[a, {t, 0, Maxt}]

I do not know if this is a bug or a feature. I sent it to a couple of 
colleagues for further comment.

Daniel Lichtblau
Wolfram Research





  • Prev by Date: Re: What is the point of having Initializations in DynamicModule and Manipulate?
  • Next by Date: Using Equal with Real Numbers
  • Previous by thread: Re: Piecewise bug in Mathematica 8.01?
  • Next by thread: Re: Piecewise bug in Mathematica 8.01?