Source code for pyacs.lib.glinalg.lscov

"""Solve least-squares with data covariance matrix."""

import numpy as np

from .ls import ls


[docs] def lscov(G, d, cov, method='chol'): """Solve least-squares with data covariance matrix. Parameters ---------- G : numpy.ndarray m x n design matrix. d : numpy.ndarray m observation vector. cov : numpy.ndarray m x m covariance matrix for d. method : str, optional 'chol' for Cholesky. Default is 'chol'. Returns ------- numpy.ndarray Solution vector. """ if method == 'chol': L = np.linalg.cholesky(cov) SQRT_Wd = np.linalg.inv(L) GG = np.dot(SQRT_Wd, G) dd = np.dot(SQRT_Wd, d) return ls(GG, dd)