440 likes | 792 Views
Polynomials and FFT. Lecture 11 Prof. Dr. Aydın Öztürk. Polynomials. A polynomial in the variable x is defined as where are the coefficiens of the polynomial. Polynomials(cont.).
E N D
Polynomials and FFT Lecture 11 Prof. Dr. Aydın Öztürk
Polynomials A polynomial in the variable x is defined as where are the coefficiens of the polynomial.
Polynomials(cont.) A polynomial A(x) is said have degreek if its highest non-zero coefficient is ak. Any integer strictly greatherthan the degree of a polynomial is a degree bound of that polynomial. Therefore, the degree of a polynomial of degree bound n may be any integer between 0 and n-1.
Polynomial addition If A(x) and B(x) are polynomials of degree bound n, their sum is a polynomial C(x) s.t. C(x)= A(x)+ B(x) For all x underlying their field F that is if
Polynomial addition(cont.) Example:
Polynomial multiplication If A(x) and B(x) are polynomials of degree bound n, their product C(x) is a ppolynomial of degree-bound 2n-1 s.t. C(x)= A(x) B(x) for all x underlying their field F.
Polynomial multiplication(cont.) Example:
Coefficient representation A coefficient representation of a polynomial of degree bound n is a vector of coefficients
Coefficient representation(cont.) A coefficient representation is convenient for certain operations on polynomials. Example: Evaluating A(x) at x0. Evaluation takes timeΘ(n)when Horner’s rule is used:
Point-value representation A point-value representation of a polynomial A(x) of degree-bound n is a set of poin-value pairs. s.t. all of the xk are distinct and With Horners’ method, an n-point evaluation takes Θ(n2).
Point-value representation(cont.) Addition based on point-value representation: If we have a point value representation for A(x) and for B(x) Then a point-value representation for C(x)= A(x)+ B(x) is
Point-value representation(cont.) The time to add two polynomials of degree bound point-value representation is Θ(n).
Point-value representation(cont.) Multiplication based on point-value representation: If we have a point value representation for A(x) and for B(x) then a point-value representation for C(x)= A(x)B(x) is
Point-value representation(cont.) The time to multiply two polynomials of degree bound point-value representation is Θ(n).
Fast multiplication of polinomials Can we use the linear-time multiplication method for polynomials inpoint-value form to expedite polynomial multiplication in coefficient form? The answer hinges on our ability to convert a polynomial quickly from coefficient form to point-value form and vice-versa.
Fast multiplication of polinomials We can choose the evaluation points carefully, we can convert between representations in Θ(nlg n) time. If we choose complex roots of unity as the evaluation points, we can produce a point-value representation by taking the Discrete Fourier Transform(DFT) of a coefficient vector The inverse operation can be performed by taking the inverse DFT of point-value pairs in Θ(nlg n) time.
Fast multiplication of polinomials Ordinary multiplication Coefficient representation Θ(n2) Interpolation time Θ(nlg n) Θ(nlg n) Pointwise multiplication Point-value representation Θ(n)
The DFT and FFT In this section we define • Complex roots of unity, • Define the DFT • Show how the FFT computes the DFT
Complex roots of unity A complex nth root of unity is a complex numberωs.t. The n roots are: To interpret this formula we use the defination of exponential of complex number:
Complex roots of unity The value is called the principal root of unity. All of the other complex nth roots of unity are powers of . The n complex nth roots of unity are:
Complex roots of unity Lemma-1: For any integers n ≥ 0 and d > 0, Proof:
Complex roots of unity Corollary: For any even integer n > 0, Lemma-2: If n > 0is even then the squares of the nth roots of unity are the (n/2)th roots of unity. Proof: We have (by lemma-1)
Complex roots of unity Lemma-3: For any integer n ≥ 1and nonnegative integer knot divisible byn, Proof:
The DFT We wish to evaluate a polynomial of degree bound n at Without loss of generality, we assume that n is a power of 2. (We canalways add new high order zero coefficient as necessary)
The DFT Assume that A(x)is given in coefficient form For k=0,1, ..., n-1 we define The vector is called the Discrete Fourier Transform(DFT) of the coefficient vector We also write y=DFTn(a).
The FFT(cont.) Let It follows that
The FFT(cont.) The problem of evaluating A(x) at reduces to • Evaluating the degree-bound n/2 polynomials and at the points as 2. Combining the results.
Running time of RECURSIVE-FFT We note that exclusive of the recursive calls, each invocation takes time Θ(n). The recurrence for the running time is therefore
Interpolation We can write the DFT as the matrix product y = Va that is
Interpolation(cont.) Theorem: For j,k=0,1, ..., n-1, the ( j,k) entry of the inverse of matrix is Given the inverse matrix V-1, we have that is given by
Interpolation(cont.) By using the FFT and the inverse FFT, we can transform a polynomial of degree-bound n back and forth between its coefficient representation and a point-value representation in time Θ(n lg n).
Interpolation(cont.) Theorem: For any two vectors a and b of length n is a power of 2, Where the vectors a and b are padded with zero’s to length 2n and . denotes the componentwise product of two 2n element vectors.
Example Multiply the following polynomials. Run time:
Example Multiply the polynomials in The Discrete Fourier Transform(DFT) of the coefficient vectors: DFT(a)= [4.000, (-0.309 - 2.126i), (0.809 + 1.314i),(0.809 - 1.314i), ( -0.309+ 2.126i)] DFT(b)= [6.000, (-0.809 - 3.665i), (0.309 + 1.677i), (0.309 -1.677i), (-0.809 + 3.665i)] Run time:
Example DFT(a)∙DFT(b)= [24.00,(-7.545 + 2.853i), (-1.954 + 1.763i), ( -1.954 - 1.763i),(-7.545 - 2.853i)]