Weighted residuals and last estimations of batch least square estimator

Dear all,

after reading this post Re-computed estimated measurements of some time ago, I would ask you some clarifications regarding the results generated by the two following methods which are available when using the BLSEstimator:

  1. batchLSEstimator.getOptimum().getResiduals(): this method from what I understand should compute the “weighted residuals” of the penultimate iteration of the BLSEstimator, which are equivalent to the “physical residuals” multiplied by the square root of the weight matrix W (considering it is a diagonal matrix this corresponds in practice to multiplying by 1/sigma of the measurements).

  2. batchLSEstimator.getLastEstimations(): this method should provide a map with the ObservedMeasurements and the EstimatedMeasurements for each epoch of the penultimate iteration of the BLSEstimator.

Therefore, if I understand correctly, the “weighted residuals” computed with the first method multiplied by the corresponding measurement sigma (which, after this operation, are the “physical residuals” at the penultimate iteration) should be equivalent to the difference between ObservedMeasurements and EstimatedMeasurements obtained from the second method, since these too represent the “physical residuals” at the penultimate iteration.

However, during a test to verify this, I obtained different results between the two set of “physical residuals” generated as explained above, therefore I would ask you confirmation on this matter.

Are the weighted residuals (of the first method) obtainable by performing the difference between ObservedMeasurements and EstimatedMeasurements (of the second method) multiplied by the corresponding 1/sigma of the measurements?

Many thanks.

Best Regards

Dear all, do you have any clarification for this topic? Thanks a lot!

Dear all,

I have an additional comment to my previous question. From what I see comparing the weighted residuals obtained from batchLSEstimator.getOptimum().getResiduals() and the weighted residuals I recompute from propagating the orbit using the propagator resulting from the estimation (with all the estimated parameters already set), the residuals obtained from batchLSEstimator.getOptimum().getResiduals() are ordered in reverse chronological order. Do you confirm this?

Many thanks.

Best Regards

Hi @fpan , sorry for the very late reply.

I am puzzled by the order. Is your estimation using forward or backward propagation?

I think it is not the penultimate iteration, but rather the last iteration that was accepted.

Dear Luc,

thanks a lot for your reply. Regarding the order of the residuals: I used the propagator resulting from the batch least square estimation and I performed first a backward propagation from the reference epoch of estimation to the start epoch of the orbit determination arc and then I reversed the obtained states to have them in chronological order and then I performed a forward propagation from the reference epoch of estimation to the end of orbit determination arc and I added these states to the previous ones. So in practice I recomputed the measurements in chronological order and I performed the difference with respect to the original measurements and finally dividing by the sigma of the measurements to find the weighted residuals which are also in chronological order. At this point I noticed that the method batchLSEstimator.getOptimum().getResiduals() was returning the reversed order of the weighted residuals with respect to mine.