【发布时间】:2015-01-28 07:56:44
【问题描述】:
我有一组实验确定的 (x, y, z) 点,它们对应于抛物线。不幸的是,数据没有沿着任何特定的轴对齐,因此对应于旋转的抛物线。
我有以下一般表面: Ax^2 + By^2 + Cz^2 + Dxy + Gyz + Hzx + Ix + Jy + Kz + L = 0
我需要生成一个可以使用(我假设)最小二乘拟合准确表示抛物线的模型。我似乎无法弄清楚这是如何工作的。我虽然旋转抛物线,直到它的中心轴与 z 轴对齐,但我不知道这个轴是什么。 Matlab 的 cftool 似乎只适合 z = f(x, y) 形式的方程,我不知道 python 中有什么可以解决这个问题。 我还尝试以数字方式求解参数。当我尝试将其转换为矩阵方程并通过最小二乘法求解时,矩阵结果是可逆的,因此我的参数都为零。我也坚持这一点,任何帮助将不胜感激。我并不介意这种方法,因为我熟悉 matlab、python 和线性代数(如果需要)。
谢谢
【问题讨论】:
-
在 python 中,我使用来自 scipy 的 curve_fit。它接受 x 的向量值,因此我将 3D 数据表示为 1D 表。
标签: python matlab curve-fitting least-squares surface