Q1) This problem is about determining when Strassen's Algorithm is faster than ordinary matrix multiplication, assuming that scalar addition and scalar multiplication take the same amount of time. Show all of your workings. Don't use the Master Method in this problem.
(i) describe why ordinary matrix multiplication of two n by n matrices involves 2n3-n2 calculations. (Multiplication+Addition).
(ii) In Strassen's Algorithm, T(n), the total number of calculations (Multiplication+Addition) involved in multiplying two n by n matrices satisfies T(n) = 7T(n/2 ) + 9/2n2 given T(1) = 1. Suppose n = 2m. By considering the transformation G(m) = T(2m) obtain a recursion equation for G(m) along with a condition on G(0).
(iii) Show that the solution to the recursion equation is G(m) = 7m+1- 6 *4m.
(iv) Hence show that T(n) = 7nlog27 -6n2.
(v) Determine the smallest value of m for which Strassen's Algorithm involves fewer calculations than ordinary matrix multiplication.
Q2) In this problem you will need to determine which of the 5 algorithms V to Z is quickest at solving a problem of input size n. The running time for each algorithm satisfies its own recursion equation given by:
Algorithm V: V (n) = 3V (n-1) + 4n with V (1) = 1
Algorithm W: W(n) = 3W(n-1) + 10n2 + 20n + 40 with W(1) = 1
Algorithm X: X(n) = 3X(n -1) + 3n with X(1) = 1
Algorithm Y: Y (n) = 5Y (n - 1) - 4Y (n- 2) + 6n - 12 with Y (1) = 1; Y (2) = 2
Algorithm Z: Z(n) = 8Z(n - 1) - 15Z(n - 2) + 2n with Z(1) = 1; Z(2) = 2
(i) Obtain a closed form solution for the running time for each algorithm.
(These should be derived by hand without using Maple).
(ii) Use Maple to plot a suitable function of the running time against n for each algorithm on the same graph to illustrate how the choice of the most efficient algorithm changes with n. (Plotting multiple graphs may help to illustrate your argument).
(iii) By considering the running time for algorithm Z, simplify this expression 5n - 5(3n) + 2n+3 mod 6 for n 1
(Just state the answer and say why - no need to prove anything)
Q3) The running times of algorithms J, K, L and M are given by
Algorithm J: J(n) = 3J(n/4 ) + n with J(1) = 1
Algorithm K: K(n) = 5K(n/2 ) + n2 with K(1) = 1
Algorithm L: L(n) = 6L(n/6 ) + n ln n with L(3) = 1
Algorithm M: M(n) = 2M(n/5 ) +M(n/3 ) + √n with M(1) = 1
(i) describe how algorithms K & M divide up a problem of size n.
(ii) Sketch a recursion tree for algorithm J.
(iii) Using the Master Method, determine the asymptotic running times for each of the algorithms J, K & L.
(iv) Prove the 3 results that you obtained in (iii) are upper bounds on the running times of algorithms J, K & L, using proof by induction.
(v) Consider algorithm M and suppose p > 0.5 such that M(n) = O(np).
(a) By seeking the tightest possible upper bound on M determine p.
(b) Using proof by induction show that M(n) <=cnp + d √n where c and d are chosen to make this upper bound as tight as possible.
(vi) Which of the algorithms J, K, L and M is asymptotically fastest?
Q4) This problem is about solving nonlinear equations. You should ignore repeated roots. You cannot use any of Maple's built in `solve' type commands.
(i) prepare a Maple procedure to numerically solve the coupled system of equations f(x; y) = 0 and g(x; y) = 0 with initial guesses x=x0 and y=y0 by extending the Newton-Raphson method to a system of 2 nonlinear equations.
(Use nite di erences to evaluate the partial derivatives).
(ii) Using an initial guess of x0 = 1 and y0 = -1 test your procedure by obtaining one
solution, accurate to 5 decimal places, to this nonlinear system:
sin(5x) + 9- 3y2 = 0
e7y-4x + 6x- 8 = 0
Q5) In this problem you are going to prepare a Maple program to determine the centre and radius of the smallest circle that encloses a set of points.
(i) Create a set A of 20 points located in a two dimensional space. The x and y coordinates of each point should be randomly assigned such that |x| <=100 and |y| <=100.
(ii) Determine the maximum and minimum values of x and y over the points in A. Define x0 = 1/2(max(x) - min(x)) and y0 = 1/2(max(y)- min(y)).
(iii) find out the radius, r0, of a circle centred at the point (x0; y0) that encloses the set of points in A. Define dx = 1/10r0.
(iv) Redefine dx as dx=1:1. By considering the resulting radius for each of the points (x0- dx; y0), (x0, y0), (x0 + dx, y0), (x0, y0- dx) and (x0, y0 + dx) choose a new value of x0 and y0 to reduce the radius.
(If none of the four new points reduces the radius, then leave x0 and y0 unchanged.)
(v) Iterate step (iv) 30 times.
(vi) Plot the points in set A along with a circle centred at the point (x0, y0) of the appropriate radius on the same graph.
(vii) Discuss any problems associated with successively reducing the value of dx.