Re: Calc. with a self-inverse integer matrix

"[email protected]" <[email protected]>
Newsgroups gmane.comp.mathematics.axiom.user
Message-ID <[email protected]>
Hello,

thanks first for the advice that B=A! That is right, sorry for conducting too 
soon to the CAS.
With this, all the a_ij are out, and the problem is to find d_i and n_j such 
that B is self-inverse and integer, and that 2 conditions are fulfilled:

B=-I + n @ d + 2 n @ n
n.n=1
n.d=0

in components:

   --------------------------------------------------------------------------|
   | -1 + n1 d1 + 2 n1 n1    | n1 d2 + 2 n1 n2       | n1 d3 + 2 n1 n3       |
   |-------------------------|-----------------------|-----------------------|
B= |  n2 d1 + 2 n2 n1        | -1 + n2 d2 + 2 n2 n2  | n2 d3 + 2 n2 n3       |
   |-------------------------|-----------------------|-----------------------|
   |  n3 d1 + 2 n3 n1        | n3 d2 + 2 n3 n2       | -1 + d3 n3 + n3 n3    |
   --------------------------------------------------------------------------|

n1 n1 + n2 n2 +n3 n3 = 1
d1 n1 + d2 n2 +d3 n3 = 0

as you stated below, it is not possible to solve within the integers. now that 
the a_ij are out, maybe this does not apply anymore?

i am assuming that one can not find other solutions than for example
n=(1,0,0) d=(0,z1,z2), with

B=   |  1  z1  z2 |
     |  0  -1  0  |
     |  0  0  -1  |

being integer and self-inverse when z1 and z2 are integer. however, assuming 
is not enough. 
as i am new to axiom, i dont even know how to state the problem.

thanks in advance,

rainer

> "Rainer Gluege" <[email protected]> writes:
> > Dear Axiom-Users,
> >
> > i am new to axiom.
> >
> > I need the solution for the components of a matrix product
> > A times B = I.
> >
> > ,,A'' is a self-inverse matrix with integer components,
>
> Sorry, I do not understand: if A times B = I, then B = A^-1.  If A is
> self-inverse, then A = B.
>
> > the components of ,,B'' are polynomial equations containing the
> > components of two vectors which have their scalar product equal to zero,
> > and one of them is normalized. this leads after all to the system of
> > equations below.
> >
> >
> > the problems:
> >
> > 1.) i get:
> > >> Error detected within library code:
> >
> >    system does not have a finite number of solutions
> >
> > however, i was expecting to find at least some more information.
>
> Yes, the solver is not very intelligent, it seems.  At times, you can help
> by specifying (as second argument to solve) the right variables to solve
> for. Note however, that solve returning an empty list does not mean that
> there are no solutions, only that no solutions were found.
>
> I guess one can do better using Groebner Bases, but I would not know how.
> Ralf?
>
> (66) -> m n == matrix [[a[i,j] for j in 1..n] for i in 1..n]
>    Compiled code for m has been cleared.
>    1 old definition(s) deleted for function or rule m
>                                                                    Type:
> Void
>
> (67) -> solve(parts(((m 3)^2)::SQMATRIX(3, POLY INT)-1), [a[3,3], a[3,2],
> a[3,1], a[2,3], a[2,2]])
>
>    (67)
>    [
>                              2                     2              2
>             - a   a    - a     + a           - a    a    + (- a     + 1)a
>                1,2 2,1    1,1     1,1           1,2  2,1       1,1      
> 1,2 [a   = -------------------------, a   =
> -------------------------------, 3,3           a    - 1           3,2      
>     (a    - 1)a
>                       1,1                               1,1      1,3
>                              2
>             - a   a    - a     + 1        a   a           a   a    + a    -
> 1 1,2 2,1    1,1              1,3 2,1         1,2 2,1    1,1 a   =
> ----------------------, a   = --------, a   = -------------------] 3,1     
>      a               2,3  a    - 1   2,2        a    - 1 1,3               
>   1,1                   1,1 ,
>
>                              2                     2              2
>             - a   a    - a     - a           - a    a    + (- a     + 1)a
>                1,2 2,1    1,1     1,1           1,2  2,1       1,1      
> 1,2 [a   = -------------------------, a   =
> -------------------------------, 3,3           a    + 1           3,2      
>     (a    + 1)a
>                       1,1                               1,1      1,3
>                              2
>             - a   a    - a     + 1        a   a           a   a    - a    -
> 1 1,2 2,1    1,1              1,3 2,1         1,2 2,1    1,1 a   =
> ----------------------, a   = --------, a   = -------------------] 3,1     
>      a               2,3  a    + 1   2,2        a    + 1 1,3               
>   1,1                   1,1 ]
>                          Type: List List Equation Fraction Polynomial
> Integer
>
> > 2.) how do i tell ,,axiom'' that the a_ij have to be of type integer?
>
> currently, you cannot, i.e., I do not know of an algorithm present in Axiom
> that solves within the integers.
>
> > by the way, is their a way to define the type ,,self-inverse matrix with
> > integer components'' in axiom?
>
> You can certainly introduce a domain
>
> SelfInverseMatrix(R: Ring): Exports == Implementation where
>
>     Exports ==> with
>
>         ...
>
>     Implementation ==> add
>
>         ...
>
> But what would you like to do with it?  You cannot even multiply two such
> matrices without leaving the domain...
>
> (Note that in Axiom a type is mostly intended to contain elements that
> satisfy certain closure properties.  For example, in a field, you can add,
> multiply and divide two elements and you will get again an element of the
> field)
>
> Martin
>
>
>
> _______________________________________________
> Axiom-mail mailing list
> [email protected]
> http://lists.nongnu.org/mailman/listinfo/axiom-mail
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.