我试图使用正常多项式来拟合双变量多项式的数据。我已经从关于双变量数据拟合的示例开始:Fitting polynomials to data
问题是这些不是正交的,所以系数随着程度的变化而变化。我的计划是使用legendre多项式(构建X和Y多项式,然后采用与我如何构建下面的列表类似的交叉产品),但我仍然坚持如何拟合数据。
def least_sqr(n,degree,x,y,DEL):
#n==length of list x#
A = []
for i in range(n):
A.append([])
for xd in range(degree+1):
for yd in range(degree+1-xd):
A[i].append((x[i]**xd)*(y[i]**yd)) #f_j(x_i)
q,_,_,_ = linalg.lstsq(A,DEL)
return q
def MAIN():
x,y,delx,dely,n = data_parse(file1, file2, file3, file4);
degree=3
q=least_sqr(n,degree,x,y,delx)
r=least_sqr(n,degree,x,y,dely)