% Tehtävä 3.
% Tutkitaan hieman systeemin tasapainopisteitä ja niiden ympäristöjä.
function y = teht3()

opts = odeset('outputfcn', @odephas2);
pituus = 10;

ode45(@f, [0,pituus], [1,0], opts);
axis([-4,4,-4,4])
hold on

% tasapainopisteet (0,0), (0, 1), (-1, 2), (2, 2)
% savustetaan ne näkyville.
ode45(@f, [0,pituus], [.2, .2], opts);
ode45(@f, [0,pituus], [0, .2], opts);

% nyt jo nähdään, että (0,0) hylkii ja (2,2) vetää puoleensa.

ode45(@f, [0,pituus], [0, 1.1], opts);
ode45(@f, [0,pituus], [0, 0.9], opts);
ode45(@f, [0,pituus], [0.1, 1], opts);

% (0,1):n läheltä alkavat ratkaisut karkaavat nopeasti poispäin.

ode45(@f, [0,pituus], [-1.1, 2], opts);
ode45(@f, [0,pituus], [-1.1, 2], opts); % x_1 >= 2  --> etenee kohti (2,2):sta
ode45(@f, [0,pituus], [-1, 1.95], opts);
ode45(@f, [0,pituus], [-1, 2.1], opts);
ode45(@f, [0,pituus], [-1, 2.3], opts);

% samoiten (-1,2):n pisteet, joista osa lähtee kohti (2,2):sta


hold off
y = 0;


% Tarkasteltava systeemi
function ys = f(t,x)
ys = zeros(2,1);
ys(1) = (x(1) - x(2)) * (1 - x(1) - x(2));
ys(2) = x(1) * (2 - x(2));