【问题标题】:polynomial surface fit numpy多项式曲面拟合 numpy
【发布时间】:2010-03-29 07:03:08
【问题描述】:

如何将 2D 曲面 z=f(x,y) 与带有完整交叉项的 numpy 中的多项式拟合?

【问题讨论】:

    标签: numpy polynomial-math


    【解决方案1】:

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

    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)
    

    您添加的术语越多,数字上的情况就越糟糕。你确定你想要一个多项式插值吗?

    还有其他多项式的基,其值矩阵的条件不是那么糟糕,但我不记得它们叫什么了;不过,任何大学水平的数值分析教科书都会有这种材料。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多