Re: Plotting a function -

• To: mathgroup at smc.vnet.net
• Subject: [mg71650] Re: Plotting a function -
• From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
• Date: Sun, 26 Nov 2006 03:48:32 -0500 (EST)
• Organization: The Open University, Milton Keynes, UK
• References: <ek990u\$k88\$1@smc.vnet.net>

```Craig Reed wrote:
> Hi -
>
> I'm trying to get Mathematica 5.2 to graph a function which is the ratio of
> integers which have a '3' in them. Done in Exce3l, the graph of the first
> 32,000 data points has a fractal look to it, especially when done with a
> log scale.
>
> What I've tried is the following
>
>
> f[x_] := Boole[DigitCount[x, 10, 3]]
> g[x_] := Sum[f, {i, x}]/x
> Plot[g, {x, 1, 100}]
>
>
> I get 3 errors of "g is not a michine-size real number at" followed by 3
> real numbers:
> 1.000004125
> 5.016125.....
> 9.39607.....
>
> What am I doing wrong?  or perhaps what I should ask is, "Is there a better
> way?"
>

Craig,

The corrected version of your code I gave you in my previous email is
very slow indeed. You will find below a functional code that is much faster.

In[1]:=
f[x_] := Boole[DigitCount[x, 10, 3] > 0]
g[x_] := Sum[f[i], {i, x}]/x
Plot[Evaluate[g[x]], {x, 1, 100}];

In[4]:=
Timing[Plot[Evaluate[g[x]], {x, 1, 100}]; ]

Out[4]=
{0.609 Second,Null}

In[5]:=
Timing[Plot[Evaluate[g[x]], {x, 1, 1000}]; ]

Out[5]=
{23.282 Second,Null}

In[23]:=
Timing[rng = Range[1, 100];
ListPlot[Rest[FoldList[Plus, 0,
(Boole[DigitCount[#1, 10, 3] > 0] & ) /@ rng]]/
rng]; ]

Out[23]=
{0.015 Second,Null}

In[24]:=
Timing[rng = Range[1, 1000];
ListPlot[Rest[FoldList[Plus, 0,
(Boole[DigitCount[#1, 10, 3] > 0] & ) /@ rng]]/
rng]; ]

Out[24]=
{0.078 Second,Null}

In[25]:=
Timing[rng = Range[1, 10000];
ListPlot[Rest[FoldList[Plus, 0,
(Boole[DigitCount[#1, 10, 3] > 0] & ) /@ rng]]/
rng]; ]

Out[25]=
{1.141 Second,Null}

In[26]:=
Timing[rng = Range[1, 100000];
ListPlot[Rest[FoldList[Plus, 0,
(Boole[DigitCount[#1, 10, 3] > 0] & ) /@ rng]]/
rng]; ]

Out[26]=
{7.859 Second,Null}

Regards,
Jean-Marc

```

• Prev by Date: RE: Plotting a function -
• Next by Date: Simplify question
• Previous by thread: RE: Plotting a function -
• Next by thread: Re: Plotting a function -