爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 116971|回复: 90

[源程序] MATLAB实现MK突变检验

  [复制链接]

新浪微博达人勋

发表于 2015-5-1 12:50:57 | 显示全部楼层 |阅读模式

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

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

x
目前搜到的MATLAB实现MK突变检验的代码似乎是错的。前几天做了一个,其实也只是把魏凤英老师的Fortran程序翻译成了MATLAB而已。第一次发帖子。。可以直接把代码贴上来么。。属于“源程序”这个主题?

[UF,UB]=MannKendall(Y);
% % Y即为待检测的时间序列
figure,hold on;
plot(UF,'-b');
plot(UB,'-r');



function [UF,UB]=MannKendall(timeseries)

N=length(timeseries);
UF=SMK(timeseries,N);
for i=1:N
    YY(i)=timeseries(N+1-i);
end
u_res=SMK(YY,N);
for i=1:N
    UB(i)=-u_res(N+1-i);
end

function u_res=SMK(Y,N)
m_res=zeros(N,1);md_res=zeros(N,1);u_res=zeros(N,1);
m_res(1)=0;
for i=2:N
    m_res(i)=0;
    md_res(i)=0;
    for j=1:i-1
        if Y(i)<Y(j)
            m_res(i)=m_res(i)+0;
        else
            m_res(i)=m_res(i)+1;
        end
        md_res(i)=md_res(i-1)+m_res(i);
    end
end
u_res(1)=0;
for i=2:N
    E=i*(i-1)/4;
    VAR=i*(i-1)*(2*i+5)/72;
    u_res(i)=(md_res(i)-E)/sqrt(VAR);
end

评分

参与人数 2金钱 +11 贡献 +2 收起 理由
ccombstr + 5 确实这版才是对的,感谢
kongfeng0824 + 6 + 2

查看全部评分

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

新浪微博达人勋

发表于 2017-5-12 10:34:14 | 显示全部楼层
菜鸟求问数据怎么带入这个程序
密码修改失败请联系微信:mofangbao
回复 支持 3 反对 0

使用道具 举报

新浪微博达人勋

发表于 2015-5-2 21:22:44 | 显示全部楼层
~~~~~~~~~~~~~~~~~~~~~~~~~~
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2015-5-6 17:04:56 | 显示全部楼层
帮了我大马帮个了忙了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-5-6 21:47:03 | 显示全部楼层
先留着~嘿嘿,谢谢分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-5-8 11:34:12 | 显示全部楼层
谢谢楼主。感谢啊。找了好多天啦
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-2 08:38:32 | 显示全部楼层
看了你的程序后,觉得魏凤英老师的书上写的有点问题,书上写的是“按时间序列逆序再重复上述过程,同时使得UB(k)=-UF(k)”,但是程序里面是“UB(k)=-UF(n+1-k)”。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-6-2 08:51:53 | 显示全部楼层
qinkong 发表于 2015-6-2 08:38
看了你的程序后,觉得魏凤英老师的书上写的有点问题,书上写的是“按时间序列逆序再重复上述过程,同时使得 ...

谢谢~我只是把书上附着的Fortran翻译成了MATLAB,也没有完全看懂算法。。试着计算,发现跟书上的例题、Fortran程序里附的结果一样。之前写毕业论文的时候拿一个时间序列试过,M-K突变检验的结果跟滑动t检验的结果一致。目前只知道这么多……谢谢指点!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-2 08:58:50 | 显示全部楼层
很好的程序
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-2 10:16:51 | 显示全部楼层
qinkong 发表于 2015-6-2 08:38
看了你的程序后,觉得魏凤英老师的书上写的有点问题,书上写的是“按时间序列逆序再重复上述过程,同时使得 ...

对啊,这个让人很奇怪,结果也会差很多。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-20 08:38:21 | 显示全部楼层
赞一个!以后可能会用到,到时候来找你。
不过别人都是要金钱下载,古月月月鸟直接就给贴上来了。。。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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