Raices de Poliomios Jorge Eduardo Ortiz Triviño jeortizt@ual.edu.co http://www.docetes.ual.edu.co/jeortizt/
Defiició U poliomio de grado es ua epresió de la forma: Dode a <> 0 P() = a + a - - +... +a + a 0 Teorema (teorema fudametal del álgebra): Si P() es u poliomio de grado >=, etoces P() = 0 tiee al meos ua raíz (posiblemete compleja).
Corolario Si P() es u poliomio de grado >=, etoces eiste costates úicas,,... k, posiblemete complejas, y eteros positivos m, m,..., m k, tales que: y k i m i m m m k P( ) a... k
Método de Horer Sea P() = a + a - - +... +a + a 0 Si b = a y b k = a k + b k+ 0 para k =,,...,, 0 Por tato b 0 = P( 0 ). Más aú, si Q() = b + b - - +... +b + b Etoces P() = ( 0 ) Q() + b 0
Teorema del resto: Regla de Horer P(a) es el resto de la divisió de P() por ( a) P() = Q()(-a) + R(); grado(r())= 0; P(a) = R Cosecuecia: P (a) es el valor del cociete aterior e = a P () = Q ()(-a) + Q() ; Algoritmo de Horer: q - = a for k = -, -3,, 0 do P (a) = Q(a) ed b k = a k+ +aq k+ P(a) = a 0 +aq 0
Aplicacioes del algoritmo de Horer Cálculo del cociete y el resto de dividir u poliomio P() por (-a): Q() y R co P()= Q()(-a)+R. Evaluació de u poliomio P() e u valor real a: P(a). Deflacció de u poliomio: si a es raíz de P(), P() es divisible por (-a) y Q() = P()/(-a) es ua deflacció. Método de Newto para poliomios P( ) P'( )
Ejemplo P() = 4-5 3 + 4-3 + 5 4 3 6 4 4 3 7 Cociete Q() = 3-3 - - 7 Resto = p() p'() 3 7 8 4 5 Paso de Newto p()/p'() = /5 = 6/5
Acotació de raíces reales P()=a +a - - + +a +a 0, a 0 Cota geeral (Mc Lauri): Sea A = ma{ a -,, a, a 0 }, M = { a /a 0,, a /a 0 }, y sea r co P(r) = 0, etoces /(+M) < r < +(A/ a ) Regla de Newto: U úmero atural k es cota superior de las raíces positivas de P() si P(k)0, P (k)0,, P (- (k)0, P ( (k)>0. Regla de Laguerre: k es cota superior de las raíces positivas de P() si al dividir P() por (-k) todos los coeficietes del cociete so 0 y el resto es >0.
Recueto de raíces reales P()=a +a - - + +a +a 0, a 0 v(c, c,, c ) = º de cambios de sigo e la suc. si ceros Regla de los sigos de Descartes: v(a,a -,, a 0 ) º raíces reales positivas (mod ) Regla de Stur: Si P() o tiee raíces multiples y P(a) 0, P(b) 0 para ciertos a, b, a<b. Etoces el úmero de raíces reales de P() e el itervalo (a, b) coicide co v(p 0 (a),, P m (a)) - v(p 0 (b),, P m (b)), siedo P 0 () = P(), P () = P (), P () = - R () co P()=P ()Q ()+R (),, P k () = - R k () co P k- ()=P k- ()Q k ()+R k (),, P m ()=cte.
Ejercicios Evaluar: P() = 4 3 + 3 4 e 0 = P() = 7 5 + 6 4 6 3 + 3 4 e 0 = 3 P() = 5 6 + 3 4 + 4 e 0 =
Método de Horer e C double horer(double p[],it, double ){ double y = p[0]; it i; for(i = ; i<; i++){ y = *y + p[i]; } retur y; } double eval(double p[],it, double ){ double s = 0; it i; for(i = 0; i<; i++){ s = s + p[i]*pow(,-i-); } retur s; }
Ejercicio Implemetar el método de Horer e C++.
Evaluació de la derivada Dado que: P() = ( 0 ) Q() + b 0 dode Q() = b + b - - +... +b + b Derivado P () = Q()+( 0 )Q () E = 0, P ( 0 ) = Q( 0 )
Método de Newto para poliomios Se puede aplicar el método de Newto para poliomios evaluado el poliomio y su derivada mediate el método de Horer. El esquema sería Q P P P '
Newto para poliomios e C double NewtoPol(double p[],it,double 0,double ee, it i){ it i=0; double f,df, = 0,error; while(i<i){ horerder(p,,,f,df); = 0 - f/df; error = fabs((-0)/); if(error<=ee) retur ; i++; 0 = ; } std::cout << "No solució e " << i << " pasos\"; retur ; }
Método de Müller Utiliza tres aproimacioes: 0,,. Determia la siguiete aproimació 3 ecotrado la itersecció co el eje de la parábola defiida por los putos ( 0,f( 0 )), (,f( )), (,f( )). f 0 3
Método de Müller Se cosidera el poliomio P() = a( ) + b( ) + c Se puede ecotrar a, b y c resolviedo f( 0 ) = a( 0 ) + b( 0 ) + c f( ) = a( ) + b( ) + c f( ) = a( ) + b( ) + c
Método de Müller Se llega a ( ) f c 0 0 0 0 ) ( ) ( ) ( ) ( f f f f b 0 0 0 0 ) ( ) ( ) ( ) ( f f f f a
Método de Müller Para miimizar el error al resolver la cuadrática P() = 0, se calcula 3 co 3 c b sigo( b) b 4ac El proceso se reiicia tomado ahora,, y 3.
Ejemplo P() = 6 4 40 3 + 5 + 0 + 6 0 = 0.5 = -0.5 = 0.0 i i P(i) 3-0.555556 + ( -0.59835)i -9.40070 + ( 3.89875)i 4-0.435450 + ( -0.00)i.335 + (.93097)i 5-0.39063 + ( -0.485)i 0.375058 + ( 0.67068)i 6-0.357698 + ( -0.6996)i -0.46750 + ( 0.007446)i 7-0.35605 + ( -0.6856)i -0.00840 + ( -0.000538)i 8-0.35606 + ( -0.6758)i 0.00000 + ( -0.00000)i
Ejemplo 0 =.5 =.0 =.3 i i P(i) 3.96059 + ( 0.000000)i -0.630 + ( 0.000000)i 4.970564 + ( 0.000000)i 0.007455 + ( 0.000000)i 5.970447 + ( 0.000000)i 0.00009 + ( 0.000000)i 0 = 0.5 =.0 =.5 i i P(i) 3.87855 + ( 0.000000)i -.37675 + ( 0.000000)i 4.37459 + ( 0.000000)i 0.6945 + ( 0.000000)i 5.4605 + ( 0.000000)i 0.0093 + ( 0.000000)i 6.4677 + ( 0.000000)i -0.00000 + ( 0.000000)i
Método de Bairstow El efoque de Bairstow es el de utilizar el Método de Newto para ajustar los coeficietes r y s e la cuadrática r + s hasta que sus raíces sea tambié raíces del poliomio que se quiere resolver. Co estos coeficietes se determia la cuadrática correspodiete que se utiliza para simplificar la epresió, elimiado estas raíces del cojuto buscado. El proceso se repite hasta que el poliomio se covierta e uo cuadrático o lieal, mometo e que todas las raíces queda determiadas.
La Divisió Larga de u poliomio P i0 a i por r s resulta e u cociete de la forma Q i0 y u residuo b ( r) + b 0 tal que P i b i i r s bi b r b0 i i
Se utiliza la divisió sitética para obteer la divisió etre el factor cuadrático: b = a b = a + rb b i = a i + rb i+ + sb i+ (i =,, 0) El método se reduce a determiar los valores de r y s que hace que el factor cuadrático sea u divisor eacto. Se utiliza el método de Newto-Raphso. Se calcula icremetos Dr y Ds para acercarse a la solució. b r b0 r b Dr s b Dr s 0 Ds b Ds b Las derivadas parciales se calcula por u proceso de divisió sitética similar al utilizado para calcular las b s.
c = b c = b + rc c i = b i + rc i+ + sc i+ (i =,, ) Dode: s b c r b c s b c r b c 0 0 3,, Se resuelve las ecuacioes para Dr y Ds y se emplea para mejorar r y s.
Tarea Escriba u programa e C amigable para el usuario que utilice la fució bairstow() para ecotrar las raíces de u poliomio. Deberá pedir el grado del poliomio, los coeficietes, los valores iiciales para la fució bairstow, el error esperado y el úmero de iteracioes máimo. Deberá dar como salida ua lista de las raíces del poliomio y/o ua idicació de error.