axiom-mail
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-mail] Calc. with a self-inverse integer matrix


From: address@hidden
Subject: Re: [Axiom-mail] Calc. with a self-inverse integer matrix
Date: Mon, 3 Mar 2008 11:04:17 +0100
User-agent: KMail/1.7.1

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" <address@hidden> 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
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/axiom-mail




reply via email to

[Prev in Thread] Current Thread [Next in Thread]