Stabilita kritických bodov lineárnych 
sústav obyčajných diferenciálnych rovníc (SODR)

V tejto kapitole využijeme systém Mathematica k štúdiu stability kritických bodov dvoch lineárnych rovníc SODR.
	Ak je SODR lineárny a homogénny X' = AX  s konštantnými koeficientmi a matica A nie je singulárna, potom jediným kritickým bodom je začiatok a jeho stabilitu môžeme preskúmať pomocou vlastných čísel matice A.

Príklad 1.

Porovnajte nasledujúci SODR, overte ich rozdielne správanie pomocou analýzy stability v kritickom bode:
a) x' = 3x-y, y' = 2x + y.
b) x' = x +5y, y' = -x - y. 
c) x' = x -5y, y' = -x - y.

Riešenie

Poznámka: Tieto tri sústavy sú autonómne, lineárne s konštantnými koeficientmi a s jediným kritickým bodom v začiatku súradnicovej sústavy. 
Niektoré trajektórie je možné reprezentovať pomocou fázových rovín.

Sekcia a.

SODR môžeme riešiť v Mathematice pomocou príkazu DSolve

sis31a={x'[t]==3x[t]-y[t],y'[t]==2x[t]+y[t]}

solgen31a=DSolve[sis31a,{x[t],y[t]},t]

Riešenia x(t) a y(t) sú definované:

x[t_]=solgen31a[[1,1,2]]

y[t_]=solgen31a[[1,2,2]]

Pre niektoré hodnoty konštánt môžeme konkrétne riešenia vygenerovať pomocou príkazu Table

solpar31a=Table[{x[t],y[t]} /. {C[1]->i,C[2]->j},{i,-6,6,4},{j,-6,6,4}]

Ak v predchádzajúcej tabuľke odstránime jednu úroveň pomocou príkazu Flatten, vytvoríme tak zoznam funkcií, ktorý je možné reprezentovať graficky.

solpar31abis=Flatten[solpar31a,1]

graf131a=ParametricPlot[Evaluate[solpar31abis],{t,-2,0.5`},PlotStyle->{{RGBColor[1,0,0],Thickness[0.008`]}}]

V nasledujúcom obrázku sme spoločne reprezentovali riešenie a smerové polia riešenia SODR.

graf231a=(Needs["VectorFieldPlots`"];VectorFieldPlots`VectorFieldPlot[{3 x-y,2 x+y},{x,-15,15},{y,-20,20},PlotPoints->50,DisplayFunction->Identity,BaseStyle->{GrayLevel[0.2`]}]);

Show[graf131a,graf231a]

Trajektórie sa vzďaľujú od začiatku súradnicovej sústavy (zatáčajú sa do tvaru špirály), ak zväčšujeme t, a opačne sú blízko k začiatku súradnicovej sústavy, ak je t menšie ako 0. Toto správanie sa dá vysvetliť po podrobnejšom preskúmaní matice koeficientov SODR.

Matica asociovaná so sústavou je definovaná:

a=(({{3, -1}, {2, 1}}))

Jej vlastné čísla nájdeme takto:

Eigenvalues[a]

Začiatok je nestabilný pól špirály, pretože vlastné čísla sú komplexne združené a majú kladnú reálnu časť.

Sekcia b.

Najskôr vyčistíme obsah premenných a definujeme nový SODR

Clear[x,y]

sis31b={x'[t]==x[t]+5y[t],y'[t]==-x[t]-y[t]}

Túto sústavu môžeme vyriešiť pomocou príkazu DSolve:

solgen31b=DSolve[sis31b,{x[t],y[t]},t]

Definujeme riešenie x(t) a y(t):

x[t_]=solgen31b[[1,1,2]]

y[t_]=solgen31b[[1,2,2]]

Riešenia pre konkrétne hodnoty konštánt (Subscript[c, 1]) a (Subscript[c, 2]) vygenerujeme pomocou príkazu Table:

solpar31b=Table[{x[t],y[t]} /. {C[1]->i,C[2]->j},{i,2,8,3},{j,2,8,3}]

Štruktúru predchádzajúcej tabuľky upravíme pomocou príkazu Flatten, aby sme vytvorili zoznam funkcií, ktorý môžeme reprezentovať graficky.

solpar31bbis=Flatten[solpar31b,1]

graf131b=ParametricPlot[Evaluate[solpar31bbis],{t,0,2 π},PlotStyle->{{RGBColor[1,0,0],Thickness[0.008`]}}]

V nasledujúcom obrázku sme spoločne reprezentovali riešenie a smerové polia riešenia SODR.

graf231b=(Needs["VectorFieldPlots`"];VectorFieldPlots`VectorFieldPlot[{x+5 y,-x-y},{x,-25,25},{y,-12,12},PlotPoints->20,DisplayFunction->Identity,BaseStyle->{GrayLevel[0.2`]}]);

Show[graf131b,graf231b]

Trajektórie sú uzatvorené krivky, v tomto prípade elipsy so stredom v začiatku súradnicovej sústavy. Toto správanie môžeme znovu opísať pomocou vlastných čísel matice koeficientov.

Matica zodpovedajúca našej sústave je definovaná:

a=(({{1, 5}, {-1, -1}}))

jej vlastné čísla nájdeme pomocou príkazu:

Eigenvalues[a]

Začiatok súradnicovej sústavy je stabilným stredom, pretože vlastné čísla sú rýdzo imaginárne.

Sekcia c.

Najskôr vyčistíme obsah premenných a definujeme nový SODR

Clear[x,y]

sis31c={x'[t]==x[t]-5y[t],y'[t]==-x[t]-y[t]}

Vyriešime túto sústavu

solgen31c=DSolve[sis31c,{x[t],y[t]},t]

Riešenia x(t) a y(t) sú definované:

x[t_]=solgen31c[[1,1,2]]

y[t_]=solgen31c[[1,2,2]]

Riešenia pre konkrétne hodnoty konštánt (Subscript[c, 1]) a (Subscript[c, 2]) vygenerujeme pomocou príkazu Table:

solpar31c=Simplify[Table[{x[t],y[t]} /. {C[1]->i,C[2]->j},{i,1,5,2},{j,1,5,2}]]

Štruktúru predchádzajúcej tabuľky upravíme pomocou príkazu Flatten, aby sme vytvorili zoznam funkcií, ktorý môžeme reprezentovať graficky.

solpar31cbis=Flatten[solpar31c,1]

graf131c=ParametricPlot[Evaluate[solpar31cbis],{t,-0.5`,1},PlotStyle->{{RGBColor[1,0,0],Thickness[0.008`]}}]

V nasledujúcom obrázku sme spoločne reprezentovali riešenie a smerové polia riešenia SODR.

graf231c=(Needs["VectorFieldPlots`"];VectorFieldPlots`VectorFieldPlot[{x-5 y,-x-y},{x,-50,28},{y,-10,15},PlotPoints->20,DisplayFunction->Identity,BaseStyle->{GrayLevel[0.2`]}]);

Show[graf131c,graf231c]

Vypočítame vlastné čísla matice zodpovedajúce našej sústave, aby sme mohli vysvetliť povahu kritického bodu.

Matica zodpovedajúca SODR je:

a=(({{1, -5}, {-1, -1}}))

Vypočítame vlastné čísla:

Eigenvalues[a]

Začiatok súradnicovej sústavy je sedlový bod, pretože vlastné čísla sú reálne a majú opačné znamienka.

Vypočítame vlastné vektory, ktorými sú reprezentované priamky v zodpovedajúcich smeroch.

Eigenvectors[a]

Priamka vlastného vektora, ktorý zodpovedá zápornému vlastnému číslu je

graf331c=ParametricPlot[{(-1-(Sqrt[6])) t,t},{t,-8,15},PlotStyle->{RGBColor[0,0,1],Thickness[0.01`]}]

Priamka vlastného vektora, ktorý zodpovedá kladnému vlastnému číslu je

graf431c=ParametricPlot[{(-1+(Sqrt[6])) t,t},{t,-8,15},PlotStyle->{RGBColor[0,0,1],Thickness[0.01`]}]

a oba grafy spolu:

Show[graf131c,graf231c,graf331c,graf431c]

Môžeme povedať, že akákoľvek trajektória začínajúca v bode na priamke, ktorá zodpovedá zápornému vlastnému číslu, zostává nad ňou a blíži sa k začiatku súradnicovej sústavy. Každá trajektória začínajúca v bode na priamke, ktorá zodpovedá kladnému vlastnému číslu, zostáva pod touto priamkou a tiež sa blíži k začiatku súradnicovej sústavy.