多项式曲面拟合numpy

时间:2010-03-29 07:03:09

标签: numpy polynomial-math

如何在具有完整交叉项的numpy中使用多项式拟合2D曲面z=f(x,y)

2 个答案:

答案 0 :(得分:7)

这本质上是数字疾病,但你可以做这样的事情:

import numpy as np

x = np.random.randn(500)
y = np.random.randn(500)
z = np.random.randn(500) # Dependent variable

v = np.array([np.ones(500), x, y, x**2, x * y, y**2])

coefficients, residues, rank, singval = np.linalg.lstsq(v.T, z)

您添加的字词越多,数字化程度就越差。你确定要多项式插值吗?

对于多项式还有其他基础,其值的矩阵没有那么严格的条件,但我不记得它们被称为什么;但是,任何大学水平的数值分析教科书都会有这种材料。

答案 1 :(得分:0)

您可以结合使用polyvander2dpolyval2d,但需要使用polyvander2d的设计矩阵输出来自己进行拟合,可能涉及缩放等。应该可以从那些工具构建一个类Polynomial2d