function harvest()
clear all

K=350;  % maksimalni broj jedinki
r=0.09; % prirastaj r=p(0)

 N0=100; % pocetni broj jedinki u populaciji za deo 1) i 2). Za 3) ne moze 100 jer N0<N1 !!!
% N0=175; % bice const za slucaj  H=1/4*r*K. Problem je sto to H nije realna situacija jer nije celobrojno (broj riba)
% N0=116; % Ako N0<=116 imamo istrebljenje  za H=7
% N0=117; % Ako 117<=N0<=233 raste ka asimptoti N2 (ravnotezno stanje) za H=7 
% N0=234; % Ako N0>=234 opada do asimptote N2 (ravnotezno stanje) za H=7 

% Koliko ribe ima nakon t=10 tj. t=100 godina?
tend=10;  
%tend=100;
H=2;
[t,x]=ode45(@(t,x) x*r*(1-x/K)-H,[0,tend],N0);
disp('Nakon')
t(end)
disp('godina ima ovoliko riba:')
x(end) 
figure(1)
plot(t,x)

% Ako zelimo da prekinemo ode45 u trenutku kada se dostigne x=200 pravimo Event
tend=100;
Opt = odeset('Events', @mojafunkcija); %definicija 'mojafunkcija' je na kraju fajla
[t,x]=ode45(@(t,x) x*r*(1-x/K)-H,[0,tend],N0,Opt);
disp('Nakon')
t(end)
disp('godina ima ovoliko riba:')
x(end) 

% Kriticna zetva:
disp('kriticna zetva:')
H=1/4*r*K % kriticna zetva (harvest)

disp('Istrebljenje za svako H vece ili jednako od:')
ceil(H)  %H=8

disp('Max H za koje nema istrebljenja:')
H=floor(H) % H=7 

tmax=50;
H=8; % iznad kriticne zetve
%H=7; % ispod kriticne zetve, ali N0 mora biti vece od N1 da ne bi bilo izumiranja
%H=1/4*r*K; %kriticna zetva, ali N0 mora biti K/2
f=@(t,x) x.*r.*(1-x./K)-H;
[t,x]=ode45(f,[0,tmax],N0);

figure(2)
plot(t,x)

% stacionarne tacke:
H=7;
% H=1/4*r*K;
disp('N1 i N2')
N=roots([1, -K, H*K/r])


% Polje pravaca
figure(3)
[X,Y] = meshgrid(0:20:500,0:20:300);
dy=f(X,Y);
dx=ones(size(dy));
hold on
plot(0:20:500,repmat(N(1),length(0:20:500)),'r',0:20:500,repmat(N(2),length(0:20:500)),'r') % crtamo N1 i N2

quiver(X,Y,dx,dy)
legend('stacionarna resenja N1 i N2')


% Pomocna funkcija za 'Event' u okviru ode45
function [value,isterminal,direction] = mojafunkcija(t,x)
value = x-200; % The value that we want to be zero
isterminal = 1;  % Halt integration 
direction = 0;   % The zero can be approached from either direction
