Articulo de referencia

Método de Bairstow

En análisis numérico , el método de Bairstow es un algoritmo eficiente para hallar las raíces de un polinomio real de grado arbitrario. El algoritmo apareció por primera vez en ...

En análisis numérico , el método de Bairstow es un algoritmo eficiente para hallar las raíces de un polinomio real de grado arbitrario. El algoritmo apareció por primera vez en el apéndice del libro de 1920, *Aerodinámica Aplicada*, de Leonard Bairstow . [ 1 ] El algoritmo halla las raíces en pares complejos conjugados utilizando únicamente aritmética real.

Consulte el algoritmo de búsqueda de raíces para ver otros algoritmos.

Descripción del método

El enfoque de Bairstow consiste en utilizar el método de Newton para ajustar los coeficientes u y v en la ecuación cuadrática.incógnita2+incógnita+v{\displaystyle x^{2}+ux+v}hasta que sus raíces coincidan con las del polinomio que se está resolviendo. Entonces se pueden determinar las raíces del polinomio cuadrático y dividirlo entre dicho polinomio para eliminar esas raíces. Este proceso se repite hasta que el polinomio se convierte en cuadrático o lineal y se han determinado todas las raíces.

División larga del polinomio a resolver

PAG(incógnita)=i=0norteaiincógnitai{\displaystyle P(x)=\sum _{i=0}^{n}a_{i}x^{i}}

porincógnita2+incógnita+v{\displaystyle x^{2}+ux+v}produce un cocienteQ(incógnita)=i=0norte2biincógnitai{\displaystyle Q(x)=\sum _{i=0}^{n-2}b_{i}x^{i}}y un restodoincógnita+d{\displaystyle cx+d}de tal manera que

PAG(incógnita)=(incógnita2+incógnita+v)(i=0norte2biincógnitai)+(doincógnita+d).{\displaystyle P(x)=(x^{2}+ux+v)\left(\sum _{i=0}^{n-2}b_{i}x^{i}\right)+(cx+d).}

Una segunda división deQ(incógnita){\displaystyle Q(x)}porincógnita2+incógnita+v{\displaystyle x^{2}+ux+v}se realiza para obtener un cocienteR(incógnita)=i=0norte4Fiincógnitai{\displaystyle R(x)=\sum _{i=0}^{n-4}f_{i}x^{i}}y el restogramoincógnita+h{\displaystyle gx+h}con

Q(incógnita)=(incógnita2+incógnita+v)(i=0norte4Fiincógnitai)+(gramoincógnita+h).{\displaystyle Q(x)=(x^{2}+ux+v)\left(\sum _{i=0}^{n-4}f_{i}x^{i}\right)+(gx+h).}

Las variablesdo,d,gramo,h{\displaystyle c,\,d,\,g,\,h}y el{bi},{Fi}{\displaystyle \{b_{i}\},\;\{f_{i}\}}son funciones de{\displaystyle u}yv{\displaystyle v}Se pueden encontrar recursivamente de la siguiente manera.

bnorte=bnorte1=0,Fnorte=Fnorte1=0,bi=ai+2bi+1vbi+2Fi=bi+2Fi+1vFi+2(i=norte2,,0),do=a1b0vb1,gramo=b1F0vF1,d=a0vb0,h=b0vF0.{\displaystyle {\begin{aligned}b_{n}&=b_{n-1}=0,&f_{n}&=f_{n-1}=0,\\b_{i}&=a_{i+2}-ub_{i+1}-vb_{i+2}&f_{i}&=b_{i+2}-uf_{i+1}-vf_{i+2}\qquad (i=n-2,\ldots ,0),\\c&=a_{1}-ub_{0}-vb_{1},&g&=b_{1}-uf_{0}-vf_{1},\\d&=a_{0}-vb_{0},&h&=b_{0}-vf_{0}.\end{aligned}}}

La función cuadrática divide exactamente al polinomio cuando

do(,v)=d(,v)=0.{\displaystyle c(u,v)=d(u,v)=0.\,}

Valores de{\displaystyle u}yv{\displaystyle v}Se puede descubrir para qué ocurre esto eligiendo valores iniciales e iterando el método de Newton en dos dimensiones.

[v]:=[v][dodovddv]1[dod]:=[v]1vgramo2+h(hgramo)[hgramogramovgramoh][dod]{\displaystyle {\begin{bmatrix}u\\v\end{bmatrix}}:={\begin{bmatrix}u\\v\end{bmatrix}}-{\begin{bmatrix}{\frac {\partial c}{\partial u}}&{\frac {\partial c}{\partial v}}\\[3pt]{\frac {\partial d}{\partial u}}&{\frac {\partial d}{\partial v}}\end{bmatrix}}^{-1}{\begin{bmatrix}c\\d\end{bmatrix}}:={\begin{bmatrix}u\\v\end{bmatrix}}-{\frac {1}{vg^{2}+h(h-ug)}}{\begin{bmatrix}-h&g\\[3pt]-gv&gu-h\end{bmatrix}}{\begin{bmatrix}c\\d\end{bmatrix}}}

hasta que se produzca la convergencia. Este método para hallar las raíces de los polinomios puede implementarse fácilmente con un lenguaje de programación o incluso con una hoja de cálculo.

Ejemplo

La tarea consiste en determinar un par de raíces del polinomio.

F(incógnita)=6incógnita5+11incógnita433incógnita333incógnita2+11incógnita+6.{\displaystyle f(x)=6\,x^{5}+11\,x^{4}-33\,x^{3}-33\,x^{2}+11\,x+6.}

Como primer polinomio cuadrático se puede elegir el polinomio normalizado formado a partir de los tres coeficientes principales de f ( x ),

=anorte1anorte=116;v=anorte2anorte=336.{\displaystyle u={\frac {a_{n-1}}{a_{n}}}={\frac {11}{6}};\quad v={\frac {a_{n-2}}{a_{n}}}=-{\frac {33}{6}}.\,}

La iteración produce entonces la tabla

Tras ocho iteraciones, el método produjo un factor cuadrático que contiene las raíces −1/3 y −3 dentro de la precisión indicada. La longitud del paso a partir de la cuarta iteración demuestra la velocidad de convergencia superlineal.

Actuación

El algoritmo de Bairstow hereda la convergencia cuadrática local del método de Newton, excepto en el caso de factores cuadráticos de multiplicidad mayor que 1, cuando la convergencia a dicho factor es lineal. Se observa un tipo particular de inestabilidad cuando el polinomio tiene grado impar y una sola raíz real. Los factores cuadráticos que tienen un valor pequeño en esta raíz real tienden a divergir hacia el infinito.

Las imágenes representan pares(s,t)[3,3]2{\displaystyle (s,t)\in [-3,3]^{2}}Los puntos en el semiplano superior t  >  0 corresponden a un factor lineal con raícess±it{\displaystyle s\pm it}, eso esincógnita2+incógnita+v=(incógnitas)2+t2{\displaystyle x^{2}+ux+v=(xs)^{2}+t^{2}}Los puntos en el semiplano inferior t  <  0 corresponden a factores cuadráticos con raícess±t{\displaystyle s\pm t}, eso es,incógnita2+incógnita+v=(incógnitas)2t2{\displaystyle x^{2}+ux+v=(xs)^{2}-t^{2}}, así que en general(,v)=(2s,s2+t|t|){\displaystyle (u,\,v)=(-2s,\,s^{2}+t\,|t|)}Los puntos están coloreados según el punto final de la iteración de Bairstow; los puntos negros indican un comportamiento divergente.

La primera imagen muestra el caso de una sola raíz real. La segunda indica que se puede corregir la divergencia introduciendo una raíz real adicional, aunque esto ralentiza la convergencia. En el caso de polinomios de grado impar, también se puede encontrar primero una raíz real mediante el método de Newton o un método de reducción de intervalos, de modo que, tras la reducción, se obtenga un polinomio de grado par con mejor comportamiento. La tercera imagen corresponde al ejemplo anterior.

Referencias

  1. Bairstow, Leonard (1920). «Apéndice: Solución de ecuaciones algebraicas con coeficientes numéricos en el caso de que existan varios pares de raíces complejas» . Aerodinámica aplicada . Londres: Longmans, Green and Company. págs. 551–560 . 
  • El algoritmo de Bairstow en Mathworld
  • Recetas numéricas en Fortran 77 en línea
  • Ejemplo de solucionador de raíces polinómicas (grados P  10) utilizando el método de Bairstow .
  • LinBairstowSolve, una implementación de código abierto en C++ del método Lin-Bairstow disponible como un método de la biblioteca VTK.
  • Búsqueda de raíces de un polinomio en línea: método de Bairstow por Farhad Mazlumi