Menu

#4960 cholesky over bigfloatfield does not reconstruct a Hermitian matrix

None
open
nobody
5
16 hours ago
16 hours ago
No

Neither L.ctranspose(L) nor L.transpose(L) returns the input Hermitian matrix

Maxima 5.49post, SBCL 2.6.7.

(%i1) display2d:false$
(%i2) load(linearalgebra)$
(%i3) M: matrix([2, 1+%i],[1-%i, 3])$
(%i4) is(M = ctranspose(M));
(%o4) true
(%i5) Mb: matrixmap(bfloat, M)$
(%i6) L: block([fpprec:30], cholesky(Mb,'bigfloatfield))$
(%i7) block([fpprec:30], lmax(map(abs,flatten(args(L.ctranspose(L)-Mb)))));
(%o7) 1.16227766016837933199889354443b0
(%i8) block([fpprec:30], lmax(map(abs,flatten(args(L.transpose(L)-Mb)))));
(%o8) 2.0b0

Expected: (%o7) = 0 to working precision. (%o4) confirms the input is Hermitian, and the residual in (%o7) is about 50% of max|M|, so the factor is simply not a Cholesky factor of the input.

Discussion


Log in to post a comment.