Ask Your Question

# solving a matrix equation modulo m

Hello,

I am quite new to sage an have troubles with the following problem:

I'm given a matrix 'A' and a vector 'b' and a positiv interger 'm' (m does not have to be prime). 'A' is a matrix with more rows than collums, so it is not quadratic. I would like to find the solution 'x' of the equation: A*x = b (mod m).

I have tried to manage it with e.g.:

A.solve_right(Integers(m),p),

but this works only if m is prime. I also was able to solve my problem if I explicitly insert the equations like this:

gp('matsolvemod([1,2;1,3],6,[1,0]~,1)')

But I need something, where I just have to specify 'A' and 'b' (and of course m). Can somebody help me?

best regards

edit retag close merge delete

## 1 Answer

Sort by ยป oldest newest most voted

You should directly work on the $\mathbb{Z}/m\mathbb{Z}$ module as follows:

sage: R = IntegerModRing(15)
sage: M = Matrix(R, [[1,2],[1,4],[2,4]])
sage: b = vector(R, [3,5,6])
sage: M.solve_right(b)
(1, 1)

more

## Comments

Hello and thanks for the answer. If I try your example above I get the following error: TypeError: base ring must be an integral domain I get this error if and only if m is not prime (in this case m=15 is not prime). I tried your example with the free sage provided online at [sagemath](http://www.sagemath.org/) and there it works fine. So could it be, that my version is not up to date, although I downloaded it last week?

( 2013-12-22 09:17:33 +0100 )edit

I was using Sage 5.12, what is the result of the version() function ?

( 2013-12-22 10:15:21 +0100 )edit

This is my version: 'Sage Version 5.8, Release Date: 2013-03-15'

( 2013-12-22 11:48:04 +0100 )edit

It also works on the latest 6.0, so perhaps should you upgrade.

( 2013-12-22 11:52:38 +0100 )edit

Ok thank you, with 6.0 everything works fine now!

( 2013-12-22 15:41:45 +0100 )edit

## Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

## Stats

Asked: 2013-12-22 07:12:57 +0100

Seen: 5,798 times

Last updated: Dec 22 '13