[SciPy-user] howto construct matrix A: dot(A.T, A) is positive-definite

Dominique Orban dominique.orban@gmail....
Fri Oct 5 10:31:43 CDT 2007

On 10/5/07, Anne Archibald <peridot.faceted@gmail.com> wrote:
> On 05/10/2007, lorenzo bolla <lbolla@gmail.com> wrote:
> > for every A, dot(A.T, A) is always semi positive definite.
> > it is strictly positive definite if it hasn't a zero eigenvalue.
> > make sure your A doesn't have a zero eigenvalue.
> > (if your A is sparse, as it seems, it could have at least one row or one
> > column filled with zeros, hence a zero eigenvalue).
> Also, if A is n by m, then dot(A.T, A) will be m by m, but its rank
> will be at most min(m,n). So in particular if n<m then dot(A.T,A) will
> never be positive definite. dot(A,A.T) may be.

I believe dot(X,Y) means X^T Y, so that dot(A.T, A) is in fact AA=A^2.
It is dot(A,A) that is always positive semi-definite (and positive
definite iff A has full rank).

Also matrices appearing in least-squares algorithms are usually
symmetric and most people define "positive definiteness" for symmetric
matrices only. Do you also want AA to be symmetric?


More information about the SciPy-user mailing list