Python中的Hermite插值,不使用scipy库

zxlwwiss  于 2023-11-19  发布在  Python
关注(0)|答案(1)|浏览(100)
def hermite_interpolation(x, y, yp, xi):
    n = len(x) - 1
    result = 0.0

    for j in range(n + 1):
        term = y[j]
        for i in range(n + 1):
            if i != j and x[j] != x[i]:
                term *= (xi - x[i]) / (x[j] - x[i])
        result += term * (1 + 2 * (xi - x[j]) / (x[j] - x[i])) * (xi - x[j]) ** 2

    return result

字符串
错误:
在标量除法result += term * (1 + 2 * (xi - x[j]) / (x[j] - x[i] )) * (xi - x[j])**2中遇到被零除
我想插值的函数是y = 1 / (x**2 + 1),在[0,1]的区间内,对于等距点。我试图向其添加x1,但插值误差显著增加,我该怎么办?

1bqhqjot

1bqhqjot1#

你需要改变方法。一个可能的搜索词是 * 接触插值 *。

相关问题