MATLAB: How to get all functions in this code on one figure? It is only displaying the plot from the first function.

eulerfunctions

function question1
y=1;
h=.02;
t=0
tic
for i=1:2500
hold on
t(i+1)=t(i)+h;
y(i+1)=y(i)+h*f(t(i),y(i))
plot(t,y,'r--')
xlabel('t'); ylabel('y')
title('Eulers Method for function question1')
end
function actual=g(t,y)
actual=((5*ones*exp(-(2*t)))-(3*ones*exp(-(4*t))))/2;
figure(2)
hold all
plot(t,y);
function question1=f(t,y)
question1=(3*ones*exp(-(4*t)))-2*y;
function error=h(t,error)
error=abs(actual-question1)/actual;
figure(3)
plot(t,error,':')
xlabel('t') % Labels ??x?? axis
ylabel('Error') % Labels ??y?? axis
title('Error using Euler Method');

Best Answer

When you used
h=.02;
you "overshadowed" the meaning of h as a function, so your h function will never be called.
You have no call to your "g" function.
Caution: you start your "g" function with "hold all" after the figure(2). When you have a hold all before you have plotted anything, the default axes limits of [0 1] are frozen and nothing outside of that limit will be plotted. You should not use "hold all" or "hold on" unless you are certain you have plotted something up to the maximum range already, or unless you have set the axes limits manually using xlim() / ylim() or set() of the axes XLim and YLim properties.