On Monday, April 7, 2014 3:24:32 PM UTC-5, Iain Dunning wrote:
>
> Hi all,
>
> I have the following matrix (in a copy-pasteable format)
>
> X = [1.00000000753845    -.9999999962147147  -1.0000000052345246 
> -1.0000000048451771;
> -.9999999962147147  .9999999849183356   .9999999938533486   
> .9999999932021346;
> -1.0000000052345246 .9999999938533486   1.0000000081826723 
>  1.0000000034216714;
> -1.0000000048451771 .9999999932021346   1.0000000034216714 
>  1.0000000058875202]
>
> and I have
> println(eig(X))
>
> telling me
> [8.01744247656805e-17, 2.6859121865768767e-9, 3.823536365571658e-9, 
> 4.000000000017529]
> (i.e. that it is PSD)
>
> but
> println(chol(X))
>
> giving me
> ERROR: PosDefException(4)
>
> Two questions:
> 1) How do I make chol try harder? Do I want to use cholfact and increase 
> tol to... what?
> 2) How can I find out what (4) means? Because when I do the following:
>
> As a last resort you can always read the documentation :-)

The 4 is the error number from the LAPACK.potrf! function, indicating that 
the Cholesky factorization failed on the fourth column

julia> chol(rand(4,4))
> ERROR: PosDefException(2)
>  in cholfact! at linalg/factorization.jl:36
>  in chol at linalg/factorization.jl:44
>
>
Umm - rand(4,4) is not expected to be symmetric. 
 

> it is (2) - so I'm guessing that the 4 communicates something useful.
>
> Cheers,
> Iain
>
>
>

Reply via email to