Off[General::spell1];
Clear[ABM2D,F0,a,b,X0,n];
ABM2D[F0_,a_,b_,X0_,n_] :=
Module[{f,f0,f1,f2,f3,f4,h,h2,j,k, X, T},
  Set@@{f[t_,{x_,y_}],F0};
  h = (b - a)/n //N;
  T = Table[0,{n+1}];
  X = Table[0,{n+1}];
  T[[1]] = a //N;
  X[[1]] = X0 //N;
  For[j=1, j<=3,j++,
    F1 = h f[T[[j]],X[[j]]] //N;
    F2 = h f[T[[j]]+ h/2, X[[j]] + F1/2] //N;
    F3 = h f[T[[j]] + h/2, X[[j]]+ F2/2] //N;
    F4 = h f[T[[j]] + h,X[[j]] + F3] //N;
    X[[j+1]] = X[[j]] + (F1 + 2F2 + 2F3 + F4)/6 //N;
    T[[j+1]] = a + h j //N];
  f0 = f[T[[1]],X[[1]]];
  f1 = f[T[[2]],X[[2]]];
  f2 = f[T[[3]],X[[3]]];
  f3 = f[T[[4]],X[[4]]];
  h2 = h/24;
  For[k=4,k<=n,k++,
    P = X[[k]] + h2 (-9f0 + 37f1 - 59f2 + 55f3);
    T[[k+1]] = a + h k;
    f4 = f[T[[k+1]],P];
    X[[k+1]] = X[[k]] + h2 (f1 - 5f2 + 19f3 + 9f4);
    f0 = f1;
    f1 = f2;
    f2 = f3;
    f3 = f[T[[k+1]],X[[k+1]]] ];
  sol = Transpose[{T,X}];
  Return[sol] ];
On[General::spell1];

Clear[f,f1,f2,t,x];   
f1[t_,{x_,y_}] = x+ 4 y - Exp[t];
f2[t_,{x_,y_}] = x+ y + 2 Exp[t];
f[t_,{x_,y_}] ={f1[t,{x,y}],f2[t,{x,y}]}

ABM2D[f[t,{x,y}], 0,1,{4,5/4},10]

Clear[ABM,ABMX,ABMY];
 ABM= ABM2D[f[t,{x,y}], 0,1,{4,5/4},100];   
 ABMX=Table[{ABM[[i,1]],ABM[[i,2,1]]}, {i,1,101}]; 
 ABMY=Table[{ABM[[i,1]],ABM[[i,2,2]]} ,{i,1,101}];

Clear[graph1, graph2];
 graph1=ListPlot[ABMX, PlotJoined->True,AspectRatio -> 0.5,
             DisplayFunction->Identity]; 
 graph2=ListPlot[ABMY,PlotJoined->True,AspectRatio -> 0.5,  
             DisplayFunction->Identity]; 
 Show[graph1,graph2,DisplayFunction->$DisplayFunction];

ss=DSolve[{x'[t]==x[t]+4 y[t]-Exp[t], 
           y'[t]== y[t]+x[t]+ 2 Exp[t],
           x[0]==4, y[0]== 5/4}, {x[t], y[t]},t] 
xx[t_]= x[t] /. First[ss];  
yy[t_]= y[t] /. Last[ss] ;

Error1 = Table[ABMX[[i,2]]-xx[(i-1)/100] //N, {i,1,101}];
Max[Abs[%]]

Error2= Table[ABMY[[i,2]]-yy[ (i-1)/100]//N, {i,90,101}];
Max[Abs[%]]

Clear[f,f1,f2,t,x];   
f1[t_,{x_,y_}] = y; 
f2[t_,{x_,y_}] = (-5 y -5 x)/2 ;
f[t_,{x_,y_}] ={f1[t,{x,y}],f2[t,{x,y}]}

ABM2D[f[t,{x,y}], 0,Pi,{0,1/2},10]

Clear[ABM,ABMX,ABMY];
 ABM= ABM2D[f[t,{x,y}], 0,Pi,{0,1/2},100];  
 ABMX=Table[{ABM[[i,1]],ABM[[i,2,1]]}, {i,1,101}];

Clear[graph1, graph2];
 ListPlot[ABMX, PlotJoined->True,AspectRatio ->0.25]

Clear[ss]; 
ss=DSolve[{2 x''[t] +5 x'[t]+ 5 x[t] ==0, 
           x[0]==0, x'[0]==  1/2}, x[t],t]; 
xx[t_]= x[t] /. First[ss] //ComplexExpand;  
xx[t]

Plot[xx[t], {t,0, Pi}, AspectRatio-> 0.25 ]

Error1 = Table[ABMX[[i,2]]-xx[Pi(i-1)/100] //N, {i,1,101}];
Max[Abs[%]]