24小时热门版块排行榜    

查看: 1406  |  回复: 6

astringent

铜虫 (著名写手)

[交流] 【求助】相关函数归一化问题 已有4人参与

最近一直在看自相关函数的程序,有个问题想不通。
自相关函数的定义是A=(a(t)*a(0))/(a(0)*a(0)),当对体系中所有粒子求和时,是先算出每个例子的(a(t)*a(0)) /(a(0)*a(0))然后求和?还是先分别求a(t)*a(0)以及a(0)*a(0)和然后再相除呢?两者有什么区别?请大家指点。

[ Last edited by ghcacj on 2010-12-8 at 09:27 ]
回复此楼

» 猜你喜欢

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

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

老虎大王

木虫 (著名写手)

★ ★ ★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
ghcacj(金币+5):谢谢 2010-12-07 16:26:07
问得好。我初学时也在这个问题上纠结过。后来我写程序把两种算法同时都用了,输出两列结果。经比较,二者在数值上差别是很小的。另外,按Leach的书(molecular modelling...),是对每个粒子,上下分别对时间原点求平均后再除,然后再对粒子求和,然后再除以总粒子数,也就是用的你的第一个方案。

也就是:
Cvv=(1/N)*sigma(i 从1到N)(/
2楼2010-12-07 10:59:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

astringent

铜虫 (著名写手)

引用回帖:
Originally posted by 老虎大王 at 2010-12-07 10:59:29:
问得好。我初学时也在这个问题上纠结过。后来我写程序把两种算法同时都用了,输出两列结果。经比较,二者在数值上差别是很小的。另外,按Leach的书(molecular modelling...),是对每个粒子,上下分别对时间原点求 ...

请问老虎大王,我在写程序的时候直接把t=0的相关函数做分母了,也就是 tcf(delt)=tcf(delt)+tcf(ntel)*tcf0(t)/ tcf0(t)*tcf0(t),可是输出错误,请问,我这样写为什么不可以呢?应该怎样写?
do i=1,10000 (粒子数)
     do ntel=1,npoints (共有npoints个数据)
          if (确定timeorigin的条件) then
             t0=t0+1
             time0(t0)=ntel
             tcf0(t0)=tcf(ntel)         
             do t=1,t0
                  delt=ntel-time0(t)+1
                  tcf(delt)=tcf(delt)+tcf(ntel)*tcf0(t)/ tcf0(t)*tcf0(t)
             enddo
           endif
    enddo
enddo
do ical=1,npoints
tcf(ical)=tcf(ical)/(npoints*ntime(t))
write(*,*) ical, tcf(ical)
enddo
3楼2010-12-07 15:57:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

astringent

铜虫 (著名写手)

问题已解决,请结贴
4楼2010-12-08 06:34:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

astringent

铜虫 (著名写手)

引用回帖:
Originally posted by 老虎大王 at 2010-12-07 10:59:29:
问得好。我初学时也在这个问题上纠结过。后来我写程序把两种算法同时都用了,输出两列结果。经比较,二者在数值上差别是很小的。另外,按Leach的书(molecular modelling...),是对每个粒子,上下分别对时间原点求 ...

为什么我用两种方法得到的结果有很大差别呢,劳烦指教。
下面是我的程序
这是我的程序:
do i=1,10000 (粒子数)
     do ntel=1,npoints (共有npoints个数据)
          if (确定timeorigin的条件) then
             t0=t0+1
             time0(t0)=ntel
             tcf0(t0)=tcf(ntel)         
             do t=1,t0
                  delt=ntel-time0(t)+1
                  if(delt.lt.npoints)
                  tcf(delt)=tcf(delt)+tcf(ntel)*tcf0(t)
                  tcf0(delt)=tcf0(delt)+tcf0(t)*tcf0(t)
                  acf(delt)=tcf(delt)+tcf(ntel)*tcf0(t)/ tcf0(t)*tcf0(t)
              endif
            enddo
           endif
    enddo
enddo
do ical=1,npoints
tcf(ical)=(tcf(ical)/(npoints*ntime(t))/(tcf0(ical)/(npoints*ntime(t))
acf(ical)=acf(ical)/(npoints*ntime(t))
write(*,*) ical, tcf(ical)
write(*,*) ical, acf(ical)
enddo
下面是我的输出结果(我只截取了一部分)
  0.0000000000000000        1.0000000000000000     
   0.0000000000000000       1.14207400639561443E-004
   1.0000000149011612       0.67655786350148372     
   1.0000000149011612       7.72679149727596715E-005
   2.0000000298023224       0.62686567164179108     
   2.0000000298023224       7.15926989083817998E-005
   3.0000000447034836       0.60360360360360366     
   3.0000000447034836       6.89359985842397961E-005
   4.0000000596046448       0.58610271903323263     
   4.0000000596046448       6.69372680485647080E-005
   5.0000000745058060       0.57012195121951215     
   5.0000000745058060       6.51121460963353292E-005
   6.0000000894069672       0.55828220858895705     
   6.0000000894069672       6.37599598662582241E-005
   7.0000001043081284       0.54629629629629639     
   7.0000001043081284       6.23910799790196834E-005
   8.0000001192092896       0.51552795031055898     
   8.0000001192092896       5.88771071620099369E-005
   9.0000001341104507       0.52187499999999998     
   9.0000001341104507       5.96019872087711250E-005
   10.000000149011612       0.52515723270440251     
   10.000000149011612       5.99768424742350986E-005
5楼2010-12-10 00:17:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yonshping

银虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
谁能把相关函数的程序发给我吗?先谢谢了
千里之行,始于足下
6楼2012-05-02 21:37:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

manutdhk

木虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
644082楼: Originally posted by astringent at 2010-12-07 05:47:32:
最近一直在看自相关函数的程序,有个问题想不通。
自相关函数的定义是A=(a(t)*a(0))/(a(0)*a(0)),当对体系中所有粒子求和时,是先算出每个例子的(a(t)*a(0)) /(a(0)*a(0))然后求和?还是先分别求a(t)*a(0)以及a( ...

第二种方案才对。。。
分母只是一个归一化作用的常数,如果不计算分母,对最后的结果不会有影响的,只是Amplitude相差一个倍数。

两种方案在什么时候才会得到一致结果呢?当你所有的原子都同一的时候,也就是说,周期性边界条件下的单质材料。只要有一个原子跟其他的不一致,两种方案就不能得到一致的结果。

此外,分母部分完全没有必要放在循环里计算。
所以,我的建议,先双重循环把分子搞定,然后在另一个版块,把分母搞定,最后二者相除。
7楼2012-05-02 22:38:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 astringent 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 326求调剂 +3 mlpqaz03 2026-03-15 3/150 2026-03-16 07:33 by Iveryant
[考研] 材料工程专硕274一志愿211求调剂 +5 薛云鹏 2026-03-15 5/250 2026-03-15 20:38 by Logic2024
[考研] 材料与化工 323 英一+数二+物化,一志愿:哈工大 本人本科双一流 +4 自由的_飞翔 2026-03-13 5/250 2026-03-14 19:39 by hmn_wj
[考研] 复试调剂 +4 z1z2z3879 2026-03-14 5/250 2026-03-14 16:30 by JourneyLucky
[考研] 材料与化工(0856)304求B区调剂 +7 邱gl 2026-03-10 11/550 2026-03-14 12:18 by 邱gl
[考研] 一志愿郑大070303,338分,求调剂 +4 dadawaf 2026-03-10 5/250 2026-03-14 01:20 by lsw010101
[考研] 求调剂 +6 yfihxh 2026-03-09 6/300 2026-03-14 01:18 by JourneyLucky
[考研] 求调剂(材料与化工327) +4 爱吃香菜啦 2026-03-11 4/200 2026-03-13 22:11 by JourneyLucky
[考研] 泣血叩求调剂恩,愿以丹心报师恩 +6 Iuruoh 2026-03-11 6/300 2026-03-13 22:06 by JourneyLucky
[考研] 304求调剂 +7 7712b 2026-03-13 7/350 2026-03-13 21:42 by peike
[考研] 【0856】化学工程(085602)313 分,本科学科评估A类院校化学工程与工艺,诚求调剂 +7 小刘快快上岸 2026-03-11 7/350 2026-03-13 16:06 by ruiyingmiao
[考研] 考研调剂 +4 芬达46 2026-03-12 4/200 2026-03-13 16:04 by ruiyingmiao
[考研] 314求调剂 +7 无懈可击的巨人 2026-03-12 7/350 2026-03-13 15:40 by JourneyLucky
[考研] 328化工专硕求调剂 +4 。,。,。,。i 2026-03-12 4/200 2026-03-13 14:44 by JourneyLucky
[考研] 材料调剂,307分 +13 张泳铭1 2026-03-09 17/850 2026-03-13 11:09 by 薛云鹏
[考研] 0856化工原理 +6 z2839474511 2026-03-10 6/300 2026-03-13 10:41 by houyaoxu
[基金申请] 提交后的基金本子,已让学校撤回了,可否换口子提交 +3 dut_pfx 2026-03-10 3/150 2026-03-11 08:38 by kudofaye
[考博] 26申博求助 +3 跳跃饼干 2026-03-10 4/200 2026-03-10 21:15 by Tntcnn
[考研] 一志愿:武汉理工,材料工程,英二数二 总分314 +3 2202020125 2026-03-10 4/200 2026-03-10 13:54 by xiongyaxuan
[考研] 294 英二数二物化 求调剂 +6 米饭团不好吃 2026-03-09 6/300 2026-03-09 23:55 by barlinike
信息提示
请填处理意见