[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: chol: matrix not positive definite
From: |
Henry F. Mollet |
Subject: |
Re: chol: matrix not positive definite |
Date: |
Mon, 16 Aug 2004 18:52:04 -0700 |
User-agent: |
Microsoft-Entourage/10.1.1.2418 |
N.B. I should add that the "." in the non-conjugate transpose operator has
nothing to do with "element by element" operation as in ".*" or "./" etc.
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 address@hidden
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
-------------------------------------------------------------