勇敢心资源网

当前位置:首页 > 百科 / 正文

权因子

(2019-05-04 17:54:45) 百科
权因子

权因子

在进行抗差估计时,必须根据残差计算等价权因子,简称权因子。

权因子是观测残差的一个分段函式,目前常用的是三段函式,当残差的绝对值小于界值k0时,等价权因子取值为1;当残差的绝对值大于界值k0小于界值k1时,等价权因子在区间(0,1)取值;当残差绝对值大于界值k0时,等价权因子取值为0。

基本介绍

  • 中文名:权因子
  • 外文名:weighting factor

计算公式

关于权因子函式的定义,在实际套用中有太多的形式,此处选取了目前在测量平差中套用较广的Huber函式、IGG1函式和IGG3函式,设计了统一的等价权因子计算函式,取名为Wi

Huber函式

IGG1函式

IGG3函式

函式原型

double Wi(int fname,double v,double k0,double k1);
fname——权因子函式选择变数,0、1、2分别对应IGG1函式、IGG3函式、Huber函式;
v——权因子函式的自变数;
ko——保权临界值,即等价权公式中的k0
k1——零权临界值,即等价权公式中的k1
返回值——等价权因子。

函式原始码

#defme IGG1 0
#define IGG3 1
#define Huber 2
double Wi(int fname,double v,double k0,double k1)
{
double a:
switch(fname)
{
case IGG1://IGG1函式
v=fabs(v);
if(v<=k0)return 1.0;
if(v>k1)return 0.0;
return k0/v;
case IGG3://IGG3 函式
v=fabs(v);
if(v<=k0)return 1.0;
if(v>k1)return 0.0;
a=(k1-v)/(k1-k0);
return k0/v*a*a;
case Huber://Huber函式
v=fabs(v);
if(v<=k0)return 1.0;
return k0/v;
default:
MyBreak(”等价权函式名称错误!”);
return 1.0;
}
}
说明:为了便于记忆,程式中将IGG1、IGG3、Huber分别定义成三个宏,这样可以用IGG1、IGG3或Huber作为实在参数调用Wi函式。
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net
搜索
随机推荐

勇敢心资源网|豫ICP备19027550号