clear
%Täpne lahend
y_oige=2*exp(3)-1

%Lahendame ligikaudsete meetoditega
%Defineerime funktsiooni f(x,y)
f=@(x,y)y+1;
x0=0; %algtingimusega antud x
y0=1; %algtingimusega antud y
xn=3; %see x, mille korral tahame leida y väärtust
n=10; %osalõikude arv
h=(xn-x0)/n; %sammu pikkus, mille võrra x väärtused erinevad
%1) Euleri meetod
%defineerime 2 vektori esimesed elemendid
x(1)=0; %algtingimuse x väärtus on vektori x esimene element
y(1)=1; %algtingimuse y väärtus on vektori y esimene element
for i=2:n+1
    x(i)=x(i-1)+h;
    y(i)=y(i-1)+h*f(x(i-1),y(i-1)); %Euleri meetod
end
y_Euler=y(n+1)
viga_Euler=y_oige-y(n+1)

%2)prognoosi-korrektsiooni meetod
for i=2:n+1
    y(i)=y(i-1)+h/2*f(x(i-1),y(i-1))+h/2*f(x(i),y(i-1)+h*f(x(i-1),y(i-1)));
end
y_progkor=y(n+1)
viga_progkor=y_oige-y(n+1)