Python拉格朗日插值法

Python拉格朗日插值法,第1张

拉格朗日插值法
from fractions import Fraction


def lagrange_interpolation_polynomial():
    """拉格朗日插值法"""
    n = int(input("插值点个数:"))
    x_list = [float(x) for x in input("输入x的数值,用‘,‘分割").split(",")]
    y_list = [float(y) for y in input("输入y的数值,用‘,‘分割").split(",")]
    x = float(input("输入需要估算的x的值:"))

    a = Fraction(Fraction(y_list[1] - y_list[0]), Fraction(x_list[1] - x_list[0]))
    b = Fraction(Fraction(x_list[1] * y_list[0] - x_list[0] * y_list[1]), Fraction(x_list[1] - x_list[0]))
    if n == 2:
        if b < 0:
            print(f"插值函数:f(x)={float(a):.4f}x{float(b):.4f}")
        elif b == 0:
            print(f"插值函数:f(x)={float(a):.4f}x")
        else:
            print(f"插值函数:f(x)={float(a):.4f}x+{float(b):.4f}")
    print(f"f({x}) = {float(a * x + b):.4f}")


if __name__ == '__main__':
    lagrange_interpolation_polynomial()
    """输入的四个数据。
2
2.1,2.3
8.1662,9.9742
2.2
    """

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/727682.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存