Re: Who can help me?
- To: mathgroup at smc.vnet.net
- Subject: [mg26790] Re: [mg26778] Who can help me?
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Wed, 24 Jan 2001 04:18:33 -0500 (EST)
- References: <200101220810.DAA27479@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Jacqueline Zizi wrote: > > I'm working on this polynomial linked to the truncated icosahedron: > > -17808196677858180 x + > 138982864440593250 x^2 - 527304830550920588 x^3 + > 1301702220253454898 x^4 - 2358155595920193382 x^5 + > 3347791850698681436 x^6 - 3878279506351645237 x^7 + > 3764566420106299695 x^8 - 3117324712750504866 x^9 + > 2229873533973727384 x^10 - 1390372935143028255 x^11 + > 760794705528035032 x^12 - 367240961907017721 x^13 + > 157018216115380477 x^14 - 59650776196609992 x^15 + > 20179153653354540 x^16 - 6086251542996201 x^17 + > 1637007669992780 x^18 - 392300104078670 x^19 + > 83589038962550 x^20 - 15782712151030 x^21 + > 2628070696678 x^22 - 383466859804 x^23 + 48618908986 x^24 - > 5298021900 x^25 + 489095520 x^26 - 37516324 x^27 + > 2327268 x^28 - 112200 x^29 + 3945 x^30 - 90 x^31 + x^32; > > I'm interested at its value for x-> 2 + 2 Cos [2 [Pi] / 7]. > Taking N [] gives 3.2628184 10^7 > > But if I simplify first and then take N[] it gives -0.0390625 + > 0.0195313 [ImaginaryI] > > As it is a polynomial with integer coefficients, and 2 + 2 Cos [2 pi / > 7] is real too, the result should be real. So I prefer the 1st > solution, but for another reason, I'm not so sure of this result. > > A Plot between 3 and 3.5, does not help me neither to check if the > value 3.2628184 is good and If I do : polynomial /. x -> 3.2628184 > 10^7, it gives 2.7225238332205106`^240 > > How could I check the result 3.2628184 10^7 ? > > Thanks > > Jacqueline You are seeing numeric cancellation in machine arithmetic. To avoid this pitfall you need to use significance ("bignum") arithmetic, which keeps track of precision. In[4]:= polyeval = poly /. x->2+2*Cos[2*Pi/7]; In[5]:= N[polyeval] 8 Out[5]= 7.11764 10 In[6]:= N[polyeval, 50] Out[6]= 0.0010805607234388904362155532364433382436433380392130 In[11]:= InputForm[evalsimp = Simplify[polyeval]] Out[11]//InputForm= -206913272829752 - 46054183213619*(-1)^(1/7) + 186431760660533*(-1)^(2/7) + 129029299410756*(-1)^(3/7) - 129029299410756*(-1)^(4/7) - 186431760660533*(-1)^(5/7) + 46054183213619*(-1)^(6/7) In[12]:= N[evalsimp] Out[12]= -0.0546875 - 0.0117188 I In[13]:= N[evalsimp, 50] -88 Out[13]= 0.0010805607234388904362155532364433382436433380392130 + 0. 10 I Daniel Lichtblau Wolfram Research