【发布时间】:2016-05-06 08:11:56
【问题描述】:
给定 3D 中的一组点,一般问题是找到以下形式的平面方程的a, b, c 系数:
z = a*x + b*y + c
使得生成的平面与该点集最适合。
-
在this SO answer中,函数scipy.optimize.minimize就是用来解决这个问题的。
它依赖于对系数的初始猜测,并最小化一个误差函数,该函数将每个点到平面表面的距离相加。
-
在this code(基于this other SO answer)中,scipy.linalg.lstsq 函数用于解决相同的问题(当限制为一阶多项式时)。
它求解方程
z = A*C中的C,其中A是点集的x,y坐标的串联,z是点集的z坐标,@ 987654334@ 是a,b,c系数。与上述方法中的代码不同,这似乎不需要对平面系数进行初始猜测。
由于minimize 函数需要初始猜测,这意味着它可能会也可能不会收敛到最优解(取决于猜测的好坏)。第二种方法是否有类似的警告,或者它会返回一个始终精确的解决方案?
【问题讨论】:
标签: python scipy mathematical-optimization