用C++程序编程最小二乘法推求暴雨强度公式

用最小二乘法推求水文学中的暴雨强度公式,用C++编程~·
以下是详细材料:
暴雨强度公式:i=A/(t^n),n,A为地方特性参数,t为降雨历时,其中A=A1+BlgT,A1与B都是常数,T是重现期。
将每一重现期的暴雨强度公式i与t看作一组观测系列,每组有m1对(i,t)值,lgi-(lgA-nlgt)不等于0
根据最小二乘法原理,若所求的参数为最佳值时,则可使观测值i与其匹配直线之间的误差平方和M为最小:
M=[lgi-(lgA-nlgt)]^2之和(以下用符号&表示求和符号)
令M对n的偏导数为0得:&(lgi×lgt)-&(lgA×lgt)+n&(lgt)^2=0
对于某一重现期T,lgA为常数,所以:&(lgi×lgt)-lgA&lgt+n&(lgt)^2=0 (1)
又令M对lgA的偏导数为0得:&lgi-&lgA+n&lgt=0
令m1为降雨历时总项数,则上式可改为:&lgi-m1×lgA+n&lgt=0 (2)
联立(1)(2)得:n=[&lgi×&lgt-m1×&(lgi×lgt)]/[m1&(lgt)^2-(&lgt)^2]
求平均值:n平均=&n/m2 m2为重现期总项数
对式A=A1+BlgT运用最小二乘法得:A1=[&(lgt)^2-&lgT×&A×lgt]/m2*=[&(lgt)^2-(&lgt)^2]
B=[&A-m2*A]/&lgT

第1个回答  2009-11-14
暴雨强度公式:i=A/(t^n),n,A为地方特性参数,t为降雨历时,其中A=A1+BlgT,A1与B都是常数,T是重现期。
将每一重现期的暴雨强度公式i与t看作一组观测系列,每组有m1对(i,t)值,lgi-(lgA-nlgt)不等于0
根据最小二乘法原理,若所求的参数为最佳值时,则可使观测值i与其匹配直线之间的误差平方和M为最小:
M=[lgi-(lgA-nlgt)]^2之和(以下用符号&表示求和符号)
令M对n的偏导数为0得:&(lgi×lgt)-&(lgA×lgt)+n&(lgt)^2=0
对于某一重现期T,lgA为常数,所以:&(lgi×lgt)-lgA&lgt+n&(lgt)^2=0 (1)
又令M对lgA的偏导数为0得:&lgi-&lgA+n&lgt=0
令m1为降雨历时总项数,则上式可改为:&lgi-m1×lgA+n&lgt=0 (2)
联立(1)(2)得:n=[&lgi×&lgt-m1×&(lgi×lgt)]/[m1&(lgt)^2-(&lgt)^2]
求平均值:n平均=&n/m2 m2为重现期总项数
对式A=A1+BlgT运用最小二乘法得:A1=[&(lgt)^2-&lgT×&A×lgt]/m2*=[&(lgt)^2-(&lgt)^2]
B=[&A-m2*A]/&lgT
相似回答