⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gum_least.c

📁 计算gumbul极值的一段程序,没有附带算例,因为太简单了
💻 C
字号:
		const double Gumbel_Least(const double OrginalData[],const int iSize,const int iYear,double& gumbelA,double& gumbelB) 
		//OrginalData	:orginal input data vector of size iSize;
    //iSize		:size of OrginalData
    //gumbelA,B :parameter of a,b,c in gumbel extreme statistic
     {
			double   x_ave, y_ave, sigma_x, sigma_y, rxy, p, xtr_value, *y;
			int     i, isize;

			y=new double[iSize];
			x_ave = 0.0;
			y_ave = 0.0;
			sigma_x = 0.0;
			sigma_y = 0.0;
			rxy = 0.0;
			isize = iSize - 1;
            
			for ( i = 0; i <= isize; i++ )  {
			    
				y[i] = (double) (i + 1) / ( iSize + 1 );
				y[i] = -log ( -log ( 1 - y[i] ) );
				
				x_ave += OrginalData[i];
				y_ave += y[i];
				
				sigma_x += OrginalData[i] * OrginalData[i];
				sigma_y += y[i] * y[i];
				rxy += OrginalData[i] * y[i];
			}

			x_ave /= iSize;
			y_ave /= iSize;
			
			sigma_x = sigma_x / iSize - x_ave * x_ave;
			sigma_y = sigma_y / iSize - y_ave * y_ave;
			rxy     = rxy / iSize -x_ave * y_ave;
			
			sigma_x = sqrt ( sigma_x );
			sigma_y = sqrt ( sigma_y );
			rxy     = rxy / ( sigma_x * sigma_y );
			
			gumbelB = rxy * sigma_x / sigma_y;
	    gumbelA = x_ave - gumbelB * y_ave;
	    
	    p = 1 - 1.0 / (int) (1==iYear?1.01:iYear);
		  xtr_value = gumbelA - gumbelB * log( -log(p) );
	   			
	  	return xtr_value;
		}
       

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -