## [46726a]: inst / renyi_entropy.m Maximize Restore History

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 ## Copyright (C) 2007 Muthiah Annamalai ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; If not, see . ## ## -*- texinfo -*- ## @deftypefn {Function File} {} renyi_entropy (@var{alpha}, @var{P}) ## ## Compute the Renyi entropy of order @var{alpha}, ## for the given probability distribution @var{P}. ## ## @math{Halpha(P(x)) = log{\sum_i{(P(x_i)^alpha)}/(1-alpha)}} ## ## special-cases include, when @var{alpha}=1, it reduces to ## regular definition of shannon entropy, and when @var{alpha}=0, ## it reduces to hartley entropy. ## ## @example ## @group ## renyi_entropy(0,[0.2 0.3 0.5]) ## @result{} ans = 1.0986 ## @end group ## @end example ## @end deftypefn function R=renyi_entropy(alpha,P) if( nargin ~= 2 ) print_usage(); end if ( alpha == 1 ) R=entropy(P); else S=sum(P.^alpha); R=log(S)/(1-alpha); end return end %!assert( renyi_entropy(0,[0.2 0.3 0.5]), 1.0986 , 1e-3 )