Пример #1
0
def v(n):
    try:
        return table_v[n - 2]
    except:
        if n > 9:
            raise tooMuchDataForTestException('贝塞尔公式法不支持超过9组数据')
        elif n < 2:
            raise tooLessDataForTestException('贝塞尔公式法')
Пример #2
0
def D(confLevel, n, side):
    if n > 100:
        raise tooMuchDataForTestException('Dixon检验最多只支持100个数据的检验')
    elif n < 3:
        raise tooLessDataForTestException('Dixon检验')
    if side == 1:
        return oneSide[confLevel][n - 3]
    elif side == 2:
        return twoSides[confLevel][n - 3]
Пример #3
0
def b(confLevel, n, side=2):
    if n > 100:
        raise tooMuchDataForTestException('偏度-峰度检验最多只支持100个数据的检验')
    elif n < 8:
        raise tooLessDataForTestException('偏度-峰度检验')
    if side == 1:
        y = sTable[confLevel]
    elif side == 2:
        y = kTable[confLevel]
    if n in y:  #当表中有值时,直接取出值
        return y[n]
    else:  #当表中没有值时,使用插值法
        nl = n - min([n-k for k in sTable[confLevel].keys() if k<14])  #找出右侧的值
        nr = n + min([k-n for k in sTable[confLevel].keys() if k>14])  #找出左侧的值
        return f(y[nl] + (y[nr]-y[nl])/(nr-nl)*(n-nl), 2)  #给出插值结果
Пример #4
0
def G(confLevel, n):
    if n > 100:
        raise tooMuchDataForTestException('Grubbs检验不支持超过100组数据')
    elif n < 3:
        raise tooLessDataForTestException('Grubbs检验')
    return table[confLevel][n-3]