数值分析实验 实验1-1 拉格朗日插值公式 python3实现

题目:

数值分析实验 实验1-1 拉格朗日插值公式 python3实现_第1张图片

代码:

#预测点
pre_points = list(map(float, input("请输入预测点序列,格式为x1 x2 x3 :").split()))
#构造插值点,为等差数列
input_points = list(range(-5, 6))
#预测点的值
result = []


def fx(x):
    return 1 / (1 + x * x)


#拉格朗日差值公式
def LGLR(points, pre_point):
    sum_res = 0
    for point in points:
        am = 1  # 分子
        an = 1  # 分母
        temp_points = points.copy()
        temp_points.remove(point)
        for xn in temp_points:
            am *= (pre_point - xn)
            an *= (point - xn)
        sum_res += am / an * fx(point)
    return sum_res


for pre_point in pre_points:
    result.append(LGLR(input_points, pre_point))

for i, res in enumerate(pre_points):
    print("近似值:" + str(result[i]), "准确值:" + str(fx(res)), "误差:" + str(abs(fx(pre_point) - result[i])))

运行结果:

运行结果

你可能感兴趣的:(数值分析实验)