爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4454|回复: 6

[讨论] 问题很严重!MK检验代码的正确性

[复制链接]

新浪微博达人勋

发表于 2016-6-21 17:42:42 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 胆小车迷 于 2016-6-21 17:45 编辑

  1. <P>        SUBROUTINE SMK(Y,M,MD,U,N)
  2.         DIMENSION Y(N),M(N),MD(N),U(N)
  3.         M(1)=0
  4.         DO 10 I=2,N
  5.         M(I)=0
  6.         MD(I)=0
  7.         DO 20 J=1,I-1
  8.         IF(Y(I).LT.Y(J))GOTO 20
  9.         M(I)=M(I)+1
  10.   20   CONTINUE</P>
  11. <P>        MD(I)=MD(I-1)+M(I)
  12. 10   CONTINUE
  13.         U(1)=0.0
  14.         DO 30 I=2,N
  15.         E=I*(I-1)/4.00
  16.         VAR=I*(I-1)*(2*I+5)/72.00
  17.         U(I)=(MD(I)-E)/SQRT(VAR)
  18.   30        CONTINUE
  19.         RETURN
  20.         END
  21. </P>
复制代码

做过MK检验工作的人,对这段代码肯定熟悉,这是南气院程序集MK法的fortran代码中的一个子程序,功能就是计算UF,UB序列的。Y为我们要检验的序列。
重点来看上面红色标注的代码,从程序的上来看,意思应该是当第i时刻数值小于j时刻数值时,累计数不做任何处理,当第i时刻数值大于或者等于j时刻数值时,累计数加1。

然而,在魏老师现代气候统计诊断与预测技术(第2版)中的P63-64概述中指明秩序列sk是第i时刻数值大于j时刻数值个数的累计数。

程序中,当第i时刻数值等于j时刻数值时,累计数也加1了,这样和魏老师书上的说法不一样啊。难道程序有错啊?

想想觉得不应该啊,南气院的程序流传已久,多少老师、学生都用过,不可能那么多大虾没发现问题,让我发现了。于是反复看了算法和程序,还是没想通。
因本人也是最近才接触MK法,fortran也没完全掌握,有此疑问,请各位指点。

PS:Matlab板块现在就有两种MK算法的程序,一种是直接从fortran翻译过来的(记得是一个叫伽蓝的网友);另一种就消除了上面说的i,j时刻相等,累计数加1的情况。真不知道谁是对滴。

        
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-6-21 17:45:23 | 显示全部楼层
晕倒,我指的代码是这个
DO 20 J=1,I-1
        IF(Y(I).LT.Y(J))GOTO 20
        M(I)=M(I)+1
  20   CONTINUE
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2016-6-22 08:33:57 | 显示全部楼层
有人讨论过,楼主有耐心的话可以查查历史的帖子哈
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-6-27 09:53:40 | 显示全部楼层
mofangbao 发表于 2016-6-22 08:33
有人讨论过,楼主有耐心的话可以查查历史的帖子哈

谢谢管理员提醒,可能之前没找到,我翻翻
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-6-28 09:16:08 | 显示全部楼层
mofangbao 发表于 2016-6-22 08:33
有人讨论过,楼主有耐心的话可以查查历史的帖子哈

已经找到了“作者:yutian2999  关于《现代气候统计诊断与预测技术》书中Mann-Kendall突变检验法”,结论是“wei做图的时候采用xi>=xj,得出来的突变点是错误的,应该采用xi>xj来计算”。。。
这么说,坛子几乎所有MK检验的Fortran和部分Matlab源码都有问题。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-12-1 12:09:13 | 显示全部楼层
谢谢楼主分享!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2024-10-22 23:09:10 | 显示全部楼层
盖棺定论了吗我想问
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表