MATLAB: Taylor’s method of order 2 programming

MATLAB

So I am writing a program to solve an IVP problem, I'm trying to write it with not using the function script because I want to plot the error later.
This is my coding:
clear;
h=0.1; t=1:h:2; n=length(t);
%initial condition y=zeros(n,1); y(1)=-0.5;
for i = 1:n-1 y(i+1)=y(i)+h*RHS(t(i),y(i))+(h.^2/2)*RHS3(t(i),y(i)); end
truesol= (sqrt(3)/(2*t))*tan((sqrt(3)/2)*log(t))-1/2*t;
plot(t,y,'.',t,truesol,'*')
[t' y truesol']
And I wrote my RHS(which is my original function) and RHS3(which is my df/dt) separately:
function result = RHS(t,y)
result= y.^2+(1/(t.^2));
end
and
function result= RHS3(t,y)
result = 2*y.^3+((2*y)/(t.^2))-(2/(t.^3));
end
Everything seems to be okay, I even tried a simple "true solution" and it works. It only doesn't work when I tried the correct true solution, which is
truesol= (sqrt(3)/(2*t))*tan((sqrt(3)/2)*log(t))-1/2*t;
it gives me an error of "??? Error using ==> mldivide Matrix dimensions must agree."
Thanks for any input.

Best Answer

See if vectorising this line (replacing (/) with (./) and (*) with (.*)) solves the problem:
truesol= (sqrt(3)./(2*t)).*tan((sqrt(3)/2)*log(t))-1/2*t;
Consider vectorising other lines in your code as well. See Array vs. Matrix Operations for details.