230 likes | 299 Views
Administrative. Oct. 2 Oct. 4 – QUIZ #2. (pages 45-79 of DPV). Polynomials. polynomial of degree d. p(x) = a 0 + a 1 x + ... + a d x d. Representing polynomial of degree d. the coefficient representation. (d+1 coefficients). evaluation. interpolation. the value representation.
E N D
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 .... p(ad) = 0 (x-a1)(x-a2)...(x-ad) (a0-a1)(a0-a2)...(a0-ad) p1 = (1/2) x2 – (1/2) x p2 = - x2 + 1 p3 = (1/2) x2 + (1/2) x
Interpolation • compute p = (x-a0)...(x-ad) • 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 representation p,q multiply in O(d) time interpolate pq in evaluation representation pq
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 2ik/n = k e FACT 1: n = 1 k . l = k+l 0 + 1 + ... + n-1 = 0 FACT 2: FACT 3: 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 . . xd (a0,a1,a2,...,ad)
Evaluation of a polynomial on multiple points 1 xn xn2 . . xnd 1 x1 x12 . . x1d 1 x2 x22 . . x2d (a0,a1,a2,...,ad) . . . Vandermonde matrix
Fourier transform 1 d-1 2(d-1) . . (d-1) 1 1 1 . . 1 1 1 2 . . d-1 (a0,a1,a2,...,ad) . . . 2 = e2 i / d FT - matrix
Inverse fourier transform 1 d-1 2(d-1) . . (d-1) 1 1 1 . . 1 1 1-d 2(1-d) . . -(d-1) 1 1 2 . . d-1 1 -1 -2 . . 1-d 1 1 1 . . 1 . . . . . . 2 2 = e2 i / d
Fourier transform – matrix view 1 1 0 D I Fn . . . 1 1 I -D Fn 0 . . . D=diag(1,,...,d-1) d=2n
String matching string = x1,....,xn pattern = p1,...,pk k (xi – pi)2 TEST = i=1 Occurs on position j ?
String matching string = x1,....,xn pattern = p1,...,pk k (xi – pi)2 TEST = i=1 Occurs on position j ? k (xi+j-1 – pi)2 TESTj = i=1
String matching with “don’t cares” Occurs on position j ? k (xi+j-1 – pi)2 TESTj = i=1 pj = 0 DON’T CARE k pj(xi+j-1 – pi)2 TESTj = i=1