Vocabulary/pdot
>> << Down to: Dyad Back to: Vocabulary Thru to: Dictionary
p. y Roots
Rank 1 -- operates on lists of y, producing a list for each one -- WHY IS THIS IMPORTANT?
Converts the polynomial y between coefficient and multiplier-and-roots form.
Example: The roots of 2y2 - 16y + 30 = 2(y-5)(y-3) = 0 are 5 and 3
c=: 30 _16 2 NB. coefficients (in ascending powers) ]z=: p. c NB. coefficients as argument yield roots +-+---+ |2|5 3| +-+---+ p. z NB. (multiplier and) roots as [boxed] argument yield coefficients 30 _16 2
The coefficient form of a polynomial is the list of coefficients of ascending powers of y representing the polynomial c0+c1y1+ ... +cnyn
30 _16 2 ↔ 30 - 16y + 2y2
The multiplier-and-roots form of a polynomial is a two-atom boxed list m;r representing the polynomial m(y-r0)(y-r1)...(y-rn)
2;5 3 ↔ 2(y-5)(y-3)
Common uses
1. Solve a polynomial equation whose right side is 0 (the solutions are the roots).
2. Convert a polynomial into its different forms.
More Information
1. y may also be in exponent form, which is a singleton box (either an atom or a 1-atom list) containing a table. Each row of the table is a 2-atom list c,n representing the term cyn (c is the coefficient, n the nonnegative integer exponent).
If y is in exponent form, p. y produces the corresponding coefficient form.
]p =. <_2 ]\ _16 1 2 2 30 0 NB. three (c,n) pairs; order of powers doesn't matter +-----+ |_16 1| | 2 2| | 30 0| +-----+ p. p 30 _16 2
Details
1. If y is a single boxed atom containing a list, it is assumed to be roots with an omitted multiplier of 1:
]z=. < -: 1&(+,-) %:5 NB. roots [Phi,-phi] +-----------------+ |1.61803 _0.618034| +-----------------+ p. z _1 _1 1
2. If in exponent form powers appear repeated, the last occurring (c,n) pair for that power is used:
]p =. < _16 1 ,99 2 ,30 0 ,:2 2 +-----+ |_16 1| | 99 2| | 30 0| | 2 2| +-----+ p. p 30 _16 2
x p. y Polynomial
Rank 1 0 -- operates on lists of x, and individual atoms of y -- WHY IS THIS IMPORTANT?
Evaluates polynomial x for given value(s) of y.
Argument x can be in coefficient, multiplier-and-roots, exponent, or multinomial form.
Remember, the powers of y in coefficient form are in ascending order.
Example: The roots of 2y2 - 16y + 30 = 2(y-5)(y-3) = 0 are 5 and 3
See above for conversion of this polynomial between forms
y=: i. 6 30 _16 2 p. y NB. coefficient form 30 16 6 0 _2 0 (2;5 3) p. y NB. m&r form 30 16 6 0 _2 0 (<_2 ]\ 2 2 _16 1 30 0) p. y NB. exponent form 30 16 6 0 _2 0
Common uses
1. The usual ways to evaluate a polynomial
c=: 15 _8 1 NB. coefficients for case: multiplier 1, roots 5 and 3 y=: i. 9 NB. range [0..8] y,:(c p. y) NB. the 'short' way 0 1 2 3 4 5 6 7 8 15 8 3 0 _1 0 3 8 15 +/"1 c *"1 y^/i.#c NB. the 'long' way 15 8 3 0 _1 0 3 8 15 y #.("0 1) |. c NB. the 'tricky' way, useful if the coefficients are in descending exponent order 15 8 3 0 _1 0 3 8 15
Related Primitives
Base (x #. y)
More Information
1. Multinomial form is an extension of exponent form to multiple independent variables.
Argument x is a singleton box containing a table. Each row of the table is a list c,e0,e1... representing the term (cy0e0y1e1...) (c is the coefficient, e the exponents). The result is the sum of the terms.
When x is in multinomial form, y must be a boxed list of y0, y1, ... with one atom for each e-column of the table >x .
]multi =: <4 3 1,:5 0 2 NB. 4(x^3)y + 5y^2 +-----+ |4 3 1| |5 0 2| +-----+ ]pts=. _1 _1; 0 0; 1 1; 1 _1; _1 1; 0 1; 1 0; 2 2 +-----+---+---+----+----+---+---+---+ |_1 _1|0 0|1 1|1 _1|_1 1|0 1|1 0|2 2| +-----+---+---+----+----+---+---+---+ multi p. pts NB. Evaluate each point 9 0 9 1 1 5 0 84 ]multi2 =: <3 2 1,5 1 2,:1 0 3 NB. 3(x^2)y + 5xy^2 + y^3 +-----+ |3 2 1| |5 1 2| |1 0 3| +-----+ multi2 p. pts _9 0 9 1 _1 1 0 72 multi2 p. 0 0;2 2;1 3;1 2;3 1;4 4 0 72 81 34 43 576
2. Formally, (x p. y) is (+/x * y^ i.#x)
3. The form (x p.!.n y) gives the Stope polynomial (+/x * y^!.n i.#x)
Details
1. When x is in multinomial form, the result is (|:c) +/ .* e */ .(^~) >y. If >y is an atom it is treated as a 1-atom list.
2. Boolean x and y are always promoted to floating-point. For an alternative, see x #. y.