function []=hw5_2_1() % Jacobi and Gauss-Seidel iterative methods % set up A and b A=diag(-4*ones(10,1))+diag(2*ones(9,1),-1)+diag(2*ones(9,1),1); b=[2:11]'; % Jacobi xold=zeros(10,1); xnew=zeros(10,1); tol=1; iter=0; while (tol>0.000005) for i=1:10 % indeces to use in the ith eq of Jacobi ind=[[1:i-1],[i+1:10]]; xnew(i)=(b(i)-A(i,ind)*xold(ind))/A(i,i); end tol=norm(xnew-xold); iter=iter+1; xold=xnew; end fprintf('Jacobi took %3.0d iterations and resulted in:\n',iter) disp(xnew) % Gauss-Seidel xold=zeros(10,1); xnew=zeros(10,1); tol=1; iter=0; while (tol>0.000005) for i=1:10 % indeces to use for x-values already computed - stored in xnew ind1=[1:i-1]; % indeces to use for x-values from the previous iterate - stored in xold ind2=[i+1:10]; xnew(i)=(b(i)-A(i,ind1)*xnew(ind1)-A(i,ind2)*xold(ind2))/A(i,i); end tol=norm(xnew-xold); iter=iter+1; xold=xnew; end fprintf('Gauss-Seidel took %3.0d iterations and resulted in:\n',iter) disp(xnew)