How to find matrix Inverse over finite field?

I am using MATLAB, and I know gf() in MATLAB can enable me to do linear algebra operations over finite field $F_{2^m}$ for some m.

However, if I want to find the matrix inverse over finite field $F_p$ for some prime $p\neq 2$, how should I do in MATLAB and on the paper?

For example, if $p=11$ and if matrix A is:


I need to derive its inverse $A^{-1}$ as:



You could compute the adjugate for the matrix, and the determinant of the matrix, and then apply the formula: $$(1/\det(A))\mathrm{adj}(A)=A^{-1}$$

You would just need to do all computations mod $p$.

Doing it over a field size $p^m$, you would need to first generate a multiplication and addition table for the field (it is not simply $\Bbb Z/(p^m)$.) The same approach would then work. You just need to teach matlab how to do arithmetic in that field!

I remember modeling finite fields in matlab in the past, but you will probably be smarter about it and find a preexisting package or something handy that programming savvy people would do, rather than reinvent the wheel as I did.

  • 2
    $\begingroup$ Such as SAGE: sagemath.org/doc/tutorial/tour_linalg.html $\endgroup$ – dls Jan 8 '13 at 21:01
  • $\begingroup$ @dls Could I ask you fast what your top picks for computer algebra systems that are good for messing with finite rings are? $\endgroup$ – rschwieb Jan 8 '13 at 21:05
  • $\begingroup$ Sorry @rschwieb, that's not my area of expertise. $\endgroup$ – dls Jan 9 '13 at 2:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.