n z n . 2 2 2 2 2 2 2 z 2 2 2 1
Acotación de los ceros de un polinomio. Aladar Peter Santha
§0. Introducción.
Si C a bi / a, b R, i 2 1 es el cuerpo de los números complejos, teniendo en cuenta la representación de los números complejos en el plano (Figura 0.1) z a bi i
O r
a b Figura 0.1 , resulta que a r cos , b rsen . Así se llega a la forma trigonométrica: z r cos i sen (r z 0, 2k 2k , k Z ) , donde r es el módulo y es el argumento del número complejo z . Si z1 r1 cos 1 i sen 1 y z2 r2 cos 2 i sen 2 entonces se tienen las fórmulas siguientes: z1 z 2 r1r2 cos( 1 2 ) i sen ( 1 2 , z r n cos n i sen n , z1 z 2 z1 z 2 , arg z1 z 2 arg z1 arg z 2 , z n , arg z n n arg z Lema 0.1: Cualesquiera que sean los números reales a1 , b1 , a2 , b2 a1a2 b1b2 2 a1 b12 a2 2 b2 (01) En efecto, para comparar dos números reales positivos es suficiente comparar sus cuadrados: a1a2 b1b2 2 2 2 2 a1 a2 b1 b2 2a1a2 b1b2 2 a1 b12 a2 2 b2 2 2 a1 b12 a2 2 b2 2 2 a1 a2 2 2 a1 b2 b12 a2 b12 b2 a1b1 a2 b2 2 2 a1 b12 a2 2 b2 2 a1b2 a2 b1 2 0 Teorema 0.1: Si z1 a1 ib1 y z 2 a2 ib2 entonces z1 z 2 z1 z 2 (0.2) En efecto, para comparar los números reales positivos z1 z 2 sus cuadrados: y z1 hay que comparar z1 z 2 2 a1 a2 2 b1 b2 2 z1 2 z 2 2 2 a1a2 b1b2 z1 z 2 2 z1 2 z 2 2 2 z1 z 2 Según el lema 0.1, z1 z 2 2 z1 z 2 2 2 a1 a 2 b1b2 2 a1 b12 a 2 2 b2 2 a1 a 2 b1b2 2 a1 b12 a 2 2 b2 0 , de donde resulta la desigualdad (02). Observación 0.1: Por recurrencia se puede demostrar que z1 z 2 ? z n z1 z 2 ? z n (0.3) Teorema 0.2 z1 a1 ib1 y z 2 a2 ib2 entonces z1 z 2 z1 z 2 (0.4)
2 2 z1 z 2 z1 * f x 1 1 k 2
Tal como en el teorema 0.1, para comparar dos números reales positivos es suficiente comparar sus cuadrados. Puesto que z1 z 2 2 a1 a2 2 b1 b2 2 2 a1 2 2 2 a2 b1 b2 2 a1a2 b1b2 z1 z 2 2 z1 2 z 2 2 2 z1 z 2 2 a1 2 a 2 b12 2 b2 2 2 a1 b12 a 2 2 b2 , según el lema 0.1, resulta que z1 z 2 2 z1 z 2 2 2 a1 a 2 b1b2 2 a1 b12 a 2 2 b2 0 Observación 0.2: Puesto que z 2 , del teorema 0.2 resulta que z1 z 2 z1 z 2 §1. Cotas de los módulos de los ceros de una función polinomio compleja. Sea C el cuerpo de los números complejos y sea f : C coeficientes complejos, definida por C una función polinomio con f ( x) a0 x n a1 x n 1 ? an 1 x an (a0 0) . (1.1) Definición 1.1: Se dice que L R es una cota superior de los módulos de los ceros de f si L , cualquiera que sea el cero no nulo de f . Definición 1.2: Se dice que l R* es una cota inferior de los módulos de los ceros de f si l , cualquiera que sea el cero no nulo de f . Teorema 1.1: Si a max a1 , ? , an , entonces x 1 a a0 f x 0 Demostración: Puesto que x 1 a a0 1 x 1 a0 a , según las relaciones (0.4) y (0.2) resulta que a0 x n a1 x n 1 ? an 1 x an a0 x n a1 x n ? an 1 x an a0 x n a0 x n a1 x n 1 a x n 1
? ?
x 1 an 1 x an a0 xn a x x n 1 1 a0 x n a a0 a x n 1 a0 0 Observación 1.1: Si an an ? an k 1 0 y an 0 1 k n , resulta que k f ( x) x a0 x n k ? an k , y así los ceros de la función g, definida por g ( x) a0 x n k ? an k an k 0 , son justamente los ceros no nulos de f . Así, el cálculo de L y l reduce al mismo cálculo para la función g . para la función f se
xi 1 1 x . L' 1 1 1 l 3
Teorema 1.2: Si f : C C es una función polinomio compleja con coeficientes complejos, definida por (1.1), donde an 0 , entonces cualquiera que sea el cero de f , tendremos , donde l L L 1 a a0 y a max a1 , ? , an (1.2) l an an b y b max a0 , ? , an 1 (1.3) Demostración: Si x L , entonces según el teorema 1.1 resulta que f (x) 0 y así x no puede ser un cero de f . Por tanto, L es una cota superior de los ceros de f . Si xi i 1, ? , n son las raíces de f , i 1, ? , n son los ceros de f1 ( x) x n f Si L' es una cota superior de los módulos de los ceros de f1 x , entonces 1 xi 1 xi L' xi 1 L' i 1, ,? , n Por tanto l es una cota inferior de los módulos de los ceros de f . Luego, puesto que f1 ( x) an x n an 1 x n ? a1 x a0 , , según la fórmula (1.2), L' 1 b an donde b max a0 , ? , an y así 1 L' an an b y
xa x3 A B O C D x C1 x1 C2 x 2 Figura 1.1
4
Observación 1.2: Intuitivamente, el teorema 1.2 tiene el significado siguiente: los ceros de la función f , definida por la relación (1.2) y que verifica la condición an 0 , están situados en la corona circular determinada por dos circunferencias C1 y C2 de centro O y de radios l y L , respectivamente, tal como se ve en la figura 1.1. Observación 1.3: Puesto que R C las fórmulas (1.2) y (1.3) sirven también para calcular las cotas de los ceros complejos o reales de un polinomio con coeficientes reales. El código necesario para calcular las cotas (1.2) y (1.3) es el siguiente:
Public Function CotasCerosPC(ByRef p10() As Double, p20() As Double) As Variant Dim i As Integer, z As Integer, e As Integer, gq As Integer Dim a As Double, b As Double, r(2) As Double, md() As Double Dim p1() As Double, p2() As Double gp = UBound(p10()) If p10(gp) = 0 And p20(gp) = 0 Then gp = CerosFinalesCD(p10(), p20()) ReDim p1(gp), p2(gp) For i = 0 To gp: p1(i) = p10(i): Next i For i = 0 To gp: p2(i) = p20(i): Next i Else p1() = p10(): p2() = p20() End If ReDim md(gp) As Double For i = 0 To gp md(i) = Sqr(p1(i) * p1(i) + p2(i) * p2(i)) Next i ' Método Anónimo ' r(1) cota superior de los módulos de lo ceros ' r(2) cota inferior de los módulos de los ceros 'For i = 0 To gp a = md(1) For i = 2 To gp If md(i) > a Then a = md(i) Next i b = md(0) For i = 1 To gp – 1 If md(i) > b Then b = md(i) Next i r(1) = 1 + a / md(0) r(2) = md(gp) / (b + md(gp)) r(1) = (Int(r(1) * 100) + 1) / 100 r(2) = (Int(r(2) * 100) – 1) / 100 If r(2) < 0 Then r(2) = 0 CotasCerosPC = r() End Function - – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – — Public Function CerosFinalesC(ByRef p1() As Double, ByRef p2() As Double) As Integer ' Contar los coeficientes nulos al final del polinomio Dim i As Integer, z As Integer, grado As Integer Dim q() As Double, gq As Integer grado = UBound(p1()) If p1(grado) = 0 And p2(grado) = 0 Then i = grado: z = 0 Do Until p1(i) 0 Or p2(i) 0 Or i = 0 i = i – 1: z = z + 1 Loop End If gq = grado – z CerosFinalesC = gq Ejemplo 1.1: Utilizando la función CotasCerosPC complejos: en el caso del polinomio con coeficientes P( Z ) 2 3i Z 5 5 7i Z 4 1 4i Z 3 6 7i Z 2 12 5i Z 4 3i Resulta que 3.39 (0.26) es una cota superior (inferior) de los módulos de los ceros complejos. Observación 1.4: En el caso de los polinomios duales (con coeficientes de la forma
2 R r . 5 (a b , a, b R , 0 y 0) no se puede establecer una cota superior de los módulos de sus ceros (tal como se ha hecho en el caso de los polinomios complejos). Para justificar esta afirmación basta con presentar un polinomio dual que tiene infinidad de ceros y cuyos módulos forman un conjunto que no está acotado superiormente. En efecto, si se considera el polinomio sencillo P X 2 X 1 X 4 3 X 4 3 2 X 1 x 4 2 2 X 3 15 X 2 24 8 16 16 , entonces teniendo en cuenta que para todos los números duales de la forma xr 4 r , r xr 4 2 r 2 r 2 2 r 2 0 0 , resulta que P xr 0 , y lim xr r lim 16 r 2 Evidentemente esto ocurre siempre cuando el polinomio tiene por lo menos un par de ceros duales conjugados. Observación 1.5: El polinomio P(X ) de la observación 1.4 es de grado 3 y tiene infinidades de ceros. Por tanto para los polinomios con coeficientes duales el teorema de DAlembert no es válido (es decir el número de los ceros duales de un polinomio dual no es siempre igual con su grado).
§.2. Cotas de los ceros reales de una función polinomio real. Sea f : R R la función polinomio real definida por f ( x) a0 x n a1 x n 1 ? an 1 x an (2.1) Definición 2.1: L1 R es una cota superior de los ceros estrictamente positivos de f si no hay ningún cero de este tipo mayor o igual que L1 . Definición 2.2: L3 R es una cota inferior de los ceros estrictamente positivos de f si no hay ningún cero de éste tipo menor o igual que L3 . Observación 2.1: Si L1 es una cota superior de los ceros estrictamente positivos, entonces cualquier número real positivo mayor que L1 , es una cota superior de ellos. De manera análoga, cualquier número real positivo menor que L3 , es una cota inferior de los ceros estrictamente positivos de f . Obviamente nos interesa el menor valor posible de L1 o bien el mayor valor posible de L3 . Observación 2.2: Evidentemente, 0 es una cota superior de los ceros estrictamente positivos de f si, y solamente si, f no tiene ceros de este tipo. De manera análoga, es una cota inferior de los ceros estrictamente positivos de f si, y solamente si, no hay ceros de este tipo. Definición 2.3: L2 R es una cota inferior de los ceros estrictamente negativos de f si no hay ningún cero de este tipo menor o igual que L2 . Definición 2.4: L4 R es una cota superior de los ceros estrictamente negativos de f si no hay ningún cero de éste tipo mayor o igual que L4. Observación 2.3: Si L2 es una cota inferior de los ceros estrictamente negativos, entonces cualquier número real negativo menor que L2 , es una cota inferior de ellos. De manera análoga, cualquier número real negativo mayor que L4 , es una cota superior de los ceros estrictamente negativos de f . Obviamente, en este caso también nos interesan el mayor y el menor valor posible de L2 y L4 , respectivamente. Observación 2.4: Obviamente, 0 es una cota inferior de los ceros estrictamente negativos de f si, y solamente si, f no tiene ceros de este tipo. De manera análoga, es una cota
6
superior de los ceros estrictamente negativos de f si, y solamente si, f no tiene ningún cero de este tipo. Observación 2.5: Si en la definición (2.1) de f tenemos an ? an k 1 0 y an k 0 , , entonces, f ( x) x k a0 x n k ? an k , , y sea g : R R definida por g ( x) a0 x n k ? an k . Puesto que el conjunto de los ceros no nulos de f coincide con el conjunto de los ceros de g, el cálculo de L1 , L2 L3 y L4 para f se reduce al cálculo de las mismas cotas para g . Teorema 2.1: Si la función polinomio f está definida por la relación (2.1) y an 0 , entonces L1 1 a a0 , L3 an an b , L2 L1 y L4 L3 (2. 2) , donde a max a1 , ? , an y b max a0 , ? , an 1 Demostración: Según el teorema 1.2, los ceros complejos no nulos de f (entre ellos los ceros reales) tienen que ser situados en el interior de la corona circular determinada por las circunferencias C1 y C2 de centro O y de radios L3 y L1 , respectivamente (ver figura 1.1). Los puntos de corte de estas circunferencias con el eje Ox tienen las abscisas xA L1 , xB L3 , xC L3 y xD L1 , respectivamente. Entonces es obvio que, fuera del intervalo C , D no puede existir ningún cero estrictamente positivo, mientras que fuera del intervalo A , B no pueden existir ceros estrictamente negativos. Así, quedan demostradas las fórmulas (2.2) y la codificación de los cálculos es la siguiente:
Public Function AnonimoPR(ByRef p0() As Double) As Variant ' MÉTODO ÁNÓNIMO Dim a As Double, b As Double, gp As Integer, y(4) As String Dim p() As Double, res(4) As String, xx(4) As Double p() = CerosFinalesR(p0) gp = UBound(p()) a = Abs(p(1)) For i = 2 To gp If Abs(p(i)) > a Then a = Abs(p(i)) End If Next i b = Abs(p(0)) For i = 1 To gp – 1 If Abs(p(i)) > b Then b = Abs(p(i)) End If Next i xx(1) = 1 + a / Abs(p(0)): xx(1) = Redondeo(xx(1), 1): xx(2) = -xx(1) xx(3) = Abs(p(gp) / (Abs(p(gp) + b))): xx(3) = Redondeo(xx(3), 3): xx(4) = -xx(3) For i = 1 To 4: y(i) = FormatoNumero(xx(i)): Next i res(4) = y(1) ' Cota superior ceros positivos res(1) = y(2) ' Cota inferior ceros negativos res(3) = y(3) ' Cota inferior ceros positivos res(2) = y(4) ' Cota superior ceros negativos Anonimo = res() End Function ———————– –
7
Public Function CerosFinalesR(ByRef p() As Double) As Variant ' Supresión de ceros al final del polinomio Dim i As Integer, z As Integer, grado As Integer Dim q() As Double, gq As Integer grado = UBound(p()) If p(grado) = 0 Then i = grado: z = 0 Do Until p(i) 0 Or i = 0 i = i – 1: z = z + 1 Loop End If gq = grado – z ReDim q(gq) For i = 0 To gq: q(i) = p(i): Next i CerosFinalesR = q() End Function ——————– Public Function Redondeo(ByVal ls As Double, ByVal k As Integer) ' REDONDEO DE LAS COTAS Dim valor As Double valor = ls * 100 If valor Int(valor) Then ' hay más que 2 decimales If k = 2 Or k = 3 Then ls = (Int(valor) – 1) / 100 Else ls = (Int(valor) + 1) / 100 End If End If Redondeo = ls End Function
Ejemplo 2.1: Si se considera el polinomio siguiente con coeficientes reales: P X 31X 5 123 X 4 47 X 3 84 X 2 72 X 65 , según el código anterior resulta que si es un cero real del polinomio entonces 4.97, 0.33 0.33,4.97 Los módulos de los ceros complejos pertenecen al intervalo: (0.33 , 4.97)
Teorema 2.2: Sea K3 una cota superior de los ceros estrictamente positivos de la función polinomio f 3 : x x n f 1 x Si K 3 0 ,1/ K 3 es una cota inferior de los ceros estrictamente positivos de f . Si K 3 0 , la cota inferior de los ceros estrictamente positivos de f es el , es decir, no hay tales ceros. Demostración: Primero, si es un cero estrictamente positivo de f , entonces 1 / es un cero estrictamente positivo de f 3 : f 3 1 n f 0 Si K 3 0 , f 3 no tiene ceros estrictamente positivos y así f tampoco tendrá ceros de este tipo. Por tanto, en este caso el f . Si K3 > 0, entonces es una cota inferior de los ceros estrictamente positivos de x K 3 f 1 x 0 (2.3) Puesto que
8 0 y 1 K 3 1 y K 3 , según (2.3), resulta que 0 y 1 K 3 f y 0 . Así pues, f no tiene ceros estrictamente positivos menores o iguales que 1 / K3 . Por tanto, 1 / K3 es una cota inferior de los ceros estrictamente positivos de f . Teorema 2.3: Si K 2 es una cota superior de los ceros estrictamente positivos de la función polinomio f 2 : x f x , , entonces K 2 es una cota inferior de los ceros estrictamente negativos de f . Demostración: Dado que , y que x K 2 f x 0 , resulta que y K 2 y K 2 y K 2 f y 0 . De esta última implicación resulta que f no puede tener ningún cero estrictamente negativo, menor o igual que K 2 . Por tanto K 2 es una cota inferior de los ceros estrictamente negativas de f . Teorema 2.4: Sea K 4 una cota superior de los ceros estrictamente positivos de la función polinomio f 4 : x x n f 1 x , entonces 1 / K 4 ó es una cota superior de los ceros estrictamente negativos de f , según que K 4 0 ó K 4 0 , respectivamente. Demostración: Si es un cero estrictamente negativo de f , entonces 1/ es un cero estrictamente positivo de f 4 , puesto que f 4 1 1 n f 0 Si K 4 0 , entonces f 4 no tiene ceros estrictamente positivos y, por tanto, f tampoco tendrá raíces de este tipo, es decir, el negativos de f . Si K 4 0 , teniendo en cuenta que será una cota superior para los ceros estrictamente x K 4 f 1 x 0 , y que 1 K 4 y 0 1 y K 4 , se obtiene que
1 / K 4 k k k 9 1 K 4 y 0 f y 0 . Con otras palabras, f no tiene ceros estrictamente negativos mayores o iguales que y así 1 / K 4 es una cota superior para los ceros estrictamente negativos de f . De los últimos tres teoremas resulta que es bastante hallar métodos para el cálculo de las cotas superiores de los ceros estrictamente positivos de una función polinomio, puesto que el cálculo de los otras cotas se reduce a esto. Dado que en los tiempos anteriores a la aparición de los ordenadores las cotas calculadas con las fórmulas (2.2) no eran consideradas de las mejores, en el caso de los polinomios reales se han buscado otros métodos más satisfactorios. Teorema 2.5 (de Lagrange): Si la función polinomio no nula f , definida por (2.1), cumple la condición ai 0 i 0, 1, ? , n (2.4) , entonces 0 es una cota superior de los ceros estrictamente positivos de f puesto que para cualquier x 0 resulta que f x 0 , es decir, f no tiene ceros estrictamente positivos. Si a0 0 y no todos los coeficientes restantes son mayores o iguales que 0, sea ak el primer coeficiente negativo y sea A el mayor número entre los valores absolutos de los coeficientes negativos. Entonces L 1 k A a0 , es una cota superior de los ceros estrictamente positivas de f . En efecto, en este último caso, sustituyendo en la expresión de f x los coeficientes positivos a1 , a2 , ? , ak 1 con ceros y los coeficientes ak , ? an con A, f x decrecerá, y así tendremos: f ( x) a0 x n ? ak 1 x n k 1 ak x n ? an a0 x n A x n ? x 1 Por otra parte, x 1 k A a0 x 1 k A a0 , y por tanto, f x a0 x n A x n k 1 1 x 1 a0 x n Ax n k 1 x 1 f x x n k 1 x 1 a0 x k 1 x 1 A x n k 1 x 1 a0 x 1 A f x x n k 1 a0 A x 1 a0 A 0 Así pues, si x L , f x no puede anularse y por tanto, L es una cota superior de los ceros estrictamente positivos de f . El procedimiento siguiente calcula las cotas de los ceros reales según el método basado en el teorema anterior.
Public Function Lagrange1(ByRef p0() As Double) As Variant
10 '—— PRIMER MÉTODO DE LAGRANGE ——- Dim i As Integer, j As Integer, k As Integer, sw As Integer, w As Integer Dim cs As Double, gp As Integer, ic(4) As Integer, t As Double Dim p() As Double, res(4) As String, ct() As Double, h() As Double ic(1) = 4: ic(2) = 1: ic(3) = 3: ic(4) = 2 p() = CerosFinalesR(p0()) gp = UBound(p()) ct() = Transformaciones(p()) For k = 1 To 4 ReDim h(gp) j = 0: sw = 0 For i = 1 To gp If ct(i, k) < 0 Then h(j) = Abs(ct(i, k)) j=j+1 If sw = 0 Then w = i: sw = 1 End If End If Next i t = h(0) For i = 1 To j – 1 If h(i) > t Then t = h(i) Next i If sw = 0 Then cs = 0 Else cs = 1 + Abs(t / ct(0, k)) ^ (1 / w) End If res(ic(k)) = RutinaCotas(cs, k) Next k Lagrange1 = res() End Function ————————————– Public Function Transformaciones(ByRef p0() As Double) As Variant Dim gp As Integer, e As Integer, k As Integer Dim ct() As Double, p() As Double, i As Integer p() = CerosFinales(p0()) gp = UBound(p()) ReDim ct(gp, 4) For i = 0 To gp: ct(i, 1) = p(i): Next i ' TRANSFORMACIONES DEL POLINOMIO 'Dim i As Integer, z As Integer, e As Integer ' Transformación de X en -X e = gp Mod 2 For i = 0 To gp If e 0 Then ct(i, 2) = (-1) ^ (i + 1) * ct(i, 1) Else ct(i, 2) = (-1) ^ i * ct(i, 1) End If Next i ' Transformación de X en 1/X y de X en -1/X For i = 0 To gp ct(i, 3) = ct(gp – i, 1) ct(i, 4) = ct(gp – i, 2) Next i For k = 1 To 4 If ct(0, k) < 0 Then For i = 0 To gp ct(i, k) = -ct(i, k) Next i End If Next k Transformaciones = ct() End Function —————————————- Public Function RutinaCotas(ByVal cs As Double, ByVal k As Integer) As String Dim res As String If k = 1 Then 'Cota superior ceros positivos cs = Redondeo(cs, k): res = FormatoNumero(cs)
f ( x) * 11
End If If k = 2 Then 'Cota inferior ceros negativos cs = Redondeo(-cs, k): res = FormatoNumero(cs) End If If k = 3 Then 'Cota inferior ceros positivos If cs 0 Then cs = Redondeo(1 / cs, k): res = FormatoNumero(cs) Else res = "+infinito" End If End If If k = 4 Then 'Cota superior ceros negativos If cs 0 Then cs = Redondeo(-1 / cs, k): res = FormatoNumero(cs) Else res = "-infinito" End If End If RutinaCotas = res End Function —————————————- Public Function FormatoNumero(ByVal x As Double) As String Dim xx As String xx = Str$(x) If Abs(x) >= 1 Then FormatoNumero = Str$(x) Else If Left$(xx, 1) = "-" Then FormatoNumero = "-0" + Right$(xx, Len(xx) – 1) Else If x = 0 Then FormatoNumero = Str$(0) Else FormatoNumero = "0" + Right$(xx, Len(xx) – 1) End If End If End If End Function
Ejemplo 2.2: Si 2×12 3×11 4×10 7 x 9 10×8 8x 7 9x 6 5x 5 4x 4 6x 3 2x 2 2x 7 , y es uno de sus ceros reales entonces 3.25 , 0.45 0.4 , 6 Teorema 2.6 (de Lagrange): Si f es la función polinomio definida por (2.1) y a0 0 , existe c R* tal que f c 0 y en la sucesión de los coeficientes no nulos hay exactamente un par de números consecutivos de signos contrarios, entonces x c f (x) 0 , , es decir, c es una cota superior de los ceros estrictamente positivos de f . Demostración: Dado que a0 0 y lim f x x , existirá r R tal que f x sea mayor que cero para x mayor que r. Por tanto c podría ser cualquier número real mayor que r. Luego, según las hipótesis, existirá en la sucesión de los coeficientes un término ak tal que ak 0 y que este término separe los términos positivos de los negativos. Si ak t es el primer término negativo no nulo, entonces
k t k t t R * 12 f x a0 x n ? ak x n ak 1 x n k 1 ? an x n k a0 x k ? ak ak x ? an x x n k g x h x , donde g ( x) a0 x k ? ak h x ak x t ? an . x k Teniendo ahora en cuenta que de x c 0 resultan las desigualdades: x n k c n k , g ( x) g (c) y h( x) h(c) , , de x c 0 y de f c 0 resultará que f ( x) x n k g ( x) h( x) c n k g (c) h(c) 0 . Así, c es una cota superior de los ceros estrictamente positivos de f . Si la función polinomio f está definida por la relación (2.1) y a0 0 entonces se puede escribir a f x de la manera siguiente: f ( x) f1 ( x) f 2 ( x) ? f m ( x) , , donde las funciones polinomios f i i 1, ? , m o bien tienen todos los coeficientes positivos o bien verifican las condiciones del teorema (2.6). Por ejemplo, si f x 5x 9 9×8 2x 6 4x 5 33x 4 2x 3 7 x 1 , entonces las funciones f1 , f 2 , f 3 se definen de la manera siguiente: f1 x 5x 9 9×8 f 2 x f 3 x 2x 6 4x 5 7 x 1 33x 4 2x 3 , y obviamente, f x f1 x f 2 x f 3 x . Si ci i 1, ? , m son tales que f i ci 0 i 1, ? , m , y c x ci f i (x) 0 max c1 , c2 ,? , cm , , cualquiera que sea i 1, ? , m . Por tanto, tendremos también x c f (x) 0 , , y así c será una cota superior de los ceros estrictamente positivas de f . Si en el ejemplo anterior se observa que f1 x x8 5x 9 f 2 x f 3 x x 3 2x 3 4x 2 33x 2 7 x 1 , entonces se verifica fácilmente que c1 2 , c2 4 y c3 1 . Por tanto 4 es una cota superior de los ceros estrictamente positivos de f . Observación 2.6: Si a0 0 , entonces teniendo en cuenta que f y f tienen los mismos ceros, para hallar una cota superior de los ceros estrictamente positivos de f , hay que aplicar
13 el mismo procedimiento que antes, pero para la función f . El método expuesto en el teorema 2.6 se puede codificar de la manera siguiente: Public Function Lagrange2(ByRef p0() As Double) As Variant ' —– SEGUNDO MÉTODO DE LAGRANGE —– Dim i As Integer, j As Integer, k As Integer, ic(4) As Integer Dim sg As Integer, ng As Integer, sw As Integer, gp As Integer Dim ps As Single, cs As Double, a As Double, fa As Double Dim i1() As Integer, f1() As Double, ct() As Double Dim p() As Double, res(4) As String ic(1) = 4: ic(2) = 1: ic(3) = 3: ic(4) = 2 p() = CerosFinalesR(p0()) gp = UBound(p()) ct() = Transformaciones(p()) For k = 1 To 4 ' ==== NÚMERO DE LOS GRUPOS sg = 1: j = 0 For i = 0 To gp If ct(i, k) < 0 Or sg 1 Then If ct(i, k)