From help-request at octave dot org Mon Aug 16 20:50:59 2004 Subject: Re: chol: matrix not positive definite From: "Henry F. Mollet" To: Geordie McBain , "Pascal A. Dupuis" CC: Octave_post Date: Mon, 16 Aug 2004 18:46:23 -0700 As far as I know " ' " is the conjugate transpose operator, whereas " .' " is the non-cojugate transpose operator. Perhaps difficult to understand that the former (one symbol) does more than the latter (two symbols)? Henry on 8/17/04 6:51 AM, Geordie McBain at geordie dot mcbain at aeromech dot usyd dot edu dot au wrote: > Hello, > > I think the assuredly positive Hermitian matrices should be formed > with X'*X rather than X.'*X > > I don't understand the latter (dot prime star). What does it do? > > With A=rand(3)+1i*rand(3), A'*A is positive Hermitian but A.'*A isn't. > > Geordie McBain > > > On Mon, 2004-08-16 at 10:50, Pascal A. Dupuis wrote: >> Hello, >> >> I generate a spare matrix X the following way: >> >> X=[ C0 0 0 0 0 >> C1 C0 0 0 0 >> C2 C1 C0 0 0 >> ... >> C2 C1 C0] >> >> with a size of N, N-2 (N >> 2), and C0+C1+C2=0; ||(C0,C1,C2)|| = 1. >> >> then I compute: >> >> xinv = inv(X.'*X); >> H = chol(xinv); >> >> which results in: chol: matrix not positive definite >> >> But by construction the matrix should be positive definite, as >> range(X)=N-2. OTOH, X is also badly conditionned: >> >> [dummy, rcond]=inv(X.'*X); >> rcond = 1.0498e-10 >> >> >> If I check the eigenvalues of X.'*X, they are all > 0, although some >> of them are very small. (~= 1e-10). So, is it a problem of numerical >> inaccuracy in the computation of chol ? Or should I instead compute >> H = chol(pinv(X.'*X)) >> >> TIA >> >> Pascal Dupuis > > > > ------------------------------------------------------------- > Octave is freely available under the terms of the GNU GPL. > > Octave's home on the web: http://www.octave.org > How to fund new projects: http://www.octave.org/funding.html > Subscription information: http://www.octave.org/archive.html > ------------------------------------------------------------- > ------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. Octave's home on the web: http://www.octave.org How to fund new projects: http://www.octave.org/funding.html Subscription information: http://www.octave.org/archive.html -------------------------------------------------------------