find minimal polynomial for an approximate root - Maple Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : Optimization : PolynomialTools/MinimalPolynomial

PolynomialTools[MinimalPolynomial] - find minimal polynomial for an approximate root

PolynomialTools[AnnihilatingPolynomial] - find an annihilating polynomial for an approximate root

Calling Sequence

MinimalPolynomial(r, x, n, acc)

AnnihilatingPolynomial(r, x, n, acc)

Parameters

r

-

approximate root

x

-

(optional) variable name

n

-

degree of the polynomial sought

acc

-

(optional) desired accuracy of the approximation

Description

• 

The MinimalPolynomial and AnnihilatingPolynomial functions use the lattice algorithm to find a polynomial of degree n (or less) with small integer coefficients which has the given approximation r of an algebraic number as one of its roots.  The output of MinimalPolynomial will be an irreducible polynomial, while the output of AnnihilatingPolynomial may be a polynomial of degree closer to the bound n.

• 

If a name is not specified for the variable x, then _X is used.

• 

The root r may be real or complex.  It may be input as a floating-point approximation to a root or as an exact algebraic number.  In the latter case, it will first be evaluated in floating point at Digits precision. This procedure is intended for approximate inputs. If r is an exact algebraic number then the minimum polynomial can be found with the command evala(Norm(_X-r)), where r is in RootOf notation.

• 

The value accfr is given the same weight as the coefficients in determining f, the minimal polynomial. If it is not specified, the default value for acc is 10Digits2max1,rn.

• 

This function is part of the PolynomialTools package, and so it can be used in the form MinimalPolynomial(..) only after executing the command with(PolynomialTools). However, it can always be accessed through the long form of the command by using PolynomialTools[MinimalPolynomial](..).

Examples

withPolynomialTools:

r:=evalf1+2

r:=2.414213562

(1)

MinimalPolynomialr,x,2

x22x1

(2)

r:=1+2

r:=1+2

(3)

MinimalPolynomialr10,x,25

3x17+2x164x157x142x13+3x125x11+6x103x910x8+x7+5x6x5+4x44x34x23x+1

(4)

If r is less than 1, and the tolerance is set low, the output of AnnihilatingPolynomial could be a simple monomial.

AnnihilatingPolynomialr10,x,25,10.10

x16

(5)

Setting the tolerance higher can help avoid such trivial output.

AnnihilatingPolynomialr10,x,25,10.25

x21x19+2x18+2x17+8x16+4x15x14+4x133x123x116x105x94x8+3x7+x68x5+4x35x2+x

(6)

MinimalPolynomial1.234,3

22_X35_X2+61_X109

(7)

fsolve,_X

1.234000001

(8)

s:=2+3

s:=2+I3

(9)

r:=evalfs

r:=1.414213562+1.732050808I

(10)

MinimalPolynomialr,x,4

x4+2x2+25

(11)

The minimum polynomial of the exact expression s can be determined by:

SquareFreePartevalaNormconvert_Xs,RootOf,_X

_X4+2_X2+25

(12)

See Also

evala/Norm, IntegerRelations[LLL], LinearAlgebra[MinimalPolynomial]


Download Help Document

Was this information helpful?



Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam