% Harjutustund 17, ylesanne 1
% 1) lahendame dif. võrrandi täpselt
syms yy(x);
vorrand=diff(yy,x)==yy+1;
lahend=dsolve(vorrand)
% leiame erilahendi, algtingimus y(0)=1
erilahend=dsolve(vorrand,yy(0)==1)
% esitame graafikul t2pse joone, y=2*e^x-1
ftapne=matlabFunction(erilahend) % symboolsest funktsioonist tavaparasele f/nile
fplot(ftapne,[0,4])
% leiame dif. vorrandi lahendi, kui x=3
tapnelahend=ftapne(3)

% a) lahendame Euleri meetodiga
n=30; % osaloikude arv
x0=0; 
xn=3;
h=(xn-x0)/n; % sammu pikkus
% y'=f(x,y) .... defineerime selle funktsiooni
f=@(x,y) y+1;
x(1)=0;
y(1)=1; % algtingimus
for i=2:n+1
  x(i)=x(i-1)+h;
  y(i)=y(i-1)+h*f(x(i-1),y(i-1));
end
x
y
yeuler=y(n+1)

% esitame Euleri meetodiga saadud joone joonisele
hold on
plot(x,y,'o-')

% b) lahendame prognoosi-korrelatsioonimeetodiga
for i=2:n+1
  x(i)=x(i-1)+h;
  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
x
y
yprognoos=y(n+1)

% esitame prognoosi-korrelatsioonimeetodiga saadud joone joonisel
plot(x,y,'*-')

[yeuler yprognoos tapnelahend]

[x,y]=ode45(f,[0,3],1)