force_posiDiag function

Force diagonal elements of a triangular matrix to be positive

Force diagonal elements of a triangular matrix to be positive

This function ensures that the triangular matrix in a QR (or other) decomposition has positive values along its diagonal.

force_posiDiag(x)

Arguments

  • x: A matrix, which must be either upper-triangular or lower-triangular.

Returns

An upper or lower triangular matrix with positive diagonal entries such that the matrix is still a valid decomposition of the matrix the input x is a decomposition of.

Examples

data(ais) res <- MoE_clust(ais[,3:7], G=3, modelNames="EEE") sig <- res$parameters$variance a <- force_posiDiag(sig$cholSigma) b <- chol(sig$Sigma) all.equal(a, b) #TRUE all.equal(crossprod(a), sig$Sigma) #TRUE all.equal(crossprod(b), sig$Sigma) #TRUE

Author(s)

Keefe Murphy - <keefe.murphy@mu.ie >

  • Maintainer: Keefe Murphy
  • License: GPL (>= 3)
  • Last published: 2025-03-05