Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从x、y、z数据生成曲面方程_Python_Math_Numpy_Spline_Surface - Fatal编程技术网

Python 从x、y、z数据生成曲面方程

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

对于已知x、y和z的曲面,生成方程最有效的方法是什么?似乎有很多方法可以从几个数据点一个样条插值,但是,我有所有表示光滑曲面的数据点,仍然没有一个表示整个曲面的方程。每个样条曲线都相当简单,因为它上升和下降一次

我已经从一个最小二乘法的例子中生成了一个方程,但是得到的方程并不代表更复杂的形式

我意识到交叉术语不见了。如何将每个交叉项(xy,xy^2,x^2y,x^3y,x^3y^2,y^3x,y^3x^2)添加到脚本中?一旦我有交叉术语,我需要为它们添加学位吗

# 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