//年均流量趋势检验.h//年均流量Mann-Kendall法趋势分析
void MannKendall()
{using namespace std;int S = 0;//检验的统计变量double VarS,//统计变量S的方差Z ;//标准正态统计变量方差S = 0;for(int i = 0; i < Y; i++)for(int j = i + 1; j < Y; j++){if(YearQ[j]>YearQ[i]) S++;if(YearQ[j]<YearQ[i]) S--;}VarS = 0;VarS = Y*(Y - 1)*(2*Y + 5)/18.0;if(S > 0) Z = (S - 1)/pow(VarS, 0.5);if(S < 0) Z = (S + 1)/pow(VarS, 0.5);cout<<"年均流量趋势检验——Mann-Kendall检验:"<<endl<<"标准正态统计变量Z=  "<<Z<<endl<<"Mann-Kendall检验通过请输入1,否则请关闭!"<<endl;cin>>Z;//控制台停留cout<<endl;
}//年均流量线性回归法法趋势分析
double Normal(double z)
{//返回标准正态分布的密度函数double temp;temp=exp((-1)*z*z/2)/sqrt(2*PI);return temp;
}
double NormSDist(const double z)
{//返回标准正态分布的累积频率函数if(z > 6) return 1;if(z < -6) return 0; static const double gamma =  0.231641900,a1  =  0.319381530,a2  = -0.356563782,a3  =  1.781477973,a4  = -1.821255978,a5  =  1.330274429; double k = 1.0 / (1 + fabs(z) * gamma);double n = k * (a1 + k * (a2 + k * (a3 + k * (a4 + k * a5))));n = 1 - Normal(z) * n;if(z < 0)return 1.0 - n;   return n;
}
void XianXingJianYan()
{//线性回归检验using namespace std;double AverageYearQ = 0,AverageT = (1+Y)/2.0,a, b,//待定回归系数r = 0,//线性相关系数t,//t统计量sigmaT =0,sigmaYearQ = 0,//均方差NewYearQ[Y],//按升序排列的年均流量Fn,//样本累积频率F0,//理论累积频率D_n_alpha = 0.202737,//显著水平为alpha且样本容量为n时的拒绝临界值MaxD = 0,//max(|Fn - F0|)temp,sigmab = 0;//回归系数b标准方差
//  int order;//升序排序年均流量for(int i = 0; i < Y; i++){AverageYearQ += YearQ[i];}AverageYearQ /= Y;for(int i = 0; i < Y; i++){r += (i - AverageT)*(YearQ[i] - AverageYearQ);sigmaT += pow(i - AverageT, 2);sigmaYearQ += pow(YearQ[i] - AverageYearQ, 2);}r /= pow(sigmaT*sigmaYearQ, 0.5);sigmaT = pow(sigmaT/(Y - 1), 0.5);sigmaYearQ = pow(sigmaYearQ/(Y - 1), 0.5);for(int i = 0; i < Y; i++)NewYearQ[i] = YearQ[i];for(int i = 0; i < Y - 1; i++){for(int j = i + 1; j < Y; j++)if(NewYearQ[i] > NewYearQ[j]){temp = NewYearQ[i];NewYearQ[i] = NewYearQ[j];NewYearQ[j] = temp;}}for(int i = 0; i < Y; i++){ Fn = (double)(i+1)/(Y + 1);F0 = NormSDist((NewYearQ[i] - AverageYearQ)/sigmaYearQ);if(MaxD < fabs(Fn - F0)) MaxD = fabs(Fn - F0);}cout<<"年均流量趋势检验——线性回归检验:"<<endl<<"正态分布K-S检验统计量D ="<<MaxD<<endl<<"K-S检验拒绝临界值D(n, a)="<<D_n_alpha<<endl;b = r*sigmaYearQ/sigmaT;a = AverageYearQ - b*AverageT;for(int i = 0; i < Y; i++)sigmab += pow(YearQ[i] - (a + b*i), 2);sigmab = pow(sigmab/(Y - 2), 0.5)/(pow(sigmaT, 2)*(Y - 1));t = b/sigmab;cout<<"线性相关系数r = "<<r<<endl<<"年均流量Q倚时序t的回归系数估计值分别为:"<<endl<<"a = "<<a<<endl<<"b = "<<b<<endl<<"假设检验统计量t = "<<t<<endl<<"线性回归检验通过请输入1,否则请关闭!"<<endl;cin>>t;//控制台停留cout<<endl<<endl<<endl;
}

水文分析与计算——年均流量趋势检验(Mann-Kendall法、线性回归法)相关推荐

  1. 利用水文分析提取山脊线山谷线

    1 流程图 利用水文分析提取山脊线及山谷线,山脊线相当于分水线,山谷线相当于山谷线.分水线是水流的起源点,这些栅格的水流方向只存在流出方向而不存在流入方向,所以汇流累积量为零.通过对零值的提取就可以得 ...

  2. matlab 山脊 提取,ArcGIS中利用水文分析提取山脊线山谷线

    1 流程图 利用水文分析提取山脊线及山谷线,山脊线相当于分水线,山谷线相当于山谷线.分水线是水流的起源点,这些栅格的水流方向只存在流出方向而不存在流入方向,所以汇流累积量为零.通过对零值的提取就可以得 ...

  3. ArcGIS水文分析提取河网、流域、湖泊

    本文只保留了软件操作并不涉及知识原理,为GIS小白提供的实际操作和避坑指南.本意为自己留存复盘,如有错误请各位大佬指点.(使用的软件版本为ArcGIS10.6) 一.提取河网 1.裁剪 数据管理工具 ...

  4. ArcGIS水文分析实战教程(9)雨量计算与流量统计

    ArcGIS水文分析实战教程(9)雨量计算与流量统计 本章导读:降水是水文循环中重要的一环,降水包括雨.雪.雾.露.雹等,本章介绍的是降雨的环节.通过雨量站与插值的方式,实现雨量的空间分布就算,为水文 ...

  5. ArcGIS实验教程——实验三十二:ArcGIS水文分析(流向分析、计算水流长度、汇流分析、河网分析、流域分析)

    ArcGIS实验视频教程合集:<ArcGIS实验教程从入门到精通>(附配套实验数据)> 文章目录 一.流向分析 1. 水流方向计算方法 2. 原始DEM流向分析 3. 洼地判定 4. ...

  6. ArcGIS水文分析实战教程(10)河流平均比降计算

    ArcGIS水文分析实战教程(10)河流平均比降计算 本章导读:河流比降指的是河流任意两端点间的高程差与两点间的水平距离之比值,简单的概括为单位河长内的落差,其单位一般都是‰ . 河流(纵)比降对地质 ...

  7. ArcGIS水文分析实战教程(5)细说流向与流量

    ArcGIS水文分析实战教程(5)细说流向与流量 本章导读:流向分析是ArcGIS水文分析工具的基础,属于GIS技术方面的术语:流量统计则是水文分析用作划分流域.河流等级的指标,属于水文行业术语.在利 ...

  8. ARCGIS水文分析:水库容量和蓄水区计算

    ARCGIS水文分析:水库容量和蓄水区计算 本次实验是通过ARCGIS,给出水坝的高度,从而进行水库的容量计算和淹没区的可视化表达. 实验数据: 某区域的DEM数据和遥感影像 设计思路: 本实验总体思 ...

  9. ArcGIS水文分析实战教程(8)水库库容计算

    ArcGIS水文分析实战教程(8)水库库容计算 本章导读:前面花了整整七个章节来详细介绍常见的水文专业名词以及ArcGIS水文分析工具的原理,虽然也有一些操作部分,但距离实战还是有一定距离,充其量只能 ...

最新文章

  1. 带修莫队 ---- 离散化 + 暴力 + 带修莫队 F. Machine Learning
  2. linux ftp 记录,linux FTP vsftpd
  3. 到底选择PostgreSOL还是MySQL?看这里!
  4. [Rails.Test.Prescriptions]系列之一:0基础的Test Rails...
  5. grenndao 插入表数据报错
  6. Paxos在Chubby中的应用
  7. hdu 1106 字符串处理
  8. python遍历数组冒泡排序_Python算法(一) 数组冒泡排序(难度等级:easy)
  9. Java 泛型List clone
  10. cpoint 两个点距离_Wasserstein距离学习笔记
  11. paip.提升用户体验---控件透明的设置
  12. 不足300的游戏蓝牙耳机靠谱吗?五款高人气蓝牙耳机测评
  13. bt种子文件变成html,bt种子文件是什么?bt种子文件怎么用?
  14. BIMC品牌整合营销:电子商务外包是中小企业未来发展方向
  15. 2.5D地图GIS系统技术方案
  16. 小学生能学计算机编程是什么,小学生为什么要学编程?小学生学习编程怎么样?...
  17. FCN(Fully Convolutional Network)与Unet:谈到语义分割不得不提的两个网络
  18. python基础语法及知识总结,总有你想知道的
  19. SAP Hybris培训-标准课程/企业内训
  20. IDEA 2019 以后SVN 不能添加.ignore 解决办法

热门文章

  1. oppoa5系统服务器是什么,买OPPO A5还是OPPO A3?OPPO A3和OPPO A5区别对比
  2. BCset BC set how entry is inserted to Database table when activated
  3. 计算机专业中观分析是什么,计算机专业本科论文提纲模板样本 计算机专业本科论文大纲怎样写...
  4. 入坑esp-01s 1.3寸OLED带农历时钟及天气显示(四)
  5. 【树莓派4B】安装Ubuntu Mate20.04+ROS Noetic+使用电脑自带的xrdp和VNC进行PC端远程控制
  6. android-柱状图、折线图、x轴、y轴绘制以及实例代码
  7. 警惕!黑客通过iPhone充电线劫持您的计算机
  8. 20210904英雄联盟记录
  9. java实现将将时间段分成8段,判断当前时间在哪一段时间里?
  10. SugarCRM源码分析之缓存