版權歸原作者所有,如有侵權,請聯(lián)系我們

[科普中國]-權因子

科學百科
原創(chuàng)
科學百科為用戶提供權威科普內容,打造知識科普陣地
收藏

在進行抗差估計時,必須根據殘差計算等價權因子,簡稱權因子。

權因子是觀測殘差的一個分段函數(shù),目前常用的是三段函數(shù),當殘差的絕對值小于界值k0時,等價權因子取值為1;當殘差的絕對值大于界值k0小于界值k1時,等價權因子在區(qū)間(0,1)取值;當殘差絕對值大于界值k0時,等價權因子取值為0。1

計算公式關于權因子函數(shù)的定義,在實際應用中有太多的形式,此處選取了目前在測量平差中應用較廣的Huber函數(shù)、IGG1函數(shù)和IGG3函數(shù),設計了統(tǒng)一的等價權因子計算函數(shù),取名為Wi。1

Huber函數(shù)

IGG1函數(shù)

IGG3函數(shù)

函數(shù)原型double Wi(int fname,double v,double k0,double k1);

fname——權因子函數(shù)選擇變量,0、1、2分別對應IGG1函數(shù)、IGG3函數(shù)、Huber函數(shù);

v——權因子函數(shù)的自變量;

ko——保權臨界值,即等價權公式中的k0;

k1——零權臨界值,即等價權公式中的k1;

返回值——等價權因子。1

函數(shù)源代碼#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函數(shù)

v=fabs(v);

if(vk1)return 0.0;

return k0/v;

case IGG3://IGG3 函數(shù)

v=fabs(v);

if(vk1)return 0.0;

a=(k1-v)/(k1-k0);

return k0/v*a*a;

case Huber://Huber函數(shù)

v=fabs(v);

if(v