I want to solve an system of equations of the form $$\prod_{i=1}^n x_i^{M_{i,k}}=1 \qquad k=1,\ldots,n$$ with complex $x_i$ with constraint $|x_i|=1$ and $M_{i,k}$ integers. This is basically a system of polynomial equation and I can just use Solve over the complexes. Is this efficient? My equations are in Eq[1],... Eq[n], e.g. Eq[1]={x[2] x[3]^3 == x[2]^3} and my code is

And @@ Array[Eq, {m - 1}]
Solve[%, Table[x[i], {i, 2, R}], Complexes]

Wouldn't it be better to solve the following linear system? Because $\{x_i:i=1,\ldots,n\}$ are roots of unity this can be made into a linear system with $x_i = \exp(2\pi i h_i)$ $$ \sum_{i=1}^n M_{i,k} h_i=0 \qquad k=1,\ldots,n $$ where $h_i\in \mathbb Q/\mathbb Z$. It seems to be much more efficient to solve the linear system over the $\mathbb Q /\mathbb Z$. Has Mathematica something like this built in?

Unfortunately, I can just find how to solve such linear equations in $\mathbb Z/m\mathbb Z$. If I knew a common divisor $N$ of the solution I could also multiply by $N$ and solve it over an integer $\mathbb Z/N\mathbb Z$

  • $\begingroup$ Hi, welcome to Mathematica.SE, please consider taking the tour so you learn the basic rules of the site. Your question may be put on-hold because it seems to be off-topic, i.e. its about mathematics and not Mathematica. If that's not the case, please edit your question to make it explicitly about Mathematica programming. Include a minimum example of the code you are working on. $\endgroup$ – rhermans Oct 21 '14 at 16:29
  • $\begingroup$ Yes, taking logs to make it linear would be better. But where do you get the constraint that these must be roots of unity? $\endgroup$ – Daniel Lichtblau Oct 21 '14 at 18:50
  • $\begingroup$ This are the only solutions I am interested in, in the particular equations I have, the only solutions are roots of unity or 0. I will edit the post. $\endgroup$ – Marcel Bischoff Oct 21 '14 at 21:09
  • $\begingroup$ If you post a representative example you are more likely to get a viable response. $\endgroup$ – Daniel Lichtblau Oct 22 '14 at 15:35

Your Answer

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

Browse other questions tagged or ask your own question.