8
$\begingroup$

For example, when we work over a ring, the equation x^3=0 does not imply x^2=0 or x=0, but the vice versa is true. Can we use Mathematica to Simplify equations over a ring?

$\endgroup$
0

1 Answer 1

8
$\begingroup$

If you want to solve an equation over integer rings $\mathbb{Z}_n$ you should specify them with Modulus e.g.

Column[Solve[x^3 == 0, x, Modulus -> #] & /@ Range[2, 9]]

enter image description here

Edit

Since there was no further example of any expression to simplify over a finite ring let's define e.g. a polynomial which cannot be factorized over rationals (as Mathematica does by default)

p[x_] := x^5 + 3 x^4 + 6 x^3 - 2 x^2 + 1
Factor[p[x]]
p /@ Range[5]
1 - 2 x^2 + 6 x^3 + 3 x^4 + x^5
{9, 121, 631, 2145, 5701}

however over rings $\mathbb{Z}_n$ it is evaluated automatically with Mod[ p[x], n], (it has the Listable attribute), thus

Column[ Mod[p /@ Range[2, 10], #] & /@ Range[2, 10]]
 {{{1, 1, 1, 1, 1, 1, 1, 1, 1}},
  {{1, 1, 0, 1, 1, 0, 1, 1, 0}},
  {{1, 3, 1, 1, 1, 3, 1, 1, 1}},
  {{1, 1, 0, 1, 4, 1, 1, 0, 1}},
  {{1, 1, 3, 1, 1, 3, 1, 1, 3}},
  {{2, 1, 3, 3, 2, 1, 2, 2, 1}},
  {{1, 7, 1, 5, 1, 3, 1, 1, 1}},
  {{4, 1, 3, 4, 1, 6, 4, 1, 0}},
  {{1, 1, 5, 1, 9, 1, 1, 5, 1}} }

On the other hand you can use PolynomialMod to "simplify" a polynomial over a ring $\mathbb{Z}_n$, e.g.

Column[ PolynomialMod[ p[x], #] & /@ Range[2, 6] ]
1 + x^4 + x^5
1 + x^2 + x^5
1 + 2 x^2 + 2 x^3 + 3 x^4 + x^5
1 + 3 x^2 + x^3 + 3 x^4 + x^5
1 + 4 x^2 + 3 x^4 + x^5

So to get the table Column[ Mod[p /@ Range[2, 10], #] & /@ Range[2, 10]] as above, you can Apply as well PolynomialMod on a specific level of an adequate Table, e.g.

Column[ Apply[ PolynomialMod[ p[#2], #1] &, Table[{i, j}, {i, 2, 10}, {j, 2, 10}], {2}] ] === 
Column[ Mod[ p /@ Range[2, 10], #] & /@ Range[2, 10]]
True

In case you'd like to factorize p[x] over a finite field (for n prime $\mathbb{Z}_n$ is a field) it can be done with Modulus as well, e.g.

Column[ Factor[ p[x], Modulus -> #] & /@ Prime @ Range[4]]

enter image description here

Some related details (e.g. Extension to work with polynomials and algebraic functions over rings of Rationals extended by selected algebraic numbers) you could find here.

Consider another polynomial

w[x_] := 6 - 12 x + x^2 - 2 x^3 - x^4 + 2 x^5

you can solve the equation w[x] == 0 over the field of Rationals as well (by default Mathematica solves over Complexes, and then you needn't specify the domain), e.g.

Column[ Solve[w[x] == 0, x, #] & /@ {Integers, Rationals, Reals, Complexes} ]

enter image description here

You could factorize completely this polynomial with Extension :

Factor[ w[x]]
Factor[ w[x], Extension -> {Sqrt[2], Sqrt[3], I}]

enter image description here

There is also a package AbstractAlgebra to work with adequate algebraic concepts and a related book Exploring Abstract Algebra with Mathematica.

$\endgroup$
5
  • $\begingroup$ Nice. But it seems that the option Modulus is not capable to use with Simplify or FullSimplify. I don't want to solve the equations, but just want to simplify the relations of equations. Any idea? $\endgroup$
    – Osiris Xu
    Commented Jun 20, 2012 at 4:29
  • $\begingroup$ @OsirisXu You can use Simplify first and then use Mod. If your expression is quite simple as x^3==0you needn't to use any simplifications e.g. Mod[x^3, 9] /. x -> 6 yields 0 or directly evaluate (Mod[x^3, 9] /. x -> 6) == 0. Otherwise you should specify what you need giving an example. $\endgroup$
    – Artes
    Commented Jun 20, 2012 at 9:30
  • $\begingroup$ Cool. Is there any way to work over Ring of rational numbers QQ? Thanks. $\endgroup$
    – Osiris Xu
    Commented Jun 20, 2012 at 18:08
  • $\begingroup$ @OsirisXu If I understand what you mean, factorization is by default over Rationals, see more details mathematica.stackexchange.com/questions/4362/…. You can solve equations over Rationals, e.g. try Solve[-(6/7) - 2 x + (3 x^2)/7 + x^3 == 0, x, Rationals] and then Solve[-(6/7) - 2 x + (3 x^2)/7 + x^3 == 0, x]. $\endgroup$
    – Artes
    Commented Jun 20, 2012 at 19:34
  • $\begingroup$ @OsirisXu I edited the answer to include more details which you'll find interesting. You could edit your question as well to make it more precise since e.g. "Is there any way to work over Ring of rational numbers ?" is slightly too general and there are many aspects which can be still unclear. $\endgroup$
    – Artes
    Commented Jun 21, 2012 at 22:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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