5
$\begingroup$

Suppose that you have the decimal expansion of a complex number $z$ to arbitrary precision. Are there any known numerical methods for computing a good or even best approximation of $z$ by a cyclotomic integer in a specified cyclotomic field extension?

For example, suppose I want to find the nearest number to $$5.7137917357844\dots+0i$$ in the ring $\mathbb Z[\xi_7]$ for $\xi_7$ a primitive $7$'th root of unity. Are there any standard numerical routines?

$\endgroup$
1
  • 1
    $\begingroup$ No specific elemenylt of $\mathbb{Z}[\xi_7]$ is nearest to any given number. The ring is dense. $\endgroup$ Commented Mar 20 at 20:41

1 Answer 1

10
$\begingroup$

You are looking for a linear combination with integer coefficients of the given number and the powers of the root of unity with an absolute value that's very small (where "very" is determined by the precision of the given approximation). This translates into a search for short vectors in a lattice, preceded by a standard lattice basis reduction.

Computer algebra systems like PARI/GP have suitable algorithms built in. Working in the maximal real subfield for the sake of this example:

gp > ?lindep
lindep(v,{flag=0}): integral linear dependencies between components of v. flag 
is optional, and can be 0: default, guess a suitable accuracy, or positive: 
accuracy to use for the computation, in decimal digits.
gp > 2*cos(2*Pi/7)
%22 = 1.2469796037174670610500097680084796213
gp > lindep([1.,%22, sqr(%22),5.7137917357844], 12)
%23 = [3, -2, -4, 1]~
gp > 4*sqr(%22)+2*%22-3
%24 = 5.7137917357844188877887990200426011668
$\endgroup$
1
  • $\begingroup$ This is great! Your explanation led me to the function pslq in the mpmath library in python, which serves a similar purpose. $\endgroup$ Commented Mar 20 at 19:19

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.