%The question we are asking here:  Are "errors" in solving Ax=b
%  a matter of the method we are using, or is it a property of the
%  matrix itself?

%Below is a matrix A, and a vector b.  Also given, another
%  vector estb obtained by rounding off b.

A=[93.477 10.202 -28.832;1.963 32.816 62.414; 26.821 36.816 57.234];
b=[34.7177; 70.9241; 82.9271];
estb=[34.7;70.9; 82.9];
%Method 1:  Compute $A^{-1}b and compare to A^{-1}estb
x1=inv(A)*b
x2=inv(A)*estb
x1 =

    0.5000
    0.8000
    0.7000


x2 =

   -1.6829
    8.9228
   -3.5025

%Relative errors:
db=norm(b-estb)/norm(b)
dx=norm(x1-x2)/norm(x1)
db =

   3.5241e-04


dx =

    8.0039

%Is the large change in x associated with errors in computing A^{-1}?
%Matlab's backslash operator uses a different technique:
xx1=A\b
xx2=A\estb
xx1 =

    0.5000
    0.8000
    0.7000


xx2 =

   -1.6829
    8.9228
   -3.5025

%But we get the same answer as before-  The large change in x
%  is NOT due to numerical errors, but is a property of the matrix
%  itself.
%
% Is it because A could be "close to singular"?  Check the determinant:
det(A)
ans =

   -1.9170

%Nope- the determinant looks good.  Now check the condition number:
kappa=cond(A)

%That is the problem.  Using our rule of thumb, we should have expected to
%lose 5 significant digits (and those were all the digits we had!)
kappa =

   5.2164e+05