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]] > >
- References:
- Function for complex polynomial with variable number of arguments
- From: Chris Young <cy56@comcast.net>
- Function for complex polynomial with variable number of arguments