FRACLAB Functions Previous page   Next Page
boxdim_listepoints

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

All arguments except PointsList are optional. For example, the syntax : boxdim_classique(PointsList) is correct. If you don't want to precise an argument, you can also type []. The missing arguments take their default values:

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.

Examples

Example 1

This drawing may help you to understand the roles of Size and Ratio.

It corresponds to the following intructions :

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)

These instructions will return Nboxes=[4,10]. It is consistent with the drawing. The computed dimension isn't meaningfull, because of the low number of iterations. The goal of this example is just to show how the boxes are defined.

Example 2

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