我有一组实验确定的(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和线性代数,如果需要的话。
由于
答案 0 :(得分:2)
请勿对此问题使用任何工具箱,GUI或特殊功能。您的问题很常见,您提供的等式可能会以非常直接的方式解决。线性最小二乘问题的解决方案可概括为:
A = [x(1)^ 2 y(1)^ 2 ... y(1)z(1)1
...
x(N)^ 2 y(N)^ 2 ... y(N)z(N)1]
答案 1 :(得分:0)
您是否有足够的数据点来满足所有10个参数 - 您至少需要10个?
我还怀疑有10个参数用于描述一般抛物面,这意味着一些参数是依赖的。我的意思是翻译和旋转的抛物面需要7个参数(虽然我不太确定)