Skip to main content
留学咨询

辅导案例-MATH2019

By May 15, 2020No Comments

MATH2019 Introduction to Scientific Computation — Coursework 2 (5%) — Update (12 Nov): Small update in Question 5?. Submission deadline: 4pm, Monday, 18 Nov 2019 This coursework contributes 5% towards the overall grade for the module. Rules: • Each student is to submit their own coursework. • You are allowed to work together and discuss in small groups (2 to 3 people), but you must write your own coursework and program all code by yourself. • Please be informed of the UoN Academic Misconduct Policy (incl. plagiarism, false authorship, and collusion). Coursework Aim & Assessment: • In this coursework you will develop Matlab code related to direct methods for solving linear systems of equations, and you will study some of the methods’ behaviour. • A total of 20 points can be obtained in this coursework. The weighting is enclosed in brackets for each question, e.g. [2 / 20]. • Some marking criteria: Correctness of numerical output, clarity of code and comments, completeness of figures (title, axis labels, legend, etc) and tables, clear and concise answers to open questions, . . . • See Moodle: Assessed Coursework 2 for dedicated grading criteria per question. Some Advice: • You are expected to have basic familiarity with Matlab (in particular: vectors and matrices, plotting, logic and loops, function handles, writing functions and m-files, publishing m-files). • Helpful resources: Matlab Guide (by Tom Wicks), Matlab’s Online Documentation • Write your code as neatly and concisely as possible so that it is easy to follow. • Add some comments to your scripts that indicate what a piece of code does. • Remember to format output using for example disp, num2str or fprintf. • Questions with a “?” are more tedious, but can be safely skipped, as they don’t affect follow- up questions. Getting Started: • Download the contents of the “Coursework 2 Pack” folder from Moodle. • Do the coursework by simply adding MATLAB code to the given files cw2.m, forwardElim.m, forwardElimCP.m and forwardElimLU.m. • Your responses to the numbered questions below should be written in cw2.m, except the responses to questions 1, 4, 6, which involve the completion of the other m-files. Submission Procedure: The coursework is to be submitted using the “Assessed Course- work 2” assignment on Moodle. A complete submission consists of the following files: • 6 m-files: cw2.m, forwardElim.m, forwardElimCP.m, forwardElimLU.m, testMat.m, backwardSub.m • 1 PDF file: cw2.pdf This PDF file is created using Matlab “Publish” on cw2.m. (See for example Section 1.2.9 of the Matlab Guide (by Tom Wicks) for instructions on publishing.) (Other files can be submitted, but only if they are referred to in cw2.m and cw2.pdf, and their relevance is explained.) School of Mathematical Sciences — Version: 12th November, 2019 — Lecturer: Dr Kris van der Zee Page 1 of 5 I Gaussian elimination without pivoting To solve a n × n linear system of equations, consider the Gaussian elimination algorithm consisting of forward elimination without row interchanges and backward substitution. Recall from Lecture 4 that the forward-elimination step consists of n−1 rounds of row-operations: for i = 1, . . . , n− 1 for j = i+ 1, . . . , n Ej − aji aii Ei → Ej end end 1 [5 / 20]Modify the function m-file forwardElim.m. This function m-file should implement the forward-elimination step, and has the following prototype: function Am = forwardElim(A,m) where A is an n × (n+1) augmented matrix, m is an integer with 1 ≤ m ≤ n, and the output Am is the augmented matrix after applying m−1 rounds within the forward-elimination process. Hint: In other words, when m = 1, then Am = A. When m = 2, then Am is the matrix obtained after one round of row-operations, which is the matrix obtained at the end of the above for-loop when i = 1. This matrix has zeros in the first column in all the rows below the pivot a11. When m = 3, then Am is the matrix obtained at the end of the above for-loop when i = 2, and this matrix has zeros in the first and second column under the pivots a11 and a22, respectively. Etcetera. . . When m = n, then Am has the final echelon form obtained at the end of the entire forward-elimination step. 2 [2 / 20]Consider the system of linear equations corresponding to the augmented ma- trix A˜ = A˜(1) given by A˜(1) =  1 −1 2 −1 −8 1 1 1 0 −2 2 0 2 −2 −14 1 −3 6 3 2  • By using your forwardElim.m, compute the augmented matrices A˜(2), A˜(3), and A˜(4), obtained in the forward-elimination step after applying 1, 2 and 3 rounds of row-operations, respectively. Make sure your outputs are visible when “pub- lishing” cw2.m as a PDF. • Then, apply the function m-file backwardSub.m to the echelon matrix A˜(4) to obtain the solution vector x. Note that backwardSub.m already contains a com- plete implementation of the backward-elimination step. Hint: You should verify that the solution is (the column vector) x = [−7; 3; 2; 2]. MATH2019 Coursework 2 Page 2 of 5 I Timing the operations in forwardElim and backwardSub 3 [4 / 20]Consider the matrix A of size n × n and vector b of size n × 1 as provided by the function [A, b] = testMat(n). Take a large range of values for n (for example, n = 50, 100, 150, 200, . . . , 950, 1000, . . . up to some large number that depends on how powerful your computer is, and how much patience you have), and use Matlab to compute the time it takes for your forwardElim.m to obtain the final echelon form for the augmented matrix [A b], as well as the time it takes for backwardSub.m to subsequently obtain the solution vector. • Plot the computed time for forwardElim.m versus n in a figure using loglog, and plot in the same figure the computed time for backwardSub.m. Hint: Use tic and toc to set Matlab’s stopwatch. (Don’t forget to polish your figure: axis labels, legend, grid, . . .) • Based on your plots, provide an explanation for the observed behaviour of the timings for large n. (There is no need to explain the randomn fluctuating behaviour for small n.) I Gaussian elimination with complete pivoting Now consider Gaussian elimination with forward elimination using complete pivoting as discussed in Lecture 5. Recall that the pivoting is carried out at the start of each round before performing the usual row operations. 4? [3 / 20]Complete the function m-file forwardElimCP.m. The function has the following prototype: function Am = forwardElimCP(A,m) where A is an augmented matrix of size n×(n+1), m is an integer with 1 ≤ m ≤ n, and the output Am is the augmented matrix after applying m−1 rounds within the forward-elimination process. Hint: To find a maximum in some vector (or matrix), you can use the Matlab function max (see help max for more info). For the absolute value use abs. 5? [2 / 20]• Repeat Question 2, but now using your forwardElimCP.m and in the case of the augmented matrix B˜ = B˜(1) given by B˜(1) =  0 −1 2 −1 0 1 −1 1 0 −9 2 −2 3 −3 −21 1 −1 4 3 6  Hence, simply obtain B˜(2), B˜(3) and B˜(4), and apply backwardSub.m to B˜(4). There is no need to verify the solution. Note: For this matrix, the previ- ous forwardElim.m (without pivoting) can not be applied. • Repeat Question 2, but now using your forwardElimCP.m and in the case of the same matrix A˜ = A˜(1) given in Question 2. Explain why applying backwardSub.m now to A˜(4) does not give the same result as in Question 2. MATH2019 Coursework 2 Page 3 of 5 I LU factorisation Consider the LU factorisation of a n × n matrix A (see Lecture 6). Theorem 6.19 provides the general form for the matrix L and U . 6 [2 / 20]Use the code that you wrote for forwardElim.m as a starting point for the com- pletion of the function forwardElimLU.m, which has the following prototype: function [L,U] = forwardElimLU(A) This function implements the same algorithm as forwardElim.m and outputs the final echelon form in the variable U. Additionally, it outputs the lower-triangular matrix L as defined in Theorem 6.19
(see Lecture 6). 7 [1 / 20]Apply your forwardElimLU.m to the square matrix: A =  1 −1 2 −1 1 1 1 0 2 0 2 −2 1 −3 6 3  • Output the matrices L, U, and their product LU. 8? [1 / 20]Consider the problem Ax = b, where A is given in Question 7, and b = [−8;−2;−14; 2] (= a column vector). • Use only the matrices L and U from Question 7, the vector b, the func- tion backwardSub.m and permutation matrices to compute the solution x. I Finished! (submit your work using the procedure on page 1) MATH2019 Coursework 2 Page 4 of 5

admin

Author admin

More posts by admin