权因子

更新时间:2022-08-25 14:18

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

计算公式

关于权因子函数的定义,在实际应用中有太多的形式,此处选取了在测量平差中应用较广的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函数。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}