David is right, you should be possible to do what you want using the log function in the units module.
When Sage has better support for f.g. abelian groups (which is on its way, I think) this kind of thing should be simpler to do. John Cremona On Jul 9, 11:55 am, davidloeffler <dave.loeff...@gmail.com> wrote: > On Jul 8, 4:54 pm, mac8090 <bonzerpot...@hotmail.com> wrote: > > > > > I'm investigating relationships between sets of fundamental units of > > complex extensions of the rationals. All the information from here > > down to the horizontal line is context, and you can probably > > understand my problem without understanding it. > > > I've constructed a number field L=Q(b) where b is solution to minimal > > polynomial of x^6+3 like so: > > > L.<b>=NumberField(x^6+3) > > > then I extend this to M = L(c) where c is a solution of t^3 +(b^5-b^3) > > *t^2 + (-b^4+2*b^2)*t-b in the following way: > > > R.<t>=L[] > > M.<c>=L.extension(t^3 +(b^5-b^3)*t^2 + (-b^4+2*b^2)*t-b) > > > ________________________________________________________ > > > what all this amounts to is that I have two rather ugly values: b, the > > 6th root of -3, and c, an ugly solution to a polynomial in b. > > > The units of M can be attained by the command: > > > r=M.units() > > > where r contains 8 values. However, I also have a different set of 8 > > values from a previous calculation, s, all of whose contents are units > > as well. Therefore, for any element r[i] of r there exists an 8-valued > > set a such that > > > r[i]=s[0]^a[0]*s[1]^a[1]*...*s[7]^a[7] > > > and I am trying to find a, because the previous calculation which took > > me from r to s has been mislaid. > > In other words, you want to solve a discrete logarithm problem. I > would suggest you use the "unit_group" method of number fields, which > is a bit cleverer than "units" -- rather than returning a list of > elements, it returns an object that has methods like "generators" and > (crucially) "log". That log method solves the discrete log problem, > i.e. expresses an arbitrary unit in terms of the generators (the r's). > So you can express your s's in terms of the r's, and a matrix > inversion will give you the r's in terms of the s's instead. > > David --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to sage-support-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---