solve_normal_equation

ska_sdp_func_python.calibration.ionosphere_solvers.solve_normal_equation(AA, Ab, param, it=0)[source]

Solve the normal equations and update parameters.

Using the SVD-based DGELSD solver via numpy.linalg.lstsq. Could use the LU-decomposition-based DGESV solver in numpy.linalg.solve, but the normal matrix may not be full rank.

If n_param gets large (~ 100) it may be better to use a numerical solver like lsmr or lsqr.

Parameters:
  • AA – [n_param, n_param] normal equation

  • Ab – [n_param] data vector

  • param – [n_cluster] list of solution vectors, one for each cluster

  • it – int, current iteration

Return param_update:

the current incremental param update