均差定义及性质(python实现)

简述

k阶均差

f [ x 0 , x 1 , . . . , x k ] = f [ x 0 , x 1 , . . . , x k 2 , x k ] f [ x 0 , x 1 , . . . , x k 1 ] x k x k 1

一阶均差

f [ x 0 , x 1 ] = f ( x 1 ) f ( x 0 ) x 1 x 0

上述式子可以看到递推性质。
最终都会收敛到一阶均差。

性质

  • f [ x 0 , x 1 , . . . , x k ] = j = 0 k f ( x j ) t ! = j ( x j x t )
    这个性质,带来的就是简化均差的简化运算(其实也很好记的,这里,分母不就是之前 w n ( x j )
  • f [ x 0 , x 1 , . . . , x k ] = f [ x 1 , x 2 , . . . , x k ] f [ x 0 , x 1 , . . . , x k 1 ] x k x 0
  • f [ x 0 , x 1 , . . . , x k ] = f ( n ) ( ξ ) n !

python实现

下面是用python实现的均差,ff()就是f[,,]
其中 f ( x ) = 1 x 2 + 1

def f(X):
    return 1 / (x ** 2 + 1)


def ff(X=list()):
    if len(X) < 2:
        raise ValueError('X\'s length must be bigger than 2')
    ans = 0
    for i in range(len(X)):
        temp = 1.0
        for j in range(len(X)):
            if j == i:
                continue
            temp *= (X[i] - X[j])
        ans += (f(X[i]) / temp)
    return ans

猜你喜欢

转载自blog.csdn.net/a19990412/article/details/80961483