%Täpne lahend (leitud analüütiliselt)
lahend=2*exp(3)-1

%Lahendame sama ülesande ka ligikaudu. Meil
f=@(x,y)y+1; %DV parem pool
x0=0; %algtingimuse x
xn=3; %koht, kus tahame y väärtust leida
%Võrgu jaoks valime ise n väärtuse
n=1000; %NB! OLULINE SUURUS!
h=(xn-x0)/n; %samm, mille võrra x väärtused erinevad
%Moodustame 2 vektorit x ja y, mille esimesed elemendid defineerime
%ise algtingimuse põhjal
x(1)=0;
y(1)=1;

%Euleri meetod
for i=1:n
    y(i+1)=y(i)+h*f(x(i),y(i));
    x(i+1)=x(i)+h;
end
lahendEuler=y(i+1)
vigaEuler=lahend-lahendEuler
plot(x,y)
hold on

%Prognoosi-korrektsiooni meetod
for i=1:n
    x(i+1)=x(i)+h;
    y(i+1)=y(i)+h/2*f(x(i),y(i))+h/2*f(x(i+1),y(i)+h*f(x(i),y(i)));
end
lahendPK=y(i+1)
vigaPG=lahend-lahendPK
plot(x,y,'r')
hold off
legend('Euleri meetod','Prog.-kor. meetod')