24小时热门版块排行榜    

查看: 2797  |  回复: 9

lvubaby

木虫 (正式写手)

[求助] 二维粒子分布的分形维数 已有1人参与

大家好,我得到了一个二维的粒子分布,想计算他的分形维数。采用回转半径法,输入粒子坐标,编了一个小程序,可是计算得到的分形维数为2.262大于2。理论上讲二维图像下的分形维数应该小于2啊,是哪里出错了,请各位大神指点。
程序为:
clc
clear
dim=128;
load final_paticle_distribution_2D.txt

particle_num=size(final_paticle_distribution_2D,1);
c1=final_paticle_distribution_2D(:,1);
c2=final_paticle_distribution_2D(:,2);

figure(1)
plot(c1,c2,'.')

%%求得重心坐标
mc1=round(sum(c1)/particle_num);
mc2=round(sum(c2)/particle_num);

num=zeros(dim,1);%粒子数目
r=zeros(dim,1);%半径
s=zeros(particle_num,1);%粒子与重心距离

for i=1:particle_num
    %%计算粒子与质心的距离
    s(i)=sqrt((c1(i)-mc1)^2+(c2(i)-mc2)^2);
   for j=1:dim
       r(j)=j-0.5;
       if s(i)<=r(j)
           num(j)=num(j)+1;
       end
   end
end

r_num=[r,num];
save('radius_particlenum.txt', 'r_num','-ASCII')


%%将不含有粒子的空间删去
%%外侧
ii=1;
for jj=1:dim-1
    if num(jj)==num(jj+1)
        num_zero_ind_high(ii)=jj+1;
        ii=ii+1;
    end
end
num(num_zero_ind_high)=[];
r(num_zero_ind_high)=[];

%%内侧
particle_ind=find(num);

particle_num=num(particle_ind);
particle_r=r(particle_ind);

log_num=log(particle_num);
log_r=log(particle_r);

fitobject=fit(log_r,log_num,'poly1')
figure(2);
plot(log_r,log_num,'o');

二维粒子分布的分形维数
2D particle distribution.png
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

海风吹
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

alorsmail

铁杆木虫 (著名写手)

最好能提供样本文件,这样方便调试
2楼2014-04-20 04:06:51
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

lvubaby

木虫 (正式写手)

引用回帖:
2楼: Originally posted by alorsmail at 2014-04-20 04:06:51
最好能提供样本文件,这样方便调试

不好意思,上次忘了上传,这次贴上
http://pan.baidu.com/s/14DXE2
海风吹
3楼2014-04-20 16:39:55
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

alorsmail

铁杆木虫 (著名写手)

【答案】应助回帖

抱歉没有时间仔细看你的程序,
我这里有个现成的,计算下来,你可以参考一下
FD=1.8736
http://1000eb.com/vuu6
文件密码,见PM
4楼2014-04-22 17:50:23
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

alorsmail

铁杆木虫 (著名写手)

引用回帖:
3楼: Originally posted by lvubaby at 2014-04-20 16:39:55
不好意思,上次忘了上传,这次贴上
http://pan.baidu.com/s/14DXE2...

抱歉,刚刚测试了一下MATLAB上面的那个分形函数,似乎有问题
你参考一下,
我有空的话,也会仔细看一下到底是哪里的问题,
不好意思!
5楼2014-04-22 21:33:37
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

alorsmail

铁杆木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
lvubaby: 金币+20, ★★★★★最佳答案 2014-04-25 07:52:38
引用回帖:
3楼: Originally posted by lvubaby at 2014-04-20 16:39:55
不好意思,上次忘了上传,这次贴上
http://pan.baidu.com/s/14DXE2...

你好,我找到问题所在了,
你的程序没有问题。之所以出错,是因为一个细节:
         重心坐标
你这里用的是平均值,但是这个并非真正的坐标。
所以建议用 “核密度估计 ” Kernel density estimation 来找更加合理的重心
比如
=================================
[F,XI]=ksdensity(c1) ;
mc1 = floor( XI(find(F==max(F))) ) ; %#ok<*FNDSB>
[F,XI]=ksdensity(c2) ;
mc2 = floor( XI(find(F==max(F))) ) ;
=================================
然后运行程序,得到的分形维数是  1.313 (大致是这个数值,每次运行可能有变化,这个是由于MATLAB的线性逼近引起的)
这个结果比较合理,
用Box counting得到的fractal dimension 是 1.46左右。考虑到用盒子的误差,你的结果应该是对的。
所以,恭喜你!
6楼2014-04-25 05:37:27
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

lvubaby

木虫 (正式写手)

引用回帖:
6楼: Originally posted by alorsmail at 2014-04-25 05:37:27
你好,我找到问题所在了,
你的程序没有问题。之所以出错,是因为一个细节:
         重心坐标
你这里用的是平均值,但是这个并非真正的坐标。
所以建议用 “核密度估计 ” Kernel density estimation 来找更 ...

你真是大牛啊,按照你说的方法改后,结果是1.313.文献中的结果是1.38+-0.06. 非常温和. 多谢指教!!!
海风吹
7楼2014-04-25 07:54:25
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

alorsmail

铁杆木虫 (著名写手)

引用回帖:
7楼: Originally posted by lvubaby at 2014-04-25 07:54:25
你真是大牛啊,按照你说的方法改后,结果是1.313.文献中的结果是1.38+-0.06. 非常温和. 多谢指教!!!...

不客气,实际上,这里还有一个更小的细节 :
重心坐标并不一定要取整值,这里用整值只是为了保持和原数据一直。
如果直接用计算ksdensity的计算结果的话,
=================================
[F,XI]=ksdensity(c1);
mc1 = ( XI(find(F==max(F))) ); %#ok<*FNDSB>
[F,XI]=ksdensity(c2);
mc2 = ( XI(find(F==max(F))) );
=================================
得到的将是 1.353 (1.32, 1.385),
8楼2014-04-25 12:24:15
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

hailonghu

新虫 (正式写手)

引用回帖:
4楼: Originally posted by alorsmail at 2014-04-22 17:50:23
抱歉没有时间仔细看你的程序,
我这里有个现成的,计算下来,你可以参考一下
FD=1.8736
http://1000eb.com/vuu6
文件密码,见PM

您好,请问密码在哪里呀,怎么找不到呢,谢谢!
9楼2014-08-08 16:04:24
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

hailonghu

新虫 (正式写手)

引用回帖:
4楼: Originally posted by alorsmail at 2014-04-22 17:50:23
抱歉没有时间仔细看你的程序,
我这里有个现成的,计算下来,你可以参考一下
FD=1.8736
http://1000eb.com/vuu6
文件密码,见PM

您好,请问文件密码是什么,怎么找不到呢,谢谢
10楼2014-08-08 16:05:36
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lvubaby 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 大佬帮着分析今年的评审意见?该课题连续申请了三年了,明年要不要换个方向。 100+3 cai-11138 2026-08-31 11/550 2026-09-06 20:49 by archvillain
[文学芳草园] 两块石头 +7 阿美_Lml888 2026-09-03 10/500 2026-09-06 20:08 by 阿美_Lml888
[博后之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 j5mmowWXNWxv 2026-09-05 6/300 2026-09-06 18:41 by eObJPa4gWmp6
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 jPDp0sc2B7zQ 2026-09-05 4/200 2026-09-06 18:09 by eObJPa4gWmp6
[论文投稿] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +4 jPDp0sc2B7zQ 2026-09-05 6/300 2026-09-06 18:01 by eObJPa4gWmp6
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 jPDp0sc2B7zQ 2026-09-05 6/300 2026-09-06 17:21 by eObJPa4gWmp6
[教师之家] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 jPDp0sc2B7zQ 2026-09-05 9/450 2026-09-06 17:09 by eObJPa4gWmp6
[博后之家] 广西大学-广州大学招聘博士后 欢迎广大优秀人才!!! +5 SCSIOyxguo 2026-09-03 8/400 2026-09-06 15:06 by 可爱小花朵
[教师之家] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 j5mmowWXNWxv 2026-09-05 3/150 2026-09-06 13:09 by eObJPa4gWmp6
[基金申请] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 j5mmowWXNWxv 2026-09-05 3/150 2026-09-06 12:49 by eObJPa4gWmp6
[考博] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 j5mmowWXNWxv 2026-09-05 4/200 2026-09-06 12:29 by eObJPa4gWmp6
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 jPDp0sc2B7zQ 2026-09-05 7/350 2026-09-06 11:20 by eObJPa4gWmp6
[基金申请] 科研人应该花精力去思考如何解决问题,而不是去凝练问题 +10 瞬息宇宙 2026-09-01 19/950 2026-09-06 11:15 by jiangxuan2004
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 jPDp0sc2B7zQ 2026-09-05 8/400 2026-09-06 11:09 by eObJPa4gWmp6
[教师之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +8 CRJ0Aq2FtVH0 2026-09-03 15/750 2026-09-06 05:48 by E1iiBLMU2XnD
[基金申请] 面上没中,邀请各位路过的虫友分析一下分数 +12 jackleilei 2026-09-03 13/650 2026-09-05 18:10 by fireguard
[文学芳草园] 初秋的晨风 +4 阿美_Lml888 2026-09-04 6/300 2026-09-05 13:51 by 阿美_Lml888
[基金申请] 学科评审组评审是指会评吗? +6 瞬息宇宙 2026-08-31 9/450 2026-09-05 13:11 by haizai99
[硕博家园] Ei源刊怎么投 +4 Fengshun9711 2026-09-04 4/200 2026-09-04 19:30 by 研途知予
[硕博家园] 哈尔滨工业大学韩晓军教授课题组招收2027年硕士推免生及博士研究生 +3 灯灯灯灯DDDD 2026-09-03 3/150 2026-09-03 21:22 by 科研皮皮猪
信息提示
请填处理意见