230 likes | 305 Views
Explore polynomial evaluation on multiple points, interpolation techniques, and efficient polynomial multiplication. Learn about evaluating, interpolating, and multiplying polynomials efficiently using various methods including Vandermonde matrix and Fourier transform.
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