MathGroup Archive 2011

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

Search the Archive

Re: Function for complex polynomial with variable number of arguments

  • To: mathgroup at smc.vnet.net
  • Subject: [mg123490] Re: Function for complex polynomial with variable number of arguments
  • From: Heike Gramberg <heike.gramberg at gmail.com>
  • Date: Fri, 9 Dec 2011 05:54:00 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201112081021.FAA18802@smc.vnet.net>

You could do something like this

poly[z_, p___] := Fold[(z - #2) #1 &, 1, {p}]

This works for p=={} as well, i.e.

poly[x+I y]

returns 1.

Heike

On 8 Dec 2011, at 11:21, Chris Young wrote:

> I want to be able to pass any number of complex points to this
> polynomial function and have it return the product of factors (z - p_1)
> (z - p_2) etc. Works OK except when I pass in no arguments. Looks like
> I have to check for this, but I'm wondering if there's a better way to
> convert my arguments into factors, maybe using Fold.
>
> poly[z_, p___] :=
> Product[z - (List@p)[[i]], {1, Max[1, Length[List[p]]]}]
>
>
>
> In[553]:= poly[x + y I, a + b I, c + d I, c + d I]
> Out[553]= (-a - I b + x + I y) (-c - I d + x + I y)^2
>
> In[554]:= poly[x + y I, a + b I]
> Out[554]= -a - I b + x + I y
>
> In[555]:= poly[x + y I, 0]
> Out[555]= x + I y
>
> In[556]:= poly[x + y I]
>
> During evaluation of In[556]:= Part::partw :  "Part 1 of {} does not
> exist. =91=99=98ButtonBox["",
> Appearance->{Automatic, None},
> BaseStyle->"Link",
> ButtonData:>"paclet:ref/message/General/partw",
> ButtonNote->"Part::partw"]"
> Out[556]= x + I y - {}[[1]]
>
>




  • Prev by Date: Re: Gaps in plotted graph, probably resulting from real values being miscomputed as complex
  • Next by Date: Re: Gaps in plotted graph, probably resulting from real values being miscomputed as complex
  • Previous by thread: Function for complex polynomial with variable number of arguments
  • Next by thread: Re: Function for complex polynomial with variable number of arguments