My Modifications

There are two ideas here.

The first is the original plan:  see what the statistics of the sensitivitty look like.  The theorems in the book are worst case.  So average case and distribution are of interest.  This could be analytical and/or numerical.  Numerical is easy and I have guesses for the analytics at least for sym and/or maybe normal etc.

The second is the "strange" pattern in the sensitivity in individual elements in the matrices that Sam found!

Introduction

This article originated as a final project for a numercial linear algebra project to investigate the sensitivity of the system of linear equation 	A.(Subscript[x, 0])=b
to perturbations in A and b.  The relative sensitivity to perturbations in b is given by analyzing the behavior of the ratio
	((||(Subscript[x, ϵ])-(Subscript[x, 0])||)/(||(Subscript[x, 0])||))/((||b-(b+ϵ Δb)||)/(||b||))=((||Δx|||)/(||(Subscript[x, 0])||))/((||Δb||)/(||b||))
where (Subscript[x, ϵ])=(Subscript[x, 0])+ϵ Δx solves A (Subscript[x, ϵ])=b+ϵ Δb for perturbations Δb and small values of ϵ.  The relative sensitivity to perturbations in A is given by analyzing the behavior of the ratio
	((||(Subscript[x, ϵ])-(Subscript[x, 0])||)/(||(Subscript[x, 0])||))/((||A-(A+ϵ Δb)||)/(||A||))=((||Δx|||)/(||(Subscript[x, 0])||))/((||ΔA||)/(||A||))
where (Subscript[x, ϵ])=(Subscript[x, 0])+ϵ Δx  solves (A+ϵ ΔA) (Subscript[x, ϵ])=b for perturbations ΔA in some class and small values of ϵ.

Standard theorems e.g Thm 2.1.2 and Thm 2.?.? from Trefethen provide upper bounds on these sensitivities in terms of the condition number of the matrix A.

For many matrices A and right had sides b these upper bounds are extremely pessimistic with most data perturbations in A and b causing much smaller perturbations in x than the worst possible cases described by the worst case scenarios described by the theorems. theorems will cause much smaller This paper addresses the issue of the distribution of these sensitivities for different perturbations.  The behavior is examined for randomly generated matrices.  The results are explained using the Singular Value Decomposition (SVD) and information about the eigenstructure of random matrices.  The results are verified for a number of real matrices from the test suites at the National Institute of Standards and Technology web site Matrix Marketplace. [ref].

Random Matrices

Perturbation with respect to A

The SVD decompositon on A∈(ℝ^(n×n)) is the product
	A=U Σ (V^T)
with U, Σ, V n×n matrices where U and V are orthogonal and Σ is diagonal  with (Subscript[Σ, 1,1])≥(Subscript[Σ, 2,2])≥…≥(Subscript[Σ, 1,1])≥0.    The SVD is essentially unique.

Subsituting the appropriate expressions into ?? gives
	(A+ϵ ΔA)((Subscript[x, 0])+ϵ Δx) = b
gives 
	(A (Subscript[x, 0])-b)+ϵ (ΔA (Subscript[x, 0])+ A Δx) +(ϵ^2)(ΔA (Subscript[Δx, 0]))=0
which gives
	(Subscript[x, 0])=(A^(-1))b
and 
	Δx=-(A^(-1))ΔA (Subscript[x, 0])=-(A^(-1))ΔA (A^(-1))b.
Rewriting this in terms of the singular value decomposition gives
	Δx=-(((U Σ (V^T)))^(-1))ΔA (((U Σ (V^T)))^(-1))b=-(V ((Σ )^(-1))(U^T))ΔA  (V (Σ^(-1)) (U^T))b
changing coordinates in both the input and output spaces 
	Δa=U ΔA (V^T)
gives
	Δx=-V (((Σ )^(-1))Δa (Σ^(-1))) (U^T)b
which is relatively easily interpreted.

Clear[A]
Σ=DiagonalMatrix[ {d11,d22,d33}]
MatrixForm[
Σ.Array[A,{3,3}].Σ
]

Writing In essence, thi sensitivity analysis provides a level of etail fo the dependence of the solution to the input data. 
The project revealed some interesting behavior which can be explained using the singular value decomposition and information about the eigen values distributions of random matrices.

Perturbing A in A.x=b

First I am just going to fixup Sam's code and make sure I understand what it is doing.

Allan12Thm2[A_,b_,x_,ϵ_,SampleSize_] := Module[
{m=Length[b],Ae},
Sort[
Table[
Ae=RandomReal[{-1,1},{m,m}];
Ae=A+ (ϵ/(Norm[Ae])) Ae;
((Norm[LinearSolve[Ae,b]-x])/ϵ),
{SampleSize}
]
]
]

m=45;
A=RandomReal[Normal[{0,1}],{m,m}];
A=A;(*+Transpose[A]; *)
b=RandomReal[{-1,1},{m}];

SVs=SingularValueList[A];

Clear[Data]
SampleSize=(10^4);
Data[ϵ_]:=Data[ϵ]=Allan12Thm2[A,b,LinearSolve[A,b],ϵ Norm[A],SampleSize];
ListLogPlot[SVs,PlotRange->All]
ϵVal=(10.0^(-6));
{
ListLogPlot[Data[ϵVal],
PlotRange->All,
GridLines->Automatic,
Frame->True],
Histogram[Data[ϵVal],"Log","ProbabilityDensity"]
}

BigData=Table[
m=45;
A=RandomReal[Normal[{0,1}],{m,m}];
A=A;(*+Transpose[A]; *)
b=RandomReal[{-1,1},{m}];

SVs=SingularValueList[A];

Clear[Data]
SampleSize=(10^3);
Data[ϵ_]:=Data[ϵ]=Allan12Thm2[A,b,LinearSolve[A,b],ϵ Norm[A],SampleSize];
cond=((SVs[[1]])/(SVs[[-1]]));
ϵVal=(10.0^(-6));
{100*Max[Data[ϵVal]]/cond,100Mean[Data[ϵVal]]/cond},
{50}
]

Mean[Data[ϵVal]]

?Modal

ListLogLogPlot[BigData,
PlotRange->All,
Frame->True,
GridLines->Automatic]

ListPlot[Log[BigData]]
Fit[Log[BigData],{1,t},t]

1/E^-0.9469

TBigData=Transpose[Sort[BigData]];
ListLogPlot[ TBigData,
PlotRange->All]

TBigData=Map[Sort,Transpose[BigData]];
ListLogPlot[ TBigData,
PlotRange->All]

Log[(1/2) ((SVs[[1]])/(SVs[[-1]]))]

SAM's Stuff

random errors in A

Erx3[A_,b_]:=Module[
{j,V,x,err,Ae,e,xe,erx,p,s,k,messA,ka,m,t,erA},
m=Length[A];
j=Table[0,{500}];
x=LinearSolve[A,b];
Do[
messA=RandomReal[{-1,1},{m, m}];
err=Table[
(*Ae=A which has errors introduced*)
Ae=A+e*messA;
xe=LinearSolve[Ae,b];
(*relative error in x*)
erx=Norm[x-xe]/Norm[x];
(*relative error in A*)
erA=Norm[A-Ae]/Norm[A];
{erA,erx},
{e,0.0001,0.001,0.0001}
];
p=Fit[err,{1,t},t];

s=SingularValueList[A];
(*matrix condition number*)
ka=s[[1]]/s[[m]];
(*find slope of lines, save them in list j*)
k=D[p,t];

j[[i]]=k,
{i,1,500}
];

{j,ka}
]

Examples, histograms, plots

m=3;
A=RandomReal[{-2,2},{m,m}];
b=RandomReal[{-2,2},{m}];

{j,ka}=Erx3[A,b];
ListPlot[j]

ka
Histogram[j,30]

b2=RandomReal[{-2,2},{m}];
{j2,ka}=Erx3[A,b2];
ListPlot[j2]
Histogram[j2,30]

Histogram[{j,j2},30]

A2=RandomReal[{-2,2},{m,m}];
{j3,ka}=Erx3[A2,b];
ka
ListPlot[j3]

Histogram[j3]

A3=RandomReal[{-2,2},{m,m}];
{j4,ka}=Erx3[A3,b];
ka
ListPlot[j4]

high condition number matrices

?Erx3

{U,V}=QRDecomposition[RandomReal[{-1,1},{m,m}]];
SValues={100,30,0.1};
S=DiagonalMatrix[SValues];
A=U.S.V;
SingularValueList[A]

?QRDecomposition

?SingularValueDecomposition

{U,W,V}=SingularValueDecomposition[RandomReal[{-1,1},{m,m}]];
SValues={100,30,0.1};
S=DiagonalMatrix[SValues];
A=U.S.Transpose[V];
SingularValueList[A]

{j4,ka}=Erx3[A,b];
ka
ListPlot[j4,
Epilog->Line[{{0,ka},{500,ka}}]
]

{U,V}=QRDecomposition[RandomReal[{-1,1},{m,m}]];
SValues={100,30,0.1};
S=DiagonalMatrix[SValues];
A=U.S.V;


{j4,ka}=Erx3[A,b];
ka
ListPlot[j4]