#set document(title: "8.2 Stability and Classification of Isolated Critical Points", author: "Jiří Lebl") #set page(width: 8.5in, height: auto, margin: 1in) #import "@preview/cetz:0.5.2" #set text(font: ("STIX Two Text", "Libertinus Serif", "New Computer Modern"), size: 10.5pt, lang: "en") #show math.equation: set text(font: ("STIX Two Math", "New Computer Modern Math")) #set par(justify: true, leading: 0.62em, spacing: 0.9em) #set enum(spacing: 1.1em) // room between list items so tall inline fractions don't collide #set list(spacing: 1.1em) #set table(stroke: 0.5pt + rgb("#c7ccd3")) #let BLUE = rgb("#183B6F") // brand navy — section bars + example/solution labels (white on navy 11.09:1) #let ORANGE = rgb("#A94509") // brand primary-700 — AA-safe deep orange for TEXT (5.93:1 on white; raw brand #F37021 is 2.94:1 and must never carry text) #let RED = rgb("#DC2626") // brand error-600 #let GREEN = rgb("#059669") // brand success-600 (decoration only; small green text uses green-text #007942) #show heading.where(level: 1): it => block(width: 100%, above: 0pt, below: 16pt, fill: gradient.linear(BLUE, rgb("#2C5AA0")), inset: (x: 14pt, y: 12pt), radius: 3pt, text(fill: white, weight: "bold", size: 19pt, it.body)) #show heading.where(level: 2): it => block(width: 100%, above: 18pt, below: 10pt, fill: BLUE, inset: (x: 10pt, y: 6pt), radius: 2pt, text(fill: white, weight: "bold", size: 12pt, it.body)) #show heading.where(level: 3): it => text(fill: ORANGE, weight: "bold", size: 12.5pt, it.body) #show heading.where(level: 4): it => text(fill: BLUE, weight: "bold", size: 10.5pt, it.body) #let examplebox(label, title, body) = block(width: 100%, breakable: true, fill: rgb("#EFF1F5"), stroke: 0.5pt + rgb("#CFDDF0"), radius: 4pt, inset: 10pt, above: 12pt, below: 12pt)[ #block(below: 6pt)[#box(fill: BLUE, inset: (x: 6pt, y: 2pt), radius: 2pt, text(fill: white, weight: "bold", size: 8.5pt, label)) #h(0.4em) #strong[#title]] #body] // rail = decorative left rule (raw brand token); labelcolor = AA-safe label text shade #let notebox(label, rail, labelcolor, tint, body) = block(width: 100%, breakable: true, fill: tint, stroke: (left: 3pt + rail), inset: (left: 10pt, rest: 8pt), radius: (right: 4pt), above: 11pt, below: 11pt)[ #text(fill: labelcolor, weight: "bold", size: 7.5pt, tracking: 0.5pt)[#upper(label)] #linebreak() #body] #let solutionbox(body) = block(above: 4pt, below: 8pt)[ #text(fill: BLUE, weight: "bold", size: 8.5pt)[Solution] #linebreak() #body] #let figph(msg) = block(width: 100%, height: 60pt, fill: rgb("#f6f7f9"), stroke: (paint: rgb("#c7ccd3"), dash: "dashed"), radius: 4pt, inset: 10pt)[ #align(center + horizon, text(fill: rgb("#889"), style: "italic", size: 9pt, msg))] // Standardize inlined figure sizes: measure the natural CeTZ canvas, then scale to a // consistent envelope (aspect-aware; see build_typst.py FIG_* constants). Unlike the // print preamble, dimensions are FLOORED: in an editor a user can trim a figure to a // degenerate 1-D shape (a bare line), and w/h or tw/w would then divide by zero. #let _STD_W = 3.5 #let _WIDE_W = 5.6 #let _MAX_H = 3.4 #let _ASPECT_WIDE = 2.2 #let _UPSCALE_MAX = 1.15 #let stdfig(body) = context { let m = measure(body) let w = calc.max(m.width / 1in, 0.01) let h = calc.max(m.height / 1in, 0.01) let tw = if w / h > _ASPECT_WIDE { _WIDE_W } else { _STD_W } let s = calc.min(tw / w, _MAX_H / h, _UPSCALE_MAX) align(center, box(scale(x: s * 100%, y: s * 100%, reflow: true, body))) } #show figure: set block(breakable: false) #set figure(gap: 8pt) #show figure.caption: set text(size: 8.5pt, fill: rgb("#555")) == 8.2#h(0.6em)Stability and Classification of Isolated Critical Points === Isolated Critical Points and Almost Linear Systems A#emph[critical point] is #emph[isolated]if it is the only critical point in some small "neighborhood" of the point. That is, if we zoom in far enough it is the only critical point we see. In the above example, the critical point was isolated. If on the other hand there would be a whole curve of critical points, then it would not be isolated. A system is called #emph[almost linear] (at a critical point #math.equation(block: false, alt: "open parenthesis x sub 0 , y sub 0 close parenthesis")[$( x_(0) , y_(0) )$]) if the critical point is isolated and the Jacobian at the point is invertible, or equivalently if the linearized system has an isolated critical point. In such a case, the nonlinear terms will be very small and the system will behave like its linearization, at least if we are close to the critical point. In particular the system we have just seen in Examples 8.1.1 and 8.1.2 has two isolated critical points #math.equation(block: false, alt: "open parenthesis 0 , 0 close parenthesis")[$( 0 , 0 )$] and #math.equation(block: false, alt: "open parenthesis 0 , 1 close parenthesis")[$( 0 , 1 )$], and is almost linear at both critical points as both of the Jacobian matrices #math.equation(block: false, alt: "open bracket 0, 1; minus 1, 0 close bracket")[$[ 0 & 1 \ − 1 & 0 ]$] and #math.equation(block: false, alt: "open bracket 0, 1; 1, 0 close bracket")[$[ 0 & 1 \ 1 & 0 ]$] are #emph[invertible]. On the other hand a system such as #math.equation(block: false, alt: "x prime equals x squared")[$x^(′) = x^(2)$],#math.equation(block: false, alt: "y prime equals y squared")[$y^(′) = y^(2)$] has an isolated critical point at #math.equation(block: false, alt: "open parenthesis 0 , 0 close parenthesis")[$( 0 , 0 )$], however the Jacobian matrix #math.equation(block: true, alt: "open bracket 2 x, 0; 0, 2 y close bracket")[$[ 2 x & 0 \ 0 & 2 y ]$] is zero when #math.equation(block: false, alt: "open parenthesis x , y close parenthesis equals open parenthesis 0 , 0 close parenthesis")[$( x , y ) = ( 0 , 0 )$]. Therefore the system is not almost linear. Even a worse example is the system #math.equation(block: false, alt: "x prime equals x")[$x^(′) = x$],#math.equation(block: false, alt: "y prime equals x squared")[$y^(′) = x^(2)$],which does not have an isolated critical point, as #math.equation(block: false, alt: "x prime")[$x^(′)$] and #math.equation(block: false, alt: "y prime")[$y^(′)$] are both zero whenever #math.equation(block: false, alt: "x equals 0")[$x = 0$], that is, the entire #math.equation(block: false, alt: "y")[$y$] axis. Fortunately, most often critical points are isolated, and the system is almost linear at the critical points. So if we learn what happens here, we have figured out the majority of situations that arise in applications. === Stability and Classification of Isolated Critical Points Once we have an isolated critical point, the system is almost linear at that critical point, and we computed the associated linearized system, we can classify what happens to the solutions. We more or less use the classification for linear two-variable systems from #link("https://math.libretexts.org/Bookshelves/Differential_Equations/Differential_Equations_for_Engineers_(Lebl)/3%3A_Systems_of_ODEs/3.5%3A_Two_dimensional_systems_and_their_vector_fields")[Section 3.5], with one minor caveat. Let us list the behaviors depending on the eigenvalues of the Jacobian matrix at the critical point in Table #math.equation(block: false, alt: "1")[$1$]. This table is very similar to Table 3.5.1, with the exception of missing “center” points. We will discuss centers later, as they are more complicated. #figure(table( columns: 3, align: left, inset: 6pt, table.header([#strong[Eigenvalues of the Jacobian matrix]], [#strong[Behavior]], [#strong[Stability]]), [real and both positive], [source / unstable node], [unstable], [real and both negative], [sink / stable node], [asymptotically stable], [real and opposite signs], [saddle], [unstable], [complex with positive real part], [spiral source], [unstable], [complex with negative real part], [spiral sink], [asymptotically stable], )) In the new third column, we have marked points as #emph[asymptotically stable] or #emph[unstable]. Formally, a #emph[stable critical point] #math.equation(block: false, alt: "open parenthesis x sub 0 , y sub 0 close parenthesis")[$( x_(0) , y_(0) )$] is one where given any small distance #math.equation(block: false, alt: "ϵ")[$ϵ$] to #math.equation(block: false, alt: "open parenthesis x sub 0 , y sub 0 close parenthesis")[$( x_(0) , y_(0) )$],and any initial condition within a perhaps smaller radius around #math.equation(block: false, alt: "open parenthesis x sub 0 , y sub 0 close parenthesis")[$( x_(0) , y_(0) )$],the trajectory of the system will never go further away from #math.equation(block: false, alt: "open parenthesis x sub 0 , y sub 0 close parenthesis")[$( x_(0) , y_(0) )$] than #math.equation(block: false, alt: "ϵ")[$ϵ$]. An #emph[unstable critical point] is one that is not stable. Informally, a point is stable if we start close to a critical point and follow a trajectory we will either go towards, or at least not get away from, this critical point. A stable critical point #math.equation(block: false, alt: "open parenthesis x sub 0 , y sub 0 close parenthesis")[$( x_(0) , y_(0) )$] is called #emph[asymptotically stable] if given any initial condition sufficiently close to #math.equation(block: false, alt: "open parenthesis x sub 0 , y sub 0 close parenthesis")[$( x_(0) , y_(0) )$] and any solution #math.equation(block: false, alt: "open parenthesis x open parenthesis t close parenthesis , y open parenthesis t close parenthesis close parenthesis")[$( x ( t ) , y ( t ) )$] given that condition, then #math.equation(block: true, alt: "lim sub t → infinity open parenthesis x open parenthesis t close parenthesis , y open parenthesis t close parenthesis close parenthesis equals open parenthesis x sub 0 , y sub 0 close parenthesis .")[$lim_(t → ∞) ( x ( t ) , y ( t ) ) = ( x_(0) , y_(0) ) .$] That is, the critical point is asymptotically stable if any trajectory for a sufficiently close initial condition goes towards the critical point #math.equation(block: false, alt: "open parenthesis x sub 0 , y sub 0 close parenthesis")[$( x_(0) , y_(0) )$]. #examplebox("Example 1")[][ Consider #math.equation(block: false, alt: "x prime equals minus y minus x squared")[$x^(′) = − y − x^(2)$], #math.equation(block: false, alt: "y prime equals minus x plus y squared")[$y^(′) = − x + y^(2)$]. See Figure #math.equation(block: false, alt: "1")[$1$] for the phase diagram. Let us find the critical points. These are the points where #math.equation(block: false, alt: "minus y minus x squared equals 0")[$− y − x^(2) = 0$] and #math.equation(block: false, alt: "minus x plus y squared equals 0")[$− x + y^(2) = 0$]. The first equation means #math.equation(block: false, alt: "y equals minus x squared")[$y = − x^(2)$], and so #math.equation(block: false, alt: "y squared equals x to the power 4")[$y^(2) = x^(4)$]. Plugging into the second equation we obtain #math.equation(block: false, alt: "minus x plus x to the power 4 equals 0")[$− x + x^(4) = 0$]. Factoring we obtain #math.equation(block: false, alt: "x open parenthesis 1 minus x cubed close parenthesis equals 0")[$x ( 1 − x^(3) ) = 0$]. Since we are looking only for real solutions we get either #math.equation(block: false, alt: "x equals 0")[$x = 0$] or #math.equation(block: false, alt: "x equals 1")[$x = 1$]. Solving for the corresponding #math.equation(block: false, alt: "y")[$y$] using #math.equation(block: false, alt: "y equals minus x squared")[$y = − x^(2)$],we get two critical points, one being #math.equation(block: false, alt: "open parenthesis 0 , 0 close parenthesis")[$( 0 , 0 )$] and the other being #math.equation(block: false, alt: "open parenthesis 1 , minus 1 close parenthesis")[$( 1 , − 1 )$]. Clearly the critical points are isolated. Let us compute the Jacobian matrix: #math.equation(block: true, alt: "open bracket minus 2 x, minus 1; minus 1, 2 y close bracket .")[$[ − 2 x & − 1 \ − 1 & 2 y ] .$] At the point #math.equation(block: false, alt: "open parenthesis 0 , 0 close parenthesis")[$( 0 , 0 )$] we get the matrix #math.equation(block: false, alt: "open bracket 0, minus 1; minus 1, 0 close bracket")[$[ 0 & − 1 \ − 1 & 0 ]$] and so the two eigenvalues are #math.equation(block: false, alt: "1")[$1$] and #math.equation(block: false, alt: "minus 1")[$− 1$]. As the matrix is invertible, the system is almost linear at #math.equation(block: false, alt: "open parenthesis 0 , 0 close parenthesis")[$( 0 , 0 )$]. As the eigenvalues are real and of opposite signs, we get a saddle point, which is an unstable equilibrium point. #figure(figph[The phase portrait with few sample trajectories of x'=-y-x^2, y'=-x+y^2], alt: "The phase portrait with few sample trajectories of x'=-y-x^2, y'=-x+y^2", caption: [Figure #math.equation(block: false, alt: "1")[$1$]: The phase portrait with few sample trajectories of #math.equation(block: false, alt: "x prime equals minus y minus x squared")[$x^(′) = − y − x^(2)$], #math.equation(block: false, alt: "y prime equals minus x plus y squared")[$y^(′) = − x + y^(2)$].]) At the point #math.equation(block: false, alt: "open parenthesis 1 , minus 1 close parenthesis")[$( 1 , − 1 )$] we get the matrix #math.equation(block: false, alt: "open bracket minus 2, minus 1; minus 1, minus 2 close bracket")[$[ − 2 & − 1 \ − 1 & − 2 ]$] and computing the eigenvalues we get #math.equation(block: false, alt: "minus 1")[$− 1$],#math.equation(block: false, alt: "minus 3")[$− 3$]\.The matrix is invertible, and so the system is almost linear at #math.equation(block: false, alt: "open parenthesis 1 , minus 1 close parenthesis")[$( 1 , − 1 )$]. As we have real eigenvalues both negative, the critical point is a sink, and therefore an asymptotically stable equilibrium point. That is, if we start with any point #math.equation(block: false, alt: "open parenthesis x sub i , y sub i close parenthesis")[$( x_(i) , y_(i) )$] close to #math.equation(block: false, alt: "open parenthesis 1 , minus 1 close parenthesis")[$( 1 , − 1 )$] as an initial condition and plot a trajectory, it will approach #math.equation(block: false, alt: "open parenthesis 1 , minus 1 close parenthesis")[$( 1 , − 1 )$]. In other words, #math.equation(block: true, alt: "lim sub t → infinity open parenthesis x open parenthesis t close parenthesis , y open parenthesis t close parenthesis close parenthesis equals open parenthesis 1 , minus 1 close parenthesis .")[$lim_(t → ∞) ( x ( t ) , y ( t ) ) = ( 1 , − 1 ) .$] As you can see from the diagram, this behavior is true even for some initial points quite far from #math.equation(block: false, alt: "open parenthesis 1 , minus 1 close parenthesis")[$( 1 , − 1 )$],but it is definitely not true for all initial points. ] #examplebox("Example 2")[][ Let us look at #math.equation(block: false, alt: "x prime equals y plus y squared e to the power x")[$x^(′) = y + y^(2) e^(x)$], #math.equation(block: false, alt: "y prime equals x")[$y^(′) = x$]. First let us find the critical points. These are the points where #math.equation(block: false, alt: "y plus y squared e to the power x equals 0")[$y + y^(2) e^(x) = 0$] and #math.equation(block: false, alt: "x equals 0")[$x = 0$]. Simplifying we get #math.equation(block: false, alt: "0 equals y plus y squared equals y open parenthesis y plus 1 close parenthesis")[$0 = y + y^(2) = y ( y + 1 )$]. So the critical points are #math.equation(block: false, alt: "open parenthesis 0 , 0 close parenthesis")[$( 0 , 0 )$] and #math.equation(block: false, alt: "open parenthesis 0 , minus 1 close parenthesis")[$( 0 , − 1 )$],and hence are isolated. Let us compute the Jacobian matrix: #math.equation(block: true, alt: "open bracket y squared e to the power x, 1 plus 2 y e to the power x; 1, 0 close bracket .")[$[ y^(2) e^(x) & 1 + 2 y e^(x) \ 1 & 0 ] .$] At the point #math.equation(block: false, alt: "open parenthesis 0 , 0 close parenthesis")[$( 0 , 0 )$] we get the matrix #math.equation(block: false, alt: "open bracket 0, 1; 1, 0 close bracket")[$[ 0 & 1 \ 1 & 0 ]$] and so the two eigenvalues are #math.equation(block: false, alt: "1")[$1$] and #math.equation(block: false, alt: "minus 1")[$− 1$]. As the matrix is invertible, the system is almost linear at #math.equation(block: false, alt: "open parenthesis 0 , 0 close parenthesis")[$( 0 , 0 )$]. And, as the eigenvalues are real and of opposite signs, we get a saddle point, which is an unstable equilibrium point. At the point #math.equation(block: false, alt: "open parenthesis 0 , minus 1 close parenthesis")[$( 0 , − 1 )$] we get the matrix #math.equation(block: false, alt: "open bracket 1, minus 1; 1, 0 close bracket")[$[ 1 & − 1 \ 1 & 0 ]$] whose eigenvalues are #math.equation(block: false, alt: "the fraction 1 over 2 ± i the fraction the square root of 3 over 2")[$frac(1, 2) ± i frac(sqrt(3), 2)$]. The matrix is invertible, and so the system is almost linear at #math.equation(block: false, alt: "open parenthesis 0 , minus 1 close parenthesis")[$( 0 , − 1 )$]. As we have complex eigenvalues with positive real part, the critical point is a spiral source, and therefore an unstable equilibrium point. #figure(figph[The phase portrait with few sample trajectories of x'=y+y^2e^x, y'=x.], alt: "The phase portrait with few sample trajectories of x'=y+y^2e^x, y'=x.", caption: [Figure #math.equation(block: false, alt: "2")[$2$]: The phase portrait with few sample trajectories of #math.equation(block: false, alt: "x prime equals y plus y squared e to the power x")[$x^(′) = y + y^(2) e^(x)$], #math.equation(block: false, alt: "y prime equals x")[$y^(′) = x$].]) See Figure #math.equation(block: false, alt: "2")[$2$] for the phase diagram. Notice the two critical points, and the behavior of the arrows in the vector field around these points. ] === Trouble with Centers Recall, a linear system with a center meant that trajectories traveled in closed elliptical orbits in some direction around the critical point. Such a critical point we would call a #emph[center] or a #emph[stable center]. It would not be an asymptotically stable critical point, as the trajectories would never approach the critical point, but at least if you start sufficiently close to the critical point, you will stay close to the critical point. The simplest example of such behavior is the linear system with a center. Another example is the critical point #math.equation(block: false, alt: "open parenthesis 0 , 0 close parenthesis")[$( 0 , 0 )$] in Example 8.1.1. The trouble with a center in a nonlinear system is that whether the trajectory goes towards or away from the critical point is governed by the sign of the real part of the eigenvalues of the Jacobian. Since this real part is zero at the critical point itself, it can have either sign nearby, meaning the trajectory could be pulled towards or away from the critical point. #examplebox("Example 3")[][ An easy example where such a problematic behavior is exhibited is the system #math.equation(block: false, alt: "x prime equals y , y prime equals minus x plus y cubed")[$x^(′) = y , y^(′) = − x + y^(3)$]. The only critical point is the origin #math.equation(block: false, alt: "open parenthesis 0 , 0 close parenthesis")[$( 0 , 0 )$]. The Jacobian matrix is #math.equation(block: true, alt: "open bracket 0, 1; minus 1, 3 y squared close bracket .")[$[ 0 & 1 \ − 1 & 3 y^(2) ] .$] At #math.equation(block: false, alt: "open parenthesis 0 , 0 close parenthesis")[$( 0 , 0 )$] the Jacobian matrix is #math.equation(block: false, alt: "open bracket 0, 1; minus 1, 0 close bracket")[$[ 0 & 1 \ − 1 & 0 ]$],which has eigenvalues #math.equation(block: false, alt: "± i")[$± i$]. Therefore, the linearization has a center. Using the quadratic equation, the eigenvalues of the Jacobian matrix at any point #math.equation(block: false, alt: "open parenthesis x , y close parenthesis")[$( x , y )$] are #math.equation(block: true, alt: "λ equals the fraction 3 over 2 y squared ± i the fraction the square root of 4 minus 9 y to the power 4 over 2.")[$λ = frac(3, 2) y^(2) ± i frac(sqrt(4 − 9 y^(4)), 2) .$] At any point where #math.equation(block: false, alt: "y ⧸ equals 0")[$y "⧸" = 0$] (so at most points near the origin), the eigenvalues have a positive real part (#math.equation(block: false, alt: "y squared")[$y^(2)$] can never be negative). This positive real part will pull the trajectory away from the origin. A sample trajectory for an initial condition near the origin is given in Figure #math.equation(block: false, alt: "3")[$3$]. #figure(figph[An unstable critical point (spiral source) at the origin for x'=y, y'=-x+y^{3}, even if the linearization has a center.], alt: "An unstable critical point (spiral source) at the origin for x'=y, y'=-x+y^{3}, even if the linearization has a center.", caption: [Figure #math.equation(block: false, alt: "3")[$3$]: An unstable critical point (spiral source) at the origin for #math.equation(block: false, alt: "x prime equals y")[$x^(′) = y$], #math.equation(block: false, alt: "y prime equals minus x plus y cubed")[$y^(′) = − x + y^(3)$], even if the linearization has a center.]) ] The moral of the example is that further analysis is needed when the linearization has a center. The analysis will in general be more complicated than in the above example, and is more likely to involve case-by-case consideration. Such a complication should not be surprising to you. By now in your mathematical career, you have seen many places where a simple test is inconclusive, perhaps starting with the second derivative test for maxima or minima, and requires more careful, and perhaps ad hoc analysis of the situation. The section's own example x′ = y, y′ = −x + y³, with the cubic term on a slider so the true system and its linearization share one frame. The poster shows the book's case, k = 1. Pull k to 0 and the system becomes exactly the linearization at the origin, \[\[0, 1\], \[−1, 0\]\] with eigenvalues ±i, and both orbits close into perfect circles of radius 0.300 and 0.600. For any k \> 0 they never close again: the orbit through (0.3, 0) comes back to 0.317 after one lap at k = 0.25, to 0.338 at k = 0.5, and to 0.396 at k = 1, gaining a little every lap until it spirals away. The Jacobian is \[\[0, 1\], \[−1, 3k·y²\]\], so Re λ = (3k/2)y² — the book's λ = (3/2)y² ± i·√(4 − 9y⁴)/2 at k = 1. That real part vanishes along the whole line y = 0 and is positive off it, and it grows with amplitude, which is why the wider orbit through (0.6, 0) breaks up at a far smaller k than the inner one. The readout linearizes at the origin: the cubic term contributes nothing there, so the linearization is a center — and a center is exactly the case the linearization cannot settle. Drag k and watch the trajectories spiral in or out while the readout keeps saying center. {"functions":\[{"color":"\#1f4e79","domain":null,"equilibria":\[{"jacobian":\["0","1","-1","3\*k\*y^2"\],"label":"origin","x":"0","y":"0"}\],"expression":"y","expression2":"-x+k\*y^3","id":"fn-cubic-center","inequality":"lt","lineDash":\[\],"lineWidth":2,"mode":"vector-field","seed":\[0.3,0\],"seeds":\[{"x":0.6,"y":0}\],"tMax":10,"tMin":-10,"variable":"x","visible":true}\],"grid":{"axisColor":"\#333333","gridColor":"\#cccccc","majorSpacing":1,"minorGridColor":"\#eeeeee","showAxes":true,"showLabels":true},"parameters":\[{"id":"p-k","label":"Strength of the nonlinear term","max":1,"min":0,"name":"k","step":0.05,"value":1}\],"title":"A center the linearization gets wrong","version":1,"viewport":{"centerX":0,"centerY":0,"scale":150}} === Conservative Equations An equation of the form #math.equation(block: true, alt: "x double prime plus f open parenthesis x close parenthesis equals 0")[$x^(″) + f ( x ) = 0$] for an arbitrary function #math.equation(block: false, alt: "f open parenthesis x close parenthesis")[$f ( x )$] is called a #emph[conservative equation]. For example the pendulum equation is a conservative equation. The equations are conservative as there is no friction in the system so the energy in the system is "conserved." Let us write this equation as a system of nonlinear ODE. #math.equation(block: true, alt: "x prime equals y , y prime equals minus f open parenthesis x close parenthesis .")[$x^(′) = y , #h(2em) y^(′) = − f ( x ) .$] These types of equations have the advantage that we can solve for their trajectories easily. The trick is to first think of #math.equation(block: false, alt: "y")[$y$] as a function of #math.equation(block: false, alt: "x")[$x$] for a moment. Then use the chain rule #math.equation(block: true, alt: "x double prime equals y prime equals y the fraction d y over d x ,")[$x^(″) = y^(′) = y frac(d y, d x) ,$] where the prime indicates a derivative with respect to #math.equation(block: false, alt: "t")[$t$]. We obtain #math.equation(block: false, alt: "y the fraction d y over d x plus f open parenthesis x close parenthesis equals 0")[$y frac(d y, d x) + f ( x ) = 0$]. We integrate with respect to #math.equation(block: false, alt: "x")[$x$] to get #math.equation(block: false, alt: "∫ y the fraction d y over d x d x plus ∫ f open parenthesis x close parenthesis d x equals C")[$∫ y frac(d y, d x) d x + ∫ f ( x ) d x = C$]. In other words #math.equation(block: true, alt: "the fraction 1 over 2 y squared plus ∫ f open parenthesis x close parenthesis d x equals C .")[$frac(1, 2) y^(2) + ∫ f ( x ) d x = C .$] We obtained an implicit equation for the trajectories, with different #math.equation(block: false, alt: "C")[$C$] giving different trajectories. The value of #math.equation(block: false, alt: "C")[$C$] is conserved on any trajectory. This expression is sometimes called the #emph[Hamiltonian] or the energy of the system. If you look back to#link("https://math.libretexts.org/Bookshelves/Differential_Equations/Differential_Equations_for_Engineers_(Lebl)/1%3A_First_order_ODEs/1.8%3A_Exact_Equations")[Section 1.8], you will notice that #math.equation(block: false, alt: "y the fraction d y over d x plus f open parenthesis x close parenthesis equals 0")[$y frac(d y, d x) + f ( x ) = 0$] is an exact equation, and we just found a potential function. #examplebox("Example 4")[][ Let us find the trajectories for the equation #math.equation(block: false, alt: "x double prime plus x minus x squared equals 0")[$x^(″) + x − x^(2) = 0$], which is the equation from Example 8.1.1. The corresponding first order system is #math.equation(block: true, alt: "x prime equals y , y prime equals minus x plus x squared .")[$x^(′) = y , #h(2em) y^(′) = − x + x^(2) .$] Trajectories satisfy #math.equation(block: true, alt: "the fraction 1 over 2 y squared plus the fraction 1 over 2 x squared minus the fraction 1 over 3 x cubed equals C .")[$frac(1, 2) y^(2) + frac(1, 2) x^(2) − frac(1, 3) x^(3) = C .$] We solve for #math.equation(block: false, alt: "y")[$y$] #math.equation(block: true, alt: "y equals ± the square root of minus x squared plus the fraction 2 over 3 x cubed plus 2 C .")[$y = ± sqrt(− x^(2) + frac(2, 3) x^(3) + 2 C) .$] Plotting these graphs we get exactly the trajectories in Figure 8.1.2. In particular we notice that near the origin the trajectories are #emph[closed curves]: they keep going around the origin, never spiraling in or out. Therefore we discovered a way to verify that the critical point at #math.equation(block: false, alt: "open parenthesis 0 , 0 close parenthesis")[$( 0 , 0 )$] is a stable center. The critical point at #math.equation(block: false, alt: "open parenthesis 0 , 1 close parenthesis")[$( 0 , 1 )$] is a saddle as we already noticed. This example is typical for conservative equations. ] Consider an arbitrary conservative equation. The trajectories are given by #math.equation(block: true, alt: "y equals ± the square root of minus 2 ∫ f open parenthesis x close parenthesis d x plus 2 C .")[$y = ± sqrt(− 2 ∫ f ( x ) d x + 2 C) .$] So all trajectories are mirrored across the #math.equation(block: false, alt: "x")[$x$]-axis. In particular, there can be no spiral sources nor sinks. All critical points occur when #math.equation(block: false, alt: "y equals 0")[$y = 0$] (the #math.equation(block: false, alt: "x")[$x$]-axis), that is when #math.equation(block: false, alt: "x prime equals 0")[$x^(′) = 0$]. The critical points are simply those points on the #math.equation(block: false, alt: "x")[$x$]-axis where #math.equation(block: false, alt: "f open parenthesis x close parenthesis equals 0")[$f ( x ) = 0$]. The Jacobian matrix is #math.equation(block: true, alt: "open bracket 0, 1; minus f prime open parenthesis x close parenthesis, 0 close bracket .")[$[ 0 & 1 \ − f^(′) ( x ) & 0 ] .$] So the critical point is almost linear if #math.equation(block: false, alt: "f prime open parenthesis x close parenthesis ⧸ equals 0")[$f^(′) ( x ) "⧸" = 0$] at the critical point. Let #math.equation(block: false, alt: "J")[$J$] denote the Jacobian matrix, then the eigenvalues of #math.equation(block: false, alt: "J")[$J$] are solutions to #math.equation(block: true, alt: "0 equals det open parenthesis J minus λ I close parenthesis equals λ squared plus f prime open parenthesis x close parenthesis .")[$0 = det ( J − λ I ) = λ^(2) + f^(′) ( x ) .$] Therefore #math.equation(block: false, alt: "λ equals ± the square root of minus f prime open parenthesis x close parenthesis")[$λ = ± sqrt(− f^(′) ( x ))$]. In other words, either we get real eigenvalues of opposite signs, or we get purely imaginary eigenvalues. There are only two possibilities for critical points, either an #emph[unstable saddle point], or a #emph[stable center]. There are never any asymptotically stable points, sinks, or sources.