clear all q=[0.78 -0.02 -.12 -.14 0 .86 -.04 0.06 0 0 .72 -.08 0 0 0 .74]; d=diag(q); q=q+q'-diag(d); %%% to change the condition number %q=q^10; %q=2*q/norm(q,inf); %%% end to change the condition number b=[.76 .08 1.12 .68]'; xc=zeros(4,1); gc=q*xc-b; f=.5*xc'*q*xc-b'*xc; plot(norm(xc),f,'bx') hold on iter=0; while norm(gc) > 1e-8, iter=iter+1; alpha=(gc'*gc)/(gc'*q*gc); xc=xc-alpha*gc; gc=q*xc-b; flast=.5*xc'*q*xc-b'*xc; f=[f flast]; plot(norm(xc),flast,'bx') end hold off