Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2007
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2007

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

Search the Archive

MainRoot Mathematica procedure

  • To: mathgroup at smc.vnet.net
  • Subject: [mg73083] MainRoot Mathematica procedure
  • From: Artur <grafix at csl.pl>
  • Date: Thu, 1 Feb 2007 04:03:34 -0500 (EST)
  • References: <op.tm1dy6isat030q@dom.domain_not_set.invalid> <45C10848.9070300@wolfram.com>

I want to show "early step" of my procedure MainRoot and I would like to
ask about some comments and sugestions, critics and any negative
opinions because soon these will be expanded very much and all changing
will be much more difficult to do as on this "early step"
These working on infinite class of polynomials inside each order and on
infinite number of orders. All polynomials if not reducible belonging to
Froebenius Galois Groups, but procedure counting also reducible cases.
Of course that is only one class inside Froebenius Galois group, what mean  
that we can't count mainroot of each polynomial belonging to Froebenius  
Galois transistive group.

BEST WISHES
ARTUR JASINSKI

MainRoot[pol_, var_] := Module[{coeff, dim, n,
     x, pr, ls, pom,
       mroot}, coeff = CoefficientList[pol, var];
        dim = Length[coeff] - 1; If[coeff[[
      dim + 1]] < 0, Do[coeff[[n]] = - coeff[[n]], {n, 1, dim + 1}]]; newt
  =
      Table[Binomial[dim, x], {x, 0, dim}]; pr = coeff[[
      dim + 1]]; ls = coeff[[dim]]/newt[[dim]]; pom =
        newt; If[OddQ[dim], Do[If[OddQ[n], pom[[n]] = ls pom[[n]],
          pom[[n]] = pr pom[[n]]], {n, 1, dim +
      1}]; If[pom ==
        coeff, mroot = ((pr - ls)^(1/dim) - (pr + ls)^(1/
          dim))/((pr - ls)^(1/dim) + (
      pr + ls)^(1/dim)), Print["Not implemented yet
      "]], Do[If[OddQ[n], pom[[n]] = pr pom[[n]], pom[[n]] = ls pom[[
      n]]], {n, 1, dim + 1}];
      If[pom == coeff, mroot = ((
        pr - ls)^(1/dim) - (-pr - ls)^(
            1/dim))/((pr - ls)^(1/dim) + (-pr - ls)^(1/dim)),
             Print["Not implemented yet"]]]; Simplify[mroot]]


Sample polynomials to test:
MainRoot[1-12X+6 X^2-12 X^3+X^4,X]
MainRoot[-3+55 #1-165 #1^2+825 #1^3-990 #1^4+2310 #1^5-1386 #1^6+1650
#1^7-495 #1^8+275 #1^9-33 #1^10+5 #1^11,#1]

  \!\(MainRoot[37 + 14111\ Y + 194361\ Y\^2 + 24228587
       Y\^3 + 163587175\ Y\^4 + 11993150565\ Y\^5 + 52904092395\ Y\^6 + \
2714449744545\ Y\^7 + 8797194792540\ Y\^8 + 343830300975700\ Y\^9 + \
872877216637580\ Y\^10 + 27325131737541540\ Y\^11  
+ 56578314132963140\ Y\^12 \
+ 1466448736581395980\ Y\^13 + 2546024135983341300\ Y\^14 + \
55934544666747532380\ Y\^15 + 83085254304256371090\ Y\^16 + \
1574392919002276131990\ Y\^17 + 2031515923870739112730\ Y\^18 + \
33651497771656837791950\ Y\^19 + 38171114990623887539190\ Y\^20 + \
558614863009503507346370\ Y\^21 + 562321663693043676605470\ Y\^22 + \
7332648063456763430424090\ Y\^23 + 6601167356396599681890300
       Y\^24 + 77237226268411241467133748\ Y\^25  
+ 62579066538639764984320044\ \
Y\^26 + 660807380296407288107699844\ Y\^27 + 484408329873174477100847748\ \
Y\^28 + 4638672497154583180066365900
       Y\^29 + 3090191069880595802195063220\ Y\^30 + \
26944203042611890686794095260\ Y\^31  
+ 16373028491222189048727068835\ Y\^32 + \
130434437456280289006525961145\ Y\^33  
+ 72525803566287236695341828975\ Y\^34 \
+ 529410363793137643614723018765\ Y\^35 + 270072278042079138551225286945\ \
Y\^36 + 1810806019100251579811319874995\ Y\^37 + \
849402285563352738743611819965\ Y\^38 + 5241806897395465099453820690775\ \
Y\^39 + 2265072761502273969982964853240\ Y\^40 + \
12887174030669826390852320137320\ Y\^41  
+ 5137847971212475102644286130520\ \
Y\^42 + 26987426458468041755372909612040\ Y\^43 + \
9938965948539988834924993254600\ Y\^44  
+ 48250247304533771623242474760920\ \
Y\^45 + 16430503128455962218895327013160\ Y\^46 +
       73781367987413806191692701923960\ Y\^47 + \
23247414000900457182054026518620\ Y\^48 +
       96618458078756174774835681090900\ Y\^49 + \
28181559013336472583959370922572\ Y\^50  
+ 108440010596627518511992046777316\ \
Y\^51 + 29286718190330059744114640370516\ Y\^52 + \
104347934725056668756822535578172\ Y\^53  
+ 26094036123459696836999417520900\ \
Y\^54 + 86078262651982773890308152244620\ Y\^55 + \
19926354857914677584617737015960\ Y\^56  
+ 60837268340499103351044859481160\ Y\
\^57 + 13031088688085763139123880044920\ Y\^58 + \
36801036079729147848235785834600\ Y\^59  
+ 7288575028929325145611661720040\ \
Y\^60 + 19023923569084029434115329726520\ Y\^61 + \
3480477657918128295339677701320\ Y\^62 + 8386891035832744159126113105240\ \
Y\^63 + 1415670475938921231239353033275\ Y\^64 + \
3145084138437279059672292414465\ Y\^65 + 489049800778900061700867411495\ \
Y\^66 + 999997353831482215716699035445\ Y\^67 + \
142979441316394838056531034265\ Y\^68  
+ 268541488880577065601671096475\ Y\^69 \
+ 35226818875053800680594602645\ Y\^70  
+ 60624456845876754045286714335\ Y\^71 \
+ 7276901551654306243878697260
        Y\^72 + 11442058826314638510830369220\ Y\^73 + \
1252780163465106406295295900\ Y\^74 + 1793620032233105496292328148\ Y\^75  
+ \
178466226795380070510838644\ Y\^76 + 231711678805233724401401244\ Y\^77 + \
20859688846213254994773348\ Y\^78 + 24442160211522544768080300\ Y\^79 + \
1980350206918979904567090\ Y\^80 + 2082109943944513072836470\ Y\^81 + \
150866787820084888845370\ Y\^82 + 141336290640958718726190\ Y\^83 + \
9088360712053306556950\ Y\^84 + 7522099501899763741730\ Y\^85 + \
425201007321782604990\ Y\^86 + 307639995667111428090\ Y\^87 + \
15106409873501158380\ Y\^88 + 9427170449451831300\ Y\^89  
+ 396048198930741980\
\ Y\^90 + 209492676654485140\ Y\^91 + 7379780104299540\ Y\^92 + \
3232004829171580\ Y\^93 + 92859278365700\ Y\^94 + 32573396934540\ Y\^95 + \
733099566045\ Y\^96 + 195888125895\ Y\^97 + 3239026065\ Y\^98  
+ 605714675\ \
Y\^99 + 6543487\ Y\^100 + 719661\ Y\^101 + 3811\ Y\^102 + 137\ Y\^103, Y]\)


  • Prev by Date: How to use BlockMatrix
  • Next by Date: Re: WhichRootOfUnity
  • Previous by thread: Re: How to use BlockMatrix
  • Next by thread: Re: WhichRootOfUnity