Re: Please, can someone explain this small function?
- To: mathgroup at smc.vnet.net
- Subject: [mg50808] Re: Please, can someone explain this small function?
- From: Paul Abbott <paul at physics.uwa.edu.au>
- Date: Wed, 22 Sep 2004 00:11:12 -0400 (EDT)
- Organization: The University of Western Australia
- References: <cih0hn$md$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
In article <cih0hn$md$1 at smc.vnet.net>,
Cole Turner <REMOVEcole.turner at liwest.at> wrote:
> input: two polynomials as lists
Why not input polynomials as polynomials?
> output: the GCD
For which there is PolynomialGCD.
> methinks, this is the Euclidean Algorithm, what I don't get is how the
> "mon" is constructed here and what exactly the "MapIndexed" function
> does here - the MATHEMATICA help wasn't too helpful!
> thanks a lot in advance!!!!
>
> In[1]:=
> myGCD[p1_List,p2_List]:=
> Module[{mon,x,pol1,pol2,num},
> mon[a_,{b_}]:=a*x^(b-1);
> pol1=Factor[Plus@@MapIndexed[mon,p1]];
> pol2=Factor[Plus@@MapIndexed[mon,p2]];
A simpler alternative is to use Dot:
ToPolynomial[p_List][x_] := p . x^(Range[Length[p]]-1)
There is no need to use Factor here.
> num=Numerator[pol1/pol2];
> CoefficientList[pol1/num,x]
Use PolynomialGCD instead -- so the routine then becomes
myGCD[p1_List,p2_List]:=
Module[{x},
CoefficientList[
PolynomialGCD[ToPolynomial[p1][x], ToPolynomial[p2][x]],
x]
]
but I do not see the advantage of this to and fro conversion between the
list of coefficients and polynomials.
Cheers,
Paul
--
Paul Abbott Phone: +61 8 6488 2734
School of Physics, M013 Fax: +61 8 6488 1014
The University of Western Australia (CRICOS Provider No 00126G)
35 Stirling Highway
Crawley WA 6009 mailto:paul at physics.uwa.edu.au
AUSTRALIA http://physics.uwa.edu.au/~paul
- Follow-Ups:
- Re: Re: Please, can someone explain this small function?
- From: Murray Eisenberg <murray@math.umass.edu>
- Re: Re: Please, can someone explain this small function?