Richardson[n_]:=Table[(h/2^i)^j,{i,0,n-1},{j,0,n-1}];
RichardsonErrors[n_]:=Table[(h/2^i)^n,{i,0,n-1}];

RichardsonWeights=Transpose[Richardson[3]]
SchemeSolve=LinearSolve[RichardsonWeights];
Ans=SchemeSolve[{1, 0,0}]
Errors=RichardsonErrors[3]
Ans.Errors

RichardsonWeights=Transpose[Richardson[4]]
SchemeSolve=LinearSolve[RichardsonWeights];
Ans=SchemeSolve[{1, 0,0,0}]
Errors=RichardsonErrors[4]
Ans.Errors

RichardsonWeights=Transpose[Richardson[4]]
SchemeSolve=LinearSolve[RichardsonWeights];
Ans=SchemeSolve[{0, 1,0,0}]
Errors=RichardsonErrors[4]
Ans.Errors

Forward difference, three-point formula (see p. 171, formula 4.4):

RichardsonWeights={{1,1,1},{0,(h/2),h},{0,((h^2)/8),((h^2)/2)}}
SchemeSolve=LinearSolve[RichardsonWeights];
Ans=SchemeSolve[{0,1, 0}]
Errors={0,h^3/48,h^3/6}
Simplify[Ans.Errors]

#1a, p. 184: Centered-difference: slight change! Better accuracy....

RichardsonSquare[n_]:=Table[(h/2^i)^(2j),{i,0,n-1},{j,0,n-1}];
RichardsonSquareWeights=Transpose[RichardsonSquare[3]]
SchemeSolve=LinearSolve[RichardsonSquareWeights];
Ans=SchemeSolve[{1, 0,0}]
FD[x_,h_]:=(f[x+h]-f[x-h])/(2h);

f[x_]:=Log[x]

FirstRow=Table[FD[1,.4/2^i],{i,0,2}]
Ans.FirstRow

RichardsonSquareWeights=Transpose[RichardsonSquare[4]]
SchemeSolve=LinearSolve[RichardsonSquareWeights];
Ans=SchemeSolve[{1, 0,0,0}]
FirstRow=Table[FD[1,.4/2^i],{i,0,3}]
Ans.FirstRow