You are on page 1of 23

Administrative

Oct. 2
Oct. 4 – QUIZ #2

(pages 45-79 of DPV)


Polynomials

polynomial of degree d
p(x) = a0 + a1 x + ... + ad xd
Representing polynomial of degree d

the coefficient representation


(d+1 coefficients)

evaluation interpolation

the value representation


(evaluation on d+1 points)
Evaluation

polynomial of degree d
p(x) = a0 + a1 x + ... + ad xd
Evaluation

polynomial of degree d
p(x) = a0 + a1 x + ... + ad xd

(Horner’s rule)
a0+x(a1+x(a2 + ... )))

R0
for i from d to 0 do R  R*x + ai
Interpolation
a polynomial p of degree d such that
p(a0) = 1
p(a1) = 0 (x-a 1 )(x-a 2 )...(x-a d )
.... (a0-a1)(a0-a2)...(a0-ad)
p(ad) = 0

p1 = (1/2) x2 – (1/2) x
p 2 = - x2 +1
p3 = (1/2) x2 + (1/2) x
Interpolation
1) compute p = (x-a0)...(x-ad)
2) compute
pi = p / (x-ai) for i=0,...,d
ri = pi / pi(ai)
3) compute
q = c0 r0 + ... + cd rd

Claim: q(ai) = ci for i=0,...,d


Polynomials

evaluation on 1 point O(d)


evaluation on d points O(d2)

interpolation O(d2)
MAIN GOAL: Multiplying polynomials

Polynomial of degree d
p(x) = a0 + a1 x + ... + ad xd

Polynomial of degree d’
q(x) = b0 + b1 x + ... + bd’ xd’

p(x)q(x) = (a0b0) + (a0b1 + a1b0) x +


.... + (adbd’) xd+d’
evaluate on
>2d points p,q in evaluation
p,q
representation

multiply
in
O(d) time
interpolate pq in evaluation
pq representation
Evaluation on multiple points

p(x) = 7 + x + 5x2 + 3x3 + 6x4 + 2x5

p(z) = 7 + z + 5z2 + 3z3 + 6z4 + 2z5


p(-z) = 7 – z + 5z2 – 3z3 + 6z4 – 2z5

p(x) = (7+5x2 + 6x4) + x(1+3x2 + 2x4)


p( x) = pe(x2) + x po(x2)
p(-x) = pe(x2) – x po(x2)
Evaluation on multiple points
p(x) = a0 + a1 x + a2 x2 + ... + ad xd
p(x) = pe(x2) + x po(x2)
p(-x) = pe(x2) – x po(x2)
To evaluate p(x) on
-x1,x1,-x2,x2,...,-xn,xn
we only evaluate pe(x) and po(x) on
x12,...,xn2
Evaluation on multiple points
To evaluate p(x) on
-x1,x1,-x2,x2,...,-xn,xn
we only evaluate pe(x) and po(x) on
x12,...,xn2
To evaluate pe(x) on
x12,...,xn2
we only evaluate pe(x) on ?
n-th roots of unity
2ik/n
e k
FACT 1:
n = 1
FACT 2:
k . l = k+l
FACT 3:
0 + 1 + ... + n-1 = 0
FACT 4:
k = -k+n/2
FFT (a0,a1,...,an-1,)
(s0,...,sn/2-1)= FFT(a0,a2,...,an-2,2)
(z0,...,zn/2-1) = FFT(a1,a3,...,an-1,2)
s0 + z0
s1 +  z1
s2 + 2 z2
....
s0 – z0
s1 -  z1
s2 - 2 z2
....
Evaluation of a polynomial
viewed as vector mutiplication

1
x
x2
(a0,a1,a2,...,ad) .
.
xd
Evaluation of a polynomial
on multiple points

1 1 1
x1 x2 xn
x12 x22 x n2
(a0,a1,a2,...,ad) .
. . ...
. . .
x1d x2d x nd
Vandermonde matrix
Fourier transform

1 1 1
1 1 d-1
1 2 2(d-1)
(a0,a1,a2,...,ad) . . .
. . . . . .
2
1 d-1  (d-1)

= e2 i / d FT - matrix


Inverse fourier transform

1 1 1 1 1 1
1 1 d-1 1 -1 1-d
1 2 2(d-1) 1 -2 2(1-d)
. . . . . .
. ... . . . .
. 2 . . .
2
1 d-1 (d-1) 1 1-d -(d-1)

= e2 i / d
Fourier transform – matrix view

1
1
I D Fn 0 ...
1
I -D 1 ...
0 Fn

D=diag(1,,...,d-1)
d=2n
String matching
string = x1,....,xn
pattern = p1,...,pk
k
TEST =  (xi – pi)2
i=1
Occurs on position j ?
String matching
string = x1,....,xn
pattern = p1,...,pk
k
TEST =  (xi – pi)2
i=1
Occurs on position j ?
k
TESTj =  (xi+j-1 – pi)2
i=1
String matching with “don’t cares”
Occurs on position j ?
k
TESTj =  (xi+j-1 – pi)2
i=1

pj = 0 DON’T CARE
k
TESTj =  pj(xi+j-1 – pi)2
i=1

You might also like