Homework 7
Section 7.4: 7, 9
Section 9.2: 1b, 3a, 6a, 12, 14
Contents
Computer Assignment 7
Due Thursday, Nov 17 at 11:59pm
Part 1:
Implement the Jacobi algorithm to solve
.
INPUT: An n x n matrix A, a right-hand side b, an initial guess x0, tolerance TOL and maximum number of iterations Nmax
OUTPUT: An approximate solution x or a message of failure
STEP 1: set x = x0;
STEP 2: For k = 1,2,...,Nmax do STEPS 3-7
STEP 3: Set xold = x;
STEP 4: For i =1,2,...,n do STEPS
STEP 5: Set SUM = -sum( A(i,j)*xold(j), i ~= j) + b(i)
STEP 6: Set x(i) = SUM/A(i,i)
STEP 7: If max(abs(x-xold)) < TOL
PRINT('Solution found in %d iterations', k)
RETURN(x)
STOP.
STEP 8:
PRINT('Maximum number of iterations reached, Nmax = %d',Nmax)
RETURN(x)
STOP.Apply this algorithm to the linear system
A = [10,1,-1,3; 2, 11, 4, 0; -3, 1, 9, 4; 1, 1, 1, 10]; b = [1,-1,1,-1]';
with
TOL = 1e-12;
How many iterations are required to acheive this tolerance for the follow two initial guesses?
x0 = [0,0,0,0]'; x0 = [.18,-.22,.25,-.12];
Explain why the second initial guess gives fewer iterations.
Part 2:
Implement the Gauss-Seidel algorithm to solve
.
INPUT: An n x n matrix A, a right-hand side b, an initial guess x0, tolerance TOL and maximum number of iterations Nmax
OUTPUT: An approximate solution x or a message of failure
STEP 1: set x = x0;
STEP 2: For k = 1,2,...,Nmax do STEPS 3-7
STEP 3: Set xold = x;
STEP 4: For i =1,2,...,n do STEPS
STEP 5: Set SUM = -sum( A(i,j)*x(j), j=1,2,...,i-1) - sum( A(i,j)*xold(j), j=i+1,i+2,...,n) + b(i)
STEP 6: Set x(i) = SUM/A(i,i)
STEP 7: If max(abs(x-xold)) < TOL
PRINT('Solution found in %d iterations', k)
RETURN(x)
STOP.
STEP 8:
PRINT('Maximum number of iterations reached, Nmax = %d',Nmax)
RETURN(x)
STOP.Again, apply this algorithm to the linear system
A = [10,1,-1,3; 2, 11, 4, 0; -3, 1, 9, 4; 1, 1, 1, 10]; b = [1,-1,1,-1]';
with
TOL = 1e-12;
How many iterations are required to acheive this tolerance for the follow two initial guesses?
x0 = [0,0,0,0]'; x0 = [.18,-.22,.25,-.12]';
Compare this with Jacobi's method.
Solution
function x = Jacobi(A,b,x0,TOL,Nmax) % your function here end
function x = GS(A,b,x0,TOL,Nmax) % Your function here end