用matlab进行mk检验.doc

上传人:土8路 文档编号:10400527 上传时间:2021-05-14 格式:DOC 页数:5 大小:95KB
返回 下载 相关 举报
用matlab进行mk检验.doc_第1页
第1页 / 共5页
用matlab进行mk检验.doc_第2页
第2页 / 共5页
用matlab进行mk检验.doc_第3页
第3页 / 共5页
用matlab进行mk检验.doc_第4页
第4页 / 共5页
用matlab进行mk检验.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《用matlab进行mk检验.doc》由会员分享,可在线阅读,更多相关《用matlab进行mk检验.doc(5页珍藏版)》请在三一文库上搜索。

1、用Matlab进行Mann-Kendall分析一、M-K趋势分析法与M-K突变检验的原理介绍1、Mann-Kendall趋势分析法非参数检验,又称任意分布检验,它不对变量的分布做严格假定,检验不针对特定的参数,而是模糊地对变量分布的中心位置或分布状态做检验,由于其不对总体分布做严格假定,因而适用性强12。因此,本文采用非参数的Mann-Kendall检验法对昌马河流域近50年的气候水文要素时间序列显著性检验,定量反映变化趋势的显著性。计算公式如下: (1.1)在公式中, (1.2) (1.3) (1.4)式中:xk,xi为连续的气候、水文等数据序列,n为数据集合的总长度,t为每个单位的宽度,表

2、示所有单位的总和。衡量趋势大小的指标为: (1.5)式中:1jix(m) s=s+1; elseif x(n)=x(m) s=s+0; else s=s-1; end end end %计算vars和e%vars=len*(len-1)*(2*len+5)/18;%计算zc %if s0 zc=(s-1)/sqrt(vars);else zc=(s+1)/sqrt(vars);end %计算zaza=var(x);sign=0;zc1=abs(zc);if zc1 = za sign=1;else sign=0;end %计算倾斜度 ndash = len * ( len - 1 ) / 2;

3、slope1= zeros( ndash, 1 );m=1;for k = 1:len-1,for j = k+1:len,slope1(m) = ( x(j) - x(k) ) / ( j - k ) ; % m = m + 1;end;end;slope= median( slope1 );2、M-K突变检验clc;y=data(1:50,6);%输入数据n=length(y);Sk=zeros(size(y);UFk=zeros(size(y);s1=0;for i=2:n % for j=1:i if y(i)y(j) s1=s1+1; else s1=s1+0; % () end;

4、end;Sk(i)=s1; % E=i*(i-1)/4; Var=i*(i-1)*(2*i+5)/72; UFk(i)=(Sk(i)-E)/sqrt(Var); % end; y2=zeros(size(y);Sk2=zeros(size(y);UBk=zeros(size(y); s2=0;for i=1:n y2(i)=y(n-i+1);end;for i=2:n for j=1:i if y2(i)y2(j) s2=s2+1; else s2=s2+0; end; end;Sk2(i)=s2; E=i*(i-1)/4; % Sk2(i)的均值 Var=i*(i-1)*(2*i+5)/72; % Sk2(i)的方差 % UBk(i)=0-(Sk2(i)-E)/sqrt(Var);end; UBk2=zeros(size(y);for i=1:n UBk2(i)=UBk(n-i+1);end;year=1961:2010;year=year;xlswrite(D:test.xls,year,Sheet1,A1); xlswrite(D:test.xls,UFk,Sheet1,B1);xlswrite(D:test.xls,UBk2,Sheet1,C1);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1