On Nov 1, 5:34 pm, Michael Orlitzky <mich...@orlitzky.com> wrote:
> This one had me stumped for a while. I'm using 4.1.1 here, but found the
> same results in a 4.1.2 notebook. The solve_foo() methods are broken,
> too; probably as a consequence.
>
> # Good
>
> sage: m = matrix([ [(-3/10), (1/5), (1/10)],
> [(1/5), (-2/5), (2/5)],
> [(1/10), (1/5), (-1/2)] ])
>
> sage: m.echelon_form()
>
> [ 1 0 -3/2]
> [ 0 1 -7/4]
> [ 0 0 0]
>
> # Bad
>
> sage: n = matrix([ [-0.3, 0.2, 0.1],
> [0.2, -0.4, 0.4],
> [0.1, 0.2, -0.5] ])
>
> sage: n.echelon_form()
>
> [ 1.00000000000000 0.000000000000000 0.000000000000000]
> [0.000000000000000 1.00000000000000 0.000000000000000]
> [0.000000000000000 0.000000000000000 1.00000000000000]
sage: n.det()
1.04083408558608e-17
sage: n.parent()
Full MatrixSpace of 3 by 3 dense matrices over Real Field with 53 bits
of precision
So to the given precision, n is invertible so its echelon form is the
identity. But if you convert m to a very high precision RealField:
MatrixSpace(RealField(10000),3)(m).echelon_form()
still gives the identity matrix, so this looks bad. (The determinant
is 0 to 10^4 decimals in that example!)
>
> # Ugly
>
> sage: m == n
> True
I think this is a coercion issue. I agree taht the result is not
mathematically nice at all:
sage: m==n
True
sage: m.rank(), n.rank()
(2, 3)
John Cremona
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to
sage-support-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---