欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python 拉格朗日插值法代码与实现

程序员文章站 2022-06-07 09:46:16
...

Python 拉格朗日插值法代码与实现

import matplotlib.pyplot as plt
import numpy as np
import math
import random

y_point = []
text_list = []
x_point = random.sample(range(0,12),10)#生成不重复的随机数
for num in range(10):
    y_point.append(random.randint(1, 12))#生成1-20随机整数
    text='('+str(x_point[num])+','+str(y_point[num])+')'#合并字符串
    text_list.append(text)
    plt.annotate(text_list[num],xy=(x_point[num],y_point[num]),xytext=(x_point[num]+0.5,y_point[num]+0.5))
    #annotate第一个参数是文本内容 第二个参数是要标记的位置 第三个参数是文本标记位置

x = np.arange(min(x_point), max(x_point)+0.01, 0.01)

sum = 0
for i in range(len(x_point)):
    numerator = 1
    denominator = 1
    for j in range(len(x_point)):
        if (j != i):
            numerator *= x - x_point[j] #每一项中的分子
            denominator *= x_point[i] - x_point[j] #每一项中的分母
            nape = y_point[i] * numerator / denominator #每一项
    sum += nape



plt.scatter(x_point,y_point, marker=".")
plt.plot(x,sum)
plt.show()
插值展示

Python 拉格朗日插值法代码与实现

相关标签: Python python