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
"""
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)