%Differential Equation: dy/dx=y-(1/2)*exp(x/2).*sin(5*x)+5*exp(x/2).*cos(5*x); y(0)=0;
f=@(x,y) y-(1/2)*exp(x/2).*sin(5*x)+5*exp(x/2).*cos(5*x);
f1=@(x,y) exp(x/2).*sin(5*x);   %Analytic Solution
xinit=0; yinit=0;           %y(xinit)=yinit {y(0)=0}

xmax=5;
x=xinit:0.1:xmax;
h=x(2)-x(1);
m=length(x);
y=zeros(1,m);
y(1)=yinit;

for n=1:m-1
    k1=h*f(x(n),y(n));
    k2=h*f(x(n)+h/2,y(n)+k1/2);
    k3=h*f(x(n)+h/2,y(n)+k2/2);
    k4=h*f(x(n)+h,y(n)+k3);
    y(n+1)=y(n)+(1/6)*(k1+2*k2+2*k3+k4);
end;

yy=exp(x/2).*sin(5*x);          %Analytic Solution
hold on;
plot(x,y,'ro--','LineWidth',1.5);
plot(x,yy,'b-','LineWidth',2.5);
title('4th Order RK Method','fontsize',14,'fontweight','bold');

grid on;
lh=legend('4th Order RK Method','Analytic','Location','NorthWest');
%set(lh,'color',[0 0.9 1]);

hold off;