{"id":1,"date":"2026-02-01T21:50:29","date_gmt":"2026-02-01T20:50:29","guid":{"rendered":"http:\/\/gbainier.com\/?p=1"},"modified":"2026-02-06T09:50:58","modified_gmt":"2026-02-06T08:50:58","slug":"hello-world","status":"publish","type":"post","link":"https:\/\/gbainier.com\/?p=1","title":{"rendered":"The stability triangle"},"content":{"rendered":"\n<p class=\"has-small-font-size wp-block-paragraph\">Let us take a second-order continuous-time linear system: $$\\dot{x}(t)=Ax(t), \\quad A\\in \\mathbb{R}^{2\\times 2}.$$<\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">For such linear systems, the qualitative behavior of \\(x(t)\\) is determined by the eigenvalues of \\(A\\). What makes the \\(2&#215;2\\) case interesting is that these eigenvalues can be written explicitly in terms of the trace and determinant of \\(A\\): $$\\Lambda(A)= \\left\\{\\frac{\\mbox{Tr} A}{2} \\pm \\sqrt{\\frac{(\\mbox{Tr} A)^2}{4}-\\mbox{det} A} \\right\\}.$$<\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">Therefore, all qualitative behaviors of these systems can be represented on a \\((\\mbox{Tr} A, \\mbox{det} A)\\)-plane. This plane is sometimes called a Poincar\u00e9 diagram.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/File:Stability_Diagram.png\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"664\" src=\"https:\/\/gbainier.com\/wp-content\/uploads\/2026\/02\/Stability_Diagram-1024x664.png\" alt=\"\" class=\"wp-image-49\" srcset=\"https:\/\/gbainier.com\/wp-content\/uploads\/2026\/02\/Stability_Diagram-1024x664.png 1024w, https:\/\/gbainier.com\/wp-content\/uploads\/2026\/02\/Stability_Diagram-300x195.png 300w, https:\/\/gbainier.com\/wp-content\/uploads\/2026\/02\/Stability_Diagram-768x498.png 768w, https:\/\/gbainier.com\/wp-content\/uploads\/2026\/02\/Stability_Diagram.png 1196w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Source: Wikimedia Commons<\/figcaption><\/figure>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">In particular, the usual stability condition for continuous-time linear systems (all eigenvalues in the open left half-plane) can be reduced to a simple criteria expressed in terms of \\( \\mbox{Tr} A, \\mbox{det} A\\): $$\\max\\mbox{Re}(\\Lambda(A))&lt;0 \\Leftrightarrow \\max(\\mbox{Tr} A, -\\mbox{det} A)&lt;0.$$<\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">This condition is particularly useful for control theorists, as it greatly simplifies the characterization of the stabilizing state-feedback gains \\(K\\) ensuring that a closed-loop system (with \\(A_{cl}=A+BK\\)) is stable, allowing for quick, back-of-the-envelope calculations.<\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">Although unsurprising, it is rarely brought up that a similar stability condition holds for second-order discrete-time linear systems: $$x_{k+1}=Ax_k, \\quad A\\in \\mathbb{R}^{2\\times 2}.$$<\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">Indeed, the usual stability condition (the spectral radius of \\(A\\) is smaller than \\(1\\), thus all eigenvalues are in the unit disc) can also be reduced to a simple criteria expressed in terms of \\( \\mbox{Tr} A, \\mbox{det} A\\): $$\\rho(A)&lt;1 \\Leftrightarrow \\max( |\\mbox{Tr} A| &#8211; \\mbox{det} A, \\mbox{det} A)&lt;1.$$<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"645\" src=\"https:\/\/gbainier.com\/wp-content\/uploads\/2026\/02\/z_triangle2-1024x645.png\" alt=\"\" class=\"wp-image-50\" srcset=\"https:\/\/gbainier.com\/wp-content\/uploads\/2026\/02\/z_triangle2-1024x645.png 1024w, https:\/\/gbainier.com\/wp-content\/uploads\/2026\/02\/z_triangle2-300x189.png 300w, https:\/\/gbainier.com\/wp-content\/uploads\/2026\/02\/z_triangle2-768x484.png 768w, https:\/\/gbainier.com\/wp-content\/uploads\/2026\/02\/z_triangle2.png 1098w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">Interestingly, this criterion defines a triangular region on the \\((\\mbox{Tr} A, \\mbox{det} A)\\)-plane, sometimes referred to as the &#8216;stability triangle.&#8217; This triangle is represented hereabove, together with a few sample trajectories produced by systems corresponding to points within it. Analogous to the continuous-time Poincar\u00e9 diagram, oscillatory behaviors associated with complex eigenvalues occur in the  green region, where \\((\\mbox{Tr} A)^2 &lt; 4\\mbox{det} A \\). In the red region, only scaling, symmetry flips, and accumulation along eigenvector directions occur.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Let us take a second-order continuous-time linear system: $$\\dot{x}(t)=Ax(t), \\quad A\\in \\mathbb{R}^{2\\times 2}.$$ For such linear systems, the qualitative behavior of \\(x(t)\\) is determined by the eigenvalues of \\(A\\). What makes the \\(2&#215;2\\) case interesting is that these eigenvalues can be written explicitly in terms of the trace and determinant of \\(A\\): $$\\Lambda(A)= \\left\\{\\frac{\\mbox{Tr} A}{2} [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,5,6],"tags":[],"class_list":["post-1","post","type-post","status-publish","format-standard","hentry","category-control-theory","category-linear-systems","category-trivia"],"_links":{"self":[{"href":"https:\/\/gbainier.com\/index.php?rest_route=\/wp\/v2\/posts\/1","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gbainier.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gbainier.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gbainier.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gbainier.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1"}],"version-history":[{"count":46,"href":"https:\/\/gbainier.com\/index.php?rest_route=\/wp\/v2\/posts\/1\/revisions"}],"predecessor-version":[{"id":97,"href":"https:\/\/gbainier.com\/index.php?rest_route=\/wp\/v2\/posts\/1\/revisions\/97"}],"wp:attachment":[{"href":"https:\/\/gbainier.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gbainier.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gbainier.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}