Linear Analysis about Equilibria

One can determine a great deal about the behavior of a differential equation by examining the local behavior near an equilibrium. Let us find the Taylor series expansion near the equilibrium where both x and y are nonzero.

> coeq:=xyeq[4];

coeq := {X = 6086.956528, Y = 1739.130429}

> cox := rhs(coeq[2]); coy := rhs(coeq[1]);

cox := 1739.130429

coy := 6086.956528

> taylor(f1(x,coy),x=cox);

series(-18.90359166-.5434782596e-1*(x-1739.130429)-...

> taylor(f1(cox,y),y=coy);

series(-18.9035917-.4782608680e-1*(y-6086.956528),y...

We want to compare the above computation with the one derived by computing the Jacobian matrix and evaluating at the equilibria. In addition, we find the eigenvalues and eigenvectors at all 4 equilibria.

> with(linalg):

Warning, the name adjoint has been redefined

Warning, the protected names norm and trace have been redefined and unprotected

> A := vector([f1(X,Y),f2(X,Y)]);

A := vector([.2*X*(1-1/8000*X-.1375000000e-3*Y), .1...

> J := jacobian(A, [X,Y]);

J := matrix([[.2-.5000000000e-4*X-.2750000000e-4*Y,...

Analyze the differential equation near (0, 0).

> X := 0: Y := 0: J0 := J(0,0);

J0 := matrix([[.2, -0.], [-0., .15]])

> eigenvects(J0);

[.15, 1, {vector([0, 1])}], [.2, 1, {vector([1, 0])...

This gives an unstable node , since both eigenvalues are positive.

Next analyze the coexistence equilibrium.

> X := cox: Y := coy: J0 := J(cox,coy);

J0 := matrix([[-.543478259e-1, -.4782608680e-1], [-...

> eigenvects(J0);

[-.228810610e-1, 1, {vector([.8353991635, -.5496437...

This gives a stable node , since both eigenvalues are negative.

> Plot2 := DEplot([dex,dey],[x(t),y(t)], t=0..70, x=6030..6120, y=1700..1800,[[x(0)=6030,y(0)=1700], [x(0)=6030,y(0)=1800], [x(0)=6120,y(0)=1700], [x(0)=6120,y(0)=1800]], arrows=MEDIUM, title=`Competition Model`, linecolor=t/50, color=CYAN):
Plot2;

[Maple Plot]

The plot above shows the local behavior near the coexistence equilibrium.

Below is the equilibrium, where only species X exists.

> X := 8000: Y := 0: J0 := J(8000,0);

J0 := matrix([[-.2000000000, -.2200000000], [-0., ....

> eigenvects(J0);

[-.2000000000, 1, {vector([1, 0])}], [.100000000e-1...

This gives a saddle node , since the eigenvalues consists of a positive and negative eigenvalue.

Finally, we examine the Y species only equilibrium.

> X := 0: Y := 6000: J0 := J(0,6000);

J0 := matrix([[.350000000e-1, -0.], [-.1050000000, ...

> eigenvects(J0);

[.350000000e-1, 1, {vector([1, -.5675675676])}], [-...

This gives a saddle node , since the eigenvalues consists of a positive and negative eigenvalue.

> Plot3 := DEplot([dex,dey],[x(t),y(t)], t=0..100, x=-100..100, y=5900..6100,[[x(0)=-10,y(0)=5900], [x(0)=-10,y(0)=6100], [x(0)=10,y(0)=5900], [x(0)=10,y(0)=6100]], arrows=MEDIUM, title=`Competition Model`, linecolor=t/50, color=CYAN):
Plot3;

[Maple Plot]