MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Squares in Q[r], a question about algebraic numbers in mathematica

  • To: mathgroup at smc.vnet.net
  • Subject: [mg127632] [mg127632] Squares in Q[r], a question about algebraic numbers in mathematica
  • From: Kent Holing <KHO at statoil.com>
  • Date: Wed, 8 Aug 2012 21:37:00 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net

The code below confuses me:
I thought that it should return for example (r^2+1)^2 when applied to (r^2+1)^2 whatever a is.
The code is supposed to do the following: 
Given an element p (say polynomial) in Q[r] for a root r of a given polynomial in Q[x], the code should return p as q^2 for q the square root q of p as an element (polynomial) of Q[r] if q exists.
But, it does not! When applied to (r2+1)^2 it returns in fact (r^2/16+1)^2, using r/4 instead of r?

The code:
SquareQrQ[a_,u_]:=Head@ToNumberField[Sqrt@u,a] === AlgebraicNumber//Quiet;
SqrtQr[a_,p_]:=Module[{f,q},
f=Check[ToNumberField[Sqrt[p//Expand],a],"non-square"]//Quiet;
q=AlgebraicNumberPolynomial[f,r]//Quiet;
Plus[q]^2];
sq[a_,p_]:=SqrtQr[a,p];

If
a=Root[x^4+5/8x^2+5/8x+205/256,x,1];
then 
sq[a,(r^2+1)^2/.r->a] returns (r^2/16+1)^2, not (r^2+1)^2.

Any comments are highly appreciated.
Kent Holing, Norway



  • Prev by Date: Simplify Binomial
  • Next by Date: Re: Symmetrizing function arguments
  • Previous by thread: Squares in Q[r], a question about algebraic numbers in mathematica
  • Next by thread: NDSolve: large relative error without error message