You could also use

m.adjuate(algorithm="df")

(df stands for division free).

Le 12/07/2019 à 18:44, micj...@uni-potsdam.de a écrit :
However, I wonder why the adjugate method is not implemented by standard in case
of the determinant being a unit. :-/

Regards,
Michael

Von meinem Huawei-Mobiltelefon gesendet


-------- Originalnachricht --------
Betreff: Re: [sage-devel] Matrix Inverse for Arbitrary Rings
Von: Michael Jung
An: sage-devel@googlegroups.com
Cc:


     Thanks for you answer.

     Ah well, I already tried to compute the adjugate of a corresponding
     scalar field matrix, but it threw an error due to the is_field method.
     So I thought it is not possible since the ring is no field (what I found
     really strange, but god knows what algorithms are used). But I just
     added a "proof=True" argument to scalar fields and now it's fine. I get
     the feeling, interpreting error messages correctly is some kind of art. :D

     Best regards,

     Michael

     Am 12.07.19 um 17:20 schrieb Vincent Delecroix:
      > Or directly through the adjugate method
      >
      > sage: R.= ZZ[]
      > sage: RR = R.quotient(a*d-b*c-1)
      > sage: a,b,c,d = RR.gens()
      > sage: m = matrix(2, [a,b,c,d])
      > sage: n = m.adjugate()    # we know that det=1 in this case
      > sage: m * n
      > [1 0]
      > [0 1]
      >
      > Le 12/07/2019 à 16:53, Vincent Delecroix a écrit :
      >> Dear Michael,
      >>
      >> At least, you need to know that the determinant is invertible...
      >> See the related tickets
      >>
      >> https://trac.sagemath.org/ticket/15160
      >> https://trac.sagemath.org/ticket/27869
      >>
      >> Note that the division free inversion of matrices is not a
      >> completely trivial task. A simple way is to go via the matrix
      >> of cofactors by computing determinant with division free
      >> algorithms. This should be reasonable enough.
      >>
      >> Best
      >> Vincent
      >>
      >> Le 12/07/2019 à 16:43, Michael Jung a écrit :
      >>> Dear developers,
      >>> I need to compute the inverses of matrices over commutative rings
      >>> (namely
      >>> scalar fields on manifolds). Unfortunately, the algorithms only
      >>> process if
      >>> the ring is a field or a corresponding fraction field is known. For
      >>> now, I
      >>> will pretend that the algebra of scalar fields is an algebraic field.
      >>> However, for most cases, the algorithms work for arbitrary rings 
aswell
      >>> when the matrix is invertible. I wonder why that hasn't been
      >>> implemented
      >>> yet. It would be nice if there was (for example) an additional
      >>> attribute
      >>> (something like "force=True") for the inverse function to pretend
      >>> that the
      >>> given ring is a field and at least try a computation.
      >>>
      >>> Best regards,
      >>> Michael
      >>>
      >

     --
     You received this message because you are subscribed to a topic in the
     Google Groups "sage-devel" group.
     To unsubscribe from this topic, visit
     https://groups.google.com/d/topic/sage-devel/4WVPLOHyMbc/unsubscribe.
     To unsubscribe from this group and all its topics, send an email to
     sage-devel+unsubscr...@googlegroups.com.
     To post to this group, send email to sage-devel@googlegroups.com.
     Visit this group at https://groups.google.com/group/sage-devel.
     To view this discussion on the web visit
     
https://groups.google.com/d/msgid/sage-devel/01b4c7c8-f4a6-a816-35b3-4614300a6178%40uni-potsdam.de.
     For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to sage-devel+unsubscr...@googlegroups.com
<mailto:sage-devel+unsubscr...@googlegroups.com>.
To post to this group, send email to sage-devel@googlegroups.com
<mailto:sage-devel@googlegroups.com>.
Visit this group at https://groups.google.com/group/sage-devel.
To view this discussion on the web visit
https://groups.google.com/d/msgid/sage-devel/dl7pqn-savxcy-c3kyrr-ld2v7z-oouf47-unxr5iijgtgt6znkqiunpzgc-gim7j-wss1rww1px0bee6l75-y2bm7n-6lcrnt-seeslnrvzqjq-249vzu-5z0fob-t3ken-edzk4u-oze8q7-ji71vv7rgxx2.1562949872823%40email.android.com
<https://groups.google.com/d/msgid/sage-devel/dl7pqn-savxcy-c3kyrr-ld2v7z-oouf47-unxr5iijgtgt6znkqiunpzgc-gim7j-wss1rww1px0bee6l75-y2bm7n-6lcrnt-seeslnrvzqjq-249vzu-5z0fob-t3ken-edzk4u-oze8q7-ji71vv7rgxx2.1562949872823%40email.android.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/d268ee1c-bc34-42f0-eb7d-b57fe608c22e%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to