Karim Belabas on Wed, 04 Sep 2013 18:01:13 +0200


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

Re: solve system of linear equations mod p - more than one solution


* Bill Allombert [2013-09-04 13:37]:
> On Tue, Sep 03, 2013 at 08:40:19AM -0400, Mark DeBonis wrote:
> > Is PARI able to solve a system of linear equations modulo p which have more
> > than one solution? (there are free variables)  Can it list the complete
> > solution set in some manner?  Can you choose which variables to solve for?
> 
> Yes, use matinverseimage and matker. 
> For example:
> ? p=101;A=[1,2,3;4,5,6]*Mod(1,p);B=[7,8]~*Mod(1,p);
> ? S=matinverseimage(A,B)
> %11 = [Mod(61,101),Mod(74,101),Mod(0,101)]~
> ? K=matker(A)
> %12 = [Mod(1,101);Mod(99,101);Mod(1,101)]
> ? S+K*[lambda]~
> %13 = [Mod(1,101)*lambda+Mod(61,101),Mod(99,101)*lambda+Mod(74,101),Mod(1,101)*lambda]~

And if 'p' is not prime (or even if each equation involves different
not-necessarily-coprime moduli), you can use (the vastly less efficient)
matsolvemod():

  ? N=102;A=[1,2,3;4,5,6];B=[7,8]~;
  ? matsolvemod(A,B, N)    \\ one integer solution
  %2 = [-5, -2, 2]~ 
  ? matsolvemod(A,B, N, 1) \\ all integer solutions
  %3 = [[-5, -2, 2]~, [0, -1, -11; 2, 0, -2; 1, -2, 5]]


Cheers,

    K.B.
--
Karim Belabas, IMB (UMR 5251)  Tel: (+33) (0)5 40 00 26 17
Universite Bordeaux 1          Fax: (+33) (0)5 40 00 69 50
351, cours de la Liberation    http://www.math.u-bordeaux1.fr/~kbelabas/
F-33405 Talence (France)       http://pari.math.u-bordeaux1.fr/  [PARI/GP]
`