多项式插值算法 python实现
算法思想:用多项式逼近原函数
·
算法思想:用多项式逼近原函数
import numpy as np
from numpy import *
import numpy.linalg as lg #numpy的线性代数函数库 linalg
import math
x=[]
y=[]
N=10
pi=math.pi
#形成十个(x,y)点
for i in range(N):
x.append(round((-1+(2/N)*(N-i)),3))
def function(x1):
return math.sin(pi*x1)
for i in range(len(x)):
y.append(function(x[i]))
n = len(x)
X= zeros((n, n))
for i in range(n):
for j in range(n):
X[i][j] = math.pow(x[i],j)
print(X) #范德蒙
A=[] #系数矩阵
XT=lg.inv(X) #求X得逆矩阵
Y=zeros((n,1))
for i in range(len(y)):
Y[i][0]=y[i]
A=lg.solve(X,Y) #解系数矩阵
def polynomial_interploate(x1):
P=0
for i in range(len(x)):
P+=A[i][0]*math.pow(x1,i)
return P
更多推荐
所有评论(0)