FRACLAB Functions | ![]() ![]() |
Box dimension of a set of points computed with the box method.
Syntax
[boxdim,Nboxes,handlefig]=boxdim_listepoints(PointsList, Size, Ratio, Waitbar, reg, lrstr, optvarargin)
Inputs
PointsList
:
PointsList : N x M matrix. Set of points which box dimension is to be computated. Each line corresponds to a point, each column corresponds to a coordinate. N is the number of points. M is the number of coordinates (the dimension of the space). For example, if the points lie in an plane, M=2.
Size, Ratio
:
Ratio defines the lengths of the sides of the reference box. It is a 1xM array. The successive boxes will be deduced from this first box by homotheties with ration Size(i). More precisely, the box at at the i - th iteration will have a length along the k - th axis equal to Ratio(k)*Size(i)
For a graphical explanation about Size and Ratio, see Example 1
Waitbar
:
1 if you want a waitbar to appear during the calculation, else 0
reg
:
The way you choose the bounds. See the help on fl_regression for more information.
lrstr,optvarargin
:
Regression parameters. They define the regression type. Type " help monolr" for more information
Outputs
boxdim
:
The estimated box dimension
Nboxes
:
Nboxes is a vector. Nboxes(i) is the number of non-empty boxes at the i - th iteration. A non-empty box is a box that contains at least one point of the graph of the function.
handlefig
:
If reg~=0, a window appears to help you choosing the linearity bounds. handlefig is the handle of this figure.
bounds
:
Bounds of linearity of log2(Nboxes) in function of log2(Size). Interesting if reg==1.
Optional arguments
Size=[1 1/2 1/4 ... 1/2048 1/4096]
Ratio =[1 1 ...]
Waitbar = 0
reg=0
lrstr='ls'
These default values are not always relevant, especially Size, so when you don't know how to define Size, try to use reg ~= 0 in order to precise manually the correct box sizes.
Example 1
This drawing may help you to understand the roles of Size and Ratio.
y=GeneWei(4096,0.6)+2;
x=[0:4095]'/4096;
PointsList=[x,y];
Size=[1/2,1/4];
Ratio=[1,4];
[boxdim,Nboxes,handlefig]=boxdim_listepoints(PointsList, Size, Ratio)
Example: Computes the box dimension of a self-similar set of points. Its theorical dimension is log(5)/log(3)=1.46
% load the list of points
load('fusee.mat');
% Plot the list of points
figure;plot(fusee(:,1),fusee(:,2),'.');
% Compute its box dimension
reg=1;
Waitbar=1;
[boxdim,Ntailles,handlefig,bounds]=boxdim_listepoints(fusee,[],[],Waitbar,reg);
boxdim
bounds
% You should find bounds = -6 -2. This means that
% the progression is linear when log2(size) is in [-6 -2]. You may keep these
% bounds, take more points and try another regression type.
reg=0;
Size=2.^[-6 : 0.5 : -2];
boxdim=boxdim_listepoints(fusee,Size,[],Waitbar,reg,'pls',30);
boxdim.
See Also
boxdim_classique
,
boxdim_binaire
,
fl_regression
,
normalize_list