ÏÖÒѾÓв¿·Ö·ÖÐÎάÊý´úÂ룬µ«ÐèÒªÔö¼Ó¹ãÒå·ÖÐÎάÊý¼ÆËãÈç¹ûÓÐС»ï°é»áµÈÇë´Í½Ì£¬ÏÖ½«ÒÑÓзÖÐδúÂë½øÐзÖÏí
clc,clear;
% function multifractal(A)
format long g
%ÊäÈëÒ»¸öÁÐÏòÁ¿¼´¿É
DApath=['E:\MATLAB\fenxing code\geardata\zhengchang\'];
% zc=[];
for I=1:2
DATAfile=['Data1-' int2str(I) '.txt'];
% [DATAfile DApath]=uigetfile('*.txt','ÊäÈëÐźÅ');
FILENAME=[DApath,DATAfile];
data=load(FILENAME);
data=data(1:4096,1);
A=data;
%format long g
L=length(A);
i=1;
modify=1;
tmin=2;% ±ß¿ò¼ä¾à£¬¡°¡ù¡±
tmax=10;
ttmin=-10;
ttmax=10;% ×Ô¶¨Òå q µÄ·¶Î§
for r=tmin:1:tmax
c(i,1)=mod(L,r);
i=i+1;
end
c'; % ¼ÆËã²»Äܱ»±ß³¤rÕû³ýµÄÓàÊý
a=L-c';% ¼ÆËã²¢ÌÞ³ýµô²»Äܱ»±ß³¤rÕû³ýµÄÔʼÊý¾Ý£¬µÃµ½ÓÐÓÃÊý¾ÝµÄ¸öÊý
n=length(a); % Çó½â¸ñÍø»¯±ß³¤µÄ¸öÊý£¬¼´Îª n£¨Íø¸ñ±ß³¤¿ÉÒÔÓÐn=9ÖÖ£©
TT=[];
j=1;
r=tmin; % ×Ô¶¨ÒåÏî
for i=1:1:n % ¼´n=25-10+1£¬×Ô¶¨ÒåµÄ½á¹û
B=A(1:a(i),1);
U=reshape(B,r,length(B)/r);%²»Ã÷°×£¿£¿£¿£¿£¿£¿£¿
T=mean(U);%ĬÈϵÄÊÇÇó¸÷ÁеľùÖµ
T=T'.*r^3;
TT(1: length(T),i)=[T]; %¸ÅÂÊÃܶȷֲ¼º¯Êý
modifying(modify,1)=length(T);
r=r+1;
if r>= tmin+n % ×Ô¶¨ÒåÏî
break; % ±ß³¤³¬¹ý10+n£¬³¬¹ý³õʼÏÞÖÆ£¬Ôò³ÌÐò×Ô¶¯ÖÕÖ¹
end
modify=modify+1;
end
modifying;
% TT= nthroot(TT,1); %¶ÔTT¿ªn´Î·½¸ù ¿ªÒ»´Î·½¸ùÓÐÒâÒåÂ𣿣¿£¿£¿
% »òÕß²»ËõС
% TT;
%TT=nonzeros(TT); %¾ØÕóTTÖеķÇÁãÔªËØ
for cugb=1:1:n %cugb=9
modifying_modifying(cugb,1)=sum(modifying(1:cugb)); % ÓÐÓ°ÏìµÄмӾí % & * % £¤ # @ £¡£© ¡¡
end
modifying_modifying;
j=1;
% q ΪÈÎÒâÊý£¬ÕâÀïÈ¡1µ½n£¬Îªn£¬Óë kÈ¡Öµ±£³ÖÒ»Ö£¬q¹ý´ó£¬¼ÆËã»úÎÞ·¨Ê¶±ð£¬Ä¬ÈÏΪÎÞÇî´ó£¬q¹ýС£¬½á¹û½Ó½ü0£¬ÔòÒâÒå²»Ã÷È·
for q=ttmin:ttmax %ÕâÀïÈ¡ q=-10:1:10
for k=1:1:n
X=TT(1:modifying_modifying(k,1),1).^q;
if k>1
X=TT(modifying_modifying(k-1,1)+1:modifying_modifying(k,1),1).^q;
end
t=sum(X);
XX(k,j)=[t]; % ÕâÀïÓõ½Á½¸öÑ»·£¬¼´¿¼Âǵ½ÁËÃݺ¯Êý£¬ÓÖÐ迼ÂÇÇóºÍ
end
j=j+1;
end
XX; % µÃµ½ÖÊÁ¿·ÖÅ亯Êý
X=log(tmin:1:tmax);
%
% X=log(tmax:-1:tmin); % ´ËϵÒÔÇ°µÄ×Ô¶¨ÒåÊäÈë½á¹û£¬¡°¡ù¡ª4¡±
%
Y=log(XX);
%
% figure(1)
% plot(X',Y,'o-k') % ÖÁ´Ë£¬¼ÆËã¶àÖØ·ÖÐÎÆ׵ĵÚÒ»²½£¬·ÖÅ亯Êý¹¹½¨Íê±Ï
%
%ÇóÖÊÁ¿Ö¸Êý¦Ó(q)
side_length= tmin:1:tmax; % ×Ô¶¨ÒåÍø¸ñ±ß³¤£¬¡°¡ù¡ª5¡±
side_length=side_length';
q=ttmin:ttmax; % q=-5:1:n-10£¬q=-10:1:10
m=1;
[ha,hb]=size(XX);
for i=1:1:hb
% XX=XX¡¯; % or not
s=XX(:,i); % XX
b=polyfit(log(side_length),log(s),1); % ÔÚ¶ÔÊý³ß¶ÈϼÆËãбÂÊ
slope(m,1)=b(1,1);
m=m+1;
end
slope; % ÕâÀïµÄSlope¼´ÎªÖÊÁ¿Ö¸Êý£¬¦Ó(q)
N=polyfit(q', slope,1);
plot(q', slope) % ´Ë²½ÊÇ¿¼²ì¦Ó(q)-q Ö®¼äµÄ¹Øϵ£¬
%
%ÇóÆæÒìÖ¸Êý
a=diff(slope)./diff(q'); % µÚÈý²½¼ÆË㣬diffº¯ÊýÇóÆ«µ¼È·ÊµÉÙÒ»ÁÐ
%
%Çó¶àÖØ·ÖÐÎÆ×
q=q';
f_a=a.*q(1:end-1)-slope(1:end-1);%¶àÖØ·ÖÐÎÆ×
%
% figure(2)
% a=sort(a,'ascend');
plot(a,f_a,'o-k')
%xlabel('¦Á','FontSize',12);
%ylabel('f(¦Á)','FontSize',12);
% polyfit(a,f_a,3)
a=sort(a,'ascend');
% a+1
% f_a+1
a % ÆæÒìÐÔÖ¸Êý
f_a % ²»Í¬²ã´ÎµÄ·ÖάÊý |