En matemáticas, el teorema de Vincent (llamado así en honor a Alexandre Joseph Hidulphe Vincent) es un teorema que aísla las raíces reales de polinomios con coeficientes racionales.
Aunque el teorema de Vincent es la base del método más rápido para el aislamiento de las raíces reales de polinomios, fue casi totalmente olvidado, habiendo sido eclipsado por el teorema de Sturm ; en consecuencia, no aparece en ninguno de los libros clásicos sobre la teoría de ecuaciones (del siglo XX), excepto en el libro de Uspensky . Se presentan dos variantes de este teorema, junto con varios métodos de aislamiento de raíces reales (fracciones continuas y bisección) derivados de ellas.
Se presentan dos versiones de este teorema: la versión de fracciones continuas debida a Vincent, [1] [2] [3] y la versión de bisección debida a Alesina y Galuzzi. [4] [5]
Si en una ecuación polinómica con coeficientes racionales y sin raíces múltiples, se hacen transformaciones sucesivas de la forma
donde hay números positivos cualesquiera mayores o iguales a uno, entonces después de una serie de transformaciones de este tipo, la ecuación transformada resultante tiene cero variaciones de signo o tiene una sola variación de signo. En el primer caso no hay raíz, mientras que en el segundo caso hay una sola raíz real positiva. Además, la raíz correspondiente de la ecuación propuesta se aproxima mediante la fracción continua finita: [1] [2] [3]
Además, si se pueden encontrar infinitos números que satisfacen esta propiedad, entonces la raíz está representada por la fracción continua (infinita) correspondiente.
La afirmación anterior es una traducción exacta del teorema que se encuentra en los artículos originales de Vincent; [1] [2] [3] sin embargo, se necesitan las siguientes observaciones para una comprensión más clara:
Sea p ( x ) un polinomio real de grado deg( p ) que sólo tiene raíces simples. Es posible determinar una cantidad positiva δ tal que para cada par de números reales positivos a , b con , cada polinomio transformado de la forma
tiene exactamente 0 o 1 variaciones de signo. El segundo caso es posible si y solo si p ( x ) tiene una sola raíz dentro de ( a , b ).
De la ecuación ( 1 ) se obtiene el siguiente criterio para determinar si un polinomio tiene raíces en el intervalo ( a , b ):
Realizar en p ( x ) la sustitución
y contar el número de variaciones de signo en la secuencia de coeficientes del polinomio transformado; este número da un límite superior al número de raíces reales que p ( x ) tiene dentro del intervalo abierto ( a , b ). Más precisamente, el número ρ ab ( p ) de raíces reales en el intervalo abierto ( a , b ) —multiplicidades contadas— del polinomio p ( x ) en R [ x ], de grado deg( p ), está acotado por encima por el número de variaciones de signo var ab ( p ), donde
Como en el caso de la regla de signos de Descartes, si var ab ( p ) = 0 se sigue que ρ ab ( p ) = 0 y si var ab ( p ) = 1 se sigue que ρ ab ( p ) = 1.
Un caso especial de la "prueba de raíces a_b" de Alesina-Galuzzi es la "prueba de raíces 0_1" de Budan .
Una discusión detallada del teorema de Vincent, su extensión, la interpretación geométrica de las transformaciones involucradas y tres pruebas diferentes se puede encontrar en el trabajo de Alesina y Galuzzi. [4] [5] Una cuarta prueba se debe a Ostrowski [6] quien redescubrió un caso especial de un teorema enunciado por Obreschkoff , [7] p. 81, en 1920-1923.
Para demostrar (ambas versiones del) teorema de Vincent, Alesina y Galuzzi demuestran que, después de una serie de transformaciones mencionadas en el teorema, un polinomio con una raíz positiva acaba teniendo una variación de signo. Para demostrarlo, utilizan el siguiente corolario del teorema de Obreschkoff de 1920-1923 mencionado anteriormente; es decir, el siguiente corolario da las condiciones necesarias bajo las cuales un polinomio con una raíz positiva tiene exactamente una variación de signo en la secuencia de sus coeficientes; véase también la figura correspondiente.
Consideremos ahora la transformación de Möbius
y los tres círculos que se muestran en la figura correspondiente; supongamos que a/do < b/d .
De lo anterior se desprende que si un polinomio tiene una sola raíz positiva dentro de la figura en forma de ocho y todas las demás raíces están fuera de ella, presenta una variación de signo en la secuencia de sus coeficientes. Esto también garantiza la terminación del proceso.
En sus artículos fundamentales, [1] [2] [3] Vincent presentó ejemplos que muestran con precisión cómo utilizar su teorema para aislar raíces reales de polinomios con fracciones continuas . Sin embargo, el método resultante tenía un tiempo de cálculo exponencial , un hecho que los matemáticos debieron haber comprendido entonces, como lo hizo Uspensky [8] p. 136, un siglo después.
La naturaleza exponencial del algoritmo de Vincent se debe a la forma en que se calculan los cocientes parciales a i (en el teorema de Vincent). Es decir, para calcular cada cociente parcial a i (es decir, para localizar dónde se encuentran las raíces en el eje x ), Vincent utiliza el teorema de Budan como una "prueba de ausencia de raíces" ; en otras palabras, para encontrar la parte entera de una raíz, Vincent realiza sustituciones sucesivas de la forma x ← x +1 y se detiene solo cuando los polinomios p ( x ) y p ( x +1) difieren en el número de variaciones de signo en la secuencia de sus coeficientes (es decir, cuando el número de variaciones de signo de p ( x +1) disminuye).
Véase el diagrama correspondiente donde la raíz se encuentra en el intervalo (5, 6). Se puede inferir fácilmente que, si la raíz está lejos del origen, se necesita mucho tiempo para encontrar su parte entera de esta manera, de ahí la naturaleza exponencial del método de Vincent. A continuación se explica cómo se supera este inconveniente.
Vincent fue el último autor del siglo XIX en utilizar su teorema para aislar las raíces reales de un polinomio.
La razón de ello fue la aparición del teorema de Sturm en 1827, que resolvió el problema de aislamiento de raíces reales en tiempo polinomial , definiendo el número preciso de raíces reales que tiene un polinomio en un intervalo abierto real ( a , b ). El método resultante (el de Sturm) para calcular las raíces reales de los polinomios ha sido el único ampliamente conocido y utilizado desde entonces, hasta aproximadamente 1980, cuando fue reemplazado (en casi todos los sistemas de álgebra computacional ) por métodos derivados del teorema de Vincent, siendo el más rápido el método Vincent–Akritas–Strzeboński (VAS). [9]
Serret incluyó en su Álgebra, [10] pp 363–368, el teorema de Vincent junto con su demostración y dirigió a todos los lectores interesados a los artículos de Vincent para obtener ejemplos de cómo se utiliza. Serret fue el último autor en mencionar el teorema de Vincent en el siglo XIX.
En el siglo XX el teorema de Vincent no se puede encontrar en ninguno de los libros de teoría de ecuaciones; las únicas excepciones son los libros de Uspensky [8] y Obreschkoff [7] , donde en el segundo sólo aparece el enunciado del teorema.
Fue en el libro de Uspensky [8] donde Akritas encontró el teorema de Vincent y lo convirtió en el tema de su tesis doctoral "El teorema de Vincent en la manipulación algebraica", Universidad Estatal de Carolina del Norte, EE. UU. , 1978. Un logro importante en ese momento fue conseguir el artículo original de Vincent de 1836, algo que se le había escapado a Uspensky , lo que resultó en un gran malentendido . El artículo original de Vincent de 1836 se puso a disposición de Akritas gracias a los encomiables esfuerzos (préstamo interbibliotecario) de un bibliotecario de la Biblioteca de la Universidad de Wisconsin-Madison, EE. UU .
El aislamiento de las raíces reales de un polinomio es el proceso de encontrar intervalos abiertos disjuntos tales que cada uno contenga exactamente una raíz real y cada raíz real esté contenida en algún intervalo. Según la escuela francesa de matemáticas del siglo XIX, este es el primer paso para calcular las raíces reales, siendo el segundo su aproximación con algún grado de precisión; además, el enfoque está en las raíces positivas , porque para aislar las raíces negativas del polinomio p ( x ) se reemplaza x por − x ( x ← − x ) y se repite el proceso.
La versión de fracciones continuas del teorema de Vincent se puede utilizar para aislar las raíces positivas de un polinomio dado p ( x ) de grado deg( p ). Para ver esto, represente mediante la transformación de Möbius
La fracción continua que conduce a un polinomio transformado.
con una variación de signo en la secuencia de sus coeficientes. Entonces, la raíz positiva única de f ( x ) (en el intervalo (0, ∞)) corresponde a aquella raíz positiva de p ( x ) que está en el intervalo abierto con extremos y . Estos extremos no están ordenados y corresponden a M (0) y M (∞) respectivamente.
Por lo tanto, para aislar las raíces positivas de un polinomio, todo lo que hay que hacer es calcular, para cada raíz, las variables a , b , c , d de la transformación de Möbius correspondiente
que conduce a un polinomio transformado como en la ecuación ( 2 ), con una variación de signo en la secuencia de sus coeficientes.
Observación crucial: Las variables a , b , c , d de una transformación de Möbius
(en el teorema de Vincent) que conduce a un polinomio transformado, como en la ecuación ( 2 ), con una variación de signo en la secuencia de sus coeficientes, se puede calcular:
La "parte de bisección" de esta importante observación apareció como un teorema especial en los artículos de Alesina y Galuzzi. [4] [5]
Todos los métodos descritos a continuación (consulte el artículo sobre el teorema de Budan para conocer sus antecedentes históricos) necesitan calcular (una vez) un límite superior, ub , sobre los valores de las raíces positivas del polinomio en consideración. La excepción es el método VAS, donde además se deben calcular límites inferiores, lb , en casi todos los ciclos del bucle principal. Para calcular el límite inferior lb del polinomio p ( x ), calcule el límite superior ub del polinomio y establezca .
Akritas, Strzeboński y Vigklas han desarrollado excelentes límites (superiores e inferiores) para los valores de las raíces positivas de los polinomios basándose en trabajos previos de Doru Stefanescu. Se describen en la tesis doctoral de PS Vigklas [12] y en otros lugares. [13] Estos límites ya se han implementado en los sistemas de álgebra computacional Mathematica , SageMath , SymPy , Xcas , etc.
Los tres métodos descritos a continuación siguen la excelente presentación de François Boulier, [14] p. 24.
Del teorema de Vincent se deriva un único método de fracciones continuas . Como se ha indicado anteriormente, comenzó en la década de 1830, cuando Vincent presentó en los artículos [1] [2] [3] varios ejemplos que mostraban cómo utilizar su teorema para aislar las raíces reales de polinomios con fracciones continuas . Sin embargo, el método resultante tenía un tiempo de cálculo exponencial . A continuación se ofrece una explicación de cómo evolucionó este método.
Este es el segundo método (después de VCA) desarrollado para manejar el comportamiento exponencial del método de Vincent.
El método de fracciones continuas VAS es una implementación directa del teorema de Vincent. Vincent lo presentó originalmente entre 1834 y 1938 en los artículos [1] [2] [3] en forma exponencial; es decir, Vincent calculó cada cociente parcial a i mediante una serie de incrementos unitarios a i ← a i + 1, que son equivalentes a sustituciones de la forma x ← x + 1.
El método de Vincent fue convertido a su forma de complejidad polinómica por Akritas, quien en su tesis doctoral de 1978 ( Teorema de Vincent en manipulación algebraica , Universidad Estatal de Carolina del Norte, EE. UU.) calculó cada cociente parcial a i como el límite inferior, lb , de los valores de las raíces positivas de un polinomio. Esto se denomina límite inferior positivo ideal de la raíz que calcula la parte entera de la raíz positiva más pequeña (véase la figura correspondiente). Es decir, ahora establezca a i ← lb o, equivalentemente, realice la sustitución x ← x + lb , que lleva aproximadamente el mismo tiempo que la sustitución x ← x + 1.
Finalmente, dado que no existe la cota de raíz inferior positiva ideal, Strzeboński [15] introdujo en 2005 la sustitución , siempre que ; en general y el valor 16 se determinó experimentalmente. Además, se ha demostrado [15] que el método VAS ( fracciones continuas ) es más rápido que la implementación más rápida del método VCA (bisección), [16] un hecho que se confirmó [17] de forma independiente; más precisamente, para los polinomios de Mignotte de alto grado, VAS es aproximadamente 50.000 veces más rápido que la implementación más rápida de VCA.
En 2007, Sharma [18] eliminó la hipótesis del límite inferior positivo ideal y demostró que VAS sigue siendo polinomial en el tiempo.
VAS es el algoritmo predeterminado para el aislamiento de raíces en Mathematica , SageMath , SymPy , Xcas .
Para comparar el método de Sturm y VAS, utilice las funciones realroot(poly) y time(realroot(poly)) de Xcas . De forma predeterminada, para aislar las raíces reales de poly, realroot utiliza el método VAS; para utilizar el método de Sturm, escriba realroot(sturm, poly). Consulte también los enlaces externos para obtener una aplicación de A. Berkakis para dispositivos Android que hace lo mismo.
Así es como funciona VAS( p , M ), donde para simplificar no se incluye la contribución de Strzeboński:
A continuación se muestra una presentación recursiva de VAS( p , M ).
EVA ( p , M ):
Entrada : Un polinomio univariado, libre de cuadrados , de grado deg( p ), y la transformación de Möbius
Salida : Una lista de intervalos de aislamiento de las raíces positivas de p ( x ).
1 var ← el número de variaciones de signo de p ( x ) // Regla de signos de Descartes ;2 si var = 0 entonces DEVUELVE ∅;3 si var = 1 entonces RETURN {( a , b )} // a = min( M (0), M (∞)), b = max( M (0), M (∞)), pero si b = ∞ establece b = ub , donde ub es un límite superior en los valores de las raíces positivas de p ( x );4 lb ← el límite inferior ideal de las raíces positivas de p ( x );5 si lb ≥ 1 entonces p ← p ( x + lb ), M ← M ( x + lb );6 p 01 ← ( x + 1) grados( p ) p ( 1/x + 1 ), M 01 ← M ( 1/x + 1 ) // Busca raíces reales en (0, 1);7 m ← M (1) // ¿1 es una raíz?8 p 1∞ ← p ( x + 1), M 1∞ ← M ( x + 1) // Busca raíces reales en (1, ∞);9 si p (1) ≠ 0 entonces 10 DEVOLVER VAS( p 01 , M 01 ) ∪ VAS( p 1∞ , M 1∞ )11 de lo contrario 12 DEVOLVER VAS( p 01 , M 01 ) ∪ {[ m , m ]} ∪ VAS( p 1∞ , M 1∞ )13 fin
Observaciones
Aplicamos el método VAS a p ( x ) = x 3 − 7 x + 7 (nótese que: M ( x ) = x ).
VAS( x 3 − 7 x + 7, x )1 var ← 2 // el número de variaciones de signo en la secuencia de coeficientes de p ( x ) = x 3 − 7 x + 74 lb ← 1 // el límite inferior ideal, que se obtiene calculando lb y sustituyéndolo(s) x ← x + 15 p ← x 3 + 3 x 2 − 4 x + 1, M ← x + 16 p 01 ← x 3 − x 2 − 2 x + 1, M 01 ← x + 2/x + 1 7 m ← 18 p 1∞ ← x 3 + 6 x 2 + 5 x + 1, M 1∞ ← x + 210 DEVOLVER VAS( x 3 − x 2 − 2 x + 1, x + 2/x + 1 ) ∪ EVA( x 3 + 6 x 2 + 5 x + 1, x + 2)
Lista de intervalos de aislamiento: { }.
Lista de pares { p , M } a procesar:
Retire el primero y proceselo.
EVA( x 3 − x 2 − 2 x + 1, x + 2/x + 1 )1 var ← 2 // el número de variaciones de signo en la secuencia de coeficientes de p ( x ) = x 3 − x 2 − 2 x + 14 lb ← 0 // el límite inferior ideal, que se obtiene calculando lb y sustituyéndolo(s) x ← x + 16 p 01 ← x 3 + x 2 − 2 x − 1, M 01 ← 2x + 3/x + 1 7 m ← 3/2 8 p 1∞ ← x 3 + 2 x 2 − x − 1, M 1∞ ← x + 3/x + 2 10 DEVOLVER VAS( x 3 + x 2 − 2 x − 1, 2x + 3/x + 2 ) ∪ VAS( x 3 + 2 x 2 − x − 1, x + 3/x + 2 )
Lista de intervalos de aislamiento: { }.
Lista de pares { p , M } a procesar:
Retire el primero y proceselo.
EVA( x 3 + x 2 − 2 x − 1, 2x + 3/x + 2 )1 var ← 1 // el número de variaciones de signo en la secuencia de coeficientes de p ( x ) = x 3 + x 2 − 2 x − 13 REGRESAR {( 3/2 , 2)}
Lista de intervalos de aislamiento: {( 3/2 , 2)}.
Lista de pares { p , M } a procesar:
Retire el primero y proceselo.
EVA( x 3 + 2 x 2 − x − 1, x + 3/x + 2 )1 var ← 1 // el número de variaciones de signo en la secuencia de coeficientes de p ( x ) = x 3 + 2 x 2 − x − 13 RETORNO {(1, 3/2 )}
Lista de intervalos de aislamiento: {(1, 3/2 ), ( 3/2 , 2)}.
Lista de pares { p , M } a procesar:
Retire el primero y proceselo.
EVA( x 3 + 6 x 2 + 5 x + 1, x + 2)1 var ← 0 // el número de variaciones de signo en la secuencia de coeficientes de p ( x ) = x 3 + 6 x 2 + 5 x + 12 RETORNO ∅
Lista de intervalos de aislamiento: {(1, 3/2 ), ( 3/2 , 2)}.
Lista de pares { p , M } a procesar: ∅ .
Finalizado.
Por lo tanto, las dos raíces positivas del polinomio p ( x ) = x 3 − 7 x + 7 se encuentran dentro de los intervalos de aislamiento (1, 3/2 ) y ( 3/2 , 2) }. Cada raíz se puede aproximar (por ejemplo) dividiendo en dos el intervalo de aislamiento en el que se encuentra hasta que la diferencia de los puntos finales sea menor que 10 −6 ; siguiendo este enfoque, las raíces resultan ser ρ 1 = 1,3569 y ρ 2 = 1,69202 .
Existen varios métodos de bisección derivados del teorema de Vincent; todos ellos se presentan y comparan en otro lugar. [19] Aquí se describen los dos más importantes, a saber, el método de Vincent–Collins–Akritas (VCA) y el método de Vincent–Alesina–Galuzzi (VAG).
El método de Vincent–Alesina–Galuzzi (VAG) es el más simple de todos los métodos derivados del teorema de Vincent, pero tiene la prueba que consume más tiempo (en la línea 1) para determinar si un polinomio tiene raíces en el intervalo de interés; esto lo convierte en el más lento de los métodos presentados en este artículo.
Por el contrario, el método Vincent–Collins–Akritas (VCA) es más complejo pero utiliza una prueba más simple (en la línea 1) que VAG. Esto, junto con ciertas mejoras [16], han hecho que VCA sea el método de bisección más rápido.
Este fue el primer método desarrollado para superar la naturaleza exponencial del enfoque original de Vincent, y ha tenido una historia bastante interesante en lo que respecta a su nombre. Este método, que aísla las raíces reales, utilizando la regla de los signos de Descartes y el teorema de Vincent, había sido llamado originalmente algoritmo de Uspensky modificado por sus inventores Collins y Akritas. [11] Después de pasar por nombres como "método Collins-Akritas" y "método de Descartes" (demasiado confuso si se considera el artículo de Fourier [20] ), fue finalmente François Boulier, de la Universidad de Lille, quien le dio el nombre de método Vincent-Collins-Akritas (VCA), [14] p. 24, basándose en el hecho de que el "método de Uspensky" no existe [21] y tampoco existe el "método de Descartes". [22] La mejor implementación de este método se debe a Rouillier y Zimmerman, [16] y hasta la fecha, es el método de bisección más rápido. Tiene la misma complejidad en el peor de los casos que el algoritmo de Sturm, pero casi siempre es mucho más rápido. Se ha implementado en el paquete RootFinding de Maple .
Así es como funciona VCA( p , ( a , b )):
A continuación se muestra una presentación recursiva del algoritmo original VCA( p , ( a , b )).
ACV ( p , ( a , b ))
Entrada : Un polinomio univariado sin cuadrados p ( ub * x ) ∈ Z [ x ], p (0) ≠ 0 de grado deg( p ), y el intervalo abierto ( a , b ) = (0, ub ), donde ub es un límite superior de los valores de las raíces positivas de p ( x ). (Las raíces positivas de p ( ub * x ) están todas en el intervalo abierto (0, 1)).
Salida : Una lista de intervalos de aislamiento de las raíces positivas de p ( x )
1 var ← el número de variaciones de signo de ( x + 1) deg( p ) p ( 1/x + 1 ) // " Prueba de raíces 0_1 " de Budan ;2 si var = 0 entonces DEVUELVE ∅;3 si var = 1 entonces DEVOLVER {( a , b )};4 pág. 0 1/2 ← 2 grados( p ) p ( incógnita/2 ) // Busca raíces reales en (0, 1/2 );5 m ← 1/2 ( a + b ) // Es 1/2¿ una raíz?6 p .1/21 ← 2 grados ( p ) p ( x + 1/2 ) // Busca raíces reales en ( 1/2 , 1);7 si p ( 1/2 ) ≠ 0 entonces 8 DEVUELVE VCA ( p 0 1/2 , ( a , m )) ∪ VCA ( p 1/21 , ( m , b ) )9 de lo contrario 10 DEVOLVER VCA ( p 0 1/2 , ( a , m )) ∪ {[ m , m ]} ∪ VCA ( p 1/21 , ( m , b ) )11 fin
Observación
Dado el polinomio p orig ( x ) = x 3 − 7 x + 7 y considerando como límite superior [12] [13] los valores de las raíces positivas ub = 4 los argumentos del método VCA son: p ( x ) = 64 x 3 − 28 x + 7 y ( a , b ) = (0, 4) .
1 var ← 2 // el número de variaciones de signo en la secuencia de coeficientes de ( x + 1) 3 p ( 1/x + 1 ) = 7 x 3 − 7 x 2 − 35 x + 434 pág. 0 1/2← 64 x 3 − 112 x + 565m ← 26 p .1/21 ← 64 x 3 + 192 x 2 + 80 x + 87 pág . (1/2 ) = 18 DEVOLVER VCA(64 x 3 − 112 x + 56, (0, 2)) ∪ VCA(64 x 3 + 192 x 2 + 80 x + 8, (2, 4))
Lista de intervalos de aislamiento: { }.
Lista de pares { p , I } a procesar:
Retire el primero y proceselo.
VCA(64 x 3 − 112 x + 56, (0, 2))1 var ← 2 // el número de variaciones de signo en la secuencia de coeficientes de ( x + 1) 3 p ( 1/x + 1 ) = 56 x 3 + 56 x 2 − 56 x + 84 pág. 0 1/2← 64 x 3 − 448 x + 4485 m ← 16 p .1/21 ← 64 x 3 + 192 x 2 − 256 x + 647 pág . (1/2 ) = 88 DEVOLVER VCA(64 x 3 − 448 x + 448, (0, 1)) ∪ VCA(64 x 3 + 192 x 2 − 256 x + 64, (1, 2))
Lista de intervalos de aislamiento: { }.
Lista de pares { p , I } a procesar:
Retire el primero y proceselo.
VCA(64 x 3 − 448 x + 448, (0, 1))1 var ← 0 // el número de variaciones de signo en la secuencia de coeficientes de ( x + 1) 3 p ( 1/x + 1 ) = 448 x 3 + 896 x 2 + 448 x + 642 RETORNO ∅
Lista de intervalos de aislamiento: { }.
Lista de pares { p , I } a procesar:
Retire el primero y proceselo.
VCA(64 x 3 + 192 x 2 − 256 x + 64, (1, 2))1 var ← 2 // el número de variaciones de signo en la secuencia de coeficientes de ( x + 1) 3 p ( 1/x + 1 ) = 64 x 3 − 64 x 2 − 128 x + 644 pág. 0 1/2← 64 x 3 + 384 x 2 − 1024 x + 5125 m ← 3/26 p .1/21 ← 64 x 3 + 576 x 2 − 64 x + 647 pág . (1/2 ) = −88 DEVOLVER VCA(64 x 3 + 384 x 2 − 1024 x + 512, (1, 3/2 )) ∪ VCA(64 x 3 + 576 x 2 − 64 x − 64, ( 3/2 , 2))
Lista de intervalos de aislamiento: { }.
Lista de pares { p , I } a procesar:
Retire el primero y proceselo.
VCA(64 x 3 + 384 x 2 − 1024 x + 512, (1, 3/2 ))1 var ← 1 // el número de variaciones de signo en la secuencia de coeficientes de ( x + 1) 3 p ( 1/x + 1 ) = 512 x 3 + 512 x 2 − 128 x − 643 RETORNO {(1, 3/2 )}
Lista de intervalos de aislamiento: {(1, 3/2 )}.
Lista de pares { p , I } a procesar:
Retire el primero y proceselo.
VCA(64 x 3 + 576 x 2 − 64 x − 64, ( 3/2 , 2))
1 var ← 1 // el número de variaciones de signo en la secuencia de coeficientes de ( x + 1) 3 p ( 1/x + 1 ) = −64 x 3 − 256 x 2 + 256 x + 5123 REGRESAR {( 3/2 , 2)}
Lista de intervalos de aislamiento: {(1, 3/2 ), ( 3/2 , 2)}.
Lista de pares { p , I } a procesar:
Retire el primero y proceselo.
VCA(64 x 3 + 192 x 2 + 80 x + 8, (2, 4))1 var ← 0 // el número de variaciones de signo en la secuencia de coeficientes de ( x + 1) 3 p ( 1/x + 1 ) = 8 x 3 + 104 x 2 + 376 x + 3442 RETORNO ∅
Lista de intervalos de aislamiento: {(1, 3/2 ), ( 3/2 , 2)}.
Lista de pares { p , I } a procesar: ∅ .
Finalizado.
Por lo tanto, las dos raíces positivas del polinomio p ( x ) = x 3 − 7 x + 7 se encuentran dentro de los intervalos de aislamiento (1, 3/2 ) y ( 3/2 , 2) }. Cada raíz se puede aproximar (por ejemplo) dividiendo en dos el intervalo de aislamiento en el que se encuentra hasta que la diferencia de los puntos finales sea menor que 10 −6 ; siguiendo este enfoque, las raíces resultan ser ρ 1 = 1,3569 y ρ 2 = 1,69202 .
Éste fue el último desarrollado y es el método de aislamiento de raíces reales más simple derivado del teorema de Vincent.
Así es como funciona VAG( p , ( a , b )):
A continuación se muestra una presentación recursiva de VAG( p , ( a , b )).
VAG ( p , ( a , b ))
Entrada : Un polinomio univariado, libre de cuadrados p ( x ) ∈ Z [ x ], p (0) ≠ 0 de grado deg( p ) y el intervalo abierto ( a , b ) = (0, ub ), donde ub es un límite superior de los valores de las raíces positivas de p ( x ).
Salida : Una lista de intervalos aislantes de las raíces positivas de p ( x ).
1 var ← el número de variaciones de signo de ( x + 1) deg( p ) p ( a + bx/1 + x ) // La prueba de raíces a_b de Alesina–Galuzzi;2 si var = 0 entonces DEVUELVE ∅;3 si var = 1 entonces DEVOLVER {( a , b )};4 m ← 1/2 ( a + b ) // Subdividir el intervalo ( a , b ) en dos partes iguales;5 si p ( m ) ≠ 0 entonces 6 DEVOLVER VAG( p , ( a , m )) ∪ VAG( p , ( m , b ))7 de lo contrario 8 DEVOLVER VAG( p , ( a , m )) ∪ {[ m , m ]} ∪ VAG( p , ( m , b ))9 fin
Observaciones
Dado el polinomio p ( x ) = x 3 − 7 x + 7 y considerando como cota superior [12] [13] los valores de las raíces positivas ub = 4 los argumentos de VAG son: p ( x ) = x 3 − 7 x + 7 y ( a , b ) = (0, 4).
1 var ← 2 // el número de variaciones de signo en la secuencia de coeficientes de ( x + 1) 3 p ( 4x/x + 1 ) = 43 x 3 − 35 x 2 − 7 x + 74 m ← 1/2 (0 + 4) = 25 p ( m ) = 18 DEVOLVER VAG( x 3 − 7 x + 7, (0, 2)) ∪ VAG( x 3 − 7 x + 7, (2, 4)
Lista de intervalos de aislamiento: {}.
Lista de intervalos a procesar: {(0, 2), (2, 4)}.
Retire el primero y proceselo.
VAG( x3 − 7x + 7, (0, 2))1 var ← 2 // el número de variaciones de signo en la secuencia de coeficientes de ( x + 1) 3 p ( 2x/x + 1 ) = x 3 − 7 x 2 + 7 x + 74 m ← 1/2 (0 + 2) = 15 p ( m ) = 18 DEVOLVER VAG( x 3 − 7 x + 7, (0, 1)) ∪ VAG( x 3 − 7 x + 7, (1, 2)
Lista de intervalos de aislamiento: {}.
Lista de intervalos a procesar: {(0, 1), (1, 2), (2, 4)}.
Retire el primero y proceselo.
VAG( x3 − 7x + 7, (0, 1))1 var ← 0 // el número de variaciones de signo en la secuencia de coeficientes de ( x + 1) 3 p ( incógnita/x + 1 ) = x3 + 7 x2 + 14 x + 72 RETORNO ∅
Lista de intervalos de aislamiento: {}.
Lista de intervalos a procesar: {(1, 2), (2, 4)}.
Retire el primero y proceselo.
VAG( x3 − 7x + 7, (1, 2))1 var ← 2 // el número de variaciones de signo en la secuencia de coeficientes de ( x + 1) 3 p ( 2x + 1/x + 1 ) = x 3 − 2 x 2 − x + 14 m ← 1/2 (1 + 2) = 3/25 p ( m ) = − 1/8 8 RETORNO VAG( x 3 − 7 x + 7, (1, 3/2 )) ∪ VAG( x 3 − 7 x + 7, ( 3/2 , 2))
Lista de intervalos de aislamiento: {}.
Lista de intervalos a procesar: {(1, 3/2 ), ( 3/2 , 2), (2, 4)}.
Retire el primero y proceselo.
VAG( x 3 − 7 x + 7, (1, 3/2 ))1 var ← 1 // el número de variaciones de signo en la secuencia de coeficientes de 2 3 ( x + 1) 3 p ( 3/2 x + 1/x + 1 ) = x 3 + 2 x 2 − 8 x − 83 REGRESO (1, 3/2 )
Lista de intervalos de aislamiento: {(1, 3/2 )}.
Lista de intervalos a procesar: {( 3/2 , 2), (2, 4)}.
Retire el primero y proceselo.
VAG( x 3 − 7 x + 7, ( 3/2 , 2))1 var ← 1 // el número de variaciones de signo en la secuencia de coeficientes de 2 3 ( x + 1) 3 p ( 2x + 3/2/x + 1 ) = 8 x 3 + 4 x 2 − 4 x − 13 REGRESO ( 3/2 , 2)
Lista de intervalos de aislamiento: {(1, 3/2 ), ( 3/2 , 2)}.
Lista de intervalos a procesar: {(2, 4)}.
Retire el primero y proceselo.
VAG( x 3 − 7 x + 7, (2, 4))1 var ← 0 // el número de variaciones de signo en la secuencia de coeficientes de ( x + 1) 3 p ( 4x + 2/x + 1 ) = 344 x 3 + 376 x 2 + 104 x + 82 RETORNO ∅
Lista de intervalos de aislamiento: {(1, 3/2 ), ( 3/2 , 2)}.
Listado de intervalos a procesar: ∅.
Finalizado.
Por lo tanto, las dos raíces positivas del polinomio p ( x ) = x 3 − 7 x + 7 se encuentran dentro de los intervalos de aislamiento (1, 3/2 ) y ( 3/2 , 2) }. Cada raíz se puede aproximar (por ejemplo) dividiendo en dos el intervalo de aislamiento en el que se encuentra hasta que la diferencia de los puntos finales sea menor que 10 −6 ; siguiendo este enfoque, las raíces resultan ser ρ 1 = 1,3569 y ρ 2 = 1,69202 .
{{cite book}}
: CS1 maint: multiple names: authors list (link){{cite journal}}
: CS1 maint: multiple names: authors list (link)