Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Consider matrix A that has -2 for each diagonal entry, 1\'s on each of the 1st u

ID: 2324648 • Letter: C

Question

Consider matrix A that has -2 for each diagonal entry, 1's on each of the
1st upper and lower diagonals, and the rest of the matrix is all 0's. Such a matrix
is encountered in numerically solving differential equations. It is considered to be
sparse because is consists of mostly 0's.
Let b be a vector of all ones. For n=10, 100, 1000, 2000, 4000, 8000:

a) Create the matrix A by rst creating a matrix of all 0's, then putting in the
-2's on the main diagonal and 1's on the 1st upper and lower diagonals. Solve
Ax = b using backslash, and time it using `tic' and `toc'. Hint: Using the `diag'
command can help here.
b) Repeat the process, but using the sparse matrix format for A. You can do
this inefficiently using the `sparse' command to turn your matrices from part
a) into sparse format. A much better way to do this is to create the matrix
using the `spdiags' command. The syntax to do this can be found in the help
documentation of `spdiags' (type help spdiags" on the command line). Is there a
timing difference between solving sparse and full matrices using backslash? How
much?

PLEASE SHOW ALL MATLAB CODE FOR PART B

Explanation / Answer

n = [10000];

% Normal method (a)   

A = zeros(n);
c1 = -2*ones(n,1);
c2 = ones(n-1,1);
c3 = ones(n-1,1);
d1 = diag(c1);
d2 = diag(c2,-1);
d3 = diag(c3,1);
A = A + d1 + d2 + d3;
b = ones(n,1);
tic;A;toc

% Sparse matrix method with spdiag (b)

m = ones(n,1)*[1 -2 1];
A1 = spdiags(m,[-1 0 1],n,n);
tic; A1;toc

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote