Re: Box counting dimension for fractals via Mathematica??
- To: mathgroup at smc.vnet.net
- Subject: [mg2712] Re: Box counting dimension for fractals via Mathematica??
- From: Pasquale Nardone <pnardon at ulb.ac.be>
- Date: Sat, 9 Dec 1995 01:54:23 -0500
- Organization: Universitiso-8859-1 Libre de Bruxelles
you don't need a package, try this function: BoxCount[list_,delta0_,scale_,min_]:= Block[ {tmp,delta,nmax,l,i}, tmp={}; delta=delta0; nmax=Abs[Ceiling[Log[min/delta0]/Log[scale]]]; Do[ { l=Length[Complement[Ceiling[list/delta],{}]]; AppendTo[tmp,{delta,l}]; delta=delta*scale}, {i,1,nmax}]; Return[tmp]]; _____________ list: is your original liste delta0: is the first box size scale: is the factor which scale the box size min: is the minimum value for the box size _____________ BoxCount: return a list of list {{size of the box, number of points in the box},...} _____________ for example: data=Table[{Random[Real,{0,1}],Random[Real,{0,1}]},{1000}]; (* generate random data in 2D *) In[2] res=BoxCount[data,1.0,0.51,0.001] Out[2] Out[49]= {{1., 1}, {0.51, 4}, {0.2601, 16}, {0.132651, 64}, {0.067652, 223}, {0.0345025, 582}, {0.0175963, 862}, {0.00897411, 960}, {0.00457679, 988}, {0.00233417, 996}, {0.00119042, 997}} _______ after that you can plot the result via a log-log graphics or compute the box dimension by fitting qqq[{x_,y_}]:=N[{-Log[10,x],Log[10,y]}] res2=Map[qqq,res] ListPlot[res2,PlotJoined->True,PlotRange->All, Frame->True] In[53]:= Fit[Take[res2,6],{1,x},x] Out[53]= 0.0495925 + 1.92138 x -------------------------------------------- Pasquale Nardone * * Universiti Libre de Bruxelles * CP 231, Sciences-Physique * Bld du Triomphe * 1050 Bruxelles, Belgium * tel: 650,55,15 fax: 650,57,67 (+32,2) * ,,, (o o) ----ooO-(_)-Ooo----