1、首先通过寻找空间中散点的最小立方体包络,大致确定椭球的位置、形状。
2、以上述空间立方体的长宽高、中心位置、立方体三边的方向确定椭球面的轴长以及椭球面三条轴构成的坐标系到现有标准3D笛卡尔坐标系的旋转平移关系。
(当然,以上立方体只是确定椭球面大致位置、尺寸、方向,上面得到的各参数值,包括旋椭球面中心、旋转矩阵、轴长是为了下面做准备)
3、找到散点的凸包上的点(MATLAB中的convhull函数),直接对这些点用非线性规划(目标函数仍是椭球体积公式,这里椭球面中心、旋转矩阵、轴长均为未知量;约束条件是这些点均位于椭球内部或边界上,并且旋转矩阵为正交阵)(初值根据第2步中的立方体设置),确定最小椭球面。
注意,以上非线性规划可以用MATLAB中的fmincon函数求解,并且需要用MATLAB中的最优化工具箱中的globalsearch得到全局最优解。