Python 从x、y、z数据生成曲面方程
对于已知x、y和z的曲面,生成方程最有效的方法是什么?似乎有很多方法可以从几个数据点一个样条插值,但是,我有所有表示光滑曲面的数据点,仍然没有一个表示整个曲面的方程。每个样条曲线都相当简单,因为它上升和下降一次 我已经从一个最小二乘法的例子中生成了一个方程,但是得到的方程并不代表更复杂的形式 我意识到交叉术语不见了。如何将每个交叉项(xy,xy^2,x^2y,x^3y,x^3y^2,y^3x,y^3x^2)添加到脚本中?一旦我有交叉术语,我需要为它们添加学位吗Python 从x、y、z数据生成曲面方程,python,math,numpy,spline,surface,Python,Math,Numpy,Spline,Surface,对于已知x、y和z的曲面,生成方程最有效的方法是什么?似乎有很多方法可以从几个数据点一个样条插值,但是,我有所有表示光滑曲面的数据点,仍然没有一个表示整个曲面的方程。每个样条曲线都相当简单,因为它上升和下降一次 我已经从一个最小二乘法的例子中生成了一个方程,但是得到的方程并不代表更复杂的形式 我意识到交叉术语不见了。如何将每个交叉项(xy,xy^2,x^2y,x^3y,x^3y^2,y^3x,y^3x^2)添加到脚本中?一旦我有交叉术语,我需要为它们添加学位吗 # Set up the cano
# Set up the canonnical least squares form
Ax = np.vander(X,degree)
Ay = np.vander(Y,degree)
A = np.hstack((Ax,Ay))
# Solve for the least squares estimate of current
(coeffs, residuals, rank, sing_vals) = np.linalg.lstsq(A, Z)
# Extract coefficients and create polynomials in x and y
xcoeffs = coeffs[0:degree]
ycoeffs = coeffs[degree:2 * degree]
fx = np.poly1d(xcoeffs)
fy = np.poly1d(ycoeffs)
print fx
print fy