{ "metadata": { "kernelspec": { "codemirror_mode": { "name": "ipython", "version": 3 }, "display_name": "IPython (Python 3)", "language": "python", "name": "python3" }, "name": "", "signature": "sha256:eda4db6b9af282fb48967108b5e95581247d8a9a9e9f8cd7e2bc2a8c073a6759" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Polin\u00f4mios est\u00e1veis\n", "A estabilidade de uma matriz $A$ fica determinada pelo n\u00famero $\\omega(A)$; se este \u00e9 negativo a matriz \u00e9 est\u00e1vel. De forma equivalente, se todas as ra\u00edzes do polin\u00f4mio caracter\u00edstico de $A$ t\u00eam a parte real negativa, conclui-se que $\\omega(A) < 0$ e que $A$ \u00e9 est\u00e1vel.\n", "Um polin\u00f4mio $p(\\lambda)= \\lambda^n +a_1\\lambda^{n-1} + \\cdots + a_n$ \u00e9 **est\u00e1vel** quando tiver todas as raizes com a parte real negativa. \n", "Decidir se um polin\u00f4mio \u00e9 est\u00e1vel a partir de seus coeficientes, se o grau deste polin\u00f4mio \u00e9 \"pequeno\" \u00e9 relativamente simples, por exemplo: Se $p(\\lambda)$ \u00e9 um polin\u00f4mio de grau menor ou igual a dois (!) ele \u00e9 est\u00e1vel se, e somente se, todos os coeficientes forem estritamente positivos (estamos falando dos polin\u00f4mios da forma acima, isto \u00e9, com l\u00edder 1).\n", "Este resultado n\u00e3o \u00e9 mais verdade para polin\u00f4mios de grau 3. Por exemplo o polin\u00f4mio\n", "$p(\\lambda) = \\lambda^3 + \\lambda^2 + \\lambda + 6$ n\u00e3o \u00e9 est\u00e1vel. Fazendo as contas" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "# lista de coeficientes do polin\u00f4mio [a0,a1,a2,a3]\n", "p=[1,1,1,6]\n", "print(np.roots(p))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[-2.0+0.j 0.5+1.6583124j 0.5-1.6583124j]\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sequ\u00eancia de Routh\n", "De fato, a condi\u00e7\u00e3o $a_i>0$, \u00e9 uma condi\u00e7\u00e3o necess\u00e1ria para a estabilidade do polin\u00f4mio, para uma condi\u00e7\u00e3o necess\u00e1ria e suficiente vamos enunciar o *Teorema de Routh*.\n", "Vamos construir uma sequ\u00eancia de polin\u00f4mios $q_1(x),\\dots, q_k(x)$ a partir de um polin\u00f4mio $p(\\lambda)$ da forma seguinte:\n", "seja $p(\\lambda)= \\lambda^n +a_1\\lambda^{n-1} + \\cdots + a_n$ e escrevemos $p(\\mathbf{i}x) = U(x) + \\mathbf{i}V(x)$. Por exemplo, se $\\mathbf{i}^n=1$ ent\u00e3o $U(x) =x^n - a_{2}x^{n-2}+\\cdots + a_n$ e $V(x) =-a_{1}x^{n-1} + a_{3}x^{n-3}\\cdots -a_{n-1}x$.\n", "\n", "Agora definimos, se $n$ \u00e9 par $q_1(x) = U(x)$ e $q_2(x)=V(x)$. Se $n$ \u00e9 \u00edmpar $q_1(x)=V(x)$ e $q_2(x) = -U(x)$. Os outros membros da sequ\u00eancia s\u00e3o definidos recursivamente, usando o algoritmo da divis\u00e3o, como:\n", "$$ q_{i-2}(x)=d_{i-1}(x)q_{i-1}(x) - q_i(x) $$\n", "at\u00e9 que $q_k(x)=cte$. Vamos chamar esta sequ\u00eancia de **sequ\u00eancia de Routh**." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Teorema de Routh:\n", "O polin\u00f4mio $p(\\lambda)= \\lambda^n +a_1\\lambda^{n-1} + \\cdots + a_n$, com todos os coeficientes positivos, ser\u00e1 est\u00e1vel se, e somente se, a sequ\u00eancia de Routh tiver $n+1$ elementos com sinal dos l\u00edderes dos polin\u00f4mios alternados." ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }