水文分析与计算――频率分析及洪水流量过程(一)

2014-11-24 11:56:21 · 作者: · 浏览: 7
[cpp]
//频率分析.h
void PinLvFenXi()
{
using namespace std;
const int NYear = EndYear - 1862 + 1,//调查考证期(1862-2000)
L = 1,//实测期特大洪水个数
a = 2,//考证期及实测期特大洪水个数
YearSuperYearW[a] = {1903, 1975},//特大洪水年份
SuperYearW[a] = {21000, 12300};//特大洪水值
int order;//降序的序号
double AverageMaxYearW[J] = {0},
HundredYearW[J] = {0},//不同年极值的百年一遇设计值
K,//模比系数
Cv = 0;//变差系数近似无偏估计值
ofstream outfile;
outfile.open("outfile_YearW_P.txt");


outfile< < outfile<<"调查考证期:"< for(int M = 0; M < a; M++)//最大1日特大洪水经验频率
outfile< < outfile<<"实测期:"< for(int i = 0; i < Y; i++)
{//最大1日实测洪水经验频率
for(int M = 0; M < a; M++)
if(StartYear+i == YearSuperYearW[M])
{
outfile< < i++;
M = 0;//再检验i++
}
if(i == Y) break;
AverageMaxYearW[0] += MaxYearW[i][0];
outfile< order = 1;//从1开始降序排序的(忽略L个特大洪水)
for(int j = 0; j < Y; j++)
if(MaxYearW[i][0] outfile< }
AverageMaxYearW[0] *= ((NYear - a)/(Y - L));
for(int M = 0; M < a; M++)
AverageMaxYearW[0] += SuperYearW[M];
AverageMaxYearW[0] /= NYear;//得到最大1日洪水的多年平均值
for(int i = 0; i < Y; i++)
{//计算最大1日洪水的变差系数
for(int M = 0; M < a; M++)
if(StartYear+i == YearSuperYearW[M])
{
i++;
M = 0;//再检验i++
}
if(i == Y) break;
Cv += pow(MaxYearW[i][0] - AverageMaxYearW[0], 2);
}
Cv *= ((NYear - a)/(Y - L));
for(int M = 0; M < a; M++)
Cv += pow(SuperYearW[M] - AverageMaxYearW[0], 2);
Cv = pow(Cv/(NYear - 1), 0.5)/AverageMaxYearW[0];


outfile< for(int k = 1; k < J; k++)//其他年极值洪水经验频率
outfile<
< outfile< for(int i = 0; i < Y; i++)
{//算经验频率
outfile< for(int k = 1; k < J; k++)
{
outfile< order = 1;//从1开始降序排序的
for(int j = 0; j < Y; j++)
if(MaxYearW[i][k] outfile< }
outfile< }
outfile.close();

for(int k = 1; k < J; k++)
{//算其他年极值的多年平均值
for(int i = 0; i < Y; i++)
AverageMaxYearW[k] += MaxYearW[i][k];
AverageMaxYearW[k] /= Y;
}
cout<<"年极值系列频率分析——理论频率曲线参数初值如下:"< for(int k = 0; k < J; k++)
{//计算其他年极值的变差系数
if(k != 0)
{
Cv = 0;
for(int i = 0; i < Y; i++)
{
K = MaxYearW[i][k]/AverageMaxYearW[k];
Cv += pow(K - 1, 2);
}
Cv = pow(Cv/(Y - 1), 0.5);
}
cout<<"最大"< <<"变差系数近似无偏估计值Cv = "< }



//推求设计洪水过程线
double ClassicalMonthQ[31],//典型洪水月流量
ForcastQ[31],//设计洪水过程
MaxClassicalYearW[J],//典型洪水的极值洪量
RatioW[J];//同频率倍比
int date[J];//记录典型年极值时段,判断是否为包含关系
ifstream infile;
infile.open("infile_ClassicalWprocess.txt");
for(int i = 0; i < 31; i++)
infile>>ClassicalMonthQ[i];
infile.close();
outfile.open("outfile_ForecastWprocess.txt");

for(int k = 0; k {//求典型洪水的极值洪量
MaxClassicalYearW[k] = 0;//初始化
for(int j = 0; j < 31 - NumJ[k] + 1; j++)
{
temp_W = 0;//初始化
for(int n = 0; n < NumJ[k]; n++)
temp_W += ClassicalMonthQ[j + n];
if(temp_W >MaxClassicalYearW[k])
{
MaxClassicalYearW[k] = temp_W;//(m3/s*月)