拉格朗日插值公式
流程图如下:
python代码实现如下:
# coding=gbk;
def Data_in(list0,list1,list2):
list0=input("请输入离散点的值:").split(" ");
for i in range(0,len(list0)):
if i%2==0: #如果是奇数 那么指的也就是x
list1.append(float(list0[i]));
else: #如果是偶数 那么就是y
list2.append(float(list0[i]));
return list0,list1,list2;
def Lagrange_insert(list1,list2,length,x_in1):
k=0;
y_out=0;
while k<=length-1:
t=1; j=0; count=0; #用来计算多少次
while count!=n-1: #肯定是只能够N-1次
if j==k:
j+=1;
continue;
t_temp1=x_in1-list1[j];
t_temp2=list1[k]-list1[j];
t=t_temp1/t_temp2*t
count+=1;
y_out+=t*list2[k];
k+=1
return y_out;
temp_list=[]; x=[]; y=[];
temp_list,x,y=Data_in(temp_list,x,y);
n=len(y); #n用来记录多少组数据
x_in=float(input("请输入想要预测的x值:"));
y_predict=Lagrange_insert(x, y, n, x_in);
print(y_predict)
遇事不决,可问春风