- From
- William Sit
- Subject
- Re: [Axiom-developer]? [Q]? radicalSolve fails to find all roots ?
- Date
- Mon, 17 Jan 2005 16:31:52 -0500
These are NOT bugs! But the following may be! Consider the equation for axiom radicalSolve(z^7=2)
Type: List(Equation(Expression(Integer)))## comments Of course, these are correct solutions by Euler's Formula. A bit surprising that
radicalSolve invokes these for and not for ; when is 7, these
trignometric values are not embeddable in a tower of "solvable" extensions. That
is, these are not solutions expressible in terms of radicals (of - http://mathworld.wolfram.com/ConstructiblePolygon.html
- http://mathworld.wolfram.com/TrigonometryAngles.html
A necessary and sufficient condition that a regular n-gon be constructible is that phi(n) be a power of 2, where phi(n) is the totient function (KrĂzek 2001, p. 34): n = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 phi= 1 1 2 2 4 2 6 4 6 4 10 4 12 6 8 8 16 6 18 8 bad= x x x x x x x Vladimir's "not good" values are n = 7 11 13 14 15 17 19 So if you compare the constructible regular n-gons, you can see why Axiom's
results are reasonable: radicalSolve only finds solutions that are expressible
in terms of radicals and arithmetic operations. It did not find those for
and probably (I am guessing) because at the time of implementation, these
constructions were not known (at least to the programmer). On the other hand,
for , the solutions are expressible in radicals only if radicals of
When Axiom cannot find solutions, it is (presumably) a PROOF that the other
solutions are NOT solvable by radicals (using In other words, rather than viewing the answer for as a bug, we should view the answers for , (and may be even , ) as bugs! Still, the package should be upgraded. ------------------- axiom radicalSolve(z^9=1,
Type: List(Equation(Expression(Integer)))axiom radicalSolve(z^7=3)
Type: List(Equation(Expression(Integer)))axiom radicalSolve(z^7=1.)
Type: List(Equation(Expression(Float)))axiom radicalSolve(z^6+z^5+z^4+z^3+z^2+z+1=0)
Type: List(Equation(Expression(Integer)))William mathaction@axiom-developer.org]? wrote:When Axiom cannot find solutions, it is (presumably) a PROOF that the other solutions are NOT solvable by radicals (using Given Axiom's assumptions about input in this problem, why cannot I do this: axiom z:Complex(Float) radicalSolve(z^7=1) z:Integer radicalSolve(z^7=1) z:Variable(Complex(Float)) radicalSolve(z^7=1) z:Symbol(Complex(Float)) radicalSolve(z^7=1) ...and get the appropriate answers? Also this behind-the-scenes behavior where the answer depends on the input type or assumptions is undesirable, and surprising to casual users. When algorithms must make assumptions about the type of a Variable or Symbol, at the very least a message should be printed indicating that the assumption was made. An even better algorithm would print a message, then keep that assumption for the remainder of the calculation... Obviously, all the roots of the equation can be expressed in radicals, and Mathematica can easily produce the explicit expressions in terms of radicals: Solve[z^7 == 1, z] {{z -> 1}, {z -> -(-1)^(1/7)}, {z -> (-1)^(2/7)}, {z -> -(-1)^(3/7)}, {{z -> {z -> (-1)^(4/7)}, {z -> -(-1)^(5/7)}, {z -> (-1)^(6/7)}} To save the space, below the only example is given: FunctionExpand[ComplexExpand[-(-1)^(1/7)]] (1/2)*((1/3)*((1/2)*(-1 + I*Sqrt[7]) + ((-1 + I*Sqrt[3])*((1/2)*(-1 + I*Sqrt[7]) + (1/2)*(-1 - I*Sqrt[7])*((1/2)*(-1 + I*Sqrt[3]) + (1/4)*(-1 + I*Sqrt[3])^2)))/(2*(6 + (3/4)*(-1 + I*Sqrt[3])*(-1 + I*Sqrt[7]) + (1/2)*(-1 - I*Sqrt[7])*(1 + (3/4)*(-1 + I*Sqrt[3])^2))^(1/3)) + (1/4)*(-1 + I*Sqrt[3])^2*(6 + (3/4)*(-1 + I*Sqrt[3])*(-1 + I*Sqrt[7]) + (1/2)*(-1 - I*Sqrt[7])*(1 + (3/4)*(-1 + I*Sqrt[3])^2))^(1/3)) +(1/3)*((1/2)*(1 + I*Sqrt[7]) - ((-1 + I*Sqrt[3])^2*((1/2)*(-1 -I*Sqrt[7]) + (1/2)*(-1 + I*Sqrt[7])*((1/2)*(-1 + I*Sqrt[3]) + (1/4)*(-1 + I*Sqrt[3])^2)))/(4*(6 + (3/4)*(-1 + I*Sqrt[3])*(-1 - I*Sqrt[7]) + (1/2)*(-1 + I*Sqrt[7])*(1 + (3/4)*(-1 + I*Sqrt[3])^2))^(1/3)) -(1/2)*(-1 + I*Sqrt[3])*(6 + (3/4)*(-1 + I*Sqrt[3])*(-1 - I*Sqrt[7]) + (1/2)*(-1 + I*Sqrt[7])*(1 + (3/4)*(-1 + I*Sqrt[3])^2))^(1/3))) + (1/2)*((1/3)*((1/2)*(-1 + I*Sqrt[7]) + ((-1 + I*Sqrt[3])*((1/2)*(-1 + I*Sqrt[7]) + (1/2)*(-1 - I*Sqrt[7])*((1/2)*(-1 + I*Sqrt[3]) + (1/4)*(-1 + I*Sqrt[3])^2)))/(2*(6 + (3/4)*(-1 + I*Sqrt[3])*(-1 + I*Sqrt[7]) + (1/2)*(-1 - I*Sqrt[7])*(1 + (3/4)*(-1 + I*Sqrt[3])^2))^(1/3)) +(1/4)*(-1 + I*Sqrt[3])^2*(6 + (3/4)*(-1 + I*Sqrt[3])*(-1 + I*Sqrt[7]) + (1/2)*(-1 - I*Sqrt[7])*(1 + (3/4)*(-1 + I*Sqrt[3])^2))^(1/3)) + (1/3)*((1/2)*(-1 - I*Sqrt[7]) +((-1 + I*Sqrt[3])^2*((1/2)*(-1 - I*Sqrt[7]) + (1/2)*(-1 + I*Sqrt[7])*((1/2)*(-1 + I*Sqrt[3]) + (1/4)*(-1 + I*Sqrt[3])^2)))/(4*(6 + (3/4)*(-1 + I*Sqrt[3])*(-1 - I*Sqrt[7]) + (1/2)*(-1 + I*Sqrt[7])*(1 + (3/4)*(-1 + I*Sqrt[3])^2))^(1/3)) +(1/2)*(-1 + I*Sqrt[3])*(6 + (3/4)*(-1 + I*Sqrt[3])*(-1 - I*Sqrt[7]) + (1/2)*(-1 + I*Sqrt[7])*(1 + (3/4)*(-1 + I*Sqrt[3])^2))^(1/3))) ## According to the AXIOM Book--Use radicalSolve if you want your solutions expressed in terms of radicals. However, already for z^7 = 1 this is not so, axiom radicalSolve(z^7=1, and the problem exists for 11, 13, 14, 15, 17, 19 etc axiom for i in 1..20 repeat print([i, [1,1] [2,2] [3,3] [4,4] [5,5] [6,6] [7,1] <-- not good [8,8] [9,9] [10,10] [11,1] <-- not good [12,12] [13,1] <-- not good [14,2] <-- not good [15,7] <-- not good [16,16] [17,1] <-- not good [18,18] [19,1] <-- not good [20,20] Best, Vladimir Category: Axiom Mathematics => Axiom Library |

(new)--Bob McElrath?, Mon, 17 Jan 2005 22:15:05 -0600 reply