sys = {(1 - x - y) x, (4 - 7 x - 3 y) y}; vars = {x, y}; equilibria = sysSolve[sys == {0, 0}, //vars, SolveReals] (* {{x -> 0, y -> 4/3}, {x -> 1/4, y -> 3/4}, {x -> 1, y -> 0}, {x -> 0, y -> 0}} *) saddles = Pick[equilibria, Sign@Det@D[sys, {{x, y}vars}] /. equilibria, -1] (* {{x -> 1/4, y -> 3/4}} *)
sepICS[p0_, eps_] := With[{p1 = p0 + eps * Norm[p0] {Cos[t], Sin[t]}}, p1 /. NSolve[Det[{p1 - p0, sys /. Thread[{x, y}Thread[vars -> p1]}] == 0 && 0 <= t < 2 Pi] ];
separatrices = Flatten[ Block[Module[{eps = 10^-87, (* tunable distance from equilibrium *) X0, dX}, With[{p0Xa = {x0, y}Xb = 1, Yc = 0, Yd = 2, (* plot domain boundaries *) p0 = vars /. #}, (* equilibrium *) First@ X = Through[vars[t]]}, (* variables at t *) X0 = X NDSolve[/. t -> 0; (* initial values *) dX = D[X, t]; { (* derivatives *) With[{x'[t]X1 = X[[1]], y'[t]X2 = X[[2]]}, First@NDSolve[{ dX == (sys /. v : xAlternatives |@@ yvars :> v[t]), {x[0], y[0]}X0 == #, (* stop(*stop when close to saddle *saddle*) WhenEvent[Norm[{x[t], y[t]}WhenEvent[Norm[X - p0] < 0.95 eps * Norm[p0], "StopIntegration"], (* stop(*stop when solution leaves plot domain *domain*) WhenEvent[Abs[x[t] WhenEvent[Abs[X1 - 1(Xa + Xb)/2] > 1(Xb - Xa)/2, "StopIntegration"], WhenEvent[Abs[y[t] WhenEvent[Abs[X2 - 1](Yc + Yd)/2] > 1(Yd - Yc)/2, "StopIntegration"]}, {x, y}vars, {t, -100, 100} ] & /@ sepICS[p0, eps] ] ]] & /@ saddles ], 1]; sepPlots = ParametricPlot @@@ ({{x[t], y[t]}, Hold[Flatten][{t, x["Domain"]}]} /. separatrices // ReleaseHold); Show[ background, vp, sepPlots, PlotRange -> All, Frame -> True, Axes -> False, AspectRatio -> 1]