Clear["Global`*"]

x''=p(t)x'(t) +q(t) x(t) +r(t) 
x'((Subscript[t, j])) = ((x((Subscript[t, j+1]))-x((Subscript[t, j-1])))/(2h)) + O((h^2))

x''((Subscript[t, j])) = ((x((Subscript[t, j+1]))-2x((Subscript[t, j]))+x((Subscript[t, j-1])))/(h^2)) + O((h^2))

(((Subscript[x, j+1])-2(Subscript[x, j])+(Subscript[x, j-1]))/(h^2)) = (Subscript[p, j])(((Subscript[x, j+1])-(Subscript[x, j-1]))/(2h)) + (Subscript[q, j])(Subscript[x, j]) + (Subscript[r, j])

(((-h)/2)(Subscript[p, j])-1)(Subscript[x, j-1])+(2+(h^2)(Subscript[q, j]))(Subscript[x, j])+((h/2)(Subscript[p, j])-1)(Subscript[x, j+1]) = - (h^2)(Subscript[r, j])

FDgrid[n_]:=
Module[{i},
u= Table[0,{n-1},{n-1}]; 
w= Table[0,{n-1}];
(Subscript[u, [[1,1]]])=(2+(h^2)*q[a+h]);(Subscript[u, [[1,2]]])=((h/2)*p[a+h]-1);
(Subscript[u, [[n-1,n-2]]])=((h/2)*p[b-h]-1);(Subscript[u, [[n-1,n-1]]])=(2+(h^2)*q[b-h]);
(Subscript[w, [[1]]])=- (h^2)*r[a+h]+((h/2)*p[a+h]+1)*α;(Subscript[w, [[n-1]]])=- (h^2)*r[b-h]+((h/2)*p[b-h]+1)*β;
];

FDSetup[n_]:=
Module[{i,j},
For[ i=2, i≤n-2, i++,
(Subscript[w, [[i]]])=- (h^2)r[a+i*h];
For[ j=i-1, j≤i+1, j++,
If[j==i-1,
(Subscript[u, [[i,j]]]) =(((-h)/2)p[a+i*h]-1)];
If[j== i,
(Subscript[u, [[i,j]]]) =(2+(h^2)q[a+i*h])];
If[j==i+1,
(Subscript[u, [[i,j]]]) =((h/2)p[a+i*h]-1)];
;];];];

x''+(1/t) x'+(1-(1/(4(t^2))))x = (Sqrt[t]) cos(t)  over  [1,6]  with  x(1)=1.0  and  x(6)=-0.5.

a=1;b=6;α=1;β=-0.5;n=5;h = ((b - a)/n);

p[t_]=-1/t;q[t_]=-(1-1/(4t^2));r[t_]=Sqrt[t]*Cos[t];

FDgrid[n];

FDSetup[n];

u//MatrixForm;

w//MatrixForm;

sol1=LinearSolve[u,w];

sol1=Append[sol1,β];sol1=Prepend[sol1,α];

plot1=ListPlot[Table[{1+(b-a)/n *(i-1),sol1[[i]]},{i,1,n+1}],PlotStyle->Blue]

sol=DSolve[{x''[t] +1/t *x'[t] +(1-1/(4t^2)) *x[t]==Sqrt[t]*Cos[t],x[1]==1,x[6]==-0.5},x[t],t];

sol2=Table[x[t]/.sol[[1]],{t,1,6,(b-a)/n}];

plot2=ListPlot[Table[{1+(b-a)/n *(i-1),sol2[[i]]},{i,1,n+1}],PlotStyle->Red]

Show[plot1,plot2]

1D Wave Equation : (Subscript[u, tt])(x,t) = (c^2)(Subscript[u, xx])(x,t)   
		
for    0 < x < a   and   0 < t < b,  with the boundary conditions  

		({{u(0,t) = 0       ,   for  , 0≤t≤b,}, {u(a,t) = 0       ,   for  , 0≤t≤b,}, {u(x,0)   = f(x) ,   for  , 0≤x≤a,}, {(Subscript[u, t])(x,0) = g(t),   for  , 0≤x≤a.}})

(Subscript[f, xx])((Subscript[x, i]),(Subscript[t, j])) = ((f((Subscript[x, i+1]),(Subscript[t, j]))-2f((Subscript[x, i]),(Subscript[t, j]))+f((Subscript[x, i-1]),(Subscript[t, j])))/(h^2)) + O((h^2))
(Subscript[f, tt])((Subscript[x, i]),(Subscript[t, j])) = ((f((Subscript[x, i]),(Subscript[t, j-2]))-2f((Subscript[x, i]),(Subscript[t, j-1]))+f((Subscript[x, j]),(Subscript[t, j])))/(k^2)) + O((k^2))
(Subscript[f, i])=(2-2(r^2))(Subscript[f, i,j-1])+(r^2)(f((Subscript[x, i+1,j-1]))+f((Subscript[x, i-1,j-1])))-(Subscript[f, i,j-2]);r=(ck/h)

Clear["Global`*"]

FDgrid[n_,m_]:=
Module[{i},
u = Table[0,{n},{m}]; 
For[ i=1, i≤n, i++,
(Subscript[u, [[i,1]]]) = f[i]; ]; 
For[ i=2, i≤n-1, i++,
(Subscript[u, [[i,2]]]) = (1-(r^2)) f[i]+k  g[i]+((r^2)/2)(f[i+1]+f[i-1]); ]; ];

FDsolve[n_,m_]:=
Module[{i,j},
For[ j=3, j≤m, j++,
For[ i=2, i≤n-1, i++,
(Subscript[u, [[i,j]]]) = (2-2 (r^2)) (Subscript[u, [[i,j-1]]])+(r^2) ((Subscript[u, [[i+1,j-1]]])+(Subscript[u, [[i-1,j-1]]]))-(Subscript[u, [[i,j-2]]]); ]; ]; ];

({{u(0,t) = 0       ,   for  , 0≤t}, {u(π,t) = 0       ,   for  , 0≤t}, {u(x,0)   = (sin^3)(x) ,   for  , 0≤x≤π,}, {(Subscript[u, t])(x,0) = sin(2x),   for  , 0≤x≤π.}})

a = Pi;  
b =2;  
c = 1.0;
n = 4;
F[x_]= Sin[x]^3  ;
G[x_]= Sin[2x];  
h = (a/(n-1));  
m=Round[b/(0.9*h) +1];
k= (b/(m-1));  
f[i_] =F[h (i-1)];  
g[j_] =G[k(j-1)];  
r=c*k/h;

FDgrid[n,m]; 
FDsolve[n,m]; 
plot1=ListPlot3D[u,AxesLabel->{"t(j)","x(i)","u"},DataRange->{{0,2},{0,Pi}},ViewPoint->{4,2,3},ColorFunction-> Hue]

u2[x_,t_]=-(1/4)*Sin[3x]Cos[3t] +3/4 *Sin[x]Cos[t] +1/2 Sin[2x]Sin[2t];

plot2=ListPlot3D[Table[u2[i,j],{i,0,Pi,0.1},{j,0,2,0.1}],AxesLabel->{"t(j)","x(i)","u   "},DataRange->{{0,2},{0,Pi}},ViewPoint->{4,2,3},ColorFunction-> "BlueGreenYellow"]

Show[plot1,plot2,ViewPoint->{4,2,3}]