【Matlab&Mathematica】对三维空间上的点进行椭圆拟合

问题是这样:比如有一个地心惯性系的轨道,然后从轨道上取了几个点,问能不能根据这几个点把轨道还原了?

当然,如果知道轨道这几个点的速度的情况下,根据轨道六根数也是能计算轨道的,不过真近点角是随时间变动的。

下面我会用数学的方法来解这个问题,基本思想是通过拟合空间上点的平面与椭球平面的交线将该轨道计算出来,算是一种思路吧。

首先需要有轨道数据,我们就从STK上获得,我使用默认参数生成了一个轨道,如下图:

【Matlab&Mathematica】对三维空间上的点进行椭圆拟合

输出j2000下的位置速度:

【Matlab&Mathematica】对三维空间上的点进行椭圆拟合

取其中5个点进行拟合:

【Matlab&Mathematica】对三维空间上的点进行椭圆拟合

可以先计算椭球,设椭球方程为x^2/a+y^2/b+z^2/c+d=0,然后求其最小二乘函数f(a,b,c,d) = sum((x^2/a+y^2/b+z^2/c+d)^2)。

通过单纯性法求该函数符合上面5个点的最小值时的a,b,c,d四个参数。

matlab里就是用fminsearch函数就行了。

代码如下: