[sage-support] Re: Spurious numerical solutions of polynomial equation

2013-12-14 Thread JamesHDavenport
Curious. The polynomial does not seem particularly ill-conditioned, in the 
sense that its discriminat is roughly what one might expect (unlike, say, 
Wilkinson's). Maple gives 50 roots with |f(x)|10^{-12}, and one with f(x)=, 
i.e. much larger.

On Thursday, 12 December 2013 15:35:53 UTC, AWWQUB wrote:

 Consider the equation
 *(I*x^51+sum(x^k,k,0,50))==0*
 Try to solve it numerically using 
 *solve([(I*x^51+sum(x^k,k,0,50))==0,x==x],x,solution_dict=True)*
 and you obtain 51 solutions of which 50 have modulus approximately 1 and 
 the other is close to 1+I. Substituting back gives residuals of around at 
 most 10^-6. That looks fine and Mathematica gives similar solutions. Now 
 substitute x-1-I for x, so that one of the solutions should now be close to 
 zero. Sage now gives solutions with real and imaginary parts both between 
 -1 and +4, but none are particularly close to zero.The residuals now range 
 up to 10^20. Mathematica gives completely different answers but which are 
 also wrong, namely all 51 are approximately 1.

 Any ideas?

 Tony Wickstead 


-- 
You received this message because you are subscribed to the Google Groups 
sage-support group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/groups/opt_out.


[sage-support] Re: Spurious numerical solutions of polynomial equation

2013-12-14 Thread Volker Braun
Apparently you need about 65 bits of accuracy, presumably maxima uses 
doubles (=53 bits). Compare:

sage: eq = (I*x^51+sum(x^k,k,0,50)).subs(x=x-1-I)
sage: var('x, k')
(x, k)
sage: eq = (I*x^51+sum(x^k,k,0,50)).subs(x=x-1-I)
sage: sol = eq.polynomial(ComplexField(65)).roots()
sage: [abs(eq.subs(x=root[0])) for root in sol]
[6.549903740982083181e-19,
 3.535528103523514460e-19,
 1.674320837445456618e-19,
 2.471478998132169129e-19,
 6.778825368452881617e-19,
 1.898563463306179569e-19,
 2.315856855599388456e-19,
 6.564587311639428261e-19,
 2.032879073410320814e-19,
 8.506842597138909958e-19,
 2.751697050590121811e-19,
 3.836227086515876689e-19,
 9.128610475519328751e-19,
 6.517906145587456560e-19,
 3.388131789017201356e-19,
 4.824490284086275634e-19,
 2.710505431213761085e-19,
 5.826404650794643473e-19,
 5.762613592002297537e-19,
 3.095091306081366359e-19,
 8.243680437578442218e-19,
 4.85449649890104e-19,
 2.498962532480909844e-19,
 5.354380611373575798e-19,
 6.465564001006996412e-19,
 3.615352538357994336e-19,
 8.292552051274916129e-19,
 1.066116732848065361e-18,
 9.482896068074615061e-19,
 9.157989237069755039e-19,
 3.794707603699265519e-19,
 9.953556208659440424e-19,
 1.148691607350736122e-18,
 1.655905868183726679e-18,
 1.540940812835139611e-18,
 3.632102562304021384e-19,
 1.379498152005247844e-18,
 9.199760500100244489e-19,
 2.275896670392357755e-18,
 2.091835968936370797e-18,
 1.894447462943825357e-18,
 1.012728404406850756e-18,
 2.548451743371480535e-18,
 3.297472175031376887e-18,
 4.882597681423819153e-18,
 5.704181241051244702e-18,
 6.093334370826141925e-18,
 4.233944833136100806e-18,
 9.844770653768304268e-18,
 3.233122873428597620e-18,
 1.601494307857450561e-14]


On Thursday, December 12, 2013 3:35:53 PM UTC, AWWQUB wrote:

 Consider the equation
 *(I*x^51+sum(x^k,k,0,50))==0*
 Try to solve it numerically using 
 *solve([(I*x^51+sum(x^k,k,0,50))==0,x==x],x,solution_dict=True)*
 and you obtain 51 solutions of which 50 have modulus approximately 1 and 
 the other is close to 1+I. Substituting back gives residuals of around at 
 most 10^-6. That looks fine and Mathematica gives similar solutions. Now 
 substitute x-1-I for x, so that one of the solutions should now be close to 
 zero. Sage now gives solutions with real and imaginary parts both between 
 -1 and +4, but none are particularly close to zero.The residuals now range 
 up to 10^20. Mathematica gives completely different answers but which are 
 also wrong, namely all 51 are approximately 1.

 Any ideas?

 Tony Wickstead 


-- 
You received this message because you are subscribed to the Google Groups 
sage-support group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/groups/opt_out.


[sage-support] Re: Spurious numerical solutions of polynomial equation

2013-12-14 Thread JamesHDavenport
Sorry - I was looking at the original *(I*x^51+sum(x^k,k,0,50))==0.* Note 
that if you make the x-x-1 substitution, the polynomial now has 
coefficient as large as 10^18. The discriminant is unchanged, but the value 
you would expect it to be, given the size of the coefficient, is 
roughly10^800 times greater, so the polynomial is now amazingly 
ill-conditioned. Note that if you evaluate the translated polynomial in 
machine floating-point, and then translate back, you get coefficients of 
size 10^15. This translation is not feasible in floating-point!

On Saturday, 14 December 2013 17:37:16 UTC, JamesHDavenport wrote:

 Curious. The polynomial does not seem particularly ill-conditioned, in the 
 sense that its discriminant is roughly what one might expect (unlike, say, 
 Wilkinson's). Maple gives 50 roots with |f(x)|10^{-12}, and one with f(x)=, 
 i.e. much larger.

 On Thursday, 12 December 2013 15:35:53 UTC, AWWQUB wrote:

 Consider the equation
 *(I*x^51+sum(x^k,k,0,50))==0*
 Try to solve it numerically using 
 *solve([(I*x^51+sum(x^k,k,0,50))==0,x==x],x,solution_dict=True)*
 and you obtain 51 solutions of which 50 have modulus approximately 1 and 
 the other is close to 1+I. Substituting back gives residuals of around at 
 most 10^-6. That looks fine and Mathematica gives similar solutions. Now 
 substitute x-1-I for x, so that one of the solutions should now be close to 
 zero. Sage now gives solutions with real and imaginary parts both between 
 -1 and +4, but none are particularly close to zero.The residuals now range 
 up to 10^20. Mathematica gives completely different answers but which are 
 also wrong, namely all 51 are approximately 1.

 Any ideas?

 Tony Wickstead 



-- 
You received this message because you are subscribed to the Google Groups 
sage-support group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/groups/opt_out.